libntruprime-20241021/0000755000000000000000000000000014705505552013171 5ustar rootrootlibntruprime-20241021/Makefile0000644000000000000000000000015014705505542014624 0ustar rootrootdefault: cd build && $(MAKE) install: cd build && $(MAKE) install clean: cd build && $(MAKE) clean libntruprime-20241021/api0000644000000000000000000011534314705505542013673 0ustar rootrootcrypto_verify/897 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 #define crypto_verify_897_BYTES 897 crypto_verify/1039 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 #define crypto_verify_1039_BYTES 1039 crypto_verify/1184 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 #define crypto_verify_1184_BYTES 1184 crypto_verify/1349 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 #define crypto_verify_1349_BYTES 1349 crypto_verify/1455 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 #define crypto_verify_1455_BYTES 1455 crypto_verify/1847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 #define crypto_verify_1847_BYTES 1847 int crypto_verify(const unsigned char *,const unsigned char *); crypto_decode/653x3 b27ae3aea1c26f6a5fca8c98570889925a1fd8bf554105caf49b73b438463cd7 6bf0b30b8a6d4c2e788ae00f91d1ecc21ee766073911c6cf22c87d6be78065c0 nooverlap #define crypto_decode_653x3_STRBYTES 164 #define crypto_decode_653x3_ITEMS 653 #define crypto_decode_653x3_ITEMBYTES 1 crypto_decode/653x1541 2173daf6ce1c01f7ed73da595704d4f9bb8bf3daefeca1b87d877bfed38357c8 f70df1d328c5e9ed7779316472068293f57418ac0d14490ca9faf459cd8860d9 nooverlap #define crypto_decode_653x1541_STRBYTES 865 #define crypto_decode_653x1541_ITEMS 653 #define crypto_decode_653x1541_ITEMBYTES 2 crypto_decode/653x4621 8c4b6e117d8f9958d52355a14318bfe558207ead06003ef2387d4efee125675c 3cf98a091d5f8a7de0f454731fbb8eee5d09052d746697e3be6fb56bdca4152c nooverlap #define crypto_decode_653x4621_STRBYTES 994 #define crypto_decode_653x4621_ITEMS 653 #define crypto_decode_653x4621_ITEMBYTES 2 crypto_decode/653xint16 17a6405c12d612963247bbf6aa8ed3cfe97cb9d2c4cbc5fed58415acee973cc8 95a98a488011bfe4be2945e897c1e74d3ab4caae7a3985c5a91df7a40fa12bb0 nooverlap #define crypto_decode_653xint16_STRBYTES 1306 #define crypto_decode_653xint16_ITEMS 653 #define crypto_decode_653xint16_ITEMBYTES 2 crypto_decode/653xint32 34b2ca8a50458bcb0807cec51d8532fbe6757c16134cdffc358383de4e1a148c 57b3c59fc493ad09401c0b98870b52d4c0f37472e636dbff071e3ae4e29ca59d nooverlap #define crypto_decode_653xint32_STRBYTES 2612 #define crypto_decode_653xint32_ITEMS 653 #define crypto_decode_653xint32_ITEMBYTES 4 crypto_decode/761x3 4c0c26f31b56408c408d7cc98224222b70725c2aaa0ea3faa44579acf5c624de 31ec97bfbababd015c022fc21d5f56f772f99978811edb78222560b43668194f nooverlap #define crypto_decode_761x3_STRBYTES 191 #define crypto_decode_761x3_ITEMS 761 #define crypto_decode_761x3_ITEMBYTES 1 crypto_decode/761x1531 1d9d419824942784f9810ac0967c6076bf6e4e800aa310466fd37e6292214244 f6b6bd7f4f922914729cf66245a429da337b5b13f845154adecbd2406e12f045 nooverlap #define crypto_decode_761x1531_STRBYTES 1007 #define crypto_decode_761x1531_ITEMS 761 #define crypto_decode_761x1531_ITEMBYTES 2 crypto_decode/761x4591 e1f8b74a5bf8507d583864d986c9febfecbaf6a447fc0ef78949e0c2684004ce 278e3fba567cece740483ca6d1c367e929189741d75f068c38dee2b7467cf58b nooverlap #define crypto_decode_761x4591_STRBYTES 1158 #define crypto_decode_761x4591_ITEMS 761 #define crypto_decode_761x4591_ITEMBYTES 2 crypto_decode/761xint16 49e6aca48717c2e93b56d9706189b6c5b21781086c569bf421628343fec2bc06 fd2f7ecff81bea4ae8e08a3bf1b6d4e57d328c481f773c60d3f1a773c25dbfca nooverlap #define crypto_decode_761xint16_STRBYTES 1522 #define crypto_decode_761xint16_ITEMS 761 #define crypto_decode_761xint16_ITEMBYTES 2 crypto_decode/761xint32 c44672011469bac0b95caf7c0a019fdbbb6e3437688ab8332bfa9c3edeec0596 9e000f8f58d6ec16a4dd0b362923affd79dc56ed6e049b457d851a56f9206551 nooverlap #define crypto_decode_761xint32_STRBYTES 3044 #define crypto_decode_761xint32_ITEMS 761 #define crypto_decode_761xint32_ITEMBYTES 4 crypto_decode/857x3 98a770141d432110843494413c1710397aa6bad5b837bae4731ad814be38b81e f8ad21eb2d86da185a45a6ccb32899e039b561a40c5a5654ab396414d19cd494 nooverlap #define crypto_decode_857x3_STRBYTES 215 #define crypto_decode_857x3_ITEMS 857 #define crypto_decode_857x3_ITEMBYTES 1 crypto_decode/857x1723 3c44cbbf4970935594d86db45cb014095a1ca333e3ce7b2756b4fd46153c6014 98b68e4fbc41894cfb6f07f41b15619290fe6c4ae47126151bc8bc91ec7a15e7 nooverlap #define crypto_decode_857x1723_STRBYTES 1152 #define crypto_decode_857x1723_ITEMS 857 #define crypto_decode_857x1723_ITEMBYTES 2 crypto_decode/857x5167 c94e8ca6f25f8ffbec28769f741ba6613b6de2ed3bbda148d4e973175b80545c 43714f0e17a461bbd8215bb53713169845c361f105bcf4ca966b7b86b5de28c6 nooverlap #define crypto_decode_857x5167_STRBYTES 1322 #define crypto_decode_857x5167_ITEMS 857 #define crypto_decode_857x5167_ITEMBYTES 2 crypto_decode/857xint16 f1975f4d5aa9b69374c1b286295468accd26c0ea75cf76cceafcdd4142155810 5e1d78e028b3f6eaa1be2526e5f3165ebd75ab25ad76cd4df3bd2376e70ab631 nooverlap #define crypto_decode_857xint16_STRBYTES 1714 #define crypto_decode_857xint16_ITEMS 857 #define crypto_decode_857xint16_ITEMBYTES 2 crypto_decode/857xint32 f1cce1fb5860ff77e49eb8f6c96947a8a1f779fde85a87809410317bf9e39a20 bfff4d5b75d91994c2dc064236468c4fd59fd4df7d08d7b8b52dbf95c9891a91 nooverlap #define crypto_decode_857xint32_STRBYTES 3428 #define crypto_decode_857xint32_ITEMS 857 #define crypto_decode_857xint32_ITEMBYTES 4 crypto_decode/953x3 c78799b48c3e879236b2919c5c975fd085612c76da5b50de8283ad6fb11874dc eb934610aad64249d580d08ef6bc1a5205485544c98c25e4742b053026125d8c nooverlap #define crypto_decode_953x3_STRBYTES 239 #define crypto_decode_953x3_ITEMS 953 #define crypto_decode_953x3_ITEMBYTES 1 crypto_decode/953x2115 39b5338022fa2952cd9c3c6db7835107bc32c4575da8efdac2a776fd4c0f02ed 2d52fd93fb72fb5224486467d1bfda7fb00feceec559befba17736f00b93f304 nooverlap #define crypto_decode_953x2115_STRBYTES 1317 #define crypto_decode_953x2115_ITEMS 953 #define crypto_decode_953x2115_ITEMBYTES 2 crypto_decode/953x6343 462d131e93122cf927e38d3798781c6d147030231c5697eb39bca774d4635e28 7e950e4dd0d52156a6fe31883848e1937cdbe8905ef250b63749d08e599c115d nooverlap #define crypto_decode_953x6343_STRBYTES 1505 #define crypto_decode_953x6343_ITEMS 953 #define crypto_decode_953x6343_ITEMBYTES 2 crypto_decode/953xint16 b85dffbe410d5d88bd60d7ea927e051ce0795e26b2524a9e8abefda128a92e7e 7b1c952f6e7c01227dbbe8e0418cc4d5ea1860eba1f27166cdd9ba5af60586f9 nooverlap #define crypto_decode_953xint16_STRBYTES 1906 #define crypto_decode_953xint16_ITEMS 953 #define crypto_decode_953xint16_ITEMBYTES 2 crypto_decode/953xint32 dec92f9468ece28ae286a8fa5b70bd260b013e54adb1884e6cd1b8cd4126c0c5 d816216b0110cf74ad08705d85d438f5897a52e214ecac53b0c97fd668b37e62 nooverlap #define crypto_decode_953xint32_STRBYTES 3812 #define crypto_decode_953xint32_ITEMS 953 #define crypto_decode_953xint32_ITEMBYTES 4 crypto_decode/1013x3 bc9fe48234596542962f8de47a4ef3ac45a2dc7d7a6e5a7e74ec9de0ca296c38 e7e3dae8e40abaf6707c25588855e328d51070ee697ec212aa4f1a4883f8f5de nooverlap #define crypto_decode_1013x3_STRBYTES 254 #define crypto_decode_1013x3_ITEMS 1013 #define crypto_decode_1013x3_ITEMBYTES 1 crypto_decode/1013x2393 d14764f92d14444286cd940b7309cbc94dfbfa944288e2a1f126057a1e1b6d0d fe36c2ad2261b9693e2ad9ab3499e3dd2514bd6bf8ebf023f044d23f14345dd9 nooverlap #define crypto_decode_1013x2393_STRBYTES 1423 #define crypto_decode_1013x2393_ITEMS 1013 #define crypto_decode_1013x2393_ITEMBYTES 2 crypto_decode/1013x7177 4fd0bd0a87df97ccb7d348b0ab91826cf1dfea84d6853817d4e75dae12cb3b44 2a15b4ce79e1c074b085bd7abf71de7083fba0503d4ac06d10498fe965a26a10 nooverlap #define crypto_decode_1013x7177_STRBYTES 1623 #define crypto_decode_1013x7177_ITEMS 1013 #define crypto_decode_1013x7177_ITEMBYTES 2 crypto_decode/1013xint16 5938f68c9c3c3631517ca16dcadd1e96b2553bd6b494161c901c1db455e21173 fe23340654861a9e08289b59a9901d646fd8b2cd98b628e8f34889763b7c2a91 nooverlap #define crypto_decode_1013xint16_STRBYTES 2026 #define crypto_decode_1013xint16_ITEMS 1013 #define crypto_decode_1013xint16_ITEMBYTES 2 crypto_decode/1013xint32 1fbebd6317d03a06d94d96738bdeb71726b30ac841c8fb4dfbfaa5fcc73bbe9e ea9a0742c8a6d873850602d2d3cc30e7b645c79d06dd7a1948461c6a90c41029 nooverlap #define crypto_decode_1013xint32_STRBYTES 4052 #define crypto_decode_1013xint32_ITEMS 1013 #define crypto_decode_1013xint32_ITEMBYTES 4 crypto_decode/1277x3 cd7ac8c305a343e1ae8e70c486d539bae09546ea02182801780b53de3618c53f dfba5b6a88e496f1d34cb5f11e59ddb2c26255c22edb9c4a9246d96bb5b687c8 nooverlap #define crypto_decode_1277x3_STRBYTES 320 #define crypto_decode_1277x3_ITEMS 1277 #define crypto_decode_1277x3_ITEMBYTES 1 crypto_decode/1277x2627 74f598a5f9e175e6ac4b6bfe3c14389c99096b4e82684948c1ca634c24a8e72f 06734904e6447b510c757eb71f6124fc13a4edc76b6c3d88be4d858f2f945a8a nooverlap #define crypto_decode_1277x2627_STRBYTES 1815 #define crypto_decode_1277x2627_ITEMS 1277 #define crypto_decode_1277x2627_ITEMBYTES 2 crypto_decode/1277x7879 ef434ea80eacf64891b1b1669b5890e42744786121d3f9553adfd77f99964487 65e3512604821bd72c2c8ebf3dddde91ce916265e81b1d9e24d6b96c0f9ed4a1 nooverlap #define crypto_decode_1277x7879_STRBYTES 2067 #define crypto_decode_1277x7879_ITEMS 1277 #define crypto_decode_1277x7879_ITEMBYTES 2 crypto_decode/1277xint16 d5348da2ff27262d66e755b86943578667e0356e52efc69e5f8ff7135cd8c5b2 7076c2a55d93f7846a8a8a1fcadea82529d82a42e8bf6ef033d8b4974c8d8e7d nooverlap #define crypto_decode_1277xint16_STRBYTES 2554 #define crypto_decode_1277xint16_ITEMS 1277 #define crypto_decode_1277xint16_ITEMBYTES 2 crypto_decode/1277xint32 e151ed1b6c9d21ee74522212ddb88623dcbab6e220dced357339f547a99080d9 42e71d92e37a5470c27cc2bcc7814c0b447cff5451d1e361fd7f9f0ba8338d90 nooverlap #define crypto_decode_1277xint32_STRBYTES 5108 #define crypto_decode_1277xint32_ITEMS 1277 #define crypto_decode_1277xint32_ITEMBYTES 4 crypto_decode/int16 7f59625680d504bdd9bff199c54792455ddfd077779962836a92543c88bea2fa cdc27065db4d2f6e2356756b9a0bae31699e6255f0caf0011ba18ef3d2229ed8 nooverlap #define crypto_decode_int16_STRBYTES 2 #define crypto_decode_int16_ITEMS 1 #define crypto_decode_int16_ITEMBYTES 2 void crypto_decode(void *,const unsigned char *); crypto_encode/653x3 601a6ccdda0496001dd407588f0a0e86e7538fbb1916d7192d65165eb33f8607 29700e201920e207a92db544a0e850f0de968596d8d53fafddee93ce95ee0181 nooverlap #define crypto_encode_653x3_STRBYTES 164 #define crypto_encode_653x3_ITEMS 653 #define crypto_encode_653x3_ITEMBYTES 1 crypto_encode/653x1541 1b20d01f7809f5516f698fdfb9bcf69a9b077a03bc594f94f427983eed219924 e9661445e5dc394398e8c9fc031cde1c405c4e325fce3297c6e8bdb53310aa70 nooverlap #define crypto_encode_653x1541_STRBYTES 865 #define crypto_encode_653x1541_ITEMS 653 #define crypto_encode_653x1541_ITEMBYTES 2 crypto_encode/653x1541round d2bf70e2ae1f712bcc35b342c7a4b9ca35dd41f3bc48badd81cb089c820a3e8b a81054ade0c8798b3b305e7ba21c764c63f4ce82a5f318828adc6a99c42fd820 nooverlap #define crypto_encode_653x1541round_STRBYTES 865 #define crypto_encode_653x1541round_ITEMS 653 #define crypto_encode_653x1541round_ITEMBYTES 2 crypto_encode/653x4621 0b8bea4448ae678f4152f1aed36bd50c1d538a1a0fef1134f480b956223c1aa7 045c8b06a6e1591bf38ff18e8b0f4cd7130ade473cbf7c1088c23257fca300ea nooverlap #define crypto_encode_653x4621_STRBYTES 994 #define crypto_encode_653x4621_ITEMS 653 #define crypto_encode_653x4621_ITEMBYTES 2 crypto_encode/653xfreeze3 2af9cde3800c6d3ab447ef1153b456f24387915970704887562d60dba892d8ea a4142003bb2d13fc4e6fb515d06420bd4304cfae48831b80fe21ca6665e41701 nooverlap #define crypto_encode_653xfreeze3_STRBYTES 653 #define crypto_encode_653xfreeze3_ITEMS 653 #define crypto_encode_653xfreeze3_ITEMBYTES 2 crypto_encode/653xint16 17a6405c12d612963247bbf6aa8ed3cfe97cb9d2c4cbc5fed58415acee973cc8 95a98a488011bfe4be2945e897c1e74d3ab4caae7a3985c5a91df7a40fa12bb0 nooverlap #define crypto_encode_653xint16_STRBYTES 1306 #define crypto_encode_653xint16_ITEMS 653 #define crypto_encode_653xint16_ITEMBYTES 2 crypto_encode/761x3 174595681ec51d85de90246ab033f588d23586e48cee89ef360c213c47987ec4 e77793e4a45e5582c3f32e346f5cf7d1f91f9ed3c531e41918c09d70d4d3815f nooverlap #define crypto_encode_761x3_STRBYTES 191 #define crypto_encode_761x3_ITEMS 761 #define crypto_encode_761x3_ITEMBYTES 1 crypto_encode/761x1531 55bac32e896eeda274c06a45e55b1df05006e43780b35a6a3e1c0b3e52407838 9a3fb7d7bd06856c18640990282f267f81500881d97c9fcb94d3a358cb24b9a7 nooverlap #define crypto_encode_761x1531_STRBYTES 1007 #define crypto_encode_761x1531_ITEMS 761 #define crypto_encode_761x1531_ITEMBYTES 2 crypto_encode/761x1531round f674dd6b79402fc0c6546f3716d5bc6498485e3943167d4901f3150f01ceafbc 96687a4792184335a94adc906f4ec93dacf1286d3b83eff1196b48df80063634 nooverlap #define crypto_encode_761x1531round_STRBYTES 1007 #define crypto_encode_761x1531round_ITEMS 761 #define crypto_encode_761x1531round_ITEMBYTES 2 crypto_encode/761x4591 a4335af893b0527c4fc259b93b8660d5f29b012ee4111218c11654b27fc6c61b 263487954e950086897d620987560480180d05b8564ad7744b53b24c5e0f7aaa nooverlap #define crypto_encode_761x4591_STRBYTES 1158 #define crypto_encode_761x4591_ITEMS 761 #define crypto_encode_761x4591_ITEMBYTES 2 crypto_encode/761xfreeze3 86a1be02df02f23f8ca5945147a0828fcf2fca756cb71c59f23c8e77ad236fbd eea69494ef8944ba675ce29a3b004c6e03e1356459dcd1e7bf0afd07d8a62b62 nooverlap #define crypto_encode_761xfreeze3_STRBYTES 761 #define crypto_encode_761xfreeze3_ITEMS 761 #define crypto_encode_761xfreeze3_ITEMBYTES 2 crypto_encode/761xint16 49e6aca48717c2e93b56d9706189b6c5b21781086c569bf421628343fec2bc06 fd2f7ecff81bea4ae8e08a3bf1b6d4e57d328c481f773c60d3f1a773c25dbfca nooverlap #define crypto_encode_761xint16_STRBYTES 1522 #define crypto_encode_761xint16_ITEMS 761 #define crypto_encode_761xint16_ITEMBYTES 2 crypto_encode/857x3 743e5116e742b3998cbce11a5e58019bdb9b81cf0d5df538d1ceb897c9804c6b 2d4dcd2e56605c0e00dde04746a1199c739d1e7dd3e928a117533f0937270469 nooverlap #define crypto_encode_857x3_STRBYTES 215 #define crypto_encode_857x3_ITEMS 857 #define crypto_encode_857x3_ITEMBYTES 1 crypto_encode/857x1723 a2c1b7ffa60681087da6204f1669281950ae2bce4bfd23b3f34ee7464c298aa9 e6c3186f85c9ee4f61bc3ec2f12f5cab699b269f414ceb8125753b5ff3526919 nooverlap #define crypto_encode_857x1723_STRBYTES 1152 #define crypto_encode_857x1723_ITEMS 857 #define crypto_encode_857x1723_ITEMBYTES 2 crypto_encode/857x1723round c594e45623de22d6a6353b86c6ded45616e77d4d47101d80700e9dc975163966 674a993b7f62eeefa79c7f0fe26c5b522e030c651c763e3dc097a280068a951f nooverlap #define crypto_encode_857x1723round_STRBYTES 1152 #define crypto_encode_857x1723round_ITEMS 857 #define crypto_encode_857x1723round_ITEMBYTES 2 crypto_encode/857x5167 3bc06d9dfd4200ecfb99af82babaeb6f536f7bf947ccd4b9624e5adeeef68cd6 6761bf59312ec4ed003d0e17a39f234aefcd57e38dba5018eaafb2051b9c7ae0 nooverlap #define crypto_encode_857x5167_STRBYTES 1322 #define crypto_encode_857x5167_ITEMS 857 #define crypto_encode_857x5167_ITEMBYTES 2 crypto_encode/857xfreeze3 bc89dd0c9bcace09ff3a4df7c6b657a8eea2467796bba9fbe9d0de4d1ee28703 be3badaab03db87e3efd3597607b22d613e0e05242d021e616ed641ced8160fa nooverlap #define crypto_encode_857xfreeze3_STRBYTES 857 #define crypto_encode_857xfreeze3_ITEMS 857 #define crypto_encode_857xfreeze3_ITEMBYTES 2 crypto_encode/857xint16 f1975f4d5aa9b69374c1b286295468accd26c0ea75cf76cceafcdd4142155810 5e1d78e028b3f6eaa1be2526e5f3165ebd75ab25ad76cd4df3bd2376e70ab631 nooverlap #define crypto_encode_857xint16_STRBYTES 1714 #define crypto_encode_857xint16_ITEMS 857 #define crypto_encode_857xint16_ITEMBYTES 2 crypto_encode/953x3 10e5142e79d1a21b1a3b0284f3d31e258af25438003715cb3b2ae05175ed685c bb632a3b15fa172fb6b90dc7cdbca546cc677213571c71b52abf407208bff5d8 nooverlap #define crypto_encode_953x3_STRBYTES 239 #define crypto_encode_953x3_ITEMS 953 #define crypto_encode_953x3_ITEMBYTES 1 crypto_encode/953x2115 d71ba40baea7dc3af48fd849985de05aaee87f3037871db8dec7cc901b40c8a8 b47986841715d5eef14df6916c2ab184f33a698537113c3bf4d2ea8f99428c70 nooverlap #define crypto_encode_953x2115_STRBYTES 1317 #define crypto_encode_953x2115_ITEMS 953 #define crypto_encode_953x2115_ITEMBYTES 2 crypto_encode/953x2115round bbb31bbccfccf662777eabe951a585b359eaf9916a7eb4657d33356f7cfbb81b cb28590264fec821fd69bb3c0e81141743256f5cd8111fc3ac369b32bd43d73f nooverlap #define crypto_encode_953x2115round_STRBYTES 1317 #define crypto_encode_953x2115round_ITEMS 953 #define crypto_encode_953x2115round_ITEMBYTES 2 crypto_encode/953x6343 48d66a44f8ff7a1467ce2d060028f1e50fdb82270a4e07c91afc8982c4d6229c f7cff68a1aeda002a4c4af92e4d33284bb29ab2344d097357b23522a14ebb07e nooverlap #define crypto_encode_953x6343_STRBYTES 1505 #define crypto_encode_953x6343_ITEMS 953 #define crypto_encode_953x6343_ITEMBYTES 2 crypto_encode/953xfreeze3 072c38c98e9744daf3b6761d57bf6ea58f590165eb3a418379211720cfcb7dc0 6105c1a5693f0c92e5afdadd2c1990b5ca456f6362ac010e8051d59e8c420bfe nooverlap #define crypto_encode_953xfreeze3_STRBYTES 953 #define crypto_encode_953xfreeze3_ITEMS 953 #define crypto_encode_953xfreeze3_ITEMBYTES 2 crypto_encode/953xint16 b85dffbe410d5d88bd60d7ea927e051ce0795e26b2524a9e8abefda128a92e7e 7b1c952f6e7c01227dbbe8e0418cc4d5ea1860eba1f27166cdd9ba5af60586f9 nooverlap #define crypto_encode_953xint16_STRBYTES 1906 #define crypto_encode_953xint16_ITEMS 953 #define crypto_encode_953xint16_ITEMBYTES 2 crypto_encode/1013x3 d7024fe86d0285887eec1af699b0498d32ab1eaee799c12f44ef5cab26cfdc96 3dca23aa721c2d4907b07cdbde42968e69e8689794aae6478e2b5e04da0d1579 nooverlap #define crypto_encode_1013x3_STRBYTES 254 #define crypto_encode_1013x3_ITEMS 1013 #define crypto_encode_1013x3_ITEMBYTES 1 crypto_encode/1013x2393 7bd429942f70bf35593f20e0a981927eea259a8517f2c7c8da975da324e6a762 3e1a3c979172f41df76417f9ca1a180968aae86857b6e9194f885622e33ac44c nooverlap #define crypto_encode_1013x2393_STRBYTES 1423 #define crypto_encode_1013x2393_ITEMS 1013 #define crypto_encode_1013x2393_ITEMBYTES 2 crypto_encode/1013x2393round f75c0afa30054add70fba4f12d5da9eea18fbd3a1331033a378bb4c618de81a5 daab9407d45841416f8d74109a9ac3e9979213074e580c1779fdb76239959dd2 nooverlap #define crypto_encode_1013x2393round_STRBYTES 1423 #define crypto_encode_1013x2393round_ITEMS 1013 #define crypto_encode_1013x2393round_ITEMBYTES 2 crypto_encode/1013x7177 6d839a50ec5e68cf79f8d99d8d86eb1b56b8e88d7e1b088313731657297d490b 29b9c6f5b9891edd976092fe7d87049d3a788b2911274aba59241f0507a87fed nooverlap #define crypto_encode_1013x7177_STRBYTES 1623 #define crypto_encode_1013x7177_ITEMS 1013 #define crypto_encode_1013x7177_ITEMBYTES 2 crypto_encode/1013xfreeze3 5837a623cf7f3d3c0f749b1f17bd4e6bcdee5dc21260123f6addfeb8e2116a2a a876703bcdb2d60e3da575c761a4f020680168798a3d68303972da1450397dbd nooverlap #define crypto_encode_1013xfreeze3_STRBYTES 1013 #define crypto_encode_1013xfreeze3_ITEMS 1013 #define crypto_encode_1013xfreeze3_ITEMBYTES 2 crypto_encode/1013xint16 5938f68c9c3c3631517ca16dcadd1e96b2553bd6b494161c901c1db455e21173 fe23340654861a9e08289b59a9901d646fd8b2cd98b628e8f34889763b7c2a91 nooverlap #define crypto_encode_1013xint16_STRBYTES 2026 #define crypto_encode_1013xint16_ITEMS 1013 #define crypto_encode_1013xint16_ITEMBYTES 2 crypto_encode/1277x3 5f8a22de6e4e3893b53577b6606bc3ccdb111ee025d609d21cb06592468e29af b11455450ab60cf8c24ae5a25003e85e650fffe8bc5b29cd76439f154905de75 nooverlap #define crypto_encode_1277x3_STRBYTES 320 #define crypto_encode_1277x3_ITEMS 1277 #define crypto_encode_1277x3_ITEMBYTES 1 crypto_encode/1277x2627 5b26afe7bb755c250ae9d208a9d8552b0ee95f0d2cfac20ed44a8f918524eb04 b482d6dc7d917bb111a4d164ac216f755fadf3e8571f3d00009473d3f346f43b nooverlap #define crypto_encode_1277x2627_STRBYTES 1815 #define crypto_encode_1277x2627_ITEMS 1277 #define crypto_encode_1277x2627_ITEMBYTES 2 crypto_encode/1277x2627round 7af347846154c277a241b9bf8749cd4eb0fc75ad481eca00cd86070ca14bc362 564dec95c8bf481d887456b5847166e2cbfbbbf24a19ba1c110e3c0b0ef58661 nooverlap #define crypto_encode_1277x2627round_STRBYTES 1815 #define crypto_encode_1277x2627round_ITEMS 1277 #define crypto_encode_1277x2627round_ITEMBYTES 2 crypto_encode/1277x7879 874f6a1453352eca4a08618cc88c78c7d798edf2c91aa173c3b0be7f72427559 73815848894e97f8bf4fdb4d097a9021b4f978b13e7db123278e60901bfd0afb nooverlap #define crypto_encode_1277x7879_STRBYTES 2067 #define crypto_encode_1277x7879_ITEMS 1277 #define crypto_encode_1277x7879_ITEMBYTES 2 crypto_encode/1277xfreeze3 1b449bf6d1f970ca5d2339cd8f869e5b26d5116e35e464cfcc238d094b17f4d7 200feb6191e1e49aa674353ac35d15ff8a3aa6c70cbcac515210a394bbaebddb nooverlap #define crypto_encode_1277xfreeze3_STRBYTES 1277 #define crypto_encode_1277xfreeze3_ITEMS 1277 #define crypto_encode_1277xfreeze3_ITEMBYTES 2 crypto_encode/1277xint16 d5348da2ff27262d66e755b86943578667e0356e52efc69e5f8ff7135cd8c5b2 7076c2a55d93f7846a8a8a1fcadea82529d82a42e8bf6ef033d8b4974c8d8e7d nooverlap #define crypto_encode_1277xint16_STRBYTES 2554 #define crypto_encode_1277xint16_ITEMS 1277 #define crypto_encode_1277xint16_ITEMBYTES 2 crypto_encode/int16 7f59625680d504bdd9bff199c54792455ddfd077779962836a92543c88bea2fa cdc27065db4d2f6e2356756b9a0bae31699e6255f0caf0011ba18ef3d2229ed8 nooverlap #define crypto_encode_int16_STRBYTES 2 #define crypto_encode_int16_ITEMS 1 #define crypto_encode_int16_ITEMBYTES 2 void crypto_encode(unsigned char *,const void *); crypto_sort/int32 3458da92fdba9924c019db57dd7079f7613df0e243f3b312d10d94781af8c29a 7265f7d8ed54b4a3bd12db9648e246615363373e7044c8d1b7c789ebfc177629 #define crypto_sort_int32_BYTES 4 crypto_sort/uint32 83fc714d7acc0375aa6657bd36d3324a6cbc503f68019345651be8a88534c3e2 30921a0be2d73a185181f0ec842fa0fa73cd6e958fc03411d435f14a3fc64c89 #define crypto_sort_uint32_BYTES 4 void crypto_sort(void *,long long); crypto_core/inv3sntrup653 aa5ad48e98fd02d0029bae0563ff23e304b66d09714ad3a50b7eaa0c39d49de1 07515a32ef8e6bfbc348fd7b45480a3a87632fc4d277c9ec04d8984eae369a17 nooverlap #define crypto_core_inv3sntrup653_OUTPUTBYTES 654 #define crypto_core_inv3sntrup653_INPUTBYTES 653 #define crypto_core_inv3sntrup653_KEYBYTES 0 #define crypto_core_inv3sntrup653_CONSTBYTES 0 crypto_core/inv3sntrup761 9e86b6061fb03967c7366ba2febae6e9e8d1b017f6c232437b46c2f1c54eca0f 1a98d5561c7920363f4ed3c5c6b8f8100ff1a64dca2edcb93ee1b0db6442c929 nooverlap #define crypto_core_inv3sntrup761_OUTPUTBYTES 762 #define crypto_core_inv3sntrup761_INPUTBYTES 761 #define crypto_core_inv3sntrup761_KEYBYTES 0 #define crypto_core_inv3sntrup761_CONSTBYTES 0 crypto_core/inv3sntrup857 beebb8615a6dd9308e9366214edc0bfda955b1bcdbd191941c48d7febf3412cd b7973784222ad1aec8dc6b5cd12bdd500f7297561bbd70a7e899598d4bda2cd1 nooverlap #define crypto_core_inv3sntrup857_OUTPUTBYTES 858 #define crypto_core_inv3sntrup857_INPUTBYTES 857 #define crypto_core_inv3sntrup857_KEYBYTES 0 #define crypto_core_inv3sntrup857_CONSTBYTES 0 crypto_core/inv3sntrup953 9237c4567f8c2a46bdd2352fd36246298755505410c350016bc46a91a4b267a3 83d67d2813b5abbb50c0686c4a605c5e85b59adbc04b9b55d1585d6f114303d2 nooverlap #define crypto_core_inv3sntrup953_OUTPUTBYTES 954 #define crypto_core_inv3sntrup953_INPUTBYTES 953 #define crypto_core_inv3sntrup953_KEYBYTES 0 #define crypto_core_inv3sntrup953_CONSTBYTES 0 crypto_core/inv3sntrup1013 c0ca4000b778d934025bb5cdc7b051f6f82600f30ccee2f9bfc39162647480df a6adb01164dcef4fd539877c8964b38ba3bcea1cef00a9d9e410b9c40bdab2e5 nooverlap #define crypto_core_inv3sntrup1013_OUTPUTBYTES 1014 #define crypto_core_inv3sntrup1013_INPUTBYTES 1013 #define crypto_core_inv3sntrup1013_KEYBYTES 0 #define crypto_core_inv3sntrup1013_CONSTBYTES 0 crypto_core/inv3sntrup1277 b30c2b6d13108ae047f7fddc44d358fbfb15efd9cc5faf66fdd8105d67c851f5 195786f1a3efb32081f00cff505fe0dd2b572761c809b08f8a8c57f9704bc01d nooverlap #define crypto_core_inv3sntrup1277_OUTPUTBYTES 1278 #define crypto_core_inv3sntrup1277_INPUTBYTES 1277 #define crypto_core_inv3sntrup1277_KEYBYTES 0 #define crypto_core_inv3sntrup1277_CONSTBYTES 0 crypto_core/invsntrup653 783437aa0948fbed0301273c0cd5c08de5d3cd1cec0b5ee2e4794efee2bdbc6c f7eec5214a2b2c85244e55ffc91787ecbd8c7e8c501ac4f01e4375c7c401e222 nooverlap #define crypto_core_invsntrup653_OUTPUTBYTES 1307 #define crypto_core_invsntrup653_INPUTBYTES 653 #define crypto_core_invsntrup653_KEYBYTES 0 #define crypto_core_invsntrup653_CONSTBYTES 0 crypto_core/invsntrup761 681d6c76cd117dbe30df650d7701ae3a75b82d0a916ed319e942e34d87726ab6 e0a98560abe832360f4b8a8101491ccc7e1adaeafcf056b382ff9a16c24004b6 nooverlap #define crypto_core_invsntrup761_OUTPUTBYTES 1523 #define crypto_core_invsntrup761_INPUTBYTES 761 #define crypto_core_invsntrup761_KEYBYTES 0 #define crypto_core_invsntrup761_CONSTBYTES 0 crypto_core/invsntrup857 884d58c031b7f0ea5e9cbbc8274a3fa8b462f381f43d63d18fd1a2056d2c6742 a5ad90978659be45ef3d4ce0ab6a151d4dfeaca2da7de476eb9b61d31b058f67 nooverlap #define crypto_core_invsntrup857_OUTPUTBYTES 1715 #define crypto_core_invsntrup857_INPUTBYTES 857 #define crypto_core_invsntrup857_KEYBYTES 0 #define crypto_core_invsntrup857_CONSTBYTES 0 crypto_core/invsntrup953 e3c85424efc73a2708c2fcfe0a3f330c164eec370ed8432105e1f670e2cc7760 176b39e76aaec3d9e0e1ed90902be3539020c31478076233b511e983c989d207 nooverlap #define crypto_core_invsntrup953_OUTPUTBYTES 1907 #define crypto_core_invsntrup953_INPUTBYTES 953 #define crypto_core_invsntrup953_KEYBYTES 0 #define crypto_core_invsntrup953_CONSTBYTES 0 crypto_core/invsntrup1013 f6a51c797d29c780474c27d518d04993a0522cd81996c9b618b42059ba667ec3 53217389455102d1f4fcf9dac3db99bbd39bfbf23559699f6f1913e1aa9b8d82 nooverlap #define crypto_core_invsntrup1013_OUTPUTBYTES 2027 #define crypto_core_invsntrup1013_INPUTBYTES 1013 #define crypto_core_invsntrup1013_KEYBYTES 0 #define crypto_core_invsntrup1013_CONSTBYTES 0 crypto_core/invsntrup1277 a76fff56bde559a7eae01add3f5446ce57238eb5d56a1ce04aba66fe8ddac009 323564aa131a8f844bc99ffe99f5f151839729573c215eac12ddec35c3d4a721 nooverlap #define crypto_core_invsntrup1277_OUTPUTBYTES 2555 #define crypto_core_invsntrup1277_INPUTBYTES 1277 #define crypto_core_invsntrup1277_KEYBYTES 0 #define crypto_core_invsntrup1277_CONSTBYTES 0 crypto_core/mult3sntrup653 6c633f57506622093b66449977dda48d3736b0f20eb6f78104f010d8b94c5e51 2262cd945501dd3967456d24154cd50599be6620378821a6b96ffa95fd8b47ff #define crypto_core_mult3sntrup653_OUTPUTBYTES 653 #define crypto_core_mult3sntrup653_INPUTBYTES 653 #define crypto_core_mult3sntrup653_KEYBYTES 653 #define crypto_core_mult3sntrup653_CONSTBYTES 0 crypto_core/mult3sntrup761 4a489a66b1977b381a33f6cdb93b9760302789add5208c6e09acc0ea47788efd 52c3e6619d37995edd3088b9fbb36cebfbbf0308e263d52bc17c4334ef661dd3 #define crypto_core_mult3sntrup761_OUTPUTBYTES 761 #define crypto_core_mult3sntrup761_INPUTBYTES 761 #define crypto_core_mult3sntrup761_KEYBYTES 761 #define crypto_core_mult3sntrup761_CONSTBYTES 0 crypto_core/mult3sntrup857 1da51dad572b15486fcb9feee50a8ff22af3ab0cc7c02d0f4873f7fb250cad15 ae3c60101ad3de65884fd7019032d0e5be3b3f17c4e01bc9cfb0884ccaf9deb6 #define crypto_core_mult3sntrup857_OUTPUTBYTES 857 #define crypto_core_mult3sntrup857_INPUTBYTES 857 #define crypto_core_mult3sntrup857_KEYBYTES 857 #define crypto_core_mult3sntrup857_CONSTBYTES 0 crypto_core/mult3sntrup953 b926ca905106675e88bc27e7ffbcad138b421e8d011c7284ca388b29d4a8a513 0e4f2bdc9d1086a6c4de22e1978dd6f6303d031dedbc80876746326fbe8f8f3a #define crypto_core_mult3sntrup953_OUTPUTBYTES 953 #define crypto_core_mult3sntrup953_INPUTBYTES 953 #define crypto_core_mult3sntrup953_KEYBYTES 953 #define crypto_core_mult3sntrup953_CONSTBYTES 0 crypto_core/mult3sntrup1013 7977e0e9c64b2a69ebdd8ba689cb035d0e60211d0264a1158cac4db08c19d972 65bbb4ce5a9530513872bb37156d0e6054c0006049f81a79d8aa4692876b5b89 #define crypto_core_mult3sntrup1013_OUTPUTBYTES 1013 #define crypto_core_mult3sntrup1013_INPUTBYTES 1013 #define crypto_core_mult3sntrup1013_KEYBYTES 1013 #define crypto_core_mult3sntrup1013_CONSTBYTES 0 crypto_core/mult3sntrup1277 bac954209b725cd50724efb35ec8845e4bcdfcbfd7a8eb34d40c625a2772b9e3 d8c129631fc1d4f65d262ae836c485fa883a570fb650291e4f1c9317be948bc9 #define crypto_core_mult3sntrup1277_OUTPUTBYTES 1277 #define crypto_core_mult3sntrup1277_INPUTBYTES 1277 #define crypto_core_mult3sntrup1277_KEYBYTES 1277 #define crypto_core_mult3sntrup1277_CONSTBYTES 0 crypto_core/multsntrup653 426661f4ba18f29eae9e2b7d4d6c1569e9f91db693cafb76ede67fba9873b64b 5f42341ecdbb0e13b2d071ecc75f874ae3b0fa913f8b62fcf93fcb13d01b417c #define crypto_core_multsntrup653_OUTPUTBYTES 1306 #define crypto_core_multsntrup653_INPUTBYTES 1306 #define crypto_core_multsntrup653_KEYBYTES 653 #define crypto_core_multsntrup653_CONSTBYTES 0 crypto_core/multsntrup761 eda43ab4b93ce66fd26d8c0989b0297c8fe1e6984ba9b751f6193d35ef8a7a85 67171a7876696cfda06721697664dad2f14395fdc559520f41f90fce0195ecba #define crypto_core_multsntrup761_OUTPUTBYTES 1522 #define crypto_core_multsntrup761_INPUTBYTES 1522 #define crypto_core_multsntrup761_KEYBYTES 761 #define crypto_core_multsntrup761_CONSTBYTES 0 crypto_core/multsntrup857 d8bf44e9672dea2fc7a424fc0a0036c60cbb70bbde0754573455fffcf65e6e29 b043b7fb8f6de5ed482bcbec3b317ef523d5b1d67061dd51f4a5b335696f7ef6 #define crypto_core_multsntrup857_OUTPUTBYTES 1714 #define crypto_core_multsntrup857_INPUTBYTES 1714 #define crypto_core_multsntrup857_KEYBYTES 857 #define crypto_core_multsntrup857_CONSTBYTES 0 crypto_core/multsntrup953 6204041e985eecd6f688132f753441c49a9cfa99a37b142a49425a4e5f8c69f7 1b3f1343cd066c133980283e6e6f76ee8a1f3b72b2399109ee03a77d1e3b460b #define crypto_core_multsntrup953_OUTPUTBYTES 1906 #define crypto_core_multsntrup953_INPUTBYTES 1906 #define crypto_core_multsntrup953_KEYBYTES 953 #define crypto_core_multsntrup953_CONSTBYTES 0 crypto_core/multsntrup1013 bb44732592ee7d27c6e0890312f5d24a549c18dc5a96e228dd1ad2144634967d a9055126814af236349885adb167762de5c9b3e19f351de5e14abd91a5fc759f #define crypto_core_multsntrup1013_OUTPUTBYTES 2026 #define crypto_core_multsntrup1013_INPUTBYTES 2026 #define crypto_core_multsntrup1013_KEYBYTES 1013 #define crypto_core_multsntrup1013_CONSTBYTES 0 crypto_core/multsntrup1277 058a17a603ab239e229ecee9714be97af3029708f9c0cd163abec692e829d154 6a784e7b89a244f38d8683537c375958c9c75a4796a2de4d1daa3d00aad2668e #define crypto_core_multsntrup1277_OUTPUTBYTES 2554 #define crypto_core_multsntrup1277_INPUTBYTES 2554 #define crypto_core_multsntrup1277_KEYBYTES 1277 #define crypto_core_multsntrup1277_CONSTBYTES 0 crypto_core/scale3sntrup653 faf8c33dcacc9a98f6e4e751c1b406ebd2e9251ccac159d66847cfdcc45d0c53 6cb27323e7a868ff2eee421976f5b8fb9795c4b297f63fba3eee86bf559b98c2 #define crypto_core_scale3sntrup653_OUTPUTBYTES 1306 #define crypto_core_scale3sntrup653_INPUTBYTES 1306 #define crypto_core_scale3sntrup653_KEYBYTES 0 #define crypto_core_scale3sntrup653_CONSTBYTES 0 crypto_core/scale3sntrup761 f6b9859408d1cc2e2701b8df30a0f1d79d7f5a2ecdd6540b2b0581dfda36cdb2 d6657470f469bfb6616dcac8f672f028e435e89289a47b1987ce736dc189aef5 #define crypto_core_scale3sntrup761_OUTPUTBYTES 1522 #define crypto_core_scale3sntrup761_INPUTBYTES 1522 #define crypto_core_scale3sntrup761_KEYBYTES 0 #define crypto_core_scale3sntrup761_CONSTBYTES 0 crypto_core/scale3sntrup857 9a0c86ef536b17661fc00fb0a1d3bbaeb811467e20cdaf7f3b2e9d11c157e112 60cf4ed2b17e4f69461e1edebcc59e2a39c232d1d352b51f4ebb2b578f4833fe #define crypto_core_scale3sntrup857_OUTPUTBYTES 1714 #define crypto_core_scale3sntrup857_INPUTBYTES 1714 #define crypto_core_scale3sntrup857_KEYBYTES 0 #define crypto_core_scale3sntrup857_CONSTBYTES 0 crypto_core/scale3sntrup953 8314ddeee37405ec4052b6a273321eadef8a41e2037942e57799265898c5d69a 0e9ac7e49118ea8c87983e80587ad9b42cb117dab2e807d78f8589c447c44fdb #define crypto_core_scale3sntrup953_OUTPUTBYTES 1906 #define crypto_core_scale3sntrup953_INPUTBYTES 1906 #define crypto_core_scale3sntrup953_KEYBYTES 0 #define crypto_core_scale3sntrup953_CONSTBYTES 0 crypto_core/scale3sntrup1013 3abb01f247f92e49c17e453baf12cbe9d31d3e736f1727b128b1d26ce1b05d8e 62fa112e6584871480074801b4d477e6510956fab67d0e3ce6680fb208e1b1b9 #define crypto_core_scale3sntrup1013_OUTPUTBYTES 2026 #define crypto_core_scale3sntrup1013_INPUTBYTES 2026 #define crypto_core_scale3sntrup1013_KEYBYTES 0 #define crypto_core_scale3sntrup1013_CONSTBYTES 0 crypto_core/scale3sntrup1277 49d516671d2ccb0512a7301439c928e5c3b0c931be7394eb883c9ca3748d3f1d 58b6d7e044d2860ed9aee951367fcf8040720e3c780ce65bea54ff2f7b9ffed6 #define crypto_core_scale3sntrup1277_OUTPUTBYTES 2554 #define crypto_core_scale3sntrup1277_INPUTBYTES 2554 #define crypto_core_scale3sntrup1277_KEYBYTES 0 #define crypto_core_scale3sntrup1277_CONSTBYTES 0 crypto_core/weightsntrup653 fbbd83b55763dff9eb34f7e04f545b2217b39a45cf6b291c2a241df017978030 2509dd9d3711537b4946ebd79de22310103ffa1c7f48d049011a2384ac152f37 #define crypto_core_weightsntrup653_OUTPUTBYTES 2 #define crypto_core_weightsntrup653_INPUTBYTES 653 #define crypto_core_weightsntrup653_KEYBYTES 0 #define crypto_core_weightsntrup653_CONSTBYTES 0 crypto_core/weightsntrup761 1ad9d803dc23de6737da392d9005d9816c2914149e7959ed476913c7a95ddb3f 39a1e0fceab2d7a7bebdbd9e8e3d2c275658e3fe3bc2a53d84a976500dec99ef #define crypto_core_weightsntrup761_OUTPUTBYTES 2 #define crypto_core_weightsntrup761_INPUTBYTES 761 #define crypto_core_weightsntrup761_KEYBYTES 0 #define crypto_core_weightsntrup761_CONSTBYTES 0 crypto_core/weightsntrup857 92a23e9211ac4a5ad98bfab8db60dc8b5976d8e3a95e2e31123ad4672e8c2085 2e9d660f810c309dffeef79278af6f0f197fd37d507d8d8bc7aa2656cf18ab92 #define crypto_core_weightsntrup857_OUTPUTBYTES 2 #define crypto_core_weightsntrup857_INPUTBYTES 857 #define crypto_core_weightsntrup857_KEYBYTES 0 #define crypto_core_weightsntrup857_CONSTBYTES 0 crypto_core/weightsntrup953 d20b5285cc8d7080674b79f3627faf649cece975b77eef738f289750b08759dc 9d82958147e40c73e91ac145ffb54aa8e62426d5e7dfd1c65d01bbbebcbb5249 #define crypto_core_weightsntrup953_OUTPUTBYTES 2 #define crypto_core_weightsntrup953_INPUTBYTES 953 #define crypto_core_weightsntrup953_KEYBYTES 0 #define crypto_core_weightsntrup953_CONSTBYTES 0 crypto_core/weightsntrup1013 225c4959095c19803ffa71189c9e9eab360a246b1649f944e75505d31618f45b d88a96a3152511717b19c6e3e8d1192d37c2afc8cf7a3c324ee142363ba68989 #define crypto_core_weightsntrup1013_OUTPUTBYTES 2 #define crypto_core_weightsntrup1013_INPUTBYTES 1013 #define crypto_core_weightsntrup1013_KEYBYTES 0 #define crypto_core_weightsntrup1013_CONSTBYTES 0 crypto_core/weightsntrup1277 9664b645da2e7b2a53a69270303673141fead5b32cb937a2d1c45f73cbe3cf27 7139168303d50ca963c29781333800043dc0b4f7f69a14608d4550f8baefe498 #define crypto_core_weightsntrup1277_OUTPUTBYTES 2 #define crypto_core_weightsntrup1277_INPUTBYTES 1277 #define crypto_core_weightsntrup1277_KEYBYTES 0 #define crypto_core_weightsntrup1277_CONSTBYTES 0 crypto_core/wforcesntrup653 bf79e9b0d221c345938d5d5000d8dc2a01372e2dd582072aaea523187ecc1130 055650b83895d732c194cf68e2d0401841f233e7dd66aa3f22643b8db997d334 #define crypto_core_wforcesntrup653_OUTPUTBYTES 653 #define crypto_core_wforcesntrup653_INPUTBYTES 653 #define crypto_core_wforcesntrup653_KEYBYTES 0 #define crypto_core_wforcesntrup653_CONSTBYTES 0 crypto_core/wforcesntrup761 0b92df5bfe9577b28e57102af63b96169a0b22bcff2c4ae8ecd5030228a2e7f7 87aa3f938b26783a0e83c5dab497ffdc4e77e2ae74c457996253a6ee0a7c2d61 #define crypto_core_wforcesntrup761_OUTPUTBYTES 761 #define crypto_core_wforcesntrup761_INPUTBYTES 761 #define crypto_core_wforcesntrup761_KEYBYTES 0 #define crypto_core_wforcesntrup761_CONSTBYTES 0 crypto_core/wforcesntrup857 66150d04c4c22721674661ef22298ea0bce48f8c8e8c374b3506e58ac8ad8d77 787fb6635b1daf842448b74e478cca9b74fc6a985d93cad2b1095f0bcf904300 #define crypto_core_wforcesntrup857_OUTPUTBYTES 857 #define crypto_core_wforcesntrup857_INPUTBYTES 857 #define crypto_core_wforcesntrup857_KEYBYTES 0 #define crypto_core_wforcesntrup857_CONSTBYTES 0 crypto_core/wforcesntrup953 ccfc516d2d46a821fcebf8b326f81f90c54b1c6bdd795357022e77590a30c0ef 22397d2cdd1652713cd69cc70fa941ccff3877d4ed5012fbce791261f740252b #define crypto_core_wforcesntrup953_OUTPUTBYTES 953 #define crypto_core_wforcesntrup953_INPUTBYTES 953 #define crypto_core_wforcesntrup953_KEYBYTES 0 #define crypto_core_wforcesntrup953_CONSTBYTES 0 crypto_core/wforcesntrup1013 d4e33f5219277f77ca64411ebcc9ee0c3d5274f5b9ebb9301d5602b2f110d767 336f49eebed9c310480fd766968fdd1ad7bc3f0ba9779486e86244a77f3da07e #define crypto_core_wforcesntrup1013_OUTPUTBYTES 1013 #define crypto_core_wforcesntrup1013_INPUTBYTES 1013 #define crypto_core_wforcesntrup1013_KEYBYTES 0 #define crypto_core_wforcesntrup1013_CONSTBYTES 0 crypto_core/wforcesntrup1277 85ee647fbe8423f5655b8b98cd0258f8aac032a58e7ba63881c6476ac31574c9 21ca0241b12b7bbd8478b9026d8b2b71e1e18b1d4d247103555f3bdab7958397 #define crypto_core_wforcesntrup1277_OUTPUTBYTES 1277 #define crypto_core_wforcesntrup1277_INPUTBYTES 1277 #define crypto_core_wforcesntrup1277_KEYBYTES 0 #define crypto_core_wforcesntrup1277_CONSTBYTES 0 void crypto_core(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); crypto_hashblocks/sha512 f0bc623a9033f9f648336540e11e85be21aeb60905c7d8808d10ea20b39d58d1 f1a2c46c9ce7fa4cd22f180907d77b6f7189badef4b9a1b5284d6fb9db859b76 #define crypto_hashblocks_sha512_STATEBYTES 64 #define crypto_hashblocks_sha512_BLOCKBYTES 128 int crypto_hashblocks(unsigned char *,const unsigned char *,long long); crypto_hash/sha512 8220572f58bd4730be165c9739d8d4b0fd2e0229dbe01e25b4aed23f00f23b70 c1e322b7cbfc941260c5508967ba05bce22eeee94d425e708b7c3301ea1d5e2e #define crypto_hash_sha512_BYTES 64 void crypto_hash(unsigned char *,const unsigned char *,long long); crypto_kem/sntrup653 dda0bd7591a594a50d92d582175ec8465f5e17e464d115d3320de3b3baf82d1f 573607988fa717eb6a3f951e4263581130b77f80b3c4b3a05c416069ae8c4cf3 #define crypto_kem_sntrup653_SECRETKEYBYTES 1518 #define crypto_kem_sntrup653_PUBLICKEYBYTES 994 #define crypto_kem_sntrup653_CIPHERTEXTBYTES 897 #define crypto_kem_sntrup653_BYTES 32 crypto_kem/sntrup761 4081ab3f61bac9aae91bff7f9b212855177591ec4427dff2a501be124c5bb97d 730a572b64fa05a42bce7b1573edc04b70ef75909db309c012aa27f53f1f2f41 #define crypto_kem_sntrup761_SECRETKEYBYTES 1763 #define crypto_kem_sntrup761_PUBLICKEYBYTES 1158 #define crypto_kem_sntrup761_CIPHERTEXTBYTES 1039 #define crypto_kem_sntrup761_BYTES 32 crypto_kem/sntrup857 9b5d45689313eea407b627421e453bec7c563fd5430901d217cb4a868b5a2435 26f05b6f705531a3605d19304d98ca013f8c163ec2cf39b18767d9ba0a5c744d #define crypto_kem_sntrup857_SECRETKEYBYTES 1999 #define crypto_kem_sntrup857_PUBLICKEYBYTES 1322 #define crypto_kem_sntrup857_CIPHERTEXTBYTES 1184 #define crypto_kem_sntrup857_BYTES 32 crypto_kem/sntrup953 6f497ec200d79d3a509f5b6ba13489ca97ce9bf9238e07c9079b62e77112828c f09bd596d313fce6981b8d8135205442866823f295e68195257fa035188727c5 #define crypto_kem_sntrup953_SECRETKEYBYTES 2254 #define crypto_kem_sntrup953_PUBLICKEYBYTES 1505 #define crypto_kem_sntrup953_CIPHERTEXTBYTES 1349 #define crypto_kem_sntrup953_BYTES 32 crypto_kem/sntrup1013 1b5be888b85239e31dcd576507be93447dd8fa9791cd780f4146979406e763e5 78eab8aab4e7ac97bac21dfe4dbf2a09b5e0264a006679d1da13b43ecd643c04 #define crypto_kem_sntrup1013_SECRETKEYBYTES 2417 #define crypto_kem_sntrup1013_PUBLICKEYBYTES 1623 #define crypto_kem_sntrup1013_CIPHERTEXTBYTES 1455 #define crypto_kem_sntrup1013_BYTES 32 crypto_kem/sntrup1277 d03baeaa474adaa64bb1cf309fe7c3cccd29c82265f1d44fa668bf921580c8f1 8dd39f1e097cd413ed1ed1ecb6431e131535c906fa561283394b182c4ff09a5e #define crypto_kem_sntrup1277_SECRETKEYBYTES 3059 #define crypto_kem_sntrup1277_PUBLICKEYBYTES 2067 #define crypto_kem_sntrup1277_CIPHERTEXTBYTES 1847 #define crypto_kem_sntrup1277_BYTES 32 void crypto_kem_keypair(unsigned char *,unsigned char *); void crypto_kem_enc(unsigned char *,unsigned char *,const unsigned char *); void crypto_kem_dec(unsigned char *,const unsigned char *,const unsigned char *); libntruprime-20241021/autogen/0000755000000000000000000000000014705505542014632 5ustar rootrootlibntruprime-20241021/autogen/api0000755000000000000000000000221614705505542015332 0ustar rootroot#!/usr/bin/env python3 import os import sys import re result = '' with open('src/PROTOTYPES.c') as f: prototypes = f.read().splitlines() with open('src/CHECKSUMS') as f: checksums = f.read().splitlines() def porder(p): p = re.split(r'(\d+)',p) return [(1,int(x)) if x.isnumeric() else (0,x) for x in p] for o in 'verify','decode','encode','sort','core','hashblocks','hash','kem': co = f'crypto_{o}' plist = sorted(os.listdir(co),key=porder) for p in plist: for checksum in checksums: if checksum.startswith(f'{co}/{p} '): if o in ('decode','encode') or (o == 'core' and 'inv' in p): checksum += ' nooverlap' result += checksum+'\n' macros = None for i in sorted(os.listdir(f'crypto_{o}/{p}')): with open(f'{co}/{p}/{i}/api.h') as f: imacros = f.read() if macros is None: macros = imacros assert macros == imacros result += macros.replace('CRYPTO_',f'{co}_{p}_') for fun in prototypes: fun = fun.strip() if re.search(f' {co}[(_]',fun): result += fun.replace('extern ','') result += '\n' result += '\n' with open('api','w') as f: f.write(result) libntruprime-20241021/autogen/cli0000755000000000000000000001206714705505542015335 0ustar rootroot#!/usr/bin/env python3 import re keypair = r'''/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[PRIMITIVE_PUBLICKEYBYTES]; static unsigned char sk[PRIMITIVE_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"PRIMITIVE-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"PRIMITIVE-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"PRIMITIVE-keypair: usage: PRIMITIVE-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"PRIMITIVE-keypair: usage: PRIMITIVE-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } PRIMITIVE_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } ''' enc = r'''/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[PRIMITIVE_PUBLICKEYBYTES]; static unsigned char c[PRIMITIVE_CIPHERTEXTBYTES]; static unsigned char k[PRIMITIVE_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"PRIMITIVE-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"PRIMITIVE-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"PRIMITIVE-enc: usage: PRIMITIVE-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[PRIMITIVE_SECRETKEYBYTES]; static unsigned char c[PRIMITIVE_CIPHERTEXTBYTES]; static unsigned char k[PRIMITIVE_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"PRIMITIVE-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"PRIMITIVE-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"PRIMITIVE-dec: usage: PRIMITIVE-dec 7>sessionkey sessionkey ]*)>' class ttautolinkprocessor(markdown.inlinepatterns.InlineProcessor): def handleMatch(self,m,data): tt = markdown.inlinepatterns.etree.Element('span') tt.set('class','url') tt.text = markdown.inlinepatterns.util.AtomicString(m.group(1)) e = markdown.inlinepatterns.etree.Element('a') e.set('href',self.unescape(m.group(1))) e.append(tt) return e,m.start(0),m.end(0) class ttautolink(markdown.extensions.Extension): def extendMarkdown(self,md): md.inlinePatterns.register(ttautolinkprocessor(AUTOLINK_RE,md),'autolink',119) for md,html,pagetitle in files: fnmd = 'doc/%s.md' % md fnhtml = 'doc/html/%s.html' % html output = '' x = load(fnmd) x = markdown.markdown(x,extensions=['markdown.extensions.extra','markdown.extensions.tables',superscripts(),ttautolink()]) mtime = datetime.datetime.utcfromtimestamp(os.path.getmtime(fnmd)).strftime('%Y.%m.%d') output += '\n\n' output += style output += '\n' output += sitetitle output += ': ' output += pagetitle output += '\n' output += '\n' output += '\n' output += '
\n' output += '
\n' output += sitetitle output += '
\n' for submd,subhtml,subpagetitle in files: if subhtml == html: output += '\n' output += '
\n' output += '
'+sitetitle+': '+pagetitle+'
\n' output += x output += '
Version:\n' output += 'This is version %s of the "%s" web page.\n' % (mtime,pagetitle) output += '\n' output += '
\n' output += '\n' output += '\n' if not os.path.exists(fnhtml) or output != load(fnhtml): with open(fnhtml+'.new','w') as f: f.write(output) os.chmod(fnhtml+'.new',0o444) os.rename(fnhtml+'.new',fnhtml) libntruprime-20241021/autogen/html-files0000644000000000000000000000041414705505542016620 0ustar rootrootreadme:index:Intro download:download:Download install:install:Install test:test:Test api:api:API cli:cli:CLI security:security:Security verification:verification:Verification speed:speed:Speed internals:internals:Internals people:people:People license:license:License libntruprime-20241021/autogen/html-style0000644000000000000000000000425514705505542016665 0ustar rootroot libntruprime-20241021/autogen/html-title0000644000000000000000000000001514705505542016634 0ustar rootrootlibntruprime libntruprime-20241021/autogen/man0000755000000000000000000000234614705505542015340 0ustar rootroot#!/bin/sh package=ntruprime namespace=sntrup mkdir -p doc/man pandoc --standalone --to man --metadata title=$namespace --metadata section=3 < doc/api.md | sed 's/^ //' > doc/man/$namespace.3 for param in 653 761 857 953 1013 1277 do for manpage in "$param" "$param"_keypair "$param"_enc "$param"_dec do rm -f doc/man/$namespace"$manpage".3 ln -s $namespace.3 doc/man/$namespace"$manpage".3 done done pandoc --standalone --to man --metadata title=$namespace --metadata section=1 < doc/cli.md | sed 's/^ //' > doc/man/$namespace.1 for param in 653 761 857 953 1013 1277 do for manpage in "$param" "$param"-keypair "$param"-enc "$param"-dec do rm -f doc/man/$namespace"$manpage".1 ln -s $namespace.1 doc/man/$namespace"$manpage".1 done done pandoc --standalone --to man --metadata title=${package}-fulltest --metadata section=1 < doc/${package}-fulltest.md | sed 's/^ //' > doc/man/${package}-fulltest.1 pandoc --standalone --to man --metadata title=${package}-test --metadata section=1 < doc/${package}-test.md | sed 's/^ //' > doc/man/${package}-test.1 pandoc --standalone --to man --metadata title=${package}-speed --metadata section=1 < doc/${package}-speed.md | sed 's/^ //' > doc/man/${package}-speed.1 libntruprime-20241021/autogen/md-speed0000755000000000000000000000440014705505542016254 0ustar rootroot#!/usr/bin/env python3 import os uarchdate = { 'a53':20121030, 'a72':20160101, # XXX: announced in 2015.02 but supposedly not shipped until 2016 'airmont':20150401, # XXX: not sure about exact date 'broadwell':20141027, 'core2':20060726, 'firestorm':20201110, 'goldencove':20211104, 'goldmont':20160418, 'haswell':20130604, 'skylake':20150805, 'tigerlake':20200902, 'zen2':20190707, 'zen3':20201105, } uarchname = { 'a53':'Cortex-A53 (2012)', 'a72':'Cortex-A72 (2016)', 'airmont':'Airmont (2015)', 'broadwell':'Broadwell (2014)', 'core2':'Core 2 (2006)', 'firestorm':'Firestorm (2020)', 'goldencove':'Golden Cove (2021)', 'goldmont':'Goldmont (2016)', 'haswell':'Haswell (2013)', 'skylake':'Skylake (2015)', 'tigerlake':'Tiger Lake (2020)', 'zen2':'Zen 2 (2019)', 'zen3':'Zen 3 (2020)', } kems = 'sntrup653','sntrup761','sntrup857','sntrup953','sntrup1013','sntrup1277' def sortkey(m): uarch = ''.join(m.split('-')[:1]) return uarchdate[uarch] machines = sorted(os.listdir('benchmarks'),key=sortkey,reverse=True) def doit(m): uarch = uarchname[''.join(m.split('-')[:1])] benchmarksdir = 'benchmarks' keypair = {} enc = {} dec = {} with open(f'{benchmarksdir}/{m}') as f: for line in f: line = line.split() if len(line) < 4: continue for kem in kems: if line[:2] == [f'kem_{kem}_keypair','selected']: keypair[kem] = int(line[3]) if line[:2] == [f'kem_{kem}_enc','selected']: enc[kem] = int(line[3]) if line[:2] == [f'kem_{kem}_dec','selected']: dec[kem] = int(line[3]) C = '' D = '' for kem in kems: out.write(f'| {uarch} | {kem} | {C}{keypair[kem]}{D} | {C}{enc[kem]}{D} | {C}{dec[kem]}{D}\n') uarch = '' with open('doc/speed.md.tmp','w') as out: with open('autogen/md-speed-top') as f: out.write(f.read()) out.write('\n\n') out.write('| μarch | KEM | keypair | enc | dec |\n') out.write('| :---- | :--- | ------: | ---: | ---: |\n') for m in machines: doit(m) out.write('\n\n') with open('autogen/md-speed-bot') as f: out.write(f.read()) with open('doc/speed.md') as f: x = f.read() with open('doc/speed.md.tmp') as f: y = f.read() if x != y: os.rename('doc/speed.md.tmp','doc/speed.md') else: os.remove('doc/speed.md.tmp') libntruprime-20241021/autogen/md-speed-bot0000644000000000000000000000475114705505542017044 0ustar rootrootMicroarchitectures are listed in reverse chronological order of when they were introduced. In the libntruprime distribution, `command/ntruprime-speed.c` measures libntruprime; `benchmarks/*-*` is the output of `ntruprime-speed` on various machines; and `autogen/md-speed` extracts the table from those measurements. The table reports only interquartile means of cycle counts, not the full distribution of cycle counts. See the full output files for differences between multiple measurements and the interquartile mean. ### Faster `sntrup` software There has been extensive further work on `sntrup` software speeds beyond the current libntruprime speeds. libntruprime has a policy of [limiting code size](security.html), but if there are applications that need these speedups then they can still be considered for inclusion in libntruprime: * `mult3sntrup761/avx2unsigned` in SUPERCOP from Ming-Shing Chen: faster multiplications on Intel/AMD. * `invsntrup761/jumpdivsteps` in SUPERCOP from Daniel J. Bernstein, Ming-Shing Chen, Gregor Seiler, and Bo-Yin Yang: faster inversions on Intel/AMD. * ["OpenSSLNTRU: Faster post-quantum TLS key exchange"](https://eprint.iacr.org/2021/826) from Daniel J. Bernstein, Billy Bob Brumley, Ming-Shing Chen, and Nicola Tuveri: faster inversions for batch operations. * ["Multi-Parameter Support with NTTs for NTRU and NTRU Prime on Cortex-M4"](https://eprint.iacr.org/2022/930) from Erdem Alkim, Vincent Hwang, and Bo-Yin Yang: faster multiplications on 32-bit ARM. * ["Algorithmic Views of Vectorized Polynomial Multipliers for NTRU and NTRU Prime"](https://eprint.iacr.org/2023/541) from Han-Ting Chen, Yi-Hua Chung, Vincent Hwang, Chi-Ting Liu, and Bo-Yin Yang: faster multiplications on 64-bit ARM. * ["Pushing the Limit of Vectorized Polynomial Multiplication for NTRU Prime"](https://eprint.iacr.org/2023/604) from Vincent Hwang: faster multiplications on 64-bit ARM and Intel/AMD. * ["Algorithmic Views of Vectorized Polynomial Multipliers – NTRU Prime"](https://eprint.iacr.org/2023/1580) from Vincent Hwang, Chi-Ting Liu, and Bo-Yin Yang: faster multiplications on 64-bit ARM. * ["A Survey of Polynomial Multiplications for Lattice-Based Cryptosystems"](https://eprint.iacr.org/2023/1962) from Vincent Hwang: faster multiplications on Intel/AMD. * ["Jumping for Bernstein-Yang Inversion"](https://eprint.iacr.org/2024/644) from Li-Jie Jian, Ting-Yuan Wang, Bo-Yin Yang, and Ming-Shing Chen: faster inversions on 64-bit ARM. libntruprime-20241021/autogen/md-speed-top0000644000000000000000000000030214705505542017046 0ustar rootrootIn the following speed table, smaller keygen/enc/dec numbers are better. The numbers are interquartile means of single-core cycle counts on various microarchitectures. Overclocking is disabled. libntruprime-20241021/autogen/readme-version0000755000000000000000000000066214705505542017504 0ustar rootroot#!/usr/bin/env python3 import os import re def save(fn,x): if os.path.exists(fn): with open(fn) as f: cur = f.read() if cur == x: return with open(fn,'w') as f: f.write(x) with open('version') as f: version = f.read().strip() with open('doc/readme.md') as f: x = f.read() x = re.sub('Latest release: \[[0-9]*\]\(download.html\)',f'Latest release: [{version}](download.html)',x) save('doc/readme.md',x) libntruprime-20241021/autogen/speed0000755000000000000000000002344114705505542015664 0ustar rootroot#!/usr/bin/env python3 output = r'''/* WARNING: auto-generated (by autogen/speed); do not edit */ #include #include #include #include #include #include #include #include #include /* -lcpucycles */ #include /* -lntruprime */ #include /* -lrandombytes */ static const char *targeto = 0; static const char *targetp = 0; static const char *targeti = 0; #include "limits.inc" static void *callocplus(long long len) { void *x = calloc(1,len + 128); if (!x) abort(); return x; } static void *aligned(void *x) { unsigned char *y = x; y += 63 & (-(unsigned long) x); return y; } static void longlong_sort(long long *x,long long n) { long long top,p,q,r,i; if (n < 2) return; top = 1; while (top < n - top) top += top; for (p = top;p > 0;p >>= 1) { for (i = 0;i < n - p;++i) if (!(i & p)) if (x[i] > x[i+p]) { long long t = x[i]; x[i] = x[i+p]; x[i+p] = t; } i = 0; for (q = top;q > p;q >>= 1) { for (;i < n - q;++i) { if (!(i & p)) { long long a = x[i + p]; for (r = q;r > p;r >>= 1) if (a > x[i+r]) { long long t = a; a = x[i+r]; x[i+r] = t; } x[i + p] = a; } } } } } #define TIMINGS 32 // must be multiple of 4 static long long t[TIMINGS+1]; static void t_print(const char *op,long long impl,long long len) { long long tsort[TIMINGS]; long long iqm = 0; printf("%s",op); if (impl >= 0) printf(" %lld",impl); else printf(" selected"); printf(" %lld",len); for (long long i = 0;i < TIMINGS;++i) tsort[i] = t[i] = t[i+1]-t[i]; longlong_sort(tsort,TIMINGS); for (long long j = TIMINGS/4;j < 3*TIMINGS/4;++j) iqm += tsort[j]; iqm *= 2; iqm += TIMINGS/2; iqm /= TIMINGS; printf(" %lld ",iqm); for (long long i = 0;i < TIMINGS;++i) printf("%+lld",t[i]-iqm); printf("\n"); fflush(stdout); } #define MAXTEST_BYTES 65536 static void measure_cpucycles(void) { printf("cpucycles selected persecond %lld\n",cpucycles_persecond()); printf("cpucycles selected implementation %s\n",cpucycles_implementation()); for (long long i = 0;i <= TIMINGS;++i) t[i] = cpucycles(); t_print("cpucycles",-1,0); } static void measure_randombytes(void) { void *mstorage = callocplus(MAXTEST_BYTES); unsigned char *m = aligned(mstorage); long long mlen = 0; while (mlen < MAXTEST_BYTES) { for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); randombytes(m,mlen); } t_print("randombytes",-1,mlen); mlen += 1+mlen/2; } free(mstorage); } ''' # XXX: integrate todo into api todo = ( ('verify',( ('x','ntruprime_verify_BYTES'), ('y','ntruprime_verify_BYTES'), ),( ('crypto_verify','x','y'), )), ('hashblocks',( ('h','ntruprime_hashblocks_STATEBYTES'), ('m','MAXTEST_BYTES'), ('mlen',None), ),( ('crypto_hashblocks','h','m','mlen'), )), ('hash',( ('h','ntruprime_hash_BYTES'), ('m','MAXTEST_BYTES'), ('mlen',None), ),( ('crypto_hash','h','m','mlen'), )), ('decode',( ('x','ntruprime_decode_ITEMS*ntruprime_decode_ITEMBYTES'), ('s','ntruprime_decode_STRBYTES'), ),( ('crypto_decode','x','s'), )), ('encode',( ('s','ntruprime_encode_STRBYTES'), ('x','ntruprime_encode_ITEMS*ntruprime_encode_ITEMBYTES'), ),( ('crypto_encode','s','x'), )), ('sort',( ('m','MAXTEST_BYTES'), ('mlen',None), ),( ('crypto_sort','m','mlen'), )), ('core',( ('h','ntruprime_core_OUTPUTBYTES'), ('n','ntruprime_core_INPUTBYTES'), ('k','ntruprime_core_KEYBYTES'), ('c','ntruprime_core_CONSTBYTES'), ),( ('crypto_core','h','n','k','c'), )), ('kem',( ('p','ntruprime_kem_PUBLICKEYBYTES'), ('s','ntruprime_kem_SECRETKEYBYTES'), ('c','ntruprime_kem_CIPHERTEXTBYTES'), ('k','ntruprime_kem_BYTES'), ('T','ntruprime_kem_BYTES'), ),( ('crypto_kem_keypair','p','s'), ('crypto_kem_enc','c','k','p'), ('crypto_kem_dec','T','c','s'), )), ) operations = [] primitives = {} sizes = {} exports = {} prototypes = {} with open('api') as f: for line in f: line = line.strip() if line.startswith('crypto_'): x = line.split() x = x[0].split('/') assert len(x) == 2 o = x[0].split('_')[1] if o not in operations: operations += [o] p = x[1] if o not in primitives: primitives[o] = [] primitives[o] += [p] continue if line.startswith('#define '): x = line.split(' ') x = x[1].split('_') assert len(x) == 4 assert x[0] == 'crypto' o = x[1] p = x[2] if (o,p) not in sizes: sizes[o,p] = '' sizes[o,p] += line+'\n' continue if line.endswith(');'): fun,args = line[:-2].split('(') rettype,fun = fun.split() fun = fun.split('_') o = fun[1] assert fun[0] == 'crypto' if o not in exports: exports[o] = [] exports[o] += ['_'.join(fun[1:])] if o not in prototypes: prototypes[o] = [] prototypes[o] += [(rettype,fun,args)] for t in todo: o,vars,benches = t for p in primitives[o]: output += '\n' output += 'static void measure_%s_%s(void)\n' % (o,p) output += '{\n' output += ' if (targeto && strcmp(targeto,"%s")) return;\n' % o output += ' if (targetp && strcmp(targetp,"%s")) return;\n' % p varsize = {} for v,size in vars: if size is None: output += ' long long %s;\n' % v else: size = size.replace('ntruprime_'+o,'ntruprime_'+o+'_'+p) output += ' void *%sstorage = callocplus(%s);\n' % (v,size) output += ' unsigned char *%s = aligned(%sstorage);\n' % (v,v) varsize[v] = size output += '\n' output += ' for (long long impl = -1;impl < ntruprime_numimpl_%s_%s();++impl) {\n' % (o,p) for rettype,fun,args in prototypes[o]: output += ' %s (*%s)(%s);\n' % (rettype,'_'.join(fun),args) output += ' if (targeti && strcmp(targeti,ntruprime_dispatch_%s_%s_implementation(impl))) continue;\n' % (o,p) output += ' if (impl >= 0) {\n' for rettype,fun,args in prototypes[o]: f2 = ['ntruprime','dispatch',o,p]+fun[2:] output += ' %s = %s(impl);\n' % ('_'.join(fun),'_'.join(f2)) output += r' printf("%s_%s %%lld implementation %%s compiler %%s\n",impl,ntruprime_dispatch_%s_%s_implementation(impl),ntruprime_dispatch_%s_%s_compiler(impl));' % (o,p,o,p,o,p) output += '\n' output += ' } else {\n' for rettype,fun,args in prototypes[o]: f2 = ['ntruprime',o,p]+fun[2:] output += ' %s = %s;\n' % ('_'.join(fun),'_'.join(f2)) output += r' printf("%s_%s selected implementation %%s compiler %%s\n",ntruprime_%s_%s_implementation(),ntruprime_%s_%s_compiler());' % (o,p,o,p,o,p) output += '\n' output += ' }\n' for v,size in vars: if size is not None: size = size.replace('ntruprime_'+o,'ntruprime_'+o+'_'+p) output += ' randombytes(%s,%s);\n' % (v,size) alreadybenched = set() alreadybenched.add('assert') for b in benches: if b[0] in alreadybenched: output += ' %s(%s);\n' % (b[0],','.join(b[1:])) continue fun = b[0].split('_') shortfun = '_'.join([o,p]+fun[2:]) alreadybenched.add(b[0]) if 'mlen' in b[1:]: if b[0] == 'crypto_xof': output += ' hlen = 32;\n' output += ' mlen = 0;\n' if b[0] == 'crypto_sort': output += ' while (ntruprime_%s_%s_BYTES*mlen <= MAXTEST_BYTES) {\n' % (o,p) output += ' randombytes(m,ntruprime_%s_%s_BYTES*mlen);\n' % (o,p) else: output += ' while (mlen <= MAXTEST_BYTES) {\n' output += ' randombytes(m,mlen);\n' output += ' for (long long i = 0;i <= TIMINGS;++i) {\n' output += ' t[i] = cpucycles();\n' output += ' %s(%s);\n' % (b[0],','.join(b[1:])) output += ' }\n' output += ' t_print("%s",impl,mlen);\n' % (shortfun) output += ' mlen += 1+mlen/2;\n' output += ' }\n' else: output += ' for (long long i = 0;i <= TIMINGS;++i) {\n' output += ' t[i] = cpucycles();\n' output += ' %s(%s);\n' % (b[0],','.join(b[1:])) output += ' }\n' output += ' t_print("%s",impl,%s);\n' % (shortfun,varsize[b[1]]) if 'hlen' in b[1:]: if b[0] == 'crypto_xof': output += ' mlen = 32;\n' output += ' hlen = 1;\n' output += ' while (hlen <= MAXTEST_BYTES) {\n' output += ' randombytes(h,hlen);\n' output += ' for (long long i = 0;i <= TIMINGS;++i) {\n' output += ' t[i] = cpucycles();\n' output += ' %s(%s);\n' % (b[0],','.join(b[1:])) output += ' }\n' output += ' t_print("%s",impl,-hlen);\n' % (shortfun) output += ' hlen += 1+hlen/2;\n' output += ' }\n' output += ' }\n' for v,size in reversed(vars): if size is not None: output += ' free(%sstorage);\n' % v output += '}\n' output += r''' #include "print_cpuid.inc" int main(int argc,char **argv) { printf("ntruprime version %s\n",ntruprime_version); printf("ntruprime arch %s\n",ntruprime_arch); print_cpuid(); if (*argv) ++argv; if (*argv) { targeto = *argv++; if (*argv) { targetp = *argv++; if (*argv) { targeti = *argv++; } } } measure_cpucycles(); measure_randombytes(); limits(); ''' for t in todo: o,vars,benches = t for p in primitives[o]: output += ' measure_%s_%s();\n' % (o,p) output += r''' return 0; } ''' with open('command/ntruprime-speed.c','w') as f: f.write(output) libntruprime-20241021/autogen/src0000755000000000000000000002236214705505542015354 0ustar rootroot#!/usr/bin/env python3 systems = ( # p,q,sk,pk,ct,w (653,4621,1518,994,897,288), (761,4591,1763,1158,1039,286), (857,5167,1999,1322,1184,322), (953,6343,2254,1505,1349,396), (1013,7177,2417,1623,1455,448), (1277,7879,3059,2067,1847,492), ) apiall = {} topdir = 'crypto_kem' import shutil import os import re from math import floor,ceil import subprocess def readfile(fn): with open(fn) as f: return f.read() def writefile(fn,x): with open(fn,'w') as f: f.write(x) def writefiletime(fn,x,t): writefile(fn,x) os.utime(fn,(t,t)) build_subroutine_done = set() def build_subroutine(sub,macros): src = 'src/%s'%sub srctime = os.stat(src).st_mtime o = sub.split('/')[0] op = 'crypto_%s'%sub for m in macros: op = re.sub(m,str(macros[m]),op) if op in build_subroutine_done: return print('building %s'%op) shutil.rmtree(op,ignore_errors=True) os.makedirs(op) api = '' if sub.startswith('verify/'): api = '#define CRYPTO_BYTES %s\n'%macros['BYTES'] if sub.startswith('decode/') or sub.startswith('encode/'): api = '#define CRYPTO_STRBYTES %s\n'%macros['STRBYTES'] api += '#define CRYPTO_ITEMS %s\n'%macros['ITEMS'] api += '#define CRYPTO_ITEMBYTES %s\n'%macros['ITEMBYTES'] if sub.startswith('core/'): api = '#define CRYPTO_OUTPUTBYTES %s\n'%macros['OUTPUTBYTES'] api += '#define CRYPTO_INPUTBYTES %s\n'%macros['INPUTBYTES'] api += '#define CRYPTO_KEYBYTES %s\n'%macros['KEYBYTES'] api += '#define CRYPTO_CONSTBYTES %s\n'%macros['CONSTBYTES'] if o not in apiall: apiall[o] = '' apiall[o] += api.replace('CRYPTO_',op.replace('/','_')) for impl in sorted(os.listdir(src)): if impl == 'supercop': continue srci = '%s/%s'%(src,impl) srcitime = os.stat(srci).st_mtime opi = '%s/%s'%(op,impl) os.makedirs(opi) if impl != 'supercop': writefiletime('%s/api.h'%opi,api,srctime) for fn in sorted(os.listdir(srci)): if fn == 'mult768.c': if macros['P'] > 768: continue if fn in ('mult1024.c','precomp7681.inc','precomp10753.inc'): if macros['P'] < 768: continue if macros['P'] > 1024: continue if fn in ('mult1280.c'): if macros['P'] < 1024: continue if macros['P'] > 1280: continue srcif = '%s/%s'%(srci,fn) opif = '%s/%s'%(opi,fn) x = readfile(srcif) for m in macros: x = re.sub('{%s}'%m,'%s'%macros[m],x) writefiletime(opif,x,os.stat(srcif).st_mtime) if os.stat(srcif).st_mode&1: os.chmod(opif,0o755) if os.path.exists('%s/Makefile'%opi): subprocess.check_call('cd %s; make'%opi,shell=True) os.utime(opi,(srcitime,srcitime)) changedsrc = False for m in macros: newsrc = re.sub(m,'%s'%macros[m],src) if newsrc != src: changedsrc = True src = newsrc if changedsrc and os.path.exists(src): srctime = os.stat(src).st_mtime for impl in sorted(os.listdir(src)): if impl == 'supercop': continue srci = '%s/%s'%(src,impl) srcitime = os.stat(srci).st_mtime opi = '%s/%s'%(op,impl) os.makedirs(opi) writefiletime('%s/api.h'%opi,api,srctime) for fn in sorted(os.listdir(srci)): srcif = '%s/%s'%(srci,fn) opif = '%s/%s'%(opi,fn) x = readfile(srcif) writefiletime(opif,x,os.stat(srcif).st_mtime) if os.stat(srcif).st_mode&1: os.chmod(opif,0o755) os.utime(opi,(srcitime,srcitime)) os.utime(op,(srctime,srctime)) build_subroutine_done.add(op) # ----- sizes of encodings limit = 16384 def Encode(R,M): if len(M) == 0: return [] S = [] if len(M) == 1: r,m = R[0],M[0] while m > 1: S += [r%256] r,m = r//256,(m+255)//256 return S R2,M2 = [],[] for i in range(0,len(M)-1,2): m,r = M[i]*M[i+1],R[i]+M[i]*R[i+1] while m >= limit: S += [r%256] r,m = r//256,(m+255)//256 R2 += [r] M2 += [m] if len(M)&1: R2 += [R[-1]] M2 += [M[-1]] return S+Encode(R2,M2) def encodebytes(M): return len(Encode([0]*len(M),M)) # ----- main loop for p,q,sk,pk,ct,w in systems: q23 = (q+2)//3 q14 = round(2.0**14/q) q15 = floor(2.0**15/q) q18 = round(2.0**18/q) q27 = round(2.0**27/q) q31 = floor(2.0**31/q) qinv = pow(q,2**14-1,2**16) if qinv >= 2**15: qinv -= 2**16 q10753 = (10753<<16)%q if q10753 >= q/2: q10753 -= q ppadsort = p if p == 761: ppadsort = 768 if p == 953: ppadsort = 960 if p == 1013: ppadsort = 1024 if p == 1277: ppadsort = 1280 assert ppadsort >= p ppad = p while ppad%16 != 1: ppad += 1 ppad64 = p while ppad64%64 != 1: ppad64 += 1 # ----- parameter checks assert p > 0 assert p%4 == 1 assert q > 0 assert q%6 == 1 assert w > 0 assert 2*p >= 3*w assert q >= 16*w+1 assert p < 1280 assert q < 8192 smallbytes = ceil(p/4.0) roundedbytes = encodebytes([q23]*p) assert pk == encodebytes([q]*p) assert sk == 3*smallbytes+pk+32 assert ct == 32+roundedbytes # ----- build relevant subroutines first build_subroutine('verify/BYTES',{'BYTES':ct}) macros = {'STRBYTES':2,'ITEMS':1,'ITEMBYTES':2} build_subroutine('decode/int16',macros) build_subroutine('encode/int16',macros) macros = {'P':p,'STRBYTES':(p+3)//4,'ITEMS':p,'ITEMBYTES':1} macros['AVXLOOPS'] = ceil(p/128) macros['AVXOVERSHOOT'] = 32*ceil(p/128)-floor(p/4) build_subroutine('decode/Px3',macros) build_subroutine('encode/Px3',macros) macros = {'P':p,'STRBYTES':p*2,'ITEMS':p,'ITEMBYTES':2} build_subroutine('decode/Pxint16',macros) build_subroutine('encode/Pxint16',macros) macros = {'P':p,'STRBYTES':p*4,'ITEMS':p,'ITEMBYTES':4} build_subroutine('decode/Pxint32',macros) macros = {'P':p,'Q':q,'Q12':(q-1)//2,'STRBYTES':encodebytes([q]*p),'ITEMS':p,'ITEMBYTES':2} build_subroutine('decode/PxQ',macros) build_subroutine('encode/PxQ',macros) macros = {'P':p,'Q':q,'Q12':(q-1)//2,'R':q23,'STRBYTES':encodebytes([q23]*p),'ITEMS':p,'ITEMBYTES':2} build_subroutine('decode/PxR',macros) build_subroutine('encode/PxR',macros) build_subroutine('encode/PxRround',macros) macros = {'P':p,'STRBYTES':p,'ITEMS':p,'ITEMBYTES':2} build_subroutine('encode/Pxfreeze3',macros) macros = {'P':p,'PPAD64':ppad64,'OUTPUTBYTES':p+1,'INPUTBYTES':p,'KEYBYTES':0,'CONSTBYTES':0} build_subroutine('core/inv3sntrupP',macros) macros = {'P':p,'OUTPUTBYTES':p,'INPUTBYTES':p,'KEYBYTES':p,'CONSTBYTES':0} build_subroutine('core/mult3sntrupP',macros) macros = {'P':p,'Q':q,'QINV':qinv, 'Q18':q18,'15Q':q15,'Q27':q27,'Q31':q31,'Q10753':q10753, 'OUTPUTBYTES':2*p,'INPUTBYTES':2*p,'KEYBYTES':p,'CONSTBYTES':0} build_subroutine('core/multsntrupP',macros) macros = {'P':p,'PPAD':ppad,'Q':q,'QINV':qinv, 'Q14':q14,'15Q':q15,'Q18':q18,'Q27':q27,'Q31':q31, 'OUTPUTBYTES':2*p+1,'INPUTBYTES':p,'KEYBYTES':0,'CONSTBYTES':0} build_subroutine('core/invsntrupP',macros) macros = {'P':p,'Q':q,'OUTPUTBYTES':2*p,'INPUTBYTES':2*p,'KEYBYTES':0,'CONSTBYTES':0} build_subroutine('core/scale3sntrupP',macros) macros = {'P':p,'OUTPUTBYTES':2,'INPUTBYTES':p,'KEYBYTES':0,'CONSTBYTES':0} macros['AVXENDINGMASK'] = ','.join(['1']*(p%32)+['0']*(32-(p%32))) build_subroutine('core/weightsntrupP',macros) macros = {'P':p,'W':w,'OUTPUTBYTES':p,'INPUTBYTES':p,'KEYBYTES':0,'CONSTBYTES':0} build_subroutine('core/wforcesntrupP',macros) # ----- and now build the kem system = f'sntrup{p}' src = 'src/kem/sntrupP' srctime = os.stat(src).st_mtime op = '%s/%s'%(topdir,system) print('building %s'%op) shutil.rmtree(op,ignore_errors=True) os.makedirs(op) opreal = 'crypto_kem/%s'%system api = '#define CRYPTO_SECRETKEYBYTES %s\n'%sk api += '#define CRYPTO_PUBLICKEYBYTES %s\n'%pk api += '#define CRYPTO_CIPHERTEXTBYTES %s\n'%ct api += '#define CRYPTO_BYTES 32\n' if 'kem' not in apiall: apiall['kem'] = '' apiall['kem'] += api.replace('CRYPTO_',opreal.replace('/','_')) for impl in sorted(os.listdir(src)): srci = '%s/%s'%(src,impl) opi = '%s/%s'%(op,impl) os.makedirs(opi) target = '%s/api.h'%opi writefiletime(target,api,os.stat(srci).st_mtime) for fn in sorted(os.listdir(srci)): srcif = '%s/%s'%(srci,fn) opif = '%s/%s'%(opi,fn) if (impl,fn) in (('factored','params.h'),('avx','Makefile')): x = readfile(srcif) x = re.sub('{P}','%s'%p,x) x = re.sub('{PPADSORT}','%s'%ppadsort,x) x = re.sub('{Q}','%s'%q,x) x = re.sub('{R}','%d'%q23,x) x = re.sub('{Q18}','%d'%q18,x) x = re.sub('{Q27}','%d'%q27,x) x = re.sub('{Q31}','%d'%q31,x) x = re.sub('{W}','%s'%w,x) x = re.sub('{CIPHERTEXTBYTES}','%s'%ct,x) writefiletime(opif,x,os.stat(srcif).st_mtime) continue if p != 761 and fn == 'CHANGES': continue # XXX x = readfile(srcif) writefiletime(opif,x,os.stat(srcif).st_mtime) if os.stat(srcif).st_mode&1: os.chmod(opif,0o755) for impl in sorted(os.listdir('src/kem/sntrupP')): opi = '%s/%s'%(op,impl) if os.path.exists('%s/Makefile'%opi): subprocess.check_call('cd %s; make'%opi,shell=True) os.utime(op,(srctime,srctime)) for impl in sorted(os.listdir(src)): srci = '%s/%s'%(src,impl) srcitime = os.stat(srci).st_mtime opi = '%s/%s'%(op,impl) os.utime(opi,(srcitime,srcitime)) with open('api','w') as f: for sub in 'verify','decode','encode','core','kem': f.write(apiall[sub]) f.write('\n') libntruprime-20241021/autogen/test0000755000000000000000000014464714705505542015557 0ustar rootroot#!/usr/bin/env python3 import random import os def save(fn,x): if os.path.exists(fn): with open(fn) as f: cur = f.read() if cur == x: return with open(fn,'w') as f: f.write(x) # ----- Python versions of the subroutines def littleendian(x,bytes): return [255&(x>>(8*i)) for i in range(bytes)] def int16(x): x %= 65536 if x >= 32768: x -= 65536 return x def freeze(x,q): x %= q if x+x >= q: x -= q return x limit = 16384 def Encode(R,M): if len(M) == 0: return [] S = [] if len(M) == 1: r,m = R[0],M[0] while m > 1: S += [r%256] r,m = r//256,(m+255)//256 return S R2,M2 = [],[] for i in range(0,len(M)-1,2): m,r = M[i]*M[i+1],R[i]+M[i]*R[i+1] while m >= limit: S += [r%256] r,m = r//256,(m+255)//256 R2 += [r] M2 += [m] if len(M)&1: R2 += [R[-1]] M2 += [M[-1]] return S+Encode(R2,M2) def Decode(S,M): if len(M) == 0: return [] if len(M) == 1: return [sum(S[i]*256**i for i in range(len(S)))%M[0]] k = 0 bottom,M2 = [],[] for i in range(0,len(M)-1,2): m,r,t = M[i]*M[i+1],0,1 while m >= limit: r,t,k,m = r+S[k]*t,t*256,k+1,(m+255)//256 bottom += [(r,t)] M2 += [m] if len(M)&1: M2 += [M[-1]] R2 = Decode(S[k:],M2) R = [] for i in range(0,len(M)-1,2): r,t = bottom[i//2] r += t*R2[i//2] R += [r%M[i]] R += [(r//M[i])%M[i+1]] if len(M)&1: R += [R2[-1]] return R def decode_int16(s): s = list(s) assert len(s) == 2 assert all(si >= 0 for si in s) assert all(si < 256 for si in s) x = [s[0]+256*s[1]] return {'x':x,'s':s} def decode_pxint16(p,s): s = list(s) assert len(s) == 2*p assert all(si >= 0 for si in s) assert all(si < 256 for si in s) x = [s[2*i]+256*s[2*i+1] for i in range(p)] return {'x':x,'s':s} def decode_pxint32(p,s): s = list(s) assert len(s) == 4*p assert all(si >= 0 for si in s) assert all(si < 256 for si in s) x = [s[4*i]+256*s[4*i+1]+65536*s[4*i+2]+16777216*s[4*i+3] for i in range(p)] return {'x':x,'s':s} def decode_px3(p,s): s = list(s) assert len(s) == (p+3)/4 assert all(si >= 0 for si in s) assert all(si < 256 for si in s) x = [((s[i//4]>>(2*(i%4)))&3)-1 for i in range(p)] return {'x':x,'s':s} def decode_pxr(p,r,s): s = list(s) assert all(si >= 0 for si in s) assert all(si < 256 for si in s) x = Decode(s,p*[r]) x = [3*xi-3*(r-1)//2 for xi in x] return {'x':x,'s':s} def decode_pxq(p,q,s): s = list(s) assert all(si >= 0 for si in s) assert all(si < 256 for si in s) x = Decode(s,p*[q]) x = [xi-(q-1)//2 for xi in x] return {'x':x,'s':s} def encode_int16(x): x = list(x) assert len(x) == 1 assert all(xi >= 0 for xi in x) assert all(xi < 65536 for xi in x) s = [x[0]%256,x[0]//256] return {'s':s,'x':x} def encode_pxint16(p,x): x = list(x) assert len(x) == p assert all(xi >= 0 for xi in x) assert all(xi < 65536 for xi in x) s = [] for xi in x: s += [xi%256,xi//256] return {'s':s,'x':x} def encode_px3(p,x): x = list(x) assert len(x) == p assert all(xi >= 0 for xi in x) assert all(xi < 256 for xi in x) xpad = list(x) while len(xpad)%4: xpad += [-1] s = [(xpad[i]+1)+4*(xpad[i+1]+1)+16*(xpad[i+2]+1)+64*(xpad[i+3]+1) for i in range(0,len(xpad),4)] s = [si%256 for si in s] assert len(s) == (p+3)/4 return {'s':s,'x':x} def encode_pxfreeze3(p,x): x = list(x) assert len(x) == p assert all(xi >= -32768 for xi in x) assert all(xi < 32768 for xi in x) s = [xi-3*((10923*xi+16384)>>15) for xi in x] s = [si%256 for si in s] return {'s':s,'x':x} def encode_pxr(p,r,x): x = list(x) assert len(x) == p assert all(xi >= -32768 for xi in x) assert all(xi < 32768 for xi in x) R = [(((xi+3*(r-1)//2)&16383)*10923)>>15 for xi in x] s = Encode(R,p*[r]) return {'s':s,'x':x} def encode_pxrround(p,r,x): x = list(x) assert len(x) == p assert all(xi >= -32768 for xi in x) assert all(xi < 32768 for xi in x) y = [3*((10923*xi+16384)>>15) for xi in x] R = [(((yi+3*(r-1)//2)&16383)*10923)>>15 for yi in y] s = Encode(R,p*[r]) return {'s':s,'x':x} def encode_pxq(p,q,x): x = list(x) assert len(x) == p assert all(xi >= -32768 for xi in x) assert all(xi < 32768 for xi in x) R = [(xi+(q-1)//2)&16383 for xi in x] s = Encode(R,p*[q]) return {'s':s,'x':x} def mult(p,f,g): f = list(f) assert len(f) == p g = list(g) assert len(g) == p fg = [0]*(p+p-1) for i in range(p): for j in range(p): fg[i+j] += f[i]*g[j] for i in reversed(range(0,p-1)): fg[i] += fg[i+p] fg[i+1] += fg[i+p] fg[i+p] = 0 return fg[:p] def recip(q,R0,R1): R0 = list(R0) R1 = list(R1) d = len(R1) assert d > 0 assert len(R0) == d+1 f = [fi%q for fi in reversed(R0)] g = [gi%q for gi in reversed(R1)]+[0] v = [0] r = [1] n = 2*d-1 delta = 1 while n > 0: v = [0]+v r = r+[0] assert f[0] != 0 f = f[:n] if delta > 0 and g[0] != 0: delta,f,g,v,r = -delta,g,f,r,v f0,g0 = f[0],g[0] delta += 1 g = [(f0*gi-g0*fi)%q for fi,gi in zip(f,g)] g = g[1:]+[0] v = v[:d] r = r[:d] r = [(f0*ri-g0*vi)%q for ri,vi in zip(r,v)] n -= 1 g = g[:n] if delta != 0: return f0inv = pow(f[0],q-2,q) v = v[:d] v = [(f0inv*vi)%q for vi in v] v.reverse() return v invcheck = True def core_inv3sntrup(p,f): f = list(f) assert len(f) == p assert all(fi >= 0 for fi in f) assert all(fi < 256 for fi in f) F = [[0,1,0,-1][3&fi] for fi in f] v = recip(3,[-1,-1]+[0]*(p-2)+[1],F) if v is None: result = [0]*p+[255] else: if invcheck: vf = mult(p,v,F) vf = [vfi%3 for vfi in vf] assert vf == [1]+[0]*(p-1) result = [freeze(vi,3)%256 for vi in v]+[0] return {'h':result,'n':f,'k':[],'c':[]} def core_invsntrup(p,q,f): f = list(f) assert len(f) == p assert all(fi >= 0 for fi in f) assert all(fi < 256 for fi in f) F = [3*freeze(fi,256) for fi in f] v = recip(q,[-1,-1]+[0]*(p-2)+[1],F) if v is None: result = [0]*(2*p)+[255] else: if invcheck: vf = mult(p,v,F) vf = [vfi%q for vfi in vf] assert vf == [1]+[0]*(p-1) result = [] for vi in v: vi = freeze(vi,q) result += littleendian(vi,2) result += [0] assert len(result) == 2*p+1 return {'h':result,'n':f,'k':[],'c':[]} def core_mult3sntrup(p,f,g): f = list(f) assert len(f) == p assert all(fi >= 0 for fi in f) assert all(fi < 256 for fi in f) f = [[0,1,0,-1][3&fi] for fi in f] g = list(g) assert len(g) == p assert all(gi >= 0 for gi in g) assert all(gi < 256 for gi in g) g = [[0,1,0,-1][3&gi] for gi in g] fg = mult(p,f,g) fg = [freeze(fgi,3)%256 for fgi in fg] return {'h':fg,'n':f,'k':g,'c':[]} def core_multsntrup(p,q,f,g): f = list(f) assert len(f) == p assert all(fi >= -32768 for fi in f) assert all(fi < 32768 for fi in f) g = list(g) assert len(g) == p assert all(gi >= 0 for gi in g) assert all(gi < 256 for gi in g) g = [[0,1,0,-1][3&gi] for gi in g] fg = mult(p,f,g) fg = [freeze(fgi,q) for fgi in fg] encodefg = [] for fgi in fg: encodefg += littleendian(fgi,2) encodef = [] for fi in f: encodef += littleendian(fi,2) return {'h':encodefg,'n':encodef,'k':g,'c':[]} def core_scale3sntrup(p,q,f): f = list(f) assert len(f) == p assert all(fi >= -32768 for fi in f) assert all(fi < 32768 for fi in f) h = [] for x in f: x = int16(3*x) x = int16(x-(q+1)//2) if x < 0: x = int16(x+q) if x < 0: x = int16(x+q) x = int16(x-(q-1)//2) h += [x] encodef = [] for fi in f: encodef += littleendian(fi,2) encodeh = [] for hi in h: encodeh += littleendian(hi,2) return {'h':encodeh,'n':encodef,'k':[],'c':[]} def core_weightsntrup(p,x): x = list(x) assert len(x) == p assert all(xi >= 0 for xi in x) assert all(xi < 256 for xi in x) y = sum(xi&1 for xi in x) assert y >= 0 assert y <= p return {'h':littleendian(y,2),'n':x,'k':[],'c':[]} def core_wforcesntrup(p,w,x): x = list(x) assert len(x) == p assert all(xi >= 0 for xi in x) assert all(xi < 256 for xi in x) y = sum(xi&1 for xi in x) assert y >= 0 assert y <= p z = x if y == w else [1]*w+[0]*(p-w) return {'h':z,'n':x,'k':[],'c':[]} # ----- precomputed test vectors precomputed = {} precomputedxtype = {} def precompute(): global precomputed systems = ( # p,q,sk,pk,ct,w,ninv (653,4621,1518,994,897,288,[2,2,0,1]), (761,4591,1763,1158,1039,286,[2,2,0,2,2,2,1,2,1,2,0,2,1,1,1,1,2,0,1,1]), (857,5167,1999,1322,1184,322,[1,0,0,1,2,0,0,0,1,1,1,2,0,2,1,2,2,0,0,1,1,0,1,2,0,1]), (953,6343,2254,1505,1349,396,[1,0,2,1,0,1]), (1013,7177,2417,1623,1455,448,[2,1,0,0,1]), (1277,7879,3059,2067,1847,492,[2,2,0,1]), ) random.seed('decode_int16') inputs = [[random.randrange(256) for j in range(2)] for loop in range(16)] precomputed['decode','int16'] = [decode_int16(s) for s in inputs] precomputedxtype['decode','int16'] = 'uint16_t' random.seed('encode_int16') inputs = [[random.randrange(65536)] for loop in range(16)] precomputed['encode','int16'] = [encode_int16(x) for x in inputs] precomputedxtype['encode','int16'] = 'uint16_t' numtests = 4 for p,q,sk,pk,ct,w,ninv in systems: r = (q+2)//3 assert q == 3*r-2 random.seed(f'decode_{p}xint16') inputs = [[random.randrange(256) for j in range(2*p)] for loop in range(numtests)] precomputed['decode',f'{p}xint16'] = [decode_pxint16(p,s) for s in inputs] precomputedxtype['decode',f'{p}xint16'] = 'uint16_t' random.seed(f'decode_{p}xint32') inputs = [[random.randrange(256) for j in range(4*p)] for loop in range(numtests)] precomputed['decode',f'{p}xint32'] = [decode_pxint32(p,s) for s in inputs] precomputedxtype['decode',f'{p}xint32'] = 'uint32_t' random.seed(f'decode_{p}x3') inputs = [[random.randrange(256) for j in range((p+3)//4)] for loop in range(numtests)] precomputed['decode',f'{p}x3'] = [decode_px3(p,s) for s in inputs] random.seed(f'decode_{p}x{r}') inputs = [[random.randrange(256) for j in range(ct-32)] for loop in range(numtests)] precomputed['decode',f'{p}x{r}'] = [decode_pxr(p,r,s) for s in inputs] precomputedxtype['decode',f'{p}x{r}'] = 'int16_t' random.seed(f'decode_{p}x{q}') inputs = [[random.randrange(256) for j in range(pk)] for loop in range(numtests)] precomputed['decode',f'{p}x{q}'] = [decode_pxq(p,q,s) for s in inputs] precomputedxtype['decode',f'{p}x{q}'] = 'int16_t' random.seed(f'encode_{p}xint16') inputs = [[random.randrange(65536) for j in range(p)] for loop in range(numtests)] precomputed['encode',f'{p}xint16'] = [encode_pxint16(p,x) for x in inputs] precomputedxtype['encode',f'{p}xint16'] = 'uint16_t' random.seed(f'encode_{p}x3') inputs = [[random.randrange(256) for j in range(p)] for loop in range(numtests)] precomputed['encode',f'{p}x3'] = [encode_px3(p,x) for x in inputs] random.seed(f'encode_{p}xfreeze3') inputs = [[random.randrange(-32768,32768) for j in range(p)] for loop in range(numtests)] precomputed['encode',f'{p}xfreeze3'] = [encode_pxfreeze3(p,x) for x in inputs] precomputedxtype['encode',f'{p}xfreeze3'] = 'int16_t' random.seed(f'encode_{p}x{r}') inputs = [[random.randrange(-32768,32768) for j in range(p)] for loop in range(numtests)] precomputed['encode',f'{p}x{r}'] = [encode_pxr(p,r,x) for x in inputs] precomputedxtype['encode',f'{p}x{r}'] = 'int16_t' random.seed(f'encode_{p}x{r}round') inputs = [[random.randrange(-32768,32768) for j in range(p)] for loop in range(numtests)] precomputed['encode',f'{p}x{r}round'] = [encode_pxrround(p,r,x) for x in inputs] precomputedxtype['encode',f'{p}x{r}round'] = 'int16_t' random.seed(f'encode_{p}x{q}') inputs = [[random.randrange(-32768,32768) for j in range(p)] for loop in range(numtests)] precomputed['encode',f'{p}x{q}'] = [encode_pxq(p,q,x) for x in inputs] precomputedxtype['encode',f'{p}x{q}'] = 'int16_t' random.seed(f'core_inv3sntrup{p}') inputs = [[random.randrange(256) for j in range(p)] for loop in range(numtests)] inputs += [[freeze(ninvi,3)%256 for ninvi in ninv]+[0]*(p-len(ninv))] precomputed['core',f'inv3sntrup{p}'] = [core_inv3sntrup(p,x) for x in inputs] random.seed(f'core_invsntrup{p}') inputs = [[random.randrange(256) for j in range(p)] for loop in range(numtests)] precomputed['core',f'invsntrup{p}'] = [core_invsntrup(p,q,x) for x in inputs] random.seed(f'core_mult3sntrup{p}') inputs = [([random.randrange(256) for j in range(p)],[random.randrange(256) for j in range(p)]) for loop in range(numtests)] precomputed['core',f'mult3sntrup{p}'] = [core_mult3sntrup(p,x,y) for (x,y) in inputs] random.seed(f'core_multsntrup{p}') inputs = [([random.randrange(-32768,32768) for j in range(p)],[random.randrange(256) for j in range(p)]) for loop in range(numtests)] precomputed['core',f'multsntrup{p}'] = [core_multsntrup(p,q,x,y) for (x,y) in inputs] random.seed(f'core_scale3sntrup{p}') inputs = [[random.randrange(-32768,32768) for j in range(p)] for loop in range(numtests)] precomputed['core',f'scale3sntrup{p}'] = [core_scale3sntrup(p,q,x) for x in inputs] random.seed(f'core_weightsntrup{p}') inputs = [[random.randrange(256) for j in range(p)] for loop in range(numtests)] inputs += [[0]*p] inputs += [[255]*p] for weight in w-1,w,w+1: v = [0]*p while sum(map(bool,v)) < weight: v[random.randrange(p)] = random.randrange(1,256,254) inputs += [v] precomputed['core',f'weightsntrup{p}'] = [core_weightsntrup(p,x) for x in inputs] precomputed['core',f'wforcesntrup{p}'] = [core_wforcesntrup(p,w,x) for x in inputs] precompute() # ----- generating test program H = ['''\ #ifndef ntruprime_test_h #define ntruprime_test_h #define aligned ntruprime_test_aligned #define callocplus ntruprime_test_callocplus #define checksum ntruprime_test_checksum #define checksum_clear ntruprime_test_checksum_clear #define checksum_expected ntruprime_test_checksum_expected #define double_canary ntruprime_test_double_canary #define endianness ntruprime_test_endianness #define forked ntruprime_test_forked #define input_compare ntruprime_test_input_compare #define input_prepare ntruprime_test_input_prepare #define myrandom ntruprime_test_myrandom #define ok ntruprime_test_ok #define output_compare ntruprime_test_output_compare #define output_prepare ntruprime_test_output_prepare #define public ntruprime_test_public #define secret ntruprime_test_secret #define targeti ntruprime_test_targeti #define targetn ntruprime_test_targetn #define targetoffset ntruprime_test_targetoffset #define targeto ntruprime_test_targeto #define targetp ntruprime_test_targetp #define valgrind ntruprime_test_valgrind extern const char *targeto; extern const char *targetp; extern const char *targeti; extern const char *targetn; extern const char *targetoffset; extern int ok; extern int valgrind; extern unsigned long long myrandom(void); extern void forked(void (*)(long long),long long); extern void *aligned(void *,long long); extern void *callocplus(long long); extern void secret(void *,long long); extern void public(void *,long long); extern void double_canary(unsigned char *,unsigned char *,unsigned long long); extern void input_prepare(unsigned char *,unsigned char *,unsigned long long); extern void output_prepare(unsigned char *,unsigned char *,unsigned long long); extern void input_compare(const unsigned char *,const unsigned char *,unsigned long long,const char *); extern void output_compare(const unsigned char *,const unsigned char *,unsigned long long,const char *); extern void checksum_expected(const char *); extern void checksum(const unsigned char *,unsigned long long); extern void checksum_clear(void); extern void endianness(unsigned char *,unsigned long long,unsigned long long); '''] Z = [r'''/* WARNING: auto-generated (by autogen/test); do not edit */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "crypto_uint8.h" #include "crypto_uint32.h" #include "crypto_uint64.h" #include "crypto_declassify.h" #include /* -lntruprime */ #include #include "ntruprime_test.h" const char *targeto = 0; const char *targetp = 0; const char *targeti = 0; const char *targetn = 0; const char *targetoffset = 0; int ok = 1; #define fail ((ok = 0),printf) /* ----- valgrind support */ int valgrind = 0; static unsigned char valgrind_undefined_byte = 0; static char *volatile valgrind_pointer = 0; static char *valgrind_malloc_1(void) { char *x = malloc(1); if (!x) abort(); *(char **volatile) &valgrind_pointer = x; return valgrind_pointer; } static void valgrind_init(void) { char *e = getenv("valgrind_multiplier"); char *x; if (!e) return; x = valgrind_malloc_1(); valgrind_undefined_byte = x[0]+1; valgrind_undefined_byte *= atoi(e); valgrind_undefined_byte ^= x[0]+1; free(x); valgrind = 1; } void secret(void *xvoid,long long xlen) { unsigned char *x = xvoid; while (xlen > 0) { *x ^= valgrind_undefined_byte; ++x; --xlen; } } void public(void *x,long long xlen) { crypto_declassify(x,xlen); } /* ----- rng and hash, from supercop/try-anything.c */ typedef crypto_uint8 u8; typedef crypto_uint32 u32; typedef crypto_uint64 u64; #define FOR(i,n) for (i = 0;i < n;++i) static u32 L32(u32 x,int c) { return (x << c) | ((x&0xffffffff) >> (32 - c)); } static u32 ld32(const u8 *x) { u32 u = x[3]; u = (u<<8)|x[2]; u = (u<<8)|x[1]; return (u<<8)|x[0]; } static void st32(u8 *x,u32 u) { int i; FOR(i,4) { x[i] = u; u >>= 8; } } static const u8 sigma[17] = "expand 32-byte k"; static void core_salsa(u8 *out,const u8 *in,const u8 *k) { u32 w[16],x[16],y[16],t[4]; int i,j,m; FOR(i,4) { x[5*i] = ld32(sigma+4*i); x[1+i] = ld32(k+4*i); x[6+i] = ld32(in+4*i); x[11+i] = ld32(k+16+4*i); } FOR(i,16) y[i] = x[i]; FOR(i,20) { FOR(j,4) { FOR(m,4) t[m] = x[(5*j+4*m)%16]; t[1] ^= L32(t[0]+t[3], 7); t[2] ^= L32(t[1]+t[0], 9); t[3] ^= L32(t[2]+t[1],13); t[0] ^= L32(t[3]+t[2],18); FOR(m,4) w[4*j+(j+m)%4] = t[m]; } FOR(m,16) x[m] = w[m]; } FOR(i,16) st32(out + 4 * i,x[i] + y[i]); } static void salsa20(u8 *c,u64 b,const u8 *n,const u8 *k) { u8 z[16],x[64]; u32 u,i; if (!b) return; FOR(i,16) z[i] = 0; FOR(i,8) z[i] = n[i]; while (b >= 64) { core_salsa(x,z,k); FOR(i,64) c[i] = x[i]; u = 1; for (i = 8;i < 16;++i) { u += (u32) z[i]; z[i] = u; u >>= 8; } b -= 64; c += 64; } if (b) { core_salsa(x,z,k); FOR(i,b) c[i] = x[i]; } } static void increment(u8 *n) { if (!++n[0]) if (!++n[1]) if (!++n[2]) if (!++n[3]) if (!++n[4]) if (!++n[5]) if (!++n[6]) if (!++n[7]) ; } static unsigned char testvector_n[8]; static void testvector_clear(void) { memset(testvector_n,0,sizeof testvector_n); } static void testvector(unsigned char *x,unsigned long long xlen) { const static unsigned char testvector_k[33] = "generate inputs for test vectors"; salsa20(x,xlen,testvector_n,testvector_k); increment(testvector_n); } unsigned long long myrandom(void) { unsigned char x[8]; unsigned long long result; testvector(x,8); result = x[7]; result = (result<<8)|x[6]; result = (result<<8)|x[5]; result = (result<<8)|x[4]; result = (result<<8)|x[3]; result = (result<<8)|x[2]; result = (result<<8)|x[1]; result = (result<<8)|x[0]; return result; } static unsigned char canary_n[8]; static void canary(unsigned char *x,unsigned long long xlen) { const static unsigned char canary_k[33] = "generate pad to catch overwrites"; salsa20(x,xlen,canary_n,canary_k); increment(canary_n); } void double_canary(unsigned char *x2,unsigned char *x,unsigned long long xlen) { if (valgrind) return; canary(x - 16,16); canary(x + xlen,16); memcpy(x2 - 16,x - 16,16); memcpy(x2 + xlen,x + xlen,16); } void input_prepare(unsigned char *x2,unsigned char *x,unsigned long long xlen) { testvector(x,xlen); if (valgrind) { memcpy(x2,x,xlen); return; } canary(x - 16,16); canary(x + xlen,16); memcpy(x2 - 16,x - 16,xlen + 32); } void input_compare(const unsigned char *x2,const unsigned char *x,unsigned long long xlen,const char *fun) { if (valgrind) return; if (memcmp(x2 - 16,x - 16,xlen + 32)) { fail("failure: %s overwrites input\n",fun); } } void output_prepare(unsigned char *x2,unsigned char *x,unsigned long long xlen) { if (valgrind) { memcpy(x2,x,xlen); return; } canary(x - 16,xlen + 32); memcpy(x2 - 16,x - 16,xlen + 32); } void output_compare(const unsigned char *x2,const unsigned char *x,unsigned long long xlen,const char *fun) { if (valgrind) return; if (memcmp(x2 - 16,x - 16,16)) { fail("failure: %s writes before output\n",fun); } if (memcmp(x2 + xlen,x + xlen,16)) { fail("failure: %s writes after output\n",fun); } } /* ----- knownrandombytes */ static const int knownrandombytes_is_only_for_testing_not_for_cryptographic_use = 1; #define knownrandombytes randombytes #define QUARTERROUND(a,b,c,d) \ a += b; d = L32(d^a,16); \ c += d; b = L32(b^c,12); \ a += b; d = L32(d^a, 8); \ c += d; b = L32(b^c, 7); static void core_chacha(u8 *out,const u8 *in,const u8 *k) { u32 x[16],y[16]; int i,j; FOR(i,4) { x[i] = ld32(sigma+4*i); x[12+i] = ld32(in+4*i); } FOR(i,8) x[4+i] = ld32(k+4*i); FOR(i,16) y[i] = x[i]; FOR(i,10) { FOR(j,4) { QUARTERROUND(x[j],x[j+4],x[j+8],x[j+12]) } FOR(j,4) { QUARTERROUND(x[j],x[((j+1)&3)+4],x[((j+2)&3)+8],x[((j+3)&3)+12]) } } FOR(i,16) st32(out+4*i,x[i]+y[i]); } static void chacha20(u8 *c,u64 b,const u8 *n,const u8 *k) { u8 z[16],x[64]; u32 u,i; if (!b) return; FOR(i,16) z[i] = 0; FOR(i,8) z[i+8] = n[i]; while (b >= 64) { core_chacha(x,z,k); FOR(i,64) c[i] = x[i]; u = 1; FOR(i,8) { u += (u32) z[i]; z[i] = u; u >>= 8; } b -= 64; c += 64; } if (b) { core_chacha(x,z,k); FOR(i,b) c[i] = x[i]; } } #define crypto_rng_OUTPUTBYTES 736 static int crypto_rng( unsigned char *r, /* random output */ unsigned char *n, /* new key */ const unsigned char *g /* old key */ ) { static const unsigned char nonce[8] = {0}; unsigned char x[32+crypto_rng_OUTPUTBYTES]; chacha20(x,sizeof x,nonce,g); memcpy(n,x,32); memcpy(r,x+32,crypto_rng_OUTPUTBYTES); return 0; } static unsigned char knownrandombytes_g[32]; static unsigned char knownrandombytes_r[crypto_rng_OUTPUTBYTES]; static unsigned long long knownrandombytes_pos = crypto_rng_OUTPUTBYTES; static void knownrandombytes_clear(void) { memset(knownrandombytes_g,0,sizeof knownrandombytes_g); memset(knownrandombytes_r,0,sizeof knownrandombytes_r); knownrandombytes_pos = crypto_rng_OUTPUTBYTES; } void knownrandombytes_main(void *xvoid,long long xlen) { unsigned char *x = xvoid; assert(knownrandombytes_is_only_for_testing_not_for_cryptographic_use); while (xlen > 0) { if (knownrandombytes_pos == crypto_rng_OUTPUTBYTES) { crypto_rng(knownrandombytes_r,knownrandombytes_g,knownrandombytes_g); knownrandombytes_pos = 0; } *x++ = knownrandombytes_r[knownrandombytes_pos]; xlen -= 1; knownrandombytes_r[knownrandombytes_pos++] = 0; } } void knownrandombytes(void *xvoid,long long xlen) { knownrandombytes_main(xvoid,xlen); secret(xvoid,xlen); } /* ----- checksums */ static unsigned char checksum_state[64]; static char checksum_hex[65]; void checksum_expected(const char *expected) { long long i; for (i = 0;i < 32;++i) { checksum_hex[2 * i] = "0123456789abcdef"[15 & (checksum_state[i] >> 4)]; checksum_hex[2 * i + 1] = "0123456789abcdef"[15 & checksum_state[i]]; } checksum_hex[2 * i] = 0; if (strcmp(checksum_hex,expected)) fail("failure: checksum mismatch: %s expected %s\n",checksum_hex,expected); } void checksum_clear(void) { memset(checksum_state,0,sizeof checksum_state); knownrandombytes_clear(); testvector_clear(); /* not necessary to clear canary */ } void checksum(const unsigned char *x,unsigned long long xlen) { u8 block[16]; int i; while (xlen >= 16) { core_salsa(checksum_state,x,checksum_state); x += 16; xlen -= 16; } FOR(i,16) block[i] = 0; FOR(i,xlen) block[i] = x[i]; block[xlen] = 1; checksum_state[0] ^= 1; core_salsa(checksum_state,block,checksum_state); } #include "limits.inc" void *callocplus(long long len) { if (valgrind) { unsigned char *x = malloc(len); if (!x) abort(); return x; } else { unsigned char *x = calloc(1,len + 256); long long i; if (!x) abort(); for (i = 0;i < len + 256;++i) x[i] = random(); return x; } } void *aligned(void *x,long long len) { if (valgrind) return x; else { long long i; unsigned char *y = x; y += 64; y += 63 & (-(unsigned long) y); for (i = 0;i < len;++i) y[i] = 0; return y; } } /* ----- catching SIGILL, SIGBUS, SIGSEGV, etc. */ void forked(void (*test)(long long),long long impl) { if (valgrind) { test(impl); return; } fflush(stdout); pid_t child = fork(); int childstatus = -1; if (child == -1) { fprintf(stderr,"fatal: fork failed: %s",strerror(errno)); exit(111); } if (child == 0) { ok = 1; limits(); test(impl); if (!ok) exit(100); exit(0); } if (waitpid(child,&childstatus,0) != child) { fprintf(stderr,"fatal: wait failed: %s",strerror(errno)); exit(111); } if (childstatus) fail("failure: process failed, status %d\n",childstatus); fflush(stdout); } /* ----- endianness */ /* on big-endian machines, flip into little-endian */ /* other types of endianness are not supported */ void endianness(unsigned char *e,unsigned long long words,unsigned long long bytesperword) { long long i = 1; if (1 == *(unsigned char *) &i) return; while (words > 0) { for (i = 0;2 * i < bytesperword;++i) { long long j = bytesperword - 1 - i; unsigned char ei = e[i]; e[i] = e[j]; e[j] = ei; } e += bytesperword; words -= 1; } } '''] # ========== checksums = {} operations = [] primitives = {} sizes = {} exports = {} prototypes = {} nooverlap = set() with open('api') as f: for line in f: line = line.strip() if line.startswith('crypto_'): line = line.split() x = line[0].split('/') assert len(x) == 2 o = x[0].split('_')[1] if o not in operations: operations += [o] p = x[1] if o not in primitives: primitives[o] = [] primitives[o] += [p] if len(line) >= 3: checksums[o,p] = line[1],line[2] for option in line[3:]: if option == 'nooverlap': nooverlap.add((o,p)) continue if line.startswith('#define '): x = line.split(' ') x = x[1].split('_') assert len(x) == 4 assert x[0] == 'crypto' o = x[1] p = x[2] if (o,p) not in sizes: sizes[o,p] = '' sizes[o,p] += line+'\n' continue if line.endswith(');'): fun,args = line[:-2].split('(') rettype,fun = fun.split() fun = fun.split('_') o = fun[1] assert fun[0] == 'crypto' if o not in exports: exports[o] = [] exports[o] += ['_'.join(fun[1:])] if o not in prototypes: prototypes[o] = [] prototypes[o] += [(rettype,fun,args)] # ========== verify Z += [r''' /* ----- verify, derived from supercop/crypto_verify/try.c */ '''] for p in primitives['verify']: Z += [r''' static int (*crypto_verify_BYTES)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_BYTES_x; static unsigned char *test_verify_BYTES_y; static void test_verify_BYTES_check(void) { unsigned char *x = test_verify_BYTES_x; unsigned char *y = test_verify_BYTES_y; int r; secret(x,BYTES); secret(y,BYTES); r = crypto_verify_BYTES(x,y); public(x,BYTES); public(y,BYTES); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,BYTES)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,BYTES)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_BYTES_impl(long long impl) { unsigned char *x = test_verify_BYTES_x; unsigned char *y = test_verify_BYTES_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_BYTES_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_BYTES = ntruprime_dispatch_verify_BYTES(impl); printf("verify_BYTES %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_BYTES_implementation(impl),ntruprime_dispatch_verify_BYTES_compiler(impl)); } else { crypto_verify_BYTES = ntruprime_verify_BYTES; printf("verify_BYTES selected implementation %s compiler %s\n",ntruprime_verify_BYTES_implementation(),ntruprime_verify_BYTES_compiler()); } randombytes(x,BYTES); randombytes(y,BYTES); test_verify_BYTES_check(); memcpy(y,x,BYTES); test_verify_BYTES_check(); y[myrandom() % BYTES] = myrandom(); test_verify_BYTES_check(); y[myrandom() % BYTES] = myrandom(); test_verify_BYTES_check(); y[myrandom() % BYTES] = myrandom(); test_verify_BYTES_check(); } static void test_verify_BYTES(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"BYTES")) return; test_verify_BYTES_x = callocplus(BYTES); test_verify_BYTES_y = callocplus(BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_BYTES offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_BYTES();++impl) forked(test_verify_BYTES_impl,impl); ++test_verify_BYTES_x; ++test_verify_BYTES_y; } } '''.replace('BYTES',p)] # ========== todo = ( ('hashblocks',( ('h','crypto_hashblocks_STATEBYTES','crypto_hashblocks_STATEBYTES'), ('m',None,'4096'), ),( ('loops','4096','32768'), ('maxtest','128','4096'), ),( ('',(),('h',),('m','mlen')), )), ('hash',( ('h','crypto_hash_BYTES','crypto_hash_BYTES'), ('m',None,'4096+crypto_hash_BYTES'), ),( ('loops','64','512'), ('maxtest','128','4096'), ),( ('',('h',),(),('m','mlen')), )), ('decode',( ('x','crypto_decode_ITEMS','crypto_decode_ITEMS*crypto_decode_ITEMBYTES'), ('s','crypto_decode_STRBYTES','crypto_decode_STRBYTES'), ),( ('loops','1024','4096'), ),( ('',('x',),(),('s',)), )), ('encode',( ('s','crypto_encode_STRBYTES','crypto_encode_STRBYTES'), ('x','crypto_encode_ITEMS','crypto_encode_ITEMS*crypto_encode_ITEMBYTES'), ),( ('loops','1024','4096'), ),( ('',('s',),(),('x',)), )), ('sort',( ('x',None,'4096'), ),( ('loops','1024','4096'), ('maxtest','128','4096'), ),( ('',(),('x',),('xwords',)), )), ('core',( ('h','crypto_core_OUTPUTBYTES','crypto_core_OUTPUTBYTES'), ('n','crypto_core_INPUTBYTES','crypto_core_INPUTBYTES'), ('k','crypto_core_KEYBYTES','crypto_core_KEYBYTES'), ('c','crypto_core_CONSTBYTES','crypto_core_CONSTBYTES'), ),( ('loops','512','4096'), ),( ('',('h',),(),('n','k','c')), )), ('kem',( ('p','crypto_kem_PUBLICKEYBYTES','crypto_kem_PUBLICKEYBYTES'), ('s','crypto_kem_SECRETKEYBYTES','crypto_kem_SECRETKEYBYTES'), ('k','crypto_kem_BYTES','crypto_kem_BYTES'), ('c','crypto_kem_CIPHERTEXTBYTES','crypto_kem_CIPHERTEXTBYTES'), ('t','crypto_kem_BYTES','crypto_kem_BYTES'), ),( ('loops','8','64'), ),( ('_keypair',('p','s'),(),()), ('_enc',('c','k'),(),('p',)), ('_dec',('t',),(),('c','s')), )), ) for t in todo: o,vars,howmuch,tests = t for p in primitives[o]: X = [] X += [f'/* ----- {o}/{p}, derived from supercop/crypto_{o}/try.c */\n'] X += ['\n'] X += ['#include \n'] X += ['#include \n'] X += ['#include \n'] X += ['#include \n'] X += ['#include \n'] X += ['#include "ntruprime_test.h"\n'] X += ['\n'] X += ['#define fail ((ok = 0),printf)\n'] X += ['static const char *%s_%s_checksums[] = {\n' % (o,p)] X += [' "%s",\n' % checksums[o,p][0]] X += [' "%s",\n' % checksums[o,p][1]] X += ['} ;\n'] X += ['\n'] for rettype,fun,args in prototypes[o]: X += ['static %s (*%s)(%s);\n' % (rettype,'_'.join(fun),args)] if (o,p) in sizes: for line in sizes[o,p].splitlines(): psize = line.split()[1] size1 = psize.replace('crypto_%s_%s_'%(o,p),'crypto_%s_'%o) size2 = psize.replace('crypto_','ntruprime_') X += ['#define %s %s\n' % (size1,size2)] X += ['\n'] for v,initsize,allocsize in vars: X += ['static void *storage_%s_%s_%s;\n' % (o,p,v)] X += ['static unsigned char *test_%s_%s_%s;\n' % (o,p,v)] for v,initsize,allocsize in vars: X += ['static void *storage_%s_%s_%s2;\n' % (o,p,v)] X += ['static unsigned char *test_%s_%s_%s2;\n' % (o,p,v)] X += ['\n'] if (o,p) in precomputed: xtype = precomputedxtype.get((o,p),'unsigned char') X += ['#define precomputed_%s_%s_NUM %d\n' % (o,p,len(precomputed[o,p]))] X += ['\n'] for v,initsize,allocsize in vars: vtype = 'unsigned char' if v == 'x': vtype = xtype allocsize = allocsize.split('*') assert allocsize[1] == f'crypto_{o}_ITEMBYTES' allocsize = allocsize[0] X += ['static const %s precomputed_%s_%s_%s[precomputed_%s_%s_NUM][%s] = {\n' % (vtype,o,p,v,o,p,allocsize)] for precomp in precomputed[o,p]: X += [' {%s},\n' % ','.join(str(c) for c in precomp[v])] X += ['} ;\n'] X += ['\n'] X += ['static void test_%s_%s_impl(long long impl)\n' % (o,p)] X += ['{\n'] for v,initsize,allocsize in vars: X += [' unsigned char *%s = test_%s_%s_%s;\n' % (v,o,p,v)] for v,initsize,allocsize in vars: X += [' unsigned char *%s2 = test_%s_%s_%s2;\n' % (v,o,p,v)] for v,initsize,allocsize in vars: if initsize is None: X += [' long long %slen;\n' % v] if v == 'x': X += [' long long xwords;\n'] else: if v == 'x': X += [' long long xwords = %s;\n' % (initsize)] X += [' long long xlen;\n'] else: X += [' long long %slen = %s;\n' % (v,initsize)] X += ['\n'] X += [' if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_%s_%s_implementation(impl))) return;\n' % (o,p)] X += [' if (targetn && atol(targetn) != impl) return;\n'] # XXX: atoll is slightly unportable X += [' if (impl >= 0) {\n'] for rettype,fun,args in prototypes[o]: f2 = ['ntruprime','dispatch',o,p]+fun[2:] X += [' %s = %s(impl);\n' % ('_'.join(fun),'_'.join(f2))] X += [' printf("%s_%s %%lld implementation %%s compiler %%s\\n",impl,ntruprime_dispatch_%s_%s_implementation(impl),ntruprime_dispatch_%s_%s_compiler(impl));\n' % (o,p,o,p,o,p)] X += [' } else {\n'] for rettype,fun,args in prototypes[o]: f2 = ['ntruprime',o,p]+fun[2:] X += [' %s = %s;\n' % ('_'.join(fun),'_'.join(f2))] X += [' printf("%s_%s selected implementation %%s compiler %%s\\n",ntruprime_%s_%s_implementation(),ntruprime_%s_%s_compiler());\n' % (o,p,o,p,o,p)] X += [' }\n'] X += [' for (long long checksumbig = 0;checksumbig < 2;++checksumbig) {\n'] maxtestdefined = False for v,small,big in howmuch: X += [' long long %s = checksumbig ? %s : %s;\n' % (v,big,small)] if v == 'maxtest': maxtestdefined = True X += ['\n'] X += [' checksum_clear();\n'] X += ['\n'] X += [' for (long long loop = 0;loop < loops;++loop) {\n'] wantresult = False for f,output,inout,input in tests: cof = 'crypto_'+o+f for rettype,fun,args in prototypes[o]: if cof == '_'.join(fun): if rettype != 'void': wantresult = True if wantresult: X += [' int result;\n'] itembytes = f'crypto_{o}_BYTES' if o == 'sort' else f'crypto_{o}_ITEMBYTES' if maxtestdefined and any('mlen' in input for f,output,inout,input in tests): X += [' mlen = myrandom() % (maxtest + 1);\n'] if maxtestdefined and any('hlen' in input for f,output,inout,input in tests): X += [' hlen = myrandom() % (maxtest + 1);\n'] if maxtestdefined and any('xwords' in input for f,output,inout,input in tests): X += [' xwords = myrandom() % (maxtest + 1);\n'] if any('x' in output+inout+input for f,output,inout,input in tests): X += [f' xlen = xwords*{itembytes};\n'] X += ['\n'] initialized = set() for f,output,inout,input in tests: cof = 'crypto_'+o+f cofrettype = None for rettype,fun,args in prototypes[o]: if cof == '_'.join(fun): cofrettype = rettype expected = '0' unexpected = 'nonzero' if cof == 'crypto_hashblocks': expected = 'mlen % crypto_hashblocks_BLOCKBYTES' unexpected = 'unexpected value' for v in output: if len(v) == 1: X += [' output_prepare(%s2,%s,%slen);\n' % (v,v,v)] # v now has CDE where C is canary, D is canary, E is canary # v2 now has same CDE # D is at start of v with specified length # C is 16 bytes before beginning # E is 16 bytes past end for v in input+inout: if len(v) == 1: if v in initialized: X += [' memcpy(%s2,%s,%slen);\n' % (v,v,v)] X += [' double_canary(%s2,%s,%slen);\n' % (v,v,v)] else: X += [' input_prepare(%s2,%s,%slen);\n' % (v,v,v)] # v now has CTE where C is canary, T is test data, E is canary # v2 has same CTE initialized.add(v) if v == 'x': X += [f' endianness(x,xwords,{itembytes});\n'] for v in input+inout: if len(v) == 1: X += [' secret(%s,%slen);\n' % (v,v)] args = ','.join(output+inout+input) if cofrettype == 'void': X += [' %s(%s);\n' % (cof,args)] else: X += [' result = %s(%s);\n' % (cof,args)] X += [' public(&result,sizeof result);\n'] X += [' if (result != %s) fail("failure: %s returns %s\\n");\n' % (expected,cof,unexpected)] for v in input+inout+output: if len(v) == 1: X += [' public(%s,%slen);\n' % (v,v)] if v == 'x': X += [f' endianness(x,xwords,{itembytes});\n'] if cof == 'crypto_kem_dec': X += [' if (memcmp(t,k,klen) != 0) fail("failure: %s does not match k\\n");\n' % cof] for v in output+inout: if len(v) == 1: X += [' checksum(%s,%slen);\n' % (v,v)] # output v,v2 now has COE,CDE where O is output; checksum O initialized.add(v) for v in output+inout: if len(v) == 1: if cof == 'crypto_sign_open' and v == 't': X += [' output_compare(%s2,%s,%slen,"%s");\n' % (v,v,'c',cof)] else: X += [' output_compare(%s2,%s,%slen,"%s");\n' % (v,v,v,cof)] # output_compare checks COE,CDE for equal C, equal E for v in input: if len(v) == 1: X += [' input_compare(%s2,%s,%slen,"%s");\n' % (v,v,v,cof)] # input_compare checks CTE,CTE for equal C, equal T, equal E deterministic = True if inout+input == (): deterministic = False if cof == 'crypto_kem_enc': deterministic = False if deterministic: X += ['\n'] for v in output+inout+input: if len(v) == 1: X += [' double_canary(%s2,%s,%slen);\n' % (v,v,v)] # old output v,v2: COE,CDE; new v,v2: FOG,FDG where F,G are new canaries # old inout v,v2: COE,CTE; new v,v2: FOG,FTG # old input v,v2: CTE,CTE; new v,v2: FTG,FTG for v in inout+input: if v == 'x': X += [f' endianness(x2,xwords,{itembytes});\n'] for v in input+inout: if len(v) == 1: X += [' secret(%s2,%slen);\n' % (v,v)] args = ','.join([v if v.endswith('words') or v.endswith('len') else v+'2' for v in output+inout+input]) if cofrettype == 'void': X += [' %s(%s);\n' % (cof,args)] else: X += [' result = %s(%s);\n' % (cof,args)] X += [' public(&result,sizeof result);\n'] X += [' if (result != %s) fail("failure: %s returns %s\\n");\n' % (expected,cof,unexpected)] for v in input+inout+output: if len(v) == 1: X += [' public(%s2,%slen);\n' % (v,v)] if v == 'x': X += [f' endianness(x2,xwords,{itembytes});\n'] for w in output + inout: if len(w) == 1: # w,w2: COE,COE; goal now is to compare O X += [' if (memcmp(%s2,%s,%slen) != 0) fail("failure: %s is nondeterministic\\n");\n' % (w,w,w,cof)] overlap = deterministic if inout != (): overlap = False if (o,p) in nooverlap: overlap = False # XXX: overlap test assumes that inputs are at least as big as outputs if overlap: for y in output: if len(y) == 1: X += ['\n'] for v in output: if len(v) == 1: X += [' double_canary(%s2,%s,%slen);\n' % (v,v,v)] for v in input: if len(v) == 1: X += [' double_canary(%s2,%s,%slen);\n' % (v,v,v)] for x in input: if len(x) == 1: # try writing to x2 instead of y, while reading x2 args = ','.join([x+'2' if v==y else v for v in output] + [x+'2' if v==x else v for v in input]) for v in input+inout: v2 = x+'2' if v==x else v if len(v) == 1: X += [' secret(%s,%slen);\n' % (v2,v)] if cofrettype == 'void': X += [' %s(%s);\n' % (cof,args)] else: X += [' result = %s(%s);\n' % (cof,args)] X += [' public(&result,sizeof result);\n'] X += [' if (result != %s) fail("failure: %s with %s=%s overlap returns %s\\n");\n' % (expected,cof,x,y,unexpected)] for v in output: v2 = x+'2' if v==y else v if len(v) == 1: X += [' public(%s,%slen);\n' % (v2,v)] for v in input: if v == x: continue if len(v) == 1: X += [' public(%s,%slen);\n' % (v,v)] X += [' if (memcmp(%s2,%s,%slen) != 0) fail("failure: %s does not handle %s=%s overlap\\n");\n' % (x,y,y,cof,x,y)] X += [' memcpy(%s2,%s,%slen);\n' % (x,x,x)] if cof == 'crypto_kem_dec': X += ['\n'] for tweaks in range(3): X += [' c[myrandom() % clen] += 1 + (myrandom() % 255);\n'] X += [' %s(t,c,s);\n' % cof] X += [' checksum(t,tlen);\n'] X += [' }\n'] if cof == 'crypto_core' and p.startswith('wforce'): X += [' {\n'] X += [' long long weight,i,direction;\n'] X += [' for (weight = 0;weight <= nlen;++weight) {\n'] X += [' for (direction = 0;direction < 2;++direction) {\n'] X += [' output_prepare(h2,h,hlen);\n'] X += [' input_prepare(n2,n,nlen);\n'] X += [' input_prepare(k2,k,klen);\n'] X += [' input_prepare(c2,c,clen);\n'] X += [' for (i = 0;i < nlen;++i) {\n'] X += [' n[i] &= ~1;\n'] X += [' if (direction) {\n'] X += [' if (nlen-1-i < weight) n[i] += 1;\n'] X += [' } else {\n'] X += [' if (i < weight) n[i] += 1;\n'] X += [' }\n'] X += [' n2[i] = n[i];\n'] X += [' }\n'] X += [' crypto_core(h,n,k,c);\n'] X += [' checksum(h,hlen);\n'] X += [' output_compare(h2,h,hlen,"crypto_core");\n'] X += [' input_compare(n2,n,nlen,"crypto_core");\n'] X += [' input_compare(k2,k,klen,"crypto_core");\n'] X += [' input_compare(c2,c,clen,"crypto_core");\n'] X += [' double_canary(h2,h,hlen);\n'] X += [' double_canary(n2,n,nlen);\n'] X += [' double_canary(k2,k,klen);\n'] X += [' double_canary(c2,c,clen);\n'] X += [' crypto_core(h2,n2,k2,c2);\n'] X += [' if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic");\n'] X += [' }\n'] X += [' }\n'] X += [' }\n'] X += [' checksum_expected(%s_%s_checksums[checksumbig]);\n' % (o,p)] X += [' }\n'] # ----- test vectors computed by python for f,output,inout,input in tests: cof = 'crypto_'+o+f if (o,p) in precomputed: X += [' for (long long precomp = 0;precomp < precomputed_%s_%s_NUM;++precomp) {\n' % (o,p)] for v,initsize,allocsize in vars: if v in output: X += [' output_prepare(%s2,%s,%s);\n' % (v,v,allocsize)] if v in input+inout: X += [' input_prepare(%s2,%s,%s);\n' % (v,v,allocsize)] X += [' memcpy(%s,precomputed_%s_%s_%s[precomp],%s);\n' % (v,o,p,v,allocsize)] X += [' memcpy(%s2,precomputed_%s_%s_%s[precomp],%s);\n' % (v,o,p,v,allocsize)] args = ','.join(output+inout+input) X += [' %s(%s);\n' % (cof,args)] for v,initsize,allocsize in vars: if v in output+inout: X += [' if (memcmp(%s,precomputed_%s_%s_%s[precomp],%s)) {\n' % (v,o,p,v,allocsize)] X += [' fail("failure: %s fails precomputed test vectors\\n");\n' % cof] X += [' printf("expected %s: ");\n' % v] X += [' for (long long pos = 0;pos < %s;++pos) printf("%%02x",((unsigned char *) precomputed_%s_%s_%s[precomp])[pos]);\n' % (allocsize,o,p,v)] X += [' printf("\\n");\n'] X += [' printf("received %s: ");\n' % v] X += [' for (long long pos = 0;pos < %s;++pos) printf("%%02x",%s[pos]);\n' % (allocsize,v)] X += [' printf("\\n");\n'] X += [' }\n'] for v,initsize,allocsize in vars: if v in output+inout: X += [' output_compare(%s2,%s,%s,"%s");\n' % (v,v,allocsize,cof)] if v in input: X += [' input_compare(%s2,%s,%s,"%s");\n' % (v,v,allocsize,cof)] X += [' }\n'] X += ['}\n'] X += ['\n'] X += ['void test_%s_%s(void)\n' % (o,p)] X += ['{\n'] X += [' long long maxalloc = 0;\n'] X += [' if (targeto && strcmp(targeto,"%s")) return;\n' % o] X += [' if (targetp && strcmp(targetp,"%s")) return;\n' % p] if cof == 'crypto_sort': for v,initsize,allocsize in vars: X += [' storage_%s_%s_%s = callocplus(ntruprime_sort_%s_BYTES*%s);\n' % (o,p,v,p,allocsize)] X += [' test_%s_%s_%s = aligned(storage_%s_%s_%s,ntruprime_sort_%s_BYTES*%s);\n' % (o,p,v,o,p,v,p,allocsize)] X += [f' if (ntruprime_sort_{p}_BYTES*{allocsize} > maxalloc) maxalloc = ntruprime_sort_{p}_BYTES*{allocsize};\n'] for v,initsize,allocsize in vars: X += [' storage_%s_%s_%s2 = callocplus(maxalloc);\n' % (o,p,v)] X += [' test_%s_%s_%s2 = aligned(storage_%s_%s_%s2,ntruprime_sort_%s_BYTES*%s);\n' % (o,p,v,o,p,v,p,allocsize)] else: for v,initsize,allocsize in vars: X += [' storage_%s_%s_%s = callocplus(%s);\n' % (o,p,v,allocsize)] X += [' test_%s_%s_%s = aligned(storage_%s_%s_%s,%s);\n' % (o,p,v,o,p,v,allocsize)] X += [f' if ({allocsize} > maxalloc) maxalloc = {allocsize};\n'] for v,initsize,allocsize in vars: X += [' storage_%s_%s_%s2 = callocplus(maxalloc);\n' % (o,p,v)] X += [' test_%s_%s_%s2 = aligned(storage_%s_%s_%s2,%s);\n' % (o,p,v,o,p,v,allocsize)] X += ['\n'] if o in ('encode','decode','sort'): # requires alignment X += [' for (long long offset = 0;offset < 1;++offset) {\n'] else: X += [' for (long long offset = 0;offset < 2;++offset) {\n'] X += [' if (targetoffset && atol(targetoffset) != offset) continue;\n'] X += [' if (offset && valgrind) break;\n'] X += [' printf("%s_%s offset %%lld\\n",offset);\n' % (o,p)] X += [' for (long long impl = -1;impl < ntruprime_numimpl_%s_%s();++impl)\n' % (o,p)] X += [' forked(test_%s_%s_impl,impl);\n' % (o,p)] for v,initsize,allocsize in vars: X += [' ++test_%s_%s_%s;\n' % (o,p,v)] for v,initsize,allocsize in vars: X += [' ++test_%s_%s_%s2;\n' % (o,p,v)] X += [' }\n'] for v,initsize,allocsize in reversed(vars): X += [' free(storage_%s_%s_%s2);\n' % (o,p,v)] for v,initsize,allocsize in reversed(vars): X += [' free(storage_%s_%s_%s);\n' % (o,p,v)] X += ['}\n'] if (o,p) in sizes: for line in sizes[o,p].splitlines(): psize = line.split()[1] size1 = psize.replace('crypto_%s_%s_'%(o,p),'crypto_%s_'%o) X += ['#undef %s\n' % size1] X += ['\n'] save(f'command/ntruprime-test_{o}_{p}.c',''.join(X)) Z += [r'''/* ----- top level */ #include "print_cpuid.inc" int main(int argc,char **argv) { valgrind_init(); if (valgrind) limits(); setvbuf(stdout,0,_IOLBF,0); printf("ntruprime version %s\n",ntruprime_version); printf("ntruprime arch %s\n",ntruprime_arch); print_cpuid(); if (valgrind) { printf("valgrind %d",(int) valgrind); printf(" declassify %d",(int) crypto_declassify_uses_valgrind); if (!crypto_declassify_uses_valgrind) printf(" (expect false positives)"); printf("\n"); } if (*argv) ++argv; if (*argv) { targeto = *argv++; if (*argv) { targetp = *argv++; if (*argv) { targeti = *argv++; if (*argv) { targetn = *argv++; if (*argv) { targetoffset = *argv++; } } } } } '''] for p in primitives['verify']: Z += [' test_verify_BYTES();\n'.replace('BYTES',p)] for t in todo: o,vars,howmuch,tests = t for p in primitives[o]: Z += [' test_%s_%s();\n' % (o,p)] H += [f'#define test_{o}_{p} ntruprime_test_{o}{p}\n'] H += [f'extern void test_{o}_{p}(void);\n'] Z += [r''' if (!ok) { printf("some tests failed\n"); return 100; } printf("all tests succeeded\n"); return 0; } '''] H += ['#endif\n'] save('command/ntruprime_test.h',''.join(H)) save('command/ntruprime-test.c',''.join(Z)) libntruprime-20241021/benchmarks/0000755000000000000000000000000014705505542015305 5ustar rootrootlibntruprime-20241021/benchmarks/a72-pi4b0000644000000000000000000056722714705505542016500 0ustar rootrootntruprime version 20241008 ntruprime arch arm64 cpuid 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 cpucycles selected persecond 1500000000 cpucycles selected implementation arm64-pmc cpucycles selected 0 9 +15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 0 43 +3305+25+16+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1 6772 +4383+303+154+45+22+22-25+5-1+0+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 randombytes selected 2 6784 +668+39+54-23-20+8-14+2-25-1-25-1-25-1-25-1-25-1-25-1-25+61972+812+83+14+6+6+6+6+6+6+6 randombytes selected 4 6815 +679+81+16-21+35+9+39+5-9+7-16-7+12-8+7-16-7+12-8+7-16-7+12-8+7-16-7+12-8+7-16-7 randombytes selected 7 6767 +655+120+67+15-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3 randombytes selected 11 6762 +674+48-31+0+15-34+1+15-34+0+16-34+4+15-34+0+15-34+1+15-34+0+15-34+1+15-34+0+15-34+1+15 randombytes selected 17 6776 +696+70+93+45+36-22-24+12-3+28-25-24+12-3+28-25-24+12-3+28-25-24+12-3+28-25-24+12-3+28-25-24 randombytes selected 26 6779 +713+194+100+48-8+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2 randombytes selected 40 7410 +713+60+14-12-44-39-18+30-6+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+14-5+4+4+4-5+4 randombytes selected 61 7400 +712+119+7+16+0+0+0+0+0-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 92 10317 +858+120+82-7-6+28+2+3-23-18+27+2+3-24-21+27+2+3-22-18+27+2+3-24-21+27+2+3-23-18+27+2 randombytes selected 139 13189 +786+145-19+69+39-17-2+1-1+0+2+0-1+0-1+0-1+0-1+0-1+0+0+0-1+0-1+0-1-5-1+0 randombytes selected 209 16070 +662+18+42-14+49+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0 randombytes selected 314 19000 +788+37+14+2-8+4-8+4-8+4-6+4-8+4-8+4-8+4-10+4-8+4-8+4-8+4-8+4-8+4-8+4 randombytes selected 472 27648 +810+88+22-9-4-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 709 39147 +626+18-22-8+0+3+1+0+0+0+0+1+0+0+0+0+0+0+0+0+3+0+0+12214+219+8-23-43-28-43-27-51 randombytes selected 1064 53563 +771+47-3-38+36+3+0-1-1+3+9-2-1-1-1-1+1+8+1+8-1-1+2-1-7-1+3-1-1-1-1-27 randombytes selected 1597 76627 +721-5+2+34+16+12+15+12+12+12+14+12+12+12+12+12+12+12+15+12+12-17-48-63-63-70-64-63-63-63-64-63 randombytes selected 2396 114011 +715+171+46+73+76+84+75+75+85+75+11212+178+67+35-38-38-37-36-44-36-44-37-37-37-37-37-37-37-37-36-44-36 randombytes selected 3595 168635 +4719+143-42-11-16-8-11-7-15-11-7+1-9-9-11-8-10+2+8-9+45019+746+253+148+157+157+103-19-27-23-50-27 randombytes selected 5393 248051 +7926+1552+1239+1165+1080+1106+1108+1099+1097+1101+1097+1098+1179+1087+12758-482-864-932-909-913-912-910-911-914-910-910-896-893-912-928-887-906 randombytes selected 8090 367173 +549-111-121-199+11095+125-45-210-192-139-135-179-184-180-194-166-165-153-196-240+55188+961+392+184+201+208+184+179+171+191+183+191 randombytes selected 12136 556374 +656-75+11495+86+2806+2264+2029+2053+2015+2054+2174+2134+11040-51-706-861-636-726-674-843-877-730-663+50537-8457-9094-9231-9380-9337-9351-9375-9333 randombytes selected 18205 818298 +1649+12181+904+537+931+916-51+55+7387+189-276-307-344-305-360+40300+329-307-310-406-326-252+10163+259-223-379-268-287-344-290+8193-8 randombytes selected 27308 1224108 +429-905-953+43817+231-197-936+8380-540-859-915-949+6807-690-878-914-833+38016+1533+967+861+626+10051+569+456+363+317+7974+551-405-939-947 randombytes selected 40963 1868272 -1707-2316+12234-1665-2409+5865-1702-2094-2114+39822-1901-2378+7081-2021-2306+5761-1877-1947+36891-1795-2000+7586-1767-2154-1987+5958-1978-2764+36180+5771+4947+12102 randombytes selected 61445 2752206 -4198+5926-4813+37058-3391+5654-3861+12553+14888+52694-328-1906+14388-4623+3930-4836+35399-6675+6708-6873+1019-7021+31349-6503-6946+2410-6975+598-6945+31112-6666+1704 verify_897 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 selected 897 385 +222+0+1-2+0-1+0+4-2+0-1+0+4-2+0-1+0+4-2+0-1+0+4-2+0-1+0+4-2+0-1+0 verify_897 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 0 897 384 +265+4+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+5+0+0+0+0 verify_897 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 1 897 383 +81+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 selected 1039 440 +600+9+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 0 1039 458 +49751+1-1+1+1+1-1+1-1-1+1+1+1-1+1-1-1+1+1+1-1+1-1-1+1+1+1-1+1-1-1+1 verify_1039 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 1 1039 447 +86+3-7-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4 verify_1184 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 selected 1184 498 +103+19-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 0 1184 497 +214+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 1 1184 493 +18+9-2+7-2-2+7-2-2+7-2-2+7-2-2+7-2-2+7-2-2+7-2-2+7-2-2+7-2-2+7-2 verify_1349 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 selected 1349 598 +298-6+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 0 1349 605 +302+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 1 1349 596 +20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 selected 1455 610 +521-10-13+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5 verify_1455 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 0 1455 620 +870+4-1+0+0-1+0+0+0+0+0+0-1+0+0+0+0+0+0-1+0+0+0+0+0+0-1+0+0+0+0+0 verify_1455 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 1 1455 609 +47+0-11-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5+6-5 verify_1847 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 selected 1847 754 +719-8-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 0 1847 764 +288+4-1+0+0+0-1+0-1-1+0+5-1+0-1-1+0+0+0-1+0-1-1+0+0+0-1+0-1-1+0+0 verify_1847 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 1 1847 748 +69+10-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 selected 0 101 +1922+6+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 1 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 2 101 +122+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 4 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 7 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 11 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 17 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 26 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 40 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 61 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 92 101 +137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+2+0+0+0+0 hashblocks_sha512 selected 139 1183 +5366+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 209 1183 +471+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 314 2250 +391+22+15+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 472 3317 +392+20+15+15+15+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 709 5451 +425+36+16+16+16+16+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0 hashblocks_sha512 selected 1064 8680 +414+31+16+0+0+0+0+0+0+4+0+0+0+0+4+0+0+0+1+0+0+0+0+0+0+4+4+0+0+0+49267+54 hashblocks_sha512 selected 1597 12948 +422+31+19+0+0+0+0+0+4+0+0+0+0+5+0+0+0+0+0+0+0+0+0+4+0+0+4+0+0+0+0+0 hashblocks_sha512 selected 2396 19351 +410+30+15+4-1-1-1-1+3+3-1-1-1-1+4-1-1-1-1-1-1+4+3-1-1-1-1+4-1-1-1-1 hashblocks_sha512 selected 3595 30023 +416+28+32+2+1-3+0-3+2-3-3+6-3-3+6-3-3+6-3-3+6-3-3+6-3-3+6-3-3+6-3+3 hashblocks_sha512 selected 5393 44974 +474+19+9+0+0+0+0+0+5+4+0+0+0+0+0+0+0+0+0+0+4+9+0+0+0+0+0+5+4+0+0+0 hashblocks_sha512 selected 8090 67382 +412-1-1-1-1+4-1-1-1+8-1-1+4-1-1-1+8+13401+395+0-1-1-1-1-1+4+3-1-1+8-1+0 hashblocks_sha512 selected 12136 100464 +413+6-6+3-1-6+3-5+2-2+3-1-6+3-1-6+3-5+2-2+3-1-6+3-1-6+3-5+2-2+4+2 hashblocks_sha512 selected 18205 151852 +596+11534+139-8+1+1+1+5+10-3+5-8-3+1-3+2-3+5-8-2+1-3+5-8-3+1-3+2-3+5-8-3 hashblocks_sha512 selected 27308 227787 +764-7+19-13+10-3-17-9+10+18+2-15+14+0-4-17-8-5+2-2+10-13+10+10-3+10800+200+2-4-17-8-5 hashblocks_sha512 selected 40963 342569 +482-4+4+63+33+23+69+11268+46-3+20+2+1-17-4-8-21+2+1-15-13+1-9-4+40554-145-25-47-55-26+8296-11 hashblocks_sha512 selected 61445 513682 +12929-73+36-15-13+3+84-13+3+84-13+3+8361-46-32+39+25+26-21+31+17+53-5+40279-136-50-23-25-46-41-35+17 hashblocks_sha512 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 0 0 60 +1205+34+31+19+0-3+0+0+0+0+0+0+0+0+0+3-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1 60 +117+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 2 60 +118+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 4 60 +112+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 7 60 +112+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3-3+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 11 60 +113+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3-3+0+0+0+0+0+0+0 hashblocks_sha512 0 17 60 +113+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 26 60 +112+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 40 60 +113+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 61 60 +112+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 92 60 +112+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 139 1184 +5421+50+27+27+94+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 209 1184 +370-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 314 2270 +379+40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 472 3366 +318+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 709 5518 +379+3+0+0+0+4+0+0+0+0+4+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1064 8768 +391+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1597 13080 +356+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 2396 19548 +375+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 3595 30328 +373+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 5393 45433 +506-14-15-15-15-15-15-13+162836+478+38+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 8090 68072 +448+8-3-1-1+3-1+0+0+0+0+0-1-1+3-1+0+0+0+0+0-1-1+3-1+0+0+0+0+0-1-1 hashblocks_sha512 0 12136 101491 +401+56-1-1+2-2-1-1+46832+168+57+2-2-1-1+2-2-1-1+2-2-1-1+2-2-1-1+2-2-1-1+2 hashblocks_sha512 0 18205 153370 +709+55+6+9+7+10+6+9+8+5+5+6+5+10+9+7+5+21590+17-13-14-14-14-14-14-14-14-14-14-14-14-14 hashblocks_sha512 0 27308 230886 -391-695-696-706-702-709-707-706-706+11354+357+21+26+26+26+26+26+26+26+26+26+26+26+26+26+26+26+26+26+26+26+26 hashblocks_sha512 0 40963 347524 -1334-1741-1779-1781-1765-1783-1779-1783-1770-1783-1781-1765-1783+9763+868+775+763+762+760+776+772+768+780+769+770+772+769+764+768+762+8835+715 hashblocks_sha512 0 61445 519811 -1112-1302-1302-1304+42019-1257-1152-1190-1185-1183-1193-1186-1192-1185-1181-1188+14342+3550-1119+3510+3507+3511+3517+3525+3513+3509+3513+20890-1266-1183-1184-1183 hashblocks_sha512 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 1 0 100 +162+7+0+1+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 1 100 +117+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 2 100 +124+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 4 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 7 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 11 100 +151+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 17 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 26 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 40 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 61 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 92 100 +132+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0 hashblocks_sha512 1 139 1182 +736+7+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+3+0+0+0+0 hashblocks_sha512 1 209 1182 +394+8+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+3+0+0+0+0 hashblocks_sha512 1 314 2249 +411+24+0+0+4+0+0+0+1+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+3+0+0+0+0 hashblocks_sha512 1 472 3316 +383+23+15+0+4+0+0+5+0+0+0+0+0+0+0+0+0+4+0+3+0+0+0+0+0+0+0+3+0+0+0+0 hashblocks_sha512 1 709 5450 +404+24+16+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+3+0+0+0+0+0+0+0+3+0+0+0+0 hashblocks_sha512 1 1064 8681 +411+16+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 1597 12949 +415+31+0+0+4+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+4 hashblocks_sha512 1 2396 19351 +403+46+16+0+3+0+0+0+0+0+5+1+0+0+0+0+0+0+0+0+0+0+0+0+5+0+9+1+0+0+0+0 hashblocks_sha512 1 3595 30023 +409+29+29-2-2-2-2+6-2+3+1-2-2+2-2+3+3-2+3-2+2-2+2-2-2+3-2+3+3-2-2-2 hashblocks_sha512 1 5393 44977 +398+13-2-2+6-2-2-2-2+3+6-2-2+3+3+2-2-2+3+7+2-2-2-1-2-2-2-2+3+6-2-2 hashblocks_sha512 1 8090 67391 +796-8+0-1+0-5-9-9-9-9-9-4-4-1+0+3-4+3+0+3+0+3+0+3-4+3+0+3+0+3+0+3 hashblocks_sha512 1 12136 100468 +407+5+0-1-9-4-9-1+0+3+1+0-1-9-4-9-1+0+3+1+0-1-9-4-9-1+0+3+1+0+11241+354 hashblocks_sha512 1 18205 151844 +600+8+3-1-11+5+5+1-3-2+10+2-7+3+1-3-2+10+2+9-3-3-2-3-7-7+6+1-7-3-7+2 hashblocks_sha512 1 27308 227801 +524-11+26+16-10-6-10-6+8-10+12-2-10+21+8-10+16+11-10+11+11491+145+8-10+12-6-10+2-10-6-10-6 hashblocks_sha512 1 40963 342543 +461-24-34+10928-79+61+18-5+18+18-5-6+28+31-5+15+10+31+13+10+40224-121-142+2-18-6-11-15-15-15-15-15 hashblocks_sha512 1 61445 513731 +174-23-32-53-26-28-24-102+3+10633-137-83-47-73-39-47-68-53-83-64-68+38782-150+95+158+143+109+212+118+109+212+118 hash_sha512 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 selected 0 1349 +4910+122+44+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 1 1367 +4269+48+38+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 2 1367 +734+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 4 1360 +734+44+39+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 7 1360 +673+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 11 1359 +722+44+19+19+19+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 17 1359 +731+42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0 hash_sha512 selected 26 1352 +770+62+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 40 1355 +732+24+19+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 61 1351 +722+41+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 92 1352 +745+58+52+20+20+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 139 2441 +639+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+3+0+0+0 hash_sha512 selected 209 2436 +622+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4 hash_sha512 selected 314 3500 +677+84+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0 hash_sha512 selected 472 4568 +673+37+15+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+0+0+0+0+0+0 hash_sha512 selected 709 6704 +673+85+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 1064 9906 +713+67+32+32+16+16+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+5+0 hash_sha512 selected 1597 14170 +705+57+16+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+4+0+4+0+0+0+0+0+0+0+2+0 hash_sha512 selected 2396 20600 +875+74+36+15-1-1-1+3-1-1+3-1+8-1-1-1-1-1+3+4-1-1-1-1-1-1-1-1-1-1+3-1 hash_sha512 selected 3595 31254 +764+53+12+12+12+19-3-4-2+1-2+1-2+1-2+1-2+1-2+1-2+1-1-4-4-4-4+0-4+3-4+3 hash_sha512 selected 5393 46209 +747+63+14-1-5+0+0+0+0+0-5-5-5-5+4+4+0+0+0+0+0+0-5-5-5-5+4+4+0+0+0+0 hash_sha512 selected 8090 68611 +766+50+14-2+1+1-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3+44209+527+30+17+24+17+24 hash_sha512 selected 12136 101691 +766+60+10-2-2+5-2+1-2-2+5-2-2+5-2+5+2+1-2-2+5-2-3-2-2-2+5-2+5+2+1-2 hash_sha512 selected 18205 153316 +885+15-21-19+12310+183-14-1+7-5-9-3-4-1-9-7-4+4+4+1+5+3-1-9-7-4+4+4+1+5+3-1 hash_sha512 selected 27308 230475 +466+11605+566+49-10-3-11-10-18-7-18-16-5-3-11-10-18-7-18+11+9+4+16+3+0+13+21+40591+663+39-17-4 hash_sha512 selected 40963 347390 +872+236+253-265-755-158-263+11486+477-88-240-481-673-465+255+223-215+256+230-277-493-489+265+234-256+8183-177+285-68-229+283+296 hash_sha512 selected 61445 521020 +53558+838-2+26+0-3-2+13+17-7+3+11+10882+393-12-7-11-14+3+11+2-6-7+8150+673-5-11+0-19-22-8-14 hash_sha512 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 0 0 1346 +1712+40+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 1 1350 +626+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 2 1369 +579+20+16+16+16+1+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 4 1354 +672+68+37+16+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0 hash_sha512 0 7 1361 +673+23+54+52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0 hash_sha512 0 11 1371 +626+24+23+23+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0 hash_sha512 0 17 1386 +587+23+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4 hash_sha512 0 26 1401 +672+60+27+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 40 1461 +624+16+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 61 1511 +671+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 92 1591 +639+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0 hash_sha512 0 139 2454 +661+42+24+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 209 2647 +719+34+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 314 3649 +578+15+15+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 472 4790 +561+32+15+5+0+0+0+0+5+0+0+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0+0+0+5+0+0+0 hash_sha512 0 709 6906 +621+46+31+0+3+0+0+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+5+0+0+0+0+0+0 hash_sha512 0 1064 10051 +613+32+16+0+0+0+0+0+0+0+1+0+4+4+0+0+4+0+0+0+5+0+0+0+0+0+0+0+0+5+0+0 hash_sha512 0 1597 14356 +561+28+28-3-3-3+0-3-3+1-3+1+2+1+2+1+2+1+2+1+2+1+2+1+2+1+2-3-3-3-3-3 hash_sha512 0 2396 20832 +598+32+31+0+0+0+0+0+0+0+0+0+0+0+5+0+4+0+0+0+0+0+9+0+0+0+0+4+0+0+0+0 hash_sha512 0 3595 31317 +644+48-9-27-26+12052+84-6-7-7-2-7-2-3+1+1+1+1-3+1+1+1+1+1-3+1+1+1+1+1-3+1 hash_sha512 0 5393 46258 +658+73+22+10+2-2-2-2-2-2+2+7-2-2+2+3-2-2-2-2-2-2+2+7-2-2-2+3+2-2+3+8 hash_sha512 0 8090 68689 +621+48+29+4-6-1-2-6+3-1-2+4-6-1-2-2+3+4-1+2-6+0-6+3-6+2+3-1-6+3+2-6 hash_sha512 0 12136 102003 +69727+604+0+2+2-2-5+2-2-5+2-5+2+2-2-5+2-2-5+2-5+2+2-2-5+2-2-5+2-5+2+2 hash_sha512 0 18205 153338 +827+12-13-7-1-1+1+11+1+11+1+45739+527-15-9+7-4-2-7-10-15-9+0+1-2-11-5+7-4+11+1+11 hash_sha512 0 27308 230451 +483+2-8-7-12+11868+590-11-9-4-14-19-11-7+3-11-9-16-16+36+11+31+19+27+47+23+31-12-12-8-11+8165 hash_sha512 0 40963 347244 +606+47+5+5+2+3+8+24+20+2+30+44253+35+6-31-42-36-46-32-32-27-31-24-17-32-16-30+11+10000+151+34+32 hash_sha512 0 61445 520510 +824-1083+10142+487-3-1+5-1+0-3-7+0-14+0+50731+410+6-1+0-8-4-1+6+3+4+9604-650-19+5-12-5-13 hash_sha512 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 1 0 1349 +891+22+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0 hash_sha512 1 1 1367 +785+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 2 1367 +715+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 hash_sha512 1 4 1360 +765+57+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 7 1360 +718+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 11 1359 +725+26+23+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 17 1359 +731+26+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 26 1352 +800+73+37+20+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 40 1355 +800+38+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0 hash_sha512 1 61 1351 +765+53+36+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 92 1352 +776+55+52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 139 2441 +722+27+0+0+0+0+0+0+0+0+4+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 209 2436 +711+37+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 314 3500 +691+34+16+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 472 4568 +702+36+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 709 6704 +725+65+47+0+2+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 1064 9906 +739+53+30+0+0+0+4+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 1597 14170 +745+80+30+0+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0 hash_sha512 1 2396 20573 +746+77+0+0+0+0+0+0+4+0+0+0+0+4+0+0+0+0+4+0+0+0+0+4+0+0+0+0+8+0+0+0 hash_sha512 1 3595 31253 +771+85+13+2+4-3+4-3+4-3+4-3+4-3+4-3+4-3-3-3-3-3-3+1+1-3-3+2-3+4-3+4 hash_sha512 1 5393 46207 +737+43734+413+13-3-3-3-3-3+6+2+2+2+2+2-3-3-3-3+6+6+2+2+2+2+2+2-3-3-3-3+6 hash_sha512 1 8090 68604 +674+27+9+0+0+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0 hash_sha512 1 12136 101713 +667+13-13-13-19-24-24-17-24-21-24-24+11504+275+10-1-5-4+3+3+3+3+3+3+3+3+3+3+3+3+3+3 hash_sha512 1 18205 153307 +858+32-12-2+5-4+0-5-4-4-8-4-8-4-4-8-4-8-4+11438+534+0+5+5+17+5+3-1+14+3+5+17 hash_sha512 1 27308 230474 +711+9+7-7-9-10-3-8-11-15-4+44212+635+22-12-7-4-11-12+22+1+11+14+15+10+14+22-18-8-17+0-18 hash_sha512 1 40963 347502 +1199+143+131-198-198-209-191-210-201-199-205-313+133+164+8542+133-303+131+119-374+125+90-596+132+122-380+106+112-788+135+125+82011 hash_sha512 1 61445 521038 +724-1491-19-43-15+13577+289+27+4+0-5+1-19-25-22-15+8852-25-11+3-3-2+3+13+6+3+13-3+41632+448-15+31 decode_653x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 selected 653 168 +1464+5+1+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1 decode_653x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 0 653 190 +551+60+61+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 1 653 169 +63+5+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1 decode_653x1541 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 selected 1306 10685 +3421+67+73+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 0 1306 10682 +235+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 1 1306 12130 +60897+19+14+14+14+14+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 selected 1306 12350 +3600+31+29+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 0 1306 12348 +127+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 1 1306 14882 +3799+51+57+57+0+0+0+0+0+0+0+0+0+0+75+0+13993+185+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 selected 1306 229 +268+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0 decode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 0 1306 453 +730+25+34-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 1 1306 227 +23+0+12+0+1+0+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0 decode_653xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 selected 2612 362 +275+18+15+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 0 2612 1338 +83+15+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 1 2612 363 +45+0+0+0+0+0+0+0+1+0+0+1+0+0+73+1+0+0+1+1+0+0+1+0+0+1+1+0+0+1+0+0 decode_761x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 selected 761 234 +2018+5-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 decode_761x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 0 761 280 +472+42+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 1 761 233 +7+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_761x1531 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 selected 1522 12548 +4168+57+43+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+9+0+0+0+0+0+0+0 decode_761x1531 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 0 1522 12556 +197+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 1 1522 14201 +7246+15+15+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 selected 1522 14307 +4004+49+36+23+6+23+23+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 0 1522 14308 +283+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 1 1522 17174 +4286+52+52+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 selected 1522 226 +458+53+0+24+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 0 1522 486 +380+14+1+0-6+1+0-6+1+0-6+1+0-6+1+0-6+1+0-6+1+0-6+1+0-6+1+0-6+1+0-6 decode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 1 1522 227 +100+0+0+0+0+1+0+0+0+0+0+0+50+0+24+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0 decode_761xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 selected 3044 416 +152+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 0 3044 1554 +53+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 1 3044 414 +69+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 selected 857 229 +1904+27+6+0+0-2-1+2-2-1+2-2-1+2-2-1+2-2-1+2-2-1+2-2-1+2-2-1+2-2-1+2 decode_857x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 0 857 254 +646+42+21+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 1 857 228 +59+6+2+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+5+0-1 decode_857x1723 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 selected 1714 14742 +3407+38+30+15+15+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 0 1714 14743 -3+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 1 1714 16498 +4562+16+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 selected 1714 16728 +2903+51+47+11+11+0+0+55+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 0 1714 16728 +238+1+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 1 1714 19714 +5401+43+43+0+0+0-1+0+0+0+0+0+0+51502+204+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 selected 1714 250 +255+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 0 1714 539 +365+21+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5 decode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 1 1714 251 +53+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 selected 3428 466 +583+1+128+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 0 3428 1744 +245+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 1 3428 464 +99+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 selected 953 322 +2950-5+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2 decode_953x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 0 953 362 +513+83+37+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 1 953 320 -7+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2+0-3+2 decode_953x2115 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 selected 1906 17181 +3434+46+21+21+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 0 1906 17185 +181+2+1+0+0+0+0+0+0+0+0+0+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 1 1906 22057 +4979+31+27+12+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 selected 1906 17471 +4565+49+47+14+14+14+14+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 0 1906 17465 +333+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 1 1906 21070 +5443+29+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 selected 1906 273 +94+5+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+12+0+0+0+26 decode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 0 1906 579 +534+38+47+6+28+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 1 1906 271 +51+0+0+0+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+1+0+0+0+0 decode_953xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 selected 3812 540 +235+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 0 3812 1965 +496+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 1 3812 538 +157+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 selected 1013 291 +2697+6+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 decode_1013x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 0 1013 332 +603+60+42+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 1 1013 290 +59+3+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1 decode_1013x2393 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 selected 2026 18415 +3514+46+29+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 0 2026 18415 +263+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+4+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 1 2026 23456 +5386+19+19+0+0+0+0+11892+118-3-3-3-3+14-3-3-3-3+0+0+0+0+0+0+0+0+0+0+0+0+0-3 decode_1013x7177 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 selected 2026 17591 +4139+34+31+9+9+9+9+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 0 2026 17589 +108+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 1 2026 21713 +6094+37+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 selected 2026 316 +114+0+54+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 0 2026 641 +342+32+15+15+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 1 2026 314 +122+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 selected 4052 542 +142+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 0 4052 2061 +259+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 1 4052 540 +142+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1 decode_1277x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 selected 1277 385 +1595+22+17-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_1277x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 0 1277 408 +482+44+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 1 1277 384 +120+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 selected 2554 22991 +53252+401+19+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 0 2554 22988 +354+0+0+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 1 2554 29427 +6623+12+12+12+12-1+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 selected implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 selected 2554 22312 +3779+23+22+22+22+32+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 0 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 0 2554 22310 +246+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 1 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 1 2554 27445 +7704+14+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+12026+57+0+0-1+0+0 decode_1277xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 selected 2554 354 +309+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 0 2554 776 +167+14+33+11+33-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 1 2554 352 +157+2+38+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 selected 5108 674 +147+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+1+0+0+0+6+0+0+0 decode_1277xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 0 5108 2587 +57+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 1 5108 672 +38+91+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+0+0+0 decode_int16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 selected 2 16 +24+15+15+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 0 2 18 +21+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 1 2 17 +19+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 selected 164 181 +822+37+51+17+16+17+16+17-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+3+0-1+0-1 encode_653x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 0 164 179 -2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 encode_653x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 1 164 211 +832+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 selected 865 2408 +2154+56+66+30-1+0+0+0+0+4+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 0 865 2448 +1406+46-3-2+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 1 865 2406 +295+7+2+0+1+0+0+0+0+0+0+0+0+0+2+1+0+0+0+0+0+0+0+0+2-13-19-17+1+0+0+0 encode_653x1541round selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round selected 865 3052 +2493+38+37+16+16+16+16+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 0 865 3052 +364+2+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 1 865 3252 +736+41+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x4621 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 selected 994 1891 +1599+37+34+32+31+15+17+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0 encode_653x4621 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 0 994 2207 +1251+41-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+10+0+0+0+0+0+0+0+0+0+0+0 encode_653x4621 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 1 994 1891 +217+7+0+0+0-1+0+0+0-1+1+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0 encode_653xfreeze3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 selected 653 894 +771+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 0 653 1204 +412+27+22+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 1 653 892 +66-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 selected 1306 325 +551+19+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 0 1306 332 +95+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 1 1306 362 +59+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 selected 191 223 +2565+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 0 191 268 +989+27+23+22+23+1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_761x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 1 191 223 +78+7+3-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3 encode_761x1531 selected implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 selected 1007 2817 +2031+43+12+11-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 0 1007 2818 +195+2-2+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0 encode_761x1531 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 1 1007 2838 +2792+35+15+16+16+16+16+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531round selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round selected 1007 3603 +1981+17+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0 encode_761x1531round 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 0 1007 3601 +210-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1 encode_761x1531round 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 1 1007 3827 +578+52+37+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x4591 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 selected 1158 2211 +2834+32+32+31+16+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x4591 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 0 1158 2566 +1387+36+32+35+35+35-1+1+0-4-3-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x4591 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 1 1158 2211 +163+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 selected 761 992 +786-7-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 0 761 1344 +300+19+16+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 1 761 992 +68-6-27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 selected 1522 362 +369+35+17+17+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 0 1522 366 +64+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 1 1522 415 +113+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 selected 215 268 +1790+1+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0 encode_857x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 0 215 290 +340+58+19+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0 encode_857x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 1 215 267 +77-1+2-1-1-1+2-1-1-1+2-1-1-1+2-1-1-1+2-1-1-1+2-1-1+10+2+2+2-1-1-1 encode_857x1723 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 selected 1152 3086 +3275+35+30+15+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x1723 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 0 1152 3114 +1421+60+20+22+0+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 encode_857x1723 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 1 1152 3086 +213+6+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x1723round selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round selected 1152 3907 +2350+99+61+36+0+1+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+49030+736+0 encode_857x1723round 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 0 1152 3933 +357+25-26+20-26+20-26+20-26+20-26+22-26+20-24+20-22+20-26+20-26+20-26+20-26+20-26+20-26+20-25+20 encode_857x1723round 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 1 1152 4213 +596-22-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x5167 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 selected 1322 2506 +2438+17+11+16+17-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_857x5167 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 0 1322 2899 +1735+34+19+13+19+13+3-3-1+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x5167 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 1 1322 2504 +330-12+4+0-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 encode_857xfreeze3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 selected 857 1138 +405+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1 encode_857xfreeze3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 0 857 1545 +248+25+18+20+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 1 857 1136 +53-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5 encode_857xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 selected 1714 402 +382+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 0 1714 409 +103+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 1 1714 464 +94+18+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 selected 239 248 +355+45+20+2+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0 encode_953x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 0 239 246 +58-1+1+0+0+2+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2 encode_953x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 1 239 266 +2092+3+0-4+1+1-4+1+1-4+1+1-4+1+1-4+1+1-4+1+1-4+1+1-4+1+1-4+1+1-4+1 encode_953x2115 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 selected 1317 3232 +2850+35+25-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 0 1317 3910 +1895+35+10+1-1+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0-1+0+0+0+0+0+0-1 encode_953x2115 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 1 1317 3232 +388-15+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115round selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round selected 1317 4114 +2178+86+55+29+15+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0 encode_953x2115round 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 0 1317 4114 +411-2-2-2+0+0+0+0+1+1+0+0+0+0+0+1+0+0+0+0+0+0+1+1+2+0+0+0+1+0+0+0 encode_953x2115round 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 1 1317 4471 +634-4-6+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+1+0+0+0+1+0+0 encode_953x6343 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 selected 1505 2789 +2287+26+11+14-2+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 encode_953x6343 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 0 1505 3240 +1031+70+46+14+17+15-2+6-1-1-1-1-1-1-1-1+13+4-1-1-1-1-1-1-1-1+0-1+16-1-1-1 encode_953x6343 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 1 1505 2773 +164+0+14+12705+75-2+2-3+2-3+2-3+4-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3 encode_953xfreeze3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 selected 953 1223 +1056-1-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 0 953 1674 +487+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 1 953 1223 +97-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 selected 1906 439 +497+32+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 0 1906 446 +96+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 1 1906 511 +42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 selected 254 314 +2333+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4 encode_1013x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 0 254 347 +305+35+34+15+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 1 254 312 +38+2+2-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1+4-1-1 encode_1013x2393 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 selected 1423 3422 +2580+25+28+15+15-1+0+0-1+0+0+0-1+0+1+0-1+0-1+0-1+1-1+1-1+0+0+0-1+5-1+0 encode_1013x2393 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 0 1423 4169 +1238+91+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 1 1423 3422 +265-3-1+0-1+0-1+0-1+0+0+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+2 encode_1013x2393round selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round selected 1423 4343 +1983+60+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0 encode_1013x2393round 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 0 1423 4343 +404-4+5+0+0+1+0+0+5+0+0+0+1+0+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 1 1423 4713 +562+4+1-3+1-2+1-3+1-3+1-3+1+1+1-3+1-3+1-3+1-3+1+0+2-3+1-3+1-3+1-3 encode_1013x7177 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 selected 1623 2882 +2165+21+15+15+15+15-1+0-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0 encode_1013x7177 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 0 1623 3378 +1496+39+17+1+0+1+1+1+1+4-11-11-11-11-11-11-9-3-11-9-6+1+1+1+1+1+1+0+0+1+1+1 encode_1013x7177 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 1 1623 2876 +265-2+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+2+0+5+0+0 encode_1013xfreeze3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 selected 1013 1317 +626-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 0 1013 1825 +414+24+37+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 1 1013 1315 +49-11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 selected 2026 459 +535+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 0 2026 466 +81+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 1 2026 544 +259+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 selected 320 343 +937+46+27+24+20+18-2-1+0-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 encode_1277x3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 0 320 376 +640+42+18+21+20+20-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 1 320 347 +162+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x2627 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 selected 1815 4325 +3130+19-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+1+0 encode_1277x2627 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 0 1815 5185 +1487+39+65+15+14+19+14+17+17+0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 encode_1277x2627 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 1 1815 4325 +350+3+1+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x2627round selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round selected 1815 5518 +2494+24+25+0+2+0+0+1+0+0+0+0+0+2+0+0+1+0+0+0+0+0+2+0+0+0+0+0+0+0+0+2 encode_1277x2627round 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 0 1815 5512 +494+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+1+0+2+0+0+0+0+6+0+0+0+0+0 encode_1277x2627round 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 1 1815 5988 +654-5+0+1+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+1+0+0+0+0+1+0+0+0+0+0 encode_1277x7879 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 selected 2067 3712 +2509+4+0-1+4+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 encode_1277x7879 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 0 2067 4267 +1525+20+53+25+7+1-10+1-6+0-1-6+0+0-6+0-1+1+0-1-6+0-1-6+0-1-5+0-1-6+0-1 encode_1277x7879 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 1 2067 3711 +145-2-1+0-6+4-1+0-6+4-1+0-6+4-1+0-6+4-1+0-6+4-1+0-6+4-1+0-6+6-1+0 encode_1277xfreeze3 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 selected 1277 1617 +665-1-11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 0 1277 2242 +541+39+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 1 1277 1592 +137+14+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 encode_1277xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 selected 2554 578 +323+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 0 2554 582 +154+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 1 2554 673 +180+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 selected 2 45 +30+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 0 2 16 +40+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 1 2 16 +55+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 selected 0 19 +523+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 1 19 +90+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 2 30 +498+33+18+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 4 85 +636+105+103+65-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 7 213 +472+349+348+182+130+92+9+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 11 383 +898+637+361+163+33+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 17 664 +1225+1145+1091+559+205+214+90+24+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 26 1151 +1476+1298+961+650+416+339+201+199+94+53+38+0-15-15-15-15-15-15-15-15-15-15-15-15-15-15-15-15-15-15-15-15 sort_int32 selected 40 2135 +1605+1356+640+477+203+84+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 61 3445 +1739+1478+1080+745+383+231+133+30+35+13-8+12-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4 sort_int32 selected 92 6134 +1858+1211+796+411+274+73+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 139 10586 +2784+2344+1570+909+658+431+144+119+81+84+65+46+12+10-23-38-57-24-57-38-50-24-57-38-57-17-57-38-57-24-57-38 sort_int32 selected 209 17478 +2372+2072+1284+727+468+295+107+50+79+50+9-20-10-17-6-17-6-17-1-17-6-11-6-17-6-16-6-17-6-17-6-17 sort_int32 selected 314 29507 +2362+1866+1244+730+493+342+12750+194+95-11+7+21+37+36+15-15-15-71-30-46-50-52-48-47-32-25-66-47+9-47-30-20 sort_int32 selected 472 47600 +972+574+408+85+66+16-3-3-1-2-1+3+0-1+3-1-1-1-1-1-1+1-1+0-1+1-1-5+1+3+2+2 sort_int32 selected 709 80142 +3609+2290+1244+589+414+480+344+146-15+8-7+46-53-5-34-24-66-56-36+2-31-14+1+44-33-6+41-28-188-2-52-5 sort_int32 selected 1064 130525 +2492+1735+902+11570+514+224+187+157+71+38-34-16-52+5-16-17+2-80-13-26-23+7-42+1-12-7-24-23-13-55-17+2 sort_int32 selected 1597 216259 +987+773+173+140+26+2-25-43+45992-183+140-98-114-211+62+20-147-33-12+111+27-133+12+48-93+28+110-419-28-2-55-27 sort_int32 selected 2396 356342 +13397+332+528-232+238-419-18+42+7+33-42-26+18+59+55-4-42+7666-56+8-32-32-34-491+88+74-13-576+36-768-12-32 sort_int32 selected 3595 577110 +2859+1021+426+984+623-17-261+122+33+27995+75-461-627-2-65-18-6-72+24+40+8715-793-45-639-758-33-63-153-19-86+56802+48 sort_int32 selected 5393 953612 +2418+1184+2784+14489-1099-762-1532-717-1397+7701-1045-1066-925-1059-840-1037+44577-700-1639-1471-1715-1679+9750-1062-1285+1520+1639+1648+9865+1720+1553+1662 sort_int32 selected 8090 1550802 +46280+122-715-1532+18643-903-1050+46585-1354-1144-1855+40517-1491-1140-1472+8867-1501-1089+10136+8807-1208-1304-1325+39565-1264-1688-1292+8445-1467-2083-1339+6563 sort_int32 selected 12136 2720511 +38876-5214+3815-2504+7777-5159+43808+4460-5511+4375-4925+2049-5081+33286-6039+7452-6086+3112-5731-5126+33552-6049+5630-6729+2258-6352+32254-6165+8124-2332-2815+12452 sort_int32 0 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 0 0 17 +108+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 1 21 +48+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 2 36 +1076+24+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 4 129 +768+79+93+46+5+11-6+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2 sort_int32 0 7 256 +537+346+257+223+143+21-1-5+16-8+16-8+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5 sort_int32 0 11 528 +650+463+304+153+64+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 17 825 +1026+969+762+531+338+140+18+18+18-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 0 26 1337 +1341+980+605+405+223+86+49-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 40 2332 +1444+1215+851+551+323+322+181+83+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 61 3884 +1376+970+440+200+123+83+59+25+25-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2 sort_int32 0 92 6860 +1735+1205+923+576+329+67+49+25-12+6+25-12-12+7-12-12+7-12-12+7-12-12+7-12-12+7-12-12+7-12-12+7 sort_int32 0 139 11888 +2915+2209+1454+662+365+203+90+87+70+25+2+0+7+3-6+3-22-13-22-11-22-13-22-13-22-13-22-13-22-13-22-13 sort_int32 0 209 19900 +1972+1289+878+492+342+149+74+21+22-12+3+5+3-12-18-12-11-12-14-5-14-12-17-16-19+11-17+13-15+17-13+17 sort_int32 0 314 32799 +2270+1463+752+429+300+223+175+176+113+29+24+24+15+2-4-2-7-4-36-35-36-33-36-36-34-32-31-31-31-31-31-31 sort_int32 0 472 52947 +865+497+158+12097-22+57-25-1-34+49-24-19+31-17-35+47-35-17+37-15-35+48-31-8+30-9-28+44-32-17+32-18 sort_int32 0 709 89814 +3254+2256+1416+982+418+153+146+88+32+55+7-42+8-40+5-49-32+1+20-17-22-20-18-21-6-19-17-16-20-5-18-8 sort_int32 0 1064 147276 +2225+1366+751+385+198+64+11106-51+5+8+2-10-6+0+0+4-8-11+0-11-10-8-7+1-4-6+9+12-11-1-5-10 sort_int32 0 1597 241771 +1068+458+173+163+19+45+61+57271-16+73-59-31+40-46-47+45-42-13-2-40-47+41-58-9+8-49-69+67-71-22+25-46 sort_int32 0 2396 396275 +2253+1076+552+395+319+151+112+5-31-28-19-36+26+10965-87-23-35-49-50+42-50-34+24-30-24+25-56-40+39963+16-20-69 sort_int32 0 3595 646161 +1998+1348+599+409+206+11986-11-14-11-51+11-17-11-51+9278-44+19-57+1-19+7-57+1+40567+28+4+1-17-35+1+3-27 sort_int32 0 5393 1063594 +2972+1894+766+459+8768+83+141-184-73-301+40561-2-61-599-170+9927+317-197-487-109-10+7333-211-173-170+1-733+38344+28-431-74-282 sort_int32 0 8090 1708689 +379+105+11916-892+3973-1365+39764-520-1245+8139-1705-1102-1002+7680-1518-966+36955-1493-1011-1169+7466-717-946+6758-794-1570-1245+37680-850-1281+8352-1471 sort_int32 0 12136 2977212 -3275+37399-3728+6098-3581+10503-3556+46243-2941+6779-4433+4573-4526+34252-4207+5181-4291+3782-3964+33984-3786+5926-4072+5270-4292+33956-4294+4426-4854+3610-4470-3871 sort_int32 1 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 1 0 17 +91+16+18+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 1 17 +74+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 2 28 +147+23+22+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 4 83 +310+138+93+34+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 7 195 +531+380+359+210+114+23+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 11 382 +757+526+341+195+151+142+75+46+10-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 1 17 667 +1071+775+529+264+66-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 26 1135 +1163+891+593+317+212+110+69+35+9-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 1 40 2051 +1704+1097+681+328+197+98+16+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 61 3383 +1698+1150+694+362+230+135+72+19+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 92 6119 +1585+976+488+247+218+136+63+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 139 10433 +2165+1750+938+534+298+235+214+96+70+38+96+45+48-32-20-32-32-44-31-32-1-44-27-23-32-44-32-32-32-44-32-32 sort_int32 1 209 17448 +2035+1457+761+471+280+168+51+11-19-11-2+27+23-30-16-45+19-43+19-42+5-25+6-25+6-25+5-25+6-26+3-25 sort_int32 1 314 29383 +1698+1512+682+411+231+102+20+27+7-9-7-9-1+8+0-4-16-6-3+2-29-9+9-4-1+7-31-7-16-12-1+3 sort_int32 1 472 47489 +880+528+272+101+17-17+36-12-29-9+5-30-30-36+4+40-25-12+4+61-28-52+4+40-25-12+4+61-28-52+4+40 sort_int32 1 709 80119 +2476+1602+949+594+296+202+51+3+100+40+74-16+10851-11-20+10+11-15+43-74-69-42-14-73-136-15-73-31-82-127-93-230 sort_int32 1 1064 130086 +2171+1393+959+493+428+184+138+118+76+80+74+71-43-38-38-38-38-38-38-38-38-38-38-38-38-38-38-38-38-38-38+43958 sort_int32 1 1597 216040 +1031+636+295+51+38-45+2+15+11+49+91-9-183-20+24+156-29-46+12+2+0-42+118-24+23+11222-66-94-100-262-78-100 sort_int32 1 2396 356130 +1220-56+434-320+246-512+187-447+208-349+10289-629+20+136+95+50-5+40+72-28+85-1+8-519-39-541-482+40339+365-395+20-72 sort_int32 1 3595 576897 +2208+1626+788+537+229+11786+30+24-461-117-85+2-48-85+2-25+7720-725-49-142-24-21-665+43-39-511+40228+116+49-1-42-10 sort_int32 1 5393 955170 -432+13532+1649+557-10+167+216+8018+22-512-624+156+45+40358+252-632-447-477+139-432+16891-1+81+23+50-629+9113+227+155-425-420-672 sort_int32 1 8090 1541875 +9405+290+9857-317-401-929+9033-858-1084-1232+40743-831-556-954+16251-1327-606-610+8134-749-434-388+37528-1299-606+9691-449-393-1316+7601-1087-688 sort_int32 1 12136 2727933 -8812-276-3501+6760-3840-3164+37581-2956+7957-639+5261-3559+34483-3204+8545-3205-776+5169-3592+34345-3815+8216-3249+3591-2831+35375-2523-4342+7143-4085+3708-1668 sort_uint32 selected implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 selected 0 30 +2147+20+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 1 43 +604+42+18+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 2 57 +268+93+42+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 4 107 +472+171+76+33+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 7 225 +728+357+215+79+45+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 11 450 +806+525+289+142+36+40+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 17 749 +1076+723+243+132+31+31+24-1-6-16-6-16+7-16-6-16+27-14-3-3+27-1-6-16-6-16+7-16-6-16+27-14 sort_uint32 selected 26 1195 +1116+648+275+71+24+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 40 2098 +1523+709+308+252+101+36+42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 61 3455 +1765+749+370+189+151+123+37+1+1-4-4+1-3+1+1+1-4-4+1-4+1+1+1-4-4+1-4+1+1+1-4-4 sort_uint32 selected 92 6198 +1355+697+328+195+105+6+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 139 10557 +1984+1377+484+205+118+84+17+38+40+38+5+5+13+5+5+13+3+5+5-36-48-32-32-32-32-32-32-30-32+11-32-32 sort_uint32 selected 209 17741 +1513+13678+428+100+34-13+32+12-11-8-45-8+10-5-8-8+31-7+10-7-8-8+12-8+11-9-8-9+10-4+30-8 sort_uint32 selected 314 29683 +1424+1045+426+248+157+12+24-2+10-22+11+10-11-19-11-21+18-23+53+10+12-23+53-21-9-17+3-23-5-23-13-23 sort_uint32 selected 472 48118 +812+586+272+80+64+0-13-10+2+7-10-1-10+11+30-5-10-8+10+4-10+6-11+3+4-10+3-10+5-45+1-8 sort_uint32 selected 709 80982 +2440+1013+357+138+63-7+105+19-51+31-39+2-26-16-9-56+128-43-22-53+18-10+25-99+26-70-63-39-65-11+11000+67 sort_uint32 selected 1064 131571 +1669+930+193+173+204+141-4+28-2+15-4+9-50-37+13-21-16-42+36+27-24+0-49+14-21+8-38+42-27-39-55-92 sort_uint32 selected 1597 218002 +1037+318+242+45121+345+26+76+15-113-7-38+28-6-131+160-47-21-151-27-119-8-1-37+8-148+94-26-346-17-7+2+9404 sort_uint32 selected 2396 359044 +629+589+94-543+135+68-31-8+8+54-26-52-572-69+11219+125-527+123-742-582-25+105+46-649-649-559-75-47-63+19+39877+156 sort_uint32 selected 3595 581256 +1954+377+472+352-479+170-35+12635-243+4-420-6+58-460+0-56-28-25+7921+74+82-85-609-56-45-6-730-37+40666+136-56-56 sort_uint32 selected 5393 961531 -568-1008+10130-3091-2787-3143-2549-2579+16548+50+33+259+119-628+41610+363-12+66+121-359+131+9979+59-99+157-91-48+8100+102+12-21-56 sort_uint32 selected 8090 1552220 +1913+149+134+12072+133-128+179+8672-70-146+38028-324-970-802+8924-885-164-404+7374-121-834-374+37601-895-238-425+8728-267-348-776+7589-323 sort_uint32 selected 12136 2739193 -6935+3495-6926-7203+7706-8312+34111-8067+2714-7307+1416-7259+32042-8672-7413+1931-7669+128-8463+29678-7724+5621+3015+11612+1698+3724+39270+1087+10712+1501+8715+1991 sort_uint32 0 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 0 0 27 +208+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 1 36 +533+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 2 91 +235+85+38+0+0+3+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 4 125 +408+158+41+72+13+21-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 7 251 +639+475+215+201+147+96+79+58+29+1-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2 sort_uint32 0 11 424 +730+375+148+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 17 715 +1151+457+252+173+78+19+15-9+1-2+5+2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 sort_uint32 0 26 1199 +1262+646+439+198+85+47-11+2-9+4-10+8+2-12+2-9+2-12+8+2-12+2-9+2-12+8+2-12+2-9+2-12 sort_uint32 0 40 2056 +1418+755+365+200+106+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 61 3462 +1667+755+393+135+67+52+12-14-14+4-14+4+4+4-14-14+4-14+4+4+4-14-14+4-14+4+4+4-14-14+4-14 sort_uint32 0 92 6120 +1294+943+501+235+114+88+26+0+0+0+0+0+0+0+0+0+4+0+2+0+0+0+0+0+0+0+0+0+0+0+6+0 sort_uint32 0 139 10618 +1734+1031+441+236+158+48+27+41+58-11+7-11-11+6-11-11+6-11-11+3-15+3-11+6-11-11+6-11-11+11-11-8 sort_uint32 0 209 17670 +1460+1033+448+235+159+70+11-1+36+11+0+0+0-2+12059+14-8-15-14-14-14-14-16+45+0-14-14-14-13-14-14-14 sort_uint32 0 314 29657 +1288+850+349+192+167+41+58+16+10-10+4-10+2-10+8-10+0-10+2-10+2-10+2-10+2-10+8-10+0-10+2-10 sort_uint32 0 472 48122 +733+569+222+42+38+17+4+0-16-14-118-10-14-8+3+3-2-4-4-3+2+2+7+6-7+2+4+3-64-12+0-19 sort_uint32 0 709 81083 +2050+1140+632+353+132+97+45+14+85-75+50-77-50-20-78-7+52-77-19-93+7-36-2-52+33-11-71-134+6+27+3-38 sort_uint32 0 1064 131665 +2096+1355+578+202+117+84+104+2+31-46+17-15-38-17-26-40+91+5+39+24-10-40-81+42-31-25-23-13-77-52-20-10 sort_uint32 0 1597 218168 +728+410-180+99+53935+236+113-98+26+11+38-140-454-192-41-21+39-8-31-4+17-45-9+39-25-8-35+5-76-38+37+47 sort_uint32 0 2396 359177 +1187+44+304+190-514-97-27-49-352-334-591+120-7+82+10791+41+60-469+1+11-2+35-672-15+15-469-10+22-2+35-672+39229 sort_uint32 0 3595 581506 +1695+1072-228+262+194+126-720-52+11928-638+97-735-520+70+126-15-30-17+7704-31-5-22-23-36-75-550+103-846+40222-576-5-90 sort_uint32 0 5393 959296 +4163+3926+15294-536+180+177+107-429+8457-9+142-32-88-793-26+40247-277+96-742-159+12+18732+103-22-506+80-985+9535-22-80-529-776 sort_uint32 0 8090 1561376 +1270+48-49+9939-510-661-621+7568-739-801+46677-459-796-1232+10946-755-800-606+7552-1065-757-952+36883-575-1381-1312+10085+6809-818-1326+8275-1171 sort_uint32 0 12136 2736144 -1357+7251-2952-4481+5075-4017+187143-3461+11549-4419+8059-4685+37401-3714+6991-2784-4626+4029-3024+33782-4346+13582-3609+8241-2825+32946-4305-3874+5747-3383+1891-4775 sort_uint32 1 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 1 0 27 +197+16+16+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 1 40 +216+52+22+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 2 54 +272+112+86+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 4 104 +453+180+47+8+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 7 222 +712+297+132+56+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 11 447 +658+317+258+98+44+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 17 701 +1167+401+186+42+19+39-2+16+0+6-13+13+0-5-13-2-5-13+13+0-5-13-2-5-13+13+0-5-13-2-5-13 sort_uint32 1 26 1188 +1143+634+344+140+118+28+4+4+9+1+0-16+0-5-16+0+1+0-16+0-5-16+0+1+0-16+0-5-16+0+1+0 sort_uint32 1 40 2083 +1373+789+363+167+136+88+40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 61 3448 +1539+711+330+90+52+36-10+0+5-10+5-10+0-10+0+5-10+5-10+0-10+0+5-10+5-10+0-10+0+5-10+5 sort_uint32 1 92 6144 +1152+712+284+186+161+53+0+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 139 10524 +1751+988+363+231+122+71+59-12+20+3+15-31+41-25+0-38-22+2-44+28-25-6-43-15+2-36+28-20-6-43-22+2 sort_uint32 1 209 17698 +1494+1027+446+150+95+22+13178+166+7-14+42+4+8-13-15+0-10+8-13-14+0-14+8-14-14+0-14+10-12-14+0-14 sort_uint32 1 314 29605 +1541+888+500+312+189+128+120+77-4-4+0+19+15-1-3-4+0-2-4-4-4-3-3-3-4-4-4-2-4-1-3-4 sort_uint32 1 472 48078 +908+649+163+40-20+16-99+1+6-7+0-2-13+1-18+1-2+4+4-2+5-3-19-13+5+3-22+5-8+0-2-13 sort_uint32 1 709 80928 +2139+1169+332+9+1+95-32+23+14-4-8+57-94-74-41-35+81+32-66-9+49+34-15-12-52+16-26-51+10-89-59+10938 sort_uint32 1 1064 131577 +2031+1077+472+199+163+124+90+21-43+29-18-2-145+63-156-13-30+19-21-3+7+24-41-23-5+34-7-35-20-98-40-34 sort_uint32 1 1597 218032 +1121+564+342+52+44920+187+56+23+112+47+109-446+1+0-71-51-57-69-19-93-56-24-283-20+67+1-93-30+2-199-503+9051 sort_uint32 1 2396 358979 +1566+551+214+96+32-15-10-55-22-27+31+16-14-526+11126+14-19-647-579+33-5-37-55+76+25-5-50+27-27-3-53+39686 sort_uint32 1 3595 581190 +1855+1015+576+347+195+73+11+12019+6-28-354-53-552+63-8-28+28-91+7627-12-70-145-70+5-389-42-70-98+39765+787-143-515 sort_uint32 1 5393 961375 -263+1227+13967+108-481-3-742-76+8374-575+64+102-111-132+40394+64+42+46-112-58-132+9237+82+11+147+32-750+8085+111-809-57-645 sort_uint32 1 8090 1560492 -7052+402+233+10338-94-259-209+8068-241-94+37876+160-255-44+51325-138-973-326+10077-69-143+125+37903+118-468+115+10377-626+90+7178-528-207 sort_uint32 1 12136 2735692 -2493+7373-4366-3567+17208-4663+37453-2476+5076-3588+4297-4410+34870-4814+4628-2562-3309+3820-3648+32415-2366+5395-4849+6605-3745+34705-3592-1914+5879-2591+5239-3999 core_inv3sntrup653 selected implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 selected 654 387661 +7388+7+0+0+0+0+0-2-1+0+0+12441+33-1+0+0+0+0-2-1+0+0+0+0+0-1+7291+35+0+0+0+0 core_inv3sntrup653 0 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 0 654 444929 +5234+1-9-9+7-9+7+43358+209-11+9-11+9-11+9-11+9-11+9-11+9+9077-4-10-19+2-1+14-19+2-1-1 core_inv3sntrup653 1 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 1 654 387661 +569+11945+5+0-1+1-1+1+1-1+1+1-1+1-2-1-1+38642+170+0-1+1-2-1-1+1-1+1-1+1+1-1 core_inv3sntrup761 selected implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 selected 762 481456 +7438+61-1+0+0+0+0+0+0+0+0+11084+74+0+0+0+0+0+0+0+0+0+0+0+39329-249+1+4+2+4+1+4 core_inv3sntrup761 0 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 0 762 560428 +5848+30+13233+48+11+12-5-7-2-4-7+0-9+8794+21-9-1-7-2+0-8-1-7-2+39730+504+1-3-1-5-7-2 core_inv3sntrup761 1 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 1 762 481459 +689+21232-658+0-2+1-2+1-1+1-2+1-2+1+8545+42-2+1-2+1-2+1-1+1-2+1+39228-331+1-2+1-2 core_inv3sntrup857 selected implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 selected 858 625619 +7951-7-3+1+11284+150-5-2-1+3-1+5-1+7547+153-4+3-3+1-12+4-5-2+49300+171-1-7-13-1-2-5-2 core_inv3sntrup857 0 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 0 858 625625 +1362-5+5-5+5+14-5-9-15+10598+107-16-5-5+0+5+14-5+38633+123-19-5-8+8-8-23+2-15+9208+110+0+0 core_inv3sntrup857 1 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 1 858 665696 +9699-799-2+0+11637-57+0-2-2+0-1+5-2+39398+124-5+3-2+0+0-1+5+9316-62-2+0-1+5-2-2+0+7083 core_inv3sntrup953 selected implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 selected 954 777332 +9059-16-17-16-17-15+43691+350-16-17-16+13-15+10789+164-15-18-17-17+24-18+7760+158-11-17-18-17-17-16+37578+345-15 core_inv3sntrup953 0 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 0 954 968845 +6334+64+11529+371-99-96-102-99-99+7942+382-99-99-99-99+39270+1074-107-104-102-99+9819+371-96-96-102-102+7860+369-102-93-102 core_inv3sntrup953 1 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 1 954 777325 +46350+376-14-12-12-9-10-12+9729+169-9-10+19-12-9-12+7383+136-12-15-13-13-13+48448+345-9-10-12-14-12-14+11027 core_inv3sntrup1013 selected implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 selected 1014 882797 +5667-1971-2007-2025-2031+9519-1347-2026-2026-2031-2034-2017+38959+1648+242+250+252+248+10612+900+255+245+243+239+109+7731+902+249+246+248+244+244 core_inv3sntrup1013 0 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 0 1014 881921 +236-1155-1155-1158-1141-1145+10484-530-1159-1142-1145-1158+6055-521-1159-1154-1145-1155-1145+38401+2504+1113+1120+1116+985+1120+19265+1625+1115+1118+1115+1119 core_inv3sntrup1013 1 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 1 1014 1122407 +28879+8042+8839+8832-1010+38935-1659-1006-1040-1040+9803-895-1037-1044-1008+6977-912-1036-1006-1044-1040+36360-1640-1012-1039-1044+8570-886-1043-1009-1040+6960 core_inv3sntrup1277 selected implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 selected 1278 1498300 +6015-1307-475+42562+1267-472-460+8983+723-1353-470+6595-250-461-469+37914+1151-1353-461+7733-282-465-1347+2061-5071-476-1332+31029-4699-1363-465+8795 core_inv3sntrup1277 0 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 0 1278 1498302 -25+18335-181-1343-467+38991+1109-1356-467+8297+683-463-460+5008-168-463-1320+36632-4714-1351-464+8687+591-1356-467+5766+585-459-1346+35511+1115-1355 core_inv3sntrup1277 1 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 1 1278 1979213 +18501-1572-1729+5530-1628-1716+37514-1429-1774+7315-1638-1773+6772-1692-1669+35403-1429-1784+8643-1593-1696+14618-1593-1798+36514-1240-1761+7380-1598-468+6884-1635 core_invsntrup653 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 selected 1307 8381356 +41756-18394+12038-8873+12040+661+14015-15742+18868-15663+19127-15081-18498+20357-17359+20726-17335+11439-8667+22496-7463+11928-15489+29595-15020+19257-15058-18265+55939-14463+20522-17012 core_invsntrup653 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 0 1307 12495016 -7517+11217+476-440+7973+14987+8193-28409+397+1445-27763+727-1090+7445-28334+882-672-27890+9773+2378-21173+4828-560-28044+270+9818-1999-29494+975-100-21460+12584 core_invsntrup653 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 1 1307 8385470 +128932+12259-19162+26205-19270+15062-19144-21683+17655+15138+19820-20926+8325-12609+8047-5526+8572-20202+15352-18813-21520+34452-22403+16841-21393+7115-2929+10158-12502+7282-20692+13868 core_invsntrup761 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 selected 1523 11255093 +21491-15175+5122+2694-23593+3854-33655+4288+3652-23820+4273+12438-23820+4653-33278+13532+2241+11490+8147+3178+11836-22675-33067+5151+4386-24469+4999+14517-16364+7975-32440+5719 core_invsntrup761 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 0 1523 16878288 -10894-20143+1489-36577+741+1902+7905+7171+1676-7294-369-593+93+900-9791+6837-480-875+6501-37074-41+813-528+1854+6428-7163-720-480-1890+10360-10952+262 core_invsntrup761 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 1 1523 11249996 -17285+18598+7186-17763+3128-19574+10802+8896-18877+9102+6717-11738+1837-19499+9112+16337-19587+9835+6824-18482+2133-21274+10139+14605-17495+8070+131172-11075+4740-10152+10985-20798 core_invsntrup857 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 selected 1715 14237873 +12505+5053+19941-27091+4345-3166+53405-5419-19615+18535-3310-3882+3319-29632+5914-2821-4721+5581-32991+7606+3787-2858+13330-30895-3364+4595-5149-33749+5229-4279+11224-3501 core_invsntrup857 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 0 1715 21377325 +38214-1235+1186-2642-10973+34623-9545+342-10130-3224+2044+25335+8891-11211-3304-12898+27528-10996+3079+4731-10115+25011-10703-1936+24516+463+25608+4822+173+29189-3841-10091 core_invsntrup857 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 1 1715 14237347 -28158+8591+7435-4160+12078-31735+2843-1837-4665+3113-32639-1813+2971+4637+4829-24547-2139+144441-1555-32289+3363-3307+4700-5848+11168+8910-2619-4612+2496-31465-2088+13332 core_invsntrup953 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 selected 1907 17597574 +14655+70461+4728-1246+454-2790-968-2496+8664+1104+7233-37514+6382-1173-1736+12066+2576-1873-2108+13349-2429-2800+630-3331-4105-1042-10562-988+9690-2264+5544-1631 core_invsntrup953 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 0 1907 26426519 +162699+13305+32592+7816-23439+62092-13641+11087-22557-23453+19323-24535+13463-15852+3312-14936+22457+148064+6044-17075+16079-22581+58311-24417+11416-22818-24274+20190-14360+12665-22721+3235 core_invsntrup953 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 1 1907 17596743 +11271+5242+10616+17437-1532-7678-313+529-1343+866-2266+9402+10396+652-641+678-1545-3202+154-10017+6331-729-1238+5134+592-1893-3095-58+6738-1202-3081-2003 core_invsntrup1013 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 selected 2027 20071545 +19158-5265+45662-5870+4305+830-7441-4815+30141+2625-4926+10541-35948+2684-3219-3884+32727-5300-5284+22627-5464-4169+1004+4458-3685+157760-3790+5705+16839-383-2361+4700 core_invsntrup1013 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 0 2027 29991685 -18642+9554-26323+14281+1004-25174+16124+883-26584+12613+552-17386+7153-26851+5178+98359+7543-15693+4865-2129-23210+14509+12094-24680+1039+2734-25487+18234+1243-25622+65997+18078 core_invsntrup1013 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 1 2027 20073955 +6752+55912-5656+2279-5987-11073-2099+2228-8112+28445+1936-8193-52-9234-8035+8173+87+143527+32115-8368+5100+2830+1800-3947+38296-2994+30272-5499-7985+11288+1278-4042 core_invsntrup1277 selected implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 selected 2555 31889765 +51512-4194+5181-11693-2845+6706-5430-31705+8073+114034-1793-34458+4959+5906-5371+10350-32656-2942+10780-3721-33536+11856+3989-3911+2903-31128+4075+3187+2364-31645-5508+3546 core_invsntrup1277 0 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 0 2555 47594140 -62494-51005+123402-2912+4649+199-3228+8507-29295+5968+5505-18172+26+4240-24309+11451+91417-23905+2539+9552-24352+3763+3452-20616+7396+23811+14904+62139-20233+4364-1165-16624 core_invsntrup1277 1 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 1 2555 31889272 +5768+13307+85067-2821+1730+5087-34497+33159+13658-8827-32394+334-429-6096+10080-34587+29167+5366-4227-31571-20047-2708+31238-31544+69518-3575+2338+4822-32764-2506+3515-6605 core_mult3sntrup653 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 selected 653 199444 +1104-24+21-4+44420+182-15-12-2-5+19-17-3-16-6-8+14-9+10-4+6-1-4-8+11+1+27+3-1+24+3-10 core_mult3sntrup653 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 0 653 288966 +13581+102-20-3-8+1+5-1-1-4+4-11-4+9-7-3+6-8+1+5-1+7341+100-7-3+6-8+1+5-1-1-4 core_mult3sntrup653 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 1 653 199438 +440-6+13-6-10+1+25-11+12+7+13+4+44118+130+5+27+9-26-2-26-2-26-2-26-2-26-2-4-14-6+4+1 core_mult3sntrup761 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 selected 761 261189 +624+30+20-37+2+20+11872+238-12+13-11-10-26-107+5+44-27+8-33-4-28-10-26+23-6+16-17+0-20+7461+180-9 core_mult3sntrup761 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 0 761 387468 +1050-13-9-5-3+1-1+4-9-8-11+10+42891+200+4-1+9-13+4-2-3+1+8+4-9-8-11+9221+100+5+2-7 core_mult3sntrup761 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 1 761 261177 +284+11-1-5+99-2+14+7-121+7-2+2-113-1+13178+340-1+5-21-3-14+40-15-1-12+12-126+12-8-6-116+2 core_mult3sntrup857 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 selected 857 328551 +1150-154-23-37-16-32+27463+429-140-2+6-11-150+10257+224-146-13-15-5-125+73251+396-20+90401+246-139-24-24-5-153-155-8 core_mult3sntrup857 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 0 857 488759 +16098+50+0-6-3+0-4-3+3-2-1-2+8043+54-4-2+3-8+3+2-7-1+5-3+53437+624+1-2-3-2+3-8 core_mult3sntrup857 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 1 857 328516 +861+23-13-123-116+20056+337+62+15-116-98+2+4+46-108-107+14+7+13-69-132+17+42+13797+291+17+13-122-101+2+4+46 core_mult3sntrup953 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 selected 953 402925 +2012-16-38+43+19+50+53891+490-71-82+71-97-62+93-79-93+78-55+93-100-83+10257+445+6-81+32+12-89+117-79+117-79 core_mult3sntrup953 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 0 953 599534 +810+13660+182-16-3-2-9+8-25-2-7+39549+318+5-2-17+3-16-3-6+0+9450+171+3+6-1-1+7-26-11-16+7437 core_mult3sntrup953 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 1 953 402996 +590-41+1+74-28-52+107-52-52-9-58+61+43044+303-133+151-22+148-26-158+107-52-52-9-58+61+1+9257+200-164-63-19 core_mult3sntrup1013 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 selected 1013 458466 +964-65+10-49-18+54+70+11779+273-43-63-47-20-43-50-50-21+71+54+70+39533+556-24-22-39-61-6-57-40+45+61+54 core_mult3sntrup1013 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 0 1013 671794 +12137+61-17+2-11+3-8+8-11+8941+68+18-11+3-11-5-4-8+40170+124+4-11-5-11-5-6+9679+84+13-12-11-5 core_mult3sntrup1013 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 1 1013 458472 +483-45-46+11193+279-53-16-59-10-50-14-46-29-47-11+59+38953+481-24-7-43-20-53-16+64+101+48+0-53+9392+420+62 core_mult3sntrup1277 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 selected 1277 716401 +3147-175+7-11-25+11279+780-1-1-12-11-25-20+0+39568+419+34+25+0+13-21-13+9783+258-37-22+13-21-13-10-22+8749 core_mult3sntrup1277 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 0 1277 1062955 +2052+41-5-26+45657+70-15-45-41+9519+42-16-18-16-19+16311+101-23-8-27+38487+296-28-23-40-39+9391+39-17-13-24-14 core_mult3sntrup1277 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 1 1277 716405 +642-141+24+21-4+9+43533+414-28-16-15-29-24-4-1+9929+287-16-17-16-15-29-24+8575+231+5-12+2-23+15+24+37352 core_multsntrup653 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 selected 1306 447140 +7096+26+31+15+8-7-1-12-8-8+11990+370-4-12-8-8-4-8-8-20-1+2+0-5+8250+211+0-5-9+7712+113-12 core_multsntrup653 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 0 1306 449756 +946-5-3-3+45092+292+17+1-3+1+1-2-2-3-3+1+4+9777+168-3-3+1+4+1-2-2-3-3+4+1+7458+247 core_multsntrup653 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 1 1306 447138 +684-3-9-4-1-2-2+2+2+6+42819+377+2-3-6-1+2-1-3-6-6-6-6+9719+289+2-3+3+3+137533+625-3 core_multsntrup761 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 selected 1522 603241 +4789+105+12866+457+4-11-9-4-18-2-10-3+42116+538+15-4-18-1+13+10-17-18+10120+365+8+0-13-18+0-19-11-13 core_multsntrup761 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 0 1522 606368 +1266+34-6-8-8-5-3-8+42886+525+3-3+3-3+3-3+0+0+9810+392+1-3+3-3+3-3+0+0+7720+296+0+0 core_multsntrup761 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 1 1522 603237 +816+5+15-18+42787+498+24-8-18-10-13-4-9-10+10853+425+12-9-10-5+17+1+0-1+7950+404+19-6-13-16-14-16 core_multsntrup857 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 selected 1714 761645 +5592+44574+515-7-52-49-41-49+9359+376-18-32-34-11-46-41+8596+414-33-37-44+2-34-11+37714+683-5-33-41-44-51-50 core_multsntrup857 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 0 1714 765155 +910-11-18-19-16-14+11492+297-27-11-14-19-8-11+49350+493-28-11-14-17-10-11+11669+264-30-11-11-14-19-19+7938+179 core_multsntrup857 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 1 1714 761627 +956+20-40-33+43947+793+3-35-29-35-33-35+9971+311-16-34-23-35-35-23+7742+348-21-33-35-29-29-35+37258+622-3-31 core_multsntrup953 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 selected 1906 938966 +5047+36+12406+336-29-44-88-86+7475+251-139-131-135-145+40169+878-117-71-44-90-77+10907+242-73-49-82-82+7793+244-71-71-84 core_multsntrup953 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 0 1906 942764 +44389+442-7+7+9+15+4+9868+120-48-28-28-28+7788+83-66-34-28-28+37684+414-40-21-28-33-28+9568+125-35-21-28-33 core_multsntrup953 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 1 1906 938926 +1039-38-47-50-49+43448+269-95-107-111-103+9324+274-9-44-14-41-37+7620+226+63-42-45-44+37252+241-78-102-111-105-110+9380 core_multsntrup1013 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 selected 2026 1058883 +31540-58-9+11499+147-109-69-140-72+40187+412-104-59-133+9392+169-105-61-140-83+7380+82-47-130-65-132+37540+378-87-61-148+9349 core_multsntrup1013 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 0 2026 1062826 +1098-28-22-23+11383+79-58-35-42+39915+351-50-36-39-35+17715+625-41-35-42-33+8317+70-58-39-23+37804+264-37-29-39-39 core_multsntrup1013 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 1 2026 1058868 +737-97-5-76+11666+106-23-92-30-92+39869+373-92-19-78+9562+194-98-13-81-27+7546+181-90-19-85-19+37070+376-75-15-89 core_multsntrup1277 selected implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 selected 2554 1697082 +16796-1093-1172+10570-920-1171+39015-611-1199-1206+8514-938-1079+6741-934-1142-1148+36125-686-1133+8675-933-1158-1160+6601-944-1173+35237-665-1187-1124+8611 core_multsntrup1277 0 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 0 2554 1682380 +633+11062-672-635-630+39179-417-667+9232-645-654-647+7360-674-611-656+37000-377-653+9433-604-749-641+7371-611-705+36797-407-619-615+17663-533 core_multsntrup1277 1 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 1 2554 1696607 +15900-399-716-720+41757-180-711+9628-462-662-680+15357-360-702+38407-258-696-694+9355-497-708+7357-485-679-681+36563-225-664+9243-462-663-674 core_scale3sntrup653 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 selected 1306 4875 +1300+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+26+0+0+0+0+3+0+0+0+0+0+0 core_scale3sntrup653 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 0 1306 4876 +204+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup653 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 1 1306 6751 +215+5+0+0+0+0+2+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+2+0+0+0 core_scale3sntrup761 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 selected 1522 5661 +1560+40+28+0+0+0+0+0+0+0+0+0+1+0+0+0+0+26+0+0+0+0+1+0+0+0+1+0+0+0+0+0 core_scale3sntrup761 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 0 1522 5662 +458+38+33+0+0+0+0+0+0+26+0+0+0+0+0+0+0+0+0+0+0+0+26+0+0+0+0+1+0+0+0+0 core_scale3sntrup761 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 1 1522 7846 +315+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+2+0+0+0+0 core_scale3sntrup857 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 selected 1714 6365 +1200+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+26+0+0+0+0+0+0+0+8+0+1+0+0+0 core_scale3sntrup857 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 0 1714 6361 +482+7+0+0+0+26+0+0+0+0+0+26+0+0+0+0+0+26+0+0+0+0+0+26+0+0+0+0+0+26+0+0 core_scale3sntrup857 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 1 1714 8821 +699+5+0+0+0+2+0+0+0+0+0+0+0+7+0+0+0+0+2+2+0+0+13+0+0+0+0+56+0+0+0+0 core_scale3sntrup953 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 selected 1906 7054 +1305+41+1+0+0+0+0+0+26+0+0+1+0+0+0+0+0+0+0+2+1+0+0+0+0+0+0+1+0+0+0+0 core_scale3sntrup953 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 0 1906 7055 +606+35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+26+0+1+0+0+0+0+1+0+0+0+0+27 core_scale3sntrup953 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 1 1906 9794 +795+3+0+0+0+0+0+0+0+0+0+10+0+0+0+0+0+0+0+22+0+0+0+0+0+0+0+2+0+0+0+0 core_scale3sntrup1013 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 selected 2026 7492 +1023+9+4+0+0+1+0+0+0+0+0+0+0+0+0+0+1+0+26+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1013 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 0 2026 7493 +248+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+26+0+0+0+0+0+0+1+1+0+0+1 core_scale3sntrup1013 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 1 2026 10395 +467+8+0+0+0+0+0+0+2+0+0+2+69+0+0+0+0+0+0+2+0+2+0+0+0+0+0+2+0+0+0+0 core_scale3sntrup1277 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 selected 2554 9430 +635+11-1-1-1-1-1-1-1-1-1+25-1-1-1-1-1-1-1-1+12-1+12+26+12-1+12-1-1+2-1+25 core_scale3sntrup1277 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 0 2554 9427 +817+39+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+27+0+13+1+13+0+13+0+13+0+0+0+0+0 core_scale3sntrup1277 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 1 2554 13104 +630+1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1+13+31+13+50+13+31+13+31-1-1-1-1-1 core_weightsntrup653 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 selected 2 1380 +1862+40+31+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 0 2 1377 +113+8+5+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 1 2 1995 +141+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 selected 2 1572 +165+16+15+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 0 2 1573 +111+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+24+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 1 2 2318 +355+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 selected 2 1762 +144+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 0 2 1764 +88+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 1 2 2607 +259+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 selected 2 1956 +140+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 0 2 1955 +153+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 1 2 2894 +120+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 selected 2 3077 +376+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 0 2 3085 +368+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 1 2 3075 +210+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 selected 2 2606 +174+16+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 0 2 2606 +134+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+1+0+0+0+0 core_weightsntrup1277 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 1 2 3867 +344+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 selected 653 1514 +3461+64+58+59+24+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 0 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 0 653 1487 +1104+37+5-1-1+0+0+0-1+0-1-1+0+0+0-1+0-1-1+0+0+0-1+0-1-1+0+0+0-1+0-1 core_wforcesntrup653 1 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 1 653 1515 +240+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 selected 761 1739 +2012+51+41+21+21+21+21+21+6-1-1-1+0-1-1-2-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 core_wforcesntrup761 0 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 0 761 1736 +1755+107+108+46+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 1 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 1 761 1732 +308+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup857 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 selected 857 1945 +2446+60+84+31+31+31+17+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup857 0 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 0 857 1953 +1508+53+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0 core_wforcesntrup857 1 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 1 857 1944 +341+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 selected 953 2152 +2031+65+61+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 0 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 0 953 2155 +1935+55+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 1 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 1 953 2151 +286+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 selected implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 selected 1013 3257 +2683+91+38+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 0 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 0 1013 3255 +306+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 1 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 1 1013 3278 +686+22+19+19+17+18+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1277 selected implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 selected 1277 2886 +2124+105+69+39+37+31+28+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1277 0 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 0 1277 2886 +304+10+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1277 1 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 1 1277 2892 +593+17+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 kem_sntrup653 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair selected 994 9582905 +69617+499268+6985-15877+4748-17945+12132-28870+13821-28888+15977+9564-28079+21899-29841+11690-20495+2045-20517+2061-18857+114729+520684+14193-30985+12309+10064-30430+9020-28081+12328-19780 kem_sntrup653_enc selected 897 685284 +14433+1193+21999+513+306+90-145-99+107-356-214+11137-20-187-170+316-192+507-271+42555+949-377-360-1189-400-1344-425-1350+10985+463-809-133 kem_sntrup653_dec selected 32 1149001 +22460+521+13907+420-192-171-251+43829+1514-164-202-250+11620+876-223-141-280-162+11006-305-168-232-144+43037-169-165-269-165+12578+218-234-194 kem_sntrup653 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 0 994 9585144 +530219-20754+2604-21752-438+492756+11072-30533+10601+522721-28570+8630-29642+21025-21383+820-21268+14749-18871+11213-30069+11143+481887+13356+8537-28895+8407+7732+14241-20320+884-21583 kem_sntrup653_enc 0 897 686861 +17485+966-87-93-85-13-940-737-1156+10273+327-140-101-141+244-308+133+44964+1534+0-1173-5-237-244+2295-1101+12501+725-72+6-133+166 kem_sntrup653_dec 0 32 1149027 +4877+13042-95-62-97-117+46490+859-148-80-149+12014+1051-153-83-87+9772+644-133-136-118-148+43538-134-109-150-120+12893-199-137-164-132 kem_sntrup653 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 1 994 9580066 -21926-18240+6945-17436+13306-27484+13825-28174+16383+10551-25380+10954+493026+15044-19596+3637+491918+13483-27044+22855-28292+527811+149135-25121+12282-26536+13559-19485+515299-19539+4236-8475 kem_sntrup653_enc 1 897 684813 +3478+19-99-241+269-37-913+12711+906+222-137+47-159-421+64+40593+2628+285-722-825-1091-108-1137-177+10136+1553-5-728+191-13-850+163 kem_sntrup653_dec 1 32 1148929 +15777+32-20-162-92+44849+596-184-109-153+11837+985-133-125-186+9780+792-147-116-154-128+57155-95-96-158-125+13711-184-137-100-162+10569 kem_sntrup761 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair selected 1158 12759145 +38198+4339-29873+5922+797+11758-29481+3796+11345-29260+3275+1659-28802+11125+2488+510-30642+1112-452-32574+3643+10176-500-21588+3285-1182-33316+903+1328+8360-30937+927 kem_sntrup761_enc selected 1039 882618 +12865+298-470+12821+96-126-1301-1211-1298-170+9778-893-467-326-261-271+42217+1821-141-18-83-1115-1022+10398+1063-32-66+161+74-107+9486+964 kem_sntrup761_dec selected 32 1530800 +20310-505+49359-846-1109-1132+12883-998-1174-1184+11220-951-1165-1215+44253-911-1143-1185+12572-1021-1186+17968+338-1139-1218+43914+545-1118-1185+11404-68-1173 kem_sntrup761 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 0 1158 12755656 +20026+1595-28216+3856+1725-30285+3523+2365+104727-29214-12+1785-31430+10079-1180-30951+31118+2966+2381-28674+3340+2531-30884+2850+13089+1859-30020+10708+1922-28254+2419+1669 kem_sntrup761_enc 0 1039 882962 +6691-44-187-510+170-90+19850+1236-357-131-441-105-151+9656+584-442-648-547+6279+6349+44475+225+32-450-42-550+11348+765-59-172-626-675 kem_sntrup761_dec 0 32 1530806 +17165-804-1005-1154+44942-880-1007-1111+12657-1007-1057-1109+10811-1014-1036+41679+703-1082-1178+11335+164-1145-1164+9422+88-1056-1088+41612+655-1085-1178+11972 kem_sntrup761 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 1 1158 12757984 +4850-30402+2394+8452+10499-31005+2885+1682-30821+1530-373-28483+11806+961+929-32241+1225+9190-29523+2491+11842-178-29297+9332+1866-30502+116973+2540+12186-29070+3519+2157 kem_sntrup761_enc 1 1039 882484 +3557-95+45612+1877-1000-73-183-194+29+11111+1215-115-9-442-502+36+8231+127-1237-196-270-183-463+42298+740-410-405-499-546+10519+877-87 kem_sntrup761_dec 1 32 1530491 +4802-564+14068-612-822-907+45728-553-782+11623+415-867-872+9864+222-872-859+42223+710-630-648+11691+208-634-685+10568-283-861-946+42959-138-824 kem_sntrup857 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair selected 1322 16122629 +34862+45152+4272-37824+3035+11294-4380+1357+5903-6945+1020+2518-35906+5067+1162-5744+331+12468+1674-8384-10+473-38553+800+1751-5919+45-31253-6535+10970+1893-37749 kem_sntrup857_enc selected 1184 1077066 +15362+247+46678+713+8-82-269+11118+1566+169-72-385-481+9981-225-372-770-402+41817+1147-566-526-786-536+11205+47-649-805-1836+9311+487-628 kem_sntrup857_dec selected 32 1924171 +21569+47137-2265-2617+11288-2562-2753+8599-2397-2566+40216-887-2833+49432-896-2776+9679-1532-2920+39865-852-2828-2917+10776-2576-2954+9058-2760-2954+41557-2675-2955 kem_sntrup857 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 0 1322 16108855 +67946+15728-875-39372+4743+754+901-6755-537+3263-8342-1167+9783-40204-1046+34741-6122+4123+16051-8056+1349+424-106-36055+51079+2951-6412-742+1852-10711-981+79 kem_sntrup857_enc 0 1184 1077718 +48812+1516-495-761-796-633+11055+177+2009-789-880+8925+495-680-1153+1807-982+41214+939-445-603-782+10606+471-770+1762-716-616+9053+364-781-987 kem_sntrup857_dec 0 32 1924320 +50042-934-2477+10117-1879-2548+16333-1522-2456+41058-1123-2572-2574+10816-2531-2612+9398-2507-2561+41307-2657-2863+10469-2485-2571+8958-2608-2885+40816-2563-2925+9807 kem_sntrup857 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 1 1322 16123273 +5269-9478+9625-914+84214+5653+1355-5853+10718+938-693-9968+38961+974-40835+12341+1108-8748+2005+7243-9801+337-2227-41162+1269-2107+683-7564-2532+382-10172+6945 kem_sntrup857_enc 1 1184 1076092 +4609+75-282-393+12685+758-160-539-538-483+47695+1064-63-136+7+43507+1498-499-590-472-434+11486+667-642-540-781+9639+729-457+2156-419-618 kem_sntrup857_dec 1 32 1923786 +5016-2326+11264-1194-2481+8359-1116-2475+41527-318-2465-2487+11251-2327-2543+11024-2334-2718+42780-2126-2587+10557-2131-2401+9413-1983-2552+40596-666-2399+9199-1255 kem_sntrup953 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair selected 1505 19832706 +41188-3172-2927+47531-3171-2058-538+9107-2129-2501+8788-1453+7869+35882+91719-2919+5876-2622-1600-2692+6128+5360-2118+37848-2869-5923-28442-4703-4644-3352+1713+4416 kem_sntrup953_enc selected 1349 1290673 +62691+1967-357-624-681+11176-236-691-614+9815+417+472-760-788+41517+837-967-730+10452+397-1023-859-626+9061+70-1005-1013+3639+40972+630-461-497 kem_sntrup953_dec selected 32 2364008 +18211-3296+10138-3490+40052-2359-4171+7297-3533-4194+7141-4038+39047-3011-4154+8903-3980+6376-3214-4174+39555-3854+8058-2984-4213+7447-3961+37549-2689-4117+10059-3936 kem_sntrup953 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 0 1505 19834877 -1771+2265+30490-8870-8421-7852+12815-5254+99844+5920+2119-3329+36653-7291-3518-27068+2930-3945-4056+5805+6595-2866+36282+39367-7192+4463-3018-5160+1977+2796+5300-7225 kem_sntrup953_enc 0 1349 1291124 +9635-946-575+16619-645-294-608-232+15183-256-761-1822+44141+1088-372-418-226+11200+410-779-1766+8042+2242-428-1826-936+43038+1221-344-561-724+11083 kem_sntrup953_dec 0 32 2364528 +10362+9559-4122-4794+42934-4563+7611-4312-4702+6699-4679+36833-3467-4730+8317-4691+5406-3907-4743+39483-4494+6957-3865-4858+6515-4725+36592-3288-4778+8074-4573+13844 kem_sntrup953 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 1 1505 19858508 +10337+36815-5982-6736+5098-5777+37127-4902+2782+3337-4342+5998-5636+132614+7329-3838-4304+4793+2833-2652+33718-6745-6113-4043+2742+10891-6046+10666-6570-5195+80881-6103 kem_sntrup953_enc 1 1349 1290152 +10516+14788-632-890-880+11016+1001-1462-1049-952+44919+1665-1816-894+10523-256-719-649-731+8991+575-659-1984-644+40712+1217-761-574+10835+675-616+1112 kem_sntrup953_dec 1 32 2365080 +27181-4613+40276-3529-4845+8344-4708+6889-3862-5015+38746-4684+6720-3874-4944+5895-4388+46802-3036-4905+9829+510-4035+15786-3760+58372-1470-4977+17890-4812+7777-3576 kem_sntrup1013 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair selected 1623 22573875 +19996-9571-6061+32180+124971-1928+2026+22628-16053-3713-5041+64745-15695-3310-1550+22735-13031+1068835-5261+19851-6451-15141-10283+30895-7246-10396-16664+25249-7631-6731-16200+34086 kem_sntrup1013_enc selected 1455 1431952 +16632-437+12486+69-1168-1306+43441+779-998-1416+10140-97-1378-1542-1228+9427-1051-1349-1526+41295+748-1336-1544+10594+375-1252-1400+8241-76-1598-1256+42329 kem_sntrup1013_dec selected 32 2668071 +56158+10067-4797+5123-4206-5495+41172-5231+8377-5358+5151-4724+37414-3788-5439+7402-5337+6112-5269+38581-4625+6674-4202-5420+6066-5277+38067-5354+6896-4807+4750-4391 kem_sntrup1013 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 0 1623 22570670 +5569-303-3400+23851-12269-1248+10159+28993-2914+466-5540+24306-12135-2355-4832+24051+4439-11970-3408+24748-2992-10902-2754+22801-3148-38103-4063+23562-883-11680+6836+24759 kem_sntrup1013_enc 0 1455 1432264 +6158+88-538+12297+285-494-681+52295+1280-406-805+11007+269-628-663+9219+3-630-682+40723+1096-318-470-495+11042-106-359-497+9485+503-422-454 kem_sntrup1013_dec 0 32 2667264 +1329+9607-3929-5353+6607-5124+39628-4923+6623-4185+5190-4128-5371+38819-5049+7638-5278+5001-4248+37080-3487-5318+9529-5007+6482-4995+36866-3530+6899-4147-5417+6342 kem_sntrup1013 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 1 1623 22576756 +104455+35203+1076563+22411-18929-7643-12181+21162-20423-10410-2770+21513-10574-18746-10732+19897+39034-19352-10879+28627-10068-16809-9125+20794-9481-19203+25785+26918-8756-19222-10875+17947 kem_sntrup1013_enc 1 1455 1430970 +5564-290+12543+1096-306-452-396+43501+868-542-688+10582+227-862-713+9753+598-756-702+41403+1484-820-799+10960+614-640-758-614+9619-347-610-777 kem_sntrup1013_dec 1 32 2667744 +3023+7631-4096-5316+16297-5118+40814-5106+7256-4761+5093-4049-5251+38474-4982+8045-5152+5464-4769+52784-3333-5176+8415-5138+6317-5088+37362-4445+6718-4103+4811-4138 kem_sntrup1277 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair selected 2067 35773394 +30205+32182-4072+1773513+25605+28139-7429+1725104-11381-13777-10582-7924+95533-319-49049+1763733-21200+29826+59836-6759-12203-15703-51397+414-9628+3516636-13525-12958-5767-15569+4516-12436 kem_sntrup1277_enc selected 1847 2153211 +46885+1161+11704-1392-3630+6928-3372+41194-1638-4716+8235-2146-3957+6553-2708-3892+48476-2069+7430-2293-3908+5260-1967-3346+37481-2639-3618+8104-2685-3596+6358-3754 kem_sntrup1277_dec selected 32 4220444 +12929+5686+1466-11245+35877-874-12041-468+31739+2798-11485-1199+30743-7989+231+1089+31551-8162+439-709-11456+33610-633-11417-1277+31698+2502-11488-1411+30432-8047+345 kem_sntrup1277 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 0 2067 35758098 +19700+5278+873-5519-4352+3854-2660-4965-2824-10691+13286+1742477-5067-7891+3185+115438-6328-788-213-1159-1134+9025+88647+1784626-12774-1564+10746-2571-1579-3847+611+4532 kem_sntrup1277_enc 0 1847 2152771 +13400-1147-2509+37665-2202-4866+6433-2855-3280+7141-2933-5122+7009-4888+6893-1658-2962+6957-1605-3456+37484-988-2636+7799-2046+6274-2530-4916+37021-3048-2813+6319 kem_sntrup1277_dec 0 32 4221193 +8791-12038+36058+1842-1093-12174+30494+673-12199-1995+41451-10924-90+7522+33433-8884-171-3465-12218+32730+819-1121-12184+30592+574-12151-2468+29911-10812-313-618+30522 kem_sntrup1277 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 1 2067 35814411 +3606+855+6807-1687-4100-3400-7638-4649+44079-3913+36987-32555-4179+5059-5956+304-2166+4578+131954-8511-3369-4638+32394+5519+34018-3419+85830-1750-31221+1918821+23932-2931 kem_sntrup1277_enc 1 1847 2152329 +9811-2426+13614-3789-2991+8647-4954+39689-1366-5228+7998-2329-3332+6422-1514-4915+53055-3623+8515-1849-5369+5821-1555-3644+36498-2715-3027+8551-2108-3167+7568-2765 kem_sntrup1277_dec 1 32 4270185 +8102+3693-415-9772+35187+2445-672-9777+32509+1073-9854-17+31401+2115-9755+157-972-8454+93-208+32090-8085+1731-729-9836+32418+1770+628-9687+33347+1087-9813 libntruprime-20241021/benchmarks/goldencove-alder0000644000000000000000000156605214705505542020461 0ustar rootrootntruprime version 20241008 ntruprime arch amd64 cpuid 756e6547 6c65746e 49656e69 68743231 6e654720 746e4920 52286c65 6f432029 54286572 6920294d 32312d33 00303031 00000000 00000000 00000000 00090675 00100800 7ffafbbf bfebfbff 00000002 239c27eb 98c007bc fc184410 00000000 00000000 00000121 2c100800 00000207 00000000 00000000 00000000 00000000 cpucycles selected persecond 4200000000 cpucycles selected implementation amd64-pmc cpucycles selected 0 13 +58+48-3+5+1+1+1-1+0+1+0-1+2-1+0-1+1-1+0+1+4-3+3-3+1-2+4-4+3-2+3-3 randombytes selected 0 17 +2183+75+7+7+0+6+4+6+4-3+3-3+0+0-3+1-3+0-2+0-1+1-4+0-2+0-2-1+2-4+1-3 randombytes selected 1 110 +299+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 2 109 +29+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 4 110 +5+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 7 110 +4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 11 110 +3+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 17 110 +6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 26 110 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 40 110 +3+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 61 110 +4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 92 110 +4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 139 110 +4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 209 110 +4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 314 110 +5+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 472 110 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 709 110 +4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1064 109 +27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1597 109 +38+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 2396 109 +32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 3595 121 +26+26+7-12+11+5-12-12+11+3-12-12+12+2-12+11+6-12-12+12+3-12+11+3-12-12+15+2-12+12+3-12 randombytes selected 5393 148 -10+1+0+4+0-23-16+0+1+0+0+3+2-1-24-15-1+1-1-1+0-1-23-39-16-1+0+0+2-1+2+4 randombytes selected 8090 155 -18-4-5-6-5-7-6-8-7-4-8-6-8+124-10+5+2+4+3+4+3+15+1+4+3+3+2+4+2+4+2+4 randombytes selected 12136 159 +9+1-1-1+0+0+0+0+0+0+0+0+0+0-1+0+0+0-1+0+0+0+0+0-1-1+0+0+1-1+0-1 randombytes selected 18205 162 -18+0-1-3-4-4+6-3-4-3-4-3-5-3-5-4-4-3-5-2-4+149-11+12+13+12+14+12+12+13+14+13 randombytes selected 27308 174 -23+1+0+0+0-1-1+0+0-1-1+0+1+0+1+0+0-1-1-1+0+0-1+0-1-1-1+0+0+126-29+1 randombytes selected 40963 157 +9-17+2+1+0-1-1-1+11-1-2-1+0+0+0-1-1-1+0+0+0-1-1+0+0+0-2+0+0-2+115-2 randombytes selected 61445 158 +29+30+1+0-3+3+0-4+1-1+0+0-3+3-4+0+1-1+0-2+0-3-4+0-4+0+2-4+107+4+17-5 verify_897 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 selected 897 106 +399+129+13+22+70-9-2+3+0-6-2+4+4-5-9+1-3-7-6+10+6-6+4+5-10-11-11+3+0-1+3+0 verify_897 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 0 897 65 +287+125+90-4-11-2+2+2-12-4+4-4-15+3+3+0-14+6-1+11+11+6-9-5+3-1-1-3-10-10+2+2 verify_897 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 1 897 62 +118+122+14+38+38+2-4+6-2-11+0-2+0-4-2+0+3-10+1-6-2-2-1+1-3-2-2+4-12+8-12+3 verify_897 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 2 897 86 +1211+96+12+1-2-2+3-1-2+5-1+6-6+7-4+3-1-2+0+1-2-1+3-1+0+3-4+0-2-1+3+2 verify_897 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 3 897 946 +1173+33-1+18+6+1+5-4-1+18-2-1-4+0-4-5-2+4-2+1+0+0-4-2+1-5+6-1+1-6+0-6 verify_897 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 4 897 160 +1162+139+35+26+4-1+0+1-1+2+0+0+2+1+0+0-1+1-3-1+0-1+1-2+3-1+2-3-2+1-1-2 verify_897 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 5 897 945 +1434+185+0-2-7-5+3-5-3+1+0-8+0-4-5-7+1-5+3+2+0+6-2-2+8-5-4+3+5+0+5+4 verify_1039 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 selected 1039 58 +1576+144+45+54+4+10-5-1+1-5+0-2-1-1-3+1-4-6+2+3+2+21+26-2+0+1-5+2-4-1+1-4 verify_1039 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 0 1039 61 +1293+147+14-1+5-4+1-1+0+1+1-4+2-2+0+1+0-4+0+1-2+0+2+2-2-4-2-2+2-2+3-2 verify_1039 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 1 1039 56 +141+96+70+83+24+23+1+0-1+4+1-3-3-3-7+1+0+7-6-2-3-1+2-4-1-4-2-2-2+6-1-7 verify_1039 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 2 1039 96 +315+133+8-5-3-1+2-1+1+3-3+5-4+2+3+2+0-5+6-4-1-4-1-5-6+4+2-3+0+2+4-3 verify_1039 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 3 1039 1089 +440+27+7+0-3-1+0+0+2-2-5-4-1-2+1+3+13-1+2-3-6+1-5+0-5+5+0-4+0-1-2+6 verify_1039 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 4 1039 173 +151+109+5+2-2-6+1-1+3+0-1-1-1+5-2-4+2-5+1-2-1+2+0+0-6+3+0+0-1-1-1-1 verify_1039 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 5 1039 1088 +500+124-4+3-1-4-1-2+5+0+4-2-2+0+0-1-4-1+0+3-2-3-7+1+2+4-7+1+5-3+3+3 verify_1184 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 selected 1184 112 +620+78+3+0-4-7-7-7-6-6-6-10-3-4-4-4+1+1+1+1+1+2+1+1+1+1+1+1+1+1+1+1 verify_1184 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 0 1184 68 +518+73+61+7-1-4-1+4-7-1+2-4+1-1+2-6+0+15-1-2+2-3-2+6-3+2-2+31+4+0-1-3 verify_1184 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 1 1184 106 +84+99+38+3-8+1+1+0-2+0+0+0+0+0+0+0+0+0+2+0+0-2+1+0-3+1+3-2-2-1-2-2 verify_1184 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 2 1184 117 +1411+117+38+8-9-4-3-4-5-2+15+38-3+1-2-1+4-4+1+2-1-1-3+3-2+6-4+7+6-2-5+1 verify_1184 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 3 1184 1231 +1148+39+10+3-2+1+23-4+8-6+2+0-1+2-2-3-5+0-1-5+8+5+3-6+0-6-6+3-1-1+5-7 verify_1184 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 4 1184 201 +436+46-1+1+0+1-1+1-1+0+1+2-3+2-1-2+3-5+3-2-2+3-3+1-3+0+0-6-1+0-3+3 verify_1184 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 5 1184 1234 +441+28+0+6-3-6+5-3-1+0-1+2+6-4-3-2+53-1-3+4+1+6+1-5+0-2+2+4+0+3+1-5 verify_1349 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 selected 1349 69 +612+213+50+93+41+4+5-1+3-10-2+1-6-4+0-1+1+15+24-2+3+1-5+1-5+1-6-5-3-1-6-4 verify_1349 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 0 1349 130 +901+223+44+94+81+25+17+0+1+1-1-7-1+5-2+6-5-3-2-2-7-3-1-3+1-3-4-1-1+3-3-1 verify_1349 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 1 1349 72 +110+75+49-1+4+2+1-1+10-6-2+8-1-3+4-1-1+2+4+0+4+1-17-1-3-4-5-5-5-5-4-3 verify_1349 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 2 1349 107 +204+112+74+11-9-5-5-4-4+26+44+48+0-6-4-4-10+0-4-7-2-6-4-6-2-5-7-3+32+43+38+2 verify_1349 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 3 1349 1400 +453+31+28-2+28-4-1-5-3+3+1+0+2-5-5-1+21+27-1+0-4-1-6-6+7+5-3-4+1-2+6-6 verify_1349 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 4 1349 212 +1277+95+43+16+15+47+5-3-1-3-2+0-1-7+6-6-1+0-5-1+4-5-2+1-7-2+1+5-10+7-11-9 verify_1349 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 5 1349 1418 +456+36+3+5+17+4+3+1+8+1-1+3+4-3+8+1-4-4-8+2+1-4-8-3-6+0+1-7-6+4-4-5 verify_1455 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 selected 1455 130 +550+198+152+81+20+11+5+3+10+12-3+3-1+5+4-5-1-11-1-7-2-7-6-3-5+2-14-1-6-6-5-8 verify_1455 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 0 1455 80 +538+164+62+67+75+8+1-3+3-6+0-3-2-3-2-12+4+5-7+7-4-9+2+0+3-5-3-6+2-1+5-7 verify_1455 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 1 1455 127 +132+41+2+1-10-1-4-4-5-6-4-5+0-5-7-2+3+0+0-2+2+8+1+1+0+2+4+3-1+2+2+4 verify_1455 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 2 1455 147 +571+108+52+6-3-3-2+2-3+0-1-2+0+1-1+0+2+0-3-1+0+0-2-3+3-2+0-6+4-5+3-2 verify_1455 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 3 1455 1525 +1129+20-5-7-7-3-2-8-8-3-2-7-8-6-2-2+0+8+3+1+9-1+5+3-2+9+1+5-3+3+2+3 verify_1455 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 4 1455 235 +484+46+60+1+0-2+6-3-4+4+2-3-2+1-4+3+14+1-3+1-2+0+1-3+1-1-4+2-1-4+5+1 verify_1455 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 5 1455 1603 +1726-22-45+20-1+12-6-95+4-4-10+2+5+1+6-50+1-8+1-11+5+2+1+0+8+4+6+1-91-7-1+0 verify_1847 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 selected 1847 146 +585+195+55+43+32+14+18+4+8+4+10+4+0+8+6-8-10-7-4-5-6-4-5-2-5-6-5-5-3-4-3-10 verify_1847 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 0 1847 131 +254+207+37+34+25+4-3-2-3-1-5+1-2+31+18+3-8-1-2+1-2-1-1+0-4+1-3+1-2-2-2+1 verify_1847 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 1 1847 140 +104+40+33+25+1+26-7+0+0+4-2+7-7+0+0-1+6+0-3-1-1-2+1+0-1-1-8-3-1+1-1-3 verify_1847 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 2 1847 182 +558+94+56-1+5-1+0-3+2-1+8-3+4+2+6+20-4+1+0-6+9-4-4-5+1-1+0-6+1-4-1+1 verify_1847 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 3 1847 1894 +510+165+82+30+6-5+21-8+1-1+5-1-6-6+5-3-7+0-6+2-5-2-1+4-6-3-1-5+3-1+4+0 verify_1847 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 4 1847 306 +1277+70+12+4+3-1+0+3+0-3+0-3+6+0-2+2+1-2+0+2+0+4-1-1-2+1+3+0+0-2+0-4 verify_1847 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 5 1847 1918 +480+36-8+0-3+7+8-4+1+1+2+10+1+0-1+1+6+1-9+0-9-7+5+1-6+2+4-5+2-8+0-6 hashblocks_sha512 selected implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 selected 0 19 +1212+124+35+3+3+1+3+1+1-2+0-3+0-1+0-3+1-3+0-3+0+2-4+38+2+2-1-3+0+1+0-6 hashblocks_sha512 selected 1 20 +76+7+4+5+3+4+3+6+5+5+5+5+0-4+2-1-3+1-5-2-4-5-3-2+0-7-3+0-6+0-6-4 hashblocks_sha512 selected 2 18 +7+2+3+1+30+7-1-3+1+1+0-5+0-2+1+1-4-2+0-2+0-2+2-4+0+1-4+2-4+1-2+2 hashblocks_sha512 selected 4 18 +5+6+4+3+3+3+4+0-1+4-1-1-1+1-1-2+1-2-2-2+1-3-1+1-2-1+0-2+0+1-5+0 hashblocks_sha512 selected 7 18 +7+5+5+3+4+2+3+2+2+1-3+2+0-4+2-2-2-1-2+1-2-2+1-2+1-2+1-4+2-5+2-3 hashblocks_sha512 selected 11 18 +5+6+4+2+5+3+3+0+2+1-1+2-4+1+0-1-3+1-1-2+1-2-1-4+1+0-2-1-1-2+0-2 hashblocks_sha512 selected 17 18 +7+6+5+2+4+4+4+1-1+3+0-1-1-2-1-2-1+0-2-1+0+1-4+1+0-3-1-1+1-3-2+0 hashblocks_sha512 selected 26 19 +6+7+0+3+3+1+1+2+0+2+1+1+2-4-5-1-1-2-2+0-2-3-2-2-2+2-6+0-5+1-3-3 hashblocks_sha512 selected 40 18 +5+6+4+2+5+3+3+0+2+1-1+2-2-1+1-5+1+0-2-1-2+0-2+1-1-2-1-3+0+3-4+2 hashblocks_sha512 selected 61 17 +8+4-2+5+3+0+0+1-1-2+3-3+3-3+2+1-3+1-1+1+1+0-1+0+3-1-1+0+1-1+1-3 hashblocks_sha512 selected 92 18 +6+3-2+4+1-1+1-4+0-2+2-2-2-1+1-2-1-2+0-2+1-5+2+3-5+0-3-1+1-4+1+1 hashblocks_sha512 selected 139 688 +1255+42-21+2-2+7+1-10-1+9-1-12-1-4-2+7-8+5+1+2+7-10-4+2-14+2-2+11-6+9-4+2 hashblocks_sha512 selected 209 686 -4+18-13+4+32+25-18+5+7+0-17-8-6-5-3+38-8+4+0+3+7-1+0+3+3+11-4-2-5+1+5-3 hashblocks_sha512 selected 314 1331 +42+8-32+8+22+0-5+0-4+16+42-31+15-4-4+5+2-2-2+9-2+1-11-14+3-12-4+5-4-8+0+8 hashblocks_sha512 selected 472 1973 +5+16+23+8+3-7+27+41-5-7-2-12+0-4-9+14-15+2+2-1+21+14-6-6-16+11-8+11-13-7+20-12 hashblocks_sha512 selected 709 3257 +87-12+7-26-4-3+17+39+5+10+14+6+7-6+4+2+0-8-34-16+4-8+0+13-11-7+20-5-21+2-15+4 hashblocks_sha512 selected 1064 5184 +10+43-61+24-42-10+1+11+5-14-1-17-27-15-20-16-13-30-27+6+3-1+8+10+8+19+17+2+12+24+3+4 hashblocks_sha512 selected 1597 7761 -9+18+0+40+8+21+9-22+12-13-21-39+4+1-26-14+0-10-55+9-4+3-5+2-4-28+10-16+46+59+13+15 hashblocks_sha512 selected 2396 11601 +76+14+12+18+10+19+20-47-5-15+17+16+16-15-19+15-25+75-15-7-36-16+40+38-35-3-38-48-29+2+2-7 hashblocks_sha512 selected 3595 18020 +37-40-97-39-44+16+40-64+1-53-39+90+1+74+43+2+18+1+29+51-54+68+8-7-30-26+87-13-30+14+43-14 hashblocks_sha512 selected 5393 27014 +62+137-27+11+28-75-42-17+157+90-133+14-65-23+21+104+46-9-21-36+60-10-34+60+41-23+5-7-61+29-61-12 hashblocks_sha512 selected 8090 40546 +66-15+33+9+121-28-22+60+41+19-74-74-45+21-54+55+10-7-107+1+21+39+17+91-52-92-22+50-14-124-53+17 hashblocks_sha512 selected 12136 60429 +63+25+47+42-70-74+5+15+1-1-12-96+9-34+37-74-8+25+82-28-20+26-108-42+88+2+65-1-1-100+26-123 hashblocks_sha512 selected 18205 91303 +144+21-10+72+104-234-4-60-60+20-156-67-64+11+2219+10+105+41-126+91-29-132+52+79+43-129+47+47-13-155-4-78 hashblocks_sha512 selected 27308 136850 +16+52-158-39-50-66-45+144-87+102-121+19-140+62-28+110+125+55-119+23-45-84+112-13+74+85-145+50-17+14+156-49 hashblocks_sha512 selected 40963 205621 +147-110+98-163-147-89+77-35+59+3+137+161+14+25-180+56-76+119-206-289+2+208-163+141+42+3+25-131+62-278-56+2467 hashblocks_sha512 selected 61445 308581 -71+318+188+252-18-276+168-202-155+94+61-216+90-187-122-16+138-174+235-77+94+177-64+189+100-97-104-236-6-307-3+336 hashblocks_sha512 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 0 0 18 +369+119+6+6+3+6+4+4+4+3+4+2+2-5+2-6-1-2-2-2-2+1-4-4-1-3+0-1-4-1-4-2 hashblocks_sha512 0 1 20 +99+0+32+2+1+1+3+4+6+4+3+1-1+0+0-1-5+0-4-4-3+0+23+0-6-3-2-4+0-6-2-5 hashblocks_sha512 0 2 17 +69+5+5+0+3+0+2+2+2+3+2+0+3+1-5-1+1-1+0-3-1-1+0-2-2+2-4+0+0-3+1-3 hashblocks_sha512 0 4 18 +4+5+2+3+0+3+1+3+1+1+3+0-2-2-1+3-4-1-2+1-3+2-2-1-1+0-4+0+0-1-2+3 hashblocks_sha512 0 7 18 +8+3+2+2+1+1+2+1+0+1+2-5-1-4-1-2-3+1+0-7-1-1-2-2-3-1+1-5+0-5+0-4 hashblocks_sha512 0 11 18 +15+2+4+1+1+4+2+1+1+1+1+3+2-2-1-4-3+1-1-5+3-7-1-1-1-4-1-3-1-1-4+1 hashblocks_sha512 0 17 17 +16+3+5+2+4+5+4+2+1+5-5-1-3+3-4-1-1+0+0-4+0+2-5-1+0-1-2+0-2+0+0-1 hashblocks_sha512 0 26 18 +15+2+4+4+1+2+2+0+1+2+1+2+1-2+2-6-3-2+1-2-4-3-1+0-1-4+1-5-1-3+1-5 hashblocks_sha512 0 40 17 +9+4+2+5+3+4+1-1+4-1+3+4+0+1-1-3-1+1-3-2+1+3-4-1-2+2-4+0-2+1-3+0 hashblocks_sha512 0 61 19 +7+2+2+3+4+5+2+2+2+6+2+2+1+0+2-1-3-3-2-3+0-3-1-3-1-3-2-3-3-2-1-1 hashblocks_sha512 0 92 19 +4+3+2+1+1+2+0+1+2+1+1-3-3-2+0-6+1-2-2-3+1-5+1-3-5+0+1-5-2-2-1-3 hashblocks_sha512 0 139 690 +356+84+11-15+2+1-8-6+5+5-5-7+57-9-8+10+9-1-5-10+8+9+15+11+1-16+8-4-3-2-10-12 hashblocks_sha512 0 209 688 +90-18+0-3-1-13-7-1+3+59+8-4-3+6-2-6-4+35+0+11+10-2-3+17+6+8-6-12+1-9+2-14 hashblocks_sha512 0 314 1334 +43+59+41-32+8-7+10-2+5-19-2+4-20-13-16+4+1+4+8-4+12-24+14-10-17+4-5-1-6+4+5-4 hashblocks_sha512 0 472 1972 +69+26+3-7+3+11+11+7+19+1-4-11-27-26+14+3-12+13+5-12+20+7-14+26+10-13-11-4-10+2-13-9 hashblocks_sha512 0 709 3258 +34+0+0-17+2+4-2+15-3-11-1+11-6+30+1-2+13-14+5-9-10-5-5+2-9-8+1+25+7-3+10+2 hashblocks_sha512 0 1064 5186 +11+15-7+44+37+32-11+6-44-1+28+21+40-11+25+2-19+28-26-1+37-32-21-24-14+17+4-45+16-30-25-23 hashblocks_sha512 0 1597 7753 +12+40+10-6-6-35-6-15+5+8-5+8-12-41-4+17-3-33+3+15+17+27-6-21+17+3-30+12-43+6-5-10 hashblocks_sha512 0 2396 11603 +12+14+36-40-88-3+8+17+10-6+10-31-34-19-17+68+51+23-5+48-59+42+16+1-18+1+5+39-42-15-17-12 hashblocks_sha512 0 3595 18036 +5-47+57-20-10+12+27-13-27+25-66-11+8-50+13+8+24+13-29+3930+49-42+47+1+48+3+22-56-26-37-29+33 hashblocks_sha512 0 5393 27029 +118+62-12+51+14+6+43-49-28+48+38-39-46+26+47-40-21-19+18-87-33+76-45-46+15+9+47-55+49+23-49-89 hashblocks_sha512 0 8090 40559 +15+108+46-24+47+19+21+39-55+8-2-32-54+121+5+80+51-60+42+20-45-62-21+56+42-45-102-68-42+44-57-49 hashblocks_sha512 0 12136 60455 -43+45-129-12-161+18+18+10+16+96+113+62-64-21+80-97-106-1+1+22-33-65-49+16+33+39-9-21+21+10+76-54 hashblocks_sha512 0 18205 91310 -24+92+160+82-46+136+55+9-131-113-14+15+20+31-28+42+18-130-30-58+8-9-27+33-33+56-58-26-12-117+93+100 hashblocks_sha512 0 27308 136891 +107-80+89-25-58-96-153+9+29+26-100-210+8-54+52+48-109+91+27+31+29-3-34+31+98-40-11+81-10-10+124-54 hashblocks_sha512 0 40963 205633 -150+2945-19+11-2+33-197-231-179-68+4+48-113+113+137-74+35+109+52+150+39-39+114+202+100-35-52-232-265-90+3+64 hashblocks_sha512 0 61445 308558 -213-120+98+220-210-108+33-188-73+213+193+136-69+104-104+64-70-38-119+239+6075-157-64+23-224+115-8-65+3+76+87+148 hashblocks_sha512 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 1 0 19 +88+63+2+4+2+2-1+2+3-1-2+6-9+0-5+0-2+0-5-1-2+3-8+4-8+0-3+2-8+0-3+0 hashblocks_sha512 1 1 20 +118+2+3+1+1+1-1+1+2+20+4+0+2+0-1+1+3-11-2-3-3-3-4-1-4-3-4+4-10-2-2-3 hashblocks_sha512 1 2 21 +58+4+1+3-1+2+2+0+1-1+0+1+1+2-1+1+0+2+1+0-2-5-4-3-5-3-4+20+0-6+0-9 hashblocks_sha512 1 4 21 +46+4+0+1+0+3+0+2+3+1+2+3+0+1+2+1-1+0-2-7-3-4+0-7+1-9+4-4-11+2-5-2 hashblocks_sha512 1 7 21 +48+4+2+1+3+0+1+0+4+3+0+3+1-1+3+0+0-1-1+1-4+3-10-4-3-2-1-5-5+0-3-4 hashblocks_sha512 1 11 21 +48+4+1+3-1+3+1+0+3+1+5+0+3-1+0-2-1-1-2-1+1-2-9+0-9-1-1-5-4-4-9-5 hashblocks_sha512 1 17 21 +2+1+3+3+2+2-1+2+3+0+0+1+2+1+1+0+0-1+0-1-1+0+0-9+0+0-13-1-1-11-1-4 hashblocks_sha512 1 26 20 +12+2+1+5+2+2+5+0+1+8+1+1-6-1-2-6-4-1-4-1-6-2+1+2-11+7-13+5-11+1-7-2 hashblocks_sha512 1 40 19 +4+4+5+4+3+5+3+5+1+2+1+1+1-2-2+1-5+2-7-2-1-2-3+1-4+1-4-1-2-3-3+2 hashblocks_sha512 1 61 19 +14+2+2+6+4+2+6+1+5+1+7-5+2-5+1-5+0-3-1-3+0+0-5+0-1-3-4-1-2-3-1-2 hashblocks_sha512 1 92 21 +3+4+2+2+3+1+3-2-1-2+2+4-11+6-12+0+0+1+29+1-4-3-4-1-3-4+0+30+20+0-3-3 hashblocks_sha512 1 139 690 +89+85+21+28-8+1-36-8+42+3+1+11-4+4-7-8+3-5+6+0+13-11+6-4-25+7-3+16-8-9-2-3 hashblocks_sha512 1 209 688 +44-23+54-23-9+7-7+4+7+10-3+2+3+0+9-5+36-24-12-7+0-13-7-3+6-4+3+2+4+1+5-1 hashblocks_sha512 1 314 1332 +53+64-31-1-10+2+5+1+3-6+10+0-4-13-5-15-7-7+16+1-14+14-5-6-2+5-1+20+3+5+18-3 hashblocks_sha512 1 472 1970 +68+75-23-9+2-20-16+20+28+15+5+0-3+12+28-4+4+5-2-1-7-8-4+23-1-18+1-12+6-12-5+5 hashblocks_sha512 1 709 3254 +62+8-8+5-21-15+1+16-8+6+15+7-8+10+26-15-19-13+2+11-17+28-19+0+21+9-10-5+2-20-22+25 hashblocks_sha512 1 1064 5183 +78-11+20+53-1+21-22-17-12-13+43-9+24+3-22+3-12-11-17+1+7+15+39-20+10+14-18-4-7+44+24-22 hashblocks_sha512 1 1597 7756 +47+60+2-8-31+14-20+15-4-20-57+3-1-34+2-17+12+15+11-14-18-4-14-2-19+25+1-13+22+14+15+19 hashblocks_sha512 1 2396 11607 +23-26+26+1+27-55-7-7-16+25+7-8-7+11-71-3+42-7+9-22-47+8+29-13+8+37+24-2-25-25+2+6 hashblocks_sha512 1 3595 18038 +116+107-50-19-28+27+1-46+30-30+3+15+25+11+6-17-69-57-22+9+46-64-3-11+4+43+36-6+28+73-35-40 hashblocks_sha512 1 5393 27042 +51-29-19-21+37-68+20+0+13+48+26-4+36+79+4-57-103+34-89-19-24-42+41+43-27+19-12-11+82+18-103-75 hashblocks_sha512 1 8090 40542 +97+50+30+63-37+10+36+25+99-29+1-21-13-1-7-2-46+75-136-50+0+111+97-41-5-106+6-35+0-71+0+11 hashblocks_sha512 1 12136 60438 +97+45-12-25+34-153-15+75+98-15-171+115-54-2+27-84+21-138+30-45-141-78+48+2-18+50-30+113-1+70-32-3 hashblocks_sha512 1 18205 91247 -55-18+82-35+143-115-33+44-183-104+5-58+140-37-67+57+237+56+12+144-153-16+50-92+4888+47-16+142-20-27-24+7 hashblocks_sha512 1 27308 136814 -45+7+169-6+36+204+105-20-95-26+18+205-66+33-57-102-56-83+68-38+3+85-86+77-157+4-21+71+0+13+38-4 hashblocks_sha512 1 40963 205608 -96+156-8+141+127+19+137-81+374+139+21-220+129+119-123-35-225-58-41-68+12-301+68-149-99-175-128+142-78+133+42+58 hashblocks_sha512 1 61445 308614 +3258+215-76+230+63+141+129+97-96+72-61+57+64-6-101-74-56-86-99-117+318-13-138-360+1-222-178+59+94-69+32+185 hashblocks_sha512 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 2 0 39 +123+57+1+1+0+2+1+1+5+12+6-7-8+13-7-9+10-2+2-8-4+6+1-3+4-4-1-1+1-1+1-5 hashblocks_sha512 2 1 41 +61+2+3+2+2+2+2+2+2+2+1+1+1-5+1-2-14+10-5-10+10-11+5-4+0-5-2-2-1-4-4-2 hashblocks_sha512 2 2 39 +73-1+1+5-5+3-1+1-1+1+4-4+2+0-11+11+0-12+12-2-12+10-2+2-4-3+4-2-10+8-1+3 hashblocks_sha512 2 4 40 +72+0+0+2+1+0+2+1+0+3+1-1+3-1-2+1-2-10+7-2-1-4+0-3-3+1-3-12-1+6-1-14 hashblocks_sha512 2 7 39 +73+1+2+0+0+2+0+2+2+1-1+6-4-10+13-7-8+8-3+4-6+9-8-9+11-1-2+0+1-1+0-1 hashblocks_sha512 2 11 40 +70+3+0+0+1+2+3+5+5+5+1-1-1-1+2-3+0+0-9+4-2+1-4+0-2-2+0-7+2-3-5+1 hashblocks_sha512 2 17 40 +73+1+0+1+2+1+2+4+4+4+2+3-1-1-1-1-1+1-1-2+1-1-5+1-3-3-1+0-8+3-2-1 hashblocks_sha512 2 26 40 +74-1-1+5-7+3+2-1+0-2+1-2-1-2+1-6-1-1-1-8+1+2-4+1+1-2+1-4+24-6-8+6 hashblocks_sha512 2 40 40 +36+1+0+1+2+1+0+1+2-1-1-1+4-4+3-7+2-2-1+0-8+2-2-1+1-2-4+2+0-13+10-4 hashblocks_sha512 2 61 40 +9+0+4+3+1+0+0+0+0+0-2+0-2+2+0-9+4-1-2+0+1-2+0+1-6-12+12-7-9+12-8-9 hashblocks_sha512 2 92 40 +8+0+3+3+1+3+1-1-1-1-1-1-1-1+0-5+4-1-16+12-2+1-4-3+0+1-1-2-1-2+0-7 hashblocks_sha512 2 139 843 +871+146-6+17-32+32-42+40-31+14-31-13+0+7-11-14-8+12-22+13-32+5+26-14-9+3-12+10+41+9-41+7 hashblocks_sha512 2 209 839 +76+8-39+6+21-16+21+9+3-20+4+5-2-3-1-17-22+39-42+14+38-18-19+24-10+28-22+6-4+3-2-3 hashblocks_sha512 2 314 1643 +95+39+38-25+8+12+1-30-12+3-27+19-8+14-21+9-9-1+24+2-20-7+12-16+25-36-7-20+2-14+25+20 hashblocks_sha512 2 472 2438 -40+35+3+2+20+36+4+22+17+3+2-16-32+52-17+19+4-11-8-16+27-8+37-3-27-12-14+13-33-15-9+33 hashblocks_sha512 2 709 4050 +85+10-17+20-10+8+2+0+28-3-10-36-2-48+17+8-25+45-61-6+51-35+2+0-12-19-22+9+33-82+21+66 hashblocks_sha512 2 1064 6444 +77+2-13-9-4+65+8-15+4+23+40+28-1-10-23+12-61+2+8+29+21-14-22+2-71+11-9+16-61-15-24+31 hashblocks_sha512 2 1597 9656 +69+3+18-15-41-59-6+25-5+20+0+27-43-65+43+61+20+52-7+44-37-30+55+22-36+74+13-30-30-55+5-38 hashblocks_sha512 2 2396 14464 +62+21-7-44-42-4-12-19+42+57+0+43+151+15+22-17+36+66-70-65+15-97-26+6+8-23-32+15-24-40+2+19 hashblocks_sha512 2 3595 22520 +48+141+54-61+92-28+64+20+124-58-20+71-58+115-15-42-22+4-103-2-27-112+56-14-86-12+12+104-29-36-4+29 hashblocks_sha512 2 5393 33744 -5+59-107-28-40-156+3703-46+35-2+7-108+22-70+24+76-152+58+59-7-20-56+30-17+91+10+37-24-134-2+136+9 hashblocks_sha512 2 8090 50608 +6+55-57-230+79-62-9+71-7+10+29-12-10+22+34+54-27-31-4-104+76-7-77-1-33+2+53+63-12-207+10+4 hashblocks_sha512 2 12136 75439 +64-144-8+112-90+51-138+140+4-175+87+32+300+99-137+50-135+312+92-6-23-32+25+78-124-50+7-43-116+167-88-54 hashblocks_sha512 2 18205 113921 +44+151+7-44+149-174+37-259+84-80-155-143-66+70-105+181+9-45+50+18+50-239-63+47-151+159+220+90-23+96-185-9 hashblocks_sha512 2 27308 170879 -64+35-91-58-253+237-66-144+113+107-146+69-41+353+332+131-72+124-99+51+220+98+3307+132-197-178-326+198-394-271-21-81 hashblocks_sha512 2 40963 256688 -136-48+382-60-24-43+293+325+171+108-123+195-92+129+93-206+8+144+178-436-122-467-283-49-21-58-96-92+181+93+317-189 hashblocks_sha512 2 61445 385387 -1001-496-758-598-448+6344+139+225+350+41-264+211-228-143+180+382-12+40-79-300-136-5-86+168+33+101+504+359+137-313-153+480 hashblocks_sha512 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 3 0 42 +484+23-2-2-28-7+5-3+13-29-3+16-27+8-5+43-11+10-31+14-17-6+4+1-3+29-28-5+4+1-6+9 hashblocks_sha512 3 1 41 +48+5-2-7-18-12+3-17+11+2-4-1+4-1-3+1+4-7+7+0-3-6+3+27-32+21-17-5+0+0+0+14 hashblocks_sha512 3 2 41 +56+3-1-3-13-13+2-3+1-23+11-18+6+3+28+1-19+1-7+4-4+7-3+7-5+5+1-5+2+5-9+12 hashblocks_sha512 3 4 41 +49+7-8+10-24-12+10+0-7-17+28-34+24-12-1-3+5+1+33+13-5-18+3-5-2+4+2+12-12-5+5-5 hashblocks_sha512 3 7 40 +43+0+0-14-2-11+15-3-1-19+1+1+8-7+0+2+8+1-6+37-17+8-19+17-9+0+0+26-14+2-1+21 hashblocks_sha512 3 11 42 +45+4-1-31-4+5-6-29+0+5-6+20-20+3-9+0+1+33+9-1-7+4-30+6-1+28-29+0-8+0-4+23 hashblocks_sha512 3 17 40 +44+2-13-9+6-13+1+6-17-8+5-1+8-6+21+25-28+4-3+18-16+1-4+27-20+20-11+5-7+1-1+22 hashblocks_sha512 3 26 41 +40+1-11+4-28+9-3-7-2-7+20-21-2+0-1-9+10-10+11-7-2+3-3+21+3-21+7+14+3-15+2+4 hashblocks_sha512 3 40 40 +22+4+1-17-14+21-25-10-4-8+1+21-15+6+3+11+7-19+2+5-5+2+26-13-1+19-12+0-3+11-2-1 hashblocks_sha512 3 61 41 +47+5-8-12-9+5-9+9-25+3+6+6-7+14-5-6+9-7-1+8+3-4-4+8+14-16-1+19-19+3-5+21 hashblocks_sha512 3 92 40 +44+0-4-9-7+6-7-5-23+3+12+2-3-4+10-7+11+2+6-7-1+6-4+22-15+12-13+6-5+3-4+7 hashblocks_sha512 3 139 834 +688+20+37+6-7-13-2-12+13-12+4+12+2-7+8+31+11+3-11-4-16+1-8-2-22-3+4+9-1-13+0-7 hashblocks_sha512 3 209 830 +84+7+9+103-7-8+37+7+18+3+4-24+19-4+59-4+1-17-2-25-18-10+3-10-15+6-12+20+4+12-15-7 hashblocks_sha512 3 314 1601 +105+15+40-1-35+16+11-33-8-20-18+3-1+23-16-23-15+5+14+11+17+10+12-21-5+0+0-24-18+14-6+6 hashblocks_sha512 3 472 2379 +31+4+1+9+5+34-4-9+32+3+7-18-11-13+31-38-18-17-1+0+22+2+7-6+24+3-10+35+2-11-18+2 hashblocks_sha512 3 709 3933 +72-40+60-8-4-33+31-33+10+12+26-18-9-30+26-32-34-45-33+39+10-36-7-3-12+14+12-4+14+16+36+16 hashblocks_sha512 3 1064 6225 +129+30+3+36-19+11-14-9-23-42+4+4+22-52-7+18-46+42+16-6-14+35-77+6+58-33-48-57+46-60+2+41 hashblocks_sha512 3 1597 9353 +22+19+44+16+56+10-52-1+20-78-40-16-34-3-11+70-19-116-9+7-30-8+63-65-5+86+9-8+11+4-52+32 hashblocks_sha512 3 2396 13972 +34+36-6+19-17+115-6+67-9+49-52+37-33+17-41-4-25-19+0-18-24+64-50+8-6-41-69+63+13+87-69+11 hashblocks_sha512 3 3595 21895 +49+46+43-20+41-26-8+21+141+98-53+41+9+26-88+61-42+65+40-76-8+144-27-103+4688+2590-320-357-261-310-231-346 hashblocks_sha512 3 5393 32501 +272+186+268+139-84-86+48-192-103+130+90+121-81+114-28-118-96+89-76-99+142-51-1-18-56-29-109-14-40+60+121-11 hashblocks_sha512 3 8090 48479 +205+38+102+31+158+142-36-234-29+72-11-107-30+80-51+116-29-54-53-60-150-75-2+101+137+7-2-144+109+50-104-28 hashblocks_sha512 3 12136 73308 +87+0+86-42+74-81-40+170+18-145+8-50+19-122-11-33+49+45-154+186+68-38-50-87+52+124+116-326-132+145+5-210 hashblocks_sha512 3 18205 109448 +358+159+23+32-103-114-41-7-19+101-92-174+17+52+58-157+191+190+6-265-109+187+182-13+397-69+145-46-163+43-233-40 hashblocks_sha512 3 27308 164037 -393+175-98-46-117-427+21-26-463-360-356-77-271-307-212-82-118-75-156-200-231-133+6840+1977+2010+2257+553+922+594+737+1157+982 hashblocks_sha512 3 40963 246429 +138+146-11+67+93-327-31+83+33-39+214-6-138+156+155+109-296+241+244-607+124-141-348-117-103-184-398+207-56+294-449-145 hashblocks_sha512 3 61445 374086 -964-805-881-1293-799-1078-999+6338+472-380-233+261+144+143-11+295+127+422-14+18+257-112+263-122-81+171-69-59+213+65-112+138 hashblocks_sha512 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 4 0 44 +167+80+61+3+1+3+0+2-1+7+5-5-3+1-6-2+1-9+16+2-1-5-2-1-4-6+16+5-3-1-3-2 hashblocks_sha512 4 1 42 +56+40+6+4+1-1-1+2-1-2+3-3+0-1+1-1+2-1-2+2-2+0-1+1+0-3+0+1+0-1+0+1 hashblocks_sha512 4 2 44 +55+10+8+12+10+5+6+6+6+2-1+0-2-3-3+1-3-1-2-3-1-4+0-3-3+1-3-2-4+1-4-3 hashblocks_sha512 4 4 43 +35+11+8+6+1+1+1+1+1+1-1+1-3-2+1-2-2-2+1-1-3+0+0+0-3+0+1-2+0-1-2+1 hashblocks_sha512 4 7 43 +49+10+5+6+1+1+1+1+0-1-1+2+2-5-9+10-2-1-1+0-4+3-6+4-5+3+0+1-2-5+5-3 hashblocks_sha512 4 11 43 +45+7+5+2+1+0+3-2+1-1-3+3-3+2-6+3+2-4+0+0+21-6+2+0-2+0-1-1-5+1-1+0 hashblocks_sha512 4 17 44 +46+9+8+10+4+4+2+0-1-1-3-1+0-7+2-3+1-5-1+1-8-4+5-3+0-7+4-4+1-6+3+0 hashblocks_sha512 4 26 43 +47+9+11+10+5+5+5+2-1+0+0+0+1-3+6-7+5-3+1-1-5+2-2-3-2-1+0-2+0-2+1-4 hashblocks_sha512 4 40 44 +43+8+9+2+3+3+2+2-2+5-8+0+1+4-8-9+11-2-3-4+0-3+0-4-2+2-1-5-2+1-4-3 hashblocks_sha512 4 61 43 +73+5+6+3+1+0-1+1+4-4+0+0-5+2+0+0-4+1-3+1-1-2-1+0-3-7+7-1-5+4-3-1 hashblocks_sha512 4 92 43 +37+14+0+1+0+7-6+4-1+1-4-1+3-4+0-3+1+0-6+4-3+1-1-5+2+0-2+0+1-2+0-2 hashblocks_sha512 4 139 862 +807+140+74+4+12-12+16-14-8-9+19+9-1-16-14+3-7-3-12+17+9-5-3-4+2-15+19+1-3-9+6+1 hashblocks_sha512 4 209 862 +111+43+15-8+19-11+12-6-1-8+7-17-10-16+3-13-2-18+4+12+19+0-5-12+14-2-5+5-19+17-6+18 hashblocks_sha512 4 314 1689 +171+58+29-23-17-8+2-7+12-16-6+21+5-2-8-7+32-22+9+0-2+7-6+2-4-8+32-4+11+14-28+3 hashblocks_sha512 4 472 2509 +154+34-17+5+0+20-5-5+10-15-27+37-10-38+31-7+26-12+28-26+3-16-16+17+25-6+19-8+16-19-5-31 hashblocks_sha512 4 709 4154 +223+51+38-7-23+45-15-22-9-19-24-44+0-11+40-24-7-12+26-23+41+34-5-16+49-8+1+4+8+17+2+22 hashblocks_sha512 4 1064 6639 +151+19+45+6-39+26-18+32-34-34-15+13-11+39-32+10+12-28-6+18+14+17-83-24+9+6-6-13-18-5+12-15 hashblocks_sha512 4 1597 9938 +172+65+11+75+45-25+86-14-12-12-7+55+36-36-31+5+23-68-5+26-17-82-48+0-35-24-41+58-5+44-7-1 hashblocks_sha512 4 2396 14884 +33+68-12+43+3-118+14+20+10-24-65+28+18-79+100+1-5-16+62-58+52-48+16-15+3-11-15-18-58+35-17+4 hashblocks_sha512 4 3595 23148 +69+23-3+81+40-57+28+128-82-80-33+30-64-50+30+2-20+22-80-61+56+8+18-29-15+27+74-41+106-31+11-32 hashblocks_sha512 4 5393 34738 +161+131+57+27+45+28-79-78+20-35+90-54-16+5107-62+72-24-110-165+53-89+9-79-22-66+109+82+109+5-25-11-117 hashblocks_sha512 4 8090 52012 +51+69-44+60+146+93-10-5+0-182-89+15+42-32-199-1+100+77-53-36+65+38-45-24-51-101+68-38-88-1+34+4 hashblocks_sha512 4 12136 77546 -165+160+59-144+87+35-184+148-84+11+166-3-55+7-155+171-33-84-6+6-148+80-14-50+5+140+49-88-165-5+70+192 hashblocks_sha512 4 18205 117200 +503-56-114+56+71-287-230-105+10-40+155+25-10+20+27+48+33+44-73-377+86-155-291-34+9+183+71-4-62+62+130-94 hashblocks_sha512 4 27308 175395 +289-8+91-6+72+48+54-236+20+240+39+203+99-3+197-45+88+37-36+131-172+4716-138+24-185-266-56-99-122-181-368-165 hashblocks_sha512 4 40963 263584 +12-359-334-61+249-108-45-74-20+154-130-86+423+120-204-260+33+185-15+33-196-83+95-83-27-118+304+80+128+114+158+160 hashblocks_sha512 4 61445 396047 -667+167-320+4+4490-297+37-183+128+282-89-174-527+251-402-263+50-375-37-105+265+316+336+320+47+145-115-174+76+195+306-148 hashblocks_sha512 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 5 0 31 +440+65+36+49+10+11+10+9+6+7+5+3+2+2+0-3-5-6-5-5-5-5-7-7-6-6-5+7-6-2-6-6 hashblocks_sha512 5 1 29 +60+14+10+13+11+13+10+7+4+7+4+1-1-1-1-3+24-2-4-4-4-4-4-4-5-3-4-4-4-5-3-4 hashblocks_sha512 5 2 28 +59+14+10+9+11+11+15+3+10+6+8+5+2+4+0-2-3-3-4-3-3-3-2-3-3-3-4-3-3-3-2-4 hashblocks_sha512 5 4 29 +58+13+9+9+9+10+7+10+9+4+5+8+4+0-2-4-3-3-7-3-2-5-5-4-3-5-4-3-4-5-4-3 hashblocks_sha512 5 7 29 +68+13+9+8+10+9+8+9+10+4+5+7+3+4-3-5-3-4-4-5-3-5-3-5-4-4-3-4-4-5-3-4 hashblocks_sha512 5 11 28 +75+12+10+9+11+9+11+10+12+6+4+2+1-3-3-4-2-3-1-4-3-3-4-2-3-3-3-3-3-3-3-3 hashblocks_sha512 5 17 29 +86+12+8+9+10+14+4+7+9+6+4+5+2+2+1-2-1-4-3-4-4-2-4-5-5-3-4-4-3-6-3-4 hashblocks_sha512 5 26 27 +59+15+11+11+12+10+10+11+7+3+3+2+0+0+0+0-3-1-3-1-1-3-2-1-4-2-1-3-1-4-1-2 hashblocks_sha512 5 40 29 +59+13+8+9+9+9+9+9+10+5+4+6+2+2-1-3-4-5-3-5-4-3-4-4-4-4-5-2-5-4-4-4 hashblocks_sha512 5 61 27 +50+13+11+10+12+11+11+9+6+6+3+1-2+0-1-3-2-2-3-2-2-1-2-3-2-1-4-1-2-1-2-3 hashblocks_sha512 5 92 29 +75+11+10+7+9+9+10+8+9+11+5+6+12-8-1-3-1-4-4-3-4-4-5-3-4-4-5-4-2-5-5-4 hashblocks_sha512 5 139 877 +1024+132+106+65+44+11+11-2+0+0+0+1+0-1+0+0+0+0+1-1+0+0+0+0+0+0+49+0-1+0-1+0 hashblocks_sha512 5 209 858 +197+99+92+82+57+19+5-2-2-2-5-1-7+0+40-4+0-8+0-6+0-6+0-5+44-3-4-4-2-6+0+39 hashblocks_sha512 5 314 1686 +313+208+127+47+11+15+8+6+5+6+6+42+2-8-8-6-7-8+0-1+51-7-8-6-5-7-6-6+48-7-8-6 hashblocks_sha512 5 472 2669 +277+150+128+74+102+1-1+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 709 3979 +740+408+332+321+258+152+53+12+36-7-27-4+6-21-36-32-25-12-31-17+29-3-46+3-26-11-13+38-2-9+6-33 hashblocks_sha512 5 1064 6339 +896+33+78+14-20-15+32-32+1-4+23+8-11-32-17+13-5-2-17-29-35-1+5+27-8+22+7-10+7+94-7-20 hashblocks_sha512 5 1597 9526 +963+338+343+383+345+274-7-17-7+8-3+13-36-5+24-15+16-14-28-33-33+46+8-26+4-62-10-9+19-1-57+6 hashblocks_sha512 5 2396 16403 +338+205+265+153+137+138+138+138+138+138+173-144-173-174-185-185-184-185+4111+13+24+23+10+14+6+7+22-289-336-334-346-340 hashblocks_sha512 5 3595 24341 +1567+240-1+2+31-17-2-20-7+30+3-7+11-12-8+11-3+2-23-34+15+3-10+13+2-5+9+1-1+12-21-4 hashblocks_sha512 5 5393 33324 +3162+2129+812+269+13-16-78-46+123-61+81-27-32-79+66-30+48-116-110+15-5-35+184-10-35+1+99-40-32-29+4+69 hashblocks_sha512 5 8090 56691 +690+29+5+14+8-11+8-11+8-11+8-11+8-11-8+7-9-11+8-11+8-11+8-11-9-11+8-11-9+161+25+182 hashblocks_sha512 5 12136 74381 +4241+24-40-174-65+14-292-200+61+30+101-40-14+96+115+120+13-137-115-107+95+138-44+69+14+38-103+164+73-100-33-103 hashblocks_sha512 5 18205 112305 +2297-25+13-57+146-71-107-122+219+129-83-2+25-178-32+18+48+0+34-87+23+54+278-72-64-107+113-112+298+1+32+135 hashblocks_sha512 5 27308 190921 +630-113-163-163-152-161-178-185-157-185-160-160+2102+47+31+33+28+55+27+30+53+27+53+33+28+32+27+30+53+47+53+54 hashblocks_sha512 5 40963 290353 +7548+7386+32+34-13+8+11-12+13-8+10+14-11-11+12-12+8+12-11+8+10-12-10+14-11+13-9-11-4-12-863-7058 hashblocks_sha512 5 61445 380982 +34714+34851+5450-29-190+29-6-31-12-175-361+78-6-38-85+274+183+63-102+91+25+24-181+70-109-168-205+122+79-263-57+346 hash_sha512 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 selected 0 727 +1221+120-11-25+8+5-3+0+29+1+9+7-1-1-8-7+29-2-8-7+20+8+1+5+5-1-8-9-4-3-11-2 hash_sha512 selected 1 720 +124+67+6+82-3-2-3-8+0+1-7+7+9+5-11+14+3-7+5+4+10-8-3+1+0-1+5-4-8-16-7-11 hash_sha512 selected 2 721 +77+1+5+4+12-7+4+3+29-2+8-2+5-8-1-1-11-2-5+9-1+5-9+3-17+20-4-9-9-5-5+7 hash_sha512 selected 4 721 +98+38+14-1+1+1+0-13+3-3+4-8-6-3-7+0-5+3-3+1-8+8+10+3-5+9-2-4+7-2-2-1 hash_sha512 selected 7 724 +136+86+0-16-6+16+4-8+9+2-10+19-11-10-1+0-12-10-7+1-1-1+1+4-2-4+9+21-1+9+13-1 hash_sha512 selected 11 726 +53+49+31+20+0+2-9+6+7-10+1-5-10+0-3-3+0+9-6+0+2-1+6+10-6-5-8-16-1-10-3+7 hash_sha512 selected 17 727 +124+46+22+29-5+2-9-9-1+5+5+7-2-3+11+11-4+1-12-8-1+13-5-3+0+3-3+0-10-4+7-4 hash_sha512 selected 26 738 +70+74+17-3+21-8-3+8+37+35+13+5+2+15+3+6-18-4+3-9-3-4-3+1-5-2-8-5-12-11+2-4 hash_sha512 selected 40 740 +156+56+57+33+28+73+35-8+1+5-1-5+0-15-2+17-2-11+3-3-4-1+1+5-9+2+1+3-4-9-9-18 hash_sha512 selected 61 808 +160+41+17+9+11+19-2+0+1-2+13-7-4+6+8-13-10-5-2-7+10+0-2-4-16+12-4+3-22-10-4-7 hash_sha512 selected 92 856 +117+97+21+6-9-7+1-12+10+5-4+8+1-2+3+2-17+22+5+3-13-17+10-3-19-20-12+4-9-4+20-4 hash_sha512 selected 139 1381 +214+93+13+5+5-7+8-11+4+22-3+5-19+1-25-3+4+30-12+25-11-5-3+0+14-10-4+14-13-4-7+0 hash_sha512 selected 209 1507 +66+13+21-26-16-12-14+15-6-1+3-15+3-11+15+12-3-6+14+8+7+7-14+8+4-25+4-3+9-28-9-15 hash_sha512 selected 314 2109 +43+4+57+0+9-19+7+11+8-20+5-9-25+10+14-19-29+8+23+23+16-30-26-31-7-20-10-7-21+5+11+11 hash_sha512 selected 472 2791 +85+77+72+1-5+1+20+1-8-18-12+22-6+12-1+96+3-1-10-20+8+0-12-5+27-15-24+14-18-9+33-23 hash_sha512 selected 709 4058 +132+30+92+3+20-16+36+3+39+24+6+17-39-19-5-10+18-11-12-32-36+7-8-15-35+44-7-9-9-8+3+10 hash_sha512 selected 1064 5897 +174+104+35-14-75-35+30+4+7-18+16-24+37-23+26-36+5+0+32-43+17-4+19-39+20-10+6-1-21-19+56-73 hash_sha512 selected 1597 8514 +130+113+54+19+36+26+42+6+22+11+22-20+0-27-10-15+54+5+7-15-32-37-16-15-14-15-28+9+2-12-31+2 hash_sha512 selected 2396 12415 +147+89+147+143-40-18+5-23+6+0-13-38-12+48-31-15+23+21-90+11-19-16+13-10+16+62+51-5-5-26-18+45 hash_sha512 selected 3595 18739 +182+96-27+102-32-18+33+92-53-6+8-57+26+7-3+39-57-40+49+42+12-6-36-45+4-10+60-64+36-13-36-18 hash_sha512 selected 5393 27762 +101+140-27+128+10+33+57+36-99+33-136-57+5+14-52+38-46-16-15-30+30-74+136-76-7-51+37-112+21+37-130+2 hash_sha512 selected 8090 41303 +187+83+55-8-30-73-6-78+33-1-33+73-65+51+7+69+29-21-26+78-37-51+98+25-135-74-52-87-44+55+55+13 hash_sha512 selected 12136 61372 +230-24+155+26+51-95-41+29-86-107-209+91-62+23+16+145-103+88-8+57+44-113+66+9+28-52-154+29-112-65+4+50 hash_sha512 selected 18205 92060 +210+46+156+99-93+32+241-42+32-19-79-8+5+104-23+97-2-107+38-74-75+85-73-80-117+82-15-17+179-153-319+39 hash_sha512 selected 27308 137633 -42+65-9+194+181-20-109+104-77-17+110-75+427-153-65+72+192+5+0-54+147-187-27+4-44+2-35+53-54-70+161+42 hash_sha512 selected 40963 206359 +126+80-19-52+37+94-41+193+56-54-295-119+3-69+0-153+124-83+118-63-6+67-49+61-107-161+54+105-188+44+54-29 hash_sha512 selected 61445 309236 +187+78-145-235-9-208-123-24+4120-67+202+286-264+27-80+139+298+99-191-144+141+216-3+55-142+60+104+18-134-87-198+79 hash_sha512 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 0 0 727 +47+10+15-7-2-7+5-5+17+25-5+1-5-1-11+12+24+3+10+5+5-13+4-33+7-19-3-15-8-10-1+0 hash_sha512 0 1 719 +68+39-4-10+8+7+5+7-7-1+1-1-3+1-18-5-4-5+4-1+18+0-10+6+6-8-13+4-7-3+9+0 hash_sha512 0 2 724 +50+12+9-7-8-2-5-1-5-2-6-9+9+3-4+14-8-1+6-12+5+6-1+0+1+1-1+11-16+21-8+3 hash_sha512 0 4 720 +133+38+10-7+7+7+2+7-7-4+10+13-5-15-2-12-1-4-5-8-5+6-4+13+0+8+13-5+1-6-4-1 hash_sha512 0 7 722 +102+84+20-5+11-9-3+3+4-14+6-5-5+4+3+1+8-9-3+10+8+2+5-3+5-3-5-8-5-9-12-5 hash_sha512 0 11 725 +176+41+15-1-5-10-2-4-1+12+5+10-11-11-6+6-9+6-8+1+0-8-2+11+0-5+2-10+9+3+6+4 hash_sha512 0 17 730 +125+15+33+5-2+4+0-4-5-2-1+22+4-1+5-7+1-1-4-5+0-9-5-4+6-7+12+0+3-6+6-8 hash_sha512 0 26 739 +99+61+17+2+11+14-2-13+6-15-5-12-16+6-11-6+4-18-4-8-16-3+10+2-5+11-3-11-1+4+42+6 hash_sha512 0 40 738 +192+64+57+41+28+66-5-6+9-13+0-9-17-13-13-8-8+7+6-1-3+23-12+1+3-16+3-16-15+7+12+0 hash_sha512 0 61 807 +189+88+10+7-9-11-13-14+7-7-11+15-3-2+0-9-13+7+3-3+13-23-19+17+16+5+0+14+7+10-52-34 hash_sha512 0 92 854 +226+119+13+14-20+27+13-8+7+0+1-4+1+1-8-8-10-18+3-24+1+4+4+1+4+1-1-16-7-2-3-3 hash_sha512 0 139 1390 +93+43+40+30-2-6+13-21+13+6-1-38+1-15-12-4-5+5+38+0+11+18+12-17-13-12-6-13+25-9-4-18 hash_sha512 0 209 1499 +127+68+47+21+14+11+18+6-7+0+9-11-10-3-4-10-8-17-3+3+0-9+14-9-20+17-12-7-8+7-4+19 hash_sha512 0 314 2112 +58+33+21-4-3+18-1+1-10+39+15+7+21-6+9+8+1+2+5-1-29-19-8+0-9+10-17-17-24-20-9-8 hash_sha512 0 472 2792 +166+95+47-5-5+17-11-4-5-24+6+36-14-11+21-17+16+21+9-5-5+41+1-21-12+0-14+33-10-4-8+5 hash_sha512 0 709 4057 +93+86+33+1+44+16-32-9-32+0-12+1-15-13-22-19+13-19-11+15+9+3-33+24-10+20+1+2-6+14-19+15 hash_sha512 0 1064 5904 +199+148+39+105+22-12-17-33-18-30-24+4+10-55-11-1-39+30-55+24-5+9+8+15+17+2+6-40+6+7-9-11 hash_sha512 0 1597 8538 +177+37+75+63+16-30+14-33-10+14+8-59+6-51-28-28-14-33-5-6-7-2-29+26+34-19-18+12+10-2+37+30 hash_sha512 0 2396 12445 +191+120+79+48-24-12+23+35+14+16+23-29+14-48-20-5+0-3-8+30-18-34-28-7-22-9-47+29+6+34-34-41 hash_sha512 0 3595 18728 +120+96+37-42-23+41-52+78+11-19-50-76-51-1+38+23+41+0-7+12+18+9-75-11-19-4-41-5-89+27+40-15 hash_sha512 0 5393 27753 +62+64-4-6+137+7+27-29-83-13-69+10+6+71-13-18+11-89-21+28+31+1-30-5-14+11-71+42-42+77+42-61 hash_sha512 0 8090 41309 +221-67+14+2+71-24-19-6+46+50-76-12-7-88+102-35+20+78-47+28+28+17-127-44+31+53-35+21-87-25-51+53 hash_sha512 0 12136 61378 +68+62+59+97+3717+118-37-48-18+90-152-139-70-29+66-87-73-94+102+160-11-40-60-12+62-45-18+13+46+24-49-14 hash_sha512 0 18205 92038 +25-39-22+19+125-44+8-44+63-15+90+54+101-41-24-12-3+107-2-45+102-107-20+19-74+10+2-5+48-7+34-71 hash_sha512 0 27308 137695 +245+140+156-89-133+74-155+118+29-164+128+1-49-129-11-12-73+75-9-245+90-120-106+109-70+5+40-252+56+3+100+28 hash_sha512 0 40963 206277 -33-159-5+37+100-72-30+64-117-75-78+51-249-46-20+3799+87-75-11-39-136-40+179+55+106+147-29+286-22+185+54+21 hash_sha512 0 61445 309337 -239+102-256+80-45-90-241-129-97-56+53-13+62+113+128-204-44-69-92-172+122-246-38+125+59+3+76+77+48+2569+230+70 hash_sha512 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 1 0 725 +275+113+39+39+40-6-10+4+20-9+6-6-15+2-16-7+17-3+0-9-3+56+11-8+14-4-9+4+2-9-8-6 hash_sha512 1 1 725 +175+103+26+11-7-16+2+46-18+8-6-1+1-11-11-12+4-6+0+0-4+8-7+6-1-3+9+0+29-11-7+11 hash_sha512 1 2 723 +120+52+22+3+0-5+4-4-10+3-3+5+6-6+10-3-2-5+4+4-7+4-15-7+3+5-5+1-13-6+3-13 hash_sha512 1 4 721 +123+15+14-1+3+9+5-15-3+11+4-3+12-3+1-13+3+6-10-4+1-7-12-5+0+10-10+1-6+2-3-4 hash_sha512 1 7 721 +70+15+19+0+19+2+6+25+6-3-1-2-11+0+11-11-13-3-1-2-2-11+0+3+0+2-5-4+9-2-1-2 hash_sha512 1 11 721 +51+22-2+4-1-5-6+17-8+7-6-2-3-4+11+6-14-8+43-11+1+20+2-10+2+2-10-2-1-5+7+5 hash_sha512 1 17 723 +140+61+5-18+25-16-7+6-6+8+8-9-13+0+2+4-2+0+1-5-8+6+7-8-1-5-3-22+0+3+1+10 hash_sha512 1 26 719 +5+12-7-12+1+3+2+4-7+6-5+3-1+9+6+6+6-4-13-3-9+5-5-1+2-1-14+6-8+0-3+0 hash_sha512 1 40 722 +159+55+1-10+0+7+1+5-5+17+5+5+1-1-7-12-8-9-3+3-7+1+2-7-9+1+3+2-15+14-3-3 hash_sha512 1 61 721 +106+46+10-1-5-2-7+3-13+2-2-6+20-4-8-2+10+11-15-3+0-3+17-6-6+12+1+7+9-9+5+0 hash_sha512 1 92 719 +127+90+6+0-1-6-10-4+8+1-2+3+1-15+4-1+2+1-20-6+1-4-10+9-7+5+8+5+28-9-15-8 hash_sha512 1 139 1422 +47+78-16+16+29+4+5-18+3+8+3-5-3+10+1-23+5+17-14-9+3-8+19-9-6+3-2-23+18-9-7-12 hash_sha512 1 209 1421 +153+67-1-12+5+2+7-3-8+5-3-15-5-16-5+4-21+14-14+12+9+5+2-12+2+9-9-7-10+1+11+6 hash_sha512 1 314 2061 +129-28+8+10-20-5+12-15-5+2+3-17-2-6-1-1-16-4+3+5-12-4+0-8+10+14+6+10-15+6+9+6 hash_sha512 1 472 2702 +106+58+0-6-4-9+9-10+4-19+6+12+5+5+19+1+1-12-9-24-24-7+2+16-15+8-13+8+0+18+15-13 hash_sha512 1 709 3985 +204+76-6-8-32+9+9-17+34+2-2-3-10+10+30-8+28-19-28+4-13-23-18-30+15-1+11+15+6+25-16-7 hash_sha512 1 1064 5919 +71+60+26+0-15-19+40-27+22+4+15-1-23-12+23+10-4-20-28+54+16-22+6-3+2-16-32-26+0+47-4+9 hash_sha512 1 1597 8485 +88+9+10+5+32-8+36-27+16+29-9+6-26+13-23-12+27-11+64-5-4-23+27-37-35-29+3-8-1+54-51+3 hash_sha512 1 2396 12333 +151+77+0+39-65-14+60-23+31-7-15-45+53-37+15+50+18-14+32+55-3-8+18-8-14-17-14-30-15+1+17-37 hash_sha512 1 3595 18760 +87-20-21-26+78+17-72+66+28+20+18+42-26+84+42-2-9+22-23+56+21-57-4-47-69-16-55-91+0+4+23-74 hash_sha512 1 5393 27774 +55+42+25+45-96+4-59+60-58-13-33-4+12+9-10+67-24+22-16+60-30+12+13-73+43-25-11+140-45-28-37+26 hash_sha512 1 8090 41241 +82-33-48-36+4+100-38-49+31+84+128+10-42+59+138-65-23-2+46-47+17-14-106+15+1+54+35-69-54+58-130+32 hash_sha512 1 12136 61188 +162-3+63-40+103-72+30-72+145-94-60-87+27+118+2-52-19-31+71+119-134-96+19-32+51-42+21+181-38+85-54+44 hash_sha512 1 18205 92001 -74-15-19+19-39-48+56-30-1+62+83-45+45-154+69+44+156-57+50-46+92-9+31-25-9-31-52-2-4+153-52+46 hash_sha512 1 27308 137597 +171+57+28-51+102+88+158+33-18+4250+254+130+60-114-72+17+34-57-20+24-13+37-42-31-43-63-8-191-98-9-41-47 hash_sha512 1 40963 206295 +20+133+71+23+78-6+65-2+161-52-193-201+169-267-88-188+10+12+19-191+145+10-176-65+152-11+110-38-100-67+38+45 hash_sha512 1 61445 309390 -332-297-161+198+148+25+334+3554-349+13-87+18+52-264+205-5+57+64+68+148-126+140-301+59+59+75-148-302-130-80+68-59 hash_sha512 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 2 0 733 +273+109+10+2+5-2+4-2+26+5-3-20-21-6-20+31+22+9-4+3+2+3-11-7+12-6+5-9-13-8-9-6 hash_sha512 2 1 730 +121+62-11-11-2+4+4+27-2+0+8+2+1-18-6-1+5+2-6+6-3+3+9-7-13-3-1-7+9+14-3-10 hash_sha512 2 2 724 +114+3-3-10-11-3-4+11+15+14+0-4-8+8+3+5+3-10+8+6+82-27+7-7+0-4+6+4-4-4-1-7 hash_sha512 2 4 724 +101+36+43+1-2+4+12-9+2-7+5+11-23+2+9-2-10+7-9-10-15+6-3-4-1-8-19+9-8+6+7+1 hash_sha512 2 7 727 +89+68+44+43+7+7-9+1-3+9+6+3-5-3+1-11-8+1+10+0-4-2-2-2-15+1-5-1-4+0-15+3 hash_sha512 2 11 729 +198+32+19-15+3+4-7+1+8-4-9+3-11+10+1+5-3+2-12+7-7-15+4-6+9+8-5-5-5-4+2-11 hash_sha512 2 17 729 +144+61+30+8-10+25+0-9+7+0-4+16+4-3+19-6+11+1-15-11-6-18+2-8-4+13-10-10+11+2-8-2 hash_sha512 2 26 740 +199+69+35+0+5+10+7+11+6+6+6-32-11-5-20-14-1-15-2+2-7-17-6-1-11+2+0+10-7-11+12+7 hash_sha512 2 40 721 +184+55+10+0-2+14-19-3-5+4-5+9-7-9+5+2-15+6-4-4-2+1-6+4-5-6+4+3-3+13-10+13 hash_sha512 2 61 727 +211+126+54+12+17+14-5+18-1-13-5+3+10-3-9-2+11-4-2+4+9+0-21-13-11-6-1+12-16-3-4-8 hash_sha512 2 92 727 +210+117+50+42+3-18-11-9-9-12-6-2-7+7+2+6-19-3+9+1-6-15+2-2+15-14+6-3+6-13+6+11 hash_sha512 2 139 1434 +106+61+20+6-3-8-1+13-18+6-9-3+1-13-10-20+12-3+4-10+15+3-3-8+1-14+3+16-26+2+16-3 hash_sha512 2 209 1431 +198+102+49+5+25+2-27+8+13+6-22-15-2-12-1+4-1+1+2-5-9-1+0-25-7-15-21+9+12-17-7+8 hash_sha512 2 314 2070 +212+44+13+9+10+16+25+21-11-11+10+2+1-13-2-28-7+12+16-13+1+2+8-6-6-18-6-11-28-33-16+1 hash_sha512 2 472 2715 +247+200+16+13+23+19-40-5-3+1+42+5-26-3-6-3+8-19+4-2+7-11+9+9+15-20-26-16-21-22+22-17 hash_sha512 2 709 3997 +139+66-13+8-14-26+7-17-7+3+6+17+75+0-22-8+16-29-9+32+2-31+13+5+3+0-8+7-7+15-5-18 hash_sha512 2 1064 5923 +203+121-1-5-10+0-3-5-27+28+42+1-3-16+22+52-32-18+5-14-22+7+9-8+10-1+9+22-12-26+27-33 hash_sha512 2 1597 8496 +232+118-3+7-17+47+31+14+33-41+7+6+31-15+63+18-30+7+2-28+7+45-17-14-51-8-21-34-27-7+13-32 hash_sha512 2 2396 12357 +236+142+29+31+66+23+17-59+9+58+36-47-24+18-32-1+6-16+4-25+6-47-52+0-8-1+27-58-2-26-60-5 hash_sha512 2 3595 18783 +153+161+19-3-60-41+34+17+8+23+9-58+20+72+106+24+8-79+0-82+14-50-7+15-43-17-29-48-41-50+31+21 hash_sha512 2 5393 27774 +147+78+5+100-54-15-21+8-90+37-39-36-13-148+15-75+79+4+20+6+71+25-9+13-66+68-47+16+15+26-41-105 hash_sha512 2 8090 41267 +144+5+16+15+37-64-22+79-86-72-5-20-45-26-30-117+27+45-21+53+28-5-12-64+51+50+36+80-26-29+66-103 hash_sha512 2 12136 61185 +267+242+104-39+7-81+20+26-106-31-12-30+49-49-36-98+90+11+118+3+21+50-104+35-9-72+58-6-88-147+55-13 hash_sha512 2 18205 92025 +116+56+21+177+139+31+79-141-16+84-57-30-182-116+21-61+86+35-18+16-29-128-35+29-60-9-7-6-19-57+14+59 hash_sha512 2 27308 137627 +40-12-75-65-50+22-22+154+204+89+55-5+83+56+118-57-7-48-44+154-48-158+60-69+28+107+35-249+75-139-85-131 hash_sha512 2 40963 206395 +185-192-229+76-92+19-32-97-15-201+21-92-132+5631-156-60+142+2+81-81+27-85-18+55+64+66-21+105+120+23+31+257 hash_sha512 2 61445 309273 +35-126+100+70+132-121-65+183+169+166+59+63+11-146-180-312-247+9+180+133-90-3-61-80+160+32-90+66+3471-407-387-55 hash_sha512 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 3 0 725 +463+63+22-4+3-8+7+13+22-6+4-7+7-10-6-4+12+90-5+0-9-1+0+29+7+0-4-4-8-15+4-6 hash_sha512 3 1 725 +209+62+9+3+5+3+3+8-12-9-9-2+0-4+10-3-6+2+82-9-11-3+0-7+8-2+1-13-4-13+9+4 hash_sha512 3 2 726 +136+33+35+67+4-4-15+7-1+11+68-3+0-2-1-10+9-14-4-2-8+0-5+10+10-7-5-7+9-8-8-1 hash_sha512 3 4 724 +124+43-5+7+2-5+3-10+6-3+2+1+17-1-3+3-7-5-11-4+2-1+15+20+6+0-11+5-4-11+2-4 hash_sha512 3 7 727 +52+17-10+3-3+15+15-10+6-3+11+18+13+10-7+4+9-11-5+12-6-23-7-4-8-3-10-4+0-1-10+7 hash_sha512 3 11 752 +94+44+20+11+14+2-1-2+12-10-5+1-5-2+0+1-10+0+5-4-9+14-16-6-1+8-3-1+8-9+0-14 hash_sha512 3 17 751 +96+46+10+6+0-2+6+6+14+18+8-6-5-5+1-7-2+12-7-15-5-4+0-9-16-11-4-6-1+18+8-1 hash_sha512 3 26 749 +122-6+11-4+10+0+5+18+7-3-5-2-1+4+12+11+19-4+0-8+16-9-6-6-2-14-2-4-6+3-4+10 hash_sha512 3 40 751 +95+9-1+6-2+4+0-2-3-3+6+2+3+9+5-6+32-6-10+5+5+0-10-4-13-11+18-2-3+2-10-6 hash_sha512 3 61 754 +70+11+10-1-2-1+17-2+35-7+1-3-17-2-10+7+6+1-3-7+1-7-13-8+12-12+2+8+25-10-11+2 hash_sha512 3 92 751 +53+15+8-3+5+11-15+16+10-3+1-2-5-8-4-7+0+8-7+3-1-7+1-14+2+0+10+8-15-6+10-6 hash_sha512 3 139 1455 +26+6+17+2+5+1-2+19-3-3-7+6-9-11+8+8-11+16+0-10-3-1+5+7-7-9-15+1-7+5+7-5 hash_sha512 3 209 1459 +52+9+5+2-20-3+12+59-15+9+3-15-19-5-17+4+7+23-14+9-25+2-15-10-2+8+19-22+9-3+11-10 hash_sha512 3 314 2102 +79+23+7+3-1-6+41+14+0-2-12-6+0+23-3+7-7-25-19+6-11+14+5+3-12-13-24-2-19-3+15+7 hash_sha512 3 472 2746 +48+25-10+25-4-8+23-8-32+11-14-16+13+5-14-5+10-10+4+5+69+1-5-3+6-2+25-10-14+3-31+6 hash_sha512 3 709 4026 +84-3+22-19+42+11+12+19-13-12+16-12-3+4-14+4+5-36+5+21+32-8-6-45-2-19-36+23+17-5-16-4 hash_sha512 3 1064 5956 +51+29+44+41-23-4-15-30+27+19+33+14-9-4-9-1-5-15-34-10-11-24-28+27-6+19-4+21-23-9+4+25 hash_sha512 3 1597 8522 +73+12-22+34+35+6+14-11-22-4-20+11-10+21-14+36+5-23-4-39+8-20-6-18+25+28+23-34+35-2-25-12 hash_sha512 3 2396 12369 +158+3+12+57-32+36+32+7-17+4-26-26+4+17+18+9+13-6-15+15-36+4+8-47-14-1+6+9-51-12-43-17 hash_sha512 3 3595 18797 +37+132+14+26-9-9-44-2+51+41-5-43+29+10-6+16+20-100-34-54-16-7+70-32-9+63-46+49-27-24+51-39 hash_sha512 3 5393 27795 -63+53+146-96+11-9-77-8+32+10+37-12-78-6+57-45+53+44-54-30+38-23+19-16-32-20+22+14+50-6-40+27 hash_sha512 3 8090 41297 +5+45+68-1-10+16+29+0-30+12+12+66+100+76+20-51-62-170+51-6-41-8-50-74-20-46-7+6-138+81-26+71 hash_sha512 3 12136 61214 -18+16-32-50-98+53+43-21-4-27-42-15-91-35-2+19+63+7+37-31+31+123+98-11+16+15-10-222+51+6+7+14 hash_sha512 3 18205 92058 -99+42-44+29-154+36-65-24-6-18-170-7+154-21+19-8+33-52+88+20-9-7-84+16+28+27-1-161+98+170-61+63 hash_sha512 3 27308 137618 -91+192-274-3+207+41+3440+39+10+52-88+43+184-122+35-67-129-76-120-62+62+50+73-14-20-20+55-97-18+44-40-17 hash_sha512 3 40963 206304 +46+22-92-33+305+27-42-207+120+9+23+115+194+204+110-182+88-77-107+65-99+19+60+46-149-218-52-51-158-328+84+29 hash_sha512 3 61445 309157 -48-39-67+215-3-433+3933+185+127+118+58-2+14-171+58-49-240-151+15-6-46-34-52-31+6-26+150+53-57+56+26+150 decode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 selected 653 70 +1262+50-5-1+2+2+0+4-17+14-4-1-5+9+3-2-1-5+0+3-1-1-4+1+0-1-3-4+5+1-3+7 decode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 0 653 71 +509+45-3-6+5+2+1+0+3-28+13+4-1+2-5+4-6+1-2+1-4-5+6-1+2-6-1-1-1-9+12-6 decode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 1 653 70 +74+19-1+12+1+4+0+0+1-10+0+0+31-16-5+12+4-5-1-7-2+3-4-4-1+2-7-1-7+2+2-9 decode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 2 653 695 +464+22+65+21+17+54+23+0+1-1-1-1-1+1+0+1-4-2-1-1-1-1-1+1-4+0-1-1-1-1+1+1 decode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 3 653 98 +628+55-2+11+1+5-7+7-9-1+15-7-1+5-3+5-11+5-18+4-5-1-8-7-5+6-14-3-2+1+4-1 decode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 4 653 607 +255+13+3-13-3-1-1-2+0+0+6+3-7-5+5+0-2+3+7+0-1-2+0-2+2+5+0-4-1+3+0-24 decode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 5 653 119 +804+33+37-4+5+4-2-2+2-1-3+2+0-4-1-4+5-1-3-3+1-7+3+3-6+3+8+0+0-5+0-2 decode_653x1541 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 selected 1306 1201 +2643+802+806+793+876+784+797+816+809+885+719+854+798+753-465-475-480-467-472-475-460-484-464-466-467-462-483-469-471-463-475-462 decode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 0 1306 733 +40+27+23-4-5+1+1-3-15+2+0-4-6+4-19-6+1+7-9+5-9+6-5+2-5-7+18+7+0+6+11-8 decode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 1 1306 819 +1622+161+92+100+65+66+19+8+6+16-14+18-12+2+14-11+0-22-12-14-15+12-8-19-10-2-8+1-24+2-3-15 decode_653x1541 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 2 1306 4949 +1692+111+37+57+19-12-20+12+19-22+19+4+20+6+6+18-17-1-17-18+7+1-9-23+7-1-24+2-19-27-1-29 decode_653x1541 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 3 1306 6235 +5425+3796+3754+3706+3678+3708+221+3+7-11+7-24-23-49-51-28-10-16-52-56-50-50-57-56-117+75+102-60+115+217-103-94 decode_653x1541 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 4 1306 4959 +922+109+40+3+19+23-8+27-8-23+3+9-21-7+3-4-20+20-6-46-3-5-9-21+11+20+17-14-24+0+7-32 decode_653x1541 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 5 1306 6614 +3444+1646+1693+66+74+1-16+59-55-16-57+17+70+1-59-79-78+40+24-60+16-45-101-82+12-2+42-15-50-2+19+23 decode_653x4621 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 selected 1306 824 +2271+151+69+17+38+2+6-2-17-1-6+2-5+1-13+1+9-12+2+6-5-7+4-6-3-18+0+16+20-8+4-8 decode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 0 1306 827 +59+16+11+20-4-6+2+4+8+10-14+9-3+10-2-3-5+5+5-10+1-20-3-3-1-8-1-19+3+1-18-19 decode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 1 1306 958 +1024+115+64+14+15+14+8+0-13-1-5+2-6+10-23+4-30+8-12-12+0-10-2-11+12+5-11-17-7-1+9+0 decode_653x4621 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 2 1306 6080 +595+34+79+69+43-53-11-61-43-58-76+5-80-12+22+21+37+36-41-4-28-69+42-42-1+2+55+22-38+35+54-77 decode_653x4621 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 3 1306 9099 +2050+237+118+57-1+34+6+33-65-93+44-11-76+14+57-12-27-34-82+1-41-21+43+21-30+5-26+0+14-16-33+20 decode_653x4621 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 4 1306 6015 +999+243+48-2-24-26-32-51+83-25+25-67+73-79+47+34+5+93-86-62+55-28-73+63-1-52-72-18+72+102-39-26 decode_653x4621 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 5 1306 8999 +2062+338+123+139+48-22-30+12-38+48+6-14-16+48-48+5+38-52+9+14-48-3+14-49-24-22-21-8+28-59+39-45 decode_653xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 selected 1306 61 +546+63+22+68+24+7-4-2+1-2-1+0-3+1-2-1-1+1+3-3-1+0-2+0-2+0-2+0-2+0-2+0 decode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 0 1306 120 +409+60-4-19-10-10-14-13-5-7+0-7-6-8-6-2+2+2+5+3+5+4+3+6+2+5+3+5+3+5+3+5 decode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 1 1306 64 +74+53+53+25+27+1+2-1+2+0+2+0+3-1+1+0+0-3+0-1-1-1-1-1+0-1-3-1-1-1-2-4 decode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 2 1306 368 +427+34+4+2+1+0-2+0-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1-1+1-1 decode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 3 1306 117 +388+29+0+0+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 selected 2612 132 +470+49+27+33+23+25+23-3+5-1-1+6-2-5-1+0-2-1+0+4-1+0-2-1+0-2-1+0-2-1+0-2 decode_653xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 0 2612 658 +485+91+55+53+21+4-2+1-1+0-1-4-3-1+0-2+3-5-3+0-1+0-3+0+0-1-5+1-2+0-4+0 decode_653xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 1 2612 136 +169+31-3-5+26+24-5-5-5-5-5-5+1+1-5-4-5+1+1+1+1+1+1+1+1+1+1+1+1+1+1+2 decode_653xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 2 2612 462 +220+50-14-18-12-28-3-15-17-15-17-15-17-15-17-15+5+8+7+6+8+7+7+7+7+7+6+8+7+7+7+7 decode_653xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 3 2612 174 +202+60+7+8+2+1+0+0+1+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 decode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 selected 761 52 +553+86+12+2-2+1-3+2+0+1-5+8+1+1-2-2+2+2-1-4+0+4-2-2+1-1-7+6-1-2+1-2 decode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 0 761 55 +478+63+34+9+4+0-2-5+2-7+6-11-2+9-3+5-3-6-4+4-2+2-5+2-8+3-11+10-6+2-7-3 decode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 1 761 52 +81+32+25+0-1+0+1-1+1+1+1+6-3-4-2+0-2-1+2-4-6+3-1+6+0-2-5+1+2-2+3+3 decode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 2 761 650 +499+54+32+29+29+28+28+28+27+4-6-6-6-3-9-6-4-5-9-3-6-5-4-6-7-6-6-6+31-8-4-9 decode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 3 761 135 +801+67+33-3-1-4-2+2-1-6-2-3+2+0-4+3+0+1-3+4+5-3-2+0+0+0+2-1+1-5+1+0 decode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 4 761 645 +554+111+47+36+40+32+39+10-1-3-2-1-3+2-2-3-1-2-1-3+0-1-2-1-2-4-1-2+35+1+0-3 decode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 5 761 163 +509+114+40+1+0-7+4+3+2+3+7-3+0+7-3+5-3+0-5-1-7-2-5-6-4-3-4-1+0-6+6+2 decode_761x1531 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 selected 1522 779 +817+104+47+27+23-9-12+2-11+3-15-9-13+28-1-11-18+14+3+14+20-12-9-7+11+0-7+9+2-5-2-16 decode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 0 1522 777 +44+16+25-14-6-14+6-5+4+14+6-16+16-16+0-8+3+15-5-1+9-17-4+4-7+2+27-1-10-9+16-14 decode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 1 1522 891 +1097+207+128+60+32+42+51+16+46+12+22+30+24-6+12+7-17-2-28-35-18-35-21-44-50-34-54-44-57+62-64-60 decode_761x1531 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 2 1522 5780 +825+147+69+75+7+45+16+2-14-12-14+13+8+5-7-7+55-18-33+7-20-11+23-1-19+25+4-46-15-16+9-12 decode_761x1531 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 3 1522 9436 +1313+35-9+57-12+64-8+7+61+8-2-6+0+44+26+202+116+32-11+14+16-38-25-46-71-51-13-34-35-60-29-18 decode_761x1531 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 4 1522 5796 +870+140+66+5-27+1-9-51+13-18-29-39+15-7-45-29+12+38-13+18+21-16+3+20-9-16+23-26+18+9-19+17 decode_761x1531 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 5 1522 8369 +3155+2356+2278-286-370-475-439-490-560-555-636-481-497-525-576-635-510-555-480-572-511-560-520-546+2081+2136+2125+2048+2078+2053+2036+2212 decode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 selected 1522 848 +772+129+10+1+3+0-2-11-10-5-12-5-8+4-9-4+6+1-16+6+6+17-8+15+0+3+2+6-8-3+23-12 decode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 0 1522 846 +13+8+17+1-9+11-10-4+3+20-2+0-14-14-11+5-1-1-13+1+6+4-3+3+10-4+2+2-2-14+2-6 decode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 1 1522 1037 +1237+166+144+87+31+21+17+23+12-13-1-1+2-1-5-8-2+7-13-15-7+4-10-2-23-5-8-17-4+2-1-6 decode_761x4591 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 2 1522 6972 +746+62+36+14+28-18+39+32-48+3-93-32+90-82+12+82+66-93+47-79-46-23+24-38-81-34-33+45-113-50+80+30 decode_761x4591 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 3 1522 9410 +2661+1442+1334+1344+1253+255-15+30+7+5-32-51-12-20-23-19+16-7-14-11-21+2+26+69-35-12+42-11-28-8+9-8 decode_761x4591 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 4 1522 7017 +651-13+90+81+35+26-20-16-49-62-75+9-22-25-87+26+52+49-163-61+56+13-32-76+26-32+44+33+47-41+31-133 decode_761x4591 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 5 1522 9416 +852+198+49+2+22+49+44+0-18+12+2-13-31-65+9+16+18+0-45-25-3+1+21-5-3-2+46-50-32-20-45-50 decode_761xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 selected 1522 66 +274+110+67+24+2+0+0+0+0-2+0-1-2-1-1+0+1+0+1-3+2+0+0+0+1-3+2+0+0+0+0+0 decode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 0 1522 123 +222+84+4+4+31-1-1-1-1-1+0-1-2-1-1+27-1+1-1+1-1+0+1+0+0+0+0+0+1+0-1+0 decode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 1 1522 66 +69+56+48+29+28-3+2-2+1-3+1+0+0-1+0-1+1-1-1+0-1+0+0+0-2+1+0-2+0-1-1+0 decode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 2 1522 422 +189+38+6+2+2+3+2+2+2+2+2+2+2+2+2+2+12-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2 decode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 3 1522 125 +201+27-1+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+6+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 selected 3044 148 +543+67+10-7-6-5-5+1+1-5-5-5+1+0-4-5-13+1+2+0+1+2+1+1+1+0+1+2+1+1+1+0 decode_761xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 0 3044 771 +425+71+23+15+6-5+0+0-3+0+4-4+0-1+2-3-1+3-6-4-1+2-2+0+1+0-6+1+1-1-3+0 decode_761xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 1 3044 142 +139+47+0+32+2+30+0+0+0+0+0+0+0+0+0+0+0+0+0+1-1+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 2 3044 506 +466+32+12+9-1-2-1-3+0-3+0-3+0+4-1+4-1+47-2-1+4-1-2-1-3+0-3+0-3+6-2+4 decode_761xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 3 3044 202 +567+56+59+31+9+14+1+1-5-5-5-5-5-5+1+1+1+1+1+1+1+1+1+1-5-5-5-5-5-5+1+1 decode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 selected 857 60 +133+57+25+11+0-2-3+4-7+4-2+2-5+3-5+2-3+2-1+0-4+5+0-2+2-4-7+12-5-2-7+8 decode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 0 857 62 +455+59+12+0-3+5-10-7+9-4+3-4+5-2-1+3-1+1+3-1-6-5+2+1+11-9+3-4-2-4+3+3 decode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 1 857 79 +39+35-13+22+2-16-5+7-5+10-6-3+3+0+5+1-16-5+3-6+5+0-2+3+4-5+1+3-19+2-3-15 decode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 2 857 759 +178+63+0+1+4+1-1-1+0+23-3+0-2-1-1+1-1-1+0-1-1+1+5-2+1-3+3-3+1-2-1-3 decode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 3 857 131 +641+62+0-3-4+0+4-5+3+0+2-3+2+1-3-3-1+1-9-4+0-2-6-3+4-7+1+5+7+1+0+1 decode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 4 857 897 +331+25-1+0-1-1+42+0+2+0+1+1+0+1+1+4+2-3+1-1-2-1-1+0+2+0-3+2+0+0+0+0 decode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 5 857 161 +451+109+39+34+10-2-1-6+2+2-5+0+1-2+0+3+1+1-6-2-8+2-1-5+1-4+0+5-1+4+0-1 decode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 selected 1714 844 +1048+133+47-1-7+23+0+14-15+13+0+3+18-6-4-17-14-4-5-17+12+2-29+14+8-3-14-15+6+4-24-5 decode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 0 1714 843 +81+63+29+5-9+9+4+3+0-15-2+1-3-10-2+3+5-5+9+9-4-17-3-15+5-14+0-2-5+7-16-8 decode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 1 1714 989 +1093+237+115+90+49+41+9-7+10-11+0-3+6+0+5+7+4+1+13-5+0+3+5-21-10-39-9-48-64-33-68-47 decode_857x1723 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 2 1714 6636 +878+112+13+15-17+66-1+25-2+28+17-17-8-51+13-31-3-11-36-19+1+21+14-25-32+0-24-23+11+32-9-7 decode_857x1723 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 3 1714 12249 +909+259+146+162+100+82+78+56+1+36+44-9+14-35-49-14-55-32-18-30+111-39-17-25-20-28-34-2+9-30-15-16 decode_857x1723 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 4 1714 6637 +642+110-1+52+11+21+30+21-25+20-33+31-29-4-6-5-50+40-30+14-7-5+5+23-50+0-4-20-20-14-11-17 decode_857x1723 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 5 1714 12316 +904+211+143+122+80+55+65+51+41+28+57+42-6-33+3-50-25-75-55+4-23-47-46-22-38+36-30-4-48-31-51-27 decode_857x5167 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 selected 1714 897 +714+155+69+3-1+2+1-3+11+5-11-10+7-18+3-14+15-2-5-2-11-5+1+13+9-1-28-17-2+7-2-4 decode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 0 1714 900 +123+70+13-16+11+8-16-15+0-1-1+12-5-1+9+20+2-18-8+13-6-8-4-12+4-3+21+6-10-20+10-4 decode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 1 1714 1021 +1011+172+64+32+1+11+36+5+9-21+1-17-9+14-6-11-4+4+10+1-6+30-11-6+2+4-28+1-5-23-10-23 decode_857x5167 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 2 1714 8092 +914+142+55+10-30+59+9-1+2-16-14-37-25+0-5-34-29-8+13+23-37-19+2-26+15+21-15+0+19+18+11+3 decode_857x5167 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 3 1714 10648 +857+336+238+228+107-28-82-46+10-10+2-9+30+15-1-20+10-29-10-53-68+16-14-27-12-19-42+35+49+1+8+30 decode_857x5167 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 4 1714 8130 +567+59-5-20+2+33+20+36-5-6+1-27-53-8-19+36+24-61+8+33-74-21+59-7-2-6+16-30-30+44+11-37 decode_857x5167 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 5 1714 15755 +741+112+33+16-10-5-5-38-35-1+44+23+3-18+6-51-34-20-21+16-2-35+12+18+36+82+15+39-7-30-63-16 decode_857xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 selected 1714 71 +258+60+36+7+5-1-1+0+0+1+0+0+1-1-1+1+0+1-1+1-1+1+0-1+1+1+0-1+1+0-1+0 decode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 0 1714 84 +223+58+37-2+0+0-2+0-2+2-2-1-3+4-5+4-8+2-2+1-1+32+7-7-2+1-1-2+0+0-2+0 decode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 1 1714 72 +67+58+48+6+1+2+3-2+4+1+1+2+4+0+3+2-3+1-2-2+0-2-1+0-1-2+0-1-2+0-1-2 decode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 2 1714 471 +167+46+40+0+29+2+2+2+2+1+1+1+1+1+1+1+9-2-1-1-3-2-1-1-3-2-1-1-3-2-1-1 decode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 3 1714 133 +186+25+31+31+0+28+0+28+0+0+31+0+0+0+37+0+0+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 selected 3428 135 +282+69+8+1+2+1+1+1+1+0+0+0+0+0+0+1+54+0+0+0+0+0+0+0+0+0+0+0+1-1+0+0 decode_857xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 0 3428 885 +221+35+10+1+1+1-2+0-2-2+1-1+1+0+1+0+1-2-2+0-1-2+0+0+0+3-1+1-1-1+2+1 decode_857xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 1 3428 134 +137+38-3+7+7-1-1+7-1+0+1-1+0+1-1+56+1-1+6+1-1+0+1-1+0+1-1+0+7+0-1+1 decode_857xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 2 3428 587 +126+18-15-17-17-17-18-18-36-10-18-18-18-18-18-18+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9+9 decode_857xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 3 3428 207 +146+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 selected 953 89 +408+56+10+8+4+0-1+6+1+3+2-10-2+5-8+4-6-7+4-8-2+0-4-6-6-1-2-2-7+1-7+4 decode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 0 953 89 +170+51+3+9+1-2+0-8-4-2+3-9+2-7+2+5-7+22-32+25+11-10+3-2+1+6-7-4-4-6-8+6 decode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 1 953 87 +42+30+11+6-3-7+8-5-4+9+2-2-2+8+0+3+0+0-4+13-6+2-4+1+3-4+0-1+1+0-1+1 decode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 2 953 837 +150+39+7-4+0-1+1+0-3+0+0-4+19-1-2-1+2+2+2-2+1+2+2+2+0+5+1-4+1-2+0-4 decode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 3 953 157 +595+69+33+1-3-1-2+0+0+4-1+4-1+2+0+0-1-1+3-4-2-5-4+0+1+2+1+0+0+1-2+2 decode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 4 953 836 +234+52+26+24-2-1-3+1+1-2+3-2-2+5-3-2+20+2+4+5-2-1-3-1-2+1-1+1+2-1-2-1 decode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 5 953 196 +183+71+40+4+8+5-2-3+0-1-5-2+5+5+3+0-2-5-3+0-5-4+2-1+0-1-2-1-5+1-5+7 decode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 selected 1906 959 +2892+1077-8+23+31+28+2+4+1+9-22+12+23-1-1-7-4+3-5-11-10+10-10+1-17+7-16-6+1-13+6-6 decode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 0 1906 976 +84+81+41+32+7+21-4+1+6-16+0-16-11+5-1-4-9+10-26+7+17-5-27-3+7-16+28-9-23+16-13-8 decode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 1 1906 1169 +699+163+70+92+68+61+49+47+39+34+13-18-7-4-23-27-21+32+29-25-30+43-12-25-40-39-57-47-74-51-69-60 decode_953x2115 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 2 1906 8498 +812+128-7+17+4-63+0-25-48+35-13-52+27+19-29+35-8-100-24+9-53+7-20-6+34+39+15-27+7-56+23+37 decode_953x2115 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 3 1906 9749 +1214+635+626-48+0+13-52-1+35-23-10+8-87-18+30-13+32-16-9+9+5+11+56-59+8+22-40+9-16+5-87-9 decode_953x2115 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 4 1906 8515 +635+54+37+46-14+8+3-18+33+39-26-23-20+7+3-17-11-20+31+13+35-13-44+1-18-12-21+37-20+16+3-5 decode_953x2115 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 5 1906 9593 +1572+267+59+18+17+83+0+38+62+2+17+42-96-14-5+53-2-2-50+22+40-90-19-23-116+5-94-59-5-45-139-84 decode_953x6343 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 selected 1906 975 +453+126+29-10+4+12+8-34-1-14+6+16+13-7+8-5-12-3-4-4-19-11+4-5-16-2+8+3-4-13+7+9 decode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 0 1906 972 +126+47+0+8+4-4+12-2-13+12+0-18-7+4+2-5+18-5-9+15-1+6-13+22-10-8+0+0+10-5-12-2 decode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 1 1906 1275 +753+246+151+133+121+100+107+93+68+32+60+8+26+0-4-21+1-26-6-39-24-26-26-47-63-48-42-57-66-30-45-52 decode_953x6343 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 2 1906 8697 +785+149+119+79-17+35-132-31+3-34-45-39+32-2+9-118+8-92+97+66+94-154+92+40+66-23-86-116-42-65-89+47 decode_953x6343 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 3 1906 12035 +1185+607+463+10+9+13-39+23-20-14+31-4-22+11-43+1-23-2-63+43-27+23-33-10+24-7-41-10+9+80-73+5 decode_953x6343 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 4 1906 8706 +802-41+102+64+63+51+8-38-10-127-153-87-134-173+54-145-169+60+81+63+15-11+6+53-34+52+43+17+11-112-38-89 decode_953x6343 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 5 1906 17597 +1227+728+505+454+519+463+458+318+314+279+352+319-91-94-113-145-122-110-167-145-111-70-194-113-112-154-183-94-152-194-178-61 decode_953xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 selected 1906 105 +249+73+32+10+14+12+3-2+2-2+2-3+1-3+1-3+1-3-4-3+1-3+3+2+1-3+2-3+1-3+1-3 decode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 0 1906 115 +249+109+1+7+7+2+2+2+0-1+1-1-3+0-2-1-1+0+31+2+1+0+1+2-2+0+0-2-2+0-2+0 decode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 1 1906 106 +41+22+29+25+23-5-6-7+0+0-6+0+1-7+0+0+0+0+0-6+0+0+0-5-6-7+0+0+0+0+0+0 decode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 2 1906 521 +185+56+8+4+8+2+8+0+6+0+5+0+6+0+6+0+18-1-1-4-5-4-4-4-4-4-4-4-4-4-4-4 decode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 3 1906 139 +284+163+82+25+25+11+0+0+1+5-1-1-1-1+0+4-1-1-1-1+0+4-1-1-1-1+0+4-1-1-1-1 decode_953xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 selected 3812 144 +266+62+5+0+2+2+0+1+3+0+4+1+1-1+0+0+56+0+0-1+1+0-1+0+1+0+0+0+0+0-1+0 decode_953xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 0 3812 984 +198+57+14+8+31+1+0+0+1-2-1-1-2-2-1+5-3+0-1-3+2-3+0-1-3-3+1-4+1+2-2+7 decode_953xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 1 3812 139 +82+22+20+3+26+0+2-2-2-2+0+2+4-2-2-1+3-1-3-2+4-1-3-2-2-1+3+4-2-1-2+3 decode_953xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 2 3812 627 +168+72+41+22+8+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-11+6 decode_953xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 3 3812 224 +172+47+2+2+2+2+1+1+1+1+0+0+0+0+0+7-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 selected 1013 68 +538+86+35+19+15+15+10-1+0-1-2+0-2+1-1+1-13+12-2+0-2-3+5-2+0+2-2-1+0-3-3+3 decode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 0 1013 70 +222+55+20+13+1-3+0-4+0-1-6-3+5+4-5-4+9-1+0+3-3-1+0+5+3-2+1-2-2+3+2+1 decode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 1 1013 69 +75+38+22+10+10+9-4+1+9+5+0-2-1-1-2-1-4-1-1-6+0-2+2-2-2+1-4+3-4-11+12-4 decode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 2 1013 890 +220+23+30-2+1-2+1-2+0+3+3+0+0+0+0+0+7-2+1-4-4-1-1-2-3-3+2-2+4-3+1-2 decode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 3 1013 169 +576+30+1-1-4-3-3-5-1+2+0+1+3+5+0-1-1-4-2+2+6+1-3+1-1+1-1-4+1-2-5-5 decode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 4 1013 930 +521+29+2+1-2+6-1+1-1+2-1-4+2+1-1-1+0+0-1-1+4-2-1+0+3-1+0+2-1+0+2+1 decode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 5 1013 204 +219+93+4+1-1+3-1+0-5+2+1+0+3+1-2-4-1-5-1-1-4-6+0-1+2-6-1+1-4+1+5+5 decode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 selected 2026 1086 +749+109+3+28-11+1-18+8+17+0+5-5-7-18-1+8-25+3-11+15-22+0-27+1-5+3+5+7-1-12-24+16 decode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 0 2026 1073 +49+65+30+8+3+0+22-18+23-17+13-4-14-14-18-18+12-4+1+12-14-3+7-5+0+2-11+2+9-9-9-4 decode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 1 2026 1414 +902+167+54+22+26+13+3-10-3+0-19+0-1-1-4-23-21+0-17-8-12-8+7-2-3+6-1+18-4+16-4+27 decode_1013x2393 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 2 2026 9392 +969+185+75+37+7+31-35-27+32-18+10-12+17+31-4+6-3+14+14+10-15+2-15-28-38-18-11-63+22-8-15-31 decode_1013x2393 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 3 2026 13426 +561+85+7-22+65+0+80-9-18+22-13-51-9+19-55-39+13+20-7-72-82+22+4-88+23-7-35-6+79-64+21+13 decode_1013x2393 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 4 2026 9395 +911+141+34-2+4-64+24+44-16-49-55-8+38-58+1-12-36+0-4-39+12-17+28+30+4+24+35-70-11+12-27-15 decode_1013x2393 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 5 2026 13449 +553+75+62-13+39+95-18-20-7-68+99-63-63+2+12+106-38+43+52+7-15-10+18-40-67-6-81-82-94-38+52+43 decode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 selected 2026 1026 +474+144+45+32+35+25+25+16-4-15-3-4-3-10+8-22-9+3-8+5-5-5-11-5+9-2-14+27-3-11-4-14 decode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 0 2026 1026 +104+59+13+22+22+0-17-2+14+2-13-5-2+18+1-15+2-13+3-20-11+15-10+10-24+10+1-4+8-9-20-18 decode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 1 2026 1168 +777+178+90+63+31+63-3+4+4-3-4-10-9-2-12+1-8-10+1+4-9+9+2+4-12+1+4-6-10+0-10+5 decode_1013x7177 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 2 2026 9046 +832+75+5-38+25+28+6+18-7-19+3+23-8+20+19+12+7-47+7-6-48-33-29+10-16-23-5-1-39-6+15-36 decode_1013x7177 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 3 2026 13075 +1085+341+443+46+14+74-12-101-33+88-10+24+35+9-18-23+12-47-18-8-34-13-43-2+31+47-11+3-38-23-16+18 decode_1013x7177 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 4 2026 9133 +533+205+77+27-44-103+100+11+13+12+55+88-139-139-164+91+63-161-42-2-85-69-17+19+97-33+2-76+3+53+6-83 decode_1013x7177 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 5 2026 19295 +1386+733+662+653+618+615+601+592+78-39-54-56-32+6+9-11-10+58-3-2+4-83-53+5-64-46-54-121-88-33+8+3 decode_1013xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 selected 2026 104 +269+74+28+18+10+19+18+17+9+19+53+14-7-14-2-6+35-16-7-16-6-15-7-16-5-16-7-15-8-14-7-15 decode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 0 2026 130 +234+89+31+3+1+2+2+2+2+3+1+3+1+2+2+2+24-6-2-3-2-2-2-3-3-2-3-2-2-3-2-2 decode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 1 2026 111 +115+42+37+10+37+7+22+26+2-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2 decode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 2 2026 549 +211+37+3+5+1+1-1+3+1+1+1+1+1+1+1+1+10-2-3-3-5-1-4-2-3-3-3-5-1-4-2-5 decode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 3 2026 151 +313+102+68+65+6+31-1-1+0+4-1-1+0-2+0-2+0-2+5-1+0-2+0-2+0-2+0-2+0-2+0+4 decode_1013xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 selected 4052 147 +306+205+99+23+37+1+11+1+8-1-1-1-1-1-1+0-1-2+0+4-1-1+0-2-1+0-2+0-1-2+0-1 decode_1013xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 0 4052 1022 +217+63+59+58+18+18+8-4+1-6+3-3-2-3-6-4+0+3-5+0+0-2+0-8+3-3-3+2-6+1+0-2 decode_1013xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 1 4052 146 +139+29+33+1+32+1-1+1-1+1-1+0+0+1-1+6+0+1+0-1+0+1-1+1-1+1-1+0+0+1-1+0 decode_1013xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 2 4052 662 +154+45+6+31+1+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 3 4052 235 +287+107+47+17+15+13+1+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 selected 1277 84 +440+54+15-5-4+2-1+2-3+3+1+1-3+4-3-1+2-2+2+0-1-3+0+3-3-6-1+2-2+2+1-2 decode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 0 1277 88 +204+55+24+12-4+6-5+3-2-2-2-5+0+3-9+7+4-5+2-5+13-8-7+5-4+0+2-1+3-14+6-5 decode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 1 1277 84 +76+38+14-4+0-4+1+0-2+1+1-6-1+3+1+2+1+1-4+0-2+2+0+1-3-2-4+0+2+1+5-7 decode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 2 1277 1109 +144+25+0+0+3+4-2+2-2+1-2+1+19+0+0+2+1+1-1+0-2+1-1-1+2+5-3-1-2+0-1-1 decode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 3 1277 207 +656+71+68+8+0+5+1+4+4-5-5+8+1-2-3+2+1-6-1+0+1-2+0-2+1-2-3+0-1+1+5-2 decode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 4 1277 1108 +251+26-1-2+0-1+2-2+1+1+0+67-2+1-1+0+0-1+1-1-1-3+0-2+0+1+0-2-2+1+0+0 decode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 5 1277 255 +710+94+58+52+60+26+29+0+5-2-4+0+0+2+3+0-5-1-4+3-1-2-3-2-9+3+3-6-6-2+2-2 decode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 selected 2554 1213 +654+96-16+37-2+5+4+4+0-10+16+8+2-19+13-1+16-11+8+4+13-20-11-24-10-7-24-11-5+2+9+3 decode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 0 2554 1197 +40+0+18+12+10-12-1+15-10-13-2-18-14+3-23+14-28+10+11+3-9+2+20-20-5+10-9-7+11-11-3+0 decode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 1 2554 1269 +1143+183+106+119+62+6+24+12+2+4+3+13+22+1+9-6+9+14-4-12-25-31+15-31-49-19-38-44-20-47-15-43 decode_1277x2627 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 2 2554 11793 +1057+152+23-10+26-20+11+53-1+8+8-16+34-3-32+23+14-20+1-19+5-5-18+16-44-8-16+13-50-43+19-25 decode_1277x2627 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 3 2554 17346 +1112+144-27+6-7+44-2+89+33+37-59-6-32+9-14-42-72+79-7-63+27-58+9-17-14-1+18-30-7+3+56+9 decode_1277x2627 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 4 2554 11877 +591+64+47+21+13-2+41+8-1-3-20+44+27+24-19-6-64-6-35+8+18-2-32-7-23-44-13+16-15-25+17-65 decode_1277x2627 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 5 2554 16807 +970+105-1-24+17+15-16-79+11+21+9+25-46-22-30-14-32-52-90+42-18-6+23+117-67+18+43-19-15-10+51+23 decode_1277x7879 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 selected 2554 1144 +428+82+32-8+9+2+4+26-2+17-1+2-8+16-10-4+8+0+1-11-4-9-18-1-16-23-12-10+5+6+17+0 decode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 0 2554 1142 +28+21-1-6-7-9+0+18-5-2+1+0-6+17-15+30-15-2-8+11-8+5+7+7-9+6-6+21+16+0-11+6 decode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 1 2554 1336 +856+52+1+6+0-7-4-7+0+8-6-13+1+10-8+11-6+18-5-17+18-11+7-9+4-5+4-2-4+2+10-2 decode_1277x7879 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 2 2554 11364 +677+25-40-94+94-149-148+117+104+40+73+59-67+3+103-7+71-8+114+132+29+29+32-157-177-117-104-49-77-152-114+53 decode_1277x7879 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 3 2554 15665 +1796+1026+927+927+914+851+884+830+811+805+839-217-194-126-186-162-189-177-206-257-206-230-278-197-216-199-263-234-238-223-262-164 decode_1277x7879 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 4 2554 11387 +544+170+23-38-70-66-6-33-157+75+108-176-166+94-95+101+53+53+3+122+107+27+47+61-12-187-53-116-43+14-24-129 decode_1277x7879 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 5 2554 15275 +539+47+11+3+20+37+16+43+28+21+23-10-78+68-15-55+12-11-29-23-32-34-40+51+16-25+45-23-24-124+12-42 decode_1277xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 selected 2554 125 +217+32+3-1-3-3+4+4+4+7+11-8-2+0+0+0+0+0+0+0+0+0+0+0+0+3-8-8-8-8-7-9 decode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 0 2554 161 +156+61+5-6+0+0-3-2-1-1-3-2-1-1-3-2-1+4+23+25+2+1+0+1+2+1+0+1+2+1+0+1 decode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 1 2554 121 +48+29+12+0+17+0+0+0+0+0+0+0+0+0+1-1+1+0-1+0+1-1+0+1-1+0+1-1+0+1-1+0 decode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 2 2554 681 +151+40+6+29+3+2+2+3+0+0+2-3+5+0+2+0+10-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2 decode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 3 2554 168 +258+85+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 selected 5108 180 +232+63+0-3+0+0-7+0+17-7+0+0+0+0-7+0-1-7+0+0+0+0-6-1+17-6-1+0+0+0+0+0 decode_1277xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 0 5108 1306 +203+61+8+2-2+0+0-1+1+1+3-1+0+1+0+1-2-1+2+2-1+1-3+5+0+1+0-2+0+0+0-1 decode_1277xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 1 5108 173 +52+24+4+0-6+0-4+1-6+0+0+1+0-4+1-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 2 5108 827 +199+40-1-8-5-5-5-5-5-6-32+6-5-5-6-6+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2 decode_1277xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 3 5108 281 +173+21-1-2-2+80+2+2-1-2-2+3-1+3-1-2-3+3-1+3-1-2-2+3-1+3-1-2-2+3-1+3 decode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 selected 2 15 +132+86+30+5+4+4+3+1+1+1+1-1+4+1-2-1-1-1-1+0-2+1-3-1+3-5+0-2-1-1-1-1 decode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 0 2 18 +65+44+3+0-2+1-2+2-1+1+0-2+3-2+1-2+1+3+0-1+1-1-2+2-1+1+0+0+0+0+2+1 decode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 1 2 18 +125+53-3+2+2-4-2+2-3-1-1+2-5+2-2-2-1+2-2+0-2+2-5+0+2-4+3-4+0-2-2+2 decode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 2 2 15 +97+75+52+23+5+1+1-1+1-1-2+1-1-3+1-2-3+3-3-3+1-1-1-1-1-3+2-2-3+1-1-2 decode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 3 2 18 +71+54+48+30+3-6+3+1-4-1-1-1-2+0-1+0-2-2+1-1-2+1-3+1-1+1-4-1+1-3+1-2 encode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 selected 164 84 +443+74+12+1-3+2+2+4-8-3+9-3-25+1+2-2-2+7-4-1-5+1+1-11+0-4+2-7+7-7-7+0 encode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 0 164 83 +136+46+9+2-6+1+0-1+3-1+0-28+0+5+0+7-1+26-30+30-33+2-1-2+5+0+4-6-5-2+0-1 encode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 1 164 83 +54+33+16+0-2+2-4+0+13+1+7-2-1-28-5+2+28-24+3-1-10+4-6+2+4-2+4-5-3-5+8-6 encode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 2 164 460 +205+48+33-4+5+6+4+2+2+2-1-2-1+4+1+30-2+2-1-2-1-2-2-1-1-1-1+2-2+2-1-2 encode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 3 164 95 +372+51+24-2+3-3-2+0+5+6-11+0+4+5-3-1-1+6-3-1-1+0+1-5+1+4-4+0-1-1+2-3 encode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 4 164 481 +294+11-13-12-14-13-14-11-13-13-15-12-13-12-15+20+8+4+4+6+6+4+4+7+6+6+4+6+6+4+6+6 encode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 5 164 144 +647+63+27+3-2+2-3+2+2-4-2-2-4+8-2+4-7+3-2-1+5+0+6-6+1-2-4-3+3+0+4-4 encode_653x1541 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 selected 865 436 +1495+1123+892+56-15-3-9+0-6+4-1+4+8+0-4-7-8+5+15-9+3+5-1-1+2-5-6+2-5+4-11+0 encode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 0 865 472 +435+75+15+19-9+3-3+3-6-3-1-1-1-5-4+4+4-4-10+3+23+10+0-7-3+0+1-7+4-6-1-4 encode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 1 865 439 +54+24+21+7+4-1+9+2+9-1+2-1+4+5-4-1+9-2-1+3-3+6-8-2-4-6-8-6-9-4-15-15 encode_653x1541 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 2 865 996 +486+110+4+2+0-14+5+3+2+11-7-5-2+5-9-8+2+6+5+1-2-4-5-3-6-7+0+8+1+0-1+3 encode_653x1541 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 3 865 1681 +624+168+71+6+5+13-3+0-6-5+20+18+35+13-5-8-5-9+16-10-2-7-12-8-11-10-9+23-5-4+28-9 encode_653x1541 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 4 865 1413 +455+121+18+4-3+10-6+6+39-5+4+5-1+14-4-3-5-4+11-15-9+3-8+0-3-12-2+4-10+17-5+2 encode_653x1541 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 5 865 1659 +587+75+29+23+11+0-2-1+33-8-4-4+28+7-9-10+1-3+0-9-9-5-5-6-4-3+4+22+2-10-5+36 encode_653x1541round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round selected 865 504 +913+82-15-1+0+0-4-1+5+9-8+10+1+1-9+5-10-4-10+0+3-2+11-9-2+9+3-6+15-5+5-1 encode_653x1541round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 0 865 533 +700+89+19+24+3-3-1-8+13+1+0+11-3-1-1-11-6-6+1-4-3-3-6-1+3+0-6+1+17+9-10+4 encode_653x1541round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 1 865 505 +52+19+3+6-4-2+1-5+2+1-8-16+3+2+3+1-11+8-9-15+11-6-5+1+3+7+1+0+1-9+1-3 encode_653x1541round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 2 865 689 +580+48+37+21+27+13+20+9+2+28-9-2-9+0+3-16+3-2-17-8-9+1-3-1-9-16+1+4-4-2-15-21 encode_653x1541round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 3 865 692 +329+84+19+17-9+18+7+11+1-7-15+6-1+5+10-20-4-18+6+10-3+2-4-9-3+1-15-7-5-1-3-9 encode_653x1541round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 4 865 795 +161+13+19+23+13+9+5+9+3+15+8-3+6+1+6+8+6-26-6-4-33-12-16-8-18-9-13+64-15-9-19-15 encode_653x1541round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 5 865 870 +235+21+36+20+31-12-10-6-17+6-7+4+3-4-15+1-11-21-4+3+1-1+2-7+2+5-6+3+0+0+0+8 encode_653x4621 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 selected 994 407 +585+217+46+15-1-13+4+12-11-5-2-4+2+9-11+0-9-7+1-5+42-2+5-13+1+0-1-5+9+6-13-4 encode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 0 994 404 +238+76+77+5+11-8+4-2+10+1-1+3-6-4+0+3-1-2-4-11-3-2+3-8+3-6+0-1-5+2+10-8 encode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 1 994 418 +297+77+36+3-3-4-8+9-5-8+4-9-1+3-4-4-3-9+6-6+8-1+5+8-9+3+6+4-10-13+27-23 encode_653x4621 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 2 994 1031 +511+118+4+13-15+6+5+4-11+0+3-12+2-4+5+8-4+2+4-6-15-6+4+13-8-2-9+3-5-3+2-5 encode_653x4621 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 3 994 973 +599+75+28+36-6-12-11-9-10-18-15-14+13+21+7+3+1+3+3+3+0+0-1+7+1+2+6+2-15-4-7-14 encode_653x4621 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 4 994 1397 +479+104-34+27-7+17+18+12+15+18-1-7-1-12+2-8-1+3-4-7+60-3+4-4-4-6+2-6-1-10+4+3 encode_653x4621 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 5 994 1229 +663+157+25+15+65+6+53+25+23+56+43+22+47-29-39+11-28-7-31-19-21-15-18-14-22-16-20-48-39-6+10-1 encode_653xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 selected 653 141 +317+71+42+35+35+33+38+34+6+1-2+3-3+1+2-1+2+1-3-5-2-7-4-2-6-3-5+0-7-4-3-4 encode_653xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 0 653 100 +269+174+120+35+7-1-2+1-4+0+2-5+0+0-2+2-3-3-1+3-3-3+3-2-3+2-4-1-1+2-3-1 encode_653xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 1 653 139 +91+123+26+20+2+3+0-1+0+0-1+4-1+0+2-1+25+18+0-4-1-2-3+3-6-2-1-3+2-3-4+0 encode_653xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 2 653 470 +261+74+13+20-4+2+4-3-1-7+5+6-5-3-3+0-4+16+5+9-13+5-4-22-6-14-15+1-17+2-13+10 encode_653xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 3 653 304 +191+46+17+4-5-6+3-6-6-1-5+5+1-11+2-10+3+5+1-1+2-8-12+5+0+2-7+4-3+3-3+4 encode_653xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 4 653 599 +161+78+39+32+6-2+2+7+14-2+2+13-1-1+0+5+6-1+9+11+0-2-24-19-7-14-19-12-20-9-12-27 encode_653xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 5 653 522 +157+59+8+13+3+13+10-3-1+1+4-7-3-1+0+1-1-3+2-2+1+4-3-2-4+0+0+3-3-1+1-6 encode_653xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 selected 1306 66 +273+110+80+57+50+47+22-6-1+0-3+2-5-9-15-6-8-13+0+12-2-4-2-6-8-12-11+18+0-1+20+0 encode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 0 1306 58 +113+65+30+2+1-8-2-4-8-4-2-6-8-6-9-6-1+3+0+4+2+5+3+4+3+6+4-4-5-7+21+7 encode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 1 1306 121 +163+80+18+7-4+4-2-2+0+4-4+0+4-4+0+4-4+0+0+0+0+0+0+0+4-3-1+0+0+4-3-1 encode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 2 1306 368 +191+67+6+5+1+2+49+1+1+1+1+1+1+1+1+11-3-3-3-2-3-3-3-2-3-2-2-2-2-2-2-2 encode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 3 1306 153 +204+49+24+16-2-13-13-11-14-11-14-11-11-14-15-10-4+5+5+3+3+5+4+4+3+4+5+4+4+5+6+1 encode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 selected 191 63 +471+37+22+18+3-7-3+2-3-3+3-12+2+1-4-1-3+6-9+4-9+3-4+0-1+0-4-4+0+4+1-9 encode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 0 191 66 +216+59+31+10+0-4-3+0+4-10+5+2+0-1-6+1-6-2+29-7+5-9+1-4-1+0+6+0-6-5-5+5 encode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 1 191 62 +74+46+54+21+1+2-4-2+5+0-7+1+9+5-2-3-5-11+7-1-2+7+1-7-6+10-6-6+4+0-4-2 encode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 2 191 534 +278+76+2-1-3-3+1+0-1-1+2+0+0-4-3-1+1-1-4-3-1-1+2-1+1+0+0-3-1+0+2+1 encode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 3 191 127 +383+28+1-3-2-1+1+1-5+0-1+3+1-6+2-4-1-3-2+1+1-4-3+1+2-1+5-1-1-1+1+1 encode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 4 191 523 +189+44+0+1-1-1-1+1-1+0-1-1-2-1-1+1+0+0-1+0+0-1+0-1+0+0-1+0+1-1+0-1 encode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 5 191 179 +189+53+34+34+8-6-2-3-6-2-2-2-1-2-1-2-5-1-1-1-7-1+0+20+6-2+17+8+13+6-3-2 encode_761x1531 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 selected 1007 501 +896+38+14+3+9-2-7+2+0-3-5+1-7-1+2-7+7-7+3+0+7-5-4-6+3+2+1-3+1-7-5+1 encode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 0 1007 532 +388+80+34+19-11+1+1-2+0+5-6+134+3-6-3+2+6-6-7-3-5+4-7-1-5+3-6+4-6+4+1-1 encode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 1 1007 506 +9+21+28+1+1+2-2-2+2+11-10-6-4-5+0-6-4+0+8+3-6+1-2+5-3+6+6-1-8+0-7+0 encode_761x1531 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 2 1007 1159 +549+121+0+19-17-10+12-21-6+0+29-29+25-23-18+2-4+0-14-1+36-4+3+0+4+4-8+11-6+5+3+0 encode_761x1531 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 3 1007 1970 +516+139+69+33+11-9+47-13+18-20-10+14-11-11-4+21-13-9-13-10+18-10+27-6-6-8-9-12+29-4-6+25 encode_761x1531 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 4 1007 1646 +545+61-12+6-21-13-15+6-4+24-9-9-3-5-3-13+21+19+20+24+9+5+11-22+11-19-14+11-17-3+8-8 encode_761x1531 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 5 1007 1944 +843+106+9-8+3+28+30-2+21+20+10+16-14-9+42+11-17-13+23+1-12-13-19-11-9+11-15-19-13-17+10-20 encode_761x1531round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round selected 1007 596 +507+86+4+0+11+0+122-6-6-1-8-7+7+0+8-12-7+5-5-7+1-7+4+2+9-6-2+2+2+6-14+8 encode_761x1531round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 0 1007 616 +212+15+2+12-9-1+9+1+0+5+1-1+3+12+6-1+15+1+5-12-9+0-9-2-10-1-16+0-6-3-5-6 encode_761x1531round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 1 1007 578 +577+14+16+8+11+5-11+16-13+11+1-1-3+10-9-9-1-4-8-4-3-4+11-3-3-5+2-10+5-3-9+0 encode_761x1531round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 2 1007 793 +195+33+49+21+13-16+6+15-10-7+1-1+12-10-6-1-5-10-1+14-2-11+5+3-10+3+3-8-3+7-10-10 encode_761x1531round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 3 1007 782 +259+49+42+10+18+8+2-1+37+4-11-5-2+6+2-1+2+2-3-9-2+0-3-7-6-3+0-7+0+6-3-3 encode_761x1531round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 4 1007 911 +370+28+29+21+30-10+2+3-14+5-7+5+1-8+0-3-10+8+12-3+0-6-4-2-3-5-6+1-5+7-6+4 encode_761x1531round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 5 1007 1009 +168+15+31+21+16-6-16-4-6+3-6+11-12+1+2+1-3+6-3-9+9-5-9+5+9-14-6+0+7-1-11-1 encode_761x4591 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 selected 1158 446 +805+107+52+15+18+7+2+4-3-4-5-3-2+6-1-2-2+2-5+7+7+5-3+2-1+23-14-11-15-8-16-9 encode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 0 1158 478 +407+91+18+4-11+9-5-2+6+8-8+8+33+3+0+0-2-7-8-4+2-9+4-1-1-6+2-13+2+14-4-6 encode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 1 1158 434 +168+144+46+41+28+35+18-9+1-6-2-8+3+1-5+0-8+7-5-1-9-4+3-4-5+10+6-11-3-6+2+1 encode_761x4591 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 2 1158 1203 +493+122+48+4+1+17+4-2+3+8+13+10+1-4+4-3-3-4-6+0-1+4-9-14-15-6-6-8+1-1-3-2 encode_761x4591 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 3 1158 1126 +798+161+84+34+23+26+83+41+18+10+0+1+1+1+1+0-8-11-6-5-9+3-6-12-6-7-8-9-10-6-3-10 encode_761x4591 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 4 1158 1560 +405+66+19+1+2+10+2+7+3+4-3-4-5-2-2-1+2+1+3-5-4-5-3-1+0-2-1+3-3-9-6-4 encode_761x4591 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 5 1158 1421 +664+170+33+52+26+28+18+70+11+24-5+12+7+35-11-34-2-5-27-2-20-1-21-17-21-9+10-24-15-10-19-15 encode_761xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 selected 761 120 +309+282+138+82+85+71+36+13-1-1-2-4-2-2-2+28+2-2-2-5+2-3-6+0-3-2-3-3-2+2-3+0 encode_761xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 0 761 177 +218+69+52+36+35+12-2-1-1+1+1-1+0+1+0+0+2-1-1+0-2-3-1-2-1-1-3-1+0-2-1+0 encode_761xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 1 761 153 +174+166+65+12+4+0+1-1+1+0-1+1+1-1-1+2-1+0+1-3+1+1-1-1+1+0-1+1-1-1+1-2 encode_761xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 2 761 543 +265+73+43-2+6+14+4+26-20+0-19-12+14+4-22-3-8-4-23-24+5+3+22-9-31-22+0+14+6-29+11-9 encode_761xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 3 761 352 +172+42+10-1+2+6+11+2+0+0-8+10-10-2-2-1-3+10-17-11-1+5+0-8+2-1-4-6-3+4+0-6 encode_761xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 4 761 698 +162+57+23+29+9+12-2+15-9-5+14-7-2+2+21-1+0-9-3+3-4+2-2-5-4-2-5-3-5+3+4-3 encode_761xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 5 761 591 +159+59+27+14+9+44+11+0-8-11+0-7-1-9-2-6+6-9+5-4+3+0+5-9-8+7+2-2-6-4-9+7 encode_761xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 selected 1522 80 +324+96+35+1-2+2-5+5-10+4-8+1-1+0-1+1+0+0+1-1+2-1+2-4+5-8+2-3+2-3+2-2 encode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 0 1522 79 +97+59+48+23+20-4+3-4+3-4+4-5+4-7-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 encode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 1 1522 141 +175+42+12+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 2 1522 422 +171+70+34+30+1+3+0+1+2+2+2+2+0+25+2+10-1-3-1-3-1-2-1-2-3-1-2-1-2-1-2-2 encode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 3 1522 164 +206+93+83+53+14+2-7+3-5+0-1-1-1-1+3-7+33+11+0-1-1-6+4-7+0+5+0-7-1+1+0-6 encode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 selected 215 97 +461+68+41+2+0+0+6+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 0 215 103 +174+58+30+2+1+0+2+0+0+0+1+0+1+0+1+0+0+0+0+0+1+0+0+0+1+1+1+0+1+0+0-1 encode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 1 215 98 +81+39+18+16+19-1-1-1+0-1-1-1+1-1+0-1+0-1-1-1+1-1+0-1+0-1+1-1+0-1-1+1 encode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 2 215 581 +196+48+2+9+10+8+30-1+1+0-1+1+0+0+1+0+0+1+0+0+2+0-1+1+0-1+1+0-1+1+0-1 encode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 3 215 134 +374+60+30-3+0+4-1-2+2-2+2-4+9-5+7-9+5+0-4+4-2+3+3+1-6-5+1+0+0-3+3-1 encode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 4 215 584 +177+45-2+7+4+6+0-2+0-1+0+1-1-2+0+30-2+2+0-2-1+0-2-1+0-1-1+0-2+0+1-2 encode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 5 215 200 +150+76+52+26+23-1+0+4-4+0-3-8-2+4-1-6-4+3-2+4-3+5+2-1-2-3-7-2-2-7-2+6 encode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 selected 1152 598 +655+162+130+59+65+3+19+17+57+4-11-2-1-9-6-11+142-3-15+2-3-11-4-5+2-9-5-5-19-13+5-5 encode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 0 1152 611 +227+87+96+28+7+0+12+12-9-2-4+15-2-4-8-4-9-7-10-4+4-6-2-2-7-1-6+6+6-2+4-1 encode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 1 1152 572 +772+144+68+22+16+9+0+11-5-5-1+5+0+0+5+1-3-6+3-5+4-9-1-6-2-9+0-4+7-5+0-4 encode_857x1723 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 2 1152 1234 +577+200+91+37+36+36+27+5+30+6+16+2+7+16-3-7-14-5-5-8-8-4-13-12-6-8-12-2-9-11-11-17 encode_857x1723 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 3 1152 2180 +682+143+40-11+22-14-1+28-1+5-5+31-1+3+88-5-5-1-3-5-2-5+2+15+7-4+2+2-2-4-1+2 encode_857x1723 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 4 1152 1773 +510+177+51+30+36+30+17-4+23-19-13+3+6-6-13-21+13+0-2-1+3-13+1-13-4+6-4-4-11-11-10+6 encode_857x1723 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 5 1152 2181 +911+179+52-4+11-15+19-14-22-12-15+21-24-17+26+24+24-16+4-22-15-22+24+25-21+27-25+30-25-16+29-18 encode_857x1723round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round selected 1152 688 +504+140+34+79+55-6+10+9+36+26+19+27+43+28+2+9-21-9-8-20-8-23-23-13-15-25-21-11-18-14-25-13 encode_857x1723round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 0 1152 678 +224+92+39+51+43+7+20+16+15-5-6-10-18+2+2-16+0-16-7-10-6+9-5-5-6-16+13+6-11+7-20-6 encode_857x1723round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 1 1152 657 +825+192+54+46-7+8+2-11+6+2-11-11+2-9+4+1-2+2-6-1-10-2-9-4+3+9+0-7-2+8-18+3 encode_857x1723round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 2 1152 926 +762+165+88+73+57+56-27-7-1+13-10-13-10+4+3+3+1+15+19-8-1-12-6-9-6+1-6+0+3-17+2-15 encode_857x1723round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 3 1152 910 +550+221+125+57+73+56+59+56+56+88-14-13-10-18-13-3-6-6-6+2-24-11+4-19-17-18-17-7-13-19-16-16 encode_857x1723round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 4 1152 1071 +426+121+80+45+39+38-9+48+35+35+31+43+5+20-17-17-20+2-13-16-13-30-15-22-9-18-13-13-25-18-11-14 encode_857x1723round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 5 1152 1177 +340+123+67+42+54-10-28+54+44+33-24+36+35+50-30-18+54+1-18-26+53-34-39-34-23-19-41-22-18-22-17-39 encode_857x5167 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 selected 1322 499 +851+112-10+2+0+5-2-5-4+1-2-3+7-2+5+3-3+3+2+6-3+6-2-5+11-6+12-6-3-7+4+2 encode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 0 1322 524 +427+94+30+22+41+9+15+20-11-10-4-10-6-6+0-4-15+5-22+21-6+4-19+5-2-14+2-6-1-15+5+0 encode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 1 1322 502 +137+60+81-25+3-1-9-1-6+1+1+2-5-2-12+1+4+3+0-2+3-1-1-8-2+7-7+6+1+0-4+0 encode_857x5167 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 2 1322 1362 +441+73+2-3-3-2+31+7+26+6+16+2+1-4+3-3+1-2-2+2-10+7-12-4-9-2+8-3-12-1+0-6 encode_857x5167 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 3 1322 1261 +653+134+32+3+8+3+4+2+0+1+0-3+0+0+2-1+2+3-2-2+2-5-4-7-2-6-8-5-5+1-3+6 encode_857x5167 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 4 1322 1739 +383+91+11+3+4+0-4+0-1-2-4-3-3+0+0-1+3+1+7+5+3-1+2+0-1-3-1-3-3+1+2-3 encode_857x5167 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 5 1322 1596 +627+160+52+24+2+1-17-14-25+7+6+22-11+7-29+5-4+4-18-20+14-17-10+0+4+4-2-14-3+8+6-6 encode_857xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 selected 857 168 +273+100+24+9+4-1+2+3+2+3+2+2+2+3+2+4+4-2-2-1-2-2-1-1-3-2-2-2-2-2-1-2 encode_857xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 0 857 165 +221+69+6+2+0-1+2+0+1+2+0+2+2-1+3+0+0+1+2+2-2-2-5-4-2-5-4-5-4-4-3-5 encode_857xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 1 857 168 +50+33+3+10+32+0+2+0+2+2+1-1+3+1-2-1-3-1-1-2-1-1-1-4-1-3-2+0-2-2-1-2 encode_857xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 2 857 610 +275+71-5-1-14+14-42+14-11-14-2-23-7-23-13+18-14+11+12-1+8+9+9+12+7-7+15+22-3-15-26-4 encode_857xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 3 857 397 +175+45+9+6+1-2+2-3-4-10-6-6-4-5-9+1-1-7+0+6-8+9+5+6-7-8+3+14-1+1-4+6 encode_857xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 4 857 785 +151+82+38+4-2+4+2-2-4-4+2+1-1-10+1-5+3-3+27+4+2-6-1-7-6-11-8+0+3-1-5+0 encode_857xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 5 857 662 +190+71+21+26+10+7+7+1-5+9-6-1+2-11-5+5-5+6+1+3-7-5-2+0-4+4-10+2-3+0-3-9 encode_857xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 selected 1714 131 +239+74+1+4-9+0+0+0+0+0+0-1-2-3-2-2-2-1-2+1+1+0-1+0+0+0+1+0-1+0+0+0 encode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 0 1714 128 +73+38-5-1+0+0+0+1+0+0-1+6+0+1+0-1+7+0-1+7-1+6+0+0+6+0+1-1+0+0+0+1 encode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 1 1714 159 +134+35+6+13+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 2 1714 470 +126+40+6+6+1+9+5+6+6+6+6+8+1-1-3-1-2-1-3-2-2-2-2-2-2-2-2+0-3-2-2-2 encode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 3 1714 181 +255+76+55+10-2+2-4+2-1+5-4+1-1-2-2-2-1+3-4+1-2+3-3+2-3-1+0+4-7+2-6+1 encode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 selected 239 82 +452+44-1+0+1+0-6+0-1-5+4-6+2+3-4+12-8+8-5+3+8-13+6-1-6+5+3-2+1-2+9-9 encode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 0 239 86 +181+57+50+12-8+8-6+8-2+3-1+1-4-4+1-5-2-7+2-3-5+5-8+3-2+1+4-7+5+0-12-7 encode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 1 239 83 +71+31+13+0-6+7-7-6-3-1+5-12-1+4+5-3-9+0-1-5+6-4+7-8+4-9+7+1-8-2+2-2 encode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 2 239 647 +338+47+1+0+5+0+0+1-1+30-1+1-2+1-1+1-1+1-1+1+0+1-2+0+0+1+0+2-1+2-2+1 encode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 3 239 149 +607+31+30-4+0+0+0+2+0+0+0+1+1+2-2+0+0-2+2+1+0+3+2-2-5+5-5+1-2+0+1-1 encode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 4 239 645 +170+45+4+0+4+24+2-1+1-1+2-2-1-3+1+0+1+0+0+0-1+0+0+1+4+0-1-1+0+0-1-2 encode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 5 239 219 +169+59+58+5-2-3-5+1+3-3-5-2+0-3+4+5+0-1+2-5+6+4+2-4-2-4+3-1+1-4+0+4 encode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 selected 1317 704 +456+75+16+11+17+18+1-3+21+9-16+1-6+0+2+16+36-9-4+3-5-10-2+2+1-3-23-20-14-12-15-11 encode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 0 1317 720 +197+40+19+17+5+6-51+15-4-1-8-5+21+9-2-6+33+2-9-12+7-15+2+0-26+3-4-8+3-15-6+7 encode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 1 1317 835 +464+177-27-40-58-66+47-72+62-74-59-73-75-73+61+70+60-70-77+64-63-63-98-58+35+70+58+61+62+61+49+58 encode_953x2115 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 2 1317 1391 +655+173+29+25-8+38+3-14+19+14-13+11-3+7-6+16-8-5+1-18+2-7-11+3-4-16+0-12+7-20+5-1 encode_953x2115 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 3 1317 2311 +593+51+15+50+10-4-3+0-9-4+4-4-12-1-3-6+32+4+1-7+18+92-4-8-6+5-8-3-4+0-3+32 encode_953x2115 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 4 1317 2134 +686+106-5+14-20-19+10-1+27+6+13-15+12-6-11+17-6+39+9+14-12-12-8-3-7-16-16-14+14-8-10+15 encode_953x2115 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 5 1317 2450 +642+79+5-4-1+2+4+1+6+2+4+2+1+0+6+1+9+31-3-4-5-3+1+26-5-3-5-15-8-11-14-20 encode_953x2115round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round selected 1317 764 +494+105+23+36+4+13-2+17-11+1+2-3+7+3-3-4+0-3-13-10+2-5+5-7-15-2-2-2+14-12+2-10 encode_953x2115round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 0 1317 763 +176+84+66+3+10+15+27-8-5+2+0+0+0-14-7-7-3-1+5+15-9+3+0-4-5-5+3+17+6-4+0-6 encode_953x2115round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 1 1317 852 +505+125+30+15-10-1+18-15+4-17-3-1+18+5-11+64-7+2-6-2+9-4+3+0+3-6+6-28+1-3-6+0 encode_953x2115round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 2 1317 1078 +423+100+94+55+43-3+24-3-8+0+16+22-4+19+18+20+24+33+8-42-22+1-44-32-35-34-28-11-43-33-20-34 encode_953x2115round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 3 1317 1042 +459+167+73+62+27+9+15+59+37+17+12+25+3+5+23-8-27-15-13-23-10-3-40-16-15-14-18-19-25-21+6-33 encode_953x2115round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 4 1317 1204 +337+101+89+56+31+6+34+50+12-4+21+12+28+1-20-8-3-6-28+1-4-14-9-21-24-10-11-7-13-8-22+4 encode_953x2115round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 5 1317 1352 +312+83+19-31+22-41-9-5-20-7+17-7+16+15+31-14+20+29-30+20+16+14+15+31-22-30-31-23-34-42+0-57 encode_953x6343 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 selected 1505 503 +922+132+70+13+3-12+0+10+1-2+2-1+0+1-3-1-3-1-1-15+8-2-1-3-3-5+1+6-2-1+3-2 encode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 0 1505 569 +491+106+52+10+15+2-6+1-4+0+1-14+6-12-1+2-8-2-5-5+5+1+1-8+0-6-7+3+30+4-7+13 encode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 1 1505 503 +159+137+69+1-1-2-2+0-3+0-3+0+1-4+0-2-6+6-9+4-9+0+1-3+7-2+2+18-12+2-8-1 encode_953x6343 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 2 1505 1528 +606+89+11+15+2+6+2-19+0-17+12-9-13+1-14-16-9-5-15+9-4-11+14-25+8-17+14+8+13+4+0-3 encode_953x6343 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 3 1505 1435 +859+197+119+8+32+33+26+31+24+4+4-3-11-11-7-12-12-15-14-8-9+36+29-5-2-5-11-2-10-11-10-7 encode_953x6343 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 4 1505 1968 +510+84-29+7+11+8+8+10+8+12+8+10+11+11+8+9+13+10+12+9-20-15-25-9-30-29-32-27-28-32-28-30 encode_953x6343 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 5 1505 1800 +630+107+66+44+27-3+15+22-12+11+1+39-6-9-22-3-17+7-21+12-19+3-17+4-19+14-14-23-9-18+17-25 encode_953xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 selected 953 198 +284+75+48+34+31+12-4+20-4-14-15-13-15-15-14-16-13-15-14-15-14+9+30+33+5+5+7+5+7+5+6+6 encode_953xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 0 953 161 +209+189+112+87+51+49+43+50+43+49+45+17+20-4-21-19+4-19-18-19-22-19-22-18-22-19-21-15-24-19-20-20 encode_953xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 1 953 142 +121+74+71+74+35+42+12-1-2+0-2-2+0-2+1+0-1-3+2+0-2+0-5+0+0-2-2+0+1-1-3+0 encode_953xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 2 953 657 +294+60+38+61+26-4+18-1-3-20-20-24+9+17-17+25+16-25-10+39-12-10-8-1-10+8+6+12-17-29-37-22 encode_953xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 3 953 433 +159+40+10+5+9+2+9-4+2-12-1-8+6+12-14-10-7-1-11-13+5+10-10+6-4-2+2+3+3-5-3-1 encode_953xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 4 953 867 +134+36+1-9-3+2-2+3+0-5-5+3+0+9+10-2-7-20-14+3-4-5-1+1+1-5+4-1+1+0+3-3 encode_953xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 5 953 749 +189+65+5+2+7+9+19-8+5-4-5+0-5+0+6+3-2+1-8-1-6-3+6-2-6+0+2-2-3-5-3-4 encode_953xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 selected 1906 141 +241+92+31-3-10-7-1-11-10-10-10-10-10-10-10-10-10+6+6+5+4+6-3+5+6+5+4+6+5-3+6+5 encode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 0 1906 148 +33+21+12-18+11-11-19-18+4-18-20-18-6-9-9-8-11-9-8-10-8+12-2+14+14+11+13+14+11+12+14+11 encode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 1 1906 184 +120+23+1+1+1+1+1+1+1+1+1+1+1+1+1+1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 encode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 2 1906 516 +129+34+5+1+0+2+0+0+0+0+1+1+0+0+1+0+0+1+1+0+0+1+0+0+1+1+0+0+1+0+0+1 encode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 3 1906 226 +188+29+5+4-13-23-29-26-25-23-31-25-31-26-27-23-5+11+9+10+11+9+10+11+9+10+11+9+10+11+9+10 encode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 selected 254 83 +468+53+3+3+1+8-7-4+3+1-8-1-3+5-2+0-4-10+6-1-7-7+8-2+3-1-9+6-2-7-4+4 encode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 0 254 85 +181+59+30+3+5+3-5+1-1+6-3+3+0+0+2-3-7+11-3-2+0-1-5-4+10-6-2+0+0-2+3-3 encode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 1 254 82 +53+56+25+6-3+2-7-3+0-1+8-7+1-4-5+2+1+1+3+0+3-7+7-2-2-4+6-11+7+3-4-4 encode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 2 254 681 +135+52-2+1+2+0-1+1-1+1+0-1+2+0+0+0+28+3-2+1-1+0+0-1+1+0+1-1+1+2+2+0 encode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 3 254 161 +590+70+29+33+31+29-3-4-2+2-2-4-1-6+0+0-1+3-5+3+3-4+2-2-4+0+1-4+11-2-2+6 encode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 4 254 683 +214+26+4-1+0+1+0+0-1+0+0-1-1-2-2-2+30-2+0+0-2+0-2-1+0+0+0+0+0+0+0-1 encode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 5 254 234 +151+93+32+5-1-1+1-9+3-2+0-4-1+5+4-1-6+2-3-1+0+0-1-3-4-1+4-6+4-10+3-1 encode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 selected 1423 757 +454+55+50+0+19-13+5-17-11-5-7-5+4-1-8-7-2-16-2+6+11-6+4+39-3+6-6+1+0+4+1+14 encode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 0 1423 756 +101+90-3-7-8+2+7+1+1+1-12+4-4+4+16+7-4-1+13+5+24-4-5+17+0-3-9-4-3-7+7-1 encode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 1 1423 880 +433+221+70+6+11-13-13+14-15-6+7-10+11-12+12-13+25+7-9+11-3-17-3-13+34-3-43+7+3+9-13-21 encode_1013x2393 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 2 1423 1473 +534+206+67+56+17-13-2+9-4+2-14+8-3-2-21-18-6-18+9+7-2+7+12-17+10-5-6-3+1-8-6-9 encode_1013x2393 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 3 1423 2429 +531+43+7+33+2-1-2+33-1-8-4-4-8+10-9-8+14+3+3+15-19-3-17-4+2+5-22-6-16+59-19+19 encode_1013x2393 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 4 1423 2258 +435+125+47+23+1+57+17+44+40-6+5-6+3+16-6-8-14-16-18-21-18-14+17+2-12+46-22-17-17-17+7-1 encode_1013x2393 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 5 1423 2437 +592+63+54+25+5-1-5-7-9-7+29+4+24-12-14+7-11-6-18-15-10-17+24+17-2+27+4-1+5+4-22-7 encode_1013x2393round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round selected 1423 854 +396+53-2+16+8+12+12-16+2+16+8+10-13-26-8-22-22-23-17-20-5-11+2+3+2-4+9+9+3+4-1-4 encode_1013x2393round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 0 1423 855 +88+51+27+5-22+16-16+10-10+18-21-10-12-18-2+1-3-19+4-1+2+34+25-2-2+2-4-2+7+9-4-3 encode_1013x2393round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 1 1423 965 +345+46+24+17+4-2+0-13-10+1-6+1-6-14-14-12-5-17-5+26+5+12+10-8+31-25-17+8+6-7+1+8 encode_1013x2393round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 2 1423 1130 +351+77+49+17-1+13+8+29+3+40-6+25+61+23-19-8-6-6-14-6-14-3-16-19+7-14-18+5-24-10-19+0 encode_1013x2393round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 3 1423 1134 +366+91+83+30+35+3+8+16+0+15-5+8+7+42-4+2-5+5+10-13-20-14+8-18-18-25+3-15-13-11-27-17 encode_1013x2393round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 4 1423 1311 +218+75+50+0-29-3+12+4+0+8+10+20+24+8+13+5+15+2+2+33-15-23+2-26-16-16-24-27-26-35-16-11 encode_1013x2393round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 5 1423 1442 +170+23+28+37+21+11+30+12+32-4+22+29+32-7-16-6-13-5+34+3-19-16-19-22-17-15-13-14-32-23-19+8 encode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 selected 1623 608 +527+135+171+35+32+14+37-11+3-17+24-23+23+35-33-10-15-4-10-17+26-16+3-15-1+94-17-11-15-8-14-6 encode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 0 1623 607 +351+87+58+5+30-31+5-3+1-4+45-7+0+6+11+2+1+5-11+3-5-5+3-4-7+17-9-13-17-7-1-20 encode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 1 1623 600 +579+319+152+60+38+14+13-4-5-8+1-3-4-5-3+1+4+1-5-2+6+8+2-3-2+0+3-8+0-6+0-5 encode_1013x7177 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 2 1623 1536 +422+170+39+13+9+22+11+19+31+5+26+9+2-9-5-12-7-7-2-9-8-11-9-11-1-5-12-1+0-4+5-3 encode_1013x7177 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 3 1623 1540 +647+242+77+47+38+30+22+10+8+1-1+2+0+0-2+3-6-11-6+5-9+2-10+4+2-6-12-15-7-7-9-5 encode_1013x7177 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 4 1623 1992 +409+176+30+35+20-2-2+9+1+0+3+29+0-8-4+0-5+17-4-5-6-4-7+0+2+0-5-10+26-6-1+2 encode_1013x7177 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 5 1623 1918 +699+294+121+34+53+79+11-10-5-5+19-12-13-5+26-23+23-8-23-15-12-16+14-10-26+52-9+14+6-27-17-8 encode_1013xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 selected 1013 197 +263+629+51+57+59+23+43+3+2-2-4-4-6-4-4-6-5-3-6+4+27+31+11-7-9-8-7-8-8-7-9-8 encode_1013xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 0 1013 150 +250+263+132+95+19+1-2-2-1+3-3+0-1-2-1+0+25+0+1-4-3-1+1-1+0-1-2+0-2-3+5-3 encode_1013xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 1 1013 188 +96+139+34+36+25+0-1-2-2+0+1-1-1+0+0+0-2-1+0-2-1-1+0+0-1-1+1-2+0+0-1+0 encode_1013xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 2 1013 700 +239+89+5-18-14-5+6-19-17-2-2-10-26+5+7+33-9+20-27-17-3+13+16-16+16-11+14-1+13-7+1+9 encode_1013xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 3 1013 447 +180+51+16+18+16+19+19+2+1+7-7+15+6-7-3-11+4-4-3-18-4-2-4-2-6-14-4+5+1-4-19+3 encode_1013xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 4 1013 920 +223+71+26+4+13+6-1+4+1+1-5+3+1+4+8-6-4+2+0-1-6-10-2-1-6-6-6+0-9+1-4+1 encode_1013xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 5 1013 792 +178+63+39+3+26+2+0+4-4-2+1+4-3-2-7+3+2-2-10-3-4+3-10+2-4-1-7+6+2-6-3-7 encode_1013xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 selected 2026 112 +236+66+46+38-1+1+2+1-1+1-1+0+1-1+0+1-1+0+1-1+0+0+1-1+0+1-1+0+1-1+0+1 encode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 0 2026 115 +29+48+42+9+36+36+8+7+7+7+7+7+7+7-5-4-4-3-5-4-4-4-3-5-4-4-4-3-5-4-4-4 encode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 1 2026 196 +155+43+13+2+0-1+0+0+0+0-1+0+0+0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 2 2026 548 +168+41+9+6+2+1+2+3+2+1+1+1+1+2+3+1+12-1-3-1-3-2-3-3-3-3-2-3-2-3-3-3 encode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 3 2026 252 +190+30+31+4+4+5+5+0+1-1+0+1-1+0+1-1+4+19-1-1-1-1-1-1-1-1-1-1-1-1-1-1 encode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 selected 320 104 +234+91+31+18+0-1-2-3-5+10-2+1-9+6+2-13+3+1-9-1+13-17+16-5+0-3+0-5+4-11+15-12 encode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 0 320 107 +187+57+29+9+0-4-9+7-11+0+1-9+1-10-2-8+8+1-11+1+2-1+2-3+5-3+0-9+2-7+2-5 encode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 1 320 105 +60+48+46+18-4+3+3-10-2+6-7+4-13+0-6+5-3+3+5-13+10-5-3+3-3-7-1+2-6-4+0+0 encode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 2 320 845 +217+166+94+42+24+1+0+0-1+1+0+1-2+1-1+0-1-1+0+0+1-1+1-1-1+1+1-1-1-1+0+1 encode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 3 320 201 +653+60+23+28-4-4+1-6-3-2-6-3+1+3-2+4+1-3+1-1-2+6+2-1+1+0-7-1-3+2+2+4 encode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 4 320 844 +242+33+57+48+28+31+28+46-4+0-1+0+1-2+0+1+0-2+1-5+1+1+0+0+0+0-2-1+1+0-1+0 encode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 5 320 291 +176+38+33+11+4-1-1+4-2-2-1+6-6+0-3-6+2+1-3+8-3+0-1-3-1+0+2-1-2-3+3+2 encode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 selected 1815 878 +440+104+44+20-2+5-11+5-7+5+3+1-6-8-10-2-5+3-9-7-9-5-2-7-4-5-7+14+15+16+19+25 encode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 0 1815 884 +172+46+26+27-8-21+22-10-3-2-18-11-4-8+37-18-6+24-4-8-8-2+23-7+23-13-10+28-8+29-9-1 encode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 1 1815 984 +537+196+36+20+25-3-8-11+11+9+7+1+5+14-19-20-8+11+8-19-3-4-9+0-3-2-17-3-2-2-5-3 encode_1277x2627 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 2 1815 1881 +917+123+10+3+28+8+3+2+34+6+1-7+17-11+9-20-17-13-13-12+5-5-23-9-16+5-15+8+19-2+8-15 encode_1277x2627 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 3 1815 3062 +670+68+25+22+33+5+2+20-6-12-2-11+8+30-12+4+3-11+65-14-3-12-6+4-11-4-12-1-13+6-1-6 encode_1277x2627 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 4 1815 2857 +538+60+41+40+9+8+8+11-17+3+23-5-26-5+16+12+1+46-34-30-32+5-36-34-1-37-31+5+1-7-34+8 encode_1277x2627 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 5 1815 3058 +629+57+9+12+10+14+5-4-5-8-6-3-10-5-7+31-7+15-3-4-6-6-9-4+35+31+26-7+33-5-6-11 encode_1277x2627round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round selected 1815 1000 +381+90+42+18+11+1-2+8-7+5-1+0-6-2+21+0+1+2+1-2-8-4-5-4+0-4+10-5+6-6-1-1 encode_1277x2627round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 0 1815 987 +145+72+79+19+8+14+25+7+12+2-3-6-5-11-2-11+3-7-9+6-13+35-4+1-9-1-5-8-5+1+1-1 encode_1277x2627round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 1 1815 1095 +617+112+47+24+38+1-9-15+2+2+5-3-10+0+9+2-2+0-11+2+0-11+2+3-2-11-4+4-9-5-14+0 encode_1277x2627round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 2 1815 1388 +642+80+14+16+49+10+13+22-17+11+49+32+14+0+39+8+15+0+4-24-35-23+7-15-34-23-37-28-21-18-37-20 encode_1277x2627round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 3 1815 1383 +352+125+39+17+1-2+6+24+7+6-3+1-3+9+34-1+1-15-2+10+8+35+2-10-19-24-24-38-34-44-41-26 encode_1277x2627round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 4 1815 1589 +230+58+20+5-6+8-15-38-25-28-37-57-1+6+2-2+40+0+6-7+11-14+0-10+24+14+5-3-3+4-1-13 encode_1277x2627round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 5 1815 1744 +196+63+46+22-24-22-24-19-35-26-11+31+20+2+2+0-8-1+27-3-2+5+2-2-1-6+2-2-9+8+4+35 encode_1277x7879 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 selected 2067 647 +1072+152+51+41+11+6+5-2+11-5+9+3-2-1+6-8-1+0-1+9+0-2+1-3+3-5-20-12-13-22-15-13 encode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 0 2067 723 +454+66+28+7-3-12-7-5+45+8-7+0-2-11-1+3-10-3-8+2-6-2-4-6+3+21+18+7-6+5-8+5 encode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 1 2067 635 +234+85+28+44+32-2+36+24+31+1-9+4-8-7+0-6-6+2-5-6-9-3-2-5-5-6-7+146-7-3+15-5 encode_1277x7879 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 2 2067 2025 +580+113+51+28+4+9+8+3+4+1+1+17+31-2-1-5-2-1-7-6+0-5-4-8+3-7-7-4-2+0+2-4 encode_1277x7879 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 3 2067 1924 +663+125+19+12+14+7+7-3+6-3-5-1+0-2-1-3-7+0-4-3+3-3+3+5-4+1+1+0-3-3-4-6 encode_1277x7879 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 4 2067 2764 +441-23-114-148-132-134-133-156-159-134-136-45-40-39-38-36-48-32+363+353+362+365+353+363+354+354+362-61-63-62-61-52 encode_1277x7879 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 5 2067 2436 +565+101+11+13+5+33+26+19+2-5+4-1+17+4-14-11-14-13-11-3-3-12+31-13-26+50-12-21-23+19-6-5 encode_1277xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 selected 1277 226 +351+273+132+38+56+78+8+1+0+1+0+0+0+1-1+0+2+7-2+0-3-2-1-3+0-1-3-2+0-3-2+0 encode_1277xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 0 1277 243 +248+189+122+53-6-10-12-17-20-19-19-21-19-18-19-20-18-20-19+42+36+38+16+9+11+13+8+12+12+9+13+10 encode_1277xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 1 1277 186 +224+124+68+37+82+38+15-1-5-1-2-2-2-1-2+25+6-5-3+1-5+0-4-1-2+3-4-5-3+0-1-3 encode_1277xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 2 1277 877 +250+47-14-21+45+19+3+52-31-16+21-19+26-14+0+0-9+9+29+3-12+7-3-18+8+3-16+14-21-5-2-4 encode_1277xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 3 1277 587 +166+54-4+0+1-2+19-9+13+10-11+12+4+6-2+9+6+11+7+0-4+0-7-13+2-8-5-1-4-11-9-8 encode_1277xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 4 1277 1153 +162+88+5+10-1+0+0+3+1+0-1+3+9-4+6+0+1+5+3+0+5-7-5-2+2-13-10-11-4-9-4-2 encode_1277xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 5 1277 988 +174+45+45+12+11+16-4+39+11+51+2+6-12+1-6+0-7+4+1-10-7-10+1-22-3-8+1-2+5-10-8-6 encode_1277xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 selected 2554 127 +310+113+47+20+24+31+2+0+0+0+0+0+0+0+0+0+0+29-1+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 0 2554 126 +82+38+14+78+48+2-1-1+1-2-1+1+26-1+0-1-1-1+0-1-1+0-1+0-1-1-1+0-1-1+0-1 encode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 1 2554 237 +169+48+52+32+7+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 2 2554 682 +184+85+38-3+3+3+3+2+2+2+2+2+2+2+11-3-1-2-1-3-3-3-3-3-2-2-3-1-2-1-3-3 encode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 3 2554 334 +188+22+6+1+1+22+8+2-24-24-24-25-27-27-27-28+0+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 selected 2 14 +203+61+30+5+5-1+0+0+0+0+0+0-1+6-5+0-1+0+2-2+6-6+2-1+0+0+0-1+2-2+1-1 encode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 0 2 14 +48+32+24+4-2+0+1-1+2+0-1+0-1+0+0+0+1-1+1-1+1+0-1+3-2-1+1-1+3-3+3-3 encode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 1 2 13 +75+31+6+0+0+5-4+2-3+1+0+1-2+6-5+0+0+2+0+0+0-2+2-2+1-1+1+0+2-2+1+0 encode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 2 2 13 +76+55+23+26+7-3+5-4+0+1+1-2+1-1+1-1+0+5-3-2+2-1+1+0-2+0+1-1+1+0-1+4 encode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 3 2 14 +69+56+16+23+23+1+3-2+3-1+0-1+3-2-1+0-1+1-1+2-2+2-1+0+0+0+0+1-1-1+4-3 sort_int32 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 selected 0 23 +895+150+44+9+9+8+6+4+5-3-1-1+1-3+0+0-1+1-3+0-2-1-1-1+1-3-1+0-2+0-1-1 sort_int32 selected 1 21 +13+6+6+3+2+5-1-1-1-2-3+1-1+0-4-1+1+0+0-5+0+0-1+0+0-4+1-2+0-2-1+0 sort_int32 selected 2 22 +93+90+35+5+1+0+0-2+1+1-1+0-1+2+0+1-1-1+0+2-3+2+0+0+0+1-1-1+1+0+0-1 sort_int32 selected 4 28 +55+72+37+8+8+0+1+0+0+1+0+0-1+0-1+1-1+1-1+2-1+0-1+2+0+0+0+0+1+0+0-4 sort_int32 selected 7 43 +57+80+62+20+13+18+10+11+0+1-5+4-13-5-2-17-7+5-6-10+6-7-6+5-20+7-23+3-16-5+3-18 sort_int32 selected 11 120 +3021+106-21-49-40-2-4+16-1+5+0-4+2+0+0+5-1-1-2+8-2-1+1+9-9+8+3-7-5+2-1-6 sort_int32 selected 17 183 +419+170-32+10+7-2+3+6-5+2+0+48-29+58+50-54+0+5-3-3-3-3-5-4-1+5-7-2+12-6-6-8 sort_int32 selected 26 188 -3-6-10-5+8-2+6-2+6+17-4-9+3-7+0-5-1+2+3+6+3-5+70-48+2+3+3+1-8+0-6+2 sort_int32 selected 40 248 +1591+494+40+1+17+0-2+20-6+14-19-9+11+6-6+86-6+1-6-11-5+7-9-9+2+9-10+4+1-4+4-7 sort_int32 selected 61 288 -4+12+5+0-3+0+4-7+0+0+2+5-4+1-3+1+6-4+3-6-7-1+2+2-4-5+2-5-1+14+5+1 sort_int32 selected 92 537 +1472+828+104+14+19+10-15-18+7+5+7-16-1+4+9-28-17-12+13-9-25+2-2+2+14-17-20-33+10-12-3+3 sort_int32 selected 139 964 +1965+849+59-7+15+81+9+1-1+1-15-6-1+1+9-6-5+70-6+19-7-3+9-6-5-5+22+1-1+1-16-8 sort_int32 selected 209 871 +552+248+70+2-9-3+17-8-4-2+2+9+8+19-2+0+0-3-10-1-8-7+4-2-2-7+17-11-3+4-24+4 sort_int32 selected 314 1436 +1752+744+143+94+32-2+4-4+10-12-11-2-14+23-25-9+6+11+12-1+2-9-2+4-10-9-5-9-8-2+4+106 sort_int32 selected 472 2104 +1161+731+335+90-4-8+11+41-3-10+10-19-9-15-4-24+35-45-12+5-15-16+12+5+2-7+3+5+0+7+1-2 sort_int32 selected 709 3390 +3268+1950+355+121+78+2+15-10+13+7-4+0-15-4+8-6-6-6-1+3+0-12-8+5+0-13-7+12-17-25-11+6 sort_int32 selected 1064 5758 +4084+995+553+437+295+103+105+93-37-32-12-36-21-22+88+251-48-44-55-49+193-50-66-49-33-59-25-9-34+1+1-24 sort_int32 selected 1597 8801 +2324+701+350+261+97+136+89-47-36-33-30-31+55-53+2-73-77+81-35-52-57+70+344-10+32-67-40-11-29-45+52-45 sort_int32 selected 2396 14407 +4174+1026+453+271+130+190+221+188-7+38+0+13-55-62-49-69-83-63+84-61-61+104-100+43+23-86-57+26-78-38-2-94 sort_int32 selected 3595 23357 +2597+602+94-150-239-607-617-433-565-500-210-228+127-63+0-59+231+197+180-47+109+76+23-70-33-17+107+28+174-52+61+131 sort_int32 selected 5393 37394 +4101+943+470+295+111+129-155-141+117-21+29-49+84-132-118-52-130+33-42-167-37-88+49+171+85-96-83+9+67+160-105-103 sort_int32 selected 8090 61414 +3700+1128+799+304+414+126-7+614+320-53-110-168-20-101+25-66-105+42-85-19-151-118+62-86-153+11+127-61-155+222+105-154 sort_int32 selected 12136 100208 +3686+854+568+797+84+146+200+221-52-49-55-97+43+85+185-166-62+639+1247-28-432-70-341-94-168-23+47-289-369-133-105-65 sort_int32 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 0 0 21 +89+43+8+4+1+3-3+0+0-1-2+0-2-2-1-2+1+0-2-2+1-1+0+0-3-1+0-1-1+0-2+0 sort_int32 0 1 22 +31+73+6+7+0+28+7+3+2+7+2+2-1-1-1-2-1+0-1-1-2+0-2+0-1-2-1+0-1-2+0-1 sort_int32 0 2 21 +79+43+33+35+31+29+3+0+0+0+0-1+1+1+0-2+0+1+1+1+1-2+0+0-1+1+1-1+0+0+0+0 sort_int32 0 4 25 +68+70+38+5+1+3-2+0+0+1+0+0+0-1+1+0+1-1+1+1-1+0-1+2-3+0+3+0-2+1+1+0 sort_int32 0 7 46 +60+77+17+17+18+18+10+7-4-3+25-7-12+4-26+3-23+12-6-19-6-6-15-4-6+5-12+6-17-2+8-16 sort_int32 0 11 121 +116+86-27-67-12-13+3+3+10-7+2+0+0-1-2-4+3+4-1-9+0+5-1+2-3+4-1-4-2+2-2+2 sort_int32 0 17 186 +150+58+26+9+0+5-1-4+1-8-2-10+1-3-1-11+3+32-32-13+2+3+6-6+3+9-2+34-35+0-10-2 sort_int32 0 26 187 +16+1+6+9+13-4-5+10+67-58-4-1-9+2-8+4-4-1-5-9+6-9-2-4+3+4-2-3-4+0+5+4 sort_int32 0 40 251 +222+76+7+1-1-6+15+14-10+8+0+2+6-3-10+12-10-1-6+12-14-5-12+4+19-20-6-6+7-1-4-10 sort_int32 0 61 288 +50-22+5+9-2-12-3-2+16-3-5-3+2-1-2+8+5-1+4-4+7+9-3-8-8+2-8+5+3-1+3+2 sort_int32 0 92 539 +283+166+17-1+4+13-13+8-19+9+20+16+7-6-13+12-1-7-19+2+16+18-30-8-32-25-4-12+13-8-3-13 sort_int32 0 139 962 +255+164+183+8+3-8+3-4-2-15+5+8+23-11-7-9-5-15+2+3-6+1+2-21+9+1+45-6-2-1-7+8 sort_int32 0 209 984 +272+108+24+18-2+5+36-12+13+35-7-4-8+0-10+0-15+10+15-3+8-1-14-12-5+3-9+42-15+6-14-9 sort_int32 0 314 1527 +470+188+100+27+75-7+27-11-12+12+19-17-20-8-8-2+8+13-4-5-15-3-9-24-6-30+8+9-9+5+8-3 sort_int32 0 472 2309 +668+307+62+99+52+151+7+10+35-3+6+0-23-16+23-17-32+5+18-3-11-14-42+2-21-18-4-14-17-9+13-5 sort_int32 0 709 3589 +955+360+11+1+18-10+30-7-10+40-12+210+53+17-19-5-30+74+8-7-23-5-9-3-12+24-17-22+19-28-2-11 sort_int32 0 1064 5963 +950+406+435+152+126-23-53+68+110-45-11+217-43+25+40-21-22+27-4-5-22-40-41+51-20-34-7+53-47-32-41-30 sort_int32 0 1597 9117 +1501+400+317+320+18+85-31+0+0-27-32+51-25-58+37-59+45-35-88+74+12+77-48-32+52-32+34-2-34-31-11-68 sort_int32 0 2396 14826 +1106+430+277+232-18-8+31-17-17+22-7+53+11-37-41+142+9+2+26+204-29+21-42+158-3-22-48-12-48-22-64-78 sort_int32 0 3595 23410 +1445+425+321+172+135-23+35+171-1-19+155+3+61+85+54-25+3-21-72-47-94-10-187-94-32-70-44+0+27-68-8-86 sort_int32 0 5393 37387 +1961+825+336+316+219+166+98+113-129-24-45+64+142-21-16-12-74-154+28+148-36-30-80+11-146-107-144-4-122-10-52-61 sort_int32 0 8090 61351 +1517+783+542+327-17+193-10-45+59-107-187+166-102+37-64+127-107-91-258-45-76-56+246-101-67-139-55-31+125+212-51+307 sort_int32 0 12136 100160 +1543+908+67+709+465+9+135-99-249-331-172+282+239-9-133+185-141-263-14-15+121-2-56-306-159+216-189+54-80-3+162-187 sort_int32 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 1 0 21 +849+71+8+6+6+4+3+0-1+0+0-1+0+1+0+0+1-1+1+0+0-1-1+1+0-1+0+2+0-1+0+0 sort_int32 1 1 22 +52+6+3+4+3+3+1+3+1+3-1+2-3+0+0-1-2+1-2-2+0-2-1-1-1+0-2+0-1-1-2-1 sort_int32 1 2 22 +137+59+38+6+3-1+2+5+0+0+0-2+2-1+1+0+1-1+0-1+1-1+0+2-1-1+0+1-1+2-2+0 sort_int32 1 4 27 +441+48+13+12+8+17+8-4-2+1-3+0-1+2-4+0-3-1+2+3-7+0-2-1-1-1+1-2-2-3+1-2 sort_int32 1 7 54 +266+91+39+27+4+12+32+34+36+23+23+5+13+5+5-16-3-6-10-13-7-15-8-21-6-19-6-16-16-7-9-13 sort_int32 1 11 122 +1034+37-32-51-51+3-6+5-7+9-8+8-1+6+0+2-4-6+2+1+12-7+5+14-4-2+9-2-3+11-9+4 sort_int32 1 17 193 +584+269+117-18+60+4-8+11+0-2+7-16-1+0-7+0-3-6-10+2-4+3+1+0-2-2+6+8-7+3-1+4 sort_int32 1 26 192 +77+1-9-1-4+6+52-68-3+66+45-63-1-3+2+10-12+1+1+1-1+8-5-2-3-1-4+4+0+5+7-12 sort_int32 1 40 292 +1174+433+78+35+51+21+13+75+2-13+89+3+3-5+1-10+0+3-8-4-4-2+1-10-6-1+0-4-3-3-2-14 sort_int32 1 61 311 +121+29-12+20-10-4+5-3+18-9+32-24+8+10+2+0+5-7-13+3-4-7+12+3-5-6-5-2-2+3+8-6 sort_int32 1 92 564 +1382+310+94+4-4-3+18-2-3+0-3-12+6-4+13-6+15-3-8+0+3-7+3-18+1-5-6-10+0+2+5+1 sort_int32 1 139 1030 +1966+366+91+64+34+7-1-7+12+14-3+13-6-22-16+3-24+6-3+45-7-9-4-20-6-7+10-13+5-5-20-6 sort_int32 1 209 1046 +260+90+45+11+10+29+17+7-5+23+7+0-11+1+3-18-8+7+4+80-9-23-10-15+1-6-15-3-6-14-6-15 sort_int32 1 314 1647 +2066+404+111+68+46+68+3-5+9-11-9+15-14-18+68-15-12-11-16-32-9-12+91+78-1+17-28-11-16-9-6-3 sort_int32 1 472 2470 +1159+475+109+85-3+4+35+12+167+3+17-24+1-7-5-10-14-43+31-30-21+10+16-31-1+61+0-18-22-26-10-27 sort_int32 1 709 4002 +3365+985+261+141+160+157+43-3-16+64-12-29-64-53-64-49+20-44-64-52+150-18-35+17+60+14-58-60-34+143+21-43 sort_int32 1 1064 6399 +3438+1737+352+355+199+169+50+129+172+209-7+41-87-82+84-24-60+4+7-117-88-135-33+54-146-17-38-134-79-26-158-82 sort_int32 1 1597 9997 +2126+508+259-27+131+9+17-135+86+84-278+76-43+66+237-15-91+90+64+233-63-174-159-91-222+25-104-10+99-137-114-91 sort_int32 1 2396 15668 +4073+1168+617+482+111+216+291+182+68-6+130-134+37-64-79+22-23-186-86-163-78-84-95-47-47-36-89+86-10-77+117-47 sort_int32 1 3595 24724 +2250+644+611+380+162+146+3+213+197-129-30-28+21+120+22-39+74-156-109-106-175-20-8-2-14-62+4-25-145-113-24-147 sort_int32 1 5393 39699 +3110+1112+792+221+72+458-1+16+222-94+157+112+93+3-31-205-225+19-72+94-71-126+12-157-255-45-60+159-108-141-52-258 sort_int32 1 8090 64849 +3347+671+752+213+46+22+315-111+130+81+35-57+189+388+32-92-213-150-28+51-277-236-138+25+72-173+88-228-296+195-276-295 sort_int32 1 12136 103491 +3946+1072+519+1043+753+422+112+149+225-84+26-32-231-135-119-171+127+27+164+125-158-107+23-182-243-23-292-121-160+69-233-30 sort_int32 2 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 2 0 18 +86+34+1+3+2+0+1+1+2+2+1+2-2-1-4+0+2-2+2-5+31+2-5-2-4-1-5-1-4-4-1-4 sort_int32 2 1 16 +29+4+5+38+37+6+3-2+1-2+0+22+3+0+1+2-3-2+1-3+0-2-1+1-2+0-3+1-2+0-2-1 sort_int32 2 2 28 +264+96+4+4+0+2+0+0-1+1+0+1+0-2+0+1+0-1+3-1+0-2+1+1-1+0+2+1+0+4-1+0 sort_int32 2 4 50 +367+100+46+12+3+2+1+4+1+0+1+1-1+1+1+1+1-1-2-3-4-2-3-1-3+0-2-3-1-2-1-3 sort_int32 2 7 101 +763+293+5+6+5+2+1+0-1+0-1+0-1+1-3+10+2-2-2-1+0+0+0+0+1+0-1+0+0+0+0+1 sort_int32 2 11 195 +871+491+79+21+20+16+3+3+1-2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 17 337 +1898+489+165+31+16+3+1+1-1+1+7-8+0+0+1-1+0+1+1-2+0+0+0+0+0+0+7-2+1-1-1+0 sort_int32 2 26 577 +1987+649+91+53+33+3+5+0+0-1+1+0+0-1+1-1+1-1+1-1+0-3+7-5-1-2-2+4-4-3-1-2 sort_int32 2 40 998 +2460+926+226+139+50+63+14+13+42+8+32-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3 sort_int32 2 61 1676 +2762+1035+734+475+374+220+104+130+11+65+0-5-6-23-5-5-24-4-7-22-6-6-22-6-5-24-5-6-23-5-6-23 sort_int32 2 92 2873 +3452+1408+797+631+526+308+792+245+29-3-2-3-3-2-3-4-3-2-4-2-3-4-2-3-4-3-2-4-2-4-2-4 sort_int32 2 139 4968 +5905+2387+1625+1637+919+793+604+548+202+197+38+158-54-51-47-54-60-60-49-65-42-56-46-52-68-62-48-53-62-53-54-60 sort_int32 2 209 8496 +4710+2346+1394+998+774+491+584+406+149+36+58-40-32-17-43-61-38-21-33-20-38+91-24-44-41-41-36-25-29-45-67-18 sort_int32 2 314 14433 +5509+3412+1908+1146+986+1433+813+523+284+500+474+220+125+122-156-147-205-212-188-197-132-198-197-176-189-192-189-203-208-187-184-179 sort_int32 2 472 23703 +3351+919+427+394+306+94+313+249+46-54-70-65+34-12-25-6-29+32-42-67-69+4-12-5+15-15-41+44-42-53-26-11 sort_int32 2 709 39871 +7164+2788+1538+988+835+361+766+162+16-14+54-27-43-15-76+9-80+627-113+2+5-4-21-46-48-33-24-106-28-47-93-47 sort_int32 2 1064 64515 +5771+3273+1936+864+791+432+673+508+259+185+35-37-82-5-81-76-66-11-86-74-54-98-49-123-127-92-93-69-80+110-55-12 sort_int32 2 1597 106722 +3766+1162+934+325+419+287+139-105-23-2-109-26-45-51+137+95-13-203-176+27-42+45+132-91-133-17-215+55-127-95-21-18 sort_int32 2 2396 175366 +3760+1898+1895+249+164+154+71-89+117-130-73+12+62-180-102-101+143-104+228-121-35-35-24-51-141+406-13-106-171-34-121+159 sort_int32 2 3595 289781 +4648+2760+2528+1114-225+515-422+323+40-40+102-243+26-56-261+238-152-30-164-533+227-247-360+364+342-150-242+110+55+107-359-82 sort_int32 2 5393 508981 +7720+3647+3286+1411+2761+1705+1544+1319+5025+1388+660+436+372-565-1327-1126-588-669-1077-1102-173+1089-865-1170-523-288-497-749-1079-567-913-640 sort_int32 2 8090 843470 +4710+1815+900+1806-471+1122+458-1068-270-232-817-505-251-1-378+885-36-796+213+792+860-456-211-885+539+900-491+536-278+42-508-515 sort_int32 2 12136 1342843 +7640+3220+3897+822+1499-2692-34-310+2961+1740+2064+907+1270-2954-1469+264-1673-2230-3953+333-1090-59-4219+696+1584-1825-417-1283-200-318-2710+886 sort_int32 3 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 3 0 16 +89+30+7+2+2-1+2+4-6+0-2+1-1-1-2-2+0-1-1-2+2-3-2+0-2+5-5-3+3-3+0-3 sort_int32 3 1 17 +40+42+4+3+5+41+6+3+5+3-3+2-4+0-4-3+1-3-4+2-4-3+0-3-1-3-1-2-1-4-1-3 sort_int32 3 2 23 +160+106+4+5+1+3+4+4-1+0+0+64+4-1-2+0-2+0-1+0-1-3+1-1-3+0-2+1-3-1+0-1 sort_int32 3 4 40 +275+90+45+7+5+5+1-1+0+0-2-2-1-1-1-1-2+0+1-2+1-3+0+0-1-2-1-2+0+0-1-2 sort_int32 3 7 77 +636+209+35+14+75+41+6+3-10-7-1+0-5-3-4+3-5+3-8-2-5+1+39-1+0+3-9+1-6-4-3+0 sort_int32 3 11 144 +957+333+111+17+11+7+2+4-2-2-5+2-8-2-2+33-3+1+1-5+2-3+1-2-1+1-1-5+0+0-2+1 sort_int32 3 17 241 +1640+444+92+19+11+5-1+1-3+0+2-1-3-1+0-3+1-1-4-1+0+2-1-4+0-3+1-2-2+1-2-2 sort_int32 3 26 431 +1977+759+290+244+19-2+0-6+0-6-2-2-5+6-9+3-8+6+13+1-8-5+30+3-19-7-6-18+38-6-12+38 sort_int32 3 40 836 +2183+733+344+292+14-1-3-3+3+0+5+2-1-3-1+1-1-1+1-1+0-2-1+5+0-2+0+5-2+1+1-1 sort_int32 3 61 1349 +2480+1059+446+67+95+10-24+107-14-39+55-19-33+57+62-15-28-32-33-35+95-20+47-13+1+36-15-32-28-27-33-27 sort_int32 3 92 2399 +2848+1431+1022+396+854+527+99+170+15+76-4+78-19-11-19-24-16-28-4-35-19-19-24-9-13-24-28-14-11-23-17-28 sort_int32 3 139 4312 +5533+3058+2202+1148+1222+716+921+449+239+147+108+67+57+19-15-22-86-81-89-82-97-82-93-94-88-100-89-100-96-10-88-82 sort_int32 3 209 7632 +5232+2790+2176+1821+1483+649+195+329+315+291+33-132-80-25-111-108-139-119-141-67-98-65-73+428+8-102-79-74-117-96-129-83 sort_int32 3 314 13073 +6340+3676+2696+1272+959+740+165+252+302+66+24-58-23-60-12+22-49-83-69-27-5-60-12-9-56-15-37-34-6-71-59-41 sort_int32 3 472 21855 +2681+1277+588+455+257+285+330+399+40-70+60+21-49-14-98-26-89-100-81-50-19-160-38+375-183+153-210-131-93-122-15-81 sort_int32 3 709 37845 +7835+3995+2592+2601+1465+1989+1373+725+561+589+736+166-173-142-278-230-287-272-167-178-194-167-173-168-193-163-169-210-149-247-230-214 sort_int32 3 1064 63028 +5973+5228+4192+2691+1529+1998+1372+1205+1292+965+398+257+685+688-17+21-141-384-43-808-969-563-1219-760-669-834-911-858-956-992-846-868 sort_int32 3 1597 103670 +4180+2305+2511+1645+1455+1065+401+1145+146+77+101+89-1-31+152-204+22-121-17-119-114-65-153-132-136+48-130-157-152-41-247-127 sort_int32 3 2396 171869 +6107+3442+2700+2418+925+929+328+215+52+21+20-47-207-227+9+252-151-86-89-233+41-116-121+119-207-123-51-445-67+25-132+68 sort_int32 3 3595 285504 +5104+2726+1456-130+652+25+425-120+364+15+45+24-276-64-133+1222-299+384-93-158+94-91-38+41-199-104-96+160-144+27-60+121 sort_int32 3 5393 502114 +7212+2687+3394+1747+1555+975-210+256+568+83+480-906+539+625-27+35+281+37-28-101-684-284-613+441-885-1246-1137-1367-1552-207-1259-847 sort_int32 3 8090 842368 +4644+2281+1746+1856+1759+3056+858-81+717+225-580-721-358-163+1228+996+853-1505-2751-2696-2084+460-1420-2023-453-407-1148-723-530-2507+927-26 sort_int32 3 12136 1330788 +8065+6264+5406+5526+2923+1274+1575+4375+2905+1916+1186+4039-655-1211+1508+38-215-3335-2338-823-2652-766-1086-1225-1146-1958-3180-217-156-1631-2408-2066 sort_int32 4 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 4 0 16 +90+52+6+0+1+2+0+1+0-2+2-4-1+2-3+0-2+4-4-2+0-3+0+0-3+0+1-4+3-5+0-2 sort_int32 4 1 17 +72+4+2+3+0+4-1+3+6+3+0+6+5-4+2-1+1-4+2-5-3-1-3+1-3-4+0-4-2+1-5-2 sort_int32 4 2 26 +274+54+9+6+6+8+3+1+2-1-1-1+1-3+1-3-1-1-1+1-3-1+0-3+0-1+0-2-1+1-1-1 sort_int32 4 4 53 +440+97+54+12+1-1+3+3+3+2-2-1-1+1+0-1-1+1-2-1-1+1+0-1-1+1-1+0-1-1-1-1 sort_int32 4 7 106 +714+118+12+8+6+6+1+4-1-3+1+0+0+1+0-1+1+2+0-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 4 11 213 +885+175+64+2+11+14-10+2+0+3+1+1+1+1-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0 sort_int32 4 17 360 +1618+511+78+71+46+11+1+0+0+2-2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1-1+0+0 sort_int32 4 26 580 +2183+519+25+18+12+4-3+6+9+4-12+4-13+3-12+4-12+3-11+2-13+5-13+3-13+4-13+5-13+5-14+3 sort_int32 4 40 1026 +2616+849+338+118+10+2+1+1-1+0+0+0+0+0+0+1+1+1-2+0+1-1+0+0+0+0+0+0-3-4-4-4 sort_int32 4 61 1703 +2467+874+411+276+61+150+73+27+1+87+1+40+123-14-4+0-4+0-5-14-27-23-27-23-27-23-27-22-28-23-26-24 sort_int32 4 92 2868 +3185+1281+884+580+258+317+180+188+196+309+55+34-24-40-38-40-41-41-38-40-40-38-39-38-42-40-40-40-39-40-41-41 sort_int32 4 139 4925 +5470+2406+1234+303+224+48+99+150+148+18+24+30+14+57+9-30-24-25-23-25-18-28-22-20-27-28-31-36-25-24-19-38 sort_int32 4 209 8345 +5195+2105+1482+1140+1191+715+419+254+418+273+11-21-15-113-87-108+97-108-81-117-31-119-48-76-72-62-39-78-48-128-63-84 sort_int32 4 314 13900 +5932+2794+1384+799+812+664+450+227+414+115+121+354+39+123+8+64-103-148-143-164-158-144-135-167-156-148-121-134-120-172-178-148 sort_int32 4 472 22827 +2866+1466+909+527+530+478+192-33+40+86+75+121+38+47-78-1-50-33-32-70-13-57-90-96-38-66-72-46+30-56-16-158 sort_int32 4 709 38707 +9260+4614+2491+1909+1348+1122+741+350+56+58+42+36+43-6-54-26-90-3-12-9-43-100-39-43-52+1-15-97-34-47-71-48 sort_int32 4 1064 63286 +7228+3662+1866+1069+447+301+103+280+56+122-1+1-83-36+27-18-24+28-54-94-65+36-21-82-1-43-33-46-59-48-55-23 sort_int32 4 1597 104748 +3767+1028+404+304+494+101+43+20-65+248+251-65-8-47-29-65+5-226-114-34-74-66-58-72+100-30+83+131-28-88-48+0 sort_int32 4 2396 172996 +5209+2409+1605+812+862+7757+490+347-43-211-126+14+69+48-25-85-26+286-107+99-232+115-100+9-175-180-110-90-54-179-121-135 sort_int32 4 3595 284673 +6207+1954+1882+1019+1188+786+1088+385+370-388+856+70+1085-206-321-815-973-630-580-1267-450-837-820-764-521-842-710-992-855+11948+7271+5955 sort_int32 4 5393 506153 +9340+4734+3287+4341+2396-19+1642+516-5+131+173+253+467-98+205-267-60-193+182-351-306+808-635+5912-1682-2204-2391-2031-2233-1686-1896-1111 sort_int32 4 8090 842157 +2316+1994+1867+1154-221-323-1539-1200-4420+10512-1871+5309-1136-715-1297+1122+3411+568+1427+250+409+62+732+687+2831+62-4271-4427-4088-162-4563-1681 sort_int32 4 12136 1336526 +3898+4515+4734-666+5086+3819+2999+4626+5310+4719+3355+3573+1624+3201+6472-3334-2895-1907-3405-2931-3120-3274-4945-2805+1234-2639-3840-2637-5799-832-2493-3369 sort_int32 5 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 5 0 17 +72+35+5+4+3+2+2-3+33+33+4-4+1-5-1-2-3+2-6+3-6-3+0-2-4-1+1-6+0-1-5+2 sort_int32 5 1 16 +68+6+3+3-1+28+5-2+3-2+3+3-4+0-2+0-2-1+1-3-1-1-2+0-2+1-3+0+0-2+1-2 sort_int32 5 2 23 +187+111+3+3+4+3+1-3+1-2-2+1+0-3+1-2+1-3+2-2-2+1-3+0-1-2-1-2-1+1-2+0 sort_int32 5 4 44 +280+115+46+35+2-1+0-1-1+0+1+0+2+0-1+1+0-1+4+1-3+74+2-4-6-4-5-7-3-8-4-5 sort_int32 5 7 80 +707+212+108+20+2+0+2-2+0+1+1-1+0-1+0+1+0-1+0+7+8-1-3-2-2+0-4-1-3-2-1-2 sort_int32 5 11 146 +962+335+28+17+9+1+2+0+1+0+0+1+8-2+0-2-3-1-1-2+0-1-1+2-3-1-1-1+4-2-6-2 sort_int32 5 17 269 +1989+688+166+79+47+31-10-7+0-1+0+0-3+2-3+0+0+1-3+2-1-1-2+1-1+1-1-1-1+0-1-1 sort_int32 5 26 476 +2185+903+208+305+54+3+21+10+8-6-4-7-1-6-1-4+0-2+5-6-5-9-2-3+2-4+4-1-2+6-2-1 sort_int32 5 40 789 +2489+449+273+42+10+5+12-1-2-2-2-3-2+1-5-1-3-2-1-1-2-2-1-4-2-3+0+16-1+14-2+16 sort_int32 5 61 1443 +2910+1201+535+398+310+244+121+115+163+91+170+120+20-10-46-46-47-51-46-44-53-45-49-47-47-45-49-46-50-47-49-47 sort_int32 5 92 2490 +3192+1665+1040+398+405+153+374+57+139+48-8-8-9-12-3-9-17-11-13-28-7-14-12-14-4-12-5-20+2-16-15-11 sort_int32 5 139 4304 +5176+2161+1086+686+429+314+96+220+76+34-9+33+19-48-20-27-37-14-40-45-49-28-61-34-40+39+3-39-48+17-14-33 sort_int32 5 209 7744 +4927+2029+1157+600+599+138+144+80+6+75+44-12-6-24-47-49-54-48-43-61-36-17-41-39-57-53+695-23+44-62-38+37 sort_int32 5 314 13461 +4491+1969+1822+723+365+297+336+300+292+85+118-4+55-22-92-27-51+3-87-95-46-74-86-29-100-84-79-65-90-96-88-77 sort_int32 5 472 22332 +2394+1381+860+192+46+213+5+156+10+12-8+23-3-1+21-58-37-3-9+54-39-46-13-39-34-26+6-27-23-4+2-21 sort_int32 5 709 38110 +5200+2368+1091+547+187+455+64+63+109-14+54+16+10-49+34+14+49-40+108-27-71-89-127-139-153-169-168-104-111+51-58-105 sort_int32 5 1064 62519 +5364+2548+1123+1142+1254+606+344+47-58-147+8-15-67-39+108-30-150-7-11-33-200+84-97-175-66-52-68-129-26+131+138-36 sort_int32 5 1597 105154 +3104+694+73+589-212+377+145+178+39+98-61-186-117+176+133+149-112-87-57-172-124-43+61+67-220-132+46-193+42-122-98+22 sort_int32 5 2396 174832 +5193+2764+765-345+740+1146-869+617+516+636+143+252-367-183+362+83-1186+143-10-25-290-1272-31+120-2652-348-100-590-1564+87-116-84 sort_int32 5 3595 287923 +5856+1967+2531+1421+549+397-726+57-146+779+52-123+34-28-186-92-171+50+13-69-362-314+218+108-85-189+87-39+361-43-302-232 sort_int32 5 5393 509140 +1997-1015-2040-4160+763-934+779+1684+2131+675-52-3451-312+111-204-199+170-95+611-358+1726-514+94+927-328+328-57-879-5-376-1418+1126 sort_int32 5 8090 852321 -1244-3022+2187-5159+608+1096-5650+592-1345+1185-2926+784+947+2093-1576-677+133+2975+3733-1080+1252-457-565-936+733+1259-696-814-857+3070+3320-3312 sort_int32 5 12136 1354527 +370-4360+2461+3618+5211+143+3028+3467+2844+3219+1736+12307+12309+14200+11951+11836+6898-14237-14268-13273-14930-14414-14388-13609-14743-14606-7567+2800+3222+2102-2871+2682 sort_uint32 selected implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 selected 0 28 +442+151+30+15+1+4+3+2+1+2-2+0-3+0+0-3+0-1-2+0+0-3-1+1-2-2+0-1-2+0-1-2 sort_uint32 selected 1 32 +190+96+42+5+3-1+12+1+5-6+0-1+0+0+2-2+0+0+1+1-3+0-1-2+1-3-1+0-1-2+0-1 sort_uint32 selected 2 35 +128+76+14+1+6+1+1+1-1+1-2-1+0-3-2-2-5+0+4-3-1-9-2-3+4-3-5-3+4+2+6+0 sort_uint32 selected 4 49 +224+91+14-10-9-11-13-13-7-1-1+1+1+1+5-2+2+0+5-1+0+2+2-4+5-2+1-1+2-2+1+3 sort_uint32 selected 7 72 +171+14+5+0-8-9-4-1+3+0-1+0-3-1+3-6+4-2+1+0+4+1+1-2-1+1+0+5-4-1+0+2 sort_uint32 selected 11 153 +264+44-61-54-12+7+5+0-2-1+1-6+4-2-1-5-3-6-1+1+0-2+5+10-3+2+0+2+1+0-7+2 sort_uint32 selected 17 228 +431+85-51+3+7+4-4-8-2-1-3-3+5+6-2-8-3+3-2-1-3+0+5+2+0+1-2+10+4+2-3+67 sort_uint32 selected 26 240 +77+77+18-50+2-11-4+1+2-4+13-12+4+102+20+64+57-59+4-9+2+7-1-4-14-4-2-11-10+6-8-8 sort_uint32 selected 40 316 +717+57-22+10+11+0-3+4+17-1-7-16+4+4-22+26-23+6-12+86+8-29+10-8-5-14+1-7+0+66+0-20 sort_uint32 selected 61 378 +163+96+21+13+15-4+1-19+3+11-1-19-1+0-11+3+1-6-12+0-5-10+8-1+0-15-3+7-9-2-8+7 sort_uint32 selected 92 723 +861+66+31-3+35+16-4+4-7-10+1+0-16+4-5-31+5-12+8+1+15-10-1-9+10-15-7+0-8+18+7-8 sort_uint32 selected 139 1032 +1450+256+25+25-2-2+9-27+2+2-6-6-2+4+16-14+2-28+9+23-13-1+7-4-9-3+3-1-5+26-4-13 sort_uint32 selected 209 1050 +398+73+6+21-6+2-13-1-3+54+12-12-1+1-1-5+0+1+4+7+21+1+1-6-11+13-10-10+15-16-11+1 sort_uint32 selected 314 1652 +1518+256+81+85+56+60+74-17-11-20+29-23+67-4-36-6-15-5-21+72-22-13-14-42-12-14-29-13-7+69-18-23 sort_uint32 selected 472 2428 +1139+362+112+83+20-5-18+5-2+7-10+12+9+66-10+1-21-1+66+3-32-5-17-29-20+76+21-9-4-5-9-11 sort_uint32 selected 709 3745 +2958+468+71+72+159-26-9-29-1+24+5-5-13-16-27+45-9-12-10-32+45-29-26-18+22+38-31-38+77+10+1-14 sort_uint32 selected 1064 6214 +3248+885+369+291+329+157+113+65+137+122-31-39-20-3-22-42-63-14-53-18-58-6-25-15-22+42+4-32-46-71-41-14 sort_uint32 selected 1597 9456 +2186+587+322+301+8+46-78-60-7-20+16-18+27-37-2+35-20-17+3+125-27+177+6+103-35-33-25-7-77+73-39-65 sort_uint32 selected 2396 15369 +3348+1070+430+372+286+321+192+39+47+89-81-85-78-61-2+1+36-92+116+50+189-17-122-87-167-125-43-70-97-13-56-34 sort_uint32 selected 3595 24073 +2482+965+866+223+401+439+199+27+147-203-34-23-130-54+142-38-133-75+10-95-54+30-55-39+27+62-39-89-2+32-60-59 sort_uint32 selected 5393 38584 +2858+841+297+203+276-21-31+19-79+67+2-187-126+32-184-177-132+7490+26+507-167-171-69+6-9+118+163-174-69-137-2+129 sort_uint32 selected 8090 62902 +3455+787+382+451+121+111+209+157-246+0-188+6+73-272+70-207-26-239-68+33-121-78-39-38+8-5-123+50-55-173+160-36 sort_uint32 selected 12136 103013 +3902+790+56+177-45-119+249-103+82+158-130-109+294-351+6+13-82-360-325+200-130-186-258+299-108-49+147+263-30+107-46-1 sort_uint32 0 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 0 0 24 +102+64+13+8+2+2+0+1-1+0+1-2+2-1+0+3-1+1-2+1-1+0+0+0+0+0+1+0-1+1-1+0 sort_uint32 0 1 30 +256+94+16+0+7+3+2+1+1+0-3+2-3+1-2-2-2+2-1-3-1+0-2-1-1+1-2+0-2-2+0-1 sort_uint32 0 2 35 +246+98+29+6+4+0-2-5-2+1-6-7+1-3-6-4-1-5-3-4+3+6-2+9-2+7-2-4+4+6-1-1 sort_uint32 0 4 49 +130+83-4-7-4-15-9-9-12-1-3-2+0+0+0+3+1+2-1+0+0+0+3-1+2+0+2+0+1+2-3+2 sort_uint32 0 7 72 +205+146+10+8-6-23+2+2-2+1+0-1+1+2-1+5+1+17-10-1-2-2+4-3+2-2+4+0-1-2+0+1 sort_uint32 0 11 155 +164+61-62-34+4-1+1-4-4+6+3+4+5-4+4+3-5+7+0-3-1+1+2-7+1-5+4-5-1+3-5-1 sort_uint32 0 17 230 +117+87-59-6-3-2+1-1+7+7+51-60-2+6-11-3+7-7+7-4+3-2-3+6+4+0+2-3-4+2+8-5 sort_uint32 0 26 237 +102+46+2+3+1-2+1+1-3+4+58-48+6-10+3+1-12-4-1-10+4-11-5+9+5-10-1-7-2+6+3-1 sort_uint32 0 40 284 +306+71-10+92-5-4-10+0+8+2+6+13-15+20-6-14+9-14+8-3-10+3+8-7-8-15-24+44-5-16+21+7 sort_uint32 0 61 356 +170+74+65+2+5+5-10-6+3-5-12+4-1-5+9+12-4+5-1-2+4+1+2-4+0-2-1-6-4-1+10-7 sort_uint32 0 92 600 +401+117-3+1-3-13+7+2+8-22+11-8+6-3+13+3-5+13-15-7-6-5+10-3-9+0+10-20-5-4+5+2 sort_uint32 0 139 1035 +417+119+16+17-1+18+26-1-7-22-2-28-1-15+8-5+10-17+1-22-22+78+5-3-7-6-11+16-30+0+9-5 sort_uint32 0 209 1052 +318+63+58+40+1+71-14+8+4-6+6-13-2-16-24-10-10-22-2+78-13+3-5+80+3+1+3+8-10+13+3-14 sort_uint32 0 314 1638 +770+155+116-16+14+9+2+16-6+53+11+101-21-13+53+3+1+6-6-21-20-2-8-20-9-47-23+16-6-5-5+7 sort_uint32 0 472 2440 +832+189+56+72-11+5+12+12+3-26-19-9+66+4-26-25+18-24+1-3-1+1+31-17-6+49-26-24-9-12+2+55 sort_uint32 0 709 3737 +951+332+22-24+6-5+104-17-11+25+32+5-1-13-15-2+24-1-6-2+3+11+93+0-22-1-12-22+8+3-19-4 sort_uint32 0 1064 6157 +930+347+114+126+7+10-4-13+15+1-22+99-12-7+8+26+4-26+68-42-23+3+25-27-6-27+6-12-19-6-2-40 sort_uint32 0 1597 9450 +1348+597+235+65+2+60-40+9+252-13+15-47+68-51-57-45-70+31+33-29+38-59-39-80+265-30-33+13+47-48+2-6 sort_uint32 0 2396 15297 +1359+291+258+203+245-49+61+48+51+116+14-15-111-9-60-31-13-39-30-69-24+18+35-26-50+13-4-97-53+1+64-24 sort_uint32 0 3595 24047 +1576+731+279+187+168+8-27+81+18-31+128+17-39+196-40-81-78-76+27+7-60-41+21-44+7-30+39-76-100+16-86+41 sort_uint32 0 5393 38491 +1501+869+518+325+5+222+119+83-16+111-153-68-104-58+81-60-83+81+15-136-42-90-8-66-13+35-89-81+106-112+417-141 sort_uint32 0 8090 62896 +2481+729+841+287+144+554+291+112+141+366+206-31-286-126+16+1-135-118-142-143-71-201-138-70-26+586-182-7-69-14-121-94 sort_uint32 0 12136 102710 +2097+649+347+268+101+165-207-106-176-168-5+45+412-6-109+193+2-291-68-122+96-155+19+35-196-82+195-37-63+270-109+17 sort_uint32 1 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 1 0 26 +116+68+15+1+9+0+3+3-1+0-1-2-2-1-1+2-3-1-2+1-2-2+1-2-1+1-3+0-1-1-2+1 sort_uint32 1 1 41 +308+104+14+13+10-2+2+2+1-2+0-2+0-1+0-3+0-1-1-2+1-3+0-1-2+0-1-2-1+0-2+0 sort_uint32 1 2 37 +240+123+42+8+11+6+2+2+0+1+1-2+7-9-1+1-1-2+1+2+2+1+0-2-3-2+0-1-2-3-2-1 sort_uint32 1 4 41 +220+51+3+3-2-7-9-9-7-3-3-7+2+13+3-8+12-6-1-5+7-2+2-6+9+3-3+4+11-5+4+7 sort_uint32 1 7 65 +203+52+20+14+9-11-9-9+9-3-18-1-3-3-1-1+2+0-8+6-1+0-3+2-6+2+8+4-6+7-1-4 sort_uint32 1 11 159 +224+25-70-60-7+8-3+0-6-1+5+0-3+1+4-1-5+3+1+3+1-2-1-2+4+0-4-5+1+2-1-2 sort_uint32 1 17 224 +247-13-1+4+6-3+1+2-5+6+10+157-77-10+0+2+5+3-1-2-2-3-9-5-1-5+1+3+69-60-1-4 sort_uint32 1 26 229 +193-73-3-1-11+1+7+1-9+1+4-8-5+3+3+0-9+3+0+0+7+2-1+4+0-7+6+42-39+0-5-3 sort_uint32 1 40 270 +458+40-8-11-6-7+17+6+1-1+0-8+11+5-6-7+5+18-23+0-8-6+9+12-22-4+0+3-4+31+19-33 sort_uint32 1 61 343 +371+149-24-7+21-11+7-1-22+18-15+0+18-4-24+9-1+7-3-2-6-10+3+14-5-17+20-26-2+22-8+5 sort_uint32 1 92 572 +425+46+60+4-6-46-11+50-5+14+5-7-4-8-14+4+0+4+7+1-19-4-2+9-16-11+13-3-5-1+3+5 sort_uint32 1 139 1029 +423+111+103+0+23-27+27-2-2-4-21-9+1+0+2+1-27-5+21-15-9+8-3-5+7+8+101-12+1-3-15+4 sort_uint32 1 209 1054 +433+172+19+63+20-3+6-7+6+61-1+15-6+3-14+1-24-34+8+6-20-18-22-31+58+1+1-19-13+5-21+4 sort_uint32 1 314 1621 +651+198+151+53+7+12-10-24-7+4-21-16+4-15-10+45-2-25+12+2-3-25-12-12+21+3-6-6+13+53+17-7 sort_uint32 1 472 2439 +735+325+229+78+44+32+92+69-5+20-21-32-21+0-22-25-39-32-2+2+83-20-27-20-20+12-4-12-9-12-8+46 sort_uint32 1 709 3799 +857+401+224+84+24-5-8-25-40-27-5+66+20+102+38-33+51-27-26+9+14-54-27-11+88+109-29-44-15-11-27-40 sort_uint32 1 1064 6256 +891+637+348+247+152+43+104+106-40-5-23+132+17+6+54+4-19-75-52-53-25-51-39-55+25-34-89+36-7+8-44-36 sort_uint32 1 1597 9541 +979+725+483+210+7+31-28+11+8-80-72-26+21+8-11+18-55+6-4-33+27-56-9-36+0+26-13+4-66-44+18+13 sort_uint32 1 2396 15428 +1379+415+505+254+54+44-36+8+15+11+189-22-45-109-1+87+31+8-25-121+39-96+25-59-61-78-68-93+21-15+0-13 sort_uint32 1 3595 24481 +1185+374+415+509+154+36-142-3+13+48+217+96+26+0+0+22-56-42-9-70-80-4-60-58-10-46-75+163+27-63-68+0 sort_uint32 1 5393 38697 +1266+870+320+248+455+405-64-7-79+14+8-75-144+73-13-2-4-21+26-90+49-198+244-133-14-126-98+74-32-13+95-94 sort_uint32 1 8090 63158 +2428+805+428+290+314+52-35-70+0-12-280+56-100+71-174+22-40+41-58-34+40-116-139-62+58-202-52+230-41+77+258-152 sort_uint32 1 12136 102864 +16703+990+556+408+99-243+343-55+61+110-15+54+215+210+833-289+8+64-334-106-97-27-84-270-71-11-247-15-102-368-181+81 sort_uint32 2 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 2 0 25 +176+100+12+11+3+2+5+5+2+0-2+0+3-3-2-2+0-2+0+0-3+0-2+0-1+1-4+0-1-1-2+2 sort_uint32 2 1 30 +142+72+44+7+3+5+6+4+1+0+1+0-1+0+0-2-2-2-1+1-2-1-2-1+1+0-2-2+0-1-1+0 sort_uint32 2 2 35 +157+115+37+13+2+7+6+2+2+1-2-7-4-2-6-2-5+1+0-3-1-15-3+4-4+0-2+25-14-3-1+4 sort_uint32 2 4 49 +220+112+39-5-6-9-9-10-11-13-4-1-6+3+1-1+4+2+0-2-1+3+3+0-3+5+0-1+5-1+3-1 sort_uint32 2 7 72 +186+221+53+6+7-5+6+52-8-21-9-1-1+7+1-4-15-4+6-6-5+1-4+0-4-3+3+1+8-9+1-2 sort_uint32 2 11 157 +332+152+6-77-56-10+0+0+2-1-2-2+11-5+2+0+2+0-1+0+0+1+0+0+2+2-3+8+1+0+0-1 sort_uint32 2 17 227 +269+105-43-10+3+10+0-1-5-5-5+4-3-11-3+1-4+1+2+5+1+2+6-5+6+0-3+8-5-2-1+5 sort_uint32 2 26 228 +178+73-10+3-1-6+2-1-7-6+37-37-7+5+6+7-1-1+2+1+5+2+6-4+0-3-5-5-6+2+3-5 sort_uint32 2 40 281 +257+159+48+11-22-3+36-6+0+0-5+9-3-17+33-9-19+18-15+7+22+0-11-1+0-20+27+2-5+3-13-4 sort_uint32 2 61 335 +251+144+12+7-6-5+27-4+0-3+3-1+5-2-6-2+2-5+5-6+3-1-7-10+19-3+2+5-2-5+8+0 sort_uint32 2 92 571 +374+197+55-10-10+63+13-4+25+19-4+3+2-20-7+0+14-19-7+9-3-7+0-5+4-3+8-9-8-15+9-14 sort_uint32 2 139 1035 +361+255+23+29-4+4-7+3-11+0+5+18-14+77+35-2-11-19-2-7-27-1-23-6-25-3+22-2+16+6-3+2 sort_uint32 2 209 1054 +473+292+119+27+52-2+20+8+6-8-3+6+0-12-21-11+1-3-1-8+5+10-7+0+0-25-5-10+1-20+72-14 sort_uint32 2 314 1667 +583+205+92+38+29+24-4-10-16+62-10-41-6-25-24+15-24+3+0+13+29-20-27+2-5-37+9+12-4-26-6-1 sort_uint32 2 472 2456 +735+569+123+72+54+48-39+8+32+3-8+78-24-14+32-14+8+18-19-11-20-38-8+26-57-34-22-17-16-26-17+49 sort_uint32 2 709 3840 +887+576+211+140+172+37+13+69-37-8-13-33-8+42-17-19+2-3-34+0-15+25+5-18+0-7-15-42+7+59-15-68 sort_uint32 2 1064 6265 +745+504+222+105+68+25+19-30+26+32+14-55-27-3+11-32+35-10-24-7+5-12-18-17-13+26-7-22-16-27-11-1 sort_uint32 2 1597 9642 +1070+363+304+230+68+211+26+1+57-51-114+25-38+7+68-131+262+7-76+34-2-46-34-55-56-66-66+181-51+1-31-28 sort_uint32 2 2396 15544 +974+448+450+297+231+181+58+60+45+36+10-36+123+181-1-86-33-79-20-30-46-98-108-81+56-117-25+2-73-100-10-60 sort_uint32 2 3595 24551 +1258+809+410+70+82+279+140-3+85+3+90+63+218-9+273+37-90-77-74-70-122-107-175-118-125+143-135-143-95-143-195+95 sort_uint32 2 5393 39230 +1253+301+100+258+196-49+113-136-32+159+124-220+25+101-69-83-40+181-199-150+34+39-49-90-189-189+111-11-33-108+22-71 sort_uint32 2 8090 63891 +1593+486+233+142+262+289-112+18-57-122-237+23+420+191-209-30-116+12-105-97-168+11+168-173-124+394-21+263-182-111+80-106 sort_uint32 2 12136 103934 +1606+269+58+217+330+221+414-427+189-529-147-41-140+111-145+409-231-69-133+324-32+115-118+80-193+300-172-247-384+10-109+0 sort_uint32 3 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 3 0 24 +82+78+49+8+5+4+3+7+5+1+1+1-2-1-1-2-1-1+0-3-1+0-1-1+1-2-2+0-2-1+0-2 sort_uint32 3 1 35 +266+130+15+9+2+6+6+1+2+0-1-1+0+1+0+1-1-1+0+0-1+3-1-1+0+0-1+3-1-1+0+0 sort_uint32 3 2 37 +275+148+72+47+0+6+3+6+6-2-1-1+2-1+0+1-1+1+1-2+1-1-1+0+0+1+0+0-1+0+0+0 sort_uint32 3 4 43 +227+125+38+3-2-1-11-3-13-7-3-12-7+6-2+2-4-2+2-3+1+1+8-8+2+2+0+1+4-2+2+4 sort_uint32 3 7 66 +283+92+81+5-2-8+97+19-7-12-26-1+0-1+5-6+1+0+1-3-4+1+0+0+3+1-6+5-4-3+3+3 sort_uint32 3 11 158 +151+50+16-82-48+1-1+4+3-3+6-4+0+4-1-3+6-7-4+1+3+0+3-3-1-3+1+0-4+1-3-3 sort_uint32 3 17 223 +270+119+19-46+10-2+0+0+9+4+4-5-2-3-9+7-8-2-4+2-3-1-8+8-1+9-3+2-3-3+4-5 sort_uint32 3 26 225 +155+28-36-3-6+5+0+6+6-2-6+7+0-5+2-3+74-70+2-3+2+3+0-1-3-1-3-1+10+5-4-1 sort_uint32 3 40 283 +403+188+141-6-2-2-19+4+20-1+7+7-1+0-6-26+19-14+26+7-21+30+0-12-8-1-13-13-1+12+1-17 sort_uint32 3 61 330 +355+148-33-6-9+0+4-10+1-5-8-5-1-8+2+4+12-2+11-7+4-1+2-7+18-19+13-7+1+5+11+3 sort_uint32 3 92 571 +335+226+100+32-7+15-4-7-6-11-19-17-10+16+7+4+0-19+4-9-2+44+5-4-3+19-6+34+5-5-2-8 sort_uint32 3 139 1261 +340+226+98+41-5+6+19+36-22+12-11-2+19-12-8-6-17-14-26-4+6+5-20+34+30-20+5-1+14-199-181-196 sort_uint32 3 209 1140 +371+205+73+81+89+2+20-35-8+5+4+1+3+59+4-11-27-17-24-3+2-15+3-7-8+2-23-14-23+58+22-15 sort_uint32 3 314 1725 +442+256+192+61+48+114+40-10-13-20-49-20-25-28-61-41-43-38-8+5+2+24+15+26+0+38-18+13-16-6+7-8 sort_uint32 3 472 2604 +660+333+260+187+59+76+40+50+50+160-49-60-61-44-33-48+144-69+33+26+33-58-41-35-73+44+72-93-34-77-67-71 sort_uint32 3 709 4141 +683+195+136-28+96+27+101-21-19+27-11-7+59-53+16-2-14+53-12-4-17-30+11-14+27-18-54+2-17+56-26-50 sort_uint32 3 1064 6563 +651+639+182+317+318-73+223+46-47+264-11-70-44-62+29-53+2+239+204-60-77+13-49-16+31-54-24+24-70-73-24-53 sort_uint32 3 1597 10132 +1113+457+263+137-29+169-45+31-41+124+272+196-64-27-86-36-67+184+131-1-90-77-29-55+5-78-95-42-107-79+171-72 sort_uint32 3 2396 16291 +405+137+544+41+415-283-212-310-212-203-189+308+397+288+241+288+360+347-163-194-216-366+416-124+357+351-262-300-195-234-192-181 sort_uint32 3 3595 26083 +367+716+543+435+397+192+126+91-107+16+44+29+3-37-95-143+0-63+1+49-143-96-10+11-9+23-925-126-136+147-63-88 sort_uint32 3 5393 40120 +2620+1518+1184+1013+223-36+727-24+272-125+118+102-81+917-116-16+33-79+49+33-91-147-58+93-224+13-76-183+26-179-119-90 sort_uint32 3 8090 65333 +3544+870+840+451+253+31-37+14-53+98+174+75+207-222-142+140-149+56-181-156-1+167+86-209-4-118-166+75-230-169-95-133 sort_uint32 3 12136 106690 +755-363-607-145-283-613-688-610-776+793+619+530+500-800+734+972-960+668-605+674+520+497+764+534-1014+527-1004-727-875+293-796+519 core_inv3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 selected 654 87735 +1135-79-191+100+197+108+232-126-40-151+92+14+404+16-110+79-298+99+210-261+117-173-110+73+223+411-354+350-156-83-184-288 core_inv3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 0 654 87784 -86-401+506+532+1784+151+114-7-257+11-93-68-12+155-57-300+52-64-138-47-117+331+87-116+155-350-11-75+56+147+158-37 core_inv3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 1 654 80518 +1065+467+425-42+159-122-9-54-355-389+233+276-200-139+53-47-69-164-66-5-375-14-10+369-93+151+369-50+100+176-3-121 core_inv3sntrup653 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 2 654 222350 -9980-1148-10473-10197-10501+11670+11855+11063+11874+135-577-626-567-10192+121+207+107+119+194+93+111-10329-10303+128+133+118+207+188+229+207+108+16150 core_inv3sntrup653 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 3 654 274610 +38447+1716-9997+1614+1615+1637+1619-2259-7651-7407-1000+1619+1600-994-978-928-2273-954+1638-973+1585-989-1003+1655-974+1618-961+1607-919-2283+1629-964 core_inv3sntrup653 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 4 654 257284 +16464+606+344+317+349+339+329+318+312+331+308+320+330+958+339+315-484-604-306-381-354-359-342-384-290-382-298-358-295-348-322-369 core_inv3sntrup653 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 5 654 270732 +599-6016-6048+12202+10895+1091+1501+10865-6245-1708-6899-3632-3353+10642+10716-10151+10837-6897+10641+10817-3671-10178-10052-1899-10123+10404-10203-10386+10652-10411+4594+49310 core_inv3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 selected 762 103849 +2580+539+1406-114-8-82-300+93+223-290-265+137+71-276+56+211+43+30-334-392+145-239+179-5+55-301+180-198+134-133-2-73 core_inv3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 0 762 103712 +675+107+185+237+284-114+6+366+32+383-321+162-222-171+9+209-269-246-25-242-60+310-299+156-199+69-70-138-172-88+221-65 core_inv3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 1 762 94556 +1938+169+214+34+224+51+84+57-49+249-424+160+151-237+382-577-221-271-63-363-148-144+213+173-50-308-147-206+120+43-24-80 core_inv3sntrup761 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 2 762 228851 +11328+10583-10631-10714-12739-12781-12770-12797-12688-11939-4664-4619+6826+13565+7512+7494+7467+7639+7512+7510+7546+7557+7623+7507+7555-6017-12578-6239-4546-12594+16646-12500 core_inv3sntrup761 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 3 762 346059 +490-1348-5946-20951-18134-18126-21163-18415-21352-4802-22915-21153+34005+34759+30028+30218+30194+30213+30251+30240+30250+35309+30401+30390+30454-33863-34587-34504-34618-34465-34532-34384 core_inv3sntrup761 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 4 762 297203 +1503-18-89-50-46-26+36+7-21+3+11+11+17-31-28+18+2+58+25-19+50+1+17-9-31-2+13-8+18-19-4+5536 core_inv3sntrup761 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 5 762 316763 +80865-27-569-781-783-877-764+125-118-27-4+19-4+7+20+37-111-20-22+97+45-40+28+79+30-11-38+30+9+31+7+94 core_inv3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 selected 858 136919 +12590+183+160-13+242+19+127+61+251+162-95+72-459-203+293+2254-238-183-284-118-236-16-50+73+67-211-160-217+199-182+503-103 core_inv3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 0 858 136792 -56+203+271+170+129-129-419-398+62-18-43+232+53-374+100+209+148+59-1+356+18-470-153-438-331-328-223+355+26+157+32-223 core_inv3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 1 858 126035 +3220+415+1807+775-501+971+360-370-741+1207+1180+148+442-875+10-684-247-558+144+524+662-709-345-313-375+135-796-647-1012-367+344+1329 core_inv3sntrup857 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 2 858 414891 +27174+29534+1047+976+5789+308+187+308-30+290+121+185-42-22-55+15-164-120-176-143+112-304-104-143+1-123-8-265-89-86-115-78 core_inv3sntrup857 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 3 858 427521 +106352+104614+105188+97779+97749+97813+745+644+250-401-30-440+102-168+56-199+108-210+102-30-10-131-54-37+14-126-164-140-151-123+36-134 core_inv3sntrup857 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 4 858 342328 +2571+438+353+22-5-12+15+35-46-37+30-5-29+50-38-19+14-13-60+18-32+8+56-21-24+42-15-18+44-21-49+24 core_inv3sntrup857 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 5 858 419771 +96540+82042+90209+82225+82101+81894+816+143-134-52-37+42+14-39+16-91-115+44+0-77-80+3-83-14+19-16+2-26-7-89-12+15 core_inv3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 selected 954 154640 +13905+748-264-224+187+258-296+81+175-8-131+94+273+71+729+73+442+87-115-157-22-41-252-214-125-239+195-121-149+193-62-156 core_inv3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 0 954 154555 +446+354-66-198-75+76+176-15+7+335+458-202+21+21+107+368-347-214+222-7+132+147+48-404-279-19-360-19-208+209-168-258 core_inv3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 1 954 143396 +5052-482-438-101+1401-199+982+1785+906-467-847-240-558-999-920-693+695+869-345-1190-636-437-751-656+762+953-668+1330+350+3092+3075+319 core_inv3sntrup953 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 2 954 519858 +1447+177+317+314+150+139+109+125+125+210+291+136+38+125+225+378+181+163+127+256+248+665-976-1171-1355-1317-1220-1483-1315-1270-1188-1050 core_inv3sntrup953 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 3 954 586357 -37208-30861-38564-30787-27019-27108-27100-27081-27105-27154-27089-27044-27158+6125+13125+12890+13042+13050+12842+12964+12975+12930+13051+12884+12966+12944+13043+12950+12912+12936+13006+12953 core_inv3sntrup953 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 4 954 415595 +22660+21486+24245+51959+17713+17600+19366+48+23-30-28+6-12+33-14-25+58-19-25-1-9-64-44+29-34-18-12-81-10-6-103-14 core_inv3sntrup953 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 5 954 544547 +17746+13728-17419+16812-17466+16632-5098+1942-3925-5108-4997+10937+10988-5167-13820-15574+2131+8718+1454+9731-3034-3080-3095-3117-3101+18939-13642+18626-13679-19404-356+18494 core_inv3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 selected 1014 166006 +13534+451-33+329+32-313+297+197+16-50-125-208-120-52-140+88-297-281-129+360+57+45-3-375-24+53-316-199+248+102+137+197 core_inv3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 0 1014 166082 +104+231+56+109-99-151+146+59-355-488-463-479-399+164+270+448+339+16+248-139-41-309-275-384+75+110+14+299-582+243-143+251 core_inv3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 1 1014 156464 +3321-188+894+1262-155-1067-2279-1437+668-1675+34-1638-1122+1527+1071-340-1448-917+140-13-803-9+725+269-775+1039-238+770+673+1209-766+812 core_inv3sntrup1013 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 2 1014 445413 +1517+8113-335+5529-302-322-239-402-220-144-305-98+5785+91-7-2+43-55+33+160+10+69-98+79+205+73+101-17+6-33+73-84 core_inv3sntrup1013 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 3 1014 560844 +2226+238-37-17+146+1+6297+104+79+37+35-18-87-132-122-99+45-113+11-26+49-146-59-24-7+8+24-81-17-82+513+301 core_inv3sntrup1013 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 4 1014 501562 -4636-6598-6618-8660+1407+1476+1491+1331+1335+1395+1405+1460+1382+1408+1321+1361+1431+1445+1418+1340+1382+1414+1374+3569+3473-8455-8678-8645-8658-8663-8600-8632 core_inv3sntrup1013 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 5 1014 633015 +6859-706+320+355-835-927-712+37-918+5439+5800-3-94+1395+954+875+4723-197+229-33-470-125-161-149-68-7+68+81-258+102-18-177 core_inv3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 selected 1278 244531 +18353+258-147+5+240-55-97-165-450-89+101+79+598-294+302+199+576-247-214+73+226-267-140-383-56+250-401-5-141+248+218-288 core_inv3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 0 1278 244490 +287+14+216-212+334-81+241-424+85+184-449+271-83-530-523-429-547+46-246+442+37+79-44-79-325-320+201+109+390+366+666-227 core_inv3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 1 1278 255727 +4006+51-19-687-304+1540-250-348-621-1824-1737-838-559-988+710-2037+164+629+754-1426+1100-1395+2826+635+2110+1760-485+25+1229+1326-1106+312 core_inv3sntrup1277 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 2 1278 643464 -5411-11189+13253+422-12694+7811+8421+60+26+8-53+17-169-223-163+52-77+4+157+71+110+182-32+4425+164-246-30-83-50+29-207-52 core_inv3sntrup1277 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 3 1278 532713 +2340+473+293+107-139-199-299-312-148-261-232+4834-174+446-39+30+32+15+2-40+13+31+81-3+38+77-16+132+146-155-65-12 core_inv3sntrup1277 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 4 1278 755801 +23166+22266+23026+4735-1973+57-36+12-167+100-219+121-84+116-389+148+182-333-86+140+568-211+169-45-489-627-241+178-398-9-228+372 core_inv3sntrup1277 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 5 1278 692544 +64265+56909+57132+57183+68780-1347-1176-1406-1574-1267+62042-1352+61970+41799-2029-2144-2048-2079-2169+511-1332-1344-1435+3993+16031-3648-3680-6591-6465-6739-6866-6923 core_invsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 selected 1307 457892 +24995+3798+883+1428-642-582-640-652-1159-938-748-732-901-635+1614+1545+635+606+162+445+398+176+114+82+322+223+7-65-377-181-119+28 core_invsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 0 1307 457207 +4080+1140+1238+622+554+541+362+333+97+629-223-120+111-225-53+139-167-48+29-250-259-2-200+16-191-171-122-162-177-12+134-319 core_invsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 1 1307 455819 +1850+4547+2790+827+267+415-313+202-247-40-196-234-215+9550+1+1310+21-44+9166+139+60+11-257+217-73-47-117-306-227-189-327-209 core_invsntrup653 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 2 1307 5209531 -1764-5220-376-1595+2615+939+1559+1545-5299+1931-990+2214-1414+1925+2984-3770-4063-2810-3384-6762-6426-152+2934-1725+4359+5672-38-1957+2159+6612+11087-46 core_invsntrup653 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 3 1307 2122519 +5841+15183+7101+4813+576-1083+449-990-2525-2457+9384+1759+2485-3597-2789+6232-3432-5750+674-3836-4921+1453+378-3019+590-2047-1884-1666-5443+4287+6337+8889 core_invsntrup653 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 4 1307 6287397 +12215+16040+9257+9300-2715+5976-390+170-7542+2814-19436-11087-20218-13334+3864+7732+13588+13794+14876-2009+20529-9945+1113-13876-8116+17234+23102-14168-251-10507-9266-11243 core_invsntrup653 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 5 1307 6818040 -2828+9907+4195+10073-4250+742+2886+8582-1110+9580-4789-4590+3982+587+1485-1754-5232-3241-7956+746-2534+158+11251-192+1990+2073+4206-4669-2986-6795+8663-5463 core_invsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 selected 1523 612858 +23084+5834+3937+1347-61-354-310-483-420-557-462-479-496-357-549-294-245+239-548-28-405-240+2774+2808+2316+2193+2444-733-273-328-468+2374 core_invsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 0 1523 612655 +12915+17734+11176+11299+9090+9671-1088-1028-1234-1467-1103-1534-1455-1595-1570-1627-1614-1751+2034-1433+1988+1993+1906-1242+1981+2081+1931-878-1155-1386+8353-1286 core_invsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 1 1523 611941 -92+5958+1484+3514+2215+1741+1582+1477+1533+274+2557+1440+93+2112-520+2405-1001-893-1101-1276-1132-1349-1376-1184-1367-1302+1513-1022-920-1140-1162-1229 core_invsntrup761 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 2 1523 7034731 +143923+10661+12875-7147+18725+1982+2076+5422+7898-6960+2423-8105+3363+3137+2373-11216+8094-3116-4044+1348-4430-1297-5603+1857+2860-5742-983-8286-9897+773-4769-184 core_invsntrup761 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 3 1523 2805688 +9747+5583-3348+2048+14-1300-7355+9795-2220+6180+4864-256+11637+130-1070-8466-3117-6191-5017-3864+131+7983-9581-2625+4064+8426-151+1489-8205+890+8278-2894 core_invsntrup761 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 4 1523 8504880 +44296+2069+16771+6016+36996-4702+29247+25385-3621-6422-6961-3730-2065-3333+8060+14413-8959-6423-11150-8102-7074-26938+4290-4992-10137+14590+21492+367-957-10190+1033+28598 core_invsntrup761 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 5 1523 9215170 -17441+4046-2157+16515-1130-30866-33797-28649+45598-4370+17169+3737+1631-1697+3423+1914+36226+5807-11196-20453+1243+9251-9933-28788+35598-4871+36238-3514-3304-3000+2246+10891 core_invsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 selected 1715 768245 +23317+11005+1750+768+456+176+318+155+33+139+340-141-240+4-102-166-180-28+383+28+101-20-100-41+35-104-209-247-167-250-214-129 core_invsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 0 1715 767804 +610+2037+764-314-230-330-324-292-237-692-357-285-557-482-434-394-242-463-330+3561+756+697+160+152+389+534+372+282+372+370+370+170 core_invsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 1 1715 773527 +2730+5041+1388+3403+381+185+142-21+188-29+145-434+1401-193+13+1597-172-107+110-62+3145-279-227-324-232-48-278+250-181-225-304-300 core_invsntrup857 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 2 1715 8893653 -2917+22154+840+1538+3386-9640-17483-17939-22764-5425-12481-2489+2518+5131-4135+336+12591-5433+2501-3807-13405+12817+16580+16110+11320+12602-12569+12472+9594-5818+91-1723 core_invsntrup857 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 3 1715 3538937 -3734+5305+10817+3468-1589-9829-4509-5750-3106-9107-251+8327-1751+6434+8730+2929-11802-4468-7841-89+6027-4553-1351-5547+3195+3183-1157-2749+7435+3873+3589+6956 core_invsntrup857 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 4 1715 10809195 +697749+284936+834+692592+7232+8766+5693-1425+3841+1623+4872-498-7389+219046+5270-17549-5823-19281-9917+2952-6332-5316+673771+713-7563-9008+681932-3512-2554-344-9942-11800 core_invsntrup857 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 5 1715 11674971 +6996-4905-3023-4520+12427+7796+7042-7354-1618-2744+11650+19711+224-4362-12098+7385+15029-6784-9328+13371-9828-2361+6416+13368+12084+9059-12721-9488-6487-10116-12942+942 core_invsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 selected 1907 939324 +23730+19324+2911+15827+13966+12299+12451+11376+674+98+11384-240-347-375-203-633-247-172-204-583-13-407-458-356-411-671-416-694-642-341-375-524 core_invsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 0 1907 939158 +16718+15460+387+225+129+199-30+40-288-406+174-151+13-119-249+482+13740+472-261-101-78+17-98-75+111-369-349-427-399+211-237+13123 core_invsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 1 1907 954599 -34+14515+10632+3361+2545+791-535-589-212+992+6103-532+1652-850-1478-1067-1436-569-1788-409-990-524-772-326+4598-174-453-1160-1135+1737+2043+1697 core_invsntrup953 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 2 1907 10991543 +2941+22555+3986-1541-2840+10498+9412+3803-18797-14925-16200-20006-728-4690+2076-166-9781-3103-4957-8044-3730-6083-6265-3406+4601+4997+9180+2762+13426+16217+7701+10929 core_invsntrup953 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 3 1907 4352376 +5661+24038+8457-1485-2108+5234+1456-682+10184-1119+17012+8535+3917+3748-411-5799+467+7062-344+573+38-4609-3724+8863-4393-6591-2132-4762-5215-4022-3426-8233 core_invsntrup953 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 4 1907 13346894 +10731+15325+9742+5260+8506-944-42639-40475+3852+15088+7024-27159-26350-10216-22735-28007+4631+3162-24792-33963-27897+15591+15899+7986+22468+25475+10942-878+15063+2653-25553-3980 core_invsntrup953 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 5 1907 14467972 +42614+37198-11535-2019+27559-12534+39272+425+42982+60789-26843-11981-4016+12729+27632-45905-10039-39282+46565-47676-34810-34180-65331-28167-26802-26567+69091-25780+57958+11397+14332+53822 core_invsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 selected 2027 1073041 +32521+4773+1838-2+190+34+71-5+47-395+82+32-56+199-231-322-240+17256+16560+14307+12695+11991+380-227-260-227-47-897-820-905-1157-546 core_invsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 0 2027 1072529 +342+706+927+1039+826+1185+139-292+369+100-526-535+380-504-287-490-531-555+3622+2498+651-188-81-291-226-471-334-619-819-179+2884+361 core_invsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 1 2027 1118046 +766+6797+4504+1209+5070+591+2884+143+295-554+2496-1092-978-579-884+2611-1162-894-1016-1069-1157-1243+2700+2317-1270+2402+2430-802-1116-1299-942-1174 core_invsntrup1013 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 2 2027 12430014 -1600-4573-3039-676+1126-8324-11599+6178+5151-1525+1867+1945-7599-14402+342-3792+967+6373+4072+8199+482-2348-617-813+747+2909-7038+3013+8439+228+5513-18686 core_invsntrup1013 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 3 2027 5027199 +20563-2535+21116+15070+10159-7626+2613-2252-7479-9030-6749-7589+1721-3444+505+6227-372-2600+2333+50960+10593+3462-8283-7383-6263+6698-13483+7054+22161+24340-6402-6802 core_invsntrup1013 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 4 2027 15069619 +20415-6235+19396-25823-29319+10854-20059+16172+1961+6476-914+925+4234-35853-16092+15125-32339+12994-29025+5059-15667-12004+8730+11905+7812-30948-10644+1793326+8226-1212+5299-2053 core_invsntrup1013 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 5 2027 16316780 +20479-28488-34281+32816+45798+873-12936+31069+25804-12843-14192-13818+28356+3956+36604+33213+8680+3268-34571-7766-8068-18458-28697+27551-26421-2072-14840+32382+33829-4968-16432-13954 core_invsntrup1277 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 selected 2555 1654379 +22130+4491-385-803-1292-1221-1174-1591-1634-1474+3792-1471-1244-1783-1845-1439-1459-1550-1555+1836-1310+12753+13501+13269+12558+13552+13206+4370-249+197+260+127 core_invsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 0 2555 1660112 -3886+1368+3974+2733+2025+1745+702+590+1867+1004+589-2033-1445-2057+1611+1238+1210+4915-3023+2474+231-1555-1407-1501-1438+1614-4028-1260-3317-2561-4314+65 core_invsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 1 2555 1656516 +2376-1139-3206-3147-3755+13493-4098-3700+18032+12640+3454+16332+2998+2982+2864+2838+2249-1089-2069-2327-2784-2514+2655+12411+300-1460-1721-2241+12501-2185-2262-2101 core_invsntrup1277 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 2 2555 19658426 -2747-6932+1004+23926-4074+2595-7893-4519-2414+14997+1236-8880-5560-3899-5661-7087+9556-10114+4559+2185+6214-12320+5054+73645+514+5376-7622+2120+6924-1431+6819+11750 core_invsntrup1277 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 3 2555 8016069 +19304+3214-8677-31901-26970-1577-14213+3065+22974+3434+3448+5737-6134+16049-18171-10430-34338-14155-7109+18940-2286-17395+9528+16554+18790+3134+13667+10422-25902+8386+20444-33032 core_invsntrup1277 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 4 2555 23874433 +1925+8140-14631-825+9477-3512-8583-5106+8212+5562-687-5236+592+29885+10169+486+6176-14404-11490+3530+1532-6189+59+14897+6363-9398-4434-10871-3868-5403+3802+9930 core_invsntrup1277 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 5 2555 25905213 +118353+11142-4119-34182-25766-21317+68107+81181-4134+106044-7420-16597+7791+9902+77947+36001-17479+9342-26298-20562-19598-16664-24968-27250-28603-15446+33257+107412+64870+47809-978-5008 core_mult3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 selected 653 7621 +16594+4413+35+62+23-94-25+54+24+16+11+91-16+42+0+95-17-34+121-50-38-2-15-40-55-10-45-7-63+30-26-19 core_mult3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 0 653 7659 +315+90+124+62-20-39+70-50+88-90-67+88+59+44+4-88-38-68-84+13-25-16-16-36+78-117+54-50+75+39-31-53 core_mult3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 1 653 9421 +2116+477+164+274-32+21+4+3-7+33+58-16-19-10-16-7+17+12-76-35+68-9+79+13-77+54-8-81-20-34-27-12 core_mult3sntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 2 653 45649 +15915+6160+92+67-1+24-72+61+31+47-7-50-14-19-34-22+3+121-21-12-3+42+10+34-22+15-41-55+2-63-28-21 core_mult3sntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 3 653 56934 +746+39+26+26+15+17-25-7+3+15-5-8-5+34-3-15+20-9-25+15-31-50+3-40+4-3-11-8+5-8-7+37 core_mult3sntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 4 653 82568 +796+208+78+9+41+26+20-26+8-11-18+29-3-3-20-3-16-4-27+3-23+0-10-8-3+12-13-1-10+16+24+2 core_mult3sntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 5 653 87032 +947+226+50+25+27+23+16+13+13+17+60+22-9-1-12-55+26-32-31-25-19-26-16-7-14-12-56-10-27-26-6+7050 core_mult3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 selected 761 8046 +1449+151+120+100+0+116-9+31+121-143-11-28-9-102-153-72-118-1+91-57+134+55-81+101-96-118+97+91-149-25-132-69 core_mult3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 0 761 8127 +300-42+69+113+104+63+5-10+43+37+32-153-74-83-179-224-237+49+47+9+57+21-12+7+50-132-218-89-85-15+39-9 core_mult3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 1 761 9940 +1179+240+80+76+95-19+24-69+21+16+20+41-72+24-67+17+49+79-30+5-29+124-34-50-94-16-56-19-35+5-31-59 core_mult3sntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 2 761 72285 +1272+244+112+105+90+100+37+34+8-15-32+0-24+4-4+14-38-38+8+20+8-24-32+2-14-16-30-31-32-13-6+24 core_mult3sntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 3 761 71258 +792+66-28-66-74-41+14-2+5-42+6-32+3997+2598-6-9-18+21-27+23-11+48+54-11-1+31+11+0-26-21+19+7 core_mult3sntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 4 761 126596 +522-221-206-289-4-286-304+26-18+30+0+41-3-10+1+22+6+1-14+14-10-5-13+15+15+20+4+2-8+11+15-8 core_mult3sntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 5 761 115116 +702+11-39-58-83-55-90-28-65-60-44-53-93-58-34-57-64-89-61-49-77-48-74-62+754+1142+725+704+695+712+701+711 core_mult3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 selected 857 10624 +2309+143-28+43+151+108+154+51+123-34+147+90-69-91-68-51-82-20-66+63-76-50-62-79-82+115-56-55-76+91+45+32 core_mult3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 0 857 10704 +1390+1114+153+54+37+72+34+56+64+6-32-11-30-201+30-21-121-139-156-98-164+51+6-3-1-13-11-112-21+44-10-145 core_mult3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 1 857 13261 +1829+430+149+33+90-84-45+66-21-28-78+59+50-84+36+19-48-13-65-83-26+0-25-47-49+113+54+1-42+74-64+83 core_mult3sntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 2 857 87652 +1385+162+65+32+15+30-13-11-7-25-27-3-11+3-19-11+0+6+12-20-21+21+23-19-14-2+16-9-20-8+4675+7218 core_mult3sntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 3 857 86513 +650+662+30-52+16-20+44-20-22-50-22-33-9+124+14+5+0-26-15+8-46-24-2-40+6-12-19+38+36+86+85+68 core_mult3sntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 4 857 145282 +588+136+54+2+82+11+44+53+10+21+1-11-5-5-11-9-3-15+1-13-14+6-4+26-19-6+10+0-15-10-17-5 core_mult3sntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 5 857 144986 +1001+514+46-41-50-56-13-6-45-60-96-60-109-71-53-2+4+16-37-21-41+1+3+99+48+90+40+74+49+44+84+89 core_mult3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 selected 953 11061 +4654+86-53-163-146-26-150-5+40-37+40+4+7+23+29-1+0-9-16-30+18-19+18-21-22+20-19+44+0+27+21-4 core_mult3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 0 953 11086 +163-135+20+30+3+11+4-63-275-95-78-150-89-188-104+26-5-13-32+0+55+17+43+1107-9+10+15+47+3+16+1104+26 core_mult3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 1 953 13693 +1466+104+119+152+209-6+7+101+30-75-40-70+13-45-90-125+144+28+41+18-65-47+66+5+109-50-61-24-30-20-37-6 core_mult3sntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 2 953 107528 +11274+188+66-11-12-2+35+73+39+12+13+20-28+16-20+0-22-9+32-18-21-28+5+45-23-8-21-19+0+26-10-21 core_mult3sntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 3 953 106317 +1212+151-8+21-20-39+16-17-26-30-21-6-12+18-40+4+5+8+554-42-22-37+535+9+8-3+560+33-66+2+345+523 core_mult3sntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 4 953 165224 +1244+175+99+0-23-27+33+18+8-29+45-28-46+44+37+4+7+7+2-52-33-59+8-33+7+39+29-7-17-24-33+1 core_mult3sntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 5 953 178357 +705+27-46+34-45-73-86-104-70-61-52-61-81-74-53-72+28+30+37+21+26+40+32+24+15+34+26+23+25+30+25+20 core_mult3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 selected 1013 11232 +1105+100-91-42-121+79-37+118+950-24-193-52+43+65+31+61-69+83+83-58+111+80-127-79+50-94-90-16+58-85-181-13 core_mult3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 0 1013 11244 +263-26+20-72-47+167-16-101-110+100+59+40+91+24+73-97+72+48+103+116-39-36-148+71-7+10-40-219-278-139-256+16 core_mult3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 1 1013 13971 +1227+176+93+133+38+17-44+7-60+19-31+10+162-20-3+18+65-1+40-29-68+93-52-38-33-39-38-47+10-44+63+0 core_mult3sntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 2 1013 115142 +21038+784+483+33+24+1+27+45-5-74-38-49-5+25-10+6-40-37+13-2+15-15-11-31+66-32+35-25-50-2-20+16 core_mult3sntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 3 1013 120215 +783+13-21+20-75-78-81-50+39+4+32+9-16+131+43-18-5-21+60+22-6-23-38-4+20+47+29+43-27-32-17-8 core_mult3sntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 4 1013 182647 +120+132-227-401-525-9+4+34-46+35+58-11+6+6-10-21-14-32-18+22-24+87+29-2+18+26+37-10+283-443-376-455 core_mult3sntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 5 1013 199596 +840+5-53-72+18+10-4+15+12+50+7-18-8+34-6+0-2+1-12+10-16-7-8-16-7-6+8+1+8+9+6-10 core_mult3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 selected 1277 14361 +5518+202+27-33+21-97-28+16-3-34+188+56+228+27-143+134-228+60-243+267-213+56-185+87-141+65+36-139-227+121-27-214 core_mult3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 0 1277 14375 +567-26-28-45-31+191+209-155+31-2-11-284+27-216+9+24+10-164+47-190-3-32+52-211+256-18+638-4+66-269+32+21 core_mult3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 1 1277 17596 +1950+265+137+267+9+38+135+41+94+52+19-101-50-194-3+13-99-98-187-88-52-79+116-87-3+80-39-88+109+26-10-40 core_mult3sntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 2 1277 197601 +7132+241+213+160+96+189-19-53+43-3+12-28-32+20-34-70+7-25+151+14967+75+56-60-49+103-77-247-170-117-218-235-141 core_mult3sntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 3 1277 176410 +1013+10890+80+14+5-79+57-39-31-4-10-73-30-88+36+15+53-85-48-94-94-7-2+37-14+37-7+19+39+7-2+10 core_mult3sntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 4 1277 295655 +697+260+17-49-3+37-86-69+8-6-83-43+11-7-122+5529+283+202+210+99+71+37+104-110+206-17-114-161-195-53-26-172 core_mult3sntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 5 1277 319328 +729+83+20-29+45+21+19+52+15+23+23+37+17+67+15+35+12-19-47-35-25-44-43+37+250-465-1291-1320-1314-1322-1244-1238 core_multsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 selected 1306 12041 +6217+248+193+67+56+46-27+5-13+13+79-7+5-6-25+1-44+58-10-53+13+57-71-19+17-36-33-45-32-43-15+15 core_multsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 0 1306 12037 +172+79+78-64+67+97+25-97+25-2-28-41-39-46-76+16+75-47+27-36-21+45+53+27-39+13-96-28+1-52+49+20 core_multsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 1 1306 13449 +3677+484+354+177+165+165+72+127+57+141-16+4+11+41+21+66+69+28-61-53-104-115-146-177-123-82-8-203-112-184-50-154 core_multsntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 2 1306 97773 +755+80+72+60+44-38+55+163+140-68-19-116-32-21-129+62+21-41+110-2+2-23-91+150-266+160-181-151-45-51+33-131 core_multsntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 3 1306 102111 -651+924-1485-5+76-54+1047-75+492-151+37-72-30+1113-160+553-5-8-77-113+14-63+993-104+592-72-114-47-154+1081-116+490 core_multsntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 4 1306 265026 +5011+71-32+122+15-53-32+499+44+4334+29-126-76+1-12+4289+76-55+27-36+14-38-90-52-44-85+38-4-31-4+25+76 core_multsntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 5 1306 272721 +2737+308+125+214+115-86-92-68+118-12-114+71+203-142+131-189-284-15+78+46-214-191-170+367+122-99-121+228+1-23-76-81 core_multsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 selected 1522 12224 +3480+306+148+16+36-2-102-27-28+85-39-82-53+28-1+30+57-17+16+9+23-39-3+66-15-35+6+5-62+57-35-54 core_multsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 0 1522 12218 +252+83+4-8+56+2-7-63+8+38-21+4+35-107+54-37+9+10-42-28+11-7+13+17+36-22-48-15+7-129-31+30 core_multsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 1 1522 13599 +1293+320+29+101+104+29+17-25+61-104-16-130-85-75-78-90+13-37-8-61-99+10-28+20+37-20+6+64-23+37-11+43 core_multsntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 2 1522 127518 +750+83+75+58-60-22-52+29+95+67+3-5-3+50-80-25-29+20-69-20+87-46-51-12+8058+3+49-87-34+27-55-38 core_multsntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 3 1522 131013 +9323+8348+8279+8218+8202+8140+8160+8275+8111+8097+8107+8109+8123-2130-4333-11799-3067-11615-3254-11740+7972-1140-11743-11742-11806-5144-11783-5183-11752-951-11696-11776 core_multsntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 4 1522 359783 +4670+4826+4281+4228+4174-88+4189-101-174-135-110-111-14-12-24+43+19+101+7+31-5-23-5-96+21+63+18-18-12-102-21-11 core_multsntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 5 1522 358726 +2463+35-30-65+411+78-9+34-5+34-12+3+24-21-34-16+12-52+67-6-25-6-50+36-36-96-37+28+49-42-12+46 core_multsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 selected 1714 17010 +4067+429+75+263-43-6-1-10+57+38-33-33-27-25-5+22-12+1-16+44-21+20-5-1-55-110-59-8-26+51+36+81 core_multsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 0 1714 16977 +509+117-64-58-77+104+60-44-16+9+3-9+19-42-86+18+3-35+25-3-14+81-6+4+43-35-19+69+20+31-10-22 core_multsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 1 1714 19411 +2125+507+173-21-30+21-43-37-53-62-156-25-161+11+36-76+26-11-98-47+10+57-7+7+17+28+51+64-114+29+21+158 core_multsntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 2 1714 157095 +16001+118+7-19+3599+513+209+49+6+91-86+13-45-31-38-60+84-15-16-11-24-16+119-96-56-113+102+43-28-3-109-62 core_multsntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 3 1714 156476 +18761+17109+17067+16927+17148+17180+17063+17128-2461+17156-2485+17019-2387-2418-2478-2469-2442-2400-2495-2457-2528-2330-2458-2470-2488-2426-2471-2428-2465-2403-2429-2448 core_multsntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 4 1714 459672 +476-4582+22-4867+42-38+82+515+101-4699+84+38-4697-4684-4731-4681-4742+78+97-4+19+54-54+19+10+91-1+34-30-65-23-24 core_multsntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 5 1714 552375 +34306+33884-73773+25176+25315+25322+25209+25378+25257+25290+25257+25273+25166+25294+25259+25227+25205+25214+25283-76360-76514-76491-76516-76463-76621-76432-76104-76595-76452-76510+25252+25169 core_multsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 selected 1906 17160 +3399+135+52+35-175-54-32+11+19-29+42+32-8-15-4-14-157-73-272-36-32-51-3-11+57+34+31+32+49-18-36+47 core_multsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 0 1906 17162 +234+84+26-79+32-19+2+54-34-37+56+52+56-22+20+13-45-19+15-60+7+14-29+77-34-61-1-9-6+1-18+3 core_multsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 1 1906 19606 +1569+221+110+94+0+80+128+8+0-19-32-44-40-40-86-6-78-62-2-9-8-110+5+43-73+40-101+88+0+55+5+17 core_multsntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 2 1906 195914 +15980+17+127-36+5+20-63+14+18-41+81-53-101-16-20+48-57+130+83-145-22+71-127-70+42+192-195-116-10+75-34+70 core_multsntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 3 1906 218879 +601+101+56-17+314+23-14-40-22-3-1-10-1-5+52-34+30-12-16-5-7+11+4+4+6-19+7-20+37+22-30+7 core_multsntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 4 1906 561249 +5883+5741-85-139+5529-138-103-27+14-40-64-93+5322-41+0+6+56+26+14+13-2+21-4+31-50+40+44-74+54+4-13-10 core_multsntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 5 1906 578919 +3211+109+388+256-219-213-56+12+53+164+125-83+54-192-116-23-93-159-225-39+81+108-240-270-260+738+103+64+44-50-13+54 core_multsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 selected 2026 17192 +3478+394-16+11-59-88-91+67+132-100+143-141+84+97-154+85-164-43+41-137+62-111+93+96-140+67-183-4-131+132+91-180 core_multsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 0 2026 17259 +307+71-181-122-143+80-205+104+30+25-36-1+67+50+94+71-123+114+8+117-134+74-123+75-163+59+39-203-22-161-279+13 core_multsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 1 2026 19759 +1535+252+68-20-37+205-17+21-40-30-17-49+184-63+4-23-30-99-24+189+40+0-20+39+52-3+96-11-37-5+132-22 core_multsntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 2 2026 244387 +12545+173+38-88+742+100-61+101+217-32-183+185-91-404+12+174+170-382+32+170-30-137-20-14-6-36+27-124-110-477-26-1 core_multsntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 3 2026 235776 +1347+87-52+83-80-17+5-52+63+0+30-54+15-18-29+3+135+8-59+42-11+56+50-14-62-5-1-1+65-36-55-3 core_multsntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 4 2026 633519 +410-184-40-221-266+3520+84-100+26-82+116+35+92+68-19+66+114+29+24-8-20-2-28+12-45-80+3104-111+9314-19-183-77 core_multsntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 5 2026 651315 +3053+21-70-49-101+24+126-13-40-89-155-21-73+4295+65+3-17+116+35+35+13+45+0+175-45-65+34-6-3-15-117+32 core_multsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 selected 2554 22294 +5347+374+134-120-57-70+203+254+56+98+118+31-125+2665+96+64-116-326+124-187+23+37-425-51-297-9-199+5-222+78-233-61 core_multsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 0 2554 22198 +570+226+161+108-123+156-205+96+188-184-272-259-229-226-212+141+90+101-249+71+143+101+120+265+5-119-216-123-195+73-132+106 core_multsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 1 2554 24720 +2058+364+308+101+51+52+37+36-85-13-132-175-90+48-72-26+9-5-100+89+22-54-104+106+3+42+86-89+21-106-86-14 core_multsntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 2 2554 392989 +14257-635+218+220-124+9+43+167+51-206-138+105-30+280-111-49+55+77-103+29+275+37+55+54+298-104-214+2520-2458-1409-1389-1590 core_multsntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 3 2554 356612 +138+5859-549-531-479-581-520-524-564+75-31+154+24+114+100+16+46-10-23+84+36+6+30+5-18+58-23-19+17-108+7391-639 core_multsntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 4 2554 1014049 -6589-7017+2181-7182-7089-6963+2104+2342+2583+2206+2339+2662+2920-6923+2415+2223+2287+2570+2122+2235+2504+2036+2300+2076+2301-5726+2124-6994-7148-7016-7114-7048 core_multsntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 5 2554 1026696 +3227-6139-6234+17-67+467-6176+179+62+124-88+11-33+45+62-51-18+276-103-11-90-23+135-5-121+27+66-118+1-28+435+4 core_scale3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 selected 1306 144 +654+628+490+450+441+455+362-11+52-12-1-3+2-10-2+1-7-1+1-4-6-6+3-11+0+8-3-15-1+1-6+2 core_scale3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 0 1306 138 +148+69+49+12-3+2-10+0-3+2-3+1+9-3+0-6-2+3-3+3-6+3-1+2-5-1-1+4-5-2+1+3 core_scale3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 1 1306 147 +206+203+135+85+31+26+31+24+10+0+2-3-8-7-2-2-5+2+1-8+3+0-7-2-5-2-3-3-7-1-9+5 core_scale3sntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 2 1306 2016 +601+185+96+43-9-3+4-1+3+21+4-4+0+2-1+1-11-5-5+3-11-2+1-3-1+3-1+2+1-3-1-1 core_scale3sntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 3 1306 1593 +377+141+26+29-16-2-7+4+1+16-5-4+17+11-8-2-4-5+2-5+0-4+17+3+1+286-10-3-4-5-7+0 core_scale3sntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 4 1306 2023 +297+92+102+26+14+3-9-10+13+8-1-5-8-4+4-1-6-10-6+8+3+5-7-1-7+15-3-9-3-1+0+5 core_scale3sntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 5 1306 1578 +371+101+31+65+24-11-5-12+51+33-9+10+9-5-3-10-7-9-4+12+26-3-6-7-8-9-7+14+7-6-6-1 core_scale3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 selected 1522 159 +329+197+93+29+1+9-4+2-10+9+0+0-3-2-4+2+3-9+4-6-4+2+1-11+5+2-6+4+0-2+0-5 core_scale3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 0 1522 161 +122+53+27+15-5-4+5-1-10+4+1-11-1+11-7+11-2+4-5-4+0+0+5+2-5-8+1+1-5+1+1-9 core_scale3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 1 1522 198 +213+63+42+6+4-3-4+0-5-2-2-1-2-3-4-3-2+32+2+0+1+1-1+1-3-1+2-2+1-1+1-1 core_scale3sntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 2 1522 2342 +771+208+70-7+3-7-2+1+4+0+1+2+0+6-5-1-6-1-4+1-3-3+3+0-10+3-7-1-5+1+2-4 core_scale3sntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 3 1522 1837 +812+112-6+66+67-9-4-3-7-5+18+28-5-5-7-7-1-7-6+16+28-5-5-1-4+311-3-9+19+29-4-2 core_scale3sntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 4 1522 2345 +313+101+8+84+15+64-17-11-13+22-11-13-9-4+28+1-4-4-4+27-5-11-7+30-6-2-12-7+15+2-3-3 core_scale3sntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 5 1522 1827 +923+460+52+5-4+2-1+1-4+47-2-5+0-6-6+27-3-1+25+1-2+1+1-3+1-2-5-3+25-4+4+21 core_scale3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 selected 1714 180 +422+145+49+50+10+78+11+7+13-2-10-1-3+5-12+0+0-10-6+6-6-5-7+1-8+0-6+0-9+3-6-6 core_scale3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 0 1714 182 +68+60+51+24+48+45+7-1-5+8-8+2-6+3+0-5-4-3+0+1-5+8-12+2-4-5+5-10-5+3-13+4 core_scale3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 1 1714 219 +246+261+30+5+3+4+0+0+5+2+2+3+0+0-2-3+2-6-1-3-5+0+0-2-3+1-2+1-3+0-2-3 core_scale3sntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 2 1714 2715 +316+110+18+10+46+3+3-5+2+8+6+2+5+9+3+8+2+1+7-10-3-16-14-12-9-9-11-4-15-16-5-16 core_scale3sntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 3 1714 2747 +6282+6151+6099+6098+6061+6046+151+48+53+51+49-456-469-480-474-469-474-480-477-471-442+69+68+71+69+75+71+69+69+73+68+73 core_scale3sntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 4 1714 2708 +402+82+5+7-9+6+6+5+5+7+10+4+5-1+12-10-7-2+14-1-5-3+10-7-10-10-5-11-16-17-5-9 core_scale3sntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 5 1714 8818 +202+69+27+27-14-10-29-23-32+0+1+3+2+0+0+0+0+4+0+0+0+0+4-1+0+0+0+3+2+0+0+0 core_scale3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 selected 1906 226 +524+103+42+10+9-3-1+0-2-2+2-1-1-1-2+2-3+0-4+3-2+2-2+0+1-1-3+2-2-1+0+2 core_scale3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 0 1906 231 +54+23+24+2+17-2+13-4+1-1-1+3-2-4-2+5+2-3-6-9-2+0+0+5-5+2+4+3-5+1+2-6 core_scale3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 1 1906 211 +263+242+142+52+38+32+13-3-1-9+1-6+2-10+7-3-3+1-1+3-7+0+3-8+0+1-1-3-2+4-3-2 core_scale3sntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 2 1906 3000 +249+87+10+2-8-5-2-1-2-15+3+16-6-9-3-2-7+6+4-3-13+12+13+14-2-7+10-5-1+1+7-3 core_scale3sntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 3 1906 9820 +219+24+4+2+2-3-9-9-9-3-1-1-1-3-3-9-9+1+1-2+0+3+3+1+1+1+1+1-4+0-1+3 core_scale3sntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 4 1906 3124 +214+70-117-129-119-123+9-118+0+17+20+5+10+12+7+4+4-5+15-2+3-4+1-2-2-7-5-1-6-3-1+1 core_scale3sntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 5 1906 9821 +211+24-1+5+1-4-4-10-8+0+0-3-1+2+2+0+0+0+0+0-5-1-2+2+0+0+0+0+0+0-5-1 core_scale3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 selected 2026 210 +467+193+78+58+34+19-1-7+5-2-7-3+0-15+14-4+12-7-2-2+0-7-2-2-3-3+0-11+4-8+2+6 core_scale3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 0 2026 215 +67+51+52+28+32+8-6-2+1-6-8+2-1-8-3+4+2+6-5-1+1+6+1-4-1+6-7+0-7-5+2-7 core_scale3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 1 2026 230 +447+180+96+25+28+22+20+21+23+21+5-12+2-6-4-5-5-9-2-16-11-6-3-4-15-5-4-4-6-7-6-5 core_scale3sntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 2 2026 3170 +637+194+11+2-4-2-6+3-4+1+3-5+5-4-2+16+10+3+8-11-1-7-7-4-10+8+7+3+0-13-4+2 core_scale3sntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 3 2026 2489 +517+677+92+0+44+1-3-2+2+10-7+11+3+0-2+0-8-3-7-1+4-9-5+9-7-6-2+1-7+4-9+1 core_scale3sntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 4 2026 3308 +458-104+10-3+0+4-3+3+0+2+1+2-1+3+1-2+4+19-2+2-2-2-3+0-7+14-16-15-10+16-20-14 core_scale3sntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 5 2026 10406 +275+48-1+1-1-1+0+0-1+0+0-1+0+0-1-2+0-1-1-1+1-1-1+0+0-1+0+0-1+0+0-1 core_scale3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 selected 2554 267 +392+183+40+29+33+31+23+27+23+10-12-11-3+0-15-8+6-8-15-1-8-15-2-8-4-8-11+5-5+2-14-6 core_scale3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 0 2554 269 +61+49+36+49+25+22+24+26+5-5+2-8-3-5+1-1-10-5+2-5-10+6+0-3-8-2+0-5-6-14+7-2 core_scale3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 1 2554 284 +229+233+125+76+26+31+27+15-11-4-6-12-5-9-3+4-4+5+26+10-8-10-2-4-11-5-5-8-1-9-6+9 core_scale3sntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 2 2554 3889 +320+96+6+24+36+25+38+38+34+15+8+20-7-6-7+3-5-18-9-5-7-10-13-11-9+14-5-10-9-15-6-5 core_scale3sntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 3 2554 3060 +383+140+39+0-3-4+0+1-9+280-1-4-2-4-6-3-8-3-7+0-7-6-3+2-8-3+44+13+10+11+12+16 core_scale3sntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 4 2554 3934 +241+87+5-4-2-1-15-11-8-9+6-4-5-3-10-1+16+2+22-3+0+1+1+11+4-10+10-8+6+2+4-6 core_scale3sntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 5 2554 3075 +340+97+49+42-13-30+6+22+281-3-2-1-1+0-3+0-2-5+0-2-2-3-1+3+1+1+4-5+9+46+0-13 core_weightsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 selected 2 31 +367+36+7+6+11+7+7+6+0+0-2-1+0-4+2+0-4+0+4-4+0-4+1-3-1-2-1+3-2-4+3-1 core_weightsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 0 2 32 +29+27+34+4+6+7+4+0+7-5-2-4-6+0+2-2-19+17-10+9-3-7+4-11-6+9-2-1+1-8-4+2 core_weightsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 1 2 59 +313+134+62+36+14+15+6+5+7+1-1+0-1-1-1-2-1+0-2-1+0-2-1+0-1-2+0-2-1+0-2-1 core_weightsntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 2 2 735 +322+115-1-2-18-7+5-7+5-4-6-10+1+3+3+6+1+1+2+1+1-3-6-1+3-1+6-10+0+7+3-2 core_weightsntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 3 2 712 +189+35+0+3+2+3+7+5-3-1-1+58+2-1+0-6-5-4-5-5-1+2+2-3+3-2-5+8-5-5-5+4 core_weightsntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 4 2 741 +220+29+7-6+6-12-5+7-11-9+7-9-5-2-7+4+1+0-9+4+3-1+6-5+3+2-1+3-2+6+0-4 core_weightsntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 5 2 711 +182+37+9+7+4+1+5+0+2-2-2+58+1+1+2-2-4-4-4+5+1-4-4-3-4+1-4+0-4+1-4+7 core_weightsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 selected 2 34 +222+56+37+1-1+4+0-1+1+4+1+3-4-6-1+0-8-1-5-4+3-2-3-7-4-5+1+3-13+3+4-5 core_weightsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 0 2 34 +59+46+29+29+18-6-4+4-5+12-17-5+5-7+10-10-9+14-13-10+7-11+18-12-8+10-17-4+6+0-5-3 core_weightsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 1 2 67 +215+85+25-2-1+3+3-1-1-1-1-3-1-2-2-1+2+0-1+1-1+0+1-1+0+1-1+0+1+0+0+0 core_weightsntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 2 2 849 +237+35-1+21+15+2-18-4+5-15-15+0+37-12+7+7-1+1-14-5-2-16+4+3-17-9+12-16+14-1-6+4 core_weightsntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 3 2 821 +225+53+0+5+4-5+1+7+56-5+0-3-4-2+2+4-3-4+6-4-4+2+1-4-4-3+2+3+7-3-5-1 core_weightsntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 4 2 855 +232+51-9-4+0-17-16-10-7+4+3+4-13+1+23-3-1+0+7-11+9+5+8+0-12+7-7+3-5+0+0+9 core_weightsntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 5 2 821 +235+53-6+1+0+1+2+3+2+1-6+1-4-6+1-1+1+59-6-3-6-4-4+2-4+1-4+3+2-4+2+2 core_weightsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 selected 2 51 +197+40+16-14-14-11-12-10-13-4-1+8+15+7+14+10+19+13+18+13+19+15+18-3-18-18-16-23-15-22-16-23 core_weightsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 0 2 51 +25+15-11-10-9-17-9-5-13-6-3+13+12+12+14+12+15+14+18+18+16+17+30-12-17-21-16-12-28-18-2-27 core_weightsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 1 2 65 +241+89+32-4+2-1+7+0-1+4-3-3-2-1+1-4+46+0+2-7-2+3-2-1-1+1-3-1-1-1-3+0 core_weightsntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 2 2 950 +227+63+13-21-6-18+9-3+4+9-3-7-15-2+3+13-8+6-6-8+9-9+7-5+4-6+12-11+4-13+4+12 core_weightsntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 3 2 918 +229+33+6+4+0-3+6+3+0+1-7-5-2+0-1+7+1+54+0+1+0-7-7-3-7+3-2-7-7-3-1+1 core_weightsntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 4 2 951 +319+52-28-23+13+13-15+4+24+6-5+0-12+0+4-15-8-13+3-13-3-8-3+3-19+14-4+1-2+4+18+14 core_weightsntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 5 2 917 +201+33+2+1+1+0+0+0+0+0+8+0-2-3+2+49+1+1+6-2-1-5+4+1-2-4-4+1-6-2+1-6 core_weightsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 selected 2 63 +165+30+6+9+8-24-22-24-28-19-23-13-5+0+3-3+2+2+2-3+3-2+1-1-1+1+0-2+5+5+4+0 core_weightsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 0 2 64 +65+27+2-29-23-32-21-27-17-10+2+3+4+1+3-1-2+3+9+0+0+0+1+3-2+0+1-3-3+1+3+3 core_weightsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 1 2 78 +215+62+23+5+0-2-1+6+1-1-1-1-1+0-1-3+4+1-1+1-1+1+1-1-2+2+0-2+2+0+3-3 core_weightsntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 2 2 1047 +338+100+9+2-1-15-15-6+1+9+12+13-14-10+19-17-10+0+10+13-1-16-17+14-18+19-3-18+7-1+13-16 core_weightsntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 3 2 1016 +223+33+1-6+1+0+0+0+0-2+0-6+4-2+0+48-8-6+2-1-1-5-8+2+1-2-1+2-2+2+2+2 core_weightsntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 4 2 1053 +220+10+18-15+40-26-6+7-7-4+5-11-7-28-24+42+4-7-3+5+4+7-1+11+5+4+3-5+5-11+4-19 core_weightsntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 5 2 1015 +182+37+7+7-9-8+0+0+0+0-1-1+0-4-6+1-1+52+4-1+0-1+0-1+3+3+2+5-1-5+1+0 core_weightsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 selected 2 62 +146+66+7-28-21-19-22-18-23-9+2+1+3+3+5+1+4+1+5+0-1+2+1+0-2+0+3-1-3+1+0-1 core_weightsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 0 2 63 +39+5+3-26-21-25-21-12-23-15+0+14-2-4+5+1+9+6+5-2+2-1+3-2-4-2+1+2+2-5+0+0 core_weightsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 1 2 53 +286+90+39+6-3+0-1-2-3-2-1+0-2-1+6-1+4+0+0+4-1+3-3+6-1-2-5+3+2-2-2-2 core_weightsntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 2 2 1114 +198+62-5-10+5-11+17+15+1+24+0-13+10+3+12-7-16-4-15-16+13+18-16-15+13-16-15+3-16-2+2+21 core_weightsntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 3 2 1089 +179+44+7-1+8+5+2+1+1+3+1+4-1+3+5-6-3-2+0-3-7-3-2-5-5-6-5-3-3-2+0+5 core_weightsntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 4 2 1117 +164+41+16+13+8-23-14+42-9-17-3+8+8-22+7-5-6-7+1+5-3+3-13-12+11-3+6+22-2-5-23-13 core_weightsntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 5 2 1295 +274+997+109+884+7+5+13-1-3-4-3-1+0+5-4-1-1-1-4+1-3-5+0-3+0+1-1-1-1+3+4+1 core_weightsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 selected 2 69 +277+79+19-10-18-16-15-15-15+0+1+1+3-3+1+0+1-2+2+1+1+0-1-2+0-3+6-3-1+0+0-4 core_weightsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 0 2 68 +89+72+32+0+3-22-21-17-17+2+1-1+2-1+2+2+3-1+2-1+3+0-1-1-1+0-3-1+1+0-3+0 core_weightsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 1 2 63 +212+68+97+34+4+0-2+0-4-1+8-7+5-2-4-1-2+1-4+1-3+1+3+3-5-4+2-5+0-2-2+4 core_weightsntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 2 2 1374 +208+50+12+17-16+7-12-19-11+12+4-8+19+19-26-21-15-11+1+17+13-17-3+0-14+16-20+18+26-14+5-17 core_weightsntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 3 2 1339 +172+67+22-1+1-3-3+83-3+1+1+0-7-2-1+6-5-1+2+1-2+2+2+1-1+4+0-4-5-1+3-1 core_weightsntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 4 2 1381 +163+18-19+0-35-19-15+42+20+7-36+7+29-36+16-6-36-25+7+7-27+1-22+14+21+16-9-3-21+11+32+2 core_weightsntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 5 2 1339 +181+34+4-3-3+51-3+3+0-6-2+1+6+0+0+1-2-4+0-4-2-5+1+1-7+1-2-3+1-1+1-1 core_wforcesntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 selected 653 69 +1208+193+189+192+62+26+6+17+2-7+15-6-13-1-2-5+0+1-6+0-8-4+2-8-3-2-4+9-16-3+2-6 core_wforcesntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 0 653 89 +434+291+85+47+13+9+4+3+0-2-1-1-1+1-3+1-3+0-2-1+0+2-5+0-2+0-2-1+0-1+0-1 core_wforcesntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 1 653 69 +199+125+16+14+10+8+9-8-2-2+3+5-6-3-9-4+0-5+2-6-2+2+9-12-6+0-5+15-16+5+0-8 core_wforcesntrup653 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 2 653 157 +423+135+78+6-4-2-3+2+0+0-5-4-5+7-1-3+1+3+1-3+1-4+3-8+0+1-3-1+3+0-2-1 core_wforcesntrup653 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 3 653 65 +134+45+12+8+5+9+4+5+2+2-7+1-6+0-7+17-22-3+2-4-5-1-2-5+0-1+0+9-17-3+0-2 core_wforcesntrup653 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 4 653 91 +203+79+56+29+21+20+21+20-1-2-1-4+3-4+2-1-2-3-1-8-6-2-1-7+2-2+2-2-1+2+3+1 core_wforcesntrup653 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 5 653 119 +328+84+10-3+5-1+1+0+2-1+1+2+2-1+1+2+0+2+0+2+1+0+30+16-5-17-14-15-15-15-16-14 core_wforcesntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 selected 761 77 +1173+166+117+16-5+9+23+28+24+7+3+11-2+0-4-1-9+3-3-13-5+0-6-3-2-5-7-5-1-3-11+3 core_wforcesntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 0 761 76 +89+41+33+6+0+7+27+28+26+6+1-6-1-4-3-8-10-4-11+10-11-2+4-6-1-14-1+3-6-3-1-6 core_wforcesntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 1 761 77 +475+188+21-1+10+6+21+30+25-2+1-5-11+8+0-6-2-8+8-9-8-18+6-10-1-4+5+2-20-1-7-4 core_wforcesntrup761 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 2 761 153 +497+176+81+18+20+21+20+18-3-2+3+0-4-1+2-2+1-4-3+1+1-3-2-2+3-1-5-2+1-2+2-5 core_wforcesntrup761 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 3 761 93 +136+36+17+24+24+21+25+23+0-2-2+1-1+1-2-1-1+1+1-4-1-2-1-3-2+1+0+0-4-1-2+3 core_wforcesntrup761 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 4 761 130 +529+174+80+15+17+16+16+19-3-2+2+0-1+1-3-2-1-4-2+3-1-3-2+1+5-3-2-5-1-3-8-2 core_wforcesntrup761 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 5 761 100 +282+170+59+23+23+23+21+24-4+0-5-3-4-2-6+0-3+1-2+10+3-1-1+3-4+0-2-5-4-2+0-2 core_wforcesntrup857 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 selected 857 82 +590+39+4-5-2-4+8+9-23+8-4+7-3+10+15-18-7+4-1-2+1+0-13-4-2+0-14+5+4-16-5-1 core_wforcesntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 0 857 85 +541+341+47+55+41+5+6-3+13+1-3-1-6-7-1-2+0+6+0-5+6+1-9+1-6-2-4-6+1-6+5-7 core_wforcesntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 1 857 86 +461+301+50+22+18+7+4+0+3-9-2+0+0-6-1-2-4-1-2-2-6+1-3+5-1-6+2-2+4+7-5-2 core_wforcesntrup857 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 2 857 162 +515+121-9-6+3-5+0+9+4+0-10-8+2+8-9-4+0-6+3-3+4+0+16+0+3+2-4-1+1+1-8+8 core_wforcesntrup857 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 3 857 83 +60+31-3+3+0-5-11+8+1-1+5-1+2-15+11-2+1+1-1-13+6-5-1-2-3+2-9-2+4+8-17-5 core_wforcesntrup857 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 4 857 132 +786+163+23-11+6+8+10+8+10+7+5+4+7+5+5+6+9+6+1-13-6-16-8-13-16-11-12-13-14-14-14-12 core_wforcesntrup857 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 5 857 108 +448+134+8+7+6-2-4-6-4+1+1+0+3-7-2+3-3-3-2+5-1-9+6+3-5-1-2+3-5+9-4-2 core_wforcesntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 selected 953 91 +638+168+74+8+18+11-1+12-5-1-1-9+2-2+0-3+7-5-10+0-6+1-9+0-4-8+1-1+3-13+0+1 core_wforcesntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 0 953 91 +118+55+34+9-4+2+8+5-1-2+3-14+1-5-9-9+6-6-1-11+7-9-7-2+2+35+1+3-9-4+8+2 core_wforcesntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 1 953 94 +474+338+9+9+2-5+0+3+5+6-1-25+15+3-7-6-1-3+4+6-12+6-9-2-5-4-4-7-1-14+8-3 core_wforcesntrup953 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 2 953 125 +362+92+2-6-8-9-8-10+2+3-4+4+4+3-1-4+0+0+1-4+3+0-3-4+1+0-1+0+3+5-1+2 core_wforcesntrup953 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 3 953 105 +388+27-4-5-7+8-6+14-4-2+12+16+11+6+10+4+2+11+0-2-2+0-2-5-6-4-4-1+0+2-3-2 core_wforcesntrup953 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 4 953 120 +452+103+37+9-3-5-2+1-6+0+1+2-5+0+1+1-1+0-3-3-2-4+2-3-3+8+4+3-1+4+4+6 core_wforcesntrup953 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 5 953 131 +390+108+35+13+8+7+6+4+8+4+2+4-4-3-2-7-3-1-7-3-5+0-8-2+29+5-2-6-3-4-3-6 core_wforcesntrup1013 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 selected 1013 89 +544+86+16-1+0-12+5+5+4+7-3+0-1+12-4-1-4-3-1-6-1-2-2-1-3+2+2-7+1-4+4-5 core_wforcesntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 0 1013 89 +485+219+39+5+4+10-5+0-3+4+0+3+3-2+4-5+1-10-1-6+4+1-3-2-3-3-5-6+2+5-2-1 core_wforcesntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 1 1013 104 +455+187+77+15+8+7+7+12+7+3-3-2-3-5-2-3-4-2-2+5+2+0-2-1-2-2-2-2-2-2-2-1 core_wforcesntrup1013 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 2 1013 203 +605+94+37-1+3+0+6-2+0-1+1-3+1+9-2-1-1-2+7-1+0+2-1-1-3-4+2-2+1-2+2-5 core_wforcesntrup1013 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 3 1013 89 +41+26+3-3+15+18+35-14+11-4+0-3-5-1+0+3-2+8-1+3+3+7-1+3+7-5-3-3-6-7-4-3 core_wforcesntrup1013 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 4 1013 129 +409+99+3-10-6-4-1-3-4-3+0+1+1+3+0+1-1+2+2-4+0+0-2+0+0+2+4-1+3+1+1+1 core_wforcesntrup1013 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 5 1013 155 +435+108+68+49+39+4+3+7+12-7-2-9-2-2+4-5-4-2-2+4-9+4+37-2-1-2-1-4-1+0+2-7 core_wforcesntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 selected 1277 122 +619+248+7-3-4+3-3+1+0+0+3-4+1+6-3+2-5+1+2-2-4+6-2-8+1+0-2-5+1+2-3-2 core_wforcesntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 0 1277 122 +237+136+57+21-9+2-7+4-10+11-4-1-2-4+6-2-5+9-5+1-5-8+0+0+2+3-1+5-8-4+4-9 core_wforcesntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 1 1277 120 +572+253+81+91+10-6-5+1+4-11-5-9-1-2+0-4-3+4-6+9-4-2+5-5+3+2-6+9-5+6-10+4 core_wforcesntrup1277 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 2 1277 220 +418+170-6+3-3-5-4+3-2-3+9-7+3-1-1-2-4+7-2-5+3-2-2+1+3+2-4+3+1-5+4-2 core_wforcesntrup1277 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 3 1277 123 +274+60+1+4-14+3-4-11+1+4+3-4+7+1+3-3+4-7-2+0-2-2-5+3-4+8-5+24-9+7-4+1 core_wforcesntrup1277 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 4 1277 141 +515+201+20+5-5+1-2-2+0-2+0-1-1+1+0+0-3+1+0+2+0+5+1-1-2-3+0+1+2-1-3+2 core_wforcesntrup1277 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 5 1277 156 +541+220+168+53+26+5+7+48-1+1-2-2+0-1-2+0-1+0-2-1-2+2-3+0-3-1+0-1-1-2-1+0 kem_sntrup653 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair selected 994 569998 +24810+8482+2948+89600+529+289-134+244-698+39-394-483-1005-1451+8824+11758+305+19305-1240-505+6450+244-1363-3381-730-3951+796-613-831-424+1041-242 kem_sntrup653_enc selected 897 31437 +4613+635+285+151-15-16-58+220-48-110-21-39+165+25+226-352+18+96-18+180+161-64-195-103-81-161-259+44-173-69+90-97 kem_sntrup653_dec selected 32 44933 +4999+1306+196+17-24+18-123-140-91-207-197+48+77+0-64-191+519-17-126+7-176-41+503+52-36+583+127-95+577+19-292+527 kem_sntrup653 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 0 994 569881 +4017+1153+13357+89534+118+383+617+11106+20468-3026+88109-207-474-2818-3731+2149+13330+246-604-1135-620-3931-821-872-2648-902+4003-491-297-1711-499+212 kem_sntrup653_enc 0 897 31478 +1604+978+416+266+481+14+9-13+68-72-168-66-185+3+84+87-6-69-54-95-95-221-15+161-79+134-21-81-183+193-105+140 kem_sntrup653_dec 0 32 44692 +1755+807-76-16+161-115-16-127+128+25-26-60-131+101+172+524+20-62-38+193-35+98+160-112-168-122-46-28+112-58+36-62 kem_sntrup653 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 1 994 569086 +2283+316+16607-50-2637+1981+598+220-2386+3385-34-972-368-344+159+333-3411-2930-1460-2893-353+267-8-440-256+87574+416-7+343-540+1769+216 kem_sntrup653_enc 1 897 31417 +791+110+54+115-178-91-73+529-179+39-7+5-20+68+39-160+39-18+24+549-1-152+25+37+84+37-68-128-195-88-19-45 kem_sntrup653_dec 1 32 44914 +721-21+84+131+140+294-84-14+78+79-165-55-16+30-30-22-218-102+18-30-139+35-15-7-109+192+859-126+106-32-151+0 kem_sntrup653 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 2 994 569496 +749+868-2688-144+524+1784+572-504-2953-175+64-3549+945+12462+415+658-84-285+86401+198-421+785+149-305-151-139-404+40-882-866-268-856 kem_sntrup653_enc 2 897 31609 +1728+875+505+307+206-25+38-72-16-18-68+0-34-74+3-165+183-43-107+32-17-26-50+69+217-47+40-36-216-183+81+891 kem_sntrup653_dec 2 32 44674 +1324+441+291+350+58-118-44+19-5-98-122-86-26+83-72-166-93-116-47-48+124+99+71+161-11-155+605+22-128+288+52-62 kem_sntrup653 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 3 994 569811 +1116+628-2140-318+1372-628-577-841+809+7271-464+17754+274+1624-30+1373-3790-226-1919+3998-3586-3732-3199-493+28+197+8+1423+10158-1459+47-375 kem_sntrup653_enc 3 897 31859 +1356+627+417+311+297+83-18+124+27+107-67-147+16-166-99+6+29-2+77+46-64-161+8-71+2-58-18-28-81-208-302+41 kem_sntrup653_dec 3 32 44865 +1031+327-22+189-2+65+46+137+33-83-74-42-26+49+504-159-20-107-168+160+16-53+69-34+116+66+184-181-90-73-89-100 kem_sntrup761 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair selected 1158 743752 +13265+5054+2908+1110+1531+734+318-417-1007+28+930+4325-577-202-1108-585-1325+60-89-2468+882+1017-1023+52-1704-1564+91+996-429-310-894-483 kem_sntrup761_enc selected 1039 35130 +2482+899+513-48+81-6-263+53-108-7+152-8-27+18+174-3+107-20-52+94-34-21-90-112-63+41-121+358-59+132-65-201 kem_sntrup761_dec selected 32 47191 +4942+867+337+105-98-122-17-12-68+28+11+281+70-13-34+121+57-88-25+54-100+51-71-104+101-36-17-184-179-129+86+14 kem_sntrup761 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 0 1158 741826 +3852+1585-1070-259+177-709+10785+389+171+2703-787-225-2369+567+1242-1423-452-821+11607+278-1577-38+1011+168+206-296-86-1320+48-1344+867+64 kem_sntrup761_enc 0 1039 34024 +1675+428+345+13+310-83-11-4+138+74-13+109+186-63-107-142-121-144+84+24+170-56-30-74+164-106-194+122-98+1-130-114 kem_sntrup761_dec 0 32 47428 +1116+535+386-117+148-94-58-114-5-168+108-113+38+60-48-34-4-213+19+188-57-156+52+195-223+40-221-88+106+304+72+0 kem_sntrup761 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 1 1158 741983 +1119-92+481+708-739+97-1183+508+769-1103+2936-663-87+1623-1491+132-853+1581-1277-938+2211-172-411-1868+1580-991+2374+1700+1872-1219-679-115 kem_sntrup761_enc 1 1039 34018 +1079+162-88-65-75+70+67+68+11-3-53+111+5+50-10-70-122+79+31-86+106-133+8-78-116-146-137+48+180+200+139-131 kem_sntrup761_dec 1 32 47305 +1010+340+170+189-6-2-38-115+71+705+43+637-89+175-6+206+61+1-141-106-228-7+107-249-111-130-110-277-29+33-163+73 kem_sntrup761 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 2 1158 745786 -248-1351+142+589+594-31+220+61-876+297-149+238+97-441+319-134+398+287+759-2393-662-160+3029-500-186-607-1396+226+206-653-135+526 kem_sntrup761_enc 2 1039 34313 +1453+243+183-95+127-61-136+139+19+198-16-212+183-98-107-5-111-54+23+104-17+4-149+11-6-102+146-28-56-11-35+141 kem_sntrup761_dec 2 32 47441 +1112+217+4+108+72-68-11+48-71-179-83+9+160+70-8+7-43-56+26-64-106-138-123+60+124-73+34-160+184-200+65+103 kem_sntrup761 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 3 1158 742442 +727+433+1997+2945+184+1044-765-147+123-726-883+155-668-1270-868+2066-634+864+5946-64-767-3223-90+3511-283-255-1373+1126+4+233-580+2114 kem_sntrup761_enc 3 1039 35054 +1100+435+372-209-43+31-41-182+3+89+132+96-6+198-29-14+71-219-317-27+3+54-118-15+23-182+100-94-290+74-166+8 kem_sntrup761_dec 3 32 47173 +1039-5+178+23+63-19-51+2-84+148-118+134-25+70+33-111-157-4-124-120-212-67-32+82-47+57+156+69+1-23+282-42 kem_sntrup857 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair selected 1322 938327 +12678+8363+1619+3147+142+2081-551+725-200-284+15403+600+2905-11-8-1432+18-476+2153-4274-350+231+439-499-1816-170-467-270-1017+81-1347-1415 kem_sntrup857_enc selected 1184 42316 +2368+511+87+267+273+20+66-25-163-41-190+31-168-86-83+41-29-160+277+24+96-81-54+41-10+69-64-149+41-60-44+146 kem_sntrup857_dec selected 32 61681 +4343+1213+429+293+259+25+179+121+27+31+73-173-131-45-213+89-49+23+3+95-169-31+3-39-91-137+170-122-55-69-81-155 kem_sntrup857 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 0 1322 938466 +614+343-355-847+2565+1718+10992+2977-1062-566-660-1716+1442+2748-372-968-1590-1579+2383-1508+2832+2308+2524-1422-1718-938+1712-320-1538-1913+1376-1112 kem_sntrup857_enc 0 1184 41471 +1229+744+155+125+113+165+52+117+76-204-90+31-122-8+196-214-172-262+90-36+242+164-163+16-185-132-22-118-134-88-145+119 kem_sntrup857_dec 0 32 61349 +1345+793+463+188+71+19+33+69-166-65+52-42-152-106-163+227-161+30-6-69-82-25-81+161-81-9+159+105-25+101-53-247 kem_sntrup857 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 1 1322 938174 +2742+383-1031+886-195+530-456+59+1836+503+520+127-492+313-124-315-401-318-62-16-154+554-335-222-644-345-965-16-129+391+3005+280 kem_sntrup857_enc 1 1184 41447 +1177+344+235+393-15-44-79+18-109+19+150-109-97+20-45-99-75-55+36+73+104-81-3-5+10+156+69-30+99-59-119+13 kem_sntrup857_dec 1 32 61202 +1557+423+200+214+232+194+110+59-42+64-86-128+200-201-109+82+77-155+48+10-193-305+49-124+54-189+66-60-71-137-53-83 kem_sntrup857 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 2 1322 937847 +1193+177+249-72+231-545+3329+148-460+71-189-622-132-78-316+456-698-195-113+2822+223-82-58+334-191-1991-114+331-4210-45+301+217 kem_sntrup857_enc 2 1184 41800 +1429+377+32+193+390+220+3+25+206+58+410+3-138+37-11+68+70-50-203-125-107-236-5-24-121+54-213-59+55-77-140-181 kem_sntrup857_dec 2 32 61342 +1307+383-9+244+159+128+218+170-18-139-64+8-37+148-11+138+136-50-117-173-79-160+17+20-23-88+60-31-144-44-168-191 kem_sntrup857 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 3 1322 937901 +2015-423-307+470+55-518-466-446+707+192+189-7+253-56-67+1318-107+232-640+12643+1385+130-1-308-372-750-294+2276+831-1295+2582-602 kem_sntrup857_enc 3 1184 42240 +628+323+154+85+123+69+147-9-13-106-166-85-26-28+11-195-21-179-47-264+135+12+34+1+93-87+46-132+31+110-213-64 kem_sntrup857_dec 3 32 61758 +662+750-66+38+42+232-86+30+40-158-96-50-124+72-140+72+204-12+135+23-180+64+109+71+92+10-129-143-66-18-218-158 kem_sntrup953 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair selected 1505 1134045 +7292+16556+5755+1806+10062+3173-848+152036-2483+6902+29825+5350-116+31403-3756-3485-4151+673-563-3195-3468-3088+302-10898+4341-4584-4146-3988-4205-4122+1801-201 kem_sntrup953_enc selected 1349 45276 +5247+701+230+294+164-7-20-57-194+48-213+16+56+11+56-129-22-213-209-97+60-32+68-36+4-60+57+117-40-52-46+12 kem_sntrup953_dec selected 32 63881 +4618+1744+122+99+87+142+218+37-94+1-111+40-67-141+111-93+92+32+29-74+164+43-114-20+21-236-24-196-144-75-27-245 kem_sntrup953 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 0 1505 1131180 +456-1009+3810+3074-2244+10149+6408+6339-1475-2080+1452-9669+2111-1457+340-1373-1399+3237+3085-1021-1836-3415-2045-8116+8192+5039+1273+20154-1130-1326-1601-1986 kem_sntrup953_enc 0 1349 44762 +1734+1048+35+157-85-8-41-82+10-56-133+26-130-370-5-98-37+23+128+71-69-117+62-31-4+141+103-7-24+147-17+80 kem_sntrup953_dec 0 32 63878 +1622+301+233+2-97+5-1+93+86-59-2+155-15-69+70+18-162-64+14+31+104-144-191-58-22-235+24+27+233+27-75-285 kem_sntrup953 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 1 1505 1129440 +15405+17138+485-1346-873-548+5596+30626-352-1213-499-1263+6543-519-1165-8585-1623+13086-354-8561-613-481-198-1513+13959+13790+26265-339-2349-3178+2335-2164 kem_sntrup953_enc 1 1349 44438 +1373+718+528+182+102+162+129+237-56+42+96+10+79-102-138-127-144-53-116-62+94-260-136-217-18-262-36+64+85-50+17-284 kem_sntrup953_dec 1 32 63717 +1192+3559+8793+195+275+133-30+180+67+55+35-81-18-61+160-33+75-105+91-14-58-225-217-265-25+5+69-178-118-75-281-139 kem_sntrup953 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 2 1505 1132962 +174-2464-4171-1469-3441+10175+9562-4006-1128-6412-2628+9186-3909-4282+6029+9782-2232-302+9675-1561+698-4091+9787+8871+11414-3878-2502-3711+7785-2993+8921-2840 kem_sntrup953_enc 2 1349 44944 +1838+1112+381+259+192-22+237+132-144-98+221-149-14-79-68-108+52-203+27-137+67-126+2+68-146+31-23+15-83+37-5-10 kem_sntrup953_dec 2 32 63930 +1048+140+1+47+144-20-104+54-60-242+74-84+52-8-28-64-198-37-43+20+37-155-40+122-21-17+34+41+83+26-14-29 kem_sntrup953 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 3 1505 1132758 +25288-2526+5177-9100-2087-5898-2722+6671+4145-493+5810-1447+2240+1443+18564+1517-114-2065-2295-4924-2801+40746+9441+6813+3647+430-1562-2751-2975-5952+677-1508 kem_sntrup953_enc 3 1349 45282 +565+279+96+192+189+76-7-16+41+16-87-152+64+17-108+149-43-171-103-215-124+61-6+103-47-19+204-225-230+22+33-136 kem_sntrup953_dec 3 32 63794 +999+471+3+21+63+176+94+240+87-77-134-133+52+280-120+6-247-165-42+30+160-152+170-157-37-138-206-28+54-96+51+35 kem_sntrup1013 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair selected 1623 1260294 +8225+5645+1284-208+6814-195-6508-1140-885-1038+5115-951+8412+191-9724-846-802-847-313+3405-3149+516-1491+2252-1156+206-1753-2536+5824-10788+13050+2778 kem_sntrup1013_enc selected 1455 45882 +3127+199+187+366+197+150+63+70-75+10+133-8-26-50-338-152-216-83-126+17-53-255+74+74-46-5+153-207-12-114-108+50 kem_sntrup1013_dec selected 32 65517 +4984+1112+1453+334+281-49+34-39-322+979+998+142-362+50-129-83+217+36-51-170+92-229+3-139-236-118-201+32+131-181-129+73 kem_sntrup1013 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 0 1623 1261772 -657+2183+450+463-1193+6141-550+15622+165995-640-1423+187+3239+9564+3265+15742-1327-5406+626+307-1736-215-1079+1175+8211-849-2774-200-524-1683-672-1367 kem_sntrup1013_enc 0 1455 45846 +1653+495+48+98+280+153+127+68+32-70+130+20-227-98+140-15-90-260+68+159-100-174-193-168-63+139-216-126-159-32-182+140 kem_sntrup1013_dec 0 32 65490 +1926+811+440+1231+1162-60+60-62+954-54+11+76-244+14-51+70-174+25+18+12-26-49-102-12-19+39-42-69-83+156-65+2 kem_sntrup1013 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 1 1623 1259252 -763+285+11314+379+990+10594+837-1257-928-7924+119+166055+10608-419-591+4424+8846-344-1627-515+9603-206-9597+1173-464-1045+9727+732-2062-965-1556-289 kem_sntrup1013_enc 1 1455 45772 +795+443+20+212-27+65+284+102+76+140+881-105+8-163-281-219-193-101-4+67+33+48+52-24-179-115-240-106-173+123-102+161 kem_sntrup1013_dec 1 32 65551 +614+1301+1119+1099+158-131-117+41+128+110-91+137+4-25-91+179-153+177+29+192-70+824-33-37-191-373-167-150-235-215-5-205 kem_sntrup1013 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 2 1623 1263918 -513-1690+2077-3268+11382-749+170684-7346+11724+504+3378-1551-2018-1866-2676+6432+11995-3745+12201-338-1790-1020-2463+2160+219-345+4125-685+1819-3021+14215-1473 kem_sntrup1013_enc 2 1455 46365 +1140+308+113+14-145-56-48+13+150-281-58+57+41-72-132+222-47+1-14-28-158-28+90-9+150+32+159-66-41-118+23+790 kem_sntrup1013_dec 2 32 65939 +977+80+852+702+840+866-467+1923-445-394+604+704-557-616+1335-667-351+334-412-199+461-493-393-503+1475-419+1457+345-416-589-406-247 kem_sntrup1013 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 3 1623 1260458 -5500+4023+33226+238+221-810-1285+1860-1369-1213-1386-7224+136+230+228-858-691-874-10381-988+2633+80+6654+734-3156+10229+9162+4550+6978-9793+5059-923 kem_sntrup1013_enc 3 1455 46652 +638+391+136-13-27-70-143+67-58+348-7-111+176-92+230-89-87-248+51+154+82-155+454+253-165-65-34+39+25+0-47-101 kem_sntrup1013_dec 3 32 66321 +1476-530-743+272-561+429-624+173-728+519+1213+245+383+400-776-599-689+231+234+363-642+360+276-784+429+488+561+161-735-715-584+207 kem_sntrup1277 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair selected 2067 1945365 +6522+4153+31850-189-248-99+14911+1916-3142+123+250339-379-1605+1277-1406-888+314-1221+245178-665-2349-1128-3427-1745-6757+23052+3310-828-290-1013+3882-2751 kem_sntrup1277_enc selected 1847 58064 +3266+633+337+171+446+94+98-52+113-21-65+21+243+26+156+100+51-32-258-317-68-246-193-26-380+36-184-261-219-9-328+29 kem_sntrup1277_dec selected 32 81528 +4958+1880+1675+161+198+57+332+23-133-270+26-385-347-100-95-57-123-40+4-64+64+132-200+57-111-151-81+215+55+0+64+92 kem_sntrup1277 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 0 2067 1944880 +2032+3054+545-48-1245+207+927+251775-585-1802-1574-491-1183-2147+3888+1751+261735-598-508-1623+2562-846-3285+16053+513-1495+252021-480+2027-1106-1039-263 kem_sntrup1277_enc 0 1847 57736 +1167+510+249+386+139+102+24-432+276+248+529-93-266-67+343-140-229-29+8+35-4+198+69-169-339-197-367+88-110-325-186-55 kem_sntrup1277_dec 0 32 81655 +2872+303+125-290+184-433-38-27-247-49-123-51-51+33+78+28+175+211+27+142+230-98+60-168-50+215-29+97-60-213-184-233 kem_sntrup1277 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 1 2067 1944727 +1521+6391+7292+7274+3291-2074-1346+490-1772-1229+1490-597-1757-5999+330-981+13530+3037-877-2171-2822-1762-3373+18419-1733-31-755-7255+1882+16208+4619+554 kem_sntrup1277_enc 1 1847 57923 +1131+396+245+87+173-88+63+106+382-58-158-31+302+35-44+239+60-32-157-105+174-83-40-72-288-28-361-58+199-236-128-83 kem_sntrup1277_dec 1 32 81612 +2531+475-30-4+44+166+172-193-75+62-82-28-223+228+65+22-20-48-178+195-117+190-126-82+124-188+310-301-81+106-86+26 kem_sntrup1277 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 2 2067 1946003 +252840+1736-1346-1920+1479-71-1950+6235-1973-794-1284-1751+12919+802+555-1715-1923-5486+14023+1973-1536+911-796+2460-1447-587-201-1309+10104+11740+1023+1336 kem_sntrup1277_enc 2 1847 58192 +1246+1179+236+55-52+32-26-53-22-110-228+202+152-24-368+42-330+318+103-25-237+27+45-83+71-76+43-162-9+6+43-164 kem_sntrup1277_dec 2 32 81503 +2929+830+233+65-98-55+105-244+275-376-325-381-333-113-164+101-29+471+146+135+79-361+39+85-1+414+44+201-61-128-170-257 kem_sntrup1277 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 3 2067 1944661 +5747+16393-358-551+5883-1484-1718+3680+286-1960-333-1118-550-1172+13582+372-948-1547-936+243834+18393-732-814+134+15+121-4455+1046+15255+31625-563-817 kem_sntrup1277_enc 3 1847 59912 +1717+583+366+266+119+235-51-158-41+273+107-7-3-91+34-18+24-135+13+9-116-183+96-95+29-89+19-73-104+72-207-16 kem_sntrup1277_dec 3 32 81945 +2545+616+62+134+54-38-215-311-37-5-17-267-185-37+1209+37+84+965-28-175-245+165+91-43+151-37-88+1244-312-104+79-83 libntruprime-20241021/benchmarks/haswell-titan00000644000000000000000000156733614705505542020111 0ustar rootrootntruprime version 20241008 ntruprime arch amd64 cpuid 756e6547 6c65746e 49656e69 65746e49 2952286c 6f655820 2952286e 55504320 2d334520 35373231 20337620 2e332040 48473035 0000007a 00000000 000306c3 00100800 7ffafbff bfebfbff 00000000 000027ab 00000000 9c000600 00000000 00000000 00000021 2c100800 00000007 00000000 00000000 00000000 00000000 cpucycles selected persecond 3500000000 cpucycles selected implementation amd64-pmc cpucycles selected 0 45 +17+19+20+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 0 51 +1841+69+32+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1 125 +340+58+13+0+0+0+0+0+1+1+0+0+1+0+0+0+0+0+1+0+0+1+0+1+0+0+1+0+0+0+1+0 randombytes selected 2 125 +34+41+10+0+2+1+0+0+0+0+1+0+0+0+0+1+0+0+0+1+0+1+0+1+0+1+0+1+0+1+0+1 randombytes selected 4 125 +54+34+10+1+3+2+1+0+0+0+0+0+0+1+0+1+0+1+0+0+0+1+0+0+0+1+0+1+0+1+0+1 randombytes selected 7 125 +34+12+10+0+2+1+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 11 125 +34+12+10+0+2+1+0+0+1+0+0+0+0+0+0+0+0+1+0+1+0+1+0+0+0+1+0+1+0+1+0+1 randombytes selected 17 125 +34+12+10+0+2+0+0+1+0+0+0+0+0+1+0+0+0+1+0+1+0+1+0+1+0+1+0+1+0+0+0+1 randombytes selected 26 125 +34+12+10+0+2+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0 randombytes selected 40 125 +34+12+10+0+2+1+0+1+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0 randombytes selected 61 126 +33+11+9-1+1+0-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 randombytes selected 92 126 +33+11+9-1+1-1-1+0-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 randombytes selected 139 125 +34+12+10+0+2+0+0+1+0+0+1+0+0+0+1+0+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0 randombytes selected 209 125 +34+12+10+0+2+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+0 randombytes selected 314 126 +33+11+9-1+1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 randombytes selected 472 125 +34+12+10+0+2+0+0+1+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0 randombytes selected 709 126 +33+11+9-1+1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 randombytes selected 1064 125 +54+12+9+0+2+0+0+0+1+0+0+0+2+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0 randombytes selected 1597 132 +47+5+22+18+12-6-7+12-7-6+10-6+11-6-7+10-6+13-6-7+10-6-7-7-6+10-6-7+10-6+13-6 randombytes selected 2396 144 +57+8+10+1+1+0-2+0+0+1+0+0+0+0+2+0+0+0+1+0+0+0+0+2+0+0+0+1+0+0+0+0 randombytes selected 3595 144 +36+7+9+2+0+1+0+0+2+0+0+0+0+0+1+0+0+1+0+0+0+0+1+0+0+1+0+0+0+0+0+0 randombytes selected 5393 144 +57+8+10+1+0+2+2+1+0+2+0+0+0+0+1+0+0+1+0+0+1+0+0+1+0+0+0+0+0+0+0+1 randombytes selected 8090 144 +35+20+9+2+0+2+0+1+2+0+0+0+0+0+0+0+2-2+0+2+0+0+1+0+1+0+0+2+0-2+0+0 randombytes selected 12136 149 +38+21+25+14+5+0+4+3+0+0+2+0+0+2+1+0+0+0+0+0+182+20+1-3-7-5-5-3-3-3-5-5 randombytes selected 18205 157 +29+13+10+4+2+0-8+3-5+1+0-8+4+3+1-8-7-1+2-6+1-1-8+3+3+0+0-1+1-4-6+1 randombytes selected 27308 158 +35+12+14+7+2+1-1-2+2-6-9-9-1-6-1-2+1+4+0+0-6-1+0+1+2-9+0+2+0+170+9-1 randombytes selected 40963 170 +36-1+14-1-1+2+1+3-1-1-4-2+3+0-1-1-4+0+3-4-3+3+4-1-1+4-1+3-1+4-1+4 randombytes selected 61445 171 +35+5+136+27+5+2+0+1+0-1-1+2-2-2-4-1-5-1-5+2-2-1-2+0+1-5-1+119+27-7+2+0 verify_897 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 selected 897 128 +1333+79+43+14+5+7+2+2+2+0+0+2-4+1-2+0+11-1+5-1-1-1-1-1+3-2-2-2-2-3-3-3 verify_897 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 0 897 128 +78+13-1+0-1-3+0+1+0+0+0+0+3+7+4+6-2+0-1+3-1+1+1+1+3-3+1-3-5-2+1-2 verify_897 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 1 897 130 +189+102+18+18+21+19-1-3-2+0+1+0+4+3+1-3-3-1-2-1+0+0-5-3+0+3+4-2-5+0+0+0 verify_897 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 2 897 142 +1306+49+25+3+5+5+1+6+17-3+3-2-1-4+6-1+11+3-4-1-4-4-4-4+0-1-3-2-4-1-3-4 verify_897 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 3 897 148 +1326+62+2+27+28+0+0+0+1+0+0+0-1-1-1-1-1-1-1+3-1-1+1-2+3+1-1-2-2-1-1+1 verify_897 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 4 897 276 +1303+41+6-1+0+1+0+1+0+0+1+1+0+0+0-1+0-1+0+0+1+0+1+0+0+0+0+0+0+0+0+0 verify_897 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 5 897 210 +1332+39+17+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 selected 1039 136 +579+68+15+1+4-2-5+2+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 0 1039 132 +1343+80+23+18+18+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 1 1039 133 +82+59+51+18+3-1+1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1+4+6+9+4+6+9 verify_1039 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 2 1039 164 +287+25+4-3+0-1+3+7-5+0+7-5+0-2+0+7-5+0+7-5+0-1+6-5+0-4-4+4+0-4-4+4 verify_1039 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 3 1039 209 +445-7-12-7-19-1-3+1+3-3+1+1+3-3+1+1-42-1-21-2+1-3+1+1+3-3+1+1+3-3+1+1 verify_1039 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 4 1039 324 +154+53+13+38-4-4+3-1-1-1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 5 1039 255 +505+24-6-8-7-12-5-10-12-4-10-12-6-9-12-6-9-12+17+8+5+7+8+5+8+11+6+5+11+6+5+11 verify_1184 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 selected 1184 145 +514+47+3+35+2+0+0+2-1-1-1-1-1-1+1-1+0+0+1+1+0+3+0+0+0+1+1+0+3+0+0+0 verify_1184 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 0 1184 146 +119+15-2+0+1+1+0-1+1+0-2+0+2-2+0+2-2+0+1+1+0-1+1+0-2+0+2-2+0+2-2+0 verify_1184 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 1 1184 150 +1359+33+1+7+4+4+4+4+3+1+4+4+4+3+1+4+4-3-2-4-4-4-4-4-4-4-4-4-4-4-4-2 verify_1184 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 2 1184 174 +432+55+18+15-1-3+0+0-1-5+2+0-1-5+2+0-1-5+2+0-1-5+2+0-1-5+2+0-1-5+2+0 verify_1184 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 3 1184 186 +1324+34+43-15+42-16-15+10+41-15-13+39-15-15-13+39+1+44+40-9-10+12-9-10+44-10-9-10-6-10-6-10 verify_1184 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 4 1184 354 +420+28+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+2-1-1+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 5 1184 258 +473+32+2+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 selected 1349 174 +549+48+0+8-3+6-2+5+1-1+0-3-1+0-2-3+6+1+1+0-4-1-1-4+0+0-4+0+1-1+0-1 verify_1349 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 0 1349 171 +522+35+1+5+1-3-1+1+0+4-1-1-1-1+1+0+12-2+0-2+0+0+1-4-2+0-2+0+0+1-4-2 verify_1349 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 1 1349 173 +105+28+7-1-1-2+2+2+5+11+2+2-4+1+2+5+11+0+0-2-1+0-3-8-1+0-2-1+0-3-8-1 verify_1349 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 2 1349 181 +135+26+13-4-2+11+0+1-2-5+9+0-2-5+9+0-2-5+9+0-2-5+9+0-2-5+9+0-2-5+9+0 verify_1349 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 3 1349 233 +447-6-9-13+12-13-21-12+12+13+12-13+12+11+11+12+14-19-13-15-16-13+12-14+9-13-13+10-20+11+12+12 verify_1349 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 4 1349 399 +1295+32-2-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1 verify_1349 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 5 1349 300 +445+73-11-7-9-10-11-9-9-10-9-9-10-11-9-9-10+14+8+7+6+8+8+7+8+8+7+6+8+8+7+8 verify_1455 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 selected 1455 158 +584+74+18+13+42+20+18-5+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6 verify_1455 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 0 1455 172 +63+27+24+26+13+4+0-1-4-3+1-3+1-3+1-3+1+1+1-3+1+1+1-3+1-3+1-3+1-3+1+1 verify_1455 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 1 1455 178 +511+23+4-7+0+0+0+0+5-3+5-2+0+0+0-1-3-6-12-1-2+6-2+6-2+6-2+6-2+6-2+9 verify_1455 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 2 1455 211 +446+44+8+15-14+2-1-5+3-9+11-2-1+0+11-2-16-2-1+0+3-9+11-2-1+0+11-2-1+0+11-2 verify_1455 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 3 1455 237 +426+7+36-12-22+28-1-8-5-7+3+23-6+0-3+28-17+4+24-23+1-1-3+24+2+4+24-23+1-1-6-2 verify_1455 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 4 1455 440 +416+25+4+0-1+0+1-5+3-2+1+1-2-4+1-3-2+1+0+2-1+1+0-1+2+0-3+1-2+2+1+0 verify_1455 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 5 1455 328 +1146+21+24+18-15+3-11-11-9-11-11-11-12-14-14-14-14+9+3+3+3+3+3+3+3+3+3+4+5+7+7+7 verify_1847 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 selected 1847 204 +1409+25+5-4-5+5+12-2+13+1+1+5+12+12+12+12-2+3-1-4-7-1-7-1-8-8-8-5-7-7-1-7 verify_1847 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 0 1847 194 +198+47+14+9+0-4-2-2-2-1+10+11-4-2-2-2+2-1+11-4-2-2-2-1+10+11-4-2-2-2-1+10 verify_1847 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 1 1847 204 +60+23+21-3+3+5+4-5-5-4+3+4+4+4+4+4+9-3-1-9+3-9+3-9+3-10-10-10-10-9+2-1 verify_1847 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 2 1847 251 +496+63+20+11+15-15-4-14+4-5+2-15+6+0-1-3+4-5+2-15+6+0-1-3+4-5+2-15+6+0-1-3 verify_1847 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 3 1847 281 +449+30+50-37+4-19-17-19-12+13-36+10-11-11-11-11-12-12-11+43+13+43+42-12+12+41+38+7+5-36+8+11 verify_1847 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 4 1847 525 +432+26+17+3+5+1-1-1+2-1-1+1-1-1+1-2-1+2-2+0-2+0-2+0+0+0+0+0-2+4+0-1 verify_1847 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 5 1847 383 +1332+51-10-10-10-10-10-10-10-10-10-9-9-9-9-10-10+13+7+8+8+8+9+12+11+7+7+7+7+7+7+7 hashblocks_sha512 selected implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 selected 0 55 +1372+53+25+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 1 55 +27+21-4+1-4-4-4-1-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 2 55 +1+1-5+1-4+1-4+1-1+2-4+22-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 4 53 +9-2-2-2-2-2-2-1-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 7 53 +4-2-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 11 53 +4-2-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 17 53 +9-1-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 26 53 +4-2-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 40 53 +4-2-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 61 53 +4-2-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 92 53 +9-1-2-2-2+0+0+2+1-2+0+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 139 808 +2969+98+31+15+9+10+3-4-9-12-6-15-1-7-4-19+15-4-1+14-12-2+16-9+1+14-12-18+14-12-18+14 hashblocks_sha512 selected 209 811 +113+33+24+12+9+3-1-5-7-14-10-7-18-5-9+6-22+8-22+71-13-5-2+12-10+14-9+13-6+14-9+15 hashblocks_sha512 selected 314 1519 +304+116+39+21-1-1-5+11-3-5+42-19-9+13-3+20-25+19-26-7+42-31-27-15-27+21-25+19-26-7+42-31 hashblocks_sha512 selected 472 2191 +260+137+93+50+36-5+15+36-5-9-11-12-10+11-16-12+11-16+7-13+87-13+8-16+8-16+8-16+8-16+8-16 hashblocks_sha512 selected 709 3553 +385+233+99+90+36+29+15-40+62-14-10-14-10-14+47-10-14-10-14+47-10-14-10-14+47-10-14-10-14+47-10-14 hashblocks_sha512 selected 1064 5563 +601+311+134+118-24-3-1+51-1+4-1+3-9-4-1+4-1+3-9-4-1+4-1+3-9-4-1+4-1+3-9-4 hashblocks_sha512 selected 1597 8253 +774+288+153+188-30-3+11+140+99+3-1+3-1+3-1+3-1+3-1+3-1-11-10+0-1-11-10+0-1-11-10+0 hashblocks_sha512 selected 2396 12386 +788+77+203+172-72+43+20-42+17-92+24-48+24-96+40+6-15+17-86+6-15+17-86+20+24-96+24-96+24-96+24-96 hashblocks_sha512 selected 3595 19169 +853+163+119+158+59-2+31+7-4-61-8+7-4-61-8+7-4-61-8+7+70+73-8+7-4-61-8+7-4-61-8+7 hashblocks_sha512 selected 5393 28626 +805+10+9-29+9-29+9-29+9-29+9+44-47+87+1-6+5-12+1-6+5-12+1-6+5-12+1-6+5-12+1-6 hashblocks_sha512 selected 8090 42846 +675+91-30-47+175-45-78+60-87+97-119-8+97-119-8+97-119-8+97-119-8+97-119+97-119-8+97-119-8+97-119-8 hashblocks_sha512 selected 12136 63798 +542-68+99+3-4+0+26-16-4+0+26-16-4+0+26-16-4+0+26-16-4+0+26-16-4+0+26-16-4+0+26-16 hashblocks_sha512 selected 18205 96168 +524-147+1-98-88+0+0+0+0+1953+103-155-11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 27308 143896 +863-85+141+92+2+23-37+23-37+23-37+23-37+23-37+23-25+23-37+23-37+23-37+23-37+23-37+23-37+23-37+23 hashblocks_sha512 selected 40963 217818 +543+182+130-60+8-44+0-28+52-19-20-44+14+6+26-56+86+44-52+106+70-120+76+94-114+40-68-88+1494-956-1084-970 hashblocks_sha512 selected 61445 326612 +537+92-128-78-110+36+58-60+21+72+62-70+62-70+62-70+62-70+62-70+62-70+62-70+62-70+62-70+62-70+62-70 hashblocks_sha512 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 0 0 52 +180+63+1+1-3+2+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1 52 +35+28-1-3+3-3+3-4-1-1-1-3+2-1-4-1-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 2 52 +1+0-4-3-1-4-3-4-4-2-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 4 50 +8+1+3+3+5-1+1+3+0+0+1+1+1+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 7 52 +1+3-6+1+3-3-1+1-2-2-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 11 52 +1+3-6+1+3-3-1+1-2-2-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 17 52 +1+3-6+1+3-3-1+1-2-2-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 26 52 +1+3-6+3+2+2-1-1+1-1+4-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 40 52 +24-2-3-4-1-4+0-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 61 52 +6-2-4-4-2-3+2-1-4-1-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 92 52 +1+0-4-3-1-4-3-4-4-2-1-1+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 139 804 +1612+91+32+20+12+11+7+5+61+0-3-8-9+10-1-3-19-3-21-3-26+0-30-3-4+2-19+6-49+2-52+2 hashblocks_sha512 0 209 801 +54+38+29+26+23+15+15+7+1-8-5-10+1+6-9-5+2+0-22-2-16-4-29+2+5-16+9-26+3-27+5-49 hashblocks_sha512 0 314 1500 +136+98+111+39+18+29+19+25+24-22+0-52-19-25-3-1-3-1-3-1-3-1-3-1-3-1-3-1-3-1-3-1 hashblocks_sha512 0 472 2188 +276+156+93+58+34-7-13+2-16-9+28-9-12-16+10-15+13-15+13-15+13-15+13-15+13-15+13-15+13-15+13-15 hashblocks_sha512 0 709 3543 +453+257+142+83+66+92-42-27-26-1-6+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 hashblocks_sha512 0 1064 5555 +596+337+159+71-20+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2 hashblocks_sha512 0 1597 8243 +757+278+78-26+10+4+58-3-3-3-3+12+87+2+4+10+4+58-3-3-3-3-3-3-3-3-3-3-3-3-3+811 hashblocks_sha512 0 2396 12351 +903+62+178+163+85+15+41+6+14-58+14-58+14-58+14-58+31+14-58+14-58+14-58+14-58+31+14-58+14-58+14-58 hashblocks_sha512 0 3595 19141 +892+147+149+57+129+14+9-56+14+9-56+14+9-56+14+9-56+14+9+44-11-11-11-11-11-11-11-11-11-11-11-11 hashblocks_sha512 0 5393 28594 +777+111+0+0+0+0+0+0+0+0+0+0+0+0+0+0+152+0+0+0+0+0+0+0+0+0+0+0+0+0+0+375 hashblocks_sha512 0 8090 42750 +735+13+54-16-36+34-47-44-28-44-28-76+61+23+29+10+133-43-15+35-47-44-28-76+61+23+61+23+29+10+133-43 hashblocks_sha512 0 12136 63654 +809+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 18205 96032 +769-33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 27308 143749 +922+258-44-5+44-50+93+24-27-113+83-27-113+83-27-113+83-27-113+83-27-113+83-27-113+83-27-113+83-27-113+2249 hashblocks_sha512 0 40963 217760 +935+118+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 61445 326487 -232+169-95+183-157+167+19+51+15+79-21-75+67-23+147+49-89+960+452+77-61+25-23-23-23-23-23-23-23-23-23-23 hashblocks_sha512 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 1 0 54 +71+63+25+28+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 1 1 55 +66+26-5-3-3-2-2-3-6+1+0-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1 hashblocks_sha512 1 2 56 +24-5+24-5-4-7-2-3+0+0-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 4 55 +21-5-7-1+25-5-6-1-6-1-5+1+0+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1 hashblocks_sha512 1 7 54 +2-3-5+2-4+0+0-2-2-6+2-2-2+24-2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2 hashblocks_sha512 1 11 55 +1-4-6+1-5-1-1-3-3-7+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1 hashblocks_sha512 1 17 54 +2-3-3-4-4-1+0-2-2-6+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2 hashblocks_sha512 1 26 55 +1-4-6+1-5-1-1-3-3-7+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1 hashblocks_sha512 1 40 54 +2-3-3-4-4-1+0-2-2-6+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2 hashblocks_sha512 1 61 55 +1-4-6+1-5-1-1-3-3-7+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1 hashblocks_sha512 1 92 54 +2-3-3-2-6+5-1-3-2-6+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2-2+2+2 hashblocks_sha512 1 139 809 +370+187+46+30+5+4-4-7-11-13-6-15-6-20-9-7+0+9-14+15-4+15-4+11-5+11-5+11-5+11-5+11 hashblocks_sha512 1 209 810 +45+30+20+72+11+5+1+6+17-8-11-13-5-19-4-14+38-7+9-12-8-4-5+10-17+9-13-4+13-13-3+9 hashblocks_sha512 1 314 1518 +195+96+45+25+11+2+50-3+11-3+18-5-5+23+13-19+11+18-42-40-27-18-26-6+33-84-17-26-6+33-84-17 hashblocks_sha512 1 472 2199 +218+121+66+38+19+89+13+36-73-41-23+35-47-16+37-40-23+35-47-16+37-40-23+35-47-16+37-40-23+35-47-21 hashblocks_sha512 1 709 3542 +358+234+155+212+38+34-23-31-8+1-1+5-2-3-5+1-8+1-1+5-2-3-5+1-8+1-1+5-2-3-5+1 hashblocks_sha512 1 1064 5555 +572+335+180+42+37-20-2+0-1-5+5+75-2+0-1-5+5+75-2+0-1-5+5+75-2+0-1-5-1-5-1-5 hashblocks_sha512 1 1597 8238 +808+325+207+166-19+59-3+0+0+0+0+0+0+17+118-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 2396 12505 +673-18+12-12+6-12+6-12+6-12+6+7-12+6-12+6-12+6-12+6+7-12+6-12+6-12+6-12+6+7+58-5 hashblocks_sha512 1 3595 19184 +817+10+11-21+11-21+11-21+11-21+11-21+11-21+11-21+11+72-1+11-21+11-21+11-21+11-21+11-21+11-21+11 hashblocks_sha512 1 5393 28603 +777-2-5-5-5-5-5-5-5-5+70+13-28+84-7-28+84-7-28+84-7-28+84-7-28+84-7-28+84-7-28+84 hashblocks_sha512 1 8090 42861 +744-26+106-58+3+0-73-1+40+76+16-106-97+40+44-98+50-129-41+55-73-1+40+44-98-28-1+40+44-98+50-129 hashblocks_sha512 1 12136 63807 +631-38-45+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53-57+53 hashblocks_sha512 1 18205 96062 +591-21-82+73-13+73-13+73-13+73+1947-2-57+49+17-26-3+17-26-3+17-26-3+17-26-3+17-26-3+17-26-3 hashblocks_sha512 1 27308 143902 +771+92-68+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35-45+35 hashblocks_sha512 1 40963 217918 +456-36-86-28+36-28+36-28+36-28+36-28+36-28+36-28+36-28+36-28+36-28+36-28+36-28+36-28+36+1664-707-1014 hashblocks_sha512 1 61445 325066 +535-68-190-283-368-62+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 2 0 110 +614+53+4+1-1+1-1+2-3+4+0+0-1+1-1+1-1+2-1+3-1+3-1+3-3+4+0+0-1+1-1+1 hashblocks_sha512 2 1 110 +57+5-1-2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 2 2 111 +47-5+2-1+2-4+1+6-1-2+3+0+1+2-4-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 hashblocks_sha512 2 4 110 +48+22-1-2+4+0+3+3+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 2 7 111 +19-5+2-1+1-4+1-4+1+0+2+2-4-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 hashblocks_sha512 2 11 111 +46-5-1-4+1-4+1+0+1-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 hashblocks_sha512 2 17 111 +19-5+2-1+15-2+3-1+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 hashblocks_sha512 2 26 110 +21-3+3+0+2-3+2-3+2+1+3+3-1+1+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 2 40 110 +48-4+3-2+3-3+2-3+2+1+3+3-1+1+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 2 61 110 +48-4+3-2+3-3+2-3+2+1+3+3-1+1+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 2 92 110 +17+18+9+0+2-3+2-3+2+1+3+3-1+1+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 2 139 1168 +2159+89+60-13-26-29-26-14-10+4+13-5+14-8+10-3+5-13+20-13+13-6+22-24-2-9+20+16+7-7+9-9 hashblocks_sha512 2 209 1167 +93+49+9-4-24-34-35-3+17+14+5+21+7-16+39-23-13-3+23-29-17+1+2-4+23-25-12-15+21+17+9-8 hashblocks_sha512 2 314 2224 +155+70-30-56-47-36+5+25+11+24+9-5-2-7-16-12+20-15+15+2+21-4-2-7-16-12+20-15+15+2+21-4 hashblocks_sha512 2 472 3220 +183+9+27+20+42+73+75+77+86+76+12-9-1-15+1-15-1-15+1-15-1-15+1-15-1-15+1-15-1-15+1-15 hashblocks_sha512 2 709 5320 +170+23+100+92+89-26-44-42+38+78+38+93+78+82+36+92+82+80-64-44-58-44-59-44-58-43-59-44-58-43-59-44 hashblocks_sha512 2 1064 8428 +73+167-22+163-73+153-78-53+157+160+160+146+167+105+159+105+166-74-52-68-52-68-52-68-52-68-52-68-52-68-52-68 hashblocks_sha512 2 1597 12651 +84+29+228+190+197+184-159+196+165+679-137+191-138+184+199+187+183+175-124-128-128-148-98-148-98-148-98-148-99-148-99-148 hashblocks_sha512 2 2396 19124 -296+102+115+69-374+96+80-395+70-375+94+75+96-352+71+98+71-352+92-352+71+98+71-352+92-352+71+98+71-352+92-352 hashblocks_sha512 2 3595 29681 -246+144+142+111-645+137+114-646+137+113-579+135-579+114+128+113+63-540-633+114+130+115+60-540-630+114+128+113+62-540-633+114 hashblocks_sha512 2 5393 44627 -1007+53-1044-8+8+47-1074-10+55-1061-10-6+21+27-7+23-1025-1116-11+25+12+8+24+15+18-19+40+15-50+25-1029-1120 hashblocks_sha512 2 8090 66907 -1514+23+6-7+11+13-1581+7+9+11-1583+6+9+12-1583-24-3+13-1583+7+9+12-1583+6+9+12-1583-24-24+12-1583+7 hashblocks_sha512 2 12136 99758 -2366-2467+1+13-4+8-7+9-7+8-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7 hashblocks_sha512 2 18205 150601 -3626-3733-4+13-5+10-6+10-7+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-1523+11 hashblocks_sha512 2 27308 222697 -2375-2474+3117-2417+3109-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421+3105-2421 hashblocks_sha512 2 40963 338988 -8081-8214+187+187+194-8242+185+183+190-8248+178+191-8243+180+189+186-2775+176+207-8150+188+187+191-8240+186+187+186+189+186+185+191-8242 hashblocks_sha512 2 61445 507872 -11683-11816+780+793-11843+786+785+779+786-11850+774+787-11847+780+778+1286+768-11795+779+792-11846+776+787-11851+778+776+787-11847+780+787+784+781 hashblocks_sha512 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 3 0 163 +2951+62+36+1+0+0+0+0-1+0+0-1-1+0+0+61-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 1 163 +146+2-1+0+0+0+0-1-1+0+0+0+0+0-2+1-1+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0 hashblocks_sha512 3 2 163 +77+61-2+0+0-1-1+0+0-1-1+0+0+0-2-1+0+0+0-1-1+0-1+0-1+0-1+0-1+0-1+0 hashblocks_sha512 3 4 163 +50-2-2+0+0+0-1+0+0+0+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 7 163 +46-1-1-1-1-1+0+0-1-1-1-1+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 11 163 +48-2-2+0+0+0+0+3+0+0+0-1+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 17 163 +50-2-2+0+0+0-1-1+0+0+0+0-1-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 26 163 +50-2-2+0+0+0-1+0+0+0+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 40 163 +72-1-1-1-1-1+0+0-1-1-1-1+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 61 163 +76-2-2+0+0+0-1+0+0+0+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 92 163 +44-1-1-1-1+0+0+0+0+0+0-1-1-1-1+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 139 1192 +5294+120+52+23+0-21-4+24+7-13+8-13+8-12+8-13+8-15+8-14+7-15+7-15+17-10+8-15+17-10+8-15 hashblocks_sha512 3 209 1194 +176+80+57+31-1-33-6+22+8-16+6-17+6-16+5-17+5-17+15-12+6-17+15-12+6-17+15-12+6-17+15-12 hashblocks_sha512 3 314 2195 +266+163+27-49+13-10+12-11+9-10+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11 hashblocks_sha512 3 472 3209 +821+171-53+19-18+3-18+2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 hashblocks_sha512 3 709 5225 +393+193+11-18+2-1+0-1+2-1+73-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 1064 8294 +341+162-41-17-18-4-17+19-18+20-17+90-17+20-19+21-19+21-19+21-20+20-19+21-20+20-19+20-17+20-19+21 hashblocks_sha512 3 1597 12344 +225+94+0-52+60-30-16+8-35+20+7-16+8-35+20+6-18+9-35+20+7-16+8-35+20+7-16+8-35+20+7-16 hashblocks_sha512 3 2396 18426 +222+62-29-31-32-34-2-2-2+4-2-2-2+4+4-3+1+4+4-3+1+4+4-2-2+4+4-3+1+4+4-3 hashblocks_sha512 3 3595 28505 +234+82-39-32-28-33-1+1+5-1-1+5-1-1-1+5+5-1-1+1+5-1-1+5-1-1-1+1+5-1-1+1 hashblocks_sha512 3 5393 42616 +215+80+5-49-33-32-34+34-14+6+6+0+14-22+0+0+34-22+6+0-20+40-22+0+0+6+34-16+0+6+966-11 hashblocks_sha512 3 8090 63801 +281+103-10-3-11-24-28+27+3-7+15-39+25-7+7-5-31+27+15-5+3-7-19+27+7-7+7-41+30-4+7-7 hashblocks_sha512 3 12136 95061 +234+119-8-17-25-1+2-1+17-6+2-1+17-6+2-1+17-6+2-1+17-6+2-1+17-6+2-1+17-6+2-1 hashblocks_sha512 3 18205 143454 +264+111-13-19-16+1+6+22-10-2+6+22-10-2+6+22-6-2-2+22-6-11+1+6-6-11+1+6-6-11+1+6 hashblocks_sha512 3 27308 215050 +261+109-7-30-20-13+2-22+2-12+2-22+2-12+2+967+19+34-17+9-28+14-16+16-8+18-8+18-8+14-16+16 hashblocks_sha512 3 40963 323107 +300+160+3-32-33+14+15+11+2+17-3-6-7-5-20-27+18-7-15+6-7+5+18-11-9-6-13+10-3-3+927+39 hashblocks_sha512 3 61445 484489 +259+89-108-20-16-96-96+64+60+46-93-86-94+60-90+62+62-85+58-88+58+52+63+58-98+712-49-186+64+18-131+31 hashblocks_sha512 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 4 0 89 +363+83+52+22+18+19+18+0+13-1-3-2-3-3-4-4+12-1-3-2-3-3-4-4+12-1-3-2-3-3-4-4 hashblocks_sha512 4 1 91 +62+5+8+6+5+2+4+0+1+1-2+3+0+4+4+4+4+6+10-7-5-7-5-7-5-7-5-7-5-7-5-7 hashblocks_sha512 4 2 87 +70+10+8+5+6+5+4+26-1-4-1+2+2-3-1+2+2+7-1-1-2-2-2-2-2-2-2-2-2-2-2-2 hashblocks_sha512 4 4 86 +14+11+11+7+4+3+2+3+2+3+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2 hashblocks_sha512 4 7 86 +19+17+16+8+0+6+2+3+5-1+2+1+0+0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 hashblocks_sha512 4 11 86 +19+14+17+8+0+6+2+3+5-1+2+1+0+0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 hashblocks_sha512 4 17 86 +14+14+17+8+0+6+2+3+5-1+2+1+0+0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 hashblocks_sha512 4 26 85 +15+15+18+9+1+4+8+3+2+0+3+2+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 40 86 +48+12+17+8+0+6+2+3+5-1+2+1+0+0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 hashblocks_sha512 4 61 86 +47+9+11+7+4+3+4+3+4+4+0+1+0+0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 hashblocks_sha512 4 92 85 +20+13+18+9+1+4+8+3+2+0+3+2+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 139 1237 +2192+254+146+116+86+64+43+22+10-6+0-6+2-3-2-5+2-3-2-5+2-3-2-5+2-3-2-5+2-3-2-5 hashblocks_sha512 4 209 1238 +239+180+126+111+81+58+49+26+8-7+1-4-3-6+1-4-3+14+1-4-3-6+1-4-3-6+1-4-3-6+1-4 hashblocks_sha512 4 314 2372 +506+335+177+78+17-1-3-1-3-5-2+3+16+0-4+4+2-1-2+3-5+17-5-5-4+4+2-1-2+19-5-5 hashblocks_sha512 4 472 3509 +652+311+105+2+4+21-8+3-5-5+15+4-7+5-8+3+15-6-7-4-5-1+17+4-7+5-8+19+0-6-5+2 hashblocks_sha512 4 709 5807 +857+149+3-8+15-14-4+10-2-6-2+6-2-6+14+4-3+9-5-9+12-12-1-13+12+7-3-12-5+8+16-13 hashblocks_sha512 4 1064 9222 +903+7-14-13+11-18+8+4-11+1+9-18+4+1-2+0-1-22+8-17+8+1-12+1+10-14+5+1-2+0-1+1 hashblocks_sha512 4 1597 13795 +895-5+38+1+15+3+15+1+15-27-15-23+2+16-1+14-26-15-24+0+15+2+14-26-12-21-1+14+4+17-29-15 hashblocks_sha512 4 2396 20650 +861-21-26+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 hashblocks_sha512 4 3595 32012 +850+27-30+1-3+1-3+1-1+0+2+0-1-3+2+1-2-3+2+0+2+0+2+0+2+0-1-3+2+1-2-3 hashblocks_sha512 4 5393 47921 +877+49-43-2+18+10-6-7-11+15-10-9-6+15+6-9-12+17+6-9-6+17+12-9-6+15+7-9-11-9+14+10 hashblocks_sha512 4 8090 71802 +897-36+20+2+1+2+1-15-8+1+1-2+1+6-22-11-2+1+2+1+2-22-3+1-2+1+6+1-22-8+1+2 hashblocks_sha512 4 12136 107029 +884+20-13-4+1+1-3+1+1+1+3+1+1+1-8+2+1+1+1+1+1604-26+10+2-13-5-8+2-13-4-9-3 hashblocks_sha512 4 18205 161575 +883+27+3-1+3-1-1-1+3-1+5-9+3-1+3-5-1-1+3-1-1-1+3-1+1-9+3-1+3-5+3-1 hashblocks_sha512 4 27308 242238 +894+32+0+0+0+6+6+6-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1644-12+24+8 hashblocks_sha512 4 40963 363883 +993-1+23-21+23-21+1-5+17-21+3-5+17-21+17-21+23-21+23-21+1-5+23-21+9-5+23-21+23-21+23-21 hashblocks_sha512 4 61445 545753 +922+129-47+81-53+83-65+81-73+81-65+95-65+81-45+87-65+95-55+81-45+87-65+81-55+1503-39-63-41-107-37-85 hashblocks_sha512 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 5 0 196 +1251+18+12+10-3+0+0+0+2+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0 hashblocks_sha512 5 1 193 +40-2+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0 hashblocks_sha512 5 2 193 +35-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 4 193 +11-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 7 193 +6-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 11 193 +7-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 17 193 +6-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 26 193 +11-2+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 40 193 +34-2+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 61 193 +39-2+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 92 193 +6-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 139 1420 +1905+173+91+70+45+33+7-18+10+23-25+17-48+2-46+15+23-25-31+7-32-10-46+16+13-23-31+7-32-10-46+15 hashblocks_sha512 5 209 1419 +137+119+94+76+50+31+12-8-27+7-47+15+25-16-30+8-31+0-40+16+19-24-30+8-31-9-43+16+17-24-30+8 hashblocks_sha512 5 314 2593 +354+262+143+103+64-4-5+11-5+13-5+13-5+13-5+9-5+1-5+1-5+1-5+1-5+1-5+1-5+1-5+1 hashblocks_sha512 5 472 3772 +484+323+131+17-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9-15+9 hashblocks_sha512 5 709 6105 +806+248+37-2+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14+10-14 hashblocks_sha512 5 1064 9634 +970+190-16+12-16+12-16+12-16+12-16+12-16+12-15+61-16+12-16+12-16+12-16+12-16+12-16+12-16+12-16+12 hashblocks_sha512 5 1597 14311 +870-5+35-24+20-24+20-24+20-24+20-25+2+2-26+20-24+20-24+20-24+20-24+21-26+20-26+20-26+21-24+22 hashblocks_sha512 5 2396 21319 +866+37+2-2+0-1+0+0+0+0+0+0+0+0+0+2+0+0-2+1+0+0+0+0+0+0+0+0+0+0+2-2 hashblocks_sha512 5 3595 32989 +907+39+0+0+0+0+0+0+0+0+2-2+0+0+0+0+0+0+0+0+0+0+0+0+2-2+0+0+0+0+0+0 hashblocks_sha512 5 5393 49334 +894+96-7-6+11-2-9+11-2-9+11-2-7+11-2-7+11-1-7+9-4-7+9-4-7+9-2-7+9-2-7+9 hashblocks_sha512 5 8090 73859 +890+76-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 hashblocks_sha512 5 12136 110044 +856+105-8-8-8-8-8-8-8-8-8+1615+110+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 18205 166054 +935+79+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 27308 248997 +899+33-31-31-31-31-31-31-31-31-31-31-31-31-31-31-31-31-31-31-31-31+1691+378+163+113+113+113+113+113+113+113 hashblocks_sha512 5 40963 374696 +871+56+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1759+332+250 hashblocks_sha512 5 61445 561987 +875+11-47-87-87-87-87-87-87-87-87-87-87-87-87-87-87-87-87-87-87+1660+363+303+225+251+225+251+225+251+225+249 hash_sha512 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 selected 0 868 +1389+132+20+9-6-10+52-22+40+11-13-1-5+4-6-23+6+2-14-7-6-23+7-5+7+59-5-11-28+8-4+5 hash_sha512 selected 1 864 +231+61+22+16+10+2-15-17-3-2-7-7+11-16+60+3-4-5+7+1-8+4+1-5+5-6-6+2+2-5+5-6 hash_sha512 selected 2 866 +96+54+43+32+22+21-17+0-4+7-8-5+7-7-2+5-9-4+7-7-5+9-5-3+7-7-4+10-7-8+7-10 hash_sha512 selected 4 870 +157+58+24+20+9+2-13-17-19-25-5-6-4+13+2+1+67-10-3-5+76+1+0-4+4-3+0-4+5-5-4+8 hash_sha512 selected 7 872 +99+76+54+44+1-6-8-11-4-1+3+2+72-8-2+5-6+0+8-6-2+8-6-8+6-7-3+6+2+4+6-6 hash_sha512 selected 11 879 +97+93+84+7+0-9-15-17-4-3-6+3-2-5-4+2-3-7-7+12+7-10+16+5-1-5+14+13-4-5+12+5 hash_sha512 selected 17 886 +106+96+24+12-7-10-17-16-3-5-2-6-5-9+7+1-6-4+14+11-2-1+6-4-8-4+14+11-2+7+16+3 hash_sha512 selected 26 905 +96+86+54+12+0-7-14-15-9+5-2-6+4-14-3+4-14-3+4-6-3+4-14-7+4+2+4+18+6+5+13-2 hash_sha512 selected 40 968 +82+69+55+10+11-9-13-11-1+2+5-7-2+5-7-2+5-7+0+5-7-3+8-7-3+8-9-4+14-4-3+8 hash_sha512 selected 61 1009 +99+50+28+9+2-6-16-18+1+7+1+1+5-11-1+5-12+0+5-11+0+12-11-4+12-7-6+7-9-2+9-4 hash_sha512 selected 92 1074 +125+60+33+32+55+9+7-18+57+4-4-2+6-15-6+4-10-5+6-15-8+4-16-7+6-15-6+9-12-9+7-7 hash_sha512 selected 139 1637 +216+158+45-1-9+3+4+4+3-3-1+16-12+4-18+5+15-5-27-25+0+2-28+1+70-5-27-25+0+2-28+1 hash_sha512 selected 209 1802 +159+96+36-10+7+22+0-1-5-1+2-5+16-33+4-24-12-40-2+19+8-1+9+6-1-6+2-7-23-28+1-29 hash_sha512 selected 314 2478 +169+146+28-8-71+0+15-37-1+22+7+54+4+4+10+21+18+3-3-5-2-4-2-4-2-4-2-4-2-4-2-4 hash_sha512 selected 472 3216 +337+166+97+1-21+42-20-6-19-26+41-28-13+0-3-20+20-6-16-10-8+5+5-20-22-60+49+59+75+22+15+6 hash_sha512 selected 709 4594 +317+147+69+79+4+2+0+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 1064 6584 +509+179+153+89+11+5-31+61+1+61+69+11+64-99-67-25-73+20-70+20-70+20-70+20-70+20-70+20-70+20-70+20 hash_sha512 selected 1597 9389 +547+111+59-69+36+78-105-3-9-3+6+19-18-3-9-3+6+19-18-3-9-3-9+11+88+42-9-3-9+11-7-3 hash_sha512 selected 2396 13591 +670-117+132-1-13+43-50+10+31-70+105+41-24-29-5+23-84+2+23-84+2+23-84+2+23-84+2+23-70+18+45-50 hash_sha512 selected 3595 20223 +665+30+13+9+101-13+101+338-85+163+29+41-83+185-61-83+57-61-83+57-61-83+57-61+117-31+101-61-83+57-61-83 hash_sha512 selected 5393 29622 +847+196+44+134+175-40+74-60-40+74-60-40+74-60-40+74-60-40+74-60-40+74-60-40+74-60-40+74-60-40+74-60 hash_sha512 selected 8090 43820 +804+132+181+51+133-13+4+118-50-61-8+127+254-79-15+35+13-18-90-98+54-90-91+12-62+281-62-109+36-99+13+15 hash_sha512 selected 12136 65052 +770+376-56-34-38-12-88-42-12+8+8-12+8+8-12+8+8-12+8+1409+34-42+62+11+24-9+11-23+23-9+11-23 hash_sha512 selected 18205 97068 +770+120-10-111+16-37-23+26+140-14-9-17+26+140-14-9+18-95+15-88-60-17+26+140-43-17+26+140-14-9-17+26 hash_sha512 selected 27308 144993 +910+326-86+21-45+93-37+24-27-14+7-13-92+22+159-25-9+40-14-17-12-5-75+84-53-12-48-11+87+43+11+43 hash_sha512 selected 40963 218527 +798+245+455+179+293+233+213+223+245+295+303+261+217+199+255+225+121+215+159+1932-633-741-582-915-629-629-629-629-629-629-629-629 hash_sha512 selected 61445 327452 +1082+265+23+102-156+102-67+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 0 0 867 +513+99+42+3-1-7-1-14-6-4-3-1+1+3+2-28+78-1+13-5-5+77-7-2+0+3-1+11-6+13-5+9 hash_sha512 0 1 870 +127+60+70+9+0-11-9-3+0+3+3+19-3-1-2+7-7-5+19-3+3-1+6-3-21-20+5-5+5-5+5-5 hash_sha512 0 2 871 +81+60+15+12+2-7-10-13-8-6+2-4+4-4+4-4+4-4+4+1+5-3+7-3-8+9-4+13-6-3+11-3 hash_sha512 0 4 875 +156+50+13+5-2-8-11-21+5-10+1-10-4+1+2+0+13-17+0+12-10-7+6-1+13-19-1+13-3+1+7-1 hash_sha512 0 7 879 +150+77+70+8+3-1-9-11-10-5+2-5+8-8+9-7+7-10-5+12-10+2+13-8+7-7+2-13+8-11-4+8 hash_sha512 0 11 883 +146+50+44+8+4-1-9-7-4-4-11-1-4+1-13-1+8-19+1-6-2+9-6+4-2+16-6-2+54-4+7+14 hash_sha512 0 17 894 +162+111+96+1+6-2-3-4-5-4-2-7+13-9-3+16-4-8+10-6-2+5+2-5+15-5-10+11-10-2+5+4 hash_sha512 0 26 910 +128+75+64+3+3+3-5+0-1-1-2-2+10-7-3+17-3-4+14-6-3+2+4-10+18-3-10+14-6-2+5+4 hash_sha512 0 40 939 +131+91+60-3+1+68-1+53-6-10-2-8+9-9-2+14-9-8+3-1+0+56+11-6-5+2-1+0-3+11-7-6 hash_sha512 0 61 1020 +111+73+7+8-2-1-6-2-11+0-4-4-5+19-12-2+6+1-1+16-14-2+5+0-1+15-11-2+5+0-1+15 hash_sha512 0 92 1076 +179+47+34+76+79-1+16-10-5+2+186-12+4-5-4-2-9-2-7-1-7+0-7-6-4+3-2+19-8+11-1+9 hash_sha512 0 139 1615 +279+123+55+6-11-18+5-38-14-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hash_sha512 0 209 1789 +127+95+26+5+6+33+4+15+19+21+19+16+18+69+5-8-6+1-17-13-15-13-10-12-10-12-15-13-10-12-10-12 hash_sha512 0 314 2458 +280+84+94+5+44-5+4-25+16-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 472 3246 +281+134+132-5-45-47-1-2-5-6+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 hash_sha512 0 709 4563 +324+133+23+26+2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 hash_sha512 0 1064 6517 +568+327+61+51+18+17+23+3+1+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 hash_sha512 0 1597 9363 +621+218+1-55+75+59+3-4-14-59-49+45+31+5-65-59+5-9+113+2+2-23-65-40+120+34+6-51-65-40+120+34 hash_sha512 0 2396 13645 +592-20+97+44-99-58+94-96-74+55+26-128+63+8-136+63+8-136+63+8-136+63+25-41-58+94-96-74+55+26-128+63 hash_sha512 0 3595 20148 +921+139+74+88-46+88-46+0+0+0+0+0+0+0+286-4+46-46+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 5393 29531 +981+49+11-25+11-25+11-25+11-25+77+11-25+11-25+11-25+11-25+11-25+143+11-25+11-25+11-25+11-25+11+57 hash_sha512 0 8090 43784 +790+181-136-24+96+38-88+208-30+32-18+32-136+47-11-136-26+169+138-45-88+39-45+90-56-88+39-45-28+18-19+126 hash_sha512 0 12136 64792 +850+194+42+7-12-13+8+7-12-13+8+7-12-13+8+7-12+82-13+8+7-12-13+8+7-12-13+8+7-12-13+8 hash_sha512 0 18205 97064 +643+62-75-154+42-5-95+42-5-95+42-5-95+42-5-95+42-5-95+42-5-95+42+89-1+42-5-95+42-5-95+42 hash_sha512 0 27308 144936 +763+42+75-100-100-210-62-126-240-210-96+2238+390+40-71+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4 hash_sha512 0 40963 218555 +837+149+150-19+123-37+231-51+137+189+57-23+109+125-19+151-5-53-53-53-53-53-53-53-53-53-53-53-53-53+327+5 hash_sha512 0 61445 325908 +2217+1396+1336+1386+1506+1326+1418+1520+2034+146+28-55-144-199-91-260-302-302-66-302-302-302-218-154-505-318+101-132-356-230+36-83 hash_sha512 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 1 0 874 +1486+140+54+10+1-3+1-5-3-1-1+1+1-5+0+0-3-3+11-21+11+5-4-11-30+14-5-2-31+9-25+11 hash_sha512 1 1 877 +342+67+51+19+6+3-8-13-11+11-12+15-16+10-16+13-16+9-19+59-18-26+13-3-2-30+24-4+0-24+12-21 hash_sha512 1 2 878 +169+62+26+23+11+4-3-12-14+0-11-1+0+8-7+4-11+5-7+5+5+5-11-2+11-10-4-6-4-33+11-12 hash_sha512 1 4 875 +210+119+26+78+9+1-7-14+4-1+1+0-4-2-2-1-5-4-1+8-8-2-6-1-1+15+3+6-5+5-7+5 hash_sha512 1 7 883 +162+94+46+38+2-2-14-18-18+1-1-5+12-2-4+7-3-5+13-3-2+9-3-6+9-3-2+9-3-6+9-3 hash_sha512 1 11 886 +208+69+22+7+2-3-12-14-5-5+11-19-16+8-22-4+8+7-1+5-19-6+7+4-29+1+19-1-1+12-21-6 hash_sha512 1 17 884 +182+117+42+13+4-6+1+4-16+7+10-14-8+7-19+11+6-13-6+7-24-4-6-9+24-12+1-27-30+11+0-4 hash_sha512 1 26 883 +184+52+29+14+13+0-8-16-20-20+10-1-5-9-4-12-3-9-22+10-8+52+8-6+6+4+2-3+22-8+4+1 hash_sha512 1 40 884 +163+84+55+49+7-5-9-12-18+8+4-1-6+0-7+1-3+3-6-2+12-1-5-4-20+18-16+7+4+6+17-21 hash_sha512 1 61 889 +185+84+54+16+7+1-6-13-2-6+6+20-4+3-12+18-10-1+7-12+9-16+18-10-1+10-23-2-28+15-12-9 hash_sha512 1 92 889 +198+60+21+11+1-10-15-13-24+9-4-6+0-9-1+1-1+0+8-20+0-3+13+6+5+15-10+2-28+7-5-28 hash_sha512 1 139 1628 +227+78+108+6-15-16-32+1+15-16+24-9+73+5-13+22-10-16+24-9-16+20-9-16+24-9-16+20-9-16+24-9 hash_sha512 1 209 1633 +301+142+76+4-5-10-33-15+19+4+3+0+6-2-25-17+23-15+23-15+23-15+23-15+23-15+23-15+23-15-13-17 hash_sha512 1 314 2366 +353+116+18+2+7-20+2-15-43-16-9+9-11-15+10+34+2-14+50-30+12+32+16-28-8-29+9+13+32-2-19-5 hash_sha512 1 472 3042 +349+183+51+9-46+2-16+3-29-5-11-23+6-4+15-45+21-21+37-28-6-7-20+25-10-27+24+14-27+19+8+30 hash_sha512 1 709 4460 +405+229+11-60+3+10-21-7+54-28+43+64-7+18-19-8+60-28-19+10-30-21-9+24-13+6+26-55+11-27-2+13 hash_sha512 1 1064 6509 +528+276+105+18-4-1-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 1597 9239 +820+259+13+132+46-7-7-34-32+46+18+89-34-65+28-40-30+52+107-40-62-40-40-40+52+107-15-22-18-22-18+76 hash_sha512 1 2396 13415 +770-74+116+58-24-14-77+88+70-65+57-14-65+71-22-65+57-14-65+71-39-125+170-40-30+55-28-90+69+1-111+55 hash_sha512 1 3595 20206 +651+123+68+145-43+145-43+11-1-3-1-3-1-3-1-3-1-3+222-122+195+11-1-3+3+11-1-3-1-3-1-3 hash_sha512 1 5393 29652 +772-33+23+103+7-13+24-52+7-13+24-52+7-13+24-52+7-13+24-52+7-13+24-52+7-13+24-52+7-13+24-52 hash_sha512 1 8090 43973 +516+109-185+93-80+132+78-90+43-46-73+28-47+204+135-123-10-51+15+27-97+59-46+105-70-46+102-105-67+1385-53+19 hash_sha512 1 12136 64876 +696+78+144+13+64+25+21-16+21+21-16-64-16+45-73-64-16+34-15-53-44+20-16-63+21-16+27+21-16-64-16-63 hash_sha512 1 18205 97223 +660+7-22+164-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20-24+20 hash_sha512 1 27308 145021 +675+26-2-100+3-131+266+139+26+59-43-25+29-43-25+29-43-25+287-43-25+29-43-25+29+17+86-80+69+59-43-25 hash_sha512 1 40963 218957 +480-7+49-41-1-73-43-83+15-65-11-221+1222-483-69-37+47+77-93+49+49+33-139+99+71+129+71-15+33-139+99-63 hash_sha512 1 61445 327668 -286+227-244+20-120+160+28+36+38+50+38-90+214-74-132-70+16+50-156-42-36+74-76+60-52-30-8+615+157-45+53+12 hash_sha512 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 2 0 861 +485+116+50+7-2-8-10-14-1-1-3+3-5+0-1-17+6+1-4+3-2-4+11-7-3+4+5-4-4+9+5+2 hash_sha512 2 1 879 +152+47+8+68+67+58-16+33+43+66-16+106+58+59-8-18-1-35-17-9-14-22-7-17-16-9-15-22-10-20-13-20 hash_sha512 2 2 867 +116+70+68+6+0+0-9+0+2+18-10-2-2-4+1+1+6-6+15-16-4+10+1-8+3-10-10+6-8-1+5-10 hash_sha512 2 4 869 +139+78+45+32-1-8-12+2-9-2+8-8-2+7-7+0+4-8-8+7-7-2+8-8+1+7-6+0+7+2+0-7 hash_sha512 2 7 873 +78+59+70+7+2-4-9-6-1+0+8-8+60+5-10+0+8-11-3+5-11+0+8-11-5+8-9-8+7-6+5-7 hash_sha512 2 11 879 +147+118+13+7+0-4-11-6-6+3-12-7-7-4+6-4-6-6+1-4+14+7-17+2-4+6+0+4+8-3+0+12 hash_sha512 2 17 887 +134+80+63+52+0-6-4-16+6-9-4+6-10-5+6-9-5+4-1-4+5-10-4+6-6-4+19+0+5+12+1+4 hash_sha512 2 26 901 +139+85+53+42+1-4-2-3-13-4-1+7-8-6+9-8-3+9-4-6+11-1-4+10+0-6+11-1-5+8-5-5 hash_sha512 2 40 967 +89+32+25+4-3-5-12-10+0+6-6+3+6-6-1+6-6-1+10-6+1+6-6-2+8-11-3+10-8-4+12-3 hash_sha512 2 61 1009 +100+51+44+2+0-7-15-1-11+12-12-1+12-12+0+5-12-5+12-12-1+12-12-5+7-9-4+14-6+8+0+0 hash_sha512 2 92 1071 +144+50+25+10-2-9-15-16+59+5-9-2+6-12-2+5-9+0+5-7-3+7+56+1+7-12-2+14-6-6+9-6 hash_sha512 2 139 1627 +237+147+95-8-7-5-6-12+1-19+62+6-24+5+7-18+6+3-21+5+19-2-5-25+4+6-18-15+25+3+4-19 hash_sha512 2 209 1806 +165+97+63+33+4+1-8-4-8-7-7-9+11-15-28-1+17-17-29-1+10+3-5+6+3-5+5+2-3+6+3-5 hash_sha512 2 314 2475 +276+116+42-22+16+22-32+60-3+16+15+1+0-2+0-2+0-2+0-2+0-2+0-2+0-4+1-1+1-1+1-1 hash_sha512 2 472 3220 +327+168+102+37+129+83+90-5+27-21+29-22-22-29-8-15+20-10-20-9-13-10-22-7-30-47+0+34-22-24+5+60 hash_sha512 2 709 4592 +328+143+99+140-39-34-29-31-18+56-3-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 1064 6567 +606+198+91-23+85+111+58-57+21+29+2-59-58-1+21-27+10+1-21-56-25+8-60-52+48+25-25+15+63-18-56-21 hash_sha512 2 1597 9370 +592+143+67-29+23-33+5+154-8-10-8+21+5+16+6+9+9-10+6+10-12-10-8-10+6+10-10-10-10-10-10+5 hash_sha512 2 2396 13583 +650+232+65+30-23+51+46-149+4+19-90+4+19-90+4+19-90+4+19-90+4+19-90-16+51-79-19+53-81-19+53-65 hash_sha512 2 3595 20214 +686+147+18+26+26+341-130+216-66+36-74+38-74+38-74+38-74+38+116-74+26-74+38-74+38-74+38-74+38-74+38-74 hash_sha512 2 5393 29658 +902+47+159+93+36+11-36+14-36+14-36+14-36+14+81-21+51-21-36+14-36+14-36+14-36+14-36+14+76-36+14-36 hash_sha512 2 8090 43856 +663+246+78+79+189-75+121-47+184+103-28+22-90-157+193+4-30-70-114+252-148-127+67-28+22-90-157+103-28+22-90-157 hash_sha512 2 12136 64969 +810+52+79+19+87+7+165-49+31-33-33+13+19-39-33-33+7+19-39-33+13+19-39-33+7+19-39-33-33+195+136+24 hash_sha512 2 18205 97086 +816+193+9+37-42+24-30-13+20-18-1-13+20-18-1-13+0+20-18-1-13+20-18-1+129-1-13+20-18-1-13+20 hash_sha512 2 27308 145126 +2429+768+185+120-36+12+63+49-15+33-20+13+17-46-17+17+70-60-46-17+17-46-7+26-1-59+47-35-40-12-18-42 hash_sha512 2 40963 218752 +598+508-76-97+38-234+83-19-104-37-106+30-45+32-184-44-228+48+21-88+3-41-41-26+50+34+34+34+34+34+34+34 hash_sha512 2 61445 325868 +2302+1690+1566+2853+161-32-57-17-61-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 3 0 903 +1088+68+27+7+3-2-3+2+4-4-15+4-2-22+10-4-19+10-4-26+17-4-18+17-4-20+17-4-28+17-4-24 hash_sha512 3 1 905 +205+95+17+10+5+5-5-1-6+4-6+10-13-20-6-2+2-4+4+1+11-16+16-4-20+11-1-18+2+16-5-22 hash_sha512 3 2 908 +148+70+17+14+3-4+50-2-19-10+7-4-20+7-2-9-6+7-20+5+0-25+9-4-8-8+7-17+10+5-29+7 hash_sha512 3 4 908 +114+92+14+11+4-10-8-18-10+7-2-17+8-2-7-8+10-19+6+7-26+9-1-8-3+8-17+9+3-23+9+0 hash_sha512 3 7 906 +85+62+16+17+7+6-7-6-2-10-4+5+5-3-17-7+6+3+0-17-14-5-11+7+7+1-23+5+5-19+16-6 hash_sha512 3 11 939 +89+42+16+11+6+5-4-14+50-4+2-26-1-3-11+5-10-23+3+1-27+3-1-25+3-1-23+3-1-30+4+1 hash_sha512 3 17 934 +74+76+20+14+4+4+0-1+1-6-9+6-18+8-11+8-16-3+8-17-4+8-19+9-2-6-6+8-14+11-4-10 hash_sha512 3 26 930 +108+65+40+16+6+2-7-5-19+11-1-23+11-1-22+11+1-20+79-12+0+5-5-21-8-2-9+21-9-6+21+0 hash_sha512 3 40 931 +104+51+38+17+5-4-5-15+0-7+7-1-19-5+10-21-2+12-20-4+8-14+14+2-23-3-7+8-29+11-1+0 hash_sha512 3 61 934 +113+69+18+13+3+4+111-10-18+13-12-21+10+1-23-3+17-14+8+6-16+12-13-2+11-23+8+4-25-14+1-23 hash_sha512 3 92 929 +54+48+26+38+10-1-2-9-15+20-9-10+20-6-18+22+0-14+20-6-8+19-9-17+20-4-15+19-9-19-29+1 hash_sha512 3 139 1660 +198+103+26+3-9-11-26+19-11-9-6-4-8-6+25+11+15-3-3+24-18-9+80+2-13-7-4-8-6+25+11+15 hash_sha512 3 209 1662 +175+78+43+21+11-5+22-1+0-13-7-10+28-5-11-11-4-10-10+21+14+11+1-5+14-9-11+20-5-12-9-5 hash_sha512 3 314 2382 +328+100+45+33+4-53-3+2+0-4+0-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5 hash_sha512 3 472 3068 +335+137+58-20-46-45+64+28+22+30+30+15+17+17+31+5+19+35+29+30+1-40-33-34-36-34-36-34-36-34-36-34 hash_sha512 3 709 4514 +309+143+63+96+14-22-62-77+34-98+52-5-61+47-101+52-5-61+46-94+46-94+52-5-61+46-94+46-94+52-5-61 hash_sha512 3 1064 6527 +436+181+179+5+44+44+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hash_sha512 3 1597 9283 +561+162+132+10-20-23+231-90+5-3-30+0-16+184-90+10-3-35-2-41+80+41-75-21+21+1-30+17+168-33+34-4 hash_sha512 3 2396 13402 +721-71-61+125-99+12+49-120+19+49-120+19+49-120+19+49-120+19-60+55+18-81+135-11-52+55+18-99+12+49-120+19 hash_sha512 3 3595 20250 +629-36-59-4+366-82+153-91+108-160+108-160+22-18+26-18+26-18+26-18+26-18+26+273-43+127-74-39+14-18+26-18 hash_sha512 3 5393 29663 +678+74-3-9-22+38-23-12+38-23-12+38-23-12+38-23-12+38-23-12+38-23-12+38-23-12+38+1747-104+199-90-11 hash_sha512 3 8090 43852 +717+330+21+132-93+166-22-105-23-84+239-52-141-41-3+144+54-155+27-31-78+37-76+23-3+239+46+50-28+32-89-41 hash_sha512 3 12136 64858 +636+43+22-43-15-1+65+1+3-80-2-73+8-116+66-7+14+26-79-35-57+66-7+14+26-79-35-57+66-7+14+26 hash_sha512 3 18205 97167 +534+174+80+12+10-81-13+46-4-20-14+46-4-20-14+46-4-20-14+46-4-20-14+46-4-20-14+46-4-20-14+46 hash_sha512 3 27308 145083 +606+69+66-117+205-96-40+52-42+141-113+28-82+52-42+28+144-62-16-120-14+266-142+28-82+52-42+28-82+52-42+28 hash_sha512 3 40963 218916 +494+104-30-143-291+1496+60+126-18-90-22-76+70-102+244-86-75-97+164-28+189-61-4+254+48-46-1+37+61-15-39-7 hash_sha512 3 61445 327688 +357+150+10+46-3-69-50-162+45+27-176-46-156+80-29-11+74+86-92+48-24-162+997+130+116+184-2-106+116-128-108-106 decode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 selected 653 144 +1008+43+4+25-1+7-10+14+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7 decode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 0 653 151 +717+44+20-3+13-5+9-5+9-5+9-5+9-5+9-6+12-7-8+7-10-12-8+13-7-12-8+13-7-12-8+13 decode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 1 653 147 +79+21+0-9-2+3-9-8+7+12-5-8+7+12-5-8+7+12-5-8+7+12-5-8+7+12-5-8+7+12-5-8 decode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 2 653 144 +680+31+4+4-4-1+0+1+2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 3 653 752 +1524+48+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 4 653 165 +1121+109+39+20-1+5+1+1+1+3+3+3-2+0+2+2+0+2+3+2-5-3-7-2-3-1-3-8-8-3-3-3 decode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 5 653 1324 +930+23+2+5+6+2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 decode_653x1541 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 selected 1306 1108 +2941+57+23+4-9+3+1-10+3+1-10+3+1-10+3+1-10+3+1-10+3+1-10+3+1-10+3+1-10+3+1-10 decode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 0 1306 1111 +88+30-3+1+1-9-4+3+6+1+6+3-13-12-3+1+6+3-13-12-3+1+6+3-13-12-3+1+6+3-13-12 decode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 1 1306 1196 +4419+143+101+69+59+59+45+29+25+33+33+17+7+8+6-1-13-12-14-13-31-26-35-35-31-34-47-55-42-62+11-64 decode_653x1541 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 2 1306 8114 +1761+164+25+22+23+1+8+9+6-26+6+3-7-11-16-9+40-11-24-23+17-2+8+4-14-5+13-9+31-8-17-14 decode_653x1541 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 3 1306 9529 +2572+123+88+43+7+16-2-21-10-20+18-29+4-12+13-15+18+117-7-24-67+13-11-4-56+89-72-2-96+57+15-53 decode_653x1541 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 4 1306 8126 +2648+117+42+33-2+7-4-18-10-18-21-9+12-16+23+16-17-21+11-22+31+8+6+23-18-24+19-6+4-1+0-16 decode_653x1541 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 5 1306 9632 +2190+62+93+35+20+60+47+10+60-36-21+16-29+42+44-54+18-45-16+6-43-81-41+34-59-48-54+62-37-91-41+34 decode_653x4621 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 selected 1306 1202 +4571+57+21-8-9-4-17+0+9-4-2+8-3+0+9-4-2+8-3+0+9-4-2+8-3+0+9-4-2+8-3+0 decode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 0 1306 1198 +103+28+1+9+12+1+4+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 decode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 1 1306 1350 +2847+76+60+25+24+20-2+4-1-2-1-6-5-9-8-1-11-10-11-7+21-5-11+20-3-10+26-17-3+17-5-17 decode_653x4621 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 2 1306 9485 +922+52+12+17+25+44-19-13-45-17+2-6-12-11+3+4+13+9-1-23+28+26-10-12-15+0-1+20-12-57-3+7 decode_653x4621 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 3 1306 10586 +2384+108-35+44-11+16+22+14-1+24+5+53+16-13-31-9-15-47-35+48-29-29-36+81-6-3-10+49-8-17-39+32 decode_653x4621 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 4 1306 9484 +1128+59-4+9-21-3-28+16+2+21-16+5+26+15-6+0+0-42+6-30-30-38-16+0-10+25-24-24+11+9+24+24 decode_653x4621 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 5 1306 10725 +2152+120+76+102+56+21+57-6+52+45+39-11-1-5-25-31+25-33-4-33-43-27+13-36-28-17-11+39-24-13-69-28 decode_653xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 selected 1306 123 +611+84-3-9-8-7-8-7-8-9-8-9-8-9-8-9-8+6+7+7+5+7+5+5+5+5+5+5+5+5+7+7 decode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 0 1306 111 +553+69+22+1+1+0-1+1+0+0-1+1+0+0-1+1+7-1+2+0-1+2+0-1+2+0-1+2+0-1+2+0 decode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 1 1306 112 +93+58+2+2+1+2-16-17-16-17-19-14-16-17-19-14-16+4+4+3+4+3+4+3+4+3+4+3+4+3+4+3 decode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 2 1306 713 +444+33+0+6-1+0-1+0-1+0-1+0-1+0-1+0-1-2+0+0+0+1-1+1-1+1-1+1-1+1-1+1 decode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 3 1306 164 +485+66-8-9-10-9-9-8-10-9-9-9-9-9-9-9-9+6+9+7+32+32+2+8+9+7+9+7+9+7+9+7 decode_653xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 selected 2612 157 +460+46+2+2+0-1+0-1-2+1+0-1-2+1+0-1+6+1+0-1-2+1+0-1+1-1-2+1+0-1-2+1 decode_653xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 0 2612 1513 +597+27+4+4+2-3+1-4+0-3+1-4+0-3+1-4+0-3-3-4-1+3+0+1-2+3+0+1-2+3+0+1 decode_653xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 1 2612 156 +47+31+30+30+30+1+0+0+0+0+0+0+0+0+0+0-1+1-1+1+0+0+0+0+0+0+0+0+0+0-1+1 decode_653xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 2 2612 741 +91+21-6-4-2-4-2-4-2-4-2-4-2-4-2-4-9+3+3+3+3+3+3+3-14+0+3+3+3+3+3+3 decode_653xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 3 2612 248 +271+45-6-12-13-8-8-8-8-8-8-8-8-10-10-8-8+6+6+6+6+6+6+6+6+6+6+2+2+6+6+6 decode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 selected 761 121 +831+38+20+2-5-2+0-5+0+0-5+6+0-5+6+0-5+6+0-5+6+0-5+6+0-5+6+0-5+6+0-5 decode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 0 761 124 +376+45+5+4+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+2+4-2+1 decode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 1 761 125 +36+32+33-4-1+0-1-3+0+0-1-3+0+0-1-3+0+0-1-3+0+0-1-3+0+0-1-3+0+0-1-3 decode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 2 761 262 +1168+40+13+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 3 761 946 +1981+64+4+2+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 4 761 223 +553+70+36+19+18+19-3-2-2-2-2-2-2-2-2-2-2-2+2+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 5 761 1482 +1078+68+17+3-2+4-3-2-2-3+0+2+2+0+0+0+2+4+2+0-1-7+2+0-1-7+2+0-1-7+2+0 decode_761x1531 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 selected 1522 1143 +1409+88+17-8+2+9+12+0+2-4-3+1+2-4-3+1+2-4-3+1+2-4-3+1+2-4-3+1+2-4-3+1 decode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 0 1522 1146 +96+33+15+15+15-16-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10 decode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 1 1522 1326 +4134+174+112+104+81+56+43+39+45+25+25+15+16+2+1-5+0-20+1-15-9-10-30-41-29-34-54-59-59-81-89-77 decode_761x1531 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 2 1522 9456 +1028+86+77+42+25+32-9-15-30-18+34-22+12-3-2-15+16-21+9+32-9-15-30-18+34-22+12-3-2-15+16-21 decode_761x1531 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 3 1522 11164 +2285+146+58+55+35+51-9+3+42+35+42+2-7-1-40-17-25+18-97-58-33-46-50-112+61-67+0-15-121+4+44-118 decode_761x1531 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 4 1522 9496 +1022+137+33-30-56-57+16+23-30+12-3-11+4+20+7+25+13-4-15+2+5-21+13-4-11+0-3-63-3-5-29+7 decode_761x1531 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 5 1522 11246 +1860+193+73+50+32+32+23-5+12+3-39-6+0-2-36-26+10-30-30-12-65+41-70+21+50-22-82+41-40-71-54+50 decode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 selected 1522 1271 +1540+82+34+9+3+2-2+2-2+2+9-14+8-14+3-16-12+1+1-4-6+1+1-4-6+1+1-4-6+1+1-4 decode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 0 1522 1273 +85+36-15+1-4-3-3+5-1-3-9-3-9-3-9+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 decode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 1 1522 1378 +1854+101+45+41+30+24+12+8-6-27-6-17-3+0+6-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 2 1522 10904 +842+64+53+0+14-23+11+16-10+6+25+18+19-33+4-23+3+3-9+13-10+10-20+29-30-15-37-16-3-27-3-10 decode_761x4591 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 3 1522 11850 +1009+112+71+40-16+32-9+94+18-40-63-9-14-8-9-30-75-22-15+28-15+43-7+43-58+28-14+28-21-23-24+39 decode_761x4591 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 4 1522 10903 +834+108+79+50-5+6-8-23+13-2-41-32+48-42-12+5-3+11+19+46+6-24-10-10+17-14-27-26+4-4-5+34 decode_761x4591 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 5 1522 13841 +1246+187+138+137+98+96-5-89-26-100-16+71+11+45-20+3-69-18+31+24-26-18-18-90-24-26+55-51+11-36+39-93 decode_761xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 selected 1522 122 +295+61+38-1+0+0+0+0+0+0+0+0+0+0+0-2+0+0-2+0+0+0+0+0+0+0+0+0+0-2+0+0 decode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 0 1522 120 +199+64+15-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 1 1522 120 +69+50+43+13+0+0-1+0+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+3+0-1+0+1-1+1-1 decode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 2 1522 819 +153+25+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1-1+0+0+1+0+1+1+0+0+1+1-1+1 decode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 3 1522 176 +174+47-6-5-8-8-8-8-8-9-7-8-8-8-9-7-5+7+6+10+3+9+3+6+9+3+9+3+6+6+6+6 decode_761xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 selected 3044 174 +493+46+9+5+3+3+3+3+2+2+2+2+0+1+0+1+11-3-2-4-2-2-2-1+10-1-2-4-1-3-4-3 decode_761xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 0 3044 1761 +440+82+39+6+2+0+2+3-2+2+3+3+1-5-2+2-2-1-2-1-1-1-1-1-1-1-1-1-1-1-1-1 decode_761xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 1 3044 174 +50+12+3+3+1+3+2+1+2+3+2+2+1+1+2+2-2-2-2-2-2-2-2-1-2-2-3-2-4-4-4-4 decode_761xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 2 3044 853 +391+42+11+0+11+8+13+3+10+10+6+0-4+0-4+0-4+0-4+0-4+0-4+0-4+0-4+0-4+0-4+0 decode_761xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 3 3044 270 +464+52+16+16+17+13+10+17+1-4-3-1-2+1-3-3+1-3+2+1-1-2-2+1-1-2-3-3+1+0-2-3 decode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 selected 857 134 +533+38+19+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 0 857 140 +392+42+17+16+0+1-2+1-3-2+1-3-2+1-3-2+1-3-1+1+3-3-1+1+3-3-1+1+3-3-1+1 decode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 1 857 136 +57+36+14-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 2 857 236 +687+53+13+11+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 3 857 1048 +1443+38+11+3+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+1-1+0+1-1+3-1+0+0+1-1+0+1 decode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 4 857 202 +619+99+62+39+2+2+2+2+2+2+2+2+2+17-2-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2-1-2 decode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 5 857 1694 +831+38+11-7+5-7+1+6-7-4+5-7+5-7+5-7+5-7+5-7+5-7+5-7+4-4+5-7+5-7+5-7 decode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 selected 1714 1327 +2332+84+58+17+28-8-12+13-8-12+13-8-12+13-8-12+13-8-12+13-8-12+13-8-12+13-8-12+13-8-12+13 decode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 0 1714 1349 +141+22+37-6+12-1+3-1+1+0-6-1+1+0-6-1+1+0-6-1+1+0-6-1+1+0-6-1+1+0-6-1 decode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 1 1714 1538 +2288+155+79+82+63+54+34+36+26+9+13+10+8-12-6-12-1-15-10-12-1-15-10-12-1-15-10-12-1-15-10-12 decode_857x1723 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 2 1714 10828 +949+82+29-32-18+2-6-16-18-18-7-41-2-18-7+731+79+47+15+0-8+14+15+8+21-3+8-22-6+4+8-22 decode_857x1723 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 3 1714 12575 +1345+149+144+44+65+65+49+73+29+12-36-21+36+13-28-3-24-38-3-36+1-16-9-6-14-37-36+1-16-9-6-14 decode_857x1723 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 4 1714 10822 +776+111+18+15-4-5+40-8+8-9+0-39+6+2-12+8-9+0-39+6+2-12+8-9+0-39+6+2-12+8-9+0 decode_857x1723 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 5 1714 12696 +1449+147+138+105+54+30+17+52+48+19-34+8-35+9+13+9-36-86-34-80-14-38-27-84+8+52-54-96+19+51-54-128 decode_857x5167 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 selected 1714 1425 +1792+74+32+9+5-11-4+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 decode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 0 1714 1428 +135+62+65+22+11-1+6-8-4+2-1-1-4+2-1-1-4+2-1-1-4+2-1-1-4+2-1-1-4+2-1-1 decode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 1 1714 1655 +2638+105+66+65+38+32+42+26+28+18+12+4+12-4+4-8-8-22-20-26-16-36-40-32-48-58+28+14-25-27-14-44 decode_857x5167 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 2 1714 12735 +1002+118-3+17+3-39+33-3-2-3-5+32+43-9+13-3-73-9+13-3-73-9+13-3-73-9+13-3-73-9+13-3 decode_857x5167 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 3 1714 13403 +1783+148+144+21+91+16+10+28+25-11+21-4+94-19+44+41+45-34-6-12+26-28-76-34-46-28-18-94-109-92-15-59 decode_857x5167 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 4 1714 12734 +1076+99+26-31-12-24-23+5-8+5+23+2+1-36+12-25+69+12-25+69-28-25+4+23+30-22+8-19+4+28+7-22 decode_857x5167 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 5 1714 13847 +1576+90+84+84+12-32+13-55+70-29+54-16+21-8-6-42+66+46+56+6-37-56-8-6+106-71-83-84-30-7-5-75 decode_857xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 selected 1714 127 +200+65+4+1-1+1-1+1-1+0+0-1-1+1-1+1+0-1-1-1+0+0+0+0+0+0+0+0+1+1+1+1 decode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 0 1714 127 +183+100+52+17-3+0+0+0+1-1+1-1+0-2+0-1+10-1+0-1+0+0+0+0+6-2+0-1-1-3+0+0 decode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 1 1714 127 +73+25+2+0-2+0-1-1+0+0+0+0+0+0+0+0-1-1-1-1+0-1+0-1-1+0+0+0-1+0+0+0 decode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 2 1714 915 +106+20+1+1+0+0+0+0+12+8+5+2+1+1+0+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 3 1714 189 +134+44+41-5-8-9-9-9-6-6-7-6-5-8-8-7-7+6+3+9+3+9+3+9+3+9+3+9+3+9+3+3 decode_857xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 selected 3428 194 +429+51+5-1+0-1+1-1-1+0+0-1+1-1+1+0+7-1+0-1+1-1-1+0+0-1+1-1+1+0+1-1 decode_857xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 0 3428 1978 +165+54+8-3-1-3-1+1+2-1+0-3-1+1-1+1+2-1+0-3-1+1+2-1+0-3-1+1-1+1+2-1 decode_857xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 1 3428 193 +75+28-1-2+2-2+2-2+2-2+2-1-1-1-1-2+7+2-2+2-2+2-2+2+7-1-1-1-1-2+2-2 decode_857xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 2 3428 945 +112+53+4-2+2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_857xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 3 3428 294 +148+51+2-4+0+1-1+1-1+1-1+1-1+1-1-5-1+1-1-5-1+1-1+1-1+1-1+1-1-5-1+1 decode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 selected 953 152 +1010+52+18-8-8-6-8-6-8-6-8-3-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 0 953 151 +134+70+4-3+0-3+2-3+0-3+2-3+0-3+2-3+3+1-3+3+1-3+4+3-3+4+3+1-3+3+1-3 decode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 1 953 152 +55+31+16+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 2 953 214 +542+42+30+22-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 3 953 1068 +716+68+22+14+3+3+4+4+3+2-3-2+1+0-2-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 decode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 4 953 250 +239+68+40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 5 953 1850 +844+69+32+21+26+2+2+2+1+11+3-1-1-1-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 selected 1906 1556 +1548+113+41+31-7-12-17+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-7-12 decode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 0 1906 1543 +115+85+31+1-1-1-2+14+4-10+4-10+4-9+0+4-10+4-10+4-10+4-10+4-10+4-10+4-10+4-10+4 decode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 1 1906 1826 +1742+57+8-5+0-13-9-10-12-10-6-4-24-13+4-26-23+11+3+1+0+1-4+2+6+1+16+4+3+11+4+4 decode_953x2115 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 2 1906 13148 +719+78+123+34+10+20-2+21-23+6-27+29+21-23-6-5-10-38+12-29-15+12+15-30-8-15+12-5+5-7-26-30 decode_953x2115 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 3 1906 13541 +2131+117+44+22+48-6+11-26-32+102+106+21-8+1+8-38-5-9-47-15+27-81+60-39-4-41-31+27+68-89-18-38 decode_953x2115 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 4 1906 13140 +1102+97+18+63-13-40+22-12-14+22-6+48-27-10+20-35-18+23-56+3+17-15+25-45+8-34-42+51-27+9+40-35 decode_953x2115 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 5 1906 13832 +2488+142+138+58+2+44+18-18+1-25+14+12-30-30+47-9-39-17+35-29+9-20-3+21+12-47-6-29-12-4+18-81 decode_953x6343 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 selected 1906 1566 +2445+127+49+34-4-12+10+6+7-5-1-1-1-4-8+21-1-1-1-4-8+21-1-1-1-4-8+21-1-1-1-4 decode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 0 1906 1584 +76+49-1-4+8+8+7-4+6-11-17-3+7-4+6-11-17-3+7-4+6-11-17-3+7-4+6-11-17-3+7-4 decode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 1 1906 1668 +2826+156+68+60+45+35+22+12+7-26-14-33+6-11-5-10-1+4+4+2-7-11-5-10-1+4+4+2-7-11-5-10 decode_953x6343 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 2 1906 13508 +756+112-28-5+69-4-35-16+11+20-46+12-38-13+43-12-53+9+7+35+58-42+32+20-46+12-38-13+43-12-53+9 decode_953x6343 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 3 1906 15202 +1379+150+75+20+37+47+31+82+1+26+0+35-83+12-27+14+39-40-52-100-21-109-90-64+42+27-69-66+40-33-35-97 decode_953x6343 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 4 1906 13484 +1120+57+69-7+0+6+28-26-32+7+0-14-5+5+44+36-19+7-9-17+0+62-25-1+17-10+28-27-30-3+0-1 decode_953x6343 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 5 1906 15540 +1989+84+72+99+55+16+40+41+123+54+79+16+19-8+4-11-3-39-43-41-25-71-113-65-75-78+53-75-136+53-76-81 decode_953xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 selected 1906 133 +490+63+3+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0-1+0+0+0+0+0+0+0+0+0+0-1+0 decode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 0 1906 136 +174+86+21-3-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 1 1906 133 +49+14+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 decode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 2 1906 1010 +89+25+0+1+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+17+0+1-1+1-1+1-1 decode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 3 1906 200 +172+102-7+19-6-6-9-6-6-6-6-6-6-6-6-6-6+6+2+9+23+2+9+5+2+9+5+2+9+5+2+6 decode_953xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 selected 3812 223 +453+70+6+0+19+17+3-4+1+0+3-2-1+0+3-4-1+0+3-2-1-3+1+0+1-2-1+0+3-4-1+0 decode_953xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 0 3812 2195 +222+72+6+1-2-2-1+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 decode_953xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 1 3812 224 +51+23+0+0-2+0+0+0+0-2+0+0+0-2-2+0+0+0-2+0+0+0+0-2+0+0+0-2-2+0+0+0 decode_953xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 2 3812 1061 +57+33-2-6+0+11+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 decode_953xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 3 3812 362 +140+29+15+1+0+0-1+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-1+0-1+0-2+0-2+0 decode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 selected 1013 147 +748+39+19-1+0+5-2-1+0+5-2-1+0+5-2-1+0+5-2-1+0+5-2+2+5-2-1+0+5-2-1+0 decode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 0 1013 154 +153+48+14+13-5+2-3-3+3-3+3-3+3-3+3-3+3-1-2-6+1+0-6+1+0-2-6+0-2-6+1+0 decode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 1 1013 151 +53+33+3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 2 1013 284 +874+73+17+1+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 3 1013 1215 +1235+48+1+0-2+0-2+0-2+0-2+0-2+0+0+0-2+0+0+0+0-1+0+0-2-3-1-1+0-2-3-1 decode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 4 1013 254 +283+97+56+21+22-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 5 1013 1972 +1250+66+21+19+2-1-1+1-2+4-3+1-3+0+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 selected 2026 1716 +1886+110+34+14+8-12+5+7+0-14+12+10+10+7-6+3-14-14-15-12+10-20-3-3-15-3-7-4-13+4+9+0 decode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 0 2026 1716 +166+110+55-8-5-14-6-2+5-11-7+17+3+1+8-12-7+11+3+12+1-6-10+16-23-14-2+4-2+4+8-1 decode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 1 2026 1851 +2208+94+22+7+16+17+22-7-9-15-4-27-23-21-39-20-21+23+23-37+27-9+27-9+24-29+11-41+11-19+17-17 decode_1013x2393 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 2 2026 14548 +1022+26+23-61-1-50-18-26-4-29+72+42+25-66+32+24+50+14+0-3+13-9-19-53-18-38+4+8-28-22+10+48 decode_1013x2393 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 3 2026 17708 +1139+42+50-12+19-35-76-4-61+14-34+26-6-68-10+44-84-32-24+58-4-32+50+41+31+24-22-34+35-6-4+12 decode_1013x2393 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 4 2026 14533 +837+87+113-10+35-41+13+6-20-31-5+5-4-25+2+5-4-25+2+5-4-25+2+5-4-25+2+5-4-25+2+5 decode_1013x2393 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 5 2026 18292 +2251+163+114-15+15+23+15+16+0+25-10+14-50+4-62-18-1+17+15-21+1-23-14-4+9-20-16-22-25-17-2+67 decode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 selected 2026 1657 +2216+114+27-4-9-9+686+0-3-12-17-4+8+0+12-4+8+0+12-4+3+0-4+7-11-16-13-4+8+0+12-4 decode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 0 2026 1658 +143+52+16+12+4-8+1-2+10+7-13-9-5-9+3+8+6-9+3+8+6-9+3+8+6-14+1-6-9-9-11-14 decode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 1 2026 1872 +2090+127+81+69+26+27+9+7+0+0-13-4-24-10-25-21-28+68-24-15+59-17-16+75-29-17+56-22-28+68-29-17 decode_1013x7177 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 2 2026 14186 +1450+21+19+46+28-10+37-40-32-3-3-22+11-19-7-42+7-80+17-10+8-3+16-25+31+29+30+25-64-32-23-45 decode_1013x7177 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 3 2026 19674 +1809+179+86+101+95+105+41+26+30+9+4+28-40+3-10+30+3-9-51+57-64-49+5-21-44-90-16-56-81-32-74-6 decode_1013x7177 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 4 2026 14177 +981+65+58+38-68-16+38-18-39+8-25+9+22+6+38-59+8+27-44-17+15-59-9+8-17+37-9+29-14-29-68+2 decode_1013x7177 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 5 2026 17254 +2973+114+111+54+62+40+37+56-29-13+87+51+20-4+20-23+43-50-16-26+54-42-72-24-94-116-4-99-37-82-148-68 decode_1013xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 selected 2026 147 +265+56-3-7-8-8-8-10-8-8-8-8-8-8-9-8-9+6+7+7+5+5+7+7+5+6+5+5+4+7+7+7 decode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 0 2026 144 +219+97+50+21+21-3-3-1-1-2-3+0-4+0-4+0-2-2-1+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 1 2026 154 +47+34+2-1+1-2-2+0+0+0+0+0+0+0+0+0+0+0+0-2-2+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 2 2026 1072 +88+37+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 3 2026 200 +127+57+72+4+1+3+0+0+0+0+0+0+1+3+0+0+0+0+0+1+3+0+0+0+0+0+1+3+0+0+0+0 decode_1013xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 selected 4052 212 +477+74-2-2-4-5-5-5-5-6-7-5-5-6-5-6-5+6+4+3+3+4+4+4+3+5+4+4+3+5+3+5 decode_1013xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 0 4052 2327 +127+61+4-1-2+7-1+6-3-6-3+7-2+2+2-5-4+3+5-6-1-12+6-5+4-9+5-6-1-12+5-9 decode_1013xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 1 4052 211 +97+45-3-6-8-6-9-9-7-9-9-9-6-8-6-8+5+4+3+3+3+3+3+3+3+3+3+3+3+3+3+3 decode_1013xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 2 4052 1116 +114+32+10-7-1+4+5-2-9-7-1+4+5-2-9-7-1+4+5-2-9-7-1+4+5-2-9-7-1+4+5-2 decode_1013xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 3 4052 334 +149+53+2-8-1+0+0+0+0+0+0+0+0+0-3-1+0+0+0-3-1+0+0+0+0+0+0+0-3-1+0+0 decode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 selected 1277 173 +1142+83-2+7+0+4-2-2-5+0-7+1-2+1+7-5+1+1+7-5+1+1+7-5+1+1+7-5+0-2-5+1 decode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 0 1277 179 +137+45+37+20+1-5+1-5+1-5+1-5+1-5+1-5+1-5+7-5+7-5+7-5+7-5+7-5+7-5+7-5 decode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 1 1277 178 +83+35+15+15+18-3+1+0-3+2-1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3 decode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 2 1277 320 +751+95+17+53+11-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 3 1277 1498 +1581+30+1+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0-1+1+2-1+1+2-1+1+2-1+1+2-1 decode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 4 1277 299 +308+59+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 5 1277 2496 +1102+101+28+10+3+11+11+13+3+13+5+5-2+6-2-2+4-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2 decode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 selected 2554 1856 +1910+80+31+42+2+41-5+3-6-19+14-15+12+1-12+18+3+4+1-15-7+3-6-19+6-11-7-6-9+2+6-2 decode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 0 2554 1865 +115+39+5+46+0+5+0-1-1-1+15+8+5+0-1-1-1-1-3+11+11+7-15-2-2-1-1-1-1-1-1-1 decode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 1 2554 2005 +2891+112+88+66+63+60+38+21+14+28+28+8+2+0+14+0+11+13-5-18-23-23-15-24-23-20-50-41-46-51-27-54 decode_1277x2627 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 2 2554 18199 +1344+108+86+1-6-15+25-7+35-49+58+14-15-20+23-80-37-5+35-49-20-47+5+12-6-31+12+42+50-55-37-5 decode_1277x2627 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 3 2554 22312 +1737+96+38-66+109-18+45+0-4+7+21-46-43+42-54+41-25-3+20-86+87-1-14-57+68+11-28-31+1-6-31-3 decode_1277x2627 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 4 2554 18195 +731+38-9+48+28-39+4+0-7-11+5-17-2-23-17+79+44-3+3-24+12+11-52-8+63+36-81-40+5+28-15-41 decode_1277x2627 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 5 2554 22554 +1752+141+39+86+42-37-21+9-122+7+12-35-28-69-50-68-8-5+2-39-3-47+95+26+31+8-9-1+69+45-18-2 decode_1277x7879 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 selected 2554 1760 +1782+63+12+4-11+5+4-10+5+0-3-3-1+0+5-1-11+3+4-4+5-1-6+0+4-4+5-1-11-8-1-4 decode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 0 2554 1759 +54+29+23+7-20+20-38-14-4-13+2-1-10+1+3-1+11+2-11-1-5+4-6-18+3+3+3-1+11+2-11-1 decode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 1 2554 1924 +2435+135+127+92+72+54+47+45+34+16+21+10+26+10+0+5-16-7-12-7-18-32-36-39-27-40-45-60-43-59+1-48 decode_1277x7879 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 2 2554 17780 +882+13+70+48+18-23-7-23-7+23-56-10-56-10-56+67+26-32+13-20-30+15-37+29-41-7+26+78+38+45-38-26 decode_1277x7879 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 3 2554 23343 +1397+138+111+81+1-10-12-1-70-1-27-51-25-69-22+14-42-94+24-48+34-1+55-3+22+30+14+102-92-21+12+3 decode_1277x7879 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 4 2554 17806 +1251+24+35+16+6+33-29-27-2+6+4-14+34+38-48+7-55-79-11-65+17+12-12+4+4-14+34+38-48+7-55-79 decode_1277x7879 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 5 2554 23444 +1587+174+71+54-15+10+7-7-50+48-12+8-39-21-34-26-115+40-69+10-78-11-73+58+12-62+22+41-2-61+25+46 decode_1277xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 selected 2554 157 +420+46+7+1-2+1+0+0+0+0+0+0+0+0+0+0+4+4+0+0+0+0+0+0+0+0+0+0+0+0-1+1 decode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 0 2554 176 +211+68+15-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0-3+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 1 2554 157 +54+35+1+0-2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 decode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 2 2554 1336 +88+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+17+0+0+0+1+0+0+0 decode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 3 2554 236 +138+34+1-1+1+1+1-1+1-1+1-1-1-1+1-1+1-1+1+1+1-1+1-1+5-1-1-1+1-1+1-1 decode_1277xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 selected 5108 247 +436+51-6-6-7-7-7-7-7-7-7-7-7-7-7-7-5+7+4+8+5+4+8+5+5+5+5+5+5+5+5+9 decode_1277xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 0 5108 2919 +122+54+17+4-2+0-2+0-2-3-1+2+0-4+2-2-1-1+3-1+3-1+3-2-1+2+0-4+2-2-1-1 decode_1277xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 1 5108 256 +44+31+2-3+0-3+2-2+2-2+2-2-3+0+0+0+0+0+0-3+2-2+2-2+2-2-3+0+0+0+0+0 decode_1277xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 2 5108 1385 +99+59+2+35-2-2-2-2-2-2-2-2-2-2-2-2-34-1+1-1+1-1+1-1-34+5+9+5+9+5+9+5 decode_1277xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 3 5108 405 +168+47-5-8-3-4-8-3-3-3-3-3-2-5-9-8+11+8+15+1+1+8+8+15+1+1+1+1+1+1+8+8 decode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 selected 2 49 +149+61-3-1-4+0+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2 decode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 0 2 48 +70+59+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 1 2 49 +61+39+18+18+1+1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1 decode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 2 2 47 +32+21+38+17-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 3 2 49 +35+19+16+18+15+36+15-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3 encode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 selected 164 123 +595+56+5+3+3+3+4+2+6+9+5+4+0+4+3+3+3-2-4-6-8-3-4-2-4-7-3-4-5-5-6-7 encode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 0 164 129 +122+48+3+4+0+2+3+2+3+9+3+2+4+3+4+2+1-3-3-4-3-3-4-2-4-2-7-4-4-4-3-3 encode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 1 164 121 +59+37+5+2+4+5+2+3+4+9+3+6+3+5+0+6-2-1-3-4-1-2-7-4-2-4-5-2-5-8-3-4 encode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 2 164 374 +1301+33+0-3+1+0-3+0+0-2-1-1+3+3+5+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 3 164 186 +771+26+15+3+6+4+0+1+7+5+5+2+2-1-3-1-4-2+0-5+1-1+1-1-3-9-4-4-9-4-7-5 encode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 4 164 615 +140+11+6+3-1+4+0+3-1+4+0+3-1+4+0+3+0-1-2+2-2-1-1-1-1-1-1-1-1-1-1-1 encode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 5 164 217 +1755+52+22+22+2-2+2+6+2+6+4+3+3+1+2+3-3-3-2-1-3-3-3-2-6-6-4-6-7-6-6-6 encode_653x1541 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 selected 865 706 +2122+84+8-6+1-4-3-1+11-4-3+14+11+3+3-4-4-4-3+14+11-4+3-4+1-4-1+14+11-4-3-2 encode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 0 865 844 +1465+45-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 encode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 1 865 722 +63+37+7-20+8+8-13-13-12-13-8-11-16-16-18-11-11-18-13-13+8+8+8+8+8+8+8+8+8+8+8+8 encode_653x1541 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 2 865 1426 +1171+130+16+2-2-3+0+0-9-1-1+0+3-13+5+6-7+2+2+0-6+0-3-8-7+0+2+0+6+0-5-1 encode_653x1541 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 3 865 1698 +898+121+77-11+7+16+6+6-3+8+5+2-3+1-4-7+7+2-4-13+3-13+10-8+3-14-7-5+1-8+3-14 encode_653x1541 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 4 865 2083 +1284+91+31+29+16+5-6-8+3-1+2-4-3+2-5+8-14-4-3-14-3+10-7-11-4-3+11-2+11-4-3+11 encode_653x1541 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 5 865 3061 +1183+86+15+28+3+2-17+5-18-7-6+6+8+4-6-4+5-13-9+7-14+10-8-2-12+10-11+1+0+8-5-2 encode_653x1541round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round selected 865 832 +1668+68+23+0+0-4-12+2-12-13+2+6+5-5+3+1-1+6+7-1-14-1+2-10-8+5+1+3+0-3-2-6 encode_653x1541round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 0 865 1026 +815+50+30+25+10+6+5-9-4+0-2+5-9-4+0-4+5-9-4+6+5-9-4+0-2+5-9-4+0-4+5-9 encode_653x1541round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 1 865 831 +54+32-2-4-12+0-2-12-2+3-1+4+3-1-6-3+2+4+2+3+5-11+6+0+3+2-8+2-2+6-4-2 encode_653x1541round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 2 865 1004 +1004+69-6+0+12-5-2-2-4+11-5-8-7+8+14+8-9-6-7+8+14-6-9-9+14+8+14-7-2-2-4+11 encode_653x1541round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 3 865 1108 +674+97+14-7+2-9+2-8-16-22+19-2-5+8-1+13-3+12-11+9-9+9-9+9-7-11-4-5+9-1+9-10 encode_653x1541round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 4 865 1324 +303+65+0-13-6-7+9-8-10-12+6-6+6-1+8-10+8-15+6-7-6+2-4+8-9+9+3+8-1+8-15+6 encode_653x1541round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 5 865 1366 +152+57+6+1-3-4+0-9-3-9+16+6-2-1-10-1-2-7+0-8-3-7+1+25+4-3+29+1+29-8-1+25 encode_653x4621 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 selected 994 662 +1332+89+12-3-4-2-3+2+8-5+0-2-3+2+8-5-4-1+0-1-4-5+4+7+0+0-3+7+0+0-3+7 encode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 0 994 747 +583+69+44+1+7-1+0-3+3-6-1-6-1+2-4+4+0-3+3-6-1-6-1+2-4+4+0-3+3-6-1-6 encode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 1 994 663 +120+39+21-1+7-4-3+6-4-3+6-4-3+6-4-3+6-4-3+6-4-3+6-4-3+6-4-3+6-4-3+6 encode_653x4621 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 2 994 1474 +813+132+32+7-5-10+0+4-3-5-1+1-3-4-1-19-8+1-1-3+1-8+5+7+5+5+3+10-1+1-6-15 encode_653x4621 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 3 994 1385 +724+111+56+32+11-5+6-15-19-17-17+9+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1+1-1-1-1-1 encode_653x4621 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 4 994 2113 +787+89+39+33+1+3+5+6+3+4+12+4+11+1+10+0+6-9-7-11-5-8+0-8-4-14-4-15-9-6-13-13 encode_653x4621 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 5 994 1884 +875+94+43+35-12-7-15-6-6-6-6-6-6-9-13-8-1-12-12-17+5+7+8+8+7+9+5-1+6+1+7+6 encode_653xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 selected 653 225 +270+59-6-11-10-12-10-12-10-10-8-11-11-12-10-12+6+5+5+5+5+5+5+7+5+4+6+6+5+5+5+5 encode_653xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 0 653 231 +158+59+8-3-2+9+9-1+9+9+10-2-1-2-1-1-2+2-1+0+1+2-1+0+2-1+2-1-1+0-1-1 encode_653xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 1 653 225 +84+25+0-12-12-9-6-11-13-12-12-12-9-6-11-13+5+3+4+8+9+3+3+4+5+5+8+9+3+3+4+5 encode_653xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 2 653 502 +367+55+4-9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 3 653 525 +690+52+6+11+5-1+0+0-3-1+0+0-3-3-1+0+0-3-1+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 4 653 1300 +143+43+0+9-5+9-5+10+1-5+0+9-4+6-5-2-1-5-1-4-4-5+6+6+1-5-1-5-1-5+6+9 encode_653xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 5 653 758 +127+27+6+6+3+1-2-4+3-3-4+2+2+2+2-6+2+2+2+2-6+2+4-3-2-2-2-4-10-2-2-2 encode_653xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 selected 1306 159 +474+44+0-3-1-4-5-5-5-5-3-2-1-3-4-5-5+0+0+2+2+2+2+1+8+1+0+1+2+2+2+2 encode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 0 1306 302 +245+108+62-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 1 1306 273 +99+39+5+4-4-3+4-4-3+4-4-3+4-4-3+4-4-3+4-4+4-4+4-4+4-4+4-4+4-4+4-4 encode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 2 1306 158 +47+26+9+0-2+1-1-1-1+1+1+1+1-1-1-1+1+1+1+1-1-1-1+1+1+1+1-1-1-1+1+1 encode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 3 1306 274 +176+31+0+0+0+0+2+0+0+0+0+0+0+2+0+0+0+0+0+0+2+0+0+0+0+0+0+2+0+0+0+0 encode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 selected 191 117 +977+23+25+0+1+2+0-3+1-1+2+0+2+0-1+1+2-1+1-1+1+3-3+1+0-2-1+0+0+0+0+0 encode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 0 191 126 +154+53+6-1-4+1-2+1+0+0+0-1+1-1+1-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 encode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 1 191 116 +61+41+1+1+1+1+2-4+0-2+3-4-4+4-4+3+3-1-1-3+2+5-3+2+5-2-1-2-3+0+4-1 encode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 2 191 456 +1538+43+17+24+15+18-1+0-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 3 191 226 +1582+38+2-1+2+2+2+2-1+2-4-6+2+2-4-6+0-2-4-6+2-2-4-6+0-2+2+2-4-6-3+5 encode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 4 191 678 +157+35+4-2+7+0+0+0+0+0+0+0+0+9+7-6+0+0+0+0+0+0+0+0+0+0+0+9+7-6+0+0 encode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 5 191 264 +537+51+50+18-4-4-5+0+2+2-8+0+2+2+2+2+2+2+2+2+2+2-3-5-6-1-5-6-1-5-6-1 encode_761x1531 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 selected 1007 834 +2291+60-9+2-2+2+4+2+6-9-3+2+3-11-8+4+0-9-10-3+1+5+5-5+4+0+5-10-4-8-4+8 encode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 0 1007 832 +504+98+25-1+3+2-1+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 encode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 1 1007 836 +106+15-8-12+12+3+4-8-12-1+4+1-15+5-13+2+11-10-12+5+11-17+5-1+4+1-15+5-13+2+11-10 encode_761x1531 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 2 1007 1640 +952+130+34+20-7+18+3+6+0+0-7-5-6+0+0+0-4+1-1+4+0+0+0+0-8+0-6+0+0+0+0+1 encode_761x1531 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 3 1007 2048 +1349+178+14+45+20+29-2-8+5-6+5-6-22-9+3-9+15-4-9+11-7-7-4-9+15-5-7-2-7+4+15-9 encode_761x1531 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 4 1007 2344 +838+22+13+36+13+36-2+2+6-9-6-3-13-1-6-8-6+2-3+4+1-7+2-1-3+3-9+0+4+4+1-7 encode_761x1531 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 5 1007 3567 +1543+71+55+7+4+3-1-4+6+8+11+3+3+9-6+0-4+3-9-3-5-4-5-6+0-3-4+7-3-9-2+5 encode_761x1531round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round selected 1007 945 +1786+46+0-12+1-10+14-10+1-2-11-10+12+13+9-10-12+1+16-12-7+5-1+6-1+13+6+2-14+1+16-12 encode_761x1531round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 0 1007 1112 +481+18+5-4-8+5-10-6-6-6+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+5-4 encode_761x1531round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 1 1007 950 +21+10-10-7+2-10-3-6-12+5+1+10+5+1+10+5+2-10-3-8+10+5+2-10-3-8+10+5+2-10-3-8 encode_761x1531round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 2 1007 1240 +838+61+10+8+0-11-1-16-9-11-1-10-6-1-13-14+5+1+3+4+5+3+5-11+0+3+1+3+6+3-3-2 encode_761x1531round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 3 1007 1276 +767+91+24+2+1+5+3-1-6-4+0-10+4-10+0-5-8+5+3+5+3-1-6-4+0-10+4-10+0-5-8+5 encode_761x1531round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 4 1007 1563 +167+36+8-3+12-3-11+0+11-10-4-10-9-1-8-2+2-8-1+2+6+5+2-4+4+1+11-3+6+0-2+2 encode_761x1531round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 5 1007 1578 +157+41+7+0-2-1-1-1-3+1-2+5-5+4-4-3-4+5+5-5+4-4-3-4+5+5-5+4-4-3-4+5 encode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 selected 1158 729 +810+143+19+10+19-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 0 1158 743 +61+17+7+3+7+3+7+3+7+3+7+3+7+3+7+3+7+2-10-8-6-8-10+2-10-8-10-8-10-8-5-10 encode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 1 1158 781 +1146+78+29+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+1+1+0-4-6 encode_761x4591 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 2 1158 1689 +1532+146+44-10+17+17+17+17+10+0+17+17-11-14+0-3-3-11-3-3-3-3-14+0-3-3-12-7+0-3-3-12 encode_761x4591 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 3 1158 1645 +1574+94+4+3+3+6-6-1+2-11+7-14+1-6-13-1+17-14-6-9+18+2+18-6+1-14+1-6-3+7+25+25 encode_761x4591 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 4 1158 2400 +901+120+41+24+8+9-4-2+5+3+4-3+7-4+0-1-3-1-3-2-2-2-2-4-4-3+6+1+0-1-3-1 encode_761x4591 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 5 1158 2222 +1191+93+40+8+6-1-4-2+6+4+0+0+6+2+2+3-8-6-8-8-9+3-3+2+3-9+3-6-8-9+1-3 encode_761xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 selected 761 250 +263+56+9-5-13-6-13-12-11-10-13-11-11-11-10-14+7+5+3+5+4+3+6+3+3+5+3+6+3+3+5+4 encode_761xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 0 761 255 +148+55+6+12-2-3+1-3+1-3+1-3+1-3+2+5+2+3+1+0+0+0+0+1-3+1-3+1-3+1-3+1 encode_761xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 1 761 249 +34+19+15+15-15-13-13-13-12-13-12-10-13+2-1+3+0+2+1+0+4+3+0+2-1+0+2+0+2+7+3+0 encode_761xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 2 761 571 +147+72+8-1-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 encode_761xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 3 761 595 +127+55+16+6+10+2+1-1-2+2-5+2-7+2-5+2-7+2-5-4+2+2-3+1-2-7-1-2+1-2+2-3 encode_761xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 4 761 1512 +112+37-12-7-9-6-10+12-10+12-10+12-10+12-10+12-10+12-10+12-10+12-10+12-10+12-10+12-10+12-10+12 encode_761xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 5 761 859 +139+48+5+0-5-7+6-3-3-3-3+0+10+15+3-2+2-3-3-3+0+10+13-2+7+2-3-3-3+0+12+0 encode_761xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 selected 1522 165 +547+69+2-1+1-1+1-1+1-1+1-1+1-1+1-1+12-2+1-1+1-1+1-1+1-1+1-1+1+1+1+1 encode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 0 1522 326 +283+73+1+2+0+0+0+0+0+0+0+0+0+0+0+0+1+0+3+0+0+0+0+0+1+0+3+0+0+0+0+0 encode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 1 1522 304 +97+46+3+28+28+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 2 1522 165 +54+23+20+12-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 3 1522 325 +126+12-14-15-18-18-18-19-19-19-19-18-18-19-19-19-18+12+12+13+13+13+13+13+13+13+13+13+13+13+13+13 encode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 selected 215 163 +887+20+21-3-3-3+0-2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 0 215 171 +105+27+14+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 1 215 166 +36+16+16-4-5-2-4-1-3-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 2 215 500 +2008+37+27+38-2-4-4-4-4-4+3+5-4-4+3+5-4-4+3+5-4-4+3+5-4-4+3+5-4-4+3+5 encode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 3 215 236 +1242+27+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 4 215 746 +116+17-25-17-18-10-13-17-18-14-9-6-24-17-11-6+8+6+5+9+3+9+5+9+3+9+3+9+3+9+3+9 encode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 5 215 284 +116+62+13+5-13-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 selected 1152 1007 +728+80+31-3-7-13+1-1-1-1-1-1-1-1-1-1-1-1-1-1-7-1-1-1+4+6+6+1+8+3-8+8 encode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 0 1152 1003 +141+82+4+3-2-2-1-3+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+0+8+9+3+4-2+4-2 encode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 1 1152 945 +1928+33-5+15-1-3-3+13+12-2-3-3-3-3+2+2+2+2+6-6+8+1-8-4+4-9+10-9-8+4-14+5 encode_857x1723 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 2 1152 1829 +1179+99+49+27-3+1+9-6+10+1-8-3+10-7-10-2-10-2-10-2-10-2-10-2+8-4+8-4+18-2+18-2 encode_857x1723 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 3 1152 2274 +2078+147+48+34+18-18+6-2+7-9-3-4-8+4+2-2-5-1+2-2-5-1+2-2+7+3-8-10-2+24+0+2 encode_857x1723 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 4 1152 2613 +915+66+31+2-10+1+0-7-2+6+3-2+9+0-5-1-4+6-6+7+14-5-4-10+13-1+4-2-3+5-1-5 encode_857x1723 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 5 1152 4187 +1627+102+57+33-3-9+13-10+12-9+14+7-2-4+3+8+8-8+9+3-1-5-8-28-5-13-3+5-10-19-3-15 encode_857x1723round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round selected 1152 1070 +2036+66+4+18-1-1-5+5+5-2-2-6-4-7-2+0-4-10-5+7-4-2+0-2-2+0-3+5+4+16+0+8 encode_857x1723round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 0 1152 1309 +765+92+24+4-1-8+3+1+3+3+3+3+4-10+3-11+3-11-5-11+3-11+3-6-8-2+0-2+0-8+0-4 encode_857x1723round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 1 1152 1070 +121+64+26+15+27+7+0-4+12-1+1-7+3-5+0-4-1-3-1+0-8+0-7-3+5+6+5+9-7-5-5-3 encode_857x1723round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 2 1152 1456 +542+83+33+24+11+0-4+1-3-8-4+1-3-8-4+1-3-8-4+1-3-8-4+1-5+6+6+4-2+5+6+3 encode_857x1723round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 3 1152 1520 +935+66+2-5-4+0+8+9+7-3-5-3-1-4+2-3-1-3-5-3-1-3-9-3+5+10+11+1+0+5+2+1 encode_857x1723round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 4 1152 1879 +248+59+3+1+1+0+5+2+4+0-10+2+3-10-6-3-4-8-14+2-5-5-3-3-7+2+3+1+5+10+11-5 encode_857x1723round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 5 1152 1864 +221+90+59+30+16-5+7-11-3-6-2+6+3-4-1+2-1-1-2-7-8-7-6-7+6+9+9+0-3+0-9+4 encode_857x5167 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 selected 1322 834 +1641+92+31+4+3-14-4-1-10+3-1+2-10+3-1+2-10+1-1+0+3-14-1+0+3-14-1+0+3-14-1+0 encode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 0 1322 866 +608+81+54-7+2+1-7+2+1-7+2+1-7+2+1-7+2+1-7+2+1-7+2+1-7+2+1-7+2+1-7+2 encode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 1 1322 832 +143+61+39+18+9+4-8+4-8+4-8+4-8+4+8-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8 encode_857x5167 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 2 1322 1916 +1341+155+86+60+34+6+8+4-4-13+3+3+4+11+1-9-4-2-4+3+8-4-2-4-2-4-2-4-2-4-2-4 encode_857x5167 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 3 1322 1805 +1226+105+22+23+16-5-1-5+6-9-3-4-10+0-3-1-4-8-3-8-5-5-5+19+11+3+11+8+0+8+6+0 encode_857x5167 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 4 1322 2701 +1332+108+26+2+2-1+2-3+7-1+0-1+4-2+1-11+2-6-3+1-5-1-3+0+2-11+2-6+2-7-2-1 encode_857x5167 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 5 1322 2449 +1702+81+50+16-5-10+1+2-1-8+5-5-5-5-11-11-12-7-7-4-11-11-12+8+5+3+3+7+7+7+7+8 encode_857xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 selected 857 275 +236+53+3+0+1+1+1+1-11+0+0-17+4+0-16-13+22+2+1+17+2+1-2-1-1-1-1-1-1-1-1-1 encode_857xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 0 857 278 +165+54+29+3+21-1-1-4+1-2-2+1+4+5+1-1+6+6+5+2+1-2-2-2-3+1+0-2-2-2-3+0 encode_857xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 1 857 279 +54+37+12+9+10-2+11+10-8+14+11-8+1+12-8-3+12-6-6-5-3-1+0-5-5-5-5-5-5-5-5+3 encode_857xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 2 857 634 +333+111+12+4+1+3-5-2+3-5-2+3-5-2+3-5-2+3-5-2+3-5-2+3-5-2+3-5-2+3-5-2 encode_857xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 3 857 656 +622+58+26+4+3-2+4-1-3+12+1+1-3+1-3+1-3+1-3+1-3+2+1-3+1-3+1-3+1-3+1-3 encode_857xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 4 857 1697 +124+38-7+0-7-6-14+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3 encode_857xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 5 857 955 +124+46+2+3+20+16+1-1+1-2-2-2-2+1-2-2+1-2-2+1-2-2+1-2-2+3-2+15+15+15-1+15 encode_857xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 selected 1714 178 +426+65+5-1+0+0+0+0+0+0+0+0+0+0+0+0+0-1+2+1+2+0+2+0+2+1+2+1+2+0+2+0 encode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 0 1714 376 +147+113+26+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 1 1714 339 +102+43+3+1+13+11-1+0+0+0+0+0+0+0+0+0+0+0-1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 2 1714 176 +46+37+6+1+1+0+0+1+0+1+0+0+0+0+0+0+0+0-1+1-1+0+0+1-1+1-1+1-1+1-1+1 encode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 3 1714 337 +159+29+2+1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 selected 239 140 +866+40+25+22+0-2-4-3+2+0-5+10-4-3+2-2+2-2+2-2+2-2+2-2+2-1+3+0-5+10-4-3 encode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 0 239 149 +139+64+39+19+3+0+1+0-1+3+0+1+0-1+3+0+1+0+1+1+0-4+0-4+0-4+0-4+0-4+0-4 encode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 1 239 138 +70+41+1+1-1+1+3+3-1+7+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2 encode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 2 239 534 +1795+44+8+16+3-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3 encode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 3 239 264 +1088+30+11-8-1+0+1-7+4+0+1-7+1-7+4+0+1-7+1-7+1-7+4+0+1-7+1-7+4+0+1-7 encode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 4 239 823 +99+32-19-4-10-4-10-4-10-4-10-4-10-4-10+15-6+14+9+8-2+8-2+8-2+8-2+8-2+8-2+8 encode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 5 239 309 +725+81+0+0+1+3-1+3-1+1-1+1-1+6+6-6-2-1-3+2+6-6-2-1-3+2+6-6-2-1-3+2 encode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 selected 1317 1144 +806+62+50+2+2+3+2-5+5-10-5+3+2-5+1-10-5-1+2-5+1-10-5+11+2-5+8+9-5+9-2-10 encode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 0 1317 1145 +59+34+47+35+14+16+14+16+14+13-1-1+1-3-6-10+1-3-6-10+1-3-6-10+1-3-6-10+1-3-6-10 encode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 1 1317 1192 +857+35-23+2+5+4+0-35-31+4+0-35-31+4+0-35-31-10+0+4+7+4-21+4+7+4+2+3-14+4+0+4 encode_953x2115 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 2 1317 2049 +564+150+49+47-2-2-3+7-14+10-10+4-14+10-10+4-14+10-10+4-14+10-10+4-14+10-10+4-14+10-10+4 encode_953x2115 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 3 1317 2391 +1521+112+77-2-10-17-12+21-7+6+6-1-2-19-19-19+19+18-8-19-19-14+15+23+27+16-11-7-19-19+19+18 encode_953x2115 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 4 1317 2980 +768+91+34+9-8+1-1-10-5+3-5+3+9+7+1-5-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3 encode_953x2115 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 5 1317 4296 +1782+80+45+15-7-1+12-7+0+1+6+5-8+0-12+3-4+8+0-3-10+1-7+0+2+3+9+0-9-3-10+0 encode_953x2115round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round selected 1317 1297 +972+67+21+0-5-3-3+3-3-1+4+0+0+5-5+0-3+3-2+5-5+0-3+3-3+1-5+3-5+0-3+6 encode_953x2115round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 0 1317 1315 +63+23+3+7+7+7+7+7+7+7+7+7+7+7+7+7+7+4-7-12-13-13-10-24-13-13-10-24-13-13-10-24 encode_953x2115round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 1 1317 1313 +931+77+32+49+18+15-7-4+2-20+20+13+13+13+15+25-20+0-11-5-7-4+2-20+0-11-11-11-11-11-11-11 encode_953x2115round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 2 1317 1611 +596+40+25+13+13+3+5+6-5+14+3+13-14-13+0-7-4-11+0-4-3-13+0-7-2-13+3+5-3-13+0-6 encode_953x2115round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 3 1317 1688 +685+112+5+1+1+12+12+12+12+12+12+0+0-5+0-7-10-6-6+2+2+1-1-3-1-3-1-3-1-3-1-3 encode_953x2115round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 4 1317 2076 +146+45+14+8+14+8+10+10+4+8+10+24+4+12-5-10-9-4+1-4-8-11-10+1-5-9-13-11+0-8-7-5 encode_953x2115round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 5 1317 2077 +148+68+9+6+1+0+2+0-6+0-2+2+2+4-6+2+2+4-6+2+2+4-6+2+2+14-17-15-19-18-23-8 encode_953x6343 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 selected 1505 904 +1964+71-4+7+3-8-9+5-11+2+11-5-1-8-9+10+9-8-9+10+9-8-9+9+29+6-1-10-11+4+4+0 encode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 0 1505 905 +1064+90+24+29-3-1+2-2-3+3-3-1+2-2-3-1+2-2+0-2-3-1+2-2-3-1+2+2-3-1+2-2 encode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 1 1505 901 +71+37+9+5+0-2-10-2-4+3-2+6-2-10-2-10-2-10-2-10-2-10-2-10+4+6+16+4+3+3+3+3 encode_953x6343 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 2 1505 2115 +1023+159+77+55-15-2+4-3-2+8+1-3-2-3-11+8-9+5-10-1+6-5-2-3-4+5+0+1+5-3-4+9 encode_953x6343 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 3 1505 2030 +1572+100+14+7+20-7+3-6-10+2-14-18+0+10-21-26-17-2+6+7-7+6-7-8-26-26-17+6+10+3+9+8 encode_953x6343 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 4 1505 3000 +992+107+26+11-2-10+5-7-5+33-6+36-2+1+0+3-8+1+13-6-7-10-10+11-7-12+12-12+6-7+4+4 encode_953x6343 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 5 1505 2748 +1477+74+55+40+7+8-3-12+1-3+3-1+1-2-10+8-1-4+1-2-7+3-1-4+1-2-7+4-7-2-2+3 encode_953xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 selected 953 310 +231+53-9-6-7-14-15-16-11-17-16-16-11-17-16-16+8+5+8+8+10+2+8+8+10+2+8+8+10+2+8+8 encode_953xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 0 953 301 +192+59+12+2-2-3-1-1+1+8-5+1-4-3+8-4+9-1+2-1-1-2+1+2-2+0-1+0+2-2+0-1 encode_953xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 1 953 310 +47+26-9-17-14-11-13+2-15-15+2-15-12+20-15-11-15+17+18+18+0+40+1+1+3+38+1+3-1+18+41+2 encode_953xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 2 953 712 +315+35-5+3-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 encode_953xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 3 953 729 +328+39+7+2-8-3+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4 encode_953xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 4 953 1881 +112+29-4+4+7-10-12+11+7-10-12+11+7-10-12+11+7-10-12+11+7-10-12+11+7-10-12+11+7-10-12+11 encode_953xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 5 953 1056 +131+72+11+25-2+0+14+0+14+0+19-4+21+18+15-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4+21 encode_953xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 selected 1906 190 +267+82+23+1-2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 0 1906 401 +342+56+21+1-2+1+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 encode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 1 1906 389 +82+23-15+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9 encode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 2 1906 188 +91+22+2-1+1+0+1+0+1+0+1+0+0+0+1+0+1+0+1+0+1+0+1+0+1+0+0+0+1+0+1+0 encode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 3 1906 386 +146+13-20-19-20-19-20-19-19-20-19-20-20-20-20-19+10+12+12+12+12+12+12+12+12+12+12+12+12+12+12+12 encode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 selected 254 140 +1014+39+3+1-4-3+1+2-4-3+3+1-1-3+4-5+5-5+5-5+5-5+5-5+1-5+5-5+5-5+5-5 encode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 0 254 150 +146+74+0-1-1-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 1 254 139 +58+40+27-2+0-2-4+2+5+0-2+3+0-2+3+0-2+3+0-2+3+0-2+3+0-2+3+0-2+3+0-2 encode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 2 254 578 +1817+50+15+17+0+1-4-1-2+1-4-1+1-3+1-1+1-3+1-1+1-3+1-1+1-3+1-1+1-3+1-1 encode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 3 254 274 +1599+77+22-4+1-2-5+0+1-2-5+0+1-2-5+0+1-2-5+0+1-2-5+0+5+1+1-2-5+0+1-2 encode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 4 254 920 +111+6+15+12+14+11+12+12+14+12+12+9+9+12+12+12-9-14-13-11-13-11-13-11-17-16-16-8-16-8-16-11 encode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 5 254 324 +463+76+27+19-7-2-8-2-1+0-8+0-7-4-4-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 selected 1423 1217 +1270+57+0+14+9+15+9+13-1+13-1-1-1-1-1-5-5-5-5-2+1+1+1+0-1-1+11-5-5-5-5-5 encode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 0 1423 1218 +135+47+29+28+11+32+4+28-4-5-10-1+4+5-18-1+4+5-18-1+4+5-7-3+1-3-4-14-13-7-9-5 encode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 1 1423 1275 +896+43+17+13+12-5+3-8+0-8+1+0-7-8+0-8+0-5+4-4+4-4+4-5-4+4-6+4-4+4-4+4 encode_1013x2393 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 2 1423 2139 +866+132+53+17+24+16+28+15+3-6-3+2-8-3+0-12-3+2-8+1-3+10-11-13-20+10-11-13-20+10-11-13 encode_1013x2393 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 3 1423 2558 +2116+67+37-3+2+1-16+0-7-6+3-3+9-1+16-2+2-1-17-2+14-4+7-4-17-2+6-4+7-9+3-11 encode_1013x2393 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 4 1423 3134 +536+134+49+39+11+14+15+1-3+1-3+1-3+1+6+0-5-1-5-4-1-5-3+0+1+12-2+1-5+1-5+1 encode_1013x2393 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 5 1423 4633 +1799+53+30+43+12-12-13-32-27+45-16-11-23-17-19-22-22-31-17-34-27-15-22-23-15+214+222+212+218+227+224+214 encode_1013x2393round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round selected 1423 1372 +658+39+13+17+18+5-2+0+0+0+0+0-2+0+0+0+0+0-2+0+0+0+0-2+0+0+0+0+0-2+0+0 encode_1013x2393round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 0 1423 1368 +100+63+18+21-4-1+2-1-4-1+2-1-4-1+2-1-4-1+2-1-4-1+2-1-4-1+2-1-4-1+2-1 encode_1013x2393round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 1 1423 1411 +1894+72+27+28+6+12-5+2-1+5+1+5-1+6-3-5-4+0-3-5+0-2+0-2+2-2+2-2-4-2-3-5 encode_1013x2393round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 2 1423 1724 +328+41+8+15-2+4-6+12-9+6+3+12-6+4-9+7-6+10-14+5-11+2-14+12-14-7-12-1-14-4-8+6 encode_1013x2393round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 3 1423 1782 +905+84+19+18+0+2-2+2-2+2-2+2-2+2-2-1-13+12+11+3+2-4+0-3-16-11+0-3-16-11-1-16 encode_1013x2393round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 4 1423 2200 +150+32-7+2+4-4+0+2+12-5+7+6+0+3-4-1+3-1+0-1-10+4-8+2-8-3-11+0-9-6+12-7 encode_1013x2393round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 5 1423 2190 +198+39-4+3+2+2+2+1+2+2+2+5+2+2+2+2+2+2+2+6+0-15-14-3-4-4-4-4-4-4-4-4 encode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 selected 1623 1015 +1020+105+51+42+51+19+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 0 1623 1028 +84+27-7+5-7+6+4+4+4+1+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+6-5-17-5-8+0+0 encode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 1 1623 993 +1560+72+18+12-7+5-5-3-8+6-1-3-8-6-5+9-2+6-1-3-8+6-1-3-8+6-1-3-8+6-4+11 encode_1013x7177 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 2 1623 2246 +804+153+42+17+23+0-6-3+1+8-2-4-4-2-6+9-5-6+4+6-6+4+6-6-6+6-4-2-6+9-5-6 encode_1013x7177 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 3 1623 2159 +1617+73+28+49+21-11-4+0-6-11-12-8-4-6-10-5-23+4-15-5-8+6-18+2-16+0-16+136+131+122+115+139 encode_1013x7177 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 4 1623 3169 +816+269+63+20+5+1-4-7-3+7+7+7+7+7+7+7+7+11-4-4-8-4-8-4-8-4-8-4-8-4-8-4 encode_1013x7177 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 5 1623 2944 +1414+88+21+28-2-2+4-11-12+745+9+1+0+2+7+6+9+8+4+2+0-6-8-2-6-4-5-16-11-8-11-17 encode_1013xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 selected 1013 305 +278+77-5-4-4-9-8-6-8-10-7-9-7-8-10-7-9+6+7+4+7+3+6+5+4+7+4+11+5+4+7+4 encode_1013xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 0 1013 304 +186+67+11+0+0-1+0+4+0+2+0+2-1-2+4-1-1+0-2+5+4+0+2+0+2-1-2+4-1-1-1-1 encode_1013xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 1 1013 303 +41+21+3-11-9-13-12-11-14-12-11-9-14-9-9-10-13+7+7+7+8+5+6+10+13+10+12+6+11+7+8+6 encode_1013xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 2 1013 735 +139+71+6+6+2-4-10+5+4-4-8+3+2-4-10+5+4-4-8+3+2-4-10+5+4-4-8+3+2-4-10+5 encode_1013xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 3 1013 768 +108+43+0+7+0-3-2+0-5-5-5-5-5-6-4+0-3-3+1-4+4+9-2+3-4+9-1+4+0+5+5+9 encode_1013xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 4 1013 1990 +206+59+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 5 1013 1116 +134+49+7+10+6+6+6+6-6-6-6-6-6-6-6-6-6-6-6-8+7+16-9-6+17-12-7-5+14+14+14+14 encode_1013xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 selected 2026 193 +424+27+2+0+3+0+0+0+38+0+0+0+0+2+2+0+0+0+0+0+0+0+2+2+13+0+0+0+0+0+0+0 encode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 0 2026 424 +247+76+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 1 2026 400 +67+14-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4 encode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 2 2026 194 +39+22+2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+12+0+0+0+0+0+0+0 encode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 3 2026 384 +117+21+17+0-1+0-1+0-1+0+0-1+0-1+0-1+0+0-1+0-1+0-1+0+0-1+0-1+0-1+0+0 encode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 selected 320 200 +429+43+35+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 0 320 213 +136+32+24+3-2+0+0-4+0+0+0-4+0+0+0-4+0+0+0-4+0+0+0-4+0+0+0-4+0+0+0-4 encode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 1 320 201 +50+38+22-1-1+0+0+0+1+0+0+1+1+0+0+1+1+0+0+1+1+0+0+1+1+0+0+1+1+0+0+1 encode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 2 320 708 +3410+76+68+17+21+3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 3 320 328 +1896+43+36+21-17+18+10-5-3+4+1-6-3+4+1-6-3+4+1-6-3+4+1-6-3+4+1-6-3+4+1-6 encode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 4 320 1139 +209+25+22+22-21+24+14+27+22+22+22+22+22+22+22+26-12-14-16-18-20-18-20-18-20-14-15-19-16-18-20-18 encode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 5 320 393 +378+109-4-2-3+2+10+0+0+2-2-4-5-5+8+1+1-2-5+7-5+7-5+7-5+7-5+7-5+7-5+7 encode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 selected 1815 1444 +1102+93+15+24+9+28+20-3+8+1+6-11-3-8+6-11-3-8+6-11-3-8+6-11-3-8+6-11-3-8+6-11 encode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 0 1815 1440 +117+34+7-1+4+1+1+1-3+2-4-7-7+2-2+1+3-7+1+2+4+5-4-6-7+1-2-9+2+1-8+0 encode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 1 1815 1540 +1895+58+10-2-22-24-29-20-19-22+19+17+1+6+0+2-1-5-2+4+3-3+3+1-2+1+1+6+0+2-1-5 encode_1277x2627 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 2 1815 2635 +854+170+82+38+31+60+28+25+2+14-21-13-8+14-21-13-8+14-21-13-8+14-21-13-8+14-21-13-8+14-21-13 encode_1277x2627 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 3 1815 3203 +1657+79+51-48-24-7-9-36-26-5-3+8+12+24+1-18-6+22-15-17+28+1+0+24-4-15-17+28+1+0+24-4 encode_1277x2627 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 4 1815 3953 +1127+87+35+20+3-3+3+3+2-8+1+2-8+2-8+2-8+2-8+2-8-12+4-3+1-3+1-3+1-3+1-3 encode_1277x2627 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 5 1815 5954 +1887+76+36+18+5-11-4-5+6-5+0+2+16-7+4-6+4-6+4-10+5-11+5-13+9-11+8-10+8-9-3-8 encode_1277x2627round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round selected 1815 1646 +771+54+30+1+3+13+9-1+0-3-1+7+0+0-2+0+0-2+0+0+0+0+0+0-2-2-4-2-2+0+0-2 encode_1277x2627round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 0 1815 1662 +98-7+5-1-5-2+0+0+1+10-4+10+3+3+9-2+1+10+7-1-4-2+9+6-4-5-7-3-4-2-4-13 encode_1277x2627round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 1 1815 1713 +1258+98+35+16-6+0-1+0-3+1+9+1-3+6-13-2+9-3+1-6-1-17+4+1-5+9-3+6-13-2+9-3 encode_1277x2627round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 2 1815 2012 +550+55+18+29-12-11+1+7-18-9+6-21-1+14+6+15-17+9-11-19-13-9+7+9-11+4-2-6+6+15-17+9 encode_1277x2627round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 3 1815 2167 +835+101+19+4-5-6+6-3-7-2+11-8+7+2+9-10+8-8+8-7+8-1+3-1-9-1-13-6-5-7-9+10 encode_1277x2627round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 4 1815 2627 +194+39+3+10+1-6+0-13-9-6+0-4+1+0+1+9-8+12-4+2-8-5-9-7+0+15-3+7+1+9-8+12 encode_1277x2627round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 5 1815 2717 +193+40+3-9-12-5-13-8-11-1+9+7+1-1-5+2-5-2+3-7+7+11+5+9+9+7+1-1-5+2-5-2 encode_1277x7879 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 selected 2067 1133 +1878+84+45+0-8-6-12+2-9+6+6-3+7+2-6+6+17+2+6+13+2-9+0+2-9-3-9-9-3-9-4+0 encode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 0 2067 1151 +814+71+36+20+16+14+10-2+4-6+0+0+7-3-1-1-1-4-5-6+0+0+3-3-1-1-1-3-1-3-1-3 encode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 1 2067 1134 +162+56+6+4+4+2-2+6+5-6-5-9+4-6-13+6+5-17-2-9+4-6-13+6+5-17-2-9+4-7-10+8 encode_1277x7879 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 2 2067 2794 +1041+109+3+36+8+17+20+2+23-12-13+21-28-28-17-4-29+0+8+12+0-3-4-4-17+0+8-14-6-5-4-5 encode_1277x7879 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 3 2067 2762 +1438+86+41+7+14-7-17-9+9+5-20+0-16+6-6+18+15+15-15-5-6-6-8-8-6-6+2-6-5+3+19+15 encode_1277x7879 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 4 2067 3974 +489+94+28-4-4+10+2+8+4-1-5+2-1+2-12+0-12+0+0+5+3+3-4-1-5+2-1+2-12+0-12+0 encode_1277x7879 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 5 2067 3737 +1206+92+40-3+5+15-2-13+8-5-6+7-2-5-2+7-2-5-2+7-2-5-2+7-2-5-2+7-2-5-2+7 encode_1277xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 selected 1277 363 +258+106-5-16-9-9-9-9-9-9-9-9-9-9-9-9+7+2+5+5+5+5+5+6+7+7+7+6+7+7+7+8 encode_1277xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 0 1277 375 +207+72+52+15+16+3+3+3+3+5+14+2-1-4-5-5-5-6-5+1+0-4-6+6-6-4-5+3-3+1-1-4 encode_1277xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 1 1277 368 +35+23+2+2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+4+4+5-2-2-2-3-2+0+0+0 encode_1277xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 2 1277 910 +351+94+13+20+9+14+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 3 1277 963 +416+40+6+2-1-2+6+12+0-2+1-2+4-1-3-1+0-3-4-1+8-3+2-4+4-2-3+4+0-2-5-2 encode_1277xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 4 1277 2527 +139+39-17-5-3-3-3-3+6+10+6-2+5+16-4-3-3+16-4-3-3-3+6+10+6-2+5+16-4-3-3+16 encode_1277xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 5 1277 1407 +137+47+19+15+18+3+3+15+1+13-10-6+11-9-10-12-8-7+1-5-15+15+15+1-6+12-7-13-7+1-5-15 encode_1277xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 selected 2554 236 +460+120+17-3+0+3-1-5+1+3-1-4+0+3-2+0-1+3-2+0-1+3-2+0-1+3-2+0-1+3-2+0 encode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 0 2554 526 +247+123+17+9+0-1+4+4+4+5+5+3-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 encode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 1 2554 494 +75+37+18-1+7-1-2+5-1-1+5-6+23-2+0-2-2-1+0+0-4+26-6+26-6+26-1-1+0+0+1-2 encode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 2 2554 234 +41+27+4+2+2+2+0-2+1-2+0-1+2-2+1-2+1-2+1+2+1-2+0-1+0-3+0-2+1-2+1-2 encode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 3 2554 501 +170+59+1+1-1-1+2-2+0+0+0+2+1-5+0+0+1-1+1-5+0+0+1+0-5+0+0+1-1+1-5+0 encode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 selected 2 49 +194+43+21+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 0 2 47 +43+36+36+21+20+20+20-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 1 2 49 +93+41+18-5-5+0+1+1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1 encode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 2 2 47 +32+41+17-3+2-3+3-2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 3 2 49 +30+18+15+15+15+33-4+3-3-4-5-1-5+2-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1 sort_int32 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 selected 0 58 +1080+72+29+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 1 58 +28+28-1+1+0+0+22-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 2 63 +87+51+45-1-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 4 73 +92+51+26+0+0+4-1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0-4+1+0 sort_int32 selected 7 111 +64+77+6+6-3+2+1+0+1+3+3-1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 11 165 +4197+89+20+1+1+0+0+0+1+0+0+0+0+0+0+0+0+0+0-1+0+0+1+0+0+0+0+0+0+0+0+0 sort_int32 selected 17 275 +355+57+52-2+0+0+0+0+0+0+0+4+2+0+0+0+0+0+0+0+0-1+0+0+6+0+0+0+0+0+0+0 sort_int32 selected 26 274 +18+3+3-1-1-1+5+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4 sort_int32 selected 40 393 +2814+222+13+8+4+3-1-1+0+1+4+1+1+1+1+1-1-1-1-1-1-1-1-1-1+6-2-3-5-5-5-5 sort_int32 selected 61 402 +91+61+47+36+3+1+1-5-5-17-16-15-8-3+3+1+0+0+0+0+0+0+0+0+0+0+0+0+5-3+3+1 sort_int32 selected 92 760 +1915+233+26+6+28+37+60+56+19-5+27-7-5-7-5-7-5-7-5-7-5-7-5-7-5-1-2-18+15-5-11+12 sort_int32 selected 139 1562 +2444+320+119+101+92+187+97-2-8+0-10+4-10+4-10+4-10+4-10+4-10+4-10+4-10+4-10+4-10+0-10+0 sort_int32 selected 209 1654 +484+120-77-32+14-6-4-2-4-2-4-2-4-2-4-2+5+1+2+0+2+0+2+0+2+0+2+0+2+0+2+0 sort_int32 selected 314 2637 +2453+295+128-78-2-14+32+63-113+46+61-24+26+121-37+6+1+34+26+9+48-21-52-22-21-27-66+3-32-5-68-70 sort_int32 selected 472 3983 +1034+504+27-176+96+110-39-5+154-139-57-38+78-96-57+10+2+21+58+19+19-128-46-19-8-136-41+40-13+22+99-1 sort_int32 selected 709 6195 +3181+1217+184+167-52-26+15+90+45+15+30-101+8-31-48-148+46+106-10-7-168+22-30-10-7-168+22-30-10-7-168+22 sort_int32 selected 1064 9749 +3048+1184+659+390+44-15-48+5-19-73+3+7+3+1-19-73+3+7+3+1-19-73+3+7+3+1-19-73+3+7+3+1 sort_int32 selected 1597 14722 +2231+635+166+141+37+206+119-23-30-101+60-50-45+11-5+11-5+11-5+11-20-34-63+11-5+11-5+11-5-5-51-41 sort_int32 selected 2396 23115 +3830+958+467+268-9+304+52+120+42+39-10+220-111-168-14-155-90+45+12-23-25-83-17-61-113-17-93-15-99+35+11+12 sort_int32 selected 3595 35954 +2609+1099+631+584+470-18+106+70-2+67-62+188-149-87+51-143+73-131-79+44-39-26-99-88+52-52+7-140-85+39-123+31 sort_int32 selected 5393 54103 +3792+618+489+328+2+66+62+263+69+182+40-75+43-203+73-94+906+516+89-142+18-222-50-92-13-212-107-196-68-172-63-129 sort_int32 selected 8090 89771 +3534+1210+765+722+3+68-82+43+66+13-67-156+134+195+3038+35-34-143-33-21-103-159+28-105-93-20+39+10-52-151+124-101 sort_int32 selected 12136 152801 +3358+651+915-33+81+229+229+147-8+185+163-170+155-399-158-83-236+35+136+172-747-240-212-369-482-347-511+166+215-264-14+33 sort_int32 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 0 0 57 +189+49+1+1-2-2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 1 57 +47+1+1+2+5+5+5-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 2 61 +86+44+1+3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_int32 0 4 69 +88+56+30+9+3+0+1-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 7 111 +91+74+26+16+1+1+0+0-3+0-2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 sort_int32 0 11 165 +154+107+0+0+1+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0 sort_int32 0 17 272 +136+64-1+2+0+1+5+0+0+0+2+2+2+2+2+2+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0 sort_int32 0 26 278 +7+3+0+0-3-5-5-1+0+0+0+0+0+0-5-1+0+0+0+0+0+0+0-5-1+0+0+0+0+0+0+0 sort_int32 0 40 390 +525+98+36+1-7-17-19-17-19-17-16-19-17+3+9+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+9 sort_int32 0 61 402 +90+108+39+14+4-1-1-3-2-6-10-15-13-7+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_int32 0 92 773 +530+125+36+15+11+3+22+16+14+18+48+38-31+7-21-31+6-18-23+6-16-27+6-18-23+6-16-27+6-18-23+6 sort_int32 0 139 1623 +764+166-47-8+76-57+20+23-46+22+0-49+20+4-45+15+1-49+20+4-45+15+1-49+20+4-45+15+1-49+20+4 sort_int32 0 209 1648 +568+158+20-54-4-5-3+1-3+1-3+1-3+1-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 314 2601 +918+212-110+4-51-5+131-3-10+190-8-45-37-35-101+111-33+30+147+49+45-72+11-46+6+63-69+40-146-40+95-9 sort_int32 0 472 3969 +979+276+9+48+122-95-77-20-52-68+104-154-68+68+0-48+16-5-83-64-79+42+52-23-112-33+97+143+35+172+1+35 sort_int32 0 709 6116 +1642+749+28+181+34+170+146-14+130-24+133-59+38-90-69+7+65-29-38-87-58+90-61-49-105+37-102-59-42-56+95+17 sort_int32 0 1064 9804 +1257+468+200-31+64-20+49-12-10-24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 1597 14721 +1704+381+244+109-34+12+58+83+24+18+73-10+32-50-68-62-63-30+30-24+31-34+14-96-24-96-7-30+31-35+31-34 sort_int32 0 2396 23189 +2118+759+557+216+68+342+150+66+271-26+19+55-84-46+16+104+0-102-78-21-132+10-50-8-44-6-78-126-60-4-64-28 sort_int32 0 3595 36142 +1968+804+442+69+57+234-71+117+89+38+66+95-69-143-105-36-161+39+47-57+17-123-21+148-49-130-169-115-97+271-137-25 sort_int32 0 5393 54216 +3165+476+121+264-24-64-106+0+42+330+99-94+109+33-48+184-152-28-281-21+28-32-17-15-49+27-77-65+86-86-127+75 sort_int32 0 8090 89635 +3355+1385+628+574+343+163+436-36-17+250-52+169-193-198+82-82+71-18-153+98-63-84-3-60-107-146-60-111-108-84-82+143 sort_int32 0 12136 152888 +2045+275+591-85-173-140-98-281-102+65+13+614-6-37+99+282-164+2+291+155+253-134+165-312-17-330-160+111-64-442-61+261 sort_int32 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 1 0 57 +1231+79+48+19+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 1 58 +98+1+0+0+0+6+3-3-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 2 62 +117+73+65+25+1+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 sort_int32 1 4 89 +327+51-1+1-1+1+1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 sort_int32 1 7 156 +46+106+0+1+71-1+4+1+1+2+2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_int32 1 11 165 +1237+89+1+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1 sort_int32 1 17 279 +513+147+17+5+0+0+0+0+42+0+0+0+0+0+0+0+39+0+0+0+0+0+0+0+33+0+0+0+0+0+0+0 sort_int32 1 26 285 +70-6-5-2-5-1-2+0+0+0+0+0+0+0+0+0+0+0+0+0-7+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 40 396 +2257+150+21+4+1-7+11-8+74+5-16+8+4-16+8+4-16+22+10-10+2-5-12+5-8-10+2-5-12+5-8-10 sort_int32 1 61 401 +65+69+15+3-4-3-3-3-3-1-1+8-3+2-3-4+2+6-2+1+1-4+4+1-4+4+1-4+4+1-4+4 sort_int32 1 92 787 +2291+417+57+23+15+1-11+8+9-1-17-6+2+5-17-6+2+5-17-6+2+5-17-6+2+1-17-6+2+1-17-6 sort_int32 1 139 1562 +1487+553+174+42+41+42+57-9-10-10-10-10-10-10-10+12-1+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0 sort_int32 1 209 1583 +658+188+61+55+47+63+54+43+41+72-15-18-14-18-14-15-14-13-13-12-14-12-14-12+5-3-3-3-3-3-3-3 sort_int32 1 314 2554 +2609+493-9-15+44-28-18-17+54-29-24-23-35-48-2+110-47+25+23+10+5-25-19+3+41-2+19-1-23+31+27+18 sort_int32 1 472 3947 +1205+538-79-29+28-3+19-3+9+5-7+1-7+5+1+3+7+9+7+81-73+10+40-12-6-16-6-24-28-34+13-33 sort_int32 1 709 6579 +3161+953+425-106+85+23+170+53-53-110+74+63-28-109+71+66+2-135-120+5+45-47-93-5+19-33-80-28+45-47-93-19 sort_int32 1 1064 9566 +2872+1132+661+435+306+223+394+70-17+40-61-36-54-44-42-34-50+702+803+73-69-28-61-155-104-60-37-5-100-47-74-17 sort_int32 1 1597 14976 +2445+574+130+327-17+199+30+197-51+133+51-51+43+49+70+58+71+15+38+125-111-40-154-74-184-93-207-100-246-106-246-106 sort_int32 1 2396 23266 +3982+1370+248+326+207+82+130+96+90+160-86-30-22-76-43-1-61-55-1-17-47+7-23-17-47+7-23-17-47+7-23-17 sort_int32 1 3595 36643 +2884+1056+404+171+396+26-53+49-35-53+12+52+43+27-39-185-12-93-97+24-5+65+17-21+19-113-48-6-73-35-73+25 sort_int32 1 5393 56594 +4322+1708+1154+1168+390-12+48-134-40-162-64+656-58+74+68-192+438-170-116-30-76-94+660-210-296+176-292-256+210-330-266+212 sort_int32 1 8090 93841 +3634+1722+849+619+30-43+35+108+178-123+117-90+94-206-70+430-141-16-252-226-95-42-134-137+109+166-111-14+77+93-126-63 sort_int32 1 12136 153413 +4401+1677+631+379+400+55+234-230+332+29-402+229-52-209-37-241-331+25-470+171-218-134+213-130-486-34+35-48+107-341+464-344 sort_int32 2 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 2 0 50 +317+50+29+0-5+1-4+0-5+1-4-4-1+1+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3 sort_int32 2 1 51 +61+26+0-1+2-1-2-2+0+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 sort_int32 2 2 65 +588+141+10+13+8-1-1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_int32 2 4 102 +391+153+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 7 172 +559+155+65+0+2+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 11 291 +881+351+77+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+35+0 sort_int32 2 17 514 +1294+716+218+115+23+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 26 844 +1639+661+280+213+105+16+1+1+1+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+9-2-2-2-2-2-2 sort_int32 2 40 1446 +1864+686+355+232+71+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 61 2419 +1994+558+328+199+114+94+103+83-4+4-1-6+0-1+1-1-1+1-1-2+2-1-6-14-22-5-14-22+2-17-22+0 sort_int32 2 92 4227 +2795+1163+399+214+95+95+103+51-8-5+3-5-18-8-27-7-27-7-27-15-25+3-2+10+12-32+12-18-29+33-5-11 sort_int32 2 139 7305 +3587+1328+454+213+93+21+1+8+11+29+45+16-30-26-15-7-15-15-17-17-1-9+59-25+59+2-40-4-42-19-15-11 sort_int32 2 209 12522 +3832+1657+663+506+76+103+5+41+28-73-72-13-28-61-52-7-15-50-10+12-30-6+15-25+17-23+17+3+14-10+13-7 sort_int32 2 314 21213 +4134+1769+700+576+364+210+69+82+54-33-17-9-45-7-17+15-19-15-19-45-2-22+8-44+1+18+3+20-35-14-13-23 sort_int32 2 472 35184 +1841+546+380+326+88+94+48+132+50-72-104+40-54-146+58-74+54-8-60+66-64-68+34-134-24-6-20+8-64-66+10-100 sort_int32 2 709 59856 +5068+2198+1209+557+268+210+338+257+22+76-52-58+98+86-100-166-248-62-70-128-124+22-92-64-28-15-102-10+26+10+11-63 sort_int32 2 1064 98074 +4492+2297+1292+649+331-320+57-67+145-84+63-26+137-165+52-70+93-79+82-119-67+92-99-254+34-59-63-164+106-72+33-94 sort_int32 2 1597 167367 +1791+1103+621+646+76+86-32+162-52-118-279-257-184-36+142-84-90+40-144-281-385-154-42-14-45-49+71+140+726+133+22+8 sort_int32 2 2396 275656 +3517+1174+561+550-191-266-115+168+378+6-137+44-415+142+266-380-170+54+93-450+62-99-499+199-81-129+284-90-81-478+314-30 sort_int32 2 3595 458950 +4895+2104+1610+1215+1192+1124+998+814+1433+410-169-219-370-89-283-320-63-579-379-579-342-80+248+25-315-53-215-428+72-224+141-395 sort_int32 2 5393 794727 +4359+19-183-129-954-831-1541-2218-2607-2292-2748-621-1145-1366-1268-1449-1067-1394-2121-1894+601+1986+2479+1974+2267+3457+2161+3129+2217+2275+2651+2555 sort_int32 2 8090 1313545 +3399+2046+1984+248-565-35+147-1447-1413-1363-2109-1219-1977+1041-464-41-2633-1097-1389-1899-1671-2825-1903-995+6529+4368+4105+3107+5115+4227+4601+4569 sort_int32 2 12136 2293261 +5185+2916+3514+986+617+1377+179-2022-4300-4170-3637-2874-3368-2664-4102-689-3782-3254-2322+3111+1867+103+1162-24+714+3684+1937+498+253+1053+772+3379 sort_int32 3 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 3 0 51 +322+67-3-2-2-2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 1 51 +58+32-3-3-3-3-2-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 2 62 +192+134+3+3+0+0-2-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_int32 3 4 95 +242+121+5+2+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 7 156 +526+232+98+19+1-1-1-1-2+0+1-1-2+0+1-1-2+0+1-1-2+0+1-1-2+0+1-1-2+0+1-1 sort_int32 3 11 272 +821+296+90+6+2-1-2-2-2-2-2-2-2-2-2-2-2-2-2+1+2+0+0+1+0+1+0+1+0+1+0+1 sort_int32 3 17 480 +1302+559+219+64+62-1-2-2-2-2-2-2-2-2-2+0+0-1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 sort_int32 3 26 828 +1692+553+168+111+137+72+19+4-1+4+3+0-1+3-1+3-1-1-1+4+3+0-1-16-13-18-17-16-13-18-17-16 sort_int32 3 40 1408 +1982+952+172+61+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+3+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 61 2384 +2074+443+162+82+51+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 92 4215 +2606+908+219+88+103+49+21+53+18-3-1-1+1-2-2-3-1+3-3-4+3-4-4-4-4-4-4-4-4-4-4-4 sort_int32 3 139 7407 +3599+1557+563+299+156+89+83+57+65+114+64+52+8+29-26+8-63-65-67-61-66-46-45-55-49-58-24-27-34-24-21-33 sort_int32 3 209 12570 +3715+1761+900+680+466+364+277+79+2+37+53-1+35-32-18-65-1-44-26-48-44+0-30-14-73-98+73-24-54-36-67-23 sort_int32 3 314 21421 +3863+2193+1062+629+373+243+105+22+66+13+13-13+36-28+5+15-1+51+1-29-9+10-54-39-105-97-96-128-89-83-97-97 sort_int32 3 472 35292 +1167+697+301+440+260+148+208+98+269+67+58+24+120+4-2-21+29+20-100-68-74-112-89-93-108-84-72-86-104-91-55-52 sort_int32 3 709 59996 +5118+3029+1829+1109+542+426+510+270+274+143-7+0-76+50-114+66-79-33-38-80-22-178-40-123-61-64-100-56-182-52-115-103 sort_int32 3 1064 98572 +4037+2007+1614+942+448+210+182+86+160-28+114+28-72-212+75-97-32-99-3-102-11-239-12-171-49-108+12-68-42-78+30-24 sort_int32 3 1597 165576 +1864+1196+1002+1226+1324+259+116-34-66+158-12-6-101-221-64-12-102-126+92+64+58-93-61-17+43-108-4-8+316-184-236-114 sort_int32 3 2396 279113 +3264+1808+2203+1539+391-56+138+205+270-436+267+206-116-57-95-21-149-45-23-275-109+23-179-7-367-163+181-61-69-93+92-184 sort_int32 3 3595 468175 +3687+2091+786+373+351+414-188+190+217-21-592-351-220-223-348+310+124+30-177-450-230-200-206-67-135-137+187+259-131+659+126-73 sort_int32 3 5393 812131 +5940+3381+1671+453+65+283-70-116+805-311-96+931-395-848+978+327-582-703+477-604+1015-189+163+15-155-515+57-282-406-4911+255-4771 sort_int32 3 8090 1341043 -3161-4335-5435-4965-5951-5807-5833-5729-5545+8293+7198+6503+6503+5653+6165+5807+6161+6059+6995+6041-3223-6271-7084-6541-4691-5889-5301-6839+8271+8809+8315+8461 sort_int32 3 12136 2337322 +5770+3331+3888+2998-10971-12471+3420+1243+3546+2903+535+159-1916-1594-86+448-1991+868-1358-70+386-369+1467-339-1173-1055-21-826-281-1073+473-1825 sort_int32 4 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 4 0 51 +131+46+25+2-4+0+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4 sort_int32 4 1 50 +57+27+0-5+2-4+3-3+1+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3 sort_int32 4 2 65 +479+71+10+8+64-1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 4 101 +459+110+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 7 172 +560+124+26+2+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 11 291 +801+335+102+0-3-3-3-3-3-3-3-3-3-3-3-3+3+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 sort_int32 4 17 487 +1503+671+276+142+125+53+3+0+0-1+0-1-1+1+2+0+0-1+0-1-1+1+2+0+0-1+0-1-1+1+2+0 sort_int32 4 26 790 +1585+670+327+56-2-1-2-2-2-2-2-2-2-2-2-2+5+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 sort_int32 4 40 1406 +2036+608+177+44+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 61 2333 +2221+555+258+113+46+1+1+1-1-1-1-1+3+3+3+3+1-20-8+13-15-16+3-14-15+5-7-16+3+11-6-15 sort_int32 4 92 4154 +2779+1144+204+53+35-9-18-14-14-14-14-24-3-19-18+24-18+22+9+20+10+16-7-25+15+1-7-25+6+35-3-1 sort_int32 4 139 7231 +3719+1520+385+115+96-32+11+87+26-12+3+33+24-13+2-2+84+13+13-53-13-33+20-19-5-27-74-21-38-45-54-83 sort_int32 4 209 12353 +3386+1452+587+423+227+45-2+32+33-19+17-54+30+3-41-69-21-69+24-22-9+33-37-43-49+4-8-42+50-8-24-69 sort_int32 4 314 21073 +3935+1626+806+555+255+141+45+35-11+3+79+31+31-36+40+5+11-91-93+14+17-88-117-105+21-50-92-87-58-76+7-63 sort_int32 4 472 34810 +2161+824+1018+485+974+307+162+86+145-16-150-52+76+58+148-53-107-88-172-120-70+98-207+1-78-180-34+18-55-270-115-42 sort_int32 4 709 59577 +5123+2203+1110+676+319+365+81+187+21+57-95-123+13-35+147-193-35-117-125+61-153+119-203-9-159-111+17-47+113-193-35-131 sort_int32 4 1064 97924 +4998+2306+1327+532+537+184+126-112+472-318-100-65+43-128-53-276+148+47+174-338+110-173-177-44-55-203+207+8-107-108-6-264 sort_int32 4 1597 163507 +2804+674+650+485+141-30-49-200-326-173+127-375-197-93-55-375-219+121+199-81-171+145+171-65-171+105+177+15-201+123+285-67 sort_int32 4 2396 276020 +3357+1889+1456+573+317-12-68+903+181+199+97+264-11-265-329-44+51-115+121-267-405+36-300-260+10+157+40-111-200-133-208-204 sort_int32 4 3595 459259 +4700+1483+1205+1023+1290+958+855+781+541+496+699+1155+1005+579+798-156-471-943-644-611-709-261-1416-1558-1186-992-547-945-668-966-679-989 sort_int32 4 5393 793610 +6953+4915+2229+791+314+1131+494+596-178+877-356-442-598+306+776-32-1146+439+131-346+214-374-454+962+293-2097-1951-2141-2101-876-2720-2308 sort_int32 4 8090 1313002 +6303+1812+1118+1558+992+1743+349+598-244-614+734+162+318+858-600+1403+99-196-786-1084-374-556-1304-944-858-1586+1768-269-342-1036-564+34 sort_int32 4 12136 2292030 +5511+763+1563+605-592-2982+1175+1024+1863-25-521-1710-805+534+548-1105-494-850+1280+2141+1566-925-830-776-3207-3176+1103-783-482-82-13+1401 sort_int32 5 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 5 0 51 +357+65+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 1 51 +59-3-2-2-2-2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 2 61 +150+88+3+4-2-2+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 4 94 +274+124+46+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 7 155 +471+206+45+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1 sort_int32 5 11 270 +798+398+164+3+2-2-1-1+0+0+0+0+0+0+0+0+0+0+0+3-1-1+0+0-1-1+0+0-1-1+0+0 sort_int32 5 17 472 +1347+694+208+76+19-4-4-4-4-4-4-4-4-4-4-4-4+3+1+1+0+1+1+0+1+1+0+1+1+0+1+1 sort_int32 5 26 790 +1557+683+257+215+210+190+104-1+1-1-1-1+1-1-1-1+0-1+1-1+1-1+5+0+0-1+1-1+1-1+1-1 sort_int32 5 40 1402 +1870+801+423+221+177+88+57+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0+0+2+0+0+2+0+0+2+0+0 sort_int32 5 61 2388 +1971+539+272+166+184+128+82+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 92 4214 +2731+1012+63+36+44+16+44+15+45+15+47+18-6-6-6-6-6-6-6-6+0-6-6-6-6-6-6-6-6-6-6-6 sort_int32 5 139 7352 +3653+1478+566+336+194+83+120+92+51+50+26+22-24-8+6-32-8-22-24-23-21-24-24-22-6-16-24-8-18-24-8-46 sort_int32 5 209 12510 +3861+1526+738+541+469+180+71+62+22+60+29+55+29+45+14+16+2+14-92-70-56-58-44-55-73-39-55-60-52-84-48-62 sort_int32 5 314 21416 +4663+2317+1230+785+437+312+374+165+142+108+52+36+31+19+8-43-63-64-42-69-48-58-59-68-22-70-55-45-46-43-63-64 sort_int32 5 472 35268 +1553+894+637+251+181+78-10+20+32+46-24+106-26+139-71-41-55-37-49+16-44-18+4-24-28+82-44+18-68-55-55-11 sort_int32 5 709 59933 +5237+2730+1489+897+742+623+409+253+94+49+50+29-25-57-13-58-25-8+23-17-97-14-41-85-98+6-26-101-67-30-67-52 sort_int32 5 1064 98499 +4433+1858+1044+595+522+242+88+34+10-84+95+30+10-105-2+82+10-12-172-222-1-121-89-29-17-149-77+21-87+117-63-101 sort_int32 5 1597 165352 +1734+744+923+690+523+332+263+28+233-72-295-267-130+76+147+111-18-198+58-108-204+86-162+515-224-289-445-212+0+19-65-273 sort_int32 5 2396 278763 +2895+2425+1350+1348+118+29+245+263-107-153+437+133+687+297+240+90-99+18-286-233-398-556-511-353-177-387+73-249-9-83-465-91 sort_int32 5 3595 465708 +4246+1879+719+351+252+152+1176-7+161+277-298-383+239+229+207-321-35+54-308-12-93-104-262+48-595-314-850-592-84-21-123-115 sort_int32 5 5393 805059 +4037+1052-303-883-734-681-1546+2492+2691-892+2767-2217+1077+1135-1999+2349-2431-1426-1078-2228+1335+1742+1990+2124-2024-2148+1499+1495-2283-1563+1515-2271 sort_int32 5 8090 1342840 +629+1554+1645+682+630-348-324-1066-124-676-1256+686+2170+635+582-56-672-700+126+876+486-1122-11+945-1326-310+654-334-672-550-356-976 sort_int32 5 12136 2324394 +4398+3244+1222-13161-11727-11078+1209+1853+1073+1998+2039+3970+1730+1543+719+599+1288+1469+1252-13931-12910-15218-13477-13609-12363+1505-892-409-218+343+374+1711 sort_uint32 selected implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 selected 0 64 +521+59+5+4+2+0+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 1 70 +356+53+9+7+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 2 78 +103+74+5+1-1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1 sort_uint32 selected 4 98 +215+96+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 7 144 +173+50+0+3-2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_uint32 selected 11 205 +646+96+2+0+1-1+0-1+0+0+0+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1 sort_uint32 selected 17 324 +442+76+1+0+2+3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+0+0+1-1+1-1+1-1+1-1 sort_uint32 selected 26 346 +198+55+4+3+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+0+0+0+0+0+0+0+0+0 sort_uint32 selected 40 434 +1295+173+2+0+4+2+0-3-2-4+1+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0 sort_uint32 selected 61 518 +236+54+36+13+4-5-6+3+0-3-5-3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 92 906 +1459+133-1-4+5+14+24+8+4-14+17-3-14-2+19-5-16+0-2+2-2+2-2+2-2+2-2+2-2+2-2+2 sort_uint32 selected 139 1724 +1645+554+79-20-68+11-54-34+56+0-24-11-39+81+36-61+74+54-52+27-88-18+49+0+9-7+18-27-63-22-18+56 sort_uint32 selected 209 1782 +758+224+2-22-46-20-18+33-47+106-77-99-56+33-29+70-34-45+7+63-55+67-55+67-35+53-32+157-24+65-47+97 sort_uint32 selected 314 2848 +1894+279+64-37-87+47-25-40+15+83-84-6+4+0+20-28-20-10+30-62+49+39+20-32+2-35-19-6+30-27+37-16 sort_uint32 selected 472 4260 +1388+469-96+6-38+14-7+39+57+48+29-113-9+45-54-109-56+11-58+56+48+2+40+18+1-41-157-97-54+11-22+100 sort_uint32 selected 709 6465 +2872+1220+172+7+136+117+40+65+114-100+25-56+24+16-86-51-70+85-94-78-12-22+59+10-33-9-69-39-26-47-30+35 sort_uint32 selected 1064 10100 +3017+1278+653+253+96+30-1-67+4+35-19-28+89-25-104+49-59-74-32+31+43-106-74-32+40+125-5-87+37-26-73-76 sort_uint32 selected 1597 15168 +2658+823+228+94+3+336+232-31+213+106+42-108+24-108+36-108+28-108+36-108+24-108+36-108+28-108+36-108+24-108+36-108 sort_uint32 selected 2396 24062 +3372+912+308+88+89+108-7-20+5-18+24-22+77+64+20-18-47-3+5-20-26-49+50+8-72+4-89-53-45-18+2-31 sort_uint32 selected 3595 37248 +2835+893+495+244+170+71+139+180+177-222+41-66+124-18+138+4+94-143+129-88-26+0-29-205-190-270-120-318-138-312-118-274 sort_uint32 selected 5393 55643 +3990+1252+678+718-3+151+99+74+35+24-47+798-60+0-27-166-175+293-179-110-92-160-70-12-90-58+1785+117+82-122-58-168 sort_uint32 selected 8090 91996 +3870+1912+815+578+220+408-88+22+33+34+162-44+0-41-9+46+32-36+85+71-51-27-10-66-84-18-65-40-80-67-85-18 sort_uint32 selected 12136 162961 +3040+1530+415+292+476+491-9-353+89-239+98-453+76-241+150-83+67-157+349-64+137+46-283+122-403-127+126-182-330-151-95-82 sort_uint32 0 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 0 0 63 +178+53+7+7+3-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_uint32 0 1 71 +217+94+5+6+6+4-1-3-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 2 78 +145+47+44+41+18+18+0+1-1-1-1-1+0+1-1-1-1-1+0+1-1-1-1-1+0+1-1-1-1-1+0+1 sort_uint32 0 4 99 +177+105+17+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 7 148 +141+66+8-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 11 205 +246+127+2+0+1+1-1+1+0-1+0+0-1+2+0-1+0+0-1+2+0-1+0+0-1+2+0-1+0+0-1+2 sort_uint32 0 17 322 +228+63-1+0+1-1+1-1+1-1+1-1+0+1-1+1-1+1-1+1-1+1-1+1-1+1-1-1+0+0+0+0 sort_uint32 0 26 348 +137+76+8+7+1-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 40 434 +575+145+17+2+3-5-1-7+1-1+4-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0 sort_uint32 0 61 519 +139+92+23+1+0+2-2-4-11-4-11+4-2+2-5+2-2-1-5+2-2+2-2-1-5+2-2-1-2+2-2+2 sort_uint32 0 92 913 +588+128+24+16+8+3-25-12+3-7+3-7+5-7+5-7+5-7+5-7+5-7+5-7+5-7+5-7+5-7+5-7 sort_uint32 0 139 1738 +806+28-57+99+64-55+99-36+96-35-51-42+81-61-25-79-72+127+0-81+16+53-11+84-16-74-15+53-34-70+53+117 sort_uint32 0 209 1808 +714+184-27+91+52+101-87+121+6+23-83-84-81-49+53-73+20-71-2+63-58+20+17-76+20-57+43+41-63+36+35-62 sort_uint32 0 314 2780 +1076+241-20-16-81+24+100+42+30+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 472 4271 +1178+202+166-11-18+7+57+61-34+84-32+31+107-32-2+45-10+60-103-100-6-90+0+39-81-64-32+60-100-48-110-10 sort_uint32 0 709 6451 +1412+583+67+106-86+38+117+44-41+87-3-45-17+51-171-72-66+9-79+18-56-14-80-46-94-81+15+45+95+57+87-60 sort_uint32 0 1064 10096 +1202+785+247-56+174-81+92-53+32+24-37+66+40-82+15+0-4+60-79+42-44+59+24-52-53+133-55-68-71-19-20-15 sort_uint32 0 1597 15270 +1632+431+580+345+52-104+226-64-89-103+18+44+44+35+18+14+18+18-102+18-102+18-102+18-98+18-102+18-102+18-102+18 sort_uint32 0 2396 24104 +2173+410+356+182+88+81+22+34-23+7+12+12+42+60+185-30+7-33-25-43-32-70-44+19+45-34-26-44-55-73-70-70 sort_uint32 0 3595 37076 +1830+998+316+352-68+59-3+89-123+46-115+35-46-58-97-103-80-69-172+133+97+1804+261-130-77-134-59-147-80+82+133+140 sort_uint32 0 5393 55607 +2858+829+340+61+163+98+165-85+94+70+828-78-7-71+66-152+331-110-155-91-260+374-139-18+48-124-76-142-64-183+733-138 sort_uint32 0 8090 91988 +2903+984+107+263+94-8-76+66-58-142+46-70-7-26+0-41-106+41-32+48-23-18-32-46-40+31+48+1-78+60+35-18 sort_uint32 0 12136 163009 +2239+2049+129+504-548+283-112+14-176+220-285+13-52-171-94+286+109-370-75+57+73+138-103-9-697-121+117-65+11+30-407+92 sort_uint32 1 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 1 0 63 +149+73+7+8+5+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 1 74 +305+87+10+8+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 2 81 +182+86+31+10+5+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 4 92 +240+73+6+4+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 7 140 +261+90+26+24+0+3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_uint32 1 11 203 +268+73+0+1+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 17 310 +248+117+6+7+7+3-2+2+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 26 314 +197+146+8+2+1+2+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 40 421 +521+172+27+11+9-1-5-18-18-15-22-22-18+0-2-2-4-4+1+3+3+3-1+1+3+3+3-2+1+2+3-2 sort_uint32 1 61 460 +339+178+56+12+4+0-2-8-15-12-13-16-17-13-15+6-1+5-1+5-1+2-3-1+1-1+2+5-1+5-1+5 sort_uint32 1 92 875 +614+155+4-7+14-56+9-33-46+18-64-40+16+18-46+1+2+14-26-57+13-45+7+2-32+16+8+8-20+28+26+2 sort_uint32 1 139 1754 +726+273-39-78-14+23+53+6+23-21+0+48+48-17+1-19+45-17+1-19+45-17+1-19+45-17+1-19+45-17+1-19 sort_uint32 1 209 1790 +667+217-61+24-78-19+6-20+16+5+6-4+5-13+6-4+5-13+6-4+5-13+6-28+7-9+6-4+5-13+6-4 sort_uint32 1 314 2900 +846+113-25-56+77+23-43+15-8+9-26+2-26+2-26+0+61+45-40-59+0-19+3+9-3+19-18+20+44-23+73-6 sort_uint32 1 472 4375 +783+185-24+3-38-17-72+88-50-79+111-20-68+121-13-77+115-20-68+121-13-77+115-20-68+121-13-77+115-20-68+121 sort_uint32 1 709 6753 +1692+714+486-22+64+55+50-15+20-42+27-19+60+81+78+31-126-160-121+2-1-215-226-257+160-60-33-152+118-186-267+92 sort_uint32 1 1064 10224 +1367+587+134+6+49+19+20-7+27+0-16+0+0+0-16+0+0+0-16+0+0+0-16+0+0-14-16+0+0+0-16+0 sort_uint32 1 1597 15502 +1339+356+397+255+110+122+108+24+0-18+45-53+29+1342+63-35-50-51+0-58-11-31-9-31-9-43-10-56+5-31-9-31 sort_uint32 1 2396 24350 +2225+1009+313+160-60+151+119-40+63-69-51+16-1-73+251+17-51-92+70+6-61-22+9-85-98-20-21-11-10+78+38-84 sort_uint32 1 3595 37483 +2581+870+504+290+51+149-23+34-55-63+89-91+85-95+87-49-113-73-119+110-84+39-91-58+127-124+124-70+259-65-119-38 sort_uint32 1 5393 56396 +2716+683+346+344+350+158+65+22-2-68-107+99+453+87-106-48-114-50-20+14-90-58-90-30-64+74-72-30-64-24-22+86 sort_uint32 1 8090 93030 +2908+1337+909+869+136+113-186-27+38+53+41-56+42+25-139+139-161-36+106+14+99-197-105-98-5-20-96-181-56-46+37-139 sort_uint32 1 12136 162747 +2204+820+522+345-45+378+155-233-136-111-258+290-346-152+335+198-91+168-36+27+224+438-114-120-385-80-147-225+11-289-150+102 sort_uint32 2 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 2 0 61 +168+49+2+2+1+1+5+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 1 69 +357+101+5+6-3+1+0+2+0+2+0+2+0+2+0+2+0+2+0+0-3-1+2+0-2+0-2+0-2+0-2+0 sort_uint32 2 2 77 +119+82+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 4 98 +246+72+14+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 7 146 +153+109+19-2-2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 11 200 +399+75-1+1+2+1+0+1+0+0+0+0+0+0+0+0+0+0-1+1+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 17 307 +278+93+0-2+1-3-1-3-1-3-1+3-1+3-1+3-1+3-1+3-1+3-1+3-1+3-1-1-1+3-1+3 sort_uint32 2 26 314 +131+75+0-1-4-2-2+0+2+0+2+0+2+0+2+0+2+0+1-1+2-3-1-3-1-3-1-3-1-3-1-3 sort_uint32 2 40 411 +393+193+30+26+13+10+11-2-4-6-2-9+1-5-8-4+14-7-3-3-1+16-5+0-3-6+17-6-5-3+0+14 sort_uint32 2 61 465 +311+212+34-1+4-2+4-4-9-13-15-11+4+5-2-12-12+9+3+1+5-3-11-11+9+3+1+5-1-12-12+9 sort_uint32 2 92 835 +605+219+41+35+8+5-16-3-7+21-10-11-12-9-6-11-8-10+30+31+21+33+29+30-8-15-8-10-6-13-7-15 sort_uint32 2 139 1780 +728+280-66-121-77-40-43+69-40-72+68+4+78-151-35+105-66-43+91+27+80-83-69+82-16+93+85-62-72+95+85-62 sort_uint32 2 209 1764 +639+271+182-33-17+12+2+39-2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 314 2858 +897+281+4+64-58-31-29-85-63-73-68-22-80-26+27+74+55+22-20+33+53+43+13+47+48+8+15-37-84-24-44+19 sort_uint32 2 472 4274 +1033+297+126+86-80-79-41-8+1-37+45-24-20-6-6-6-14+3+27+6+16+19-1+27+26+0-120+15-44+34-82-22 sort_uint32 2 709 6595 +1747+488+222+241+194+331+144+169+26-42+71-2+96-44-139-89+5-42-17-80-39-59-80-62-48-48+5-27-44-72-49+326 sort_uint32 2 1064 10352 +1420+535+451+247-18+168-12-4-66-30+88+124+155-37-23-58-67-8+33+242-6-4+45-59-76+17-42-52-15-87-67+16 sort_uint32 2 1597 15662 +1543+738+539+501+130+336+109+62+29+67+105-4+47+8+5-24-16-24-24-24-24-24-24-24-24-24-24-24-24-24-24-24 sort_uint32 2 2396 24693 +1857+803+315+148+74+184-53+19-33-20+29+46-141-34+41+106-188-197-21-117-41+72+12+15-197-29-57-22+49+4-37-25 sort_uint32 2 3595 38037 +1569+920+419+344-26-17-26+265+61+366-39-31-40-71-79-64-33-62-39+69+23-183+195+269-97-69-108-39-12+19-183+187 sort_uint32 2 5393 57040 +2925+986+486+230-40+67-50+24-250-161-101-164-57+96-110+57-52+137-185-9-25-26+19+649+5+39+23+64-14-146-122+47 sort_uint32 2 8090 93975 +3315+1566+631+1207+390+401+275+470+172+20-123-106-24-96+131-114+41+117-87-69-17-128-71-67+3-142-125-194-197+91-94-47 sort_uint32 2 12136 163049 +2156+653+321+139-48-194-7-116-201+68+210-535+301-185-312+7-401-26-32+2900-519+31+171-276+22+228-147+21+150-326-5+120 sort_uint32 3 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 3 0 63 +195+76+9+9+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 1 70 +204+78+7+7+1-2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 2 78 +205+119+29+6+2+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 4 91 +263+123+22+5+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 7 139 +244+115+26+6+4+3-1+2+0+2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2+0-2 sort_uint32 3 11 204 +167+72-1+2+0+0-1-1+1+1+1+1+1+1+0-1-1+0-1-1+0-1-1+0-1-1+0-1-1+0-1-1 sort_uint32 3 17 307 +387+128+6+3-1-1+1-1-1-1+1-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 26 314 +240+58+4+1+0+2+0+1-1+1-1+1-1+1-1+1-1+1+0+0-1+1-1+1-1+1-1+1-1+1-1+1 sort_uint32 3 40 434 +530+160+40-4-3+3-2+0-3-5-4-19+2+0+2-3-2+3+0-3-2+1+1+0+2+0+2+4+2+1+1+2 sort_uint32 3 61 471 +380+214+96+23+0+2-5-5-2+0-5-4+2+0+2+0+1+0+0+2+0+2+0-2-4+4-2+4-2+4-2+6 sort_uint32 3 92 894 +482+215-6-6-23-20-21+0+25-29-24+44+26-32-20+44+26-32-20+44+26-32-20+44+27-29-24+38+28-32-22+40 sort_uint32 3 139 1691 +898+304+176+222+195+64+94+10-13+3-17+5-17+5-17+5-17+5-17+5-17+5-17+5-17+5-17+5-17+5-17+5 sort_uint32 3 209 1866 +630+236-19+42+37+20+2-3-3-3-3+9+13-1-3-3-3-3-3-3+10+13+2-3-3-3-3-3-3+9+13-1 sort_uint32 3 314 2957 +805+142-37+45+91-25+20-68+45-55+2+5-1+44-5-14-23-35+5+38+5-16-7-37-15-4+5-18+1+14-2+42 sort_uint32 3 472 4482 +884+153+139+259+43+39+25+139-27-27-15-95-33-21-56-78-102+64-51-153+43-1-63+7+35-21-106+146+37-39+31-29 sort_uint32 3 709 6821 +1612+852+122+258+78+165+199+379-16-77+26+44-32-154+30+11-113+93-102-11-5-197-10-72-149-170-122+19+37-100+83-100 sort_uint32 3 1064 10694 +1140+518+382+140+101+56+11-66-11-16+30+16+2-16+2-16+2-16+30+16+2-16+2-16+2-16+2-16+2-16+2-16 sort_uint32 3 1597 16013 +1742+495+266+161+129-29+218-51-25-70+0-28+0-4+12-4+46-28+0-4+12-3+15-27-9-2-10-4+46-28+0-4 sort_uint32 3 2396 25013 +1796+463+462+295+143-55-105-100+71+44-139-130+179-162-158+88+99-66-113-1-142-114+103+8+43+72+196-166-148+189+25-170 sort_uint32 3 3595 38557 +2210+1051+546+480+269+222+27-43-20+20+23-35+7-84-3-37-51+50-50+104-75-90+18-33+20-16+36-71-27-27-35+39 sort_uint32 3 5393 58036 +2375+577+213+132+265+22-34-35+192-27+149+192+55-65+41-105+342-82+146-68+505-85-39-128-78-146-40-198-72-168-97-105 sort_uint32 3 8090 95618 +2834+1330+327+680+64-41+178-64-52-89+210+64+21-52+214+0-148-54-59+92-9-64+55-123-105-121+101+12-150+66-44-76 sort_uint32 3 12136 163313 +1704+963+406+105+1943-385-86+26-656-269+67-118+279+166+300+153+57-108-396+59+22-16-329-111+32-139+46-174+8+239-198-143 core_inv3sntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 selected 654 89817 +6034+92+468+39+106-31+58-14+281-115+25+8-24-3-12-28-83-57-52+109-42+29+8-20-3-90+86-83-39-12+129-23 core_inv3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 0 654 100123 +5026+204-173-140+29+42-7-117-257+48-39-15-78+99-62-66-101+0-17+71-217+77+29+35+30+60+16+112+7-39-39+26 core_inv3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 1 654 89854 +281-63-17-73+111+243+38-82-50-103-11-91+27-83+71+203+113-119+0+21+367-112-11+78+17-91+79-112-11+78+24-44 core_inv3sntrup653 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 2 654 277116 +2846+329+55-46+31+173+153+279-26-64+95+274+2-69-55-34-23-89-17-33+136+277-28-37+5-32-53+290-50-70-50-47 core_inv3sntrup653 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 3 654 423737 +5015+316-124+86+20+20+11+1-132+70+927-293+89-131+25+49+30+1-120+70-76-18-2-109+12-32-52+13+1-120+70-76 core_inv3sntrup653 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 4 654 407419 +3390+12+1211-146+1202-68+1176-58+1246-56+1118+1469-215-45+288-946+242-912+288-68-302+200+1196-168-294-158-320-210-254-200+80-136 core_inv3sntrup653 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 5 654 447422 +3829+32+64+19-129-103+129+5+25-172+20+997-763-71+20-99+120+77+18+18+18+18+113-87-117-73-63+95+88-66+19-106 core_inv3sntrup761 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 selected 762 108573 +5063-258-79+147-74-161+200-217+177-273+137+228-235-226+149+218+82+131-18-245-285+141-316+110+87-254+192-244+64+141-316+110 core_inv3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 0 762 120186 +5354-66-290+51+1032-123-101+98-367-193-21-2-7-207-31+25-19+25+69+69+69+5+67+5-39+61-61+61-59+10-58+94 core_inv3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 1 762 108604 +344+132-153-346+107-250-226-273+65-342-296-97+110+68+71-24-66+96-1+68+111+160+41+187-393+129+2-411+107-57+135-273 core_inv3sntrup761 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 2 762 335067 +3121+148+75+255-29-35-9-54-20+31-38-26+31-38+2+1-32+6+7-76+1674+294+14+16-40+72-31+68-27+18-57+22 core_inv3sntrup761 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 3 762 582850 +4941+413+80+175+424+428+174+314+137+291+243+224+329+137+291+243+1286-491-817-202-283-245-253-202-295-231-351-283-408-419-286-524 core_inv3sntrup761 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 4 762 512080 +2191+2+41-27-2+58-3-11+475-65-37-6-32+31+21-30+9-25-40-40+10+5+11+20+20+7-30+9-72+10+5+11 core_inv3sntrup761 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 5 762 568277 +4384+122+879-239-29+56+36+120-11-38-14+11+34+9-58-38-14+3+10-14+3+10-14+3+10-12+3+783-141-91-36+10 core_inv3sntrup857 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 selected 858 148221 +9740+185+119-194-8-9+2-49+12-9+2-49+12-9+2-49+12-7+2-41+5+26+2-41+5+26+1-74+5+26+2-41 core_inv3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 0 858 173602 +10115+96+199-157+577-53-106-116+632-152-161-37+108+570-48-216-38+969+142-158-37-12-161-37-12+570-49-17+584-49+142-158 core_inv3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 1 858 148196 +460-17-5-35-6+3-43+29-27+78+3-45+2+2+2+47-9+2+29-58+25-4-4+2+29-58+45-38-4+29-47+6 core_inv3sntrup857 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 2 858 375890 +3268-97-1588+685-239+58+88-221+94+55+118-238+58+88-221+36+59+118-238+58+88-221+36+1361+32-204+729+1492-228-231+88-221 core_inv3sntrup857 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 3 858 655387 +3677-41-37+51-143+61-37-41+17-109-17+13-143+62-8+590-176+11-32-160-207-83+1+23+37+61+61-3+97-7+23+61 core_inv3sntrup857 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 4 858 627966 +4619+94-24+12+1340-179-10+15-21-4-10+10-10+18-3+1-13+1+8+18-10+15-21-4-10+10+1147-195-10+10-10+18 core_inv3sntrup857 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 5 858 770716 +5795-1118-37+14-69-75+99-42+40-42+40-42+1078-996-12+107+169+34-40+40-40+40-40+40-40+40-40+40-40+40+623-1122 core_inv3sntrup953 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 selected 954 169413 +8785+91-18+52+57-4-11-5-20-18-19-1+47+37+20-17-62+30+23-18-13-19-19-19-19-2+40+37+20-17-62+30 core_inv3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 0 954 199251 +8571+184+1043-23-1-122+27-23+846-23-1-115-6-24+31-24+34-116+193-24-4-1+29-24+984-25+35-77+26-22+1017-25 core_inv3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 1 954 169401 +304+72+57+63-2-3-27-93+18+23+33-54-27-27-93+18+23+33-54-27-28-92+18+23+33-54-27-27-93+18+23+33 core_inv3sntrup953 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 2 954 502610 +2238+227+42+99+22+48+2+92-3-38-58-14-41-60+19+33+593+6+105+6+17-42-79+10-15-34-18+80-30-56-47-50 core_inv3sntrup953 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 3 954 867889 +4073+262+239+53-65+32+789+92-53+36-79-35-79-35-79-35-79-35-79-35-79-35+640+75+46+57-27+27-7+27-7+27 core_inv3sntrup953 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 4 954 676732 +4918+294+62+125+171+81-111+2178+307-6-5-2-112+16-101-4-151-37-124-85-146+141-72-220-85-79-110+2078+206+98-3+2 core_inv3sntrup953 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 5 954 914793 +3932-530+250-483+323-453+323-483+323-483+323+466-605+314-513+323-483+323-483+323-483+323-483+323-453+323+167+231-474+250-483+323 core_inv3sntrup1013 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 selected 1014 182697 +10681+15-27-44-5+17-7+27+48+35+8-34-6-3+1+1-5+85+2-8+10-31+14-3-83-5+1+2-4-7-110+34 core_inv3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 0 1014 215844 +8769+154-410+68-226-6+20-82+113+1044-100+184-293-338+21+189-226-6+20-82+113+185+24-86-37+184-293-338+21+189-226-6 core_inv3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 1 1014 182636 +633-3+42+8+8+10-44-44-12-14-14-14-26-26+10+10+4+8+8+17-29+36+22+8+8+8-46-46-46-46+8+8 core_inv3sntrup1013 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 2 1014 538831 +3744+918+965+832+848+1807+953+958+961+897-835-862-747-840-789+882-778+943-789-878-738-833-789-862-747-840-789+882-778+943-51+1031 core_inv3sntrup1013 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 3 1014 833368 +4295+95+19-24-48-10+34-10-30-10+26+30-30+56+26+879+170-88-30-21-32-28+151-48-12+34-10-30-10+26+30-30 core_inv3sntrup1013 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 4 1014 878310 +2892+61+22+75+10-42-2-42+4-42-9-69-16-42+20+823+55-9-69-13-69+20-42+20-6+17-69+38-58+27+904+204 core_inv3sntrup1013 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 5 1014 1007686 +6598-630+407-412+396-412+436-412+396-412+436+377-830-342+268+519-372+396-412+396-372+396-412+396-372+1236-857-420+324-306+297-269 core_inv3sntrup1277 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 selected 1278 299928 +13339+564+26+29-180-36-10+48-10-37-387-36-10+48-10-42-10-36-16-36-11+33+909+106+182-25+174-401+388-24+220-24 core_inv3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 0 1278 311895 +12789+427-67+153-354+200-429+326-388+573-368+139-381+390-411+321-358+573-417+127-373+374-392+308-383+419-410+140-132+574-411+316 core_inv3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 1 1278 299788 +528+710+241+147+181+115+67-164+51-168-276-182+111-11+106-161-501+98-188+112+360+80-160-168-276-182+111-11+106-161-501+98 core_inv3sntrup1277 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 2 1278 894278 +3726-44-42-181+1853-22+20-65+3-66-71-6-9+68-87+39+55+46+4-64+1674+100+51-64-41+95-85+53+45+4+8-64 core_inv3sntrup1277 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 3 1278 819270 +1744-305-363+2815-144-415-417+2597-401+24-6+22+55+25+99+0-13-80+98-8+992+207-10+45+24+17-9-79-29-42-11-37 core_inv3sntrup1277 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 4 1278 1216163 -10784-14011-12760-62-50+77-70-40-15-53-103-43-43+21+744+79-21+766+367+202+122+375+227-217-250+921-204+40+708-33+33-7 core_inv3sntrup1277 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 5 1278 1082032 +4979+680+127+347+3372+730+233+235+110-3793+135+180-3793+235+110+110+110-166-1-321-203-328-328-328-173-301-258-258-173-203+2519+68 core_invsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 selected 1307 633962 +4797+3261+876-494-682-590-773-608-414-945-236-852-600-746-612-826-1110-118+893+163+754+365+564+329+1118+220+569+400+758+344+582+110 core_invsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 0 1307 633962 +157+1572-315+1262-427+1384+299-743+275-709+590-271+542-746+513-1070+366-640+608-609+536-546+484-927+617-893+313-685+1183-786+548-1123 core_invsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 1 1307 628755 +47+2151+1084+39+512+497+124+167+384+450+186+373+286+142+343+86+579-421-83-1004-196-643-934-446-229-224-183-892-539-681-867-91 core_invsntrup653 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 2 1307 6382848 +2797-536+2415+3346+1167+1990-169-1114-782-1715-646+1300-1865-120-380-2442+580-2073+712-1546+202-905-7-102+1989+653+537+273-91+3210-129-1019 core_invsntrup653 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 3 1307 3486842 +4229+781-256-842+2041+1209+466-152+2203-1388+862-1490-595+564-1454+72+914-483-2054-946-354-638-230+292+1990+1502+178-2510+1137-1376-2191+327 core_invsntrup653 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 4 1307 8659485 +2202+1271+3560+1746-755-467+2185-2754+1291-637+73+1455-310+709+160-1272+2314-687-2877+1163-601-2742+1845-3433+1679-1536-2864-307-814+508-729-683 core_invsntrup653 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 5 1307 9519146 +2807+4205-7040-3978+3437-4718+374-831+2257+5265-3128-11076-889+4717-2288+3541+2867-894+2826+1198-226-5010+1186+588-6109+553+78-8028+6020-696-9654-83 core_invsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 selected 1523 850135 +4559+4760+1408+280+1280+116-190-330+463+66-797-733+590+218-254-366+1259-66-396-561+376+107-787-807+921+85-141-385+578+14-729-1079 core_invsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 0 1523 850322 +81+446+749-951-271+492+61+265+416-516+496+220-12-722+704+352+1228-87-190-117-300+334+186+152-106-530-631-449-520-146-476-64 core_invsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 1 1523 836095 +1576+1352+673+1+93+398+133-84-195-308-300-68-353-169-341-229+377+257+564+371+397+277+183-49+275-437-133-463-96-269-191-345 core_invsntrup761 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 2 1523 8650132 +3809+401+1163+692+1051+1086+2178-536-919-6-2568-1155+32+492+1235-1307-1731+479-453+923+780-580+1487-938+1321-720-1644-437-1386+640-1758-784 core_invsntrup761 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 3 1523 4601752 +3701-1489-3096+411+2039+8195-534-1-1317-169-277+506-1994-1639-865+1160+2706-2199+7970-1459+316-564+2515-954-1960+36+7430-1546+2156-189+4019+395 core_invsntrup761 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 4 1523 11722673 +3909-2995-357-3256-3742+1312+2013+1486-1339-1646-2714-769+3465+2331+1623+2778-1223+179-823-2694+1162-1332-3089-1804+2251+2782+3079-870-806-1070+816+3306 core_invsntrup761 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 5 1523 12932169 +7997+3263+1741-1203+892-901+317+461+733-809-2529+173+1024+251-1366+1198+536-337+1119-364-1720-937-1054-782+206-540+334+1329+105-1750-1102+618 core_invsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 selected 1715 1034580 +2423+5122+1850+939+513+342-1242+558-327-1034+242-18-1330+450-260-1037-1143+372-35+631-997-1132-587-1171-1148+398+500+436+317+37-24-348 core_invsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 0 1715 1033727 +979+1283-987+1538-1742+747+142+236+303-101-97-235+807+727+195-43-225-1879+93-1279+611-242-208-1063+427+434+1794-568-316-867-365-1421 core_invsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 1 1715 1027085 +2336+1801+625+30+60+144+848+630+264-204-218-165-22+75-268-79-112+93-428-133+830+174+42-428-124-110+110-70-42-106+116-345 core_invsntrup857 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 2 1715 10926460 +2821+4879-497-1117+161-441+505-847+226-15-333-708-2060-3718+7187+5294+812+855-2234+5520+2010-2537-1491+5532-507+215-136-695+827+1567-1258-273 core_invsntrup857 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 3 1715 5718487 +13045+4056-6330-1923+10970-3382-8441+12175-6732-572+12550-4208+14299-5979+1427+1803-9867+12100-3665+10900+6350-2839-2312-3977+11760-4594+12420-3324-3116-3988-5337+4564 core_invsntrup857 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 4 1715 14827152 +5461+4496-264+4334-502+179-1563+3521-192-2051+1728-3505+3373-1721+1558-1298+2496+2056+574-2295-550+716+2063+406-1844-153-2282-406-2781+1493-2775-2427 core_invsntrup857 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 5 1715 16350991 +2444+944+2696+3378+229+675-522-2144+616-2152+2932+3083+1455-957+590+105-3381-1015+1635-1436-1387+314-469+589-61+58-2039-1833+2500-2278-404-695 core_invsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 selected 1907 1199787 +4184+3209+680+130-63-535-634-514-565-828-832+388-57+485-143+85+240+52+282-14+42-82+105+914-105-271+339-174+589-141-162-625 core_invsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 0 1907 1199756 +110+337+1320-188-404-624+117-731+440-138+275-614+324+213-123+34-158+59-99+612+48+368-1159+275-431+1660-740-20-420-67-261+194 core_invsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 1 1907 1333319 +2903+968+596+438+106-293-267-1055-334-34-601-721-209+31+932+500+269+104+199+148+85+212+100+476+1857-344-576-450-87-1169-33-767 core_invsntrup953 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 2 1907 13471955 +585-2613-1383+604+670+299+301+6477+202+1205+3555-1970-207+2509+141+2945+1298+2681+1122-1553-1851+420-1475-121-1500+616-2118-2609+6842-1062-717-2015 core_invsntrup953 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 3 1907 7100946 +2392+1403+925-195+2716-381+3091-207-410-2610+1921-556-2373+1097+1007-1870-1276-1962+986+2858-879-1552-516-1524+97-425+1234-1090-577+1120+3076-1767 core_invsntrup953 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 4 1907 18310265 +236-1393+6851+2024-222+587+305+687-3982+2453-2615-3477+2151+1350-2791+4022-340-3955+3217+3236-768-329+262-3409-3870+2948-1140-3399+1925-568-4079+6038 core_invsntrup953 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 5 1907 20142847 +654-1534+794-4471+2143-1498-2492-3037-4107+28+3076+4104+2541+2440+1843+1280+2095-2395-1872+857+2255-1440-2745+2485-3866+1612+2282+3223-3908-148-2413-2684 core_invsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 selected 2027 1368680 +5297-187+2296+646+345+565+818-525-970-239-1279+82-843-1253+85-1313-859+258+782-166+279-475-456-423-378-654+949+1688+1321-207+266+1123 core_invsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 0 2027 1367838 +1447-553+1415-1160+1902-1945+877-1004+842-914-880-1780-35-2530+1748-789+1625+28+862+18+1319-605+2212-1538+2515+322+589-1027+801-886+243-837 core_invsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 1 2027 1896511 +2184+3181-3228-4110+2163+792-3568-1606+1988-1035-452+3373-3147+2915-3058-1041-2031+994-4849+2147-2853-3337-2261+1162+1196+3718+2688+152-1912+2177-250+3505 core_invsntrup1013 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 2 2027 15278769 +4161+1268+124+1188+3115+3320+1463-1011+1163+138-957-785-3471-604+428+1704+723+1779-3643+9+524+1376-1998+51+326-3904-978-2563-2360-345-2978-1743 core_invsntrup1013 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 3 2027 8178406 +8943-1969+1389-1070+837+3-811+2941+265+2223-2306-1705+646-79+1123-1132-292-1802+589-239-2745-2873+809-3406+2399+596+3458-2014+1349+458-3979+1180 core_invsntrup1013 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 4 2027 20736455 -6495+1014-4656-10575+18877+37884+38028+36480+30338+30603+6108+83-3191+22583-9629-6364-2260-6275-10076-10538-10909-5922-6567+39607+18616+8898+1128-4769-1782-8385+1891-2525 core_invsntrup1013 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 5 2027 22909342 -4496-11871+9858+21506+718-111+1569-745-8157+3891-3931+5444+8056-14675+428-13752-412-17348-962-11597-5304-9505+468+69464+29728-758-8127+3884+314+41611+89429+57847 core_invsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 selected 2555 2153903 +7189+3366-2877+1859+845-30+2549-2160-3139-1521-4971-7631-55+1952+177-1307+7325+5230+5643+802+144+3742+2790-1643+595+169+3706-4327-4367-4551-2380-5493 core_invsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 0 2555 2152180 -6732-3336-5740-2830-5998-6577+1871+2589+2259+8583+775-1145+1763+1983+3664+5070+3021+4539-1151-4668+2894-781-4221+123-6959-357+637-5794-2668+1715+1137+5132 core_invsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 1 2555 2287029 -4636+4600+2528-2687-7536-7154-1927-3818-2726-484+3726+7829+1981+1440-140-3792-4388-7103+2156-163-274-3968+2688+1647+594+1138+5113+2273+485+3894+1838-2879 core_invsntrup1277 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 2 2555 24189386 +3310-9844-4838+28937+45138+18887-7295+40481+49898+5384+9107+35021+14469-36547+34362+16213-21176+34758+11595+8156+28632-11996+16580-17610-32297-32164-37470-38032-30936-35381-41447-33818 core_invsntrup1277 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 3 2555 12957916 +5577+5636+2876+3371-519-367+1734+1893-1371+4+885-495+1941-2227-1893+1270-812-3640+364-3045+2730-2702-921-662+9484+954-1416+651+112-827-3760-1686 core_invsntrup1277 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 4 2555 32829604 +5265+5176+3873-9450+412+3067+2961+3501-1814-2984+4052+2159-7556-1516+1217-2548+2732-1569-1755+1777-637-8821-682-11081-7847-3396-8066+4795-258+2508+3495-13337 core_invsntrup1277 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 5 2555 36431626 +1106-1232+1132+508+745-2503+2053-1770+863-137+5737-223-1666+3782+1796-396-699-1426+512-3599+61-1555-414+1111-4862+1045+909-413-617+736-198-1447 core_mult3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 selected 653 11500 +8307+274+4-12-2-3+10-12+19-2+10-2+10-2+10-2+10-2+10-2+5-51-57-49+4+1-50-7+13-51-57-49 core_mult3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 0 653 11487 +607+24-21+12-21-32+15-22+11-14-20-22-7+2+9+10-20-29+12+15+26+9+10+8+15+13-37-5-3-24-9+10 core_mult3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 1 653 16221 +5690+302+100+101-2+14-6-30+5+29+4-10+13+5+8-10+10-56+4+0+4-10+4-6+2-52-40-6-32-10-33+8 core_mult3sntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 2 653 70444 +2602+49-13+71-35-76-10-78+92+3+88+54-37-13-67-86-5-45+114+3-4-69+20+38-9-49-52-26+35+15+810+31 core_mult3sntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 3 653 77762 +1022+90+70-16+144+43+32+32+37+60+54+54+57-26-27-24-17-13-10-10-21-22-23-12-13-23-25-48+38-51-54-54 core_mult3sntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 4 653 148246 +50+480-275+177+254+80-316-499+306+164-402+491-283-504+240+126-286+475-212+29-415+450-343-218+285+187-403+462-173-148+199+53 core_mult3sntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 5 653 156725 +806+110+40-5+23+29-77+46+51-40-52+7+15-37-75-41+48+14-21+48+4-7-38+29+45-20+50-56-117-54+0-54 core_mult3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 selected 761 12341 +2421+251+81-28+5+34-17+29-4-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 core_mult3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 0 761 12334 +544+70-21-18+1+14-19+24+6+8-25+2+4-21-10+24+6+8-25+2+4-21-10+24+6+8-25+2+4-21-10+24 core_mult3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 1 761 17414 +1846+256+1009+162-7-32-12-13+54-34+22+4+22+4+22+4+8+4+22+11-16-36-16-36+43+11-16-36-16-36-16-36 core_mult3sntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 2 761 83152 +980+123-21+51-23+38-75+14-79+29-22+3-60-9+29-30+49+33-37-18-62+3+16-12-7+5+49+36-26+6-38+10 core_mult3sntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 3 761 94894 +444+60+35-5-44-47+2-23-4-31+22+34+115+8+41-5-48-31+15-26+54-49-21-25+58+35+29-33+41-5-28-31 core_mult3sntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 4 761 185278 +317+85+71-44-68+10+8-72-48-20+60-86-4+20+9+13+10+12+63-18-54-28+71-59-44+42+65-32-10+26+94-62 core_mult3sntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 5 761 200975 +612+182+86+34+32+58+335+20-13-23-35-7-8-19-32+22+1+6-1-20-6+6-55-29-33-4-7+4-32+22-7+6 core_mult3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 selected 857 16214 +3902+351+152+138+45+32+63+70-18+72-11+67-81+79+28-58-42+28-106-48-4-78-4-102-76-2-98-48+20-42-4-64 core_mult3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 0 857 16176 +454+113-15+27+5+27-56-25+60-81-17+27+15+27-56-25+60-81-17+27+15+27-56-25+60-42+63-66-17+27-56-25 core_mult3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 1 857 22867 +2564+278+103-9+18-84-37-30-17+8-2+23+91-17+27+59+13+4-30-23+24+15-11-53+52-23+24+15-11-53-44-32 core_mult3sntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 2 857 98835 +550+59+32+11-24+18-55+30-56+22-31+31-40+18-50+28-32+11-24+18-55+30-56+22-31+31-40+18-50+28-32+11 core_mult3sntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 3 857 114824 +106-198+82+69-1-4+18-12+2-70+23-4-5-33-5+2-72+23-4-5-33-5+2-70+23-4-5+628-197-123+41+61 core_mult3sntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 4 857 226259 +427+99+138-52-23+57+75-109-18+9+63-98-25+23+37-92-98+62+61-82-118+57-1-47-86+31-9-10-61+37+90-101 core_mult3sntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 5 857 249177 +325+101+62-17-18-14-20-13-14-18-13-13-13-13-13-13-13-13-13-13-13-13-13+175-698+76+63+55+54+54+55+55 core_mult3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 selected 953 16660 +2074+321+119+103+54+49-94-53+78-50+34-45-18-46+77-71-14+60-48+62-53-50+60-49+58-45-53+41-61+70-52-42 core_mult3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 0 953 16657 +534+90+82+55+39-53+37-91+117-57-59+65-12+16-54-66+68-61+59-148-53+54-53+85-89-51+60-33+45-86-51+64 core_mult3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 1 953 23911 +2099+348+275-2+5+25+75+53-60-4+29+28-4-19-15-10-24-37+22-10-5-37+22-10-26+20-30-6-26+20-30-6 core_mult3sntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 2 953 119884 +768+63+67+30-4+33-27+12-8-29+14-31+28-24+23-41-12+8-23+28-26+21-20-27+17-34+28-24+23-41-12+8 core_mult3sntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 3 953 139461 +822+126+89+11-25-120-27+22-12+123-23+93+55-10+10-50-3-10+17-121-29+21-12-38+23+93+5-10+10-50-3-10 core_mult3sntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 4 953 275964 +571+148+634-59-167-93+62+106-92-99+75+92-101-123+94+69-117-133+78+121-143-138+133+55-146-123+83+113-118-158+118+78 core_mult3sntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 5 953 307329 -93-698-15+24+98-123+93+59-70+65+3-21+81-80-61+63-104-15+606+122-124+104+50-80+80-3+4+92-82-57+61-98 core_mult3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 selected 1013 17047 +3178+220+159+152+86+42+38+78+17-49+23-91+99+18-104-49+13-51+31-91-58+33-52+7-79-49+5-51+31-91-58+33 core_mult3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 0 1013 17013 +226+118+55+57+41-30+22-24+22-24+22-63-22+44-26+46-65-34+22-24+22-63-22+44-26+46-65-34+22-24+22-63 core_mult3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 1 1013 24558 +1740+249+149+10-17-57+23-6-14-23+17-1+28-7-10+59-47+16+6+49+11+42-77+26-31-28-43+14-33-36-16-6 core_mult3sntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 2 1013 144201 +1144+112+79-21-23+140+20+8+36+10+84-25+43-37-89-81+7-29-25-55+17-21+43-35-18-56-30+26-29+87+15+29 core_mult3sntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 3 1013 156165 +439+124+61+6-73+33+34+42-105+3-51-53+0+2-85+837+59-16-49+1-14+64-55-48-51+81-5-36+44+47-128+3 core_mult3sntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 4 1013 306040 -345+411-349+403-411+371-280+276-343+254-547+347-357+437-270+359-355+403-411+371-280+276-343+254-547+347-357+437-270+359-355+403 core_mult3sntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 5 1013 343431 +501+92+812-55+39+71+24-75-38-59+33-26+61+97-153-3+47-75-38-59+33-26+61+97-153-3+47-75-38-59+33-26 core_mult3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 selected 1277 21877 +4381+392-7-4-53+12+13-73-63-98+11+19+51-36-3+29-40+57-8+25-36+8+29-40+52-7+0-26+45-4-23-11 core_mult3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 0 1277 21856 +89+110+32+19+26-4+33-26+44-3-5-54-22+8+3+23-4-25-35-11+23-12-7-47-25-21+7+53-25+0-30+38 core_mult3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 1 1277 30515 +3642+295+45-14+6+40-95+4-83-4-40-68-3-24-42+44-57+69-51+117+21+30+19-12-34-40-17+16+31-129+20+89 core_mult3sntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 2 1277 286622 +710+65+250+758+95-293+169+198-226-123+24-13-192-167+355-46+68-219+9-169-346+123+157-34-22+58+49-130+62-88-73-39 core_mult3sntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 3 1277 312956 +1015-123+142+12+232-71-57+368+412+73+28+209+78+277-7-272+89+1068+46-423-82-80+250-213-92-186-141-210-74-179-232+120 core_mult3sntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 4 1277 537515 +196-52+75-90-353+176+452-109-322+293+87+37-372+217+349-211+880-66-72-59+70-325-9-219+1+53+111-154+101+223-82-361 core_mult3sntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 5 1277 554540 +1143+225+226-114-32-289+176-129+0+170+136-37+50-221+25-38+46-225+23-36+42-225+23-36+42-225+23-36+42-225+23-36 core_multsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 selected 1306 18278 +13019+397+155+95+107+22+68-18+52-9+72+11-45-15-22+7+17-27-13-1-27-28-19+9+1-13+3-2+5-39-7-18 core_multsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 0 1306 18279 +951+143+14-18-26+13-17+2+9+17+13+2-32-15+27-32+26+6-4-35+9-18-66-1-15+17+15+36-21-40+27-42 core_multsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 1 1306 20988 +8760+304-3-1-22+25-7-55+39+128-48-6+0+5-39+2-1-11-13+8-30-7-7+9-19+43-5+78+33+12-69+9 core_multsntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 2 1306 151107 +530-171-11-6-215-266+138+148-289+71+483+177+14+112-169-66+11+192-101+114+844-187-175-246-367+525-208+64+24+171-389+207 core_multsntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 3 1306 161978 +295+224-311+55+342+106+148+42+90+448-272-96-572-172-4-292-146-394+320-124-174+130+36+517-369+75-321+48-320+133+115+26 core_multsntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 4 1306 470049 +1856+162+739+62+1065+676+51-60-22-42+41-51+27-51+27-51+27-51+27-51+27-51+25-53+25-53+25-53+25-53+25-53 core_multsntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 5 1306 424206 +399+1068-140+197-232+242-285+176-298+255-153-58-516+126-237+114-87+200-170+293-208+150-239+177-184+311-137+115-269+94-120+90 core_multsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 selected 1522 18523 +4881+336+122+122+77+47-17+14-9-1-23-44-12-34-12-42-19-4+1085+90+3-17-11+11+6+15+14-5-10+5-13-8 core_multsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 0 1522 18565 +1116+153+26+37+5+1+5-13+21+1+5+1+9+1+5-36+105-26-5-14+13-3-26+1-25-37+35-22-40-7-9+1 core_multsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 1 1522 21611 +2607+217+129+88+35-39+25+18+34+15+70-55+18-53-2-37-73+8-28+0-5+3-5+8-15-45-27-27-2-11+17-23 core_multsntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 2 1522 213505 +1039-147+618-158-270-61+479-620+303-440+303+87-116+197-492-463-213+165+271-503+425+108-681-186+243-112+559+790-255+442-479-126 core_multsntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 3 1522 213541 +515-25+126-91+122-122+121-132+126-123+112-122+121-132+126-123+112-122+121-132+126-123+112+690+406-377+80-302-211-403+73-295 core_multsntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 4 1522 638791 -17+822-539+162+136+246-544+472-88+238-526+164+136+246-544+472-88+239+248-463+662-456+192-652+650-624-130-572+572-486+216-540 core_multsntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 5 1522 568429 +335+30-200-186-177-70-65+543+1076-238-26+95-398+153-372+185-74+127-16+85-398+161-380+185-66+119-16+93-406+161-372+177 core_multsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 selected 1714 26416 +6653+523+224+56+6+94+10+22+45-10+55-4+19-10-17-1-22-79-27-3-1-26-33-22-10+3-7-6+25-24-20+1 core_multsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 0 1714 26410 +429+43-17-18+39+7+4+1+39+10+4-36-1-5+26+8+13+42-29-14-20-22-23-29-33-33+41-15+15-54+40+54 core_multsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 1 1714 30763 +2968+124+148-13-16+0+17+29-5+21+49+32+18+36-66+23-25-13-115-22-14-32-14-2-78-6+35-13-14+32-29-28 core_multsntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 2 1714 264911 +462+185-120-154-83-495+88-502+496+276-215+173+28-484-249+65-384+348-76-164-102+174+135-603+337+445-155+137+224+486-221-127 core_multsntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 3 1714 267295 +794-21+125+74-230-257-333+906+251+207+318+8-71+118-237-41+148-542+117-468-254+12+193-352+309+7+0-154-305-185+418+94 core_multsntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 4 1714 808290 +40+216+70+166-301+212-5-349+820-38+631-372+480-495+227-249+276-421+106-303+323-17+150-389-213+72+1104-760+603-309+89-531 core_multsntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 5 1714 716188 +1284+47-450+241+60+31+433+100+253+741-222+131-3480-3798+121-367-270-635+565+280-636+711+57+697-323+524-423-493+79-381-212+1169 core_multsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 selected 1906 26682 +6036+373+122+90+59+12+30+30+8+10+15-21-23-56-55+16-29-37-37-3+17+2-49-42+6-9-5+3-7-1-7-36 core_multsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 0 1906 26648 +318+31-24+5-4-17+5-4+0+28-16-17+30+36+18+24-33-13-15-20+41+15-16+41-20+22+2-27-19+12+2-27 core_multsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 1 1906 31211 +5496+268+61+105+11+43+19+25-64+43-6-22-37+21+2-18-60-18+50-23-34+0+15+47-42+20-21-69-59-49-11+3 core_multsntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 2 1906 314625 +1546-177+591-707+39-10+142-950+802-421+355-394+831-607+86-295+507-713+37-10+138-951+807-425+363-390+829-607+88-299+712+333 core_multsntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 3 1906 329281 +617-399+102-146+35+472+552-345+535-17+479-448-183-576+111+29-87-53+432+473+236-3+245+577+99-459-211-284-211-441+50-200 core_multsntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 4 1906 996085 +35+573+1213-110+402-30+416-417+477-647+590-578+137+29+19+115+1020+126-209-253+603-203-55-239-59-366-124-347+163-241+1352-466 core_multsntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 5 1906 880372 -3309-3797+80-63+455+447+623+151+979-470+950+288+1710-199+1124+553-336-430+799+980-1170-542+270+415+454-774-59-789-2777-3542-4485-469 core_multsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 selected 2026 26882 +6249+374+165+46+42+39-22+61-37+23-9-3+15-4+10-63-14-19-6-9-3+21-46-20-5-2+14-22-17-21+46-22 core_multsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 0 2026 26868 +276-3-2+7-1-15-23+55+0-3-19-5-17+5+27-3+18+34+21+17+60-34+47-7+3-35+13-41-6+0-21-29 core_multsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 1 2026 31554 +4273+356+90+116+38-1-11+35+22-8+43-3-19-68-3-25-50-9-13+7-14+32-85-22-26+5-67-27+2+80-42+54 core_multsntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 2 2026 351319 +814-123+766-31-560-333-272+380-514-194-239-411-243-25-411-243-25-411-243+1473+1046+35+207+842-403+61+982+737+816-377+257+699 core_multsntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 3 2026 368799 +2054+550+495+315-135-157-157-157-157-157-157-157-157-157-157-157-157-157-157-157-157-157-157-157+1009+1097+824+834+507+839+835+665 core_multsntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 4 2026 1122598 -99+175-340-467-210-385-525-80-405+1166+390-68+167+138+359+6-16+80+111+175+411-59+1207+8-47+141-300-27-71-178+180-350 core_multsntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 5 2026 989818 +167+609-135-1153-956-559-59-1308-580-815-181-1254-403-139-457+405+43+576+47+293+2-7+192+465+37+175-16+262+127+1206+532+143 core_multsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 selected 2554 36026 +6357+160+92+0-28+21-33+3-49-26+36+0+17-22-33+4-15+0-8+29+48+60-17-7-10-38+8+33-20-61-2+36 core_multsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 0 2554 35993 +146-9+25+0-20+19-29+9+29-11+102+6+31-34+2+24-4-5-4-28-6-2-6-2-51-3+12-10+24-16-12+58 core_multsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 1 2554 39113 +4350+549+19+118+17-9-45+64-2+0+45-61-110+26-20+39-28-19+36-17-94-10+55+15+85+10-16-7-25-27-64-49 core_multsntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 2 2554 557133 -247-212+34+1367+300+532-1366+205+541+524-1366+220-823-19-369+352-1069-556+332+504-205-1005+41+523+227-185-434+272+362-1182+32-1374 core_multsntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 3 2554 578452 +1105+81+447+4-75-469-280+686-1076-825-509+1403+13-503-175+1416-376-590+156+565-139+112+756+827-676-972+693+756-40+1478-709-1012 core_multsntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 4 2554 1781260 +233+469-925-169-600+415+1088-249-63-849+107+376+375-634+1027-1254+264-221+35-511+731+355-884+358-1503+214-508+453-1094+1261-956+553 core_multsntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 5 2554 1566439 +382-134+43-830-461+7361+5986+7160+7079+6395+7044+6522+7262+7150-3797-566-990-195-1104-738-5-855-341-3929-745-447-888-1414-931-206-895-1086 core_scale3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 selected 1306 275 +660+81+21+20-2+0-2-3+2-1+3-3+0-1+0-2+0+5-8-3+1-1-1+1+3-1-2-3+1-1-3+5 core_scale3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 0 1306 275 +65+25+5+4-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 core_scale3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 1 1306 261 +559+47-2-3-1-1+1+1+0-1+2-3-2-1+2-3-2+0-2+0-2+0+3-1+3-1-4+2+1+2+0-1 core_scale3sntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 2 1306 3258 +606+116+49+41-15-11+6-15-11-7-22+8+8-24+8+8-2+8+8-11-15+8-11-15-16-4+11+17+18-14+20-12 core_scale3sntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 3 1306 2552 +312+121+69+7+4+4+4+5+6+6+6+15+11+15+11+0+0-2+3-3-6-6-6-10-10-10-10-10-10-10-10-10 core_scale3sntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 4 1306 3255 +237+60+11+15+2-8+40-22-18-19+1+8-20+1+15+6+2+8-20-22+0+6+2-24+9+2-24+9-10-24+23-7 core_scale3sntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 5 1306 2638 +295+43-3-15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7-15+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 selected 1522 304 +262+47+8-1-1+0-1-2-2+1+1-1+0-1-4-2+1+1-1+0-1-4-2+1+1-1+0-1-4-2+1+1 core_scale3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 0 1522 309 +50+12+7+2+3+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 1 1522 294 +194+84+49+39+0-1+3+1-3-3-3-3+0+1+1+1-2+1-3+0-2+0-2-2-3-3-3+0+1+1+1-2 core_scale3sntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 2 1522 3752 +511+81+21+13-13+0+12+11+13+13-13+0+12+11+9+0+12+2-15+21-19-28-16-27-21+21-21-28-16+6-16-28 core_scale3sntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 3 1522 2971 +239+62+27+26+14+22+34+19+5-67+3-38+27-42+31-86+7-40+7-16+3-52+3-48+7-52+7-51+11-16+30-58 core_scale3sntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 4 1522 3756 +252+56+2-4-36-1+1-27+7-1+1-27+7-1+1-27+7-1+1-27+7-1+1-27+7-1+1-27+7-1+1-27 core_scale3sntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 5 1522 3135 +122-77-113-126-144+162-143+163-143+163-143+163-143+163-143+163-145+161-129+160-129+161-129+165-129+161-129+165-129+161-129+165 core_scale3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 selected 1714 338 +521+74+2-6-2-4-4-1-3+2-4-1-4-2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 core_scale3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 0 1714 338 +49+10+3-3+2+0+3+0-2-3-4+0+3-1+4+2+1-1-1+0+1+1-2-3-4+0+3-1+4+2+1-1 core_scale3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 1 1714 321 +202+66+48+25+19+19+19-2-1-1-1-1-1-1-1-1-1-1-1+2+3+2+6-1-3+0-1+1+1+1+1-1 core_scale3sntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 2 1714 4214 +590+50+30+12+21+27+20+12+20+12+89+31+3-11-17-11+6-12-17-11-1-3-17-11-17+34-4-16-24-16-15-17 core_scale3sntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 3 1714 3362 +343+51+16+4-12-2+2-6+6-2+2+2-8-2+6+10-8-2-10-1+13-4+0-1+13-25+2-8+13-3-1-1 core_scale3sntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 4 1714 4223 +223+53+24+34+19+9-3+18+18-5+1-5-7+5+1-5-9+26+1-26-4+74+11-11-16-15-11-26-16-26-15-1 core_scale3sntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 5 1714 3307 +371+100+1-3-5+57-18-17-30+21-4+27+0-10-31-17-30+21-4+27-36+86-29+5+63+49-2-29+52-5-11-15 core_scale3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 selected 1906 369 +533+63+0-7-1+1-5+1+1+1+2-3+0+2-6-5+2+0+1+2-5-3-10+2+0+1+2-5-3-10+2+0 core_scale3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 0 1906 369 +40+14+0+3-5-1+2+0-2-1+0-3+2+0-1+2-1-1+0-3+2-1+0-3-4-3+3+5+4+2-1-1 core_scale3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 1 1906 352 +173+48+27+14-3-4+3-3+0+0-4+3-3+0+0-4+1-3+0+0-4+1-3+0+2-4+1-3+0+2-4+1 core_scale3sntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 2 1906 4673 +566+52+21+6-1+3+0-4-1-3+1+5-1-3-1+20-1+93+0-3+25-1+13-3-1-3-1+3-1-3-1-3 core_scale3sntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 3 1906 3670 +351+128+79+81+70-29+49+55-40-23+135-23+67-23+73-14-4-14+6-14-4-21-10-11+27-23-43+0-40-22+4-32 core_scale3sntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 4 1906 4669 +222+168+5+17+1+36-9-3-1+9-9-3-1+9-9-3-1+9-9-3-1+9-9-3+1+9-9-3-1+9-9-3 core_scale3sntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 5 1906 3738 +380+33+20-2-6+8-6-2-4+4+0+4-6+4-4+8-6-1+3+8-6-2-4+4+4+4-6+4-4+8-6-1 core_scale3sntrup1013 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 selected 2026 365 +254+89+1+0+1+2-2-2-2+2-2-2-2+2-2-2-2+3-4+2-4+2-4+2-4+2-4+2-4+2-4+2 core_scale3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 0 2026 394 +219+60-1-1+0-4-3+2+0-2+1-2+0-1-8+1-3+2+1+2-3+2+0-2+1-2+0-1-8+1-3+2 core_scale3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 1 2026 369 +46+27+4+6-4+2+2-1-1+1-1-1-1-1-1-1+1-1-1-1-1-1-1-1+2+0-1+2+2-1+2+2 core_scale3sntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 2 2026 4984 +527+85-9-3+11-3+3+12+1+2+3-25+16+8-6+1+7-16-7-25-7-28+7+28-7-30+1-9-1+27+3-5 core_scale3sntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 3 2026 3969 +347+95+57+16-6+2+1+10-13-15-12+8-2+1+10-13-15-12+8-2+1+10-13-15+19+9-2+1+10-13-15-12 core_scale3sntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 4 2026 4993 +200+53+14-11-49+13+58+44+13-20-41+16-7-18-41-29+7-16+14-22+17-4-30-20+4+4+5-5+11-6-4+7 core_scale3sntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 5 2026 3883 +313+141-8+13-14-5-7-7+19-6-4+4-2+19-6-4+4+12+19-7-7+4+12-7-7+3+4+13-4-7-7+19 core_scale3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 selected 2554 473 +267+82+6+5+1+0-5-8-12-8+1+1+1+1-13+2-8+1+1+1+1-13+2-8+1+1+1+1-13+2-8+1 core_scale3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 0 2554 471 +35+12+3-7-2-2+4+0+0-7+2-1+0-5+3-5+2-3+0-7+3+0+0-7+2-1+0-5+3-5+2-3 core_scale3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 1 2554 444 +223+84+7-3-2+2+0+2-2-2+2+0+2+0-2-2+2+0+2+0-2+2+0+2+2-1+0-2-2-2+2+0 core_scale3sntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 2 2554 6240 +397+72-22-4+26-34+11-17-3-11+25-11+25-9+10-35+5-20+22+4+14+3-7+5-16+26-7-18+14+4-28+3 core_scale3sntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 3 2554 4854 +315+196+14-48-9+50-42-24+69-25-11+36-3-13-1-12+59-1-38+59+57-2-12+61+29+6-40-14-27+14-20-26 core_scale3sntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 4 2554 6247 +210+50+47+12+25+15-22+12+12-11-67-21+11-12+12-12-6-22+12-12+12-16-6-22+12-12+12-16-22-4+12-11 core_scale3sntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 5 2554 4952 +389+93+14+20+2-15-1-15+2+17+3+17+2+20+2-15+22-16+6-23-9-22-10-11+9-22+2+17-6-9-9+1 core_weightsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 selected 2 88 +888+62+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 0 2 88 +135+28+10+11+0+0+0+0+13-1+0+0+0+0+0+0+13-1+0+0+0+0+0+0+8+0+0+0+0+0+0+0 core_weightsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 1 2 102 +216+39+20+17+1+0+0+0+0+0+0+0+0+0+0+0+0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 2 2 1292 +141+22+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 3 2 1400 +115-15-24-2-33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 4 2 1272 +164+73+52+27-8+4-7-9-7-9-7-9-7-9-7-9-7-9+1-12-1+6+6+6+6+6+6+6+6+6+6+6 core_weightsntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 5 2 1372 +119+33+29+0+9+19+0+0+0+0+0+0+0+0+0+9-14+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 selected 2 91 +822+35+10+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 0 2 91 +60+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 1 2 105 +174+73+3-1-1-1+1-1+1-1+1-1+1-1+1-1+1-2-3+1-2-1-2+1-2-1-2+1-2-1-2+1 core_weightsntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 2 2 1464 +156+82+0+46+0+47+26+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 3 2 1615 +99-49+10-58+0+11-25+11+11+13+13-2-12+11+11+11+11-9-32-3-3-3-3-3-3-3-3-3-3-3-3-3 core_weightsntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 4 2 1473 +199+87+26+6+26+26+26+26+26+26+26+26+26+26+26-13+10-23-23-23-23-23-23-23-23-23-23-23-23-23-23-23 core_weightsntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 5 2 1598 +105+15-11-65-20-33+0+0+0+0+0+0+0+0+0+0+0-34+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 selected 2 101 +599+10+11+5+0+0+0+0+0+0+0+0+0+0-4-1-1-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 0 2 100 +30+3+1-1+1+1+1+1+1+1+1-1-1+1+1+0+1+1+1+1-1-1-1-1-5-1-1-1-1-1-1-1 core_weightsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 1 2 115 +132+35+22-3+0+0+0+0+0+0+0+0+0+0+0-2-2-2-3-3-3+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 2 2 1636 +156+67+26+28+28+25+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 3 2 1794 +178-49-37-51+4+3+9+24+24+24+24+24+24+24+24+24+24-4-10-10-10-10-10-10-10-10-10-10-10-10-10-10 core_weightsntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 4 2 1663 +259+30+1-6+5+5+5+5+5+5+5+5+5+5+5+5-30-38+0-38+0-38+0-38+0-38+0-38+0-38+0-38 core_weightsntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 5 2 1747 +162+50+7+20+29+29+38-1-1-1-1-1-1-1-1-1-1+26+38-1-1-1-1-1-1-1-1-1-1-1-1-1 core_weightsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 selected 2 102 +300+25+0-1+0+2+0-1+0+1+0-1-1+1+0-2-1+1+0-2-1+1+0-2+0-2+0-1+0+3+0+3 core_weightsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 0 2 98 +40+17+2+2+1+1+1+1+0+0+0+0-2-2-2-2-1-1-2-1-3-3-3-3-3-3-3+1+1+1+1+1 core_weightsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 1 2 114 +172+47+23+22+0+1-3-1-3-1-3-1-3-1-3-1-3-2+0+0+0+0+0+0+0+0+0+2+4+4+4+4 core_weightsntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 2 2 1810 +185+62+16+15+51+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 3 2 1987 +134+39+20+25-1-1-2-45+1+1+1+1+1+1+1+1+1+11-1-1-1-1-1-1-1-1-1-1-1-1-1-1 core_weightsntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 4 2 1834 +143+39+1+14+7+17+7+17+7+17+7+17+7+17+7+17-21-39-5-39-5-39-5-39-5-39-5-39-5-39-5-39 core_weightsntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 5 2 1964 +159+83-13+31+4+2+31-11+5+0-11+5+0-11-45-11+5-5+5-3-3-11+5-3-3-11+5-3-3+10-11+5 core_weightsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 selected 2 103 +529+12+2-1+2+1+2+1-2-1-2-1+2-1-2+0+7-1-2+0+2+0-2+0+1-3+1-1+2-1+2-1 core_weightsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 0 2 98 +37+15+3+3+2+2+2+2-1-1-1-1-2-2-2-2+7-2-2-2-3-3-3-3+0+0+0+0+0+0+0+0 core_weightsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 1 2 119 +135+70+18-4+1+1-1+1-1+1-1+1-1+1-1+1-2-1-1-4-1+1-1+1-1+1-1+1-1+1-1+1 core_weightsntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 2 2 1970 +115-16-36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 3 2 2107 +132-33-46-22+22+16+22+16+22+16+22+16+22+16+22+16+22-38-9-9-9-9-9-9-9-9-9-9-9-9-9-9 core_weightsntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 4 2 1939 +130+44+10-4-16-3-3-3-3-3-3-3-3-3-3-3+7-2+1+1+1+1+1+1+1+1+1+1+1+1+1+1 core_weightsntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 5 2 2092 +155-51-18+18+5+0+0+0+0-3+31+0-3+31+0+0-29+31+0+0+0+0+0+0-25+31+0+0+0+0+0+0 core_weightsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 selected 2 116 +226+56+22+3-2-3-2+2-2+2-2+0-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 core_weightsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 0 2 112 +93+41+28+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 1 2 149 +153+25+5+5+3+5+2+1+1+1+1-5+1+1+1+1+0+8+4+2-5-2-5-6-5-8-5-5-1-6-6-5 core_weightsntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 2 2 2438 +1007+34-19-5-6-6-6-5-11-5-11-5-11-5-11-5-14+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4 core_weightsntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 3 2 2612 +579+1-21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-81+23+0+0+0+0+0+0+658+13-16+40-35-26 core_weightsntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 4 2 2402 +210+62+44-6+14+0+0+0+0+0+0+0+0+0+0+0+29+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 5 2 2614 +160+37+8-43-25+15+65-44-44-44-44-44-44-44-44-44-44-28+3+20+20+20+20+20+20+20+20+20+20+20+20+20 core_wforcesntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 selected 653 157 +1679+226+10+2-6+1-5+2-6+1-5+2-6+1-5+2+1+1+2+1-5+2-6+1+2+1-6+1-5+2-6+1 core_wforcesntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 0 653 148 +557+127+41+32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 1 653 159 +48+20-1+0-5-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 2 653 157 +504+28-3-2-3-1+0-3-3-3-4-3-4+0-3-1-1+1-2+2+1+1+1+1+1+1+1+1+1+1+1+1 core_wforcesntrup653 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 3 653 152 +414+42+0+0+0+0+0+0-1+0+0+0+1+0+0+0+0+0+0+0+0+0+0-6+0-6-6-6-6-6-6-6 core_wforcesntrup653 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 4 653 161 +864+50-6-2-4-5-2-4-1+4-1-4-4-5+4-6-4+5+0-6-5+2+4+3-1+3+3+3+3+3+3+3 core_wforcesntrup653 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 5 653 184 +267+91+43+26+1+0+1+1+1+1+1+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+2+1 core_wforcesntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 selected 761 157 +822+191+6+1+2+2+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 0 761 161 +97+27-1+1-1-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 1 761 165 +679+97+34-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 2 761 179 +469+37+14+2-2+2-1+3+0+1+0-1+0+5+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1 core_wforcesntrup761 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 3 761 175 +829+44+1-3+0+1+1+1-1+1+1-1+1-2+2+1+1+1+1-1+1-1-1-1-1-1-1-1-1-1-1-1 core_wforcesntrup761 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 4 761 194 +790+51+1+2+1+2+1+5-3+2+0+1+0+0+0+1+0+1+0+1+0+1+0-2+0-2+0-2+0-2+0-2 core_wforcesntrup761 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 5 761 198 +478+71+49-1-2-1-3-6-5+0+0+0+0-5-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup857 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 selected 857 157 +914+39-2-2+4-4+0-5+0-6-3+0+4+0+1-6-3+0+4+0-3+4+0+4+0-6-3+0+4+0+4+0 core_wforcesntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 0 857 162 +416+215+74+38+17+15-1+1-1+1-1+1-1+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 core_wforcesntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 1 857 167 +403+115+25+2-3+4-4+1-3+0+1-1+0+1-4+0+0-1+4+0-4+1-3+2+1-1-1-1-3-1+4+0 core_wforcesntrup857 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 2 857 162 +601+70+23+0-1-3+0+0-1-3+0+0-1-3-3-1+0+0-1-3+0+0-1-3+0+0-1-3+0+0-1-3 core_wforcesntrup857 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 3 857 151 +127+22+17+3+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup857 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 4 857 187 +1184+104+3+2+2+0+0-1+2-1+3-1+0-1+1-1+4+0-3-2+3-1+0-1-3-1-3-1-3-1-3-1 core_wforcesntrup857 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 5 857 200 +292+134+53+55-4-1-3-1-3-1-3-1-1-4+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 selected 953 172 +531+207+64+38+0+1+0-2-1+0+0+0+0+0+0-1-1+0+0+1-2+0-2-2-1+0+0+1-1+0+1-1 core_wforcesntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 0 953 171 +85+52+35+2+0+0+0+0+1+0+0+2-2+1+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 1 953 175 +485+179+67+2+0+3+0+0+1+0-1+2+2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+1+1-1-2-1 core_wforcesntrup953 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 2 953 183 +678+99+15+1-2+2-2+2-2+2-2+2-2+2-1-4+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 core_wforcesntrup953 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 3 953 179 +802+45+1-3-2+2-2+2-2+2-2+2-2+2-2+0-2-1+2+0-1+2+0-1+2+0-1+2+0-1+2+0 core_wforcesntrup953 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 4 953 200 +1590+60-4-3-2+2-1+0-1+2-2+2-1+0+0+2+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 5 953 215 +306+79+22+21+20+0+2+0+0-2+3-1+0-2+3+2-2-1+2-2+0-2+0-2+0-2+2+1-2+3+2-2 core_wforcesntrup1013 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 selected 1013 155 +1470+68-3+0-3-3-3-3-3-1+1+0+0+0+0+0-1-1+0+0+0+0+0+0+0+1+1+1+1+1+1+1 core_wforcesntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 0 1013 169 +331+52+20-3+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+5+0+0 core_wforcesntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 1 1013 174 +376+107+24+1+2+1+1+2+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 2 1013 156 +818+52+17-2-3+0-5+0+0+3-5-3+0-1+0+0+0-1-5+0+0-1-4-1+2+5+2+2-1+5+2+2 core_wforcesntrup1013 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 3 1013 155 +151+18+13-3+0-6+0+0+0+0+0+0+0+0+0+0+1+0-4-3+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 4 1013 184 +832+70+8+6+4+3-1-5-3-2+1-2+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4 core_wforcesntrup1013 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 5 1013 240 +331+64+31+38+7+29+7-12-11-11-11-12-11-12-11-12-11-12-11-12-11+8+7+7+9+8+7+9+8+9+7+7 core_wforcesntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 selected 1277 210 +703+159+29-1-1+0+0+0+0+0+0-2+0+0+0+0-1+0+2-1+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 0 1277 208 +143+95+23+17+2+1+1-1+1-1+1-3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 core_wforcesntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 1 1277 215 +451+209+95-1+1-3-3-2+2-1-6+0+0-3+2-1-6+2+4-4+4-4+4-4+4-4+4-4+4-4+4-4 core_wforcesntrup1277 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 2 1277 212 +1064+114+2-2-2+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0-2-2-2-2-2-2-2-2-2 core_wforcesntrup1277 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 3 1277 212 +488+135+44+0+0-2+0-2+0-2+0+0+0-2+0+3-2+5+4-2+0-2+0-2+0-2+0-2+0-2+2-2 core_wforcesntrup1277 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 4 1277 249 +410+98+26-1-3+0+0+0+0+0-1-1+0+0+0+0+1+0+0+0+0+0+0+0+0+0-4+0+0+0+0+0 core_wforcesntrup1277 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 5 1277 323 +627+53-21-26-26-29-29-29-29-29+0+2-2+1+1+1+1+1+1+1+1+1+1+1-2-2+13+2+1-1+0+1 kem_sntrup653 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair selected 994 767219 +36367+6185+2244+580+491+29+8-82+478-260-180-212-86-497+1573+69-292-381+536-7-461-505+342+92+51-87-614-380-5-693-156+1347 kem_sntrup653_enc selected 897 44278 +7834+965+298+142+224+166+35-53-6-5+26-93-37-70-18-68+87-3+15-74-8-37+46-67-48-64+62-30+59-79+5+0 kem_sntrup653_dec selected 32 65223 +6949+611+256+107+179+204+204-66+126-125+59-14+37-116-20-162-136+48-22-63-86-93+11-21+8-44-11-13-1-71-119+186 kem_sntrup653 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 0 994 769974 +3749+1092+500-205-643-91+94-615-236+1901+236+396-278-266-204+247-751-171+143-574+90086-566-45-284-121+327+2153-152+338+164+19-9 kem_sntrup653_enc 0 897 45071 +2424+508+192-50-1-26-2-7+47+46+57+56+56-110+137-6+41+10-176-91+121-101-35-38+13-47+14-18-41-33-3-120 kem_sntrup653_dec 0 32 65347 +2334+427+207-74+81-65+126+13-7-50+1-5+168+4-21-92-26-92+29+139+31-19-99-106-70+11+7+62+26+6+0-77 kem_sntrup653 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 1 994 767284 +4073+78+351+258+1669+519-253-43+74-48-633+155-569-297-455+84+229+69-416-86-132+1393-536+80-32+107-38-177-44-85-132+168 kem_sntrup653_enc 1 897 44223 +1703+483+10-62+47-28-16-134+24+26+26+27-64-48+83-2+15-72+6-98+8-2-42+8+68+8-16-71+116-64+35-23 kem_sntrup653_dec 1 32 65293 +2142+409+176+18-2+242+0-46+5+76-46-9+17+9+11-10-52+46-62-91+4-47+3-4+25-19+9-109+74-92-20-14 kem_sntrup653 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 2 994 770641 +3753+565+448-35-328+482-66+251-225-143+18+260+129+72-20+263-502+511-15+33-148-353-179-62+158-239-265+153+16-80-152-4 kem_sntrup653_enc 2 897 44392 +2507+773+271+156+138+126+135+231+22-39-26-60+1618-27+38-13-78-58+15-93-140+6-39+15-38-62-64-8+1-16-65-21 kem_sntrup653_dec 2 32 65209 +2674+162+143-10-86-27-13-40+18-18-43-125+24+12-107+52+50+101+59-77+21-32-31+236-27+98-53+44-39-98+72-20 kem_sntrup653 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 3 994 762112 +1504+516-36+418+91020+150+170-73-119+20-38-268+1013-112+219+19-77+135-6-191-198-32-432-390-200-361-31+249-234+1720+452-223 kem_sntrup653_enc 3 897 45004 +3118+527+125+118-19+83+13+69-61+79-11-50-14-46-6-22-19+5+53-46-45+28+3+58-32-18-61-11-13+28-26-4 kem_sntrup653_dec 3 32 65255 +2614+290+237+158+3-66+85+130-24-40-82-22+46-41+115+1-95-16-10-71-91+192-126+84+135-36-39-23-126+41-55-12 kem_sntrup761 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair selected 1158 939803 +17738+5511+2461+1247+920+158+1039+82-32-384-249-192-349-167-528-238-104-15-346-135+1573+665+43+174-38+7-97+516-976-283+31-788 kem_sntrup761_enc selected 1039 47008 +5685+762+432+147+110-56+54+84+37+21+8-35-75+17-127+188-92-68+709-61-34+70-109-126-81+37-127+8-15-32-45+32 kem_sntrup761_dec selected 32 69013 +7278+828+287+159+118+62+118-29-33-68+76+44+52-101+108+17-54+44-38-45-47+18+26-37-94-25-9-25-22-54-68-64 kem_sntrup761 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 0 1158 940113 +4786+2139+1171+401-134-134-368-751-192+191+1147-162-258+91-201-283+370+40-15-92-293+316-9-1+1330+294+160-449-203-18-28+15 kem_sntrup761_enc 0 1039 47438 +2481+619+108+9+44+224+51-52+71-38-59+18+21+12-170-84-38+47-224-181-10+6+15-143-94+26-178+28+39+9-26-14 kem_sntrup761_dec 0 32 68532 +2951+512+186+36+28-2+39+4+104+64+31+1-107-34-31+59-56-90-96-157+41-25-112-15-4-25-56-30-91+53+33-14 kem_sntrup761 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 1 1158 939373 +4520+957+378-293-311-717-325-549-4+208+51-233-177-618+1211-92+418+313+19+379-301+225-393-147-144-66+197-122+1454+350-63+31 kem_sntrup761_enc 1 1039 46952 +1724+103+7-3+46-12+84+137+54-29-2+7-12+20+15+0+14-29+67-58-18-16+1+14-24-43-26-29-17-47+75+9 kem_sntrup761_dec 1 32 68919 +1809+210+76+163+134+139-5+15+55+66+55-13+25-209-99+25-97+23-24-107+20-66-75-32-56+7-33+107-38-187-23-67 kem_sntrup761 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 2 1158 947918 +2323+635+416-89+1254-350-258+46-222-132+178-197+78+224+304+136+206+187+1297-97+75-533-64-223-140-115-72-169+84-251-38-30 kem_sntrup761_enc 2 1039 47605 +2206+336+260+44+69+93+58-20+17-56-44+1+50+9-237-1-140+7-154-39+34+0-57-78-13-54-144+107-16+23+46-59 kem_sntrup761_dec 2 32 68618 +2479+409+100+24+80-21-52+72+12+10+5-27+59+6-86+104-137-54-82+116+153-113-55+41-146-50-75-124+38-62+39+24 kem_sntrup761 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 3 1158 939942 +1850+1385+194+665+68-259+9-576+1156+104-307+84-129-221-23+343-430+88-286-363-512+829+280+132-241+78-38+107+297-707+51-531 kem_sntrup761_enc 3 1039 47478 +3242+567+114+216+22+38-74-5-45+30+97-2-131+38-59-27-18+7+23-20-142-68-9-31-61+38-8+11-16+67-1-73 kem_sntrup761_dec 3 32 68676 +3043+519+184+86+50+1202+199-42-16-52-23-141+78-16-45-84+147-74+1+81-32-13+83-23+45-20-78-78-45-120+15-65 kem_sntrup857 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair selected 1322 1271818 +24162+6303+2082+471-415+435+730+766-68+334+103+845-712+162-831-363-834+586-837+379-821+76-370-672+185-866-261-1656+717+271-261-1170 kem_sntrup857_enc selected 1184 58349 +6302+610+309+109+183-2-6-41+251+80+111+35-74-3+252-69-5+12+36-146-44-80-78-184-102+81+53-181-137-86+4-52 kem_sntrup857_dec selected 32 89379 +7638+889+462+144+157+64+90+10+30-77-13-42+15-117-34+0+10-58+58-114-44-22+142-94-39-88-51+12+119-86+20-24 kem_sntrup857 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 0 1322 1148933 +5199+1375+1457+831+66-208+125+20-604+304-163+19-56+101+599-425+293-223-129-114-64-156-60+32+117+652-1146+255+1-649-175-499 kem_sntrup857_enc 0 1184 58680 +3431+852+454+126+52-47+207-146+230-95+40-127+98-123-18-145-33+12-140-43+17+13-103-51+123-78+122+43+33+14-49-154 kem_sntrup857_dec 0 32 89554 +2117+556+327+70+191-44+60-64-98+77-199+86-52-25-31-89+58-41+37-100-43+44+3+793+285+71-206-65-13-165-40-57 kem_sntrup857 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 1 1322 1271242 +3680+1213-68-361-557+338-114+706-398+396-266-1063-1024+1022-732-232-204-1498-37-118+1385-404+705+394+1120-294-384+484+351-973+1243+119 kem_sntrup857_enc 1 1184 58280 +2131+829+361+97+111+97+153+57-137+152-55-46-46-52+11-16-2-28+114-41-82-4-88-2-38+2-234+6-33+38-80+2 kem_sntrup857_dec 1 32 89373 +1759+445+311+205+12-65-68+60+26-46+9-106+145+43-63-70+121-54-131-39-5-41-163-111+62+64+15+128+80+14-78-102 kem_sntrup857 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 2 1322 1150486 +2214+821+456+1060+1084-107-49-135-759+95-84-319-108-124-712+490+169+31-482-530+46-219-99+452+100-420+694+162+181-76-602+1 kem_sntrup857_enc 2 1184 58874 +2518+845+443+81+102-62-56+55-70+0-55+49-104-13-97-27-22-1+279-117-36+53+21-51+92+43+36-96-20+21-141+7 kem_sntrup857_dec 2 32 89646 +2051+353+232-22+126+45+51+59+71+103+54-203-120+18-16-124-39-163-67-103-119-108+81-76-22-210-22-31+98-16+36+50 kem_sntrup857 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 3 1322 1216611 +4442+699+120+731+57+281+278+110-296-41-887+698-253-165+22-103-134+15-294+28-272-93+75-221-109+65-3+343+150+211-407-297 kem_sntrup857_enc 3 1184 59937 +1779+615+405+146+62+68+53+16+11-38+172-38+83+78+41-192-44-86-96-111+17-13-42-97-29-109-16+205-40-13-93-132 kem_sntrup857_dec 3 32 89406 +3207+350+73-69-20+149-72+21-62-65-96-35+37-34+39-16+98+75-88+113+20-33-19+39-68+16+22-35+0+69-3-60 kem_sntrup953 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair selected 1505 1488084 +20499+5579+2631+999+611-29+119-503-44-843-303+348+324+178+6892+3603+270-790+14-834-1150-876+1058+175-501-1039-57-439-1172+81-487+352 kem_sntrup953_enc selected 1349 64012 +5782+912+487+181+204+196+84+38-24+85-6-28-1+1-59+2-32-137+117-186-41-64+58+12-62-172-121-110-15-84-146+68 kem_sntrup953_dec selected 32 94010 +8270+672+315+113+75+115-35+39-20-32-83-40-65+149+21+81-37+60-56-163+55+72-56-9-89-2-102-26-74-25-119+27 kem_sntrup953 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 0 1505 1488240 +3073+1126+958+2660-68-1078-945-1478-1130-466-121-1078+486-1006-406+126-217-491-190-296-38+1464+441+271+196+2068+578+268-317+53+890-189 kem_sntrup953_enc 0 1349 63912 +1488+356+143+181+278+108-93+62-153+41-188+16-14-29-45+27-94-12-155-20-28+57+12+17-30-27-30+115-89-45-52+170 kem_sntrup953_dec 0 32 94037 +2206+359+212-49+0-25-69+97-172-140-166-98+67-40-128+41-8+93+154-11+60+24-29+26+16+82+21-28-3-12-149-31 kem_sntrup953 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 1 1505 1484943 +4740+2519+401-73-803-568-286-713-500-508+1998+2595+310-203+549+121-825-384-345+591+654-289-271+137+2560+3535-757-609+813+261-608-27 kem_sntrup953_enc 1 1349 62752 +2399+354+122+78-103+29-34+85+2-53-50-20-18-73-21+7-30+26-29+20-75-27-1-3-21+9-84+128+79+80+71-213 kem_sntrup953_dec 1 32 94024 +4151+822+314+377+78+79-45+40+53-197-110+39-32-34+77-78-3+56-109-29-87-111-45-105+18+76-22-114+118+27-17-87 kem_sntrup953 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 2 1505 1478555 +6086+1282+588-557-554-8-386-835-247+686+275+313+370-817+5-435-138-203+430+533-1019-647-45-163-49+768+1081+1413-302+32-591+123 kem_sntrup953_enc 2 1349 64054 +2129+523+181+219+86+99-41+277-80+105+27+0-180+12-41-135-185+127-84+2-60+91-211+94-279+44-124+40-291+11-116-104 kem_sntrup953_dec 2 32 94772 +2278-219-602-631-754+875-779+595+842+631+610-317-639-740+522-590+326+603-432+1699-662+1693+997-300-949+361+1887-512+232-486+213-647 kem_sntrup953 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 3 1505 1493707 +7294+5302+3785+6637+3468+3178-2884+4851+3653+5442+5042+2639+5984+5041+1727+6134+4595+1679-5418-5486-3960-4950-4903-5057-4354-4911-5859-4809-5480-5752-6204-3747 kem_sntrup953_enc 3 1349 64357 +2909+458+27+40+58-12-50-103-121-104-97-11+70-102-146+112-230+45-168+201+0-160-23+237-137+32+5+81-56+73+76+75 kem_sntrup953_dec 3 32 94027 +3463+698+340+84-76-83+16+1544+18-6-104+27+11+4-44-47-38+12+30+48+6+59-164+49-25+76-96-150-257-59-122+114 kem_sntrup1013 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair selected 1623 1680440 +21557+4646+688+950+1341+992-295+587-17-570-85+340+2676-959+910+43-497-507-111-422+1505+524-1641-407-1448-274-606+1114-495-1135-907-494 kem_sntrup1013_enc selected 1455 65535 +5353+653+343+315+175+61+197+117-45+122+47-22-100-29-134+14-140-109-55-119-146+12-118+1281+982+98+10-158-118-62-59-141 kem_sntrup1013_dec selected 32 96216 +10226+526+228-12+1646+109-10+35+1483-83+1011+171+1051+991+981-38-200+44-159-271+19-93-193-165-148-307+2-4-74-173-142-272 kem_sntrup1013 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 0 1623 1630822 +5817+1241-217-486-418+175+737+1198-211-743-632+1100-494-1069+3214+185018+490-1017+1831+946-1137-112+121+199+238-798-377-2417-491+713-344-22 kem_sntrup1013_enc 0 1455 63344 +3212+667+309+254+91+241+34-99-67-25-24-28-48+137+113-7-102-52-78+3-78-92-11-98+66-56+10-105+17+166+23+9 kem_sntrup1013_dec 0 32 95756 +2894+544+556+277+8+39+114-90-3+344+274+119-124+67+89+57-156-46-279-198-127-171-123-86-204+54-49-131-109-47+239+197 kem_sntrup1013 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 1 1623 1652593 +3687+1373-186+855-468-1813-1364-1109+326+1088-240-92-1181-354-291-519-77-1137+3211-105-110-500-1954-259+1249-765+485+819+1348+201+1586+1108 kem_sntrup1013_enc 1 1455 63107 +2078+711+193+236+115+72-47+38+51+319+143+150-231-41-156-36-175-200-13-213-24-127-187-93+109-184-69-84-9+550+130-107 kem_sntrup1013_dec 1 32 96002 +2689+627+1716+294+216-8+57-82+75-12+8-7-142+3-39-61-123+20+71-206+3+78-24-158-116-48+2+61-70-81-26+1412 kem_sntrup1013 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 2 1623 1632429 +5686+2298-125-371-354+607-1117-1424-1850-622+938-1417-826+410+1099-769-247+704+1138+1768-628+882+1443+32+304-352+141-439-1018-537+185207-32 kem_sntrup1013_enc 2 1455 63691 +2309+527+269+306+233-10+284-94+87-139+71+67+126+55-222-168-175-4-106+109+1+19-181-154-201+81-265-254+166-10+32-181 kem_sntrup1013_dec 2 32 95820 +2544+411+138+31-47-7+187+45-20-91+22+164-113+85-49-149+131+98-99-79+278-30-174-42-87+111-77-42-79+113+3-109 kem_sntrup1013 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 3 1623 1676608 +5822+4605+3651+2201+2818+2147+4246+3902+5128+6796+8779+5671-2885-94+3913-2885-3211-1360-1381+181364-2609-2680-2312-3628-2404-2072-2232-2663-2463-1699-3383-2649 kem_sntrup1013_enc 3 1455 65532 +2134+354+368+130+319+147+141+31-70-52+74-87+64-93-6-84+12-142-77-68+0-79+95-12+111+49-90-49-1-66-105-8 kem_sntrup1013_dec 3 32 96064 +2476+669+147+223+22-1-135+30-38-304+46-27-70+12-211+6+3+69+19+42-51+114-30+93-125+139-92+1-8-33-149-62 kem_sntrup1277 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair selected 2067 2720370 +19792+3720+2036+64-105-1645-2151-1946-2068-1906+305247-2110-475-1115-2116+9410+7898+8924-590-373-2786-1074-1210-375-925-2207-2644+3828+142+5661+322529+6849 kem_sntrup1277_enc selected 1847 81871 +6746+1030+500+265+206-153+57+65-91+60+225-55-166-250-40+257-264+48-291-75+29-243-52-88+22+134-299+176-205+118-204+27 kem_sntrup1277_dec selected 32 122664 +7934+746+318+308+66-50-40-84-179+37-71-119+61-47+81-142-71+6-11+61-24+67-112+163+165+74-117+162-148-74-142+21 kem_sntrup1277 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 0 2067 2716837 +311475-976+672-1763-859-1631-238-1537+3997+17995+15325+19321+3621-1204-2278+481-2390-2715-3489-535+9586-1990+879+193+192-1892-1286-2057-2071+10018+8728+10501 kem_sntrup1277_enc 0 1847 81839 +2725+504+143+156+192-134+39-68-285-304-45+59-236+9+9+14+31+215-176+64+181-281-194-44-90+71+72+130-164+184-191-113 kem_sntrup1277_dec 0 32 122657 +3186+443+147+185+1768+44+5+35+3+4+100-11+87-170-84-36-31-6-71-133-31-47+28+198-108+93+132-93-161-114-70-80 kem_sntrup1277 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 1 2067 2705549 +1610+702-524+11606+1907+42+462+7741+1919-656-310-89-962+63+115-215-37-949+291-880+202-434+220+421+174-561-559-594+246-1190-169+9229 kem_sntrup1277_enc 1 1847 81551 +2279+157+117-105-124+265-131-165+381+249+42-60+95-263-139+164-149-167+68-158-148+109+34+43-242+121-114+133-163+208-57+93 kem_sntrup1277_dec 1 32 122669 +4515+821+19+75+72+25-98-75-135-44+71+80+28-106-31+93+58+7-4-98-6-222+117-35-126-32-116-60+33+143-54+31 kem_sntrup1277 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 2 2067 2720419 +1468+669+370-296-63-246-542+3273+10798+308192-999-1287+1619-598-958-468-458+203-435-406-1682-328+283+11880+326029+15207+5525+309-1594-1273-64-710 kem_sntrup1277_enc 2 1847 81751 +2629+810+121+673-219+80+204-142+264-151+261-158+167-240+37-238+43-33+56-21-218+184-199+129-192+120-160+55-80-46-100-68 kem_sntrup1277_dec 2 32 122783 +2762+722+222-115-101-123+58+131+11-13-93+136-110+120-134+73-93-72+67-81+77-97-114+179+58+149-70-100-37+26+50+46 kem_sntrup1277 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 3 2067 2566338 +311183+937+68-256-542-1045-749+305640-1126-541+161-381-890-369-737+170-949-1309+1021+12944+9077+22046+19517+317105+1544+1013-643-859-804-1032-696+2472 kem_sntrup1277_enc 3 1847 82316 +2232+360+212+191-71+134-215-174+196-276-26+72-227-47+75-86+40+35-210+201-61-128+131-217-80+85-122-248+118-210+59+209 kem_sntrup1277_dec 3 32 122459 +3086+421+506+96+292-46+25-178+122+70+6-87-116-108+89+129-175+64-133-182+3-112-19-57+27-50+43-13-4-31-236+69 libntruprime-20241021/benchmarks/skylake-samba0000644000000000000000000156335714705505542020000 0ustar rootrootntruprime version 20241008 ntruprime arch amd64 cpuid 756e6547 6c65746e 49656e69 65746e49 2952286c 6f655820 2952286e 55504320 2d334520 30323231 20357620 2e332040 48473030 0000007a 00000000 000506e3 00100800 7ffafbff bfebfbff 00000000 029c67af 00000000 bc002e00 00000000 00000000 00000121 2c100800 0000001f 00000000 00000000 00000000 00000000 cpucycles selected persecond 3000000000 cpucycles selected implementation amd64-pmc cpucycles selected 0 44 +46+25+26-1-1-1-1-1-1-1-1-1-1-1-1+0+0+0+3+0+0+0+0+3+0+0+0+0+3+0+2+0 randombytes selected 0 52 +3730+101+34+32+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1 125 +490+26-2+0+1+0+0+0+0+1+1+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1 randombytes selected 2 128 +28-3-4-1-1-1+0+0+0-1+1-1+0+1+0+0-1+0+1+0-1-1+1+0+0+1+0+0-1+0-1+0 randombytes selected 4 127 +9-2+0+0+2+1+1+1+1+1+0+1+1+0+0+1+0+0+0+1+0+0+2+1+1+1+0+0+0+0+0+0 randombytes selected 7 127 +2-4+0+0+0+1+0+0+0+0+1+1+1+0+0+0+1+1+0+0+0+1+0+0+0+0+1+0+1+0+0+0 randombytes selected 11 127 +4-3+1+0+1+1+0+0+0+0+0+1+1+0+0+0+0+0+1+0+0+0+0+0+1+0+1+0+0+0+0+0 randombytes selected 17 127 +2-4+1+0+1+1+0+1+0+0+1+1+1+0+0+0+0+0+1+0+0+1+0+1+0+1+0+1+0+0+0+0 randombytes selected 26 127 -1-2+1+0+0+1+1+1+0+0+2+0+1+0+0+1+0+0+1+0+1+1+1+1+0+0+2+0+1+0+0+1 randombytes selected 40 127 -3-3+0+1+0+1+0+0+0+0+1+1+0+0+1+1+0+0+0+1+0+0+1+0+1+0+0+0+0+0+1+0 randombytes selected 61 127 +3-3+1+1+0+0+1+1+1+0+0+0+0+1+1+1+0+0+0+1+0+0+1+0+1+0+0+0+1+0+0+0 randombytes selected 92 127 +2-3+0+1+1+1+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+1+0+1+1+0+0+1+0+0+0+0 randombytes selected 139 128 +5-3-1-1-1+0-1+1-1+0+1-1+0+0+0+0+0+0+0-1-1-1+0+1+0+0-1-1-1+0-1+0 randombytes selected 209 127 +2-2+0+0+0+0+0+0+0+0+1+0+1+1+1+1+1+1+0+1+1+1+1+1+0+0+1+0+0+0+0+1 randombytes selected 314 126 +1-3+0+0+0+1+1+0+0+0+1+0+1+1+1+0+1+0+0+1+0+1+1+0+0+0+0+0+0+0+1+0 randombytes selected 472 128 -2-5-1+1-1-1-1+0-1-1+0+0+1-1-1+0-1+0-1-1+0+0-1+0+0+0+1+0+0+0-1-1 randombytes selected 709 127 +1-4+0+1+1+1+0+1+0+0+0+1+0+0+0+1+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0 randombytes selected 1064 127 +0-1+0+0+1+0+0+0+0+1+0+1+0+1+0+1+0+0+1+0+1+0+0+0+1+1+0+0+0+0+0+0 randombytes selected 1597 141 +12+9-16+7+9-15-14+7+9-14+7+7-14-14+6+9-15+6+8-15-14+9+8-14+8+9-15-15+6+8-15+5 randombytes selected 2396 169 +10-23-20-43-22+2+4+3+4+3+3-19-22+2+3+3+4+3+4-17-22+3+3+3+2+2+3+4-18-21+3+3 randombytes selected 3595 172 +6-25+0+0+0+0-1+0-1+0+0+0+0-2-1+0-1-1-1-1+0+0+1-1-1-1-1-1-1+0+1-1 randombytes selected 5393 172 +1-2-1+1-1-1-2+0-2+0+0-1+0-1+0-1+58+55+3+3+4-1+0+1-1+1-1+2-1+0+0-2 randombytes selected 8090 182 -15-32+0-2+1-29+0-30-1+1+0-29-1+0+1+1+2+1+1+1+0+1-31+0-1+1-30+0-1+1+0+0 randombytes selected 12136 153 +57+3+31+25+28+30+0-1-2-1+1-1+0-1-2-2+0+0-1-1+0+0-2-1+0+0-2+0-2-1-2+0 randombytes selected 18205 167 +11-13-19+6+2+5+4+6-20+4+4+4+4-22+4+4-21-21+3+5-20-19+5+5-20+5+4+5+4-28-6-12 randombytes selected 27308 146 +9+0+6+5+0+6+0-2-2+1+0-1-1+6-1-1+0+0-1-1+0-1+0-1-1+0-1-1-2+6-1-1 randombytes selected 40963 180 +4-4-4-4-4-5-4-5-5-24+21+7+3+2+3+3+2+3+3+3+3+2+3+2+3+3+2-3-3-5-5-5 randombytes selected 61445 204 +12-21-27-3-2-4+5+3+0+1-1+0+0-1-1-1-1+0+0+0+1-1-1-2+0-2+1-3+2+1-1+0 verify_897 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 selected 897 128 +1568+42+41+6+16-4-1+1+1-6-1+0+1-1+5-4-2+0+2+0-1+0-5+0-3-5-1-1+0-1-3-3 verify_897 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 0 897 128 +104+33+0+3-2+3-2-1+3+0+0+0-3+3-4+5+1+3-1+0+0+0+0+0-2-1+0+1+1+1+1+1 verify_897 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 1 897 132 +183+69+54+9-6+5+0-5+8-1+8-1-4-4-5+0-5-1-1-7+2-2+3-3-4-1-3-2+1+1+8+1 verify_897 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 2 897 139 +1489+102+13+0+1-1-2+1-1-1-2-1+1-1-1+4-1-1+1+0-1-1-1-1+2+1+2+2+1-1+1-2 verify_897 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 3 897 148 +1449+61+0+1+1+1+1+0-1+1+1+1+0-1+0+0-1+0+0+0-1+0-1+0-1-1-1-1-1-1-1-1 verify_897 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 4 897 277 +1428+54+33+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 5 897 194 +1471+76+48+46+0+0+1-1-2+0+1-2+2+4-2-2-2+1-1+0-1+0+0+0+0+0+0+0+0+0+0+0 verify_1039 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 selected 1039 140 +949+69+10-3-8-4-6+3-6+1+1-5+2+2+2+2+2+2+2+15-5-6-6+5-3+15-10-6-1+1+2-1 verify_1039 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 0 1039 134 +1540+75+23+1+1-1+3-1+2-1+3+2+0+0+0+1+1-1+0+2+0+0+0-1+0-1+0-1+0-1+0-1 verify_1039 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 1 1039 134 +90+42+37+16+14+5-3+0+0-2-4+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1 verify_1039 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 2 1039 161 +462+26-2-1+2-1-2-1-1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 3 1039 160 +503+66+5+4+0+0+1+1+0+0+1+1+0+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 4 1039 321 +124+45+32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 5 1039 223 +493+86+2+0+0+2+0+0+0-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+17+0+0+0+0+0+0 verify_1184 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 selected 1184 145 +534+36+34+21-1-1-1-1-2+3+0+3-1-1-1-1+1+3+1-1+3-1-1-1-2+3+1-1+3-1-1-1 verify_1184 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 0 1184 133 +82+78+11+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0 verify_1184 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 1 1184 138 +1312+84+60-5+4-5-7-1+6+0-1+2-1+9+2-5+1+6-2-3-4-4-5+2-6+8+4+8+1-4-5-5 verify_1184 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 2 1184 165 +472+71+36+11+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 3 1184 171 +1244+29+1+0+0+0+0+0+1+1+0+0+1+1+1-1+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0-1 verify_1184 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 4 1184 348 +412+37+16-1-1+0+0+0+0+0+0+0+0+0+0+0-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 5 1184 252 +433+58+35+33+18+0+2+0+0+0+0+0+0+0+2+0+2+0+0+0+0+2+0+0+0+2+0+0+0+0+0+0 verify_1349 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 selected 1349 165 +566+66+60+16-13-3+2+7+4-2+5-7-3+5-7-3+5-7-3+5-7-3+5-7-3+5-7-2-4+1-1+1 verify_1349 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 0 1349 154 +505+68+62-1+6-1-1+0+5+1+6-1-1+0+6-1-1-1+4-4-1+0-1+4-4-1+0-1+4-4-1+0 verify_1349 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 1 1349 156 +72+37+45+41+30+10+2+8+7+3+1-2-3-8-1-1-1-1-1-1-1-1-1-1-1-5+0-6+0-4-2+0 verify_1349 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 2 1349 178 +188+75+37-2+1+0+2-1+0+1+1+1+1+1+1+1+1+1+1+1+0+2-2-1-1-1-1-1-1-1-1-1 verify_1349 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 3 1349 188 +458+26+1+0-1+1+2+1-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0 verify_1349 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 4 1349 391 +1274+54+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+1+0+0+0+0+0+0+0+0+0 verify_1349 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 5 1349 266 +448+76+16+16+0+0+0+0+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 selected 1455 155 +514+108+26-1+0+1+0+0+1+0+0+10+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 0 1455 157 +101+57+22+21+21+2+2+2+0-5+3+3+0-5-2-1-2+0-6+1+3-5-3-6+0-5-2-5+2-5+2-5 verify_1455 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 1 1455 158 +527+51+8-5-2+5+0+10+2+5+3+3+5+8+8+8-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2 verify_1455 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 2 1455 195 +460+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 3 1455 200 +448+65+35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 4 1455 425 +435+59+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 5 1455 288 +434+48+22+22+0+0+0+0+0-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+20+0+0+0+0+0+0 verify_1847 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 selected 1847 177 +274+96+38+19+8-1-1-1-1+2+0+0+0+0+0+0+10+2+2-1-1+0+2+0-1-1+0+2+0-1-1+0 verify_1847 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 0 1847 181 +79+40+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 1 1847 185 +1389+145+84+20+18+4+1+4+7+11+1+4+7+11+1+4+7+3-2-5-7-7-7-7-7-7-7-7-7-7-7-7 verify_1847 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 2 1847 230 +664+83+22+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+14+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 3 1847 236 +415+59+8-1-1-1-1-1-1-1-1-1-1-1-2-1+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 4 1847 517 +403+71+50+0+0+0+0+0+0+0+0+0+0+0+0-1-1+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 5 1847 361 +467+84+36+32+0+0+0+0+0+0+15+0+0+0+0+0+0+15+0+0+0+0+0+0+0+0+0+0-2+2-2-2 hashblocks_sha512 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 selected 0 53 +1738+98-2-2+0+0+0+0-1-1+0-1+0+0+0+0+0-1-1+0+0+0-1+0+0+0-1+0+0+0-1+0 hashblocks_sha512 selected 1 53 +25-2+28-3+0-3-1-2-2-2+0+26-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 2 52 +26-2+1-2+1-2+1+0-1-1+0-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hashblocks_sha512 selected 4 51 +36+0+1+0+1+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 7 52 +5-1+0+0+2-1+2-2+1-1+0-2+2-1+0-2+2-1+0-2+2-1+0-2+2-1+0-2+2-1+0-2 hashblocks_sha512 selected 11 52 +3-2+2-1+0-2+2+0+1-1+1+0+0+1+0-1+1+1-1+1+1-1+1+1-1+1+1-1+1+1-1+1 hashblocks_sha512 selected 17 51 +6-1+5+1+0+0+1+0+5+2+1+1+0+3+2+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0 hashblocks_sha512 selected 26 52 +5-1+0+0+2-1+2-2+1-1+0-2+2-1+0-2+2-1+0-2+2-1+0-2+2-1+0-2+2-1+0-2 hashblocks_sha512 selected 40 53 +4-3+3-2+0-2-1-1+0+0+0-2+2+0+0-1-1+0-1+0-1-2+2-1-2+3-1+0-1+0-1+0 hashblocks_sha512 selected 61 53 +4-3+3-2+0-2-1-1+0+0+0-2+2+0+0-1-1+0-1+0-1-2+2-1-2+3-1+0-1+0-1+0 hashblocks_sha512 selected 92 53 +4-3+3-2+0-2-1-1+0+0+0-2+2+0+0-1-1+0-1+0-1-2+2-1-2+3-1+0-1+0-1+0 hashblocks_sha512 selected 139 761 +1911+86+4+52-5+4-6-2-1+2-5+2+5+0+3+0+3-4-3+8-1+3-1+1-5-6-2-3+1-6-3-3 hashblocks_sha512 selected 209 761 +35+19+5-3+2-3+3+8+2-3-1+2+3-7-2-2+10-7+2-5-1+0-4+1-1-1-1-6-7+4-3+3 hashblocks_sha512 selected 314 1433 +109+48+52-3-5-3+0-5+3+7+2-3+1+1-3+3-5+0+4+3+3+0-6+13-10+1-3+2+2+4-2-5 hashblocks_sha512 selected 472 2104 +119+47+27+14+0+7-6+1+5-2+3-6+13-10+1-1-2+3+1-10-1-2-10+1-3-12-6-11-2+52+12+5 hashblocks_sha512 selected 709 3447 +122+32+59+37+7-2-3+4+2-6+5+13-5+2+2-12+0-13-11-7-7+4-4+54-6-1-15-6+31+7+14-14 hashblocks_sha512 selected 1064 5453 +91+38+30+7-4+7-6-2-4-15+1-9-6+15-15-13+0+19+12+15+0-10+12+31-9-3-11-12-25-3+6+2 hashblocks_sha512 selected 1597 8139 +180+113+23+4-2-5+7+12+4-5+17+5-18+5-4-5+10-3-14-20+16+0+16-12+18-14+4-8-30-9-6-17 hashblocks_sha512 selected 2396 12168 +137+87+19+8+49-5-26+9-1-15-58-28-16-1-2+0+14-21-16-2+4-31-10-10+29-35+61+17+0+6+40+9 hashblocks_sha512 selected 3595 18898 +145+43+72+33-45+1+7-45-37-46+0+39-4+6-16+16-21-36+17+40+4-61-38+54+12+3-52-21-18+35+16-1 hashblocks_sha512 selected 5393 28305 +178-11-46-2-34+4+16+4+33+20+7-28+1+22-35+0-43+5-2-14-43-16+41+13+1-51+50+11-39+9-6+56 hashblocks_sha512 selected 8090 42397 +85+13+10+5+8+39-11-12-38-62-78+57-77+15+46+40-26-2-19+23+14+2+31-55+16-19-14+46-17-33-21+9 hashblocks_sha512 selected 12136 63182 +133-26+72+67-42-80-53+66+13-54+15+82-4-35+1026+61+23+43-9-67-91-20+13-83+12+1-125-7-2+12-13+29 hashblocks_sha512 selected 18205 95393 +91+106+7+47+23-14-24+78-2+69-111-1-7-63+11-85-29-42-5+59+45-54-20+68+46-31-8+88-25-88-69+10 hashblocks_sha512 selected 27308 143039 +279-92+40-86-29-35-67+15-10+126+23+117-92+55-29-10-57+39-30+49+1+18+26-119-42-38+37+28+18+48-4-15 hashblocks_sha512 selected 40963 215471 +291-67-3+79-35-29+53+71-81+857+92-23+27-89+29-87-178+79-13+18-31+52+207-44-109-126+4+8+12+123-25-114 hashblocks_sha512 selected 61445 323168 +255-47+9+97+22+28+32-170-62+46-170-39+55+54-46-58-129+88+67+671+220+10+68+28-61-51+55-70-74+13-53-198 hashblocks_sha512 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 0 0 50 +79+47-1-1-1-1-1-1-1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0 hashblocks_sha512 0 1 51 +26-2+2-2-1-1+2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 hashblocks_sha512 0 2 50 +26-1+0-1+0-1+0-1+0-1+0-1-1+31-1-1-1+0+3+0+3+0+3+0+3+0+3+0+3+0+3+0 hashblocks_sha512 0 4 51 +25-2-1-2-1-2-1-2-1-2-1-2+2-2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2 hashblocks_sha512 0 7 51 +25-2+2-2+25-2+2-2-2-2-2-2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2 hashblocks_sha512 0 11 51 +26-2+2-2+2-2-2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1 hashblocks_sha512 0 17 53 +25-4-4-4-4-4-4-3-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 26 51 +3-2-1-2-2-1-2-2-1-2-2+0+1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2 hashblocks_sha512 0 40 49 +5+0+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 61 49 +7+0+4+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 92 51 +26-2-1-2-1-2-2-1-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2 hashblocks_sha512 0 139 759 +176+70+58+1-1+3+0-1+0-1+1-4-4-4+1+2+2+6+1+3-7-1-5-5+0+3+3-4-1-3-3-1 hashblocks_sha512 0 209 760 +44+29+6-4+0+1+2+5+4-5+1+3+4+2+3+0+1+0+43-5-2-3-3-2-1+2-10-2-3-4-1-3 hashblocks_sha512 0 314 1434 +79+82+24+31-4-3-1+2-6-5-8-1-4+31+0+8+4+0+8+1+57+49-2-4-4-3-5-7+5-4+10-11 hashblocks_sha512 0 472 2105 +93+40+20+4-4-4-3-7+4-13-1-3-6-2+22-3+5+0+1+4-7+5+3+1-12+3+3-6-1-4+11+1 hashblocks_sha512 0 709 3447 +102+40+54+22+8-3+5-7+4-10-6-8+3-8-14+6-2-3+0+3-4-1+0+6+11-9-12+10-15-5-21+4 hashblocks_sha512 0 1064 5457 +205+34+17+6+11+11+0+9-12-2-6-4+3-22+13-5+8+14-6+3-5+0+0-5+0-18-5+0-7+11-7-5 hashblocks_sha512 0 1597 8142 +88+25+19-2+16+0-4+10-5+10-10-7-6-44+28-28+2+8-4-44+28-28+2+8-4-44+28-28+2+8-4-44 hashblocks_sha512 0 2396 12169 +147+109+43+38+58-9-25+39-8-5+41-15-4-25+22+14+1-7-4+1-17-12+29-4+3-18-9-41+6+6-10+3 hashblocks_sha512 0 3595 18899 +99+56+45+29-5-12-21-23+17+22+27+3-32+4-14-7+18+46-37-56+97-13-72-1+3+14-21+2-19-15+6+4 hashblocks_sha512 0 5393 28309 +175+27+13+65-3+37-21-5-10-22+26-8-33-1+8-22+14-35+53-13-10+46+7-19+5-24-24-65-28+42+22+24 hashblocks_sha512 0 8090 42393 +100-13+8-21+73-32+21+52+75+24-58+6+80-56-13+20+5-41-61-42-12+35+0+10-2-100-17+13-8-30+1+39 hashblocks_sha512 0 12136 63183 +202+51+34-26-2+96+9-15-34-20+23+89+81+37-49-13-20-37+38+69-38+0+2+17-14-62-13-19+12-19+10-21 hashblocks_sha512 0 18205 95386 +401+109+39-79-51+4+33+42-8-75+4-55+186+97+16-41+61-89+22-60-6-36-9-25+48+10-8-78-12-83+9+61 hashblocks_sha512 0 27308 143007 +226+25+45+109+8-54+115-39-41+28-16-95-91+74+34+70-87+12-64+4+19-81-54-42-8-5-18-34+40+9+27+130 hashblocks_sha512 0 40963 215447 +68+66-102+26+21-145-20+12-26-51+23-45-54+121+103+1091+79-172-17-103-17-94-219+6-68-36+109+46+102+22+82-9 hashblocks_sha512 0 61445 323113 +454+178-151-2+25-34+9+74-55-15+297+4-321-40+22-85+21-95-73-43+26+201+78+800+93+57+4-80+53-164-35-125 hashblocks_sha512 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 1 0 54 +119+73+19-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 hashblocks_sha512 1 1 54 +51+22-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 1 2 53 +52-2+0+1-1+1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1 hashblocks_sha512 1 4 53 +24-1+0-1+0-1-2+1+0-2+0+1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0 hashblocks_sha512 1 7 53 +24-1-2+1+0-1+0-2+0+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0 hashblocks_sha512 1 11 53 +24-1-2+1-2+0-2+0+2+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1 hashblocks_sha512 1 17 53 +70-2+0-1-2+1+0+0-1+1-1+1-1-1+1+1+0+1+2-1+2-1+2-1+2-1+2-1+2-1+2-1 hashblocks_sha512 1 26 53 +2-2+2+0-1+0-2+0-2+2-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3 hashblocks_sha512 1 40 54 +2-3+1-1-2-1-3-1-3+1-1+0-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 hashblocks_sha512 1 61 53 +2-2+2+0-1+0-2+0-2+2+0+1-1+3-1+3-1+3-1+3-1+3-1+3-1+3-1+3-1+3-1+3 hashblocks_sha512 1 92 53 +24-1-2+1+0-1+0-2+0+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0 hashblocks_sha512 1 139 761 +241+64+62-2+3-1+5+5+3+2-1+1+5-2+1-3-1-3+2-3-3-4+2+1+4-5+1-4-2+2-6-2 hashblocks_sha512 1 209 760 +46+10+4+3+2+9+3+2+2-1+0-6-1+0-4-1+3+0-1-2-1+4-7+0+2+1-4-5+2-7-2-1 hashblocks_sha512 1 314 1434 +99+92+14-2+0-2-10+6-4-1+41+7-3+5-1-1-4-10+6-8-8+10-12-2+4-7+5+4-4-1+2+1 hashblocks_sha512 1 472 2108 +84+29+8+3+0+8+12-11+6+5+2-4+2-5-3+0-13+1-8-2-4-13+3-2+3-3+1-7-3-2-3-1 hashblocks_sha512 1 709 3449 +104+42+48+34+1+12+14-3-7+0-3-11-7+4+5-3-5-2+8-4+8-13-3-5+3+2-3-8-6+2+8-13 hashblocks_sha512 1 1064 5459 +117+92+48-2-2-7-11-4+2+11-14+10+5-11+8+5+7-1-16-12-8+4+3+17+2-14-25+0-1-5-1+5 hashblocks_sha512 1 1597 8146 +132+59+34+10-9+2+37+10-10-3-4+2+73+10-22-14+8-33-22-13-1+3-5-4-15+9-5-21+2+1+8-12 hashblocks_sha512 1 2396 12185 +107+9+77-27-20+61-37+5+17+4-15-12-5+50-25+15+12-1+7-28-14-15+6-10-1-4+2+14+13+10-6-46 hashblocks_sha512 1 3595 18922 +88-28+5+17-44+17-68-4-2-22+19-11+42-17+27-18+23+24-15+2+12+14-19-53+8+0+15+3-15+9-20-9 hashblocks_sha512 1 5393 28319 +105-46+28-21+14+3+30-37+45-27-38+18+80+6+4-7-16-5-9-15+33-21-10+10+3-10-22+73-3-6+38+5 hashblocks_sha512 1 8090 42396 +104+13+17+51-28-24+34-16-8-54-73+60-7-2+26+51-5+44-12-19-7+28+62-15-44-24-63-45-47+1+61+67 hashblocks_sha512 1 12136 63192 +117+3+58-10-58+29+18-20+10-43+50+2+64+21-74-29+85-43-34-16-29-11-86-3+71+42-72+34+62-27+27-37 hashblocks_sha512 1 18205 95389 +101+71-13+50-40-25-36+79+63-53+49-160+22+1023+158-2-43+22-69+45-60-9+5+25-78+75-70-126-66+82-40-8 hashblocks_sha512 1 27308 143028 +235+109-54+4-51+0-24-76-26-32-3-109+26-25-55-2+18+13+129+43+111+18+0+44+138-32-18-25+123-81+135-5 hashblocks_sha512 1 40963 215429 +147-147+0-34-36-112-69+66-83+114+31-258+8-69+27-78-54+16+151-52-23-29+857-98+114+78+137+105+141-44+120-53 hashblocks_sha512 1 61445 323084 +428-34+30-110-17+99+20+95-141+114-76-49-143-17-15-51+11+147+171-98-113-171+90+0-75+117+51-162+1050-86+51+86 hashblocks_sha512 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 2 0 110 +533+88+0-1+0+1+1-1+0+1+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1 hashblocks_sha512 2 1 110 +81+1+19+0+1-1-1+0+1+0+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0 hashblocks_sha512 2 2 110 +43-4-1+1+26+1-1+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0 hashblocks_sha512 2 4 110 +34+0+24+0-1-1-1+11-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+1-1+1+0+0+1 hashblocks_sha512 2 7 110 +30-1-1-1-1-1+0+1+0-1+0+0+0+0+0+0+0+0+0+0+1+1+2+1+0+0+1+0+1-1+1+0 hashblocks_sha512 2 11 110 +10-1+0+0+0-1-1+0+0+1+0+0+1+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1 hashblocks_sha512 2 17 110 +33+1-1-1-1+1+1+1-1-1+0+0+0+0+0+0+0+0+0+0+1+1+2+1+0+0+1+0+1-1+1+0 hashblocks_sha512 2 26 110 +6+1+0+1+0+0+0+0-1-1-1+0+0+0+0+0+0+0+0+1+1+2+1+0+0+1+0+1-1+1+0+0 hashblocks_sha512 2 40 110 +11-3-1+0+1-1+0+1-1+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1 hashblocks_sha512 2 61 110 +6+1+23+0+0+1+0+0+0+2+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1-1+1+0+0+1 hashblocks_sha512 2 92 111 +28-1-2+0+1+22+1-1+0+0+0-1-1+0-1+0-2+0-1-1+0-2+0-1-1+0-2+0-1-1+0-2 hashblocks_sha512 2 139 1105 +695+139-17-3-24-22-25-19-3-7-8+17-14-9+6+5+5+7+9+5+9-10+8+10-17+9+11-14+13-12+3+11 hashblocks_sha512 2 209 1096 +115+18-5-14-11-9-15+1+8+3+23-2+1-5+6+22+1-7+6+7-7-16+19-5-2+14-2+17-2-7+16-7 hashblocks_sha512 2 314 2058 +186+59-23-30-9-22-9-13-21+3+10-22-5-3+1-3+13-16+23-9+14+24+21-7+6+3+23-8+12-2+0+10 hashblocks_sha512 2 472 3018 +220-7-15+4-12+12-6-10+12-11-7+10+11+15+6+7+15-4-8+10+4+10+25+6+0+1-13-15-15-11-41-36 hashblocks_sha512 2 709 4920 +249+2-45-1-24-30+0+3-21-10-12+23+13-17-36-6+8+11+15-25-26+1+1-18+8-6+23+20+30+24+5+10 hashblocks_sha512 2 1064 7790 +137-34-6+9-29-28+5-43+26-2-29+13+42+55+16+13-1-42+26+20-1-11-6-4+12-9-27-5-1+0-50+9 hashblocks_sha512 2 1597 11610 +108-8+12-45-41-6-8-23-16+2+0-8-13-17-8-18-25-1+20+10+3+14+3+32+11+2+13+37-18+13+34+25 hashblocks_sha512 2 2396 17356 +141-13+50-20+70-50+72-16+13+57-45+39-1+38+20+4+19-55+3+10-5+1-40-168-17-26+17-30+2-10-10+10 hashblocks_sha512 2 3595 26928 +119+17+11-4+16+46-26+49-39-34-72+56-41-15+37+66+56-4-39-50-59-30-25+46-30-5-5-4-5+56-1+35 hashblocks_sha512 2 5393 40295 +175+97-96-12+16+51+51-72+10+36-6+19+27+32-85-29-166-253-98+51-49+66+54+44-30-64+55+160-9-129-49-53 hashblocks_sha512 2 8090 60412 +130+54+48+99+84-81-39+81-169-367-158-86+16+60-28+15-53-41+51+154-79-90+8+106+127-46-68-108+111+10+11-4 hashblocks_sha512 2 12136 90015 -312-106-112+37+59-47+19-85+27+129-288+98-216-116-88-69-75+97-5+213+211-148+126-54+7+92+121+9-14+116+110+2 hashblocks_sha512 2 18205 135932 +12-27+12+10-288-63-41+51+134-22-20+51-231+214+6+61+50-29-261+90-197-162-43-131-10+71+130+84-12+88+15-95 hashblocks_sha512 2 27308 203861 +282+180+34-12+136-331-130+152-13+135-52-160-113+168+253-179-33-636-193+22-171-92+113+15+138+80-192-58+0+78-19+49 hashblocks_sha512 2 40963 306264 +1278-124+237+141+8+72+316-192-32-6+1-39-135-92-15+321+25+306-864+120-41+25-953-9+218-36-45-380-26+2+249-713 hashblocks_sha512 2 61445 459328 +101+41+344+919+442-93-22+28-224+109+85-36+104-360-442-298+238-227-10-295-136+309-322-122+7+151+198-136+387+800-64-670 hashblocks_sha512 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 3 0 160 +905+49+21+22+1-1-1+0+42-1-1-3+0-2-1-1-2+2+0+1+0+0+0+0+0+0+0+0+41-2-1-1 hashblocks_sha512 3 1 159 +60+42+2+3+1-2+0+0+1-1+0-1+0-1+0-2+0+1+3+1+2+0+0+2+1+0+0+1+1+3+0+0 hashblocks_sha512 3 2 160 +47+1+1-1+2-3+0-1-1+0-3-2+1-1-2+13-3-3-1-1+2+0+3+2+0+1+0+0+0+0+0+0 hashblocks_sha512 3 4 160 +41+0+0+1+2-1-2-1+0-3-2+1+1-1-2-1-3-1+0+2+0-1+0+0-1-1+0+0+2-1-1+1 hashblocks_sha512 3 7 159 +11+1+2+4+0-1+0+1-1+0+0+3-1+0+1-2-1+0-1+0-1+0-1+0-1+0-1+0-1+0+3+2 hashblocks_sha512 3 11 160 +10+0+1+0+3-3-1+0-1+0-2-1-1+1-1-2+0-2-2+0-2+1+1-1-1+1+0-1-1+0+0+2 hashblocks_sha512 3 17 160 +41+1+0+3-3-1-1+0-2-1-1-1+1-1-2+0-1+0+0+2-1-1+0+0+2-1-1+1+0-1-1+0 hashblocks_sha512 3 26 159 +11+2+2+4+0-1+0+0-1+0+0+3-1+0+1-2-1+4-2-1+0+2+1+0+0+1+1+3+0+0+2+1 hashblocks_sha512 3 40 160 +42-2+1+0+3-3-1+0-1+0-2-1-2-1-2-1-3-1+0+2+0+1+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 61 160 +10+0+0-2+2-2-1+0-1+0-2-1-2-1-2+1-2-2-1-1+0-2+0+3+2+0+0-1+0+0+0+0 hashblocks_sha512 3 92 160 +40+0+1+2+0+0+0-1+0-2-2+0-2-2-3-1-1-2+0+2+0+1+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 139 1120 +868+100+11+6-3-2-17-14-2-5-6+1-7-3-8-15+5+3+1+7-11-17-5+11+8+3+8+7+9-10+4-10 hashblocks_sha512 3 209 1119 +96+17+9+4-5-3-14-11+6+2-5-5-5+1+6-5+16+11-5-13-16-11-3-9+7-6+4+11+3+0+7+4 hashblocks_sha512 3 314 2063 +118+88+56-12-2-6-7+1+11-7-3-8+8+19-16+4+4-2+13+3+9-8-12-10-4-7+41-17-2+3+1+17 hashblocks_sha512 3 472 3018 +156+34+30-1-11-11-13+42+7+5-13+2+15+10-9+52-13-8+6+13-3-4-23-1-3-2-8-4-7-14+43+3 hashblocks_sha512 3 709 4911 +210+52-9-7+5-2+25+24+43-30-21+1+33-19-7+10-2-1+2+0+13+2-6+10+51-5+9-9-19-2-18-14 hashblocks_sha512 3 1064 7784 +208-3-15+11-31+5+6+40+24-12-17+20-19+19-16+42-5-2-28+13-5+6+41+9-44+8-4+10-16+4-26-16 hashblocks_sha512 3 1597 11576 +110-52+21+15+6+50-2+25-26-33-54+24+44+1+38+66-17-61-7-17-27-10-21+17-6+47-8+47+30-52-46-26 hashblocks_sha512 3 2396 17253 +100-9-22+65+24+6-47-8-22-13-44-33+2-31+32-55+9-54+96+42+92+19+44-37-16+40-65-40-40+94+28+47 hashblocks_sha512 3 3595 26771 +137-76-18-73-82-113-11+13-65-62-77-88-111-54+41-14+56+24+62-4+16+74+11+54+88+54+30+46+75+36+18-76 hashblocks_sha512 3 5393 40007 +153+88+74+100+128+87-71-131-56-81+72+153+99-56-88-68-110-125-64+121+135+95+116-56-85-121-89-68-146+78+92-64 hashblocks_sha512 3 8090 59877 +176-159-197-76-156-102-118-103+57+182+112+171+148+141-84-92-71-119-99-175-87-130+123+113+139+90+113+113+130+172-3-163 hashblocks_sha512 3 12136 89191 +415+87-92-267-98-96-96-151-201+255+253+256+455+327+108-136-181-151-64+335+371+346+113-130-187-188-120-112-125-133+375+360 hashblocks_sha512 3 18205 134710 +595+44-304-271-301-292-324+391+434+402+515-330-257-396-346-303+474+417+380+454-97-289-308-262-360-288+194+335+328+240+260+276 hashblocks_sha512 3 27308 201980 +87+385+367-470-432-513-426-442+317+438+416+663+634+592+674+615-453-448-509-466-503+608+567+654-80-426-519-457-474-470+619+620 hashblocks_sha512 3 40963 302977 +1430+362-208-174-148-107+1591-217-53-164-229-164-156+1699-162-218-243-194+1731+1665+21-161-152-186-293-150-139-79+1673+1655+1808+1721 hashblocks_sha512 3 61445 454153 +708+55-196+3189+39-159-66+22-57-73+282-84-100+32-37-228+2769+2885-7-119-212-113-107+1+2617-73+63-25-69+1185+2860+2880 hashblocks_sha512 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 4 0 90 +204+47+24-4-4-4-5-5-5-4-3+5+3+2+2+2+2+2+2+2+2+2+2+2+2+2+3-5-5-5-5-4 hashblocks_sha512 4 1 85 +77+5+8+6+4+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+2+0+2+0+2+0+2+0+1 hashblocks_sha512 4 2 86 +45+5+26+0-1+2+1+1-1-1-1+0-1-1-1-1+1+0-1+1-1+1-1+0-1+0-1+0-1+1-1+1 hashblocks_sha512 4 4 86 +50+5+1+1+0-1-1+27-2+0-2-1-2+2+2+1-1-1-1+1-1+1-1+1-1+0-1+0-1+0-1+1 hashblocks_sha512 4 7 85 +12+6+7+2+1+0+0+1+0-1-1+1-1+1+2+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+3+0 hashblocks_sha512 4 11 85 +12+6+7+1+1+0+1+1-1-1-1-1-1+0+2+2+0+2+0+0+0+0+0+0+0+0+0+0+0+0+3+0 hashblocks_sha512 4 17 85 +46+6+5+2+1+0-1-1-1+0-1+0-1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0 hashblocks_sha512 4 26 85 +12+33+5+4+6+0+2+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+1+2+1+1+0+2+0+0+0+2 hashblocks_sha512 4 40 85 +46+6+5+2+2+0-1+0-1+0-1+1-1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0 hashblocks_sha512 4 61 85 +17+6+7+2+1+0+0+1-1-1-1+1-1+1+2+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+3+0 hashblocks_sha512 4 92 85 +46+6+5+1+0+0-1+0-1+1-1+1-1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+1+2 hashblocks_sha512 4 139 1231 +747+172+49+19+3+0+0+0+0+0+0+0+0+0+0+0+0+0+4+1+0+0+0+0+0+0+0+0+0+0+0+4 hashblocks_sha512 4 209 1231 +142+28+17+4+0+0+1+0+13+0+1+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 314 2357 +203+113+20+2-1-1-1-1-1-1+1-1+1-1-1-1+1+1-1-1+1-1+1+1-1+1-1+1-1+1+1-1 hashblocks_sha512 4 472 3483 +234+63+4-2+2+2+0+0+0+0-2-2+0+0+2+2+0+2+0+0+0+0+0-2+0-2+0+2+2+0-2+0 hashblocks_sha512 4 709 5754 +253+30+2-2-7+6-9+16-14+21-11+12-11-15-12+15-19+15-14+6-19+15-13+17-19+11-15+10-15+11-17+17 hashblocks_sha512 4 1064 9118 +240+0+4-8+0+3-6+7-4+13-2+3-4+3-1-2+9-4+6-4-6+2+0+7-6+8-4+0-2-8+1+10 hashblocks_sha512 4 1597 13623 +260-2+1-2+4+8+10+1+3+5-7+11+8-4-4+5-3+3+1-6+6-3-3+4+0-7+0-3-5+1+1-5 hashblocks_sha512 4 2396 20390 +198+2-19+18+39-11-13-5+12+17-12-5-9+25+10-14-1-12+35+1-8-11-14+15+22-2-7-6+18+16-9-17 hashblocks_sha512 4 3595 31683 +239+10+7-6+3-12-3-12+7+2+11+17-33-20+3-5+8-4+5-36-6-2+5+4+16-25-19-16-3+13+5-14 hashblocks_sha512 4 5393 47452 +226+14+7-9+5+5+6+4+8-5-16-8+18+0+37+2-5-6-14-4-6+10-4+13-4-5-2+1+9-16-9-4 hashblocks_sha512 4 8090 71118 +251+23+11+1+13-5+6+0+6+9-7+2-4-7+0+24-8+9-6+10-8+0+0+13-24+19-14-9-6-18-15-4 hashblocks_sha512 4 12136 106034 +176+33+9+47-1+23+1+52+16-8-6-3+1+2+5+16+10-24-2-6+800-13-24-2-13+5+4-21-16-12-7-31 hashblocks_sha512 4 18205 160103 +258+57+20+17+2-1-2+17-5-3-30-5+10-20-18+4+5-1+16-12-14-4+13-2-13+19-15-16+12-1+1-10 hashblocks_sha512 4 27308 240084 +209+0+0+6+22-23-10-28+10+4-14-4+13+36+3-26+14+30+25-15+773+58+7-11+12-10-41-17-6-20+5-25 hashblocks_sha512 4 40963 360599 +260+20-2-1+16+5+10-9-2-3+4+12+17-25-5-1-8+19+0+21-15+41+1+789-54-49-8-46+4-35-12-29 hashblocks_sha512 4 61445 540810 +298+130+74+96+66+77+114+96+124+102+63+94+85+96+864-13-26-71-106-83-64-89-68-98-64-88-86-135-103-87-99-95 hashblocks_sha512 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 5 0 192 +766+17+0-2+0+0+0+0+4+0+0+0+0+0+0+0+21+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0 hashblocks_sha512 5 1 192 +27+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 2 192 +30+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 4 192 +27-1+0-1+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 7 192 +2-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 11 192 +2-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 17 192 +27-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 26 192 +3-1+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 40 192 +30+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 61 192 +4-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 92 192 +27-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 139 1364 +1022+105+31+29+19+18+16+5+10+5-22-15+20-6-13-11+8-27+0-5-4-4+2-10-11+1-14+0-3-5-5-4 hashblocks_sha512 5 209 1367 +57+40+27+21+15+12+26+13+9+2+3-3+9-4-19-27-9-19-4-18+13-26-5-25-6-11+14-9+17-17-9-16 hashblocks_sha512 5 314 2516 +156+87+37+25+9+20-11-5+10-2+2-8-13-11+0-7-3+8-5-11-3-9-10+5-7+59+2+61+8+2-33-28 hashblocks_sha512 5 472 3651 +207+112+37+7+14+5+13+1-5-2-8-11-1-11-5-8+0+2-8+1-16-17+2+18+2+7+6+0+2+0-6-10 hashblocks_sha512 5 709 5931 +349+165+41+69+37+2+61+1+0-7+22+61-5+8+8-8-13+45+11+2-14-5-9-17-6-14-11-5-16-9-12-6 hashblocks_sha512 5 1064 9399 +393+53+4+33-2+48+18-39+17+3+0+0+41-36+28-14+13+4-32-2-4-3-26-5+33-13+5-9-32-38-30-42 hashblocks_sha512 5 1597 13958 +426+27+152-4+7-6-26+49+3+19-35-1-49-8+6+45+26-16-11-21-24-28-26-15-43-36+973+42+39+23-30+72 hashblocks_sha512 5 2396 20808 +388-28+89-9+56-5+24-3-12-15-17-33-6-22-5-29-21+6+5+5+33+82+1+76+13+30-17+6+10-14-20+16 hashblocks_sha512 5 3595 32208 +340-49+143-27+30+1+33+8-1+32+48-6-53-4-21-39-18-44+5+19+12+3+17+27+52-10+10-18-37-68-12-14 hashblocks_sha512 5 5393 48159 +490-36+172+82+29-34-8+2+4-78+6-11+3-12+33-20-44-22-27-8-8-11-57+100-31-13+242+0+14+51+139+60 hashblocks_sha512 5 8090 72109 +497+4+30+58+27+42+43+66-9+59-39+23-27-84-26+2-32-42-31-65-16-23-21+80-43-51-17+107-9+84-69+159 hashblocks_sha512 5 12136 107440 +501+102+127+66+75-18-36-55-35-36-85-15+91+89-31-48-133-85-24+64+32+121+72+41+70-14-58-69-30-24-23-23 hashblocks_sha512 5 18205 162137 +699-22+117+207-34-44-59-34-22+48-56-52+1247+483+207+7-8-12-28+14+3-59-34+24+31+3+0-8-53+8+134+251 hashblocks_sha512 5 27308 243053 +650+75-62+8-31-55+20+90-80-38-59-71+245+197+152+329+250+210+216+70-46-47+32-32-80-17-30-15-42-55-67-4 hashblocks_sha512 5 40963 365893 +1342-293-250-202-220-209-91-205+164+157-45+192+183+175+609+195+698+676+642-190+277+113+201+202+622-269-226-217-235-241-273-268 hashblocks_sha512 5 61445 548379 +667-37-9+1271+73-72-82+30-55-44-46-100-37-44+44-54-63-47+65-76+1588+737+1078+122+611+758-11+62-46-94-37+84 hash_sha512 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 selected 0 804 +1786+85+8-3-4-2-5-3+1-4+1-4+0-3+6-2+8+1-3-3-2-2-1-3+9+0+4+2-9+49+3+3 hash_sha512 selected 1 806 +177+9+4+1-6-9+3+2-8-5+0-1+3-6-3+49+1+2-2+0-7-3+0-4-5+10+4-5+3-2-8+5 hash_sha512 selected 2 807 +65+40+9+3-3-2+43-3-3-2-7-8+3-8-1+23+4-1-7-8-2+5-2+7+3+5+1-3+1-2+2-4 hash_sha512 selected 4 806 +91+46+10+5+2+0-4-5-2-11-3+0+1+13-2+4-2-4-5+3-3-1-2-1+6+4+4+3-2+2-2+6 hash_sha512 selected 7 812 +184+75+7+7+0-1+0+0+10-5-6-11-8-7-2-1-1+2-3-4+1+0-4+6+2+4+1+6-3+1-5-8 hash_sha512 selected 11 817 +100+69+4+1-1+7-4-5-4-6-5+7-4+3+2+3+0-2+7-2-11+16+1-2-1+1-4-5+2-7-1+17 hash_sha512 selected 17 823 +107+72+67+4+0-4-3-9-7+6+5-3+5-4-2-1-2+2-4-1+4-1-3+12-4+2+2+2-2-2-1-1 hash_sha512 selected 26 845 +83+73+61+33-4-6-6-7-6-6-2-7-5-4-10+6+51-3-8+3+11-7-7+5+8+16+4+7-7+19+4-5 hash_sha512 selected 40 868 +106+93+29-2+1+5+1-1+6+0-3-5+1+3-1+1-5-2+2-2+10-3+16-1-3+4-7+1+13+0-3-1 hash_sha512 selected 61 908 +131+83+2+5+2-4-3+5+1+2+0-1+1+0+3+6-3+0-3-6+0+0-1+1+2-4-2-2-6+17+0+0 hash_sha512 selected 92 970 +146+6+6-3-6+3-2+2+1-3-7-4-1+6+0+0-5+1+0+4-1-2-2+6-1+3+0+4-3+2-1+6 hash_sha512 selected 139 1521 +164+95+43-2-2+3-10+3-7-3+1+4+5+6-4-7-2+10-3-2+2-3+5-3+1+0-4-6-3+0+15-5 hash_sha512 selected 209 1644 +158+36-8+0-3-2+1+6+71+0-5+11+4-1-3+1-3+2+3+69-3-1-10+9-2-1-4+3+3-3+6-2 hash_sha512 selected 314 2274 +157+77+4+0+39-9+2+5+6-3-9-4+10-4-10+2-3+4+12+1+1-8-15+2+9+0-1-9-3+0+0-2 hash_sha512 selected 472 3010 +218+42-15+10+62+4-1-1-3-15-2-4+0+9-15+11+1+1+2-3-14-10+2+6+2-6-15+6-10-4+1-2 hash_sha512 selected 709 4312 +183+56-5-5+6+2+26+44-3-14-9-12-13-11-3+9-5+0-18+17+9-4-2+7-14-2+10+14-1-2+9+1 hash_sha512 selected 1064 6284 +227+110+6-8+5-13+3+2-3-10+9+8+7-10-6+1+8+1-16-7-17+21-26-1-1-4-1+6-5+4-11+5 hash_sha512 selected 1597 9004 +204+131+21+7+28+6+6-24-8-2+19+3+15-26+20-9-24+0+1-1-24-5-10+7-23+2-1-6+2-8-4+4 hash_sha512 selected 2396 13083 +236+190+101+13-8+6+7-3+25-12-9-5-7-12+18+4-35+83-10-1+6+9-26-10-5+22-13+42-4-9-1-2 hash_sha512 selected 3595 19691 +144+72+2-37+69+2+11+9+39+73-65+8+24+1-53+34+10-26-12-6+6-4+25+1-20-43+1-5-48-16-9-67 hash_sha512 selected 5393 29131 +138-1+40+14-7-3-2-14+24+11+4+32-7-53-13-22-22-20-48-45-25+41+16-5+11+2-3+9+2-64+34+58 hash_sha512 selected 8090 43235 +163+3+31+32-41-52+12-39-41-133+29-43+93-19-45+937+26+18+110+89+33-7-23-57-63-40+23+5+31-40+68-6 hash_sha512 selected 12136 64177 +188-38+40+46+5-31+18+71+11-61-78-17+66+83-39-26+58-75+19-32-21+53-6+104+4-24+67-106-36+78-54-111 hash_sha512 selected 18205 96263 +136+12-54+34-9+76+21+3-17-54-80+4-96+11+59-34-103-28+67+22+56-82+17-20+58-102+14-103+9+43+66-33 hash_sha512 selected 27308 143953 +284-42+35-28-10+2-76-4+38-83+74-118+137-149+82+60+73-99+90-16-44-5-106-51-14+76+38-4+2+27-16-3 hash_sha512 selected 40963 216257 +1014-160+29-42-34+136-50+121-9+106-16+116-76-56-55-82+37+4+9-134-153+26+97+151-29+148-99+29-30+18+36+29 hash_sha512 selected 61445 323932 +44+359+242-50-167-34-11-116-85-45+67+19+17+778+222-232-45+40+75-115+2-135+27-159+104-6-39+106-125+4+7+129 hash_sha512 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 0 0 803 +188+93+48+26-2+4-1+1+3-6-2-3-7-6+2-5+2+9-2-5-2+1+5+2+9-6+0+2+1-3-4-5 hash_sha512 0 1 805 +112+88+63+0-1+0+0-5+0-4+6-4+4+0-5-5+4-1+49+12+1-6-2-1+4-8-3+3+1-2+0+0 hash_sha512 0 2 806 +102+67+0-1-2-5-3-8-6-7+1+1-5-6-4+5+0+5-1+1+1+3+0+1+0-1+5-1-3+3-3+6 hash_sha512 0 4 809 +92+77+37+2+2-2-4+2+39-6-1-4-4-4+0+2+4+5-7+0-1-6-3-1-4-1+2-1+2+5+5-2 hash_sha512 0 7 811 +139+47+43-3+2-2-2-7-2+5+2-2-3-3+4+0+7+10-5-1-3+3-1-3+5+2-5+3+1-4-3-3 hash_sha512 0 11 813 +86+93+55+40-3-1-1-4-3+0-1-3+3-8-3+2-2+0+2-4+1+4-3+7+5-5+5+2+6-1-1+2 hash_sha512 0 17 825 +98+85+41+0+0-4-5+7+3-2+0-9-3-2+1-2-6-10-2-3+3-3+7+4+3+14+3+2-1-1-3+2 hash_sha512 0 26 841 +96+88+67+62-4-8-5-3-4-2-9-3-1-8+10+18+1-4-3-2+16+11+14-6+10-7-5-4+13-2-2-6 hash_sha512 0 40 868 +90+68+46-4-7-7-4-6-7+47-1-3-6+0-7-4-1+8-4+0+12+4-7+4-1-5+8+9+2+1+6-3 hash_sha512 0 61 908 +130+89+55+7+1-1-5-3+1-7-1-1+0-4-5+1+6-3+1+4-7-5-3-3-1-1-1+51+1+2-6+57 hash_sha512 0 92 968 +72+3+6+3-3+1+0+1-2-4-4+0-3-2-2-2+2+3+4-2+4-2+8-5+0-7-1+10+1+2-2+0 hash_sha512 0 139 1521 +160+66+21+84-5-4-12-4-2-1+6-2+2+2-1+8+2+9+0-6-9+0-9+1-2-6+9+1-8+2-10-1 hash_sha512 0 209 1645 +150+78-10+2-4-9-1-3+2+0-4+1+7+7+3+2+69-5-1-2+0+54-1+4-3-4+1-12+0-3+4-4 hash_sha512 0 314 2273 +199+110+121+11-1-10+4-6-2+5-1+3-2+4-5-7+4-1-2-5-4+1-4+2-2-4+3-1+7+2-3-17 hash_sha512 0 472 3010 +306+107+105+76+68+6+67+51-8+0+0-9-8-14-10-5-3+2-6+2+0-9-4-3+3+14-6-8-1+10-1-6 hash_sha512 0 709 4315 +188+85+13+61+12+1-9+10+3-7+3-5-12+8-23+0-14+7-19-12+23-3-18+0-12+1-21+5-4-5+2+8 hash_sha512 0 1064 6289 +190+158-7-13-7-2+2-5+4+19+1-8+18+1-29-33-16+11+10-4+2+6+2-10-21+4+0+22+3+35-34+7 hash_sha512 0 1597 9002 +178+167+170+116+53+3-1+9-19-15-11-14-5-5+0+19-14+7-8+13-1+8+21-8-16+8-20+1-5-17+1-7 hash_sha512 0 2396 13082 +238+158+98+57-3+35+14-6-26+49+29-22+32-16-5-5-42+2-6-1+13-19-22-20-34+17-24+15-18-1-58+14 hash_sha512 0 3595 19699 +244+64+15-33-24+1+9+9+106-21+12-23+43-37-11-32-23-30-45+29+33-33-39+53+23-36+22+64+6-45+38+5 hash_sha512 0 5393 29123 +232+0-1-22-8+6+2-10+23+17-10+40-14+72-22+5+31-39+64-15+78-43+22-14-46-1-61-30-27+16+33+11 hash_sha512 0 8090 43230 +244-6+11-18+32-18+68+28-55-40+55+15-21-53-15+1+4-57-15-21+11-131-11+42+19-20+15+880+37+83-14+0 hash_sha512 0 12136 64196 +241+54+46+46-9+36-64-13+38-11-15-33+21-77+37+97-28-50-27-48-4+99-35-55-12-3+66-8+26-46+81-58 hash_sha512 0 18205 96242 +115-45-4-12+7-20-25+85+37-8-22-23+39-11+24+10-1-65+14-3+88+22-62-1-70+26-43+38-39+32-18+98 hash_sha512 0 27308 143910 +467-24+123+36+70-45-72+51+4+114-49-26-22-7-31+28-22+64+75-33-14-58-6-26+30+19+119-5-101-23-18+103 hash_sha512 0 40963 216297 +145-51+36+925+107+54-1-71-101-47-131+8+69+15+25-18+140-12-19-64-18-231-49+38+74+60+33+14-103+40-97-100 hash_sha512 0 61445 323886 +219-5+86-21+77+43+30-119-38-39-100-3-78+38-57+1013+148+32-117+5-64-88-4-40+132-60+157-26-38+4+69+60 hash_sha512 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 1 0 814 +301+94+41+67-6-2-8+3+7-12+37-9+43-7-6+5+11-7+12-3-4+3-1-10+0-6+4-4+6+2-10-1 hash_sha512 1 1 819 +207+92-4+4-11-2+0-7-13-10-7-12-9+6-13+4+2+48+6-8+3+10-2+3+5+7-5-5+3+4-2+3 hash_sha512 1 2 819 +179+78+40-5-4-13+3-4-2-1-5-2+2-1+15+4-4-1+2+12+6-4-3+11-3+7-6+13+1+0-6-5 hash_sha512 1 4 821 +141+38+11+0-12-12+4+1+0-6+40-14+9-4-5+3+3+1-6+2+7-4+9-1-14-12+0+1+3+8-1-1 hash_sha512 1 7 820 +141+129+7-1-3+6-9-8-10-2-10-4-12-8+6+5+11+3+4-1-3+4+2-2+2-2-3-3+4-3+4+0 hash_sha512 1 11 822 +133+75+37+0+4-5-7+11-8-4-2-11-8-4+2-11+1+13-3-2+7+12-4+1-9+0+7+7+0-7-1+10 hash_sha512 1 17 821 +161+98+12+53-3-2-6+0-7-4-10-1+0-4+14-9+3+1-5-1-1+2+3+1+4+2-3+3-2-1+0-1 hash_sha512 1 26 820 +153+79+51+12-7-4-6-10-5-5-6-2-2-5-3-8-7+3+2+8+8+7+3+1+3+11-3+0-2+2+4+6 hash_sha512 1 40 819 +201+57+51+36-3-6-8-13-9-6+35+5-7+1-3-3-3-3-2+8+1+6+3-6+9-3-6+1+2-10+7+7 hash_sha512 1 61 822 +202+11+16+0-8-6-10-9-1-8-3+1-5+2+3-7-8+8-5+9+5+2-2+14-10-8+0+16-2+6+6-2 hash_sha512 1 92 818 +228+65+7+3-3-7-3-1-5-10-7-6+0+8-2-1+1+12+7-1+19+13+6-6-5+15-7+16+2-3-4-5 hash_sha512 1 139 1531 +181+88+26+5+0-2-2+4+0+13+2+2-3+7-1-5-8-7-6-2-5-1-4+5-2+0+0-5+2-3-7+2 hash_sha512 1 209 1534 +216+111+12-8-15+5+4+1+3+6+6+4-5+6-2-9+10-5+0+3-5-11-5-2+1+1-5-7+0-1-1-9 hash_sha512 1 314 2205 +240+133+52+6-13+3-16+0+3-5+0+0-9+44+0+0-1-4-2+12-2-8+4+7-8+0-6+2+6+3-16-9 hash_sha512 1 472 2880 +261+131+22+1+5+5-11+7-1-3+4-14-13-6+0+2+3-12-8+3+6-5+9-1-3-10-8-4+2+10+6-12 hash_sha512 1 709 4227 +231+79+58+9+60+3-3-23+8+4+0+5+3-22+6-13+13-5+7-14+15-11-10+5-25-15+26-27-12-2+7-19 hash_sha512 1 1064 6247 +254+64+35-18+2+3+28-3+6-11-20-8-9-18+7-6+1-3-15-12+5-2+21-13+7+22+1+4+15+16-5-15 hash_sha512 1 1597 8939 +209+60-22-2-13-1-18+1-7+5+5-3-22+23-32-12+2+22+25+12+10-1-1-7+3+16-35-6+8-2-21+20 hash_sha512 1 2396 12960 +219+133+10+13+14+19-9-16+8-24-4-18-10-13+40+5+0-23+8-21-17-2-8-32-20+38-3+36+9+30-13+1 hash_sha512 1 3595 19724 +283+16+1-41-2-8-37+57+74-34+2+23-43-5+51+34+2+25+10-1-21+103-10+3+1+76-25-11+6-22-27-27 hash_sha512 1 5393 29153 +125+47-6-35-23+42-40+7-10+87-26+57-2-2+22-52+13+82-4-3-43+14-2+26-25+18-45+14-35+57-48-18 hash_sha512 1 8090 43243 +429-26-3-30+25+29-47-66+40+1-6-26+42-10-2+68+13+5+1+31+41+2-25-19+54-10-2-56-6-23+49-66 hash_sha512 1 12136 64029 +266+11+9+967+50-17+27+27+49+1+33-5-61-44-35+47-3+11-38+26-31-8-41-99+2+26+25-12-69-45-6-93 hash_sha512 1 18205 96236 +365+51+14-37-98+80-42+25+15+209+18-83-9+5+65+156-45-53+58-11+9-8-2-30+10-37+3-6-4-75+73-120 hash_sha512 1 27308 143925 +356+95+4-121+47+68-55+61+70-63-85+117+70-89+79-9+19-81+72-29+76+77-52+52-114-140-296-15+40-93-52-137 hash_sha512 1 40963 216324 +302-50-2+22+48-38+1165-49-5+11-12-60-63+98+47+35-43+20-43+55-59+1-57+0-228+209+21+47-38-27+6+98 hash_sha512 1 61445 324019 +507+83-36-171+127+121+13-29-65+79-67+48-16+58-82-103+19+1371+5-8-184+120+10-69+55+57-10-233-132-37-90+117 hash_sha512 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 2 0 800 +259+90+33-4+1+4-6-2+8-1+0+4-6+52-6+1+9+1-2-5+2-7+2+0+11-2-2-2-1+0+6-6 hash_sha512 2 1 806 +151+62+43+4+3-3+7+3+0-1-11-11+2+3+3-5-4-4+4-3+2-2+2-3-2-7-3-1+1-2-1-3 hash_sha512 2 2 806 +110+41+34-4+7-1-4+5-2-10+1+5-3+0+2-3+0-8+4-5+7-2+8+0-1+11-2+1-6-9+4-4 hash_sha512 2 4 810 +91+42+85-1-7-2+1+2-2-4+49+3-1+4-2+2-2-2-7-3-3-8+3-4-3-4+0+7+3-8+1+2 hash_sha512 2 7 814 +107+48+4+2-4-5+11+0-1-1+2+1-12-5-5+5+3+0-3+7-4+1-3+4-2+6-4-10+2-3-2+5 hash_sha512 2 11 825 +96+40+35+29-5-2-2+9-2+1-5+2-5-10-6-1+5+2-4+2-11-3+7+2-2+4-4-3+1+1-2+11 hash_sha512 2 17 837 +83+105+3-4-3+7-1+3+0+1-6+4+0-8-2+0-5+1-4-8+0+1-1-7-2+6-2-1-2+2+0+8 hash_sha512 2 26 853 +100+42+40+0-4+0+3+4+2-1+1-3+4+5-2-1-1-2-3+1-2-2-1+6+2+4-3-1-3-12+6-8 hash_sha512 2 40 882 +86+95+35+1-7-2+2-1+3-5-2-7-2+4+3-2-3-2+2+0+1-1+1-2+2+1-4+51-5-4-2+1 hash_sha512 2 61 922 +135+63+11+8-3-2-5+57-1-5-2+5+1+7+5+7-6+0-4+1-4-1+2-9-4+0-2-5+1+3-5-2 hash_sha512 2 92 986 +142+7+4+0+5+4-4-4-7-5-2-7+5-5-4+1-4+4+0-3-8+3+4-3-6+7+0-5+4+3-3+6 hash_sha512 2 139 1536 +155+115+61+32+2+6-8-4+1-3-3-5+47+2-12+6-7-6-4+2+34+12-7-4-12-3-2-15+2+9+2+2 hash_sha512 2 209 1671 +114+110+31+35+35-2+6-7-8+12-3-3+40-2-2+0+9+2+4-2+4-2-3+3-5-3-3+0+4-11-7-3 hash_sha512 2 314 2299 +156+94+9+3-11+0-4+5-8-7-7+40-2-1+0+8-2-9-9-5-5+7+3-12+43-1+6-2+6-17+15-14 hash_sha512 2 472 3028 +178+53+2+20+4-10+7-2+3+0-1+10-3+4-2-5+8+0-10-4-12-3-3-4+19-3-2+5+8+2-11+1 hash_sha512 2 709 4337 +150+44+9-5+5+11-4-11-9+0-18-8+23+1+12-2+0+1-5-3+14-13-1-2-3-20+1+57+11+8-9+2 hash_sha512 2 1064 6297 +159+109+21-3-18+51+4+4+0-11-6+31+17-8-11+5-16-2+3-1+7-20+20-13-1-3-1+6-2-4+12-11 hash_sha512 2 1597 9027 +147+82+25+17+51+31-10+10-6-12-18+5+8-7+1-28-10-26+18-3+19-4+2+0-12+10+1-11-30-12-8+23 hash_sha512 2 2396 13106 +239+242+98+53+23+26-8+12+20-22-21+31-16-15+20+9-7-28-3-24-33-29-10-5+11-23-4-2+5+7-12-6 hash_sha512 2 3595 19710 +242+28-12-14-18+20-6+16+6+11+21+35+28-38+35-12-8-35-6+9-31-11+31-2-42-20+17-8+23-45-17+3 hash_sha512 2 5393 29162 +141+151+5+50-22+9+66-1+13+37+37+28+6-98-17-11-72-38+9-30+57-28-14-39-42-13-47+46-66+13-6+30 hash_sha512 2 8090 43252 +298-7-46+18+59+53-26+67+25+28-14-36+56+16+24+35-14-46-24+0-36+6-34-27-8-3+2-46+16-8-1-6 hash_sha512 2 12136 64220 +227+139+1-45+10+51+25+3-65+15-39-29+965+45-20-4+17+9+48-106+13-6-51-14-70-89+58-79-13+19+13-13 hash_sha512 2 18205 96281 +122-23+13-32+129-31+93+23+73-34+6+71-24-52+1+104+2-16-52-78+61-91-52-104+6+100+9-62-73+32+19+54 hash_sha512 2 27308 143952 +461+170-41+101-34-120+145-91-2+14+134-25-2-93+27-40-34-65+24-52-2+56+124-76-17+140-18-16+10+58-46+123 hash_sha512 2 40963 216325 +87+50-106-26+83-168+5+11+803-385+42-45+149-98-114+67+33-112-10+83+54-11-198+19-34+2+96-130-119+13+10+37 hash_sha512 2 61445 323932 +260+80-45-147+111+190-179-65+87-57-28+93+125-46-21-124-14+120+60+1246-2-133+10-12+42-22-21-2-102+36-14-53 hash_sha512 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 3 0 831 +571+62+34+1-1+41-2+0+8-1+3+0+4-3-1-2-2-7-1-3-4-5+5+0+2+0-6+1-2+6-1+14 hash_sha512 3 1 836 +233+42+10-3+1-3+1-3-5+44-1+2-8-2+6-5-3-4-6+11+11+0-3+4+1-1+6-10+0+8-3+7 hash_sha512 3 2 835 +126+58+14+11-2+2+5+1+2+4-3+6+1+3-4-6+2+0-4-4-5-4+2-4-2-2+8-4+9+0-10+2 hash_sha512 3 4 835 +120+47+6+7+47-4-3-2-4-6+9-4-6+0-2+2-2+0+3-7-1-1-3+4+10+7-8+6+1+2+3-5 hash_sha512 3 7 837 +127+66+12-5+3-3-10+5+1+5-6-4-4-1+1-2+4+0+2+1-11-4-3+1+0+2-4+3+1-4-4+5 hash_sha512 3 11 868 +96+30+31+5+46+1+41-8-11+0+0+1+0-10+2-2-2-3-1+1+3-2-1-9+0-3-4-9+3+1+0-2 hash_sha512 3 17 866 +104+57+29+0+1-6-6+4+2-5+2-2+4-1+3-1+10-1-3-1-2+1-7-3+2+3-6-4-2+0+0+5 hash_sha512 3 26 866 +75+39-2-5+1+33+4-7+4+2+3-3+8+2+3-10-1+2-5-5-5-4-3+6-5-4+6+0-2+1+2-6 hash_sha512 3 40 864 +56+51+31-4-2-7-4-4-4+0-5-2+2-3+1+0+3-3+0-2+0+3+8+5+3+0+2-4+1+5+2-1 hash_sha512 3 61 868 +143+60+6+1+3+1+47-1-2-2-2-1-5-1-9+0-1+2+0-8+6-2+1-7+0-7-7+1+2-5+1-2 hash_sha512 3 92 870 +83+29+23-3+3-10-7-14+0-6+0-4-4+5-4-1+6+7-3+0+6+4-10+12-4+1+10-3+6+0-5-2 hash_sha512 3 139 1571 +96+82-11+0+40-10-5-9+0-5+6+8+5-4+1+0+4+10-5-4-14-2+4-8-6-1-1+2+7+0-9+5 hash_sha512 3 209 1572 +97+28+5-3+2-1-2-5-2+5-3-4-4-1-1+13+9+1-3-2+0+2+12-14+10-5+6-4-7+4-7-9 hash_sha512 3 314 2244 +122+79+0-3-7-12-14+43-1-3+10-1+56+47+8+2+11-15-4-1-14-1+2-4-6+6+5-2-15+47-16-15 hash_sha512 3 472 2918 +124+36+53-9+33+0-5+2+6-6-12-4+14-26-5+2+4-21-3-2-8+12+48-6+23+1-1-3+1-3-1+4 hash_sha512 3 709 4267 +196+58-4+0-5-5-3-4-2+3+24+6+22-7+8+1+2+10+4-8-13-12-8+2+1-5-19+1+5-7+7+2 hash_sha512 3 1064 6283 +152+103+73+19+14+2+45-9+40-9-11-5+10-5+1+15-18-17-2+8-9-17-12-2+2-10-8+3-8+11-4+13 hash_sha512 3 1597 8963 +167+86+24+18+4-11+1-8-3-33-11+6+3+8-5+1-14+15-10-4-18+18+7+0-15+0-19+3+31+2-13+8 hash_sha512 3 2396 12994 +158+87+76+14-9-14+33-15+11+28-20+13-30+52-5+8+4-8-15+30-5-5+23-13-21-23-24-26+16-1+1-18 hash_sha512 3 3595 19730 +144+52+30+3-29+58+22-4-3-34-46-17+44-54-3-17+18+63-14+2-13-2-13+37-17+21-65+58-23-10+3+12 hash_sha512 3 5393 29128 +162+97+5+33+6-16-5+3-17+27+76+32-32+10-15-21-57+38-4-71-29+37-28-34-5-34-45+12+4+34+43-9 hash_sha512 3 8090 43233 +178+111-16+80+10-13+91+3-27+21+93+24-12-61-13-24+83-32-63-42-3+30+57-9+62-5-40-16-73-37-42+98 hash_sha512 3 12136 64043 +142+76+98+9-38-21+17-115-17+37-30-17-16-29+4+73-36+54-36-5-27+887+61+59+38-47-60-32+48-15-80+16 hash_sha512 3 18205 96228 +239+0+8+28+46-127-57+39+0-54+20+41+4-31-25-45+71-128-105-142+60+53-78-22+16-4-8-14+100+59-43+25 hash_sha512 3 27308 143886 +485+27-88+65+97-39+119-29+19+9-23+13+61-73+33+31-110-120+0-36-3+17-40+47-128+46+123-2-30-39-52+18 hash_sha512 3 40963 216278 +321-21-149-24+51-94-73-7-134-104-86+750+156+199+20+58+71-2-67-79+49-165-103-21+2-29-2+37+39+80+90+47 hash_sha512 3 61445 323918 +400-197+106-70-55-62-12-36-55-92-175+211-14-188+63+34-103+5+82+50+674+65-133-223+123+154-94-22+54+71-14+81 decode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 selected 653 132 +1514+45+34+22-1-1+1-1+1-1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 0 653 147 +649+46-4-3+1+0+0+0+0+0+0+0+0+0+0+0+0-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 1 653 128 +56+39+35+15+8+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 2 653 138 +483+37+6+1-1+1-1+0+1-1+1-1+0+1-1+1-1+0+1-1+1-1+0+1-1+1-1+0+1-1+1-1 decode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 3 653 740 +497+32+5+5+5+5+5+5+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0 decode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 4 653 171 +636+64+21+1+0-2+0-1+0+0-3+2+0-2-2+1+0+0-2+1+0-2-2+1+0+0-2+1+0-2+0-1 decode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 5 653 1320 +947+22-2+0+0-1+0+0-1+1+0-1+0-1+0+0-1+1+0-1+0-1+0+0-1+1+0-1+0-1+0+0 decode_653x1541 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 selected 1306 1016 +3317+45+81-5+0-19-15+2+8-7+6+10-3-5-2-3-11+6+1-2-8-7+3+4-2+4-5+1+5-2+4-4 decode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 0 1306 1018 +119+0+5-10+2-9-6-6+4+4-1-2+7-3+1+8-1-9-3-15+1+6+3+5+5+8-11-6-1-2-7-1 decode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 1 1306 1136 +3288+145+180+90+80+83+61+53+35+28+29+22+14+12+8-6-12-19-18-20-18-29-32-48-46-56-65+5-63-60-72-87 decode_653x1541 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 2 1306 7311 +1753+263+10+54+44-9+37+13+31+6-9+35-12+8-32+3-15-19-27-45-19-32+21-14-15-71+4-31+39-10-37+36 decode_653x1541 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 3 1306 9270 +3580+175+79+49+51+24+20+41+23-26+26+2+9-17-54-28-38-63-44+33-16-29+52-77-44+12-55+3+64-59-49+5 decode_653x1541 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 4 1306 7263 +834+118+26+56+41-8+17+1+2-9-8+4-15-10-41-36+4+5-1-29-3+19-35+9-11+10+45-14-9+49-20-59 decode_653x1541 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 5 1306 9340 +3093+132+62+28+74+40-8+1-42+13-37+19-7+14+10-40+3-76-3+44-59-61+40-69-37+19+16-41+5-29-97+18 decode_653x4621 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 selected 1306 1118 +2103+71+30+0+4+1-3-16-11-3+6-5-7+6+11+1-6-17-12+22+3-1-7+12-11-3+6-5-7+6+11+1 decode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 0 1306 1123 +71+34+5-8+5+2+0-4+0-5+7-3+2+14-14-14-1-1-7+6-4-9+4-11-16+13-2+1+5+7-3+8 decode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 1 1306 1293 +4408+140+69+44+26+23+32+26+27+30+9+0-9-5-9+0-8-1+0-24-19-11-25-26-31-23-22-30-22-29+24+2 decode_653x4621 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 2 1306 8628 +511+121+16+63+26-33-6+25-11-41+25-6-11+2-2-18-26-24-20-8+16-13+26+16-27+26+39+14+3-14-15-38 decode_653x4621 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 3 1306 12830 +4646+79+16+5+26-27+12-34-5+18+47-39+22+7-13-39+18-34-6-34-28-39+30-21-25+10+22-14+57+18+3-34 decode_653x4621 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 4 1306 8613 +1085+121+51+17-31-1-19+1+15+25-6-5-16+44-6-5-16+44-6-5-16+44-6-5-16+44-6-5-16+44-6-5 decode_653x4621 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 5 1306 10420 +1827+155+67+42+56-5+62+23+9+1+46-33+51-44+18+15-21+61-34-36-16+28+1-37-9-54-52-72-20-33-6-37 decode_653xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 selected 1306 127 +776+76+23+23+1+1+1+1+1+1+1+1+1+3+2+2-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 decode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 0 1306 113 +575+68+44-4+2+0-4+0+0+0+3-5+1-4+0+15-3+0+13-3+0+13-3+0+7-3+0+13-3+0+13-3 decode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 1 1306 127 +100+50+50+50+29+2-6-1-2-1+2-5-1+2-5-1+2-5-1+2-5-1+2-5-1+2-5-1+2-5-1+2 decode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 2 1306 710 +461+48+23+9-1+0-1+0+0+0-1+0+0+0-1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 3 1306 224 +417+43+53+29+29+21+29-4+1+0+1-3+1-3+1-3+1-3+1-2-2-1-1-1-1-1+1-3+1-3+1-3 decode_653xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 selected 2612 165 +441+40-6-10+11+10+10+13+10+10+10+12+13+13-6-3-6-3-3-6-3-3-3-6-3-3-6-3-3-3-6-3 decode_653xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 0 2612 1350 +234+23-2-2-1+0-3-1+0-2-1+0+0-3-1-1+0-3-2+0+1-1+1+0+1-1+1+0+1-1+1+0 decode_653xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 1 2612 173 +20-5+1+2+3-19+19-19+18-19+20-20+21-19+21-19+19-19+18-19+23-19+19-19+18-19+20-19+18-19+18-19 decode_653xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 2 2612 720 +78+58+30-3-3-3-3-3-3-3-3-3-3-3-4-3+4+5+2+2+2+2+2+2+2+2+2+2+2+1+2+1 decode_653xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 3 2612 389 +267+32+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+1+0+0+0+0+0+0+1+0+0+0+0 decode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 selected 761 118 +714+62+20+1+1+1-4+0-3-1+0+1+0-4+0-3-1+0+1+0-4+1+1+1+1+0-3-1+0+1+0-4 decode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 0 761 125 +365+42+0-4+3+2-4+0+3+2-4-4+0+3-3-1+2-4-4+0+3+2-4-4+0+3-3-1+2-4-4+0 decode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 1 761 116 +51+40+21+0-3-2+0+3-3+3-1+0+0+3-3+3-1+0+0+3-3+3-1+0+0+0-2+0-2+0-2+0 decode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 2 761 254 +707+46+15+51+11+1+0-1-1-1+0-1+0-1+0-1+0+0+0-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 3 761 932 +944+31+5+0+1+0-4+0-1-1-4-3-4+1-1-2-1-2-1+0+1+0-4-2+1+0+1-1+1+0-4+1 decode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 4 761 244 +552+149-8-10-10-10-10-10-10+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 5 761 1474 +535+62+13+10+8+9+4-1-1+0+0+0-1+0+0+0+1+0+0+2+0+1+0-1+0+0-1+2+0+0-1+0 decode_761x1531 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 selected 1522 1083 +686+70+28-8-1+12-10-12+1+11-7+4+4-1+8+2-15+5-13-14-3+2-14+3+8-11-3+2+3-14-6+1 decode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 0 1522 1084 +101+1-3-3+4-7-19-1+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6+8-6 decode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 1 1522 1233 +4120+228+128+92+72+72+84+77+62+53+31+9+11+2-4+96+9-5-16-39-37-53-42-49-75-84-82-91-103-107-103-104 decode_761x1531 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 2 1522 8522 +640+54+77+28+4-25-28+2+23-48+37+28-16+2+26-14-18-9-23-11-7-25-37-3-11-28-31+30+38+0-2+43 decode_761x1531 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 3 1522 10641 +2822+359+94+167+46+24+25+31+55+13-56+29-58-10+1-51+11-12-43-39-53-33+28-30+58-36-12+6+4-42-13-30 decode_761x1531 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 4 1522 8517 +2126+108+98-32+6-7-2-53+0-20+8-13-30-6-2-1+12-2+3-2-1-35-23+8-29-17+8+12+32+34+18-5 decode_761x1531 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 5 1522 10831 +2252+205+106+17-28-50-34-44-60-62-69+27-6+17-1-10+21-10+15+27+19-38-19-49+44+26-61+0+18+1+22-2 decode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 selected 1522 1184 +1712+82-5-10+1+0-3+5-2-9-14-17+1+7+0+5+8-3-17+1-1-3-10+1-5-6+11+4+4+11-13+6 decode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 0 1522 1191 +102+31+7+3+7-9+19+5-4-10-9+12-5+12-1+12-1-7+12-7-4-11-4-5-15+19+5-9+7-8-2-11 decode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 1 1522 1228 +3284+199+117+98+93+86+69+49+57+54+43+33+37+14+8-8-22-36-41-25-38-32-31-37-42-24-35-26-29-41-41-42 decode_761x4591 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 2 1522 9948 +2201+107+63-17-6-23-10+12+25-16+31+55-15-22-20+42-30-44-48+1-15-15+8+31+10+22+6+20+14-4-57-14 decode_761x4591 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 3 1522 11233 +1435+282+181+84+1-34+13-46-22+6+3-69-98-29-56-152-93-121-163+22+29-51+25-84+35+53+49+40+42-37+105+38 decode_761x4591 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 4 1522 9938 +761+48+65-27+24-27-30+7-2-13+10+12+25+30-12-15-12+14-38+7+0-13+21-32+5-16-58+40+2-11+30-11 decode_761x4591 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 5 1522 14487 +1038+207+86+108+91+96+154+83-7+28+10+47+59-2-6-30-9-31-11-72-33-40-5-25-1-71-16-31-6-46-40-65 decode_761xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 selected 1522 107 +545+43+29+56-9-2-4+1+2-2-2-2+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2+1+0-2 decode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 0 1522 123 +142+72+7+7-6+0-2-2-2-2-2-2-2-2-2-2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 1 1522 105 +47+29+21-6+0-3-2-2+2-1+2-2+2-2+2-1+2-2+2-2+2-1+2-2+2-2+2-1+2-2+2-2 decode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 2 1522 819 +176+26+1+6+0+2+0+0+1+0+1-1+0+0+0+2-1+0+0+2+0+0+0-1+0+2+0+0+0+0+0+2 decode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 3 1522 253 +160+32+6-1+1+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0 decode_761xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 selected 3044 169 +540+49+3-1+2-1-1-1-1-1-1-1-1-1+4-1+4-1+4-1+4-1+4-1+4-1+4-1+4-1+4-1 decode_761xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 0 3044 1572 +422+38+1+1+0-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+21+0-1+0-1+0 decode_761xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 1 3044 167 +94+35+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 2 3044 831 +424+36+12+12+14-1+12+12+1+12+11-2-6-1-1-6-6-1-6-1-1-6-1-1-6-1-1-6-6-1-6-1 decode_761xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 3 3044 263 +442+29+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 selected 857 131 +577+39+13+10+9+2+2+0-1-2+2+0-1-2+2+0-1-2+2+0-1-2+2+0-1-2+2+0-1-2+2+0 decode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 0 857 141 +370+59+21-3+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 1 857 126 +51+33+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1 decode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 2 857 229 +495+80+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 3 857 1029 +1167+40+3-2+1-2+1-2+1-3-2+1-3-2+1-3-2+1-3-2+1-3-2+1-3+1+1+1+1+1+1+1 decode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 4 857 191 +534+83+16+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 5 857 1687 +599+34+12+6+2-1-2-1+0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1-1+4+15-1-1 decode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 selected 1714 1214 +2411+82+25-10-4-18-4+5-5+1+3+5-18-4+5-18+2-5+13+6-17+7-4+5-5+1+3+5-18-4+5-18 decode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 0 1714 1212 +121+105+43+0+9-4+0+0+6-1+0-3+2+6+3+0-9+5-17-14+0-1-4-12+4-12-1-1-6-5-2+3 decode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 1 1714 1508 +1030+146+55+28+20+29+16-9-4-29-34+12-38-40-39-6-9-53-67-86+27+33+23-77+28-5-69-77+15+22+0+19 decode_857x1723 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 2 1714 9691 +812+61+19+3+35-19+13+2-33-2+14-3+9-32+37-19-6-30-35+15-15+10+10-25+2-29+0+23+20-51-13-5 decode_857x1723 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 3 1714 11899 +2010+203+160+74+65+69+132+53+38+83+80+37+20+30+1+29-2+42-45-67-5-87-80-63-49-102-149-95-112-118-158-110 decode_857x1723 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 4 1714 9706 +595+68+86+45+39-18+17-6-5-58+14+11+13-4+2-50+6-6-25-39-32-13-20+8+15-33+24-60+22+24-55-13 decode_857x1723 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 5 1714 12039 +1051+315+163+83+61+18+90+71+8+36+10+18-7-115-26+1-50-87+16-22-21+15-43-39+44-4-115+39-56-124-150-125 decode_857x5167 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 selected 1714 1274 +940+98+27+17+14+2-5+5-6+4-3+4-9-5-14-11+2+2-1+6-2+0-6-4-2+0+2+4+2-6+2-11 decode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 0 1714 1275 +221+80+35+3-5+3-3+3+7-2+2-3+3-10-3+4-11-3+0-8+1-2-3+0-11+0-13+5+0-3-3+8 decode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 1 1714 1553 +925+153+92+61+59+55+34+35+38+24+36+22+22+11+0+19-9-9-22-30-42+33-44-51-46-55-61-67-62-68-62-56 decode_857x5167 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 2 1714 11665 +867+139+76+5-30+5+37-1+9+13-2+4-3-39-26-41-38-7-30+32+11+39+12+7+11-22-7+37-3-39-26-41 decode_857x5167 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 3 1714 18459 +798+257+120+111+69+19+47+52+19+64-21+1-9-23-20+0-40-6-38-71-45-9-26-88-41+3+0+17+3+28-3-19 decode_857x5167 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 4 1714 11662 +757+116+17-7+3+4-26-45+7-8-35+28+33-33+7-22+13+42-7-6+9+37+8-9+2+39-6-49-13+6-18-14 decode_857x5167 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 5 1714 16066 +1922+1147+1025+972+0-39+20-20-25+15-1-18-28+55-14-26+26+10+22+52+4-42+20-20-25+15-1-18-28+55-14-26 decode_857xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 selected 1714 104 +270+97+27+2+2+0+2+0+0+0+5+0+0+0+0+5+0+0+0+0+5+0+0+0+5+0+0+0+0+5+0+0 decode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 0 1714 128 +165+81+15+13+10+10-3+1-4-1+2-4-1+1-3+1-4+3-3+1-4+3-4+3-3-3+1-4-1+1-4-1 decode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 1 1714 107 +129+46+21-2+1+1-4+0-4-1-4-1-4+1-4+0+6-1-4+3+1+1-4+1-1+2-1+2-4+1-1+2 decode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 2 1714 916 +78+22+1+2+0+0+0+0+0-1+1+2+0-1+0+1+0-1+1+2+0-1+0-1+1+2+0-1+1+2+1-1 decode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 3 1714 275 +107+32+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 selected 3428 180 +240+30+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 0 3428 1765 +119+82+13+14-2-2-2-4-1-4-1-4-1-4-1-4-1-4+1+1+1+1+1+1+1+1+1+1+1+1-2-3 decode_857xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 1 3428 179 +37+15+14-1-1-1-1+0+0+0+0+0+0-1-1-1-1-1-1-1+0+0+0-1-1-1+0+0+0+0+0+0 decode_857xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 2 3428 928 +116+30+0-5-1+0+0+0-1+0+0-1-1+0+0-1-1+0+0+0+0-1-1-1-1+0+0+0-1+0+0-1 decode_857xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 3 3428 286 +107+27+1+1+0+0+0+1+1+1+0+0+0+0+0+0+0+0+1+0+0+0+15+1+1+0+0+0+1+0+0+0 decode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 selected 953 141 +1355+60+12-2+3+3-2-2-1-4+3-2-2+3+3-2-2-1-4+3-2-2+3+3-2-2-1-4+3-2-2+3 decode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 0 953 150 +131+34+14+1-5-2-3+1-5-2-3+1-5-2-3+1-4-2+3+1+1+1+1+1+1+1+1+1+1+1+1+1 decode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 1 953 136 +86+40+22+22-1-2-1-1+0-2+1-1+0-2+0-2+0-2+0-2+0+0+2+5+1+2+0-1-2-1+1+5 decode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 2 953 201 +377+58+36+2+3+0-1+0+1+0+0+1-1+1-1+0+0+0+1+0+0+1-1+1-1+0+1+0-1+0+1+1 decode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 3 953 1043 +252+36+14+1-2-4-1-2-2+2+0+1-1+1-6-3+0-2+2-1+0+1-5-1+1-1+0+1-5-1+1-1 decode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 4 953 275 +264+71+45+42+20+3+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2-1+0+0+0+0 decode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 5 953 1847 +547+59+36+13+10-1-2+0+0+0+1+3-1+0+2-2+0+2-2+0+2-2+0-1-1-1-2+0-2+1+1+0 decode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 selected 1906 1394 +822+89+29-8-13-1-16+15-13-2+13-16-12+8+3-4-7-3+19-10+10+5-7-18-10+5+10+12-7+0+0+4 decode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 0 1906 1395 +74+46+55+14+18-8-25-3+19-7-7+13-2-1+9+7-6-3-3-4+9+7-5-3+0+1-11-15-1+5-17-14 decode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 1 1906 1736 +766+147+45+23+20+17+22-5+3-4-16-10-15-18-19+22-20+5-23+15-13-24+14-23-33+23-20-42+11-24+24+16 decode_953x2115 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 2 1906 12205 +571+116+8+54-12-7-43+27+24+15+19+19-5-64-21+58-47+7+6-84+1-10+16-44-4+32-7-9-17+3-18-45 decode_953x2115 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 3 1906 12872 +1061+347+38+8+71-47-4+43-16+54-24+77-31-3-10-20-38-19-54-2+9-25+74-71+1-65-30+5+10+10+13+45 decode_953x2115 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 4 1906 12191 +993+95+144+12-67+12-23-23+6-1+28-21-8+0+0+22+34-31+4-11-34+19-51-15-16+11+10-2-28+16+0+1 decode_953x2115 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 5 1906 13141 +2173+168+31+53+49+36-62-27-12+6+40+65-16+5-46+39-96-51-48-47+43-25+59-30+8-35+49-68-25-63+53-33 decode_953x6343 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 selected 1906 1396 +572+100+72+15-10-4-10-8+7+11+5+1-5+7-4+5+12+6-1+12+9-8-1-10-15-18-6-4-15-9-2+9 decode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 0 1906 1405 +117+62+23+10+7-11+12-9+1+8+13+9-7-6-22-3-12-7+5+8+13+9-7-7-11-1-10-6-2-15-3+2 decode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 1 1906 1577 +1313+160+95+141+92+141+79+78+80+73+59+37+29+13+1-9-21-15-25-43-64+25-74-62-81-82-93-102-118-115-144-128 decode_953x6343 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 2 1906 12311 +513+80+7+3+16-5+44+49+3+33-8+13-56-4+4-3-21+42+18-15+6+8-3-59-5-34-25-9+5-21-11-33 decode_953x6343 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 3 1906 20374 +724+287+145+138+101+75+60+76+75+50+32+178+31-3+8+6-10-18-37-25-44-36-50-46-76-36-46-83-62-51-46-58 decode_953x6343 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 4 1906 12300 +859+50+118+72+33-25-5+10-14-15+6+8-19-23+10-12-4+2+40+685+35-1-7-10-19-78-78+26+0-50-41+0 decode_953x6343 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 5 1906 18924 +710+234+78+105+75+34-17+13-26+2-37-15-30+96-37+7-25-7-59+44-60+16-65+43-87+20-104+63-36+0-85+26 decode_953xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 selected 1906 110 +520+74+28+22+0+0+2+0+0+2+2+0+0+0+0+0+0+0+0+0+0+2+0+2+0+0+0+0+0+0+0+0 decode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 0 1906 136 +183+68+17+10-3+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 1 1906 153 +37-7-8-2+1+1-2-1+1+0-1+16-22+18-22+18-22+15-22+21-23+16-22+18-22+18-22+18-22+20-22+19 decode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 2 1906 1012 +96+32-3-2+0+1+0-2+2+0+0-2+2+0+0-2+1+0-2+0+1+0+1+0+0-2+1-2+1-2+1-2 decode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 3 1906 303 +104+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0 decode_953xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 selected 3812 195 +246+48+3-2+2+0-2+0+37+42-2+0-1-2-1+0+0+0+0-1-1+0+0-1-1+0+0-1-2-1-1-1 decode_953xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 0 3812 1955 +159+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+24+1+1+1+1+1+1+1+1+1+1+1+1 decode_953xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 1 3812 192 +41+14+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 2 3812 1021 +96+60+53+59-3+0-1+0+36-2+0+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 3 3812 314 +105+28+1+3+2+1+1+1+1+1+1+1+1+1+1+1-3+1-3-3-3-3-3-3-3-3-3-3-3+13-2-2 decode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 selected 1013 139 +765+40+28+0+1-3+0+1-3+0+1-3+0+1-3+0+1-3+0+1-3+0+1-3+0+1-3+0+1-3+0+1 decode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 0 1013 147 +141+39+26+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 1 1013 136 +58+40+14+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 2 1013 274 +669+92+13-1-1+0-1+0-1-1+0+1+0-1-1+0+1-1+0-1+1+0+0+1+0+1+0-1+0-1+0+0 decode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 3 1013 1192 +497+35+24+17+0+1+0-4+1+0+1+0+0-4+1+0+1+0+1+0-4+1+0+1+0+0-4+1+0+1+0+0 decode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 4 1013 242 +279+153+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 5 1013 1966 +533+57+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 selected 2026 1565 +1042+115+10-9+9-1+9-17-14+1+10+9+12-21+8-12+3-10+3-10-4+0+4-12+3-10-4-3+11-5+8-12 decode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 0 2026 1569 +163+99+5+10-13-9-2+10-3-6-13-6+3+21+1-9-13+6-10+1+6+6-10+1+9+9+2-13+3-15+2-2 decode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 1 2026 1738 +886+202+90+42+27+26+18+7+15+23+2+8+3+9-11-19-14-21-20+57-8-26-30-26-2-2-18-39+40-25-28-6 decode_1013x2393 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 2 2026 13593 +1918+499+36+5+13-14+20-19-10-41+47-12+17-11-7-12-12+5+40-32+59-14+24-11+29-38-8+35-15-4-51+0 decode_1013x2393 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 3 2026 17291 +656+148+156-7+97-6-6+13+35-57-5+2-36+8+15+36+10+7-10-17-39+63-2-41-36-31-25+68-28+27-40-8 decode_1013x2393 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 4 2026 13735 +1072+99-143+197+150-147-82-87+248-84+258-138-86-85-80+208-145+176-91-128+245-146+207-141-45+151-116+151-110+154+162-111 decode_1013x2393 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 5 2026 17795 +893+180+120+27+46+27-28+7-16+10-19-17-42+29-54-34+13-9+15-13+16-34-17+30-40+18-10+7-14+23-27-18 decode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 selected 2026 1449 +1354+64+35+35-10+1+0+5-4-9+5-9+1+1-9+5-9-7+1+0+8-4-9+5+15-3-9-7+1+0+5-4 decode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 0 2026 1441 +130+83+37+17-24-2+2-14-1+1-1+2-9+7+6+13+2-11+1-12-8+0-1+3-1+0-3-10+2-11+1-12 decode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 1 2026 1815 +924+96+26+19+13+8-10+4+0-10-7+9-10+4+0-10-7+9-10+4+0-10-7+9-10+4+0-10-7+9-10+4 decode_1013x7177 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 2 2026 12938 +595+176+120+8+29+3+14+14-18-22+3+26+17-12-14-18-29-75-24+40-14+16-7-82+5-30-26+48-69+28+57-32 decode_1013x7177 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 3 2026 19818 +2552+113-2-11+31-18-18-73+19-4-25-67-28-22-77-88-11+18+5+41-18-11-4+21+20+35+2+18+9-26+29+59 decode_1013x7177 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 4 2026 12940 +777+85+83+54+43+50+3-12-52-21-21+38-70+3+12-27-50+12+29+47-13-21-54-27-30+32+4+65-55-38-36+8 decode_1013x7177 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 5 2026 18235 +977+120+72-28+34+17+78-15+62+7-27-61-63-12+65+81-42-46+2-77-85-9-54-141-165+18-158-136+102+69+82+31 decode_1013xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 selected 2026 172 +239+54+21+20+0+1+0+1+0+1+0+3+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 0 2026 144 +228+90+36+15+15+15-2-1+0-1+0-2+1-2+0-2+1-2+1-1-1-1+0-2+1-2+0-1-1-1+0-2 decode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 1 2026 171 +83+51+51+30+30-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 2 2026 1073 +76+24+1+2+1+1+1+2+1+2+1+4+1+2+1+5+1-2-3+0-3+0-3+1-3+0-3-2-3-2-3-3 decode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 3 2026 199 +134+28+4+4+0+2+0+0+0+0+0+0+0+0+0+0+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 selected 4052 317 +205+79+59+2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0-1+0+0-1+0+0-1 decode_1013xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 0 4052 2073 +124+40+0-1+1+0+1+1+1+1+1+0+1+1+1+1+1+0-1-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_1013xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 1 4052 315 +82+56-2+0+0+0-1+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1 decode_1013xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 2 4052 1082 +97+26+20+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+31+28+0+0+0+0+0+0 decode_1013xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 3 4052 326 +131+50+29+1-1-1-1-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+15-1-1-1+0+0+0+0 decode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 selected 1277 161 +1532+64+22-1+1+0-1+0+1-1+0+1+4+1+0-1+1+0-1+1+0-1+1+0+4-1+1+0+3+1+0-1 decode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 0 1277 174 +123+38+7+11-1+0-7+0-1+0-7+0-7+3+0-7+3+0-1+0-7+0-1+0-7+0-7+3+0-7+3+0 decode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 1 1277 159 +57+40+12+2+4+2-1+0+0+0-1+0-1-2-1-1-1+0-1-1+3-1-1+4+3-2-2-1+3-1-1-2 decode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 2 1277 305 +888+85+17+55+11+1+0+0+0+0+0+0+0+0+1+1+0+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 3 1277 1464 +494+41+13+6+0+3+0+1+5+1+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 4 1277 313 +270+180+89+0+1+1+1+1+1+1+2+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 5 1277 2490 +671+58+23-3+1+0+1-1-1-1+1-1+1-1+1+2+1+0+1+0+1-1+3-1-1-2-3-3-3-3-3-3 decode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 selected 2554 1769 +586+19+2-3-1-13-7-4+5-17+7-12-1+11+10-14-3+5+10-14-3+5+4+1+5-14-6-30-3+5+10-14 decode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 0 2554 1760 +68+37+22+23+28+0-5+13-6-16+2+5-11+0-5+6-4-13-17-6-5+1+1-4+1+9+2+6+2-13-1-1 decode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 1 2554 1897 +1225+133+75+87+38+45+30+1+5+0-3-8-19-3-7-15+51+35+38-13-18-17-21+58-9-33-12-45-36-51-57-56 decode_1277x2627 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 2 2554 17185 +736+87-43-8-6+411-36-59-87+104+20-5+185+365-26-50-2+10-66+7-92-20+112+343+97-49-10-18-62+133-47-67 decode_1277x2627 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 3 2554 21427 +1754+660+720+626+608+587+585+515+60-39-105-8-12+45-62-34-16-70-27-10-86+37-33-26-63-48+13-51-38-4+72-20 decode_1277x2627 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 4 2554 17232 +389+24+90+0+9+54-166-15-47+57+108+244-80-50+20+21-46-3-43-40+39+30-3+42-52+3-72-91+18+52-14-42 decode_1277x2627 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 5 2554 21622 +1887+767+485-25-22-33+8-62-53+26-110+789+751+32+16-38-6-43+161+57-28-38-11+8+19-73+26-5-10-7+7+2 decode_1277x7879 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 selected 2554 1638 +896+50+37+15+6-3+4-7-6-4-17+11+8+10-11-4-19-2+6+9-3-3-11-11+8+10+6-8-3-4-10-15 decode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 0 2554 1633 +101+57+12+38+20+0+13+10-7-4-7-4-7-4-7-4-7-4+1+2+9+8-7-17-6-1+7-3+8+6-6+3 decode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 1 2554 1796 +1283+183+122+114+103+81+82+74+68+48+35+40+6+9+1-14-4-20-27-19-48-28+0-45-59-62-51-70-77-75-81-84 decode_1277x7879 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 2 2554 16164 +603+158+14-15+5+23+30-3+37-9-85+51-37-50+35-45-51-12-7-5+71-63+5-31-8-38-15+23+33+35-55+6 decode_1277x7879 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 3 2554 23350 +1019+297+126+109+111+49+39-39-25+20-22-39-25+20-1+25-25+8-22-38-25+46+7-19+69+8-22-38-25+21-22-17 decode_1277x7879 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 4 2554 16174 +871+147+13+64+12+13-59+33+10+18-31-17-6-18+11+43-2+12-27-36+4+12-80+5+22-27-25-7+30-29-13-44 decode_1277x7879 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 5 2554 24408 +1064+357+202+119-25-15-2-40+33-86-15+20-39-96-11-14+48+45-22-2-16+33-96+96+54+27-44-28-83+58-13-62 decode_1277xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 selected 2554 168 +165+16-9-13-14-14-14+7+5+8+8+7+8+5-3+0-4-1+1+0-1-1+0-4-1-1-1-1-1+0-4-1 decode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 0 2554 175 +234+61+40+8-5+2+2+3+2+3+2+3+2+3+2+3-5+6-2-2-2-2-2-2-2-2-2-2-2-2-2-2 decode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 1 2554 167 +18+8+5+8+5+5-14-6+0+0+0+3+0+0+0+2-8+0-1+0+0+1-8+0+1-8+0+1-8+0+1-8 decode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 2 2554 1336 +95+49+21-2-1+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0-1+0+0+0 decode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 3 2554 232 +108+81+69+41-1-1+0-1-1+0-1+0-1-1+0+0-1+0-1-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_1277xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 selected 5108 380 +443+80+49+46+6+0+0-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0 decode_1277xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 0 5108 2597 +186+38+0+0+0-1+1-1+1+0+0+0+0+0+0+10+22+1+0+0-1-1+1+0+0+0-1-1+1+0+0+0 decode_1277xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 1 5108 379 +61+33+5+3+6+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0 decode_1277xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 2 5108 1346 +113+75-1+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 3 5108 700 +128+57+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 selected 2 48 +145+45+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 0 2 48 +59+42+20+19-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1 decode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 1 2 49 +62+41+36+36-2-2-2-2-2+1-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 2 2 48 +44+38-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1 decode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 3 2 47 +52+44+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0 encode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 selected 164 123 +366+35+27-1+3-1-1-1-1+2-1+0-2+0-4+3-2+0+0-1+0-1-2+1+1-3-2-3+0+0+0+3 encode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 0 164 129 +147+39-1-1-3+4+0-1-1-1-1-1-1+0-2-3-2+1+1-3+4-2-1+0+0+0+0+0+0+0+0+0 encode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 1 164 121 +52+33+11+3+4+3+1+5-2+1-2+1-1+3+1+0+2-3-1-3-3-2-3-1+0-1-2+0-1-2+0-1 encode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 2 164 341 +600+25+19-1-1+0+1+1+1+0+0+0+2+2+3+3+0-1+0+0-1+0-1-1+0-1-1+0-1-1-1+0 encode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 3 164 162 +287+40+40+26-2+0+0+0+2+0+0-2-2-2-2-2+3+3+3-1+0+0+0-2-1+0+1-2+2-2+2+2 encode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 4 164 767 +65-24-17-17-37-38-33-56-57-57-56-57-56-56-56-55+17+25+26+26+25+26+25+26+25+25+28+26+25+25+25+25 encode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 5 164 209 +665+53+30+8+7+6+6+5+3+2+3+2+0+0+1+0-2-3-4-2-2+0-2+0-2-1-6-1-5-1-5-4 encode_653x1541 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 selected 865 639 +1312+59+14+8-5+3-7+6+5-2-7+3+0-5-8-5-3-2-8+6+1-3-8+6+1-3-8+6+1-3-8+6 encode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 0 865 737 +373+71+22+24+11+0-6+8-7-6+8-8-6+8-8-4+8-8-4+8-8-4+8-8-4+8-8-4+8-8-4+8 encode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 1 865 637 +105+35+10+16-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 encode_653x1541 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 2 865 1323 +708+162+17+0-2-6-9+9+7-3+5-1-18+2+2+4+0-14-2+26-8-2+2-15-1-6+8+15+1-14-3+0 encode_653x1541 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 3 865 1528 +387+155+12-40+16-7+5-2-18-23-11-7+5-12+5-12+5-12+5-12+9+0+1+0+1+0+1+0+1+0+1+0 encode_653x1541 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 4 865 2019 +713+138+73+40-3-3+5+4-3-8-18-4+0+7-6+4-1-12-7-14-5+7-1-1+1-4+5+2+26+1+4-3 encode_653x1541 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 5 865 2820 +675+110+75+3+21+27+12-15-15-7+1-19-7-16+25+21-25-6-13+20+6-6+30-1-12+23-15-11-13+0-15-7 encode_653x1541round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round selected 865 754 +2010+68+22+27+17-1+0+1-7+5+0-4+8-5-8-2+1-1-7-1-7+2-3+0+2-1+4+2-3+1-6+0 encode_653x1541round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 0 865 894 +376+77+14+15+9+14+3-1-3-6-4-1+0-2+6+4-3-1+3-3-6+3-2+3+0-6-6+1-1+3-3-6 encode_653x1541round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 1 865 760 +150+41+18+17+2-3-5+0+1+5-4+1-7-9-5+0+1-1-7-7-6+2-4+0+0-2+1+3+0+6+5+3 encode_653x1541round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 2 865 928 +542+74+22+12+5+6+10-7+8-4-3-7+8-4-3-7+8-4-3-7+3+0+10-1-7-4+10-3-4-5+0-3 encode_653x1541round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 3 865 968 +458+85+40-7-3-2-3-7-8-7+4-1+8+3-2-2+1-6-2-2+1-2+25+4+4+8-4+4+4-8-2+2 encode_653x1541round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 4 865 1049 +160+105+32-9-7-1-5+0-5+1+0-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 5 865 1263 +210+101+65+29+19-12-7-2+10+11+9+3+9-6-1+1+5-4-3+4-11+1-7-4-3-9-2-6+1-2-7+0 encode_653x4621 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 selected 994 597 +884+115+84+40-3+3-1+3+5+14-3+3-1+4-3+2+2+1+2-4-4+1+0+0-2-3-4+0-1-4-4+1 encode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 0 994 627 +969+132+26-2+0+0+0-4-2+0-1+0-1+0-1-2+3+3+0+0-3+1+3+0-1-4+5-2-5+1+1-1 encode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 1 994 599 +180+108+24+33-8-10-5-6-4-4-2-2-5-10-3-3+0+1+2+2-3+2+3+1+7+6+1+6+1+1+6+1 encode_653x4621 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 2 994 1401 +756+93+90+74+41+10+3-15+6-8+6-4-1-16+6-6-6-4-3-6-5+3-14+24+7-5-1-4-7-29+4+8 encode_653x4621 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 3 994 1219 +445+137+36+9-7+27+9-11-11-15+4-3-15-17-5-4+3+23-1+1-1+12-3-5+2-1-11+5+3-15-1+4 encode_653x4621 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 4 994 2073 +806+201+71+38+24+28+22+29+1+10+3-5-7-1-1-4-3-11+6-18-2+10-4-14+0-11-4-13-11-8-6-7 encode_653x4621 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 5 994 1757 +478+154+65+47+49+12-3-2-1-5-4+23-1-5-1+0-1-6-1-1-4+4-6+10-6-6-1+12-7-1-7-1 encode_653xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 selected 653 191 +246+111+50+52+17+0+1+1+1+1+4+0+0+0-3-3+0+0+0+0+0+0+0+0+0+0+1+1-3-3+1+0 encode_653xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 0 653 193 +63+33+15+13-4+1+1+1-1-1+1-1-1+1-1-4-1+1+1-4-1+1-4-1+1-4-1+1-4-1+1-4 encode_653xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 1 653 193 +213+128+41+1-1+2+2-1+2-1+2-1+2-1+2+7-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 encode_653xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 2 653 461 +131+47+42-6-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 3 653 432 +453+78-1-2+2-9+2-9+2-9+2-9+2-9+2-9+2-9+2+2-6-1+0-1+0-1+0-1+0-1+0-1 encode_653xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 4 653 1341 +120+28+18+23-1+1+0-2+0+2+1-2-2+2-1+3-2-2+0+0-2-2-3+0+0-1+0+0-2-2-3+0 encode_653xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 5 653 721 +131+36+21+12+3-1+3+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+21 encode_653xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 selected 1306 143 +446+76+26-8+1+0+1+0+0+0+0+1+1+0+1+0+0+0+0+1+1+0+1+0+0+0+0+1+1+0+1+0 encode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 0 1306 292 +230+73+56+1-1-2+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 1 1306 214 +121+30+0+0+0+0+0-1+0+0+0-1+0+0-1+0+0+0-1-1+0+0+0-1+0-1+0+0+0-1+0-1 encode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 2 1306 138 +68+39+12+50+10+11-2+1+1+1+0-2-1-1+0-1+1+2+1+1-1-1+0-1+1+2+1+1-1-1+0-1 encode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 3 1306 245 +150+48+19+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 selected 191 120 +564+42+27+25+3+2-2+0+2+1+0-1+2+3-1+0+1+2-4-3+1+1-1+1-1-3-1-3-1-3-1-3 encode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 0 191 126 +177+44+17+3+0+0+0-1+1+3+1+0+3+5+0+0+0+2+1+1+5+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 1 191 122 +50+40+21+4+1+1-2-1-4+2-1-1+5+0+0-1+0-2-1-2+1+1+1-1-1-2-1-2-1-2-1-2 encode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 2 191 422 +483+36+33+0-1-1-1+0+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 3 191 206 +647+40+27+21+0-1+0+3+0+0-1+1+1-3+0+0-1+0+0-2+1-3+0+0+0+0+0+3+1+0-1+0 encode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 4 191 641 +140+28+7+2-2+1+2-2-1+1+4-2-3-3+0-2-2-2+2-3+3+0+2-3-2+1+0+1+3+0-3+1 encode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 5 191 253 +136+80+26+24-3-1+3+0+1+3+3-3-3-3+0-1-3-3+0-1-3+0-3+1-3+0+1-3+0+3+1+3 encode_761x1531 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 selected 1007 745 +1105+75+28+8+1-3+0-4-3+8+5-9+24-1+2+3+1-1-1+0+0-5-9+0+0-5-4-5+4-1+4-2 encode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 0 1007 769 +557+68+21+1+3-1+0+3-1+2-1-5-1+2-1-5-1+2-1-5-1+2-1-5-1+2-1-2-3-4-2+0 encode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 1 1007 742 +84+32+22+2-6-5+0-2+5+5+0-3-6+4-6+2-6-5+0-5-4+2-3+1+4+0+4+0+4+0+4+0 encode_761x1531 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 2 1007 1553 +565+140+24-3+6+5-1+4+9-1+5+2+13+0+1-11-6-3+21-9+3-9-7-4-6+1+8-5-4-8-15-8 encode_761x1531 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 3 1007 1829 +734+130+36+21+7-9+18-8+4-21-4-2+8-40-14+4-1+14+6-4-13-2-4+5-3-7-21+20-3-4+21-11 encode_761x1531 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 4 1007 2274 +412+105+71+8-1+2-4-7-12+24-7-13+10+4-9+5+9+9-13+10-12+5-12+24-15+18-7-6-14-2-8+3 encode_761x1531 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 5 1007 3227 +921+140+65+33-3-11+2+21+12+35+2+0-12-3-21+8-18+14-8-7-11+11+8-9-17+16-11-8-12+3-21+8 encode_761x1531round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round selected 1007 856 +952+77+12+6+6-1+2-2+2+2+7-5-2-4-7-3-8-4-7+4+2+2+7-5-2-4-7-3+4+1+3-1 encode_761x1531round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 0 1007 1006 +347+62+50+32+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1-7-5-7-5-8-2+5-4-7-5 encode_761x1531round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 1 1007 864 +98+44+31-4-1+6-2+3-8-6+1+3+21-5-3+1+3-2-6+1+3-2-6+1+3-2-6+1+3-2-6+1 encode_761x1531round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 2 1007 1060 +614+52+48-2+0-6-2+11+0-6-2+11+0-5+3-11-1+6+0-2+2+5-6+0+2+0+0-2+2+5-1+0 encode_761x1531round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 3 1007 1124 +506+118+21+20+0+3+7-1+2+3-2+3+8-1+5+3+2-4-2+1-1+1-2-2-3-4-2-2-3-4-2-2 encode_761x1531round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 4 1007 1193 +184+70+16+7+1+2-4-2+2+2-4-2+2+2-4-2+2+2-6-6+16-7-10-1+3-9+1-3+1-5+0-9 encode_761x1531round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 5 1007 1456 +165+54+10+0-3+3-4+3+4-4+0-2-7-2+5-1-2-6+0+6+0-2+1+3+6+2-1-3+6-3+6-4 encode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 selected 1158 667 +613+83+20+14+2-1+0-1-1+2-2-1+0-1-1+2+5-4-5+2-2-5-5+2-2-5-5+2-2-5-5+2 encode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 0 1158 666 +66+40+23-3+0-3+0-3+0-3+0-3+0-3+0-3+0-3-3+0+3-1+0+3-1+0+3-1+0+3-1+0 encode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 1 1158 671 +439+108+16+13-1-8-1-8-1-8-1-8-1-8-1-8-1-8-1-8-1-12-11+0-11+1+20+20+20+20+20+20 encode_761x4591 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 2 1158 1750 +1138+172+21+20+4+9+13-25-4-29-5+5+10-1+13-25+5+3-16+8-13+1-25-2+1+3-24-13-24+20-19-2 encode_761x4591 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 3 1158 1769 +961+142+84+26+14+12+8+11+14+8+10+5+7+8+9+1-9-5-10-14-8-7-13-6-9-13-11-11-10-11-10-16 encode_761x4591 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 4 1158 2326 +422+115+15-14+5-14-11-26+23+5+11-11-1-7-18-2-21-5-32-8-5+1-5+27-17+25+17+7-17+12+10+28 encode_761x4591 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 5 1158 2120 +781+177+90+37+63+40+10+8+11+28+2-9-4+1-6-10-6-10-10-1-6+3-6-5-6-8+8-1+6-11-2-10 encode_761xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 selected 761 212 +303+132+35+17+0-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_761xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 0 761 210 +91+38+18+1+0+0+0+0+0+0+0+0+0+0+0+0+0+14+1+0+0+1+0+0+1+0+1+0+1+0+1+0 encode_761xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 1 761 212 +213+123+25+22+1-1+0+0+1-1+1+0+0+0+1-1+1-1+1+0+0+0+1-1+1-1+1+0+0+0+1-1 encode_761xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 2 761 519 +143+39+13+14-2-2-2-2-2-2-2-2-2-2-2-2-3-2-3+8+4-1+0+8+8+6+6-1+8+0-3+0 encode_761xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 3 761 487 +107+45+0+1-5-5-1+3-1+3-1+3-1+3-1+3-1+2-3-6-6-2-1+3-1+3-1+3-1+3-1+3 encode_761xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 4 761 1558 +112+44+24+3+2+3-1+2+0+1-1-1+0+1-1-1+0+1-1-1+0+1-1-1+0+1-1-1+0+1+24+2 encode_761xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 5 761 825 +140+47+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+1+0+1+1+0+1+1+0+1+1+0+1+1 encode_761xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 selected 1522 168 +469+87+0+0+0+0+0+0-1+0-1+0+0+0+0+0+0+0-1+0-1+0+0+0-1+0+0+0-1+0-1+0 encode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 0 1522 313 +247+34+26+1+1+0+0+0+0+0+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 1 1522 239 +117+23+1+1+1+1+0+1+1+1+0+0+0+0+0+0+1+1+0+0+0+0+0+0+1+1+0+0+0+0+1+1 encode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 2 1522 150 +110+67+15-6+1-1+0-4+1-1+0-4+0-1+1-1+1-3+0-3+0-1+1-1+0-4+0-1+1-1+0-4 encode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 3 1522 276 +163+48+22+18+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 selected 215 167 +363+22+25-3-3-3-3-1-2+3+0-1-2+3+0-1-2+3+0-1-2+3+0-3+0-1+2+3+0-1-2+3 encode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 0 215 173 +119+25+14-1-2+1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 1 215 164 +30+24-1+0+0+0+3+0+3+2+3+0+2+1-3-2-1+2+1-1+1-3-2-1+2+1-3-2-1+2+1-3 encode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 2 215 453 +835+37+1+2+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1 encode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 3 215 203 +599+42+15+5+0+1-2-3+0-5+3+0+0+1+8+0+0+0+0+1+8+0+0+0+0+1-2-3+0-5+3+0 encode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 4 215 714 +125+54+19+26+0+1-1+3+3+3+3+1+0+0-2+1-1-4-3+0-3-1-4+0+0+0+1+0+0+0+1-3 encode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 5 215 265 +133+63+8-5+3+3-3+1-7+0+0+0+0+0+0-1+0-7-1+0+3+0+0+0+0-1+3+0+3+0+0+0 encode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 selected 1152 902 +371+137+49+46+20+1-7-5-6-1+1-7-5-5-7-7-7+1+2+2+2+2+2+2+0-4+2-4+4+3+4+3 encode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 0 1152 901 +120+44+34+16+25-3-5-1+4+8+1+0-1-1+1-5+0-4-2+4+1-3-5-1+6+1+2-1-1-1-6-4 encode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 1 1152 1047 +741+60+24+11+20+1-4-1+1-4-1+1-4-1+1-4-1+1-4-1+1-4-1+1-2+2+6+1+2-3-4+0 encode_857x1723 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 2 1152 1726 +816+177+38+6-4-6-7-6-14+13+18+0-4-19+17+0-11+5-3+2-1-10-4-1+14+3-19+0+8-6-5+7 encode_857x1723 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 3 1152 2270 +591+110+57+20+17-21+9+22-19-9+6-11+7+22-17-11-7-1-17-12+6+3-26-11-17-14+7-14+18+19-8+42 encode_857x1723 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 4 1152 2536 +770+90+24+64-26-4+31+37-20-10-20+39-22+0+9+43-20-10-23+32-22-19-16+10-18-14+13+28-15-14+31-22 encode_857x1723 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 5 1152 3994 +925+79+77+43-6-13-7+3-5+1-4+0-10+0-8+10-4+0-3+0-4+3-8+4-19+7+35+8-17+21-11+20 encode_857x1723round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round selected 1152 998 +1171+64+8+20-1-12-2+2+7-2-4+4+1+4-10-4-3-2-13+2+5+6-4-4+2-8+0+10-5+7-1+1 encode_857x1723round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 0 1152 1167 +315+88+41+2+0-5+0-5+0-5+0-5+0-5+0-5+0-5+0-6-9-5-6-2+5+2+5+8+4+6+4+4 encode_857x1723round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 1 1152 1002 +121+14+11+0+0-11-1+1-5+2-3+2-3+2-3+2-3+2-3+2-3-12+0+2-6+3-8-5-4+3+17+2 encode_857x1723round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 2 1152 1242 +311+91-3+7+6+1-1+0+1+6+0+4-1+1-1+1-1+1-1-2+0+4-1+1+7-1+9-23-3-3-7-9 encode_857x1723round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 3 1152 1306 +460+96+50+33-10+1-3-3+3-6+0-6+3-5-3-1-3-2-6-1-8-4+28-1+7+5+7+4+0+4+0+4 encode_857x1723round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 4 1152 1399 +258+77+27+20+1+0-4-1+3+0-4+2-9+2-4-3-5-2-1+2-1-7-1+3+5-8-8+2+7-1-11+17 encode_857x1723round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 5 1152 1725 +128+18-4-6+3-2+1+0-1+2-3-3-2-2-1+2-3-2+10+2+0-1-7-2+9+5+4+0+1+2+3+2 encode_857x5167 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 selected 1322 733 +1125+120+50+12-7+11+15-8-5-2+15-8-5-2+15-9-7+12-7-5+15-8-5-2+15-8-5-2+15-8-5-2 encode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 0 1322 802 +355+109+40+1-8-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 1 1322 727 +119+92+52+46+0+0+0+0+0+0+0+0+0+0+0+0-1-1-4+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x5167 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 2 1322 1819 +525+147+72+7-1+2+20+3-3+17+3+1-15-16+0+3-19-3+0-2-10-6+7+2+0-1-7-14+13-8-7+7 encode_857x5167 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 3 1322 1617 +747+129+54+42+7-7-3+7+4-5-4-2+5+33-9-4+1-9-1-5-3+7+24-9+2-5+1-3-3+8+3-11 encode_857x5167 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 4 1322 2610 +493+85+61-3-7-5+13-13+16-8+9+8-19+3-20-13+9-13+12+24+14-10-20-7-10-21-17+39-7+28+16-23 encode_857x5167 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 5 1322 2334 +744+103+51+8+8+0-7-2-10-4-4+5+8+4-12-8-1+13-12-5+2-6+0+26-7-2-4-9-3+6+11+0 encode_857xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 selected 857 233 +305+149+24+26+0+1+2+2-2+3+0-1+1+1+2+1+3-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 encode_857xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 0 857 230 +198+108+35+0+1+1+1+1+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 1 857 232 +116+84+22+2-1-1-1-1+1+1+3+1+0+1+2+1+0-1+0-1+1-1-1-1-1-1-1-1-1-1-1-1 encode_857xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 2 857 579 +159+41+18+1+3+0+0-1-1+2-1-1+2-1-1+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 3 857 539 +403+56-3+2+0+1+3-2+0-5-4+5+2+1+1-3-4+1+1+1+1+1+1+1+1+1-3-3+1+1-3-3 encode_857xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 4 857 1751 +103+43-2-4-1+1-2-4-5-2+2+0+2+0+0+0+0+0+0+0+0+0+0+0+0-2-2+1-3+1-3+1 encode_857xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 5 857 921 +124+44+14+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+12+24+1+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 selected 1714 164 +430+89+31+10+12-6-1+0-3-1-1-1+0-3+0-1-1+0-1+0+0+0-2-3+1+0+0+0-3+0+0+0 encode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 0 1714 361 +133+78+2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 1 1714 266 +112+25+0+0+0+0+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 2 1714 160 +62+43+14-4+1-1-1-1-1-1-1-1-1-1-1-1-1-1+0-1+2-2+2+1+2+0+2+1+0+2+2+1 encode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 3 1714 305 +142+39+20+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 selected 239 145 +682+59+37+10+2-3+1-2-4+0-1+1+1-2-3-1+0+1-2+0+1-2+0+1-2+0+1-2+0+1-2+0 encode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 0 239 151 +138+59+10+10+1+1+1+0+1+3+1-1-1-1-1-1-1-1-1-1-1-1-1-1-1+1-1-1-2+4-1-2 encode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 1 239 144 +39+37-5+0+0+0-4+0-1-4+0+3+1+0+0-1-4+1+1-1-2+0+0-1+1+2-1+2-1+2-1-1 encode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 2 239 485 +908+57+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 3 239 231 +444+40+24+21+3+4+1+0+0+0+0+0+0+0+0+0+0-2-1-1+0+1+0+0+0+1+0+0+0-2+0+1 encode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 4 239 784 +114+52+23+17+0-1-2-1-2+1+0-2+2+0-1+3+3+2+2-1-2-2+0+1-1-2-2+2+0-2-2+2 encode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 5 239 297 +460+55+25-2-2+2+3-2+2+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 encode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 selected 1317 1064 +486+67+14+12+13+0+5-2+5+1-1-4-1-4-1-2+0-6-7+3+2-2+1-4-2+3+6-4-3-2+1-4 encode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 0 1317 1058 +107+54+5+6+5-4-3-1-1+4-6-4-4-4-3-1-5+4+4-6-5-3-4+6+3+6+3+3+5-4-3-1 encode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 1 1317 1087 +610+58+9-3+1+0+1+1+0+0+0+1+0+0+0+1+0+0+0+3+0+2+0+2+0+1+0+1+0+0+0+1 encode_953x2115 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 2 1317 2000 +540+145+104+26+31+4-1-6+2-5+1+10+4+7+3-14+3+16-2-17+0-23+6-9-13-23+6-9-13-23+6-9 encode_953x2115 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 3 1317 2152 +879+116+20+37+2+3-11+18-20+40-6-14+36-9-21+39+9-8+27+7-1+11+9-15-38-14-12-31+9-7-27-13 encode_953x2115 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 4 1317 2781 +497+170+50+14-6-1-9+3-8+11-10+7+16+14-5+4-7+8-5+2-16-2-4-3-5+2-3-3-13+4-14+4 encode_953x2115 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 5 1317 3916 +1002+141+79+61+2+10+7+0+4-1-1-12-7+6-15+1-1+11-6+11+1+3-7-9-6-6+2-5-7+6-15+1 encode_953x2115round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round selected 1317 1190 +747+80+37-7+3-6+0+0-6-2-7+10+5+3+2-12-5+3-6-4+7-3+0+0-6-2-7+10+5+3+2-12 encode_953x2115round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 0 1317 1206 +84+23+22+4+2+4+1+3+8+4-1+2+3+3+1+4+1+2-5-11-3-5-7-10-3-4-11-12-4-4-5-7 encode_953x2115round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 1 1317 1193 +446+74+19+19-11-13+0-1+0+0+0+1+0+0+0+0+0+0+0-7+1+0+0-1+0+2+9-4+0+1+0-1 encode_953x2115round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 2 1317 1498 +670+86+17+16-8+5+0-7-6+6-7-7-7+6-7-7+4+6-7+3+4+5-2+5+2-3-7-8-2-6+11+0 encode_953x2115round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 3 1317 1559 +1071+131+44+28+25+5+2+2-5+0+2-4-3+4+3-8+1-6-6-4-3-4+0+3-6+0-4-4+1+0+3-8 encode_953x2115round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 4 1317 1619 +232+70+35-2+7-8-2+7-1+0+10+4+5-2-13-2+0+6+5+5-8-1-5+0-2-11+2-1+0-1-1-5 encode_953x2115round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 5 1317 1933 +218+83+50+1-6+2+8-9+2-10+6-1+0+2-5-9+2-10+6-1+0+8-8-1-4-4-4+2+0+4+1-7 encode_953x6343 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 selected 1505 775 +945+173+57+8-3+2+9-5-5-5-5-5-5-7+4-1-3+2+8+0+4-1-3-1+14-8-5+16-3-1+9-5 encode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 0 1505 830 +426+48+48+0-5+6-7+6-5+6-5+10-6+1-7+0+6+0-5-2-5+1+6-1+0-2-5-2-5+1+6+0 encode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 1 1505 775 +209+65+39-6+5-6+4-6+5-6+3+0+2+6-4-5+6-8+2-8+2-8+2-8+1-1+0+1+3-6+4+0 encode_953x6343 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 2 1505 2030 +1077+134+108+11-1+8+5-24+20-8-5-16+7-4+6-30+0-9+12-26-1-16+12-24+7+0-7-24+7+11-7-23 encode_953x6343 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 3 1505 1917 +1114+220+163+33+10+14+8+7+6-5+5-6-11-11-6-14-6-12+0+10+2-6-2+1+8-10-4-10-16+17-17-21 encode_953x6343 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 4 1505 2908 +499+149+77-10-17-2-11+6+0+33+60+8-11-23-7-15-17+13+17+20-13-7-17+3-1+4-19-8+24-1+5+4 encode_953x6343 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 5 1505 2640 +682+69+15+14+2-3-4-2+14+4-8-3+2-9-16-6+1-13+16+6+2-9+9-6+1-13+16+6+2-9-16-6 encode_953xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 selected 953 250 +545+114+103+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 0 953 250 +88+56+36+18-1+0-1-1+0+0-1+0+0+0+0-1-1+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 1 953 252 +192+129+22+0+0-2-2-2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_953xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 2 953 638 +141+67+11+8+8+3-4-4+1+5-4+1+5-4+1+5-4+1-1+1-1-4-4+1-1+1-1-4-4+1-1+1 encode_953xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 3 953 591 +108+46+16-7-7-7-4+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4 encode_953xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 4 953 1941 +112+20+2+1-2-1+0+1-2-2-2+0+2+0-3-1+1-1+0+0+1+2+0+0-3-1+2+0-3-1+1-1 encode_953xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 5 953 1024 +131+68+14+11+11+10+12+12+8+8+1-5-5-5+0-4-3-1+0-4-2-6+1-4+0-5-5-5-5-5+1+0 encode_953xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 selected 1906 192 +266+69+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 0 1906 387 +208+95+24+5+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 1 1906 290 +131+28+6+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 2 1906 179 +45+29+29+1+2+3+0+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 encode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 3 1906 351 +112+42+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 selected 254 145 +465+60+22+22+22+20-1-3+1+1-2-3-1+0+1-2+0+1-2+0+1-2+0+1-2+0+1-2+0+1-2+0 encode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 0 254 151 +159+65-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+1-1-2+4-1-2+4-1-2+4-1-2+4-1-2 encode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 1 254 143 +61+35+14+9+4+0+2+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 2 254 530 +1131+57+16+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 3 254 241 +748+47+16-1+3+11-1-1-2-1+0-2+0+0-2+0+0+0-1+0-1+0-1-3-2-1+1+0+0-2+0+0 encode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 4 254 1142 +21-37-69-72-72-72-71-71-72-72-71-70-69-72-71-71+51+54+55+54+56+56+54+56+54+56+54+56+54+56+54+56 encode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 5 254 303 +151+85+53+19+16+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0-2-2-2-2-2-2-2-2-2-2-2-2 encode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 selected 1423 1111 +751+77+41+35+1+3+6+6-3+4+2-3-1-1-3-4-9-4-11+1-1-5-5+1-9+1+1+1+1-1-2-2 encode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 0 1423 1107 +119+58+33-5+2+8-4-4+0-5+8+4+18-4-4+4-5+7+17-1-4-2-5-3+2-11-2-3+11+1-7-6 encode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 1 1423 1204 +463+137+59+6+3+0-4+5+2+5+2+5+2+5+2+5+2-4-9-3-3-1-3-4-6-9-6-4-8-6-3-6 encode_1013x2393 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 2 1423 2118 +748+143+35+10+12-4+3-12+0+12-10+1+7+10+3-9-6-2-5-10-27-2-8-7+0+3+11-11-14+1+1+14 encode_1013x2393 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 3 1423 2302 +1388+131+58+2+3-32+20-4-13-20-4-12+20-40+13-17+5+29+10-30-11-10+10-35+9-10+1+19-13+15+23-13 encode_1013x2393 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 4 1423 3087 +439+217+84+27+8+13-3-2-3-1-1-20-2+10-12-5-11+0-2-1+0+33+21+7-3-5-8-7-7-4-13+10 encode_1013x2393 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 5 1423 4349 +942+107+29+73-16-3+10-17+13-6+14+0+17-53+14-7+10-26-40-9-1-53+14-9-2-52+13-9+1-49+17-53 encode_1013x2393round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round selected 1423 1380 +380+74+49+60+20+2+0-1-4+2+0-1-4+2+0-1-4+2+0-1-4+2+0-1-4+2+0-1-4+2+0-1 encode_1013x2393round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 0 1423 1370 +114+62+66+18+21+1+4+4-4+4-3+1-1-10-3+1-1-2-9-5-6+0-7-2+6-4+6+1-2+9+4-9 encode_1013x2393round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 1 1423 1318 +679+56+16+2+10-8-5-7+1+10-6-7+1+10-5-7+17-7+1+10-6-7+2+8+1+10-6-7+1+10-5-7 encode_1013x2393round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 2 1423 1515 +314+85+60+1-11-3-1-9-1-9-1-9-1-6-1-1+1-1+1+5+16-9+2+3-3+6+1-1+6+1-1+6 encode_1013x2393round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 3 1423 1607 +516+103+26+2+12+19+22+2-20-8-8-2+3-2-10-3-9-4+13+6+2+2+7+0-10-5-5-3-11+3-11+2 encode_1013x2393round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 4 1423 1692 +176+92+58+2+8-4+6-1+7+10-2+4-2+0+2+1-7+7+2-6-3-3-3-7+0+2-9+1-2+0-3-7 encode_1013x2393round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 5 1423 2172 +276+89+30-4-15-5-9+0-3-4+3+3+0-1+2-3+4-7-5-9+6+6-1-7-10-6-10+5+2+8+12+6 encode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 selected 1623 854 +407+111+50+57-6-3-2-3-4-3-4-4+5-4+5-4+5-4+5-4+5-4+5-4+5-4+20+1-1+1-1+1 encode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 0 1623 867 +203+108+54+31+31+6-2-2-1-1-1-1-1-1-1-1-1+2+4+0+1-4+3-3-8-7-4-2-7-2+11+9 encode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 1 1623 876 +680+160+122+18-3-6+2+0-4-3+2-2-8-1+3+3+2+4+6-8-8+1-1-3+0-3-3+1-2+0-1-2 encode_1013x7177 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 2 1623 2131 +537+176+42+1+1-10-9+2+5-17-6+0-6-14+0+1+3+0+8-6-10-7+0+0-4-1+3+6+14+10+13+1 encode_1013x7177 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 3 1623 1977 +896+189+87+38-2-10-5-2+3-1-4+11-3+20-13+3+12+7+7-6+4-9-8-10-7-6+7-2-2-4+1+12 encode_1013x7177 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 4 1623 3200 +507+163+61+53+23+12+4+17+9+6+2+0-13-13-6-14-3-13+3+0-16+18-17-9-12+5-2-13+7-18-9+3 encode_1013x7177 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 5 1623 2851 +1064+93+69+36+25+12+3+2-14-9-11+19-10-5-6+0+2+15+11-20-7+7+7-9+2-5-20+2-1-5-3-7 encode_1013xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 selected 1013 263 +293+99+53+17+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 0 1013 263 +100+34+17+0+1+0+1+0+1+0+1+0+1+0+1+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 1 1013 266 +219+127+22+0-3-1-3+0-1-1+6-1-1-2-1+1-1+1-1+1-1+1-1+1-1+1-1-1-1+0-3+1 encode_1013xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 2 1013 673 +157+74+22+15+31+1+2+2-3+1+3-6-4+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2-6+2 encode_1013xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 3 1013 618 +121+66-9-1+1+5-6+1+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6 encode_1013xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 4 1013 2040 +198+36+3+2+2-3+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+2-3+1-2 encode_1013xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 5 1013 1080 +120+37+2+3+3+1+4+4+4+4+4+4+5+1+2+3+4+0-3-3-3-3-4-2-4-4-3-3-5-6-4-3 encode_1013xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 selected 2026 180 +423+106+49+17+18-5-2+1-2+0+0+1-2+1-2+0+0+1-2+1-2+0+0+1-2+1-2+0+0+1-2+1 encode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 0 2026 414 +199+75-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 1 2026 304 +92+19+0-2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 2 2026 176 +52+38+21-3+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 3 2026 445 +129+69+42+42+22+22+22+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 selected 320 174 +223+57+11+13-3-6+0-4-2-3-1+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 encode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 0 320 173 +154+41+12+12+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 1 320 172 +80+41+22-2-1-1-1-1-1-1-1-1-1-1-1-1-1-2+1+3+0+1+3+2+1+1-1+0-3+3+0+1 encode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 2 320 649 +1002+35+13+15+0-1+0+0-1-1-1+0-1-1-1+0-1-1-1+0+1+0+0+0-1+0-1-1+0-1+0-1 encode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 3 320 286 +806+40+21+0+0+0+3-3+0-4-4-3-1+1+3-3+0+0-4+1-1+1+3-3+0+0-2+1-2-2-4+1 encode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 4 320 1337 +159+31+0+2+0-1+0-2+0+0+0-1-1-1-1+0+0-1+0+1+0-1-1+0-1+0-1+0+0-1+0-2 encode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 5 320 373 +140+81+23+18+15+9+5+1-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2 encode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 selected 1815 1339 +437+94+11+22+4+12+2+9+2+7-16+3+2+2-2-7-9-7+4-4-6-2-7-3-7-8+2-6+2+7-8-3 encode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 0 1815 1333 +128+72+2+15-2-11+1-2-13+8+12-7-2-11+7-1-5-3-8+12-6+6-9+3-5+4-4+6+6-3+7-1 encode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 1 1815 1406 +1093+141+39+4+0-3+1+0-3-3-4+5-1+5-3+1+16-2-3+8+1+0-2+0-3+2-5-2+24-3-2+2 encode_1277x2627 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 2 1815 2663 +938+281+34+19+11-4+1+4+2-13+1-1-6+1-6+3-10-16+15+5-7+9-6-1-18+6+3-10+0-13+5-14 encode_1277x2627 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 3 1815 2842 +1005+112+33+10+5+16+0+10-8-28-3+8+1+7-10-11+13-2+10-25-4+8+3-27-8-15-22-14-5-4-14+13 encode_1277x2627 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 4 1815 4090 +779+141+65+19+33-11-11-3-3+2-3-12+11-10-26-8+10-3+10-6-11-4+10+10-3-3-3+10-11-2-3+15 encode_1277x2627 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 5 1815 5465 +1195+40+88-8-6-2+2+0-26+22+9-10+20+11-2-9+16-19+8-24-2-10+1-8+8-10+15-29+1-10+2+0 encode_1277x2627round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round selected 1815 1514 +519+119+31+2+4-1-1+4+14-13-11+3-5-11+0+39-5+13-5-1-1-5-3+3-7+13-5-1-1-5-3+3 encode_1277x2627round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 0 1815 1521 +84+54+27+8+3-10+11+9-1-11+3-21-1-8+1+8-7-3+1+8-11-1-4-8-1-10+9-8+1-3-11+5 encode_1277x2627round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 1 1815 1549 +763+56+28-9-1+5+3-7+4-3-1+3-3-1+3-5-7+1+4+4+3-5+6+2+0-3-3-10+7-6-5-9 encode_1277x2627round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 2 1815 1839 +489+90+51+39-10+3-2-3+2+1+0+3-1-2-2+9-3-3-3+4-5+9-4+9-11+9-2-3-2+1-6+11 encode_1277x2627round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 3 1815 1904 +780+146+29+33-1-3-9+5+0-3-5+1+66-1-3-6-10+5-4+2-5+3-10+1-4+29-1+0+0+2-7+0 encode_1277x2627round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 4 1815 2064 +196+82+28+32-7+4+1+1+0+0+1+2+12-4-2+2-6-5+1+3+12-2+2-3+1+2+1+0-3-5-3-8 encode_1277x2627round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 5 1815 2445 +195+59+23+24+0+0+0-2-3+7-2-2-3+6+3-3-4-5+5+5-2+0-4+7-4+0+1+1-4+1-6+1 encode_1277x7879 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 selected 2067 942 +1124+134+67-3+0-12-2-2-2+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1 encode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 0 2067 976 +443+120+23+16-5-1-7-1-7-1+2-3+2+2+4-2+0+0+4-2-8+2+4-2+0-3+4-2+0-5+4-1 encode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 1 2067 935 +204+69+55+39+27-1-2+1+2-1+1+0+1-3+2+0-2+4-2-2-2+0+1+0+0-2-2-1-2+4-3-2 encode_1277x7879 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 2 2067 2696 +834+156+63-4-17+26+2-4+16-14+10-8+10-7+11+16-1+8-6-13-8+13-8+16+38-4-4-11-19-11-9-6 encode_1277x7879 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 3 2067 2641 +1000+125+85+50+13+25+7+14-1+20+12+5+13+5-7+1-3-18-15-11-20-8-10-12+6-8-11-8-8-5-4-9 encode_1277x7879 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 4 2067 3858 +479+97+22+0+0-5+4-6+1-7+3+10-3-10+2+3+0+2+4-6+16+6+18-8+11-10-6-5+1-4+3-5 encode_1277x7879 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 5 2067 3726 +941+101+80+12+11+5+19-4-13-11+0+2-8-6-8-5-6+1+11-11-4-2+12-4+18+14-9-4+6-8-4+4 encode_1277xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 selected 1277 332 +312+128+47+0+3+3+0+2+0+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0 encode_1277xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 0 1277 331 +78+25+24+26+25+1+0+0+0-1-1+1+4-1+1-1+1-1+1-1+1-1+0+0-1+0+1-1+1+1-1+1 encode_1277xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 1 1277 340 +190+108+2+3+3+1+2+3+1+1-1+0+1+0-2-2+0+0-2-2+0+0-2-2+0+3-1-1-1-1+0+0 encode_1277xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 2 1277 838 +136+59+42+0-1+0-9+4+0-1+0-9+4+0-1+0-9+4+0-1+0-9+4+0-1+0-9+4+0-1+0-9 encode_1277xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 3 1277 774 +109+43-13+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 4 1277 2588 +411+39+1+0+0+0+0-3+0+3-5+0+1+0+4+0+2+1+1+0+2+1+2-1+0-1+1+1+0+1-5+0 encode_1277xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 5 1277 1354 +137+27+2+6+2+2+2+2-1-5+2-2+2-2-4-4-1+1+2-2-4-4-1+2+0+2-2-4-2-4+0+2 encode_1277xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 selected 2554 240 +447+91+18-6-6-6-6-6+19-5+2+2+2+4+2+3+2+3+2+2+2+2+4+2+2-18-11-15-11-15-11-15 encode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 0 2554 511 +199+74+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 1 2554 370 +105+18+2+0+0+0+0-1+0+2+0+1+0+0+0+0+0+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0 encode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 2 2554 228 +70+30+23+7+7+18+16+17+16+16+17-6-4-4-4-2-4-1-4-4-3-4-1-4-4-3-4-1-4-4-3-4 encode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 3 2554 458 +130+54+10+10+10+10+10+10+10+10+10+10+10+11+11-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8-8 encode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 selected 2 48 +289+65+25-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 0 2 47 +52+48+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 1 2 47 +63+47+25+26-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 2 2 48 +53+42+21-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1 encode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 3 2 47 +54+44+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 selected 0 59 +682+107+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 1 59 +28+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 2 60 +123+75-1+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 4 68 +148+56+2-2+0-3+1+0+0+0-3-1-1+0+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_int32 selected 7 91 +77+93+54+0+0+0+1+0+0+0+1+0+0+1+0+0+0+1+0+1-4-5+3-3-4-4-3-3-3-3-3-3 sort_int32 selected 11 160 +4189+82+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 17 250 +374+56+31+7-2+0+0-2+0+0+0+0+0+0+0+0-2+3+0+0+0-2+0-2+0+0-2+0-2+0+0-2 sort_int32 selected 26 252 +81+4+7+5+7+5+6-1-1-1-1-1-3-3-3-3-3+4+8-3+7-1-1-1-1-1-1-1-1-1-1-1 sort_int32 selected 40 353 +1571+127+32+4+0-1-3-2-2-3-4-4+0-3+0+5+1+1+0-1+2-1+0+1+2-1+2+3+2-1+0+1 sort_int32 selected 61 371 +17+8-2-5+2-2-5+2+2-2+1-7+0+1+2-1+3-3+2-3+0+0-3-4-2+2+0+1-2+2+0+1 sort_int32 selected 92 663 +1417+149+30+10-1+2+3-1-1-2-2+2+3-5-5+0-2+2+0-5-3+2+7+2+0-3-5-7+0-2+1-5 sort_int32 selected 139 1362 +1992+471+16+0+44+6+3-19-4-17-12+17+20+2+5+12-1-8-5-18+8-10-9-23-6-16-18-3-5+19+30+11 sort_int32 selected 209 1386 +362+121+13+19+2+7+17-13-4-13+0+7-19-10-23+1-16-23+2-17+6-8-11+1-2+16+7+11+17-11+21-26 sort_int32 selected 314 2086 +1408+393+14-4+28+7+4-20-28-16-40-4+18-10-5-6-4-1+0+80-2+68-18+7+6+15-13-21+36+3-4-6 sort_int32 selected 472 3241 +983+357+9+27+2+38-7-5+28-2-4-8+7-27+7+7-16+12-15+0+11-6-32-24+6+41-11-8-17-12-7+7 sort_int32 selected 709 4977 +2729+1586+229+75+80+68+9-2+9-17+12+9+16+39+13+19-54+72-31-19+28+8-25-59-30-63-34-29-52-45-34-3 sort_int32 selected 1064 8286 +3455+1317+711+287+110-32+89+47-51-35-43-68-75-26-8+5-106-56-109-66-60-25+46+143+4+4+17-33-36+116+79+34 sort_int32 selected 1597 12546 +1981+604+400+142+108+109+28-92-47+21-20+70-85-36-110-13-166-26+10-96+24+102-23-4-50+5-7-46+16-59-7+142 sort_int32 selected 2396 19743 +4342+1711+926+230+132+35-33+5-19+9+57+37+41-111-58+53+110-28-4+50-56-35-32-78-24-58-69-81+31-80-64+26 sort_int32 selected 3595 31103 +2594+1527+738+502+217+49+21+134-32-14+98+57-26+50-11+54+32-43-144-50-80-102-74+7-94+6-138-121-39-94+61-65 sort_int32 selected 5393 47106 +4619+1450+551+414+91+256+193+100+33-162-57+2-221-93+20+19+14-18+12-95+32-52+64-89-129-108-59-2-3+18-127-26 sort_int32 selected 8090 78397 +3517+1289+398+425+53+6-19-212-137-205-29+87-68-109+3+45-19-21+132-20+167-223+31-107-46-95+1514-68+29+38-177+104 sort_int32 selected 12136 133023 +3659+1851+1448-6-37+962-343+617+369+832+442-530-57+280+14-140-324-204-246-373+491+300-5-225+39-315-338-204+736-367-587-432 sort_int32 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 0 0 58 +146+88+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 1 58 +28-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 2 60 +94+71+24-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_int32 0 4 67 +103+49+15-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 7 91 +77+86+28+3-3-4-5-6+0-5-3+1+0-5-3+1+0-5+0+2-1+3+0+0+0+1+1+1+1+1+1+0 sort_int32 0 11 159 +259+99+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 17 249 +145+81+57+46+7+0+0+0+0-2-2+0+0+0+0+0+0+0-2-2+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 26 253 +82-5-5-5-2-4-2+7+3-5+3-3-1+5+3-2-1+3+4+3-2-1+5+3-2-1+5-3-1+5+3-2 sort_int32 0 40 352 +391+114+28+3-6-3-2-1-2-1+2-5+3-2+1-2+0-3-4+1+0+0-3-4+1+1+1+0-2+1+1+1 sort_int32 0 61 366 +25+7+2+7+2-3+8+4-1+3-1+1-3+2+1+1+2+1-2-2-1+1-2-2-1-2-3-2-3-1+1+3 sort_int32 0 92 663 +472+181+80+27+17+0+6-6+6-3-1-1+0-3+0-3-6-4-5+2+3+3-6-3+4-2+1+1-3-1-3-6 sort_int32 0 139 1377 +379+148+33+32+3-1+23-1-25-4-21-30-1+22+3+17+14-31+9-23+14-11-15-13-21+22-25-23+2-6-8+11 sort_int32 0 209 1383 +221+132+25-5+10+14+14+13-28-20-8-3-15-14-19+21-15-10+1-11-13+13-22+36+42+5-19+25-24+21-5-7 sort_int32 0 314 2088 +828+157+62-7-13+8+51+2+11+9-7+19+14+9-15-28+1+9+9-10+5-11-10-18+6+9-16-11-33-19-6-33 sort_int32 0 472 3248 +685+213+86+70-52+18+1-28+20+11+1-8+15+39-25+18-44+24-7+50+50-24-48-31-20-49-5-36+2-45-21+20 sort_int32 0 709 4960 +1163+268-12+39-12+35+35+51+15+28+13-19+30-23-26-21-25+5+0-12+1-20-22+7-48+8-67-70-11+55+25-31 sort_int32 0 1064 8261 +979+375+9-23+8+1+20-94+3+40-42+116+9+11+38-11-18-11-38+9-94-48-53-15-54-14+41+19-42+32+0+108 sort_int32 0 1597 12535 +1174+253+122+70+128+78-24-39+26-102-24+158+20-79+12-64-61-110+5-104-5-60-68+16+95-3+21-6-35+7-46+125 sort_int32 0 2396 19749 +1703+584+322+105+32+90+51+18+73-9-31-26-36-27-67-3+32-15-65+65-15+82+10-16-40-49-107+10+6-55-18-52 sort_int32 0 3595 31072 +1206+768+207+202+111+224+84-19-53+31+25-94-140+18+3-52+16-25-56+25+15-42-24+68+40-110-67+14-106-165-134+30 sort_int32 0 5393 47166 +2472+1265+716+327+83+178+75+264+24-101-116+96-92+85-82-34+120-118-153+71-28+11-29-39-78-6-55-86+7-69-86-22 sort_int32 0 8090 78390 +2065+935+624+1871+157+150-87+5+66+72+80+29+168-28-38-166-127+28-206-186-91-48+96-117-134-5-27+29-37+21-61-240 sort_int32 0 12136 132803 +2343+409+1126+151+929+561+551-537+445-132+557+11-314-830-180-287+788+146-112-106+116-552-81-816-627+299-288-2+167-567-244-157 sort_int32 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 1 0 57 +900+57+28-3+1-3+1-3+1-2+2-2+1+0+2+0-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3 sort_int32 1 1 57 +71-3+1-2+4+0-2+0+0+2+0+33-2+2+0+2+0-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2 sort_int32 1 2 60 +112+55+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 4 81 +329+20+0+0+1+1+37+1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_int32 1 7 129 +238+114+17+1+1-2-1-4-2+1-1+0-2+1-1+0-1-4-2+1-1+0-5-4-1+1-1+1-2+1-1+1 sort_int32 1 11 157 +918+37+0+0+0+0-1+0+0+0+0+0+0+1+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 17 260 +405+81+25+42+4+0+1+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 26 263 +72-3-2-1+3-2+4-1-1+3+4-2-1-1+3+0-1+2+2-2-1-1-4-2+2+2+2+1-4-1-1-4 sort_int32 1 40 354 +2397+277+35-1+6+4+2+0-5-2-2-5+1+1+0-4-1+1+2-5-2-2-2-5+1+0-4+2-6+1+2-5 sort_int32 1 61 365 +87+6-3+2+3-2+0+0+4+3+4+3+1-7-1-7+0+3-2+4-1-3-4+1-2+2-1-3-4+1-2+2 sort_int32 1 92 708 +1721+580+165+12-8-13-5+4+87-4+0-3-8+6+5-5+7+2+3+11-7-11-9+1+1-5-2-5-13+6-8+3 sort_int32 1 139 1342 +1964+455+78+1+0-4+9-5+4+11-2-4+3+4-7+3+2-8-8+1-4-8+9-12+44-5+5-4+0+2+3-3 sort_int32 1 209 1354 +408+140+8+74+3-3+6+14-4+26-1-3-3-3+0-10-1+3-2+6+29+1-4-2+4-5+2-11-5-6-4-1 sort_int32 1 314 2107 +1647+376+117-17+10-1+10-8+13+24-6-13+64+50-17-23+2-8+21-19-4+2-9-2+9-10+43+2-7-12+2-7 sort_int32 1 472 3264 +1078+349+194-16-10+4-5+4-6+5+26-4+6+26-14-2-9-15+14+15-20-25-20-22-16+19-4+34-21+44-16+28 sort_int32 1 709 5333 +3501+1234+207+114+70-30-28-44-33+46+5-9-54+98+32-2-44+4+53-10-7-40+13+34-40-7-23-41+10-9-19+9 sort_int32 1 1064 8050 +3651+1699+502+289+138+186+99+312+58+36+30+19+0-21+9-24-47-2-73-51-50-19-28-24-61-43+20-48-51-82-84+28 sort_int32 1 1597 12632 +2133+951+360+294+76+72+9-55-61-6-17-13-51+9-132-22+40+30-32-78-22+6-89+1+0-36+32+43-17+58-28-6 sort_int32 1 2396 19807 +4265+1256+633+182+196+7-26+17+72-34-1-86+9-52+4-52+51+44-29+97-13+23-83+32-14-91-2-42+22-137-135-137 sort_int32 1 3595 31366 +2578+1219+599+272+118+36+143+112-21-197-175-45-8+35+20+26-100-91+15-64-54-19-39+134-18+39+22-89-5-62-10-33 sort_int32 1 5393 50530 +5058+2196+1177+667+489+1186+131+190+120-37-108-133-17+20-13-131-8-79-60-11-54+13+105-239-56+87+18-83-57-47-196-72 sort_int32 1 8090 83114 +3712+1554+808+327+14+75-67+112+99-54-106-212-4-122-33-81-192+2-145+123-96-38+73-28+70-52+187+25-39-153+74-19 sort_int32 1 12136 136487 +4642+1568+668-206+428-179+203-79-96+505+32-152+768-101-648+10+142+516-256-486-305-900+78+162-281+65-53+414+85+86-1031-222 sort_int32 2 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 2 0 50 +105+70+30+24+17-1+3-1+2-1+3-1+0-1-1-1-1-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0 sort_int32 2 1 49 +64+31-1+0-1+0-1+0+0+0+1+0+0+0+0+0+1+1+0+1+1+0+1+1+0+1+1+0+1+1+0+1 sort_int32 2 2 65 +222+77+25+2+2-1+4+1-1+3+1+1-1+3-1+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 4 107 +308+124+0+0-2+0-1+0-1+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 7 176 +526+263+59+1+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 11 312 +860+343+83+40+3+8+4+4+8+4+4+8+4+4+2-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3 sort_int32 2 17 521 +1380+823+308+132+145+86-2-3-1-1-1-1-1-1-1+1+1+7-3-1-1-1-1-1-1-1-1-1-1+1+1+7 sort_int32 2 26 842 +2011+849+369+315+176-2-2-2-2-2+19+9-11-2+3-11-3-14-6+15-2+0+9-11-2+3-11-3-14-6+15-2 sort_int32 2 40 1534 +2434+841+346+164+168+107-28-33-44-19+31+16-30+31-33-44-21+30+18-30+31-33-44-21+30+18-30+31-33-44-20+31 sort_int32 2 61 2470 +2303+720+186+107+176+31-29-53+24-22-1-5-1-5-1-5-1-5-1-5-1-5-1+14-22-5+18-3-33+2+17-27 sort_int32 2 92 4137 +3327+1403+398+51-19-15+23-17-5-19-41+11-20-41-12+5+6+6+6+6+3+5+3+4+3+5-5+15-15+33-15-15 sort_int32 2 139 7285 +4519+1810+812+489+359+214+169+99+19-7-14-11-13-7-14+10+10-6-15-10-13-6-15-10+11+31-14+19-65-64-65-65 sort_int32 2 209 12090 +4531+2118+959+315+125-12+116-98-58+257-13-45-114-19+175+134-86-110+211+90+91-17-64-72-68-4-150-37-67-71-106-17 sort_int32 2 314 19939 +5290+2495+1254+733+162+40+59+60-9+23+37-72-184+95-70-99-108+51+4-128-184-249-177-69-100-159-124-159+1177+311+468+224 sort_int32 2 472 32452 +2183+1050+343-89+42-1+239+79+131-182+7-9+93-24-247-189-16-30-155-23+34-17+23+6+19+30+25-31-2-21-87-69 sort_int32 2 709 56175 +6148+2773+1487+695+592+321+347-659-204-80-47-206-47-290-10-304-17-70-154-226-95-84+174-37-41+2+195+159+116-8+90-165 sort_int32 2 1064 90857 +5884+3337+1813+1299+543+449+94+284-87-177-14-212-59-30-64-151+24+97-119-32-18-99-34-31+26-74+53+5+31-51+29+7 sort_int32 2 1597 148127 +1462+1823+772+917+260+76-48+82-126+112-4-205-38+57-25+206+49-41+14-123-118-97-117-149-17-65-71-267-163+47+81+160 sort_int32 2 2396 243500 +5406+2603+2550+1239+310+563+8+461-86+83-147+51-1823-67+72-34-240-60-166+7+39+111-402-146-131-65+11+198-161+20-132+39 sort_int32 2 3595 399250 +4098+1669+1222+147-160+915+356-404-747-411-527+700-125-27-306+160+191-175-139-65-68-253+9-626-854-40+50-84+189+365+189+139 sort_int32 2 5393 676955 +10157+7415+6431+3053+2750+4560+1921+562+714-987-296-106+524-46+1957+6+233-462-507-745-546-901-74-60-1363+133-776-2310-755-122-636+41 sort_int32 2 8090 1097554 -4155-8008-6149-8626-7147+3293+2636+1621+1434-729-443+1407-1230+941+1067-580-561-682-962-984-854+1862+602-1109+537+970+1090+245-393-255+1165+1793 sort_int32 2 12136 1921050 +9088+8232+3367+2918+2951-2876+355+649+64-1790-4250+862-1511-372+646+420-762-1910-2068-927+3168-1702-2380+1563-807+1589-50+1854-460+590-265-3592 sort_int32 3 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 3 0 50 +125+70-1-1+2-1-1+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 1 50 +35+30-1-1+3-1+2+0+1+0+0+1+0+0+1+0+0+2+0+1+1+0+0+1+0+0+2+0+1+1+0+0 sort_int32 3 2 60 +147+69+50+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 4 90 +245+112+49-1-1-2-2+0-2+2+0-1+0-1+0-1+0+0-1+0-2+0+0-2+0+0-2+0-2+0+0-1 sort_int32 3 7 152 +631+366+74+12-1+2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 11 266 +932+347+171+69-3+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0 sort_int32 3 17 440 +1588+709+411+102+123+88+0+1+0-1-1-1-1+0+0+0+0-1-1+0-1-1+0-1-1+0+0-1+0-1+0+1 sort_int32 3 26 691 +1925+907+444+387+240+222+167+55+1-4-1+1-1+1-2-3-4+1-4+1-2-3-5-1-4+1-1+0-5-3-4+1 sort_int32 3 40 1190 +2505+1316+491+239+311+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 61 1968 +2730+925+433+294+312+211+88+99+94+90+3-13-13-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14 sort_int32 3 92 3549 +3164+1463+655+432+32+31+31+35+31+31+41+30+10-9-15-37-36-16-15-14-15-10-7-15-15-15-35-12-36-35-36-12 sort_int32 3 139 6335 +4394+1785+935+308+126+67+95+81+76+56+106+83-26-42-49-25-52-26-49-28-50-28-51-22-51-28-51-23-24-2-51-3 sort_int32 3 209 10783 +4319+2226+1382+666+502+224+102+113+117+75+65+56+58+98+16-13+27-8-92-48-48-81-132-139-129-110-130-106-108-103-105-133 sort_int32 3 314 18518 +4959+2091+840+490+303+155+45-3+25+65-2+28+5+32+81+27-4-58-51-47-54-57-17-34-33-22-34-40-5-33-30-19 sort_int32 3 472 29192 +2062+988+954+266+95+5-17-10+23+24-7+5-51+4-14+10+6-7-14+17-34+16+0-27+3-23-15+0-11-25-20+28 sort_int32 3 709 50390 +6444+3308+2035+1477+826+717+261+131+17-12+75+93+26+4-35-4-55-23-22-56-61-25-34-49+6-71-18-27-36-35-23-48 sort_int32 3 1064 83038 +7009+3203+2621+1649+1203+559+134+94-6+19+13-27-72+16-20-28-60+86-75-79-150+54-28-76+24-13+19-46-17-69-113-40 sort_int32 3 1597 135954 +2654+1469+1051+62+307+243-48-93-160-152-71-83+35-59+26-110+121-65-56-140-103-81+3+137+444-85-58+152-14-77+1140+389 sort_int32 3 2396 226547 +4691+2445+1723+1038+666+887+652+625+665+586+305+30-159-78-77-173-294-303-297-234-264-327-172-298-139-174-326+95-191-21-219-252 sort_int32 3 3595 363434 +5412+2229+2028+1785+837+627+249+286+358+163+1013+41-42-363-388-58-334-186-308-166-114-196-85-160-31-258-317-111+41+153-21-138 sort_int32 3 5393 614405 +9777+4631+2464+1883+1564+1317+262+257+22+519+231+185-368+133+135+331-540-284-146-192-536-259-613-401-4+879-17-599-285-996-550-534 sort_int32 3 8090 983807 +5612+3098+2467+1152+1958+1298+562+1646-188+21-221+249-257-510-8-331+349-720-558+695-392-284+184-166-240-172-375-94-389-689-368+601 sort_int32 3 12136 1765643 +6309+2896+3765+1749+1616+166+488+346-1773-505-552-1730+234-45-244-36-426+104-635+2370+523-1095-469+684-267+184+969-247+50-355-1615-825 sort_int32 4 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 4 0 50 +100+69-2+1-2+2-1+0+3-1+0+0-1-1-1-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0 sort_int32 4 1 50 +24-2+1-2-2-1-1+0-1-1-1-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0 sort_int32 4 2 65 +210+58+28+1+1+4+1+4+1+1+1+1+1+1+1+1+1+2-1+1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 4 4 95 +300+129+5+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2+2 sort_int32 4 7 157 +499+242+32-3-1+0-1+0+0+0-1+0+0-1+0+0-1+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0 sort_int32 4 11 263 +906+363+55+7-2-1-1+0-1+0-1-1-1+0+0-1+0-1+0+0-1+0-1-1-1+0+0-1+0-1+0+0 sort_int32 4 17 430 +1427+848+343+288+136+17-1-1-1+0-1+0-1+0-1+1+0+0-1+26-1-2+1-1+1-2+1-2+1-1+1-2 sort_int32 4 26 681 +1662+652+439+301+237+226+160+26+0-3+0-2-1+2-3-1-3-2-2+0+0-3+8+0+0-2-1-3-1-1-3-2 sort_int32 4 40 1182 +2157+718+424+65-1+29-1+1+5-4-1+0+0+0+0+28+0+0+1+5-4-1+0+0+0+0+5-4-1+0+0+0 sort_int32 4 61 1993 +2526+1123+279+93-9-8-3-7+20-6-7-8-2+24-5-8-6-9+21-2-5-7+8+36+5+10-8+22+1+2-9-31 sort_int32 4 92 3510 +3097+1301+398+250+108-51+11-2-52+11-13-18+8+3-19-19+23+0-44+9-31+32+8-40-6+28-44-16+27+4-13-6 sort_int32 4 139 5956 +4195+2054+981+510+339+167+105+50+3-20-26-22-17-18+7-20-19-21-5-11-22-16-11-3+39+55+45-4-41-46-48-33 sort_int32 4 209 10305 +4249+1784+886+521+303+214+38+33+9+104+32+8-34-18-10-79-38-34-20-81+22-9+14-26-42-50-53+19-8+15-38-43 sort_int32 4 314 17243 +5281+2642+1108+654+353+135-3+17-38-21-56-8-36-1-28-14-24+19-20+54+6+37-15+30-2+5-2+5+5-32-23-18 sort_int32 4 472 28027 +2105+1104+630+600+174+110+42-38-5-44-44-44+0-50-45-66-81+47-40-37-22+6+12-2+23-21+88-11-62+59-6+45 sort_int32 4 709 47793 +5876+3364+1430+677+462+413+64-26+54-33+27-88+1+34-37-62-71+138-56+1-29-58-175+25-62-61-58+83-84+9-170+77 sort_int32 4 1064 77776 +5596+2284+1364+733+373+111+453+65+20+35-43-79-40-31-5-105-25-47+61-116+69-106+4-314+35-195-13-180+101-92-13-146 sort_int32 4 1597 129415 +2677+902+822+627+33-69+36-23-138-10+2+24-82-10+29-78-223+4-73-25+86+53-83+158+21-32+0-69-33+96-114+856 sort_int32 4 2396 215748 +4069+2059+1346+693+545+83+308-180-12-394+205-201+185-45+149-359+92-166-83-25-148-240-4-149+106-157+144-326+23-211+210-278 sort_int32 4 3595 354953 +4906+2230+994+1105+665+251-131-72+89-31-157+65+857-35-438+567+140-151-44-55+20+55-104-120-253+148-159+35-69-132-60-75 sort_int32 4 5393 611157 +7867+4597+2114+1509+517+186-140+972+5+253-509-152+185-628-506-408-93+42-398+41-350-26+42-51-224+42+818+105-567-219-237+363 sort_int32 4 8090 1010096 +4575+2011+1693+2122-99+404-920+909-306+139-197-319+38-791+34-446-1871-829-128+1560+557+531-949-921+504-280+374-371-716+273+358-418 sort_int32 4 12136 1781263 +4967+4511+4729+4328+1399+2518+531-3804-2204+503-508-555+973-4998-788+1045-1211-776+622-1327-1297-908-226-5361-624+1141+684+366+269-603-1627+1048 sort_int32 5 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 5 0 50 +153+54-1-1-1+0+1+1+0+0+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0 sort_int32 5 1 50 +34-1+0+0+36+0+2+1+0+1+0+1+0+0+1+0+0+1+0+0+2+0+1+1+0+0+1+0+0+2+0+1 sort_int32 5 2 60 +330+92+25+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 4 91 +259+144+27+1-4-2-3-4-2-4-2-2-2-4-2-4-2+5+2+2+2+1+1+2+2+1+1+2+1+1+3+0 sort_int32 5 7 148 +535+298+25+1-1-1-1-1-1+1-1-1-1+0-1+0+0-1+0+3+0+0-1+1-1+0+1-1+0-1+0+0 sort_int32 5 11 264 +895+560+201+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 17 433 +1538+878+378+211+167+0+1+0+0+0+0+0+0+0+1+1+0+0+0+0+1+1+0+0+0+0+1+1+0+1+1+1 sort_int32 5 26 692 +1811+730+441+351+359+260+132+19+16+19-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3 sort_int32 5 40 1200 +2254+822+229+123+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 61 2009 +2709+955+413+24+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 92 3504 +3314+1342+368+262+132+71+18+20+18-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 5 139 6376 +4450+1950+971+611+491+413+208+113+72+67+92+88+71+2-37-40-40-37+74-56-114-87-85-87-83-84-87-85-86-57-56-58 sort_int32 5 209 10553 +4568+1663+1236+1030+555+437+242+128+128+39-78-6+11-68-19-32-31-30-39+10+9-46-35-29-31-32-24-37-5-22-1+0 sort_int32 5 314 18132 +5786+2225+1166+890+520+236+155+78+110+114+117+68-48-81-54-49-49-53-47-52-53-35-37-22-18-37-16-37-67-45-15-12 sort_int32 5 472 29088 +2109+1212+511+340+120+78+18-20-2-32-31+1+2+2+5-25-39+2-25-16-3+12+6+6-28-24+6+15-22-17+5+6 sort_int32 5 709 50085 +5417+2719+1550+927+630+212+6+1+18-1-36-32-15-50-17+21-33-17+13-14-66-22+86-35+32-25+11+29-41-99+31-16 sort_int32 5 1064 83111 +6118+3391+2038+1570+670+331+92+25+37-25+10-16-27+7-48-24-55-8-43-3+32-23-10-15-8-25-68-12+1+3-57+34 sort_int32 5 1597 136271 +2977+1142+870+111+163+159-17-38-35-5-71-45+40-43+8+11+101+37+70-19-16-2+6+55+604-453-582-521-455-553-516-491 sort_int32 5 2396 226119 +4613+2624+2359+475+388+66-82+108+73+43-90-7+41-109-124-195+96-201-126-87+81-189-25+8-121-4+180+208-174-88-159+77 sort_int32 5 3595 362964 +5873+2864+2461+1567+1551+1310+953+831+1192-117-15+123+4+100-193-74+142-40-214+39-276-258-261-286-167-192-129-251-202-134-241-177 sort_int32 5 5393 615026 +9009+5707+3998+3086+2863+914+309-38+405-224-39-476-99-615-1040-807-836-1175-636-1145-762+574-536-926+1552+161+51-68+75+612+421+100 sort_int32 5 8090 987544 +4775+1763+1365+706+377+226+868-262+979+687+142+199+301+53-539-124-219-491+475-736-297+195+84-322-208+24-765-1043-162-360-697-1700 sort_int32 5 12136 1770897 +7866+3126+2418+1303+666+1087+1262+361-604-229+373-148+1211-696-500-929-1034+1014+1794-1114-409-972-796-854-1663+2071+36-5-614-97-826-242 sort_uint32 selected implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 selected 0 64 +591+75-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 1 71 +179+75+30+1-1-1+1-1+1-1+1-1+1-1+3+2+3-1-1-1+4-1-1-1-1-1+4-1-1-1-1-1 sort_uint32 selected 2 79 +121+76+27+54+27+29-1-1-1-1-1-1-1-1-1-1+0+1+0+2-1+0-1+2-1+0-1+2-1+0-1+2 sort_uint32 selected 4 93 +211+79+57+23+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 7 124 +142+61+34+20-3-5-6-5+18+4+18+2-5+3+4+4-5-5-6-5-5-5-6-5+18+3-5+3+4+4+18+4 sort_uint32 selected 11 199 +612+92+25+0+1+0+2+0+0+1+1+1+0+1+1+0+0+1+0+0+0+0+1+0+1+0+0+0+1+0+1+0 sort_uint32 selected 17 303 +421+69-2-4-4+4-5+2-3+4-4+4-4+4-4-4+6+4-4+4-2+4-4+4-2+4-4+4-2+4-4+4 sort_uint32 selected 26 329 +80+3+3-7-7+2-4+2+3+2-5+2-6+2-5+2-6-2+2+2+3+2-5+2+3-5-6+0+0-5-5+2 sort_uint32 selected 40 390 +1042+168+72+40+3+1+1-1-3-1+0+0+1+5+0+0-4-3-4+0+0-4-3-4+0+0-4-3-1-1+0+0 sort_uint32 selected 61 478 +124+68+1+5-2+3-3+3-4-1+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3 sort_uint32 selected 92 775 +1128+219+24-1-8-3-3+4+1-5+4+4+9-2+2+0+3-4-4-3+3+1-4+11+20+0+0-2+3-1-3-1 sort_uint32 selected 139 1470 +1576+360+84+42-8-2-16-7-3+4+13+1-8+1+41-19-5+5+12+7+4+5-5-3+10+13-18-7-37-2-11-14 sort_uint32 selected 209 1509 +521+248+31+10+16+5-6-1-8+21+13-9+6-11-15+5-25-4-5-14-2+4-2-12+3-1+16-7+3+2-11-18 sort_uint32 selected 314 2235 +1828+267+110+55-6-25-18+0-7-2-5-14-10+18-13-19-12-6+55+20+26-5+14+1-2-7-14+6+3+18+1+1 sort_uint32 selected 472 3478 +940+273+29+24-14-12-7+47-37-14-45+34-22+4-22+16+4+10-29-43-9+0+6-2-7-16+62+20+23+2-36+2 sort_uint32 selected 709 5161 +2897+1151+430+158+55-8+52+12+3+0+23+62-20+25-21-23-6-29+9-28+9-7-44-84-26-39+52-93+60-39-58-38 sort_uint32 selected 1064 8590 +3370+1400+649+245+63+24+8+17-16-50+37+4+8-15+14+81-71-47-80-32+88+121+7-104-81-17-75+18-22-51-46+5 sort_uint32 selected 1597 13035 +2143+953+398-31+131+54+103-14+18-3-16-31+125-7+30+18+102-14-38-57-51-59+25-21-34+164-34-105-31+59-56-47 sort_uint32 selected 2396 20411 +4381+1510+857+201+155+112+59-24+77-32+82-35-32-78+44-82-15-23-35+16+62+16-59-68+43-66+110-138-77-78-134-127 sort_uint32 selected 3595 32078 +2732+1612+657+259+75-7+212+139+125-139-23-113-71-91-80-104+106-83-92-195+18-49-117+2+108-18+13-38+75+84+3-147 sort_uint32 selected 5393 48532 +4259+2221+1267+720+356+109+136+352+111+43+8-59-25-90-3+23-123-131+15-135-50-65-51-175-52-18-80+119-98-33+40-98 sort_uint32 selected 8090 80652 +3888+1111+527+312-40+21+162-9-228+40-39+36-180+19+76-49+47-38+14-163+6+85-58-94+5-159-136+55-151+104-80-18 sort_uint32 selected 12136 138355 +3430+1632+235-118+910+303+497-452-414+193+342+188+682+233-1296+367+487-246+34+109-110-136-329+31-127-661-223-194-693-449-169-735 sort_uint32 0 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 0 0 63 +153+76+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 1 73 +157+114-2-2+1+1+1+1+1+1+1+1+1+1+1+1+1+2+1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_uint32 0 2 80 +141+88+45+49-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 4 92 +216+93+57-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 7 122 +138+134+27-4+19+13-2+16+19-2+0-3-4-4+13-4+3-4-2+0+1-3-4-4+1-3-2+1+19-2+0-3 sort_uint32 0 11 198 +201+105+44+0+0+0+0+0+0+1+1+0+1+0+1+0+1+0+0+1+1+1+1+0+0+0+0+0+1+0+0+1 sort_uint32 0 17 303 +270+128+50-3-5+1+4+3-6+2-5-3-5+4+3-6+2-5+3-5-3-5+4+3-6+1-5-3+3+3+5+5 sort_uint32 0 26 327 +151+54-4+1-5-5+3+2-4-4+1+1+1+1+1+1+16-5+3+1+1+1+1+1+7+4+3-4-4-4-4-4 sort_uint32 0 40 391 +658+93+6+5+3+1+4+5+1-1+1-1+2+1-2-3-2-3-2+0-6-3-3-1-3-1-3-5-5+1-2+4 sort_uint32 0 61 479 +120+37+34+30+26-5+2-4+1-2+2+2-1-4+1-2-9-5-4+2-1-4-2-2+1-6-2-4+1-2+2+2 sort_uint32 0 92 781 +572+138-1+1+5+6-4-12-10-5-3-12-6-13+4+9+4+8+2-1+1+2+1+2+0+6-6-4-1+1+3-1 sort_uint32 0 139 1463 +512+140+26-5-5-6-11+12-21+4-6+2+2+6-3-19+7+6-9+4-10+8+3+6-6-10+5+4-14-1-2-5 sort_uint32 0 209 1501 +418+141+54+20+23-11-6-1+3-16+1+15+4+13-8-23+20-7+5+15-23-25+1+2-1-9+4-6+1+2-10-32 sort_uint32 0 314 2247 +919+224+31-28-9-6+0+8+73-2-1+13+84-27-21+32+12-4-16-14-3-18-8-17-7+8+4+3+7+10+1-16 sort_uint32 0 472 3456 +604+155+110+60-11-37-9+62+6-6-1+57-3-27-19-19-13-31+35+9+27+0+7+20+4-29-22-8-22-14-1+17 sort_uint32 0 709 5153 +1402+729+209+128+51-16+10+45-20+1+8-1+17+35-15-24-21-1-4-16-2-53+2-26-56+23-65-7-21+10-6+18 sort_uint32 0 1064 8592 +933+536+138+29-138-62+57-37-19+79-33+33+45+9+30-48+145-22+90+27-24-23-99-127-14-70-28+0+36+15-22-93 sort_uint32 0 1597 13027 +1165+548+16+62-16+74+137+21-4-77-143-49+16+154+46-3+123-20-128-41-51-106-14-29-44-13+112-51+95+248-82-88 sort_uint32 0 2396 20448 +1875+638+289+177+82+19+28+65+128+4-79+70-38-49-5-41-70-39-26+43-35-10+16+42+24-18-27-23-125+13-136-164 sort_uint32 0 3595 32090 +1423+474+474+274+132+12+113+137+89-77+5-86+26-43+5-34+96-58-114-78-95-103-79+29-36-8-58+11+75-42-91+29 sort_uint32 0 5393 48539 +2694+1352+689+563+89+58-15-36+11-133-150+143-172-52-64-174-117+23-74+72-106+86-7+3+17+64-226+28-71+133+43-158 sort_uint32 0 8090 80679 +2525+1023+492+306-86+20+3-1-238-168+130-43+18-97+27+116+144-137+119+52-92-156+1133-196+86-177+61-143-62-124+96-104 sort_uint32 0 12136 138114 +2539+1410+1084+73+507+115-140-161+151-562-25+442-77-235-676-519-4+100-278-265+456+73-29+523-4-320-473+152+493-284+276-306 sort_uint32 1 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 1 0 64 +181+30+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 1 80 +266+142+30+2+2+3+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 2 83 +178+73+2+1+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 4 90 +166+84+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+2+0+2+0+2+0+2+0+2+0+2+0 sort_uint32 1 7 128 +156+86+26+2-3-4-2-3+4+1+2+4-6-3-2+8-3+4+1+2+1-6-9-2-3+4+1-6-9-2-3+4 sort_uint32 1 11 202 +272+68-1+1-1+0+1+0+0+0+1+0+0+0+1+1+0+0+1+1+0+0+1+1+0+0+1+1+0+0+1-1 sort_uint32 1 17 288 +277+146+0+0+1+0+2+0+0+0+0+1-1+5+1+1+1+0+0+0+1+1+1+1+1+0+0+0+0+6+0+0 sort_uint32 1 26 298 +231+146+2+1-4-3+4-5+4+5-5+4-5+4-5+4-5+4-5+4-5+4-5-4-5+2-3-3-4+2+3+2 sort_uint32 1 40 381 +497+147+34+7+1+5-1-6-1-1+1-5+0-2-1-2+1+1+1-1+4+0+2+1-1-1-1+1-1+1-1-2 sort_uint32 1 61 428 +266+111+6+7+4-2+0-4+1-4-2+1+3-1+2-3-1-1+1-3+1-1+1-2+1-2+30-3-6+2-2-2 sort_uint32 1 92 725 +720+218+35+10+3-10-6-2+2+3-3+7-3-1+0-6-1+2+1+0+1+0-10+1-2-8-4-5-5+2-5+9 sort_uint32 1 139 1460 +580+270+110+58+26-34+24+3+2-5-22-17+6+2+37-8-14-20-15+2-7+34+4+8-11-7-2-1-11+3-2-1 sort_uint32 1 209 1504 +553+273+72+55+12+8-4+10-12-40+2+3+16-21+1-1-18+16+33-11-11+1-16-30+17+16-10-24-21-47-1+1 sort_uint32 1 314 2274 +529+469+157+89+53+5+29+31+14-8-42-15-25-14+14-3-32-39+3+17+19+2-16+8-24+6-9-5-17-24-2-11 sort_uint32 1 472 3548 +547+171+18+4-7+15-10+8+15+59+12+6+8+7+10-60-38-1-52-15-15-28+31-3-26+33-38-10-27-9-35+51 sort_uint32 1 709 5395 +1409+331+78+57-56-35+14-20-25-2-70+31+10-21+5-37+31-23+74-34-75-28+31+69+30+4-5-8-30+11-57+20 sort_uint32 1 1064 8924 +904+356+213+33+66+20+41-125+38-84-34-57+66-22+129-66+0-87-37-20+122+34+10-37-77-144-37-106-9+29+46-15 sort_uint32 1 1597 13455 +877+911+246+32+13+44-1-53-96+12+71-45+53-1-26+12+11-146-76-136-14-44+23-99-74-20+110+29+18+22-88+18 sort_uint32 1 2396 20968 +1556+349+200+217+89-70+105+21+3-54+2-97+10+33+35-2+35-40-59-113+10-76-82-127-62+28+13-14-11+10-10+2 sort_uint32 1 3595 32868 +1645+925+195+133+12-97-115+62+18-5-22-2+121+5-4-56-54-104-44-72+98+113-30+5+19+24-45+152-32-74-33+31 sort_uint32 1 5393 49917 +2330+1506+936+474+360+40-41+186-123-102+31+24-121+147+5-33-6+90+0-75-92-38-103-16+114+9-214+1311-44-69-85-64 sort_uint32 1 8090 82570 +2149+1168+269+130+122+76+41+48-92+48-105-23+191-51-22-346+96-212+41-229+403-270+63-219-8-11-218-92-150+25-165+68 sort_uint32 1 12136 139109 +2053+1514+426+468-63+155-70+7-52+174-102+70+264-803+319-187-857-362-49-27-435-752-187-448+1215+39+357-507+98-321+236-50 sort_uint32 2 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 2 0 63 +182+77+26+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 1 69 +176+75+25+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 2 77 +140+48+0+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 4 92 +244+55+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 7 120 +141+63+10+22-3-2-2+12-2-3-3+19-2-2-3+19-2-2-3-2+12-2-2-3+19-2+22-3-3-2+12-3 sort_uint32 2 11 195 +295+81-1-1-1-1-1-1-1-1-1-1-1+0+1+0+0+0+0+0+1-1-1-1+0+0+0+0+0+2+0+0 sort_uint32 2 17 286 +269+91-6-5+1+5+3-3-3+5-3-4-4+4-4-4+2-4+5-4-4+1+4+4-3+4+4-3+4+4-3+4 sort_uint32 2 26 293 +129+42+45+27-7-5-3-6-4-4-6-3-5+2-3-4+1-4-5+2+6-4+2+2+2+2+2+2+2+2+2-5 sort_uint32 2 40 384 +428+117+1+3+2-2+2-5+0-4+3-2-2-1-2-7-2-2+3-1-2+2-1+0-1+2+3+2-1-4-1-4 sort_uint32 2 61 434 +208+78+28-3-2+0+0-2+1+0+3+1-2-2+0-5+3+1+0+1-2-2+0+1-2+1-2+1-2-2+0-4 sort_uint32 2 92 734 +549+129+9+6+6+10+3-3-7+5-9+0+3+0-4+2-4+0-1-8-9-4+0-3-6-2-1+3-9+5-2-3 sort_uint32 2 139 1456 +559+191+37-3+17+12+4-11+5+17-15+9+4-20-7-5-21-16-30-2-6-20-17+13+9-23+12-3-13+20-7+15 sort_uint32 2 209 1510 +536+256+77+30+12+14-3-4-1+0-9-2+3+7-16-11-4+5-8-4-9+2-33+12+5-25+4+0-13+6-7+5 sort_uint32 2 314 2256 +752+346+98+49-4-9+6-5-14+175+0-11-5+62+99+1-2+20+12+8+85-3-17-9-15-23-17-2-16-18+8-15 sort_uint32 2 472 3507 +463+223+78+92+31-27-8-32-8+10+23+30+16+20-8-8-3-11-4-29+7-5-26-1-20+4+6+9-24-15-2-5 sort_uint32 2 709 5325 +1306+384+312+152+38+34+65-16-20-13+34+66+54+41-27-20-54-63+4+2-36+62-57+2-50-17-34-71-19-38-13-13 sort_uint32 2 1064 8804 +776+333+37+64+98+96-88+141-53+81-64+13+98-55+2-100+14-65-17-57-110-86+12-45-30+1+19-43+33-13+3+113 sort_uint32 2 1597 13479 +1006+447+193+71+90+17-24+37+128-89+64+82+1+107-55-40-102-95-58-36-80-69-22-83+42+24+56-18+61-93-55-48 sort_uint32 2 2396 21025 +1287+275+427+231+10-12-88-59-55+29+28+9-41-4-10+88+5-4+21+36-86+55-41-31-10+68+12+59-94-31-73-62 sort_uint32 2 3595 33035 +868+606+243+89+154-31+78+918+150+84-98+7+47+20+19-10-26-49+4-55-111-182-93-97+98-83-51-8+46-191-132-147 sort_uint32 2 5393 49977 +2127+1085+777+432+126+95-32+0+47+27+32+43+83+9+45-2+13-132-49-8-63-14-99-16-45-21-21-122-111-93-101-3 sort_uint32 2 8090 82597 +2087+912+364-15+45+155+50+118+22+85-44-94+140-17-54-41+149-225-176-141+27-84+17+50-134-135-148-118-9+118+7-45 sort_uint32 2 12136 141113 +2021+786-266+815-231+295-596-162+85+380+173-18+366-140+503-703-446-66-318-44+63+339+119-148-520-680+74-141+419+68+78-276 sort_uint32 3 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 3 0 65 +131+99+1+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-2-2-2-2-2-2-2-2-2-2 sort_uint32 3 1 71 +191+79+34+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 2 78 +193+148+35-1+1-1+0+2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 sort_uint32 3 4 89 +180+99+22+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 7 126 +197+106+30-2-1+1+3+1+3-8-1-8-1-8-1+1+3+1+3+1+1-8-6-6-6+1-1+1+3+1+3-8 sort_uint32 3 11 195 +238+89+14+21+7+7+10+0+12+0-1+0-1+0-1+0+28+0-1+0-1+0-1-1-1-1-1-1-1-1-1-1 sort_uint32 3 17 285 +336+118+5+0+3+2+2+2+0+9+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 26 294 +183+120+49-4+6+4+3+0+5-4+5+7+5+3-2-1+3-2-1-1-1+3-2-2-2-1-2-2-3-1-2-2 sort_uint32 3 40 392 +473+234+30+11+2+4-1-1+2+0+0+1-1+1-1-3+4-2-1+2+0+0+1-1+0+1-1-1-4-2+0-1 sort_uint32 3 61 431 +260+137+43+7-1-2-4+3-2+0+0-2+5+1-2-2+0+5-2+4-5+2-2-3+0+1-2+4+0+5-1-2 sort_uint32 3 92 746 +675+121+31-2-1+2-2-3+3+1-10-9-6-1-8-1+2-4-7-2+4-1+3-5+0-1+3+3-5+11+3-1 sort_uint32 3 139 1511 +627+210+114+69-8+2+6+18+3-39-36+15+2-21-5+0-19+7+17+10+19-25+11-22-26-9+3+1-18-23+5-6 sort_uint32 3 209 1578 +334+146+65+43+9-3+25-7-18-39-13-6-2-19-20-22-5+4+4-8+4+11+2-5+10-8+25-4-15+11+1-2 sort_uint32 3 314 2371 +642+236+38+61+70-15-5-10+12+624+64-4+10-10+14-7-16-20-14+13+12-22-24-25-14-16-18-1-4+18+46-5 sort_uint32 3 472 3708 +729+225+29+52+18-30-12+31-29+42-4+10-4-18+14-14+5+16-30-14+8+4-13+9-37+8-23+57+6-59-25-24 sort_uint32 3 709 5678 +1315+397+152+170+62-7+23+38+57-9+15-8-37-4-53+1+5-78-55-33-16+15-18-5-40+42+5-61-57+43-65-2 sort_uint32 3 1064 9274 +854+198+7+22-18-89+30+40-120-8+18-42-43-5-151+26+83+51+82+38-17+2-66-37+36+22+37+7-65-99-65-51 sort_uint32 3 1597 13976 +903+190+191+61+105-49+15-62-32-121-13+89-22+25+8+64+17+24-29-60+26-70-50+25-59+121+12-74-3+8-75-15 sort_uint32 3 2396 21819 +1771+543+360+269-50+107-31+41-31-34-153-58+2-73+5-104+52-71-15+19-9-6-52-42+29+42+27-41+34+34+25-5 sort_uint32 3 3595 34114 +1419+740+307+193+120-47-9-171-154-60+70-73+12+35-91+7-72-129-25-119-52+61-95+71+2+59-186+61+197-53+17+87 sort_uint32 3 5393 51749 +2592+1025+768+511+6+200+212-60-10-104-235+184+2+0-189+88+46-22-84+30+24-8+66-146+44-95+33-102-115+18-151-79 sort_uint32 3 8090 85467 +1859+977+428+530+51+26-124+32+27-149+285-63+55-124+24+127-55-152-94-66+31+54+36+11+0-157-74-134-125+87-160+142 sort_uint32 3 12136 144429 +1198+1433-356+858-147+99-314+436-423+165-328+367-596-73+745-124-373-103-392-382+1312+1662-364-197-189+302+321-64-310+13+316+304 core_inv3sntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 selected 654 88003 +3858+222+128+66+46+52+75-52-120+15-65-3+70+21+58-52-119+139-98-128+26+97+13-34-48+135-113-54-11-121-48-71 core_inv3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 0 654 94510 +2991+139-72+30-261+95-78+38-160+141-65+176-68-23-3-169+29-309-132+164+107+195-83-27+133+139-109-12-8+102-135-50 core_inv3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 1 654 88039 +389+274+192+128+14-4+27-79+162-67-61-72+184+13+44-23-118-28-120-98-47+95+1-42+6+44-15-28+47+24-30-10 core_inv3sntrup653 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 2 654 276771 +2816+255+64+1096-2+83+102-133-47+106-106-55-4-42+33-16-33-96+8-125-15-153+108+47+12-120-15+27-12-9-43+61 core_inv3sntrup653 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 3 654 433155 +3499-49802-36299-33841-50854-51310-51752-50273-34092-27620+2000+2074+1980+2031+2004+2015+1945+1855+1940+395+1908+2071+2009+1941+2037+2139+1982+1977+1915+1948+2028+1826 core_inv3sntrup653 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 4 654 448714 +1110+130-27-25+625+12+88+58-46+28+75-71+9-34+52-99-96-27-100+6-55+22+60-78-91+15-74-9+26+113+600-57 core_inv3sntrup653 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 5 654 429743 +1370+298+12-9+134-17-124-8-123+234-98+22+209-160+13-73+66+104+259+146+19+28+48+157+148-726-2957-2832-2841-2810-2790-2890 core_inv3sntrup761 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 selected 762 104741 +2681+148-68-66+76-38+346+58+8+137-75-104-41-112-222-24+250-186+65-167-97-13+271+164-170-103+43+142+42-32+53+4 core_inv3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 0 762 113383 +2359+325+361-106+94+0-72-109-350+208-299+98-140+85-78+259+221+54-86+130-330+15+76-192-145+17-34+47+145-2-107-110 core_inv3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 1 762 104694 +128+59+258+62+147+149-113+164-154+190-58-142-72+884+139+347-111+13+20+32-10-94-46-221+57-153-33+45-3-227-104-101 core_inv3sntrup761 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 2 762 328430 +1624+551-10-127+11+71+29-68+20-3-51+58-50+53-124-82-126+40-139+41-69-118+175-5+47-156-84+39-31+88+1336+112 core_inv3sntrup761 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 3 762 546753 +2282+59+2+118+223+85+196+356+29-67+344+304+191-20+96+307+149+119+46+386+577-454-400-360-424-587-738-496-407-249-523-644 core_inv3sntrup761 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 4 762 509810 +1423+89+1+155-52-73-136+21+61+673+70-10+8-57+10+43+26+55-109+9-23+10-144-39-34-5-137-40+91-25-31+37 core_inv3sntrup761 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 5 762 496974 +6395+311+397+162-169+334+665+594+120-40+54-250-85+240-108-606-397-390+27-241-217-173-236-193+2087+455+107+200-336-32+110-356 core_inv3sntrup857 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 selected 858 144651 +5047-48+88+169+210+41+17+60-82-91-127+9-49+108-9+4+13+103+2+26-114+37+61-36-55+28-32-94-147-110-47+48 core_inv3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 0 858 156475 +4041+27+187+45+89-73-143+65-3-67-1+89-50-224+126-42-3+876-63-153+26+72+223-9-119-227-45+76+100-34-74-85 core_inv3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 1 858 144688 +358+178+166+13-10-74+41+17-39+89-85+17-150+15+31-32+39+25-63-34+153-48-61-34-12+86-16-6+41+19-80-107 core_inv3sntrup857 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 2 858 377504 -299+152-52+856+1022+139+801+5-1751+208-1056+120+335+238-1165-118-1031+994+114-1396-12-83+78+32+432-593-197-17+159-1563-25-1254 core_inv3sntrup857 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 3 858 595123 +1999+48+210-733-19-653-475+616+204+319+342-142-133+355+358-1058+213-287-1329+297+302-311+262-1011-143-776-251+688-127+222-140-212 core_inv3sntrup857 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 4 858 567864 +1997+147-29+128-66+168-53-45-18+42-53-11-60-10+1457+15+168+6+90-53-117-36-76-31+139-17+26-141+23+44+89-120 core_inv3sntrup857 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 5 858 732250 +2221+399+588+199+217+90+147+155+190+143+200+101+125+216+24+74+147+175+500-172-397-391-297-295-324-460-451-289-318-373-440-352 core_inv3sntrup953 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 selected 954 167143 +5395+17+6+85-19-23-156-139+926+114+28+81-40+0-77-107+18+20-92+29+12+21-72-23-30-134+34+9-188+75+4-8 core_inv3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 0 954 178149 +3414+10-87-245-73-14+42+16+19-61-40+16-236-51+26+4+221-51+38+72+74+16-71+65-81+42+216+57-152+155-189-17 core_inv3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 1 954 167118 +310+103+141-38+25-47+83-4+144-8-153+964+116-17-21-80-112-21+34-204-75+125-20+93-107-47-161+15-64-78+128+42 core_inv3sntrup953 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 2 954 491104 +822-213+0-11+150+50+62-133+227+8-22+109+11-95-100+50+655-144+113+158+29-105+115+31-140-126-171+2-38-221+186-88 core_inv3sntrup953 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 3 954 819766 +2870-139+699+592+1726-650+532+273+157-410+36-190-452-288-513-416+153+57+110+1379+188-472+47+460-229-20-564+156+37-238+3-135 core_inv3sntrup953 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 4 954 646811 +1511+1597+431-347+168+43+148+1162-824-798+1265-41-126+370+48-429+89-880-110+3205-156-769-128+692-420+163-106-417-727-189+177+1533 core_inv3sntrup953 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 5 954 823576 -860-3801-4284+2996+129-3925-4213+2972+2951+2675+2909-4116-4042-4343+3041+2750-4211-4051-1418-3873-4327-4169-4480+2800+2774+2873+3008+2864+2851+2998+2562+2571 core_inv3sntrup1013 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 selected 1014 178286 +8459+1199+211-31+208+106-39-85-59-50-158+80+31-2-35-9-32+17+61-92+107+19-91+96-63-22+48-95-2-96-25+65 core_inv3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 0 1014 191798 +4511+127+40+51-182-13-211+178-35-49-93+21+119-10+120+31-37-121-38-221-252+142+57-20-39-50-191+28+136-236+160+70 core_inv3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 1 1014 178296 +861+27+76+42-13+21-111-60-18+95-14-38+63+8-164-9+16+53-67-97+7+90-110+40+69+93-25+119-115-42-169-67 core_inv3sntrup1013 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 2 1014 529380 +1763-36+206+130-130+495+30-607-108-586+152+791+243+464-316+723-107-244-42-29-72-295-4-20+113-275+97+84-295+56-640+41 core_inv3sntrup1013 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 3 1014 719309 +8857+1215+2580+213+251-134-127-229+39+813-161+729-340-1397-65-634+198+3742+706-158-10-264-173-193+817-431+133+101-139-73-620+112 core_inv3sntrup1013 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 4 1014 823736 -91+932+752-844+649-982+833+778-1285-1127-1085-1025+6+685+186+1397-1062-1262-1039-983+812+776+767+818+813+918-949-1022+773-506+802-1032 core_inv3sntrup1013 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 5 1014 869946 +11405+2858-20-1502-773+486-895+104-3512-3622+1909+604+1519+3226+2248+1642-956+175+3014+388-542+1638-1971-434+4796-224-2397-724-994-2046-340-1975 core_inv3sntrup1277 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 selected 1278 273955 +5619+472+253-32+47+86+217-31-27-132-64-32-118-67+2-21+1651+85+124+15-109+40+0-124-58-2+4+110-129+72-99-61 core_inv3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 0 1278 298069 +8637+305+27+53+92-186+119-145-116+61-223+25-137+203+124-73+66-106-97-48-118-106-175-37+133+451+107-65+135-132+47+55 core_inv3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 1 1278 274017 +1088+273-29+45-7-79+100-60+52+141-20-51-88-276-59+140-123-33+4+15-175-24+118+69+164+135+82-159+26-116-61-8 core_inv3sntrup1277 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 2 1278 846610 +3186+498+335-165+73-225-121-65+77-172+4-18-74-22+1034+264+208+86-209-257-367-29-124+79+47-253-237+65+979+330+188-260 core_inv3sntrup1277 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 3 1278 969612 +1660+46+134-132-70+35-93-207+723-21-77-162+138-17-158+226-6-32-31-33+27+723+58+161-78+22-252+60-64-12+140+34 core_inv3sntrup1277 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 4 1278 1127919 +2981+95-222-115-21-103-81+158-173+32+839-29+129-42-64-6+4-31+58+28+117+870-52+166+69+1160+58-144-81-82-17-111 core_inv3sntrup1277 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 5 1278 1438322 +2830+324+134-82-94+11+1+760+76+73-49+16+1-32-41+381-102-107-71-141-110+17+15-68+802+83+27+28+16-18-2-88 core_invsntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 selected 1307 566330 +9175+7796+7092+5707+6499+6117+6235+6198+6182-7018-6469-7330-6748-6682-6732-6657-6854-7513-6632-7752-8943-4979+5869+6262+6592+6886+7042+6522+6823-5272-6434-5941 core_invsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 0 1307 527378 +2586+4336+1619+682-138+350-34+121+640+168-244+17-70-58-503+289-141+84-514+43-373+82-278+92-100-17-463-80-301+32-365+706 core_invsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 1 1307 572261 -421+877+24+619+210-26+44+176+203+33+599+480+5-167-72-105+57-135-65+799+362+207-185+11+559-13124-13393-13304-12302-12991-13210-12642 core_invsntrup653 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 2 1307 6119384 +14597+8304+244+748-2874-2917+2594-860-1804+1636-1684+892-1417+647+1553+2542-1004-1710+3575-1281+506+1277+218+1680-1402+1141+3162-2612-2197-1386+124-2107 core_invsntrup653 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 3 1307 2786668 +4200+4441+3153+2800+1680+154+2142-1846-58-1152+1052-43-447-1484-1256+1158+1812-594+905+420-1195+248-1349+761-1943-802-1026-713-888-1016+1254-140 core_invsntrup653 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 4 1307 8056665 -537+4061+6411+1594+2230+9615-9104-3630-14155-6686-18444-6360-1078-9760+3647+2442-3018+1774-2143-1728-6770+1916+2362+9849+269-8782-9386+3728+2486+11032+9441+3424 core_invsntrup653 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 5 1307 8485812 -955-5046+2744-40-2868-5273+888+899-2129+3282+1607+627-1094+1632+2009+3236+1823+529-2668-826+2386-1458-4632+418+3715+2664-2438-3380+1394-1654-185-1790 core_invsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 selected 1523 698586 +8290+5428+1246+992+734+1310-83-131-421+8-128+76-76+2-232+193-166-70-98-57-201+116+782+209-143+29-52+4-203+126-281+11 core_invsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 0 1523 698555 +592-94+36+102+63-72+945+161+149-22-44-272-169+69+229+21-224-302-129+114+12-74+116+565+160+33-469-81-252-237-48-13 core_invsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 1 1523 727318 -1042+2388-274+706+31+304+1147+1409-388+292+340-651+6+45-677+386+65-61-622+91-64-168+1214+685+164-217-507-557-442+39-686+127 core_invsntrup761 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 2 1523 8243814 +44141+28009+33650+29269+32792+36257+31940+26208-2651-6047-5580-459-1630+840-507-2536+4791-5872-3283-1534+519-567-2848-3553+195-56-2317-4202-2905+824+3584+1508 core_invsntrup761 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 3 1523 3735290 +2739+1679+1878-1269-1123+710-1593-604-1178+349+451-153+3759-1294-2331-204+1238+706+633-32+1041+2381+436-917+2212-795-1281+277-126-468-1597-256 core_invsntrup761 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 4 1523 10944702 +8938-1618-2455+1491-4530-2023-394+3453-4252-675-105+4829-5703+73-1568-3962+952-9103-3791+7572+1844+5211+7369-3590+5340+3294+7560-2196-4661+316+3169-107 core_invsntrup761 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 5 1523 11413500 +37299-20730-21948-22778-16698-17448+30075+27009+21499+27376-13388-23063-21322-21812-20755-20895+25721+20635-17439-19015-19540+22790+25793+30360+28570-23271+22970+31691+25457+22475-16542-26122 core_invsntrup857 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 selected 1715 906675 +3562+1023-284+21-47+497+119-280+114-368-79+235+481+248+45-572-234+164-395-32-474-13+1+479-142+545+111-50+6-129-300-94 core_invsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 0 1715 870635 +438+5713+1881+927+258+1043+123-209-67-335-98-109+72-214-232-110-224-100+10+610+84-108+134-322-21-189+35+34+204-84+70+18 core_invsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 1 1715 906596 -1193+2-161+224-92-184-554+2+10-85+52-169-177+158-319-339+48+332-158-1-240-417+228+585+427+704+1048+756-180+380+233+116 core_invsntrup857 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 2 1715 10396228 +16072+9505+7131-4435-5775-4902+4448+7472+7837+4361+3963-4329+11701+2346-3757+1071-5278+2458-1673-1700-1636-453-6562+14122-1837-9683-10514-5355-1254-895-1119+5418 core_invsntrup857 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 3 1715 4693887 +801+2177+4771+2245+140-368+1214+692+307-1489-1512-600-166+200+232-1878+1146-1189-910-327+1005-1960-88-1390-2450-135+1033+446-1170-668+443+937 core_invsntrup857 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 4 1715 13816290 +3213+8406-16862+9053-16437-9050+8960+6096+8379+4999+2074-1462+2694+9237-15084+8723+2792+8532-13910-15939+8954-16905+3528+3967-14935+7840-14561+8069+7711-20116-16441-14001 core_invsntrup857 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 5 1715 14535705 +619-992-5312+3723-3221+395+4068-253-3772+265-1129+1078+4173+4202+1432-688+2003-2243+3018+1894+3963-2308+2791-1646-3829-1348-4303+1613+4190-997-4369-2892 core_invsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 selected 1907 1065750 +7172+4554+1999+411-2-139+295+74-140-35+1127+106-200-299+63-115+89-114-224+139-122-16+487+258-248-336+127-73-374-137-15+28 core_invsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 0 1907 1065710 +1733+531-23+240+185-278+90+67-214-161+15+829-122-8+252-105+279+86-222-274-46-65+460-75+28-272-242+91-98-188+61+101 core_invsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 1 1907 1178941 -3286+239+621-537+263-419+707+780-829-509+49-719+492+538+709+463-701-1070+108-704-758+1068+1201-331+223+236-63-242-814-349+379+794 core_invsntrup953 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 2 1907 12906700 +26211+23296-4770+1725+7380-692+7537-6851-10014-536-2527+2931+6482-4097-6352-6447-17784+15485+15451+4729-15731-11254-12802+10927+48447+32430+9711-6224-13328-9847+7716-14961 core_invsntrup953 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 3 1907 5807183 +1233+2310+1965-2501+1099+557-236-1163-593-659+197-1228+794-814-1071-2004-330+472+647+1443-838+1334+248-1278+239+1002+677-1384-130-793-274+1826 core_invsntrup953 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 4 1907 17009202 -4435-5088+1748+129+2705-11045+26+1447-10166-920-203+1788+5553-2640+1005+4361+515+2102-3983-976-5104-14256+6288-3536+4715-417-1699+5375+1189+1367-2359+4244 core_invsntrup953 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 5 1907 17850148 -1306+4382-1103-428-1478+2880-599-1443-1562+2495+1049-225-5827+4385+373+3111-1435+4730-2620-607-2251-140-5973+4685+3278+7188-582+4668+1694-627-1528-2062 core_invsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 selected 2027 1299382 +6913+2886+871+2675+682+147-435-312-234+49-564-66+721-406-576-564+946+575-632-901-485-696+698-173-97-33-285-214-389+58+854+988 core_invsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 0 2027 1299325 +515-13+781+92-263-743+424+1228+371-201-55-738-431-297-224-518+1461+588+891+745-671-870+417-238-556-196+536+235+227-2-624-284 core_invsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 1 2027 1495402 +50-115-351-1132-1152+531-921+511+657+1543-640-160+38-577-977-286+231+1672+141+381-75+456+26-261+183-88-77-394+180+69+356+151 core_invsntrup1013 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 2 2027 14535277 +59661+29163+25198+17391+28108+24768+21832+24320+27751+30535+34193+26158+16579+24851+29239+12275+29327-40686-27081-33413-45891-23188-28168-29058-41547-31341-30909-44382-35304-23635-41551-38602 core_invsntrup1013 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 3 2027 6673132 +2227+2407+1694+221+1357+2304+2155+327-1509-168-792-500+1083-1837+224-1342+955-1160-2419+611-2397+1649-2572+1998-1390+2368+1024-2852-636-1438+81-1290 core_invsntrup1013 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 4 2027 19237121 +1755+5996-7072-2286+3149+23022+21310+11508-517+1746+20649-7690+14293-7507-15980+21409-23+4243-22038+2339-11017-2701-8124+8039-2902-24839+607-4859-15507+10703+17547-19748 core_invsntrup1013 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 5 2027 20320621 -19056+1603+4228+6560+2130-692-5535+3128-7753+450+5940-3432+4052-790+6430+4499-342+4773+3126+1057-3641-3577-1336-10475-4149-3612-9358-728+3231+7093-217-5083 core_invsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 selected 2555 1915185 +10438+2335+807+636+22+403+367+360-637-188-207+673-304+495-484-719-352-375+598+24+62-295-285-107+336-137-382-309-138-215+544-8 core_invsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 0 2555 1914942 +1277-127+405+1264-70+35-73-351-28-391+2698-234+72-145-33-395+870+85+528+7+411-221+526-158-260-296+70-452+1165+448-246-484 core_invsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 1 2555 1998678 -5759-831+2-519+567-141+737+236-81-101-100+714+498+23+511-117-533-613+715+603+128-286-455-883+723+1038-961-309+304+172-458+228 core_invsntrup1277 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 2 2555 22938950 +46980-2863-6894-8188-5704+1828+8816+9160-4668+15528+2877-12732-19499-3226+18415+15611+5951+21010-10360+4969+9139-4467+538-10794-15964+482-7995-13798+13592+1219-13529+12806 core_invsntrup1277 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 3 2555 10488992 +1168+4075+1267-83+3242-1587+762+176+2465-1565-1042-17+1959+348-384+1867-861+1039-3047+947+1694-545-258-1158+977+4489-2761-2351-2130-1181-5778-1076 core_invsntrup1277 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 4 2555 30545230 -8901-22519-10210-23530+12751+11484-6999+9280-16633-7091+9535-11158-22832-1240+12449-3413+17195+8741+15248-18642+803+14768-13979-41618+2139+12068-2951+14841+12072+8467-17854+1509 core_invsntrup1277 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 5 2555 32211449 +4779+16564-14853-524+3330-7588+1069+2144+9819+619-7017-3837-1168-7607+2919-4384+7595-8013-8662+1315+1074+6354+65-642-7612+9978-14035+3732-11854+1308+4569+5306 core_mult3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 selected 653 10790 +5319+245+190+132-12-19-45+5+19+17+9+4+27-13+19-22-32+20+3+22-31-15-43-13-69+50+12+9-1-31-39-19 core_mult3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 0 653 10779 +908+107+70-13-3-3-10-10+44-27-19+24-9-24-20-1-8-15+17-15+12+2+48-13+25+24+6+30+5-10-4-47 core_mult3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 1 653 14661 +6441+256-40+40-88-9+57+23+96-151-34-26-30+45+115-103-46+43+63-79-49+51-18-25+74-117-33-15+41+47-47-9 core_mult3sntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 2 653 59752 +1447+133+73+699-2-4+14-20+24-4+17-1+16-14+9-15+4-18+9-26-21-18-1-16-7+10-22+10-22+7-23+8 core_mult3sntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 3 653 64371 +861+363+196+47-72-28+13-6-10+0-16+28-22-36+2+45+16-22-1+2+31-18-14-7+39-29-14-31+9+16+11-6 core_mult3sntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 4 653 135273 +471+299+20+15-30+21-48+58-52+6-17+13+37-23-15-37+31-51+17-35-68+46-59+37-61+13+4+14+8-42+14-11 core_mult3sntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 5 653 137494 +379+87-14+87-39+1-78+73-13+17-78+73-13+17-78+73-13+0-79+73-13-27-79+73-13+643+7+12-27+5-85-42 core_mult3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 selected 761 10638 +3564+394+11-25+9+4+50+37-16+26+64+15-18+22-70-53+3+11-32+41-10-40+5-3-18+31+4+8-25-68-20-32 core_mult3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 0 761 10624 +1190-3+103-49-25-8+2+73-6-9+18+1+42-30-26+23-66+52+10-16+22-21-8+30-61-41-14+17+2+0+53-9 core_mult3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 1 761 15686 +3685+0+40+231-159+67-69+38-113-95-170+21+70-9+121-141+109+80+110-89-134+72-62+137-25-47-92+25+27-163-55+102 core_mult3sntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 2 761 81005 +1833+161+22+26-2-26+25-18-8+5+8+24-15+14-1-10+6-24+1-36-17+12-13+13-32+8-23-11+2+16+5-25 core_mult3sntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 3 761 77957 +720+96-45+146-100-169+239-260+64-179+46-256+239+261+4-220+220+199+64-87+217-185+250-129+75-168-168-136+248-281+134-169 core_mult3sntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 4 761 193517 +288+209+139+62+7-3+6+20+3-29-8-2-19-25+6-15+0+4-7-8-6+802+8+2-10-34-1-6-2-4-4+6 core_mult3sntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 5 761 170907 +701+113+38-7+10+11+7-2-16-40-27-10+9+12+0+11-22-39-30-9+10+11+7-2-16-40-27-10+9+12+0+11 core_mult3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 selected 857 15239 +2677+387+5-48-95-83-25-49+38-14-11+19+0+9+22-36+51+12-4+45-3+18+27-14+2-13-2-24-4+12-40+12 core_mult3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 0 857 15230 +474+45+6+39-18-36-25+4+56+14+6-11-2-19+36+2-35-19-53-39-8+11-2-17+29+18+32+23+4-16+6-37 core_mult3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 1 857 20642 +1973+535+278+53+74-27-21+5-29+1+9-18-8-57-17+3-15+6+8-77+80-26-125-2+52+5+8+12-88+16+24-21 core_mult3sntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 2 857 86867 +497+199+80+13-11-7-14-12-1-2+0-1+7-3-5-2+29-14-13-18-9+0+2+786+115+15-9+11+7+1-11+1 core_mult3sntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 3 857 93795 +1421+995+901-23-90+4-24-4-48+41-91+75-85-2+29-45+24-59-11-31+19+52-70+33+73+1-56-69+1-8+31+61 core_mult3sntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 4 857 288144 +828+276+70+26+10-2-4-6+3-5-3-1-5+15-3-9+7-3-4-1+10-5-8-2+3-5-7+761-6-1+10+11 core_mult3sntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 5 857 213502 +520+209+106-18-5+3+6+5-45-5-51+2-24-66-10-31+27-55-46-14+51+25+26+59+65+43-13-22-17-10+11+12 core_mult3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 selected 953 15888 +1478+554+244+51-37-72-56-9-13-51-33+1-26+11+6-22+12-20+34+1+26-11+16+37-5+59+14+34-40-47-7+1 core_mult3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 0 953 15896 +382+14+43+1+18-42-12-8-43-16-13+42-13-33+11-43+35+23-2+43-31+4+24-17-7+13+25+13+7-25-30-62 core_mult3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 1 953 21385 +2639+152+410+102+127-31-5-15-70+195-32-27-78-56-95-77+139+20-11-39-82+45+38+137+20-78-87-26-53+101+19-4 core_mult3sntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 2 953 122751 +622-56+22+7-4-20-13+3+1-12+929+160+42-4+53-4+55-8-8-16-4-4-18+11-20-16+48+1-17+66-7+3 core_mult3sntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 3 953 112840 +2497-97-188-189+199+508-113-150-307-286+115+349-229+62-343+177+223+645-87+476-189+72-156+550-308-186-238-1+473+312-282+466 core_mult3sntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 4 953 299428 +541+223+132+151+214-2-27+157-40-45-40-32-25+156-40-52-46-1+896+34-22-17-42-37+152-48-34-13-29+156-52-38 core_mult3sntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 5 953 262611 +1264+142+3+52+4+27+1-31-23-39-30+9+29-4+1+51-34-41+30+41-25-18+119-55-71-6-29+32+732+54-108-114 core_mult3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 selected 1013 16366 +1837+354+49+79+0+21+30-11-60+25-44+37+21-21+6-62-25-12+62-1+6-38-16-35+39-21+13-18-21-31+9+6 core_mult3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 0 1013 16346 +414+14+0+61-26+13+11-5+7-24-34-26+10-20+68-5-21-2-42+14-7+40-5+14-44+13-10+4+24-50-33+37 core_mult3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 1 1013 22051 +1284+220+227+77+82+94+137+89+66+57+2-67-71-108-125-102+103+157-75-115-71+34+35-90-30-115-91-22-62+74-124-36 core_mult3sntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 2 1013 140879 +489-19-54-102-6+4+15-3+3+6+1-26+3-2-11+2-16+3+7+6+11+1-1-3-12+13+1+18+4-7+12-7 core_mult3sntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 3 1013 124716 +1101-101-53-86+717+79-183+193+428-170+179+181-198+406-80-156+901-169+182-249+180-123+187-205-103-179-188-122-165+109+983+80 core_mult3sntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 4 1013 273204 +277+95+111+54-1-12+2-7-2+7+0+13+8-19-3-10+6-19+5-12-1-21+2-7-2+7+0+13+8-19-3-10 core_mult3sntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 5 1013 292876 +925-10+26+29-73+55-85+17-89+742+12-27+49+42+15-35-37+30+6+30-9-18+14-55-48-30-40+55-9-41+68-9 core_mult3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 selected 1277 22899 +4831+843+213-4+42+42+21-34+44+8-28+19-59-56+12+34+47-7-7-17+5-1-35-18-119-8+3-47+5+11-45-35 core_mult3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 0 1277 22837 +967+43+111+7-15+6+0+15+18-96-72-13-6+12+61-79-19-29+46-7+4+52+1+43-21-41+0+64-36-69-20+9 core_mult3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 1 1277 27595 +2697+617+396-69+38+213-15+68-14+253-50-177+9-30-19-179-208-104+133-156+82-31-9-152+214+52-135+65-147-139+56+48 core_mult3sntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 2 1277 207979 +567-260-206-183-303-211-125-166-293-330-56+763+264-13-17-31+130+41+178-88+75-136+194+75+127-31+142+2+150+19+218+28 core_mult3sntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 3 1277 230011 +1159+452+440-540+423-468+425-515+409-507+331-561+348-500+310-401+222-485+338-222+272-450+363-436+447-455+290-528+363-404+513-552 core_mult3sntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 4 1277 656945 -2484-2969-2905-3027-3013-3051-3048-3049-3036-3039-3045-3054-3046-3038-3043-3059-3031-1506+4746+4680+4669+4671+4672+4713+4714+4692+4682+4695+4681+4705+4741+4691 core_mult3sntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 5 1277 490662 -385-13+29+714-93-382-5-36+129-86+116-12+44+36+29-84+2-132+88-20+107+52-87+34+41-84+59-14+715-173-101+66 core_multsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 selected 1306 16082 +6203+585+178+57+18-6-75+14-32-2-30-9-14+9+42-14-29+25-2-36+28+18+0-51+6+31+14+0-9-59-41-24 core_multsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 0 1306 16077 +1556+33+24+30+61+3-17+4+7+24+21+24-20-19-23+18-3-24+10-5-23-22-27-2-48-80-14+14-35+57-47+22 core_multsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 1 1306 17970 +5034+264+122+40-21-10-5-8+62+12-39+0-34-36-60+9-92-16+31-98+25+48+7+77-73+71-52+36-97-22-27+28 core_multsntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 2 1306 111958 +628+98-18+15-28-22+62-45-8+46+48-20-71+104+33+42+51-61-77+21-66-39-63+31-1+48-26-26+86-1-62-62 core_multsntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 3 1306 132068 +1121+783+207+89-7+30-78-18-2-67-87+53-73-142+213-24-44+118-132+35+209-62-50+131-76-26-62-1-26-59+1184+190 core_multsntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 4 1306 456518 +608+176+22+7+88+854-56-31+59-72+5+44-11-40-42+326-31-60-28-39-13+2-4-61+19+744+1+45+13-68+197-42 core_multsntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 5 1306 555069 +385+171+129+5+33-23+23-12-54-4-14-36+26-1-37+675+79+5+1-6-19-29+16+35-16+12-26+3-20+18-58-18 core_multsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 selected 1522 16566 +3189+425+115-1+38+11+1+78-26+2-5-36+26-14+2-45+14-8-13-24+1-53-115-35+52-50-25+3+39+21+34-18 core_multsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 0 1522 16553 +946+71+15+16+25-73-91+55-64+6+42+89+39-34+32-39-115+42+3-75-53+97-50-35+68+19-51-51+5-10-32+36 core_multsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 1 1522 18527 +2287+357+227+16-2-31-30+42-6-31+47-19+5-24+14+43-31+94+13+6+2-8-38-80+49-31+26-6-9-16+0-22 core_multsntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 2 1522 176242 +1534+443+255+76+335-130-7-10-75-51+44-59-57+401-2+365-59+105+439+77+20+288-31-23-1-64-130-36-69-49-72-67 core_multsntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 3 1522 241087 +848+139+32+28+5-7+4-1-5-11+1-5-5+5+2-6+0+11-18+10-2-14+4-1-7+824+104+58-16-7-30-22 core_multsntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 4 1522 622667 +255+186+109+41-97-53+37+43+20+14-106+44-44+41-37-18+851+91+20-41-23+26-37-48-54-73-36-30+16+48-2-27 core_multsntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 5 1522 500649 +469+199+192+998+289-135-56+61-68+19-63-9-5-88+33-28-2+1-117-26-76+39+9+1-84-124+82+945+84-7+33-86 core_multsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 selected 1714 21957 +4265+716+318+187+1+60-64+14-21-67-5+22+17-32+14-28-22+27+24+98-77-25+31-27-83-16-71-38+8+10+2+8 core_multsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 0 1714 21976 +514+69+101-84-10+38-27+50+24+34-74+24+75-151-8+3-73-15-38+86-68-7-73+64-24-3-25+18+0+4-19+9 core_multsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 1 1714 26322 +2603+546+242+136+60-77-60-22+70+64-17-31+70+7+11-29-38+19+0-49+8+0-94-78-9-17+5+83-25-47+35-34 core_multsntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 2 1714 218342 +650+97+183-69-17-25+22-66+126+70+52-53-16+69-62+7-170-101-133-3-20-4+61-218+60-120-19-59-76+825+122+92 core_multsntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 3 1714 220501 +7083+168-4+136-13+29-52+68-38-4-52+68-17-4-52+68-34-4-52+68-17-4-52+68-38-4-52+68-17-4-52+68 core_multsntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 4 1714 788653 +220+132+380+1078+950+139-48-2+36+55-33+15-26+14+19+1-19+30-104+750-66-20-43-16-61-58-8+1-65-31+34-61 core_multsntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 5 1714 630646 +685+137+871-56+174-74-10-70+146-69-59-112+190+52-11-38-86-19+73+124+6+878-1-173-137+181-145-32-29-5+14-17 core_multsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 selected 1906 22190 +4544+623+201+64-74-56+0-23+34-1+33-110+60-102-1-140+11+64+88-29+14-89+16-35+3+20-14-94-28-41-8+59 core_multsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 0 1906 22217 +423+37+157-58+0-27+53-12+28-13+11+0+29-110+43+46-34-3-13+59+15-1+18-46-96+65-50-73-29-160+14-13 core_multsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 1 1906 26797 +2385+652+189+92+77-7-129+37+11+95-52+32+5-35+16+2+40+65+19-74+56-57-21-22-14-28-32-13-55-18-65-47 core_multsntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 2 1906 257612 +1188+567+448-109+7-56-26-82+1156+612+73-156-75-26-49+69+55+33+13+44-35-30-87+28+108+87-125-67-3-21-84+3 core_multsntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 3 1906 264611 +622+277+77-28+28+52-8+0+91-29+1-84+33+52-96-41+46-7-142-141+706+61+21-90-14+144-117-68-126+96-81-43 core_multsntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 4 1906 974240 +221+203+1365-25+37-17+7-4+997+103+34-57-76-66-1-15-69+2+1-41-18+653+37+82-27+52-2-17-79-104-54+7 core_multsntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 5 1906 776134 +1518+344+85-81-126+168+58-79+145-25-92-64-55-95-136+411-28+60+38-30+35-6-102-185+108-52-158+103+107-17-24+772 core_multsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 selected 2026 23862 +3564+500+181+14+54-18-36+105+35-61-42+26-40+19-17-68-22-17+35+5+11-56+60-87+25-3-15+14-2-40-6-9 core_multsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 0 2026 23870 +409+183-1+8+53-98-14+67+7-26+25-66-56-15-8-27-6+10-19+10-20-8-43+7+15-44+28+4+13-7+18+30 core_multsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 1 2026 27321 +2718+644+368-60-11-40+42+51-99-54-17-79+18+23-12-51+0-30+24+112-21+11-73-10+27+43+1-5-1+22-34+8 core_multsntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 2 2026 307876 +215+177+23+61-10+50-199-16-108+93+132+165-200-33+92-4-93-1-74-40-63-215+119-11-297+649-123+29-75+102-20+15 core_multsntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 3 2026 299930 +1080+123+31+238-139-317+166-173+104+240-135+49+163-75+294+241-219-167-57-132-36+49+308-171-68-115+67-12+32+310-124-279 core_multsntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 4 2026 1096998 +271+285+1191+33-18+19+24-49+64+46+921-102-45-17-55-28-12+19-25+21-33+756+8-26-79-51+43-57+7+27-56+6 core_multsntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 5 2026 881021 +718+178+134+89-95-116-96-178-143-365-294-429+578+21+298+238+106-60+313+266-19-110-11-63-17-105+675-63-89+8+96+56 core_multsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 selected 2554 30276 +5756+607+184-78+120+55-51-67-24-41-29+17-68+35-48+59-149-103+146-113-23+61+59-10-24+115-15-18-40-1+53-2 core_multsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 0 2554 30238 +514+72+296+164+142-13-6-29-27-57-79-81-134+24-95+44+90+29+137-9+35-40-78-67+26+28-48+0+21-73-43+67 core_multsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 1 2554 34005 +3266+589+268+249-137+2-39+139-124-47+38+75+46-116+79+84-33+199-155+88-79-145-33-153-193+112-51-102+25-145+70-29 core_multsntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 2 2554 477386 +414+192+27-37-52+939+159+33-233-193+24-143+79-70+33+73+8-57-1+219+2-58-98-141-20-120-72+13+82-110+694+87 core_multsntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 3 2554 541333 +1330-414+182+20+157+21+121+24+177+46+160+22+155+30+123+16+146+31+115+28+535-559-712-306-310-472-135-726-478+185-347-729 core_multsntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 4 2554 1765224 -9294+280+2430-103+30+40-19+52-13+870-32-121+39+29+23-160+710+122+37+31-101-85-124+838+7-55-144-123+16+484+232-192 core_multsntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 5 2554 1439507 +361-65-52-265+793-96-262+162-25+101-153+168+663+381-336-216-175-272-171-317-98+791+276+68+211+63-144-156-145+854+258+165 core_scale3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 selected 1306 237 +374+119+15-3-2+0-4+0-4-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 0 1306 235 +46+31+40+1+0+1+0+1+0+1+0+1+0+1+0-7+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 1 1306 257 +475+112+18+59+0+0+0+0+1+0+0+0+0+0+6-1+4+2-2-1-1+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 2 1306 3519 +584+202+49+44+49+1+1+2-1+0+2+2-1+0+1+2+4+2+1+2-4-4-6-2-6-5-6-2-6+2-6-2 core_scale3sntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 3 1306 2386 +331+114+111+42+13-2+3+1+4+5-7-5-2-1-3-5-2-7+4-5+15-5+0-3-1-8+5+2-1-9+6+3 core_scale3sntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 4 1306 3061 +179+98-19-5-5-22+17-7-9+9+17-7-9-21+17-7-11+11+17-7-11+11+17-7-11+11+17-7-11+11+17-7 core_scale3sntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 5 1306 2453 +202+44-32+50-70+46-58+43-68+52-48+45-68+47-68+42-65+39-63+45-68+41-55+45-70+46-66+53-71+44-66+46 core_scale3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 selected 1522 260 +247+126+39+20-1+0+3+6-1+0+3-1-1-1+0+3-1-1-1+0+3-1-2-1+4-1+0+3-1-1-1+0 core_scale3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 0 1522 263 +67+40+19+19+18+19-3+0+1-3-3+0+1-3-3+0+1-3-3+0+1-4+1-1+1-1+1-1+1-1+1-1 core_scale3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 1 1522 254 +233+173-2+0-2+2-2+3+0-1+2+2+0-1+2+0-1+2+0-1+2+0-1+0+0-2+0+0+0+0+0+0 core_scale3sntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 2 1522 4033 +636+102+50+86-6+0+0-1+26-1-2-4+1-4+1+0+4-3+1-3-2+3+0+1-4-3-3+1+0+1-3-3 core_scale3sntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 3 1522 2716 +346+130+72+31-2+2-8-3+9-2-3+0-2-3-8+7-8-2+0-4-2+2+0+4+2+6+1-4+2+0+8+1 core_scale3sntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 4 1522 3522 +190+12+12-54-43-54-47-62-60-45-70-64-39-60-95-50-64+39+32+77+78+26+30+27+55+60+55+57+41+81+31+29 core_scale3sntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 5 1522 2712 +412+130+84+35+30-1+11+64+0+0-4-6-6+0-1+2-9-6-6-4+5-6+2+0-3+7-7+7+1-2+0-8 core_scale3sntrup857 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 selected 1714 280 +288+138+37+7+4+3-1-6-3-6+2-1-1-6+2-1+3-1+4-4-1-1+4-4-1-1+4-4-1-1+4-4 core_scale3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 0 1714 288 +192+132+59-1+3-1-3-1-3-3+2-2+3-1+2-2+3-1+2-2+3-1+2-3-3-2+3-1+2-2+3-1 core_scale3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 1 1714 277 +110+43-3+0+3-2-2-2-2-2-2-2-2-2+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 2 1714 3926 +526+56+2-68-48-15-35-22-46-32-1+13-1+17-2+2+28+35-2-13+17+33-13+18+24+1-23+13-14-11-11+30 core_scale3sntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 3 1714 3047 +315+76+71+10+9+5-4-5+20-3+1+18-5-3+8+6+3-5+2+9+0-5-6+5-6-3-7-3-7-6-1-1 core_scale3sntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 4 1714 4538 +241+113+56+22+24-4-7-4-7+20-7-4-7+18-4-5-2+37-7-6-7-3+24-3-7-7+24-4-7-4+22-4 core_scale3sntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 5 1714 3054 +325+148+24+24-13+24-2-5+11+9-10+0-10-15+21-2-7-11+23-7-10-10+14-9-3-5-9+12-7+2-7+22 core_scale3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 selected 1906 311 +236+117+55+1+10-1+1-1+1+17+9-1+1+9-1+1-1-1-1-1-1-1-1-1-1-1+2+2-2-2-2+5 core_scale3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 0 1906 314 +73+34+2-1+0-1+1-1-3+0+0-1+1-1-3+8-4-1+2+0+2+0+2+0+2+0+4-1+0+5+4-1 core_scale3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 1 1906 348 +179+134+44+20-2+2-2-1+2+1+1+2+1+3-3+1-1-3+0-3+1-1-3+0-3+1-4+1-3-3+0+1 core_scale3sntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 2 1906 5029 +508+256+30+35+27+0+0-1-4-1+2+0+1-1+1+1+1-1+1-2-2+0+1-2-2+0-1+0-2-1+2+2 core_scale3sntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 3 1906 3384 +272+74+35+22-12-1+12-8-21+12-18-9+16-12-8+19-7-10-13+12-13-2+33-1-16+44-10-15+32-15-9+33 core_scale3sntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 4 1906 4392 +125+21-75-76-74-69-81-83-84-82+44-30-3+20+11+8-7+10-10+3-14+21+8+21+6+14-2+29+15+19-22+8 core_scale3sntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 5 1906 3374 +339+81+17+12-6-6-1-6-7-3+6-4-1+7+5+1-9-2+12-8-2+6+0-5+0-4-3-8+3+17-12+13 core_scale3sntrup1013 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 selected 2026 320 +578+143-1+2-2+0-1-1-1-1-1-1-1-1-1-1-1+7-5+5-5+5-5+5-5+5-5+5-5+5-5+5 core_scale3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 0 2026 362 +369+79+26+23+15+5+7+8+9+4+14+2+6+8+6+2+5+5-13-10-12-13-12-9-11-10-13-10-6-5-12-9 core_scale3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 1 2026 322 +76+40+17-5-4+0+0+0+0+0+0+0+0+0+0+0+9+2-5+2-5+2-5+2-5+2-5+2-5+2-5+2 core_scale3sntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 2 2026 4746 +362-40-52-90-66-111-119-105-123-120-120-148-102+26+43+15+42+27+3+42+54+27+3+36+54+27+51-3+82+82+40-3 core_scale3sntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 3 2026 3637 +305+146+26+46+7+6+3-3-2-10-8+0-4+3+4-1-4-3+5-1+3-3-2-10-8+10-1+3-3-2-10-8 core_scale3sntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 4 2026 5535 +53+76+65+0+0+0+0+0+0+0+0+0+0+0+0-1+1-3-3-3-2+1-2+1-2+2-2+2-4+1+0-2 core_scale3sntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 5 2026 3644 +292+99+1+6+0+0+4-3-6-6-6-6-1+23+13+0+0-11-4+4-3+1-9+5-1-1+4-4+0+22-3-6 core_scale3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 selected 2554 412 +254+106+81+17+2+7-2-3+0-3+5-1-1-1-1-1+0+0-3-3+5+0+0-3+5+1-1-4+5-1+0+0 core_scale3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 0 2554 416 +33+22+7+2+13+3-2-3-3-4-2+4+3-3+15-3-2-4+2-3+2-4+2-1+2-6+1-3+2-4+2-4 core_scale3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 1 2554 466 +204+114+1+7+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2 core_scale3sntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 2 2554 6919 +327+45-7-14-6+16-6-1+1-1-5+0-3-1-3-3+22+0+0+1+17-14+18-11+17-14+12-13+15-11+17-14 core_scale3sntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 3 2554 4530 +342+118+35+4-8-6-2+5+0-2-1+1-3+6+0+7-1-3+9-1-8-6-2+5+0-2-2-1-8-6-2+5 core_scale3sntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 4 2554 6114 -104-134-120-128-165-136-131-116-148-149+64+29+30+33-14+51+0+46+54+17+50-3+36+6+5+34+7+52+54+16+54+28 core_scale3sntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 5 2554 4526 +364+77+41-1+6+14+16+3-11-3+7+1+1-7-4-3-3-7+7+1+1-7-4-3-3-7+7+1+1-7-4-3 core_weightsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 selected 2 90 +652+34+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 0 2 91 +34+12-1-1-1+0+0+0-2+0+0+0+0+0-2+0+0+0+0+0-2+0+0+0+0+0-2+0+0+0+0+0 core_weightsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 1 2 96 +164+74+58+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 2 2 1414 -3-67+32+9+1+7+1+12-25+12+9+12+7-25+12-25+28-30+27+4-29+7-4+7-30+23-58-47+7-5+7-30 core_weightsntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 3 2 1385 +117+67-4+30-2-2+1-2-2-2+1-4-4-2+1+1-2-2+23-1+4+10-1-1+10-1+22+31-1+4+4-1 core_weightsntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 4 2 1374 +133+83+2+1+1+3+1+2+1+2+1+1+3+1+3+3+2+2-1-2-3-2-4-4-3-3-2-4-2-4-2-2 core_weightsntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 5 2 1384 +115+72+4+0+3+19+48-10-2+46+13-36+5-44-36+33-29-3+0-29-3+0-29+46+0-29+46+0-29+48+0-36 core_weightsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 selected 2 92 +167+18+14+14-2+1-1+0-1+0-1+0-1+1+0-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 core_weightsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 0 2 91 +28+29-2+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 1 2 105 +160+41+54+55+2+0+2-2-2+1-1+0+0-2-2+1-1+0+0-2-2+1-1+0+0-2-2+1-1+0+0-2 core_weightsntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 2 2 1629 -7-76+34+0+12+12-45+20+30-28-49+8-30-7+30+8-7+30+8-49+8+30-20-8+8-4-11-14-30-7+30+8 core_weightsntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 3 2 1600 +118+85+33+0+1-1-2+0+1+5+0+1+1+4+0-3+0-3-3+0-1-3-2-1-3+46+46-1+11+2-3+37 core_weightsntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 4 2 1599 +114+70-6-7-7-2-6-6+1+1+1+1+3+1+1+3+1+3+1+5+1+1+3+1-2+0-2-2-3+2-2-1 core_weightsntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 5 2 1609 +108+75+41+4+32-12-9+19+32-12-25-45+4+32-12-14+14-37+41-14-14+14-20+11-14+14-2+3-14-14+14-2 core_weightsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 selected 2 100 +531+28-1+0+0+0+0+0+0+0+0+0+0+0-3+0-5+0+0+0+0+0+0+0-5+0+0+0+0+0+0+0 core_weightsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 0 2 99 +62+28+1+2+2-2+2-2-3-2+2-2+2-2+2-2-3-2+2-2+2-2+2-2-3-2+2-2+2-2+2-2 core_weightsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 1 2 108 +198+85+22+0+0+0+0+0+0+0+0+0+0+0+0+0+2+2+2+5+6+6+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 2 2 1820 -31-88+16+30-5+55+30+0-63+30+0+44+30-60-10+16-60-30-43-11-8+27-11-3+16-17-13+41+48-52-42+48 core_weightsntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 3 2 1793 +128+30+1-2+0+0-2+0+1-3+3-3+1-1-5-5+12-1+26+5-2-3-2+5+27-3-2-3+5-2-2+37 core_weightsntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 4 2 1791 +124+76+17-8-5-5-6-6+3-7-8-6-5-8+1+0+2+1+0+0+5+0+0+2+1+0+2+5+0+0+5+0 core_weightsntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 5 2 1795 +102-14+43+27-41+31-28-47+24-7+31+37-33-41+36+16+15-32+38-27-69-14+7+12+16+15-33-41+31-28+22-45 core_weightsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 selected 2 101 +169+34+0+0+2+0+2+0+1+0+1+0+1+0+1-1+0+0+1+0+1+0+1+0+1+0+1+0+0+0+1+1 core_weightsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 0 2 102 +54+21+0+0+0+0+0+0+2+2+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 1 2 115 +189+110+53-2+0+1-3-1+10-5+0+1-3-1-1+1+5-2-3-1+0+1+0+1+5-2+1-1-3-3-3+0 core_weightsntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 2 2 2013 -23-101+54+17-16+25+17-30+36+17-63-50+17-63-54+50-7-34+21+13-6+21-14+14-10+13+14-42+49-67+11-17 core_weightsntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 3 2 1984 +126+31+1-1+0-1-2+0+0+2+0+0-2-2+1-1-3-3+0-1-1-3-3+0-1-1+3+2+12+38-3+4 core_weightsntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 4 2 1930 +15-26-87-53-91-116-68-65-84-96-65-70-89-77-70-89+49+51+50+54+51+50+52+50+51+50+54+51+50+50+51+50 core_weightsntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 5 2 1993 +144+60+73-74+3+37-9+2+26-17+19-21+4+55-17-4-22-31+43+5-34-22+55+32-14-21-36+9-20-14+9+20 core_weightsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 selected 2 101 +163+18-1-1+0+1+1+0-2+0-2+0+0+0+1+0+1+1+1+1+0+0+0+0+1+0+0+0+0+0+0+0 core_weightsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 0 2 102 +32+12+10+0+0+0+0+0-3+2+2+2+0+0+0+0+0+0+0+0+0+0+0+0+2+0+1+2+0+1+0+1 core_weightsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 1 2 120 +207+85+21-5-3-1-6+1-3+1+1+1+1+1+1+1-4-1-3-1-3-1-1-5-4-1+1+1-4-1+1+1 core_weightsntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 2 2 2136 -69-130+9-41+5+13-42-56+12+5+20+44-42-75+13-4-9+40+34-13+1+10-23+2+9+1+16+8-6-78+9-8 core_weightsntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 3 2 2110 +139+40+31-7-7-7-7-7-5-6-6+0-3-7-3-7-7-7+13+15+8+26+73-8+35-3-4+43+4+7-3+26 core_weightsntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 4 2 2099 +151+32-3-2-3-3-2-3-3+0-4-3-2-4+6+6+5+0+1+1+1+1+2+0+3+0+2+0+1+1+3+1 core_weightsntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 5 2 2111 +120+34+36-16+16-33-6-43+12-55-27+47-53+33-30-5-6-14-6-75-5+46-23+33-32+19+65-27+8+3+41+13 core_weightsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 selected 2 117 +233+65+14+16+15+1+0+1+0+1+0+1+1+0-1+1+0-1+1-1+1-1+0-1+1-1+0-1-1+1+1-1 core_weightsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 0 2 117 +92+47+11-1+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 1 2 135 +143+78+51-3+2+2-2-1+6-1-2-1+6-1-2-1+6-1-2-1+6-1-2-1+6-1-2-1+6-1-2-1 core_weightsntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 2 2 2630 +193+36+0-1-2+0+2+0-2-2+0+0+0-1+0-2-1-1-1-2-1+0+2+0-2-2+0+0+0-1+0-2 core_weightsntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 3 2 2619 +138+107-35-13+20-21-42+19+27-25-62+11+40+8-16-6+19-20-3-56+39+3+0-26-5+34-51+27+46-51-46+37 core_weightsntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 4 2 2448 +147+14-14+12+15-41+7+23+23-38-1-8-11-16-14+15+15-41+25-44+23+23-38+35-8-11-13-19+15+15-41-45 core_weightsntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 5 2 2633 +130+31-2-3+8+2-1-4-4-4-4+2-4+55+1-2+1-5+19+3+6-2+1+15-2+1+0-2+1+1-2+1 core_wforcesntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 selected 653 158 +941+194+106+15-4-4-3-3+9-3+1+2-4-3+2-4+9+2+2-3-4-4+3+2+8+2-3-4+2-3-4+2 core_wforcesntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 0 653 152 +265+137+3-3+0-2-2-1+1-2+1-2-7-3+1-2+1-2+1-2+1-2+1-2+0-1+2+0+0+0+0-1 core_wforcesntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 1 653 155 +61+36-1-2+3-3+4-3+4-3+3-3-3-3+5-3+3-3+4-3+4-3+3-3+4-3+4-3+3-3+4-3 core_wforcesntrup653 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 2 653 152 +341+39-1-1-2-1+0-1-2+0+0+0-3-1-1+0-1+0+0+0-1+0+0+0+0-1+0+1+0+0+0+0 core_wforcesntrup653 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 3 653 141 +86+19+17-3+4-4+1-1+6-2+4-3-2-2+3-4+3-3+3-3+3-3-1-4-1-1+3-4+5-3+4-2 core_wforcesntrup653 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 4 653 155 +586+52+1-1+0-1-1-1-1+0-1-1-4-1+2-1-1-1-1+1-1+0+1+1-1+0+1+1-1+0+1+1 core_wforcesntrup653 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 5 653 183 +281+73+72+0+0+0+0+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 selected 761 157 +511+174+52+1+5+6+6+6-1-1-1-1-1+0+0+0+0+0+0+0-1+0+0+0+0-1-1-1-1-1-1-1 core_wforcesntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 0 761 162 +80+13+2+0+0+0+1+0+0+0+0+0+2-5+0+0+2+0+0+0+0+0+2+0+0+0+2+0+2+0+2+0 core_wforcesntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 1 761 159 +373+193+154+26+1-1+7+1+16+1+0-1+0+2-1+0+13+0+0+0+0+0+1+0+13+1+0+0+0+0+0+0 core_wforcesntrup761 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 2 761 167 +299+125+70-1+1+1+2+0-2+0-1-2-2-4+0+0+0+0+0+0-2-1-2+1-1-2-1-2+1-1-2+1 core_wforcesntrup761 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 3 761 158 +565+61-1+0-1+0+0+0+1+7-1+0+1+1-1+2-1+1-1+7-1+7-1+0+0+0-1+1-1+0+0+0 core_wforcesntrup761 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 4 761 181 +368+94+13+12+7+7+3+2-2-2-1+1-1-5-1-2+0-3+0-4-2-2-4-4+4+5-1-3+0-2-1-1 core_wforcesntrup761 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 5 761 190 +238+99+0-4+1+1+1+1+0+0+0+0+0-2+0+0+0+0+0+0+0+0+0+0+0+6+0+0+0+0+0+0 core_wforcesntrup857 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 selected 857 141 +522+38+0+0+0-1-2-2-2+1-2-1-2+0-2+2+0+1+1+1-2+2+0+0+0+1+2+1+0+1+2+1 core_wforcesntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 0 857 162 +361+193+74-1-1-1-1+1-1-1-1-1-1-1-1-1-1-1-1+1+1+1+1+1+1-1-2-1+1+1+1+1 core_wforcesntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 1 857 163 +347+164+22+65-1+2-2-2+0+0-1-1+0-1+2-2-2+1-2-1+2-2+0+0-2+0+1-1+0+1-2+0 core_wforcesntrup857 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 2 857 146 +329+98+8+3+0-1+0-2+3-1-2+2+0-1+2-1+2-1-2+0-1-1-2+1+0-1+3+0-2-1+0-2 core_wforcesntrup857 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 3 857 140 +52+26+4+3+1+0+0+0+0+0+1+0-2-1+0-2+0-2+1+1-1+2+0-2-1-2+1+1-1+2+2-1 core_wforcesntrup857 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 4 857 184 +439+84+14+7+2+2+0+1+0+1+0+1+0+1+0+1+0+1-1+3+0+0+0-2-3-4-4-3-4-4-3-4 core_wforcesntrup857 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 5 857 193 +308+185+0-1+0+0+0-1+0+0+0+0+0+0+6+1+4+4+1+0+0+0+0+4+0+0+0+0+0+0+0+1 core_wforcesntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 selected 953 168 +536+182+36+68+8+1+0+0+0+1+0+0+0+0+0+1+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+0 core_wforcesntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 0 953 168 +85+50+0+0-1-1+1+0-1+1+1+1+1-1-1+1-1+1-1+1-1+1-1+1-1+1-1+1+0-1+1-1 core_wforcesntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 1 953 172 +416+187+120+20+25-1+0-1+0-1-1+0+0-1+0+1-1-1+0-1-1+0-1-1+1+0+1+1+0+1+0+0 core_wforcesntrup953 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 2 953 163 +593+66-1+4+0+0+1+0+0+0+0+0-1+2-3+1+5-1+2-3-3-3-2+3+0+0+1+0+1+0+1+0 core_wforcesntrup953 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 3 953 162 +313+77+31+0-1-3+0-3+1+0+1-1+1+0+0+0-1-3-1-3+2+2-1+0-2-1+2+1+1+0-1+1 core_wforcesntrup953 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 4 953 191 +398+54+20+13+6+1-7+1-7+1+1+0-1+0+3-1-1+0+3+0-1+0-1+0-1+0-1+0-1+0+3+0 core_wforcesntrup953 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 5 953 210 +282+87+0+0+0+0+0+0+2+0-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 selected 1013 145 +709+65+34-1+1-1-1+1+0+2+0+1+0+1+0+1+0+0+0+1+0+2+0+2+2+0+0+0+0+0+0+0 core_wforcesntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 0 1013 164 +280+89+70+2+1+1+0+0+0+0+2-1+0+2+0-1+0+1+0+0+2-1+1-1+0-1+0-1+0-1+0-1 core_wforcesntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 1 1013 175 +315+79+36+30-3+1-1-1-1-1+0+0+0+0+1-2+1+1+0-2+1-2+1+1+0-2+1-1+1+0-1-1 core_wforcesntrup1013 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 2 1013 148 +368+33+23+0+0-2+2+0-1+1+1-2-2-2-1-2-2-3-3+0-3+0+1+0+0+0+0-1-1-1+0+0 core_wforcesntrup1013 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 3 1013 146 +144+62+0-2+1+0+1+2-1+2-1+2+2+2-1-1+0+2+2-1-1+2-1-1+2+1-1+0-1-1+0+2 core_wforcesntrup1013 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 4 1013 186 +731+83+21-11-1-4-5+1+1+1-3+1+1+1+1+1+1+1-1-4-11+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 5 1013 228 +278+72+43+22+5+3+2+3+2+3+2+3+2+3+2+3+0-4+1-8-6-6-7-7-6-5-2-4-6-4-7-6 core_wforcesntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 selected 1277 208 +534+224+45+2-3+0+0+0+0+0+0+1+0+0-1+0+0+4+0+13-1-1+0+0+0-1+0+0-1+0+0+0 core_wforcesntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 0 1277 206 +162+64-1+9-1-1-1-1-1-1+0+0+1+1-2+1+0+1-2-2+0-1+1+0+1+1-1+2-1+0-1-2 core_wforcesntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 1 1277 208 +389+210+60+0+1+0+2-1-2+1+1+0-1-1-2+5+0+0+2-2-1+1-1+1+0-1+0-1-1+0-1-1 core_wforcesntrup1277 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 2 1277 202 +380+128+2+2+1+2+1+2+1+1+1+1+3+1+1-9+1-1-1-1-1-2-1+0+2-2-1-1-1-1+0-2 core_wforcesntrup1277 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 3 1277 206 +334+56+40+4-2-5-7-8-13-12-9-9+2+0+2+1+0+2+1+0+2+1+0-1+0-2+1-1-3-1-1-3 core_wforcesntrup1277 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 4 1277 233 +269+126+29-1+0+15+9+1+3-2-1-2-2+15+2-1-2-1+0-1+0+0-2+0-2-1-1+0-1-2+1+2 core_wforcesntrup1277 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 5 1277 255 +604+185+67-2-3+7+3+2+2+9+6+2+1-4-3+13-1+2+2+0+14-3-2-3-3-3-2-5-3-2-2-3 kem_sntrup653 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair selected 994 692941 +18035+3691+635+618+1677+1162+412-748-320+850+514-861+141+860-98-364+648-892-725-958+26-387-1943-515-3902+1165-3782-535-876+859-1683+703 kem_sntrup653_enc selected 897 39847 +4165+668+169+136+79+6-28-44+4-155-95+32-10-43-30-161-38-180+40-11+130+33-35-60-37-29-10+118+106+105-35+31 kem_sntrup653_dec selected 32 59024 +5458+1454+320+274+147-88-55+35+1+136-23-28-2+37+103-28+75-42+123-18-77-21-47-43-81+13-88+62-18-68-166+1 kem_sntrup653 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 0 994 691545 -63+1047-66-72-12801+397+197+164-225+381-1961-53+288+89+407+221+173-254+889+89316-80+624-4020+64-14619+71-164-13115-363-101-160-1605 kem_sntrup653_enc 0 897 39292 +3398+744+86+0+24-34-66-13+40-163-81-27+104-85+2+15+68+43+27+148+697+12-2-51-115-23+22-46-12-141-22-17 kem_sntrup653_dec 0 32 58981 +3355+689+144+211-75-64-51-12-91-88-37-19-99+49-5+17-83-26+31+4-83+17+4+58-213+123+113+5+59-35-8+64 kem_sntrup653 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 1 994 690314 +2995-14139-11324+642+450+120+954+85-372-591-941+482-21348+947+505+21+89146+281+650+820-2690-1075+965+1067+366+141+360-12606-9948-1146-891-660 kem_sntrup653_enc 1 897 39066 +1921+449+140+79-29-50+52-105-160+12+38+10-32-74+24-18+5+37-118-57+31+44+2-44+86+26-39-35-72+64-20-14 kem_sntrup653_dec 1 32 59011 +2246+709+252+4+75+31-75-9-66-97-31-7+36-88+47-49+14-116-26-41-3+3-85+93-68+65+77-107+52+54-46+18 kem_sntrup653 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 2 994 692760 +1326-14189+114-12206+941-5245-12229+557-3709-3561-480+387+315+508-227+1523-197+207+215+51+39-520+567+501+76522-14255+314-281-47-466+151-94 kem_sntrup653_enc 2 897 39806 +1649+337+85+28-10-34-35+52-31-98+51+78+34-15+77-10+20-20+25-1-59+44+121-54-79+60-68-93-68-3-38-51 kem_sntrup653_dec 2 32 59031 +2059+282+78+129-69+99-120-77+11+22+63-22+35-53+107-74+1609+338+7-76-24-77+75-151-46+30+29-79+16-99-8-95 kem_sntrup653 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 3 994 692065 -10719-536+253+197+189-440+149-195+272+295+94-12487-705+353+89688-986-1193+182+217+34+618+463-11944+121-11466-13-91-1358+156-206+869+134 kem_sntrup653_enc 3 897 39467 +1867+591+337+108+97+41-27-92-106+98-35-61-20+70-95-51+6+30-103+46-13-15-47+67+105+54+17-130-88+4-136-97 kem_sntrup653_dec 3 32 59026 +2254+544+102-20-25+129-30+18+116+90+7-62-54-44-39+28-65-9-79-62+103-109+9+34+37+86-39-2-74-57+12+58 kem_sntrup761 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair selected 1158 831462 +9989+7333+2839+1176+374+24+1385+522+61-224-73-293+30-221-17-35-43-141-150+774+353-168-355-58+238+388-298-353-620-332-448-173 kem_sntrup761_enc selected 1039 41784 +5255+1211+185+172-68+69+42+60+97-1-102+7-102+134-5-59-119-25-94+98-38+90-38-28-44-78-102-42+60-44-11+41 kem_sntrup761_dec selected 32 61793 +5744+970+347+156+90-143+245-71-35-118-41-81+52-53+26+9-35+100+74-58-52-65-59+48+87+55-245+30+100-104-50-58 kem_sntrup761 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 0 1158 831249 +3690+1468+128-97-99+56-254-191+1544+603+84+130+178+95+214-135-174-339-150+10-73+1148+564+25-341-144-284-74-498-87+165+23 kem_sntrup761_enc 0 1039 42685 +2498+327+36+25+79+108-1+73-85+71-21-79+11+93-125-91-147-46-68-62-45-84-76+18+1324+147+54-13-45-42+0+65 kem_sntrup761_dec 0 32 61602 +3788+395+24+56+1+17-73+77-34+109+22+12+29+33+115+117-66+47-119+48+57-7-74-84-142-41-132-3-79-17-64-143 kem_sntrup761 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 1 1158 831242 +2072+668-36-100+74-165+36-109-168-221+1344+412-82-81-119+240+0-363-395-172+153+170+111+530+438-247-17+215-30-111+111-96 kem_sntrup761_enc 1 1039 41829 +2030+308+27+32+76+100+38-5+13+45+25-22+62-85-88-62-21-59-42-9-73-8+68-53+130-39-74+20+34-30-12-51 kem_sntrup761_dec 1 32 61802 +1769+310+181-96-89+105-143+135-240+52+65-45+83-170+200-128+271+789+833-127-79-34+3-10-78-28-79+44-123+33+52-145 kem_sntrup761 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 2 1158 832592 +4268+1076+408-70+95-53-118-53-78-58-71-364+1046+147-64+31+110+69-68+75-61+145-85-30-91+1235+115-301+126+31-155-182 kem_sntrup761_enc 2 1039 42699 +2840+695+329+108+85+134+9-14-21+10-24-48-63-12-129+21-87+9+51-42-70-22+45-29-94-66+65-68+87+61-29-7 kem_sntrup761_dec 2 32 61523 +2184+365+204+94-14+49-85-29-16+5-27+63+112-38+98-94-101+9+36+31+13-20-79+66-111-8-70-133+40-46+14-76 kem_sntrup761 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 3 1158 832043 +4277+1302+133+79+60-101-31-63+118+4-227-145+156-278+1069+161-74+96-121+81-194+90-154+122-482-118-187+1353+584-23-122-349 kem_sntrup761_enc 3 1039 42672 +2699+695+344+194+20+96+5-48-98-48+116+48+24+126+57-153-170-152-88-32+41-35-48+72-102-44+90-167-47-18+43-45 kem_sntrup761_dec 3 32 61755 +2542+515+237+82+177+20-48+8-23-69+9+166-173-17-63-66+38-237+301-176-103-37+233-181+9+40+30+28-60+31+37-109 kem_sntrup857 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair selected 1322 1128575 +2981+1613-903-1669-2042+1555+1942+4400+2807+3599+5180+3204-1568+212-1149-1867-2386+838-514-1896-256+2294+953-904-1394-2127-457+609-322-1689+364-247 kem_sntrup857_enc selected 1184 51224 +4983+903+224+176-73+5-65-150-145-55-211-11-54-90+194-31-153+132+316+447-40+470-48+95-20+138+65-39-77-54-59-17 kem_sntrup857_dec selected 32 78029 +9714+901+589+121-65-234-101-72-32+1+406+25+113-76-99+471+46-55+3-49+8-97+55-76+54-48+52+2-138+108-97+74 kem_sntrup857 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 0 1322 1127495 +2927+1197+227+67+573+1690+2791+237+1257+1508-838-1771-300-1016-373-1024-477-963-375-417+158-412-618-938+402+875-490-527+1063+1169+825-583 kem_sntrup857_enc 0 1184 51273 +2751+168+252+175+56-328-38-85+137-223+622+146-70-271-13+995+211+6-122-54+348-236+0-110-59-18+327-134-113-4-77-89 kem_sntrup857_dec 0 32 78210 +2679+143-185+95-141-127-195-331-90-122-90+49-179-254-299-417+171+143-170-233-212+20+635+1232-21+1172+457+388+276+167+2208+146 kem_sntrup857 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 1 1322 1127146 +13930+13165+14411+8076+4972+1154+469-135+734-129+581+279-865-432-540-979+1479-618+908+85-1535-700+395+1828-689-642-144-125-1124-1275-1509-1222 kem_sntrup857_enc 1 1184 50566 +5077+306+8-122+368-132-101+241+247+116-112-105+20-141+42+64-110+1-39-54-17+9+67-38+39-30+24+26-44-14+67-88 kem_sntrup857_dec 1 32 78222 +7662+956+254+199+10+50-31+319-5-43+54-4+25-156+882+269-28-153+196-165-94-175-184-60+28-52-70-95+40+50+40-119 kem_sntrup857 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 2 1322 1120769 +3271+256-304+4+1155+1590+269-832+634-97+556+1322-170+43-47-415-343+40+1131+179-502+234-232-483+283-375-1302+92+2349-255-607-303 kem_sntrup857_enc 2 1184 51301 +3735+662+230-68+127-117+19+18+91+20-137+175-83-62+68+59+7-74+34+32-8-2-61-15+9+15-70+53-61-122+6-132 kem_sntrup857_dec 2 32 78081 +3059+681+224+220-28+132-105-90-23+74-56+226-7-116-10-128-27-59-25-174-176-24+27+21+55+86+44-121+59+84-23-65 kem_sntrup857 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 3 1322 1126306 +1962+1656+574-293+363-523-440+126-159+123-1269+139+654-701+576-210-631-75-663-815-1539+849+753-13-528+481+106-250-184+411+56+300 kem_sntrup857_enc 3 1184 51033 +2375+248+175+68+54-41-64+24-46-89-66-34-57+52-51+62-69-99-105-88-12+161+83-56-26-86+40+73-24+157+64+46 kem_sntrup857_dec 3 32 78096 +2876+665+202-112+43-112+159+133-81-96-98-32+86-4-76+107+5-168+186+13-42+65+62-124-40+175+165-213-17+12-114-264 kem_sntrup953 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair selected 1505 1305503 +16339+5532+3768+2511+459+335-42-76-267+2-337+1199+139+270-423-760+22-831-482+167236+610-118-751-81-400-421-381-831+1135+57+119-96 kem_sntrup953_enc selected 1349 54602 +3134+975+478+173+62+129+29+55-94+0-57-85+26+22+19-30-92+114-121-183+0-1-207-175-61+29-62-96+114-72+37+93 kem_sntrup953_dec selected 32 82755 +7991+981+352+243+17-97-39+28+86+14+65+163-21-175-29-251+94+45-15+10+119-83+24+8+35+23-108-86-117-98-100-106 kem_sntrup953 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 0 1505 1280240 +4929+1580-272+467+479-324+326+338+74+512-90+226-384+70-546-516-170+1224-80-197-727-83-1011-1011-133-858+3148+1036+402-443+35-121 kem_sntrup953_enc 0 1349 55029 +2105+653+88+48+61+63-18+78+8+72-83+8-23-7-127-68-9-91-18-70+60-25+3-72-57-21-2+60+49-111+4-120 kem_sntrup953_dec 0 32 82650 +2432+1384+1083+405+142+167+8-24-255+163-167-58+9-64+19+67+56+15-260-26-68-13-41-25-59+115-58-164+153-115-139+7 kem_sntrup953 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 1 1505 1305109 +3425+1041-279+258+60+124+1108-248-323+171-469+67-78-197+146+1311+655-234+288+35-467-149-64-139+861+86-119-35+115-102-122-307 kem_sntrup953_enc 1 1349 54621 +2153+442+211+159+95+115-119-51+42+142-208-104+77-80+131+141-16-100-29-128+78-52-58+18-95-22-77-149-101+19+135-58 kem_sntrup953_dec 1 32 82757 +1997+615+344-47+58+153+78-155-63-63+126-129-91+210-142-110+37-55+52-89+120+7-207+131+0+142+137-122+7-257-81-168 kem_sntrup953 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 2 1505 1281240 +2332+683-32+485+545+253-457-576+278-400-865-574+1030+422-162-112-8-704-613-65+90+795+304-44-59-108+95-497+11-427+1315-35 kem_sntrup953_enc 2 1349 55208 +1503+710+35-108+61-8+99+88-17-66+75-78+59-119-11-19+85-127+110+23-88+47-84+82-40+10-20-65-107+103-67-113 kem_sntrup953_dec 2 32 82593 +2139+814+626-21-15-209-42-70-194-45-130-48+152-95-201+19-115+48+63-63-5-91+45-52+180+134+24+40+100+101+9+44 kem_sntrup953 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 3 1505 1281185 +3107+2020+822-294-258-241+42+484+194+102+862+413-860-899-426+51-255+63-327+529-529-215-156+56-684-7-619+410+1068+96+420-737 kem_sntrup953_enc 3 1349 55366 +1607+607+134-51-113+175+188-123+5+90-81+39+11-51+135+71-121-135-30-53+139-82-126+117-154+9-12-114-228+183+64-43 kem_sntrup953_dec 3 32 82911 +2345+601+283+234+17-66+36+66+91-117-5+23-4-41+77-4-190-191+54-94-69+18-100-327-40-5+161+26-244-47-21+1571 kem_sntrup1013 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair selected 1623 1425447 +17085+5873+1789+1582+734+400+307+721+116-429-423-1976-367+141+4+463-114-194+2-386+2455+236+11-372-9-848-835-808-1512-920-237+827 kem_sntrup1013_enc selected 1455 57443 +3762+856+432+102+181+107-18-205-68+29+66-52-182+10+45-38+43-39-96-38-91-13+50-52+61-64-61+105-24+9+19-37 kem_sntrup1013_dec selected 32 88127 +9175+598+486+176+1-40-228+37+60+32-81-2-59-63+111-211-78+42+4+44-193+200-38+31+4-163+78+24-136-192+97-143 kem_sntrup1013 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 0 1623 1425940 +3755+1255+1580+1182-66+179156-358-843-1081-242+235+407+398-1036-324-246-155+584+368-634+81-779-1135-59-695+1358+453+89-126+257-372-255 kem_sntrup1013_enc 0 1455 58371 +2462+696+373+190+58+31+149+76+112-122+2-120+628+305+143-35+73-79-72-33-96+3-132-105-6-142+55-72-151-132-68-43 kem_sntrup1013_dec 0 32 87996 +2492+530+44+204+224+90-10-50+122-113-164+37-99-17-108-141-34+120+27-113+72-57+298-157+107-95+60-5+208-221-67-158 kem_sntrup1013 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 1 1623 1425051 +2263+366-639-783+914-177-352+155+204-1073-1131-1624+73+302+529-269+269+257+178327+20+41-502+257-141-771-777-224-960+1233+93+696+1514 kem_sntrup1013_enc 1 1455 57359 +2315+800+165+101+184+73+21+51-122-141+64+60-9-36+127+19-174-55-163-172-124+54+7-42-158-64-64+119-28-2-56+20 kem_sntrup1013_dec 1 32 88180 +2293+248-141+158-55-131+48-199+37-55-215-144-22-1-73-26-342+1246+449+91+88+28-155-106+168-65+74-98+34+69+115+19 kem_sntrup1013 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 2 1623 1427194 +3072+369-2+1075+114-759+395+1928+404-141+145+4+164+581+756-434-300-736-596-838-101-475+260-13-1117-814-958+233-820-97+274+1881 kem_sntrup1013_enc 2 1455 58621 +2487+869+176+151+220+86+20+103+142+46-52+108-29-44-18-135-66-178-86-93+14-54-131-2-1+10-15-16+14-18-21-20 kem_sntrup1013_dec 2 32 87890 +2452+612+559+185+98-98-4+130-75-147-179+106-60-145-154-146+83-87-111-50+78-3+49-72-6-105-55+215-158+102+301+98 kem_sntrup1013 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 3 1623 1418522 +3672+1754+29-885+315-1095-45-234+455+861+179443-743-65+59+40-369-384+216-805-1004-1098-1022-95-1254+513+1205+1547+396-27+458+550-873 kem_sntrup1013_enc 3 1455 57944 +2018+705+274+930+533+12+18+70-26-119-54+28+197+2-35+58+45+12-32-89-37-9-164-102+77-48-109-32-136-19-81+107 kem_sntrup1013_dec 3 32 87826 +2073+490+495+49+7+16+60-56+115-80+42-4-105-10-140+59+29+152-70+112-110+94+21-44+2-182+90-297-100-20-220-102 kem_sntrup1277 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair selected 2067 2202685 +14543+3162+3329-145+432-1223-738+938+276853-650-1008+132+921+55-278+653-1223+820-16-1311-991-1102+682+275005-1528+418-453+271-555+603-1839-411 kem_sntrup1277_enc selected 1847 73622 +4236+446+640-7+115+350+112-109+57+836+186+145-68-35-148-104-5-142-92+1-184+39-116-273-56-8-47+112+7-33-33-33 kem_sntrup1277_dec selected 32 108376 +6946+1357+319+154-134+144-11-331-120+24+71+5-23-200+20-129-122-76+40+69-6+1-127-1+111-215-141+113+31-46+50+41 kem_sntrup1277 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 0 2067 2199130 +1631+362+401-234+429+844+274381+737-1028+679+1493-646+277-1142-755-1317-1087-274-664-808+275856-1147+374+951-888-1171-1221+274-250+105+1370+1166 kem_sntrup1277_enc 0 1847 73649 +2339+524+54+43-23+965-2-119+24+118-40+82+16-23+28-18-55+59-87-82+36-101-27-119-3-109+79+53-128+34-36-114 kem_sntrup1277_dec 0 32 108511 +2389+720+214+19-71-33-137+107+11+199+137+96-264+31+49-128+178-4-174+217-48-178-13+40-18-23-171-154+89-173-3-123 kem_sntrup1277 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 1 2067 2208688 +544+187+452-498+1043-421-576-141+1169-435+703-809+276-505+1553-636-442+653-330-966-445+777+1471-383-576-909-540+1052+1046-1084+1172+1484 kem_sntrup1277_enc 1 1847 72122 +2943+505+440+901+482+62-24+101-35-9+67+44-145+77-91+85-151-83-142-55-172+10-102+70+11+36-137+59-182-215-155+33 kem_sntrup1277_dec 1 32 108432 +3756+740+49+115+35-96-239+14+100+122-284+20+17+62-244-139-225-107+8+68+23-26-49+126-67-257-255+59+20+5-81+219 kem_sntrup1277 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 2 2067 2201610 +361+1353+817+1059-1019-251-489+275626-1177-649-263+1177+2+1430-537-239+2168+1355-550-58-781-504+940-610-84+692-826-62-373-365-124+1923 kem_sntrup1277_enc 2 1847 73550 +1759+1309+476+15+3+31+6+61-128-16+69-64-52+49-65+25-202-119+64-6-87+29-23+57+27-129+219+81-34-47-308-90 kem_sntrup1277_dec 2 32 108444 +2240+600+390+160+120+37+25-271+89-31-135-69+0+29-116+26-86-15-77-138+100+147+93-98-179-43+2+16+39-286-208+57 kem_sntrup1277 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 3 2067 2211258 +1355+1429+700+480-156-410+41+2091-39-332-433+24+81+1162+74-176+504+644-305+79-104-464+222-357-103-99-402+871-113-425+86-550 kem_sntrup1277_enc 3 1847 73930 +2117+646-101-32+247-44+24+119+66-7-75-63+150-184-15+5+57+2-38+9+67-82+113+24-91+31-10-72+51-148+7-137 kem_sntrup1277_dec 3 32 108610 +2406+497+491+148-30-276+40-94+290-243-154-14-211-279+25-185-66-69+103-140+23-103+9+152+148+69+65+124+196-40-37-196 libntruprime-20241021/benchmarks/zen2-rome00000644000000000000000000153217214705505542017141 0ustar rootrootntruprime version 20241008 ntruprime arch amd64 cpuid 68747541 444d4163 69746e65 20444d41 43595045 34373720 34362032 726f432d 72502065 7365636f 20726f73 20202020 20202020 20202020 00202020 00830f10 2b800800 7ef8320b 178bfbff 00000000 219c91a9 00400004 00000000 00830f10 40000000 75c237ff 2fd3fbff 00000007 00000000 00000000 00000000 00000000 cpucycles selected persecond 3414550000 cpucycles selected implementation amd64-pmc cpucycles selected 0 36 +43+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 0 43 +2471+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1 86 +309+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 2 86 +33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 4 86 +19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 7 86 +9-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 11 86 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 17 86 +25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 26 86 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 40 87 +8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 61 87 +25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 92 87 +8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 139 87 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 209 87 +9+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 314 87 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0 randombytes selected 472 87 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0 randombytes selected 709 87 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0 randombytes selected 1064 87 +9+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0 randombytes selected 1597 87 +9+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0 randombytes selected 2396 87 +14-1+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0+0-1+0+0+0 randombytes selected 3595 87 +10+0-1+0+0+0+0+0-1+0+0+0+0+0-1+0+0+0+0+0-1+0+0+0+0+0-1+0+0+0+0+0 randombytes selected 5393 87 +9+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0+0-1+0+0+0-1+0+0+0 randombytes selected 8090 87 +16-1+0+0-1+0+0-1+0+41+20-2-1+0+0-1+0+0-1+0+0-1+0-1+0+0-1+0+0-1+0+0 randombytes selected 12136 86 +18-2+0+1+0+1+0+1+0+1+0+1+0+1+0+0+1+0+1+0+1+0+1+0+1+0+0+1+0+1+0+1 randombytes selected 18205 93 +18+1+0+0+0+0+0+1+0+0+0+0+1+0+0+0+0+1+0+16-2+0+0+1+0+0+0+0+1+0+0+0 randombytes selected 27308 93 +17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+47-2+0+0+0+0+0 randombytes selected 40963 103 +16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+62+3+0+0+0+0+0+9+7+0+0+0+0+0+0 randombytes selected 61445 102 +40+1+1+1+1+33+4+1+1+10+1+1+1+1+1+1+1+1+1+1+41-4-6-6-6+3-6-6-6-6-6-6 verify_897 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 selected 897 104 +326+197+75+31+7+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 0 897 105 +223+202+70+22+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0-1+0+0+0+1+0+0+0 verify_897 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 1 897 103 +85+34+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 2 897 126 +974+62+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 3 897 1742 +954+32+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 4 897 207 +916+68+54+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 5 897 1774 +995+6-34+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 selected 1039 94 +645+157+38+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 0 1039 115 +1030+158+59+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 1 1039 93 +122+51+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 2 1039 158 +236+115+19+19+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 verify_1039 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 3 1039 2013 +517+21-15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 4 1039 252 +143+94+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 5 1039 2037 +516+10-32+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 selected 1184 116 +640+120+75+22+6+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 0 1184 119 +1072+71+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 1 1184 118 +100+38+30+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 2 1184 191 +1051+228+17-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 3 1184 2363 +884+31+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 4 1184 269 +512+72+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 5 1184 2359 +548+26-35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 selected 1349 106 +673+146+62+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 0 1349 135 +561+197+74+23+2-5+2+2+2-2+0+1-2-3+2-1-2-3+2-1-2-3+2-1-2-2+0+1-2-3+2-1 verify_1349 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 1 1349 108 +157+65+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 2 1349 173 +130+65+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 3 1349 2639 +519+23-28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 4 1349 298 +577+77+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 5 1349 2752 +558+12+13+1+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 selected 1455 138 +1405+158+61+23+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0 verify_1455 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 0 1455 137 +91+39+24+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0 verify_1455 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 1 1455 139 +540+170+113+68+40+21+17+25+3+2+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 2 1455 236 +571+186+20-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2+0-2+2 verify_1455 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 3 1455 2963 +436+8+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 4 1455 328 +548+61+55+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 5 1455 2964 +495+7+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 selected 1847 186 +228+64+61+2+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+4-1+0-1+1-1+0-1 verify_1847 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 0 1847 164 +93+41+24+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 1 1847 164 +1031+236+116+73+36+32+5+5+3+3+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 2 1847 290 +644+125+45-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1 verify_1847 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 3 1847 3569 +555+61+74+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 4 1847 379 +540+98+80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 5 1847 3773 +953-9+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 selected 0 41 +549+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 1 41 +28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 2 41 +0+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 4 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 7 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 11 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 17 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 26 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 40 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 61 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 92 41 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 139 665 +3578+87+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 209 659 +90+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 314 1268 +171+80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 472 1870 +148+51+17+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 709 3075 +209+59+28+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7 hashblocks_sha512 selected 1064 4908 +136+50+40-3-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 1597 7295 +180+25+56+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 2396 10949 +108-17+4+10+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21+18-21 hashblocks_sha512 selected 3595 16988 +98+12-9+12-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11 hashblocks_sha512 selected 5393 25439 +114-11+20+1-34+27+1-34+27+1-34+27+1-34+27+1-34+27+1-34+27+1-34+27+1-34+27+1-34+27+1-34 hashblocks_sha512 selected 8090 38107 +63+4+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7+23-33+65-7+6-7+6-7 hashblocks_sha512 selected 12136 56856 +55+59-51+36-36+36-36+36-36+36-36+36-36+36-36+36-36+36-36+36-36+36-36+36-48-51+36-36+36-36+36-36 hashblocks_sha512 selected 18205 85884 +23-109+2+746-186-4-62+97-34-15+97-34-15+97-34-15+97-34-15+97-34-15+97-34-15+97-34-15+97-34-15+97 hashblocks_sha512 selected 27308 128613 +63+21+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34+27-34 hashblocks_sha512 selected 40963 193154 +248+312+2434+210-36+2434+1279+36+352-95+38-95+38-95+38-95+38-95+38-95+38-95+38-95+38-95+38-95+38-95+38-95 hashblocks_sha512 selected 61445 289868 +175-96-69+6+17+6+17+6+17+61+1605+180-350-71-92+71-92+71-92+71-92+71-92+71-92+71-92+71-92+71-92+71 hashblocks_sha512 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 0 0 40 +53+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1 40 +0+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 2 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 4 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 7 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 11 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 17 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 26 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 40 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 61 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 92 40 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 139 658 +191+88-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 hashblocks_sha512 0 209 659 +66+31+9+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 hashblocks_sha512 0 314 1262 +137+77+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 472 1870 +163+95+95+43+0+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 709 3062 +263+116+116+40+35-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 hashblocks_sha512 0 1064 4897 +125+52+24-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1597 7321 +142+50+6+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8 hashblocks_sha512 0 2396 10949 +48+18+18+24-23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 3595 17020 +23-9-18+23-40-5-35-35+2789+1234+116+111+111+3278+3041+1370-50-14-22+13-35+13-35+13-35+13-35+13-35+13-35+13 hashblocks_sha512 0 5393 25430 +127-16-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5 hashblocks_sha512 0 8090 38159 +29+42+0-13+7+0-13+7+0-13+7+0-13+7+0-13+7+0-13+7+0-13+7+0-13+7+0-13+7+0-13+7 hashblocks_sha512 0 12136 56936 +83-75-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41-41+41 hashblocks_sha512 0 18205 85970 +1-49-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80-73+80 hashblocks_sha512 0 27308 128681 +349+284+148+219+165+219+971+110-20+7-20+6-20+6-20+6-20+6-20+6-20+6-20+6-20+6-20+6-20+6-20+6 hashblocks_sha512 0 40963 193367 +107+101+40-152+38-152+38-152+38-152+38-152+38-152+38-152+38-152+38-152+38-152+38-152+38+921+277+177+94+96-2+94 hashblocks_sha512 0 61445 289996 +346+96+44-74+44-74+44-74+44-74+44-74+44-74+44-74+44-74+44-74+44-74+44+1269+292-235+94-235+94-235+94-235 hashblocks_sha512 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 1 0 42 +106+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 1 42 +0+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 2 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 4 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 7 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 11 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 17 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 26 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 40 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 61 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 92 42 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 139 669 +186+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 209 657 +70+32+7+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 314 1268 +142+95+73+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 472 1870 +157+52+26+26+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 709 3084 +196+56+37+25+25+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4 hashblocks_sha512 1 1064 4878 +153+89+66+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 1597 7300 +148+128+49+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 2396 10950 +96+48+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 3595 16985 +96+55+36+8-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21-33+21 hashblocks_sha512 1 5393 25469 +98+73-46-9-10+39-9-10+39-9-10+39-9-10+39-9-10+39-9-10+39-9-10+39-9-10+39-9-10+39-9-10 hashblocks_sha512 1 8090 38168 +100+9-97-125-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 1 12136 56878 +218+0-22-98-22-98-22-98-22-98-22-98-22-98-22-98-22+1489-16+54+19+54+19+54+19+54+19+54+19+54+19+54 hashblocks_sha512 1 18205 85854 +78+250-42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 27308 128815 +126+183+50-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12+10-12 hashblocks_sha512 1 40963 193448 +204+36+36-118+36-118+36-118+57-76+84-76+84-76+84-76+95-76+84-76+84-76+84-76+95-76+84-76+84-76+84-76 hashblocks_sha512 1 61445 290045 +294-26-146+262-146-18+1323+79+57-146-18-24+79-24+79-24+16-146-18-24+79-24+79-24+16-146-18-24+79-24+79-24 hashblocks_sha512 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 2 0 63 +101+2+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 1 63 +1+32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 2 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 4 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 7 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 11 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 17 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 26 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 40 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 61 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 92 63 +1+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 139 1023 +1801+88-2+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0 hashblocks_sha512 2 209 1023 +55+7-8-2+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1+0-1+6-1 hashblocks_sha512 2 314 1977 +93+37+3+3-6-8+3+3-6-8+3+3-6-8+3+3-6-8+3+3-6-8+3+3-6-8+3+3-6-8+3+3 hashblocks_sha512 2 472 2931 +51+29+11+11+11+11-3-10+11-18-3-10+11-18-3-10+11-18-3+1241-18-3-10+11-18-3-10+11-18-3-10+11 hashblocks_sha512 2 709 4851 +105+55+18-26+25-20+13-26+25-20+13-26+25-20+13-26+25-20+13-26+25-20+13-26+25-20+13-26+25-20+13-26 hashblocks_sha512 2 1064 7709 +18+44-54+32-44+34-39+32-45+34-39+32-45+34-39+32-45+34-39+32-45+34-39+32-45+34-39+32-45+34-39+32 hashblocks_sha512 2 1597 11510 +101-48+52-58+57-60+59-58+57-60+59-58+57-60+59-58+57-60+59-58+57-60+59-58+57-60+59-58+57-60+59-58 hashblocks_sha512 2 2396 17204 -9+95-83+75-84+77-101+75-84+77-101+75-84+77-101+75-84+77-101+75-84+77-101+75-84+77-101+75-84+77-101+75 hashblocks_sha512 2 3595 26719 +196-114+147-161+130-134+146-161+130-134+146-161+130-134+146-161+130-134+146-161+130-134+146-161+130-134+146-161+130-134+146-161 hashblocks_sha512 2 5393 40041 -112+214-214+196-246+194-205+196-246+194-205+196-246+194-205+196-246+194-205+196-246+194-205+196-246+194-205+196-246+194-205+196 hashblocks_sha512 2 8090 60024 +392-292+282-378+314-312+316-378+314-312+316-378+314-312+316-378+314-312+316-378+314-312+316-378+314-312+316-378+314-312+316-378 hashblocks_sha512 2 12136 89514 -340+465-471+461-557+445-462+461-557+445-462+461-557+445-462+461-557+445-462+461-557+445-462+461-557+445-462+461-557+445-462+461 hashblocks_sha512 2 18205 135182 -513+702-735+713-825+666-692+713-825+666-692+713-825+666-692+713-825+666-692+713-825+666-692+713-825+666-692+713-825+666-692+713 hashblocks_sha512 2 27308 202866 +1012-1155+838-1407+942-1184+866-1407+942-1184+866-1407+942-1184+866-1407+942-1184+866+1125+943-1183+864-1045+956-1183+864-1045+956-1183+864-1045 hashblocks_sha512 2 40963 304580 -1533+1515-1601+1599-1392+1491-1610+1566-1384+1491-1610+1599-1392+1491-1610+1566-1924+1521-1601+2507-1892+1530-1602+1599-1934+1530-1610+1599-1918+1530-1602+1599 hashblocks_sha512 2 61445 457027 +2071-3092+2091-2622+2149-3087+2059-2622+2153+12646+2042-2622+2155-3087+1987-2622+2159-3087+1987-2622+2155-3087+1987-2622+2160-3087+1987-2622+3000-2625+2145-3119 hashblocks_sha512 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 3 0 57 +1700+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 hashblocks_sha512 3 1 57 +0+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 2 57 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 4 57 +3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 7 57 +3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 11 57 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 17 57 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 26 57 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 40 57 +2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 61 57 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 92 57 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 139 978 +2004-1-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 209 968 +105+6+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 314 1871 +124+33+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 472 2792 +122+9+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 709 4565 +143+45+59+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 1064 7316 +138+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 1597 10916 +76-22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 2396 16321 +91-19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 3595 25323 +58-40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 5393 37991 -14-98+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 8090 56846 +78-90+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 12136 84991 -155-236-240+696+58+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 18205 128694 +187+68+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 27308 192981 +128-8-22-22-22-22-22-22-22+1245-30-54+36+33-18-54+36+33-18-54+36+33-18-54+28+78-4-54+73+123+41+9 hashblocks_sha512 3 40963 290600 +35+41+71+143-28-22+101+11+63+98+110+75-227+590-77-89+33-231+340-289+4-154-159-177-171+245+48-289-109-121+61+175 hashblocks_sha512 3 61445 434707 +925+686+825+984+712+902+1299-112+123+2-46-46+99-253+39-142-34+132-108+18+5-278-46-137+29-29+686-303-260-170-548-27 hashblocks_sha512 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 4 0 68 +165+130+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 hashblocks_sha512 4 1 68 +37+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 2 68 +5+15+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 4 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 7 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 11 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 17 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 26 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 40 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 61 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 92 68 +5+14+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 139 1069 +2806+142+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 209 1069 +128+6-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 314 2054 +205+78+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 472 3039 +124+61+25+25+25+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 709 5026 +255+54+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 1064 7989 +125+40-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 1597 11937 +111+40-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 2396 17849 +125+40-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 3595 27707 +113+40-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 5393 41505 +125+40-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 8090 62355 -31-107-150-147-147-147-147-147-147-147-147-147-147-147-147-147-147-147-147+793+294+291+291+291+291+291+291+291+291+291+291+291 hashblocks_sha512 4 12136 93426 +75+10-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 18205 141084 +120+43-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+6+0+0+0+0+0+0+0 hashblocks_sha512 4 27308 206570 +271+16-2+1+1+1+1+1+0+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 40963 312748 -976+41+0+4+2-353+33+0-2-2-2-2-2-4-2-2+4+4+4+4+4+2+4+4-2-2-2-2-2-4-2-2 hashblocks_sha512 4 61445 465377 +722+37-8-4-4-3-4-3-2+1-1-3-2-1-2+0+5+8-863+56+0+0-2-3+4+7+9+7+5+1+6+3 hashblocks_sha512 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 5 0 58 +1503+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 1 58 +27+0+5+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 2 58 +5+0+5+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 4 58 +5+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 7 58 +0+0+5+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 11 58 +0+0+5+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 17 58 +5+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 26 58 +5+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 40 58 +5+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 61 58 +5+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 92 58 +5+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 139 1005 +3729+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 209 1005 +218-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 314 1957 +244+43+43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 472 2905 +247+48+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 709 4794 +259+77+77+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 1064 7647 +343+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 1597 11434 +248+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 2396 17130 +225+7+0+0+0+0+0+0+0+0+0+0+0+0+0+729-20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 3595 26595 +239+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 5393 39832 +235+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 8090 59702 +267+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 12136 89003 +324+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 18205 134388 +351-7-14-14-14-14-14+818-43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 27308 201532 +211+105-65-65-65-65-65-65-87-65-65-65-65-65-65-65+111+111+111+111+111+111+111+111+14+14+734+267-113-113-144+134 hashblocks_sha512 5 40963 302775 +392-78+111+111-132-132-132-39+141-42-42+13-42-42-66+13-30+40+40+40-30+40+40+40+727+1-47+53+259+65-47-51 hashblocks_sha512 5 61445 454110 +698+217-74-68-68-68-68-68+144-53-53-53+814-104+5+61-65-194-90+68-65+212-65+68+113-92+55+61+113+225+55+806 hash_sha512 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 selected 0 708 +1182+26+29-6+0+0+0+0+1-1+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 1 708 +146+22+35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 2 712 +99+33+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 4 713 +144+80+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 7 701 +144+64+27+12+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 11 715 +146+41+76+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 17 726 +121+86+66+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 26 736 +131+93+110+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 40 742 +157+99+110+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 61 791 +175+92+106+6+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 92 860 +147+54+16-14-9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 139 1371 +234+95+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 209 1433 +222+113+27+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 314 2040 +179+107+80+5+5+5+4+0+5+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 472 2651 +356+223+107+45+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 709 3887 +212+142+35+4-3+4+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7+3-7 hash_sha512 selected 1064 5620 +316+168+78+3-1+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4 hash_sha512 selected 1597 8071 +380+203+145+56-11+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15-27+15 hash_sha512 selected 2396 11737 +328+123+165+132+1+46+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 3595 17746 +178+36+11+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 5393 26240 +176-18-42+72+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 8090 39029 +28-107-71-71-75+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 12136 57765 +221+60+105-8+25+29-33-11+29-33-11+29-33-11+29-33-11+29-33-11+29-33-11+29-33-11+29-33-11+29-33-11 hash_sha512 selected 18205 86764 +115-44-107-161-161-161-161+710-166+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 27308 129547 +344+219-32-7+32-2+3-1-2+3-1-2+3+4-2+3-1-2+3-1-2+3-1-2+3+4-2+3-1-2+3-1 hash_sha512 selected 40963 194213 +128+200+169+34+37+37+37+37+37+970+29-198+27-10-12-12-12-12-12-6-12-12-12-12-12-12-12-6-12-12-12-12 hash_sha512 selected 61445 290875 +127-93-149-144-149-144-149-144-149-144-149-144-149+1501-88+42-70-99+95+98+90+98+90+98+90+98+90+98+90+98+90+98 hash_sha512 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 0 0 737 +117+48-2-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5 hash_sha512 0 1 722 +94+48+51+51+14-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 hash_sha512 0 2 722 +95+88+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 4 720 +111+66+16+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 7 710 +119+95+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 11 712 +149+76+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 17 729 +112+91+52+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 26 725 +134+101+113+51+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 40 758 +112+87+90-9+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 hash_sha512 0 61 793 +175+81+56+11+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 hash_sha512 0 92 858 +127+32+12+10-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3 hash_sha512 0 139 1351 +216+137+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 209 1409 +209+173+69+56+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 314 2054 +196+90+37-30-29-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 472 2643 +285+175+56-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 709 3864 +177+98+65+0+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 1064 5613 +284+169+43+11-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10-17+10 hash_sha512 0 1597 8033 +353+232+213+85+9-8-18+9-18+9-18+9-18+9-18+9-18+9-18+9-18+9-18+9-18+9-18+9-18+9-18+9 hash_sha512 0 2396 11742 +301+122+160+118+90-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hash_sha512 0 3595 17723 +164+81+14+11+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 5393 26206 +159+30+817+77-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 8090 38885 +91+54+21+7-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 12136 57717 +254+7+112+23+74+18-9-17+18-9-17+18-9-17+18-9-17+18-9-17+18-9-17+18-9-17+18-9-17+18-9-17 hash_sha512 0 18205 86601 +303+115+61-20-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 27308 129447 +394+229+71+89+123+3+3+3+3+3+3+1036+385+24+90-4-7-7-7-4-7-7-7-4-7-7-7-4-7-7-7-4 hash_sha512 0 40963 194109 +207+63+153+13+12-1-6-1+23-1-6-1-6-1-6-1+16-1-6-1-6-1-6-1+23-1-6-1-6+708+84-17 hash_sha512 0 61445 290741 +332+68+1-153-171-72-72-62-29+11+11+21+11+11+11+21-29+11+11+21+11+11+11+21-29+11+1084-9-84-100-13-100 hash_sha512 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 1 0 784 +416+20+18-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 1 790 +130-6-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 2 795 +27-3-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 4 793 +40+1-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 7 793 +1+1-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 11 792 +35+0-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 17 789 +64+1-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 26 789 +21-7-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 40 791 +39-2-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 61 765 +58-19-17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 92 759 +158+30+22+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 139 1375 +180+112+82+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 209 1368 +136+64+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 314 1993 +212+85+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 472 2592 +172+96+85+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 709 3817 +191+122+94+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 1064 5623 +189+92+57+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 1597 8074 +169+118+46-40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 2396 11679 +214+158+63+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 3595 17783 +171+53+53+61+31-29-17+31-29-17+31-29-17+31-29-17+31-29-17+31-29-17+31-29-17+31-29-17+31-29-17+31 hash_sha512 1 5393 26119 +219+123+80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 8090 38864 +238+80+80+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 12136 57558 +301+133+86-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2+764+80-51 hash_sha512 1 18205 86687 +36-53+27+25+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0 hash_sha512 1 27308 129606 +97-33-10-59+2-1+2-1+2-1+2-1+2-1+2-1+3-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1 hash_sha512 1 40963 194165 +245+265+45+25+1029-1+110-35+222+2-8+2-3+2-8+2-8+2-8+2-3+2-8+2-8+2-8+2-3+2-8+2 hash_sha512 1 61445 290844 +13+107+232+19-214+19-214+19-214+953-37+173-233-231-140+19+191-140+19+191-140+19+191-140+19+191-140+19+191-140+19+191 hash_sha512 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 2 0 714 +454+32-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 1 708 +108+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 2 729 +81+58+59+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 4 722 +140+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 7 714 +168+78+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 11 720 +161+81+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 17 723 +147+89+72+43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 26 727 +164+117+43+50+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 40 712 +191+78+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 61 753 +167+108+43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 92 743 +238+89+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 139 1382 +220+131+88+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 209 1389 +169+68-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 314 1993 +260+153+36-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 hash_sha512 2 472 2608 +281+150+54+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 709 3779 +289+73+53+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 1064 5600 +226+93+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 1597 8049 +249+190+180+47+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6 hash_sha512 2 2396 11670 +338+64+21-10-10-10-10-10-10-10-10-10-10-10-10+686+123+7-2+12-2+12-2+12-2+12-2+12-2+12-2+12 hash_sha512 2 3595 17754 +81+80-3+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 5393 26256 +162+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 8090 38959 +96+65+61+49-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 12136 57694 +224+27+8+33+22-34-10+22-34-10+22-34-10+22-34-10+22-34-10+22-34-10+22-34-9+22-34-10+22-34-10+22 hash_sha512 2 18205 86702 +87+2+3+15-3-3+9-3-3+9-3-3+9-3-3+9-3-3+9-3-3+9-3-3+10-3-3+9-3-3+9-3 hash_sha512 2 27308 129660 +66-31-73+531+1-98+105-113+105-98+105-113+105-98+105-113+105-98+105-113+105-98+105-113+105-98+105-113+105-98+105-113 hash_sha512 2 40963 194118 +354+31+2+0-10-10-10-16+158-107+142-49+141-49+142-55+142-136-136-137-137-136-136-142+723+154-190+158-110+148-34+128 hash_sha512 2 61445 291011 +189+32+0+0+0-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1083-328+233-327-185-185-185-185-185 hash_sha512 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 3 0 752 +857+41+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 1 745 +207+55+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 2 744 +97+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 4 744 +98+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 7 742 +58+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 11 766 +68+43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 17 783 +32+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 26 766 +53+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 40 762 +47+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 61 774 +50+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 92 759 +62+32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 139 1403 +112+26+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 209 1394 +77+40+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 314 2016 +140+54+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 472 2652 +119+40+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 709 3836 +142+92+73+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 1064 5607 +175+133+90+31+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 1597 8027 +228+129+123+54+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 2396 11661 +167+101+101+67+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 3595 17768 +159+53+20-4-27-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5 hash_sha512 3 5393 26191 +191+59-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2+0+2-2+2-2+2-2+2 hash_sha512 3 8090 38916 +11-23+6-31+6+6-31+6+6-31+6+6-31+6+6-31+6+6-31+6+6-31+6+6-30+6+6-31+6+6-31+6 hash_sha512 3 12136 57640 +64-30+9-35+9-35+9-35+9-35+9-35+954+90+42-16-4+42-16-5+42-16-5+42-16-5+42-16-5+42-16-5 hash_sha512 3 18205 86732 +82-20-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-4+5-5+5-5+5-5+5 hash_sha512 3 27308 129519 +136+11+145-133+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hash_sha512 3 40963 194110 +354-72-129+141-154+150-154+141-154+141-154+141-154+150-154+141-154+209-154+209-154+218-154+209-154+141-154+141-154+150-154+141 hash_sha512 3 61445 290819 +366-268+62-283+58-296+1286-31+168+192-50-50-50-50-50-50+90+192+90+192+90+192+90+192-50-50-50-50-50-50-50-50 decode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 selected 653 95 +1613+15-5+1+1+2-1-1+1+2-1-1+1+2-1-1+1+2-1-1+1+2-1-1+1+5+1+2+0+2-1-1 decode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 0 653 89 +519+86+15+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 1 653 86 +40+3+4+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0+2+0+0+0 decode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 2 653 828 +486+33+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 3 653 160 +1871-2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 4 653 832 +184+20+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 5 653 179 +4739+17+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 selected 1306 898 +5090+192+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+10 decode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 0 1306 887 +91+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 1 1306 931 +3692+107+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 2 1306 7941 +3155+141-9-92-92-92+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 3 1306 8739 +1974+66+44-12+0+0+0+0+0+0+0+840+0+0+0+0+0+0+0+0+0+0+0-77+0+0+0+0+0+0+0+0 decode_653x1541 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 4 1306 7933 +2137+200-88+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 5 1306 8623 +2981+92+30+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 selected 1306 990 +2751+184+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 0 1306 985 +88+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 1 1306 1111 +4354+128+32+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2 decode_653x4621 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 2 1306 9615 +461+255+102+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 3 1306 11853 +2903+55-41-27-48+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 4 1306 9642 +1865+214+116+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 5 1306 11724 +2614+86+18-56+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 selected 1306 83 +1196+190+68+31+24+24+4+32+0+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 0 1306 160 +501+93+87+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 1 1306 83 +126+32+1+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 2 1306 694 +533+9+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 3 1306 120 +613+132+104+58+43+43+3+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 selected 2612 237 +506+103+64+3+3+1+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 0 2612 991 +543+65+22+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 1 2612 249 +62+9+9+4+2+2+2+2+2+2+2+1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 decode_653xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 2 2612 1028 -204+68+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 3 2612 231 +304+17+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 selected 761 87 +2540+2+3-1+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0 decode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 0 761 90 +512+65+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 1 761 87 +67+2+2-1-1+0+0+0+0-1+0+1-2+0+0+1-2+0+1-1-1+0+0+0+0-1+0+1-2+0+0+1 decode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 2 761 958 +588+21+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 3 761 245 +2522-2-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 4 761 956 +513+23+15+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 5 761 241 +1409+119+15+0-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3 decode_761x1531 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 selected 1522 975 +599+223+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 0 1522 955 +101+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 1 1522 965 +4080+109+9+3-2+0-4+3-2+0-4+3-2+0-4+3-2+0-4+3-2+0-4+3-2+0-4+3-2+0-4+3 decode_761x1531 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 2 1522 9200 +611+222+54+56+56+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1 decode_761x1531 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 3 1522 10908 +3923-26+26+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 4 1522 9297 +1115+188+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 5 1522 10361 +3667+105+66+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 selected 1522 1089 +1990+201+29+25-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6-9+6 decode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 0 1522 1088 +96+28+21-5-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 1 1522 1215 +1764+106+6-3-1+5-3-1+5-3-1+5-3-1+5-3-1+5-3-1+5-3-1+5-3-1+5-3-1+5-3-1 decode_761x4591 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 2 1522 11185 +1531+223-25-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 3 1522 12775 +516+90-97+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 4 1522 11185 +530+258-48-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 5 1522 12586 +1024+111-47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 selected 1522 87 +268+133+94+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 0 1522 180 +154+110+53+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 1 1522 87 +110+42+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 2 1522 802 +147+48+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 3 1522 159 +133+21+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 selected 3044 159 +601+23+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 0 3044 1178 +506+28+12+1+0+2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 decode_761xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 1 3044 158 +79+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 2 3044 818 +1228+79+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 3 3044 254 +500+20+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 selected 857 100 +1387-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 0 857 101 +506+102+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 1 857 99 +48+1+38-12+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0 decode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 2 857 1073 +189+19+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 3 857 221 +3230+2+2+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0 decode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 4 857 1071 +580+24+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 5 857 234 +2226+120+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 selected 1714 1080 +2443+284+12-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8 decode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 0 1714 1076 +105+28-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4 decode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 1 1714 1143 +2414+166+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 2 1714 10473 +537+219+71+0+0+0+0+0+0+0+0+0+0+0+0+0+742-43+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 3 1714 11116 +2486+144+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 4 1714 10473 +572+174+79+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 5 1714 10887 +967+162+90+80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 selected 1714 1156 +832+248+28+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 0 1714 1150 +165+32+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 1 1714 1204 +2932+116+59+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3 decode_857x5167 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 2 1714 12764 +485+273-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 3 1714 14297 +2366+126+123+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 4 1714 12743 +578+269+70+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 5 1714 14090 +1233+208+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 selected 1714 93 +239+147+96+48+40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 0 1714 147 +179+153+70+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 1 1714 93 +130+63+57+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 2 1714 909 +88+62+0+0+1+0+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 3 1714 170 +140+9+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 selected 3428 171 +192+23+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 0 3428 1321 +141+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 1 3428 170 +74+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 2 3428 1334 -323+77+4+0+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 3 3428 278 +128+18+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 selected 953 113 +2726+6+1-1-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0 decode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 0 953 113 +136+119+2-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1 decode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 1 953 112 +90+1+0-2+2+1+0+0+0-2+2+1+0+0+0-2+2+1+0+0+0-2+2+1+0+0+0-2+2+1+0+0 decode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 2 953 1189 +115+43+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 3 953 300 +2387-5-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 4 953 1189 +137+46+11+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 5 953 276 +268+108+19+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 selected 1906 1250 +4545+301+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 0 1906 1255 +122+8+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3 decode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 1 1906 1297 +3761+139+25+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 decode_953x2115 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 2 1906 12957 +608+288+95+53+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 3 1906 13634 +2342+98+35+86+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 4 1906 13022 +387+188+18-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 5 1906 13600 +2405+144+43+52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 selected 1906 1273 +1622+260+30-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0+2-1+0 decode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 0 1906 1280 +81+2-2+0+7-1-2+0+7-1-2+0+7-1-2+0+7-1-2+0+7-1-2+0+7-1-2+0+7-1-2+0 decode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 1 1906 1454 +5258+107+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 2 1906 13826 +515+250-28-4-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 3 1906 16004 +2546+82-72-67+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 4 1906 13917 +2987+249-70+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 5 1906 15857 +1012+87+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 selected 1906 99 +217+137+90+40+40+4+3+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 0 1906 160 +178+101+55+17+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 1 1906 99 +115+57+54+40+40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 2 1906 994 +78+46+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 3 1906 182 +134+5+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 selected 3812 183 +200+8+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 0 3812 1465 +140+7+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 1 3812 182 +59+6+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 2 3812 1006 +92+108+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 3 3812 302 +141+14+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 selected 1013 113 +1523+2+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1 decode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 0 1013 113 +132+140+1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0-1+1-1+0 decode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 1 1013 112 +31+0-2+2+1+0+0+0-2+2+1+0+0+0-2+2+1+0+0+0-2+2+1+0+0+0-2+2+1+0+0+0 decode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 2 1013 1261 +134-13+30+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 3 1013 301 +1307-1-2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 4 1013 1261 +1414+20+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 5 1013 295 +4676+114+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 selected 2026 1413 +1974+323+33-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3+9+3-4+3-4+3-4+3-4+3-4 decode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 0 2026 1401 +132+9-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 1 2026 1676 +2017+131+24-11+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3 decode_1013x2393 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 2 2026 14334 +666+283+176-11+1+1+1+1+1-11-11-11+1+1+1+1+1-11-11-11+1+1+1+1+1-11-11-11+1+1+1+1 decode_1013x2393 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 3 2026 17456 +1432-21+16-42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 4 2026 14334 +607+252+95+106+1+1+1-11-11-11+1+1+1+1+1-11-11-11+1+1+1+1+1-11-11-11+1+1+1+1+1-11 decode_1013x2393 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 5 2026 17416 +1446+162+0+121+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 selected 2026 1345 +1888+245+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-21+0+0+0+0+0+0+0+0 decode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 0 2026 1341 +90+6-1+2-3-1+2-3-1+2-3-1+2-3-1+2-3-1+2-3-1+2-3-1+2-3-1+2-3-1+2-3 decode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 1 2026 1327 +3515+207+4+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_1013x7177 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 2 2026 14523 +846+243+77-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 3 2026 17327 +1264+90-67+39+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 4 2026 14500 +873+280+80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 5 2026 17111 +2611+125+159+4+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 selected 2026 165 +219+118+96+45+27+3+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 0 2026 167 +153+141+92+41+25+10+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 1 2026 165 +90+55+57+33+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 2 2026 1055 +78+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 3 2026 190 +129+18+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 selected 4052 190 +210+20+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0 decode_1013xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 0 4052 1553 +142+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 1 4052 190 +85+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 2 4052 1568 -417+113+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 3 4052 317 +146+15+9+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 selected 1277 139 +2411+2+0+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0-1+0+0 decode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 0 1277 137 +134+88+1+0+0-1+2-1+0-1+2-1+0-1+2-1+0-1+2-1+0-1+2-1+0-1+2-1+0-1+2-1 decode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 1 1277 137 +28-2+4+1-1+0+3-1+0+3-1+0+3-1+0+3-1+0+3-1+0+3-1+0+3-1+0+3-1+0+3-1 decode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 2 1277 1584 +126+2-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 3 1277 368 +2783+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 4 1277 1584 +141+29-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 5 1277 358 +173+57+61+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 selected 2554 1540 +6508+183+34+0+0+0+0+0+0+0+9-14-9-10+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0 decode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 0 2554 1519 +85+15+12+3-6+3-6+3-6+3-1+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3 decode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 1 2554 1480 +5069+126+28+22+0-1+0-1+0-1+6-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 decode_1277x2627 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 2 2554 18049 +1178+292+89-8-8-8-8-8-8-8-9-8-8+765+106+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 decode_1277x2627 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 3 2554 21614 +5306+84+5+0+0+0+0+0+0+0+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 4 2554 18091 +588+183+66+42+0+0+0+0+0+0-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 5 2554 21567 +3259+45-23-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 selected 2554 1452 +3469+171+28+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4+9+4-9+4 decode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 0 2554 1439 +66+16-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8-11+8 decode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 1 2554 1412 +2890+134-3-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4 decode_1277x7879 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 2 2554 18209 +635+175+45-41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 3 2554 20936 +9860-2-25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 4 2554 18216 +584+222+76-40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 5 2554 20595 +1712-73-28-35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 selected 2554 122 +235+108+94+39+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 0 2554 292 +62+69+54+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 1 2554 122 +108+65+53+33+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 2 2554 1322 +90+42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 3 2554 222 +128+8+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 selected 5108 224 +212+4+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0 decode_1277xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 0 5108 1948 +124+30+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 1 5108 223 +73+13+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 2 5108 1964 -524+94+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 3 5108 383 +146+15+9+4+4+4+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 selected 2 38 +87+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 0 2 38 +67+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 1 2 38 +44+0+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 2 2 38 +24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 3 2 38 +40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 selected 164 94 +1513+3+4+5+0-1+2+0+15-14+13-14+16-13+0+0-1-1-1+13-14-1-1+13-14-1-1+13-14-1-1+13 encode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 0 164 100 +149+43+0+0+0+13-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 1 164 93 +40+3+7+4+0+13-13+13-11+1+2+1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 2 164 620 +425+6+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 3 164 145 +378+3+2+3-1+0-1+0+1+3+1+3-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 encode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 4 164 620 +127+6+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 5 164 186 +1411+51+52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 selected 865 631 +3611+146+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-11+0+0+0+0+0+0+0 encode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 0 865 643 +892+213+109+7-35-8+8+18+7-35-10-4+15+0-28+35-35-10-4+15+0-28+35-35-10-4+15+0-28+35-35-10 encode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 1 865 619 +114+21-20+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 2 865 1881 +218+261-10-9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 3 865 3428 +235+142+12-19-45+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 4 865 2254 +244+172-2-1-20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 5 865 3500 +249+77-12-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round selected 865 704 +3440+69+15+9-6-8+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_653x1541round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 0 865 716 +877+119+40+5-10+15-22-6+0-16-14+19-31-8+24-42+19-31-8+24-42+19-31-8+24-42+19-31-8+24-42+19 encode_653x1541round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 1 865 714 +92-30-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 2 865 905 +1073+52+41-14-16+42-14-16+42-14-16+42-14-16+42-14-16+42-14-16+42-14-16+42-14-16+42-14-16+42-14-16 encode_653x1541round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 3 865 964 +237+61+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 4 865 1025 +183+69+54-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 5 865 1138 +156+27+54-15-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3 encode_653x4621 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 selected 994 628 +2454+165+19+0+0+0+0+0+0+0+0+0+0+0+0+0-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 0 994 575 +276+187+49+1+4-7-13+2-11-5+15+9-27+14-20-13+2-11-5+15+9-27+14-20-13+2-11-5+15+9-27+14 encode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 1 994 622 +81-10+10+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x4621 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 2 994 2038 +170+154-1-2+0+0+0+0-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x4621 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 3 994 1845 +149+77+88+9+12-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x4621 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 4 994 3008 +124+162+2+27+16+16+16+16+16+16+16+16+16+16+1004+50-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14-14 encode_653x4621 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 5 994 2017 +199+189-6+16-20+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4 encode_653xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 selected 653 155 +308+97+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 0 653 155 +96+31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 1 653 154 +170+202+101+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 2 653 450 +185+99+52+31+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 3 653 443 +129+55+32+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 4 653 627 +161+93+43+19+15-5-2+3-1-5-2+3-1-5-2+3-1-5-2+3-1-5-2+3-1-5-2+3-1-5-2+3 encode_653xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 5 653 571 +153+75+66+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 selected 1306 115 +245+102+19+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 0 1306 114 +88+21+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 1 1306 185 +136+142+20-3+0+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2 encode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 2 1306 697 +79+65+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 3 1306 227 +171+97+58+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 selected 191 95 +912+2+4+0-2-2+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15+11-15 encode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 0 191 100 +123+65+17+27-19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 1 191 92 +51+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 2 191 707 +141+31+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 3 191 208 +3236+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 4 191 707 +152+42+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 5 191 231 +300+92+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 selected 1007 685 +2609+162+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 0 1007 695 +626+228+48+25+24+8-3-14+3+1-21+8-3-14+3+1-21+8-3-14+3+1-21+8-3-14+3+1-21+8-3-14 encode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 1 1007 686 +40-6+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 2 1007 2220 +246+133+102-1-2-4+11-1-2-4+11-1-2-4+11-1-2-4+11-1-2-4+11-1-2-4+11-1-2-4+11-1 encode_761x1531 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 3 1007 3969 +386+262+151+65+53+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 4 1007 2738 +176+121-33-11-21+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2 encode_761x1531 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 5 1007 4078 +307+87+1+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round selected 1007 781 +3514+153+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 0 1007 773 +787+238-13+13+7+11-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10-16+10 encode_761x1531round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 1 1007 785 +59-16+4-13+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 encode_761x1531round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 2 1007 1011 +517+89+63-9+40-2-10-9+40-2-10-9+40-2-10-9+40-2-10-9+40-2-10-9+40-2-10-9+40-2-10-9 encode_761x1531round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 3 1007 1074 +250+72+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 4 1007 1176 +109+47+2-14+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 5 1007 1295 +112+50+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x4591 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 selected 1158 718 +3388+121+9-6+0-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5+5-5 encode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 0 1158 665 +832+293+85-17+13-12+10+19-17+0+3-5+0-11-5+4-2-11+0+12+62-2+4+0+3-5+0-11-5+4-2-11 encode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 1 1158 724 +49+7-5-1-2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 encode_761x4591 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 2 1158 2370 +164+58-5-10+2+6+17-10-9+6+17-10-9+6+17-10-9+6+17-10-9+6+17-10-9+6+17-10-9+6+17-10 encode_761x4591 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 3 1158 2169 +533+72+110-4+22-1-12-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3 encode_761x4591 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 4 1158 3490 +97+10-12+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x4591 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 5 1158 2358 +2384+194+58+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 selected 761 186 +253+173+74+26+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 0 761 186 +165+129+95+27+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 1 761 186 +98+34+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 2 761 542 +214+157+16+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5-8+5 encode_761xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 3 761 501 +1915+81+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 4 761 720 +3324+74+47+29-8-6+1+9-8-6+1+9-8-6+1+9-8-6+1+9-8-6+1+9-8-6+1+9-8-6+1+9 encode_761xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 5 761 647 +131+82+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 selected 1522 138 +230+80+90+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 0 1522 138 +127+31+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 1 1522 221 +114+91+14+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3 encode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 2 1522 802 +96+65+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 3 1522 256 +137+103+58+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 selected 215 151 +2497+0-1+0-2+1+0+0-2+1+0+0-2+1+0+0-2+1+0+0-2+1+0+0-2+1+0+0-2+1+0+0 encode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 0 215 157 +83+58-1-1+1+0+0-1+1+0+0-1+1+0+0-1+2+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1 encode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 1 215 148 +36-1+1-2-2+3+2-2-2+3+2-2-2+3+2-2-2+3+2-2-2+3+2-2-2+3+2-2-2+3+2-2 encode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 2 215 916 +108+13+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 3 215 195 +1830+6+7-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 4 215 790 +130+16+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 5 215 238 +181+84+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x1723 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 selected 1152 869 +2137+274+33+5-3+11-2-6-3+11-2-6-3+11-2-6-3+11-2-6-3+11-2-6-3+11-2-6-3+11-2-6 encode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 0 1152 818 +335+288+84+11+0-2+21-14-3+0-3+10+0-3+10+0-3+10+0-3+10+0-3+10-8+6-9-10-10-10-10-10 encode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 1 1152 861 +93+12-7-4+0-14+0+2+0-14+0+2+0-14+0+2+0-14+0+2+0-14+0+2+0-14+0+2+0-14+0+2 encode_857x1723 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 2 1152 2386 +266+197+9-7-12+4-10+12-6+4-10+12-6+4-10+12-6+4-10+12-6+4-10+12-6+4-10+12-6+4-10+12 encode_857x1723 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 3 1152 4487 +290+30-97+25+25-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x1723 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 4 1152 2835 +289+169+34-27+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14+11-14 encode_857x1723 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 5 1152 4510 +292+91+72+26+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24+14-24 encode_857x1723round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round selected 1152 911 +402+341+58-9+2+1+2-2-18+0+2-2-18+0+2-2-18+0+2-2-18+0+2-2+4-3-2+4-18+0+2-2 encode_857x1723round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 0 1152 913 +102+11+18-15-4+1+16-5-4+1+16-5-4+1+16-5-4+1+16-5-4+1+16-5-4+1+16-5-4+1+16-5 encode_857x1723round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 1 1152 966 +2133+134+41-13+12-10+6-11+12-10+6-11+12-10+6-11+12-10+6-11+12-10+6-11+12-10+6-11+12-10+6-11 encode_857x1723round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 2 1152 1263 +600+25+24+26-43+26-43+26-43+26-43+26-43+26-43+26-49+26-43+26-43+26-49+26-43+26-43+26-43+26-43+26 encode_857x1723round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 3 1152 1316 +211+83-8+20-13+0-7+20-13+0-7+20-13+0-7+20-13+0-7+20-13+0-7+20-2+0-7+20-13+0-7+20 encode_857x1723round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 4 1152 1388 +225+61+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4+12+0+0+0+0+0+0 encode_857x1723round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 5 1152 1537 +156-3+7+4-15+2-2+4-15+2-2+4-15+2-4+4-15+2-4+4-15+2-4+4+19-3-2+12-15+2-2+12 encode_857x5167 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 selected 1322 772 +2245+101-9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 0 1322 745 +803+227+103-3-9-5-1-7+19+0-1-6+4+24-3+1+5-15+5-6+4+24-3+1-10+3-8+24-3+1+5-15 encode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 1 1322 766 +43-24-5+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 encode_857x5167 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 2 1322 2676 +198+64+9-24+29-5+2-2+0-5+2-2+0-5+2-2+0-5+2-2+0-5+2-2+0-5+2-2+0-5+2-2 encode_857x5167 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 3 1322 2486 +151+66+26-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_857x5167 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 4 1322 3926 +158+62+23-16+62+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x5167 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 5 1322 2696 +166+63+3-1-9+6-1-9+6-1-9+6-1-9+6-1-9+6-1-9+6-1-9+6-1-9+6-1-9+6-1-9 encode_857xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 selected 857 191 +241+173+81+26+10+0+2+0+2+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 0 857 190 +199+138+66+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 1 857 190 +90+33+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 2 857 620 +155+136+39+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 3 857 562 +113+56+25-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 4 857 803 +150+57+62+28+0-3-6+6+0-3-6+6+0-3-6+6+0-3-6+6+0-3-6+6+0-3-6+6+0-3-6+6 encode_857xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 5 857 724 +154+76+33+16+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 selected 1714 202 +196+138+52+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 0 1714 151 +90+42+16+38+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 1 1714 238 +127+80+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 2 1714 900 +93+66+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 3 1714 281 +133+80+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 selected 239 121 +1479-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 0 239 120 +140+115+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 1 239 118 +62+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 2 239 874 +131+18+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 3 239 249 +1342+7-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2 encode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 4 239 1012 +107+9+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 5 239 273 +1261+126+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 selected 1317 982 +639+87+55-7+14-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10+7-10 encode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 0 1317 968 +115+27+6-6-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 encode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 1 1317 1025 +610+170+20-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 encode_953x2115 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 2 1317 2469 +626+116+22+4-4-9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 3 1317 4597 +349+122+59+60+82+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 4 1317 4191 +245+97-77+36+45-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24+18-24 encode_953x2115 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 5 1317 4535 +352+119+49+35+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round selected 1317 1041 +1084+105+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5 encode_953x2115round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 0 1317 1035 +85+17-28-1-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4 encode_953x2115round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 1 1317 1107 +574+106+21+16+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 2 1317 1421 +2704+85-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55-70+55 encode_953x2115round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 3 1317 1470 +625+45+33-11-4-1-12+9-12+9-12+9-12+9-12+9-12+9-12+9-12+9-12+9-12+9-12+9-12+9-12+9 encode_953x2115round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 4 1317 1564 +167+831+91-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 5 1317 1721 +162+4-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x6343 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 selected 1505 731 +3029+172+51+10+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4 encode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 0 1505 828 +797+264+118-38-26-27+9+4-27+9+4-27+9+4-27+9+4-27+9+4-27+9+4-27+9+4-27+9+4-27+9+4 encode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 1 1505 737 +64+7+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x6343 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 2 1505 3031 +176+47+14-12-2+2+1-12-2+2+1-12-2+2+1-12-2+2+1-12-2+2+1-12-2+2+1-12-2+2+1-12 encode_953x6343 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 3 1505 2816 +179+24+15+16-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x6343 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 4 1505 4449 +110+57+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x6343 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 5 1505 3076 +208+133+8+0+0+1-1+0+1-1+0+1-1+0+1-1+0+1-1+0+1-1+0+1-1+0+1-1+0+1-1+0 encode_953xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 selected 953 223 +238+136+130+25+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 0 953 222 +173+181+97+57+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 1 953 222 +100+33+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 2 953 672 +191+139+20-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 encode_953xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 3 953 624 +116+73+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 4 953 894 +160+47+58+12-4+1+3-22-4+1+3-22-4+1+3-22-4+1+3-22-4+1+3-22-4+1+3-22-4+1+3-22 encode_953xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 5 953 793 +156+46+40+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 selected 1906 219 +154+106+51+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 0 1906 162 +101+52+39+30+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 1 1906 265 +129+67+39+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 2 1906 994 +121+9+5+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 3 1906 308 +145+100+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 selected 254 127 +183+97+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11 encode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 0 254 127 +91+22+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 1 254 117 +375+2+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 2 254 1076 +118+4+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 3 254 258 +2414+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 4 254 925 +120+19+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 5 254 284 +172+102+21+0+0+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 encode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 selected 1423 997 +697+143+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 0 1423 1004 +139+3+10-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 1 1423 1195 +1509+91+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 2 1423 2614 +1702+201+44+5-2+13-2-4-2+13-2-4-2+13-2-4-2+13-2-4-2+13-2-4-2+13-2-4-2+13-2-4 encode_1013x2393 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 3 1423 5030 +266+64-32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 4 1423 4575 +179+123+14-15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 5 1423 4909 +258+78+10+4-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round selected 1423 1131 +558+253+5+16+0+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 0 1423 1130 +128+3+10+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 1 1423 1271 +780+44+27+6-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 2 1423 1437 +382+148+48-56+68-26-42+68-26-42+68-26-42+68-26-42+68-26-42+68-26-42+68-26-42+68-26-42+68-26-42+68 encode_1013x2393round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 3 1423 1544 +240+53+17+33-19-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 4 1423 1620 +230+71+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x2393round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 5 1423 1782 +261+25-12-17-1+0-1+0-17+0-17+0-1+0-1+0-1+0-17+0-17+0-1+0-1+0-17+0-1+0-1+0 encode_1013x7177 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 selected 1623 877 +1745+266+55-3-3+1+6-9-3+1+6-9-3+1+6-9-3+1+6-9-3+1+6-9-3+1+6-9-3+1+6-9 encode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 0 1623 836 +319+282+94-9+7-8+11-10-1+28-6-4+11-10-1+28-6-4+11-10-1+28-6-4+29-10+4-13+4-13+4-13 encode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 1 1623 875 +82+3+3-8-2+5+2-8-2+5+2-8-2+5+2-8-2+5+2-8-2+5+2-8-2+5+2-8-2+5+2-8 encode_1013x7177 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 2 1623 3077 +172+156-10-7+2-1+2-27+2-1+2-27+2-1+2-27+2-1+2-27+2-1+2-27+2-1+2-27+2-1+2-27 encode_1013x7177 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 3 1623 2983 +550+327+42-3+8-8-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 encode_1013x7177 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 4 1623 4598 +181+69+24-31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x7177 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 5 1623 3284 +233+281+141-23-4-1-6+6-1-6+6-1-6+6-1-6+6-1-6+6-1-6+6-1-6+6-1-6+6-1-6+6 encode_1013xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 selected 1013 257 +183+146+75+20+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 0 1013 256 +67+28+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 1 1013 234 +156+114+86+39+0+0+0+0+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 2 1013 693 +183+149+4+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8 encode_1013xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 3 1013 657 +119+34+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 4 1013 948 +149+114+103+16+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4 encode_1013xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 5 1013 836 +160+91+38+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 selected 2026 156 +216+105+38+3+0+0+0+0+0+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 0 2026 157 +54-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 1 2026 281 +124+46+44+1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 encode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 2 2026 1059 +88+63+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 3 2026 325 +119+95+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 selected 320 152 +199+88+12-13+0+10-15-2+0+10-15-2+0+10-15-2+0+10-15-2+0+10-15-2+0+10-15-2+0+10-15-2 encode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 0 320 153 +67-6-2-5-4+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24-29+24 encode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 1 320 146 +124+88+24+21+12-2-12-3+12-2-12-3+12-2-12-3+12-2-12-3+12-2-12-3+12-2-12-3+12-2-12-3 encode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 2 320 1154 +151+35+32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 3 320 309 +2131+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 4 320 1154 +118+26+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 5 320 345 +186+97+17+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 encode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 selected 1815 1257 +464+141+15-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3 encode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 0 1815 1251 +70-9+16-13+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3 encode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 1 1815 1431 +1884+205+18-2-2+1+4-2-2+1+4-2-2+1+4-2-2+1+4-2-2+1+4-2-2+1+4-2-2+1+4-2 encode_1277x2627 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 2 1815 3334 +261+180+3-2+8+3-4-12+8+3-4-12+8+3-4-12+8+3-4-12+8+3-4-12+8+3-4-12+8+3-4-12 encode_1277x2627 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 3 1815 6296 +311+134+32+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x2627 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 4 1815 5441 +262+40-4-15-40-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x2627 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 5 1815 6218 +269+137+105+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x2627round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round selected 1815 1349 +950+104+22-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4 encode_1277x2627round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 0 1815 1320 +69+22+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277x2627round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 1 1815 1517 +2435+210+12+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3-6+3 encode_1277x2627round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 2 1815 1848 +637+1+45+45-12-66+45-12-55+45-12-66+45-12-66+45-12-66+45-12-66+45-12-66+45-12-66+45-12-66+45-12 encode_1277x2627round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 3 1815 1921 +262+111+14+26-2+3-1-2+3-1-2+3-1-2+3-1-2+3-1-2+3-1-2+3-1-2+3-1-2+3-1-2 encode_1277x2627round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 4 1815 2041 +243+129+25+19-17-7+9+0-17-7+9+0-17-7+9+0-17-7+9+0-17-7+9+0+7-7+9+0-17-7+9+0 encode_1277x2627round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 5 1815 2247 +249+13+38+4-13+4-8+7-9+4-13+13-8+13-13+4-13+7-9+13-13+4-13-6-4+7-13+4-13+13-8+7 encode_1277x7879 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 selected 2067 984 +3472+237+6-3+8-5+1-3+8-5+1-3+8-5+1-3+8-5+1-3+8-5+1-3+8-5+1-3+8-5+1-3 encode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 0 2067 977 +470+245+78+32-32+3-5+22-40+0-4-10-7-4+13-42+13-42+13-42+13-42+13-42-3+20-40+0-4-10+18-12 encode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 1 2067 981 +100+40-7+9-3+0-4+9-3+0-4+9-3+0-4+9-3+0-4+9-3+0-4+9-3+0-4+9-3+0-4+9 encode_1277x7879 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 2 2067 4054 +198+151+12-4-24-21-12+1+7-6+0+1+7-6+0+1+7-6+0+1+7-6+0+1+7-6+0+1+7-6+0+1 encode_1277x7879 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 3 2067 3941 +584+93+53+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4-8+4 encode_1277x7879 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 4 2067 5923 +189+92-19+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+947+43+3+12 encode_1277x7879 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 5 2067 4273 +278+194+105-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 selected 1277 283 +270+175+93+44+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 0 1277 282 +87+30+23+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 1 1277 282 +146+135+111+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 2 1277 871 +193+107+44+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8-14+8 encode_1277xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 3 1277 834 +124+25+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 4 1277 1192 +140+88+56+11+1+10-17-7+1+10-17-7+1+10-17-7+1+10-17-7+1+10-17-7+1+10-17-7+1+10-17-7 encode_1277xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 5 1277 1057 +145+78+37+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 selected 2554 187 +184+71+51+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0 encode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 0 2554 187 +55+17+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 1 2554 365 +106+102+13+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7-11+7 encode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 2 2554 1322 +102+68+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 3 2554 420 +104+71+35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 selected 2 39 +104+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+0+0+0+0+0+0+0 encode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 0 2 38 +42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 1 2 38 +42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 2 2 38 +40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 3 2 38 +42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 selected 0 49 +1419+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 1 49 +30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 2 51 +77-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 4 59 +72-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 7 92 +18+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 11 124 +3009-17-39+0+5+1+2+1+2+0+1+4+0+2+0-2+1-1+0+1-1+0+1-1+0+1-1+0+1-1+0+1 sort_int32 selected 17 211 +422+2+7+0+1-5-2-1-1+1+0+4-4+3-2-4-1-1+1+0+4-4+3-2-4-1-1+1+0+4-4+3 sort_int32 selected 26 219 +23-47-3-4+2+6+4+0+1-1+1+3-8-2+6+1-2-2+6+1-2-2+6+1-2-2+6+1-2-2+6+1 sort_int32 selected 40 297 +2631+264+44+0+9-11+8-4+6-5-3+1-7+3+6-5-3+1-7+3+6-5-3+1-7+3+6-5-3+1-7+3 sort_int32 selected 61 319 +86-2-1+14+5-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 92 574 +1608+506+87+17+16+2-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3 sort_int32 selected 139 1166 +2051+456+83+90+4+3-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 sort_int32 selected 209 1165 +351+68+25+6-4+6-3-4+6-3-4+6-3-4+6-3-4+6-3-4+6-3-4+6-3-4+6-3-4+6-3-4 sort_int32 selected 314 1908 +1800+554+57+4-3+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 sort_int32 selected 472 2851 +1124+377+76+35+12+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 709 4506 +2844+809+156+59+4-1+1+0+1+1+0+0+1+0+0+0+0+0+6+6+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 1064 7237 +3174+1163+216-8+15+3+5+2+5-8-8+0-2-1+0+3-1+0+2-2+0-1+0-4-4+1-1-1-2+0-4-4 sort_int32 selected 1597 11202 +1757+469+111+49-15-20-19-10-26-7+1-8-3+0-2-1-2-4+0+2-3+2+1+1+1+1+1+1+1+1+1+1 sort_int32 selected 2396 17332 +3740+1032+381+248+127+119+110+112+104+98+98+10-24-26-25-22-27-26-25-28-26-26-26-26-26-26-26-26-26-26-26-26 sort_int32 selected 3595 27513 +2005+403+16+210+169+75-40+58+13+140-18-27-10-20-2-13+2-5+1-7+8-11+0-11-2-7-2+25-3-4-3-10 sort_int32 selected 5393 42417 +4019+1401+857+460+77-18+32+7+12-8-5-8-11-20-23-59-45-11+13+17+0-10+11-10+4-4+4+5-10+5-10+5 sort_int32 selected 8090 70415 +2893+570+258+186-32-88-222-123-53+199+57-6+50+359-13-36-57-71+218+53-105-221-209-91-107-82+928-68-188+234+42+110 sort_int32 selected 12136 113572 +4386+1305+770+557-134-271+223-16-377-263-465-324-612-92-327+328-39-427+13+75+377+517+72-136-601-410+428-139+195+129+53+333 sort_int32 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 0 0 48 +131+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0 sort_int32 0 1 48 +1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 2 50 +28+26+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 4 57 +65+26+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 7 91 +44+16+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 11 127 +181+12-43-9+2+1-1-2-2+0-3-2+1-1-6-2+1+2-1-2-2+1+3+3+1+4+0-4+0+4-2-3 sort_int32 0 17 209 +106+5+2-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 26 220 -26-29+1+0-1-2+2-1+4+0+2-2+8+1+0-1-2+2-1+4+0+2-2+8+1+0-1-2+2-1+4+0 sort_int32 0 40 288 +192+109+8-1+1+6-3-2+1+6-3-2+1+6-3-2+1+6-3-2+1+6-3-2+1+6-3-2+1+6-3-2 sort_int32 0 61 326 +9-3-1-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 92 579 +380+188+19+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 sort_int32 0 139 1170 +556+149+82+19+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 209 1161 +378+122+60-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 sort_int32 0 314 1908 +474+200+17+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 472 2828 +697+153+62+40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 709 4527 +1011+272+25-1+3+2+0+0+0+1+1+0-1-1+0+0+0+0+0+0-2-2-2+0-2+0-2-2-2-2-2-2 sort_int32 0 1064 7271 +993+445+74+10+7+3-47-48+2+1+2+1+2+1-1-2-1-2-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 0 1597 11162 +997+242+64+58-57+0+19+11+13+9+17+6-9+5+4-11-4+0-4-1-5-1-5-3-5-3-5-3-6-3-6-3 sort_int32 0 2396 17290 +1684+296+263+217-8-6-4+81-10-12-9-9-8-12+38+94-12-12-12-12+20-12+20-12+20-12+20-12+20-12+20-12 sort_int32 0 3595 27703 +999+41+72+25+33+54+67+48-8-6-40+62+41+25-94+24+19+21+11-17-143-66-27-18-27-18-143-18-27-18-27-66 sort_int32 0 5393 42536 +2361+826+695+285+1231-49-42-58+65-49-48-47-46-47-52-80-80-82-73+37+38+41+34+32-72+36+17+14+36+35+18+20 sort_int32 0 8090 70422 +2008+731+628+107+62-11-32+52+64-38+219-89+69-177+207-180-97+204-109-214-116+235-62-61-81+216-242-136-29+121-52-17 sort_int32 0 12136 113724 +1749+648+416+25+551-140+560-740+123-401-90-279+602-198-486+148+102+316-25-480+149+185-601+566+133-118+129-382-337-867+193-351 sort_int32 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 1 0 45 +1937+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0 sort_int32 1 1 45 +1+27+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 2 48 +71+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 4 61 +345+0-2+0+3-2+3-3-2+1-2+1+4+3-1+0+2+0-2+5+4+0-1-3+1+3-2+1-3-1+5+4 sort_int32 1 7 136 +22-9+8-2-4+5+1+2+3-4+4+2+7-4+6-3-1-4+34-1+3+0-1-2+7-4+0+2-1+9-4-3 sort_int32 1 11 120 +3390-29-41-6-1+0-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1+1-3+1 sort_int32 1 17 222 +406-60+0-1+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1 sort_int32 1 26 222 +5-31+0-3-6-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 sort_int32 1 40 301 +2817+258+3+7-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2+3-2-2 sort_int32 1 61 328 +56-9+5-8-6+4+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 92 609 +1360+394+35-1+0-1+2+0-1+2+0-1+2+0-1+2+0-1+2+0-4-1+0+2+2-1+0+0+0+0+0+0 sort_int32 1 139 1150 +3760+680+139+64+30+15+6+6+6+6+808-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 1 209 1161 +502+184+40+30+3+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 sort_int32 1 314 1910 +2656+478+34+7-3+0+1+1+1+1+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 472 2949 +1073+178+46+19+4+2+0+0+0-1+1-1-1-1-1-1-1+1-5-4+6-4+2-1+2+2+1+1+0-1-3-4 sort_int32 1 709 4686 +3197+1089+160+12+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 1064 7411 +3689+1140+209+94-14+5+4+4+4+4+4+2-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 1 1597 11397 +1764+670+204+168+110+12+14+8+15+8+8+14+14-16-18+26-18-18-18-18+17+6+8+8-16-18-18-45-18-18-45-49 sort_int32 1 2396 17839 +4336+1016+84+31-12-67-67-68-68-68-67+13-52-9+20+20-4-6-33-6-6-6+22+22+22+22-6-6-6-6-6+22 sort_int32 1 3595 27974 +2584+842+83+34+16+59+51+8-55-74-20+27+21-16-16-80-80+21+21-22-21-80+21+21-22-22-80-80+21+60-19-21 sort_int32 1 5393 44196 +4708+1876+791+386+45+2+5+6+4-5+2+0+0-1-1+17-1+0+0+0-3-3+0+0+0-3-3+0-1-1-1-2 sort_int32 1 8090 72968 +3551+1461+882+620+188+9+15-111+80-31-59+24-77+129-78+171-44+2-61+174+1-74-66+0-40-24+126-113+43-133-47-87 sort_int32 1 12136 116903 +4382+1749+813+1127+33+324+188-199+701+120+58-237+214-185-120-111-52-362-220+350-211-115-310+92+49-529+506-305-9-45-81-38 sort_int32 2 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 2 0 40 +68+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 1 40 +23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 2 53 +174+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 4 84 +322+122+64+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 7 138 +649+298+88+42+31+26+18+11+8+5+5-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 2 11 251 +808+300+105+48+25+12+8+2+2+1+2+0+0+1+0+1+0+0+0-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 2 17 435 +1297+421+211+75+44+35+16+9+17+6+13+5+0+3+5+2+5-6-9+1-5-15-7-10-8-15-20-21-12-14-11-11 sort_int32 2 26 699 +1524+514+176+115+75+72+51+29+21+19+11+16+15-2+11-15-21+0-15-3-10-9-24-24-21-24-7-24-12-21-16-22 sort_int32 2 40 1193 +2106+604+122+100+35+13+19+28-5+0-2+5+7-4-2-14-2-19-17-16-17-2-2-2+0-1+3-9-3+0+4-10 sort_int32 2 61 2007 +2189+666+138+143+63+60+39+21+11+23+23+6+0-7-7-23-5-15-6-9-27+0-8-5-5-14-12-20-24-7-9-11 sort_int32 2 92 3570 +2364+963+286+79+14+2-17-21-21-4-11+13-11-6+6-11+1-4+13-28+1+1+22+13+8-10-10-16-10-20+8+25 sort_int32 2 139 6385 +3777+1475+328+71+34+15-2+1+18+18+17-19-19-23-26-22-38-67-69-47-49-37-49-51-25+21+5+38+27+39+20+23 sort_int32 2 209 10908 +3419+1415+474+227+62+46+62+35-34-10-35-29-23-37-2-12+1-21+42+27-36-66+13+15-14-29+34+8-23-24-2-45 sort_int32 2 314 18776 +3790+1700+387+176+83+93+61+29+65+137-10+19-4+37+16-18-18-2+6-37-82-39-46+46-65-43-50-76-53-57-64-120 sort_int32 2 472 31086 +1606+957+441+248+147+48+59+35-3-33-20-87+118+8-28-34+13-15+25-107-101-21-112+391+366-56-154+55-73-96-37-69 sort_int32 2 709 53430 +4165+1951+611+373+80+21-38+4+7+2+3-21+3-79-31+30-6-50-58-52-27-122+56-26+3-13-47+94+32-86+19+117 sort_int32 2 1064 88083 +3593+1960+607+324+2+185-193+142-48+925-51+46-335+55+95+37+37+85-242-24-8-219-61-19-12+71+80-338-249-352-319-291 sort_int32 2 1597 147938 +2218+800+565+594+59+258+271+40-72-39-10+98+73-90-207+32-150-6+109-5-39-70-95+14-80-77+17+24-35+9-80-75 sort_int32 2 2396 247268 +3029+1928+1209+780+548+351+431+659-25-157+16-127-233-345-83+1-116-113-386-14-97-66-61-137-228+95-107+32+143+51+97+127 sort_int32 2 3595 406722 +3917+1444+730+626+54+99+903-148+196-111-133-92-30-373-69+46-62-132-274+137+109+126+182-206-27+12-108+45+919-291-401-350 sort_int32 2 5393 679728 +6530+2647+1361+1151+219+119+326+54-219-90+734-121+33+83+70-95+124-104-25-34-192+5-10+831-111-81-303-96-98+36-121-234 sort_int32 2 8090 1097675 +2775+1745+444+511-367-589-307-218-339+47+214-304+117-122-142-155-134-97+733-345-812-391-721-590-255-491+757+3847+3552+3831+3791+3920 sort_int32 2 12136 1841112 +4778+1500+244-469-395+1017+2934+3266+2384+3261+4037+373+375-698-235+821-1225-703-496-618+437-485-720+172-848-374-178+745-929+83-757-1324 sort_int32 3 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 3 0 40 +74+0+0+0+0+0+0+0+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 1 40 +28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 2 50 +112+1+8+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 4 76 +287+109+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 7 130 +526+137+57+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 11 217 +783+207+64+26+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 17 371 +1526+352+128+56+44+29+27+7+6+3+3-1+2-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 3 26 637 +1649+332+144+67+39+10+11+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 40 1158 +2201+527+171+37+14+16+20+0-5+7-9+4-1+1+4-6-3-6-9+8-8+6-6-4-2+1-4-5-6-4-4+4 sort_int32 3 61 1977 +1718+589+138-3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 92 3549 +2506+901+110+58+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 139 6450 +3746+1326+330+153+92+40+75+11+11+37+3+34+11+24-3+2-39-22-49-22-21-38-21-21-31-4-16-3-14-16+1-36 sort_int32 3 209 11164 +3846+1480+242+148+39+29+35-21-65+18+38+29+0+53+29+47+20+24-28-89+15-10-33-37-66-34-40-64-62-40-37-41 sort_int32 3 314 19238 +3934+1557+282+251+174+53+14-19+13-3+2-52+17-34-1-14+15-35+44-13+46-6+84-17-18-32-69-17+2-20-11-46 sort_int32 3 472 32130 +1556+784+298+141+108+72-8+2+37+27-53-139+182-117+98-38-83+119-70-135-74-44-15-126-44-74-67-24+668+17+14+31 sort_int32 3 709 55307 +4636+1914+524+482+205-43-89+2+12+29+12+18-9-34-58-15-46-64-28-92-53-151+1-67-159+63+16+87+34+30+18+89 sort_int32 3 1064 91302 +4070+2553+1305+341+191-13-70-102-40-17-159+34-104-96+0-59-21-11-14+42+59-194-79-15+72+98+6-64-3+40+15+69 sort_int32 3 1597 153438 +2237+1108+481+188+126-113+56-26-68-332-62-60+38+120-90-157-37-179+12-72+35+151-125-41+1099+77+168+45-38-89+27-76 sort_int32 3 2396 256344 +3718+2298+1432+755+138-6+100-140-127-188-210-134-20-82-179+157-177+76+9+97-113-108+124+116-70-44+187-176-140+844+140-95 sort_int32 3 3595 421328 +3861+2001+931+339+40+17+736+181-336-260-207-277-233+99+46-75-196+9+911+208+56-119-12-218+244+26-224-73+60+49-105-326 sort_int32 3 5393 706488 +6626+2650+1747+2179+817+430+117-279-216+100+153+492-174+251-119-198+879-48-606-138-674-302-389-197-288+96-266+284-83+928-353-347 sort_int32 3 8090 1141644 +3285+1474+1180+588+328+1467-938-479-282+323-229-192-1023+637-304-704+66+227+68-90+217+1458-29-163-107-662-249-184+1048+297-673-462 sort_int32 3 12136 1915673 +3536+2586+919+583-402+338+1283-114-1198-734-586+1244+651-1162-761-578-453+229+36-1070+2744-1404+96-23-693+1434-244-266-686+1055+92+641 sort_int32 4 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 4 0 40 +68+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 1 40 +21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 2 53 +199+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 4 84 +298+123+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 7 143 +597+276+58+25+13+6+6-1-1+1+1+5-4+2-2+3-4+1-2+0-4+0-5+0-4+0-4-1-5-1-5-1 sort_int32 4 11 256 +593+246+106+64+35+31+14+15+13+9-1+5-3-1+0+2+1-4-6-5-5-7-5-5-4-5-4-4-5-5-7-5 sort_int32 4 17 420 +1555+524+188+88+39+38+26+11+13+1+4+0+5-9+4-8-1-3-5-8-9-3-3+1-7-8-5-4-4-4-6-4 sort_int32 4 26 705 +1696+524+177+124+79+47+42+18+6+8-17-10-12-6-10-3-8-14-12-14-4-9-4-13+8-10-4+9-6+6+5+8 sort_int32 4 40 1266 +1989+622+189+136+63+92+79+80+44+34+8+27+33+39+15+1-26-32-41-45-13-35-48-41-41-17-40-50-43-15-30-44 sort_int32 4 61 2106 +1914+652+118+70+76+54+18+28+27-7+21+8+5-16-17-33+13-5+30-21-13-39-8-23-3-32-22+0-4-14-30-24 sort_int32 4 92 3721 +2399+761+374+86+1+11+7+20+18+4-3-17+5-8-10-2+56-35-17+9-14-3-25+16+11-13-48-2-44+6-33-38 sort_int32 4 139 6375 +3931+1535+546+270+109+25-7+31+11+25+26+24+44-12-46-18-22-32-25-36-1-11-12+4+2+6-3-13-18-24-18-24 sort_int32 4 209 11157 +3784+1303+611+329+114+82+120+57-2-64-87+2-108-78-28-80-92+43-110-84-90+41-13+81-75-78+17+19+65-32+40+12 sort_int32 4 314 18840 +3936+1736+725+493+84+41+73+68+50+45+4-3-1-12-1-33-30-9-45-43-72-67-76-61-63+6+11+6-26-14+0-15 sort_int32 4 472 31227 +1536+874+209+186+116+71-59+7-123-94+14-60-11+3-95+0+669-6+11+9-14-33-20+14-46+93-58-30-13+7+9+27 sort_int32 4 709 53986 +4374+1984+1034+743+159+27-38+123+34+49+97+30-34-76-22-114-63-41-52-9-66-142-71-154-79+38+53+22-61+55+51-53 sort_int32 4 1064 88454 +4101+1821+1086+515+191-59-174-162+4-134-70-56+15-215+84-161-13-29+1+16+102-43-38+61-24-85+9+63+5+138-103+92 sort_int32 4 1597 148350 +1913+1140+592+68-115-45+43-94-162-257+10-248-197-346-37-255-331-263-302-269-291-164+961+240+360+376+257+280+182+233+31+275 sort_int32 4 2396 247333 +3257+1421+590+285-172-298+101+148-87+1-348+293+267+180+180-659+152-125-105-389-226-258-42+63-381-248-283+378-66+784-412+243 sort_int32 4 3595 407627 +3371+1040+762+523-226-315-92-140-260-163-213-190-275-331-183-345-191-467-70+832+275+413-158-47+199+320+399+92-117+67+600+2488 sort_int32 4 5393 681248 +6468+3314+1467+1311+526+3153+95+43-11-71-133+60-229-12+321+758+295+1053-144-364-146-219-313-263-435-391-104-280-336-383-498+517 sort_int32 4 8090 1099283 +2688+765-322+162-306-656+298-981-524-141-401-722-893-822+1279+2272+3916+2941+2449+3302+2240+2368+2866-1102-1096-1211-864-197-1117-1447-965+214 sort_int32 4 12136 1842925 +4027+2027+1050+2088+1647+499+294-1146+889-627-414-816-669+68-1245-1214-1939-183-857-936-1807-1528-571+3452+3066+3639+2742+3636+157-531-746-46 sort_int32 5 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 5 0 40 +92+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 1 40 +0+0+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 2 50 +127+1+7+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 4 75 +253+152+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 7 130 +614+285+171+8+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 11 234 +871+249+129+55+47+20+12+8+5+5+7+1+6+2-1+2+0+0-6-4-6-6-4-5-6-4-4-6-3-4-6-4 sort_int32 5 17 389 +1607+407+216+128+81+52+48+40+29+30+15+17+15-3+2+1-1-12-11-14-12-22-19-24-24-24-24-24-19-24-24-24 sort_int32 5 26 697 +1675+328+139+119+84+54+38+25+13+15+9+4-1+9-10+0-2+0-5-5-8-15-2-11-10-8-17-14-13-10-10-12 sort_int32 5 40 1179 +2273+807+213+135+112+42+49+28+19+60+36+31+13-5-3-20+21-6-29-24-24-24-14-22-14-24-19-19-24-24-24-24 sort_int32 5 61 1978 +2060+769+141+42+3+21+10+20+12-5-1-1+4-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_int32 5 92 3558 +2765+1204+321+138+15-1-1+1+3+3+3-1+3-8-2-1+1-8-11-2+3-2+3-2-1+1+0-2-2-2-1-1 sort_int32 5 139 6264 +4379+1385+479+146+40+22+35+1+5+11+0+7+4+1+2+7+1-16-14-14+4-11-9-16-3-3-10+3-10-5-10-24 sort_int32 5 209 11102 +4023+1253+549+233+17+80+7+26-8+17-14+22-105-28+18-33+4+3-85+1-10-8-22+2-3-69-26+39-21-2-17-3 sort_int32 5 314 19158 +3843+1657+309+202-23+23+20-28+11+6+28+29+32-1+43-29-33-24-54-24+10+1+9-58+17-40-12-24+74-21-28-45 sort_int32 5 472 31905 +1623+884+396+333+42+16-31-14+40+32+83+22+45+65-18-55+22-8-9-8-85-12-130-100-31-9-55-46+83-38-54-55 sort_int32 5 709 55172 +4395+2260+609+243+108-69+29-84+130+38-372+19+34+31-1+37+29-103-94-40-62+70-117+123-185-302-33-33+43-60-82+36 sort_int32 5 1064 90450 +4776+2692+1216+808+186+175+279+171+97+116+49-75-48+24-57+10-41-89-81-68-55-67+29-99-53-18-11-75-23-36-74+11 sort_int32 5 1597 152990 +2499+1542+831+178+237+188+136+95-10-40+48-40-153+6+93+4-108-2-103-13-56-55-9-108-1+95+1-29-144-162-48-99 sort_int32 5 2396 255805 +3572+1922+1101+626-6-135-155-232-139+69+64+4-27-53+736-20+49-156-21-101+84+65-147+138+127+6+58-113-76-36+13-87 sort_int32 5 3595 420535 +3868+1430+604+513+196-39-265-224-49+1331-178+74-3-1+66-66-22+97-258-124-275-82-202-117+8+53+72+22-97+217-34+835 sort_int32 5 5393 704019 +8096+2480+1846+1302+522+668+354+95-450+161-299+506-79-252-223-120-267-117-128-136+130-35-47+786-212+90-95-33-162-176+129-220 sort_int32 5 8090 1138478 +3488+1336+1455+712-32-204+140+172+88+459-459-727-101-233-322+1902-268+1146+219-252+624-125+55+139-315+212-663-60-635+179-200-358 sort_int32 5 12136 1907750 +3912+1167+831+102+295-1126+187-373+1252+739-556-374+377+522+431-745-359-659+620-751+804-1451-40+450-562-625+33-238+1732-307-257-452 sort_uint32 selected implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 selected 0 53 +549+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0 sort_uint32 selected 1 57 +108+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 2 62 +105+108+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 4 76 +155+62+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 7 121 +247+43+15+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 11 165 +350+77+9-16-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 17 297 +275+58+46+31-15+28+5-21+14-17-8+14-19-8+14-19-8+14-19-1+17-23-8+0+17-23-8+0+17-23-8+0 sort_uint32 selected 26 316 +77+37+15-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 40 351 +846+149+10+28+2+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 61 456 +147+99+20+8+1+0+0+6+5+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 92 728 +832+160+49+24+1-5+0+0+3+0+0+0+0+0+0+0+0+3+2+0+0+0+0+0+0+2+0+0+0+0+0+0 sort_uint32 selected 139 1242 +1138+320+80+31+21+11+7+3+6+3+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_uint32 selected 209 1283 +509+182+43+17+21+6+6+0+4+4-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 314 2074 +954+165+60+15-2+5+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 472 2995 +1140+292+94+31-2+15-11+8-9+7-4+7-11+5-12+6-12+5-12+5-12+5-11+5-11+5-11+5-11+5-11+5 sort_uint32 selected 709 4599 +2075+637+215+37+35+4+6+0-1-1+2-1-1-1-1+0+0+0+0-1+0+0+0+6+0+0+0+0+0+0+0+0 sort_uint32 selected 1064 7478 +2594+953+270+29+1+1+2+2-8-6-6-4-5-5-2-2-5+0+0+0+0+0+0+0+0+0+1+1+1+1+1+1 sort_uint32 selected 1597 11547 +1716+436+173+43+10+7+2+6+7+5+4+8+17+12+5-3-3-4-5-5-5-4-8-6-6-3-6-6-6-3-3-6 sort_uint32 selected 2396 17981 +2649+757+323+202+49+40+89+41-2+86+41-3-25-4+39-25-24-28-27-28-28+0-3-2-30-31-2+25-31-30-32-31 sort_uint32 selected 3595 28519 +1874+360+238+16-22+15+7+19+6+2+0+4-13-23+19+31+2+17-18+18+0+1-6-36-34-10-24-7-24-41-24-1 sort_uint32 selected 5393 44054 +3588+1094+417+97+49-29-33-30-33-33-22+15+15+12+6-25+6-26-28-10-3-4-9-3+1+1-4+15+16+6+6+5 sort_uint32 selected 8090 72436 +2959+847+513+314+16+22-42-28+44-59-45+40-57+21-60-4+57+11-44-51-25+3-92+13+92+168-8+41-77-103-23+5 sort_uint32 selected 12136 117627 +3452+488+52+64+53-191-89-411+456+354-62+251+195+458-161+279-129+506-66-510+139-340-96-451-367+99+290-382-338-549-339+529 sort_uint32 0 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 0 0 51 +169+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0 sort_uint32 0 1 57 +195+75+65+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 2 61 +124+112+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 4 73 +123+119+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 7 121 +52+54+46+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 11 172 +158+53+24+12-36-1-1+0+0+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 17 301 +137+101+90+15+11-6-9-5+2-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4 sort_uint32 0 26 326 +93+24+36+10+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 40 335 +318+181+42+22+17+8+2+1+5-1-9-1+8-6+1-13-2+4-6+1-13-2-1-8-3-4-1+1-13-2-1-8 sort_uint32 0 61 452 +163+141+68+18+12+3+2-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_uint32 0 92 718 +463+218+63-10-11-9+2-12+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_uint32 0 139 1248 +591+170+33+3+2+3+1-1-1-2-1+1+1-2+3+1-1-2+3-3+2-3+2-3+1-3-1-3-1-3-1-3 sort_uint32 0 209 1300 +595+132+26+0-1+0-1+0+2+1+1+2-5+1-5+1+6-5+4+4+0-2+6-5-5+6-5-5+5-5-5+4 sort_uint32 0 314 2074 +586+148+105+38+16+2+1+1+1-2-2-2-3-1+10-4-10-1+9-4-10-1+9-4-10-1+9-4-10-1+9-4 sort_uint32 0 472 2972 +1019+251+38+11-5+11-9+6-8+5-8+5-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4 sort_uint32 0 709 4595 +1231+285+61+34+3+4-3-3+4+3+1+0+0+0-2+0+0+0-2+0+0+0+0+0-2+0+2+0+0+0-2+0 sort_uint32 0 1064 7512 +1159+236+154+47+6+4+3+2-2+0-4+1-4-1-2-1+3+2+0+0-1+0+0-1+0+0+0-1+0+0+0+0 sort_uint32 0 1597 11633 +971+203+168+82+86+89+71-49+6+0+0+0+81+25+24+24-36-37-36-31-36-39-37-37-38-37+26+24+26+27-39-37 sort_uint32 0 2396 17929 +2001+537+417+292+133+112+110+115+121+115+113-25-23-25-25-25-25-25-27-27-27-27-27-27-27-27-27-27-27-27-27-27 sort_uint32 0 3595 28435 +1500+271+113-7-2-38-118-3-4+1+23+26+13-15+20-8+21-11+8-11+11-9-30-42+17-5+23-6-30-18+8-18 sort_uint32 0 5393 44353 +2061+902+706+274+46-223-194-172-182-174-195-196-197-197-178-179-179-175+675+19+33+98+60+102+100+109+103+104+105+103+104+109 sort_uint32 0 8090 72444 +2052+584+539+211-16-230-59-113+74-5-65-121-23-18-50+16-90+1-17+2+31+146+47+61+27+22+2-23-62+6+39-43 sort_uint32 0 12136 117554 +1723+1094+355+157+732+122+180-298-313-256+140-742+97-63+263+42+288+143-597+612-591-206+555-115-77-332+440+111-276-549-345-269 sort_uint32 1 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 1 0 53 +130+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0 sort_uint32 1 1 61 +220+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 2 65 +139+24+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 4 74 +140+8-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 7 117 +187+32+25-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 11 171 +135-40-54-4-1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 17 272 +105-38-10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 26 272 +121+76+15-36+2-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_uint32 1 40 316 +384+150+3+5-1+3+9+1-10-1+7-5-9-1+7-5-9-1+7-5-9-1+7-5-9-1+7-5-9-1+7-5 sort_uint32 1 61 375 +320+136-24-4+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 92 633 +600+207+21+22+9+7+2+6+2+8-1-1-1-1+3-1+0-1-1+1-1-2-2-2-2-2-2-2-2-2-2-2 sort_uint32 1 139 1237 +777+216+114+46+44+17+15+9+8+6+5-1+2-1+1-5-3-1-5-1-3-7-2-7-4-7-4-7-8-12-8-7 sort_uint32 1 209 1267 +484+166+99+38+17+9+12+10+10+9+9+3-3-2-3-2-3-2-3-2-3-2-3-2-3-2-3-2-3-2-3-2 sort_uint32 1 314 2062 +573+263+82+66+8+3+1+0+0+1+3+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 472 2981 +711+229+165+49+17+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 709 4687 +984+1302+272+146+124+44+39+45+36-2-7-7-1-2-2-2-2-2-2-2-6-3-2-2-2-2-2-2-2-2-2-2 sort_uint32 1 1064 7705 +1088+370+213+154+38+11+7+5+8+3+2+1+3-10+4+1+3+1-7-9+3-9-7-9-5-7-5-7-5-7-5-7 sort_uint32 1 1597 11728 +791+230+193+73+73+33+34+4-5+7+7-1+3-3-2+0-2-2-2-2+0-2-2-2+0-2-2-2-2+0-2-2 sort_uint32 1 2396 18093 +1412+505+263+82+15+119+120+113-4-1-3+9+5+9-7-2-3-2-3-2-3-2-3-2-3-2-3-2-3-2-3-2 sort_uint32 1 3595 28619 +1011-24+107+10-25+16-26+34-35+42-31+64-41+41-41+40-81-28+35-38+31-85+31-38+37-4+11-36+41-28+42-86 sort_uint32 1 5393 44079 +1958+1017+714+250+230-13-17-15-16+7-17+21-18+6-11+11-11+13-18-4-11+7-3+11-21+15-4+10-16+12-14+13 sort_uint32 1 8090 72532 +1796+469+587+212-79+217+35-165-121-163+201+108+43+98-64-3+69-2-9+6+51-176-42-9+88-135-87-91+107-104-115-119 sort_uint32 1 12136 117659 +1305+614+419+542-47-490+208-95-49-283+967-282+584+43+0-71-44-495+477-672-104-82+875-492-201-426-584+120-83+618+243-265 sort_uint32 2 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 2 0 51 +141+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0 sort_uint32 2 1 56 +101+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 2 61 +78+94+26+26-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 4 75 +174+110+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 7 121 +126+69+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 11 181 +295-7-42-23+4+5-1+1+2-4-2+2-1+1+2-4-2+2-1+1+2-4-2+2-1+1+2-4-2+2-1+1 sort_uint32 2 17 282 +121-28-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 26 265 +123-71-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 40 344 +198+133+49+6-15+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9-14+9 sort_uint32 2 61 385 +329+163+30-8+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 92 671 +532+195+19+8-2-6+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_uint32 2 139 1278 +631+171+80+23+4+6-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 sort_uint32 2 209 1311 +558+108+64+21+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 314 2150 +458+239+96+15+16-1+9-9+4-9+7-9+4-9+4-11+4-11+4-11+4-11+4-11+6-11+6-11+6-10+6-10 sort_uint32 2 472 3117 +675+166+80+20+7-3+5-7+5-9+3-9+3-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9+4-9 sort_uint32 2 709 4819 +911+414+202+64-1+11+3+9-32+3-4+3-4-25-4-25-4+3-4+3-4+3-4+3-4+3-32+3-4+3-4+3 sort_uint32 2 1064 7826 +895+262+196+37+41+10+13+20+3+3+3+3+3+3+0+0+0-2-2-2-2-2-2-2-2-4-2-2-4-4-4-4 sort_uint32 2 1597 12111 +889+145+171+12+6+9+12+9-28+11+14+9-13-17-14+6+8-5-2-6-2-6-2-4-2-8-4-6-2-6-2-6 sort_uint32 2 2396 18672 +1309+490+339+102+23+3-25-7-21-30-21-24-21-30-21-19+4+1+4+1+4+1+4+1+4+1+4+1+4+1+4+1 sort_uint32 2 3595 29555 +881+105+185+57+71-52+7+60-18-36+34-28+29-37+28-31+26-31-87-30+27-30+27+1-86-30+27-37+27-83+27-37 sort_uint32 2 5393 45151 +2402+1061+776+204+83-18-7-19-18-14-8-14-6-12-10-15-12-16-21-25+11+14+14+10+11+10+4+6+9+3+8+7 sort_uint32 2 8090 74462 +2565+502+338+176+245-105-72-203+269-62-96-46+136-121+65+157+117-87-72-110-71+46+329+271-112-52-84-97-57-135+244-93 sort_uint32 2 12136 120687 +1598+589+868+504-69+665-148-107-6-284+107-24+446+20+164-415-312-659-166-127+61-196+135+151-524+154-211+1-339-147+455+275 sort_uint32 3 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 3 0 51 +121+23+22+22+0+0+0+0+0+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 1 58 +155+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 2 61 +174+28+26+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 4 71 +142+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 7 105 +153+24-5+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 11 178 +106-2-73-6+1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2-1+2 sort_uint32 3 17 267 +215+83-23-14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 26 251 +273+87+2-1+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 40 359 +414+123+7+2+4-2+5+1+5+0+2-1+2+0+2-5-1-5+1-5+1-5+1-2+1-2+1-2+1-2+1-2 sort_uint32 3 61 386 +229+118+48+2+5-5-3+18-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 92 684 +419+191+26+23+2+0+3+4+4-8+9+0-8-8+0-9+4-14-3-5-4-1+0-1+0-3+0-9+0-2+1-8 sort_uint32 3 139 1343 +658+164+91+49+8+6-1+1+7-3+7-6+6-1+7-6+7-6+3-6+3-5+3-6-2-6-2-6-2-6-2-6 sort_uint32 3 209 1419 +453+186+150+63+30+3+5+4+5+6+4+0+0+1+0-1+0-1+0-1-1-1-1-1-1-1-1-1-1-1-1-1 sort_uint32 3 314 2206 +514+192+130+147+50+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 472 3263 +634+124+44+28+1+0-1+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 709 5089 +804+387+165+82+50+0+1+2+2+6+3+2+1+2+0+0+0+2-2-1-3-5-2+1-3-5-7-5-3-5-2-5 sort_uint32 3 1064 8094 +850+287+111+70+50-26+0-27+4+6+7+5-33+4-3+0-3+0-3+0-3+0-3+0-3+0-3+2-1+2-1+2 sort_uint32 3 1597 12447 +831+138+182+68+27-5+16+10+11+9-1-5-17-8-25-6-17-25+1712+3-72+5-4-4-5-3-6-3-2+1-2+1 sort_uint32 3 2396 19140 +1316+510+311+341+28-1-19-17-21-18-21-44-21-36-19-20-12-14-16-8-13+9+4-18+26+29+21+23+20+23+20+22 sort_uint32 3 3595 30191 +1121+261+343+48+56-45-52-18-1-24-6-23+67-20-3-4+8-37+6-1+5+70-36+9-6+10-4-33+5-2+5+70 sort_uint32 3 5393 46835 +1957+1009+575+398+217+0+1+0-3+2+1-4+1-5-6-2-6+2+0+2+0+4-1+0-7-15-1+3+0-1+0+2 sort_uint32 3 8090 76466 +1940+546+473+100-168-143-173-161+17-125+2+102+60-199+64+70-102+38+53+56-166-43-48+0+234+187-76-110+292-80-99+95 sort_uint32 3 12136 123985 +1504+857+194-69-357+691-639-218-176-177-68-402+330+879+431-723-383+284+112-170+304-79+188-263+226-55-468+45-26-383+151+116 core_inv3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 selected 654 92938 +4812-103-194+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 0 654 92645 +230+237+159+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 1 654 97936 +7552-235+67-930-520-1226-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3-3+3 core_inv3sntrup653 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 2 654 318055 +2997+609-20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+787+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup653 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 3 654 360347 +4353+105+11+0+0+0+0+0+0+0+0+0+1319+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup653 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 4 654 387030 +2959+190+89+733+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+620+0+0+0+0 core_inv3sntrup653 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 5 654 360397 +2994-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+902-55+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup761 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 selected 762 113266 +6746-378+277+48-8-16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 0 762 110677 +7974+228+102-77+32+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+1+1+1+1+1+1+1 core_inv3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 1 762 113300 +559-332+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup761 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 2 762 309876 +1899+128+28-4+778+3-1+1-5+0-1+1-5+0-1+1-5+0-1+1-5+0-1+1-5+0-1+1-5+0-1+1 core_inv3sntrup761 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 3 762 464133 +5416+163+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+688-42+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup761 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 4 762 449841 +2233+74+0+0+0+0+756+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1110+0+0+0+0+0+0 core_inv3sntrup761 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 5 762 452005 +5576+93+14+0+0+0+0+0+0+0+0+0+702+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup857 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 selected 858 158265 +12305+280-502-588+617-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587+618-587 core_inv3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 0 858 163215 +12096-231-328+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+673-159+7+0+0+0+0+0+0+0+0 core_inv3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 1 858 158048 +758+622-353-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98+98-98 core_inv3sntrup857 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 2 858 645249 +2090-640+513-515-301+419-420+419-420+419-420+419-420+419-420+419+322-842-378+419-420+419-420+419-420+419-420+419-420+419+320-380 core_inv3sntrup857 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 3 858 630698 +12429+48+8-18-18-18-18-18-18-18-18+769+69+0+0+0+0+0+0+0+0+0+0+0+0+0+818+73+0+0+0+0 core_inv3sntrup857 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 4 858 525495 +4204+102-3+0+0+0+0+0+731-16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+683+0+0+0+0+0+0 core_inv3sntrup857 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 5 858 701684 +4913+0+0+0+0+0+0+669+11+0+0+0+0+0+0+0+0+0+0+0+642+6+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup953 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 selected 954 180203 +10741+104-3+228-96-43-43-43-43+21-43+21-43+21-43+21-43+21+21-43+21+21+21+21+21-43+21+21+21+21-43-43 core_inv3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 0 954 185931 +10218+118+255-270-270-270-270-270-270-270-270-270-270-270-270+1208+1520+208+90+90+90+90+90+90+90+90+90+90+90+90+90+90 core_inv3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 1 954 180479 +556-31+0-6+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0+820 core_inv3sntrup953 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 2 954 786067 +3012-3807+1085+143+1065+143+1065+143+1065+143+1780-634+245-634+245-634+245-634+245-634+245-634-2787+245-634+245-634+245-634+245-634+245 core_inv3sntrup953 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 3 954 739404 +4851+324+27+0+0+0+0+0+0+0+0+0+730+0+0+0+0+0+0+0+0+0+0+0+0+743+0+0+0+0+0+0 core_inv3sntrup953 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 4 954 612906 +2401+71-15+10-14+709-11+8-14+10-14+10-14+10-14+10-14+10-14+651-52+12+10-14+10-14+10-14+10-14+10-14 core_inv3sntrup953 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 5 954 727912 +7417+226+93+15+15+15+15+15+15+15+15+15+15+906+6-14-14-14-14-14-14-14-14-14-14+887-22-14-14-14-14-14 core_inv3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 selected 1014 199702 +13646+135+506+17-2-2-2-2-2-2-2-2-2-2-2-2-2+908-186+57-7+2+2+2+2+2+2+2+2+2+2+2 core_inv3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 0 1014 198879 +587+2+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+4166+1408+1743 core_inv3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 1 1014 199149 +9586+212+212+195+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup1013 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 2 1014 631692 +3131-178+408+0+0+0+0+0+0+0+0+0+0+0+0+0+643-256-256+0+0+0+0+0+0+0+0+0+0+0+633-256 core_inv3sntrup1013 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 3 1014 729983 +6282+185+22+22+34+66+34+22+34+66+744+24+34+66+34+22+34+66+34+22+34+66+559-508-496-468-522-499-497-468-522-499 core_inv3sntrup1013 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 4 1014 720490 +3389+1345-18+0+0+0+0+0+0+0+0+0+0+0+702+0+0+0+0+0+0+0+0+0-18+0+647+0+0+0+0+0 core_inv3sntrup1013 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 5 1014 852055 +6785+1001+995+995+995+1815+845+1012+995+995+995+995+995+995+995+1492-1080-1082-1082-1082-1082-1082-1082-1082-1082-1082-269-1235-1055-1082-1082-1082 core_inv3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 selected 1278 315642 +19163+4138+1570+164+3+3+3+3+3+3+606-1971+2273-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 core_inv3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 0 1278 315643 +1967+2418+2277+0+0+742+4109+2280+2275+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_inv3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 1 1278 303744 +17627+1137+475+1002+86+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1007+380 core_inv3sntrup1277 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 2 1278 784242 +1996+49+53+0+0-1+2-1-1-1+3028-3-1+0+3-1-1-1+2-1-1+839+51+24+1-1+2-1+0+0+2-1 core_inv3sntrup1277 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 3 1278 617329 +3590+852+536+487+480+496+475+484+480+496+475+484+480+496+1188-802-2076-794-2075-798-2077-794-2075-798-2077-794-2075-798-2077+546+455+480 core_inv3sntrup1277 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 4 1278 931976 +151+7713+7602+7603+7602+7602+7598+2756-208-57-692-57-57-57-692-57+745-204-57-56-57-56-57-56-34-57+606-40-57-57-57-56 core_inv3sntrup1277 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 5 1278 906483 +3213+65+6+800+6+0+0+0+0+0+0+0+0+725-158+0+0+0+0+0+0+0+0+952-182+0+0+0+0+0+0+0 core_invsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 selected 1307 815150 +1851+583+94+140+7+9+15-52-51+20+582-11+44-53+2+33-50-25-18-44-21+635-22+21+104-54-3+33-60-25-18-54 core_invsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 0 1307 815145 +87-86-27+36-102-6+52-90-16+17+589-1+66-88-4+64-85-6-306-78-4+366-7-6+66-16-4+66-14-6+66-16 core_invsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 1 1307 816833 +2631+646+94-2+63+29+57+28+28+27+678+19-11-12-12-12-17-12-11-11-12+612-9-9-9-9-9-9-9-9-9-9 core_invsntrup653 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 2 1307 8140524 +2867+7239+8875+4748+1680+768-4488-6040-7623-10055-10750+11252+8750+7724+5982-1406-1531-3724-4557-7463-8504-8472+10673+7246+7506+4060-1117-2393+335-417-6713-810 core_invsntrup653 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 3 1307 2695771 +5136+7453+3855+4046+1701-744+1093-311-158-2158+214-469-895+1819+19-704+767-1506-1281-747+1598+228-778+1335-1052-1964-798-1314-270+309+1655+214 core_invsntrup653 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 4 1307 9014675 +6092+3390-1533+1177+221+507-2641-1647+1331-1300-1259-965-1231-907+1864+235-352-188-457-153-327-112-249-107-62+2744+2464+152+359+88+444+3208 core_invsntrup653 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 5 1307 8744034 -13559-13858-17818-18378-18719-18782-20394-19906-20430-21054-21201-20789-3318+136839+11652+4393+4528+5765+6129+5868+6885+6899+7628+7561+6274+6483+6749+6952+7209+7656+8117+8391 core_invsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 selected 1523 1107892 +1377+384-14-13+44-31-31+723+21+10+12+0-2-24-14+586-14+35-19+45-15+16-44+613-43-25-58+34-58-14-58+580 core_invsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 0 1523 1107896 +205-29-5-43+19-43+641-43+49-18+20-43+21-43+627-45+26-42+20-42+24-42+20+641+38-27+60-26+15-52+16+673 core_invsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 1 1523 1110198 +1236+381-136-60-31+76+531+18-52+18-82+22-67+22+574+23-52+19-85+19-63+21+573+29-52+25-82-21-106+17+673+9 core_invsntrup761 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 2 1523 11018010 +4131+11309+13962+44058+6629-7029+19699+6847-7117-3537+4587+18355-10481-5637-10110-3472+41029+3353-8165+2089+20913-7600-8972-10271-7156+3939+10570-10195-1636+22702-6566-7840 core_invsntrup761 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 3 1523 3488983 +3358+4987+2608+4198+448+759-853-861+312-686-161-644-228+1417-1291-751+657-885+65-820-677+708+118+745-299-303+1263-926+463-1212-513+950 core_invsntrup761 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 4 1523 12225730 +12669+16679-670+8520+4724+7264+1575+1375-846+12528+5070-204+7334-3291-3244-1886-6105-3362-3989-4686+6499-6637-5859+7485+109+3355-217+143-3889-3068-6164-2918 core_invsntrup761 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 5 1523 11845649 +5384-325+3335-2919-3768+1212-3245+1936+6110+916-54+1587+3317+1283+2826+2088-204+3528+3754+1139+1793+5334+4607-11661-9952-6670-4267-13019-10636-4888-10840-7772 core_invsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 selected 1715 1401976 +1546+114+251-45-9+31+624-3-21-18-9-10-9+695+34+51-5-8-6+634-6-6-8-12-15+639-3+10-12-3-5-6 core_invsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 0 1715 1401762 -26-29-61-50-52+591-45-38-30-21-32-33+575+32+0+25+17+30+687+5+3+7+6+0+640+11+7+6+0+10+7+827 core_invsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 1 1715 1403735 +3277+778+70-18+693-58+41+32+594-31-18+729-29-98-56-76+17+648+2-116+22-106-92+666+4-59-26-48-95+35+608-5 core_invsntrup857 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 2 1715 13929493 +16199+6777-18460-14489+30436+3085-376+1009+13969-8623+16410-11029-4463-2350-3509-3903-7053+13497-17621+12402-16555+21977-5793-9855+2763-8432+8148-8440+10227-9293+19609+12304 core_invsntrup857 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 3 1715 4402828 +194+4477+2102+1014+870+280+995+1195-7+704-618+1048-404+764-717-8-949+444-1195-207-632+245-850-679-724-841-1282+456-693+162-2234+1149 core_invsntrup857 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 4 1715 15463908 +10928-4098-15735+37574+4739-6895-10366+16261-356-10702+7724-3266-6998+10294+6006+11667-4809+9071-579-2867-7324+1652+908-11459-2198-3388-4115-3883+16669+6106+3029+2304 core_invsntrup857 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 5 1715 14969872 -5604-2942-4586-6553-6674-6161-6065+1074+3339+1245-1001+2147+1804-1153+2653+41+451+4504+382-986+4396+1250-2173+2570+764-1259+2314+1329-486+1899-1759-1689 core_invsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 selected 1907 1731090 +923+283+770+28+4-34-9+3899+638-20-32-30-45+640-29-31-53-39+701-12-75-28-49+635-3-40-78-27+616-53-21-37 core_invsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 0 1907 1731134 +527-50-65-63-72-55+956+411+658+401+359+1066-59-29-59-65+608-48-62-68-63+575-47-73-60-60+558-50-61-74-62-68 core_invsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 1 1907 1732850 +1303+233+22-3+665+16-28-9-5+633+4+7+19-9+618-4-1-10-1+1257+1-45-18-19-15+611-9-27-16-18+640-17 core_invsntrup953 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 2 1907 17244135 -32324-22953-28172-21144-27154-23625-30813-27415-28292-28248+49465+14106+32415+13685+7542+5604+38341+24108+23363-16273-19948-13534-4709+5121+4144+1018+17090+12700+25685+22191+17544+26253 core_invsntrup953 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 3 1907 5419500 +5208+6735+1398+1210+895+2827+369-577-907-1265+2011-97-1094-333-1163+1299-325-1183-532-970+1846+386-1271+363-1455+1676+56-1689+238-2037+688-458 core_invsntrup953 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 4 1907 19165686 +1242+2864-9229-2273-1014+11174+2229+614-906+15987+6922-1610+3481+5782+5731+4803-3506-359-4933+972-5025-4627+3313-5480-4666+199-4572-4734-3692-1562+34437+34292 core_invsntrup953 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 5 1907 18515619 -3495+268+4867+2889-2650-1650-9044-3618-3843-2061-4111+6856+5120+4541+7255+12962+13916+603+6014-1038+3040+3269-934-982+1076+4787+744-20944-19266-20137-32276-5150 core_invsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 selected 2027 1957968 +1472+63-158-300+742-291-193-305+745-53+91-311+99+628-153-70+95+365-146-20+131-266+595-45+103-304+727-49+88-2-138+329 core_invsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 0 2027 1957901 -141-131-264+881-243-137-249+736+20-138-7+128+355+219+5-127+642-103-246-74+35+593-210-79+18-29+410-63+37+180+449+197 core_invsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 1 2027 1959473 +954+12+528-102-380-393+632-135+127+196+41+634-77-305-278+62+558-136-262-179+524+30+80+8-69+607-126-339-224+620+118-27 core_invsntrup1013 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 2 2027 19518669 +3461-12095+20974+15786+8864-6590-10007-21755+21808+16061+7601-2515-10772-15863+7863+3724+3206-9181-10800-15952+19034+14304+3786-6484-12797-15771+18332+13647+2122-8010-11623+12924 core_invsntrup1013 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 3 2027 6440686 +1120+6277+2296+5940+284+6990-10+1722+6360+267-2032+1998-1328-2789-177-1844-1169-3006-1927+2559+539-2767-2830-3091+4269-147-2606-3139+3100-2497+2796+406 core_invsntrup1013 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 4 2027 21628599 +3360-1643-7453+5757-13208+11371-935-2316+4115-1417+11919-2361-4739+2700-2066+4686-1414+17784-5874-2064+9498-8234+10408-663-2416+414-148+9421-84-9340+4212-2049 core_invsntrup1013 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 5 2027 20948258 +26861+25400-154-2747+6064-3897-10161-3251-5854-7310-4114-4189-17569-4018-17625-17019-1865+3881+146271+1930+6211+14704+16138+2680+7515+10263+194-1351+1215-221-644+2181 core_invsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 selected 2555 3086394 +2472+1174+91-104+571-168-171+503-166+478-175-118+491-133-163+448-121-179+437-136-188+84-123-179+454-131-184+353-98-185+438-116 core_invsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 0 2555 3086392 +610-115-96+417-112-102+459-114+484-193-101+522-160-110+485-211-99+514-156-103+552-209-95+526-156-109+504-925-97+507-156-115 core_invsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 1 2555 3090962 +1206+433+807-33+48+627+49+1498+28+42+642+65-7+695-374-397+220-379-380+261-356-374+312-335-380+229-482-380+249-338-380+244 core_invsntrup1277 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 2 2555 30962300 +4436+16876-6638+8920-21425+5665+8819+7266+9393+9022+1566+12591-2125-8035-8168-18447+6847-19365-30213-11919-5955+2229+1074+9453-3784+11713-18186+386-25024+2176+3061-25437 core_invsntrup1277 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 3 2555 10365491 -1993-1998-2094-8014-10949-8418+114-243-3512+5930+2620+5307-1761+2962+3503+6162+2402+1489-2618+5540+1356+5699+2141+6481+4343-5963-1303-6376-1770+656-2573-6262 core_invsntrup1277 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 4 2555 34364731 -7661-22847+13806+10492+8355+27879+19444-21866-21681-59909-21648-9647+43380+40137+8564-756+20673+1129+4712-12429-3752+23630+34749+34464+37773+30501-40937-46535-43035-13958-17320-22909 core_invsntrup1277 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 5 2555 33182618 +29791+29702-12071-1937+9661+13435-5996-5868+23441-11768-9837-20745-2165-1730-24577-11364-7869+8463-3687+7390-4125-30247-9911-8036-28542+9185+3733+46957+12819+58666+71396+45095 core_mult3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 selected 653 11229 +6522+226+44-5+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12 core_mult3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 0 653 11232 +135+75+1+12-19+12-19+12-7+12-19+12-19+12-19+12-19+12-19+12-19+12-19+12-19+12-19+12-19+12-19+12 core_mult3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 1 653 12210 +4939+452+94-12+1-16+13-16+22-16+13-16+13-16+13-16+13-16+13-16+13-16+13-16+13-16+13-16+13-16+13-16 core_mult3sntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 2 653 69035 +4277+131-34+0+0+0+0+0-14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 3 653 95652 +409+196+67-25-76-12-12-12-12-12-12-12-12-12-12-12+664+58+5+5+5+5+5+5+5+5+5+5+5+5+5+5 core_mult3sntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 4 653 112249 +730+277+92-181-196+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 5 653 110898 +697+383+263+100+123+2+0+0-31+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-23+0+0+0+0+0+0+0 core_mult3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 selected 761 11861 +2167+325+153+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22-36+22 core_mult3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 0 761 11864 +225+138-15-5+4-5+4-5+49-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5 core_mult3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 1 761 12853 +1209+183+39+42-10+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 2 761 102000 +957+461+92-6+84+84+84+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 3 761 123241 +416+262+114+9-1+8-15-10-16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 4 761 153944 +744+251+28+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 5 761 146467 +636+198+98-1+4-42-47-9-38+13+1+8-28+4+14-5+14-6+4+14+5-1+5+5-6+14+639-33-75-57-76-68 core_mult3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 selected 857 15678 +1683+270-11+60+51-58+45-58+51-58+51-58+51-58+51-58+51-58+51-58+51-58+51-58+48-88+21-88+21-88+21-88 core_mult3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 0 857 15750 +93-138-22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 1 857 17581 +1117+294+86-44+17-11+18-11+20+13-29+13-22+13-29+13-22+13-29+13-22+13-29+13-47-6-29+13-22+13-29+13 core_mult3sntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 2 857 127972 +1157+869+388-25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 3 857 153370 +294+52+50-66-106-101-97-97-97-118-105-105+557+67+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4 core_mult3sntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 4 857 189913 +818+304+212+52+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1017+138 core_mult3sntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 5 857 183541 +649+152+66+10+6+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0 core_mult3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 selected 953 16142 +1103+506+60-5+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21+14-21 core_mult3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 0 953 16144 +100+146+94-28+21-28+21-28+47-28+21-28+21-28+21-28+21-28+21-28+21-28+21-28+21-28+21-28+21-28+21-28 core_mult3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 1 953 18106 +2956+234+78-95-74-47-68+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 2 953 160531 +1322+941+583-110+43+0-26-26+0+0-26-14-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 3 953 187926 +517+181+17-62-52-65-76-67-72-55+76+88-44-47-36-55-38-44-56-28+90-15+704+133+18+170+38+175+46+164+6+15 core_mult3sntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 4 953 237768 +729+180+186-17-41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+688+174+119 core_mult3sntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 5 953 224932 +710+110+145+5-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 selected 1013 16719 +819+191-67-97+3+0+0+0-3+0+0+0+0+0+0+0-4+0+0+0+0+0+0+0+3-2+0+0+0+0+0+0 core_mult3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 0 1013 16620 +133+99-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+5+1+0+0+0+0+0+0 core_mult3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 1 1013 18488 +2214+196+131+6+15-9+5-3-20+4-2-21+5-3-20+4-2-21+5-3-20+4-2-21+5-3-20+4-2-21+5-3 core_mult3sntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 2 1013 176359 +743+292+44+12+0+0+0+0+0+0+0+0+0+0+15+0+0+0+0+15+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 3 1013 208874 +119-551-734-852-822-557-826-860-54+496+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 4 1013 267999 +727+276+240+93+109+109+92+92+92+92+92+92+92+92+612-94-76-72-72-72-72-72-72-72-72-72-72-72-72-72-72-72 core_mult3sntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 5 1013 251312 +749+155+17+6+1+1+1+1+1+1+1+1+1+2-1+722-35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 selected 1277 21007 +5120+231+25-37+0+27-26+19-33+26-33+19-33+26-33+19-33+26-33+19-33+26-33+19-33+26-33+19-33+26-33+19 core_mult3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 0 1277 20893 +398-13+120+107+131+28+60+88+114+124-40+94-14+19-40-24-40-25-38-26+86+72-40-25-38-26-40-24-40-25-38-26 core_mult3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 1 1277 22801 +3322+167+144-27+77+28-7-67+30-21-44-12-17-53+17+2+34+18-12+16-48-20+6+4-28-25+44+16+34-20-13-12 core_mult3sntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 2 1277 293050 +1124+641+431+385+394+394+394+976+12-1-1-1-1-1-1-1-1-1-1-11-1-1-1-1-1-1-1-1-1-1-1-1 core_mult3sntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 3 1277 328485 +516+322+271+220+992+88-55+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 4 1277 431699 -1289-1668-1738-2-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5+1362-2080+15+15+15+15+15+15+15+15+15+15+15 core_mult3sntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 5 1277 400237 +428+33-22-51-74-26-26-26+815-24+0+0+0+0+0+0+0+0+0+0+0+0+0+0-32+0+0+0+0+0+724+133 core_multsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 selected 1306 17289 +9634+368+302+33-55+50+11+21+0-1-1+6+2+6-19-12-11-4-11+6-9-4-9-4-11+9+2-11-16+4-2+3 core_multsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 0 1306 17283 +326+20+38-24+31+7-15+8+4+4+5+4-5+4+10-18+4-4-10-18+4-4-12-18+4-4+3-4-10-18+0-4 core_multsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 1 1306 17917 +8111+572+200+154-53+16+4+5-15-3+1-3+1-4-16-4+1-4+1-4-16-4+1+0+1+0-16+0+1+0+1+0 core_multsntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 2 1306 117442 +719+247+18+6+3+3+3+2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_multsntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 3 1306 112857 +1891+349+166+37+34-15-15-25+1+1+1+1+1+1+1+1+1+1+1+698+4-10-3-2-2-2-2-2-2-2-2-2 core_multsntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 4 1306 298022 +732+404+163+15-5+78+73-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4+782-163+18+18-6+18-6+18 core_multsntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 5 1306 340352 +622+239+17+73-62-54-45-64-53-48-56-47-35-55-48-54-78-54-58+667-58-18+66+53+57+91+67+84+78+80+75+75 core_multsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 selected 1522 17445 +4105+390+325+10-2+6-21+26-8-40-5+27-8-17+28-5-22+28-9-17+27-6-22+28-9-16+28-25-22+34-9-18 core_multsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 0 1522 17442 +387+96-1+38-4+33-13+28-4+26-4-17-4-17-12+28-11+28-22-6-27-50-4-45+27-25+33-25+27-25+21-32 core_multsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 1 1522 18343 +1957+288+109+20-57+5-5-3-1+5-1-3-1+5-1-3-1+5-1-3-1+5-1-3-1+5-1-3+79+19-6-5 core_multsntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 2 1522 171040 +728+348+49+3-52-52-52-52-52-52-52-52+676+17+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 core_multsntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 3 1522 153954 +597+126+9+21-16-49+7-3+12+3-39+15+39-49+13+0-57-49+4+14+45-45-49+11+40-44-38-3-4-13+7+16 core_multsntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 4 1522 405904 +1528+286+124-24-18-15-15-15-14-15-15-15-15-15-15-15-15-15-15-15-15-15-15+757-5+61+61+61+61+61+61+61 core_multsntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 5 1522 458560 +682+107+103+182+10-14+7+13+20+15+797-2-30-3-1-2-30+3-9-11-8-5-9-26-2-1-8-1+0-7+670-23 core_multsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 selected 1714 24458 +4345+434+165+50-20-30-36+32-15-3+36-51+34-23+11-40-3+39+19-43-26-18+18+57+12-17+22-5-16-43+0-59 core_multsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 0 1714 24461 +169+19+10-19-39-22-48-1+34-20-14-74-21-14-47-34-42+16+37+21+0-4+30-14+16+63+16+63+19+55-8+4 core_multsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 1 1714 26747 +1770+287+188+25-52+3+1-3-15-11+2-8+7-13+20-3-38-9+18-25-16-4-7+29+1+10-3-28+18+14-17+2 core_multsntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 2 1714 210534 +659+187-25+24-37-6-4-5-5-5-5-5-5-5-5-5-4-5-4-5-5-5-5+750+56+13+13+13+13+13+14+13 core_multsntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 3 1714 196277 +520+159+106+5+2+30+55-9-19+2-7+2-16+0-8-2-12-2-8+2-12-3-12+2-6-9-12+25+50+1+17+60 core_multsntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 4 1714 511811 +2105+89-135-128-41+10+4+0-12+1+2-10+3+2-12+1+2-10+431+12+34-4+31-7-2+32-8+31-6+31-6-6 core_multsntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 5 1714 578521 +597+175+1015+8+0-32-8-34-31-6-30-23+3-27-19-33-9+675+124+0+12+8+0+10+5+16+9+10+7-13+5-30 core_multsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 selected 1906 24751 +1392+589+249+82+20-55-29-91-11+773+34-13+40-12+18+28-2+19+60-21+20-16-22-32-43-5-68+38-27-49-13-23 core_multsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 0 1906 24752 +246+48-47+50+51-17-48+47-46-15-28+40+0+13-24-7+45+40-10-9-2-1-24+0-18+29-11+47-5+5-19-39 core_multsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 1 1906 26937 +1525+128+70-39-37+26+28+69+18+42-127-39-26+61+37+58-119+43-46-87-115-46-155+17-3+34-36-39+40-16-40+72 core_multsntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 2 1906 259752 +577+232-118-102+0-1+0+2+1-3-1+0+0-3+1+0+2-3+0-1-3-1-3+0+642+10+34-9+32-9+29-12 core_multsntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 3 1906 250690 +558+316+115+34+0+11+56-10-11-9-14-9-10-9-15-9-8-9-12-9-8-9-12-9-8-9-12+2343+1943+1865+1823+1816 core_multsntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 4 1906 631990 +286+87-173-160-181-181-168-171-171-173-169+574+103+16+15+13+13+10+15+12+13+9+14+9+14+9+741-37+50+38+38+38 core_multsntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 5 1906 712172 +485+148+67-3-25-27+616+70-37-50-43-44-59-43-68-72-30-37+633+91+8+7-1+4+22+13+11+13+19+5+20+665 core_multsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 selected 2026 25039 +2836+323+190+64-23-39+25+41+35-8-45+32-73+39-19-17+3-53+10-18-38+31+36+16-69+0-35-54-14-23-35+57 core_multsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 0 2026 25022 +92+45+37+10-2-24-27+27-14-17-13+22-25-9-35-37+10-9+4+19+6+33-16+56+51+17+0-14+30-19-20-18 core_multsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 1 2026 27175 +2273+283+26-49+12+26-63-93+17+34+70-106+23-96+22-92+24-82+33-108+34-91+45+31+24+36-109+21-106+35-109+21 core_multsntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 2 2026 288820 +490+218+71+53+29+5+8+8+8+8+8+8+8+8+8+8+8+709-15-58-63-63-63-63-57-18-19-12-12-12-12-12 core_multsntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 3 2026 274467 +455+123+19+29-2-14-17+14-13+26-13-9-7+25-37+16+1037+21+31-21-12-12-10+24-6-6-10-11-14-11-12+22 core_multsntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 4 2026 710403 +555+46+17-3-81-87+1338+136+2-36-39-38-38-36-38-38-37-38+2227+344+89+93+89+90+87-36-49-48-49-49-48+852 core_multsntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 5 2026 802591 +227-195-253-231-237-263-229-252-228+502-95-76-78-50-78-22-57-29-94-62+664+102+143+109+141+123+59+133+125+125+131+122 core_multsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 selected 2554 31225 +4016+73+106+55-40-43+39-47-45+34+48+108-43-37+15-48+57+25+56-55+25-77-72-5-39+10-36+68+14-27+19-40 core_multsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 0 2554 31211 +193+67+129+68-8-3-73+43-25+49-5+13-38-68-61+32-12+2-40-56+27+32+38-21+5-12-78+29-56+23-52-5 core_multsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 1 2554 32764 +4522+223+182-89-189+189-134-213-71-227-251+192+191-96-5+186-26-262-197+174-81-85-75+219-42+127-99-18+203+215+14-249 core_multsntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 2 2554 461640 +789+510+117+12+4+4+4+4+5+4+1249+26-7-7-7-7+4-5-7-7-7-7-7-7-6-6-5-5-5+807+60+43 core_multsntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 3 2554 437716 +486+100+48+13+13+13+1-16-10-15-19-22-16-24-6-5+738+97-13+14-9-1-14-1+0+18-19+20-15-1+2+10 core_multsntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 4 2554 1153319 +584+1072+18-170-180-169-200-188-183+756+19-54-59-71-63-74-64+727+92+86+67+76+81+74+81+674+36-36-11-39-28-25 core_multsntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 5 2554 1265900 +530+43-268+12-37+2+612+66+122+103+148+121+119+847+68-97-101-129-104-105-21+538+22-193-167-186-167-209+383+85-63-133 core_scale3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 selected 1306 179 +260+125+21+35+1+3+1+1-2-2+1+1-2-2+1+1-2-2+1+1-2-2+1+1-2-2+1+1-2-2+1+1 core_scale3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 0 1306 178 +85+4+11-15+12-1-14-2+12-1-14-2+12-1-14-2+12-1-14-2+12-1-14-2+12-1-14-2+12-1-14-2 core_scale3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 1 1306 192 +195+128+90+46+26+9-17-1-5+9-17-1-5+9-17-1-5+9-17-1-5+9-17-1-5+9-17-1-5+9-17-1 core_scale3sntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 2 1306 3274 +452+40+12+26+23+2+2+2+11+11-13-8-8-13-13-13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 3 1306 2558 +211+55+8-17-17-17-17-17-17-17-17-43+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1 core_scale3sntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 4 1306 3273 +218+1+43+15+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 5 1306 2559 +201+56+12-18-18-44-44-44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 selected 1522 208 +250+93-5+6-14-1+10-15-1-1+10-15-1-1+10-15-1-1+10-15-1-1+10-15-1-1+10-15-1-1+10-15 core_scale3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 0 1522 208 +110+24+20+4-18-2+6-2-15-2+0+4-18-2+6-2-15-2+0+4-18-2+6-2-15-2+0+4-18-2+6-2 core_scale3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 1 1522 217 +186+70+86+46-1+0+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 2 1522 3792 +573+143+62+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 3 1522 2948 +312+115+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 4 1522 3792 +249+89+27+61+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 5 1522 2948 +293+80+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 selected 1714 228 +238+122+85+43-6+13-19-4-2+13-15+11-19+13-19-4-6+13-19-4-6+13-19-4-6+13-19-4-6+13-19-4 core_scale3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 0 1714 228 +76+22+18-5-5+12+1-18-5+12+1-18-8+1-6+12-18+1-6+12-18+1-6+12-18+1-6+12-18+1-6+12 core_scale3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 1 1714 243 +170+132+88+28+12-12+2+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 2 1714 4279 +495+179+56+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+47+0+0+0+0+0+0+0 core_scale3sntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 3 1714 3328 +265+83+16+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 core_scale3sntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 4 1714 4231 +270+99+54+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 5 1714 3323 +248+89+30+7-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 selected 1906 248 +285+109+54-10+10-2-2-11+10-2-2-11+10-2-2-11+10-2-2-11+10-2-2-11+10-2-2-11+10-2-2-11 core_scale3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 0 1906 248 +82+23+22-5+4-3-2+14-3-12-1+13-3-12-1+13-3-12-1+13-3-12-1+13-3-12-1+13-3-12-1+13 core_scale3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 1 1906 267 +196+134+88+37-4-2+1-3+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 2 1906 4749 +411+134+94+70+7-16-48-48+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 3 1906 3684 +302+147+18+56+61+1+0-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 4 1906 4749 +239+113+46-4-37-16-16-41-48+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 5 1906 3686 +253+146+49+69+59+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 selected 2026 265 +259+96+58+22-7-3-1+10-20-3-1+10-20-3-1+10-20-3-1+10-20-3-1+10-20-3-1+10-20-3-1+10 core_scale3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 0 2026 264 +76+29+23-2+0+4-1-2+0+4-1-2+0+4-1-2+0+4-1-2+0+4-1-2+0+4-1-2+0+4-1-2 core_scale3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 1 2026 364 +90+185+66+14+11+10+6+1+0+0+0+0+0+0+0+0-1-1-1-1+0-1+0-1+0+0+0+0-1-1-1+0 core_scale3sntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 2 2026 5061 +358+47+35+24+0-2+0+0-2+0+0-2+0+0-2+0+0-2+0+0-2+0+0-2+13+0-2+0+0-2+0+0 core_scale3sntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 3 2026 3893 +305+122+105+36+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 4 2026 4997 +256+70+44+52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+35+0+0+0+0+0+0+0 core_scale3sntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 5 2026 3921 +213+46+28+63+32-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3 core_scale3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 selected 2554 325 +243+107+68+15+10-13+7-5-12+0+7-5-12+0+7-5-12+0+7-5-12+0+7-5-12+0+7-5-12+0+7-5 core_scale3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 0 2554 324 +78+15+17-1+11-3+3-12+0-4+16-12+0-4+16-12+0-4+16-12+0-4+16-12+0-4+16-12+0-4+16-12 core_scale3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 1 2554 345 +172+119+84+41+25-1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 core_scale3sntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 2 2554 6257 +415+105+69+12+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 3 2554 4907 +196+90+64+52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 4 2554 6257 +225+79+75+15+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 5 2554 4947 +165+19+25-4+24-4+24-4+24-4+24-67+24-67+24-67+24-67+24-67+24-67+24-67+24-67+24-67+24-67+24-67 core_weightsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 selected 2 61 +301+64+63+62+1+13-12-1-1+2-1+2-2-1+2-1-1+2-1-1+2-1-1+2-1-1+2-1-1+2-1-1 core_weightsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 0 2 63 +49-4+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 1 2 89 +152+109+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 2 2 1414 +161+11+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 3 2 1301 +111+14-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 4 2 1414 +158+31+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 5 2 1288 +144+1+1+4+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 selected 2 65 +201+62+61+60+0-2-3-2-2-1-1+12-12-1+12-14-1+12-13-2-2-1-1+12-14-2-2-1-1+12-13-1 core_weightsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 0 2 65 +49-2-1-1-2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 1 2 95 +129+125+53+4+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 2 2 1627 +174+32+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 3 2 1489 +115+26+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 4 2 1627 +175+32+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 5 2 1478 +122+29+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 selected 2 65 +192+64+63+64+1+0+0+0+13-11+0+0+0+1-1+1+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 0 2 66 +50+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1-1-1-1-1+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 1 2 101 +150+110+58+18+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 2 2 1832 +174+55+45+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 3 2 1669 +104+13-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 4 2 1828 +159+76+45+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 5 2 1658 +135+21+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 selected 2 67 +160+63+60+64+3+13-13-2-2-2-2-2-2-2-2+0+0+0-1+0-1+0-1+0-1+0-1+0+0+0-1+1 core_weightsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 0 2 66 +52+2+1+0-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2-2-1-1+0+13 core_weightsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 1 2 107 +130+88+56+4+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 2 2 2040 +166+27+42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 3 2 1861 +124+11-8+4+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 4 2 2056 +111-5+53+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 5 2 1861 +140-24-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 selected 2 66 +186+64+66+62+4+0+1+0+1+0+0+1+1+0+1+0+1+0+0+0+1+0+1+0+0-1+0+0+1+0+1+0 core_weightsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 0 2 68 +52+2+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1 core_weightsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 1 2 85 +168+148+25+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 2 2 2097 +118+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 3 2 2095 +152+26+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 4 2 2097 +117+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 5 2 2091 +125+16+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 selected 2 86 +233+108+22+52+60+61+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 0 2 86 +89+39+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 1 2 95 +161+152+70+21+21+21+11+11+11-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 core_weightsntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 2 2 2707 +246+46+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 3 2 2479 +99-21-11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 4 2 2707 +159+54+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 5 2 2468 +91-42-21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 selected 653 109 +701+260+109+25+4+4+0+0-1+1+0+0-1+2+0+0-1+0+0+2+0+0-1+2+0+0-1+2+0+0-1+2 core_wforcesntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 0 653 128 +294+193+37+27+16+13+14+10+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 1 653 108 +120+18+1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 core_wforcesntrup653 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 2 653 260 +314+195+19-1+0+0-4-1+0+0-4-1+0+0-4-1+0+0-4-1+0+0-4-1+0+0-4-1+0+0-4-1 core_wforcesntrup653 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 3 653 104 +170+17-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 core_wforcesntrup653 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 4 653 144 +493+46+0+0-1+0+0+0-1+0+0+1-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0 core_wforcesntrup653 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 5 653 172 +270+270+22+5+2+0-3+0-3-1-3+1-3-1-3+2-2-1-3+0+0+3-1+0-3-1+2+4-2+0-3+0 core_wforcesntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 selected 761 120 +494+315+158+23+16-3+21-15-1+1-1+1-1+1-1+1-1+1+2-1-1+1-1+1-1+1-1+1-1+1-1+1 core_wforcesntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 0 761 119 +129+12+7-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 1 761 123 +432+310+71+53+3+7-2-6+8-17+8-17+8-17+8-17+8-17+8-17+8-17+8-17+8-17+8-17+8-17+8-17 core_wforcesntrup761 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 2 761 250 +376+231+26+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0+1+0-1+0 core_wforcesntrup761 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 3 761 142 +124+11-3-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 core_wforcesntrup761 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 4 761 207 +2408+299+0-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1+0+0-1-1 core_wforcesntrup761 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 5 761 155 +231+150-4-1+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10+9-10 core_wforcesntrup857 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 selected 857 114 +1570+84+83+7-12+1+1+13-12+1+1+13-12+1+1+13-12+1+1+0-1-1-2-3-9-2-3-1-2-2-3-1 core_wforcesntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 0 857 137 +393+232+56+31+8+1-1+1-1+1-1+1-1+2-1+1-10+16-1+1-1+1-1+1-1+1-1+1-1+1-1+1 core_wforcesntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 1 857 139 +369+344+19+0-11+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup857 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 2 857 239 +337+205+20+6-5-1-3+6-5-1-3+6-5-1-3+6-5-1-3+6-5-1-3+6-5-1-3+6-5-1-3+6 core_wforcesntrup857 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 3 857 111 +79+28-16-1-7-1+0-1-1-2+0+14-15-7+1+0-1+3+0+14-15-7+1+0-1+3+0+14-15-7+1+0 core_wforcesntrup857 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 4 857 181 +1566+86+2-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 core_wforcesntrup857 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 5 857 168 +284+226+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 selected 953 150 +574+329+131+31-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-3+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 0 953 144 +168+69+38-2+0+0+0+0+0+0+0+0+0+0+1-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 1 953 148 +359+264-8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 2 953 198 +260+146-2+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 3 953 151 +117+5-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 4 953 185 +1499+147-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup953 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 5 953 199 +1404+267+117+9+33+4+1+2+0-3-1-3+0+0-3+0+1-2+1-4+0+1-2+1-2+1-2+1-2+1-2+1 core_wforcesntrup1013 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 selected 1013 108 +693+97+89+1+0+1-1+0+0+1-1+0+0+1-1+0+0+1-1+0+0+1-1+0+0+1-1+0+0+1-1+0 core_wforcesntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 0 1013 143 +356+215+31-1+2-3+0-1+2-1+0-1+2-3+0-1+2-3+0-1+2-3+0-1+2-3+0-1+2-3+0-1 core_wforcesntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 1 1013 157 +353+220+86+39+10+4+0-1-1-1-1+1-1-1-1-1-1+1-1-1-1-1-1+1-1-1-1+1-1+1-1+1 core_wforcesntrup1013 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 2 1013 269 +296+275+49-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1-3+1+1-1 core_wforcesntrup1013 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 3 1013 107 +110+30+6-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1+0+0+0-1 core_wforcesntrup1013 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 4 1013 179 +822+163+4-1+0+0+0+0+0+2+2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 5 1013 187 +303+235+41+6+9-1-1-1-2-1-1-1-1-1+70-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 core_wforcesntrup1277 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 selected 1277 171 +627+386+108+128+71+72+1-1+0-1+0-1+0-1+0-1+1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 core_wforcesntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 0 1277 168 +389+373+116+49+2-3+0-1+2-1-1-1+2-1-1-1+2-1-1-1+2-1-1-1+2-1-1-1+2-1-1-1 core_wforcesntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 1 1277 170 +194+113+30-2+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 core_wforcesntrup1277 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 2 1277 323 +389+236+52+13+0-7+2+0+0-7+2+0+0-7+2+0+0-7+2+0+0-7+2+0+0-7+2+0+0-7+2+0 core_wforcesntrup1277 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 3 1277 175 +249+163+88+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1277 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 4 1277 225 +462+327+40+0-1-1+1+0-1-1+1+0-1-1+1+0-1-1+1+0-1-1+1+0-1-1+1+0-1-1+1+0 core_wforcesntrup1277 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 5 1277 216 +329+348+73+29+24+2-1+1-1-1-1+1-1-1-1+1-1-1-1+1-1-1-1+1-1-1-1+1-1-1-1+1 kem_sntrup653 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair selected 994 938965 +20755+3470+530+232+247-64-175-124+108+37+514+91+13-189+161+35-143-179-214+93783-134-258-177-77-179-46+65-183+739+93358+28-245 kem_sntrup653_enc selected 897 38397 +2298+493+275-11+23+0-76-23+21+20+20+5-3+10+78-19-31+10+33+29-41-74-44-27-13+74-22-115+48-23+3-27 kem_sntrup653_dec selected 32 60512 +2947+659+223+8+16+92+10+13+26-75-58+66-109-23+113+1-7-135-8-117-16-7+33-22+1-17-143+253-23-86-9+108 kem_sntrup653 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 0 994 939331 +2602+786+80-109-114-26+93428+79+65+138+245+93041+54-124-75-111+47-144+634+130-273-170-15-144-133-160-275+1437+94-211+22-2 kem_sntrup653_enc 0 897 38646 +1601+415+296+228+125+20+25+9-12-29+40-13+13-92-34+64-64+111-36-47-16-35+30+25-27-3-27-30+38-11-16-76 kem_sntrup653_dec 0 32 60645 +1191+201-37+5+50+12-117-71-32-166-66-20+45-7-18+95+1442+117-9+3+29-70-39+82+7+66+1+17-93+85-83-156 kem_sntrup653 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 1 994 938975 +838-196-147-49-36-295-1+127-70+38-6-44+154+11+2+86+160+361-1-36-469+38-9-450+69-3+248+249+93181-184-57-62 kem_sntrup653_enc 1 897 38466 +482+6-80-65-11-4-33-49-33-85-37-41+87+24+72+90+99+38+103-51+1+92+171+12-10-69-108-46+8-9+11+665 kem_sntrup653_dec 1 32 60533 +678+203+95-72+5+18-40-53-31-42-5-20+21-3-40+6+66+14+55+59-112+24+18-58+18-47-67+13-103+64+23+8 kem_sntrup653 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 2 994 939724 +925+211-86+93881-176-163+1270-21-216-259-21+93163+20-242-244+510+137-418+33-72+93536+46+34-600+1331-107-86+164-93-615+269+5 kem_sntrup653_enc 2 897 38938 +1081+433+357+23+86+21-29+109+165+44+53-49-116-14-16+23-78+30-34+7-23-30-34-35-58+67-20-32-71+58-62-8 kem_sntrup653_dec 2 32 60502 +996+206+65+72-31+232+67-11+211+51-48+261+23-49-38-93+30-85+38-18-43-77-59-124-55-30-75+8+39+112+6-44 kem_sntrup653 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 3 994 939741 +1000+562+121-165-135+555+6-291-186+43-208-15-101-190+534+259-71+247+171+218-92-17+93730+879-173-109-136-202-131-70+323-69 kem_sntrup653_enc 3 897 38968 +912+99+15+92+16-53+109-30-76+50+61+53+53-25+89-127-52+61+117-74-34-54+59-40+8-56+12-77-12-36-53-34 kem_sntrup653_dec 3 32 60595 +844+19-58-27-121+2+61+52+21+124-14-43-67+20+6+14-61-16-49+107+83-98-12-85-14+116+34-58+55-11+33-7 kem_sntrup761 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair selected 1158 1254327 +8585+1228+381+696+1112-126+723-33-375-431+1030+19-432-715-715-56+777-418-584+42-455-279-185+352-80-125+123-145+233+246+979-520 kem_sntrup761_enc selected 1039 41018 +2330+602+24-9-12-84+42+46+91-8-70-33-53+112+13+9-14+90-40-23-23+7-6+68-16-53-12+5-50-34+26+55 kem_sntrup761_dec selected 32 63308 +3618+929+317+95+0-2+15-47+10-128+19-22-68+11+19-61-47-66+1-9+33-9-17+99+20-2-123+77-12+150-27-46 kem_sntrup761 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 0 1158 1254983 +1586+622-423+1149-61+416-1019+1519-197-189+65+46+94+127+766-118-167+67-258+0-144+775-298-10-166-5-175+73+718+88-403+113 kem_sntrup761_enc 0 1039 41177 +1264+645+169+25+59-10+9+28-139+2-21+89-6+9+48+6-99-17-17-65+12-6+26-22-145-6-49-29+10-93+35-63 kem_sntrup761_dec 0 32 63543 +1236+435+106-69+732+29-100-147-31+88-93-14+115+33-51+198+89+12-137-34-17-88+23-15+54-114+36-71-62+15+98-84 kem_sntrup761 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 1 1158 1254580 -241+569-1076+472+407+1171-874-746+458-130+532-296+585-326-450-336-265+810-466+1142-423-876+831-296+839+274-238-430-269+909-240+487 kem_sntrup761_enc 1 1039 40887 +926+242+55-63-99-8+11-73+37-54+0+67+23+12+58-16-13-54-60-87+3+64-19-55+27-23+77-28+39+15+29-58 kem_sntrup761_dec 1 32 63287 +697-115+26+103-15+104-15+10-7-134+85-116-23-58+123-54+118-50+118-12-21+5+41-130+38-32-21-57+59-7-5+39 kem_sntrup761 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 2 1158 1254619 +2591+1025+2020+1862+997+291+444+632+640+1210+614-518-351-318-480-497+360-456-563-327+340-434-318+222-526-473-382-518-623-513+154+2429 kem_sntrup761_enc 2 1039 41394 +1171+314+39+65-31+53-47-132-172-97-52-78-46-103-130-129-153-107-136-73+58+98-69+132+85+111+102+68+118+67+78+58 kem_sntrup761_dec 2 32 63544 +1030-47+107-13+82-21+8-45+206-27+101-95+120-30-31-190+19+65+66-78-19-189-107-42+99+36+269-40-41-83+87-18 kem_sntrup761 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 3 1158 1255711 +1392+307+493+475-716-912-292-149-487+503-627-390+507+246+162-166-312+284-83-872-420-155+462+434+437-550-246+372+1271-692-815+405 kem_sntrup761_enc 3 1039 41780 +883+286+95+32+52+41+19+48-49-35-59-77-51-83-108+68-73+53-62-27-47+13-62+23+39+5-34+57+22+33-52+18 kem_sntrup761_dec 3 32 63315 +1136+83-27+869-10+50-42-37+63+100-65-7+121+83+77+36-31+17+19-100-89-22-131+27+15-69-129-84+63-70-15-41 kem_sntrup857 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair selected 1322 1602767 +7620+1190+389-565+1133+42-766+16+196+617+341-790+96-746+1385+102+214-21-177+207+667-555-1028+53+62+899-214-449-272-863-933-197 kem_sntrup857_enc selected 1184 50833 +2500+598+120-3+210-1+157-43+97+35+23-115+35-66-30-25-30-62-10-45-9+12+150-86-58+49+7-41+180+34-90-49 kem_sntrup857_dec selected 32 82192 +4250+702+179+8-117+87+18+185-76+9+52-202+68+20+37+5+1+60-113-97-4+87-93-25+54-64-222-97-93-4-95+86 kem_sntrup857 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 0 1322 1602871 +2161+793+531-312-739+759-15+212-333-613+1350-524-347-437+276+319+312+222+52-984+388+725-63-907+141-1207+358-928+120-59-624-93 kem_sntrup857_enc 0 1184 51061 +1480+434-20+131+48+44-28-15+27-48-154+33-118-75-87+18-114+116-35-113-30-12+67+140+190-3+6+64-46-106-99+58 kem_sntrup857_dec 0 32 82280 +1280+290+88-89+75+27-61+28-21-12-66-79-135+77-46+16-86+40+112+17-52-45+124+51-90-4+72-184+76-25+14-105 kem_sntrup857 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 1 1322 1602477 +840+180+477-591-654-670+783-355-679+135-682-189+1442-235-749+273-633-33-75-602+375+60+1239+201-812+2385+361-112+358+274+279-167 kem_sntrup857_enc 1 1184 50822 +954+16-103+34-139-51-152+129-47+15-37+46+823-9+2+35+2-42-12+64+9+16-81+50+28+38-48+9+12-42-62+0 kem_sntrup857_dec 1 32 82195 +606+69-6+134+118-36+29-45+23+14-136+17+87+60-183-148+12+4-160-82-133+52-55-164-21+208+48+319-22+208-90-120 kem_sntrup857 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 2 1322 1603707 +869-58+293-330-429-430+296+191+531-378-35-148-34+842-99-13-176-247+541+236+254+126-721-516+846-421+166-82+73+434-345-157 kem_sntrup857_enc 2 1184 51357 +1371+311+258+158+43-82-61-46-38-45-134+11-40-29+9+3-113-41-75-70+54+28+39+40+14-50+35+56-2+8+13+48 kem_sntrup857_dec 2 32 82394 +1103+244+58-78+723-69-23-37+151-84+41+35+123+37-19+100-81+19-18-49+80-74+29-49-86-14+11+1+13-114-9-19 kem_sntrup857 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 3 1322 1603490 +418+86+474-77+315-4+64-420+332-94+51+143+59-269+522-603-251+316-75-577+1122-429-102-21+430+829-1224-285-136-613+963-424 kem_sntrup857_enc 3 1184 51366 +979-39+154-45+24+31-157+15-158-66-18+48+105-17+62+125-64+8+3-79-13-87+90+53+46-30+56-2-45-14+9-60 kem_sntrup857_dec 3 32 82150 +1116+187-5+102-28+38-87-49-115-14+27+76+107-103+33-50+72-73-12-53+59-89-13-83+116-35-48-16+41+64+544-73 kem_sntrup953 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair selected 1505 1956955 +8069+967+762+259-184-967-338-39+132-271+259+23-940+296+421-653-178+430+91-166-134+441+38-816-170+122+617-838+198-284+21-426 kem_sntrup953_enc selected 1349 54960 +4351+476+57+51+70-70+12-76+4+26-25-70+93+22-38+7+0+52-38+94-92+37-45-72-21+38+16-70-117+9-61+1 kem_sntrup953_dec selected 32 86430 +3379+943+245+22-189-175-90-86-45-6-156-51+82-9+30-73-20+729+33+12+44+30-192-35-67+168+34+3+95+160-110+22 kem_sntrup953 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 0 1505 1956783 +446+660-589+995+128-1117-654-219+1056+159+185+54+1517+107+94-595+1074-411+110-863-720+242+400-209+75+178+180638-214-906-727-369+86 kem_sntrup953_enc 0 1349 54812 +1285+577+42+65-82-5-36+36-14+0-51+50-30+52+31+94-87-7+51-137-51+26-89-33-42+11-21-42-59+64+79-2 kem_sntrup953_dec 0 32 86655 +2072+409+66+100+130-21-25+147+63+116-69-80-180+31-57-28-89-63-95+112-45-156+50-48-3+93-34-34+37+155-149-53 kem_sntrup953 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 1 1505 1955516 +1215-466+158-403-82+14+433+720-170-406-481+13+254+159+421-8+346+77+430-686+885-688-658-230-792+977+28+269-506+0+161-248 kem_sntrup953_enc 1 1349 54351 +1701+312-33-12+58-27-114-34-30-43-12-103+62-38+22-75-19+63+68-127+100+71+73-45+25-119+9+189+1+4-1-11 kem_sntrup953_dec 1 32 86288 +1439+175+10+92+11+117-99-97-55-142+9+244+26-63+23+3+82+22+81-114-94-74-55+25+12-106+104+35-33-50-63+109 kem_sntrup953 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 2 1505 1956702 +1530-398+1037-184-340-180+18+176+148-139-45+724-304+355+180+686+41-34+319+93+27-276-144-187+241-849+165-207+3555-200+9-124 kem_sntrup953_enc 2 1349 55047 +1292+303+346+18+49+117-25-28+801+32-20+18+65-81+39-53-80-34-32-79-83+22-53-1+31-88-80+49+28-47-52+51 kem_sntrup953_dec 2 32 86390 +1131+21+42+1-83-81-41+28+30-33-49+52-13-122-9+12+136-124+25+5+119-59+45+153-66+11-119+74-34-20-25+60 kem_sntrup953 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 3 1505 1956689 -147+888+99+364-344-485+1028-720-372-153+697-495-715+7-1061+398-396-30+245+297-173+413+245+1178+239-149-855-464+101+188+201+48 kem_sntrup953_enc 3 1349 54823 +857+271+158-10-23+53-24+4-9-67-56+22+28+24+39-85-98-31+4+72-50-2+12+19+20-27-18-152+5+17+8-94 kem_sntrup953_dec 3 32 86372 +674-245-25-48-129+63-70+10+141+24-88+6-47+86+90-43-6+34+54-118+41+52-58+38-105+135+31-106+29-37-77+97 kem_sntrup1013 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair selected 1623 2203462 +15633+2357+282+250-288+122+1999-16+100+688-360+38+471-45-468-51+146-47-542-35-411-90-371-101+304-101-554+200365+71-122-426-127 kem_sntrup1013_enc selected 1455 55829 +2028+727+235+42+171-10+35+39-31-23-14-9+67-47+175-87-81+11-5-106+147+18+2-57-102-27-129+14-45-26-1+23 kem_sntrup1013_dec selected 32 88492 +4930+1491+145+51+129-129-191-59-128+95-96+67-40+162-39+166+19+48-7+4-93+81-21-27-130+137-19-134+125-94-56-101 kem_sntrup1013 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 0 1623 2203850 +4587+202-193-46+798-403-587-516+550-370-446-540+3169-315+2067+104+2366-628+2097-594+270+135-57+2057+236-21-226-40+775-420-182-41 kem_sntrup1013_enc 0 1455 55914 +1704+515+265+101-60-37-6+79+79+136-95+13+71-3-117-189+0-51-107+24-21-66+36+58-129-122-106-24-50+35+36+57 kem_sntrup1013_dec 0 32 88795 +2177+986+131+98-194+13-8-60-93+16-68-10+51+158-32-54+23+54+30-47+58-84-95-84-37+1+8+4+16+99+29-54 kem_sntrup1013 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 1 1623 2203302 +369-444+1842-215+481-204-126+63-229+9-37-283+431-129+200343+79-111-530+2201+582-153+28-430-99-168-10-18+401+1885-505-97+613 kem_sntrup1013_enc 1 1455 55839 +743+192+65-81+7-12-36+51+28+11+63-93-50+5+16+112-38-88-47+45+66-65+9-54+33-21-138-15-15+59+8-19 kem_sntrup1013_dec 1 32 88463 +1659+943+587+38-38+90+22+1-58-114+82-18+11-39+134-53-52+69+2+134-120-10+26-37-103+12-44-93-229-150+859+55 kem_sntrup1013 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 2 1623 2204683 +1100-390-485-162-193-649-557+128-155-650-322+591-400+1667-733+2338+2005-513-365-73+2051+1197-848+341-510-126+1022+2810-591+1618-688+2505 kem_sntrup1013_enc 2 1455 56173 +1261+455+32+94-4+20-12-46+28+17-67-41-52-136-22+43-99+233+126-86+27+5-44+71+5-44+56+81-92+10-19-39 kem_sntrup1013_dec 2 32 88537 +2254+977+70+49-49+64-91+99-46+12-39-22-162+21-88+72-116-23-112+31+59+962-70-35+36-106-78-32+97-83+48+66 kem_sntrup1013 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 3 1623 2204263 +1145-467+4+519-275-114-80+369+68-15+242+888-300-96-358+896-339-512+3-591-30+339+429+507-180-214-200+1151-295+53+512-156 kem_sntrup1013_enc 3 1455 56224 +1183+459+95+28+130-17+92-32-45-39-23-6+100-33+13-110-41+37-3-46+96+70-38+19-142-36-80-80-62+67-8+88 kem_sntrup1013_dec 3 32 88615 +2078+816-38+30-47+40-26+69-44-12-42-20-113+678-73+30+37-103+2-32+69+40+10-12-170+47-20+68-13-100-24+93 kem_sntrup1277 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair selected 2067 3464035 +7270+322640+1294+1462+1912-1859-838-1043+1236+1654+491-300+1330+1179-209-994+1479+1871-4023-1722-2705-1026-306-3145-934-2574+409-266-1402+1024+283-1210 kem_sntrup1277_enc selected 1847 70184 +3899+659+316-35-26-77+66+90-76-91-38-82+15+95-21+7+30+87-147-103-56+73+144+10+101-45-60+23-126-76+175-34 kem_sntrup1277_dec selected 32 108778 +4833+1054+144-34+33+66-60+54-110+111-9+27-21-4-7-139+126+96+884-121-63+43+41-45-59-180+32-102-114-109+132-51 kem_sntrup1277 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 0 2067 3463784 +1196+1196+322567+727+1455-1153+1522-1534-1818-211-3011-3049+4736-2578-2218+647+610-149-1597+653-1341+510+161-146-624-222-217-125+448-35-147+705 kem_sntrup1277_enc 0 1847 69733 +1421+576-4-235-4-180-87+30+246-7-68-58+39-22-38+56-21-10+72+63+24+9+76-147-69+52+209-78-23-25-200+56 kem_sntrup1277_dec 0 32 108907 +1457+254+158+92-97+152-56-49-157-5+98-93-94-241+57+47-189-83-216-94+884-258-182+5+89-30-83+106+174+55+52+145 kem_sntrup1277 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 1 2067 3461532 +1788+1738-162-1131+815-992+214+1887+999+315405-1445-1086+1264-851-2863+1232-1993+1873-1162-672-231+319+733-1096+1015+26+830-225-988+1116-3986-836 kem_sntrup1277_enc 1 1847 69393 +1035+329+59-7-124-41+12-11+44+69-117-31+129-89-53-69-83-26+9-3+8-115+16-37+42+73-5-49+101+81-12+45 kem_sntrup1277_dec 1 32 108467 +1735+585+170+55+54-58+43-49-24-231+188+89-129-15-77+21+158+107+147-234-206-171-193+9+904-134+29-82-87-163-5+97 kem_sntrup1277 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 2 2067 3463863 -283-976+918+568+1802-854+351-2205-3428+136-1208-221+865+1634+15-750-1096-2091-2193+971-726+1370+305+1444+1215-956+121-165-1093+2386+1798+672 kem_sntrup1277_enc 2 1847 70181 +892+192+90+99-7+96+51+36+44+17+16-97-126-106-25-40-41-175+1+37-5+26-150-91+52-14-149+23-17-72-4-7 kem_sntrup1277_dec 2 32 108699 +792+26+103-20-51+32-28+71+86-8-40-186+186+37-20-31-85+80-120-139-29+47-49+2-34+89-224+94+1007+17-19-223 kem_sntrup1277 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 3 2067 3462568 -803-566+1800-1087+317316+783-1217+2009+369+286-1516-806+321761+1020-1710+385+77+1706+975-364+1372-1000+1894-669-333-379-998-1770+1022-2550+1021-3754 kem_sntrup1277_enc 3 1847 71478 +881+298+76-116+7+13+79-96-112+61-56+54-77-45+147-30+90+141-43+3-118+12-133-54+13+77-7-20-31+36-40+10 kem_sntrup1277_dec 3 32 108678 +1573+570+182+6+100+4-136-69+2+12+31-38-42-70+167+88+52+118-17-60+27-83-22-149-2-44-171+859+171+0-55-164 libntruprime-20241021/benchmarks/zen3-cezanne0000644000000000000000000155266614705505542017555 0ustar rootrootntruprime version 20241008 ntruprime arch amd64 cpuid 68747541 444d4163 69746e65 20444d41 657a7952 2035206e 204f5250 30353635 69772047 52206874 6f656461 7247206e 69687061 20207363 00202020 00a50f00 090c0800 7ed8320b 178bfbff 00000000 219c97a9 0040069c 00000010 00a50f00 20000000 75c237ff 2fd3fbff 00000207 00000000 00000000 00000000 00000000 cpucycles selected persecond 5000683000 cpucycles selected implementation amd64-pmc cpucycles selected 0 31 +42+0+0+0+0+0+0+493+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+757+0+0+0+0+0+0+0+0 randombytes selected 0 38 +10178+56+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1 77 +993+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 2 77 +12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 4 77 +7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 7 77 +13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 11 77 +2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 17 77 +10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 26 77 +5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 40 77 +10-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 61 77 +8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 92 77 +7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 139 77 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 209 77 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 314 77 +9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 472 77 +7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 709 77 +7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+134+2+17+27+0+0+0+0 randombytes selected 1064 77 +8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 1597 77 -1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 2396 77 +24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 3595 77 +28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 5393 77 +34-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 8090 77 +8-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 12136 77 +35+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 18205 77 +34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+69+78+0+0+0+0 randombytes selected 27308 77 +11+0+5+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 40963 91 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+35+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 randombytes selected 61445 93 +62-5-5-5-5-5-5-5-5-5-5-5-5-5-5+144+34+9+3+4+4+4+4+4+4+4+4+4+3+3+3+4 verify_897 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 selected 897 81 +3830+173+152+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 0 897 86 +948+151+39+105+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 1 897 80 +93+52+56+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 2 897 108 +2892+159-2-1+3+2-1-3+1+0+4+1-2+1-1-1+1-3+4-3-4+0+2+2+2-2-1-2-1-2-1-2 verify_897 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 3 897 1709 +2828+178-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3 verify_897 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_897 4 897 203 +2557+106+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_897 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_897 5 897 1776 +2087-1+73+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 selected 1039 74 +1913+163+58+88+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-2+0+0+0+0+0+0+0 verify_1039 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 0 1039 93 +2214+289+25+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 1 1039 74 +128+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1-1+0-1-1+0-1 verify_1039 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 2 1039 134 +2838+169+40+2+0-3-3+4-2+1-3+0+0-1-2+3-1-3+1-2+3-1-3+1-2+3-1-3+1-2+3-1 verify_1039 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 3 1039 1984 +916+169+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1039 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1039 4 1039 242 +123+144+15+3+1+0+0-1+0+0+0+0+0+0+2+1-1-2+4-6+3-5-4+0-4-2+0+0-3-2+0-3 verify_1039 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1039 5 1039 2127 +2819+189+18-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 verify_1184 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 selected 1184 95 +2769+96+140+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 0 1184 104 +1030+137-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 1 1184 94 +107+63+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 2 1184 162 +1489+153+1-1-5-2-5-3+3-4+2+5+4-2-3-1-1+1-3+2+2-2-4-4+2+0+4+0-1-3-1+9 verify_1184 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 3 1184 2190 +1013+152+30+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1184 4 1184 256 +1027+91+84+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1184 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1184 5 1184 2335 +939+117+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 selected 1349 82 +1133+164+1+0+0+1+0+1+0+1+0+1+0+1+0+1+0+0+1+0+1+0+1+0+1+0+0+0+1+0+0+1 verify_1349 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 0 1349 118 +1062+163+145+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1349 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 1 1349 82 +129+44+0+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1 verify_1349 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 2 1349 146 +135+152-1-3-4-2+0-3+3+2-6+2-3-4+4-1+0+4-2+0+0-4-2+2-2-1+2+4+2+0-2+2 verify_1349 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 3 1349 2604 +1508+167+53+9-7-4+9-7-4+9-7-4+9-7-4+9-7-4+9-7-4+9-7-4+9-7-4+9-7-4+9-7 verify_1349 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1349 4 1349 291 +976+126-2+1+4+6+5+3+2+0-1+4+1+1+1-2+3+3-3-2-1-3-5+2+1-2-4-1-2+0-2-4 verify_1349 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1349 5 1349 2751 +1010+144+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 selected 1455 119 +1036+168+53+121+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 0 1455 125 +63-2+18+18+19-2+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4 verify_1455 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 1 1455 116 +1036+177+152+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 2 1455 205 +1050+191+82+1+0-1+1+1+1+0+9+3+5+2-2+0+0-2-1+2-1-3-1+0+0-1+3+0+2-2+0-3 verify_1455 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 3 1455 2946 +1054+163+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1455 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1455 4 1455 312 +991+131+16+0+1-1+1-9+5-3+0+6+1-8+1-10+1-4+0-5-1+1-4-1+0+0-7+0+1-3-1-1 verify_1455 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1455 5 1455 2946 +1022+151+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 selected 1847 175 +221+155+12-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 0 1847 176 +24+12+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 1 1847 142 +1036+174+137+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 verify_1847 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 2 1847 256 +2286+149+79+17-1+3+4-2+0-1+4-1-5+0-4-3-5+2-1+2+4+2-3-3+0-5-1+4-5+11-5-2 verify_1847 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 3 1847 3420 +923-2+45-6+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9+7-9 verify_1847 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin verify_1847 4 1847 402 +985+55+108+6+3+1-11-9-17-8+6+6-14+12+10-14+15-14+0+6+8-16+5+0-16-15+7-11-3-11+6+0 verify_1847 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. verify_1847 5 1847 3747 +1086+136+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 selected 0 39 +4073+25+20+20+0+0+0+0+3+0+0+0+0+0+0+0+3+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0 hashblocks_sha512 selected 1 39 -1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 2 39 -1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 4 39 -1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 7 39 +0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 11 39 +0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 17 39 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 26 39 -2-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 40 39 +0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 61 39 +0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 92 39 +0-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 139 726 +4986+96+120-3+5-1-1-4-2+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 209 725 +20+29+3+0+0-3-1-1+1+3+2-7+4+0+0-3-1-1+1+3+2-7+4+0+0-3-1-1+1+3+2-7 hashblocks_sha512 selected 314 1389 +74+15-1+0+7+3-8+7-1-1-2+0-1+5+7+9-9-5+7+0-1-4+5-4-1-4+5-4-1-4+5-4 hashblocks_sha512 selected 472 2055 +37+10+15-2-4+2-6+5-7+6+0+0-7-8+9-3+2+1+1+0-3+2+1+1+0-3+2+1+1+0-3+2 hashblocks_sha512 selected 709 3389 +41+6+4-3-1-1-3+11-3+6-7-11-8+11-5-7+0-22-23+10-4+14-4+14-4+14-4+14-4+14-4+14 hashblocks_sha512 selected 1064 5387 +96+13-7-2-15-2-13+5+3+0+5+2-2-15-2-13+5+3+0+5+2-2-15-2-13+5+3+0+5+2-2-15 hashblocks_sha512 selected 1597 8048 +36+37+14-1+0-29+7+0-29+7+0-29+7+0-29+7+0-29+7+0-29+7+0-29+7+0-29+7+0-29+7+0 hashblocks_sha512 selected 2396 12037 +20+36+55-5+13+9+9-10-10-10-10-10-10-10+3881+3118+145+24-7+4+26-9-16+14-9-16+14-9-16+14-9-16 hashblocks_sha512 selected 3595 18699 +31+54+95+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 5393 28039 +0+0+5-2+8+11+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 8090 41928 +40+3+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 selected 12136 62589 +37+59-22-20+77-22-20+77-22-20+77-22-20+77-22-20+77-22-20+77-22-20+77-22-20+77-22-20+77-22-20+77 hashblocks_sha512 selected 18205 94569 -91-82-74+119-56+78-98+119-56+78-98+119-56+78-98+119-56+78-98+119-56+78-98+119-56+78-98+119-56+78-98+119 hashblocks_sha512 selected 27308 141941 +100+2-16+6-9+5+12-1-4-7-8+0-13-21-14+4+7+5+24+23+4+5-6+3-14+27+22+2-4-20+14-21 hashblocks_sha512 selected 40963 213267 +93+100-308-259+34+113+5233+6-26-30-13-5-5+13+36+0+38-8-30+25-26-29+0-11+1-38+0+37+18-36+18-15 hashblocks_sha512 selected 61445 319475 +91+69+18-143+257+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1819-334-380-48 hashblocks_sha512 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 0 0 38 +47+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1 38 +30+0+0+0+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 2 38 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 4 38 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 7 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 11 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 17 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 26 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 40 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 61 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 92 38 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 139 723 +96+37+0-3+7+6-2-4+1+1-1-2-4-6+5+0+1+1+3-1-5-4+5+2-1-2+5-1+4+0+1+0 hashblocks_sha512 0 209 727 +62-8-2+1-9-3-8-7+1-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 314 1389 +59+13-1-5-8+1+7+8-2-6-1-2+0-1+1-2-3-5-3+6+5+0+4-1-3+0+4-1-3+0+4-1 hashblocks_sha512 0 472 2059 +124+6+8+27-1+0-3-10-7+2-5-6+5+3+4+0-8-5+2+1-11+2-5-6+5+3+4+0-8-5+2+1 hashblocks_sha512 0 709 3368 +84+29+28+21+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1064 5377 +112+28+48+6-18-18+3+7+4-4-6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 1597 8058 +27+9+18+27-5-12-9+20-7-19+20-7-19+20-7-19+20-7-19+20-7-19+20-7-19+20-7-19+20-7-19+20 hashblocks_sha512 0 2396 12028 +41+35+34+34+35+19+22+18+18-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 hashblocks_sha512 0 3595 18727 +30-11-1+1+8+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9-11+9 hashblocks_sha512 0 5393 28037 +18-23-8-28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 8090 41944 +2+12-29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 0 12136 62678 -50-102+18-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22+30-22 hashblocks_sha512 0 18205 94556 +163-30-62-107+49-20+46-20+46-20+46-20+46-20+46-20+45-20+56-66-43-61-107+111-21+56-90-65+46-20+46-20 hashblocks_sha512 0 27308 141818 -99-28-41-85-35-76-35-76-30-114-68-45-88-116-141-59-37-91-57-38+6427+174+186+139+199+139+187+139+199+139+199+139 hashblocks_sha512 0 40963 213146 +223+169+225-157-205+182-158-209-326-170+62-216+193+185+167-165+187+176-168-189+170+164+176-168-107+193-194-199+234-246+186-174 hashblocks_sha512 0 61445 321309 -105+202-104-83-104-129+16+124-286-253+57-43-264-27-102+88-243+2733+3464+205+138-10+26+25-4+110+143+10+10+10+10+10 hashblocks_sha512 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 1 0 41 +85+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 1 41 +22+18+19+0+0+0+0+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 2 41 +21+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 4 41 +22+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 7 41 +1+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 11 41 -3+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 17 41 -3+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 26 41 -3+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 40 41 +0+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 61 41 -2+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 92 41 +1-3-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 139 725 +181+45-1-1-6-5+3-4-2-6-4+4-1+2+0-2+4+0+1-5-1+4-1+2+0-2+4+0+1-5-1+4 hashblocks_sha512 1 209 720 +3+4-3+3+7+5-1-1-2-1+1+7-1-2-2-1+6+2+1-2+7-1-2-2-1+6+2+1-2+7-1-2 hashblocks_sha512 1 314 1394 +51+36+33-6-3-8-1+5-9-2+1+1-1-3+2-12-4+6+3+1-1-3+2-12-4+6+3+1-1-3+2-12 hashblocks_sha512 1 472 2057 +74+28+19-2+0-9+5-2-11+10-2+0-9+5-2-11+10-2+0-9+5-2-11+10-2+0-9+5-2-11+10-2 hashblocks_sha512 1 709 3384 +58+38+14+13+11+6-6+3-10+8-2+10-3-10-7+15-4-3-2-1-10+3-7-1+0+9+2-1-2-2-9-3 hashblocks_sha512 1 1064 5398 +24+5-7-5+13-5+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 1597 8037 +33+68+15+34+5-8+1-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 2396 12023 +37+33+35+9+10+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 3595 18702 +97+30+1+34+12+27-17+11-32+15-32+15-32+15-32+15-32+15-32+15-32+15-32+15-32+15-32+15-32+15-32+15 hashblocks_sha512 1 5393 28022 +15+37+28+12+10+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5-11+5 hashblocks_sha512 1 8090 42017 +51+9-16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+7-19+11+0+0+0+0 hashblocks_sha512 1 12136 62682 +20+15+30-48+39-5-48+39-5-48+39-5-48+39-5-48+39-5-48+39-5-48+39-5-48+39-5-48+39-5-48+39 hashblocks_sha512 1 18205 94498 +129+42+156+133+75-20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 1 27308 141792 +145+93+160-154+103-137+168-139+154-152+190-152+190-152+190-152-156-106+143-139+155-152+190-152+190-152+190-152+190-152+190-152 hashblocks_sha512 1 40963 213293 +54+48-9-5-5+39+18+33+5-15-24-8-42-61-9+35-42-34-16+67-16-97+44+3+57+1+21+11+12-15+13-25 hashblocks_sha512 1 61445 319979 -1755-1814-1824-1785-1731-1740-1770-1761+2170+134+17-34+33+16-45+49-17+49-17+49-17+49-17+49-17+49-17+49-17+49-17+49 hashblocks_sha512 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 2 0 55 +101+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 hashblocks_sha512 2 1 55 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 2 56 +1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 4 55 +6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 7 55 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 11 55 +18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 17 55 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 26 55 +1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 40 55 +5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 61 55 +5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 92 55 +5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 139 873 +4867+60+3-10+1+12+5+14+18+3+7+1+0+1-4-6+1-2+7-5-10+1-4-6+1-2+7-5-10+1-4-6 hashblocks_sha512 2 209 876 +71-3+11-9-4+6+7-15-8+3+0+6-1+10-15-8+3+0+6-1+10-15-8+3+0+6-1+10-15-8+3+0 hashblocks_sha512 2 314 1706 +84+36+1+14+4+0+14+15+6-3-5+2+21+24-11+20-2+2+18+9-22-6-17-6-17-6-17-6-17-6-17-6 hashblocks_sha512 2 472 2547 +29-22-12+18-3-10-2+3-7+11-7+6-2-2-7-19+19-4-13-4+3+24+19+7-2-8-3+18+28-5+11+23 hashblocks_sha512 2 709 4205 +54+33+7-7+10-21+1-21+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6 hashblocks_sha512 2 1064 6735 +41+40-5+13+10-24-15+14+10-24-15+14+10-24-15+14+10-24-15+14+10-24-15+14+10-24-15+14+10-24-15+14 hashblocks_sha512 2 1597 10075 -1+15-11+31+37-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5 hashblocks_sha512 2 2396 15060 +77-19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 3595 23306 +143+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 5393 35183 +37+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 8090 53107 -517-637-10+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3-2+3 hashblocks_sha512 2 12136 79655 +510+463+454+462+494+462+494+462+494+462+494+462+494+462+10503-429-392-366-358-359-358-359-358-359-367-358-359-358-359-358-359-358 hashblocks_sha512 2 18205 118221 +262-20+49+1136-145+29+1136-144-28+26-8+26-8+26-8+26-8+26-8+26-8+26-44+52-46-44-28-44-28-46-43+52 hashblocks_sha512 2 27308 180475 -11+16-1120-1132-1131-1131-1131-1131-95+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 2 40963 269687 +76+79+191+22+78+168+19+26+65+76+185+17+19113+7-39-74-73-101-43-101-44-2+11-16-11-101-43-101-44-2+10-16 hashblocks_sha512 2 61445 403895 +253+332-414+149+73+70+69+69+69+70+33+193+70+72+70+70+72+70+71+47-505+149+69+7822-3153-3126-3126-3114-3114-3102-3090-3090 hashblocks_sha512 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 3 0 50 +1246+29+14+15+16+15-1+0+0+0-1+0-1+0-1+0+5+0-1+0-1+0-1+0+5+0-1+0-1+0-1+0 hashblocks_sha512 3 1 49 +41+29+16+15+0+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0 hashblocks_sha512 3 2 49 +38+30+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0 hashblocks_sha512 3 4 49 +0+1+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+1 hashblocks_sha512 3 7 49 +1+0+0+1+2+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1+0-1+1 hashblocks_sha512 3 11 49 +0-1+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0+3+0+0+0 hashblocks_sha512 3 17 49 +1-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+9-2+9-2 hashblocks_sha512 3 26 49 +1-2+0+0+2-2+0+1+0+0+2-2+0+1+0+0+2-2+0+1+0+0+2-2+0+1+0+0+2-2+0+1 hashblocks_sha512 3 40 49 +39+0+0+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2-1+1-2+9-2+9 hashblocks_sha512 3 61 49 +1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 92 49 +1+0+0+1+2+0+0+2+0+0+2+0+0+2+0+0+2+0+0+2+0+0+2+0+0+2+0+0+2+0+0+2 hashblocks_sha512 3 139 995 +3670+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 209 889 +24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 314 1710 +70+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 472 2531 +73+32+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 709 4171 +87+31+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 1064 6631 +88+69+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 1597 9911 +65+33+11+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 2396 14831 +63+33+28+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 3595 23035 +52+69+48-9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 5393 34573 +57+47+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 8090 51799 +73+51+26-11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 3 12136 77215 +57+31+32-7+0+0+0+0+0+0+0+0+0+0+0+0-4+0+0+0+0+0+0+0-4+0+0+0+0+0+0+0 hashblocks_sha512 3 18205 116711 +46+21+19+0-3+3+0+1-1-1+2-6+1+2-3+3-8+2-6+3-3+4+10786+6-3-1-3+1-1-3-3-1 hashblocks_sha512 3 27308 175876 +54+8-7-1+0+0+0+0+0-3+0+0+0+0+0+0+0+0+0+1+3+4-5+0-3+0+0+0-2-3-3+2 hashblocks_sha512 3 40963 265738 +84+18+15+14+14+18+29+4+22-5-11-2-19+4-33-8-38-33-4-17-15-12-36+14-8-8-33-21+10+9869+33+11 hashblocks_sha512 3 61445 396793 +21-17-12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hashblocks_sha512 4 0 64 +192+98+18+0+0+0+0+48+48+0+0+46+46+0+0+0+0+0+0+0+0+0+0+0+6+0+0+0+0+0+0+0 hashblocks_sha512 4 1 64 +75+28+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 2 64 +43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 4 64 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 7 64 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 11 64 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 17 64 +2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 26 64 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 40 64 +47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 61 64 +2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 92 64 +0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 139 926 +2155+73+34+6+0-2+0-1+6+0-2+0-1+6+0-2+0-1+6+0-2+0-1+6+0-2+0-1+6+0-2+0 hashblocks_sha512 4 209 929 +112+5+6-7-11-5+7-4+5+6-7-11-5+7-4+5+6-7-11-5+7-4+5+6-7-11-5+7-4+5+6-7 hashblocks_sha512 4 314 2148 -168+718-1-106-189+55+52-14+206-18+106+523+46-200-98-140-86+86+389+144+648+587-60+724+1062+429-352-357-357-357-357-357 hashblocks_sha512 4 472 2655 +145+20+17+1-3+4+1-4+1-3+4+1-4+1-3+4+1-4+1-3+4+1-4+1-3+4+1-4+1-3+4+1 hashblocks_sha512 4 709 4378 +184+23-2-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 1064 6960 +186+51-2+0+10+2-2-2+0+10+2-2-2+0+10+2-2-2+0+10+2-2-2+0+10+2-2-2+0+10+2-2 hashblocks_sha512 4 1597 10440 +130+11-8-2+1+11-8-2+1+11-8-2+1+11-8-2+1+11-8-2+1+11-8-2+1+11-8-2+1+11-8-2 hashblocks_sha512 4 2396 15606 +108+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 3595 24158 +131+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 5393 36217 +106+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 8090 54416 +132-5+2-3+14-13+2-3+14-13+2-3+14-13+2-3+14-13+2-3+14-13+2-3+14-13+2-3+14-13+2-3 hashblocks_sha512 4 12136 81132 +81-22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 4 18205 122495 +109-20-26-22+42+26-12-15-15+48+15+27+5-22-22-22-22-22-22-22+54-1+44+3+42+5+42+3-27+12+47+16 hashblocks_sha512 4 27308 183613 +167-100+68-157-77-74-77-77-77-74-77-77-77-74+1134+10+22+49+20+44+20+49+20+44+20+49+20+44+20+49+20+44 hashblocks_sha512 4 40963 277311 -1100-925+1+36+23+3-33-19-50+1-9-43+19+14-37-4-217-45+23+8+23+19+64-9+35+3-11-4+45-12+0+15 hashblocks_sha512 4 61445 413957 +50-194-111-209+894-3-15+1-321-51-8-7-4-898+14+14+9+14+9-54+20-362+15+14+9+14+9+14-4-958+15+14 hashblocks_sha512 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hashblocks_sha512 5 0 51 +1450+27+18+18+18+18+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 1 53 +41+26+16+1+22+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 2 53 +39+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 4 53 +35-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 hashblocks_sha512 5 7 53 -2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 11 53 -2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 17 53 +1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 hashblocks_sha512 5 26 53 -2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 40 53 +44+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1+1+1-2+1-2+1-2+1 hashblocks_sha512 5 61 53 -2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 92 53 -2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 hashblocks_sha512 5 139 886 +3981+48-4-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 209 886 +120+2-4-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 314 1714 +178+23+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 472 2544 +192+45+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 709 4198 +201+50+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 1064 6679 +178+69+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 1597 9987 +185+71+81+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 2396 14949 +190+53+56+37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 3595 23219 +163+72+72+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0+0 hashblocks_sha512 5 5393 34991 +169+60+1-1-1-1-1-1-1+1+1-1-1-1-1-1-1-1-1-1+1153-1+11+10+3-4+9+3-1+10+13-3 hashblocks_sha512 5 8090 52611 +180+67+41-5+0+0+0+0+0+0+0+0+0+0+0+0+0+8+1+0+0+0+0+0-2+0+0+0+0+0+0+0 hashblocks_sha512 5 12136 78487 +175+40+47-2+0+0+0+0+0+0+0+0+0+0+0+0+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hashblocks_sha512 5 18205 118188 +96-2-1-30-23-1-1+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-3+4-4+4-4+4-4+4 hashblocks_sha512 5 27308 177255 +103-7+7-7-26-15-4-29-10+1-4-31+23-1-1-1-10-1+3-3+3+3+7+7+6+7+7+3-11-5+5+1 hashblocks_sha512 5 40963 266465 +107-15-5-20-13+9+7-9-11+6+2+3-4+7+6-7-2-2+14-6-4+15+2-2+0+5+8-4-12+10+13-3 hashblocks_sha512 5 61445 397910 +677-31-31-21+18+28-4+28+2+14-7+13+0+30+1+1209-55+201-32-21-19+212-25-23-14+123-12-15-13+211+52-13 hash_sha512 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 selected 0 756 +6703+124+51+2-3-7-6+7+5+7-1-4+1-9+11+5+11+4-5-2-3-11+0+10+0-4-3-7-4-6-3+2 hash_sha512 selected 1 761 +78-1-14+4-2+0+0+0-2-1+0-1+2+6-2+3-5-4+0-2+1+0+1+0+1+0+1+0+1+0+1+0 hash_sha512 selected 2 759 +60+11+1+7+4-1+6+0+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 4 761 +121+45-9-2-5+2-1-2+3-6+2+0+0+3-2+3+3-5-8+6-2+3+3-5-8+6-2+3+3-5-8+6 hash_sha512 selected 7 756 +127+12+4+5+1-4+1-2+0+1-4+3-1+0-2+7-2-5+1-5+0-1-1+2-1+0+1-4+3-1+0-2 hash_sha512 selected 11 770 +76+34-6-4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 17 769 +97+17+2-3+7-6-5-1-4-9-4+1+4+0-4+2+1+4+0-4+2+1+4+0-4+2+1+4+0-4+2+1 hash_sha512 selected 26 779 +172+39+3-6-2+3-5-3+2-4-1-4+1+7+2-4-1-4+1+7+2-4-1-4+1+7+2-4-1-4+1+7 hash_sha512 selected 40 793 +98+21+19+0+1+2-3+1-4+4-3-1+1-1+1+1-2-6-2+3-5-3+2-4-1-4+1+7+2-4-1-4 hash_sha512 selected 61 815 +172+54+16+7-1+3-4-6+2+4-1+1-4-6+2+4-1+1-4-6+2+4-1+1-4-6+2+4-1+1-4-6 hash_sha512 selected 92 844 +213+65+20-3+3+2-1-4+2+4-1+1-1+1+1-2-6-2+3-5-3+2-4-1-4+1+8+2-4-1-4+1 hash_sha512 selected 139 1455 +209+22+0-6-3-3+8+1-4+9-4-8-3+5-3+9+0-3+0+9-4+4-3-4-6-8-3+3+2+1+9+2 hash_sha512 selected 209 1517 +99+85+45+2-9-6-5-2-9+0+0-5+4-1+2-6+2+4+5+1-4-9+8-9+0+0-5+4-1+2-6+2 hash_sha512 selected 314 2158 +150+61+8+2-2-5+2+0+4+4+0-6-3+0-4-2-10-4+10+15-5+9+5+8+2-9-12-15-7-2-2-2 hash_sha512 selected 472 2860 +215+104+28+4-3+13+0+6-1+1+2-6-17-2-11+4-1-2-4-10+5+0+6-1+1+2-6-17-2-11+4-1 hash_sha512 selected 709 4167 +101+46-9-1+7+18+17-2-8-8-3-6-1+7+18+17-2-8-8-3-6-1+7+18+17-2-8-8-3-6-1+7 hash_sha512 selected 1064 6150 +142+17-9+3-23+9-33+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 1597 8825 +92+64+44-21+22+3+13-13+17+2-1+5-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 2396 12863 +175+72+52-9+8-26-11-4+16+1-26-4+16+1-26-4+16+1-26-4+16+1-26-4+16+1-26-4+16+1-26-4 hash_sha512 selected 3595 19449 +94-45+8+3+8-15+1-24+20-5+3+8-15+1-24+20-5+3+8-15+1-24+20-5+3+8-15+1-24+20-5+3 hash_sha512 selected 5393 28787 +153+1-7+22+11+11-31-58+10-3+0-4+23+11-26+11-26+11-26+11-26+11-26+11-26+11-26+11-26+11-26+11 hash_sha512 selected 8090 42765 +67+25+25+33-47-4-13+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 12136 63388 +295+162+91-10+100+113+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 selected 18205 95742 +299+227+196+1173+5+208+39+204+49+251-7-21-21-24-21-21-21-21-21-21-21-21-21-21+135+141-10-21-21-24-21-21 hash_sha512 selected 27308 142719 +139+33+6+0-29-16-25+2+27+7-8+11-8+9-6+7-14+33-7-11+9-8+9-8-24-22+18-4+1+3-9+7 hash_sha512 selected 40963 213992 +224+73-267+100+20-13+55-7-1-42-24-216+64+113+31-238-203-248+42+58-10+64-72+107-64-75+182-246+36-184+70-249 hash_sha512 selected 61445 320088 +267+199-23-209-82-142-195+208+65-149-108+265+63-133+170-87-195+49+58-183+324+78-47-148+205-43-162-97+241-11+256+151 hash_sha512 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 0 0 754 +172+48+2+5+1-4+2+1+0-3-2-2-1+0+5+0+3-1-3+2+1-1+0-7-3+1+1+0+3-1-3+2 hash_sha512 0 1 762 +101+32+42+30-4-7-4-7-8+2+0-3+1-1+0+2-8+2+0-3+1-1+0+2-8+2+0-3+1-1+0+2 hash_sha512 0 2 762 +105+49+34-4-9-5+0+3-1-4+2+0+3-1-4+2+0+3-1-4+2+0+3-1-4+2+0+3-1-4+2+0 hash_sha512 0 4 765 +86+29-1+12+4+3-3-8-1-1+0-1+3+4-5+6-2-4+9+7-2-8-5+2-5-5-1-4+1-2-4+9 hash_sha512 0 7 760 +78+52+31+18-3+1+1-1-2+3+0+2-1+1-1+1+1-2-2-3+1+1-1-2+3+0+2-1+1-1+1+1 hash_sha512 0 11 766 +72+59+19+19-6-4-3-5+0-3-2+1-1+1+0-5-2+0+2+4+3+0+7+0-5+5-1-5+4-7-9+0 hash_sha512 0 17 776 +79+72+20-6+5-3-4-4+6+0-4+2-1+1+1+2+1-4-1-2+0+5+1+0+4+1-4-1-2+0+5+1 hash_sha512 0 26 783 +94+63+20+18-2+1+0-5-2-1+3+6-5-7+0+2-5-2-1+3+6-5-7+0+2-5-2-1+3+6-5-7 hash_sha512 0 40 797 +117+64+39+1+2-4-1-2-4+5+2-1+0-1+3+3+0-2-1-2-2-2-1+0+0-6+0-4-5+5+1-4 hash_sha512 0 61 818 +93+39-1+2-3-6-3+6-6+3+4-5+4-3+0+4-8-2+2+2+1-1+3-2+2-5-2+0-3-4-4+2 hash_sha512 0 92 843 +128+8+3+4+2+1-1-2+2+1+3+0-4-1-3-3-6-1-1+4-6+0+2+3-4+0-2-2+1+1+2-1 hash_sha512 0 139 1458 +138+59-7+0+2+3+2+0-1+5+0-8+1+2-7-4-4-2+0+3-2+2-9-3-2-2+5+0-8+1+2-7 hash_sha512 0 209 1521 +168+67+44-3-7-6+4-5+7+5+2+4-7-6+0-5-4+7+5+2+4-7-6+0-5-4+7+5+2+4-7-6 hash_sha512 0 314 2163 +50+51+55+48-1+4+16-7+3-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hash_sha512 0 472 2858 +170+19+2+5+6+4+2-4-1-2+1-1+2-5-1-2+4+2-10-5-1-2+4+2-10-5-1-2+4+2-10-5 hash_sha512 0 709 4168 +120+52+35+0+11+2+1-1+14-6-6-7-8+16-2-1-1+14-6-6-7-8+16-2-1-1+14-6-6-7-8+16 hash_sha512 0 1064 6146 +137+48-18+0-13+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7-7+7 hash_sha512 0 1597 8828 +134+18+33+23+51+4-6-21-5-9+23-13-15+23-13-15+23-13-15+23-13-15+23-13-15+23-13-15+23-13-15+23 hash_sha512 0 2396 12840 +187+81+66+6+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 0 3595 19438 +141+93+3-39+16+11-35-16+6-12-28-29+16+18+29-23+24-23+24-23+24-23+24-23+24-23+24-23+24-23+24-23 hash_sha512 0 5393 28770 +128+56+2+24+9+13-8-16+20-8-16+20-8-16+20-8-16+20-8-16+20-8-16+20-8-16+20-8-16+20-8-16 hash_sha512 0 8090 42771 +142+47+43+38+39+31+15+1065-95-11+11-73-12+11-73-12+11-73-12+11-73-12+11-73-12+11-73-12+11-73-12+11 hash_sha512 0 12136 63503 +197+73-4+2-2+11-1-16+11-1-16+11-1-16+11-1-16+11-1-16+11-1-16+11-1-16+11-1-16+11-1-16 hash_sha512 0 18205 95359 +144+85+63-96+62+78-180+47+66-68+31-68+31-68+31-68+21-112-86+69-64+69-64+69-119-86+69+4-171+55-85+47 hash_sha512 0 27308 142575 +291-61-39-201-215-18+13+4-113-74+147+53+30+172-178+144-220-8+175-15-48+137-41+183+15-82+121+94-201-19-85+163 hash_sha512 0 40963 215036 +148-57+12+202+48-132+104-140+212-168-51+141-108+179-89+136+935-44-224-67-268+57+41+39+67+62+62-51-164-249-15-10 hash_sha512 0 61445 320108 +222-218+534-52-10-45-196+11+524-257+6-275+462-185+40+96-252+16+81-26+116+133+110-285-31+0-19-125+170+554-266-58 hash_sha512 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 1 0 765 +1164+68+17-1-5-5+6+2+3+0-1+1+0-6+0+0-6-7+1+2-1+4+1+7-2+6-2-12-1-1+4-5 hash_sha512 1 1 763 +226+21+3+1+3-6+4+5-2+0-4+1-3-2-3-2-1+5+7+2+0+5+6-3+3-3+0-2+1-1+1-3 hash_sha512 1 2 760 +98+0-3-7-5+0+1+1-7-1+6-5+0-10-3+1-1+1-4-3+3+2-3+8+6+0-11+1+2+2+6-2 hash_sha512 1 4 768 +66+3+0-4+2-10+4+6+4-7+8+6-7+8+6-7+8+6-7+8+1042-5+0-1-4-5-4-4-4+3-14-3 hash_sha512 1 7 772 +31+3+2+1+1+4+1+4-1-9+1+2-10+1-1-7+3-5+3-3+2+3-1-3-5-1-2-6-6+4-3-2 hash_sha512 1 11 762 +78+5-4+4-9-1+1-1+0-2-4+8+12+4-9-1+1-1+0-2-4+8+12+4-9-1+1-1+0-2-4+8 hash_sha512 1 17 767 +130+3+0-3+2+0-6-2-1-3-1+1-4-5-1-3+5+2+0-4+0+3+0+5-3+3-3+8-2+5-1+0 hash_sha512 1 26 763 +44-1+2+3+2-3-10-1-4-3-1+4-4-3+0+1-1+2+1-6+3-2+0+4-2-3+1-1-3+8+3-1 hash_sha512 1 40 770 +106-3-1+20-2-1+0-4+4-4+15-1+3+0+12-2+16-2-5+1-3+2+3+0+0+2+1+1+1+0-3-7 hash_sha512 1 61 768 +86+7+2-1-4-3+1+0-1-3-5+0+4+4-1-5+1+4-5-3+0-3+5+1-3-4+1+2+4+0+3+2 hash_sha512 1 92 763 +144-9-14+2-7-1-4+5+5+3+4-5-7-9-11+3+3+2+1-9-7+4+4+5-3+3-7-6-5+4+5+2 hash_sha512 1 139 1478 +77+38+41-8-2+0-4-5+0+0-2-2-4+7+0+10+1+2-3-9-2+0+0+0+1+8-10-1+12+0+10+1 hash_sha512 1 209 1482 +125+37-9+0-9+1-8+0+3-3-5-3+1+0-9+6-7+5+6-4+1+6-4+1+6-4+1+6-4+1+6-4 hash_sha512 1 314 2156 +135+11+17-6-1+11-4-6+7+1-9+1+3+1-4+7+10-1-3-8-1-9+1+3+1-4+7+10-1-3-8-1 hash_sha512 1 472 2807 +38+49+7+15-10-1+10-7-4-1+10-7-4-1+10-7-4-1+10-7-4-1+10-7-4-1+10-7-4-1+10-7 hash_sha512 1 709 4152 +72+19-6-10-8+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4-4+4 hash_sha512 1 1064 6152 +117-3-26+3+0+0-1-18+2-28-14-1+15+10-2-33-1+15+10-2-33-1+15+10-2-33-1+15+10-2-33-1 hash_sha512 1 1597 8815 +99+6-10+3-6+16+9-15+18+7-9-12+11-27+18+7-9-12+11-27+18+7-9-12+11-27+18+7-9-12+11-27 hash_sha512 1 2396 12789 +83+25+26-3+0+29+40+8+29+29+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 1 3595 19495 +81+18+14-40+23-4-18-48+3-21+33-30+33-30+33-30+33-30+33-30+33-30+33-30+33-30+33-30+33-30+33-30 hash_sha512 1 5393 28817 +95+15+3-5-5-5-5-5-5-5+9-6+22-19+16-19+16-19+16-19+16-19+16-19+16-19+16-19+16-19+16-19 hash_sha512 1 8090 42788 +86-12-5+12+0+0+0+0+0+0+0+0+0+0+0+0-26+4+0+0+0+0+0+0-26+4+0+0+0+0+0+0 hash_sha512 1 12136 63419 +174+114+3+29+12+1-18-8+5+6-2+2-18-8+5+6-7+2-18-8+5+6-2+2-18-8+5+6-2+2-18-8 hash_sha512 1 18205 95783 +88+35+38+21-34-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25+20-25 hash_sha512 1 27308 142592 +311-149+215-204-188+157-203+103+109+113-27+126-32+108+185-32-213-81+25-28-63-191+118-1+127+119-217-108-27+85-238-210 hash_sha512 1 40963 213914 +272+170-143+228-307+107-358-6-291+107-358-6-296+107+179+17+99+179+17+118+40-166-185+118-249+42+103+40-166-196-294+107 hash_sha512 1 61445 321133 +58-58-56-29-72-117-52-133-110-68-23-62-56-137-77-111-52-133-138-125-111-52-133+1635+814+1043+1334+1099+847+837+899+899 hash_sha512 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin hash_sha512 2 0 756 +299+99-3+2+4-1+0+1-4+0+1-4+0+1-4+0+1-4+0+1-4+0+1-4+0+1-4+0+1-4+0+1 hash_sha512 2 1 763 +64+45+21-5-1-6+0+2-1-2-6-3+3+4+2-4-2-5-1-1+0+3+0-5-2-3-1+4+1-9+2+4 hash_sha512 2 2 763 +56+37+25+21+2+4+4-1-1-5-3+0-4+4+0-4+5-3-4-4+6+0+4+5+0-1-5-2+3-5-3-1 hash_sha512 2 4 766 +73+43+4-3+5-3+0+0+2+1-3-1-1+6+0-2-3+8-1+2-2-3+8-1+2-2-3+8-1+2-2-3 hash_sha512 2 7 765 +100+36-4-4+2-6+5+2-7-2+2-6+5+2-7-2+2-6+5+2-7-2+2-6+5+2-7-2+2-6+5+2 hash_sha512 2 11 767 +99+34-2-1+4+1-1-1-2+2-1+4+1-1-1-2+2-1+4+1-1-1-2+2-1+4+1-1-1-2+2-1 hash_sha512 2 17 776 +99+51+4+6+4-2-1+1-2-3+0+0+2-2-1+1-2-3+0+0+2-2-1+1-2-3+0+0+2-2-1+1 hash_sha512 2 26 788 +104+50+18+9-3-1-6-6-10-1+9-2-12-4-5+2-7-3-3+2-2+1-2+2+2+2+2+2+2+2+2+2 hash_sha512 2 40 769 +121+51+1-2+6+0-1-1-5-2-3+4+0-4+4-3+2+2-4-1-3-2+6-3+3-3-1+1-4+8-6+4 hash_sha512 2 61 793 +157+53+17+0+9+5+4+8+5+0-1+6+0+1+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 2 92 790 +156+72-4-4+1+1-1-2+3+0+2-1+1-1+1+1-2-2-3+1+1-1-2+3+0+2-1+1-1+1+1-2 hash_sha512 2 139 1482 +226+44+2-2-2-1+0+2+6-4+1+3+1+7+0+2+7+4-3+0-5+1-2+5-4+0-4-3+0-5+1-2 hash_sha512 2 209 1470 +175+100-3+9-1+2+7+0-3+1+0+0-4-1+2+7+0-3+1+0+0-4-1+2+7+0-3+1+0+0-4-1 hash_sha512 2 314 2151 +151+89+35-8-5+16-2+3+1+1-7-1+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7+6-7 hash_sha512 2 472 2812 +115+45+9-6-7-3-6+4+2-1+9-1+0-10+3-6-6+4+2-1+9-1+0-10+3-6-6+4+2-1+9-1 hash_sha512 2 709 4122 +132+30+2+12-6+4-13+1+2-3-5+4-13+1+2-3-5+4-13+1+2-3-5+4-13+1+2-3-5+4-13+1 hash_sha512 2 1064 6121 +129+97+46+16+8-7-12-12+9-1-12+9-1-12+9-1-12+9-1-12+9-1-12+9-1-12+9-1-12+9-1-12 hash_sha512 2 1597 8809 +218+65+0-34+14-2-8+14+12-9-10+29+31-2-2-13-13+4-2-25+6-4+4-2-25+6-4+4-2-25+6-4 hash_sha512 2 2396 12796 +69+51+48-15+15-14+10-10-22+11+7+17+0-9+0-22-16-1+9+35+1-21-19-1-12+7+1-21-19-1+9+35 hash_sha512 2 3595 19461 +88+33+16+25-7+10-4-7+10-4-7+10-4-7+10-4-7+10-4-7+10-4-7+10-4-7+10-4-7+10-4-7 hash_sha512 2 5393 28793 +102+8+6-1-6-62+4-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 hash_sha512 2 8090 42783 +96+16+34+8-77-40+18-77+12+21-31+21-31+21-31+21-30+21-31+21-31+21-31+21-31+21-31+21-31+21-31+21 hash_sha512 2 12136 63358 +232+49+79+82+59+101+80+51-39-23-12+8-90-4+8-90-4+8-90-4+8-90-4+8-90-4+8-90-4+8-90-4 hash_sha512 2 18205 95404 +41-108-95+62+40+0+0+0+8+0+0+0+0+0+0+0-181+23+0+0+0+0+0+0-181+23+0+0+0+0+0+0 hash_sha512 2 27308 142708 +196+83+48-39-2-15+1091+10+31+16+22-30-30-30-30-30-28-18+19+21+25+18-12+51+14+25+18-24-24-24-24-24 hash_sha512 2 40963 213832 -695+258-208+209+234-190-148-39+213-100+185-79-86+170-173+238+211-96+231-129+146+126-238-113-109+102-191+85-180+109-72+77 hash_sha512 2 61445 320616 +99-31-27-28+23-16-13+42-58-2-4+1119+2-21-44+3+5-2+5-2+5-2+5-2+5-2+5-2+5-2+5-2 hash_sha512 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. hash_sha512 3 0 792 +1425+72+16-3+0-4-3-4+3+3+6-4-6+0-15-2-4+2-1+2+1-3+0+0+0-3+1+1-13+3+0-1 hash_sha512 3 1 788 +201+17+1+0-2+4+1+1+1-3+1-5+4-2-2+0+2-5+0-2-3-1-1+0-1+6-7-1+1+1-3+1 hash_sha512 3 2 782 +65+20+29+5-4+0-1-1+0+1+2+0-1-1+0+1+2+0-1-1+0+1+2+0-1-1+0+1+2+0-1-1 hash_sha512 3 4 788 +63-2+0-3-6-1+0+5+0-5+1-2+1-4-2-1+8+7+3+0+0+6-8-3+3-1-3-1-3+4+3+5 hash_sha512 3 7 785 +32+4+2+0+0-1+1-1+0+4-1+1-1+0+4-1+1-1+0+4-1+1-1+0+4-1+1-1+0+4-1+1 hash_sha512 3 11 808 +52+0-4+5-8-1-2-2+3-6-2-11+2+5-2-10-8-2-4-8+1-8+1+1+1+1+1+1+1+1+1+1 hash_sha512 3 17 804 +44-2+1+0-3+1+3+1-3-2+8+6+1-2+6+0-3+1+2+2+4-2-2+0+0-3+3-4-3-1+0+1 hash_sha512 3 26 805 +11+4+3+0-6-4+0+1-6+0-1-1-2-6+6+0+3-7-5-3+0+3-1+0-5+3-5+0+2+0+3+0 hash_sha512 3 40 802 +69+2-4+3+2-3+5+2-9+1-7+3-2-1+0+2-5+7+1-3-6+7-1+2+3-4-9+4+4-2+5-3 hash_sha512 3 61 804 +46-2-4-2+0-2+0+0+0+2-1-6-5-2-5+5+0+0-2-1+1+1+1+6+2+6+1+5+2+1+3+4 hash_sha512 3 92 809 +62-4+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 139 1505 +66+27+2-8+3+6-2+3+11-3-9+7-3-1+1-6-3+1+10-3-1+1-6-3+1+10-3-1+1-6-3+1 hash_sha512 3 209 1526 +58-7+3+1-7+3+1-7+3+1-7+3+1-7+3+1-7+3+1-7+3+1-7+3+1-7+3+1-7+3+1-7 hash_sha512 3 314 2174 +71+38+47+10-10-9-13+17-7-9-10+1+10+17-7-9-10+1+10+17-7-9-10+1+10+17-7-9-10+1+10+17 hash_sha512 3 472 2836 +55+45+33+4+0+23-2-7-1-11+6+23-2-7-1-11+6+23-2-7-1-11+6+23-2-7-1-11+6+23-2-7 hash_sha512 3 709 4166 +3+26-8-8-2+11+4-6-5-1+0-7-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 hash_sha512 3 1064 6154 +63+30+27+8+3-22+4+0-8-11-14+13+17-7-11-14+13+17-7-11-14+13+17-7-11-14+13+17-7-11-14+13 hash_sha512 3 1597 8824 +69+20+8+19-13+0-6-29-1+15-20-1+15-20-1+15-20-1+15-20-1+15-20-1+15-20-1+15-20-1+15-20 hash_sha512 3 2396 12816 +105+24+4-6-5-6-7+7-14+22+6-6-7+7-14+22+6-6-7+7-14+22+6-6-7+7-14+22+6-6-7+7 hash_sha512 3 3595 19487 +30+21+6+5-1-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13+9-13 hash_sha512 3 5393 28835 +72-7-17+0+0+0+0+0+0+0+0+0+0+0+0+0+3-49+19+0+0+0+0+0+3-49+19+0+0+0+0+0 hash_sha512 3 8090 42813 +22-71-12+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8-9+8 hash_sha512 3 12136 63428 +100-15+23+25-6-12+22-6-12+22-6-12+22-6-12+22-6-12+22-6-12+22-6-12+22-6-12+22-6-12+22-6 hash_sha512 3 18205 95304 +59-60-84+190+972-34+161-17+0+0+0+0+0+0+0+0+80-89+140-17+0+0+0+0+80-89+140-17+0+0+0+0 hash_sha512 3 27308 142665 +164+169-194+81+92+91-276-239+83+87-22+120+84+24-165+64-131-249+66+28+92+51-78-192-102-90+76-73+62-132-46-225 hash_sha512 3 40963 213801 +24-100+220-56-33+80-123-91-25+88-51-151+73-93-73+223+248+84+166+320+189-256+204-25-41-156-101+266-104+159-26-200 hash_sha512 3 61445 321026 +144+30+12-2-35+31-50+0+0+50+22+18-15-11+3+30-50-10-47-12+31-11-34-16-21+20-26+60+32-28-26+43 decode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 selected 653 77 +2494-4+3+4-5+1+1-2+3-2+0-2+6-2+0-2+4+1-4+2+4-4+2-2+10-5+3+1+0+1+4-2 decode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 0 653 77 +1069+17+14-6+9-9+10-6+3-6+4-5+5-5+4-4+3-5+10-9+3-2+2-2+4-5+8-6+4-5+7-6 decode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 1 653 78 +61+32+15+4-5+3-4+2-2-5+4-5+2+0+6-5-1-1+0+0-1+2-5+0-2+10-3+5-3+3-4+1 decode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 2 653 749 +1035+83+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 3 653 134 +1636+23+18+16-5-1+2+2-8+1-1-3-3+1+2-2-2+2+6-1-1-4+1-2+1-1-2+1-4+3-2+1 decode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x3 4 653 749 +234+97+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x3 5 653 140 +2534+86+20+20+0+0+0+0+0+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0 decode_653x1541 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 selected 1306 810 +9391+93+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 0 1306 817 +63+6-5-4+17+1+3-13-9+12+2-3-14-13+2-1+5+17+1+3-13-9+12+2-3-14-13+2-1+5+17+1 decode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 1 1306 868 +6226+158+23+3+3-9-6+1+4-2-4-9+1-6+4+1-4+0-4+4+3-4+5-6+6-1+7-3+3-1-7+2 decode_653x1541 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 2 1306 7153 +2994+645+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 3 1306 9100 +4400+202+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x1541 4 1306 7235 +2955+533+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x1541 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x1541 5 1306 8434 +5162+275+12-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 selected 1306 894 +3125+132+38-2+19-8-4+2-5-9+23+7-7-26-26+4+6+11+10-2+19-8-4+2-5-9+23+7-7-26-26+4 decode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 0 1306 897 +14-24+1-4-29-4-1+8-1-2+0+5+2-3-1+8-1-2+0+5+2-3-1+8-1-2+0+5+2-3-1+8 decode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 1 1306 1046 +3726+149+8-2+12-8-14-17+5+2+5-19-8+2-9+2+28+14+13+0-13-16+5+18+11-15-1+3-17-17+3-8 decode_653x4621 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 2 1306 8773 +714+507+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 3 1306 11394 +1859+136+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653x4621 4 1306 8782 +1436+492+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653x4621 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653x4621 5 1306 11011 +2327+155+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 selected 1306 78 +2792+219+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 0 1306 119 +1107+91+144+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 1 1306 76 +77+33+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint16 2 1306 543 +1107+45+137+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint16 3 1306 115 +1047+174+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 selected 2612 183 +1044+137+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 0 2612 822 +1693+143+31-2-4+10+2-5-8+1+0+10+2-5-8+1+0+10+2-5-8+1+0+10+2-5-8+1+0+10+2-5 decode_653xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 1 2612 184 +123+2+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_653xint32 2 2612 695 +132+105+160+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_653xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_653xint32 3 2612 222 +1040+197+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 selected 761 70 +1208+4+0+1+1-1+0+0-1+1+1-1+0+1-2+0+0+0+0-1+0-1+0-1+0-1-2-2+1+0-2-1 decode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 0 761 71 +1192+59+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 1 761 69 +47+37+19+19-2+0-1-1-1+1+0+0+1+0-1+0-1-1+0-1+0-1+0-1-1+1-1-1-2-2+0-1 decode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 2 761 868 +1007+129-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6-8+6 decode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 3 761 199 +2421+25+10+19-9+4-5+2+3-6-5+2+3-6-5+2+3-6-5+2+3-6-5+2+3-6-5+2+3-6-5+2 decode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x3 4 761 879 +966+114+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x3 5 761 185 +1583+125+8+4+2-3+2+5-2+2+3-4+2+2-3-4-3+1-5-1+0+1-5-1+0+1-5-1+0+1-5-1 decode_761x1531 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 selected 1522 854 +2128+150+195-6-2-8+2+6-6+3+1-15+12+11+4+4+1-24-5-16+11+1+1-19+1-2+12-24+6-7-10-1 decode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 0 1522 856 +50+22-1-3-17-1+11+8+1084-7-4-5-5+15+11+0+0-3+14-3-2+0-22+0-12+8-12-5-1+9-21-1 decode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 1 1522 879 +5150+190+28+8+5+0-2+0+3+10+0-14-2-10-16-7-1-1+10-2-5+2+4+5+0-12+4+0-3-14-7-8 decode_761x1531 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 2 1522 8482 +1092+524-37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 3 1522 11040 +2756+164-15+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x1531 4 1522 8318 +1781+578+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x1531 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x1531 5 1522 10131 +2831+214-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 selected 1522 917 +3390+187+133+8+13+3+16-24-38-20-22-2-27+11+2+12-27+1-21+6-26+6+9+9+14+7-20+6-26-3+7-20 decode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 0 1522 919 +5+5-17-28-26-32+14+9+17+16+5-22+7-31+4-5+5+9-5+5+8+17+2-24+8-16-33+6-22+13+11-21 decode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 1 1522 1109 +3011+143+3-21+14+4+4-13-5+14-25-23-16-19+18-11-11+16-22+8-6+49+10-6+20+0-4-13+5+17-17+18 decode_761x4591 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 2 1522 10535 +1053+502+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 3 1522 12231 +3634+195+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761x4591 4 1522 10535 +2624+523+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761x4591 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761x4591 5 1522 11817 +1987+132+58+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 selected 1522 105 +1073+108+0-22-22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 0 1522 122 +218+99+171+19-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 1 1522 106 +71-24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint16 2 1522 624 +297+71+84+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0+0+0+1+0 decode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint16 3 1522 136 +226+196+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 selected 3044 128 +2847+170+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 0 3044 960 +1144+117+21+2-2-4+2-4+3-5-5+1-2-1-7+3+13+18-1+2+2-2-4+2-4+3-5-5+1-2-1-7 decode_761xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 1 3044 129 +108+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_761xint32 2 3044 802 +962+84+95+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_761xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_761xint32 3 3044 249 +975+196+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 selected 857 74 +883+31+21+23-1-3+5-2+5+5+5+5+5+5+5+0-2-3-2-2-2-3-2-2-2-3-2-2-2-3-2-2 decode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 0 857 80 +1046+20+0-1+0+0+0+0+0+0+0+0-1+0+0-2+0+0+0+0-1+0+0+0+0+0+0+0-1+0-1+0 decode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 1 857 72 +75+48+1+2-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 2 857 946 +228+122+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 3 857 177 +3590+29+10-1-1+9-1-4-1-1+9-1-4-1-1+9-1-4-1-1+9-1-4-1-1+9-1-4-1-1+9-1 decode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x3 4 857 1316 +1008+99+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x3 5 857 172 +2805+133+22+20-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_857x1723 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 selected 1714 933 +2357+210+87+12-1+12-1-27-29-14-5-26-27+1-13+4+2-2+6+2+5-5-26-27+1-13+4+2-2+6+2+5 decode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 0 1714 928 +64+30+2+10-15+12-4-1-11-21-13-3-16-2-9+15+2-5+2-31+6+9-9+15+2-5+2-31+6+9-9+15 decode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 1 1714 1019 +3317+170+51+9-9-4-1-2-1+2+0+4-4+0-2-5-6-11-4-2-5+1+9+1-18+6+12+7+16+6+0-4 decode_857x1723 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 2 1714 9815 +3149+546+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 3 1714 11426 +4061+166-37+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x1723 4 1714 9807 +2598+604+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x1723 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x1723 5 1714 10454 +1312+454+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 selected 1714 986 +2749+182+87+8+10+14-17-37+15+17-26-33-18+0+26+7-31-17+9-28-33-22-23+15+19-3+23+8+10+14-17-37 decode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 0 1714 989 +60-26-25+4+11+12+16-36-21-3+23+4-34-20+6-31-36+13+11+13+7-29-28+17-32+15+12+25+26-33+7+12 decode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 1 1714 1066 +2998+215+37+24-13-1+4-12+20+0+0-12-11+23-1-8+15-4+12-7+1+26-10-1-14-6-4+9-8-4+9-8 decode_857x5167 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 2 1714 11147 +1114+605+226+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 3 1714 13633 +1385+172+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857x5167 4 1714 11358 +1105+588+51+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857x5167 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857x5167 5 1714 13096 +1506+284+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 selected 1714 88 +305+107+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 0 1714 110 +146+72+177+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 1 1714 87 +93+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint16 2 1714 696 +298+86+101+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint16 3 1714 141 +180+163+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 selected 3428 140 +250+150+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 0 3428 1105 +129+87+17+2-2+1-6-6+3+2+3-3+7-4+3-1-2-2+1-6-6+3+2+3-3+7-4+3-1-2-2+1 decode_857xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 1 3428 141 +97+48+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_857xint32 2 3428 899 +89+101+122+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_857xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_857xint32 3 3428 273 +157+214+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 selected 953 86 +925+28+15-4-3+1-3-1+3-1-1+1-1+1-1-2+0-1-1+1+0-3+1+0-2-2+1-2-1+1-1+1 decode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 0 953 87 +137+23+3+3+3+2+1+4+0+1+1-1+0-3+0-3+0-3+0-3+0-3+0-3+0-3+0-3+0-3+0-3 decode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 1 953 84 +54+44-2-1+0+0+0-1-1+0+2-1+2-1+0+2+0+0-1-1-1-1+2-1+0+2+0+0-1-1-1-1 decode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 2 953 1082 +88+92-12+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 3 953 238 +2894+22-3-12-13-2+6+17-1+2-16+2+5-4-1-2+5-4+2-16+2+5-4-1-2+5-4+2-16+2+5-4 decode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x3 4 953 1082 +169+59-12+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 decode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x3 5 953 216 +764+91-1-2-1+1+7-5-2+1+0-6-3-3+4-4+7-4+4+0+0+0+1+3+2-1-4+1-3+3+1+0 decode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 selected 1906 1088 +2217+102+80-10-10+3-3-11-2+12+2+2+4+2-16+0-9+4+2-65-7+13+6-7-7-42-62+12+2+2+4+2 decode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 0 1906 1092 +49-17-3-13-5+10-2+7-15-63-73-2+1-11-60+5+6+15+2+5+7+19-1-6-6+6-6+1-17+2+5+6 decode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 1 1906 1202 +2966+205-20-30+8+26+6-17-19-19-17-16-19+19+9+0+41+3+4+13-24+6-20+29-26-3-14+5+41+3+4+13 decode_953x2115 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 2 1906 11665 +1075+540+8+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 3 1906 13394 +3138+302+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x2115 4 1906 11609 +972+554+42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x2115 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x2115 5 1906 12888 +1533+233-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 selected 1906 1048 +5279+272+81-4+7+6-6-1-11-3+2-4+7+6-6-1-11-3+2-4+7+6-6-1-11-3+2-4+7+6-6-1 decode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 0 1906 1052 +63+2-6+0+1+0+0-6+2+46+51-14+5-1+2-8-3-3-6-8+5+0+51-2+1+45+38+2-10-4+5-4 decode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 1 1906 1321 +3592+203-4-5-8-8+20-7+1-8+0+31-1-16+29-4+18-1-13+34-8-4+24-7+1-8+0+31-1-16+29-4 decode_953x6343 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 2 1906 12507 +1103+871+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 3 1906 15385 +1452+182-7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953x6343 4 1906 13036 +1515+642+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953x6343 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953x6343 5 1906 15152 +1456+125+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 selected 1906 95 +291+134+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 0 1906 119 +165+60+167-2+2-3-1+1+1+1+0-2+1+1+0-2+8-3+0-1+2-3+0+3-2-1+3-2+2-3+1+0 decode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 1 1906 94 +49+23+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint16 2 1906 773 +318+86+104-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint16 3 1906 152 +163+78+117+2+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 selected 3812 153 +241+168+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 0 3812 1227 +120+55-10-6-11-12+10-16+5-26-8-2-1+5-11+1-13-11+1+1+1+1+1+1+1+1+1+1+1+1+1+1 decode_953xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 1 3812 153 +102+27+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_953xint32 2 3812 994 +94+120+169+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_953xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_953xint32 3 3812 297 +140+199+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 selected 1013 81 +934+10+2-1+0+0+2-1+0-2+1+2-1-1+0+2-1-1+0+2+0+1-2+0+2-1-1-1-1-1+0+2 decode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 0 1013 84 +200+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 1 1013 83 +74+46+19+18-2+0-2+1-3+7-4+1-3+1-3+1-3+7-2+0-2+1-3+7-4+1-3+1-3+1-3+7 decode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 2 1013 1108 +190+108+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 3 1013 243 +778+19+18-3+7+8+0-1-5+1-1+10-16-6-1+1-6-6-1+6-4-6-1+6-4-6-1+6-4-6-1+6 decode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x3 4 1013 1550 +72+95+56+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x3 5 1013 223 +359+110+2-1+1+4-2+1-1-2+0-4+4-2+1-1-2+0-4+4-2+1-1-2+0-4+4-2+1-1-2+0 decode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 selected 2026 1200 +3219+134+92-5-4+1+1-4+5-3-12+10+4+15+3+9-58-11-1-2+6-34-5+15+3+9-58-11-1-2+6-34 decode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 0 2026 1202 +71+11+4+10+1-16-1-10-9-11-71+0+9+0+1+7-1-1-6+3-5-14+8+2+13+1+7-60-13-3-4+4 decode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 1 2026 1512 +3895+250+19-5+19+6+22-12+29-4-23-13-24-19-17-28-1-12-13-12-26+43+31-17+12-12-7+13+28+18-9+18 decode_1013x2393 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 2 2026 12838 +556+552-90+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 3 2026 17474 +713+79+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x2393 4 2026 12838 +560+537+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x2393 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x2393 5 2026 16679 +649+126+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 selected 2026 1114 +4061+172+104+37-20-24-17+17+31+35-16+37-20-25-10-22-17+26-28-26-19+36-31-10-30-32-32+35-7+21+36+32 decode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 0 2026 1112 +56-20-22+30+41+46+28-19+40-25-17-15+18+47+19-21+36+38-23-30-17+20+37-23-21-27+28-35+49-23-21-27 decode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 1 2026 1182 +2966+252+49-4-10+6+4-11-3+19-1-8+7-2-9-3+13-3+19-1-8+7-2-9-3+13-3+19-1-8+7-2 decode_1013x7177 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 2 2026 13330 +659+512+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 3 2026 16722 +823+225+36+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013x7177 4 2026 13159 +815+628+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013x7177 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013x7177 5 2026 16108 +776+182+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 selected 2026 149 +240+194+4+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 0 2026 164 +167+158+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 1 2026 149 +77+41+10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint16 2 2026 813 +103+93+94+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint16 3 2026 185 +91+190+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 selected 4052 184 +225+152+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 0 4052 1290 +161+106+36-4-12+3-3+7-8+13-8-5+5-5-11-5+16+7-3+7-8+13-8-5+5-5-11-5+16+7-3+7 decode_1013xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 1 4052 185 +101+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1013xint32 2 4052 1054 +75+105+116+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1013xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1013xint32 3 4052 312 +136+199+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 selected 1277 98 +630+11-2-2-2-2+2-1-1+1-2-1+1-1+2+0+0-2-1+1-2-1+1+1-2-1+1-1+2+0+0-2 decode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 0 1277 102 +162+2+2-2+0+0+0+0+2+0-1-2-2+0+0+0+0+2+0+2+2-2+0+0-1-2-2+0+0+0+0+2 decode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 1 1277 98 +55+49+20+20+20-3+0+0-3-1-1+1-1-3+0-3-1-1+1-1+1-2-1+1+1+0-3-1-1-1+2+0 decode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 2 1277 1413 +164+76+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 3 1277 297 +1085+27+24-9+3-1+3-7+14-3+4+7+0-5-6-3-16-3+7-1-6-4-1-4+6+6+11+0+5-1-8-7 decode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x3 4 1277 1413 +172+116+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x3 5 1277 273 +330+105-6+3+2-7+1+0+0-4-2+3+0+0-2-3+1+0+0-4-2+3+0+0-2-3+1+0+0-4-2+3 decode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 selected 2554 1241 +3256+123+195-15+81+0+80+91+101+81+77-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5-5 decode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 0 2554 1328 +20+7+2-16+9+4-3+24-31-13-60-4+5+6-92+1-58-6-67+8+9+4-93-18+11+30+22+7-2-80-1+20 decode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 1 2554 1324 +3231+217+18-7+20+5-24+1+7-26+24-14+21-38+23+18-17-22-21+10-22-22-8-10-7+39-43-32-12+13+27+18 decode_1277x2627 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 2 2554 16068 +623+579+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 3 2554 21587 +855+178+0+0+0+0+0+0+0+0+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x2627 4 2554 16109 +608+552+15+0+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x2627 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x2627 5 2554 20881 +741+123+22+9+0+0+0+0+0+0+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 selected 2554 1193 +4440+148+141-14+59+38+4-4-4-5-8-6-2+68-2-8-6-2+68-2-8-6-2+68-2-8-6-2+68-2-8-6 decode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 0 2554 1203 +150-12-16-17+47-24+34+29-13-17+34-15-16-3-24-8-6-13+42+52+49-18-4+44+20-8-10+45-10-19-21+49 decode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 1 2554 1219 +2612+246+23+0-9+11+3-9-14-7-1+7+7-6-5+29-4+8-4-6-6+6-1-6+5+4+2-6+6-1-6+5 decode_1277x7879 2 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 2 2554 16568 +704+643+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 3 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 3 2554 20097 +874+186+20+0+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 4 implementation int16 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277x7879 4 2554 16568 +703+676+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277x7879 5 implementation int16 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277x7879 5 2554 19044 +797+190+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 selected 2554 123 +206+176+17+0+0+0+0+0+0+0+0+0+0+0+0+0-7+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0 decode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 0 2554 186 +163+83+201+25+0+0+0+0+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+8+0+0+0+0+0+0+0 decode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 1 2554 123 +78+17+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint16 2 2554 1011 +402+89+106+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint16 3 2554 217 +201+172+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 selected implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 selected 5108 217 +194+176+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 0 5108 1618 +147+76+16+2+13-10-2-14+3+4-2-6+3+1-18-1+9+19+14+2-5-4-18-21+7-9+13-10-2-14+3+4 decode_1277xint32 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 1 5108 218 +84+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_1277xint32 2 5108 1318 +103+78+152+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_1277xint32 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_1277xint32 3 5108 378 +177+224+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 selected 2 34 +111+23+20+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 0 2 33 +62+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 1 2 33 +55+43+30+26+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin decode_int16 2 2 33 +55+43+26+30+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 decode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. decode_int16 3 2 33 +60+43+21+21+21+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 selected 164 88 +941+21+16+21-3+2+2-2-2-2-2+2+1+1-5-1+3-2-2+2+3-2-3+0+1-2-1-3+1+0-2-2 encode_653x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 0 164 88 +131+51+20+1+1+0+1+0-1+1-1+4+0+0+1+0+1-1+0+1+3+0+0+0+0-1+0+0+0-1+1-1 encode_653x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 1 164 86 +69+34+17-3-1+2+0+4+0-1+1+0+1+0-4-3+1+2+3-3+1-3-2-1-3+1-4-2+0-1-2-4 encode_653x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 2 164 639 +180+96+5+13+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 3 164 133 +522+25-3-7-3+2-3+3-5+7-2-7+0-7+3+5+4-2+1-4+1+2+1+4+0-3+0+3+5-6+1-6 encode_653x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x3 4 164 650 +152+110+10+12+0+0+0+0+14+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x3 5 164 156 +1150+99+21+2+0+0+0+0+0+0+0+0+0+0+0+0+2+1+0+1+1+4+2+0+0+0+0+0+0+0+0+0 encode_653x1541 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 selected 865 486 +3434+45+46+107-9+1-3-32+6-10-11-6+17+5-11+9+4+8-14+8+4-14-7-7+16-20+7+1+2-9-3+2 encode_653x1541 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 0 865 564 +1898+328+9+5-2-14+46-18-25+7-13+8-29+5+8-19-9-2+38-47+15+15+1-20-12+8+47-11+14-11-7-5 encode_653x1541 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 1 865 495 +96+18-26-8+6+27+7-11-4+18+7-12+4-12+0-9+8+14+12-47+6+18-6+10+7-14-19-40-2-22-1-9 encode_653x1541 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 2 865 1904 +617+201+42-16-25-7-5+2-16-41+21-19-64+12+44+19+5+13-17+24+1-14-29+6+31-8+78-31-26+2-10+43 encode_653x1541 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 3 865 3307 +69+305-10-44-56+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653x1541 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541 4 865 2338 +558+169+67-44+82-46-20+17+31+81-45-5+38-29-98-27+17+18-27-11+16-68-23-1+68-45-43+55-22+104+8-13 encode_653x1541 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541 5 865 3288 +951+1210-11+19-3-26+42-6-3-26+42-6-3-26+42-6-3-26+42-6-3-26+42-6-3-26+42-6-3-26+42-6 encode_653x1541round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round selected 865 569 +2719+26+112+7-19-25+7-36+20-9-6-17+10-2-3+4+30+19-6-27+6-9-5+11+10-34-30+9-5+16-24-2 encode_653x1541round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 0 865 600 +726+311-5-6-1-10-18+22+21+2-1+3-22+6+34+29+17-16-8+28-8+1-12-15-14+4-14-19+23-1-7+18 encode_653x1541round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 1 865 567 +87+33+8-41+34+5-22-11+26-1-43-50+16+12-8+39+10-14-29-2-4+14-2-10+49-9+10-13-1-18+10-20 encode_653x1541round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 2 865 734 +2399+102-16+1-6+12-14+6-4-12+8-2-3-7-15-13+0+8+8+9-5-1+4-2+18+4-2-11+0+4-2+0 encode_653x1541round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 3 865 761 +596+142+58+14-8-44+14-21+1-4+31-15+20-5+23+4-36+8+2-21-15+22+10-12-17-20-11-7-4+23+25-24 encode_653x1541round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x1541round 4 865 792 +727+95+48+3-11+17+18+15+2+14-3+2-39-30+16-19-3-21-5-15+30-5-1-8-23-3-6-6+2-21-2+21 encode_653x1541round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x1541round 5 865 935 +157+124+35-12-18-5-1+3+17+5-8-27+4+4-19+7-13+18-7+5-22+7-13+18-7+5-22+7-13+18-7+5 encode_653x4621 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 selected 994 493 +2463+241+82-4+16-3-5+3+1-5-8+5-2-4+16-6+16+14-3-1-4+4+0+1-7-3-14+8-9-5+1+5 encode_653x4621 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 0 994 516 +228+323+26-26+19+53-5-33+116-12+14-37-31+56-23-10-12+87+28-23+79-6-29-21+17-21+7-18+26-34-27+23 encode_653x4621 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 1 994 493 +106+23-6-4+46-2-3-3+1+0-4-7-7+2+4-7+2+5+0-3-6-6-6+22-3+42+13-1+0+6-1+4 encode_653x4621 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 2 994 2016 +579+235+12-41-8-45+118-15-3-8-24+23-27+74-119-2-37-35+10+36+159-92+32+29-44-64+24-52+85+30-47+153 encode_653x4621 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 3 994 1938 +220+399+37-61+44+94+49+56-29-4-29+46+59+57+86+4-16-38+28-15-21-42-20-5-23-29-30-28-4-5-37-17 encode_653x4621 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653x4621 4 994 3296 +96+222-34-72+22-70+31-103+20+209-99+6+5+22+32+34-77+178-94+174-93+46-42+12-46+47+16-91+63-31+16-104 encode_653x4621 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653x4621 5 994 2234 +454+457+1+47-41+24-17-55+82-20+20+13+22+12-22-5-29+26+34-56+0-8+5-26+3-59-47-68-8-6+14+41 encode_653xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 selected 653 125 +270+170+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 0 653 124 +66+0+19+19+19+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 1 653 118 +140+178+24+0+2+0+0+1+1+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+1+0+0+1+0+0 encode_653xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 2 653 370 +222+184+12-4-3+1+10-6-1-11-2+1+0-4-7+16-5-3-8-6+2+12+0-3-6+18-1-3+10+8-2+3 encode_653xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 3 653 393 +130+81+4+2+2+1+1-4+1+6-6+7+2-4-3+7+5-8-1-2+3-1-4-13+4-3-1-1-4-13+4-3 encode_653xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xfreeze3 4 653 496 +170+129+55+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xfreeze3 5 653 494 +156+109+15+15+1+3-3+1-9+0-2+3-7-2+6-2-2+0-2+3-7-2+6-2-2+0-2+3-7-2+6-2 encode_653xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 selected 1306 96 +246+154+0+0+37+0+0+1+3+0+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_653xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 0 1306 95 +127+36+0+0+0-1+0+0+3+2+0-1+0-1+2-1+1-1+0-1+2+2+0+2+2+0+2+0+0+0+0+0 encode_653xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 1 1306 148 +122+160-1-3+2+0+5-1+0-5-1+0-1-3-1+2-3+2+3+1+4-2-4-4+1+2+1-4+0+4+3-3 encode_653xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_653xint16 2 1306 543 +80+63+92+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_653xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_653xint16 3 1306 181 +132+207+18+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 selected 191 85 +591+3-1+3-2-1+1-2+1-1+0+0-1-2-2+1+0-2+2+5+0-1+0-1-2-1+3+4+0+3-1+0 encode_761x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 0 191 89 +139+100+0+0+1+0-2-1+0+0-1-1+0+1-1+1-1-1-1+0-1+0-2-1+0+0+0+0+0-1+0+0 encode_761x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 1 191 82 +51+38-1-2-2+2-1+0+2-2+2+0-1-1-1-2-2-2+0-2+0+0+0+0+0-2-2+0+0+0+0+3 encode_761x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 2 191 768 +155+101+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 3 191 192 +1190+26+8+6+4-10+7+2+5-7-8-1-6+2+3-3-1-8+5-11-2-3-3-5-10+3-9+5-10+7+2+5 encode_761x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x3 4 191 769 +166+81+1-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6+6-6 encode_761x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x3 5 191 202 +369+89+0-5+4-3+2+4-3+2-3-3+2+4-3+2+4-3+2+4-3+2-3-3+2+4-3+2-3-3+2+4 encode_761x1531 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 selected 1007 535 +2543+117+93+4+12+9+10-4-1-14-2+1+1+2-7+7-1-9+8-4-10-6+0-9+7+1-13-9-1+5-8-7 encode_761x1531 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 0 1007 575 +202+274-2+5+5-15+9-1-1-5-7-11+5-6+0+0-2+9-8+4-2+1-7-10-3+5+5+10-5+4-3+3 encode_761x1531 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 1 1007 533 +32+15-1+0+1-8-6-2+5+6+1-1-2-3+14-1-7+0+0-4+1-1-8+9-2+0-1+12+0-9-15+2 encode_761x1531 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 2 1007 2335 +155+177+15-9+84+3-21+68-37-50+1+8+17-12-68+81-32-34+5-4+14-25-25-86+38+101-24-8+20+24+36-63 encode_761x1531 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 3 1007 3734 +153+477+44-24+39+29-52-38+28+29-52-38+28+29-52-38+28+29-52-38+28+29-52-38+28+29-52-38+28+29-52-38 encode_761x1531 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531 4 1007 2768 +188+256-36+35+19+46+0-43+19-23+15-34-55+55-26-29+15-22-22+88-10+25-8+39-33+30-35-31+9-30+8+25 encode_761x1531 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531 5 1007 3790 +1152+1484+18-4+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761x1531round selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round selected 1007 620 +2847+27+68+7+7+3-3+2-21-23-1-29+2-1-7+3+0+14-5+20+5-1-15-25+8-22-30-8+11-6-4+1 encode_761x1531round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 0 1007 619 +1619+292-5-8+8+6-3-5+2-4+19-4+0-4+6+8-8+1+4-8+22+3-2-4-6-11+5-10-2-12+9+3 encode_761x1531round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 1 1007 621 +18-27-3+10-17+5+4-5+4-14+5+18-7-10-9-23+10-2+22-4-29+8+0+0+3-35+5-4+2+6+11-7 encode_761x1531round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 2 1007 810 +225+46+8-8-2-1-2-1-1+5-7-3+3+8-2+1-1-4-8+2+6+1-13+7-13-2+4+4+3-1+2-5 encode_761x1531round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 3 1007 836 +651+198-10+17-10+3-3+1-7+11-4+13-6-4-13+28-9-19+11-4-14+4+1-1-9-17+5+3+4+18-6+10 encode_761x1531round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x1531round 4 1007 889 +230+63+75-8-3+4-11+7-9+2+4-12-10+5+0+3-4+9+0+3-2-2-9+3+6-2-3-7+11+5-5-5 encode_761x1531round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x1531round 5 1007 1043 +172+94+50-9+16-18-4+4-9-8+3+11+9+0-8-9-4+0+15-3+4-1+4+6-5-14-7+2+0-2-4+11 encode_761x4591 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 selected 1158 523 +3013+140+107-15-7-20-3-2+6+4-22+29-5-11-4+33-1-15-27+17-14+3+11+2-2-2+4+20+7+8-13-10 encode_761x4591 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 0 1158 604 +282+399+13-15+7+1-63+28+13-36-37-51+29+22+2+17-60-7+11-38+41+11-31+22-55-23+11-47+40-60+45+6 encode_761x4591 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 1 1158 517 +194+18+8+5-9-7+1-5-1-3-8-11+2-5-18-7+10-9-6+1+45-3+3+11+8+3+22-2+5+2+8-9 encode_761x4591 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 2 1158 2338 +342+192+99+17-38-14+11+75-42-22-20+30+1-17+17+7-19+31-6-17+22+42-54+40-47-10-12-27+86-1-8-55 encode_761x4591 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 3 1158 2269 +1839+327+1-38+8+4+29-60-16+30+31-28+38-26+11-4-16+40-27-27-34-1-39-16-8+37+16+12+61-13-31+16 encode_761x4591 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761x4591 4 1158 3656 +121+331-39+2-34+66+19-36+113-40-70-2+16+119-90+168-47+116+29+17-29+26-4+4+13-53-4+94-118-23+7-44 encode_761x4591 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761x4591 5 1158 2596 +120+324-12+19-25+33+11-50+6+33-43-28-11+13+29+0+25+12+23-14-82-6-25-36-64+10+44-27-22-4+32-4 encode_761xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 selected 761 132 +222+161+24+133+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 0 761 155 +147+180+117+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 1 761 132 +108+256+8+0+0+1+0+0+0+0+0+0+0+0+0+0+3+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 2 761 457 +224+152+21-1-1-4+10-5+6+11-2-4+3-6-6+6+0+3-6+7-10+6+3-2+6-10-7-10-6-6+6-9 encode_761xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 3 761 436 +146+109+10+21+9+0-14-2+5+7+12+1+6+10-2+21-1+26-7-12-10-1-14-4-2-16-4-9+2-9-9+0 encode_761xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xfreeze3 4 761 575 +167+77+79+13-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4 encode_761xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xfreeze3 5 761 559 +150+119+17+4-5-2-2+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2 encode_761xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 selected 1522 103 +282+61+170+20+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+2+0+0+0+0+0+0+0+0+0+0 encode_761xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 0 1522 103 +55+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_761xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 1 1522 166 +157+136+20+3-2-1+0+6+0+0+1+2+1+3-3-1-5-6-1-1+0-5-2+3-1-3-1-5-6-1-1+0 encode_761xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_761xint16 2 1522 624 +251+89+110+0+0+1+8+0+0+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0 encode_761xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_761xint16 3 1522 207 +125+192+5-17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 selected 215 155 +527+41+41+1+23-1-5-6-3+4+1-2+1-6-4+0-5-3+10-3-2+25-2+2-2+9-3+9-3+9+0+1 encode_857x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 0 215 158 +131+0+23+19+2+22-2-2-1+1-3+0+2+1-1+1+0+2+0+0-2+0+21-1-5+2-3-2-2-1+1-3 encode_857x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 1 215 155 +41+31+22+17+16+2+0-2+0+8+20-5-6-2-2+0+2-4+1-5+9-4-2-4-2-6-5+21-1-1+0-1 encode_857x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 2 215 846 +156+105-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4-6+4 encode_857x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 3 215 175 +805+14+62+15+58+3+67+0+1+7+4+0-4+6-1-2-5-4-2-4-6-3-8+53-4-1+1-9-1-1+1-5 encode_857x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x3 4 215 867 +128+49+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x3 5 215 205 +142+90+18+0+1+2+0-1+1+0+0-2+2-2+0+2-2-1+1+0+0-2+2-2+0+2-2-1+1+0+0-2 encode_857x1723 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 selected 1152 634 +2767+217+117-3-6+5+2-5+0-11+13-4+7-7+11-6+2+0+0+3-4+20+5+1-1+4-7-7+8-5-9-2 encode_857x1723 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 0 1152 685 +256+296+97+15+0-2+0+1-17+19-8-9-3+3+7-1+0-8+18+2-12+16-1+0-16+1+8-4+3-8-1-2 encode_857x1723 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 1 1152 632 +140+40+12-2+2-1-17-10-26-3+5+4-2-21-1+1-9-4+14+9-5-10+24-1+3-24+18-6+13+0+15-19 encode_857x1723 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 2 1152 2275 +684+282+108-30+53-36+34-48+55-76-33-2-16+29+45+46+21-3+6-5-62+17-45+29-17+19-39+2-77-18-5-41 encode_857x1723 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 3 1152 4152 +1239+504-91+1014+1084+898-130-80-136+898-130-80-136+898-130-80-136+898-140-80-136+898-140-80-136-108-96+857-5-142-142-142 encode_857x1723 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723 4 1152 2772 +246+321+39-13+146-15+67-58+52-28-32-18-2+6-55+8+10-11-4+36-64+92-71-5-14+1-1-23+63-101-13+34 encode_857x1723 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723 5 1152 5048 +699+667-923+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+13+0+0-1053-1021-1012-41-41 encode_857x1723round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round selected 1152 750 +1501+365+51-23-9+29-16+60-28-28+6-28-26+0+24+30+7-34-10+3+16-13-20+17-23-29+37+40+14+13-35-6 encode_857x1723round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 0 1152 748 +138-49+3+4+14-2+16-5+18+5+21+0-4-16-4-6-17-9-7-21+10+14-4+12-21+5+1-5+3+13-2-24 encode_857x1723round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 1 1152 736 +2273+225+52-30-21-22-15+19+10+2-5-41+15-19+5+17+9-1-54+6+10+2-5-41+15-19+5+17+9-46-15+6 encode_857x1723round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 2 1152 934 +2431+71+46-11-1-15-34-9+0+0-21-21-5-4+8-2-11+16+10+8-13-12-18-2+7+17-2+15+15+16-13+15 encode_857x1723round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 3 1152 972 +281+158+27+4-7+26-27+0+0-8-14+30-2+4-7+26-27+0+0-8-14+30-2+4-7+26-27+0+0-8-14+30 encode_857x1723round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x1723round 4 1152 1022 +223+78+43-3-2-1-11+9-9-15-19+9+3-17-3+8+13-7+7-8+18+14-5+0-21-10+8+0-14-14+14+3 encode_857x1723round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x1723round 5 1152 1203 +232+128+23-6+0-1+7+4+9+18-43-4+4+11-12-11-33-9+1-9-1-1-3+14+17+1-7+1-24+16+1-9 encode_857x5167 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 selected 1322 559 +2515+86+36+17-27+2-8-18+15+8-19+7-56+9+2-30-18-7+24+24-7-12-6-12-15+29-19+33+2+9-23+25 encode_857x5167 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 0 1322 642 +337+368-20+18-3-19-16-3+9-7-15+4+7+1-16-24+4+13+7+8+9-2+11+15-18-18+17-18-6-19+6+2 encode_857x5167 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 1 1322 560 +30-1+37-24-4-2+24+7-47+4+45-10-26-15+47+5-3-2-14-21-18+26-25+31+15-28+10+36-7-24-6+25 encode_857x5167 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 2 1322 2643 +180+167-1-53-23+38-1-51-13+7+61+41-16+2-2-26+2+46-24+74-63+25-24-61+25-27+76-9-73-14+20+16 encode_857x5167 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 3 1322 2628 +119+259+8-1-8-4+29-25-17-8-22+13+12-18+20-18-18+20-45+2+27-46+27+37+5+27-24-30-3+30-27-8 encode_857x5167 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857x5167 4 1322 4083 +241+190-108+27-21-26+4+59+24-41-24-14+32+99-65+46-79-41-24-14+32+99-65+46-79-41-24-14+32+99-65+46 encode_857x5167 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857x5167 5 1322 2801 +193+383+13-17-5+33-15-59-10-3+2+24+6-49-23-11+16+18+2+29+0-21-4+49-15-12-4+10+0-21-4+49 encode_857xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 selected 857 144 +249+181+28+191+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 0 857 172 +143+172+0-20-20+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 1 857 144 +96+76+0+0+0+1+2+0+0+0+0+0+2+0+0+2+3+0+0+0+2+1+0+1+0+0+0+1+1+0+0+0 encode_857xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 2 857 500 +258+119+31+17-1+6+1+3-2-6+5+0-1-3+5+7-6+1+1-1+4+2-7-2-4+3-4-6-5+0-7+2 encode_857xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 3 857 499 +142+98+9+0-5+2+3-2+1-18-2-10+1+2-16+0-4-11+2+2-4+1-2+0+13+4-3+13+7+2+2-5 encode_857xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xfreeze3 4 857 646 +156+87+81+20+2-3+3+2-3+3+2-3+2+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xfreeze3 5 857 645 +120+98-2-1+2-4+0+7+1+6+2-2-1-5-3+3-3-5+0+4-11+2-10-1+4+2-12+0+1+1-3+6 encode_857xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 selected 1714 136 +588+63+176+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 0 1714 135 +78+3+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 1 1714 183 +105+179+20+0-3-2-4-2+2+0-4-5+2+5+4+1-4+1-9-1+4-1+1-1+2+0-2+1+1-4+1-9 encode_857xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_857xint16 2 1714 696 +293+87+99+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_857xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_857xint16 3 1714 210 +116+182+34+17+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 selected 239 111 +571-4-2+6+3+1-1-1-1-3-2+2+2+2-2+6-1+0+4-3-1-1-3-1-2-1+3+0+2+0+4+0 encode_953x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 0 239 114 +169+25+2-1+1+3-1-1-1+0-1-3+1-2+1+0+3+2-1+0+0+5-2+1+0+0-2+0+1+3-1+1 encode_953x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 1 239 109 +63+33-4-1+1+2-1+0-1+0+2+1+1-1-3-2+0-2+1-1+0-2+6+0-1+1-1-3+0+0+2-5 encode_953x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 2 239 822 +215+196-8-13-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4-5+4 encode_953x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 3 239 215 +2535+28+5+7-11-5-4+4-3+5-1+2+0-3+7-11-5-4+4-3+5-1+2+0-3+7-11-5-4+4-3+5 encode_953x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x3 4 239 942 +153+107+3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 encode_953x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x3 5 239 238 +321+78+1+2-2-1+1+0-1+2-1-1-2+0-1-1+1+3+0+1+0+1-3+1-1-1+1+0+1-3-2-1 encode_953x2115 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 selected 1317 803 +1519+372+20+0-12-28+1+25+0+0-23+0-14+19+13-32-7+18-20+3-5-3-5+1-3-1+21-2+26+13-32-7 encode_953x2115 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 0 1317 803 +88-6+6+15-13-6+22+15-15+18+2-4-12-34+16+28-7+1-5-8-13-22+14-4-5+13-36-22+13-4-5+14 encode_953x2115 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 1 1317 895 +1753+196+118-2-1-1+3-5+3-6-6+9+5-2+12+8-14-8-14+2+4-8-11-4+29-6-8+4+0+9+3+0 encode_953x2115 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 2 1317 2221 +748+464+75+15-29+3-21-13-7-23+5-12+44-1+67-94+25-63-31-39+32+78-38+10-53+1-7-20+22+24+32-22 encode_953x2115 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 3 1317 5248 +239+569-18-24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953x2115 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115 4 1317 4336 +185+477-30-24+46-57+77-16+62-62+44-32+7-19+44-32+7-19+44-32+7-19+44-32+7-19+44-32+7-19+44-32 encode_953x2115 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115 5 1317 5243 +330+570+174-6-38+32-1-9-38+32-1-9-38+32-1-9-38+32-1-9-38+32-1-9-38+32-1-9-38+32-1-9 encode_953x2115round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round selected 1317 896 +1760+392-66-19+7+4+37-17+5-5-27-5-2-14+5+39+0+30-3-10-13+30+0-7-7-14+3+0+3+3+5+28 encode_953x2115round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 0 1317 902 +45-34+16-10-15+46-19-7+29+2-16-26+14+1+23+23+1-25+4+9-10-3+5-7-9+5-1+14+21-19+1-24 encode_953x2115round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 1 1317 1028 +1581+141+65-4-55+21-91-53+3-4-3+11+9+16-63-8-62+13+9+3-26-10-59-33+7+17+7+4+27+22-34-9 encode_953x2115round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 2 1317 1153 +342+79-14-6+19-12+19-1+8-15+18+22-1+22-19-12-15-8+8-30-28+14-6-5+20-15-6+4+17-9-8+3 encode_953x2115round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 3 1317 1210 +681+111-26+31-3+32+2+11+10-18-13+12-5+9-3-46-4-17+2+20-11-5-4-33+5+2+25-3-14-7+45-15 encode_953x2115round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x2115round 4 1317 1244 +254+122+72+0+9-1+20+21-31-34+25-14-12+11-1-14-4+11+8+16-5-21-26+4+11+6-5-32+38-16-19-30 encode_953x2115round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x2115round 5 1317 1452 +226+142-26-13-1-14+10-1-29+0-31+4-8-25+1-6+18+1+12-39+2+20+3+4+4+22-10+3-4+15-23+23 encode_953x6343 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 selected 1505 578 +4779+175+122+0+7+0-11-5-3-3+3-1-3-10-12-1+4-9-4+1+1+5-1+12+13-13-12+20+6-10+3+14 encode_953x6343 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 0 1505 709 +302+314-8+30-21-5+6+10+21-10-5-1+12-11-2+3+7+2-1+4-7-2-14-27+2+82-69-10+7+4-1-2 encode_953x6343 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 1 1505 578 +141+35-2-2-5-8+18-2-13+9+1+5-10+13-5-2+3-3-3-4+13-1+7-3-5-4+3-2-2+7+0+7 encode_953x6343 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 2 1505 2949 +200+181-45-24+19+39-75+24-10+74-40-54+86-73+60-47-40+58+10+60-12+16-37-83+62-121+53+1-16+23-11-37 encode_953x6343 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 3 1505 2896 +1677+373+55-1+58-2+1-2-16-19-50+29-40-12-5+2-18-22-2+38-2+11+23-11-32+8+0+6-2+20+6-46 encode_953x6343 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953x6343 4 1505 4767 +49+183-71+94-72-29+15-146-68+67+1-3-19+113+27+18+71+56-7-25-81+88+17-25+30-81-46+60-29-66-18-3 encode_953x6343 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953x6343 5 1505 3311 +174+208+42+5+2+24+7-27+0-14-19+15-7-11-15-20+34+16-38+15+0-14-19+4+16-12+1+5-32+6+7-11 encode_953xfreeze3 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 selected 953 156 +237+154+24+149+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 0 953 166 +157+176+97+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 1 953 155 +113+220+6+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1 encode_953xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 2 953 549 +169+159+66-15+6+6+0-6-9-8+27-6-5-1-4-3+2+11+11+8-10+3-6-6-3-4-10+10+14+4-7-1 encode_953xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 3 953 533 +128+102+34+6+13-6-3+3-15-6-6-3-4-1+6-4-8-8-1-2-4+1+20+4+13+16+7+9-4-10-8+6 encode_953xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xfreeze3 4 953 714 +155+76+64+3+9-4-1-6+0-5-6+4+1-6+3-5+5-3+2-10-2+0-2-3-1+9-2+2-5+5-2-2 encode_953xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xfreeze3 5 953 693 +157+103+20-2+1-4+8+2-5+2-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3-5+3 encode_953xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 selected 1906 157 +247+67+109+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 0 1906 157 +76+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 1 1906 203 +108+147+17-3-1-6+4-7-4+2+3-2-2-3+6-3+8+4-4+6-4-2+5-6+4-4+6-4-2+5-6+4 encode_953xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_953xint16 2 1906 768 +312+41+126+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_953xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_953xint16 3 1906 229 +125+168+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 selected 254 115 +243+93+5-2-5-5+0+1+4+1-1+0+1-1-1-3+4+1-1+0+1-1-1-3+4+1-1+0+1-1-1-3 encode_1013x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 0 254 111 +45+2+1-1-2-1-2+4-2-1+4+8+0+6-2-1-1-1+2+3+1-1-1-1-1+2+0+5+2+1+1+0 encode_1013x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 1 254 110 +443+32+19+18-2-4-3-1-3+0-1-2+1-2-1-3+0+0+0+1+0+4+0+3-2-2-1+0+0-1-1+3 encode_1013x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 2 254 991 +119+87+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 3 254 210 +1063+30+21+6+5+8+0+13+4+0+2-1-2-2-1-2+0-1-7-7-2+1+5-2-4-7-1-2+0-1-7-7 encode_1013x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x3 4 254 967 +148+97+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x3 5 254 248 +299+68-5+3+8-2-1-2+5+4+0+5-3+0+0+0+0-1-4+0+5-3+0+0+0+0-1-4+0+5-3+0 encode_1013x2393 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 selected 1423 941 +1477+210+150-21+33+17-20+4+21-16+20-8-17+4+6+14+16+13+0-15+14-17-14-13-7+13-18-14-13-7+13-18 encode_1013x2393 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 0 1423 931 +176-4-8-2+3+0-2+6-5+4+3+37-4-5+17-1+2+3-5+27+5-10+0-8-8+24-10-7-2+25+35-7 encode_1013x2393 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 1 1423 1096 +1642+170+47+34-25-19+39-43-24+33-25+19+31-19-26-20-28+35+32+28-25-24-30+41+37-28-23+34-43-24+33-25 encode_1013x2393 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 2 1423 2420 +520+132+116+43+12-84+69-104+51-109-79-61-33-76-27+66-76+37+7+3-113+32+2-46-45+27+10+10+10+10+10+10 encode_1013x2393 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 3 1423 5620 +230+686-2+6-21-2+18-21-2+18-21-2+18-21-2+18-21-2+18-21-2+18-21-2+18-21-2+18-21-2+18-21 encode_1013x2393 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393 4 1423 4532 +153+214+192+46-99+4-19-61+50+5-42-16-64-30-32+99-85-38-87+48+7+93-151+27+210-179+51-95+48+7+93-151 encode_1013x2393 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393 5 1423 5634 +285+459+27-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4+3-4 encode_1013x2393round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round selected 1423 1061 +1705+230+148-5-24-1+4+9+13+1-32+7+13+1-23+8-30+5-6+0+15-34+13-24-3+5+22-23-40-23+23-28 encode_1013x2393round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 0 1423 1065 +90+14-2-52-59-1+3-5+6-3-11+3+2+2+5-9-4+7-36-3+3+9+7-5-46+9-8+5+1+11+8-64 encode_1013x2393round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 1 1423 1202 +1716+108+19+9-30+13-55+12+18+18+7+28-57+24+5-59+14+2+15-12+7-25-61-64+14-6-50-54-18+2+0-46 encode_1013x2393round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 2 1423 1304 +331+106+2-1-21+1-7-23+20+5-24-6+17+26-29+4-20-1+4-1+16+13-11+10-7+26-15-19-16+17-15+8 encode_1013x2393round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 3 1423 1349 +742+216-25+51-18+22-3-1+14+3-23+2-17+27-14-34+12-1-18+22-3-1+14+3-23+2-17+27-14-34+12-1 encode_1013x2393round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x2393round 4 1423 1411 +286+186-25+17-14-24+21-23+2+23+20-27-27-20+12-14-9+10-19+12+3+11+16+3-24+8+9+18-15+8-14-17 encode_1013x2393round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x2393round 5 1423 1655 +380+174-18+4+2-28+2-23-7+2-17-1+2+5-13+18+6+41+25+14-14+6+4-14-10+16+21-12-10+9-15-5 encode_1013x7177 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 selected 1623 703 +2222+337+65-9-11-4-4+5-4+6+14-3+0-2-2-6+1+0-8+9+14+6+12+5-15+8+10-23-23-23-23-23 encode_1013x7177 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 0 1623 754 +301+418+142-2+6+9-9+6+5+2-9-11-13+5+5+7-9-10-5-1-11+9+9+2+12-3-11+0-7+12-4-9 encode_1013x7177 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 1 1623 701 +119+14-9-2+22-15-1-2+6+2-20-22-1-3-2-6+4-19+0-1-1-2+1+5+3-6+3+14+5+0-16+1 encode_1013x7177 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 2 1623 3035 +273+76+163+45-99+87-49+24-63+57-119+3+108-93+96+2-25-7-19-14+20+101-77-68+15-65-18-21-2-5+74-49 encode_1013x7177 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 3 1623 3049 +1623+388-17-1-36-50+75+60+10-32+21-48-36+15-14+9-31+4+3+6+10-17+32-65-38+15+11-37+10+8+15-9 encode_1013x7177 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013x7177 4 1623 4710 +108+141+219+44-54-25-22+23+14+11-70+40-66-46+19+13-39+1-25-18+25+0+11-21-49+117-46-38+56-21+27+9 encode_1013x7177 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013x7177 5 1623 3417 +252+362-38-37-32+13+2+43-49+19+17-25-16-41+88+38+22+8-11+1+16-2-4+127-47-11-65-1+15+101-47-22 encode_1013xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 selected 1013 197 +205+160+102+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 0 1013 198 +51+22-2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 1 1013 187 +129+155+27+127+22+0+0+0+0+1+0+0+0+0+0+0+1+0+0+0+0+3+0+2+0+1+0+2+0+0+0+0 encode_1013xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 2 1013 563 +164+171+46-3+16+0+11-1-11-6+1-3+1+3-8+1+1-4-7-1+13+1+11-1-11-6+1-3+1+3-8+1 encode_1013xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 3 1013 558 +139+155+20+11+10+8-6-11+4-3-3-8+4-9+8-1-1-8+4-9+8-1-1-8+4-9+8-1-1-8+4-9 encode_1013xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xfreeze3 4 1013 780 +163+127-5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xfreeze3 5 1013 733 +126+95+12-3-6+0-5+2-5-5-9-7+3+5+1-8-3+1-11-6-6+3+1+3+1+3+1+3+1+3+1+3 encode_1013xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 selected 2026 137 +261+162+0+15+0+0+0-2+0-3+0-3+0+0+0+0+2+2+2+2+0+2+2+0-3+0+0+0+0+1-3+0 encode_1013xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 0 2026 138 +72-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 1 2026 208 +123+168+27+0+4+4-1+2+0-1-2-3+3-1+7-2-2+1-1+6-1+2+0-1-2-3+3-1+7-2-2+1 encode_1013xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1013xint16 2 2026 813 +85+63+116+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1013xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1013xint16 3 2026 259 +136+204+21-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 encode_1277x3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 selected 320 136 +213+48+2+6+0+1+0-1-3+5+5+4+1-3-2-1+4+1-3+4-1-1+6+2-2+0-4-3-1-3+2-4 encode_1277x3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 0 320 136 +46+14-1+0-5+2-2-6+3-2-2+7-6-3+3-2+5-3-1-2+1-1+2+5-2-5+5-4+2+0-3+4 encode_1277x3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 1 320 133 +130+88+43+1-3+4-1+2-1+1+0+1+1-4+1-2+0+3+0-1+0+4-1+1-1-2-1+0-2+2+2+1 encode_1277x3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 2 320 1211 +136+103+12+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2-3+2 encode_1277x3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 3 320 266 +1090+26+25+30+29+21-1-3-6-4-1-7-3+0-5+2+3+1-4+2-2+1+1+0-7-1-4+0+3+1+1-3 encode_1277x3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x3 4 320 1220 +167+76+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6 encode_1277x3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x3 5 320 299 +279+99+16+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1 encode_1277x2627 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 selected 1815 1089 +1363+233+151-7-17-5+22-13+28-9+10+5+38-7-4+4+20-4-9+13-5-4+27-7-19+2+44-30-16-32-10+3 encode_1277x2627 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 0 1815 1088 +58+7-15+11-6+5+5-12+3-17+7-12-5+13-1+6-16+6-17-16+19-27+9+5-1+47-30+1+4-1+3-9 encode_1277x2627 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 1 1815 1225 +1858+313+93+24-14+24+33-25-10-18-22-28+27-8+55-3-43+18-5-35+26-29-13+29-23+2+66-41-34+27-13-9 encode_1277x2627 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 2 1815 2961 +244+427+166-19-24-5-16-27-18+35-14-9+33-22-26+17+20+24-7+1-2-3+73+2-20-10-20+14-5+11+2+26 encode_1277x2627 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 3 1815 7094 +391+738-39+24+22-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 encode_1277x2627 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627 4 1815 5690 +178+364+150-63-9-24+25-34+30-34+30-34+30-34+30-34+30-34+30-34+30-34+30-34+30-34+30-34+30-34+30-34 encode_1277x2627 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627 5 1815 7093 +254+544-5-9-23+14+5+2-25+2-44+14+5+2-25+2-44+14+5+2-25+2-44+14+5+2-25+2-44+14+5+2 encode_1277x2627round selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round selected 1815 1214 +1186+235+205-28+20+8+36+19-21-24-30+64-31+19+5-52-14+17+6+14-20+4+14-3+6-45+13-35-22-49-10-1 encode_1277x2627round 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 0 1815 1220 +56+4+33-12+12+13+24-3-9+32+10+10-3-1+26-1-46+8-52-1-3+13-13+12-3-22-6-1-32-16-41-63 encode_1277x2627round 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 1 1815 1377 +1307+201-7+31-85-5-61+2+14+17-34-4+14+46+1+14+1+1-8+7-77-1+19-69-9+59-58-17-66-5-8+18 encode_1277x2627round 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 2 1815 1556 +1961+76+29+32+7-26-35-2-9+8+5-23+23-7-19-6+10-26+41-40-11-6+7-32+0+5+6-5-34+3+4+5 encode_1277x2627round 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 3 1815 1594 +310+176+27+2-13+5+12-1-4+63-34+45-12-9+16-14+1-31-1-36+18-21+1+14-1-9+69-25+17-2-19-17 encode_1277x2627round 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x2627round 4 1815 1679 +227+99+65+14+9+2+4-13-9-3-10+1-32+23-6+19-8-1+14+8-30-39-10-11+13+33-1-27-22+12-4-6 encode_1277x2627round 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x2627round 5 1815 1958 +163+99+0-16+16-21+1-12-1+8+6-3-12+16-6+9-1-37+11-9-16+3+8+9-40+11-32+8-2-2-41+9 encode_1277x7879 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 selected 2067 681 +2947+364+85-6-1-10+11+3+3+4+11-4-10+15+0-13-11-11-12-3+8-4+3-1+14+4+1+2-11-2-18+3 encode_1277x7879 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 0 2067 822 +1763+428-7+21+24-43-26+19-43-11-14+22+23+6-41-39-16+39+17+26+7-38-26-8+33-30+28+10+24-36-14-48 encode_1277x7879 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 1 2067 678 +149+28-3+8-4-7+1+1-3+2-2+8-10-10+7+15-1-1-2-9+3+11+4+6+2-5-1-3+0+0-5+2 encode_1277x7879 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 2 2067 3970 +106+269-57-6+0-41+7-7-91+26-60-31+20+15+1+51-81-10-51+73-52+37-87+39+77+7-14-35+84-98+32+30 encode_1277x7879 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 3 2067 3925 +1574+374+27+26+33+34-4+3-38+49-27+10+7-12+11-36+20-1-18-32-38+32-21+16-65-6+12-17+30-30-84-79 encode_1277x7879 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277x7879 4 2067 6137 +179+342-29-21-71-94-33+4+83+38+17+7+1-23+9-33+5-122+31+32-3-71-2-9-64+8+51-41-48+49+68+43 encode_1277x7879 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277x7879 5 2067 4513 +229+380+102-5-16+23-41+16-42-40-78-42-25-55-37+33-11-13+25+34-47+22+17+14-45-18+25+42+28+10+31-27 encode_1277xfreeze3 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 selected 1277 235 +313+153+24+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 0 1277 235 +84+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 1 1277 195 +156+203+49+210+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 2 1277 735 +205+127+2-8-8-6-7-10-12-12-4-3+3-15-6-9-8-11+1-15+7+7+7+7+7+7+7+7+7+7+7+7 encode_1277xfreeze3 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 3 1277 707 +126+113+44+14+25+18+33+40-14-6-8+2-10-15+28+15+24+16-7-11-12-13-3-6-11-1-9-1+2-11-15-13 encode_1277xfreeze3 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xfreeze3 4 1277 953 +186+111+58+12-2+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_1277xfreeze3 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xfreeze3 5 1277 925 +146+107+28+5-10-5-7-5+0+0-3-9+0-12-8+0+0+2-1-2+2+0-1+0+2-1-2+2+0-1+0+2 encode_1277xint16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 selected 2554 184 +212+120+4-19-1-1-1+1-1+1-2-2+0-1+1-1+1-1+0-1-1-1+1-1-2-1-1+1-1+1-1+1 encode_1277xint16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 0 2554 183 +29-17-1+2+0+0+2+0+2+0-1-1+0-1+0+2+0+2-1+1+0+2-2+2+0+2+0+0+2+0+2+0 encode_1277xint16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 1 2554 264 +118+162+24+2+2-5+4-2-4-4+4+0+0+1-5-4+6-2+1+2-8-8-2+5-2-3+0-2+2+2-1-1 encode_1277xint16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_1277xint16 2 2554 1011 +387+69+104+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0+0+1+0+0 encode_1277xint16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_1277xint16 3 2554 295 +107+201+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 selected implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 selected 2 35 +128+22+20+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 0 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 0 2 33 +42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 1 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 1 2 33 +44+25+26+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin encode_int16 2 2 33 +45+22+21+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 encode_int16 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. encode_int16 3 2 33 +42+22+21+26+21+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 selected 0 44 +5015+48+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 1 44 +0+0+0+0+0+25+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 2 45 +53+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 4 49 +57+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 7 62 +30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 selected 11 126 +11037+12-45-11-2-3-1+1+2+0-2-2-1+1+0-1+3-6+2-3+0-3+0+0+1+1-1+0+4-1-2+0 sort_int32 selected 17 198 +440+0+5-3-2+9-3-5-1-2+2+1-8+4+2-1+2+0+4-2+7-8+3-1-2+2-3-2+2-3-2+2 sort_int32 selected 26 196 +20-26+7-1+1-4+1+2-2+5-4+0-2+0-2+6-9+1-1+7-2+4+4+2-2-1+4-1-9+5+0+0 sort_int32 selected 40 276 +1876+253-12+1+2-7+0+5-5+6+3-12-2-1+1+3+7-1+4-3-1-4-3+7-5-6+0-3+3-2+5+3 sort_int32 selected 61 333 +49-41+7-16+5+11-12+5-4+3+9-2+3-9+10-2+5-4-4-3-4-4-10+4-4+21+6-7+2-7+5-4 sort_int32 selected 92 527 +1723+454+20-3-9+1-3-1-9-4-6+1+4-11+16+4-7+7-8-1-8+5-4+1+6+9-7-6+3-11+7+1 sort_int32 selected 139 953 +2108+539+97-1-7-8+17+0-3+2-4-6-4+5-4+2+10-8+0+1+3-8-1-2-4-10-4+3+6+3+14+2 sort_int32 selected 209 965 +492+56+0+2+11-3-3+4-10-3-1+4+6+5-6-2+1-4+0-3-1+4+6+5-6-2+1-4+0-3-1+4 sort_int32 selected 314 1577 +2114+374-26-14+8-24+5-11-1+8-7+22+11-17-4-2-4+3+5+2-7-12+7-17-1+6-15+8-4-2+7+2 sort_int32 selected 472 2302 +1445+276+63+11-3+6+12-9+11+8-2+0+4+12-7-12-8+0-7-5-2+0+4+12-7-12-8+0-7-5-2+0 sort_int32 selected 709 3545 +2910+889+186+5+2-28-3-20+2-6+12-24+7-11+12-24+7-11+12-24+7-11+12-24+7-11+12-24+7-11+12-24 sort_int32 selected 1064 5893 +3399+818+101+38-37+6-24+33-15-10-38-14+12+31-32-8+62+17-5-21-42+24-46+19-8+15-11+1-16+10-17+12 sort_int32 selected 1597 9090 +1978+264+60+92+98-47-11-54+21-1+3-37-4-10-22+90-18-4+22+43+2-35-11-54+21-1+3-37-4-10-22+90 sort_int32 selected 2396 14765 +3383+708-56-34-9+137+37+45+211+77-13+128+27-97-4+103+121+125-30+17-50+68-31-76-71-48-20-38-43-129-65-140 sort_int32 selected 3595 23094 +3225+478+132-79+144+100-40-38-102+15-88-34-65+34-29-64+35+67-36-49-20-15+70+67-36-49-20-15+70+61-34+133 sort_int32 selected 5393 35657 +3768+489+269-149+116-59+10-68-45+254-8-68-45+254-8-68-45+254-8-68-45+254-8-68-48+254-8-68-45+254-8-68 sort_int32 selected 8090 59661 +3463+590+18+84+79-277+265+172-80+268-174-224-220+202+254+159-197+187-325-371-285+249-55-104-224-65+36-234+59-46+273-81 sort_int32 selected 12136 97286 +3173+274+139-184+53-223-512+71+99-39-346-7-48-269+266-490+226+152-393-173-520-19-438+177+84+112+184+52-193-92+220+677 sort_int32 0 implementation avx2 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 0 0 43 +129+83+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 1 43 +75+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 2 44 +37+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 4 48 +57+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 7 60 +31+26+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 11 126 +139+40-29-54-9+4-1+1+1-1-1-2+1-1-2+0-3+1+1+0-2+1+2+2+4+0+0+0-1+0+1+2 sort_int32 0 17 199 +144-27-6+4-2+1+2+1+3-3+0+5-1-7-2-1-5+5-4-3-3-3+5+1+3-1+5-1-5+7+1+3 sort_int32 0 26 196 +62-34-3+2+5+8-1+7-1-2+1-3+2-3-3+0-5+4+4-2-4+0-4+3+1-2+2-4+1+1+1+4 sort_int32 0 40 275 +263+37+4+10+0+0+6-7+2-1+0+6-6+0+5-5-3+8+0+0-11-3-1+1-2+1-5-5+3-13-3-1 sort_int32 0 61 334 +39-39-3-5-5+2+13-13-1+10+7+2-4-4+4+3-8-4+3-1+0-1+10-4+7-4+8+15-3-10+15-6 sort_int32 0 92 525 +293+66-1+4+7-6+0+11-7-3+1-5-1+5-6+1-5-7-1+5-3-1+1+8+1-7-7-1+0+1-4+2 sort_int32 0 139 947 +616+85+13+10-1+1+0-1+5+1+11+4+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 0 209 963 +532+89+2-4+0+5+0-6+8+0-6-13+3+1-6+5+2+5+2-6+4-1-1-8-9-9+1-1+6-1+1-6 sort_int32 0 314 1580 +738+37+12+2-5-3+5-10-13+14+10-13+11+1-17+3-3-10-15-1+3-16+6+8-5-3+19-2-7-7+10-8 sort_int32 0 472 2297 +1099+132+48+35+8-8+10-7-8+6-3-4+3+3-4-14+5-5-2+0-6+0+3-8+0+0+1-2-10+0-11+4 sort_int32 0 709 3539 +1221+167+2-7+20-43+4-27+16-15+35-10-2+2+16-14+23-6+22-11+5-9+2-34+5-11+15-57+26-8-15+3 sort_int32 0 1064 5898 +1076+195+25-11-24-44+23+77+17-27+135-5+4-1+10-34+46-29-15-19+19+4+22+6-14-44+16-50-16-6+13-40 sort_int32 0 1597 9066 +1401+173+37+40+5-10-16-23+78-88-9-52+11+11+7+41-16-23+78-88-9-52+11+11+7+41-16-23+78-88-9-52 sort_int32 0 2396 14722 +1450+158+20-124-102-137-139-53-69-102+1694-24+171-33+14+143+49+177-60-14+25+6+91+231+14+12+0-44-76+36-12+3 sort_int32 0 3595 23076 +1621+227-33-54+0+35-63-22+7-54-91+36+218-113-40-28-108-11-45+36+2+15+51+50-49+94+131-45+36+2+15+51 sort_int32 0 5393 35670 +2056+489+72-97-111+30+51-74-120-122+21-172+88-107+3+32+132-105+3+32+132-105+3+32+132-105+3+32+132-105+3+32 sort_int32 0 8090 59399 +2285+425+53+345-86+493+418-13+367+17+74+33+12-210-158-158-179+433-254-26-180+181+117-58+60-64-133-162+297-166-63-111 sort_int32 0 12136 97118 +1703+448+35-92-128-310-157-165-211+162+138+10+317+441-58-510+101-115+511-115-94-379+361+76+156-233+127-40+386+169-245-275 sort_int32 1 implementation avx2 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 1 0 42 +1281+53+21+16+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 1 42 +62+24+0+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 2 43 +46+43+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 4 49 +514+20+20+19+19+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 1 7 136 +17+11+8-5-4-3-1-1-1-4+4+3-1-8-1-9+4+3-3+2+2-3-1-6+9-1+3+2+10-3+1+2 sort_int32 1 11 131 +2611+26-62-39-7-2-3-1-1+4+4+2+2+0+6+2+2-4+5+0-3+1+1+2+6-2-1-1+0+0+1+0 sort_int32 1 17 203 +444+27+5-21+5+3-12+3-4+1-4-1+4+5-1-2+2+0-6+4-9+2-4+4-6+1+3-2-13+2-8+9 sort_int32 1 26 202 -4+11-15+8-5-2-4-2+7+5+2-2-7+9-5-11-9+5+6+10-2+0+2-7+2-3+6+7-2-1+5+2 sort_int32 1 40 320 +4301+282+26+36+58+75+44-21-22-21-14-27+22-13+36-23+31-22+35-20-21+25-24-16-17-15-14-18-20+35+39-29 sort_int32 1 61 334 +74-31+1-4+8-3-3-2+3+5-4+5-10+7+8+2+7-7-3-1-5+7-4-11+6-7+1-2-2+2+0-2 sort_int32 1 92 553 +1573+235+25+1-1-13+12-10+55-13+4+65+1-6-15+62+1-1-7+1+9-7+3-12+1-6-8+123-1-13+82-4 sort_int32 1 139 992 +2910+617+228+6+4+3-3+4+2+0-8-11-13-11+7+0-4+6-4+2-2+16-4+6-5+3-5-15-10-5-6+1 sort_int32 1 209 995 +345+26+5-3+6-3+6-3-2+1-4+7+12-5+6+1-10+2+2-12-6-1+15-3-8-3+21-6-1-4+12-6 sort_int32 1 314 1691 +2085+449+44-16-30+37-30-27+51+24-19+23-25+27-10+57-46-34-29+18+27-38+19-13+4-21-30-23+18+27-38+19 sort_int32 1 472 2483 +1077+169+35+28-6+17-3+2+23+4-5-1-4-19+7-2-4-19+7-2-4-19+7-2-4-19+7-2-4-19+7+27 sort_int32 1 709 3755 +3797+1069+194-1+6+17+6+126+71+9-4+4-5-6-8-29-10-33-8+7+29+4-5-6-8-29-10-33-8+7+29+4 sort_int32 1 1064 6110 +3342+881+156+52+6+83-29+18+30+26+9+15-33-31+65-20-17-11-37-23-8+5+5+6-10-20-24+21+1-35-115-1 sort_int32 1 1597 9362 +1714+193+191-27+17+6+55-14-47+33+25+23-5-32+84+66-36-18+43-61-22-21-5-26-2+6+7-25-50-33+0+38 sort_int32 1 2396 15088 +4024+762+93+21+60+18-43-11+61-65+71-16-86-7+28+8-9+5+159+26-28-19+16-43+21-15+27-76-73-56-73-185 sort_int32 1 3595 26046 +1558-269-116-143+130-424+116+278-203-358-190+23+57+76-321-465-154+300+13+186+345-124-77-209-344+487+227+272+643+337-235+176 sort_int32 1 5393 40981 +3982+1261-267-323-146-240-362+82+449+78-180+118-190-9+53+117+86-260-241-83+592+214+15+168+196-4+269+316-850-6-192-106 sort_int32 1 8090 66173 +2846+1189+145+287-912+234-403-208-176-418+164-643-300-466+141-966+434-93-956+439+34+1373+541-108+1428-28-23-400-453-105+564+1135 sort_int32 1 12136 102005 +2461+807-267+120+413+50-176-191-3+141-333+119+419+25+151-153-20-106+321-412-15-253+230+103-72+428-623-472-228+277+23-283 sort_int32 2 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 2 0 40 +86+39+17-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 1 39 +32+16+0+0+0+0+0+18+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 2 48 +197+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 4 73 +309+99+0+0+0+0+42+42+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 7 121 +497+159+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 11 204 +936+325+30+103+20+0+0+46+93+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 17 331 +1343+664+125+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 26 549 +1658+338+51-2+47+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 40 956 +1860+278+8+16+2+4+15+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 2 61 1615 +1859+436+90+13-4+11-4+6+10-1-1-1-3-6+12-2-1-1-3-6+12-2-1-1-3-6+12-2-1-1-3-6 sort_int32 2 92 2910 +2421+595+60+16-12-13+7+16+7+16+11-24+11-24+11+16-5-16-24+11-24+11-24+4-5-16-9-5-16-24+11-24 sort_int32 2 139 4899 +4038+1065+148+41+6+1+45+42+0+4+0-10+0-10+0-10+9-11+28-10+0-10+0-10+9-19+85-10+0-10+0-10 sort_int32 2 209 8475 +3263+627+133+118+13-27+50+18-11-2-14-6-23-12+48+17-24+11+2-20-7-5-12-3-23-9-47-36+52+25-28+26 sort_int32 2 314 14443 +3358+1098+293+83-82-27-69-1+37+33-55-60-24+39-60-60+34-30+34-30+34-30+34-30+34-30+34-30+34-30+34-30 sort_int32 2 472 23872 +1354+414+190-40-33-89-48-14-3+43-48+32-55-23-13-39-56+24-31+0+34+41+96+65-114+63+50+27-38+44-30-17 sort_int32 2 709 40665 +4051+1474+480+292+20-68+230+10-11+86-2-51+22-71+63-93-28-128+75-142+79+78-32-43-112-35-76-49-18-23-33+100 sort_int32 2 1064 66734 +3417+1376+444-54+129-93-15+93-33-161+18-50+19+111-41+105-177-63-105-109+102-3+8+44-61-122+79+59-221+32+53-64 sort_int32 2 1597 110136 +2875+705+276+353+184-136+234+126+246-26-10-189-81+72-94-93+131-148-192+119-120+93-79-105-128+63-70+33-24-52-95+15 sort_int32 2 2396 181901 +3378+1701+662+1299+130+300+29-560-193-243-128-270+109-91+19+447-115-191-81-157-143+126+314-148-129+187+20-21+191-127+17+52 sort_int32 2 3595 296966 +3718+1475+637+697+450-607-288+250-32-49-303-258+383-83-456+776+40-211-197-408+155-623-96+372-396+65-218+355-177+53+438-235 sort_int32 2 5393 502040 +8193+3175+897-241-721-395+34+268+202-373-101+519-509+144+126-114+75+354-482+280-161+856-750-412-411-140+80+134+284-58-183-63 sort_int32 2 8090 808476 +5839+2097+1278+151+1245-311+136-804-380+927-770-365+84-591+2690+1010-1323+4287+1765-1304-1280+1527-228+932-1368-1021-880-245+509-1596-1023-60 sort_int32 2 12136 1356707 -277+3220+16483+17135+17524+16639+16470+16314+16678+15928+16957+16557+16222+5924-5935-6258-6309-7020-6437-4770-6804-7360-7665-6421-6066-5173-3794-7494-6896-6903-6167-6778 sort_int32 3 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 3 0 39 +64+21+2+0+0+0+0+0-3+0+0+0+0+0+0+0-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 1 39 +16+16+17+2+0+0+0+17+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+16+2+0+0 sort_int32 3 2 43 +143+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 4 68 +240+62-3+1+1+1+0+52+52-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 7 141 +442+155-6+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 11 187 +920+494+274+49+18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 17 329 +1255+566+78-6-7-14+38-13-12-13-18-1+50+50+47+4+2-5-1+4+0+6-1-5+5-12-3-5-1+4+0+6 sort_int32 3 26 600 +1525+521+137+10-24+11+18+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 sort_int32 3 40 1042 +1754+277+48+19+4+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 61 1841 +1668+464-22-19-25+0-27+5+6+0-27+5+6+0-27+5+6+0-27+5+6+0-27+5+6+0-27+5+6+0-27+5 sort_int32 3 92 3255 +1995+605+174+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 3 139 5703 +3271+783+142+38-31+21+8-34-49-6-49-6-52+18-2-2-72-3-52+18-2+18-2+18-2-2-72-3-52+18-2+18 sort_int32 3 209 10139 +2754+644+122+38-29+10+27-52+7-21+83-21+7+52+7-21-24-21+7-52+7+83-24-21+114-52+7-21-24+83+7-52 sort_int32 3 314 17474 +2871+1021+247+80+139-14+115-46+1+894+76+820+51-39+3-51-5-40+3-39+3-39-5-40+3-39+3-39-5-40+3-39 sort_int32 3 472 29323 +1488+564+71+12+40+71+1-3-22-3+1-3+1-3+1-3+1-55-8-3+24+20+1-3+1-3+1-3+1-3+1+139 sort_int32 3 709 50429 +3469+785+567+28-66+1806+26-108-200+197+125-269-138+29-240+59-202+149-241+78+1503+375-45-166-67-176-74-3-91+40+148-78 sort_int32 3 1064 82135 +2220+641+319-35+260-10+90-35-121+35-52-52-18+25+35-114+16-9+56-20+50-16-143-31+157-219+38-108+61-121-52+23 sort_int32 3 1597 138376 +1175+453+31+98+136+140+129+94-86+114-127-32+17+92-68-88-232-420+27-65+69-118-32-17+90-449-41-67-109-55+55-2 sort_int32 3 2396 230897 +1797+423+24-220-808+4619+61+65+1453-83-6-68+144+322-295-4+36+255+33-194-168-114-267+342+93-157-115-63-316-28+18+685 sort_int32 3 3595 380518 +3071+1338+595+338+884+543+751+594+690+539-654-132-247+242-244-115-183+80+23-171-92-562-423-279-424-123+162-587+93-660-283-165 sort_int32 3 5393 635428 +5656+1609+326-331-1083-651-660-245-417-1200-742+72-962-1952-760+944+1550+972+1187+415+833+1368+1748+1090+779+1305+426-10152-12565-11690-11650-11333 sort_int32 3 8090 1008443 +2614+1747-204+172+142-105-2-349-127-275-322+361+7707+1730-225+238-330-839-120-1064+86-639+585-455+23+200+971+409-1183+5974-763+153 sort_int32 3 12136 1685781 +1281+226-2065+31-1330+687+1375+4956+4927+6515+5951+3925+527-397+98-5-2222-1537+174+2629-566+5625-2033-727-1167-1285-500-1111-1320+5549+73-1543 sort_int32 4 implementation portable4 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_int32 4 0 40 +100+21+15-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 1 40 +20+15+16-1-1+0+0+18-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 2 48 +220+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 4 72 +344+117+0+0+0+0+0+41+41+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 7 121 +538+176+28-3-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 11 199 +801+465+27+3+94+49+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 17 325 +1382+669+30+0+3+0+1+5+47+47+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 26 542 +1508+476+151+10+9+62+44+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 40 969 +1810+273+7+13-23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 4 61 1592 +1734+337+15+72-21+1+1-4+42-1-4+1-1+62+1-1-4+1-1-4+1-1-4+1-1-4+1-1-4+1-1-4 sort_int32 4 92 2877 +2214+409+32-56-5-3+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-46+1-2+1-2+1-2+1-2+1-2 sort_int32 4 139 4890 +3508+1021+115+21+42-32-7+44-21+18-53+33-16-29-33+4-68-33+4-43+67+47-43+67+47-43+67-33+4-68-33+4 sort_int32 4 209 8541 +3431+541+139+15-68-67-41-32-51-29+56+37+0-66+34-44+24+35-44+38-33+35-25+34-44+35-75+63-45+109-49+109 sort_int32 4 314 14552 +2960+773+266+56-15-50-56+40+43+1+37+39-29-29-29-29-58-10+12+45-62-24+21-68-5+57+48+88-51-97-16-33 sort_int32 4 472 24271 +1468+333+286-23+51+33-118+16-29-100-93+35+11+104+8-4-38+9-4-7+8-4-7+8-43-14-60-32+66+8-4-7 sort_int32 4 709 41516 +3716+1187+123+37-21-57+104+11+46-154-183+61+34+57+77-37-69+5+22-4-13+21+5-137-59-86-41-57+159-77+5-21 sort_int32 4 1064 67884 +3349+953+188+54-127-51+5-61-46-29-45+110-52+110+90-56+91+90-56+91-19-60-102+6-40-204+35-19+148-40+3+1 sort_int32 4 1597 113006 +1993+553+267+88-157+92-7-137-67+250+32+262-133-198-26+146+129-5+24-43-3-119-114-50-2-71-13-182+109-119+213-56 sort_int32 4 2396 186606 +3111+1084-336+107+134+26+316-165-163+24-26-207+13+65+7+190+138-41+155+70-124-28-45-63-13-105-20+26+890-3432-3836-3461 sort_int32 4 3595 302416 +3055+593-194+65+69+34+238-236-26+476-337+8-255+606+185-320+204-280+191-459+257-96+104-492+172-185+453-588-215-147+311-174 sort_int32 4 5393 510080 +2778-456-1868-2166-1646-2714-2202-2092+5985-223+532+185-61+182+3+20-555-390+180+232+215+239-300+397+891+213+262+138-406+855+335-220 sort_int32 4 8090 822343 +2022-937-2307+984-278+321-642+291-223-318+173+212-104-447+716-614+25+805+276+363-105+686+2679+52-553+187+123-240-656-733-387+347 sort_int32 4 12136 1369116 +2181+1095-2080-1692-1370-2403-1312-3263-2914-2504-3891-2809-1457-2191-2645-1997+1397+1443+1805+1858+705+1317+556+375+1379+997+643+1967+2983+2230+3089+1829 sort_int32 5 implementation portable4 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_int32 5 0 37 +68+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 1 37 +49+42+21+0+0+0+0+21+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 2 44 +149+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 4 67 +316+106+24-2+0+0+0+47+47+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 7 126 +496+265+107+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 11 203 +952+590+190+14-10+25+36-14-1-10-9-6+55-11-6+55-11-6+55-8-7-5-9-6+55-8-7-5-9-6+55-8 sort_int32 5 17 324 +1439+621+148+17-18-22-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 26 588 +1577+474+58-46+6+6+27+22-14-8-1-19+4-1-19+4-1-19+4-1-19+4-1-19+4-1-19+4-1-19+4-1 sort_int32 5 40 1069 +1801+410+14+9+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_int32 5 61 1817 +1634+360+8+30-15-6-15-9+21+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5 sort_int32 5 92 3295 +1939+539+96+39-10-11+10+7-29-26+6-11+10+7-29-26+6-11+10+7-29-26+6-11+10+7-29-26+6-11+10+7 sort_int32 5 139 5799 +3487+1025+30-18-34+169+30-23-57+38-14+31+61-22-9-38-27-18-11-17+115+8+14-79-18-31+4-50+236-11+38+27 sort_int32 5 209 10206 +2795+700+118+47+29+41+5-47-47+51-49-7+51-49-47+51-49-47+51-49-47+51-21-47+51-21-47+51-21-47+51-21 sort_int32 5 314 17764 +2819+567+15-61-86-140-109-210-62+979-101-106-198-139-101-144+719+685+260+218-118-62-101-144+709+674-135+612-55-101-146+709 sort_int32 5 472 29615 +1318+416+93+100+67-10-14-14-14-14-31-14-14-14+18+1+18+18+18+18+1+2+149-4-4-19-4-4-4-4-4-15 sort_int32 5 709 50472 +3048+809+198-22+29+48-113+48-77-48+70+18+66-17-26-25+31+59+10-68+5-68+0+22+10+83-46-63-89+1-36-82 sort_int32 5 1064 82625 +2792+731+210+92+291+127+124+13+110-57+111+4+36-86-22-74+8-114-71+26-24-134-52-75-72-114-32-36+0+12-72+3494 sort_int32 5 1597 139990 +2133+720+259-9-178+286+156+10-34+194-337+6+8-292-9+19+23-1-18+51-35-32-25-128-31+1-74+136-333+55-17+27 sort_int32 5 2396 234000 +2338+1065-638+343-74+708+171-13-216+985-244+308-99+4002-110-136-232+63-458-386-335+107+892+514-7-511-83-106-526+109-54+134 sort_int32 5 3595 382437 +3029+631+158-313-716-105-146+6125+1327+897+772+915+407-306+167-86+242+31-46-578-192-487-314-542+394-676-463-282-7-26+338-141 sort_int32 5 5393 642521 +1740+142-2084-75-1540-772-2342-2029-582-1133+668-859-392-167-343-1473-2027-374-670-1782+1002+1574+2081+1851-248+1063+2100+1207+655+1901+958+1317 sort_int32 5 8090 1039831 +810-361-175-3909+271-993+1110+1044-1324-92+287+1176+1330+453+4935+462-394-1592-656-695+4159-705+1384-1176+778-324+147+190-1108+1014-1341-2140 sort_int32 5 12136 1735516 +3656+1306-755+1125-708+729+523-1568-110-1398-1224+1386+931+526-791+943-452-1174+1244+720-1329+277+1090+237+811-39-358-558-762-2032-559-277 sort_uint32 selected implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 selected 0 48 +627+78+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 1 54 +148+30+21-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_uint32 selected 2 60 +129+60+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1 sort_uint32 selected 4 79 +203+104+13+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1-3+1 sort_uint32 selected 7 105 +163+52-4-1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 selected 11 155 +385+133-44-43-3+1-4+4+0+5-4+4-8+1+1+0-1+1-3+4-8+1-1+0-1+1-3+4-8+1+1+0 sort_uint32 selected 17 236 +326-1-1+6-1+4-6-3-7+3+0-1+5-1+1+1-3-5+3-10+1+6-2-16-5-3-4-5+1+2+7+6 sort_uint32 selected 26 243 +187+13+0-4+1-2+3+1+11+1-5+0+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5+1+1-5 sort_uint32 selected 40 316 +753+168-10-5-5-1+3+10-11-1+2-4-4+9-6+5-7-9+4+10-3+7-2+7+5-3-6-1+5-1+3+1 sort_uint32 selected 61 424 +171+264-3-23+3+1-2+3-14+11-2-2-5+0-9-5+1-5-1-4+18+9+3-2+4-13-11+3+3-6+4+2 sort_uint32 selected 92 613 +937+167-22+16-15-6-13+7+8-3-3+17-17-9+7-10-5+10+18+3-13+25+8-20-10+25-20+27+5-1-11+0 sort_uint32 selected 139 1013 +1146+344+21+1+1+0+0-4-13+1-2-1+7+5-6+6+0-2-10+0-7+8-3+7-1+0+20+0+0-3+1+2 sort_uint32 selected 209 1046 +728+161-1-5+3-3+4+8-5+4+0-7-3+8+3-11-5+3-5-3-4-1-1+3+15+2+1-4+9+0+3-3 sort_uint32 selected 314 1718 +1495+228+20+21-5-1+15-4-1-11+3+18+4-2-7-7-5-9+4-1+18+4-2-7-7-5-9+4-1+18+4-2 sort_uint32 selected 472 2455 +1343+233+36-2-13+6-12-2+5-16+2+3+5+9-4-5-5+21-15-2+5-16+2+3+5+9-4-5-5+21-15-2 sort_uint32 selected 709 3687 +2644+253-7+28-3-1-26+10-7-21-33+25-5+12-33+4+7+45-16+45-6+31-52+14-8-21-33+25-5+12-33+4 sort_uint32 selected 1064 6266 +2360+280-42-33+113+57+99-31+5-32+47-51+53-49-25+36-24-44+66-48+82-35-33+25-31+86+17-45+97-34+4-45 sort_uint32 selected 1597 9586 +1768+260+76-12-56+70-68-48-35+42-5+5+41+61-6+52+48+57-53-52-37+35-82-20-22-38-62+94-70-20+18+12 sort_uint32 selected 2396 15532 +2897+480-196+78+58+15+6+101-29+33+5+4+0+27+63-167-48-126-161-2-300+78+5-84-141-48-13-14+22+110+43-169 sort_uint32 selected 3595 24180 +2270+459-46-21-30+108+86-84+77-49+72-74+16-98+153+106-185+10-200+28+108-120-4-133-85-43-77+51+46+5+31+1 sort_uint32 selected 5393 37278 +3126+335+203-133-192-146+175+157+210-137-170+192-133-185-191-195-180-144-173+134+163+166-181-176+134+163+166-181-176+134+163+166 sort_uint32 selected 8090 61570 +3656+430+277-19+198-206+264-42-66-111+180-323+280+56+61+11-153-151+2+89+132-136+158-86-214-130-24-7-178-18+241-171 sort_uint32 selected 12136 100821 +3719+852+351-191+36+44-136+77-6+3-271-282-140-58+272+579+397-460-510+337-209+287-121-34-179-90+551+214-313-54-342+171 sort_uint32 0 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 0 0 49 +138+70+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 sort_uint32 0 1 52 +142+34+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 2 61 +93+60-2-5+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 4 75 +118+34+8-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 7 107 +110+30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 0 11 154 +106+20-47-16-2-1+1-2+1-2+2+0-1-1+2-3+1+1+2-3+1+0+1-3+0-1+4-2+0-1+3-3 sort_uint32 0 17 234 +157+77-57-7-5+5+0+2+1-4+3+8-5+4+0+0+0-3-1+7-5-6-4-2-3+1-6+4-3+4+2+7 sort_uint32 0 26 245 +216+118-40+0+2-6+0+4-6+0+5-12+8-3-7+2-3+3-3+1+2+0-2-3+6+3+3-4-1+1-1+4 sort_uint32 0 40 316 +299+77+7-10-13+0+0-8-13+11+6-9+10-17-4+6+7+4+0-3-5+3+4+1-9+1+9+0-3+0+3-6 sort_uint32 0 61 423 +160+33-2-2-10+3+10-5+3-1+14-7+3+3-11+4-9+2-4-4+3-11+5-9+4+1+11+9-9-5-8-7 sort_uint32 0 92 618 +507+119+33+3+0-18+3-4+3+4+11-23-11+17-18+11-10-1+4-14+4-16+2+13-15+5-29+2+3-9+5-18 sort_uint32 0 139 1013 +703+199-4+7-6-8+1+3-9-5-10-1+0+5-11+2-6-1-2+5+0-4+2-3+4+6+1+2+2+5-9+3 sort_uint32 0 209 1048 +716+104+2+4-3+1-5-4+3-8+0+3-1-2-5-1-2+8+0+2+0+4+7-8+1+0-10+0-12-5-1+13 sort_uint32 0 314 1728 +585+89+15+11-5-6+2+1-11+7-4-8+10+8-17-6+2+1-11+7-4-8+10+8-17-6+2+1-11+7-4-8 sort_uint32 0 472 2406 +1137+238+24+8-10+29+13+5-5-6-3+0-9-2+4+11+6-20-14-1-12-5+13+35-1+4-6-4-13+4-9-1 sort_uint32 0 709 3685 +1311+145+28-49+18-15+13-10+30-6+26-26-43+24-30+9+18-9-15-15-17-2+24-24+24-11+15-20-14+1+12+2 sort_uint32 0 1064 6235 +1206+292+14-53-5-31+73-15-4-34+20-26+77-25+73-15-4-34+20-26+77-25+73-15-4-34+20-26+77-25+73-15 sort_uint32 0 1597 9555 +1371+83+128-35+81-11-11-25+17-21+27-22-1-37+22-43+8-21+82-41+81-11-11-25+17-21+27-22+91-12+5+27 sort_uint32 0 2396 15347 +1592+357-69-131+40-122+162+17-37-15+207-17-54-50+79-87+162+17-37-15+207-17-157+91+151-23-50-20-20+64-4-13 sort_uint32 0 3595 24143 +1512-21+115-122+27-34-143-17+76-171-33+276+114+55+38-48-107-106-115+106-75+51+98-99-143-17+76-171-33+276+114+55 sort_uint32 0 5393 37080 +2354+376+157+81-194-65-144-89-97-65-181+314+239-70-100-131-82-244+216-169+192-169+192-169+192-169+192-169+192-169+1376+206 sort_uint32 0 8090 61464 +1984+288+40-175-171-189+4+125-134-130+186-154-103+133-76-30+32+39-41+435+376+100-195+69+259-129-81-148+158-34-55+176 sort_uint32 0 12136 101022 +3325+413+18-294-46-429-371-181+190+79+348-413-418+121-501+410-167-169-17-460-814+15-318+153+211+74+175+201+427-59+283+103 sort_uint32 1 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 1 0 50 +110+0+0+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 1 58 +257+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 2 61 +116-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 1 4 67 +182+22-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0 sort_uint32 1 7 83 +123-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 sort_uint32 1 11 154 +283-4-28-19-1+1-2+4+0+0+4-1-2+3+0-3+3-2-2+3+0-3+3-2-2+3+0-3+3-2-2+3 sort_uint32 1 17 240 +127-37+17-8+0+16-12-2-2+2+5+4+2-8+10+4+1+1-1-8-1+4-9+15-10-5-4+8+0-11-1-3 sort_uint32 1 26 246 +154-39-44+6-9-10-1-6-11-2-7-5-2+1-2+4-1+1+0+8+5-4-6+3+1+3+1+3+1+3+1+3 sort_uint32 1 40 296 +415+141+70-3-2-4+3-3-4+11+2-5-1-5+2+5+17-2-2+3-1-4-6+10+1-2+0+9-11+8+2-10 sort_uint32 1 61 380 +230+50-19-1+18+2-11-4+4+2-2-1-10+6+0-10+0-1-5+0-3+0-10+17-2-4+5+7-11-12+14+5 sort_uint32 1 92 573 +404+170+8+7-8+2+1+0-11+23-9-2+0-5+8+4-3-2+4+12-7-1+17-6-14-1+11-10-14+0-1-7 sort_uint32 1 139 1008 +723+109+80-9-6+6+0-9-2-3+1-1+2+4-6+0-4-1-5+1+7-5+1+7-5+1+7-5+1+7-5+1 sort_uint32 1 209 1035 +666+184-1-3-8-3-7+3+4-2-2-8+8-4+7+1+4+4-1-6-2-4+4+5-7+7+3-5+0-11-2-3 sort_uint32 1 314 1686 +798+171+23+8+8+10+12-2+26+8+3-14+27+5-3+0+6-10-4-4-4-4-4-4-4-4-4-4-4-4-4-4 sort_uint32 1 472 2401 +950+147+50+38-1-1-4-14+15+0-6+13-11+5-12+14-11-1-10+19+5-3-9+6+2+2-16-9-6-9+10-6 sort_uint32 1 709 3736 +1171+210+69+19-4-23+7-15-5-23+11+10+28-13-14+6+4+4+4-39-9+28-16+27-37-17-26+12+11+30-40-6 sort_uint32 1 1064 6249 +1211+211+8-5+13+1-32+2+49-24-14-2-29+26-56+20+72+39-42-15-48+37-39+19-14-32-34+18-31+34-3+34 sort_uint32 1 1597 9540 +1295+167+108+122-25+12-34-2-31+10-49-20-1-5-43-7-43+4-13-28-24+33+3+11-29+28-20+7+46+18+32+27 sort_uint32 1 2396 15417 +1087+89+214+72-19-23-12-43-23-3-93+66-57-117-24+6-116-90-55+173+110-47+56+187+113-22-19-63+49+21-39+29 sort_uint32 1 3595 24225 +1423+231+276-93+32+142+1-159+146-113+6-162-88-185-63+53+157+109-108+48+136-75+169-79+33+48+117-55-16-91-75-171 sort_uint32 1 5393 37301 +2118+533+258+465+26+75+42+7-9-2-12-2-12-2-12-2-12-2-12-2-12-2-12-2-12-2-40-26-40+30+222+54 sort_uint32 1 8090 61495 +2080+391+235-47-21+246-85-65+234-304+100+77-84-209+294+234-248-175+237-197-133+353-122-181-132+187-85-251-229+421-21-38 sort_uint32 1 12136 100933 +1565+665-547-553+189+557+4-125-822-251+294-224-5-145+1189+462+339+168-4-854-131+348-242-56-383-56+6-229+353-19-405+412 sort_uint32 2 implementation useint32 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin sort_uint32 2 0 49 +164+80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1+0+0+0+0+0+0+0 sort_uint32 2 1 52 +140+75+57+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 2 57 +151+25+1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 sort_uint32 2 4 74 +130+85+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 7 104 +106+67+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 11 158 +287+115-63-25+3-7+2-6+3-3+2-1+5-5+3-2+3+0+2-5+2-6+6-1+1-3+6-1+1-3+6-1 sort_uint32 2 17 244 +156-73-8-3-8-5-11-8+1-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 2 26 242 +200-34-6-1+4-3-5+1+3-3-4+13+8+3-3-5-5+2+2+2+4+0-7-4+2-3+12+2-6+7+1+7 sort_uint32 2 40 312 +268+73-9-2-5+7-6+1-10+0+2+5-1+6-3+4-3-2-2+1+0-2+3+0-3-7+4+3-5+8-8-1 sort_uint32 2 61 388 +260+18-46+0-5+0-7+10-4-14-1-4+0+3+5+4-1+2+2-1-3-5-14+5+4+1-4+4-15-4-2+4 sort_uint32 2 92 581 +328+111-5+4+13-1-2-12-11-11+6-14+0-9-2-4+3+0-11-4+30+1+0+1+4+6+8-4+3+2+0+10 sort_uint32 2 139 1024 +624+75-3-9-5+6-5+12-1+1+3-1-2+1+3-1-2+1+3-1-2+1+3-1-2+1+3-1-2+1+3-1 sort_uint32 2 209 1060 +801+139+98-2+7+0-5+2+2+4-4+10-8+2-16-6-3-3-1+4-4-11-6+4+2+4-4+10-8+2-16-6 sort_uint32 2 314 1724 +727+86+23-8+2-5+13-1-5-12-11-7+4+2+7+2+5-12+5-17+8+3-1+4-18-1-5+20+15-11-1-2 sort_uint32 2 472 2479 +853+145+53+0-9+0-7-6+1+7+4+8+0-6+26-8-14-8-6+1+7+4+8+0-6+26-8-14-8-6+1+7 sort_uint32 2 709 3893 +960+187+102+18-34-16-22-5+7-4-3-4-10+17-6-8-10+7+20+2-17-1+20+2-17-1+20+2-17-1+20+2 sort_uint32 2 1064 6457 +1162+117+62-13+66-24+21-35+10-1-9-26+72-20+8-15+4-6+48-6+15+59+4+13+2-25-17-44+34-12-17-44 sort_uint32 2 1597 9843 +1386+224+69-12+4+19-32+86+2-12-56-4-31-19-20-3+4+20+52+40-44-19-40+13-11+25-16+75-22+25-8+4 sort_uint32 2 2396 16006 +1167+253+123+48-33-29+59-4-275+56-60+37-56-27+83-60+37-56-27+83-60+37-56-27+83-60+37-56-27+83-60+37 sort_uint32 2 3595 25166 +1290+168-184+96+38+83-5+10+111-52+80+90-21-7-200-20-32+5+25-59-45-3-35+9+31-146+88-49-44+36+4-40 sort_uint32 2 5393 38384 +2275+711+193-95+16+105+330-18+2-106+378-114+342-203+42-111-106-73+288-123-63-109+453+6-151-97+23+164-110+102-111+102 sort_uint32 2 8090 63801 +1763+279+120+28-154+137-438-44-115-64-1-106-27-113+121-36+84+272+21-51+155-65-36+71+50+40+73+23-151+8-50-383 sort_uint32 2 12136 103462 +2476+212-44-64-206+2+98-20-166-162-240-869-251-534+177+171-170+15-279+418+225+280+156-203+177+79-80+377+111+270-102-200 sort_uint32 3 implementation useint32 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. sort_uint32 3 0 50 +175+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 1 53 +214+0+0+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0+1+0 sort_uint32 3 2 57 +242+52+26+2+1+1+1+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 4 62 +144+20+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 7 84 +143-2+0+1+1+1+0+2-2+0+0+2-2+0+0+2-2+0+0+2-2+0+0+2-2+0+0+2-2+0+0+2 sort_uint32 3 11 152 +146+11-38-31+2+0+0-1+0+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1 sort_uint32 3 17 235 +184+6-49+3+3-6+0-10-3+5+1-5+5-5+0+5+11-3-8+8-1-5+8+1-6-1+1+1+5-4+8-6 sort_uint32 3 26 239 +303-7-16-4+3+4-5+2+8+1-6+2+8-6-3+5-1+2+0+7-2+1+0-3+3-5-1-2+5+1+2-1 sort_uint32 3 40 312 +430+83-1-13+0-6-6+5-7+8-6+8+2-5+5-7+13-8+0+2-14+12+18+4-8-10+0+1-4+0+0+5 sort_uint32 3 61 378 +289+107-30+0+4-2-5-2-1-1-5-1+14-5+12-6+0+8-6+2-3-3-12+4+5+2-5+0+0+3+3-2 sort_uint32 3 92 594 +404+144+1-3+8-8+1+2-5-1-6-8+6+7-1+3-4+1+3+6+2-7+3+1+8+1+0-5+13-6-2-12 sort_uint32 3 139 1058 +655+68+23+0+2+4+3-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 sort_uint32 3 209 1129 +676+124+71+3-12+0-2-8-10+12-2-4-7-1+12-10+12-2-4-7-1+12-10+12-2-4-7-1+12-10+12-2 sort_uint32 3 314 1842 +775+181+40+1-11-5-2+9-6+5-6-8+3+1-9+3-7-13+1+9+6+5+9-10+1-9+8+10-6-8+3+1 sort_uint32 3 472 2633 +959+140+20+2+12-20+14+30+17+1+22-13+2-5+13-7+0+0-5+1-15-6-2+1-15-6-2+1-15-6-2+1 sort_uint32 3 709 4125 +1190+252+60+34+22-2+18-40+25-35-7-14+14-15+12-28+10-46+18-28+10-46+18-28+10-46+18-28+10-46+18-28 sort_uint32 3 1064 6872 +1029+86+65+54-29-41-1-46+69-69+25-47+81-46-37-56-21-17+37-28+18-49+59+38-17+37+84-36+69-69+25-47 sort_uint32 3 1597 10374 +915+134+54+63-28+12-24+70-8-19-30+28-43+72-2-15-51+9-24+70-8-19-30+28-43+72-2-15-51+9-24+70 sort_uint32 3 2396 16494 +1180+380+214-27-130-89-111-135-101-66+1687+65-2-25+255+36-2+9+37+1-126-67+15+226+42+225-52-101+1-30-8+75 sort_uint32 3 3595 25978 +1517+186+60+241-135-91-81-99+16-82+2+198+30+114-107+25-115+30-73+120-18-46-133-76+103+2+198+30+114-64+57-103 sort_uint32 3 5393 39844 +1989+427-49+17-80-115+315+295-5+42-93-10-160+355+64-58-5+42-93-10-160+355+64-58-5+42-93-10-160+355+64-58 sort_uint32 3 8090 65488 +1975+292+226-90-19+136-164+91+124-169-110-153-208-254-168+356-166-128-229+144+383+165-54-100+105+208-96-177-46+321+23+214 sort_uint32 3 12136 106347 +1910+164-54-101+297-226+87-659-142-148+423+179-372-44+374+158+454+300+430+197-46+130-763-498-97-46-565-373-164-266-81+326 core_inv3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 selected 654 75277 +6337+380+22-2-37-6+69+97-37+26+6-141+2-126-1+40-42-39-28-58-118+18+15+74+35-100-104-60+89+34-1+70 core_inv3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 0 654 75340 +246+206+42+62+117-138-53-123+50-108+55-89+37-60-122-54-95+116-2+58-34-44+93-26+35+71-122-54-95+116-2+58 core_inv3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 1 654 82538 +6683+702+28-74-178-20-44+4+36-44+4+36+1132-25+32-1-23+19-9-132-84-13-87-114+84-123+150+44+85-132+18+35 core_inv3sntrup653 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 2 654 238065 +1999+413+13-3+240-4-3-3-3-3-3+24-3+40-22-3-3+7-3-3+83-3-3+52-3-3+30-32-3+11-35-3 core_inv3sntrup653 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 3 654 273078 -384+207+2-3849-15+2+2+2+2+2+2+2+2+2+2+2+2-3849-15+2+2+417-3751-3655+25+0-3851-17+0+0+0+0 core_inv3sntrup653 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup653 4 654 276578 +1646+258+213+25+15+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7-16+7 core_inv3sntrup653 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup653 5 654 262705 +3472+241-4-3+4-2-3+4-2-3+4-2+1499-21+21+33+4-2-3+4-2-3+4-2-3+4-2-3+4-2-3+4 core_inv3sntrup761 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 selected 762 97270 +7408+526-76+81+88-94-77+22-73-38+115-33+15-38+115-33+15-38+115-33+15-38+115-33+15-38+115-33+15-38+115-33 core_inv3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 0 762 89512 +2583+301+215-18-7-22+130+1-28-18+139-21+75+102-13-32-58+22-193+34+99-83-189+77-68-32-58-43-60+102+18-116 core_inv3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 1 762 97165 +408+182+67+100-49-21-146+130+126+4-37-6-19-52+35-84+57+86-53+109-66+17-38+33-102+70-64-64+40-236+23-98 core_inv3sntrup761 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 2 762 241388 +3680+2918+2015+45+17+2+14+151+29-5-12-56-12-56-41-5-18-16+166+48-5-12-56-12-56-41-5-18-16+166+48-5 core_inv3sntrup761 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 3 762 330234 +3589+708+223+145+4-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3-3+1254+252+188+112+14-1-4+14 core_inv3sntrup761 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup761 4 762 303502 +3786+360+81+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+42+0+0+0+0+0+0+0 core_inv3sntrup761 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup761 5 762 326789 +4934+353+1260+104-107-107-107-107+1200+213+49-14-7-7-7-7-7+21+21+21-7-7-7-7-7-7-7-7-7-7+21+21 core_inv3sntrup857 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 selected 858 137898 +11505+892+75-34+43-49+9-129-101-54-180-34+43-49+9-129-101-54-180-34+43-49+9-129+42+51+51+51+51+51+51+51 core_inv3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 0 858 123857 +13983+331+28+135+19+179+29-171-51-78-77-78-77-78-77-78-77-78-77-78-77+1037+122+51+397+170-87-1+198+184+63+62 core_inv3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 1 858 138001 +601-601-301+1+34+31-147+90-121+20-20+17-49+198+8-37+67-20+17-49+198+8-37+67-20+17-49+198+8-37+67-20 core_inv3sntrup857 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 2 858 471578 +2856-1214+1250-1231+1215-1234+1267-3016+1325-1238+1265-1238+1279-1248+1230-1236+1230-1236+1230-1236+2463-1110+1180-1224+1197-1221+1174-1240+1197-1221+1174-1135 core_inv3sntrup857 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 3 858 447644 +5738+546+1817+140+120+113-43-43-87-43-11-43-43-11-43-43-11-43-43-11-43+1144-105+104+150+114-10+22-10-10+22-10 core_inv3sntrup857 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup857 4 858 346914 +4042+331-12+8-12+3-12+8-12+3-12+8-12+3-12+8-12+3-12+8-12+3-12+35-12+30+50+8-12+1408+230+313 core_inv3sntrup857 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup857 5 858 452659 +6157+205+32+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+2-4+1254 core_inv3sntrup953 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 selected 954 158000 +16605+761-43+171+166+20+175-208+127-42-20+24-15+8-15-20+24-15+8-15-20+24-15+8-15-20+24-15+8-15-20+24 core_inv3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 0 954 140770 +11963+549-111+62+27-101+242-99+62+27-101+242-99+62+27-101+242-99+62+27-101+242-99+62+27-101+242-99+62+27-101-72 core_inv3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 1 954 158046 +504+206-392+46+82+114-50-971+8+228+87-289-971+8+228+87-289-971+8+228+87-289-971+8+228+87-289-971+8+228+782-1 core_inv3sntrup953 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 2 954 683079 +1748+295-37-30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+1037+105+1+0+0+0+0+0+0+0 core_inv3sntrup953 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 3 954 593611 -2381-9531+144+171+176+191-9440-9894+188+93+189+102+187-8387+464+297+383-9818-9902+108+80+192-9703+192+282+322+298+334+295+174+195-19340 core_inv3sntrup953 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup953 4 954 482341 +2901+408+178+57+40+40+41+40+1325+147+120+107-27-30-27-30-27+26-27+26-27-30-27-30-26-30+25-30-27-30-27-30 core_inv3sntrup953 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup953 5 954 519232 +8707-661+1524+1497+1490+1511+2496+304+421-1048+422-966+422-966+422-966+422-966+422-966+422-966+422-966+422-966+422-966+422-966+422-966 core_inv3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 selected 1014 151029 +12405+397+41+9+109-47+47+9-106-136+23-81+1028-95+30-97-88+240+209+208+124-28-40-28+106-11-66-28-40-28-40-28 core_inv3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 0 1014 150971 +380+751-20+262-230+36+97-14-44-9-194+357+23-2-44-9-194+357+23-2-44-9-194+357+23-2-44-9-194+357+23-2 core_inv3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 1 1014 173657 +10156+782-1+1+121-74-121+122-186-138-18+268+95-211-1118+6-18+268+95-211-1118+6-18+268+95-211-1118+6-18+268+95-211 core_inv3sntrup1013 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 2 1014 530559 +2509-523+398+157+440-666-874+398-808+384-833+406-854+384-833+406-758+267+260+424-855-776+270+372+284-678-870+398+254+389-881+384 core_inv3sntrup1013 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 3 1014 576137 +5376-1381-614+3412-1804+3563-1814+3563-1814+3563-1814+3563-1814+3563-1814+3563-1814+3563-1814+3563-1814+3563-1814+3563-1797+3563-1185-2299-2471-2541-2550-2541 core_inv3sntrup1013 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1013 4 1014 557952 +2779+269+1-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4-4+1277+122-11+22+8+8+8+8+8+8+8+8 core_inv3sntrup1013 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1013 5 1014 662410 +8387+330+69-26-62-61-62-61-62-61-62-61+1273+53+143+12-11+12-11+12+24+12-11+12-11+12-11+12-11+12-11+12 core_inv3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 selected 1278 231890 +17375+281-407-446-137-310-125-318-196+830-567-41+214+44+491+171+44+491+171+44+491+171+44+491-612-362-792-310-228+333+95+44 core_inv3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 0 1278 231344 +529-41-53+74-562+227+131+87+11-125-47+74-562+91+11-125-47+74-562+91+11-125-47+74-446+87+11-125-47+74-562+91 core_inv3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 1 1278 268672 +16953+932-4-202-179+284-88-22+1672+238+103+385-296+207-338-54-85+207-338-54-85+207-338-54-85+207-338-54-85+207-338-54 core_inv3sntrup1277 2 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 2 1278 673851 +4595+1208+849+783+795+216+739+159+222+764+186+238+746+1243-1154-78-115-809-1317-1249-825-106-145-1402-858-126-850+2080-140-827-857-164 core_inv3sntrup1277 3 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 3 1278 548845 +2480+665-12+1343-865-132+0+6-1+4+20+63+0+77+18+7+33+100+52-448-37+71+38-37-59+24-51-237-388-865-54-19 core_inv3sntrup1277 4 implementation bits64 compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_inv3sntrup1277 4 1278 766305 +3260-233-526-875-937-947-902-972-902-972-942-973-902-741-954-986-981-981-981+601+1444+1331+1524+1568+1501+1532+1523+1568+1501+1532+1523+1568 core_inv3sntrup1277 5 implementation bits64 compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_inv3sntrup1277 5 1278 771183 +3241-544-3060-3073-3003-2999-1061+219+541-14-16-12-16-16-9-13-16-15-16-15-16-15-16-15-16-15+1336+6763+6502+6482+6484+6482 core_invsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 selected 1307 517123 +13041+7140+499+257+408+411+685+301-392+525+839-518+158+145-194-328+708-63+286+129+4487-1546-1016-1833-1162-636-769-2004-468+973-2172-1111 core_invsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 0 1307 520760 +932+697+529+1059+1139+2391+383+1463+800+1019+311+658-300+958+639+595+654+7487-394-2234-1011-1222-2345-973-1954-246-1251-2346-1326-2215-1121-1804 core_invsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 1 1307 523167 -3205-5112-4238+1236+932-511+1490+595+584+1152+1607+586+298+671+2876-528-874-954+120-271+206-1060+524-47-470-436-550-187-392+912-78-1619 core_invsntrup653 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 2 1307 9679193 +372727+649926+34000+10910-652+197+4459+11777-4626+622-5620-6130-3610-10027+8924-1170+1110-21382+2166-14775-8521-1951-5170+5194-13161-8760-2878-38952+3007+29017+24038+29141 core_invsntrup653 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 3 1307 2303914 +12710+8331+9117+4759+3929+2672+1695+701+659+1384+386+180+450-313-379+553-51-684+665-941-311-1768-702-624-2230-485-1260-1025-427-959-1241-317 core_invsntrup653 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup653 4 1307 11375333 -55042-49712-54025-61565-72258-1826-2793-877+14825+2772-4271-3176-3369-832+5925-6357+3276-1283+6392+2335+3554+2949+11182+7432-7511+190+1124+5808+5521-12801+11577+2234 core_invsntrup653 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup653 5 1307 8618524 +500+1460+2269+2173+1932-688+340-670+110-863+660-705+186+263-567+35-1087+183-955+624-502+430+559-486+197-932-42-499+489-1011+82-219 core_invsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 selected 1523 696718 -7378-1404+1672-3995-3080-3823-8992-3999+3149+2612+3758-333+1286+368-4883-2432+954+1159+2496+896-3838+98+999+1996+2463+311-220+574-4382+977+1075+53 core_invsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 0 1523 689798 +3241+6635+2351+964+922-382+1642+784+551+2021+470+2080+1526+605+1289+897+889+1899+1311-891-305-4275-5560-4528+3886-6358-5076-6052-4354-6221-5128-4834 core_invsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 1 1523 696548 +1785-2588-1918-837-2061-3301-2527-2201-1395+8581+518+731-72-1037+159+350-82+74+663+949+606+1190-286+11890-122+374+215+443-634-355-357+3199 core_invsntrup761 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 2 1523 13711875 -44297+76779+59756+57049-4106-39916-10012-29356-31794-22890-30233-11049-2576-19016-20731-23609-6344+1862+8144-9562+71213+78231-18371+4647+52156-18188-16771-7858+61626+70793+73753+64046 core_invsntrup761 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 3 1523 3045051 +6242-2368-36-3203-4195-3984-3820-5855-3736-671+1441+1653+215+584+1670+715+864+2070-190+994+93+1875-1019+1466-605-801+290-230-225+912-325-588 core_invsntrup761 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup761 4 1523 14589817 -11089+11454+5522-34234+1856-12466-9998-9533+11038+22006+15790-5281+15312+2375+41545-4992+4545+21527+10750-5099+10502-17770+1840+14120+10805+10270-20851-38908-46825-25511-29309-61625 core_invsntrup761 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup761 5 1523 11650293 +1055+630-1160-41+15+2-1836-269+257+78+794+2168+1372-252+1138+985-120+264-1339-278-408+265-608+214+244-46-1193+106-400-63-1687-104 core_invsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 selected 1715 904781 +1945-72-190-5920-7079-5544+1112+1775+2609+2524+2980-5646-4169+1421+2655-490+2711+3231-567-580-506-3773+1346-6059-6408-3824-2255+2137+3098+3630+3086-4751 core_invsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 0 1715 915446 -2711-433-4218+1025+4063-392+3528+5922+6076-995-574+347+937-378+960+733+1640-10664-1764+2413+766+1368+466-120-3312+2197+1134-6560-6400-7198-8696-1707 core_invsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 1 1715 882081 +5626+1457-4068-6089-3373-4668-4654-4497-3834-5299-4162+1780+175-252+1361-312+214+979+339-106+852+587+1343+447+1052+647+1113-1029+1235+1246-12-205 core_invsntrup857 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 2 1715 17716939 +210421+247630+128525+233114+203517+234018+340485+125625+168824-204322-135887-226564-200025-154417-69118+58038-131685+34589-119947-172837-295665-195120-208829+114453+261714+297123-122733-150694-99892+99853+52540+47512 core_invsntrup857 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 3 1715 3854841 +8762+528+3421-162+2359+622+760-263+1848-2765-1681-3105-843+1961+1890+2230+3092-405-2196-2043-2030-3284-2561-2518-1726-341-2392+619+29+1519+1521+3965 core_invsntrup857 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup857 4 1715 18658339 -935664-926434-997866+337593+454969-998520-1002433-599591+94037-640579-964070+114297+113322+11165-74969+93207-114241+1656+18104-121394+400487-72166+167647+51449+22175-53168-92142+8662+544698+632430+673980+655228 core_invsntrup857 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup857 5 1715 14763648 +98-824+1274+2820+4767+4527+4427+4514+4466+5422+3182+2521-272+1813-1158-2149-2312+673-2288-2650-2132-2598-2364-2347-2589+966+714+336+289+103-2577-2251 core_invsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 selected 1907 1107932 +2775+4094-5843+5868-3192-4805-6427+6148+3447+1248+4533+2795-607-4607-971-2768+2214-10208+2949+3702+3191+3264-11027-10094+3722-2345-4822-3151-4246-5475+7172+11994 core_invsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 0 1907 1093335 -1551+2949+828+795+2704-242-51+694+3136+11054-1928+9947-2272-1347-1525+7574-2335-2747-1387-1726-1514+977-3267-109-4595+58+3990+8128+3912-1371+2919-1431 core_invsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 1 1907 1082751 +20509-6006-6998-8419-4168+315-1059+178-1407-1212-2866-1962-1441-1210-2778-256-2677-1330-1612+19244+11013+2262+553+2659+1938+3958+1252+2534+1413+2471+3984+1608 core_invsntrup953 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 2 1907 21547364 -400360-476462-467371-456284-523682-483763-470636-268625-330285+356125+335352+407200+370877+450249+440597+483170+126658+67323-32156-15779-23018+178682+87624+6826-81735-32977-42723-8305+43455+309778+5275-10520 core_invsntrup953 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 3 1907 4800762 -1703+5027+9086+6243+3309+3346+3279+387-656+742-1621-1595-2643-2255+697-633-1862-3-67+1025+2077+697+242+1385-1204-2170+628-1184-1847-388-89-188 core_invsntrup953 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup953 4 1907 23584719 -24921-66140-10887-26397-12846-84731-20312-410-22409+58254+144579+37691+43222+60797+52693+4658+577290+607061+644647+683099+677626-52472-75092-93252-74819-95711-66836-54764-29189-4295+7622+227977 core_invsntrup953 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup953 5 1907 18240130 -912-1819-5905-670+704+848-562-12343+1350-4136-260+2093+283+60+511+1706-880+1680+2440+1185+194+1831+2103-352-913-1413-5110+699+1344-502-982-348 core_invsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 selected 2027 1222274 +750+831-265-38-127-13+2154+2790+2732+2644-327+205+2341-2-157-420-264+139-551-25-20-32-323-488+473+65+100-98-162+98-193+66 core_invsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 0 2027 1223694 +791+880+591+864+2750-615-17+126-187+25-446-396+353+155+390+289-373+1603+170-126-343-159-369-336-96-221-405-580+162+2187-142-4 core_invsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 1 2027 1299721 +18674+12676+4550+6079+4407+2783+4840+3461+5324-20-1620-729-835-1329-159-107+68+198+701+4113+9445-1333-4831-4718-3574-5825-3729-2693-4433-5496-2503-4751 core_invsntrup1013 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 2 2027 23471607 +4630+11367+583+5481+5238-1223+16746+10102-8178-16307-19945+15121+12768-10517-26805-27260-3125+14401-13976-17832-45081+2171-9405+12977+16900+18256+9261-10933-7537-5412-3439+23989 core_invsntrup1013 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 3 2027 5563248 +5018+1660+8403+2666+3904+1099+835-451+87-28-421-829-7198-6629+3208+706+787+94-980+991-5185-4676-5035-4350-4932-1077+297+89+1010-1118+1857-2441 core_invsntrup1013 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1013 4 2027 24524568 +260448-10550+47860+72536+28168+141054-35384-72494+73737+161677-51217-141244+40606-76766+132967-46214-89236-14180-128444+103062-81811-90642+54107+275228+52969-59450+138222-649+11313-45250-99362-44659 core_invsntrup1013 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1013 5 2027 20693534 +6088+3989+2993+1853-1233-1215-379-1349-889-73-1391-497-84-2012-947+449+6410-1148+198-1874+7078+2386+5366+2561+7993-1286-1469+119-1107-4991-2155+4340 core_invsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 selected 2555 2019167 +423-2328-3543-5734-2286-4671-4107-3729+17022+6664+3543+5295+3602+5144+3692+3818+11167-922-287-1702-81+657-170+23086-1201-2055-1011-1571-1502-1844-1619+19165 core_invsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 0 2555 2043218 +15956-12678-12316-11824-10316-11441+8732-424-1763+597-1194-582+977+6391-2805-31-1478-1825-393-1183-2279+17868+3658+6343+4772+3977+28598+4743+31734-6394-3926-6453 core_invsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 1 2555 1962127 +7378+7335+6225+26873+4305+4764+4892+5608+5926+4879+5987+11005-2714-563-2585-1887-2207-2191-2883+8150-7044-5926-6597-5314-5349-6524-5447+10902-4688-5925-6011-7020 core_invsntrup1277 2 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 2 2555 39571892 -91955-517542-301332+223009+145561+66397+86887+142240-55520-138976+188783+177155+98339-83184-46700-116559+58972-96493-34668+194415+110378-276089-126617-256963-97102-33158-224253+84360+32899+67305+84204+57761 core_invsntrup1277 3 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 3 2555 8803374 -10581-16787-16366-15890-15776-10440-7297-7092-2835-2390-2388+2767+3817+5543+2826-1090-703-81-2063+386+12607+17158+10740+11465+9579+3219+8728+3569+4697+8200-2632-7939 core_invsntrup1277 4 implementation portable compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_invsntrup1277 4 2555 42455273 +476563-1007108-167951-510193+189359-559423-928857-787565+275587-66099-105313+486340+448679+48898+72927+105740+54310-377682-643297-123516+10329-123648-299653+106610-52508-458+259639+426000+578991+623908+161339-110019 core_invsntrup1277 5 implementation portable compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_invsntrup1277 5 2555 32823194 +12-1184-122-911+20+1032+1928+594-144+842+359+2391+371+1005-1658-631+1094+1229+47-70-583+138+635-2928-2168-2139-1592-670-632+673+3574-2616 core_mult3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 selected 653 7851 +8949+1249+58+208-35-30-54-25+227-30+10+7-22-45-51+207+307-56-14-85-65+26-29-46-60+265-16-53-44+211+242-18 core_mult3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 0 653 8309 +116-161-307+21-45+60-40+49-296-262+160-9+37+6+50-31-543+36+5+49-33-521+30+105-279-299+6+48-6-11-16+46 core_mult3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 1 653 9350 +8113+1982+434+761+406+2+2-16-3+2-2-15-18+31+0-25-2+29-24+8+8+14+16-17+1-24-15-20-19-6+14-13 core_mult3sntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 2 653 49630 +1974+309+94+57-46+9-2-67-32+10-25-38+140+81-11-28+4-4-12+35-58-13+91-14-7-20-5+81-11-57+4+35 core_mult3sntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 3 653 88365 +508+903+71-337+192+21-110-160+284-296-77-90-197+237-223+124+216+348-15-275-84-139+186+130-107-73+12-50+11+456+50-183 core_mult3sntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup653 4 653 94940 +270+483+136-299-38-31+50+54-121+1-31+50+54-150-41-31+50+54-150-41-31+50+54-150-41-31+50+54-150-41-31+50 core_mult3sntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup653 5 653 92159 +2054+906-79-104-96+26+23+135+175-22-142-131-114+353-44-208+59+145+206-215+26+23+135+179+17-142-131-114+353-44-208+59 core_mult3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 selected 761 8921 +2062+265+91+255+211+144-219-473+125-153-240+123-455+43-504+126-264+111-447+104-324+144+143+137-516+114-16-516-209+131+148-488 core_mult3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 0 761 8601 +298-193-198-209+26-170+51+1-3-31+19+11-3-31+19+11-3-31+19+11-3-31+19+11-3-31+19+11-3-31+19+11 core_mult3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 1 761 11012 +1666+532-197-2+52+22+4+16+19-6-15+6+0-8-5+6+0-8-5+6+0-8-5+6+0-8-5+6+0-8-5+6 core_mult3sntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 2 761 79628 +1057+923+44+424+58-109-217+296-173+76+19-133-5+91-146+110+238+86+5-57-86-110-166-72+92-169+295+0-120-141-32+131 core_mult3sntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 3 761 113505 +455+721+57-445-37-136+186+20-77-156+124+101-133+281-172-38-178-50+285+65-284+61+250+144-169-38-181-50+285+65-284+61 core_mult3sntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup761 4 761 133909 +394+813+449-227+302-253+66-159-121-122+56+320-116-2-174+505+67+60-159-121-122+56+320-116+501+58+517+5-159-121-122+56 core_mult3sntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup761 5 761 133987 +630+1236+92+891-55-82+135+56-136+116-136+116-136+116-136+116-7-136+116-136+116-136+116-136+116-136+116-145-95-71-71-71 core_mult3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 selected 857 10869 +3539+1299-41-182-157-171-54+50+153+2-191+218+32+117+125+146-78-185+14-182+203-17-215+125+146+63-185+14-182+203-17-215 core_mult3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 0 857 10669 +399-75-70+102-31-76+65+60-45+35+109+87-93+102-8+123+14-48+115-44+9-62-7-51+115-27-38-68+87-99-14-11 core_mult3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 1 857 13287 +3677+1565+1392+653-1+21+28+30+5+6-31-11-42-61+25-17+25-37+35-16-10-26-22-46+100+8-5-41+1+22-33-34 core_mult3sntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 2 857 102725 +652+198+321+94+95-37-52-388-41+112-22-212-99-34+143+59-191-107+132-11+1+216-181-103+16-34-3-30+32+53+10-106 core_mult3sntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 3 857 143079 +282+894+194+272+61-163-7+169-236-65-179-191-244+191+260+458+55-171-54+196+123-192+235+48-247-201-66-54+169-236-65-179 core_mult3sntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup857 4 857 169756 +451+739+253-700-454-493-150-342-134-847-549+381-256+82+68+36+203-803-64-72+224+379+295-95+736+27+190+382-414+36+353-803 core_mult3sntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup857 5 857 154604 +403+643+146-129+90+26-33+24+32-19-94-102-14-19+181-191+250+142+294-85-78-95-286-81+175-276-15+133-326+305-102-14 core_mult3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 selected 953 11307 +2420+988-167+298+297+293-130+257-139+173-142+255-118+223-78-190-107-143-127-119+235+256+261-140-232-196-192-208+127-192-208+235 core_mult3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 0 953 11293 +521-10-67-159+7-93-105-91-95-126-114+328-97-127-107-86-17+157+158-116+155+146-62+47+157+79+165+34+149+47+11+163 core_mult3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 1 953 14089 +1692+756+29+62-27+76-86-11+25-100-19-27-25-14-14+50+34-9+35-24+96+47+2+60+76-77-73-156-26-8-25-18 core_mult3sntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 2 953 123717 +758+743+161+223+183+49-64-2-53+72-38-181-6-100+143-13+16-205+10-181-142-253-197-131+26+57+130-177-333+44+194+149 core_mult3sntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 3 953 176979 -270+970-104+76-254+72+975-236-566-307-555+101-520-497-52-23+258+273+128+62+161-9+205+25+114-198-154+376-13-181+341+290 core_mult3sntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup953 4 953 209789 -5456-6065-5529-5756-5499-5660-5701-5611-5397-5524-5848-5463-5366-6107-5524-5848-2319+7475+6593+7115+6604+6931+6986+7185+6644+6647+6607+6981+7003+6642+6345+6957 core_mult3sntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup953 5 953 189476 +598+880+332-6-60-287+218+231+6+424-65-65-65-65-65-65-65-65-65-65+1156-291+136+372+232-176+590+53-124-213-93-65 core_mult3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 selected 1013 11539 +1236+965+88+455+361+452-129-121+239-140-128+115-128-134-98+88-146+82-148+131-93-52-199-138+462+100-120+134-131+127-154+166 core_mult3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 0 1013 11617 +211-269-122+191-166+94-282+337+17-262+332+407-314+295+20-345+312+262-302+277+297+277+303-229-242-251-21-255-66-270+382-292 core_mult3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 1 1013 14703 +440+764-13-1+121-33-65-28+2-18-80-32+101+101+56+58-17-37+19-22-177-107-6-13-58+47+37-31+28+29+22+4 core_mult3sntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 2 1013 132131 +679+1110+293+89-143-24+10-9+260+27-30-6-168-205-17+18-278+51-23-316+184-42-9+22+144+159+151-53-1-109-161-239 core_mult3sntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 3 1013 200299 +601+416-528+874-787+634-851+654-851+654-851+654-851+654-851+654-910+654-851+654-851+654-851+654-910+654-851+654-851+654-851+654 core_mult3sntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1013 4 1013 233602 +112+1401+627-456-404+181+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_mult3sntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1013 5 1013 212290 +46+656-499-406-92+96-306+201+131+202+225-255-489-92+96-306+201+131+202+225-255-489-92+96-296+201+131+202+225-255-489-92 core_mult3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 selected 1277 14547 +5711+576+3-192+325+481-221-101-71-140-109+331-203+473+525+6-158+175-229-217+59-219+4-44-110-85+512-209+579+50-239+203 core_mult3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 0 1277 14313 +501+339-37-9-13-102-85+251+83+3-1+510-63-44+44+65-61-65-98-46-162+1+224-116-128+53+25+669-29-28+76+316 core_mult3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 1 1277 18157 +4371+1082+1039+1547-171-94-312-57+97+90-152-123+1471+254+63+16-247+26-83-39-96-109-155-129+56+140-25+292-278+94+33+21 core_mult3sntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 2 1277 218724 +1197+839-191+346-38-432-16-46-10+328+16+339-51+15-43-287-316-68+45-73-144+395-7+9-298-208+187+61+273+20-331+327 core_mult3sntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 3 1277 332954 +540+725+68+20043+82-427+444-632+274-626-454-227+226+133+23-83+49-577-302+172-6-523-353+471+80+342+55-622+156-582-79+278 core_mult3sntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_mult3sntrup1277 4 1277 355765 +870+302+403-603+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25+19-25 core_mult3sntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_mult3sntrup1277 5 1277 344983 +824+1139-398-117-93-107-202-265-145+0+0+0+0+0+0+0-52+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_multsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 selected 1306 11407 +11183+1250+55-3-35-58+35-6-50-28+16-37+21-3-40+19+0+26-1-20+24+8+12+18+1-19-32+10-27+1+10-25 core_multsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 0 1306 11394 +368+24-2-27+15+10-1-17-9-7-18+25-13-11-46+48-26+12+4-8-1+10-30+13-4+42+65-33+16+50-13-64 core_multsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 1 1306 13157 +16843+466-62-223-184+92+205+136-16+228+93-200-190+47-251-212-153-254+131+137-220-256-242-244-266+186+248+145+104+267+132+246 core_multsntrup653 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 2 1306 89498 +796+484-92-120-143-14-139-49-112+15+148+68+97+97+3+203-17-78-31-27-50-6-43+17-218+29+98+169-39-30+140+23 core_multsntrup653 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 3 1306 81557 +968+1686+228+104+42-65-86-3+5648+25348+37+91-19-71-71-71-58+26-54-35-70-62+49-11+8+29+88-4-40-45-31+53 core_multsntrup653 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup653 4 1306 262252 +524+315+222-50-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14-18+14 core_multsntrup653 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup653 5 1306 268606 +474+446-276+85-15-15-15-15-15-15-15-15-15-15-15+1008-54+29-52-96-96-96-96-96-172+14+84+84+84+84+84+84 core_multsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 selected 1522 11851 +2627+606+386-73+107-161+259-141-124-110+276+15+355-132-144-102+333+336-89-149+334+296-102+21-104-76-115-131+168-122-126+47 core_multsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 0 1522 11829 +708-166-89+353+397+214-46-73-67-93+193-109-59-114-67+274-66+113+398+44-60+158-93-30-101+313-43+160+86-8-101-36 core_multsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 1 1522 13116 +1900+495+110+42+22+35+17+27+43-15-37-1-40+31-24-24-7+40-7-1-41+5-34-40-59-19-36-42+30-16-5+21 core_multsntrup761 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 2 1522 149275 +880+754+91+21+89-106-36+23+28+15+2-55-45+31-11+107-45-72-47+109+98-139+7+71+20-2-139-48+20-12-29-38 core_multsntrup761 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 3 1522 112230 +921+582+242-116-4-6-7+45-5-225+9+75-53-15+89+49+9-37-117+39+147+20+24+13-19-45-21-53+11-147-30-17 core_multsntrup761 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup761 4 1522 336369 +11032+1333+312+119+0+0+0+0+25+0+0+0+0+0+0+0+24+0+0+0+0+0+0+0+50+0+0+0+0+0+0+0 core_multsntrup761 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup761 5 1522 361675 +830+335+248-134+62+79+79+79+79+79+79+79+79+1262-223-246-34-34-268-34-34-34-34-34-215-34-34-34-34-34-34-34 core_multsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 selected 1714 16224 +3573+1382-23-80+447+61-60-49-30+441-83-88-51+61-51+28-89+61+28+263-79+89+104+230+102-8-131-144-72-153+328-178 core_multsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 0 1714 16199 +800-36+67+12-42+232-83-56+135+150-86-50-5+67+359-107-130-66+13+264-85-74+171-112+182-60-51+154+354-8-101-84 core_multsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 1 1714 18527 +14138+1780+623+19+20+530+20-92-36-103+22-107-126-102-51-149-22-91+95+31-13+93+7-176+63+85-13-23-75-11+421+60 core_multsntrup857 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 2 1714 203443 +1182+870-88+86-53-193-207-9-99-36+78-312+106-175+23+116-17-23+41+118-49-158+23+116-127+3+41+118-49-158+23+116 core_multsntrup857 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 3 1714 136793 +968+500+286+179-71+40+111+23-39-14+29-65-8-4-24-48+3+6-62-38+1+45+35-64+160-193-144+38+37-20-28-38 core_multsntrup857 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup857 4 1714 435316 -9844-55+484-244-140-209-217-203-20+12+12+12+12+12+12+12-55+12+12+12+12+12+12+12+1261+86+59-188-10-10-10-10 core_multsntrup857 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup857 5 1714 450066 +919+374+366+141+90+170-89-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32-32+720+193+43+195+161+107 core_multsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 selected 1906 16479 +2372+1203+121+267-77-50-104+335+275-58-95-82-95-94+254-59+44-80+82+23+112-97-147+116-85+128-90-90-76+149-54+429 core_multsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 0 1906 16541 +792-177+40-46-54-90-156+397-132+301+411-156-9-176+226+488-124-68-91-145-57+106+290-177+162+178+72-184-131-122+262+415 core_multsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 1 1906 18665 +2706+1224+87-89+631-31-23+753-72-51-10-65+337-138-4-10+106-185-56-78+543+17-195-67-72+13-27+103-166+848+14+453 core_multsntrup953 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 2 1906 242338 +1120+824+208+197-337-19-53-30+4+120+112-140+36+103-113-225+197-281+18+171-87+224-316+60-93-9-211-52+1+82-213-67 core_multsntrup953 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 3 1906 233517 +1212+626-3-77-106-78-39-91-79-16+684+88+51+12-22+88+28-22-8+88+9+46+5+7+14+2+17-55-33+1-33+1 core_multsntrup953 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup953 4 1906 541010 +395+205+239+46-61+7-98-56+7-98-56+7-98-56+7-98-56+7+741+121+21+11+61+18+32+29-57+0+29-57+0+29 core_multsntrup953 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup953 5 1906 552403 +566+567-24+100+1-143-143-143-143-143-143-143-143-143+1147+365+234+139+24+4+24+4+24+4+24+4+24+4+24+4+24+4 core_multsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 selected 2026 16492 +2995+1159-31+80+39+8-62+3-28+35-45-53-2+18-53+46+25-39+22-33-20-23-14+20+29+7-13+14+21-18+8-67 core_multsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 0 2026 16491 +579+27-11-3+26-10-42+9+0-21+2+20+11+52-56-15-24+18-35-3-43-57-1+14+40+41-54+62-32-42+41+14 core_multsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 1 2026 19409 +2289+821+80+37-75+23-29+20+110+70-21-90-23+30-1+77-24-12+26+89+55-121+62-74-149+7-114-34-44-13-81-88 core_multsntrup1013 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 2 2026 218261 +697+535-216+51+99-100-4-104-41-4-31-121-124-108+1152-15+64-56+43+144+39-98+4-100+124+50+50+30+252-9-103-4 core_multsntrup1013 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 3 2026 193003 +1128+522+83-76-17-100+16-61+44-37+79+31+38-57+64+74+19-9-43+8-1-3+14-101-43+27+5-35-55-30-17+30 core_multsntrup1013 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1013 4 2026 593132 +466+212-79-63-34-34-34-34+792-130+54+141+49+40+40+40+40+40+40+40+40+40+40+40-134-77-99-232-232-232-232-232 core_multsntrup1013 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1013 5 2026 619159 +463+1592+83-7+3+91-174-41+34-33-63-71+121-41+51-71+257-9+46-129+46-129+46-129+46-129+1081-33+169+1-57-52 core_multsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 selected 2554 21008 +7258+1237-194-200+404-71-337+404-290+532-219+304+257-160-185-271-317+241-329-50-75-254+26+420+430+378+314+296-248-43-235-314 core_multsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 0 2554 20962 -47+229+246-237-267+518-299-163-243-210-264-231-152+354+40+367+492+451+389-306+522+452-184-266-49-140-261+531-219+506+506-231 core_multsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 1 2554 23982 +5101+46-622+355+267-608+261+186-635+150-750+372-785-657+290+269+274+166+73+67+157+100-706-634+193+198-803-577+188+227-702+51 core_multsntrup1277 2 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 2 2554 349358 +1141+808+86-54-49-70+22+156+43-65-96+15+27-17+148+31-54-66+33-13+59-31+35-59-76+1194-98-2+32-13-21+4 core_multsntrup1277 3 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 3 2554 310837 +593+552+281-72+14-40-22+15-29-107+141-14+36-128-86-199+80-250+217+67-122+120+231+3-64+68+7-31-149+139-23-228 core_multsntrup1277 4 implementation compact compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_multsntrup1277 4 2554 971797 +709+155+1440-298-69+156-171+240+142-171+17+17+162+17+17+17+128-48+1349+410-173-502-171-93+33+29-11-71-71-71-71-71 core_multsntrup1277 5 implementation compact compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_multsntrup1277 5 2554 1011747 +948+1345+428-161-120-255+60+119-237+162-71-192-71+16-281-160+932-16+88-63-255-79+0+215+71+14-369+248-212+210+192+56 core_scale3sntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 selected 1306 163 +281+129+73-22+11+11+0-21+0-24+11+11-16+11+0-13-16+11+11+0-22-16+11+0-24+11+0-22+0-23+12-16 core_scale3sntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 0 1306 159 +94-17-12-12+15+4-11+15+15-12+4-19-12+15-12+4-19-12+15+4-20+4-20+15+4-12+15+15+4-14+15+15 core_scale3sntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 1 1306 164 +129+186+114-10+13-12-5+21-4+12-10-2-2+12-3+14-9-4-4-3-1-3+14-9-4-4-3-1-2+12-3+14 core_scale3sntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 2 1306 3132 +510+306-24-4-58+12-27-9+12+78-51-67+28+2-18-4+73-1-58+12+78-51-67+28+2-18-4+73-1-58+12+78 core_scale3sntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 3 1306 2450 +220+89-44-14+3-49+2+20-13+1+13+12-2-2-11+20-13+1+13+12-2-2-11+20-17-26-17+27-21+34+11-6 core_scale3sntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup653 4 1306 3138 +267+116+61-31+2-1-3-8+22-35+72+105+17-23+10-18+10-18+10-18+10-18+10-18+10-18+10-18+10-18+10-18 core_scale3sntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup653 5 1306 2440 +282+151-8-19-8-3+42+19-8-19-8-3+42+19-8-19-8-3+42+19-8-19-8-3+42+19-8-19-8-3+42+19 core_scale3sntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 selected 1522 158 +247+262+28+28+1+1+0+0+0+0+1+0+1+0+0+1+0+1+0+0+1+0+1+0+0+1+0+1+0+0+1+0 core_scale3sntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 0 1522 158 +63+2-1+8-2+1+0+4-2+1-2+0+5-2-2+5-2-2+2-2-2+0+2-2+0+2-1+1+2-1+6+1 core_scale3sntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 1 1522 179 +152+172+118+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 2 1522 3775 +228+252-7+4+62+7-19-59+62+7-19-59+62+7-19-59+62+7-19-59+62+7-19-59+62+7-19-59+62+7-19-59 core_scale3sntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 3 1522 2917 +206+131-70-18+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup761 4 1522 3815 +207+58+0-39+22-1-39+22-1-39+22-1-39+22-1-39+22-1-39+22-1-39+22-1-39+22-1-39+22-1-39+22 core_scale3sntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup761 5 1522 2873 +218+188-19+24-66-66-66-66-66-66-66-66-66-66-66-66+40+12+37+37+37+37+37+37+20-32+37+37+37+37+37+37 core_scale3sntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 selected 1714 174 +246+154+25+119+1-3-2+2+0-1+3-2+0+2-1-1-3+2-3-2+0+0+0+2+1+2-1+0+2-1+0+2 core_scale3sntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 0 1714 174 +92+298+1-1-1+0-1-1+0-1+2+1-2-2+2-2-1+11-2-2+2-2-1+7+1+4-1-1+3+1-2-2 core_scale3sntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 1 1714 199 +168+176+143+40+21-4-2-2-7+0-4-7-5-7-4-3-7-4-3+2+2+2+2+2+2+2+2+2+2+2+2+2 core_scale3sntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 2 1714 4168 +377+153+14+24+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 3 1714 3240 +206+117-56-14+17-35+14-19+16-7+57+13-40-22-24+58+22-65-22-22+26+9-5-14+17-35+14-19+16-7+57+13 core_scale3sntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup857 4 1714 4168 +220+52+122-45-59+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup857 5 1714 3226 +261+278-19-27+0+35-27-14+10-76-2+20-8+37+20+37+11-26+39+119-20+82-30-14-56-9+0+35-27-14+10-76 core_scale3sntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 selected 1906 193 +971+222+32-4+2-5-4-4-2+2+4-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6+5-6 core_scale3sntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 0 1906 190 +61+31-2+7-3-1+4-2+2-2+0-2+3+4-2-3+1+2+2-2+2-2+2-2+2-2+2-2+2-2+2-2 core_scale3sntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 1 1906 216 +147+171+121+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 2 1906 4692 +350+36+17-20+19+19+1+19-84+19-65-1+6-106+0+19-84+19-65-1+6-106+0+19-84+19-65-1+6-106+0+19 core_scale3sntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 3 1906 3637 +238+53-12+0+7-12+67+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8-12+8 core_scale3sntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup953 4 1906 4720 +46-37-98+8-130+9+18+40-131+18+40-131+18+40-131+18+40-131+18+40-131+18+40-131+18+40-131+18+40-131+18+40 core_scale3sntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup953 5 1906 3677 +124-16-4+18-4+18-4+18-4+18-4+18-4+18-4+18-4-1+5+3+3-18-66+4-8+5-1+5+3+3-18-66 core_scale3sntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 selected 2026 222 +224+129+3+120-4+3+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0+1+0+0 core_scale3sntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 0 2026 227 +55+195+0-4-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_scale3sntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 1 2026 247 +146+155+101-1-1+1-1-1+1-1-1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1-1-1+1 core_scale3sntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 2 2026 5120 +305+3+0+3-14-24-128+23-57-1+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2+1-2 core_scale3sntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 3 2026 3863 +87+136-100-64+63-23-23-75+71+43+28-35-64+63-23-23-75+71+43+28-35-64+63-23-7+28-64+63-23-23-75+71 core_scale3sntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1013 4 2026 5006 +128+143-93+46+71+20-32+34+22-43+38-64-43+38-64-43+38-64-43+38-64-43+38-64-38+32+37-37+34+22-43+38 core_scale3sntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1013 5 2026 3828 +284+130-17-11-17-3+36+9+15+34+1+91+41-43-8+7+16+1-45-44-34-12+6-3-13+11-11-12+3+119+2-3 core_scale3sntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 selected 2554 245 +315+134+26+19-3-2+3-4+5-2-3+1-3+3-4+5-2-2-4+5-2-2-4+5-2-2-4+5-2-2-4+5 core_scale3sntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 0 2554 245 +66-2-2+2+0+1+0-4-3-2-2-4-4-3-2+8-4-2-4-1+2+8+3-1+3+0-4+3+8+3-1+4 core_scale3sntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 1 2554 278 +165+170+119+20-3-2+0+2+1-3+0+2+1-3+0+2+1-3+0+2+1-3+0+2+3-5-1-5-1-5-1-5 core_scale3sntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 2 2554 6103 +374+80-48+14+11-1+9+16+8-122-76+9-40+82-60+203+15-11+231+9-12-18-22-23+87+17-25-65+126-39-66+36 core_scale3sntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 3 2554 4883 +175-66+47-19+42+2+9+12-8+121+4-52+20+39+20-57+55-90-42+16+9+6+2+6-30+7+2+4-55-148-35-29 core_scale3sntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_scale3sntrup1277 4 2554 6097 +157+57-20-12+120-16-26+55+33-26-5-83-55+28+51-72-82-72+2-26+115-56-78+27-14+36+15+143-48-27+54+28 core_scale3sntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_scale3sntrup1277 5 2554 4900 +165+42+37-205+41-3-21+45-46-117-100+35-54-23+48+41+1-23+48-9+26-112+48-8-112+30-110-21-46-54+44+36 core_weightsntrup653 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 selected 2 52 +307+0+0+0+0+0-1+0+0-1+0+0-1+0+0-1+0+0+0-1-1+0+0+0+0+0+0+0-1-1+0-1 core_weightsntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 0 2 51 +56+20+0-1+0-1+0+0+0+0-1+0+0-1-1-1+0+0-1+0-1-1+0+0+0+0+0-1-1-1-1+0 core_weightsntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 1 2 72 +146+133+17+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 2 2 716 +162+226+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 3 2 1151 +36-197+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup653 4 2 716 +143+196+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup653 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup653 5 2 1157 +59-231+20+20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 selected 2 53 +182+23+20+0+0+0+0-1+0+0-1+1+0-1+1+0+0+0+0-1+0+0+0-1+0+0+0+0+0+0-1+0 core_weightsntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 0 2 52 +37+0+0+4+0+4+0+0+0+4+0+0+0+0+0+0+0+0+4+0-1+0+0+4+0+4+0+0+0+0+0+0 core_weightsntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 1 2 77 +150+147+12+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 2 2 824 +160+208+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 3 2 1324 +116-355+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup761 4 2 824 +151+215+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup761 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup761 5 2 1330 +142-316+0+23+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 selected 2 55 +174-1-1+0+3-2+3-1+3-1-1-1-1-1-2+3-2-1+3+3-2+3+3-1-1-1-1+3+3-1-2-1 core_weightsntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 0 2 53 +60+20+0+0+0+0+0-1+4+0+4+9+0+0+4+0+0+0+4+0+4+0+0+0+0+0-1+0+0+0+4+0 core_weightsntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 1 2 87 +145+161+13+0+0+0-3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 2 2 920 +166+207+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 3 2 1474 +61-312+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup857 4 2 920 +171+229+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup857 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup857 5 2 1480 +86-351+0+27+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 selected 2 55 +184+23+20+0+0-1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0-1+0+0+0+0+0+0 core_weightsntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 0 2 54 +39+0+0-1+0-1-1-1+0+0+0+0-1+0-1+0-1-1-1-1+0-1-1-1+0-1+0+0+0-1+0-1 core_weightsntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 1 2 93 +158+160+11+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 2 2 1016 +134+210+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 3 2 1651 +11-387-27-30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup953 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup953 4 2 1020 +138+140-4+0+0+0+0+0+0+0+0+0+0+0+0+0-4+0+0+0+0+0+0+0-4+0+0+0+0+0+0+0 core_weightsntrup953 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup953 5 2 1651 +63-498-27-27-27-27-30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 selected 2 57 +187+0+3+3+4-2-1+3-1-1-1+3-1-2-1-1+3-1-2+3-1+3-2-2+3-1-1+3-1-1-1-1 core_weightsntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 0 2 55 +59+20+0+0+0+4+4-1+4+4+0+0+0+0+0-1-1+0+0+4+0+0+0+0-1-1+4+0+0+0+0+0 core_weightsntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 1 2 74 +131+182+26+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 2 2 2067 +102+173+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 3 2 2067 +132+206+7+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1013 4 2 2067 +160+118+4+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1013 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1013 5 2 2067 +140+132+2+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 selected 2 70 +224+149+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 0 2 69 +47+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 1 2 82 +171+187+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 2 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 2 2 1340 +197+226+5+5+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 3 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 3 2 2132 +36-553+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 4 implementation ref compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_weightsntrup1277 4 2 1340 +141+202+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_weightsntrup1277 5 implementation ref compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_weightsntrup1277 5 2 2138 +69-572+27+28+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup653 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 selected 653 94 +736+232+115+3+0+0+1+0+0+0-1+0+0+0+0+0+3+4+0+0-1+0+0+2+1+0+0+0+0+0+0+0 core_wforcesntrup653 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 0 653 96 +277+277+22+14-1+1+4-1-1-1+0-1+1+4-1-1-1-1+0-1+1+4-1-1-1-1+0-1+1+4-1-1 core_wforcesntrup653 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 1 653 92 +125+46+0+0+0+0+0+0+0+1+0+0+1+0+0+0+0+0+0+0+0+0+0+1+1+0+0+0+0+0+0+0 core_wforcesntrup653 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 2 653 223 +227+239+23+0+3+0+0-6-3-6+3-1+6+0+0-6+6+0+3-5+0+0+1+0+0-6+0+0+0-6+3-5 core_wforcesntrup653 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 3 653 99 +121+48-5+0+2-1+1-5-1+1-4+1-4+1-5+0+1-5+0+1-5+0+1-5+0+1-5+0+1-5+0+1 core_wforcesntrup653 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup653 4 653 108 +1013+93-2-2-2+0-1+0+1+1-1-3+2-2+1+0-2+0+2+0-2+1-3-2+3+1-2-1+0+1+1-2 core_wforcesntrup653 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup653 5 653 153 +234+312+6+0+0-1-1+0-1+0+0-1+0-1-1-1-1+0-1+0+0-1+0-1-1-1-1+0-1+0+0-1 core_wforcesntrup761 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 selected 761 97 +495+354+113+82+1-1-1+2+1-1+2+0+2-3+4-3+0-2+1+3-3+4+3-1-1-1-1-1-1+1+1-1 core_wforcesntrup761 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 0 761 96 +130+45+0+2+2+2+4-3+1-1+0+0-1+2+2+2-3+2+0+0-1-1+1-1+0+1-3-1+0+0-1+1 core_wforcesntrup761 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 1 761 99 +319+325+74+85-4-3+3-3+4+0+1+1+1-3-3+1+0-1-1-2-4-1+4+1-3-3-4-2+2-1-3+1 core_wforcesntrup761 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 2 761 214 +380+186+65-2+3+1+0+1+0+1-2+1-2+0+1-2+1+0+1-2+1-2+1-2+1-2-2+1-2+1+0+1 core_wforcesntrup761 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 3 761 118 +910+18-5+0+1+0-6-2+3-1+1+0+0-3-4+3+2+0-4+2-2-5+2-5+3-1-5+2-3+2-5+0 core_wforcesntrup761 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup761 4 761 189 +1061+147+51+8-1-2+5-1+5-2+0-1-2+0-1-1+7+0-2+5-1+5-2+0-1-2+0-1-1+7+0-2 core_wforcesntrup761 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup761 5 761 141 +174+209+31-5+1-2-2+0+2-2+14-2+0+3-1+3-3+2+0-1-2+0-3-2-1+4-3+1-1+9-3+0 core_wforcesntrup857 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 selected 857 107 +1143-6+6-1+2+1-2-2-1+2-2+1+1-1-12+3-3-6+1-1-5+2-5+1-1+1-6-8-1+2+2-1 core_wforcesntrup857 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 0 857 124 +287+336+78+77-4+0+0+1-2+1-9+1+0-1+1-6+2-6-1+1+1-1+2+0+1+1+0-1-5+2-1+2 core_wforcesntrup857 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 1 857 106 +347+255+1+7+0-3+5+4-2-3+1-2-5+6+0+1-2+0-4-2-3-4+4+1+3+1+1+1-3-5-1-5 core_wforcesntrup857 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 2 857 235 +252+222-3-11-9-1-2+19-1+5+3-2+3+5+13+4-5-6-8-1+3+4-5-11+0+4-2+5-2-5-2-4 core_wforcesntrup857 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 3 857 104 +92+25+2+0+0+4-1+2+0-6+1-1+1-12+2-10-3-1-2+5-12+1-12-11+1-1+3-12+0-8+0+3 core_wforcesntrup857 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup857 4 857 151 +1088+130+14-2-7-2-4+3-2+1-2-6-5+0+4-2+0+6-1-1+11-1-6+1-6+1-3+1+0-2+1+1 core_wforcesntrup857 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup857 5 857 150 +227+310-2+0+0-3+1+0+0+0+2+0+0+2-2+1-2-2+0-2-3+12+11-1+1-1-2+0-2+2+3+1 core_wforcesntrup953 selected implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 selected 953 132 +475+335+89+132-1-2-1-7+0+2+0-5+1+1+1+1+0+0+0-5+0+0+0+1-2-1+0+1-1-3-2+0 core_wforcesntrup953 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 0 953 132 +85-6-2-3+0-1+0+1-1-1-1-1+0+1-1+0+1+0+2-1+0-1-1+1-3+2-1+3+0-1+0+0 core_wforcesntrup953 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 1 953 126 +302+285+43-1+3-2-9-6+5+4+2-1+1+2-1-6-8+0-10+0-6-1-6+2+0+1-5+2-2+2+2-8 core_wforcesntrup953 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 2 953 157 +886+132+4+0-1+0-2+1+2+2+1+2+2-1-4-4+2+3+0+1-1-2+0-4+3-1+0-1+0-2+0-1 core_wforcesntrup953 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 3 953 123 +968+21-2+3+0+2-2-4+0+0-7+0+3+7+4-2+9+3-1-6-6+4+0-6-7-4-8+0-3+7-2-7 core_wforcesntrup953 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup953 4 953 158 +1073+199+31-2-4-3+5+3+1-3-6-3-1+1+2-2+2-3-1-2+5-1+4-4+1+0+3+2+4-2+0+1 core_wforcesntrup953 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup953 5 953 171 +280+306+0+0-1+0+0+0+0-1+0+0-1+0+1+0+0-1+1+0+0-1+1+0+0-1+1+0+0-1+1+0 core_wforcesntrup1013 selected implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 selected 1013 96 +1192+20+0-3-1+3+1-2+2+0-3+2-1+3+1-2+3-3-2+2+0+2-1+3+1-2+1+1-2-1-1+1 core_wforcesntrup1013 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 0 1013 131 +331+308+0+0+0-1-1-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1+0-1 core_wforcesntrup1013 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 1 1013 146 +254+264+122+3+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1013 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 2 1013 246 +270+192+1+0-3+0+0+3+1-2+1+0-1-3+1+0+0+0-3+0+0+0+1-1-3+2+0+0-3-2+1+0 core_wforcesntrup1013 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 3 1013 96 +76+36-1+0-2+0+2-1+0-2+1-4+1-3+1-1-3+0-3+1-1+1-3+1+2-3+1-1-3+1+11-1 core_wforcesntrup1013 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1013 4 1013 159 +890+203-1+0+3+2-5+4-2+3+1+0-3+5-3-1-6-2+2-1-1-2-1+3+2+5-7+0-3-3-1+1 core_wforcesntrup1013 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1013 5 1013 175 +235+315+4+1-1+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 core_wforcesntrup1277 selected implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 selected 1277 178 +468+305+48+80+61+59+1+3-2+16-4-1-10+1-8-13-4-4+3-8-10-7+1+5-3-5-1+6-2-4+6-5 core_wforcesntrup1277 0 implementation avx compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 0 1277 176 +291+283+41+2+62-5-3+0-4-7-5+1+1-3-5-6-1+1-5+3+5-7-7-5+4+2+1+3+1-3+2+4 core_wforcesntrup1277 1 implementation avx compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 1 1277 182 +101+26+66-15-2-2+6-3+1-2+5-2+0-4-5+5-12-12-12-12-2+5+4-6+6-2+7+4-12-2+7-2 core_wforcesntrup1277 2 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 2 1277 316 +761+243+1-4-2+3+2+3-6+3+2+3+3+1-1-11-2-3+5-3+1+3-9-10-4-2+3-9-10-4+1+3 core_wforcesntrup1277 3 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 3 1277 168 +176+227-13+11-15+4-5-1+12-4+3+63-8+0+10-10-2-1+10-5-2+3-2+2-4-5-5+66-2-7+13+3 core_wforcesntrup1277 4 implementation simpler compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin core_wforcesntrup1277 4 1277 199 +338+255+5+0-1+7-4+0+5-4-8+4-2+2-4+3-9+1-9+1-9+4+0+7-10+3+9-4+3-4+4-6 core_wforcesntrup1277 5 implementation simpler compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. core_wforcesntrup1277 5 1277 230 +316+215+7+23+68+1+1-1-4-1-3-1-1+1-1-4-1+1+0-3+1-4+61-1-1-4-1+1+0+0+1+0 kem_sntrup653 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair selected 994 630180 +25522-365-11347-6387+3345+2738-6875+1867+3886+2768-3315+1906+4435-152+490-3457+72557-3872+3071-3645+2974+7765+4986-7689-3960-9360+3959-3205-5243-1141-12545+5044 kem_sntrup653_enc selected 897 32541 +1873+450+153+34-114+82-92-36+85-1+72+4-49-144-175-17-81+27-14-46+31-127-5-100-73+73+79+39+64+68-33-72 kem_sntrup653_dec selected 32 45606 +3682+913+147-55-112-7-171-210-320+352+196-154+690+366-218+330-264+222+204-187-48-50-175-63+120-165-36-80+410+350-123-196 kem_sntrup653 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 0 994 627488 +83637-3204+8388+797-2012+75087+5372-3186+11337-56+1158+2375+5316+8281+77620+65610-10944-10035+1618-3596-7528+1863+2118-1139-2684-10172-4673+673-5466-10821-37-6194 kem_sntrup653_enc 0 897 32614 +850+261+67+34-55+105-19-46+17-65+3+45+73+45+54+41-49-46-12-41+61-121-56-49-26-94+226-13+11+29-63-23 kem_sntrup653_dec 0 32 45874 +1393+248+215+263-215+672+107+180-173-239-57-277-162+198+1139+145-44+58-185-20-266-196+240-145-149-53-260-285+80-333+257+314 kem_sntrup653 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 1 994 626525 -5288+2039-6296+9464+5909+6256+8079-1562-170+787-4584+1810+14441+4300+9920+4719+5627+6488-5444+8972-5007+4405+3763-1748-11533-9223-5424-11109-7523-4192-4903-5755 kem_sntrup653_enc 1 897 32484 +565+118+64-1+83+195+14-139-45+19+51-16-16+6-13+173-99-32-81-2+53-36+50-127+10-42-102+0-12-18-57+83 kem_sntrup653_dec 1 32 45638 +1002-12+246+215+35+183+339-230+52-81-12-244-237-232-232-221-102+174-183+143-268+233+173+89+462-62+235+108-216+114-233-271 kem_sntrup653 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup653_keypair 2 994 611653 +1840-3341-1460+970+5763+6135+2983+14330+10883+8977+6547+7247+1421-165-2876-1720-1861-837-1795+75583+151-644+1602-1261-159-1206-1472-2640-2899-1454-3928-302 kem_sntrup653_enc 2 897 32749 +750+367+113+111-13-55+60+160+40-67-41+18-54+4+16-8-99-1-3+106+61+9-63-7-53-21-78+35-13-48+28-108 kem_sntrup653_dec 2 32 45665 +1911+29+412+283-36+89+557+60-113-109-49+14-1-58+67-35-91-134-25+7-73+0-102-118-52+371+26-28+114+25+41+26 kem_sntrup653 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup653_keypair 3 994 609087 +1043-313-2358+239-622+2056-2222+3384+2979+449+2498-5088+73841-1692-1923-463-3724-2365-2001+4935+907-587-2973+51-3266+1085-4194-724+3088+2993+9711+2559 kem_sntrup653_enc 3 897 32833 +815+266+22+176+29-121-66-22+52+7-119+12+173+15-25-138+42-215-21-105-75-51+88-91+91-13-11+106-14+62+41-85 kem_sntrup653_dec 3 32 45656 +1536-210-321+171-250+202-186-208+87-38+268-179-154-270-214+209+49-93+195+278+128+129+437+185-200-101-238+1001+145-240+265-146 kem_sntrup761 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair selected 1158 841462 +14267+23832+342-1064+8388-627+7969+18713+8406+276-6813-3646-4697-4164-2922+4776-1767+27315+13149+4883+4570+15328+6578-6411-6449-5056-9783-6258-5852-5669-9245-5451 kem_sntrup761_enc selected 1039 35311 +1438+342+501+229-68+168+63+33-75-55+44+53+1174+134-104-192+230-153-183-185-181-62-179-41+114-93+101-25-20-65-112+98 kem_sntrup761_dec selected 32 47977 +3600+1119+263+196-337-230+36+422-297+147-247+149+46-75+557-225-398+169-191+63-180-115+741-357+15+4+81-120-154+353+130-362 kem_sntrup761 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 0 1158 828638 +4918+16619-9160-794-7145-1075+6422-3934-5453-1525+2960-5700-2752-16499+4373-7158+4852+2849-3938+9152+9519+12706-4185+13599+22036-4122-2400-1151-9265+97+7868+1641 kem_sntrup761_enc 0 1039 35954 +1072+60+171-188+124-161-134+16+22-77+391+152-81-6-148+139-76-92+355+157-139-21+17-67+220-109-125+108+375-35-125-38 kem_sntrup761_dec 0 32 48070 +1773+364-157+104-32+499+241-549+253+231-201-299-316-485-106-243+430+456-98-249-130-183-332+20+98-314+87+88+67+338+330-35 kem_sntrup761 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 1 1158 829233 +8497+10886+741-9356-16462-11573+4529+23571+15661+9409+9007+5364-5977+3452+4948-3204-8464-2077-6525+1406+3618+5301+15641+1447-9674-3883-5769-11460-6022+632-5201+33 kem_sntrup761_enc 1 1039 35167 +755+395+564+19+154+219+150-103+8+177-17-80+0+0-128-1-46+288-89+82-56-61-28-12+24-66+264+5-151-61-168-192 kem_sntrup761_dec 1 32 47850 +1194+512+149-115-134-165-131+142+503-117-279-195-287+539-239-89-210+321+495+213+345-113-162+328-78-11+276-166-5-117+287-207 kem_sntrup761 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair 2 1158 851930 +8587-2569-2152-10303+2082-5780+5091+2018-872+1563-893+2267+4068-3876+7901-1137+776-4823-9938-7253+1629+2348+6086+945-7344+2397+5210-5047-382-3873+3915-1744 kem_sntrup761_enc 2 1039 35999 +827+187+134+210+6-33-52-32+213-81-129+44+34+477+43-91-86-77-49+57-105+236-45-50+176-76-83+8-118-6+15+319 kem_sntrup761_dec 2 32 48019 +1750+315-112+537+242-47+26-314-166-26-276+79+1-331+343+187-289+179+225+788-257-218-138+345-377-10-285+181+6-176+621-216 kem_sntrup761 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup761_keypair 3 1158 831689 +3354+2482-3812-6840-3815+5829+1543-10471+3715+16980+3888-9614-5692+1907+5856+3969+7302-2103+1503-4968+2475-6076-298-2888-3961-2319-472-6720+2006+3782+5266-3271 kem_sntrup761_enc 3 1039 35808 +666-80-94-310-353-220-323-149-315-206-69-355+74+67+71+53+39+42+71+223+3+153+138+6-243+96-29+101+56+173+70-64 kem_sntrup761_dec 3 32 47958 +1183+233+48+340-194-341-24+633-116+227+153-353+256+430-114-93-149-76-110+171+87+574-129+107-243-84-174-230+264-243+69-110 kem_sntrup857 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair selected 1322 1038697 +7396+5321-6825+11262-5985-3847+12527-3212+9683+14093-4214+6579+1349+14388-2817-4571-3353-5265+7123+4258-4038-3416+10853+2185-2378-3881-1475-2832-823-7180-2659+8043 kem_sntrup857_enc selected 1184 42592 +1442+1230+250+56+260-73-47+18-172-150+278-104-3-92-196-205-59-34-104-115-253+283+296+209-70-149-257+276+315+228-196-58 kem_sntrup857_dec selected 32 60883 +4247+1127+427-411+106-509+24+221+75-438-614-450-601+687+321-275-353+188-596+441-198+662-187-479+173+341-326-485+365-65+604+458 kem_sntrup857 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 0 1322 1040502 +8287-1517-1257-2698+4701-2243-3733-3264-5031+14891+5640-4003+2028+1927-5130-6007-5156+6783+2286-4495+8579-619-9855-4180+1670-1137+7089+12927+3603-2255+5502+2513 kem_sntrup857_enc 0 1184 43384 +1370+151+105-51+8+276-62+250-137+152-41-86-38+284-30-177-220-110-128-70-66+7+167+107-94-34+340+15+214+41-56-61 kem_sntrup857_dec 0 32 61015 +1779+193+166+199-337-224+527-19+245-431+226+69+720-510+85-315-231-317+427-428+106-360+122-173+182+266-56-295-389+356-357+196 kem_sntrup857 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 1 1322 1039149 +646-10472+11233-268+4136-4385+3798-7063-1818+4455-968-2302-5373+1282+2578-1403+14941+10192+13101+2516+3850-2762-242+7141-4676+2476-4468-5602-1657-3410+1540-4402 kem_sntrup857_enc 1 1184 42659 +350+422-25-242+232+208-53-277-160+151-105+256-299+343+186-256+337-25-291-223-340-256-211+114-279+223+290+149+38-318+243-24 kem_sntrup857_dec 1 32 60880 +1223-104+625+550+87-139+62+170+93+110+192-396+167+63+135-1-303-359-46+38-76-220-16+328-224-227-318-539-25-338+306+45 kem_sntrup857 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup857_keypair 2 1322 1035023 -371+3585+5313-11975+1145-7487-3442-4225+535-8720+2714+3109+1899+10619-4566+743-3267-654+2434+1955-1973+9041+8354+734+3379+4760-3558+2011-902-6790-7152-3823 kem_sntrup857_enc 2 1184 43550 +998+501+173-16+152+286+51+511-128+106-81+381-51-113-50-55-101+243+144-78-132-97-150-14+99-17-115-151-56+57+19-56 kem_sntrup857_dec 2 32 61168 +1169-21+122+964-326-479+56-432+119-319-401+110+401-39-532+194+612+249+85+7-158+184-116+664-52+830-324-31+154-103-409-615 kem_sntrup857 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup857_keypair 3 1322 1037522 -624-1701-7099-1297+5964-3207+4616+4136+7372+278-4436-4643-4958+10030+648+3839-167+278+3289-8302+5487-1288-4709+7113-2346+3751-298+5556+1564-2720-4293-4597 kem_sntrup857_enc 3 1184 43756 +1255+241+128+112+157-24+67-108-22-118-4+398-111-108-215-9-166-227-161+91+21-43+31+32+99-36-127+287-96+176-143+355 kem_sntrup857_dec 3 32 61055 +828-217+344-581+248+291+1193-421+72+139-116-441+67+25-439+92-147-46+87+7+235-205+111+15-264-211+447-345+300+210-180-138 kem_sntrup953 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair selected 1505 1253426 -4998-27023+15069-6215+16288+248+4718-17042+8192-1704+3710-8293-10808-5044+5513-440+14044-4970-11680+13656+9259+17157-13794+151-12151+7258+6128-9444-12169+9872+18838-4262 kem_sntrup953_enc selected 1349 47028 +1480+640+734+532-191+185-218-200-322+344+443+13-367-99-270-141-111+223-88+357+116-143-141-35+300-66-176-278+372+47+111-293 kem_sntrup953_dec selected 32 64965 +4317+2037+694+702-351+390-849+180-313-263-895-299+606+272+596+40+875+296+827+249-382-331+298-476+181-837-769-312+343-751-525-564 kem_sntrup953 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 0 1505 1254689 +9770+15105+10524+8591-1989+7592-5200-11904-2012+579-21419+577-22755+449-15185-1203+16529+2357-12927+4072+15973+9047-4478-4641-12895-391-11051+6897+50+3198+1740-10928 kem_sntrup953_enc 0 1349 46157 +904+442+30-360+123-155+10+161+80-469-323+64+170+268-475+18+75+166-246-78+41-204-78+348+46-75+140+85-459+17-411-471 kem_sntrup953_dec 0 32 65141 +2437+135+617+30+89-288-67+231-231-281-549+669-215+469+40+134+834-164-441+118+31+188-727-156+322-754+970+114-852-443+594-918 kem_sntrup953 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 1 1505 1251254 +6567+3560-2599-2165-6380+9686-16804+8497-1071+9044-11740-30581-13575-21791+3398-15899-9163-5496+15634+20704-4063-8455+3459+2106-5383+2374+11258+7485+7177-1486+6982+202 kem_sntrup953_enc 1 1349 45865 +1173-71+384+6-178-172-92-267-120+398+376+287+230-191-222+43-282+132-34+153+307+298-152-67-331+198-169-234-274+328+447-171 kem_sntrup953_dec 1 32 64889 +2519-526+662-336+120+4-225+1521-752+373-34-180-311+530+156+52-304-474-580+987-519-350+110+276+192-136-80-11+160+468+469-105 kem_sntrup953 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup953_keypair 2 1505 1318232 -1800+905-5227+2774-165-6322-21759+1533+1758-12066+4537+10086-8844+709-5827+2626+9408-4532+2869+569+10307+10715-5424-4196+6770-5220+15188+7813-767+1253-1445-2089 kem_sntrup953_enc 2 1349 46269 +903+9+228+305-297+115-114-197-375+22-19-2+120+235-11+163+288+142-381+196-321-170+158-348-114-94-382-183+317+114-395+32 kem_sntrup953_dec 2 32 65211 +1245-635-147-405+44+345+213-422+572-339+14-723+404+239-834+493+3+777-270+121-706-434-93+99-301+594+154-190+2+1135+73+36 kem_sntrup953 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup953_keypair 3 1505 1254933 +16795+18528-5285+4128-4088-9768+3027-22119-243+7463+3548-3927-10215-8561-6598-8262-872-10108+10369+6800+2121+4720+528+20733+9560-10608+13329-7104+6593-9730+6975-3353 kem_sntrup953_enc 3 1349 47050 +467+185-78+244+363-218+423+149+336-319-57+215-167-173+130+333-256-198-197-110+407+351-104-245-285-262+324+367-170+14-321-243 kem_sntrup953_dec 3 32 65048 +962-660-159+516-94+398-630-20-722+288-145+494-302-259-229+499+7-438+378-378+59+184-549+472+540+403+1073+99-292-212-7-658 kem_sntrup1013 selected implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair selected 1623 1435108 +11249-1001-2087-3683+3344-2338+3915+2591-4685-2364+3877+4074-1530-287-2775-6443-2678-5296-2157-420+5035-4881-1435-1247-2673+3827+8527+8646+2152+7177-928+5255 kem_sntrup1013_enc selected 1455 46973 +1798+648+216+97-7+3+36+27-5+240+107-225-108-69+30+16-41+126+11+117-14-44+16-33-158-38-82-56-46-58+91-71 kem_sntrup1013_dec selected 32 66213 +3321+1797+517-372-181+25-204-104+254-215+48-4+9-102+56+68+214+227+666+51-123+22-196-86-294+334-294+403-168-280+182-89 kem_sntrup1013 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 0 1623 1449707 +8930-1990-3430-5269+3906-2795-2261+975+7472+1185-3830-3059-2501+2285+2565-658+820+328+848+7196-5250+7116-568+1284+2338-2988+2870+418+299-6742+2719-3857 kem_sntrup1013_enc 0 1455 47963 +974+354-13-74+135+32+41-8+1-39+53-90-44-6-64-58-59-52-36-58-32+47+29+104+5-48-150+74+70+44+1236+23 kem_sntrup1013_dec 0 32 66477 +1338+156+357+433+320-295-30+260+165+35-218+466-265-70+535-28-240-150+133-69-179-232-184+393-402+74+406-86-205+31-204-60 kem_sntrup1013 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 1 1623 1433367 -5292+150546+2291+1331-2046+1339-4683+5077+6159+3855-5452-3072-2633+4152+2250+461-113+2445-1640+460-437-3042+1397+3324+69-2223-1614-1832+19184-2944-838-1086 kem_sntrup1013_enc 1 1455 46974 +273+153+33+8-87-91+29+63+174+14+45-102-79+48+103-86-105+8-73-196-21-55+17+29-29-78+74-106+47+121-1+26 kem_sntrup1013_dec 1 32 66232 +1305+163+556+680-57+406+69-133+79-341-237-9+559+7-331-106-16+195+438-262-137-89-233+436+12-97-41-11-36-70-216+313 kem_sntrup1013 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1013_keypair 2 1623 1431453 +8459-4476+7187-2050-5209+4554+819-4120+2263-1370+3959+1546-3898-5126+3916-4361+6401+3576+114-4840+2774-398-3346+150445-5861+11647+2252-6830+1573+3091-2833-4796 kem_sntrup1013_enc 2 1455 48341 +1063+537-86-36+211+88+152+40+144+136+105+14-52-44+81+6-86-110-88+16+26-63-62+139-39-44-55-85-146+34-30-1 kem_sntrup1013_dec 2 32 66279 +1698+262+963+156-236+75-300-108+220-118+465-353-24-94-123-141-106-206+160+233-65-5+67+17-202+534+10+7-179+141+14+39 kem_sntrup1013 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1013_keypair 3 1623 1517968 +7793-8046-5825+783-2805-12683+2107-1771+5892+3726-3226-7762-6680-3308-5460+6613-2153-4918-8541+8989+10320+4669+20264-4647-10554+9872+9847+2275-1066+6516-2068+15996 kem_sntrup1013_enc 3 1455 48191 +940+226+129+167+121+14-10-3+78+37-29-59+66+39+58-114-19-108+94+31-208-98-156-20-135+9-80-37-51-45+39-19 kem_sntrup1013_dec 3 32 66419 +1944+292-115+293+64-2-121+279-26-133+358-101-215-128+529-41+427+33+42-203+32-251+31+72-38+963-192-246-162+34-75+216 kem_sntrup1277 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair selected 2067 2171656 +38694-13676-2825+13285-12539-14995+4262+9077+6102-6240-17756-15254-2973-20103+15182+5415+2573+9804+4097+30732-11678+22212-8966+9793-17386+2860-19264-4676+15179+8880+4584-10493 kem_sntrup1277_enc selected 1847 60228 +2860+909+441-27+324-16-2+156-44+268-80-102-113-145-59-227-125+902-93+96+236-113-120+322+229-176-159-75-16+15-61+85 kem_sntrup1277_dec selected 32 80954 +4444+1118+519+695-544+323+582+67-730+167+185+477-400+169-681-5-434-62-716-663-105+260+588+435-108-323-23-421+71+201-631-620 kem_sntrup1277 0 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 0 2067 2308044 +11639+34538-20332-12610-5394+14539+17804+14010+22395-9405-5601+6694-13109+25124-7202+234225-1827+13210-12701-13812+6307-10514-16971-909+1064-2440-11087-16796+3457+4065+329+9730 kem_sntrup1277_enc 0 1847 60116 +1372-55+503-331+358+144-309-265+146+299-52-82+476-185+137-446+500+219+319-290+523-289-232-137-129+311-114-3+321-289-366-306 kem_sntrup1277_dec 0 32 81152 +1955-667-194-5-1026+188+106+770-351+226-311-4-42-182-862+119+270-358-24+227-237+292+121-234+337-420-703+877+756-40+781-25 kem_sntrup1277 1 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 1 2067 2304660 -4058-25176+3118-9060+678+20862+2224+20453-929-9389-1129-15378-8617+9302-19013-3932-4095+14547-13897+9496+14586+842-10883-735+23042+25050+9352+438+10922+6605-13446-11290 kem_sntrup1277_enc 1 1847 58836 +742+80-97+105-184-258+112+428+598-213-24-265-217+329+371+274-235+347-193-165+585-255+312-344-216+251-267-170-197-263+510+603 kem_sntrup1277_dec 1 32 80994 +2390-637-307-369+62-292+349+49+237+326+1307-339-829-92-271+667-399+630+1031-657+646-625+295-152-46-301-81-89+679+315+685-813 kem_sntrup1277 2 implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup1277_keypair 2 2067 2171401 -15808+6067+14938+10995+36027-17412-7960+2507-8653+20048+1990+28765-14703+24618-5945-7795-20585+4692+13342-12911+33160-27671-13132-1543-26-3122-10658+16091+6504-987+1087+2181 kem_sntrup1277_enc 2 1847 60383 +1458+737-66-129-133+437-117-220+205+268+53+545+205-132+636+544-155-180-124+107-27+107-120-137-153+50-155+204+556-104-130-112 kem_sntrup1277_dec 2 32 81233 +1974+327+135+122-784-55+502-224-298+40-37-1149+1069-12-947-701-249-45+74-677+318-1130-43+456+194-171+637+247+802+316-356-537 kem_sntrup1277 3 implementation factored compiler gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. kem_sntrup1277_keypair 3 2067 2191932 -1057-8912-18955+26192+206990+23662-20692-19072+21033+14390+16111+22346+2737+49433-41431-1827-6918-34781+6403-14495+16131-19288-4062-15659+12475+234662-20940-16632-14069+3053+9016+2814 kem_sntrup1277_enc 3 1847 59474 +366-377+43+343+141+61+12-267+235-197-289-33-334+188+198+449-41-406+564-464+390-229-275-127+459-23-231+327+238-228-292+454 kem_sntrup1277_dec 3 32 81336 +2445+91+1097-414-279+383+472+489-347+229+675+868-365+293-472-579-768-1011-32-174+729+86-992+335-795+510+7+461-95-732-178-609 libntruprime-20241021/command/0000755000000000000000000000000014705505543014607 5ustar rootrootlibntruprime-20241021/command/limits.inc0000644000000000000000000000042714705505542016605 0ustar rootrootstatic void limits() { #ifdef RLIM_INFINITY struct rlimit r; r.rlim_cur = 0; r.rlim_max = 0; #ifdef RLIMIT_NOFILE setrlimit(RLIMIT_NOFILE,&r); #endif #ifdef RLIMIT_NPROC setrlimit(RLIMIT_NPROC,&r); #endif #ifdef RLIMIT_CORE setrlimit(RLIMIT_CORE,&r); #endif #endif } libntruprime-20241021/command/ntruprime-speed.c0000644000000000000000000066031614705505542020111 0ustar rootroot/* WARNING: auto-generated (by autogen/speed); do not edit */ #include #include #include #include #include #include #include #include #include /* -lcpucycles */ #include /* -lntruprime */ #include /* -lrandombytes */ static const char *targeto = 0; static const char *targetp = 0; static const char *targeti = 0; #include "limits.inc" static void *callocplus(long long len) { void *x = calloc(1,len + 128); if (!x) abort(); return x; } static void *aligned(void *x) { unsigned char *y = x; y += 63 & (-(unsigned long) x); return y; } static void longlong_sort(long long *x,long long n) { long long top,p,q,r,i; if (n < 2) return; top = 1; while (top < n - top) top += top; for (p = top;p > 0;p >>= 1) { for (i = 0;i < n - p;++i) if (!(i & p)) if (x[i] > x[i+p]) { long long t = x[i]; x[i] = x[i+p]; x[i+p] = t; } i = 0; for (q = top;q > p;q >>= 1) { for (;i < n - q;++i) { if (!(i & p)) { long long a = x[i + p]; for (r = q;r > p;r >>= 1) if (a > x[i+r]) { long long t = a; a = x[i+r]; x[i+r] = t; } x[i + p] = a; } } } } } #define TIMINGS 32 // must be multiple of 4 static long long t[TIMINGS+1]; static void t_print(const char *op,long long impl,long long len) { long long tsort[TIMINGS]; long long iqm = 0; printf("%s",op); if (impl >= 0) printf(" %lld",impl); else printf(" selected"); printf(" %lld",len); for (long long i = 0;i < TIMINGS;++i) tsort[i] = t[i] = t[i+1]-t[i]; longlong_sort(tsort,TIMINGS); for (long long j = TIMINGS/4;j < 3*TIMINGS/4;++j) iqm += tsort[j]; iqm *= 2; iqm += TIMINGS/2; iqm /= TIMINGS; printf(" %lld ",iqm); for (long long i = 0;i < TIMINGS;++i) printf("%+lld",t[i]-iqm); printf("\n"); fflush(stdout); } #define MAXTEST_BYTES 65536 static void measure_cpucycles(void) { printf("cpucycles selected persecond %lld\n",cpucycles_persecond()); printf("cpucycles selected implementation %s\n",cpucycles_implementation()); for (long long i = 0;i <= TIMINGS;++i) t[i] = cpucycles(); t_print("cpucycles",-1,0); } static void measure_randombytes(void) { void *mstorage = callocplus(MAXTEST_BYTES); unsigned char *m = aligned(mstorage); long long mlen = 0; while (mlen < MAXTEST_BYTES) { for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); randombytes(m,mlen); } t_print("randombytes",-1,mlen); mlen += 1+mlen/2; } free(mstorage); } static void measure_verify_897(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"897")) return; void *xstorage = callocplus(ntruprime_verify_897_BYTES); unsigned char *x = aligned(xstorage); void *ystorage = callocplus(ntruprime_verify_897_BYTES); unsigned char *y = aligned(ystorage); for (long long impl = -1;impl < ntruprime_numimpl_verify_897();++impl) { int (*crypto_verify)(const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_verify_897_implementation(impl))) continue; if (impl >= 0) { crypto_verify = ntruprime_dispatch_verify_897(impl); printf("verify_897 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_897_implementation(impl),ntruprime_dispatch_verify_897_compiler(impl)); } else { crypto_verify = ntruprime_verify_897; printf("verify_897 selected implementation %s compiler %s\n",ntruprime_verify_897_implementation(),ntruprime_verify_897_compiler()); } randombytes(x,ntruprime_verify_897_BYTES); randombytes(y,ntruprime_verify_897_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_verify(x,y); } t_print("verify_897",impl,ntruprime_verify_897_BYTES); } free(ystorage); free(xstorage); } static void measure_verify_1039(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1039")) return; void *xstorage = callocplus(ntruprime_verify_1039_BYTES); unsigned char *x = aligned(xstorage); void *ystorage = callocplus(ntruprime_verify_1039_BYTES); unsigned char *y = aligned(ystorage); for (long long impl = -1;impl < ntruprime_numimpl_verify_1039();++impl) { int (*crypto_verify)(const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_verify_1039_implementation(impl))) continue; if (impl >= 0) { crypto_verify = ntruprime_dispatch_verify_1039(impl); printf("verify_1039 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1039_implementation(impl),ntruprime_dispatch_verify_1039_compiler(impl)); } else { crypto_verify = ntruprime_verify_1039; printf("verify_1039 selected implementation %s compiler %s\n",ntruprime_verify_1039_implementation(),ntruprime_verify_1039_compiler()); } randombytes(x,ntruprime_verify_1039_BYTES); randombytes(y,ntruprime_verify_1039_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_verify(x,y); } t_print("verify_1039",impl,ntruprime_verify_1039_BYTES); } free(ystorage); free(xstorage); } static void measure_verify_1184(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1184")) return; void *xstorage = callocplus(ntruprime_verify_1184_BYTES); unsigned char *x = aligned(xstorage); void *ystorage = callocplus(ntruprime_verify_1184_BYTES); unsigned char *y = aligned(ystorage); for (long long impl = -1;impl < ntruprime_numimpl_verify_1184();++impl) { int (*crypto_verify)(const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_verify_1184_implementation(impl))) continue; if (impl >= 0) { crypto_verify = ntruprime_dispatch_verify_1184(impl); printf("verify_1184 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1184_implementation(impl),ntruprime_dispatch_verify_1184_compiler(impl)); } else { crypto_verify = ntruprime_verify_1184; printf("verify_1184 selected implementation %s compiler %s\n",ntruprime_verify_1184_implementation(),ntruprime_verify_1184_compiler()); } randombytes(x,ntruprime_verify_1184_BYTES); randombytes(y,ntruprime_verify_1184_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_verify(x,y); } t_print("verify_1184",impl,ntruprime_verify_1184_BYTES); } free(ystorage); free(xstorage); } static void measure_verify_1349(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1349")) return; void *xstorage = callocplus(ntruprime_verify_1349_BYTES); unsigned char *x = aligned(xstorage); void *ystorage = callocplus(ntruprime_verify_1349_BYTES); unsigned char *y = aligned(ystorage); for (long long impl = -1;impl < ntruprime_numimpl_verify_1349();++impl) { int (*crypto_verify)(const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_verify_1349_implementation(impl))) continue; if (impl >= 0) { crypto_verify = ntruprime_dispatch_verify_1349(impl); printf("verify_1349 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1349_implementation(impl),ntruprime_dispatch_verify_1349_compiler(impl)); } else { crypto_verify = ntruprime_verify_1349; printf("verify_1349 selected implementation %s compiler %s\n",ntruprime_verify_1349_implementation(),ntruprime_verify_1349_compiler()); } randombytes(x,ntruprime_verify_1349_BYTES); randombytes(y,ntruprime_verify_1349_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_verify(x,y); } t_print("verify_1349",impl,ntruprime_verify_1349_BYTES); } free(ystorage); free(xstorage); } static void measure_verify_1455(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1455")) return; void *xstorage = callocplus(ntruprime_verify_1455_BYTES); unsigned char *x = aligned(xstorage); void *ystorage = callocplus(ntruprime_verify_1455_BYTES); unsigned char *y = aligned(ystorage); for (long long impl = -1;impl < ntruprime_numimpl_verify_1455();++impl) { int (*crypto_verify)(const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_verify_1455_implementation(impl))) continue; if (impl >= 0) { crypto_verify = ntruprime_dispatch_verify_1455(impl); printf("verify_1455 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1455_implementation(impl),ntruprime_dispatch_verify_1455_compiler(impl)); } else { crypto_verify = ntruprime_verify_1455; printf("verify_1455 selected implementation %s compiler %s\n",ntruprime_verify_1455_implementation(),ntruprime_verify_1455_compiler()); } randombytes(x,ntruprime_verify_1455_BYTES); randombytes(y,ntruprime_verify_1455_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_verify(x,y); } t_print("verify_1455",impl,ntruprime_verify_1455_BYTES); } free(ystorage); free(xstorage); } static void measure_verify_1847(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1847")) return; void *xstorage = callocplus(ntruprime_verify_1847_BYTES); unsigned char *x = aligned(xstorage); void *ystorage = callocplus(ntruprime_verify_1847_BYTES); unsigned char *y = aligned(ystorage); for (long long impl = -1;impl < ntruprime_numimpl_verify_1847();++impl) { int (*crypto_verify)(const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_verify_1847_implementation(impl))) continue; if (impl >= 0) { crypto_verify = ntruprime_dispatch_verify_1847(impl); printf("verify_1847 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1847_implementation(impl),ntruprime_dispatch_verify_1847_compiler(impl)); } else { crypto_verify = ntruprime_verify_1847; printf("verify_1847 selected implementation %s compiler %s\n",ntruprime_verify_1847_implementation(),ntruprime_verify_1847_compiler()); } randombytes(x,ntruprime_verify_1847_BYTES); randombytes(y,ntruprime_verify_1847_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_verify(x,y); } t_print("verify_1847",impl,ntruprime_verify_1847_BYTES); } free(ystorage); free(xstorage); } static void measure_hashblocks_sha512(void) { if (targeto && strcmp(targeto,"hashblocks")) return; if (targetp && strcmp(targetp,"sha512")) return; void *hstorage = callocplus(ntruprime_hashblocks_sha512_STATEBYTES); unsigned char *h = aligned(hstorage); void *mstorage = callocplus(MAXTEST_BYTES); unsigned char *m = aligned(mstorage); long long mlen; for (long long impl = -1;impl < ntruprime_numimpl_hashblocks_sha512();++impl) { int (*crypto_hashblocks)(unsigned char *,const unsigned char *,long long); if (targeti && strcmp(targeti,ntruprime_dispatch_hashblocks_sha512_implementation(impl))) continue; if (impl >= 0) { crypto_hashblocks = ntruprime_dispatch_hashblocks_sha512(impl); printf("hashblocks_sha512 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_hashblocks_sha512_implementation(impl),ntruprime_dispatch_hashblocks_sha512_compiler(impl)); } else { crypto_hashblocks = ntruprime_hashblocks_sha512; printf("hashblocks_sha512 selected implementation %s compiler %s\n",ntruprime_hashblocks_sha512_implementation(),ntruprime_hashblocks_sha512_compiler()); } randombytes(h,ntruprime_hashblocks_sha512_STATEBYTES); randombytes(m,MAXTEST_BYTES); mlen = 0; while (mlen <= MAXTEST_BYTES) { randombytes(m,mlen); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_hashblocks(h,m,mlen); } t_print("hashblocks_sha512",impl,mlen); mlen += 1+mlen/2; } } free(mstorage); free(hstorage); } static void measure_hash_sha512(void) { if (targeto && strcmp(targeto,"hash")) return; if (targetp && strcmp(targetp,"sha512")) return; void *hstorage = callocplus(ntruprime_hash_sha512_BYTES); unsigned char *h = aligned(hstorage); void *mstorage = callocplus(MAXTEST_BYTES); unsigned char *m = aligned(mstorage); long long mlen; for (long long impl = -1;impl < ntruprime_numimpl_hash_sha512();++impl) { void (*crypto_hash)(unsigned char *,const unsigned char *,long long); if (targeti && strcmp(targeti,ntruprime_dispatch_hash_sha512_implementation(impl))) continue; if (impl >= 0) { crypto_hash = ntruprime_dispatch_hash_sha512(impl); printf("hash_sha512 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_hash_sha512_implementation(impl),ntruprime_dispatch_hash_sha512_compiler(impl)); } else { crypto_hash = ntruprime_hash_sha512; printf("hash_sha512 selected implementation %s compiler %s\n",ntruprime_hash_sha512_implementation(),ntruprime_hash_sha512_compiler()); } randombytes(h,ntruprime_hash_sha512_BYTES); randombytes(m,MAXTEST_BYTES); mlen = 0; while (mlen <= MAXTEST_BYTES) { randombytes(m,mlen); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_hash(h,m,mlen); } t_print("hash_sha512",impl,mlen); mlen += 1+mlen/2; } } free(mstorage); free(hstorage); } static void measure_decode_653x3(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653x3")) return; void *xstorage = callocplus(ntruprime_decode_653x3_ITEMS*ntruprime_decode_653x3_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_653x3_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_653x3();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_653x3_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653x3(impl); printf("decode_653x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653x3_implementation(impl),ntruprime_dispatch_decode_653x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_653x3; printf("decode_653x3 selected implementation %s compiler %s\n",ntruprime_decode_653x3_implementation(),ntruprime_decode_653x3_compiler()); } randombytes(x,ntruprime_decode_653x3_ITEMS*ntruprime_decode_653x3_ITEMBYTES); randombytes(s,ntruprime_decode_653x3_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_653x3",impl,ntruprime_decode_653x3_ITEMS*ntruprime_decode_653x3_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_653x1541(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653x1541")) return; void *xstorage = callocplus(ntruprime_decode_653x1541_ITEMS*ntruprime_decode_653x1541_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_653x1541_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_653x1541();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_653x1541_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653x1541(impl); printf("decode_653x1541 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653x1541_implementation(impl),ntruprime_dispatch_decode_653x1541_compiler(impl)); } else { crypto_decode = ntruprime_decode_653x1541; printf("decode_653x1541 selected implementation %s compiler %s\n",ntruprime_decode_653x1541_implementation(),ntruprime_decode_653x1541_compiler()); } randombytes(x,ntruprime_decode_653x1541_ITEMS*ntruprime_decode_653x1541_ITEMBYTES); randombytes(s,ntruprime_decode_653x1541_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_653x1541",impl,ntruprime_decode_653x1541_ITEMS*ntruprime_decode_653x1541_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_653x4621(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653x4621")) return; void *xstorage = callocplus(ntruprime_decode_653x4621_ITEMS*ntruprime_decode_653x4621_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_653x4621_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_653x4621();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_653x4621_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653x4621(impl); printf("decode_653x4621 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653x4621_implementation(impl),ntruprime_dispatch_decode_653x4621_compiler(impl)); } else { crypto_decode = ntruprime_decode_653x4621; printf("decode_653x4621 selected implementation %s compiler %s\n",ntruprime_decode_653x4621_implementation(),ntruprime_decode_653x4621_compiler()); } randombytes(x,ntruprime_decode_653x4621_ITEMS*ntruprime_decode_653x4621_ITEMBYTES); randombytes(s,ntruprime_decode_653x4621_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_653x4621",impl,ntruprime_decode_653x4621_ITEMS*ntruprime_decode_653x4621_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_653xint16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653xint16")) return; void *xstorage = callocplus(ntruprime_decode_653xint16_ITEMS*ntruprime_decode_653xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_653xint16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_653xint16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_653xint16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653xint16(impl); printf("decode_653xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653xint16_implementation(impl),ntruprime_dispatch_decode_653xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_653xint16; printf("decode_653xint16 selected implementation %s compiler %s\n",ntruprime_decode_653xint16_implementation(),ntruprime_decode_653xint16_compiler()); } randombytes(x,ntruprime_decode_653xint16_ITEMS*ntruprime_decode_653xint16_ITEMBYTES); randombytes(s,ntruprime_decode_653xint16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_653xint16",impl,ntruprime_decode_653xint16_ITEMS*ntruprime_decode_653xint16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_653xint32(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653xint32")) return; void *xstorage = callocplus(ntruprime_decode_653xint32_ITEMS*ntruprime_decode_653xint32_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_653xint32_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_653xint32();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_653xint32_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653xint32(impl); printf("decode_653xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653xint32_implementation(impl),ntruprime_dispatch_decode_653xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_653xint32; printf("decode_653xint32 selected implementation %s compiler %s\n",ntruprime_decode_653xint32_implementation(),ntruprime_decode_653xint32_compiler()); } randombytes(x,ntruprime_decode_653xint32_ITEMS*ntruprime_decode_653xint32_ITEMBYTES); randombytes(s,ntruprime_decode_653xint32_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_653xint32",impl,ntruprime_decode_653xint32_ITEMS*ntruprime_decode_653xint32_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_761x3(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761x3")) return; void *xstorage = callocplus(ntruprime_decode_761x3_ITEMS*ntruprime_decode_761x3_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_761x3_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_761x3();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_761x3_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761x3(impl); printf("decode_761x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761x3_implementation(impl),ntruprime_dispatch_decode_761x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_761x3; printf("decode_761x3 selected implementation %s compiler %s\n",ntruprime_decode_761x3_implementation(),ntruprime_decode_761x3_compiler()); } randombytes(x,ntruprime_decode_761x3_ITEMS*ntruprime_decode_761x3_ITEMBYTES); randombytes(s,ntruprime_decode_761x3_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_761x3",impl,ntruprime_decode_761x3_ITEMS*ntruprime_decode_761x3_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_761x1531(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761x1531")) return; void *xstorage = callocplus(ntruprime_decode_761x1531_ITEMS*ntruprime_decode_761x1531_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_761x1531_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_761x1531();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_761x1531_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761x1531(impl); printf("decode_761x1531 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761x1531_implementation(impl),ntruprime_dispatch_decode_761x1531_compiler(impl)); } else { crypto_decode = ntruprime_decode_761x1531; printf("decode_761x1531 selected implementation %s compiler %s\n",ntruprime_decode_761x1531_implementation(),ntruprime_decode_761x1531_compiler()); } randombytes(x,ntruprime_decode_761x1531_ITEMS*ntruprime_decode_761x1531_ITEMBYTES); randombytes(s,ntruprime_decode_761x1531_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_761x1531",impl,ntruprime_decode_761x1531_ITEMS*ntruprime_decode_761x1531_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_761x4591(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761x4591")) return; void *xstorage = callocplus(ntruprime_decode_761x4591_ITEMS*ntruprime_decode_761x4591_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_761x4591_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_761x4591();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_761x4591_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761x4591(impl); printf("decode_761x4591 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761x4591_implementation(impl),ntruprime_dispatch_decode_761x4591_compiler(impl)); } else { crypto_decode = ntruprime_decode_761x4591; printf("decode_761x4591 selected implementation %s compiler %s\n",ntruprime_decode_761x4591_implementation(),ntruprime_decode_761x4591_compiler()); } randombytes(x,ntruprime_decode_761x4591_ITEMS*ntruprime_decode_761x4591_ITEMBYTES); randombytes(s,ntruprime_decode_761x4591_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_761x4591",impl,ntruprime_decode_761x4591_ITEMS*ntruprime_decode_761x4591_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_761xint16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761xint16")) return; void *xstorage = callocplus(ntruprime_decode_761xint16_ITEMS*ntruprime_decode_761xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_761xint16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_761xint16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_761xint16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761xint16(impl); printf("decode_761xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761xint16_implementation(impl),ntruprime_dispatch_decode_761xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_761xint16; printf("decode_761xint16 selected implementation %s compiler %s\n",ntruprime_decode_761xint16_implementation(),ntruprime_decode_761xint16_compiler()); } randombytes(x,ntruprime_decode_761xint16_ITEMS*ntruprime_decode_761xint16_ITEMBYTES); randombytes(s,ntruprime_decode_761xint16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_761xint16",impl,ntruprime_decode_761xint16_ITEMS*ntruprime_decode_761xint16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_761xint32(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761xint32")) return; void *xstorage = callocplus(ntruprime_decode_761xint32_ITEMS*ntruprime_decode_761xint32_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_761xint32_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_761xint32();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_761xint32_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761xint32(impl); printf("decode_761xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761xint32_implementation(impl),ntruprime_dispatch_decode_761xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_761xint32; printf("decode_761xint32 selected implementation %s compiler %s\n",ntruprime_decode_761xint32_implementation(),ntruprime_decode_761xint32_compiler()); } randombytes(x,ntruprime_decode_761xint32_ITEMS*ntruprime_decode_761xint32_ITEMBYTES); randombytes(s,ntruprime_decode_761xint32_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_761xint32",impl,ntruprime_decode_761xint32_ITEMS*ntruprime_decode_761xint32_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_857x3(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857x3")) return; void *xstorage = callocplus(ntruprime_decode_857x3_ITEMS*ntruprime_decode_857x3_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_857x3_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_857x3();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_857x3_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857x3(impl); printf("decode_857x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857x3_implementation(impl),ntruprime_dispatch_decode_857x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_857x3; printf("decode_857x3 selected implementation %s compiler %s\n",ntruprime_decode_857x3_implementation(),ntruprime_decode_857x3_compiler()); } randombytes(x,ntruprime_decode_857x3_ITEMS*ntruprime_decode_857x3_ITEMBYTES); randombytes(s,ntruprime_decode_857x3_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_857x3",impl,ntruprime_decode_857x3_ITEMS*ntruprime_decode_857x3_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_857x1723(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857x1723")) return; void *xstorage = callocplus(ntruprime_decode_857x1723_ITEMS*ntruprime_decode_857x1723_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_857x1723_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_857x1723();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_857x1723_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857x1723(impl); printf("decode_857x1723 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857x1723_implementation(impl),ntruprime_dispatch_decode_857x1723_compiler(impl)); } else { crypto_decode = ntruprime_decode_857x1723; printf("decode_857x1723 selected implementation %s compiler %s\n",ntruprime_decode_857x1723_implementation(),ntruprime_decode_857x1723_compiler()); } randombytes(x,ntruprime_decode_857x1723_ITEMS*ntruprime_decode_857x1723_ITEMBYTES); randombytes(s,ntruprime_decode_857x1723_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_857x1723",impl,ntruprime_decode_857x1723_ITEMS*ntruprime_decode_857x1723_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_857x5167(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857x5167")) return; void *xstorage = callocplus(ntruprime_decode_857x5167_ITEMS*ntruprime_decode_857x5167_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_857x5167_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_857x5167();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_857x5167_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857x5167(impl); printf("decode_857x5167 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857x5167_implementation(impl),ntruprime_dispatch_decode_857x5167_compiler(impl)); } else { crypto_decode = ntruprime_decode_857x5167; printf("decode_857x5167 selected implementation %s compiler %s\n",ntruprime_decode_857x5167_implementation(),ntruprime_decode_857x5167_compiler()); } randombytes(x,ntruprime_decode_857x5167_ITEMS*ntruprime_decode_857x5167_ITEMBYTES); randombytes(s,ntruprime_decode_857x5167_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_857x5167",impl,ntruprime_decode_857x5167_ITEMS*ntruprime_decode_857x5167_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_857xint16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857xint16")) return; void *xstorage = callocplus(ntruprime_decode_857xint16_ITEMS*ntruprime_decode_857xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_857xint16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_857xint16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_857xint16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857xint16(impl); printf("decode_857xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857xint16_implementation(impl),ntruprime_dispatch_decode_857xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_857xint16; printf("decode_857xint16 selected implementation %s compiler %s\n",ntruprime_decode_857xint16_implementation(),ntruprime_decode_857xint16_compiler()); } randombytes(x,ntruprime_decode_857xint16_ITEMS*ntruprime_decode_857xint16_ITEMBYTES); randombytes(s,ntruprime_decode_857xint16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_857xint16",impl,ntruprime_decode_857xint16_ITEMS*ntruprime_decode_857xint16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_857xint32(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857xint32")) return; void *xstorage = callocplus(ntruprime_decode_857xint32_ITEMS*ntruprime_decode_857xint32_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_857xint32_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_857xint32();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_857xint32_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857xint32(impl); printf("decode_857xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857xint32_implementation(impl),ntruprime_dispatch_decode_857xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_857xint32; printf("decode_857xint32 selected implementation %s compiler %s\n",ntruprime_decode_857xint32_implementation(),ntruprime_decode_857xint32_compiler()); } randombytes(x,ntruprime_decode_857xint32_ITEMS*ntruprime_decode_857xint32_ITEMBYTES); randombytes(s,ntruprime_decode_857xint32_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_857xint32",impl,ntruprime_decode_857xint32_ITEMS*ntruprime_decode_857xint32_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_953x3(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953x3")) return; void *xstorage = callocplus(ntruprime_decode_953x3_ITEMS*ntruprime_decode_953x3_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_953x3_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_953x3();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_953x3_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953x3(impl); printf("decode_953x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953x3_implementation(impl),ntruprime_dispatch_decode_953x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_953x3; printf("decode_953x3 selected implementation %s compiler %s\n",ntruprime_decode_953x3_implementation(),ntruprime_decode_953x3_compiler()); } randombytes(x,ntruprime_decode_953x3_ITEMS*ntruprime_decode_953x3_ITEMBYTES); randombytes(s,ntruprime_decode_953x3_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_953x3",impl,ntruprime_decode_953x3_ITEMS*ntruprime_decode_953x3_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_953x2115(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953x2115")) return; void *xstorage = callocplus(ntruprime_decode_953x2115_ITEMS*ntruprime_decode_953x2115_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_953x2115_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_953x2115();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_953x2115_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953x2115(impl); printf("decode_953x2115 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953x2115_implementation(impl),ntruprime_dispatch_decode_953x2115_compiler(impl)); } else { crypto_decode = ntruprime_decode_953x2115; printf("decode_953x2115 selected implementation %s compiler %s\n",ntruprime_decode_953x2115_implementation(),ntruprime_decode_953x2115_compiler()); } randombytes(x,ntruprime_decode_953x2115_ITEMS*ntruprime_decode_953x2115_ITEMBYTES); randombytes(s,ntruprime_decode_953x2115_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_953x2115",impl,ntruprime_decode_953x2115_ITEMS*ntruprime_decode_953x2115_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_953x6343(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953x6343")) return; void *xstorage = callocplus(ntruprime_decode_953x6343_ITEMS*ntruprime_decode_953x6343_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_953x6343_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_953x6343();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_953x6343_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953x6343(impl); printf("decode_953x6343 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953x6343_implementation(impl),ntruprime_dispatch_decode_953x6343_compiler(impl)); } else { crypto_decode = ntruprime_decode_953x6343; printf("decode_953x6343 selected implementation %s compiler %s\n",ntruprime_decode_953x6343_implementation(),ntruprime_decode_953x6343_compiler()); } randombytes(x,ntruprime_decode_953x6343_ITEMS*ntruprime_decode_953x6343_ITEMBYTES); randombytes(s,ntruprime_decode_953x6343_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_953x6343",impl,ntruprime_decode_953x6343_ITEMS*ntruprime_decode_953x6343_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_953xint16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953xint16")) return; void *xstorage = callocplus(ntruprime_decode_953xint16_ITEMS*ntruprime_decode_953xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_953xint16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_953xint16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_953xint16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953xint16(impl); printf("decode_953xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953xint16_implementation(impl),ntruprime_dispatch_decode_953xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_953xint16; printf("decode_953xint16 selected implementation %s compiler %s\n",ntruprime_decode_953xint16_implementation(),ntruprime_decode_953xint16_compiler()); } randombytes(x,ntruprime_decode_953xint16_ITEMS*ntruprime_decode_953xint16_ITEMBYTES); randombytes(s,ntruprime_decode_953xint16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_953xint16",impl,ntruprime_decode_953xint16_ITEMS*ntruprime_decode_953xint16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_953xint32(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953xint32")) return; void *xstorage = callocplus(ntruprime_decode_953xint32_ITEMS*ntruprime_decode_953xint32_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_953xint32_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_953xint32();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_953xint32_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953xint32(impl); printf("decode_953xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953xint32_implementation(impl),ntruprime_dispatch_decode_953xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_953xint32; printf("decode_953xint32 selected implementation %s compiler %s\n",ntruprime_decode_953xint32_implementation(),ntruprime_decode_953xint32_compiler()); } randombytes(x,ntruprime_decode_953xint32_ITEMS*ntruprime_decode_953xint32_ITEMBYTES); randombytes(s,ntruprime_decode_953xint32_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_953xint32",impl,ntruprime_decode_953xint32_ITEMS*ntruprime_decode_953xint32_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1013x3(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013x3")) return; void *xstorage = callocplus(ntruprime_decode_1013x3_ITEMS*ntruprime_decode_1013x3_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1013x3_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013x3();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1013x3_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013x3(impl); printf("decode_1013x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013x3_implementation(impl),ntruprime_dispatch_decode_1013x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013x3; printf("decode_1013x3 selected implementation %s compiler %s\n",ntruprime_decode_1013x3_implementation(),ntruprime_decode_1013x3_compiler()); } randombytes(x,ntruprime_decode_1013x3_ITEMS*ntruprime_decode_1013x3_ITEMBYTES); randombytes(s,ntruprime_decode_1013x3_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1013x3",impl,ntruprime_decode_1013x3_ITEMS*ntruprime_decode_1013x3_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1013x2393(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013x2393")) return; void *xstorage = callocplus(ntruprime_decode_1013x2393_ITEMS*ntruprime_decode_1013x2393_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1013x2393_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013x2393();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1013x2393_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013x2393(impl); printf("decode_1013x2393 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013x2393_implementation(impl),ntruprime_dispatch_decode_1013x2393_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013x2393; printf("decode_1013x2393 selected implementation %s compiler %s\n",ntruprime_decode_1013x2393_implementation(),ntruprime_decode_1013x2393_compiler()); } randombytes(x,ntruprime_decode_1013x2393_ITEMS*ntruprime_decode_1013x2393_ITEMBYTES); randombytes(s,ntruprime_decode_1013x2393_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1013x2393",impl,ntruprime_decode_1013x2393_ITEMS*ntruprime_decode_1013x2393_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1013x7177(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013x7177")) return; void *xstorage = callocplus(ntruprime_decode_1013x7177_ITEMS*ntruprime_decode_1013x7177_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1013x7177_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013x7177();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1013x7177_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013x7177(impl); printf("decode_1013x7177 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013x7177_implementation(impl),ntruprime_dispatch_decode_1013x7177_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013x7177; printf("decode_1013x7177 selected implementation %s compiler %s\n",ntruprime_decode_1013x7177_implementation(),ntruprime_decode_1013x7177_compiler()); } randombytes(x,ntruprime_decode_1013x7177_ITEMS*ntruprime_decode_1013x7177_ITEMBYTES); randombytes(s,ntruprime_decode_1013x7177_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1013x7177",impl,ntruprime_decode_1013x7177_ITEMS*ntruprime_decode_1013x7177_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1013xint16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013xint16")) return; void *xstorage = callocplus(ntruprime_decode_1013xint16_ITEMS*ntruprime_decode_1013xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1013xint16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013xint16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1013xint16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013xint16(impl); printf("decode_1013xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013xint16_implementation(impl),ntruprime_dispatch_decode_1013xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013xint16; printf("decode_1013xint16 selected implementation %s compiler %s\n",ntruprime_decode_1013xint16_implementation(),ntruprime_decode_1013xint16_compiler()); } randombytes(x,ntruprime_decode_1013xint16_ITEMS*ntruprime_decode_1013xint16_ITEMBYTES); randombytes(s,ntruprime_decode_1013xint16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1013xint16",impl,ntruprime_decode_1013xint16_ITEMS*ntruprime_decode_1013xint16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1013xint32(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013xint32")) return; void *xstorage = callocplus(ntruprime_decode_1013xint32_ITEMS*ntruprime_decode_1013xint32_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1013xint32_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013xint32();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1013xint32_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013xint32(impl); printf("decode_1013xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013xint32_implementation(impl),ntruprime_dispatch_decode_1013xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013xint32; printf("decode_1013xint32 selected implementation %s compiler %s\n",ntruprime_decode_1013xint32_implementation(),ntruprime_decode_1013xint32_compiler()); } randombytes(x,ntruprime_decode_1013xint32_ITEMS*ntruprime_decode_1013xint32_ITEMBYTES); randombytes(s,ntruprime_decode_1013xint32_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1013xint32",impl,ntruprime_decode_1013xint32_ITEMS*ntruprime_decode_1013xint32_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1277x3(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277x3")) return; void *xstorage = callocplus(ntruprime_decode_1277x3_ITEMS*ntruprime_decode_1277x3_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1277x3_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277x3();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1277x3_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277x3(impl); printf("decode_1277x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277x3_implementation(impl),ntruprime_dispatch_decode_1277x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277x3; printf("decode_1277x3 selected implementation %s compiler %s\n",ntruprime_decode_1277x3_implementation(),ntruprime_decode_1277x3_compiler()); } randombytes(x,ntruprime_decode_1277x3_ITEMS*ntruprime_decode_1277x3_ITEMBYTES); randombytes(s,ntruprime_decode_1277x3_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1277x3",impl,ntruprime_decode_1277x3_ITEMS*ntruprime_decode_1277x3_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1277x2627(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277x2627")) return; void *xstorage = callocplus(ntruprime_decode_1277x2627_ITEMS*ntruprime_decode_1277x2627_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1277x2627_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277x2627();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1277x2627_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277x2627(impl); printf("decode_1277x2627 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277x2627_implementation(impl),ntruprime_dispatch_decode_1277x2627_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277x2627; printf("decode_1277x2627 selected implementation %s compiler %s\n",ntruprime_decode_1277x2627_implementation(),ntruprime_decode_1277x2627_compiler()); } randombytes(x,ntruprime_decode_1277x2627_ITEMS*ntruprime_decode_1277x2627_ITEMBYTES); randombytes(s,ntruprime_decode_1277x2627_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1277x2627",impl,ntruprime_decode_1277x2627_ITEMS*ntruprime_decode_1277x2627_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1277x7879(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277x7879")) return; void *xstorage = callocplus(ntruprime_decode_1277x7879_ITEMS*ntruprime_decode_1277x7879_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1277x7879_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277x7879();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1277x7879_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277x7879(impl); printf("decode_1277x7879 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277x7879_implementation(impl),ntruprime_dispatch_decode_1277x7879_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277x7879; printf("decode_1277x7879 selected implementation %s compiler %s\n",ntruprime_decode_1277x7879_implementation(),ntruprime_decode_1277x7879_compiler()); } randombytes(x,ntruprime_decode_1277x7879_ITEMS*ntruprime_decode_1277x7879_ITEMBYTES); randombytes(s,ntruprime_decode_1277x7879_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1277x7879",impl,ntruprime_decode_1277x7879_ITEMS*ntruprime_decode_1277x7879_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1277xint16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277xint16")) return; void *xstorage = callocplus(ntruprime_decode_1277xint16_ITEMS*ntruprime_decode_1277xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1277xint16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277xint16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1277xint16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277xint16(impl); printf("decode_1277xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277xint16_implementation(impl),ntruprime_dispatch_decode_1277xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277xint16; printf("decode_1277xint16 selected implementation %s compiler %s\n",ntruprime_decode_1277xint16_implementation(),ntruprime_decode_1277xint16_compiler()); } randombytes(x,ntruprime_decode_1277xint16_ITEMS*ntruprime_decode_1277xint16_ITEMBYTES); randombytes(s,ntruprime_decode_1277xint16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1277xint16",impl,ntruprime_decode_1277xint16_ITEMS*ntruprime_decode_1277xint16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_1277xint32(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277xint32")) return; void *xstorage = callocplus(ntruprime_decode_1277xint32_ITEMS*ntruprime_decode_1277xint32_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_1277xint32_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277xint32();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_1277xint32_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277xint32(impl); printf("decode_1277xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277xint32_implementation(impl),ntruprime_dispatch_decode_1277xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277xint32; printf("decode_1277xint32 selected implementation %s compiler %s\n",ntruprime_decode_1277xint32_implementation(),ntruprime_decode_1277xint32_compiler()); } randombytes(x,ntruprime_decode_1277xint32_ITEMS*ntruprime_decode_1277xint32_ITEMBYTES); randombytes(s,ntruprime_decode_1277xint32_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_1277xint32",impl,ntruprime_decode_1277xint32_ITEMS*ntruprime_decode_1277xint32_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_decode_int16(void) { if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"int16")) return; void *xstorage = callocplus(ntruprime_decode_int16_ITEMS*ntruprime_decode_int16_ITEMBYTES); unsigned char *x = aligned(xstorage); void *sstorage = callocplus(ntruprime_decode_int16_STRBYTES); unsigned char *s = aligned(sstorage); for (long long impl = -1;impl < ntruprime_numimpl_decode_int16();++impl) { void (*crypto_decode)(void *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_decode_int16_implementation(impl))) continue; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_int16(impl); printf("decode_int16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_int16_implementation(impl),ntruprime_dispatch_decode_int16_compiler(impl)); } else { crypto_decode = ntruprime_decode_int16; printf("decode_int16 selected implementation %s compiler %s\n",ntruprime_decode_int16_implementation(),ntruprime_decode_int16_compiler()); } randombytes(x,ntruprime_decode_int16_ITEMS*ntruprime_decode_int16_ITEMBYTES); randombytes(s,ntruprime_decode_int16_STRBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_decode(x,s); } t_print("decode_int16",impl,ntruprime_decode_int16_ITEMS*ntruprime_decode_int16_ITEMBYTES); } free(sstorage); free(xstorage); } static void measure_encode_653x3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x3")) return; void *sstorage = callocplus(ntruprime_encode_653x3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_653x3_ITEMS*ntruprime_encode_653x3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_653x3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x3(impl); printf("encode_653x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x3_implementation(impl),ntruprime_dispatch_encode_653x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x3; printf("encode_653x3 selected implementation %s compiler %s\n",ntruprime_encode_653x3_implementation(),ntruprime_encode_653x3_compiler()); } randombytes(s,ntruprime_encode_653x3_STRBYTES); randombytes(x,ntruprime_encode_653x3_ITEMS*ntruprime_encode_653x3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_653x3",impl,ntruprime_encode_653x3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_653x1541(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x1541")) return; void *sstorage = callocplus(ntruprime_encode_653x1541_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_653x1541_ITEMS*ntruprime_encode_653x1541_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x1541();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_653x1541_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x1541(impl); printf("encode_653x1541 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x1541_implementation(impl),ntruprime_dispatch_encode_653x1541_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x1541; printf("encode_653x1541 selected implementation %s compiler %s\n",ntruprime_encode_653x1541_implementation(),ntruprime_encode_653x1541_compiler()); } randombytes(s,ntruprime_encode_653x1541_STRBYTES); randombytes(x,ntruprime_encode_653x1541_ITEMS*ntruprime_encode_653x1541_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_653x1541",impl,ntruprime_encode_653x1541_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_653x1541round(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x1541round")) return; void *sstorage = callocplus(ntruprime_encode_653x1541round_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_653x1541round_ITEMS*ntruprime_encode_653x1541round_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x1541round();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_653x1541round_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x1541round(impl); printf("encode_653x1541round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x1541round_implementation(impl),ntruprime_dispatch_encode_653x1541round_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x1541round; printf("encode_653x1541round selected implementation %s compiler %s\n",ntruprime_encode_653x1541round_implementation(),ntruprime_encode_653x1541round_compiler()); } randombytes(s,ntruprime_encode_653x1541round_STRBYTES); randombytes(x,ntruprime_encode_653x1541round_ITEMS*ntruprime_encode_653x1541round_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_653x1541round",impl,ntruprime_encode_653x1541round_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_653x4621(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x4621")) return; void *sstorage = callocplus(ntruprime_encode_653x4621_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_653x4621_ITEMS*ntruprime_encode_653x4621_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x4621();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_653x4621_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x4621(impl); printf("encode_653x4621 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x4621_implementation(impl),ntruprime_dispatch_encode_653x4621_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x4621; printf("encode_653x4621 selected implementation %s compiler %s\n",ntruprime_encode_653x4621_implementation(),ntruprime_encode_653x4621_compiler()); } randombytes(s,ntruprime_encode_653x4621_STRBYTES); randombytes(x,ntruprime_encode_653x4621_ITEMS*ntruprime_encode_653x4621_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_653x4621",impl,ntruprime_encode_653x4621_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_653xfreeze3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653xfreeze3")) return; void *sstorage = callocplus(ntruprime_encode_653xfreeze3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_653xfreeze3_ITEMS*ntruprime_encode_653xfreeze3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_653xfreeze3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_653xfreeze3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653xfreeze3(impl); printf("encode_653xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653xfreeze3_implementation(impl),ntruprime_dispatch_encode_653xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_653xfreeze3; printf("encode_653xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_653xfreeze3_implementation(),ntruprime_encode_653xfreeze3_compiler()); } randombytes(s,ntruprime_encode_653xfreeze3_STRBYTES); randombytes(x,ntruprime_encode_653xfreeze3_ITEMS*ntruprime_encode_653xfreeze3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_653xfreeze3",impl,ntruprime_encode_653xfreeze3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_653xint16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653xint16")) return; void *sstorage = callocplus(ntruprime_encode_653xint16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_653xint16_ITEMS*ntruprime_encode_653xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_653xint16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_653xint16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653xint16(impl); printf("encode_653xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653xint16_implementation(impl),ntruprime_dispatch_encode_653xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_653xint16; printf("encode_653xint16 selected implementation %s compiler %s\n",ntruprime_encode_653xint16_implementation(),ntruprime_encode_653xint16_compiler()); } randombytes(s,ntruprime_encode_653xint16_STRBYTES); randombytes(x,ntruprime_encode_653xint16_ITEMS*ntruprime_encode_653xint16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_653xint16",impl,ntruprime_encode_653xint16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_761x3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x3")) return; void *sstorage = callocplus(ntruprime_encode_761x3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_761x3_ITEMS*ntruprime_encode_761x3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_761x3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x3(impl); printf("encode_761x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x3_implementation(impl),ntruprime_dispatch_encode_761x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x3; printf("encode_761x3 selected implementation %s compiler %s\n",ntruprime_encode_761x3_implementation(),ntruprime_encode_761x3_compiler()); } randombytes(s,ntruprime_encode_761x3_STRBYTES); randombytes(x,ntruprime_encode_761x3_ITEMS*ntruprime_encode_761x3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_761x3",impl,ntruprime_encode_761x3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_761x1531(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x1531")) return; void *sstorage = callocplus(ntruprime_encode_761x1531_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_761x1531_ITEMS*ntruprime_encode_761x1531_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x1531();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_761x1531_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x1531(impl); printf("encode_761x1531 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x1531_implementation(impl),ntruprime_dispatch_encode_761x1531_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x1531; printf("encode_761x1531 selected implementation %s compiler %s\n",ntruprime_encode_761x1531_implementation(),ntruprime_encode_761x1531_compiler()); } randombytes(s,ntruprime_encode_761x1531_STRBYTES); randombytes(x,ntruprime_encode_761x1531_ITEMS*ntruprime_encode_761x1531_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_761x1531",impl,ntruprime_encode_761x1531_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_761x1531round(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x1531round")) return; void *sstorage = callocplus(ntruprime_encode_761x1531round_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_761x1531round_ITEMS*ntruprime_encode_761x1531round_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x1531round();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_761x1531round_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x1531round(impl); printf("encode_761x1531round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x1531round_implementation(impl),ntruprime_dispatch_encode_761x1531round_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x1531round; printf("encode_761x1531round selected implementation %s compiler %s\n",ntruprime_encode_761x1531round_implementation(),ntruprime_encode_761x1531round_compiler()); } randombytes(s,ntruprime_encode_761x1531round_STRBYTES); randombytes(x,ntruprime_encode_761x1531round_ITEMS*ntruprime_encode_761x1531round_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_761x1531round",impl,ntruprime_encode_761x1531round_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_761x4591(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x4591")) return; void *sstorage = callocplus(ntruprime_encode_761x4591_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_761x4591_ITEMS*ntruprime_encode_761x4591_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x4591();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_761x4591_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x4591(impl); printf("encode_761x4591 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x4591_implementation(impl),ntruprime_dispatch_encode_761x4591_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x4591; printf("encode_761x4591 selected implementation %s compiler %s\n",ntruprime_encode_761x4591_implementation(),ntruprime_encode_761x4591_compiler()); } randombytes(s,ntruprime_encode_761x4591_STRBYTES); randombytes(x,ntruprime_encode_761x4591_ITEMS*ntruprime_encode_761x4591_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_761x4591",impl,ntruprime_encode_761x4591_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_761xfreeze3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761xfreeze3")) return; void *sstorage = callocplus(ntruprime_encode_761xfreeze3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_761xfreeze3_ITEMS*ntruprime_encode_761xfreeze3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_761xfreeze3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_761xfreeze3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761xfreeze3(impl); printf("encode_761xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761xfreeze3_implementation(impl),ntruprime_dispatch_encode_761xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_761xfreeze3; printf("encode_761xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_761xfreeze3_implementation(),ntruprime_encode_761xfreeze3_compiler()); } randombytes(s,ntruprime_encode_761xfreeze3_STRBYTES); randombytes(x,ntruprime_encode_761xfreeze3_ITEMS*ntruprime_encode_761xfreeze3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_761xfreeze3",impl,ntruprime_encode_761xfreeze3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_761xint16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761xint16")) return; void *sstorage = callocplus(ntruprime_encode_761xint16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_761xint16_ITEMS*ntruprime_encode_761xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_761xint16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_761xint16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761xint16(impl); printf("encode_761xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761xint16_implementation(impl),ntruprime_dispatch_encode_761xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_761xint16; printf("encode_761xint16 selected implementation %s compiler %s\n",ntruprime_encode_761xint16_implementation(),ntruprime_encode_761xint16_compiler()); } randombytes(s,ntruprime_encode_761xint16_STRBYTES); randombytes(x,ntruprime_encode_761xint16_ITEMS*ntruprime_encode_761xint16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_761xint16",impl,ntruprime_encode_761xint16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_857x3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x3")) return; void *sstorage = callocplus(ntruprime_encode_857x3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_857x3_ITEMS*ntruprime_encode_857x3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_857x3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x3(impl); printf("encode_857x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x3_implementation(impl),ntruprime_dispatch_encode_857x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x3; printf("encode_857x3 selected implementation %s compiler %s\n",ntruprime_encode_857x3_implementation(),ntruprime_encode_857x3_compiler()); } randombytes(s,ntruprime_encode_857x3_STRBYTES); randombytes(x,ntruprime_encode_857x3_ITEMS*ntruprime_encode_857x3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_857x3",impl,ntruprime_encode_857x3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_857x1723(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x1723")) return; void *sstorage = callocplus(ntruprime_encode_857x1723_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_857x1723_ITEMS*ntruprime_encode_857x1723_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x1723();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_857x1723_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x1723(impl); printf("encode_857x1723 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x1723_implementation(impl),ntruprime_dispatch_encode_857x1723_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x1723; printf("encode_857x1723 selected implementation %s compiler %s\n",ntruprime_encode_857x1723_implementation(),ntruprime_encode_857x1723_compiler()); } randombytes(s,ntruprime_encode_857x1723_STRBYTES); randombytes(x,ntruprime_encode_857x1723_ITEMS*ntruprime_encode_857x1723_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_857x1723",impl,ntruprime_encode_857x1723_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_857x1723round(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x1723round")) return; void *sstorage = callocplus(ntruprime_encode_857x1723round_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_857x1723round_ITEMS*ntruprime_encode_857x1723round_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x1723round();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_857x1723round_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x1723round(impl); printf("encode_857x1723round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x1723round_implementation(impl),ntruprime_dispatch_encode_857x1723round_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x1723round; printf("encode_857x1723round selected implementation %s compiler %s\n",ntruprime_encode_857x1723round_implementation(),ntruprime_encode_857x1723round_compiler()); } randombytes(s,ntruprime_encode_857x1723round_STRBYTES); randombytes(x,ntruprime_encode_857x1723round_ITEMS*ntruprime_encode_857x1723round_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_857x1723round",impl,ntruprime_encode_857x1723round_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_857x5167(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x5167")) return; void *sstorage = callocplus(ntruprime_encode_857x5167_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_857x5167_ITEMS*ntruprime_encode_857x5167_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x5167();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_857x5167_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x5167(impl); printf("encode_857x5167 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x5167_implementation(impl),ntruprime_dispatch_encode_857x5167_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x5167; printf("encode_857x5167 selected implementation %s compiler %s\n",ntruprime_encode_857x5167_implementation(),ntruprime_encode_857x5167_compiler()); } randombytes(s,ntruprime_encode_857x5167_STRBYTES); randombytes(x,ntruprime_encode_857x5167_ITEMS*ntruprime_encode_857x5167_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_857x5167",impl,ntruprime_encode_857x5167_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_857xfreeze3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857xfreeze3")) return; void *sstorage = callocplus(ntruprime_encode_857xfreeze3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_857xfreeze3_ITEMS*ntruprime_encode_857xfreeze3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_857xfreeze3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_857xfreeze3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857xfreeze3(impl); printf("encode_857xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857xfreeze3_implementation(impl),ntruprime_dispatch_encode_857xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_857xfreeze3; printf("encode_857xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_857xfreeze3_implementation(),ntruprime_encode_857xfreeze3_compiler()); } randombytes(s,ntruprime_encode_857xfreeze3_STRBYTES); randombytes(x,ntruprime_encode_857xfreeze3_ITEMS*ntruprime_encode_857xfreeze3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_857xfreeze3",impl,ntruprime_encode_857xfreeze3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_857xint16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857xint16")) return; void *sstorage = callocplus(ntruprime_encode_857xint16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_857xint16_ITEMS*ntruprime_encode_857xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_857xint16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_857xint16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857xint16(impl); printf("encode_857xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857xint16_implementation(impl),ntruprime_dispatch_encode_857xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_857xint16; printf("encode_857xint16 selected implementation %s compiler %s\n",ntruprime_encode_857xint16_implementation(),ntruprime_encode_857xint16_compiler()); } randombytes(s,ntruprime_encode_857xint16_STRBYTES); randombytes(x,ntruprime_encode_857xint16_ITEMS*ntruprime_encode_857xint16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_857xint16",impl,ntruprime_encode_857xint16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_953x3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x3")) return; void *sstorage = callocplus(ntruprime_encode_953x3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_953x3_ITEMS*ntruprime_encode_953x3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_953x3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x3(impl); printf("encode_953x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x3_implementation(impl),ntruprime_dispatch_encode_953x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x3; printf("encode_953x3 selected implementation %s compiler %s\n",ntruprime_encode_953x3_implementation(),ntruprime_encode_953x3_compiler()); } randombytes(s,ntruprime_encode_953x3_STRBYTES); randombytes(x,ntruprime_encode_953x3_ITEMS*ntruprime_encode_953x3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_953x3",impl,ntruprime_encode_953x3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_953x2115(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x2115")) return; void *sstorage = callocplus(ntruprime_encode_953x2115_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_953x2115_ITEMS*ntruprime_encode_953x2115_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x2115();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_953x2115_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x2115(impl); printf("encode_953x2115 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x2115_implementation(impl),ntruprime_dispatch_encode_953x2115_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x2115; printf("encode_953x2115 selected implementation %s compiler %s\n",ntruprime_encode_953x2115_implementation(),ntruprime_encode_953x2115_compiler()); } randombytes(s,ntruprime_encode_953x2115_STRBYTES); randombytes(x,ntruprime_encode_953x2115_ITEMS*ntruprime_encode_953x2115_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_953x2115",impl,ntruprime_encode_953x2115_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_953x2115round(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x2115round")) return; void *sstorage = callocplus(ntruprime_encode_953x2115round_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_953x2115round_ITEMS*ntruprime_encode_953x2115round_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x2115round();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_953x2115round_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x2115round(impl); printf("encode_953x2115round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x2115round_implementation(impl),ntruprime_dispatch_encode_953x2115round_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x2115round; printf("encode_953x2115round selected implementation %s compiler %s\n",ntruprime_encode_953x2115round_implementation(),ntruprime_encode_953x2115round_compiler()); } randombytes(s,ntruprime_encode_953x2115round_STRBYTES); randombytes(x,ntruprime_encode_953x2115round_ITEMS*ntruprime_encode_953x2115round_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_953x2115round",impl,ntruprime_encode_953x2115round_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_953x6343(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x6343")) return; void *sstorage = callocplus(ntruprime_encode_953x6343_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_953x6343_ITEMS*ntruprime_encode_953x6343_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x6343();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_953x6343_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x6343(impl); printf("encode_953x6343 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x6343_implementation(impl),ntruprime_dispatch_encode_953x6343_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x6343; printf("encode_953x6343 selected implementation %s compiler %s\n",ntruprime_encode_953x6343_implementation(),ntruprime_encode_953x6343_compiler()); } randombytes(s,ntruprime_encode_953x6343_STRBYTES); randombytes(x,ntruprime_encode_953x6343_ITEMS*ntruprime_encode_953x6343_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_953x6343",impl,ntruprime_encode_953x6343_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_953xfreeze3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953xfreeze3")) return; void *sstorage = callocplus(ntruprime_encode_953xfreeze3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_953xfreeze3_ITEMS*ntruprime_encode_953xfreeze3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_953xfreeze3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_953xfreeze3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953xfreeze3(impl); printf("encode_953xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953xfreeze3_implementation(impl),ntruprime_dispatch_encode_953xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_953xfreeze3; printf("encode_953xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_953xfreeze3_implementation(),ntruprime_encode_953xfreeze3_compiler()); } randombytes(s,ntruprime_encode_953xfreeze3_STRBYTES); randombytes(x,ntruprime_encode_953xfreeze3_ITEMS*ntruprime_encode_953xfreeze3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_953xfreeze3",impl,ntruprime_encode_953xfreeze3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_953xint16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953xint16")) return; void *sstorage = callocplus(ntruprime_encode_953xint16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_953xint16_ITEMS*ntruprime_encode_953xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_953xint16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_953xint16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953xint16(impl); printf("encode_953xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953xint16_implementation(impl),ntruprime_dispatch_encode_953xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_953xint16; printf("encode_953xint16 selected implementation %s compiler %s\n",ntruprime_encode_953xint16_implementation(),ntruprime_encode_953xint16_compiler()); } randombytes(s,ntruprime_encode_953xint16_STRBYTES); randombytes(x,ntruprime_encode_953xint16_ITEMS*ntruprime_encode_953xint16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_953xint16",impl,ntruprime_encode_953xint16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1013x3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x3")) return; void *sstorage = callocplus(ntruprime_encode_1013x3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1013x3_ITEMS*ntruprime_encode_1013x3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1013x3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x3(impl); printf("encode_1013x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x3_implementation(impl),ntruprime_dispatch_encode_1013x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x3; printf("encode_1013x3 selected implementation %s compiler %s\n",ntruprime_encode_1013x3_implementation(),ntruprime_encode_1013x3_compiler()); } randombytes(s,ntruprime_encode_1013x3_STRBYTES); randombytes(x,ntruprime_encode_1013x3_ITEMS*ntruprime_encode_1013x3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1013x3",impl,ntruprime_encode_1013x3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1013x2393(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x2393")) return; void *sstorage = callocplus(ntruprime_encode_1013x2393_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1013x2393_ITEMS*ntruprime_encode_1013x2393_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x2393();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1013x2393_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x2393(impl); printf("encode_1013x2393 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x2393_implementation(impl),ntruprime_dispatch_encode_1013x2393_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x2393; printf("encode_1013x2393 selected implementation %s compiler %s\n",ntruprime_encode_1013x2393_implementation(),ntruprime_encode_1013x2393_compiler()); } randombytes(s,ntruprime_encode_1013x2393_STRBYTES); randombytes(x,ntruprime_encode_1013x2393_ITEMS*ntruprime_encode_1013x2393_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1013x2393",impl,ntruprime_encode_1013x2393_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1013x2393round(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x2393round")) return; void *sstorage = callocplus(ntruprime_encode_1013x2393round_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1013x2393round_ITEMS*ntruprime_encode_1013x2393round_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x2393round();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1013x2393round_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x2393round(impl); printf("encode_1013x2393round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x2393round_implementation(impl),ntruprime_dispatch_encode_1013x2393round_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x2393round; printf("encode_1013x2393round selected implementation %s compiler %s\n",ntruprime_encode_1013x2393round_implementation(),ntruprime_encode_1013x2393round_compiler()); } randombytes(s,ntruprime_encode_1013x2393round_STRBYTES); randombytes(x,ntruprime_encode_1013x2393round_ITEMS*ntruprime_encode_1013x2393round_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1013x2393round",impl,ntruprime_encode_1013x2393round_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1013x7177(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x7177")) return; void *sstorage = callocplus(ntruprime_encode_1013x7177_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1013x7177_ITEMS*ntruprime_encode_1013x7177_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x7177();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1013x7177_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x7177(impl); printf("encode_1013x7177 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x7177_implementation(impl),ntruprime_dispatch_encode_1013x7177_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x7177; printf("encode_1013x7177 selected implementation %s compiler %s\n",ntruprime_encode_1013x7177_implementation(),ntruprime_encode_1013x7177_compiler()); } randombytes(s,ntruprime_encode_1013x7177_STRBYTES); randombytes(x,ntruprime_encode_1013x7177_ITEMS*ntruprime_encode_1013x7177_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1013x7177",impl,ntruprime_encode_1013x7177_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1013xfreeze3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013xfreeze3")) return; void *sstorage = callocplus(ntruprime_encode_1013xfreeze3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1013xfreeze3_ITEMS*ntruprime_encode_1013xfreeze3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013xfreeze3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1013xfreeze3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013xfreeze3(impl); printf("encode_1013xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013xfreeze3_implementation(impl),ntruprime_dispatch_encode_1013xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013xfreeze3; printf("encode_1013xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_1013xfreeze3_implementation(),ntruprime_encode_1013xfreeze3_compiler()); } randombytes(s,ntruprime_encode_1013xfreeze3_STRBYTES); randombytes(x,ntruprime_encode_1013xfreeze3_ITEMS*ntruprime_encode_1013xfreeze3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1013xfreeze3",impl,ntruprime_encode_1013xfreeze3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1013xint16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013xint16")) return; void *sstorage = callocplus(ntruprime_encode_1013xint16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1013xint16_ITEMS*ntruprime_encode_1013xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013xint16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1013xint16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013xint16(impl); printf("encode_1013xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013xint16_implementation(impl),ntruprime_dispatch_encode_1013xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013xint16; printf("encode_1013xint16 selected implementation %s compiler %s\n",ntruprime_encode_1013xint16_implementation(),ntruprime_encode_1013xint16_compiler()); } randombytes(s,ntruprime_encode_1013xint16_STRBYTES); randombytes(x,ntruprime_encode_1013xint16_ITEMS*ntruprime_encode_1013xint16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1013xint16",impl,ntruprime_encode_1013xint16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1277x3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x3")) return; void *sstorage = callocplus(ntruprime_encode_1277x3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1277x3_ITEMS*ntruprime_encode_1277x3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1277x3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x3(impl); printf("encode_1277x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x3_implementation(impl),ntruprime_dispatch_encode_1277x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x3; printf("encode_1277x3 selected implementation %s compiler %s\n",ntruprime_encode_1277x3_implementation(),ntruprime_encode_1277x3_compiler()); } randombytes(s,ntruprime_encode_1277x3_STRBYTES); randombytes(x,ntruprime_encode_1277x3_ITEMS*ntruprime_encode_1277x3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1277x3",impl,ntruprime_encode_1277x3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1277x2627(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x2627")) return; void *sstorage = callocplus(ntruprime_encode_1277x2627_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1277x2627_ITEMS*ntruprime_encode_1277x2627_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x2627();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1277x2627_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x2627(impl); printf("encode_1277x2627 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x2627_implementation(impl),ntruprime_dispatch_encode_1277x2627_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x2627; printf("encode_1277x2627 selected implementation %s compiler %s\n",ntruprime_encode_1277x2627_implementation(),ntruprime_encode_1277x2627_compiler()); } randombytes(s,ntruprime_encode_1277x2627_STRBYTES); randombytes(x,ntruprime_encode_1277x2627_ITEMS*ntruprime_encode_1277x2627_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1277x2627",impl,ntruprime_encode_1277x2627_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1277x2627round(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x2627round")) return; void *sstorage = callocplus(ntruprime_encode_1277x2627round_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1277x2627round_ITEMS*ntruprime_encode_1277x2627round_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x2627round();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1277x2627round_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x2627round(impl); printf("encode_1277x2627round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x2627round_implementation(impl),ntruprime_dispatch_encode_1277x2627round_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x2627round; printf("encode_1277x2627round selected implementation %s compiler %s\n",ntruprime_encode_1277x2627round_implementation(),ntruprime_encode_1277x2627round_compiler()); } randombytes(s,ntruprime_encode_1277x2627round_STRBYTES); randombytes(x,ntruprime_encode_1277x2627round_ITEMS*ntruprime_encode_1277x2627round_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1277x2627round",impl,ntruprime_encode_1277x2627round_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1277x7879(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x7879")) return; void *sstorage = callocplus(ntruprime_encode_1277x7879_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1277x7879_ITEMS*ntruprime_encode_1277x7879_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x7879();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1277x7879_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x7879(impl); printf("encode_1277x7879 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x7879_implementation(impl),ntruprime_dispatch_encode_1277x7879_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x7879; printf("encode_1277x7879 selected implementation %s compiler %s\n",ntruprime_encode_1277x7879_implementation(),ntruprime_encode_1277x7879_compiler()); } randombytes(s,ntruprime_encode_1277x7879_STRBYTES); randombytes(x,ntruprime_encode_1277x7879_ITEMS*ntruprime_encode_1277x7879_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1277x7879",impl,ntruprime_encode_1277x7879_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1277xfreeze3(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277xfreeze3")) return; void *sstorage = callocplus(ntruprime_encode_1277xfreeze3_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1277xfreeze3_ITEMS*ntruprime_encode_1277xfreeze3_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277xfreeze3();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1277xfreeze3_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277xfreeze3(impl); printf("encode_1277xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277xfreeze3_implementation(impl),ntruprime_dispatch_encode_1277xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277xfreeze3; printf("encode_1277xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_1277xfreeze3_implementation(),ntruprime_encode_1277xfreeze3_compiler()); } randombytes(s,ntruprime_encode_1277xfreeze3_STRBYTES); randombytes(x,ntruprime_encode_1277xfreeze3_ITEMS*ntruprime_encode_1277xfreeze3_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1277xfreeze3",impl,ntruprime_encode_1277xfreeze3_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_1277xint16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277xint16")) return; void *sstorage = callocplus(ntruprime_encode_1277xint16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_1277xint16_ITEMS*ntruprime_encode_1277xint16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277xint16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_1277xint16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277xint16(impl); printf("encode_1277xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277xint16_implementation(impl),ntruprime_dispatch_encode_1277xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277xint16; printf("encode_1277xint16 selected implementation %s compiler %s\n",ntruprime_encode_1277xint16_implementation(),ntruprime_encode_1277xint16_compiler()); } randombytes(s,ntruprime_encode_1277xint16_STRBYTES); randombytes(x,ntruprime_encode_1277xint16_ITEMS*ntruprime_encode_1277xint16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_1277xint16",impl,ntruprime_encode_1277xint16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_encode_int16(void) { if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"int16")) return; void *sstorage = callocplus(ntruprime_encode_int16_STRBYTES); unsigned char *s = aligned(sstorage); void *xstorage = callocplus(ntruprime_encode_int16_ITEMS*ntruprime_encode_int16_ITEMBYTES); unsigned char *x = aligned(xstorage); for (long long impl = -1;impl < ntruprime_numimpl_encode_int16();++impl) { void (*crypto_encode)(unsigned char *,const void *); if (targeti && strcmp(targeti,ntruprime_dispatch_encode_int16_implementation(impl))) continue; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_int16(impl); printf("encode_int16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_int16_implementation(impl),ntruprime_dispatch_encode_int16_compiler(impl)); } else { crypto_encode = ntruprime_encode_int16; printf("encode_int16 selected implementation %s compiler %s\n",ntruprime_encode_int16_implementation(),ntruprime_encode_int16_compiler()); } randombytes(s,ntruprime_encode_int16_STRBYTES); randombytes(x,ntruprime_encode_int16_ITEMS*ntruprime_encode_int16_ITEMBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_encode(s,x); } t_print("encode_int16",impl,ntruprime_encode_int16_STRBYTES); } free(xstorage); free(sstorage); } static void measure_sort_int32(void) { if (targeto && strcmp(targeto,"sort")) return; if (targetp && strcmp(targetp,"int32")) return; void *mstorage = callocplus(MAXTEST_BYTES); unsigned char *m = aligned(mstorage); long long mlen; for (long long impl = -1;impl < ntruprime_numimpl_sort_int32();++impl) { void (*crypto_sort)(void *,long long); if (targeti && strcmp(targeti,ntruprime_dispatch_sort_int32_implementation(impl))) continue; if (impl >= 0) { crypto_sort = ntruprime_dispatch_sort_int32(impl); printf("sort_int32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_sort_int32_implementation(impl),ntruprime_dispatch_sort_int32_compiler(impl)); } else { crypto_sort = ntruprime_sort_int32; printf("sort_int32 selected implementation %s compiler %s\n",ntruprime_sort_int32_implementation(),ntruprime_sort_int32_compiler()); } randombytes(m,MAXTEST_BYTES); mlen = 0; while (ntruprime_sort_int32_BYTES*mlen <= MAXTEST_BYTES) { randombytes(m,ntruprime_sort_int32_BYTES*mlen); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_sort(m,mlen); } t_print("sort_int32",impl,mlen); mlen += 1+mlen/2; } } free(mstorage); } static void measure_sort_uint32(void) { if (targeto && strcmp(targeto,"sort")) return; if (targetp && strcmp(targetp,"uint32")) return; void *mstorage = callocplus(MAXTEST_BYTES); unsigned char *m = aligned(mstorage); long long mlen; for (long long impl = -1;impl < ntruprime_numimpl_sort_uint32();++impl) { void (*crypto_sort)(void *,long long); if (targeti && strcmp(targeti,ntruprime_dispatch_sort_uint32_implementation(impl))) continue; if (impl >= 0) { crypto_sort = ntruprime_dispatch_sort_uint32(impl); printf("sort_uint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_sort_uint32_implementation(impl),ntruprime_dispatch_sort_uint32_compiler(impl)); } else { crypto_sort = ntruprime_sort_uint32; printf("sort_uint32 selected implementation %s compiler %s\n",ntruprime_sort_uint32_implementation(),ntruprime_sort_uint32_compiler()); } randombytes(m,MAXTEST_BYTES); mlen = 0; while (ntruprime_sort_uint32_BYTES*mlen <= MAXTEST_BYTES) { randombytes(m,ntruprime_sort_uint32_BYTES*mlen); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_sort(m,mlen); } t_print("sort_uint32",impl,mlen); mlen += 1+mlen/2; } } free(mstorage); } static void measure_core_inv3sntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup653")) return; void *hstorage = callocplus(ntruprime_core_inv3sntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_inv3sntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_inv3sntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_inv3sntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup653(impl); printf("core_inv3sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup653_implementation(impl),ntruprime_dispatch_core_inv3sntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup653; printf("core_inv3sntrup653 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup653_implementation(),ntruprime_core_inv3sntrup653_compiler()); } randombytes(h,ntruprime_core_inv3sntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_inv3sntrup653_INPUTBYTES); randombytes(k,ntruprime_core_inv3sntrup653_KEYBYTES); randombytes(c,ntruprime_core_inv3sntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_inv3sntrup653",impl,ntruprime_core_inv3sntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_inv3sntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup761")) return; void *hstorage = callocplus(ntruprime_core_inv3sntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_inv3sntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_inv3sntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_inv3sntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup761(impl); printf("core_inv3sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup761_implementation(impl),ntruprime_dispatch_core_inv3sntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup761; printf("core_inv3sntrup761 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup761_implementation(),ntruprime_core_inv3sntrup761_compiler()); } randombytes(h,ntruprime_core_inv3sntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_inv3sntrup761_INPUTBYTES); randombytes(k,ntruprime_core_inv3sntrup761_KEYBYTES); randombytes(c,ntruprime_core_inv3sntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_inv3sntrup761",impl,ntruprime_core_inv3sntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_inv3sntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup857")) return; void *hstorage = callocplus(ntruprime_core_inv3sntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_inv3sntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_inv3sntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_inv3sntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup857(impl); printf("core_inv3sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup857_implementation(impl),ntruprime_dispatch_core_inv3sntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup857; printf("core_inv3sntrup857 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup857_implementation(),ntruprime_core_inv3sntrup857_compiler()); } randombytes(h,ntruprime_core_inv3sntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_inv3sntrup857_INPUTBYTES); randombytes(k,ntruprime_core_inv3sntrup857_KEYBYTES); randombytes(c,ntruprime_core_inv3sntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_inv3sntrup857",impl,ntruprime_core_inv3sntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_inv3sntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup953")) return; void *hstorage = callocplus(ntruprime_core_inv3sntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_inv3sntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_inv3sntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_inv3sntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup953(impl); printf("core_inv3sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup953_implementation(impl),ntruprime_dispatch_core_inv3sntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup953; printf("core_inv3sntrup953 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup953_implementation(),ntruprime_core_inv3sntrup953_compiler()); } randombytes(h,ntruprime_core_inv3sntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_inv3sntrup953_INPUTBYTES); randombytes(k,ntruprime_core_inv3sntrup953_KEYBYTES); randombytes(c,ntruprime_core_inv3sntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_inv3sntrup953",impl,ntruprime_core_inv3sntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_inv3sntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup1013")) return; void *hstorage = callocplus(ntruprime_core_inv3sntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_inv3sntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_inv3sntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_inv3sntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup1013(impl); printf("core_inv3sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup1013_implementation(impl),ntruprime_dispatch_core_inv3sntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup1013; printf("core_inv3sntrup1013 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup1013_implementation(),ntruprime_core_inv3sntrup1013_compiler()); } randombytes(h,ntruprime_core_inv3sntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_inv3sntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_inv3sntrup1013_KEYBYTES); randombytes(c,ntruprime_core_inv3sntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_inv3sntrup1013",impl,ntruprime_core_inv3sntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_inv3sntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup1277")) return; void *hstorage = callocplus(ntruprime_core_inv3sntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_inv3sntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_inv3sntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_inv3sntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup1277(impl); printf("core_inv3sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup1277_implementation(impl),ntruprime_dispatch_core_inv3sntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup1277; printf("core_inv3sntrup1277 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup1277_implementation(),ntruprime_core_inv3sntrup1277_compiler()); } randombytes(h,ntruprime_core_inv3sntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_inv3sntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_inv3sntrup1277_KEYBYTES); randombytes(c,ntruprime_core_inv3sntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_inv3sntrup1277",impl,ntruprime_core_inv3sntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_invsntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup653")) return; void *hstorage = callocplus(ntruprime_core_invsntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_invsntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_invsntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_invsntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_invsntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup653(impl); printf("core_invsntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup653_implementation(impl),ntruprime_dispatch_core_invsntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup653; printf("core_invsntrup653 selected implementation %s compiler %s\n",ntruprime_core_invsntrup653_implementation(),ntruprime_core_invsntrup653_compiler()); } randombytes(h,ntruprime_core_invsntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_invsntrup653_INPUTBYTES); randombytes(k,ntruprime_core_invsntrup653_KEYBYTES); randombytes(c,ntruprime_core_invsntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_invsntrup653",impl,ntruprime_core_invsntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_invsntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup761")) return; void *hstorage = callocplus(ntruprime_core_invsntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_invsntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_invsntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_invsntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_invsntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup761(impl); printf("core_invsntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup761_implementation(impl),ntruprime_dispatch_core_invsntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup761; printf("core_invsntrup761 selected implementation %s compiler %s\n",ntruprime_core_invsntrup761_implementation(),ntruprime_core_invsntrup761_compiler()); } randombytes(h,ntruprime_core_invsntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_invsntrup761_INPUTBYTES); randombytes(k,ntruprime_core_invsntrup761_KEYBYTES); randombytes(c,ntruprime_core_invsntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_invsntrup761",impl,ntruprime_core_invsntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_invsntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup857")) return; void *hstorage = callocplus(ntruprime_core_invsntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_invsntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_invsntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_invsntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_invsntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup857(impl); printf("core_invsntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup857_implementation(impl),ntruprime_dispatch_core_invsntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup857; printf("core_invsntrup857 selected implementation %s compiler %s\n",ntruprime_core_invsntrup857_implementation(),ntruprime_core_invsntrup857_compiler()); } randombytes(h,ntruprime_core_invsntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_invsntrup857_INPUTBYTES); randombytes(k,ntruprime_core_invsntrup857_KEYBYTES); randombytes(c,ntruprime_core_invsntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_invsntrup857",impl,ntruprime_core_invsntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_invsntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup953")) return; void *hstorage = callocplus(ntruprime_core_invsntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_invsntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_invsntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_invsntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_invsntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup953(impl); printf("core_invsntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup953_implementation(impl),ntruprime_dispatch_core_invsntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup953; printf("core_invsntrup953 selected implementation %s compiler %s\n",ntruprime_core_invsntrup953_implementation(),ntruprime_core_invsntrup953_compiler()); } randombytes(h,ntruprime_core_invsntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_invsntrup953_INPUTBYTES); randombytes(k,ntruprime_core_invsntrup953_KEYBYTES); randombytes(c,ntruprime_core_invsntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_invsntrup953",impl,ntruprime_core_invsntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_invsntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup1013")) return; void *hstorage = callocplus(ntruprime_core_invsntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_invsntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_invsntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_invsntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_invsntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup1013(impl); printf("core_invsntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup1013_implementation(impl),ntruprime_dispatch_core_invsntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup1013; printf("core_invsntrup1013 selected implementation %s compiler %s\n",ntruprime_core_invsntrup1013_implementation(),ntruprime_core_invsntrup1013_compiler()); } randombytes(h,ntruprime_core_invsntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_invsntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_invsntrup1013_KEYBYTES); randombytes(c,ntruprime_core_invsntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_invsntrup1013",impl,ntruprime_core_invsntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_invsntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup1277")) return; void *hstorage = callocplus(ntruprime_core_invsntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_invsntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_invsntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_invsntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_invsntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup1277(impl); printf("core_invsntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup1277_implementation(impl),ntruprime_dispatch_core_invsntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup1277; printf("core_invsntrup1277 selected implementation %s compiler %s\n",ntruprime_core_invsntrup1277_implementation(),ntruprime_core_invsntrup1277_compiler()); } randombytes(h,ntruprime_core_invsntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_invsntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_invsntrup1277_KEYBYTES); randombytes(c,ntruprime_core_invsntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_invsntrup1277",impl,ntruprime_core_invsntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_mult3sntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup653")) return; void *hstorage = callocplus(ntruprime_core_mult3sntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_mult3sntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_mult3sntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_mult3sntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup653(impl); printf("core_mult3sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup653_implementation(impl),ntruprime_dispatch_core_mult3sntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup653; printf("core_mult3sntrup653 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup653_implementation(),ntruprime_core_mult3sntrup653_compiler()); } randombytes(h,ntruprime_core_mult3sntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_mult3sntrup653_INPUTBYTES); randombytes(k,ntruprime_core_mult3sntrup653_KEYBYTES); randombytes(c,ntruprime_core_mult3sntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_mult3sntrup653",impl,ntruprime_core_mult3sntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_mult3sntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup761")) return; void *hstorage = callocplus(ntruprime_core_mult3sntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_mult3sntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_mult3sntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_mult3sntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup761(impl); printf("core_mult3sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup761_implementation(impl),ntruprime_dispatch_core_mult3sntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup761; printf("core_mult3sntrup761 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup761_implementation(),ntruprime_core_mult3sntrup761_compiler()); } randombytes(h,ntruprime_core_mult3sntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_mult3sntrup761_INPUTBYTES); randombytes(k,ntruprime_core_mult3sntrup761_KEYBYTES); randombytes(c,ntruprime_core_mult3sntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_mult3sntrup761",impl,ntruprime_core_mult3sntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_mult3sntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup857")) return; void *hstorage = callocplus(ntruprime_core_mult3sntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_mult3sntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_mult3sntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_mult3sntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup857(impl); printf("core_mult3sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup857_implementation(impl),ntruprime_dispatch_core_mult3sntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup857; printf("core_mult3sntrup857 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup857_implementation(),ntruprime_core_mult3sntrup857_compiler()); } randombytes(h,ntruprime_core_mult3sntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_mult3sntrup857_INPUTBYTES); randombytes(k,ntruprime_core_mult3sntrup857_KEYBYTES); randombytes(c,ntruprime_core_mult3sntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_mult3sntrup857",impl,ntruprime_core_mult3sntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_mult3sntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup953")) return; void *hstorage = callocplus(ntruprime_core_mult3sntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_mult3sntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_mult3sntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_mult3sntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup953(impl); printf("core_mult3sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup953_implementation(impl),ntruprime_dispatch_core_mult3sntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup953; printf("core_mult3sntrup953 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup953_implementation(),ntruprime_core_mult3sntrup953_compiler()); } randombytes(h,ntruprime_core_mult3sntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_mult3sntrup953_INPUTBYTES); randombytes(k,ntruprime_core_mult3sntrup953_KEYBYTES); randombytes(c,ntruprime_core_mult3sntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_mult3sntrup953",impl,ntruprime_core_mult3sntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_mult3sntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup1013")) return; void *hstorage = callocplus(ntruprime_core_mult3sntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_mult3sntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_mult3sntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_mult3sntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup1013(impl); printf("core_mult3sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup1013_implementation(impl),ntruprime_dispatch_core_mult3sntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup1013; printf("core_mult3sntrup1013 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup1013_implementation(),ntruprime_core_mult3sntrup1013_compiler()); } randombytes(h,ntruprime_core_mult3sntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_mult3sntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_mult3sntrup1013_KEYBYTES); randombytes(c,ntruprime_core_mult3sntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_mult3sntrup1013",impl,ntruprime_core_mult3sntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_mult3sntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup1277")) return; void *hstorage = callocplus(ntruprime_core_mult3sntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_mult3sntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_mult3sntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_mult3sntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup1277(impl); printf("core_mult3sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup1277_implementation(impl),ntruprime_dispatch_core_mult3sntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup1277; printf("core_mult3sntrup1277 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup1277_implementation(),ntruprime_core_mult3sntrup1277_compiler()); } randombytes(h,ntruprime_core_mult3sntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_mult3sntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_mult3sntrup1277_KEYBYTES); randombytes(c,ntruprime_core_mult3sntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_mult3sntrup1277",impl,ntruprime_core_mult3sntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_multsntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup653")) return; void *hstorage = callocplus(ntruprime_core_multsntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_multsntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_multsntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_multsntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_multsntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup653(impl); printf("core_multsntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup653_implementation(impl),ntruprime_dispatch_core_multsntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup653; printf("core_multsntrup653 selected implementation %s compiler %s\n",ntruprime_core_multsntrup653_implementation(),ntruprime_core_multsntrup653_compiler()); } randombytes(h,ntruprime_core_multsntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_multsntrup653_INPUTBYTES); randombytes(k,ntruprime_core_multsntrup653_KEYBYTES); randombytes(c,ntruprime_core_multsntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_multsntrup653",impl,ntruprime_core_multsntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_multsntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup761")) return; void *hstorage = callocplus(ntruprime_core_multsntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_multsntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_multsntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_multsntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_multsntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup761(impl); printf("core_multsntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup761_implementation(impl),ntruprime_dispatch_core_multsntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup761; printf("core_multsntrup761 selected implementation %s compiler %s\n",ntruprime_core_multsntrup761_implementation(),ntruprime_core_multsntrup761_compiler()); } randombytes(h,ntruprime_core_multsntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_multsntrup761_INPUTBYTES); randombytes(k,ntruprime_core_multsntrup761_KEYBYTES); randombytes(c,ntruprime_core_multsntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_multsntrup761",impl,ntruprime_core_multsntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_multsntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup857")) return; void *hstorage = callocplus(ntruprime_core_multsntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_multsntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_multsntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_multsntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_multsntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup857(impl); printf("core_multsntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup857_implementation(impl),ntruprime_dispatch_core_multsntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup857; printf("core_multsntrup857 selected implementation %s compiler %s\n",ntruprime_core_multsntrup857_implementation(),ntruprime_core_multsntrup857_compiler()); } randombytes(h,ntruprime_core_multsntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_multsntrup857_INPUTBYTES); randombytes(k,ntruprime_core_multsntrup857_KEYBYTES); randombytes(c,ntruprime_core_multsntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_multsntrup857",impl,ntruprime_core_multsntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_multsntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup953")) return; void *hstorage = callocplus(ntruprime_core_multsntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_multsntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_multsntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_multsntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_multsntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup953(impl); printf("core_multsntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup953_implementation(impl),ntruprime_dispatch_core_multsntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup953; printf("core_multsntrup953 selected implementation %s compiler %s\n",ntruprime_core_multsntrup953_implementation(),ntruprime_core_multsntrup953_compiler()); } randombytes(h,ntruprime_core_multsntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_multsntrup953_INPUTBYTES); randombytes(k,ntruprime_core_multsntrup953_KEYBYTES); randombytes(c,ntruprime_core_multsntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_multsntrup953",impl,ntruprime_core_multsntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_multsntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup1013")) return; void *hstorage = callocplus(ntruprime_core_multsntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_multsntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_multsntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_multsntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_multsntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup1013(impl); printf("core_multsntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup1013_implementation(impl),ntruprime_dispatch_core_multsntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup1013; printf("core_multsntrup1013 selected implementation %s compiler %s\n",ntruprime_core_multsntrup1013_implementation(),ntruprime_core_multsntrup1013_compiler()); } randombytes(h,ntruprime_core_multsntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_multsntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_multsntrup1013_KEYBYTES); randombytes(c,ntruprime_core_multsntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_multsntrup1013",impl,ntruprime_core_multsntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_multsntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup1277")) return; void *hstorage = callocplus(ntruprime_core_multsntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_multsntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_multsntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_multsntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_multsntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup1277(impl); printf("core_multsntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup1277_implementation(impl),ntruprime_dispatch_core_multsntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup1277; printf("core_multsntrup1277 selected implementation %s compiler %s\n",ntruprime_core_multsntrup1277_implementation(),ntruprime_core_multsntrup1277_compiler()); } randombytes(h,ntruprime_core_multsntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_multsntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_multsntrup1277_KEYBYTES); randombytes(c,ntruprime_core_multsntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_multsntrup1277",impl,ntruprime_core_multsntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_scale3sntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup653")) return; void *hstorage = callocplus(ntruprime_core_scale3sntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_scale3sntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_scale3sntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_scale3sntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup653(impl); printf("core_scale3sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup653_implementation(impl),ntruprime_dispatch_core_scale3sntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup653; printf("core_scale3sntrup653 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup653_implementation(),ntruprime_core_scale3sntrup653_compiler()); } randombytes(h,ntruprime_core_scale3sntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_scale3sntrup653_INPUTBYTES); randombytes(k,ntruprime_core_scale3sntrup653_KEYBYTES); randombytes(c,ntruprime_core_scale3sntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_scale3sntrup653",impl,ntruprime_core_scale3sntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_scale3sntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup761")) return; void *hstorage = callocplus(ntruprime_core_scale3sntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_scale3sntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_scale3sntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_scale3sntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup761(impl); printf("core_scale3sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup761_implementation(impl),ntruprime_dispatch_core_scale3sntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup761; printf("core_scale3sntrup761 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup761_implementation(),ntruprime_core_scale3sntrup761_compiler()); } randombytes(h,ntruprime_core_scale3sntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_scale3sntrup761_INPUTBYTES); randombytes(k,ntruprime_core_scale3sntrup761_KEYBYTES); randombytes(c,ntruprime_core_scale3sntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_scale3sntrup761",impl,ntruprime_core_scale3sntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_scale3sntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup857")) return; void *hstorage = callocplus(ntruprime_core_scale3sntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_scale3sntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_scale3sntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_scale3sntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup857(impl); printf("core_scale3sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup857_implementation(impl),ntruprime_dispatch_core_scale3sntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup857; printf("core_scale3sntrup857 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup857_implementation(),ntruprime_core_scale3sntrup857_compiler()); } randombytes(h,ntruprime_core_scale3sntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_scale3sntrup857_INPUTBYTES); randombytes(k,ntruprime_core_scale3sntrup857_KEYBYTES); randombytes(c,ntruprime_core_scale3sntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_scale3sntrup857",impl,ntruprime_core_scale3sntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_scale3sntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup953")) return; void *hstorage = callocplus(ntruprime_core_scale3sntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_scale3sntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_scale3sntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_scale3sntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup953(impl); printf("core_scale3sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup953_implementation(impl),ntruprime_dispatch_core_scale3sntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup953; printf("core_scale3sntrup953 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup953_implementation(),ntruprime_core_scale3sntrup953_compiler()); } randombytes(h,ntruprime_core_scale3sntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_scale3sntrup953_INPUTBYTES); randombytes(k,ntruprime_core_scale3sntrup953_KEYBYTES); randombytes(c,ntruprime_core_scale3sntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_scale3sntrup953",impl,ntruprime_core_scale3sntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_scale3sntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup1013")) return; void *hstorage = callocplus(ntruprime_core_scale3sntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_scale3sntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_scale3sntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_scale3sntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup1013(impl); printf("core_scale3sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup1013_implementation(impl),ntruprime_dispatch_core_scale3sntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup1013; printf("core_scale3sntrup1013 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup1013_implementation(),ntruprime_core_scale3sntrup1013_compiler()); } randombytes(h,ntruprime_core_scale3sntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_scale3sntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_scale3sntrup1013_KEYBYTES); randombytes(c,ntruprime_core_scale3sntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_scale3sntrup1013",impl,ntruprime_core_scale3sntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_scale3sntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup1277")) return; void *hstorage = callocplus(ntruprime_core_scale3sntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_scale3sntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_scale3sntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_scale3sntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup1277(impl); printf("core_scale3sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup1277_implementation(impl),ntruprime_dispatch_core_scale3sntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup1277; printf("core_scale3sntrup1277 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup1277_implementation(),ntruprime_core_scale3sntrup1277_compiler()); } randombytes(h,ntruprime_core_scale3sntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_scale3sntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_scale3sntrup1277_KEYBYTES); randombytes(c,ntruprime_core_scale3sntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_scale3sntrup1277",impl,ntruprime_core_scale3sntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_weightsntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup653")) return; void *hstorage = callocplus(ntruprime_core_weightsntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_weightsntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_weightsntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_weightsntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_weightsntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup653(impl); printf("core_weightsntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup653_implementation(impl),ntruprime_dispatch_core_weightsntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup653; printf("core_weightsntrup653 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup653_implementation(),ntruprime_core_weightsntrup653_compiler()); } randombytes(h,ntruprime_core_weightsntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_weightsntrup653_INPUTBYTES); randombytes(k,ntruprime_core_weightsntrup653_KEYBYTES); randombytes(c,ntruprime_core_weightsntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_weightsntrup653",impl,ntruprime_core_weightsntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_weightsntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup761")) return; void *hstorage = callocplus(ntruprime_core_weightsntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_weightsntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_weightsntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_weightsntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_weightsntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup761(impl); printf("core_weightsntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup761_implementation(impl),ntruprime_dispatch_core_weightsntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup761; printf("core_weightsntrup761 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup761_implementation(),ntruprime_core_weightsntrup761_compiler()); } randombytes(h,ntruprime_core_weightsntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_weightsntrup761_INPUTBYTES); randombytes(k,ntruprime_core_weightsntrup761_KEYBYTES); randombytes(c,ntruprime_core_weightsntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_weightsntrup761",impl,ntruprime_core_weightsntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_weightsntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup857")) return; void *hstorage = callocplus(ntruprime_core_weightsntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_weightsntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_weightsntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_weightsntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_weightsntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup857(impl); printf("core_weightsntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup857_implementation(impl),ntruprime_dispatch_core_weightsntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup857; printf("core_weightsntrup857 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup857_implementation(),ntruprime_core_weightsntrup857_compiler()); } randombytes(h,ntruprime_core_weightsntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_weightsntrup857_INPUTBYTES); randombytes(k,ntruprime_core_weightsntrup857_KEYBYTES); randombytes(c,ntruprime_core_weightsntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_weightsntrup857",impl,ntruprime_core_weightsntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_weightsntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup953")) return; void *hstorage = callocplus(ntruprime_core_weightsntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_weightsntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_weightsntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_weightsntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_weightsntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup953(impl); printf("core_weightsntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup953_implementation(impl),ntruprime_dispatch_core_weightsntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup953; printf("core_weightsntrup953 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup953_implementation(),ntruprime_core_weightsntrup953_compiler()); } randombytes(h,ntruprime_core_weightsntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_weightsntrup953_INPUTBYTES); randombytes(k,ntruprime_core_weightsntrup953_KEYBYTES); randombytes(c,ntruprime_core_weightsntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_weightsntrup953",impl,ntruprime_core_weightsntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_weightsntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup1013")) return; void *hstorage = callocplus(ntruprime_core_weightsntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_weightsntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_weightsntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_weightsntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_weightsntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup1013(impl); printf("core_weightsntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup1013_implementation(impl),ntruprime_dispatch_core_weightsntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup1013; printf("core_weightsntrup1013 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup1013_implementation(),ntruprime_core_weightsntrup1013_compiler()); } randombytes(h,ntruprime_core_weightsntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_weightsntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_weightsntrup1013_KEYBYTES); randombytes(c,ntruprime_core_weightsntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_weightsntrup1013",impl,ntruprime_core_weightsntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_weightsntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup1277")) return; void *hstorage = callocplus(ntruprime_core_weightsntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_weightsntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_weightsntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_weightsntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_weightsntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup1277(impl); printf("core_weightsntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup1277_implementation(impl),ntruprime_dispatch_core_weightsntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup1277; printf("core_weightsntrup1277 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup1277_implementation(),ntruprime_core_weightsntrup1277_compiler()); } randombytes(h,ntruprime_core_weightsntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_weightsntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_weightsntrup1277_KEYBYTES); randombytes(c,ntruprime_core_weightsntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_weightsntrup1277",impl,ntruprime_core_weightsntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_wforcesntrup653(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup653")) return; void *hstorage = callocplus(ntruprime_core_wforcesntrup653_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_wforcesntrup653_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_wforcesntrup653_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_wforcesntrup653_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup653();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup653(impl); printf("core_wforcesntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup653_implementation(impl),ntruprime_dispatch_core_wforcesntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup653; printf("core_wforcesntrup653 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup653_implementation(),ntruprime_core_wforcesntrup653_compiler()); } randombytes(h,ntruprime_core_wforcesntrup653_OUTPUTBYTES); randombytes(n,ntruprime_core_wforcesntrup653_INPUTBYTES); randombytes(k,ntruprime_core_wforcesntrup653_KEYBYTES); randombytes(c,ntruprime_core_wforcesntrup653_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_wforcesntrup653",impl,ntruprime_core_wforcesntrup653_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_wforcesntrup761(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup761")) return; void *hstorage = callocplus(ntruprime_core_wforcesntrup761_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_wforcesntrup761_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_wforcesntrup761_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_wforcesntrup761_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup761();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup761(impl); printf("core_wforcesntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup761_implementation(impl),ntruprime_dispatch_core_wforcesntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup761; printf("core_wforcesntrup761 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup761_implementation(),ntruprime_core_wforcesntrup761_compiler()); } randombytes(h,ntruprime_core_wforcesntrup761_OUTPUTBYTES); randombytes(n,ntruprime_core_wforcesntrup761_INPUTBYTES); randombytes(k,ntruprime_core_wforcesntrup761_KEYBYTES); randombytes(c,ntruprime_core_wforcesntrup761_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_wforcesntrup761",impl,ntruprime_core_wforcesntrup761_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_wforcesntrup857(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup857")) return; void *hstorage = callocplus(ntruprime_core_wforcesntrup857_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_wforcesntrup857_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_wforcesntrup857_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_wforcesntrup857_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup857();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup857(impl); printf("core_wforcesntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup857_implementation(impl),ntruprime_dispatch_core_wforcesntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup857; printf("core_wforcesntrup857 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup857_implementation(),ntruprime_core_wforcesntrup857_compiler()); } randombytes(h,ntruprime_core_wforcesntrup857_OUTPUTBYTES); randombytes(n,ntruprime_core_wforcesntrup857_INPUTBYTES); randombytes(k,ntruprime_core_wforcesntrup857_KEYBYTES); randombytes(c,ntruprime_core_wforcesntrup857_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_wforcesntrup857",impl,ntruprime_core_wforcesntrup857_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_wforcesntrup953(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup953")) return; void *hstorage = callocplus(ntruprime_core_wforcesntrup953_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_wforcesntrup953_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_wforcesntrup953_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_wforcesntrup953_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup953();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup953(impl); printf("core_wforcesntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup953_implementation(impl),ntruprime_dispatch_core_wforcesntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup953; printf("core_wforcesntrup953 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup953_implementation(),ntruprime_core_wforcesntrup953_compiler()); } randombytes(h,ntruprime_core_wforcesntrup953_OUTPUTBYTES); randombytes(n,ntruprime_core_wforcesntrup953_INPUTBYTES); randombytes(k,ntruprime_core_wforcesntrup953_KEYBYTES); randombytes(c,ntruprime_core_wforcesntrup953_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_wforcesntrup953",impl,ntruprime_core_wforcesntrup953_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_wforcesntrup1013(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup1013")) return; void *hstorage = callocplus(ntruprime_core_wforcesntrup1013_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_wforcesntrup1013_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_wforcesntrup1013_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_wforcesntrup1013_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup1013();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup1013(impl); printf("core_wforcesntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup1013_implementation(impl),ntruprime_dispatch_core_wforcesntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup1013; printf("core_wforcesntrup1013 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup1013_implementation(),ntruprime_core_wforcesntrup1013_compiler()); } randombytes(h,ntruprime_core_wforcesntrup1013_OUTPUTBYTES); randombytes(n,ntruprime_core_wforcesntrup1013_INPUTBYTES); randombytes(k,ntruprime_core_wforcesntrup1013_KEYBYTES); randombytes(c,ntruprime_core_wforcesntrup1013_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_wforcesntrup1013",impl,ntruprime_core_wforcesntrup1013_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_core_wforcesntrup1277(void) { if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup1277")) return; void *hstorage = callocplus(ntruprime_core_wforcesntrup1277_OUTPUTBYTES); unsigned char *h = aligned(hstorage); void *nstorage = callocplus(ntruprime_core_wforcesntrup1277_INPUTBYTES); unsigned char *n = aligned(nstorage); void *kstorage = callocplus(ntruprime_core_wforcesntrup1277_KEYBYTES); unsigned char *k = aligned(kstorage); void *cstorage = callocplus(ntruprime_core_wforcesntrup1277_CONSTBYTES); unsigned char *c = aligned(cstorage); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup1277();++impl) { void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup1277(impl); printf("core_wforcesntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup1277_implementation(impl),ntruprime_dispatch_core_wforcesntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup1277; printf("core_wforcesntrup1277 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup1277_implementation(),ntruprime_core_wforcesntrup1277_compiler()); } randombytes(h,ntruprime_core_wforcesntrup1277_OUTPUTBYTES); randombytes(n,ntruprime_core_wforcesntrup1277_INPUTBYTES); randombytes(k,ntruprime_core_wforcesntrup1277_KEYBYTES); randombytes(c,ntruprime_core_wforcesntrup1277_CONSTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_core(h,n,k,c); } t_print("core_wforcesntrup1277",impl,ntruprime_core_wforcesntrup1277_OUTPUTBYTES); } free(cstorage); free(kstorage); free(nstorage); free(hstorage); } static void measure_kem_sntrup653(void) { if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup653")) return; void *pstorage = callocplus(ntruprime_kem_sntrup653_PUBLICKEYBYTES); unsigned char *p = aligned(pstorage); void *sstorage = callocplus(ntruprime_kem_sntrup653_SECRETKEYBYTES); unsigned char *s = aligned(sstorage); void *cstorage = callocplus(ntruprime_kem_sntrup653_CIPHERTEXTBYTES); unsigned char *c = aligned(cstorage); void *kstorage = callocplus(ntruprime_kem_sntrup653_BYTES); unsigned char *k = aligned(kstorage); void *Tstorage = callocplus(ntruprime_kem_sntrup653_BYTES); unsigned char *T = aligned(Tstorage); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup653();++impl) { void (*crypto_kem_keypair)(unsigned char *,unsigned char *); void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_kem_sntrup653_implementation(impl))) continue; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup653_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup653_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup653_dec(impl); printf("kem_sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup653_implementation(impl),ntruprime_dispatch_kem_sntrup653_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup653_keypair; crypto_kem_enc = ntruprime_kem_sntrup653_enc; crypto_kem_dec = ntruprime_kem_sntrup653_dec; printf("kem_sntrup653 selected implementation %s compiler %s\n",ntruprime_kem_sntrup653_implementation(),ntruprime_kem_sntrup653_compiler()); } randombytes(p,ntruprime_kem_sntrup653_PUBLICKEYBYTES); randombytes(s,ntruprime_kem_sntrup653_SECRETKEYBYTES); randombytes(c,ntruprime_kem_sntrup653_CIPHERTEXTBYTES); randombytes(k,ntruprime_kem_sntrup653_BYTES); randombytes(T,ntruprime_kem_sntrup653_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_keypair(p,s); } t_print("kem_sntrup653_keypair",impl,ntruprime_kem_sntrup653_PUBLICKEYBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_enc(c,k,p); } t_print("kem_sntrup653_enc",impl,ntruprime_kem_sntrup653_CIPHERTEXTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_dec(T,c,s); } t_print("kem_sntrup653_dec",impl,ntruprime_kem_sntrup653_BYTES); } free(Tstorage); free(kstorage); free(cstorage); free(sstorage); free(pstorage); } static void measure_kem_sntrup761(void) { if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup761")) return; void *pstorage = callocplus(ntruprime_kem_sntrup761_PUBLICKEYBYTES); unsigned char *p = aligned(pstorage); void *sstorage = callocplus(ntruprime_kem_sntrup761_SECRETKEYBYTES); unsigned char *s = aligned(sstorage); void *cstorage = callocplus(ntruprime_kem_sntrup761_CIPHERTEXTBYTES); unsigned char *c = aligned(cstorage); void *kstorage = callocplus(ntruprime_kem_sntrup761_BYTES); unsigned char *k = aligned(kstorage); void *Tstorage = callocplus(ntruprime_kem_sntrup761_BYTES); unsigned char *T = aligned(Tstorage); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup761();++impl) { void (*crypto_kem_keypair)(unsigned char *,unsigned char *); void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_kem_sntrup761_implementation(impl))) continue; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup761_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup761_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup761_dec(impl); printf("kem_sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup761_implementation(impl),ntruprime_dispatch_kem_sntrup761_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup761_keypair; crypto_kem_enc = ntruprime_kem_sntrup761_enc; crypto_kem_dec = ntruprime_kem_sntrup761_dec; printf("kem_sntrup761 selected implementation %s compiler %s\n",ntruprime_kem_sntrup761_implementation(),ntruprime_kem_sntrup761_compiler()); } randombytes(p,ntruprime_kem_sntrup761_PUBLICKEYBYTES); randombytes(s,ntruprime_kem_sntrup761_SECRETKEYBYTES); randombytes(c,ntruprime_kem_sntrup761_CIPHERTEXTBYTES); randombytes(k,ntruprime_kem_sntrup761_BYTES); randombytes(T,ntruprime_kem_sntrup761_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_keypair(p,s); } t_print("kem_sntrup761_keypair",impl,ntruprime_kem_sntrup761_PUBLICKEYBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_enc(c,k,p); } t_print("kem_sntrup761_enc",impl,ntruprime_kem_sntrup761_CIPHERTEXTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_dec(T,c,s); } t_print("kem_sntrup761_dec",impl,ntruprime_kem_sntrup761_BYTES); } free(Tstorage); free(kstorage); free(cstorage); free(sstorage); free(pstorage); } static void measure_kem_sntrup857(void) { if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup857")) return; void *pstorage = callocplus(ntruprime_kem_sntrup857_PUBLICKEYBYTES); unsigned char *p = aligned(pstorage); void *sstorage = callocplus(ntruprime_kem_sntrup857_SECRETKEYBYTES); unsigned char *s = aligned(sstorage); void *cstorage = callocplus(ntruprime_kem_sntrup857_CIPHERTEXTBYTES); unsigned char *c = aligned(cstorage); void *kstorage = callocplus(ntruprime_kem_sntrup857_BYTES); unsigned char *k = aligned(kstorage); void *Tstorage = callocplus(ntruprime_kem_sntrup857_BYTES); unsigned char *T = aligned(Tstorage); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup857();++impl) { void (*crypto_kem_keypair)(unsigned char *,unsigned char *); void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_kem_sntrup857_implementation(impl))) continue; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup857_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup857_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup857_dec(impl); printf("kem_sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup857_implementation(impl),ntruprime_dispatch_kem_sntrup857_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup857_keypair; crypto_kem_enc = ntruprime_kem_sntrup857_enc; crypto_kem_dec = ntruprime_kem_sntrup857_dec; printf("kem_sntrup857 selected implementation %s compiler %s\n",ntruprime_kem_sntrup857_implementation(),ntruprime_kem_sntrup857_compiler()); } randombytes(p,ntruprime_kem_sntrup857_PUBLICKEYBYTES); randombytes(s,ntruprime_kem_sntrup857_SECRETKEYBYTES); randombytes(c,ntruprime_kem_sntrup857_CIPHERTEXTBYTES); randombytes(k,ntruprime_kem_sntrup857_BYTES); randombytes(T,ntruprime_kem_sntrup857_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_keypair(p,s); } t_print("kem_sntrup857_keypair",impl,ntruprime_kem_sntrup857_PUBLICKEYBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_enc(c,k,p); } t_print("kem_sntrup857_enc",impl,ntruprime_kem_sntrup857_CIPHERTEXTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_dec(T,c,s); } t_print("kem_sntrup857_dec",impl,ntruprime_kem_sntrup857_BYTES); } free(Tstorage); free(kstorage); free(cstorage); free(sstorage); free(pstorage); } static void measure_kem_sntrup953(void) { if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup953")) return; void *pstorage = callocplus(ntruprime_kem_sntrup953_PUBLICKEYBYTES); unsigned char *p = aligned(pstorage); void *sstorage = callocplus(ntruprime_kem_sntrup953_SECRETKEYBYTES); unsigned char *s = aligned(sstorage); void *cstorage = callocplus(ntruprime_kem_sntrup953_CIPHERTEXTBYTES); unsigned char *c = aligned(cstorage); void *kstorage = callocplus(ntruprime_kem_sntrup953_BYTES); unsigned char *k = aligned(kstorage); void *Tstorage = callocplus(ntruprime_kem_sntrup953_BYTES); unsigned char *T = aligned(Tstorage); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup953();++impl) { void (*crypto_kem_keypair)(unsigned char *,unsigned char *); void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_kem_sntrup953_implementation(impl))) continue; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup953_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup953_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup953_dec(impl); printf("kem_sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup953_implementation(impl),ntruprime_dispatch_kem_sntrup953_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup953_keypair; crypto_kem_enc = ntruprime_kem_sntrup953_enc; crypto_kem_dec = ntruprime_kem_sntrup953_dec; printf("kem_sntrup953 selected implementation %s compiler %s\n",ntruprime_kem_sntrup953_implementation(),ntruprime_kem_sntrup953_compiler()); } randombytes(p,ntruprime_kem_sntrup953_PUBLICKEYBYTES); randombytes(s,ntruprime_kem_sntrup953_SECRETKEYBYTES); randombytes(c,ntruprime_kem_sntrup953_CIPHERTEXTBYTES); randombytes(k,ntruprime_kem_sntrup953_BYTES); randombytes(T,ntruprime_kem_sntrup953_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_keypair(p,s); } t_print("kem_sntrup953_keypair",impl,ntruprime_kem_sntrup953_PUBLICKEYBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_enc(c,k,p); } t_print("kem_sntrup953_enc",impl,ntruprime_kem_sntrup953_CIPHERTEXTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_dec(T,c,s); } t_print("kem_sntrup953_dec",impl,ntruprime_kem_sntrup953_BYTES); } free(Tstorage); free(kstorage); free(cstorage); free(sstorage); free(pstorage); } static void measure_kem_sntrup1013(void) { if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup1013")) return; void *pstorage = callocplus(ntruprime_kem_sntrup1013_PUBLICKEYBYTES); unsigned char *p = aligned(pstorage); void *sstorage = callocplus(ntruprime_kem_sntrup1013_SECRETKEYBYTES); unsigned char *s = aligned(sstorage); void *cstorage = callocplus(ntruprime_kem_sntrup1013_CIPHERTEXTBYTES); unsigned char *c = aligned(cstorage); void *kstorage = callocplus(ntruprime_kem_sntrup1013_BYTES); unsigned char *k = aligned(kstorage); void *Tstorage = callocplus(ntruprime_kem_sntrup1013_BYTES); unsigned char *T = aligned(Tstorage); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup1013();++impl) { void (*crypto_kem_keypair)(unsigned char *,unsigned char *); void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_kem_sntrup1013_implementation(impl))) continue; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup1013_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup1013_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup1013_dec(impl); printf("kem_sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup1013_implementation(impl),ntruprime_dispatch_kem_sntrup1013_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup1013_keypair; crypto_kem_enc = ntruprime_kem_sntrup1013_enc; crypto_kem_dec = ntruprime_kem_sntrup1013_dec; printf("kem_sntrup1013 selected implementation %s compiler %s\n",ntruprime_kem_sntrup1013_implementation(),ntruprime_kem_sntrup1013_compiler()); } randombytes(p,ntruprime_kem_sntrup1013_PUBLICKEYBYTES); randombytes(s,ntruprime_kem_sntrup1013_SECRETKEYBYTES); randombytes(c,ntruprime_kem_sntrup1013_CIPHERTEXTBYTES); randombytes(k,ntruprime_kem_sntrup1013_BYTES); randombytes(T,ntruprime_kem_sntrup1013_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_keypair(p,s); } t_print("kem_sntrup1013_keypair",impl,ntruprime_kem_sntrup1013_PUBLICKEYBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_enc(c,k,p); } t_print("kem_sntrup1013_enc",impl,ntruprime_kem_sntrup1013_CIPHERTEXTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_dec(T,c,s); } t_print("kem_sntrup1013_dec",impl,ntruprime_kem_sntrup1013_BYTES); } free(Tstorage); free(kstorage); free(cstorage); free(sstorage); free(pstorage); } static void measure_kem_sntrup1277(void) { if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup1277")) return; void *pstorage = callocplus(ntruprime_kem_sntrup1277_PUBLICKEYBYTES); unsigned char *p = aligned(pstorage); void *sstorage = callocplus(ntruprime_kem_sntrup1277_SECRETKEYBYTES); unsigned char *s = aligned(sstorage); void *cstorage = callocplus(ntruprime_kem_sntrup1277_CIPHERTEXTBYTES); unsigned char *c = aligned(cstorage); void *kstorage = callocplus(ntruprime_kem_sntrup1277_BYTES); unsigned char *k = aligned(kstorage); void *Tstorage = callocplus(ntruprime_kem_sntrup1277_BYTES); unsigned char *T = aligned(Tstorage); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup1277();++impl) { void (*crypto_kem_keypair)(unsigned char *,unsigned char *); void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); if (targeti && strcmp(targeti,ntruprime_dispatch_kem_sntrup1277_implementation(impl))) continue; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup1277_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup1277_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup1277_dec(impl); printf("kem_sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup1277_implementation(impl),ntruprime_dispatch_kem_sntrup1277_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup1277_keypair; crypto_kem_enc = ntruprime_kem_sntrup1277_enc; crypto_kem_dec = ntruprime_kem_sntrup1277_dec; printf("kem_sntrup1277 selected implementation %s compiler %s\n",ntruprime_kem_sntrup1277_implementation(),ntruprime_kem_sntrup1277_compiler()); } randombytes(p,ntruprime_kem_sntrup1277_PUBLICKEYBYTES); randombytes(s,ntruprime_kem_sntrup1277_SECRETKEYBYTES); randombytes(c,ntruprime_kem_sntrup1277_CIPHERTEXTBYTES); randombytes(k,ntruprime_kem_sntrup1277_BYTES); randombytes(T,ntruprime_kem_sntrup1277_BYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_keypair(p,s); } t_print("kem_sntrup1277_keypair",impl,ntruprime_kem_sntrup1277_PUBLICKEYBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_enc(c,k,p); } t_print("kem_sntrup1277_enc",impl,ntruprime_kem_sntrup1277_CIPHERTEXTBYTES); for (long long i = 0;i <= TIMINGS;++i) { t[i] = cpucycles(); crypto_kem_dec(T,c,s); } t_print("kem_sntrup1277_dec",impl,ntruprime_kem_sntrup1277_BYTES); } free(Tstorage); free(kstorage); free(cstorage); free(sstorage); free(pstorage); } #include "print_cpuid.inc" int main(int argc,char **argv) { printf("ntruprime version %s\n",ntruprime_version); printf("ntruprime arch %s\n",ntruprime_arch); print_cpuid(); if (*argv) ++argv; if (*argv) { targeto = *argv++; if (*argv) { targetp = *argv++; if (*argv) { targeti = *argv++; } } } measure_cpucycles(); measure_randombytes(); limits(); measure_verify_897(); measure_verify_1039(); measure_verify_1184(); measure_verify_1349(); measure_verify_1455(); measure_verify_1847(); measure_hashblocks_sha512(); measure_hash_sha512(); measure_decode_653x3(); measure_decode_653x1541(); measure_decode_653x4621(); measure_decode_653xint16(); measure_decode_653xint32(); measure_decode_761x3(); measure_decode_761x1531(); measure_decode_761x4591(); measure_decode_761xint16(); measure_decode_761xint32(); measure_decode_857x3(); measure_decode_857x1723(); measure_decode_857x5167(); measure_decode_857xint16(); measure_decode_857xint32(); measure_decode_953x3(); measure_decode_953x2115(); measure_decode_953x6343(); measure_decode_953xint16(); measure_decode_953xint32(); measure_decode_1013x3(); measure_decode_1013x2393(); measure_decode_1013x7177(); measure_decode_1013xint16(); measure_decode_1013xint32(); measure_decode_1277x3(); measure_decode_1277x2627(); measure_decode_1277x7879(); measure_decode_1277xint16(); measure_decode_1277xint32(); measure_decode_int16(); measure_encode_653x3(); measure_encode_653x1541(); measure_encode_653x1541round(); measure_encode_653x4621(); measure_encode_653xfreeze3(); measure_encode_653xint16(); measure_encode_761x3(); measure_encode_761x1531(); measure_encode_761x1531round(); measure_encode_761x4591(); measure_encode_761xfreeze3(); measure_encode_761xint16(); measure_encode_857x3(); measure_encode_857x1723(); measure_encode_857x1723round(); measure_encode_857x5167(); measure_encode_857xfreeze3(); measure_encode_857xint16(); measure_encode_953x3(); measure_encode_953x2115(); measure_encode_953x2115round(); measure_encode_953x6343(); measure_encode_953xfreeze3(); measure_encode_953xint16(); measure_encode_1013x3(); measure_encode_1013x2393(); measure_encode_1013x2393round(); measure_encode_1013x7177(); measure_encode_1013xfreeze3(); measure_encode_1013xint16(); measure_encode_1277x3(); measure_encode_1277x2627(); measure_encode_1277x2627round(); measure_encode_1277x7879(); measure_encode_1277xfreeze3(); measure_encode_1277xint16(); measure_encode_int16(); measure_sort_int32(); measure_sort_uint32(); measure_core_inv3sntrup653(); measure_core_inv3sntrup761(); measure_core_inv3sntrup857(); measure_core_inv3sntrup953(); measure_core_inv3sntrup1013(); measure_core_inv3sntrup1277(); measure_core_invsntrup653(); measure_core_invsntrup761(); measure_core_invsntrup857(); measure_core_invsntrup953(); measure_core_invsntrup1013(); measure_core_invsntrup1277(); measure_core_mult3sntrup653(); measure_core_mult3sntrup761(); measure_core_mult3sntrup857(); measure_core_mult3sntrup953(); measure_core_mult3sntrup1013(); measure_core_mult3sntrup1277(); measure_core_multsntrup653(); measure_core_multsntrup761(); measure_core_multsntrup857(); measure_core_multsntrup953(); measure_core_multsntrup1013(); measure_core_multsntrup1277(); measure_core_scale3sntrup653(); measure_core_scale3sntrup761(); measure_core_scale3sntrup857(); measure_core_scale3sntrup953(); measure_core_scale3sntrup1013(); measure_core_scale3sntrup1277(); measure_core_weightsntrup653(); measure_core_weightsntrup761(); measure_core_weightsntrup857(); measure_core_weightsntrup953(); measure_core_weightsntrup1013(); measure_core_weightsntrup1277(); measure_core_wforcesntrup653(); measure_core_wforcesntrup761(); measure_core_wforcesntrup857(); measure_core_wforcesntrup953(); measure_core_wforcesntrup1013(); measure_core_wforcesntrup1277(); measure_kem_sntrup653(); measure_kem_sntrup761(); measure_kem_sntrup857(); measure_kem_sntrup953(); measure_kem_sntrup1013(); measure_kem_sntrup1277(); return 0; } libntruprime-20241021/command/ntruprime-test.c0000644000000000000000000007066414705505542017771 0ustar rootroot/* WARNING: auto-generated (by autogen/test); do not edit */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "crypto_uint8.h" #include "crypto_uint32.h" #include "crypto_uint64.h" #include "crypto_declassify.h" #include /* -lntruprime */ #include #include "ntruprime_test.h" const char *targeto = 0; const char *targetp = 0; const char *targeti = 0; const char *targetn = 0; const char *targetoffset = 0; int ok = 1; #define fail ((ok = 0),printf) /* ----- valgrind support */ int valgrind = 0; static unsigned char valgrind_undefined_byte = 0; static char *volatile valgrind_pointer = 0; static char *valgrind_malloc_1(void) { char *x = malloc(1); if (!x) abort(); *(char **volatile) &valgrind_pointer = x; return valgrind_pointer; } static void valgrind_init(void) { char *e = getenv("valgrind_multiplier"); char *x; if (!e) return; x = valgrind_malloc_1(); valgrind_undefined_byte = x[0]+1; valgrind_undefined_byte *= atoi(e); valgrind_undefined_byte ^= x[0]+1; free(x); valgrind = 1; } void secret(void *xvoid,long long xlen) { unsigned char *x = xvoid; while (xlen > 0) { *x ^= valgrind_undefined_byte; ++x; --xlen; } } void public(void *x,long long xlen) { crypto_declassify(x,xlen); } /* ----- rng and hash, from supercop/try-anything.c */ typedef crypto_uint8 u8; typedef crypto_uint32 u32; typedef crypto_uint64 u64; #define FOR(i,n) for (i = 0;i < n;++i) static u32 L32(u32 x,int c) { return (x << c) | ((x&0xffffffff) >> (32 - c)); } static u32 ld32(const u8 *x) { u32 u = x[3]; u = (u<<8)|x[2]; u = (u<<8)|x[1]; return (u<<8)|x[0]; } static void st32(u8 *x,u32 u) { int i; FOR(i,4) { x[i] = u; u >>= 8; } } static const u8 sigma[17] = "expand 32-byte k"; static void core_salsa(u8 *out,const u8 *in,const u8 *k) { u32 w[16],x[16],y[16],t[4]; int i,j,m; FOR(i,4) { x[5*i] = ld32(sigma+4*i); x[1+i] = ld32(k+4*i); x[6+i] = ld32(in+4*i); x[11+i] = ld32(k+16+4*i); } FOR(i,16) y[i] = x[i]; FOR(i,20) { FOR(j,4) { FOR(m,4) t[m] = x[(5*j+4*m)%16]; t[1] ^= L32(t[0]+t[3], 7); t[2] ^= L32(t[1]+t[0], 9); t[3] ^= L32(t[2]+t[1],13); t[0] ^= L32(t[3]+t[2],18); FOR(m,4) w[4*j+(j+m)%4] = t[m]; } FOR(m,16) x[m] = w[m]; } FOR(i,16) st32(out + 4 * i,x[i] + y[i]); } static void salsa20(u8 *c,u64 b,const u8 *n,const u8 *k) { u8 z[16],x[64]; u32 u,i; if (!b) return; FOR(i,16) z[i] = 0; FOR(i,8) z[i] = n[i]; while (b >= 64) { core_salsa(x,z,k); FOR(i,64) c[i] = x[i]; u = 1; for (i = 8;i < 16;++i) { u += (u32) z[i]; z[i] = u; u >>= 8; } b -= 64; c += 64; } if (b) { core_salsa(x,z,k); FOR(i,b) c[i] = x[i]; } } static void increment(u8 *n) { if (!++n[0]) if (!++n[1]) if (!++n[2]) if (!++n[3]) if (!++n[4]) if (!++n[5]) if (!++n[6]) if (!++n[7]) ; } static unsigned char testvector_n[8]; static void testvector_clear(void) { memset(testvector_n,0,sizeof testvector_n); } static void testvector(unsigned char *x,unsigned long long xlen) { const static unsigned char testvector_k[33] = "generate inputs for test vectors"; salsa20(x,xlen,testvector_n,testvector_k); increment(testvector_n); } unsigned long long myrandom(void) { unsigned char x[8]; unsigned long long result; testvector(x,8); result = x[7]; result = (result<<8)|x[6]; result = (result<<8)|x[5]; result = (result<<8)|x[4]; result = (result<<8)|x[3]; result = (result<<8)|x[2]; result = (result<<8)|x[1]; result = (result<<8)|x[0]; return result; } static unsigned char canary_n[8]; static void canary(unsigned char *x,unsigned long long xlen) { const static unsigned char canary_k[33] = "generate pad to catch overwrites"; salsa20(x,xlen,canary_n,canary_k); increment(canary_n); } void double_canary(unsigned char *x2,unsigned char *x,unsigned long long xlen) { if (valgrind) return; canary(x - 16,16); canary(x + xlen,16); memcpy(x2 - 16,x - 16,16); memcpy(x2 + xlen,x + xlen,16); } void input_prepare(unsigned char *x2,unsigned char *x,unsigned long long xlen) { testvector(x,xlen); if (valgrind) { memcpy(x2,x,xlen); return; } canary(x - 16,16); canary(x + xlen,16); memcpy(x2 - 16,x - 16,xlen + 32); } void input_compare(const unsigned char *x2,const unsigned char *x,unsigned long long xlen,const char *fun) { if (valgrind) return; if (memcmp(x2 - 16,x - 16,xlen + 32)) { fail("failure: %s overwrites input\n",fun); } } void output_prepare(unsigned char *x2,unsigned char *x,unsigned long long xlen) { if (valgrind) { memcpy(x2,x,xlen); return; } canary(x - 16,xlen + 32); memcpy(x2 - 16,x - 16,xlen + 32); } void output_compare(const unsigned char *x2,const unsigned char *x,unsigned long long xlen,const char *fun) { if (valgrind) return; if (memcmp(x2 - 16,x - 16,16)) { fail("failure: %s writes before output\n",fun); } if (memcmp(x2 + xlen,x + xlen,16)) { fail("failure: %s writes after output\n",fun); } } /* ----- knownrandombytes */ static const int knownrandombytes_is_only_for_testing_not_for_cryptographic_use = 1; #define knownrandombytes randombytes #define QUARTERROUND(a,b,c,d) \ a += b; d = L32(d^a,16); \ c += d; b = L32(b^c,12); \ a += b; d = L32(d^a, 8); \ c += d; b = L32(b^c, 7); static void core_chacha(u8 *out,const u8 *in,const u8 *k) { u32 x[16],y[16]; int i,j; FOR(i,4) { x[i] = ld32(sigma+4*i); x[12+i] = ld32(in+4*i); } FOR(i,8) x[4+i] = ld32(k+4*i); FOR(i,16) y[i] = x[i]; FOR(i,10) { FOR(j,4) { QUARTERROUND(x[j],x[j+4],x[j+8],x[j+12]) } FOR(j,4) { QUARTERROUND(x[j],x[((j+1)&3)+4],x[((j+2)&3)+8],x[((j+3)&3)+12]) } } FOR(i,16) st32(out+4*i,x[i]+y[i]); } static void chacha20(u8 *c,u64 b,const u8 *n,const u8 *k) { u8 z[16],x[64]; u32 u,i; if (!b) return; FOR(i,16) z[i] = 0; FOR(i,8) z[i+8] = n[i]; while (b >= 64) { core_chacha(x,z,k); FOR(i,64) c[i] = x[i]; u = 1; FOR(i,8) { u += (u32) z[i]; z[i] = u; u >>= 8; } b -= 64; c += 64; } if (b) { core_chacha(x,z,k); FOR(i,b) c[i] = x[i]; } } #define crypto_rng_OUTPUTBYTES 736 static int crypto_rng( unsigned char *r, /* random output */ unsigned char *n, /* new key */ const unsigned char *g /* old key */ ) { static const unsigned char nonce[8] = {0}; unsigned char x[32+crypto_rng_OUTPUTBYTES]; chacha20(x,sizeof x,nonce,g); memcpy(n,x,32); memcpy(r,x+32,crypto_rng_OUTPUTBYTES); return 0; } static unsigned char knownrandombytes_g[32]; static unsigned char knownrandombytes_r[crypto_rng_OUTPUTBYTES]; static unsigned long long knownrandombytes_pos = crypto_rng_OUTPUTBYTES; static void knownrandombytes_clear(void) { memset(knownrandombytes_g,0,sizeof knownrandombytes_g); memset(knownrandombytes_r,0,sizeof knownrandombytes_r); knownrandombytes_pos = crypto_rng_OUTPUTBYTES; } void knownrandombytes_main(void *xvoid,long long xlen) { unsigned char *x = xvoid; assert(knownrandombytes_is_only_for_testing_not_for_cryptographic_use); while (xlen > 0) { if (knownrandombytes_pos == crypto_rng_OUTPUTBYTES) { crypto_rng(knownrandombytes_r,knownrandombytes_g,knownrandombytes_g); knownrandombytes_pos = 0; } *x++ = knownrandombytes_r[knownrandombytes_pos]; xlen -= 1; knownrandombytes_r[knownrandombytes_pos++] = 0; } } void knownrandombytes(void *xvoid,long long xlen) { knownrandombytes_main(xvoid,xlen); secret(xvoid,xlen); } /* ----- checksums */ static unsigned char checksum_state[64]; static char checksum_hex[65]; void checksum_expected(const char *expected) { long long i; for (i = 0;i < 32;++i) { checksum_hex[2 * i] = "0123456789abcdef"[15 & (checksum_state[i] >> 4)]; checksum_hex[2 * i + 1] = "0123456789abcdef"[15 & checksum_state[i]]; } checksum_hex[2 * i] = 0; if (strcmp(checksum_hex,expected)) fail("failure: checksum mismatch: %s expected %s\n",checksum_hex,expected); } void checksum_clear(void) { memset(checksum_state,0,sizeof checksum_state); knownrandombytes_clear(); testvector_clear(); /* not necessary to clear canary */ } void checksum(const unsigned char *x,unsigned long long xlen) { u8 block[16]; int i; while (xlen >= 16) { core_salsa(checksum_state,x,checksum_state); x += 16; xlen -= 16; } FOR(i,16) block[i] = 0; FOR(i,xlen) block[i] = x[i]; block[xlen] = 1; checksum_state[0] ^= 1; core_salsa(checksum_state,block,checksum_state); } #include "limits.inc" void *callocplus(long long len) { if (valgrind) { unsigned char *x = malloc(len); if (!x) abort(); return x; } else { unsigned char *x = calloc(1,len + 256); long long i; if (!x) abort(); for (i = 0;i < len + 256;++i) x[i] = random(); return x; } } void *aligned(void *x,long long len) { if (valgrind) return x; else { long long i; unsigned char *y = x; y += 64; y += 63 & (-(unsigned long) y); for (i = 0;i < len;++i) y[i] = 0; return y; } } /* ----- catching SIGILL, SIGBUS, SIGSEGV, etc. */ void forked(void (*test)(long long),long long impl) { if (valgrind) { test(impl); return; } fflush(stdout); pid_t child = fork(); int childstatus = -1; if (child == -1) { fprintf(stderr,"fatal: fork failed: %s",strerror(errno)); exit(111); } if (child == 0) { ok = 1; limits(); test(impl); if (!ok) exit(100); exit(0); } if (waitpid(child,&childstatus,0) != child) { fprintf(stderr,"fatal: wait failed: %s",strerror(errno)); exit(111); } if (childstatus) fail("failure: process failed, status %d\n",childstatus); fflush(stdout); } /* ----- endianness */ /* on big-endian machines, flip into little-endian */ /* other types of endianness are not supported */ void endianness(unsigned char *e,unsigned long long words,unsigned long long bytesperword) { long long i = 1; if (1 == *(unsigned char *) &i) return; while (words > 0) { for (i = 0;2 * i < bytesperword;++i) { long long j = bytesperword - 1 - i; unsigned char ei = e[i]; e[i] = e[j]; e[j] = ei; } e += bytesperword; words -= 1; } } /* ----- verify, derived from supercop/crypto_verify/try.c */ static int (*crypto_verify_897)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_897_x; static unsigned char *test_verify_897_y; static void test_verify_897_check(void) { unsigned char *x = test_verify_897_x; unsigned char *y = test_verify_897_y; int r; secret(x,897); secret(y,897); r = crypto_verify_897(x,y); public(x,897); public(y,897); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,897)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,897)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_897_impl(long long impl) { unsigned char *x = test_verify_897_x; unsigned char *y = test_verify_897_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_897_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_897 = ntruprime_dispatch_verify_897(impl); printf("verify_897 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_897_implementation(impl),ntruprime_dispatch_verify_897_compiler(impl)); } else { crypto_verify_897 = ntruprime_verify_897; printf("verify_897 selected implementation %s compiler %s\n",ntruprime_verify_897_implementation(),ntruprime_verify_897_compiler()); } randombytes(x,897); randombytes(y,897); test_verify_897_check(); memcpy(y,x,897); test_verify_897_check(); y[myrandom() % 897] = myrandom(); test_verify_897_check(); y[myrandom() % 897] = myrandom(); test_verify_897_check(); y[myrandom() % 897] = myrandom(); test_verify_897_check(); } static void test_verify_897(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"897")) return; test_verify_897_x = callocplus(897); test_verify_897_y = callocplus(897); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_897 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_897();++impl) forked(test_verify_897_impl,impl); ++test_verify_897_x; ++test_verify_897_y; } } static int (*crypto_verify_1039)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_1039_x; static unsigned char *test_verify_1039_y; static void test_verify_1039_check(void) { unsigned char *x = test_verify_1039_x; unsigned char *y = test_verify_1039_y; int r; secret(x,1039); secret(y,1039); r = crypto_verify_1039(x,y); public(x,1039); public(y,1039); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,1039)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,1039)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_1039_impl(long long impl) { unsigned char *x = test_verify_1039_x; unsigned char *y = test_verify_1039_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_1039_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_1039 = ntruprime_dispatch_verify_1039(impl); printf("verify_1039 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1039_implementation(impl),ntruprime_dispatch_verify_1039_compiler(impl)); } else { crypto_verify_1039 = ntruprime_verify_1039; printf("verify_1039 selected implementation %s compiler %s\n",ntruprime_verify_1039_implementation(),ntruprime_verify_1039_compiler()); } randombytes(x,1039); randombytes(y,1039); test_verify_1039_check(); memcpy(y,x,1039); test_verify_1039_check(); y[myrandom() % 1039] = myrandom(); test_verify_1039_check(); y[myrandom() % 1039] = myrandom(); test_verify_1039_check(); y[myrandom() % 1039] = myrandom(); test_verify_1039_check(); } static void test_verify_1039(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1039")) return; test_verify_1039_x = callocplus(1039); test_verify_1039_y = callocplus(1039); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_1039 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_1039();++impl) forked(test_verify_1039_impl,impl); ++test_verify_1039_x; ++test_verify_1039_y; } } static int (*crypto_verify_1184)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_1184_x; static unsigned char *test_verify_1184_y; static void test_verify_1184_check(void) { unsigned char *x = test_verify_1184_x; unsigned char *y = test_verify_1184_y; int r; secret(x,1184); secret(y,1184); r = crypto_verify_1184(x,y); public(x,1184); public(y,1184); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,1184)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,1184)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_1184_impl(long long impl) { unsigned char *x = test_verify_1184_x; unsigned char *y = test_verify_1184_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_1184_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_1184 = ntruprime_dispatch_verify_1184(impl); printf("verify_1184 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1184_implementation(impl),ntruprime_dispatch_verify_1184_compiler(impl)); } else { crypto_verify_1184 = ntruprime_verify_1184; printf("verify_1184 selected implementation %s compiler %s\n",ntruprime_verify_1184_implementation(),ntruprime_verify_1184_compiler()); } randombytes(x,1184); randombytes(y,1184); test_verify_1184_check(); memcpy(y,x,1184); test_verify_1184_check(); y[myrandom() % 1184] = myrandom(); test_verify_1184_check(); y[myrandom() % 1184] = myrandom(); test_verify_1184_check(); y[myrandom() % 1184] = myrandom(); test_verify_1184_check(); } static void test_verify_1184(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1184")) return; test_verify_1184_x = callocplus(1184); test_verify_1184_y = callocplus(1184); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_1184 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_1184();++impl) forked(test_verify_1184_impl,impl); ++test_verify_1184_x; ++test_verify_1184_y; } } static int (*crypto_verify_1349)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_1349_x; static unsigned char *test_verify_1349_y; static void test_verify_1349_check(void) { unsigned char *x = test_verify_1349_x; unsigned char *y = test_verify_1349_y; int r; secret(x,1349); secret(y,1349); r = crypto_verify_1349(x,y); public(x,1349); public(y,1349); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,1349)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,1349)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_1349_impl(long long impl) { unsigned char *x = test_verify_1349_x; unsigned char *y = test_verify_1349_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_1349_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_1349 = ntruprime_dispatch_verify_1349(impl); printf("verify_1349 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1349_implementation(impl),ntruprime_dispatch_verify_1349_compiler(impl)); } else { crypto_verify_1349 = ntruprime_verify_1349; printf("verify_1349 selected implementation %s compiler %s\n",ntruprime_verify_1349_implementation(),ntruprime_verify_1349_compiler()); } randombytes(x,1349); randombytes(y,1349); test_verify_1349_check(); memcpy(y,x,1349); test_verify_1349_check(); y[myrandom() % 1349] = myrandom(); test_verify_1349_check(); y[myrandom() % 1349] = myrandom(); test_verify_1349_check(); y[myrandom() % 1349] = myrandom(); test_verify_1349_check(); } static void test_verify_1349(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1349")) return; test_verify_1349_x = callocplus(1349); test_verify_1349_y = callocplus(1349); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_1349 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_1349();++impl) forked(test_verify_1349_impl,impl); ++test_verify_1349_x; ++test_verify_1349_y; } } static int (*crypto_verify_1455)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_1455_x; static unsigned char *test_verify_1455_y; static void test_verify_1455_check(void) { unsigned char *x = test_verify_1455_x; unsigned char *y = test_verify_1455_y; int r; secret(x,1455); secret(y,1455); r = crypto_verify_1455(x,y); public(x,1455); public(y,1455); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,1455)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,1455)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_1455_impl(long long impl) { unsigned char *x = test_verify_1455_x; unsigned char *y = test_verify_1455_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_1455_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_1455 = ntruprime_dispatch_verify_1455(impl); printf("verify_1455 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1455_implementation(impl),ntruprime_dispatch_verify_1455_compiler(impl)); } else { crypto_verify_1455 = ntruprime_verify_1455; printf("verify_1455 selected implementation %s compiler %s\n",ntruprime_verify_1455_implementation(),ntruprime_verify_1455_compiler()); } randombytes(x,1455); randombytes(y,1455); test_verify_1455_check(); memcpy(y,x,1455); test_verify_1455_check(); y[myrandom() % 1455] = myrandom(); test_verify_1455_check(); y[myrandom() % 1455] = myrandom(); test_verify_1455_check(); y[myrandom() % 1455] = myrandom(); test_verify_1455_check(); } static void test_verify_1455(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1455")) return; test_verify_1455_x = callocplus(1455); test_verify_1455_y = callocplus(1455); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_1455 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_1455();++impl) forked(test_verify_1455_impl,impl); ++test_verify_1455_x; ++test_verify_1455_y; } } static int (*crypto_verify_1847)(const unsigned char *,const unsigned char *); static unsigned char *test_verify_1847_x; static unsigned char *test_verify_1847_y; static void test_verify_1847_check(void) { unsigned char *x = test_verify_1847_x; unsigned char *y = test_verify_1847_y; int r; secret(x,1847); secret(y,1847); r = crypto_verify_1847(x,y); public(x,1847); public(y,1847); public(&r,sizeof r); if (r == 0) { if (memcmp(x,y,1847)) fail("failure: different strings pass verify\n"); } else if (r == -1) { if (!memcmp(x,y,1847)) fail("failure: equal strings fail verify\n"); } else { fail("failure: weird return value\n"); } } void test_verify_1847_impl(long long impl) { unsigned char *x = test_verify_1847_x; unsigned char *y = test_verify_1847_y; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_verify_1847_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_verify_1847 = ntruprime_dispatch_verify_1847(impl); printf("verify_1847 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_verify_1847_implementation(impl),ntruprime_dispatch_verify_1847_compiler(impl)); } else { crypto_verify_1847 = ntruprime_verify_1847; printf("verify_1847 selected implementation %s compiler %s\n",ntruprime_verify_1847_implementation(),ntruprime_verify_1847_compiler()); } randombytes(x,1847); randombytes(y,1847); test_verify_1847_check(); memcpy(y,x,1847); test_verify_1847_check(); y[myrandom() % 1847] = myrandom(); test_verify_1847_check(); y[myrandom() % 1847] = myrandom(); test_verify_1847_check(); y[myrandom() % 1847] = myrandom(); test_verify_1847_check(); } static void test_verify_1847(void) { if (targeto && strcmp(targeto,"verify")) return; if (targetp && strcmp(targetp,"1847")) return; test_verify_1847_x = callocplus(1847); test_verify_1847_y = callocplus(1847); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("verify_1847 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_verify_1847();++impl) forked(test_verify_1847_impl,impl); ++test_verify_1847_x; ++test_verify_1847_y; } } /* ----- top level */ #include "print_cpuid.inc" int main(int argc,char **argv) { valgrind_init(); if (valgrind) limits(); setvbuf(stdout,0,_IOLBF,0); printf("ntruprime version %s\n",ntruprime_version); printf("ntruprime arch %s\n",ntruprime_arch); print_cpuid(); if (valgrind) { printf("valgrind %d",(int) valgrind); printf(" declassify %d",(int) crypto_declassify_uses_valgrind); if (!crypto_declassify_uses_valgrind) printf(" (expect false positives)"); printf("\n"); } if (*argv) ++argv; if (*argv) { targeto = *argv++; if (*argv) { targetp = *argv++; if (*argv) { targeti = *argv++; if (*argv) { targetn = *argv++; if (*argv) { targetoffset = *argv++; } } } } } test_verify_897(); test_verify_1039(); test_verify_1184(); test_verify_1349(); test_verify_1455(); test_verify_1847(); test_hashblocks_sha512(); test_hash_sha512(); test_decode_653x3(); test_decode_653x1541(); test_decode_653x4621(); test_decode_653xint16(); test_decode_653xint32(); test_decode_761x3(); test_decode_761x1531(); test_decode_761x4591(); test_decode_761xint16(); test_decode_761xint32(); test_decode_857x3(); test_decode_857x1723(); test_decode_857x5167(); test_decode_857xint16(); test_decode_857xint32(); test_decode_953x3(); test_decode_953x2115(); test_decode_953x6343(); test_decode_953xint16(); test_decode_953xint32(); test_decode_1013x3(); test_decode_1013x2393(); test_decode_1013x7177(); test_decode_1013xint16(); test_decode_1013xint32(); test_decode_1277x3(); test_decode_1277x2627(); test_decode_1277x7879(); test_decode_1277xint16(); test_decode_1277xint32(); test_decode_int16(); test_encode_653x3(); test_encode_653x1541(); test_encode_653x1541round(); test_encode_653x4621(); test_encode_653xfreeze3(); test_encode_653xint16(); test_encode_761x3(); test_encode_761x1531(); test_encode_761x1531round(); test_encode_761x4591(); test_encode_761xfreeze3(); test_encode_761xint16(); test_encode_857x3(); test_encode_857x1723(); test_encode_857x1723round(); test_encode_857x5167(); test_encode_857xfreeze3(); test_encode_857xint16(); test_encode_953x3(); test_encode_953x2115(); test_encode_953x2115round(); test_encode_953x6343(); test_encode_953xfreeze3(); test_encode_953xint16(); test_encode_1013x3(); test_encode_1013x2393(); test_encode_1013x2393round(); test_encode_1013x7177(); test_encode_1013xfreeze3(); test_encode_1013xint16(); test_encode_1277x3(); test_encode_1277x2627(); test_encode_1277x2627round(); test_encode_1277x7879(); test_encode_1277xfreeze3(); test_encode_1277xint16(); test_encode_int16(); test_sort_int32(); test_sort_uint32(); test_core_inv3sntrup653(); test_core_inv3sntrup761(); test_core_inv3sntrup857(); test_core_inv3sntrup953(); test_core_inv3sntrup1013(); test_core_inv3sntrup1277(); test_core_invsntrup653(); test_core_invsntrup761(); test_core_invsntrup857(); test_core_invsntrup953(); test_core_invsntrup1013(); test_core_invsntrup1277(); test_core_mult3sntrup653(); test_core_mult3sntrup761(); test_core_mult3sntrup857(); test_core_mult3sntrup953(); test_core_mult3sntrup1013(); test_core_mult3sntrup1277(); test_core_multsntrup653(); test_core_multsntrup761(); test_core_multsntrup857(); test_core_multsntrup953(); test_core_multsntrup1013(); test_core_multsntrup1277(); test_core_scale3sntrup653(); test_core_scale3sntrup761(); test_core_scale3sntrup857(); test_core_scale3sntrup953(); test_core_scale3sntrup1013(); test_core_scale3sntrup1277(); test_core_weightsntrup653(); test_core_weightsntrup761(); test_core_weightsntrup857(); test_core_weightsntrup953(); test_core_weightsntrup1013(); test_core_weightsntrup1277(); test_core_wforcesntrup653(); test_core_wforcesntrup761(); test_core_wforcesntrup857(); test_core_wforcesntrup953(); test_core_wforcesntrup1013(); test_core_wforcesntrup1277(); test_kem_sntrup653(); test_kem_sntrup761(); test_kem_sntrup857(); test_kem_sntrup953(); test_kem_sntrup1013(); test_kem_sntrup1277(); if (!ok) { printf("some tests failed\n"); return 100; } printf("all tests succeeded\n"); return 0; } libntruprime-20241021/command/ntruprime-test_core_inv3sntrup1013.c0000644000000000000000000011322014705505542023503 0ustar rootroot/* ----- core/inv3sntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_inv3sntrup1013_checksums[] = { "c0ca4000b778d934025bb5cdc7b051f6f82600f30ccee2f9bfc39162647480df", "a6adb01164dcef4fd539877c8964b38ba3bcea1cef00a9d9e410b9c40bdab2e5", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_inv3sntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_inv3sntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_inv3sntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_inv3sntrup1013_CONSTBYTES static void *storage_core_inv3sntrup1013_h; static unsigned char *test_core_inv3sntrup1013_h; static void *storage_core_inv3sntrup1013_n; static unsigned char *test_core_inv3sntrup1013_n; static void *storage_core_inv3sntrup1013_k; static unsigned char *test_core_inv3sntrup1013_k; static void *storage_core_inv3sntrup1013_c; static unsigned char *test_core_inv3sntrup1013_c; static void *storage_core_inv3sntrup1013_h2; static unsigned char *test_core_inv3sntrup1013_h2; static void *storage_core_inv3sntrup1013_n2; static unsigned char *test_core_inv3sntrup1013_n2; static void *storage_core_inv3sntrup1013_k2; static unsigned char *test_core_inv3sntrup1013_k2; static void *storage_core_inv3sntrup1013_c2; static unsigned char *test_core_inv3sntrup1013_c2; #define precomputed_core_inv3sntrup1013_NUM 5 static const unsigned char precomputed_core_inv3sntrup1013_h[precomputed_core_inv3sntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {1,0,0,0,255,255,1,255,1,255,1,1,0,1,1,0,1,255,255,255,255,255,1,0,1,1,0,1,255,0,1,255,0,255,1,1,0,1,255,0,255,0,0,255,0,0,255,0,0,0,255,255,0,1,0,255,1,255,1,0,0,1,255,0,0,255,255,255,255,1,1,1,0,1,255,255,1,255,255,0,1,255,0,1,255,0,1,255,1,1,1,255,1,1,0,255,1,255,255,0,0,1,255,0,0,255,1,0,0,255,1,1,0,0,1,1,255,1,255,255,1,1,255,1,255,255,1,255,0,255,0,1,1,1,255,1,1,0,1,1,255,1,0,0,1,255,0,0,0,255,0,1,0,0,0,0,0,1,0,255,1,255,1,0,1,1,0,0,0,0,1,0,1,0,255,0,0,255,255,1,255,1,1,0,1,1,0,0,0,0,255,0,0,0,1,0,255,255,0,0,1,255,255,255,1,1,0,255,0,0,1,0,255,1,255,255,255,1,1,255,1,1,255,255,0,0,0,255,0,0,1,0,255,255,255,1,255,255,1,0,0,0,255,0,1,0,1,255,255,255,255,1,1,0,0,1,0,255,255,255,0,0,255,255,0,0,1,1,1,0,255,0,1,1,0,0,255,1,0,1,1,255,255,1,1,0,1,255,0,1,1,255,0,255,1,255,0,0,0,255,0,255,1,0,1,1,255,0,0,255,0,1,255,0,1,0,255,255,0,0,255,255,0,0,255,0,0,1,1,255,1,1,255,255,255,255,1,0,255,255,0,1,0,255,1,255,0,0,0,255,0,255,0,1,255,0,1,0,255,1,1,1,1,1,255,255,1,1,0,1,255,255,0,255,1,1,255,255,0,0,0,255,1,0,0,0,1,1,1,1,0,0,0,255,0,0,1,1,0,255,0,0,255,0,1,255,1,1,1,1,1,255,0,255,255,255,255,0,1,1,255,0,255,255,0,255,1,255,255,0,0,0,0,1,0,255,255,0,1,0,255,0,1,255,255,0,255,1,0,255,255,1,0,0,1,1,1,255,1,1,255,1,0,1,1,255,1,1,0,255,1,1,255,255,1,255,255,0,0,1,255,0,0,255,0,1,1,255,255,1,0,0,0,255,0,0,1,1,0,255,255,255,1,0,1,255,1,0,255,1,1,255,255,0,0,255,0,0,255,1,255,0,1,0,255,255,1,0,255,0,1,1,1,255,1,1,0,255,1,255,255,1,0,255,0,255,0,0,0,255,255,255,255,0,1,1,0,0,255,1,255,1,1,255,1,0,255,0,255,0,0,0,0,1,0,0,1,255,1,0,1,255,1,0,1,0,1,0,0,1,1,1,1,255,1,0,255,1,255,255,1,1,255,0,1,255,1,255,1,1,1,1,255,255,0,1,1,255,255,255,1,255,255,255,255,255,0,0,255,255,255,255,255,255,255,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,255,255,0,255,255,0,0,1,0,1,255,255,255,0,0,1,1,255,0,0,0,255,0,1,0,255,0,0,255,255,0,0,0,255,0,1,0,0,0,0,255,0,255,1,1,255,0,255,255,255,1,0,1,0,0,1,1,255,1,255,255,1,0,255,0,255,255,255,0,1,1,1,1,1,0,255,0,1,0,255,255,1,0,0,1,0,1,255,1,255,1,0,255,255,1,255,1,1,0,255,1,255,1,0,0,1,0,0,0,255,0,0,1,1,255,1,255,1,1,255,1,1,1,0,255,0,255,0,1,255,255,1,0,255,255,255,0,1,0,0,1,0,0,255,1,255,255,0,255,1,0,1,0,255,1,0,255,1,1,1,1,0,255,0,0,0,1,255,0,255,0,0,0,255,1,0,255,0,1,1,0,1,1,0,255,1,0,0,1,1,1,0,1,255,1,0,0,0,255,0,1,1,1,0,255,255,1,255,1,1,255,0,0,255,1,255,255,1,1,255,0,1,255,0,255,255,1,1,0,255,255,255,255,1,0,0,255,0,0,255,1,255,1,1,0,255,255,255,0,255,1,255,255,0,255,1,255,0,255,0,0,0,255,1,1,255,255,1,0,1,0,1,1,255,1,255,0,255,0,255,255,0,255,255,0,0,255,0,255,0,255,0,0,255,255,0,1,1,255,1,0,255,255,1,1,1,255,1,1,1,255,0,1,1,255,0,255,1,255,1,255,255,1,255,1,1,0,1,1,255,1,1,255,255,255,1,1,0,0,0,255,0,0,1,255,0,1,1,255,0,1,0,1,0,1,0,0,1,1,1,255,1,0}, {0,0,255,255,255,255,0,1,255,0,1,1,255,0,255,255,1,255,255,0,1,0,1,1,0,0,255,255,1,1,0,1,1,1,1,0,255,1,0,255,0,255,0,0,1,255,0,1,0,255,1,1,0,0,255,1,0,1,0,0,0,255,255,1,255,1,0,0,1,1,1,255,0,255,0,255,1,255,255,0,255,1,1,255,1,1,1,1,255,0,1,1,1,0,1,0,1,1,0,1,0,1,255,255,255,255,0,0,1,0,255,255,255,1,0,255,0,1,255,1,0,0,0,0,255,0,255,255,255,0,255,1,1,1,1,1,1,255,0,255,1,1,1,1,255,1,0,1,0,1,1,1,1,255,0,255,1,1,255,0,255,0,1,1,0,255,1,1,1,1,1,255,255,0,1,0,255,0,0,1,1,255,1,1,0,255,0,0,255,255,255,255,1,1,255,255,0,1,255,255,0,1,0,255,1,255,255,1,1,255,0,0,1,255,1,1,1,1,1,255,1,0,1,0,0,1,1,1,255,0,255,1,255,0,255,0,255,255,0,0,0,255,1,0,255,0,255,1,0,1,1,255,0,255,0,0,0,0,255,0,255,1,0,0,1,0,0,255,255,1,1,255,0,0,255,0,1,255,255,255,1,0,255,255,255,0,1,1,1,255,0,0,1,0,1,0,255,0,255,1,255,255,1,1,255,255,255,0,1,0,255,255,255,255,255,1,255,255,0,1,255,1,1,255,255,1,0,1,1,255,255,255,0,255,255,255,255,1,255,255,0,1,1,255,255,0,0,0,0,1,1,0,1,1,255,1,255,1,255,1,0,0,255,0,255,255,255,0,255,1,255,255,0,255,0,1,0,255,255,0,255,255,1,1,1,255,1,0,1,255,255,1,0,0,255,0,255,0,0,0,255,1,255,255,255,255,0,0,255,255,1,255,1,1,255,0,1,255,255,0,0,255,255,255,255,1,255,255,0,255,0,255,1,1,255,1,255,1,255,255,255,255,255,0,1,0,255,1,255,0,0,0,0,0,1,255,255,0,255,255,1,1,0,1,1,0,255,255,0,255,1,0,0,1,255,1,1,255,1,0,255,255,0,255,1,0,1,255,255,0,0,255,255,0,255,1,0,0,0,255,1,1,255,255,255,0,1,0,255,1,0,255,0,0,0,255,1,0,255,1,255,1,1,255,255,255,0,255,255,0,255,0,1,255,1,1,0,1,1,1,0,255,1,1,0,0,0,0,255,0,0,1,0,1,255,1,0,0,1,1,255,1,255,0,255,255,1,0,1,0,0,1,0,0,0,1,1,0,255,255,0,0,1,1,255,0,0,1,1,0,1,1,255,255,0,1,255,0,255,255,1,255,255,0,255,255,1,0,255,0,0,1,1,255,0,0,255,1,0,255,255,0,1,1,255,1,1,0,0,0,1,0,255,255,1,255,255,1,255,0,1,255,0,255,255,0,0,1,255,255,0,0,255,0,1,0,1,255,1,0,1,0,1,1,255,1,0,1,0,1,1,0,255,0,1,255,0,0,0,255,255,1,0,1,1,0,255,0,1,255,1,255,0,255,255,255,0,0,255,1,255,1,255,1,0,1,255,255,1,0,1,0,1,1,1,0,0,255,1,1,1,255,0,255,1,1,0,0,0,0,0,255,1,1,255,255,0,1,0,255,0,1,255,1,255,1,1,1,1,1,1,1,255,255,255,0,1,0,255,1,1,0,1,255,1,1,255,1,0,0,0,0,255,255,1,1,255,1,255,0,1,0,0,255,255,1,255,1,1,1,255,0,255,1,0,255,1,0,1,255,255,1,0,1,0,1,0,255,255,1,1,1,1,255,0,255,1,1,0,1,1,255,255,255,1,255,0,1,1,255,0,0,1,255,0,1,1,255,0,255,0,0,1,0,0,1,255,255,0,1,1,1,0,255,255,255,255,255,1,0,1,255,0,1,0,255,255,1,255,0,1,1,0,255,0,0,255,0,255,1,1,0,255,1,0,1,255,1,1,0,1,0,0,1,0,255,1,0,1,1,1,0,0,255,1,1,255,1,255,0,0,0,255,1,0,1,1,255,1,1,0,1,0,0,255,255,255,1,1,255,0,255,1,1,255,0,1,255,0,1,1,0,1,255,0,255,0,1,1,255,255,255,255,0,0,255,255,1,255,0,1,255,0,0,255,255,255,255,0,255,0,1,0,255,0,1,255,255,1,0,1,255,1,1,1,0,1,1,1,255,255,255,255,0,0,255,0,1,255,255,0,0,255,0,255,0,1,1,1,255,0,255,255,0}, {0,255,255,0,1,0,255,0,1,255,1,1,1,0,255,0,255,1,0,255,255,255,1,0,255,1,0,0,0,0,0,0,1,0,1,255,0,255,255,1,1,1,255,0,255,255,0,1,0,1,255,255,0,0,0,0,255,1,0,0,1,0,255,1,0,0,255,1,0,1,0,0,1,1,255,255,255,1,255,1,255,1,0,0,1,255,0,255,1,1,0,1,0,1,255,1,255,255,1,0,255,255,0,255,0,255,1,1,1,0,0,0,0,255,0,255,0,1,255,255,0,0,1,255,255,1,0,255,0,255,0,1,1,255,0,255,255,255,255,0,255,255,0,0,255,255,1,0,0,0,0,255,255,255,255,0,1,255,0,255,255,0,1,255,1,0,255,0,255,255,1,0,0,1,1,255,255,255,255,0,1,0,1,1,1,255,0,0,0,255,0,255,255,0,0,0,255,255,1,1,1,255,255,0,255,0,255,1,1,255,0,0,255,255,255,1,255,255,255,1,0,255,255,1,0,255,0,0,1,255,1,1,0,0,1,255,1,0,1,255,1,255,1,0,0,0,1,0,255,0,0,1,0,0,1,255,255,0,0,1,1,0,1,1,0,1,1,1,255,1,1,0,1,1,1,255,255,255,1,255,1,255,0,255,0,0,255,0,0,0,0,255,255,0,1,1,1,255,0,0,1,255,1,255,255,0,0,0,255,1,1,255,1,0,1,255,1,0,255,1,255,255,1,1,0,0,255,1,255,0,255,0,0,1,255,1,1,0,0,255,0,255,255,0,255,1,1,255,255,0,255,1,255,0,1,1,1,0,255,255,0,0,0,255,0,1,0,1,1,0,255,0,255,1,255,255,1,0,0,255,0,0,255,255,255,0,0,255,255,1,0,1,0,1,1,1,0,1,0,1,0,0,255,0,1,0,0,255,0,0,255,0,1,1,1,1,1,0,255,255,0,255,255,255,0,1,255,255,255,0,1,0,255,1,1,255,1,0,1,0,0,1,0,255,255,1,0,0,0,0,0,255,1,1,0,1,0,0,1,1,255,0,0,1,1,1,0,0,1,0,1,0,255,255,255,1,1,0,1,255,0,1,255,1,255,1,1,1,0,1,255,0,255,255,0,255,1,1,255,1,0,1,1,255,1,0,255,255,255,255,255,255,1,255,0,0,255,1,0,0,255,0,1,1,1,0,0,0,0,1,255,1,0,1,255,255,0,1,255,0,1,1,255,1,255,0,0,0,255,255,0,0,0,0,255,0,255,255,255,255,1,1,1,0,0,1,0,0,0,1,1,1,1,0,255,255,1,0,1,0,255,255,255,1,1,255,0,255,255,0,255,1,1,1,255,255,1,1,255,0,255,1,0,1,1,1,255,0,255,1,1,0,1,255,1,255,255,1,0,255,255,0,1,255,1,0,0,255,1,1,255,1,1,1,1,0,0,255,0,255,1,255,255,0,1,255,0,1,1,1,1,0,1,1,0,1,255,0,0,0,255,255,255,1,0,0,255,0,1,1,255,0,1,1,1,255,1,255,255,0,255,0,1,255,255,255,1,0,0,1,1,255,255,0,0,255,0,1,1,255,255,0,0,0,1,1,0,255,0,0,1,0,255,0,255,0,0,0,1,1,1,0,1,0,1,0,1,0,0,1,0,0,0,1,0,255,255,0,0,255,1,255,0,0,1,0,1,255,255,255,1,1,0,0,1,1,1,1,255,0,1,255,0,255,1,255,0,1,255,1,0,255,1,0,255,1,0,255,1,0,1,1,0,1,255,0,1,0,0,255,255,1,1,255,0,1,1,1,0,255,0,0,255,255,255,0,1,1,255,255,0,1,0,1,255,0,1,0,0,255,1,0,0,0,255,1,0,0,255,255,255,1,1,0,255,1,0,1,255,255,255,0,0,1,0,0,1,0,255,1,255,0,1,255,255,0,1,1,255,1,0,1,1,1,0,1,1,255,0,0,255,255,1,0,1,255,1,0,255,0,0,255,1,1,0,255,255,1,255,1,0,0,255,255,0,255,1,0,255,255,1,0,0,1,0,255,1,0,0,1,0,255,255,1,0,0,1,0,0,255,1,255,1,255,0,0,1,255,1,0,255,1,255,0,0,0,255,0,255,1,0,0,0,0,1,0,1,0,0,0,1,255,255,255,1,0,1,255,0,255,0,1,255,1,1,1,0,0,255,255,255,0,1,0,255,255,1,0,0,0,0,1,255,1,1,255,1,0,1,0,0,0,0,1,0,1,1,1,0,0,255,0,1,1,0,255,1,0,255,1,255,1,1,0}, {1,1,0,1,0,1,0,1,0,255,0,1,0,255,255,255,255,1,0,1,0,1,0,255,255,1,1,255,0,1,0,1,0,1,0,255,1,255,0,0,1,0,0,0,255,1,1,0,255,255,255,1,0,0,1,1,1,255,255,0,255,255,0,0,255,0,0,255,0,1,1,0,0,255,0,255,0,1,0,0,255,0,255,255,1,255,1,255,0,0,0,1,1,0,1,0,0,0,0,0,255,255,1,0,255,0,255,1,1,0,255,255,0,1,255,1,1,0,255,1,0,0,0,255,0,255,255,255,255,255,0,1,255,255,255,255,255,0,1,0,255,0,0,255,0,1,255,255,255,0,0,0,255,0,255,0,255,255,1,1,1,1,0,1,1,1,0,1,1,0,255,255,255,255,255,255,0,255,1,255,255,1,1,1,0,0,1,255,0,1,1,255,1,255,0,0,255,0,1,0,255,0,1,255,255,1,1,0,255,0,255,255,1,255,255,1,0,0,255,1,1,1,255,255,255,255,0,1,255,0,0,1,1,255,255,0,1,1,0,0,0,0,0,1,1,0,255,0,0,255,255,0,1,0,1,0,0,0,255,0,1,255,1,255,0,255,1,0,255,0,255,1,255,255,255,255,0,0,1,1,255,1,0,255,255,255,255,255,1,0,255,1,255,0,0,1,1,1,0,1,255,1,0,0,255,0,1,0,1,255,1,1,255,0,255,255,255,255,0,0,1,255,255,1,1,1,0,1,0,255,0,1,255,0,0,255,1,0,0,255,1,1,0,0,0,255,1,1,1,255,1,1,255,0,255,255,255,255,1,0,255,255,255,0,1,0,1,255,255,1,0,0,255,255,255,0,1,0,1,1,0,255,1,255,1,255,0,0,1,255,0,255,255,1,255,0,1,0,0,1,0,1,255,1,0,255,255,0,1,0,255,1,0,1,0,1,255,255,1,255,0,255,255,1,0,255,1,255,0,255,255,1,255,0,255,0,0,1,1,1,0,1,0,0,0,1,255,255,0,1,0,1,0,0,255,1,0,0,255,1,0,255,0,1,1,0,1,1,255,0,0,255,255,1,255,0,255,0,1,255,0,255,1,0,1,0,0,255,1,1,0,255,255,1,255,1,1,0,0,255,255,0,1,0,1,255,255,255,1,1,1,255,0,1,255,1,1,255,0,1,1,255,1,0,0,255,255,255,1,255,1,0,1,255,255,1,255,0,0,255,255,1,255,1,255,0,1,1,0,0,1,0,0,0,1,1,1,0,0,0,0,255,1,1,255,255,1,255,0,1,1,1,255,1,1,255,255,255,1,0,255,255,0,1,255,0,0,0,0,255,0,255,0,255,1,0,0,1,1,0,255,0,0,0,1,0,1,1,1,1,0,255,255,0,1,255,1,255,255,0,0,0,1,255,0,1,0,255,1,0,0,255,0,1,255,255,0,0,0,255,0,0,1,0,0,1,255,1,1,0,0,1,0,0,1,1,0,255,1,255,0,255,255,255,255,0,255,1,0,0,255,1,1,1,255,1,0,255,1,1,0,0,1,0,1,1,255,0,1,1,1,1,255,1,255,0,1,1,1,1,1,0,1,255,1,1,0,1,255,0,1,0,255,255,255,1,0,255,255,1,255,0,0,1,1,0,255,0,0,255,0,0,1,255,0,0,1,1,1,0,1,1,255,1,255,0,255,255,255,255,255,255,0,255,1,1,255,0,255,255,0,255,1,0,255,1,1,255,0,255,0,0,0,0,255,0,0,1,1,255,0,255,255,255,0,0,1,1,1,0,255,255,1,1,1,255,1,0,255,1,0,255,255,1,255,255,1,1,255,0,1,0,0,255,255,255,0,255,255,255,0,0,1,0,255,1,0,0,255,1,255,255,255,0,255,0,255,0,255,255,255,255,0,255,255,1,255,0,255,255,0,1,255,1,0,0,0,255,0,1,0,0,1,1,1,255,0,255,0,1,255,0,255,1,0,0,1,0,0,0,1,0,0,255,1,0,1,1,1,0,0,1,255,255,0,1,1,1,255,0,0,1,255,1,1,0,0,255,0,0,1,255,1,255,255,255,1,255,0,0,0,0,255,255,0,0,255,255,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,255,0,255,1,1,0,0,255,1,255,1,255,255,0,0,255,0,0,0,1,1,0,255,0,255,0,0,0,1,255,0,0,255,0,0,1,255,1,1,0,1,1,0,0,255,1,255,255,1,0,0,1,1,1,255,1,0,0,255,1,255,255,1,255,0,255,255,255,0,255,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255}, } ; static const unsigned char precomputed_core_inv3sntrup1013_n[precomputed_core_inv3sntrup1013_NUM][crypto_core_INPUTBYTES] = { {24,117,228,237,236,149,109,235,73,118,166,234,104,156,140,12,127,125,22,179,102,74,135,170,248,5,224,247,68,192,201,126,227,132,57,55,213,20,206,135,19,5,122,192,77,63,148,78,189,203,117,2,14,142,235,150,198,90,152,220,197,192,165,143,20,116,49,201,135,228,187,203,181,254,38,190,44,250,219,84,135,235,16,30,200,235,104,182,57,35,76,91,21,109,144,170,255,50,243,73,127,108,231,22,101,170,192,78,241,115,93,184,235,75,225,6,72,166,38,218,87,40,10,1,29,126,90,96,231,223,219,56,207,124,181,54,191,86,110,158,179,55,168,40,208,75,75,195,202,140,169,196,47,82,11,81,175,81,227,72,157,171,29,162,106,42,192,230,7,227,125,33,150,62,6,181,166,20,151,104,71,127,174,93,234,89,240,120,111,108,105,59,138,186,11,183,98,159,206,39,32,52,237,20,98,144,15,122,242,59,115,154,25,56,152,111,19,6,102,109,219,59,89,217,83,82,161,21,28,221,85,151,212,64,100,194,166,45,130,158,172,89,87,225,119,172,78,242,103,21,110,94,186,143,53,1,181,5,49,117,238,226,106,147,208,13,242,55,110,84,174,36,92,144,218,192,34,72,46,18,142,55,94,127,124,217,167,196,72,47,176,75,138,196,66,219,125,39,40,199,89,86,128,227,74,38,35,217,101,159,245,113,199,250,99,111,4,59,206,86,136,121,191,3,66,53,148,66,5,94,100,62,102,242,37,230,45,236,2,67,106,97,158,189,254,143,104,97,253,12,212,23,55,188,209,120,45,147,175,93,141,106,241,225,245,218,223,223,131,2,55,100,181,72,55,41,135,172,143,41,100,233,224,242,4,187,246,117,243,145,120,133,236,120,156,134,39,76,50,215,31,247,19,235,60,80,176,45,232,108,157,91,181,41,19,175,130,222,210,177,191,90,11,10,150,235,191,231,228,54,223,206,168,87,101,164,185,120,94,204,36,182,82,177,65,252,28,61,35,248,204,40,238,205,6,56,104,60,56,135,120,1,227,35,197,137,224,59,17,107,28,133,218,88,37,143,148,35,187,245,113,209,132,47,232,143,120,70,27,93,39,110,17,142,193,95,247,12,7,41,247,21,169,137,109,192,115,161,5,125,28,108,238,140,225,52,210,216,210,249,40,197,203,85,187,72,6,239,18,177,226,105,100,223,103,179,67,9,108,153,104,213,36,163,252,117,158,156,179,32,68,139,182,142,225,147,47,23,43,196,100,16,189,155,245,129,44,134,124,174,209,34,46,144,103,240,186,198,136,107,82,217,65,228,77,216,203,202,135,201,144,191,34,3,110,200,243,122,4,96,176,196,210,48,202,42,93,123,158,143,111,152,39,146,98,239,85,0,4,1,153,116,33,114,107,211,238,27,66,89,76,179,250,250,205,10,181,133,248,94,241,168,86,238,126,59,66,241,161,166,193,216,91,45,107,202,33,73,56,64,183,154,93,3,162,16,243,208,2,72,24,103,252,126,148,111,227,216,157,171,165,44,179,22,95,79,82,121,61,26,140,84,249,0,81,229,106,62,119,151,52,109,241,254,157,106,128,230,194,147,130,80,241,118,210,59,227,158,131,235,73,215,140,87,185,27,4,88,164,201,90,138,238,243,98,98,175,42,150,169,10,230,115,216,235,86,80,155,228,242,235,216,47,148,240,194,195,44,163,216,51,143,174,79,109,233,163,84,89,195,243,152,204,141,21,39,88,154,159,120,235,157,229,185,81,109,71,245,100,107,162,61,62,13,149,239,100,40,200,217,158,207,194,144,131,238,2,247,249,38,252,85,92,160,181,121,223,208,51,85,76,204,5,231,22,195,72,161,106,216,229,85,53,122,250,242,109,198,12,46,58,85,237,233,220,235,251,4,207,173,193,191,10,143,152,130,79,147,62,128,191,55,238,190,21,249,250,89,198,8,230,137,40,151,5,76,202,150,116,160,113,42,239,119,36,234,3,75,157,106,83,247,113,196,88,53,106,144,252,92,144,34,65,238,212,180,10,49,120,114,160,101,104,120,188,64,17,135,255,110,142,100,175,253,146,32,8,237,145,119,178,192,201,128,240,18,83,220,254,217,178,225,18,169,232,94,216,211,121,206,210,220,169,209,194,177,111,238,243,64,9,245,196,16,0,107,87,142,9,233,203,119,81,12,1,104,228,171,96,146,196,35,200,30,49,35,108,50,91,172,14,112,37,206,107,33,178,245,67,88,151,52,120,210,3,124,176,26,205,1,99,15,134}, {245,79,240,241,16,69,141,237,63,68,152,94,111,212,116,172,151,114,85,172,28,66,224,135,165,29,212,5,78,239,103,174,164,121,120,208,121,45,175,87,240,124,10,249,58,169,170,217,101,47,233,48,157,161,226,83,233,1,75,12,3,34,154,245,63,127,143,17,135,223,185,192,226,252,69,246,112,205,20,247,142,79,166,87,95,237,13,107,17,194,192,216,37,106,92,7,229,135,136,197,36,188,251,211,121,43,39,104,182,33,232,78,124,50,164,187,211,119,243,11,181,100,202,139,197,157,106,213,44,18,245,138,34,179,49,201,138,59,86,151,147,255,63,137,236,144,91,70,153,208,23,228,35,93,3,130,248,191,212,169,201,91,135,195,237,189,67,214,251,244,217,105,58,39,142,119,57,52,60,174,235,246,120,97,161,241,202,62,82,119,220,77,239,95,150,159,125,47,86,172,127,72,222,106,174,4,137,99,172,90,67,83,136,183,30,41,38,189,173,137,99,216,190,212,243,1,50,66,83,158,209,34,185,147,210,19,95,237,223,243,61,49,160,230,119,4,132,179,211,137,159,235,59,16,162,240,132,16,168,110,163,21,70,3,13,207,76,4,131,112,184,143,82,219,95,116,122,50,123,124,126,76,210,201,229,98,26,163,230,136,128,197,15,86,85,117,177,157,132,155,233,119,116,227,182,19,161,3,8,251,253,220,53,178,12,110,171,138,77,253,201,240,87,108,115,185,33,190,59,251,198,71,203,132,171,31,62,118,49,126,60,193,130,78,224,241,206,14,254,185,152,211,205,194,175,156,67,194,165,86,207,52,249,103,145,107,158,102,203,192,24,71,61,63,151,203,62,217,1,187,169,146,9,74,66,172,231,161,189,28,134,199,41,103,125,113,74,100,198,42,49,140,66,31,18,118,145,154,25,243,115,229,117,94,160,11,173,203,135,224,214,137,178,233,40,178,157,48,63,83,62,204,155,21,169,159,97,206,183,143,191,140,90,164,50,254,46,239,208,66,37,176,215,34,138,26,229,174,55,182,7,238,0,13,135,129,148,167,0,22,248,102,150,70,245,2,203,60,4,150,53,192,220,131,203,40,26,76,134,58,213,217,151,199,225,130,196,25,208,161,91,187,149,169,242,178,24,31,244,99,61,237,208,226,45,69,224,27,234,154,10,199,199,10,146,117,157,223,2,114,48,2,136,211,15,129,97,185,33,158,145,35,174,191,34,49,15,120,13,236,171,66,187,35,143,70,202,37,53,207,148,142,142,38,91,182,179,109,45,227,157,13,185,18,91,28,142,84,148,70,232,246,82,159,115,211,161,176,114,216,98,122,244,5,253,156,144,2,65,134,144,183,50,198,245,132,245,233,142,95,120,230,150,108,25,139,250,61,224,208,42,255,82,134,194,117,88,244,30,158,102,231,158,231,91,249,48,91,41,31,135,213,107,109,247,21,231,156,92,142,208,148,145,89,136,21,81,136,183,6,76,167,156,235,88,86,27,125,250,122,47,111,34,36,131,113,176,248,56,179,86,28,164,131,105,18,242,232,68,182,107,181,192,179,74,44,30,158,103,77,5,54,199,33,176,202,72,232,221,237,2,115,239,207,51,242,127,181,194,248,195,158,107,61,68,84,125,191,207,113,27,96,165,144,41,221,131,222,197,52,181,163,111,172,66,158,27,150,57,150,130,179,226,90,37,225,99,108,61,20,208,157,223,133,111,132,221,78,180,31,46,193,174,80,194,163,170,2,55,217,33,19,225,184,236,141,255,50,45,249,198,182,129,139,168,146,204,64,158,54,117,71,105,109,64,50,184,135,193,129,244,120,47,181,136,85,233,235,250,132,222,197,45,239,129,144,130,65,183,10,125,237,209,11,212,14,119,25,70,14,190,47,138,92,122,8,83,92,97,79,248,115,23,113,225,98,35,49,189,94,63,215,105,18,185,34,56,78,1,240,244,68,213,227,161,48,130,68,17,132,136,141,181,217,160,107,116,180,212,179,106,1,53,113,199,244,75,50,149,244,92,119,70,122,225,108,8,118,2,64,187,94,116,236,23,169,144,182,174,254,157,172,155,127,72,192,28,10,19,194,220,54,58,168,235,178,75,4,177,105,141,220,39,103,151,154,232,31,115,245,239,7,100,158,203,222,208,192,209,132,117,216,199,34,223,132,235,114,232,254,250,121,44,132,1,105,39,5,19,246,66,202,142,102,215,236,241,24,139,91,167,128,17,141,220,65,23,9,45,131,47,189,184,255,30,198,172,249,201,234,12,202,192}, {174,126,126,41,183,62,79,152,197,105,202,255,166,183,139,128,33,67,240,69,133,176,49,47,221,61,169,74,88,53,136,192,208,227,38,132,199,127,135,32,129,210,155,12,102,159,14,153,236,46,109,226,234,236,125,143,254,120,85,180,115,92,137,35,191,169,163,118,70,222,157,125,58,176,222,109,109,54,177,200,91,125,111,97,225,80,133,239,24,194,111,130,183,84,194,199,90,252,151,47,19,7,112,151,30,1,51,37,195,211,138,118,233,10,245,190,49,36,74,237,181,23,5,163,251,199,86,43,223,107,205,245,88,253,228,70,46,215,100,176,44,9,41,233,239,35,255,36,235,24,115,163,196,188,74,83,87,39,227,67,243,82,73,65,158,132,233,195,235,21,17,151,71,99,53,7,175,202,68,110,180,227,165,105,185,215,95,144,109,69,74,202,106,225,218,102,143,217,100,12,36,193,81,2,7,29,6,211,17,150,71,111,24,165,236,197,99,169,15,79,114,67,50,101,171,55,185,100,13,111,127,102,59,81,183,170,17,56,181,73,190,3,128,228,26,48,184,126,34,82,204,68,0,243,129,75,178,4,183,105,177,11,146,150,33,109,231,93,230,110,122,208,109,196,92,192,132,109,167,166,11,114,39,213,78,252,194,250,140,49,239,146,88,184,178,206,210,149,121,101,78,120,197,77,5,222,166,42,86,113,172,68,4,119,32,233,194,244,232,67,50,82,253,161,206,20,145,82,120,2,15,22,228,60,136,153,146,226,166,184,154,2,150,13,243,2,148,175,149,65,139,17,212,119,174,102,151,237,179,180,164,18,84,28,247,226,221,148,68,83,34,190,38,60,223,198,138,89,74,10,22,126,144,102,66,50,200,83,14,81,11,6,36,106,117,177,36,184,120,105,30,95,218,35,100,214,233,183,3,194,240,39,229,7,235,190,183,51,72,197,39,247,9,49,25,250,35,119,129,184,114,126,215,206,99,9,156,120,143,160,188,48,231,105,128,104,131,25,207,109,12,154,135,174,180,86,49,200,178,193,105,0,23,89,31,17,92,208,48,62,75,170,231,114,181,120,200,237,28,181,194,100,251,64,114,147,218,38,119,83,68,54,241,245,243,7,194,249,198,136,46,248,111,234,180,52,207,177,37,209,202,116,24,249,225,252,94,63,45,68,136,42,90,95,239,166,243,156,181,107,38,195,69,18,237,120,33,136,117,140,216,219,235,74,127,139,100,170,94,95,60,31,179,188,127,31,247,149,191,41,128,218,17,128,105,133,211,99,198,95,200,10,177,127,23,26,49,62,97,149,79,132,77,53,191,130,7,96,64,127,183,49,238,241,162,250,214,249,170,88,55,36,49,204,13,12,134,140,8,50,250,141,98,232,118,40,59,76,187,100,183,48,36,239,94,176,97,247,238,94,202,245,100,177,245,127,179,127,87,127,191,157,3,164,200,10,72,136,187,4,99,179,24,21,119,19,16,240,139,36,179,78,102,194,138,68,8,46,196,55,234,149,224,130,80,243,103,166,144,16,128,189,28,51,152,106,12,189,218,211,81,12,142,47,3,152,98,238,18,25,105,39,25,191,57,209,49,22,225,199,98,219,6,250,139,4,222,51,244,196,168,61,68,195,24,67,238,145,112,123,216,228,13,58,250,78,246,79,47,14,24,188,226,85,26,0,144,73,173,147,239,45,97,250,176,133,70,154,235,54,225,75,110,107,159,16,63,207,67,23,13,107,27,56,46,65,162,89,164,131,62,118,104,150,244,145,184,79,127,203,160,62,198,60,152,168,181,39,151,7,146,205,185,70,124,218,188,144,84,62,205,74,58,14,53,154,98,30,133,213,11,178,209,147,254,21,190,237,66,166,108,129,27,122,122,4,115,151,21,215,115,115,31,250,168,157,88,37,28,243,184,191,209,65,44,103,79,52,59,138,207,211,230,27,211,157,206,168,53,60,155,29,81,172,109,191,105,191,255,15,250,131,238,220,78,84,111,175,125,200,57,160,222,86,10,254,138,237,0,3,84,77,82,136,41,177,23,119,111,113,170,7,25,59,83,117,152,139,222,178,109,112,141,131,78,3,230,195,8,21,13,152,17,40,21,15,83,84,11,19,228,174,27,222,228,252,36,214,182,130,90,12,157,43,142,29,30,189,84,216,144,228,242,207,228,118,15,41,128,165,35,230,181,97,227,223,97,176,172,51,55,56,102,5,72,38,51,154,57,242,188,88,237,53,173,60,109,128,107,118,108,25,226,116,86,18,65,5,238,233,177,16,16}, {95,74,118,227,52,231,24,183,242,32,136,51,156,239,88,116,35,179,44,230,207,158,21,58,160,1,34,88,255,236,27,63,219,206,219,250,45,90,159,59,40,65,109,195,126,205,53,110,150,128,88,208,143,248,40,53,251,102,224,180,8,225,144,27,127,23,241,117,60,13,193,94,233,0,173,39,107,162,91,125,252,79,4,179,137,65,192,165,88,64,56,129,193,18,239,146,90,112,62,129,228,163,244,146,114,119,53,202,168,38,150,151,97,129,43,18,206,245,109,28,251,23,203,148,32,14,167,34,167,91,229,158,147,105,74,25,46,154,32,173,21,190,94,37,161,245,97,94,91,11,252,179,99,249,157,180,134,0,252,30,64,242,27,113,235,213,121,200,246,181,133,67,194,97,245,207,227,22,171,139,226,13,96,176,187,118,148,221,45,231,130,1,43,92,195,100,103,107,95,24,3,143,13,242,50,27,1,123,36,100,31,55,247,151,228,150,78,179,113,98,103,156,143,32,216,161,143,227,119,216,205,132,25,142,105,236,185,216,225,202,138,24,11,211,85,68,16,140,80,196,237,81,143,35,124,66,82,117,194,72,138,160,234,119,173,246,239,39,176,190,191,47,186,3,172,36,238,44,68,110,232,245,141,116,122,255,57,58,197,117,215,227,246,199,92,174,232,16,61,2,87,235,20,28,233,193,244,11,114,92,128,230,64,52,227,213,19,170,176,90,8,11,191,216,237,191,205,47,87,52,99,242,228,127,179,162,52,238,252,238,80,95,107,214,215,211,128,244,19,150,70,225,243,119,91,106,85,181,99,205,148,124,241,130,88,170,109,117,0,156,152,245,27,19,192,7,229,26,103,132,123,139,246,212,238,232,57,58,50,61,55,18,233,119,222,228,138,22,106,66,159,231,141,211,54,71,2,198,232,173,157,120,249,112,67,9,6,192,202,201,50,204,220,221,15,69,242,55,60,141,50,146,31,19,52,193,118,184,127,136,212,53,144,25,79,193,144,109,253,81,220,7,64,186,178,234,170,76,51,158,65,20,227,47,253,210,247,148,115,254,249,192,160,224,143,249,13,178,200,248,17,99,178,201,133,164,185,110,179,241,2,252,106,244,81,206,40,6,96,190,245,251,3,145,234,13,68,58,214,129,41,131,124,223,118,76,115,106,150,169,10,84,203,113,112,76,60,178,215,60,77,238,74,141,63,180,188,178,182,158,149,32,73,205,11,60,84,181,83,151,255,239,36,6,103,214,218,255,176,220,206,79,192,194,218,23,169,66,101,120,61,132,82,214,123,245,252,158,93,177,232,83,95,68,149,25,110,16,169,188,49,14,19,192,236,221,91,87,33,92,185,210,253,220,39,149,224,200,203,109,89,122,160,42,229,186,84,84,183,149,246,25,30,150,192,40,161,102,35,145,190,107,48,164,212,231,8,95,215,37,246,147,32,62,103,137,224,188,143,30,9,177,75,39,197,189,212,85,215,254,220,107,171,176,202,238,237,136,52,196,250,159,187,211,123,52,189,213,66,121,20,109,99,114,98,120,136,235,186,119,48,131,130,92,57,124,58,108,145,118,206,173,111,115,237,83,25,43,34,191,75,191,130,148,186,230,246,89,218,76,244,8,63,134,67,121,161,3,188,31,50,249,218,224,120,251,160,221,86,115,207,115,107,203,87,158,146,166,174,16,92,116,23,233,43,207,11,207,17,209,151,237,214,32,164,205,249,127,242,58,180,144,84,74,115,105,88,90,87,123,136,224,117,97,166,38,53,58,21,57,246,86,212,89,247,28,129,124,174,114,172,249,121,63,241,93,225,235,207,40,238,79,244,163,17,198,46,139,10,1,63,162,254,232,75,7,88,253,170,138,109,65,5,140,46,213,248,235,125,137,28,36,113,102,41,194,83,199,55,208,241,36,128,102,217,88,34,78,155,124,153,95,25,225,59,100,206,178,98,151,60,106,254,210,116,54,238,159,178,228,137,113,242,173,54,77,255,231,162,174,200,80,251,173,163,140,155,162,171,4,223,169,129,41,74,111,75,187,200,89,31,100,93,228,5,233,133,50,254,191,14,83,183,194,120,229,186,160,18,194,5,235,228,18,218,88,245,237,108,234,217,206,109,142,25,1,4,23,73,205,81,187,208,159,231,184,158,185,65,61,104,13,13,152,9,219,194,49,107,140,176,15,203,154,144,105,121,117,15,50,152,81,28,152,116,16,47,185,21,142,51,226,211,202,55,174,85,187,120,93,123,104,39,212,64,161,132,54,106,75,136,255,138}, {255,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_inv3sntrup1013_k[precomputed_core_inv3sntrup1013_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_inv3sntrup1013_c[precomputed_core_inv3sntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, } ; static void test_core_inv3sntrup1013_impl(long long impl) { unsigned char *h = test_core_inv3sntrup1013_h; unsigned char *n = test_core_inv3sntrup1013_n; unsigned char *k = test_core_inv3sntrup1013_k; unsigned char *c = test_core_inv3sntrup1013_c; unsigned char *h2 = test_core_inv3sntrup1013_h2; unsigned char *n2 = test_core_inv3sntrup1013_n2; unsigned char *k2 = test_core_inv3sntrup1013_k2; unsigned char *c2 = test_core_inv3sntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup1013(impl); printf("core_inv3sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup1013_implementation(impl),ntruprime_dispatch_core_inv3sntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup1013; printf("core_inv3sntrup1013 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup1013_implementation(),ntruprime_core_inv3sntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_inv3sntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_inv3sntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_inv3sntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_inv3sntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_inv3sntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_inv3sntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_inv3sntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_inv3sntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_inv3sntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_inv3sntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_inv3sntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup1013")) return; storage_core_inv3sntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_inv3sntrup1013_h = aligned(storage_core_inv3sntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_inv3sntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_inv3sntrup1013_n = aligned(storage_core_inv3sntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_inv3sntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_inv3sntrup1013_k = aligned(storage_core_inv3sntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_inv3sntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_inv3sntrup1013_c = aligned(storage_core_inv3sntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_inv3sntrup1013_h2 = callocplus(maxalloc); test_core_inv3sntrup1013_h2 = aligned(storage_core_inv3sntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_inv3sntrup1013_n2 = callocplus(maxalloc); test_core_inv3sntrup1013_n2 = aligned(storage_core_inv3sntrup1013_n2,crypto_core_INPUTBYTES); storage_core_inv3sntrup1013_k2 = callocplus(maxalloc); test_core_inv3sntrup1013_k2 = aligned(storage_core_inv3sntrup1013_k2,crypto_core_KEYBYTES); storage_core_inv3sntrup1013_c2 = callocplus(maxalloc); test_core_inv3sntrup1013_c2 = aligned(storage_core_inv3sntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_inv3sntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup1013();++impl) forked(test_core_inv3sntrup1013_impl,impl); ++test_core_inv3sntrup1013_h; ++test_core_inv3sntrup1013_n; ++test_core_inv3sntrup1013_k; ++test_core_inv3sntrup1013_c; ++test_core_inv3sntrup1013_h2; ++test_core_inv3sntrup1013_n2; ++test_core_inv3sntrup1013_k2; ++test_core_inv3sntrup1013_c2; } free(storage_core_inv3sntrup1013_c2); free(storage_core_inv3sntrup1013_k2); free(storage_core_inv3sntrup1013_n2); free(storage_core_inv3sntrup1013_h2); free(storage_core_inv3sntrup1013_c); free(storage_core_inv3sntrup1013_k); free(storage_core_inv3sntrup1013_n); free(storage_core_inv3sntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_inv3sntrup1277.c0000644000000000000000000013214314705505542023524 0ustar rootroot/* ----- core/inv3sntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_inv3sntrup1277_checksums[] = { "b30c2b6d13108ae047f7fddc44d358fbfb15efd9cc5faf66fdd8105d67c851f5", "195786f1a3efb32081f00cff505fe0dd2b572761c809b08f8a8c57f9704bc01d", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_inv3sntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_inv3sntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_inv3sntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_inv3sntrup1277_CONSTBYTES static void *storage_core_inv3sntrup1277_h; static unsigned char *test_core_inv3sntrup1277_h; static void *storage_core_inv3sntrup1277_n; static unsigned char *test_core_inv3sntrup1277_n; static void *storage_core_inv3sntrup1277_k; static unsigned char *test_core_inv3sntrup1277_k; static void *storage_core_inv3sntrup1277_c; static unsigned char *test_core_inv3sntrup1277_c; static void *storage_core_inv3sntrup1277_h2; static unsigned char *test_core_inv3sntrup1277_h2; static void *storage_core_inv3sntrup1277_n2; static unsigned char *test_core_inv3sntrup1277_n2; static void *storage_core_inv3sntrup1277_k2; static unsigned char *test_core_inv3sntrup1277_k2; static void *storage_core_inv3sntrup1277_c2; static unsigned char *test_core_inv3sntrup1277_c2; #define precomputed_core_inv3sntrup1277_NUM 5 static const unsigned char precomputed_core_inv3sntrup1277_h[precomputed_core_inv3sntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {0,255,255,0,1,0,255,0,1,0,0,1,1,255,1,0,255,255,0,1,255,0,0,0,1,1,0,0,255,1,255,1,0,0,1,0,0,0,1,255,0,1,1,1,255,0,1,1,0,255,255,255,255,1,0,255,0,0,1,1,1,255,1,1,255,0,0,0,0,255,1,255,1,1,255,1,1,0,255,0,0,0,0,255,255,255,1,0,1,255,1,0,0,0,255,0,0,0,0,255,255,0,1,255,255,255,255,0,255,255,0,255,255,255,1,255,0,255,255,0,0,1,255,1,1,1,255,1,0,1,255,255,255,1,255,0,255,1,255,1,0,1,0,255,1,255,1,0,1,1,255,255,255,1,1,1,0,0,0,0,255,255,0,0,0,1,1,0,255,0,0,1,255,1,1,1,0,1,1,1,255,255,1,255,0,0,255,255,255,1,255,0,1,255,0,1,255,0,255,255,1,1,255,0,255,255,255,0,0,0,1,1,0,255,255,1,255,255,1,255,1,1,1,1,255,0,1,1,255,1,1,0,255,0,1,0,0,255,255,0,0,1,255,0,0,255,0,1,255,1,255,1,0,0,0,1,1,0,255,1,255,1,255,0,0,1,1,1,1,1,1,255,1,255,0,255,1,1,0,0,1,1,255,0,255,255,0,0,0,1,1,1,1,1,0,1,1,0,1,255,0,255,255,255,1,0,0,255,255,255,1,0,1,1,255,0,0,0,1,0,255,1,255,255,0,0,255,1,255,1,255,255,255,1,1,1,1,255,1,0,255,1,255,255,255,1,255,1,0,1,0,1,0,0,1,1,0,255,0,255,0,255,255,0,0,0,1,1,255,0,0,0,255,255,0,1,255,255,1,1,255,1,255,255,0,1,0,0,1,1,0,0,0,1,1,0,255,1,0,255,1,255,1,0,255,255,0,1,255,0,0,255,255,0,255,0,0,0,0,255,0,255,255,1,255,1,255,0,255,1,1,255,1,0,255,1,0,1,255,0,0,0,0,1,0,0,1,0,255,1,0,1,0,255,0,255,1,255,255,1,255,255,0,0,255,1,255,255,255,0,255,1,1,1,0,255,1,0,1,0,1,1,255,255,1,255,1,0,255,1,255,255,0,0,255,0,255,0,0,0,0,1,255,1,0,255,0,1,0,0,0,255,0,255,255,0,255,1,0,1,0,0,1,255,1,1,255,1,0,1,255,255,0,255,255,0,255,1,1,1,1,0,255,0,0,1,0,255,0,1,255,0,1,1,0,0,0,0,255,1,255,0,0,1,0,1,0,255,255,0,0,1,1,1,0,255,255,0,255,255,0,1,255,1,1,255,1,1,255,1,0,0,255,1,255,255,0,0,0,0,0,1,0,255,0,255,1,1,0,0,1,1,1,255,255,0,255,255,0,255,0,0,0,255,1,0,0,1,1,1,1,0,255,255,0,1,0,1,255,0,1,1,1,1,0,1,255,1,1,255,1,255,1,0,1,1,0,0,255,0,1,255,0,0,1,1,255,1,255,255,255,0,255,255,255,0,1,1,255,255,0,0,255,255,1,1,255,0,255,0,255,1,255,1,0,0,255,0,255,0,255,1,255,255,1,0,0,0,255,1,255,1,0,0,1,255,255,1,1,255,0,1,255,1,1,255,0,1,1,0,0,1,1,255,1,1,0,0,255,0,1,255,255,1,1,1,1,255,0,1,1,1,255,0,255,255,0,1,255,0,255,0,0,1,255,1,255,1,1,1,255,0,255,1,1,255,0,1,1,0,0,255,0,1,1,255,255,255,255,1,1,255,255,1,1,255,0,1,255,0,0,1,0,255,255,255,1,1,255,255,0,1,255,1,0,1,0,255,255,1,255,0,255,1,0,255,0,1,255,1,255,255,0,0,255,255,0,1,1,255,0,0,1,1,255,0,1,0,1,1,1,0,255,255,0,1,1,255,0,255,0,1,0,1,0,1,1,1,1,255,1,0,255,0,0,255,0,255,255,0,1,255,255,255,1,0,1,0,1,1,255,255,255,1,1,1,1,0,0,255,0,0,255,255,255,255,255,0,255,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,1,255,255,255,0,0,255,255,255,0,0,1,1,255,255,255,1,1,255,0,0,0,0,0,0,255,0,1,255,1,1,255,255,0,1,255,255,255,0,0,255,1,255,0,1,0,255,255,255,255,0,255,0,1,255,0,1,1,1,255,0,0,1,0,0,0,255,0,1,0,0,1,0,1,0,1,0,0,255,1,1,1,0,1,1,255,1,1,0,255,0,0,1,1,0,0,0,0,255,1,1,0,1,255,1,0,255,255,0,255,1,0,1,1,255,1,1,0,1,255,0,255,1,255,0,0,255,0,1,255,0,1,1,1,1,0,1,1,1,1,255,255,1,1,0,0,1,1,1,0,255,1,255,255,0,0,0,0,0,1,0,255,1,0,255,255,1,0,255,1,1,255,0,1,255,0,255,0,0,0,1,1,0,255,1,0,1,0,1,1,255,0,255,255,0,0,0,1,255,0,1,255,1,0,0,0,1,1,1,255,255,255,255,0,255,255,0,255,255,0,0,255,255,0,0,0,1,255,255,1,1,1,255,255,255,1,1,1,255,255,0,1,1,255,255,255,1,0,0,255,0,1,255,1,0,1,0,0,1,0,1,0,255,255,1,255,0,1,0,1,255,255,0,1,0,1,0,1,1,1,255,255,0,1,1,255,1,1,0,255,0,0,255,255,1,0,0,1,255,255,0,255,1,1,255,0,255,255,0,255,0,1,1,1,255,255,255,1,0,255,255,255,0,1,255,0,255,0,1,0,1,255,255,0,0,0,255,255,255,255,255,0,0,255,0,1,1,0,1,1,0,0,0}, {255,255,255,255,255,255,0,255,0,1,0,255,1,0,1,0,255,0,0,255,255,255,255,1,0,0,1,255,0,1,255,255,255,0,1,1,1,1,1,0,255,255,255,255,1,0,255,255,1,255,255,255,1,0,0,255,255,1,255,1,0,0,255,1,0,0,0,255,1,255,255,1,255,0,255,1,255,1,0,0,255,1,1,255,0,255,1,0,1,255,0,255,255,0,255,1,1,0,0,255,1,1,0,255,1,255,0,255,255,255,0,255,1,1,255,0,1,255,255,0,0,1,1,1,255,255,255,1,0,255,255,1,0,255,255,1,1,1,1,0,255,1,0,0,1,1,0,1,0,255,0,255,255,1,0,0,0,1,0,0,1,1,0,1,1,1,255,255,255,255,1,0,1,1,0,0,1,1,255,0,255,0,255,1,0,255,0,1,255,1,0,1,0,0,255,0,1,0,1,0,1,255,255,1,255,0,1,0,0,0,0,255,0,1,255,255,255,0,255,0,255,0,0,255,0,255,255,1,1,1,0,1,255,0,0,255,255,1,255,1,0,0,0,255,1,1,1,0,1,0,255,1,255,255,0,255,1,255,255,0,1,0,1,0,1,1,1,1,255,1,255,0,0,0,255,1,1,255,0,1,1,1,255,0,255,0,1,1,1,0,255,1,1,255,0,1,1,0,0,1,255,1,255,0,255,1,1,0,0,255,255,1,0,255,0,0,1,1,0,255,1,0,0,1,255,255,255,1,255,0,1,1,255,255,0,255,0,0,0,1,255,1,255,1,0,255,255,0,0,1,0,255,0,1,1,0,1,0,255,1,0,0,0,0,0,0,0,255,255,1,0,1,255,255,0,0,1,0,255,0,1,255,1,255,255,1,0,1,1,1,0,255,255,0,255,1,0,255,255,1,0,1,255,255,1,255,0,1,1,1,255,255,255,1,255,1,0,255,255,255,0,0,0,255,255,0,1,1,255,255,1,0,255,255,1,255,0,0,255,255,1,0,0,255,1,255,1,0,0,1,255,0,1,1,1,1,1,255,255,255,1,0,1,1,1,255,255,1,255,1,1,0,0,255,0,0,255,1,0,1,0,1,0,0,1,0,255,1,1,255,255,0,1,1,1,1,255,1,255,0,0,1,255,0,255,255,255,0,1,255,0,0,0,0,1,1,255,0,1,255,0,1,0,0,255,1,1,255,1,0,255,255,1,0,255,0,255,255,0,1,255,0,0,255,255,1,0,1,255,1,255,1,1,1,1,1,0,255,1,1,255,0,0,0,1,1,0,255,0,1,1,1,255,1,1,0,255,1,1,255,0,255,0,1,1,1,0,0,1,255,0,0,1,1,1,0,255,255,0,255,0,1,1,0,1,255,0,1,1,0,0,255,0,1,1,255,255,255,1,1,1,0,1,255,0,255,1,1,0,1,255,0,255,0,255,0,1,255,0,0,1,0,1,255,1,0,255,1,0,0,0,0,255,1,1,1,1,0,1,255,1,0,255,0,255,255,0,0,255,0,1,1,0,255,1,1,0,1,0,0,1,0,0,0,0,1,0,1,1,255,1,255,255,0,0,255,0,255,255,1,0,1,255,1,1,1,0,0,255,1,1,1,255,1,1,255,255,255,1,1,1,1,255,1,0,255,255,255,1,1,255,255,0,255,0,0,255,0,0,255,0,1,0,0,1,255,255,255,1,0,255,255,255,1,255,0,255,255,0,255,255,0,1,255,255,255,255,1,0,1,255,1,255,255,255,0,255,0,1,1,255,1,0,0,0,255,1,255,255,0,255,1,0,255,0,1,255,1,1,1,0,255,0,1,0,1,255,1,0,255,1,0,1,255,1,1,0,1,255,255,1,0,1,0,0,255,1,0,0,0,1,0,0,1,0,0,1,255,255,1,0,1,255,0,0,1,255,1,1,1,255,0,1,1,255,255,1,1,255,0,255,255,1,255,255,1,1,1,1,255,1,1,0,255,0,0,1,255,1,0,255,0,0,0,1,1,0,0,0,0,1,1,255,255,255,1,1,255,1,0,0,1,255,1,0,1,1,255,1,255,1,1,255,255,0,1,1,0,255,0,1,0,0,1,255,1,255,255,1,1,1,255,1,1,0,0,255,255,255,255,1,255,0,255,0,0,255,1,255,255,255,255,255,255,255,255,0,1,255,1,255,1,255,0,0,1,1,255,255,0,255,0,0,1,1,255,1,255,255,1,0,1,0,0,255,1,0,1,255,255,1,1,1,255,255,255,1,255,0,0,0,1,0,255,0,0,0,255,1,255,255,0,255,255,0,255,0,0,1,255,1,255,255,0,0,255,1,1,1,1,255,0,1,0,255,0,0,255,255,255,0,0,1,0,1,1,1,1,255,255,0,0,255,1,1,1,255,255,1,0,1,255,255,1,255,1,0,0,1,255,255,0,0,0,1,1,1,255,1,255,255,0,0,255,0,0,1,0,255,255,1,255,255,0,255,1,255,255,1,255,0,255,1,1,255,255,1,1,255,0,0,255,0,0,255,0,1,0,0,255,0,0,1,0,255,255,1,1,255,0,1,255,255,1,0,255,1,0,0,1,1,1,1,255,1,255,0,0,1,1,1,1,1,255,1,255,255,255,255,1,1,255,0,255,0,255,0,1,0,1,1,255,1,255,255,0,255,0,0,255,0,0,0,0,1,0,0,0,255,1,1,0,0,1,255,255,1,1,255,255,1,255,1,1,0,0,0,1,255,1,0,255,1,1,255,255,1,255,0,255,255,1,255,0,1,1,255,1,1,1,0,1,255,255,0,0,0,255,1,1,0,0,255,0,1,0,1,1,1,1,0,0,255,0,255,1,1,255,1,0,1,0,1,255,0,255,255,0,255,1,1,1,0,255,255,1,0,0}, {1,0,0,255,1,255,1,0,0,255,255,1,0,1,255,1,255,255,0,1,255,1,255,0,0,255,1,1,0,0,255,0,1,0,0,1,0,255,255,1,0,1,0,255,0,255,255,0,255,255,1,0,255,0,0,1,1,0,1,1,1,255,255,1,0,255,0,1,0,255,1,1,0,1,1,0,0,255,1,1,1,255,255,255,0,1,0,1,0,1,1,1,255,1,255,0,0,255,1,1,255,0,1,0,1,0,1,255,255,1,1,1,0,1,1,0,255,0,255,255,255,1,255,1,255,255,1,0,1,1,1,0,0,1,255,1,255,1,255,1,255,255,255,255,1,1,0,0,255,255,0,0,1,255,255,1,0,1,0,1,255,255,255,0,255,1,1,255,255,255,255,1,255,0,255,1,1,255,1,0,1,0,0,0,255,255,0,1,255,0,0,0,1,0,1,1,0,255,0,0,1,1,255,1,1,0,1,0,0,255,0,255,0,1,255,1,1,255,0,1,1,0,255,255,1,0,0,0,255,0,1,1,0,1,255,0,0,1,1,255,255,1,255,255,0,255,0,1,1,0,1,0,1,0,0,1,0,0,1,1,1,255,1,0,255,0,255,0,0,0,255,0,255,255,255,1,1,255,255,1,255,255,255,1,1,0,0,1,255,0,1,1,255,1,0,1,255,1,0,1,1,0,255,0,0,255,0,1,1,1,1,255,255,0,0,1,255,255,1,0,255,0,0,1,0,255,1,1,255,0,0,1,1,1,255,1,1,255,1,1,0,0,255,255,255,1,0,0,255,1,255,1,255,1,255,255,1,1,255,0,255,0,0,0,255,255,255,1,255,255,0,1,255,0,1,255,255,1,1,255,1,0,1,0,0,255,255,255,1,0,1,1,0,255,1,0,0,1,0,1,1,255,255,255,1,0,1,1,1,0,1,0,255,255,1,255,1,255,1,255,1,1,1,255,0,255,0,0,0,0,255,255,0,0,0,0,255,0,0,0,1,1,255,1,255,255,1,1,0,0,0,0,255,255,255,255,1,1,1,0,1,255,1,0,255,255,255,1,0,255,255,1,0,1,1,0,1,1,255,1,0,255,255,0,0,1,0,0,255,1,1,255,0,0,0,1,255,255,1,0,255,0,0,1,0,1,255,255,255,0,1,1,1,1,0,1,0,1,1,0,255,1,255,0,255,1,0,1,255,1,255,0,0,255,0,0,0,255,0,255,1,0,255,255,255,255,255,1,1,255,1,0,255,255,0,255,0,0,1,255,255,0,1,1,0,1,255,0,0,1,1,255,0,255,255,0,255,1,255,255,0,0,1,255,255,1,1,1,0,255,255,1,0,1,1,0,255,1,255,0,0,1,1,1,255,1,1,0,255,0,0,1,255,0,0,255,0,1,255,255,255,255,0,0,0,255,0,1,0,1,0,1,255,0,0,255,1,0,0,0,0,255,1,1,1,1,1,0,255,1,1,0,255,1,1,1,0,0,255,255,255,255,1,255,255,1,1,1,255,0,1,255,255,0,0,0,255,1,255,1,255,255,0,1,0,255,1,255,0,1,255,255,255,1,0,255,1,255,1,1,255,0,1,255,0,0,0,0,0,1,1,0,255,1,255,255,0,255,0,255,1,1,0,255,255,1,0,1,1,1,0,255,255,255,1,0,255,0,1,0,1,0,0,1,1,255,0,1,1,1,0,1,0,1,1,1,255,1,0,0,255,1,255,1,255,1,1,255,255,1,255,0,1,255,1,1,0,0,255,0,255,1,255,255,255,255,1,1,0,1,0,0,1,1,0,255,1,1,255,1,1,0,255,0,255,1,0,1,0,255,0,255,0,255,0,255,1,0,0,1,0,1,255,0,255,0,0,0,255,255,1,255,1,0,255,1,1,0,1,255,255,1,0,0,255,0,0,1,0,1,1,0,0,0,0,1,0,0,255,255,0,0,255,1,1,255,255,255,0,255,1,255,0,1,0,255,255,255,1,0,255,0,0,0,255,255,0,0,0,0,0,255,0,1,255,0,1,0,255,1,1,255,255,255,1,0,255,0,0,0,0,0,255,255,0,0,0,0,255,0,0,0,1,0,1,255,0,0,0,255,0,0,255,1,255,1,255,0,0,0,1,0,1,0,255,255,0,255,255,0,0,1,1,0,0,255,255,0,255,1,1,0,0,1,1,255,1,255,255,1,0,1,0,0,255,1,0,255,1,1,0,0,0,0,1,1,1,0,255,255,1,1,1,255,0,1,1,255,0,1,0,1,0,1,255,255,0,0,0,0,255,1,1,1,0,1,255,255,1,255,1,1,1,1,255,1,255,1,255,1,255,0,255,255,255,1,0,255,255,1,1,1,0,255,0,0,0,1,0,255,255,0,0,1,0,1,0,1,1,0,255,255,255,0,255,255,0,255,1,0,255,255,0,255,1,255,1,1,255,0,1,0,255,1,1,1,0,255,1,0,1,1,255,255,1,0,255,255,255,1,0,1,0,0,1,255,1,0,1,1,255,1,255,0,255,0,255,1,1,255,255,1,255,0,1,255,255,255,255,255,255,0,1,0,0,0,0,255,0,255,1,255,255,1,255,1,0,1,1,255,0,255,255,255,0,0,1,1,0,255,0,1,0,255,1,0,1,1,255,255,0,1,255,255,0,0,0,0,1,255,255,1,1,1,1,0,0,0,1,1,255,255,1,0,0,0,1,0,255,1,0,255,1,0,255,1,1,0,1,1,1,255,1,255,255,1,255,0,255,0,1,255,1,0,0,1,1,255,255,255,1,0,0,255,0,255,0,1,1,1,1,1,255,255,0,1,255,255,0,0,1,255,0,1,0,1,255,1,255,0,0,1,0,1,1,255,0,1,0,1,255,1,1,255,255,1,1,0}, {1,1,1,0,1,0,255,1,255,255,255,0,1,1,0,255,0,1,1,1,0,1,255,1,0,1,255,255,255,0,1,1,1,1,0,0,0,0,255,1,0,0,0,255,1,1,255,255,1,0,1,1,0,255,1,0,0,0,0,1,255,0,0,1,255,255,0,0,255,1,255,0,255,255,255,0,255,0,0,1,0,255,255,1,0,0,255,255,0,255,1,1,1,255,1,0,255,1,1,255,0,255,255,255,255,1,255,255,1,0,1,0,1,255,0,1,1,0,0,0,255,0,255,255,1,0,1,0,255,1,0,1,255,0,0,255,1,0,255,1,255,1,0,1,255,0,1,1,1,1,1,0,1,0,0,1,0,255,255,0,0,1,1,0,255,0,1,1,0,1,1,255,1,255,255,0,255,0,255,1,255,0,255,255,1,255,1,255,0,255,1,0,255,1,0,1,1,255,255,0,255,255,1,1,255,0,255,1,255,0,1,255,255,1,0,0,1,1,1,255,255,0,1,255,0,0,255,0,0,1,0,255,255,255,1,0,1,255,255,255,1,1,1,255,1,255,0,1,255,1,0,255,0,1,0,255,1,0,0,1,1,0,1,0,1,255,255,255,0,1,0,255,1,1,0,1,255,1,255,255,1,255,0,1,255,0,1,1,0,255,0,1,255,255,255,255,0,255,0,255,255,255,0,1,1,255,255,255,255,0,255,0,1,0,0,0,255,255,255,1,0,255,1,0,255,1,0,255,255,0,0,0,255,1,0,0,1,1,0,255,0,1,0,0,1,255,0,0,255,0,1,255,255,0,0,0,0,255,255,0,1,1,255,255,1,0,0,0,1,0,0,0,255,255,0,255,255,255,0,255,0,1,1,255,0,1,0,1,1,255,1,255,0,255,255,255,1,1,255,1,0,0,0,255,0,255,1,1,255,255,255,255,255,1,0,255,0,1,1,1,1,0,0,255,0,1,255,1,1,1,255,255,255,255,1,255,255,0,0,1,1,1,1,1,0,255,1,1,0,1,1,0,255,1,255,0,255,1,255,1,1,255,255,1,0,1,0,255,255,1,1,0,1,255,255,1,0,255,1,1,255,0,255,255,1,1,1,1,0,1,1,0,255,255,255,255,0,0,255,255,0,255,0,255,255,1,255,255,0,255,255,1,255,255,255,1,0,0,1,255,0,0,255,255,0,0,1,0,1,0,1,1,0,255,0,255,0,0,1,0,0,255,255,255,1,0,1,255,255,255,255,0,0,0,255,255,255,1,255,0,255,1,255,1,0,255,1,0,0,255,1,0,0,1,255,255,255,255,1,1,255,0,255,0,255,1,0,0,255,0,0,1,255,0,255,1,1,255,0,255,1,0,1,255,0,255,255,1,1,1,0,255,255,1,1,255,1,0,255,255,255,1,1,255,0,255,255,0,0,1,1,0,0,1,0,255,1,1,0,255,1,0,1,1,1,255,0,1,0,0,255,255,1,1,1,1,255,1,1,0,0,255,0,255,255,1,255,255,255,0,255,255,255,1,0,1,0,1,255,1,255,1,1,1,255,0,1,1,1,0,1,0,0,255,1,1,1,1,0,0,0,0,0,255,0,0,1,255,1,0,255,1,255,1,255,1,0,1,255,255,1,255,255,255,0,0,0,0,255,1,1,1,255,1,255,0,1,1,255,255,1,0,0,0,1,1,1,255,0,1,1,255,1,255,255,0,1,0,1,255,255,1,0,0,1,1,255,0,1,255,1,0,255,255,1,1,255,255,255,1,255,255,255,0,0,1,0,255,0,1,255,1,0,1,0,0,1,255,255,255,1,255,255,1,255,0,255,0,0,1,255,255,1,255,0,0,255,255,255,0,255,1,1,1,0,1,1,255,1,255,1,1,1,1,1,1,0,0,0,0,255,0,0,1,255,0,1,0,0,255,0,1,0,0,1,1,255,0,0,1,255,1,255,1,0,255,0,1,0,1,1,1,255,255,1,0,1,255,0,1,0,0,255,255,0,1,0,255,255,255,0,0,1,1,1,0,255,0,255,0,255,1,0,1,0,0,0,255,0,0,1,0,255,1,0,1,255,0,0,255,255,255,0,0,1,1,1,1,1,0,0,255,255,255,0,0,1,255,1,255,255,255,0,1,255,255,0,0,0,0,1,1,255,255,255,255,255,1,0,0,1,255,255,1,255,1,1,0,0,0,0,1,1,255,255,1,255,0,1,0,255,1,1,1,255,0,255,255,1,1,1,255,0,255,255,0,1,255,0,0,0,0,255,0,0,255,0,1,0,1,255,1,1,0,255,255,1,255,0,0,255,255,1,255,255,255,0,0,1,255,0,255,1,1,0,255,255,255,1,0,1,255,1,0,1,0,0,1,1,0,255,1,1,1,255,1,255,255,0,1,1,1,255,0,1,255,255,1,0,255,255,1,0,0,255,1,1,1,1,255,0,255,255,1,0,255,1,255,255,1,1,255,1,1,0,255,255,0,0,255,1,255,255,1,1,0,255,255,0,0,0,255,255,255,1,1,255,0,0,1,0,1,1,1,1,1,1,1,1,255,255,0,255,0,0,0,255,1,1,255,255,1,0,0,0,0,0,0,0,255,1,255,1,1,0,255,0,0,1,0,0,1,1,0,255,1,255,1,0,0,1,1,0,1,1,255,255,255,0,1,0,0,255,255,1,1,1,1,255,1,0,255,0,1,0,255,0,255,255,1,1,1,0,1,1,0,0,255,0,1,255,255,255,255,0,255,0,1,255,0,255,0,0,0,0,255,255,0,255,255,255,0,255,255,255,1,1,1,0,255,255,0,255,0,0,1,0,1,255,1,0,1,1,0,1,255,0,1,0,0,255,0,1,0,1,1,0,0,255,0,1,255,1,255,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255}, } ; static const unsigned char precomputed_core_inv3sntrup1277_n[precomputed_core_inv3sntrup1277_NUM][crypto_core_INPUTBYTES] = { {129,24,159,6,124,24,28,228,41,18,120,187,164,252,210,14,114,163,192,245,213,76,31,254,93,16,60,254,207,17,34,93,194,243,73,81,33,236,214,76,30,71,233,218,146,11,177,247,120,82,93,249,205,121,21,208,212,135,112,125,184,179,113,4,27,110,85,209,228,11,81,12,115,141,222,250,0,39,108,137,135,143,127,110,83,172,74,255,138,113,177,227,253,75,119,158,236,120,88,123,227,174,3,45,8,27,99,99,173,92,180,128,128,173,109,189,63,94,236,216,1,164,38,124,11,128,130,154,195,172,6,11,226,188,207,117,179,201,102,103,3,41,213,226,85,161,164,245,165,174,164,105,185,72,145,232,82,91,12,191,61,78,172,251,177,65,76,76,200,227,82,1,245,179,186,9,206,70,24,114,63,166,26,119,82,34,145,194,193,251,25,53,53,135,47,59,228,43,135,10,187,133,203,24,160,189,200,66,172,7,78,3,232,132,238,100,200,183,209,134,186,158,158,77,245,108,117,180,97,174,99,2,178,118,62,237,35,41,230,12,168,254,7,6,184,224,64,236,3,232,209,170,254,209,233,18,239,67,206,143,117,15,219,235,129,251,139,191,134,118,111,200,128,124,69,176,193,248,8,78,129,103,244,142,89,123,23,116,16,240,17,157,62,121,223,192,216,4,147,4,23,58,51,240,200,213,251,230,18,217,221,213,0,156,91,250,149,24,145,122,229,142,167,206,164,92,111,102,190,187,255,171,0,145,182,158,225,126,54,41,224,233,75,199,132,115,191,43,242,232,32,109,82,195,110,44,34,172,209,40,177,125,136,29,51,89,137,21,228,210,131,21,74,190,6,158,77,156,104,208,188,122,55,144,162,56,225,56,142,233,144,44,203,166,255,173,105,254,96,247,41,145,52,141,209,46,83,13,149,27,103,219,89,120,37,217,160,190,114,119,146,150,128,21,9,190,178,33,71,247,133,171,209,135,49,157,205,170,30,16,197,87,11,32,29,134,64,129,198,34,44,145,135,36,31,52,122,85,44,79,58,135,77,129,10,217,206,244,35,167,22,203,68,174,59,164,234,115,162,115,5,107,87,167,244,195,239,215,34,209,128,63,61,249,228,161,193,232,8,124,49,54,253,140,252,17,60,127,150,15,149,241,242,141,224,220,82,181,157,181,255,108,137,214,33,26,187,114,237,63,136,11,136,32,114,19,61,101,2,203,89,195,158,31,128,22,37,139,247,93,76,104,191,235,53,20,121,45,227,134,218,179,50,245,97,85,7,59,137,36,244,12,49,146,254,39,10,32,241,43,225,219,58,63,68,49,220,226,95,208,223,121,242,66,207,32,86,104,101,189,232,41,168,158,157,143,191,88,60,186,56,220,169,21,12,206,229,144,71,124,50,76,2,17,115,101,64,87,220,143,104,149,57,186,243,161,196,194,218,79,41,67,71,20,199,42,130,0,37,32,239,127,230,204,6,38,50,138,91,228,35,170,166,134,184,165,105,5,17,124,118,233,66,221,10,138,204,170,205,120,178,226,234,158,207,21,209,165,66,79,225,0,113,151,184,34,255,11,249,130,165,150,184,4,115,44,167,138,13,246,21,45,217,0,203,212,17,191,35,127,109,205,1,10,221,104,23,242,196,68,89,247,229,118,114,228,172,51,34,248,152,152,145,243,249,116,12,91,116,158,188,45,51,251,242,203,90,179,211,149,255,99,124,254,204,167,241,96,40,76,158,166,179,85,250,103,169,92,5,118,82,212,51,42,21,210,78,196,118,74,101,60,152,205,147,166,229,35,252,140,224,199,162,78,142,74,224,206,224,118,99,85,103,77,131,245,181,71,25,44,130,59,221,104,108,106,249,251,242,168,239,74,53,88,181,53,183,201,159,128,192,7,122,101,124,234,238,19,245,141,231,183,23,1,38,3,107,254,160,220,134,1,69,97,99,175,104,176,206,150,104,76,27,169,184,145,194,241,97,138,193,168,98,26,145,154,188,108,146,35,47,142,61,90,170,9,204,157,27,251,155,134,147,21,134,114,131,30,227,66,203,39,160,162,0,2,41,118,167,39,185,113,106,227,120,184,247,251,57,131,86,185,18,55,15,22,239,147,125,183,205,214,63,66,163,75,199,56,117,15,148,132,32,145,124,200,152,146,199,159,120,124,192,4,129,63,161,83,150,35,21,192,172,1,247,239,231,87,222,183,199,50,121,19,205,168,180,69,240,34,57,189,93,228,181,213,60,9,221,79,182,133,115,27,187,69,70,248,54,27,48,182,106,91,59,212,100,57,31,83,101,74,171,23,139,10,214,195,18,3,20,147,171,151,63,8,205,150,218,214,170,3,16,1,62,70,11,174,73,237,183,156,45,107,22,156,218,21,253,123,246,10,77,144,137,219,238,240,246,93,88,144,206,129,114,60,190,229,112,182,135,217,217,137,27,35,204,86,76,253,238,254,27,100,190,248,4,228,64,59,243,107,94,164,101,252,65,22,245,226,200,92,52,78,43,144,129,214,175,164,98,178,169,44,18,39,166,72,149,213,120,7,45,196,172,216,45,23,181,244,112,181,126,12,164,87,243,109,23,51,41,239,10,192,179,136,6,251,64,126,35,171,194,61,73,69,154,235,9,19,94,238,77,152,116,111,10,35,85,85,85,91,66,206,205,102,209,94,50,24,100,247,196,208,144,97,230,20,11,49,173,52,177,37,191,48,229,142,51,85,241,82,36,254,30,74,134,210,188,13,192,147,81,38,209,145,239,148,188,153,120,16,39,154,93,122,92,121,124,167,245,122,155,77,196,145,232,112,246,170,137,98,9,139,17,73,39,245,114,247,181,215,133,119,146,11,210,195,11,128,198,56,107,80,49,126,162}, {66,33,168,141,216,174,218,131,28,104,122,253,86,105,122,163,47,240,74,78,188,134,15,56,7,33,147,52,166,190,44,182,86,131,253,141,54,99,171,55,30,175,94,86,9,54,105,189,204,72,133,180,138,213,129,173,168,15,208,149,214,186,56,102,0,216,251,170,210,247,179,221,119,4,52,246,121,8,104,29,238,113,232,251,45,119,118,83,221,109,61,109,250,67,250,83,158,165,118,235,227,90,145,190,205,157,124,12,131,150,21,108,82,181,37,39,132,154,44,187,107,150,34,1,57,249,231,32,108,108,98,211,55,159,18,10,99,250,109,180,177,183,247,200,12,134,18,10,101,224,85,147,128,55,236,108,117,130,31,236,242,209,210,67,58,89,13,68,155,186,218,154,180,185,156,119,129,222,49,194,203,244,76,167,193,37,141,122,43,47,233,51,120,200,135,253,243,17,205,218,91,141,65,25,81,130,5,167,35,37,120,79,54,114,179,59,102,156,13,44,243,160,11,110,119,143,246,198,50,244,63,192,212,47,163,205,101,255,46,45,98,96,132,135,110,38,81,178,76,105,13,129,219,216,188,246,1,158,142,149,185,189,105,37,245,70,102,93,48,231,198,216,0,150,217,215,142,135,173,29,30,171,146,139,209,118,249,235,75,34,150,34,43,43,167,242,4,124,60,136,41,164,14,29,51,164,126,186,75,43,168,238,38,125,159,5,240,122,122,153,15,115,31,209,154,206,92,140,139,202,179,169,19,53,52,138,3,140,124,99,191,90,111,152,185,38,239,15,85,102,44,101,30,1,80,108,101,40,2,225,124,33,47,197,28,190,171,8,85,21,149,106,139,69,156,120,142,163,76,62,219,144,175,178,77,165,33,56,173,74,174,145,137,157,87,197,251,162,114,178,216,196,202,13,89,223,88,228,199,59,236,23,127,15,229,226,100,166,198,203,190,164,193,33,210,11,34,104,220,61,134,86,168,164,170,74,80,223,81,124,160,202,181,206,61,246,52,68,107,231,25,211,172,30,4,246,99,89,34,158,152,145,235,11,143,28,104,170,86,158,29,239,24,111,122,182,242,57,86,0,50,58,66,226,252,63,151,235,239,148,69,57,53,195,34,104,100,221,222,213,94,58,206,237,64,200,140,161,123,244,203,190,230,167,33,197,150,201,28,196,63,41,1,40,99,178,125,79,36,226,218,111,82,59,95,249,178,173,158,206,93,56,22,241,157,149,69,21,196,133,202,91,225,180,10,161,162,132,117,2,204,247,204,188,81,66,188,186,70,115,171,219,239,191,175,213,66,225,166,165,124,224,82,27,171,147,197,193,133,25,122,45,41,38,107,83,124,19,80,132,138,249,7,56,42,105,131,156,49,0,192,228,225,247,48,128,154,217,231,108,75,211,44,53,204,87,244,102,235,220,212,124,15,84,150,240,78,15,176,237,57,19,76,115,12,248,241,108,73,29,112,50,31,63,243,212,245,237,52,16,197,29,135,95,3,40,35,42,161,30,210,199,8,241,138,225,102,249,44,162,153,69,230,68,37,120,170,120,68,55,203,56,236,93,213,104,151,33,135,90,184,209,209,41,191,218,91,77,124,174,240,38,85,220,46,164,62,183,192,80,236,186,177,206,161,91,105,7,58,74,210,160,241,244,121,52,51,114,27,5,124,83,244,150,140,65,83,50,112,79,209,52,118,175,179,201,12,218,204,130,88,241,10,233,71,228,131,83,253,105,191,228,214,238,74,66,99,102,118,46,255,174,162,183,169,214,43,122,88,194,47,102,239,195,72,89,20,171,139,167,223,188,60,123,59,212,0,167,246,144,139,194,57,162,151,66,91,32,80,127,5,20,82,132,146,50,56,181,236,221,137,232,24,174,57,250,235,86,191,235,64,45,254,0,146,13,80,253,224,46,46,176,246,73,196,253,154,126,22,21,148,196,194,212,255,214,188,197,73,154,5,6,226,174,135,111,177,3,22,29,102,229,222,220,108,144,48,251,32,175,63,118,225,80,157,57,119,239,239,242,199,202,20,140,69,144,123,53,6,41,127,215,61,4,106,199,139,16,9,195,50,71,81,156,165,120,41,99,56,107,152,70,53,242,86,173,14,142,43,196,126,112,44,15,224,157,28,250,76,8,24,21,79,233,87,252,61,235,87,131,239,80,169,63,162,80,186,231,161,183,192,184,103,42,173,51,236,16,112,84,37,21,160,116,130,238,61,112,79,21,56,0,86,98,178,121,35,255,228,96,118,50,84,0,90,212,76,156,134,17,145,80,188,1,68,215,240,157,168,46,197,38,138,162,189,179,247,146,234,152,249,71,18,213,100,0,242,155,209,36,125,77,58,126,90,136,167,167,29,251,95,67,59,220,9,238,109,113,80,203,116,205,85,206,227,64,141,53,80,101,120,168,139,142,197,117,183,236,133,142,212,22,118,170,8,37,163,7,215,223,55,250,244,87,216,74,139,162,207,31,12,153,230,200,72,131,67,61,58,97,179,141,104,95,44,85,79,119,7,176,252,9,99,43,86,2,209,184,94,172,34,15,188,147,115,46,86,14,46,248,32,222,73,120,164,208,74,41,145,133,132,199,254,193,153,126,123,109,12,162,6,100,67,119,12,217,172,199,187,193,118,26,201,219,165,103,222,223,182,91,93,77,22,107,201,66,222,252,148,121,151,18,104,99,230,141,111,10,135,44,149,22,215,202,109,114,228,250,105,99,212,174,8,212,14,71,183,135,11,147,65,65,40,218,212,2,78,197,121,25,209,109,104,10,169,11,181,236,252,242,62,47,122,157,119,182,69,172,228,185,213,215,229,195,235,122,3,207,154,155,217,3,204,135,112,123,143,138,239,2,131,210,178,217,241,230,140}, {118,224,206,186,12,212,162,45,205,39,68,194,78,218,191,185,120,65,120,125,61,18,30,160,118,2,78,248,97,121,27,107,238,114,29,242,55,30,179,56,110,217,188,50,20,246,217,18,180,48,184,200,88,62,91,113,187,152,251,190,228,148,79,72,228,188,226,190,209,109,119,91,236,184,18,240,245,213,185,35,78,227,161,54,85,216,195,148,141,97,46,174,249,217,242,40,199,38,12,44,48,231,63,197,72,33,81,235,243,251,238,180,165,249,171,146,90,145,197,201,70,180,244,47,100,78,27,207,215,116,200,178,65,102,79,110,0,2,125,10,246,141,55,139,4,176,201,74,175,14,12,126,156,228,61,38,44,228,70,26,244,34,198,38,199,32,208,103,194,76,156,229,252,102,82,85,14,97,226,130,254,232,217,52,230,238,167,237,18,20,177,98,250,12,134,107,111,47,20,72,162,92,2,0,146,11,159,147,75,103,181,36,249,190,207,73,161,171,192,136,98,24,238,213,96,119,14,102,137,225,178,190,96,142,2,198,4,19,115,23,23,156,51,86,122,89,201,230,34,244,209,130,16,192,47,83,95,181,70,137,75,247,165,3,10,167,94,51,73,194,214,157,21,112,241,29,104,87,104,208,227,115,175,169,105,245,23,236,61,75,21,189,242,188,193,185,90,231,117,161,231,181,49,39,190,79,44,83,203,52,155,80,87,95,254,207,169,190,46,119,136,48,138,16,22,66,85,85,166,147,176,68,127,176,123,195,234,211,185,10,31,59,39,209,19,228,170,46,136,101,75,68,91,14,93,230,59,213,213,233,227,171,88,193,178,66,77,1,91,1,58,157,128,49,213,69,92,37,136,154,158,253,145,158,83,251,172,250,159,38,69,186,179,229,232,132,241,41,137,228,82,239,195,96,164,158,239,240,245,154,182,255,115,111,156,222,230,69,97,91,229,171,106,92,175,62,40,12,237,181,159,95,58,183,144,183,142,128,219,111,41,108,22,75,194,247,43,214,12,80,236,164,22,174,166,15,59,76,93,83,46,180,244,184,231,170,189,211,192,221,13,238,255,39,133,185,56,190,214,45,142,251,23,164,5,87,54,15,228,110,251,208,201,176,159,119,227,242,251,89,159,20,68,32,51,254,141,171,158,142,236,152,56,28,156,252,176,183,232,82,78,59,225,205,175,43,4,36,254,253,168,222,55,240,14,183,113,31,191,181,118,8,134,57,8,19,203,0,164,251,169,89,172,124,83,72,94,186,228,237,251,132,243,131,202,14,105,55,180,62,193,166,191,20,246,57,125,92,23,37,178,142,171,185,10,68,124,38,240,18,124,242,55,79,46,99,46,45,118,187,7,116,171,111,204,97,137,131,104,238,103,185,103,2,47,2,60,186,239,44,188,137,11,25,97,219,2,234,81,160,232,54,201,14,207,76,11,102,120,3,232,6,24,163,176,132,23,166,22,4,143,52,64,141,170,152,124,151,70,31,175,128,244,27,69,137,49,140,61,12,208,74,175,47,154,105,162,80,199,103,23,42,25,127,144,43,32,40,114,105,89,121,117,101,81,93,185,2,93,206,253,137,167,42,36,199,207,254,239,141,2,124,45,187,221,100,103,72,27,193,140,71,56,123,36,96,210,96,140,108,28,116,238,225,88,16,89,58,129,212,231,39,19,230,170,157,69,46,83,247,238,123,162,162,21,100,106,189,186,224,237,78,76,20,61,54,32,104,154,157,184,239,156,172,212,221,23,151,200,68,205,193,159,192,180,201,166,58,239,245,241,2,237,153,153,126,197,210,43,210,57,129,92,17,163,216,14,122,174,150,226,245,33,247,144,223,254,253,24,193,220,139,33,194,181,62,222,149,196,154,223,96,72,253,31,175,201,6,193,236,229,100,30,42,236,99,234,119,230,132,80,184,239,141,112,106,57,181,114,25,219,11,133,53,247,117,88,224,173,133,157,181,31,210,124,171,55,237,193,13,147,220,230,18,3,6,10,101,49,25,248,238,210,136,146,241,109,1,26,38,172,191,84,5,77,149,217,83,221,149,130,219,99,146,96,86,179,229,161,132,172,17,143,171,205,159,174,209,54,102,252,40,97,249,112,51,114,177,233,16,138,102,251,24,140,73,119,184,176,121,121,52,188,220,41,133,122,145,86,131,213,63,209,164,0,80,154,132,221,156,151,8,161,152,94,157,70,77,246,68,81,93,137,204,79,158,34,0,115,231,76,171,24,196,58,41,108,175,145,239,212,131,95,84,111,221,88,164,225,87,121,202,73,136,66,191,252,120,196,111,52,175,199,69,112,248,234,13,162,32,98,134,103,98,141,109,203,115,179,75,56,106,149,148,227,123,63,107,188,246,131,101,95,45,66,162,254,197,226,85,92,179,72,79,135,207,110,129,92,187,148,221,182,68,140,199,122,249,232,80,52,125,150,168,49,17,61,116,181,245,43,120,34,250,107,190,245,96,146,94,13,242,154,138,201,207,217,32,111,101,63,150,73,72,207,152,135,72,155,210,242,210,208,81,202,190,157,147,220,247,129,189,224,156,184,200,196,252,69,119,38,12,246,30,145,119,203,45,192,181,252,84,98,203,192,200,16,49,44,107,41,135,88,102,193,110,255,138,28,14,154,197,239,129,13,156,113,242,19,119,203,77,124,247,37,123,122,84,17,45,232,163,151,121,171,83,74,159,121,76,138,124,60,6,183,150,216,187,27,126,114,140,214,19,6,63,66,152,140,14,54,88,217,26,253,81,102,104,225,120,251,174,160,203,91,235,84,174,137,217,60,91,61,213,129,14,176,230,19,161,238,201,35,93,175,194,117,16,88,42,180,204,98,201,44,234,241,29,13,253,219,9,140,39,251,26,252}, {240,122,144,19,159,131,9,206,112,97,181,119,181,142,2,202,38,93,108,213,160,129,247,55,12,148,178,149,171,115,6,97,233,228,223,89,145,189,124,88,104,183,64,248,186,222,190,238,194,152,55,35,121,189,76,242,0,153,238,194,19,219,246,4,28,252,30,217,197,53,151,233,1,210,162,225,145,92,144,88,234,148,229,5,105,217,162,153,99,74,240,161,148,53,127,30,14,165,169,102,211,167,230,104,79,108,244,163,61,107,52,22,248,76,36,198,220,174,171,124,95,200,192,251,165,40,216,8,54,175,150,152,31,153,229,149,18,124,164,159,131,47,24,74,233,134,178,88,62,240,192,249,77,184,78,48,177,44,75,25,232,205,253,136,236,224,109,27,62,88,191,172,120,3,123,152,206,104,18,156,17,27,15,244,74,34,161,221,137,17,43,194,44,233,33,187,46,108,59,128,208,95,130,156,105,90,90,42,238,159,141,48,195,216,82,116,135,77,81,44,158,225,54,252,197,180,61,168,222,126,60,107,63,20,97,232,198,15,198,194,17,103,74,59,136,82,129,156,199,102,201,116,177,62,15,23,145,30,145,78,132,12,11,203,96,158,216,76,22,15,212,212,163,145,191,19,62,75,169,29,140,27,84,107,84,162,91,117,191,100,175,220,244,157,203,101,67,124,160,55,20,26,209,4,156,61,158,224,91,191,6,95,174,38,160,9,88,206,154,201,73,173,252,61,88,220,171,150,55,168,231,198,26,67,250,176,160,143,217,247,235,37,50,146,109,14,156,236,94,11,49,197,45,53,142,6,202,222,245,215,107,153,68,9,222,112,192,81,173,77,224,11,18,162,172,109,139,131,41,3,36,48,12,22,42,247,189,113,183,116,66,245,34,252,86,21,8,63,123,77,191,193,181,129,121,3,92,133,241,106,64,143,62,249,4,187,175,4,166,128,91,150,194,36,95,49,4,242,55,17,57,194,147,178,250,99,131,123,156,237,22,147,238,43,119,117,20,30,172,15,146,242,111,189,185,24,129,178,134,201,246,217,36,115,106,141,97,29,255,154,171,178,235,172,132,105,108,122,141,84,60,117,156,23,193,92,246,106,91,246,223,60,97,185,122,20,69,96,105,112,155,13,86,73,102,250,161,74,234,192,22,236,78,142,197,192,30,197,224,122,154,186,75,69,207,202,104,98,53,250,65,232,237,170,39,93,237,169,163,61,0,228,223,234,127,144,229,248,172,5,126,191,248,212,25,120,88,23,183,172,246,104,88,135,116,100,145,181,50,159,221,115,98,50,206,207,56,94,251,83,156,132,167,230,41,63,15,73,87,12,59,200,165,120,50,35,245,191,165,12,141,154,166,156,188,211,66,192,226,160,77,64,239,151,240,47,240,152,68,66,96,189,200,157,174,23,114,40,255,211,110,52,155,118,57,148,167,186,201,88,45,179,56,50,37,192,63,150,166,164,161,227,82,113,124,225,219,48,131,39,160,2,125,196,77,4,172,205,196,183,178,193,99,18,17,229,131,152,109,206,22,207,95,170,246,17,187,156,42,113,196,185,178,67,163,165,169,218,229,142,184,155,169,180,47,77,225,180,26,22,76,7,5,239,177,112,108,193,51,30,222,73,226,7,35,177,137,1,190,35,240,241,105,113,82,40,147,236,69,77,45,121,167,17,195,120,165,118,207,234,216,130,41,244,188,85,17,173,67,48,251,83,23,67,116,163,226,140,227,207,28,205,175,195,63,30,220,82,21,149,13,62,44,81,109,58,78,40,219,105,15,174,247,111,204,219,164,73,61,254,147,146,240,217,135,8,182,210,134,244,21,151,166,180,68,123,134,84,31,212,37,74,189,35,123,200,218,128,200,88,88,14,229,246,4,91,104,73,209,240,52,228,43,7,92,189,21,245,183,133,2,14,82,25,37,147,189,64,151,36,146,198,214,201,51,66,86,109,33,29,41,183,68,104,87,198,144,84,233,49,238,26,45,59,232,147,74,241,6,144,144,158,194,62,8,93,210,170,252,217,168,17,185,24,140,98,220,142,60,70,205,128,80,195,117,235,21,152,108,60,164,25,247,45,137,168,65,68,231,170,196,194,48,222,43,117,143,219,78,190,160,209,7,76,60,26,44,243,107,185,134,204,122,32,86,23,197,171,246,95,88,63,80,109,168,129,221,133,139,136,88,227,92,195,239,24,143,167,59,101,203,70,24,174,82,248,101,32,80,41,62,49,50,152,143,56,216,125,54,105,191,107,118,238,100,55,18,163,133,181,49,23,23,178,38,221,118,3,66,41,202,215,106,207,197,98,167,66,151,143,70,110,138,75,109,8,126,66,161,173,77,245,88,238,89,172,73,106,248,127,186,168,254,13,186,14,62,220,59,47,133,84,29,222,39,230,52,173,61,215,163,40,203,184,168,168,132,62,254,217,236,51,138,23,189,133,180,79,4,65,16,187,202,0,165,147,27,92,215,147,71,187,204,158,129,220,34,222,4,238,132,243,147,0,129,159,38,3,194,100,159,154,38,60,162,88,25,160,244,202,211,183,247,96,71,187,188,126,217,211,129,160,121,73,252,10,152,84,168,86,34,178,98,30,139,115,65,172,64,55,119,40,160,31,21,64,114,29,149,111,178,143,97,9,119,69,176,167,45,250,177,142,108,121,68,192,211,92,78,4,190,196,145,146,208,110,38,140,252,106,112,64,249,176,89,132,248,117,134,222,196,241,53,70,152,138,7,223,29,19,123,104,252,93,132,24,130,70,46,46,43,203,64,64,178,29,90,209,34,65,61,58,66,237,61,106,151,242,156,128,81,137,151,35,255,60,50,176,173,59,34,4,94,222,166,246,203,137,118,9,118,84,14,89,17,33,117}, {255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_inv3sntrup1277_k[precomputed_core_inv3sntrup1277_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_inv3sntrup1277_c[precomputed_core_inv3sntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, } ; static void test_core_inv3sntrup1277_impl(long long impl) { unsigned char *h = test_core_inv3sntrup1277_h; unsigned char *n = test_core_inv3sntrup1277_n; unsigned char *k = test_core_inv3sntrup1277_k; unsigned char *c = test_core_inv3sntrup1277_c; unsigned char *h2 = test_core_inv3sntrup1277_h2; unsigned char *n2 = test_core_inv3sntrup1277_n2; unsigned char *k2 = test_core_inv3sntrup1277_k2; unsigned char *c2 = test_core_inv3sntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup1277(impl); printf("core_inv3sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup1277_implementation(impl),ntruprime_dispatch_core_inv3sntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup1277; printf("core_inv3sntrup1277 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup1277_implementation(),ntruprime_core_inv3sntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_inv3sntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_inv3sntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_inv3sntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_inv3sntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_inv3sntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_inv3sntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_inv3sntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_inv3sntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_inv3sntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_inv3sntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_inv3sntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup1277")) return; storage_core_inv3sntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_inv3sntrup1277_h = aligned(storage_core_inv3sntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_inv3sntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_inv3sntrup1277_n = aligned(storage_core_inv3sntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_inv3sntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_inv3sntrup1277_k = aligned(storage_core_inv3sntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_inv3sntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_inv3sntrup1277_c = aligned(storage_core_inv3sntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_inv3sntrup1277_h2 = callocplus(maxalloc); test_core_inv3sntrup1277_h2 = aligned(storage_core_inv3sntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_inv3sntrup1277_n2 = callocplus(maxalloc); test_core_inv3sntrup1277_n2 = aligned(storage_core_inv3sntrup1277_n2,crypto_core_INPUTBYTES); storage_core_inv3sntrup1277_k2 = callocplus(maxalloc); test_core_inv3sntrup1277_k2 = aligned(storage_core_inv3sntrup1277_k2,crypto_core_KEYBYTES); storage_core_inv3sntrup1277_c2 = callocplus(maxalloc); test_core_inv3sntrup1277_c2 = aligned(storage_core_inv3sntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_inv3sntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup1277();++impl) forked(test_core_inv3sntrup1277_impl,impl); ++test_core_inv3sntrup1277_h; ++test_core_inv3sntrup1277_n; ++test_core_inv3sntrup1277_k; ++test_core_inv3sntrup1277_c; ++test_core_inv3sntrup1277_h2; ++test_core_inv3sntrup1277_n2; ++test_core_inv3sntrup1277_k2; ++test_core_inv3sntrup1277_c2; } free(storage_core_inv3sntrup1277_c2); free(storage_core_inv3sntrup1277_k2); free(storage_core_inv3sntrup1277_n2); free(storage_core_inv3sntrup1277_h2); free(storage_core_inv3sntrup1277_c); free(storage_core_inv3sntrup1277_k); free(storage_core_inv3sntrup1277_n); free(storage_core_inv3sntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_inv3sntrup653.c0000644000000000000000000006644214705505542023451 0ustar rootroot/* ----- core/inv3sntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_inv3sntrup653_checksums[] = { "aa5ad48e98fd02d0029bae0563ff23e304b66d09714ad3a50b7eaa0c39d49de1", "07515a32ef8e6bfbc348fd7b45480a3a87632fc4d277c9ec04d8984eae369a17", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_inv3sntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_inv3sntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_inv3sntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_inv3sntrup653_CONSTBYTES static void *storage_core_inv3sntrup653_h; static unsigned char *test_core_inv3sntrup653_h; static void *storage_core_inv3sntrup653_n; static unsigned char *test_core_inv3sntrup653_n; static void *storage_core_inv3sntrup653_k; static unsigned char *test_core_inv3sntrup653_k; static void *storage_core_inv3sntrup653_c; static unsigned char *test_core_inv3sntrup653_c; static void *storage_core_inv3sntrup653_h2; static unsigned char *test_core_inv3sntrup653_h2; static void *storage_core_inv3sntrup653_n2; static unsigned char *test_core_inv3sntrup653_n2; static void *storage_core_inv3sntrup653_k2; static unsigned char *test_core_inv3sntrup653_k2; static void *storage_core_inv3sntrup653_c2; static unsigned char *test_core_inv3sntrup653_c2; #define precomputed_core_inv3sntrup653_NUM 5 static const unsigned char precomputed_core_inv3sntrup653_h[precomputed_core_inv3sntrup653_NUM][crypto_core_OUTPUTBYTES] = { {255,1,0,1,0,0,0,1,0,255,255,1,255,0,0,255,0,1,255,1,1,1,0,1,255,255,1,0,255,1,255,255,255,255,255,1,255,1,0,1,1,0,0,1,1,1,0,1,255,0,1,255,1,1,255,1,1,1,0,0,0,255,0,1,255,255,1,0,1,0,0,0,0,0,1,255,255,255,0,1,1,255,1,255,255,1,255,0,0,0,255,1,0,0,0,1,0,0,255,0,0,1,0,0,255,1,0,1,1,1,1,0,1,255,0,0,255,255,0,0,1,255,255,255,255,1,0,1,255,1,255,255,0,255,1,255,255,255,255,255,1,1,0,1,1,0,0,255,0,255,255,1,0,1,0,0,0,0,0,1,0,255,1,255,1,1,0,0,255,0,1,0,1,0,0,0,0,1,0,1,255,0,0,1,1,255,255,1,1,255,255,255,1,255,1,255,1,0,255,255,1,255,0,0,0,1,1,1,0,1,1,255,1,0,1,255,0,1,1,255,0,0,0,0,0,255,1,255,255,1,1,255,0,255,1,0,1,1,1,1,0,0,1,255,1,255,255,255,1,0,1,255,255,1,0,0,1,255,0,255,255,1,255,0,0,255,1,0,1,1,1,1,255,255,255,255,255,1,255,255,255,0,0,255,0,0,1,255,0,255,255,0,255,0,0,0,255,1,1,0,255,255,0,255,1,0,255,1,255,255,255,255,255,0,0,1,1,0,255,1,255,0,0,1,0,0,0,1,1,0,1,255,1,255,1,0,0,0,255,1,0,255,1,255,255,255,255,1,255,0,255,255,255,1,255,1,0,0,255,1,255,1,255,255,1,255,255,0,1,1,255,255,255,0,1,1,255,1,1,1,1,1,255,0,1,1,255,1,0,1,255,1,0,1,0,255,1,255,1,0,255,0,1,1,1,0,1,0,1,255,1,1,1,255,0,255,255,255,0,1,0,255,0,1,255,1,255,0,0,255,0,255,0,255,1,1,1,0,1,1,0,255,255,0,0,0,0,255,0,0,0,1,255,255,1,1,0,0,1,1,1,255,0,255,1,1,0,1,1,1,1,255,1,1,1,0,0,1,1,0,255,255,0,1,1,0,1,255,0,0,255,0,1,255,0,1,1,0,255,255,1,0,255,1,255,1,0,0,255,1,1,1,1,1,255,0,0,0,0,255,0,0,255,255,0,255,0,255,0,255,0,0,255,1,1,255,1,0,1,255,0,0,255,1,0,255,1,255,255,1,0,0,0,255,1,1,1,1,255,1,0,0,255,255,0,1,255,1,0,0,255,0,0,1,255,0,1,0,1,1,0,255,1,255,255,1,1,1,1,0,255,1,255,255,0,255,0,255,0,0,255,255,255,255,0,255,1,1,0,0,0,255,0,0,0,0,0,255,0,0,255,255,255,255,255,0,1,255,1,255,0,255,1,1,255,255,255,0,255,255,255,255,1,255,255,0,255,255,1,0,0,255,255,0}, {255,255,1,0,0,1,255,255,1,0,1,255,1,1,255,1,255,255,255,0,0,255,0,0,1,255,1,255,255,1,255,0,0,1,1,0,255,255,255,0,0,1,255,0,0,255,0,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,1,0,255,0,1,1,255,0,0,255,1,0,0,0,1,0,0,1,1,255,1,255,1,1,0,255,255,255,1,0,0,0,255,0,0,1,1,0,255,1,1,0,255,0,255,255,0,255,255,1,255,0,1,1,0,1,255,1,255,0,0,255,255,255,255,1,255,255,0,255,1,1,1,0,0,1,0,1,0,255,1,0,255,0,255,255,255,255,0,255,255,1,0,255,1,1,0,0,255,1,1,255,0,255,0,0,1,0,1,0,0,0,0,1,1,0,1,1,0,1,255,0,255,255,1,255,0,0,255,0,0,0,255,255,255,1,1,0,0,1,1,1,255,255,1,1,0,1,1,1,1,0,255,1,0,1,1,255,255,0,0,0,255,0,0,0,255,1,0,255,1,255,255,0,1,0,1,1,255,1,1,0,1,1,0,1,255,255,1,255,255,255,0,255,1,1,255,255,255,0,1,255,0,0,1,0,1,255,255,1,255,0,255,0,0,1,0,255,1,1,1,1,0,1,255,1,0,1,255,0,1,0,0,255,1,0,255,0,0,255,255,0,0,1,1,1,255,0,1,1,0,1,1,0,0,0,0,1,0,255,0,0,255,0,0,255,1,0,1,255,1,1,255,0,255,1,1,255,255,0,1,255,1,0,0,255,255,255,255,1,255,255,0,0,255,1,1,1,1,255,1,255,255,255,1,1,255,1,1,0,255,1,1,0,0,255,0,1,0,255,255,255,255,255,255,255,1,0,0,1,0,255,255,255,255,255,0,255,0,1,1,1,0,0,1,255,0,0,1,0,0,255,255,1,255,0,255,1,255,255,0,1,1,1,0,255,0,0,1,0,1,1,255,0,0,1,255,1,255,0,1,0,255,1,1,255,0,0,0,255,0,255,0,0,255,0,0,255,0,0,255,1,255,0,255,1,1,1,0,0,0,255,255,0,0,1,1,1,0,0,1,0,255,1,0,0,1,1,0,0,1,0,1,0,0,0,0,1,1,1,255,255,255,0,0,0,0,0,0,255,0,1,0,0,1,0,255,255,0,255,0,255,255,255,255,0,255,1,255,255,255,0,1,255,1,255,0,255,1,0,0,255,255,0,1,255,0,1,255,255,0,1,255,1,1,0,1,0,1,0,0,1,255,1,0,0,255,0,1,255,1,0,1,1,0,0,1,255,255,1,0,255,255,255,1,255,1,255,1,255,255,0,255,1,255,255,255,0,1,1,0,0,255,1,255,1,0,255,1,0,1,1,0,255,1,255,255,1,255,255,0,255,0,255,1,255,255,255,0,0,0,1,255,1,255,1,255,1,1,0,255,0,255,0,1,255,0,0,0,1,255,0}, {255,1,255,0,1,255,1,1,1,0,1,0,0,1,255,255,0,0,255,1,1,0,1,1,0,0,255,255,0,1,1,0,255,0,1,1,1,1,1,1,255,1,0,1,0,255,1,0,1,255,255,1,0,0,0,255,1,255,255,0,0,255,1,1,255,1,255,1,0,1,0,1,0,1,1,1,0,255,255,255,255,0,0,0,255,1,1,1,1,1,1,0,1,255,0,0,1,255,255,255,255,255,255,1,0,255,1,255,255,1,0,1,0,255,255,0,0,0,255,1,0,0,1,1,255,1,255,0,0,0,255,255,0,1,0,255,255,0,0,1,0,1,0,1,1,1,0,255,0,1,0,1,1,1,0,0,255,0,0,0,0,255,0,0,0,255,255,0,1,0,1,255,1,255,1,255,255,0,0,255,255,0,255,0,0,255,255,255,255,255,0,255,1,255,255,1,255,0,1,1,0,255,0,0,0,1,1,255,1,0,0,255,255,0,0,255,1,1,0,1,1,1,255,0,255,0,0,1,255,0,0,255,0,0,1,255,255,1,255,255,1,255,0,1,1,255,0,1,255,1,0,255,1,255,0,255,255,0,1,0,1,1,1,0,1,1,0,0,255,0,255,0,255,255,0,1,255,0,1,0,0,1,1,255,1,255,1,0,0,255,0,255,1,255,255,255,0,1,0,0,255,1,255,0,1,0,1,1,0,0,1,255,255,1,1,255,255,255,1,255,1,255,1,0,1,0,1,255,1,0,1,255,255,1,1,0,255,255,0,1,0,0,1,1,255,0,0,255,1,0,255,1,255,255,255,1,255,1,0,0,255,0,1,255,255,0,0,255,1,255,255,255,1,1,255,1,255,1,255,0,0,255,0,1,255,255,0,1,0,1,255,0,1,1,0,255,1,255,1,1,1,255,0,0,0,1,1,255,255,1,0,255,255,0,0,1,0,1,255,0,1,0,0,255,255,0,255,0,0,0,1,1,0,255,1,255,0,1,255,0,0,1,1,255,0,1,0,1,1,255,1,0,1,255,1,1,255,255,0,0,255,0,255,0,255,255,255,0,0,0,0,255,255,1,255,0,1,1,1,0,1,1,0,255,255,0,255,255,0,1,0,255,255,0,255,0,0,255,255,1,255,255,0,0,0,0,255,1,1,0,255,1,1,1,0,255,255,1,255,255,255,255,255,0,0,0,0,0,255,0,255,0,0,0,1,1,1,255,255,1,1,255,255,255,0,0,255,0,0,1,255,255,1,1,1,255,0,255,255,0,255,1,1,1,0,1,1,255,255,1,255,1,0,255,0,255,255,0,1,1,255,0,1,0,1,1,0,1,255,1,0,0,1,1,1,255,1,255,1,255,255,1,0,0,255,0,0,0,255,0,255,1,255,255,1,255,0,0,255,0,1,255,1,0,1,0,255,1,255,255,0,1,0,1,255,0,255,1,0,255,255,255,1,1,1,1,255,1,1,255,1,1,255,0}, {0,0,255,1,0,1,1,255,1,1,0,1,1,1,0,0,255,255,0,255,0,0,0,1,0,0,0,255,255,1,1,255,255,0,1,1,255,0,0,255,1,1,1,255,255,0,1,0,255,255,1,255,1,0,0,1,1,1,255,1,0,1,1,0,0,255,255,0,0,255,1,1,0,0,1,1,255,0,1,0,1,1,255,255,1,1,1,0,255,255,1,1,0,0,0,1,1,255,255,0,1,0,255,1,0,0,0,255,255,255,1,255,0,1,255,0,1,1,0,255,0,255,1,0,0,255,255,255,1,255,0,1,0,0,255,1,0,255,1,1,1,255,1,255,255,0,1,1,1,1,255,1,255,1,0,1,1,0,255,0,1,0,1,0,1,255,255,1,255,1,1,255,0,1,0,1,1,0,0,1,255,255,255,1,0,255,1,0,1,0,1,0,0,1,1,255,255,1,255,0,1,255,0,255,1,1,0,255,255,0,1,255,255,1,1,1,0,0,0,255,0,0,1,1,1,255,0,255,0,255,0,0,0,0,255,1,1,255,255,0,255,1,1,1,0,255,0,1,255,255,1,255,255,0,1,0,0,1,1,1,255,1,1,255,0,1,255,1,255,255,0,1,1,255,1,0,255,1,255,0,0,1,255,1,1,255,1,0,1,1,255,0,255,1,0,255,0,255,1,255,1,1,0,0,255,255,0,1,255,0,0,1,255,0,0,0,1,0,1,1,1,0,255,255,255,0,0,0,0,0,1,1,255,1,0,255,0,1,1,0,255,255,1,255,1,255,0,255,255,1,1,1,0,0,255,255,1,1,1,1,0,255,0,1,255,0,255,0,0,255,0,0,255,0,1,0,1,255,1,255,255,0,1,255,1,0,1,1,1,255,1,0,1,1,255,0,255,0,0,255,255,0,1,255,255,255,255,255,0,255,1,1,255,0,0,0,0,0,1,0,0,1,255,0,0,0,0,1,255,1,0,1,255,1,0,0,255,1,255,1,0,0,1,0,1,1,1,0,1,1,255,255,1,0,255,255,0,255,0,0,0,1,1,1,1,255,1,255,1,255,1,0,0,0,0,255,1,0,255,255,0,255,1,255,1,1,255,0,1,255,1,0,255,1,255,0,255,1,1,255,0,255,1,1,255,0,0,0,255,0,0,0,1,0,1,255,255,1,1,1,255,255,255,255,1,255,1,255,1,0,1,0,255,255,255,0,1,255,255,255,1,255,0,1,1,0,1,0,0,1,1,1,255,255,1,0,0,255,1,1,0,1,1,0,1,1,1,1,255,255,0,255,1,255,0,1,255,1,1,1,1,0,255,255,255,0,1,1,1,1,0,0,255,255,0,1,1,1,0,255,255,255,1,1,0,255,1,1,255,255,1,0,1,1,1,0,0,0,0,255,255,1,255,0,255,1,255,1,1,255,255,255,0,0,255,1,1,255,0,255,1,0,0,0,255,1,1,1,255,0,1,255,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255}, } ; static const unsigned char precomputed_core_inv3sntrup653_n[precomputed_core_inv3sntrup653_NUM][crypto_core_INPUTBYTES] = { {143,212,18,81,211,14,122,14,247,132,221,205,61,159,13,229,135,142,121,208,178,17,125,28,171,142,208,178,170,171,119,246,151,113,37,154,178,172,45,29,69,156,68,100,58,13,111,73,241,44,5,142,0,40,172,149,53,170,49,181,218,104,155,17,246,249,104,40,220,231,221,63,67,24,94,113,53,246,201,238,109,40,218,37,154,162,91,191,159,178,162,22,170,255,183,175,84,183,234,120,223,47,199,74,233,135,178,43,158,101,123,232,4,246,51,150,128,22,170,198,84,212,41,237,43,75,148,221,74,81,245,30,64,94,128,146,190,126,104,33,209,198,223,39,178,132,46,104,113,101,244,128,98,23,252,183,203,217,120,88,13,53,203,103,22,252,43,97,99,0,41,169,79,22,89,236,90,97,136,152,41,217,30,47,156,170,135,217,197,51,58,17,116,168,56,213,10,163,110,13,209,234,237,119,202,14,84,155,181,87,250,226,61,72,64,135,199,181,75,170,89,226,115,171,141,93,138,91,2,222,158,202,145,24,185,59,226,67,132,163,120,61,226,167,118,196,112,36,123,144,129,70,220,157,33,233,147,237,90,86,199,137,61,158,41,185,117,201,138,69,13,25,158,247,60,129,253,64,44,251,169,89,93,111,152,216,114,91,155,176,181,241,87,159,42,49,125,234,222,235,86,139,86,179,185,82,11,92,102,170,219,118,41,144,162,114,238,211,192,217,166,15,25,103,223,67,95,27,167,253,227,29,222,116,38,44,12,183,185,142,120,28,107,154,132,93,70,145,71,248,215,25,118,144,129,118,62,166,16,61,244,62,6,139,136,91,7,126,29,218,69,234,101,142,249,205,106,140,141,161,216,211,138,218,114,198,229,208,63,74,98,184,18,140,243,46,147,221,7,85,97,134,132,83,14,139,4,213,3,217,238,22,125,0,116,107,243,225,110,139,109,171,181,225,19,2,231,247,254,101,234,25,183,111,97,65,189,222,15,111,25,114,239,91,85,253,23,163,165,74,57,88,98,117,204,229,213,156,138,99,168,82,52,118,196,32,48,52,142,12,93,190,81,198,255,179,123,181,218,54,219,20,189,92,175,16,44,97,176,48,16,134,1,187,213,221,80,0,204,195,55,133,40,24,238,83,130,94,200,194,139,116,231,2,20,34,66,188,87,178,25,199,63,56,34,221,213,147,160,116,56,5,235,29,143,189,160,170,78,140,242,177,104,219,66,182,139,24,159,204,240,103,47,74,157,119,47,226,136,158,191,111,77,1,232,125,165,18,142,120,134,190,219,57,225,244,163,236,18,151,53,133,163,8,250,22,157,230,247,195,122,31,192,36,39,143,9,15,238,183,54,253,127,31,125,229,78,150,210,212,110,71,149,218,191,199,193,82,58,47,181,98,176,243,238,49,198,8,183,50,40,8,65,128,116,246,12,96,220,44,169,107,34,22,191,82,157,242,12,127,245,223,138}, {100,61,62,13,119,214,210,98,90,231,132,235,230,119,183,10,122,47,228,230,5,104,220,122,13,24,42,96,217,67,64,57,255,165,189,10,110,166,13,194,244,166,83,224,254,85,45,132,43,62,111,151,73,249,82,180,142,213,92,88,165,18,17,36,179,71,10,159,122,3,162,40,242,22,77,77,16,61,150,104,112,169,39,110,3,37,227,31,249,168,236,212,158,164,202,52,52,210,212,158,189,80,181,124,106,121,140,42,94,63,163,79,166,206,204,11,118,19,190,109,164,142,148,25,175,194,186,27,217,152,179,114,18,141,32,202,191,138,254,238,203,71,79,5,157,135,250,238,146,207,146,162,199,214,119,85,52,115,211,227,114,122,177,188,86,18,252,10,251,32,182,22,88,63,88,135,145,253,3,123,228,11,68,249,133,90,115,182,244,2,202,191,134,217,186,74,108,101,129,13,210,48,154,131,215,59,137,253,237,242,55,56,182,16,147,185,49,192,31,241,22,146,232,177,99,194,242,52,182,177,150,28,13,240,145,238,46,74,25,117,174,247,49,176,216,54,71,162,23,231,116,63,198,159,204,74,206,73,58,245,226,121,202,69,109,45,234,236,123,200,35,177,54,167,221,149,172,19,172,45,148,3,175,188,154,10,69,213,145,184,15,253,6,145,125,72,76,251,80,55,64,174,130,149,20,162,84,88,103,92,202,243,223,244,66,117,237,201,46,214,14,222,77,211,231,163,46,149,216,53,194,172,152,192,201,129,50,113,113,223,198,126,183,127,54,33,226,41,96,185,241,179,0,104,243,119,131,213,238,98,100,35,178,77,68,58,209,220,147,190,124,155,33,143,123,160,81,90,181,233,144,96,81,101,63,249,211,87,129,32,206,232,30,125,145,98,170,197,99,4,131,76,36,200,103,200,130,244,129,83,65,211,202,122,2,70,229,22,192,79,247,191,33,220,157,245,30,41,253,88,189,170,223,24,195,192,221,119,216,66,39,0,27,29,24,72,136,251,155,111,209,90,213,117,203,107,130,35,254,230,227,77,79,135,251,251,71,41,114,7,236,217,4,163,118,104,190,60,112,67,159,239,185,165,248,12,121,12,211,59,229,227,38,40,245,75,248,242,223,80,161,111,254,195,173,115,34,75,32,246,150,134,123,173,161,205,86,161,27,211,150,112,168,231,105,136,242,59,2,34,138,61,198,132,63,102,77,110,10,117,190,255,207,32,186,223,21,169,81,64,42,211,8,70,35,163,119,46,238,106,21,173,12,242,71,230,241,170,65,152,24,211,156,142,169,175,117,17,130,84,207,5,173,106,129,245,236,238,7,113,18,76,179,210,44,148,175,22,116,5,170,138,253,152,132,138,43,68,63,50,198,25,146,142,52,123,45,93,133,155,67,7,199,210,218,47,41,117,100,254,203,126,175,169,23,96,116,104,140,161,31,178,202,68,65,120,116,92,24,75,218,29,42}, {54,54,128,108,129,144,224,29,239,228,161,105,251,250,226,54,188,150,245,230,240,206,250,94,96,112,28,131,220,248,235,247,180,24,135,79,241,37,11,32,45,92,43,201,250,24,40,45,199,96,133,92,38,233,237,179,103,31,195,130,227,123,181,159,42,97,35,246,61,94,48,84,74,109,85,106,161,27,156,121,135,51,124,208,98,245,166,95,119,100,48,234,185,243,164,81,139,125,196,112,11,191,237,81,4,106,81,43,53,13,106,223,225,153,59,23,88,69,97,193,236,203,38,189,229,123,150,223,61,111,167,208,221,193,138,204,119,128,236,216,92,202,240,9,196,202,166,31,176,94,225,233,82,25,14,113,57,254,24,39,93,9,75,108,159,144,195,219,27,247,182,35,151,160,237,20,248,16,145,12,150,109,173,220,236,70,20,123,103,214,209,146,115,76,181,60,241,91,82,226,53,43,203,178,13,11,59,122,207,134,66,100,238,34,112,252,70,26,136,105,53,220,137,169,69,221,42,172,251,83,130,1,26,119,9,176,109,101,10,11,146,155,166,235,171,189,202,60,122,89,84,199,180,237,31,200,132,118,129,146,118,23,1,175,243,185,160,250,184,116,147,21,55,95,73,141,126,164,52,27,135,118,187,176,36,69,116,248,131,123,195,69,78,62,240,140,93,2,3,6,219,54,28,156,148,225,132,125,63,222,158,33,221,177,159,103,131,138,252,140,135,101,24,84,147,154,59,177,67,143,149,0,200,48,11,112,17,91,182,40,162,215,44,83,87,59,62,49,217,74,234,242,63,226,101,37,168,231,73,178,250,45,144,64,80,126,206,220,78,230,67,140,7,151,145,1,12,166,243,107,178,85,16,253,248,101,252,30,114,83,95,24,44,66,10,246,43,247,217,148,40,40,172,85,192,67,24,9,97,205,231,168,103,244,3,255,54,32,86,169,60,228,21,114,148,230,35,15,68,103,147,127,244,0,108,177,83,70,40,96,134,168,38,96,72,34,57,25,150,132,195,138,199,1,135,190,84,89,46,137,150,208,2,190,225,51,11,11,16,61,6,185,3,221,91,96,141,239,177,143,109,159,57,109,38,49,119,75,30,148,236,144,172,41,85,151,118,110,99,146,195,24,125,5,171,165,190,245,248,66,84,187,153,155,58,20,218,83,242,185,245,91,106,27,178,34,226,52,25,183,76,203,122,76,41,19,100,146,44,5,36,27,130,73,198,126,115,192,51,255,43,0,43,72,255,105,116,42,205,13,225,179,56,100,236,215,243,137,157,241,42,251,125,66,195,191,170,238,124,138,10,40,125,242,56,126,112,162,51,0,34,68,202,129,140,216,244,226,187,160,91,65,148,124,11,169,184,94,113,44,122,1,205,45,150,173,182,94,52,95,0,177,115,4,170,186,58,39,54,223,33,83,139,93,173,68,184,116,20,69,228,254,92,213,231,179,85,189,134,232,176,58,40}, {164,51,145,9,15,60,140,91,41,47,91,139,53,96,108,33,94,235,229,181,228,14,99,213,117,212,73,249,109,32,197,237,51,50,209,50,253,2,181,225,212,221,253,182,100,154,42,214,228,76,249,213,2,93,128,194,197,187,171,31,229,204,214,222,65,165,242,91,95,15,168,88,105,7,178,65,44,1,105,190,30,88,106,142,200,162,166,80,165,36,4,236,216,236,6,79,144,66,69,226,38,123,137,41,220,206,198,98,70,47,162,51,236,228,223,248,140,31,242,124,174,197,42,185,239,217,146,156,193,151,123,75,59,150,164,194,215,67,67,79,225,2,150,235,98,135,19,167,53,95,15,164,172,13,39,25,46,191,111,64,209,157,3,109,67,123,204,118,51,40,76,187,86,198,137,45,33,90,26,176,146,51,10,95,170,108,121,38,113,94,106,40,97,37,222,90,54,113,12,218,7,75,43,90,238,83,181,7,253,47,223,219,125,6,27,13,189,146,140,20,143,141,18,54,254,174,158,100,59,200,44,162,24,108,139,153,170,5,245,156,182,81,194,58,164,240,166,209,149,247,65,126,231,181,82,166,48,210,191,223,155,144,27,27,210,225,151,135,221,193,44,244,118,78,162,87,97,248,64,39,179,109,10,120,63,231,208,3,71,112,247,25,173,146,103,176,164,27,42,159,149,248,64,129,121,108,240,42,196,211,210,51,231,203,37,181,14,125,138,248,217,79,137,97,172,194,33,245,65,215,201,224,226,218,93,83,152,102,184,226,204,18,82,170,167,84,239,242,229,232,31,173,190,172,228,51,98,163,248,38,21,152,65,27,209,7,187,113,48,3,38,202,200,232,65,102,237,243,194,3,166,161,58,74,210,187,38,52,93,195,230,234,19,36,72,216,232,234,148,58,213,39,126,143,246,31,243,240,167,18,29,190,44,95,94,163,178,113,151,94,190,34,109,147,118,103,209,6,53,47,205,223,204,53,52,230,222,126,193,241,232,153,138,106,160,237,215,123,75,29,217,42,192,15,253,22,51,21,105,192,11,201,152,32,173,93,63,37,154,213,14,134,41,61,102,127,24,227,116,115,108,45,52,112,149,159,103,160,179,213,36,252,161,6,161,18,64,75,66,49,7,143,232,79,86,92,4,245,177,90,117,203,133,212,229,183,225,118,28,105,19,40,224,180,46,232,220,8,149,192,29,40,86,191,94,30,236,44,176,43,68,86,54,84,1,31,19,124,107,49,158,238,0,72,24,73,84,58,247,43,28,200,249,184,27,81,115,159,58,113,36,180,150,112,69,218,253,54,187,113,32,77,199,194,151,174,155,225,116,104,150,148,55,247,89,207,4,136,208,72,201,72,165,200,162,47,98,203,244,239,188,80,6,23,66,19,78,208,194,37,46,247,25,32,222,93,252,172,109,250,142,228,23,33,227,199,227,232,206,140,1,157,223,241,217,253,12,143,195,17,228,1,122}, {255,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_inv3sntrup653_k[precomputed_core_inv3sntrup653_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_inv3sntrup653_c[precomputed_core_inv3sntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, } ; static void test_core_inv3sntrup653_impl(long long impl) { unsigned char *h = test_core_inv3sntrup653_h; unsigned char *n = test_core_inv3sntrup653_n; unsigned char *k = test_core_inv3sntrup653_k; unsigned char *c = test_core_inv3sntrup653_c; unsigned char *h2 = test_core_inv3sntrup653_h2; unsigned char *n2 = test_core_inv3sntrup653_n2; unsigned char *k2 = test_core_inv3sntrup653_k2; unsigned char *c2 = test_core_inv3sntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup653(impl); printf("core_inv3sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup653_implementation(impl),ntruprime_dispatch_core_inv3sntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup653; printf("core_inv3sntrup653 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup653_implementation(),ntruprime_core_inv3sntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_inv3sntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_inv3sntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_inv3sntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_inv3sntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_inv3sntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_inv3sntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_inv3sntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_inv3sntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_inv3sntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_inv3sntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_inv3sntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup653")) return; storage_core_inv3sntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_inv3sntrup653_h = aligned(storage_core_inv3sntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_inv3sntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_inv3sntrup653_n = aligned(storage_core_inv3sntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_inv3sntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_inv3sntrup653_k = aligned(storage_core_inv3sntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_inv3sntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_inv3sntrup653_c = aligned(storage_core_inv3sntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_inv3sntrup653_h2 = callocplus(maxalloc); test_core_inv3sntrup653_h2 = aligned(storage_core_inv3sntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_inv3sntrup653_n2 = callocplus(maxalloc); test_core_inv3sntrup653_n2 = aligned(storage_core_inv3sntrup653_n2,crypto_core_INPUTBYTES); storage_core_inv3sntrup653_k2 = callocplus(maxalloc); test_core_inv3sntrup653_k2 = aligned(storage_core_inv3sntrup653_k2,crypto_core_KEYBYTES); storage_core_inv3sntrup653_c2 = callocplus(maxalloc); test_core_inv3sntrup653_c2 = aligned(storage_core_inv3sntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_inv3sntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup653();++impl) forked(test_core_inv3sntrup653_impl,impl); ++test_core_inv3sntrup653_h; ++test_core_inv3sntrup653_n; ++test_core_inv3sntrup653_k; ++test_core_inv3sntrup653_c; ++test_core_inv3sntrup653_h2; ++test_core_inv3sntrup653_n2; ++test_core_inv3sntrup653_k2; ++test_core_inv3sntrup653_c2; } free(storage_core_inv3sntrup653_c2); free(storage_core_inv3sntrup653_k2); free(storage_core_inv3sntrup653_n2); free(storage_core_inv3sntrup653_h2); free(storage_core_inv3sntrup653_c); free(storage_core_inv3sntrup653_k); free(storage_core_inv3sntrup653_n); free(storage_core_inv3sntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_inv3sntrup761.c0000644000000000000000000007453514705505542023453 0ustar rootroot/* ----- core/inv3sntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_inv3sntrup761_checksums[] = { "9e86b6061fb03967c7366ba2febae6e9e8d1b017f6c232437b46c2f1c54eca0f", "1a98d5561c7920363f4ed3c5c6b8f8100ff1a64dca2edcb93ee1b0db6442c929", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_inv3sntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_inv3sntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_inv3sntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_inv3sntrup761_CONSTBYTES static void *storage_core_inv3sntrup761_h; static unsigned char *test_core_inv3sntrup761_h; static void *storage_core_inv3sntrup761_n; static unsigned char *test_core_inv3sntrup761_n; static void *storage_core_inv3sntrup761_k; static unsigned char *test_core_inv3sntrup761_k; static void *storage_core_inv3sntrup761_c; static unsigned char *test_core_inv3sntrup761_c; static void *storage_core_inv3sntrup761_h2; static unsigned char *test_core_inv3sntrup761_h2; static void *storage_core_inv3sntrup761_n2; static unsigned char *test_core_inv3sntrup761_n2; static void *storage_core_inv3sntrup761_k2; static unsigned char *test_core_inv3sntrup761_k2; static void *storage_core_inv3sntrup761_c2; static unsigned char *test_core_inv3sntrup761_c2; #define precomputed_core_inv3sntrup761_NUM 5 static const unsigned char precomputed_core_inv3sntrup761_h[precomputed_core_inv3sntrup761_NUM][crypto_core_OUTPUTBYTES] = { {1,1,255,0,1,1,0,1,0,0,1,0,0,255,0,255,0,255,255,255,1,0,0,1,255,1,255,255,1,1,0,255,0,0,255,255,1,0,0,255,255,255,0,1,0,1,255,255,0,0,255,1,1,1,1,1,0,255,0,1,0,255,255,255,0,1,1,0,1,255,0,255,0,0,1,255,255,1,0,0,0,0,1,1,255,255,1,1,255,0,255,0,0,1,0,1,255,255,1,1,0,1,0,1,0,0,255,1,0,0,255,0,0,255,255,1,0,255,0,1,255,255,0,255,1,255,255,1,1,0,255,255,1,0,1,1,255,0,1,255,0,1,0,0,0,255,255,255,255,255,0,255,255,1,1,1,1,1,1,255,1,0,0,1,1,1,1,1,1,1,255,0,1,1,1,1,255,255,0,255,1,255,0,0,255,1,255,255,0,255,1,255,255,0,0,255,1,0,255,255,0,1,1,0,1,1,1,255,0,255,1,255,0,0,0,0,255,1,1,0,0,0,1,0,1,255,0,255,1,255,255,0,1,0,1,1,255,0,1,0,255,0,255,1,1,0,0,0,1,1,1,255,1,0,255,1,0,255,255,1,255,0,0,255,0,0,1,255,0,255,0,255,1,1,1,0,0,1,255,0,0,1,1,0,255,255,1,255,0,0,0,255,1,1,1,0,0,0,255,0,0,0,255,0,1,1,255,1,1,255,0,0,255,255,1,0,1,0,0,255,255,1,0,1,1,255,1,1,1,0,255,1,0,0,255,0,1,255,0,255,0,0,255,255,0,1,0,255,1,255,0,0,0,0,255,255,1,1,1,1,0,0,255,0,255,255,1,0,0,1,255,255,1,255,255,0,1,0,0,255,0,255,0,0,255,255,1,0,1,0,255,255,0,0,1,255,1,255,255,1,255,1,255,255,0,1,1,255,255,1,0,255,0,0,1,1,255,0,1,0,255,255,1,0,0,1,255,255,0,1,255,0,0,1,255,255,0,0,1,1,255,255,255,0,255,255,1,0,0,255,1,0,1,1,0,1,255,1,0,255,1,255,255,255,1,1,0,255,1,0,0,255,1,0,0,0,1,1,255,255,255,255,0,0,1,255,255,1,255,1,1,1,1,0,0,0,0,1,0,1,1,0,255,1,1,255,255,0,1,255,0,1,255,1,255,0,0,255,1,0,255,1,255,255,255,255,0,0,255,255,255,0,255,0,1,255,1,1,255,0,255,255,255,1,255,0,1,1,0,0,0,1,255,1,1,0,255,0,255,0,1,1,1,255,1,1,255,0,255,255,1,0,255,1,0,1,0,255,0,0,255,255,0,255,255,1,0,255,0,1,1,0,255,1,255,0,255,255,0,255,0,0,1,255,255,255,0,0,0,255,0,255,0,0,1,1,1,1,0,255,255,0,0,1,0,0,1,1,255,1,1,1,255,0,1,255,0,0,0,0,0,255,0,1,1,1,1,0,0,1,1,0,1,0,1,255,255,1,0,255,255,1,0,0,0,0,255,1,255,1,1,255,0,0,255,255,1,0,1,255,255,1,255,255,255,0,0,255,0,255,1,0,0,1,0,0,0,255,0,1,255,255,0,0,255,0,0,1,255,0,0,1,255,0,1,255,255,255,255,255,255,0,255,255,1,1,1,0,0,255,0,1,255,1,1,0,1,0,255,1,0,1,0,0,0,0,0,1,255,1,0,0,0,1,0,0,255,0,1,255,255,0}, {255,255,1,255,1,1,255,0,1,0,255,0,0,1,1,0,0,0,0,0,1,0,0,255,0,0,255,0,255,1,255,1,0,0,1,1,0,255,255,0,255,1,0,1,255,1,1,0,255,1,0,1,0,1,1,0,1,255,255,0,1,255,0,1,1,1,0,1,0,1,255,1,1,0,0,0,1,255,0,1,1,0,255,1,0,1,0,255,0,0,255,255,255,1,255,255,1,255,0,1,1,1,1,1,255,0,255,1,1,0,255,1,255,255,0,1,1,0,255,255,255,255,1,0,1,255,0,0,0,1,255,255,1,0,255,1,0,1,0,255,255,0,255,1,255,255,1,0,255,1,255,1,1,0,0,0,0,255,0,1,0,255,1,0,255,0,255,0,0,0,1,1,255,0,1,255,1,0,0,1,1,0,0,0,0,255,255,1,0,0,255,0,255,0,255,0,0,255,255,255,0,255,1,0,1,255,0,0,255,1,0,255,255,255,0,1,0,0,0,1,255,1,1,255,0,255,255,255,0,0,255,1,1,1,255,255,1,255,255,255,0,1,0,1,1,0,1,1,255,255,255,1,0,255,1,1,1,0,0,255,0,0,0,255,1,255,255,1,0,255,1,255,0,255,1,0,255,1,255,255,255,1,255,1,1,0,1,1,0,255,255,1,255,255,255,1,255,255,0,255,1,0,0,0,0,0,1,255,1,255,1,255,0,255,0,0,0,255,1,255,1,1,255,255,1,0,0,255,255,1,1,1,0,255,1,1,1,1,255,255,0,1,255,0,1,0,1,1,0,255,0,0,255,1,1,255,1,255,1,1,255,255,255,1,255,1,255,1,0,0,255,1,0,0,255,0,255,255,255,255,0,1,1,255,1,1,255,0,0,0,0,1,1,1,0,255,1,255,1,1,1,0,255,255,1,255,1,255,255,1,1,255,1,255,1,0,1,1,1,255,255,0,0,1,255,1,0,0,255,1,1,255,1,1,255,255,255,1,255,1,255,0,1,255,0,255,255,255,1,255,1,0,255,1,255,1,1,0,1,1,1,1,255,0,1,1,1,1,255,0,255,255,0,255,255,0,1,255,1,0,0,255,255,255,255,255,0,0,1,255,1,255,1,255,255,0,1,1,1,255,0,255,255,1,255,255,0,1,255,0,255,255,0,255,1,255,255,1,0,255,255,255,0,255,1,0,1,1,1,1,255,0,255,255,0,0,0,255,1,0,1,255,0,1,255,1,0,1,1,255,255,1,1,1,0,255,1,1,1,255,0,1,0,255,1,0,1,255,255,0,0,1,255,1,0,0,0,1,255,1,1,1,0,0,0,1,255,255,255,1,1,0,1,255,1,255,1,255,0,0,255,255,0,255,255,255,255,1,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,1,255,1,255,255,1,0,0,0,1,0,255,1,0,255,1,0,1,1,255,1,255,255,255,0,255,0,0,1,0,0,255,255,255,255,0,0,1,0,255,1,255,1,0,255,0,0,255,0,0,0,255,0,255,1,1,1,1,255,1,255,0,0,0,1,0,0,255,255,1,0,255,0,0,0,1,255,1,255,0,1,1,255,1,0,1,1,255,1,1,0,255,255,1,1,1,1,255,0,0,255,0,1,0,1,255,0,1,1,255,1,1,0,0,0,1,0,1,255,0,1,255,255,0,1,1,1,0,0,255,255,1,0,0,1,255,1,1,0}, {0,1,255,255,0,255,255,0,255,1,1,1,1,0,255,0,1,0,255,1,0,1,0,1,0,1,255,255,0,255,255,1,0,1,0,1,255,255,0,0,0,1,1,1,255,1,255,0,255,1,0,1,255,0,1,255,255,0,255,0,255,1,0,0,1,1,255,1,1,1,1,0,0,255,255,255,0,1,1,0,1,255,255,0,0,0,255,1,1,255,255,0,1,1,0,1,255,0,0,1,255,1,255,0,0,255,0,1,255,0,0,0,255,1,255,1,0,1,0,0,255,0,0,1,255,255,1,1,1,255,0,0,255,255,255,0,0,1,0,255,0,0,255,0,255,0,0,255,255,1,255,255,1,255,255,0,0,1,1,0,1,1,0,1,0,255,0,255,0,255,255,255,0,0,255,0,0,0,0,0,0,0,255,0,255,1,0,0,0,255,1,1,0,0,0,255,0,0,1,255,255,0,1,255,1,1,1,0,0,255,1,255,1,1,1,255,255,1,255,1,0,0,1,255,1,255,0,0,1,0,255,0,255,255,0,0,0,255,1,0,255,1,1,255,255,0,255,0,1,0,0,1,0,255,0,0,1,0,1,1,0,255,1,255,1,1,0,255,1,0,255,255,0,1,0,255,255,0,1,0,0,1,255,0,0,0,255,1,255,255,255,1,0,255,255,1,0,1,255,1,255,255,1,0,1,1,1,1,255,1,0,255,0,255,0,1,1,1,1,0,255,1,0,1,1,255,0,0,0,1,255,255,0,0,255,1,1,0,0,1,0,255,1,1,255,255,0,0,255,0,1,0,1,1,0,1,1,1,255,0,1,1,1,1,1,255,255,1,255,1,255,0,1,1,1,255,0,0,1,0,255,0,255,1,0,1,255,0,0,255,0,0,255,0,255,1,1,1,0,0,255,0,1,255,1,0,0,255,255,1,0,0,0,255,255,255,255,255,255,1,255,255,1,1,0,0,1,0,0,255,255,255,0,1,0,1,0,0,1,0,0,1,255,1,0,0,1,0,1,0,1,1,255,255,255,0,0,255,1,1,0,255,0,1,255,0,255,1,1,0,255,1,0,255,255,255,0,255,255,0,0,255,0,255,255,255,0,0,0,255,1,0,1,0,0,255,0,255,1,0,1,1,255,0,255,255,1,0,255,0,1,255,0,1,1,1,1,0,1,255,0,0,255,0,1,1,255,255,255,255,1,0,1,1,0,255,1,1,0,255,1,1,255,0,1,255,0,0,255,255,255,0,255,255,1,1,0,0,255,255,255,0,255,0,255,255,0,1,255,0,1,255,255,255,255,255,1,1,255,255,255,0,255,1,1,255,0,255,0,0,0,0,0,255,1,1,1,255,255,255,1,1,0,1,1,1,255,255,0,255,1,255,255,255,255,255,1,1,1,255,0,1,0,1,255,255,1,1,255,255,1,0,0,255,255,255,0,255,0,0,0,0,255,0,1,1,255,255,255,0,255,1,255,1,1,0,0,0,0,255,255,1,1,255,1,0,0,0,1,1,0,255,0,255,1,255,1,255,255,255,0,1,1,255,0,0,255,255,255,255,1,1,255,1,0,255,0,0,1,255,1,1,1,255,255,1,1,255,1,255,255,255,0,255,0,0,255,255,0,255,255,0,1,255,1,255,1,255,0,0,0,255,0,255,0,0,0,0,255,255,0,255,255,0,1,1,255,0,1,255,0,1,1,1,0,1,1,255,1,0,255,0}, {255,1,255,255,1,255,1,255,0,0,255,255,0,255,0,0,1,0,255,255,1,1,255,0,0,1,0,255,1,1,0,1,0,1,0,0,255,255,255,0,0,255,0,1,0,1,255,255,1,0,255,0,1,1,0,1,0,0,255,255,255,0,1,1,0,255,255,0,0,0,1,255,255,255,255,255,0,0,0,1,0,1,0,1,1,0,1,255,0,255,255,255,0,255,0,1,255,0,1,0,0,0,255,0,1,255,0,1,0,0,255,1,0,255,1,255,0,255,255,255,0,1,0,255,1,1,255,1,0,0,1,0,1,255,1,1,0,1,0,255,0,0,0,255,0,255,0,255,1,1,0,255,255,0,1,255,1,1,1,1,255,0,255,255,255,1,0,0,0,1,0,255,0,255,0,1,255,255,255,255,1,0,255,255,255,0,0,1,0,0,255,0,0,0,1,1,0,0,255,0,255,0,1,1,255,1,0,255,255,1,255,1,255,1,1,0,255,255,255,255,0,0,0,0,1,1,255,0,255,1,1,1,1,255,1,0,1,255,0,1,1,0,1,0,0,1,255,255,255,1,255,0,1,255,255,0,0,0,1,0,1,255,1,1,255,255,1,1,1,0,0,0,255,255,1,1,255,1,1,255,255,255,0,1,255,1,0,1,255,255,1,1,0,255,1,0,255,0,0,1,0,0,1,255,255,1,0,255,1,0,1,255,255,1,1,0,1,0,255,0,1,255,1,1,255,0,1,0,0,0,255,1,255,1,1,255,1,0,255,0,0,255,1,255,1,1,0,255,1,1,0,0,255,255,0,255,1,0,1,0,0,1,1,0,1,255,255,1,255,1,255,255,1,1,1,255,0,0,1,0,255,255,1,255,255,0,0,1,0,255,0,1,0,1,255,255,1,0,1,1,1,255,1,255,0,1,1,0,1,1,1,255,0,1,0,255,255,0,0,0,255,0,0,1,255,0,1,1,255,0,1,1,255,1,1,1,1,0,0,0,1,255,255,1,1,0,0,0,1,1,1,1,0,255,0,255,0,255,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,1,0,0,255,255,0,0,0,255,1,1,1,255,0,0,0,0,0,0,1,1,1,0,255,0,1,1,255,0,1,0,255,1,1,0,1,255,255,0,1,1,1,0,1,255,0,1,0,0,1,255,0,255,0,0,255,1,0,0,255,0,1,1,1,0,1,1,255,1,0,255,0,0,1,1,255,0,255,0,255,1,0,0,0,1,255,0,0,255,1,1,0,1,255,1,0,1,0,255,255,0,1,0,0,0,1,255,1,0,0,0,0,0,255,0,255,1,1,1,1,0,0,0,0,1,1,1,255,1,1,0,1,255,0,0,1,0,1,255,0,255,255,255,255,1,1,1,0,1,255,255,1,0,0,255,1,255,255,1,255,255,255,0,0,255,0,255,1,1,255,0,255,0,1,0,1,1,1,0,255,1,1,1,255,0,1,0,255,255,255,255,255,1,255,1,255,255,1,255,1,1,1,255,1,1,1,1,1,255,0,0,255,255,255,0,255,1,255,0,255,0,1,255,255,1,255,1,1,255,0,255,255,0,1,255,255,0,1,0,0,255,1,0,255,1,255,255,0,0,255,0,0,0,0,0,255,0,255,255,0,1,255,1,0,1,0,1,0,0,0,1,0,0,255,0,0,1,255,0,1,1,1,255,1,1,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255}, } ; static const unsigned char precomputed_core_inv3sntrup761_n[precomputed_core_inv3sntrup761_NUM][crypto_core_INPUTBYTES] = { {69,111,175,212,151,132,75,240,232,177,227,243,82,253,183,137,116,7,171,177,23,243,228,58,243,24,89,182,157,43,202,39,172,218,36,8,192,105,61,214,35,46,196,136,255,156,20,39,177,203,35,115,119,22,40,151,91,6,254,68,23,250,55,163,121,233,91,21,111,112,55,202,148,254,122,200,24,85,73,166,98,70,122,157,15,254,93,241,110,84,46,10,251,98,74,104,231,32,125,49,119,159,53,130,176,80,145,134,228,242,236,105,44,211,60,164,119,128,120,43,50,2,250,100,161,84,84,105,7,82,194,139,65,58,250,232,4,228,118,67,19,88,233,62,227,238,198,230,235,73,147,196,224,136,136,228,228,125,107,130,252,13,135,197,114,126,29,84,234,9,136,51,149,68,145,63,85,144,10,135,128,30,120,181,65,220,158,100,129,72,254,132,208,126,26,24,23,12,18,223,22,226,134,172,221,76,120,2,80,131,123,73,198,12,214,136,21,241,204,209,125,171,155,198,162,196,87,207,99,31,250,251,74,61,135,34,54,102,100,153,182,196,250,96,58,171,245,41,93,66,224,235,96,3,177,62,253,93,77,14,18,210,242,244,43,80,165,79,156,159,44,185,114,248,79,8,103,151,174,18,204,168,164,160,0,144,174,42,111,107,29,97,182,70,135,14,205,98,13,90,169,178,186,181,98,159,253,48,121,136,61,209,156,235,76,21,142,154,45,147,58,64,142,27,125,73,80,50,119,159,10,40,7,229,246,208,21,253,183,192,126,179,3,136,54,14,89,228,68,5,214,164,10,95,179,217,31,126,198,70,4,118,144,105,250,152,35,7,43,224,130,139,64,166,144,248,122,158,88,112,149,88,238,38,154,131,107,75,80,218,116,70,117,106,194,239,50,206,180,101,55,29,200,223,151,240,138,89,37,0,134,121,164,95,0,20,69,245,11,150,134,80,70,78,224,27,249,59,109,61,248,100,73,207,80,176,233,109,3,52,29,169,27,177,106,59,118,19,9,119,19,171,238,28,201,234,127,79,245,11,90,159,124,135,216,135,203,24,33,112,64,224,83,121,200,120,93,197,38,166,12,183,175,165,150,25,181,159,120,211,42,131,138,200,102,181,48,217,113,140,46,76,156,159,62,241,133,105,25,216,141,23,239,92,156,198,208,148,227,173,140,90,60,143,203,26,171,186,141,3,149,252,56,237,224,55,195,188,171,90,137,67,130,138,68,210,103,56,105,29,154,84,160,253,53,28,8,17,56,66,31,45,20,52,124,104,45,124,92,163,46,31,6,141,129,125,23,212,0,65,178,248,83,133,30,6,182,249,126,170,17,113,181,204,237,113,59,30,186,30,51,242,61,37,178,123,57,153,65,154,119,197,254,142,124,71,76,118,117,94,10,192,174,141,122,231,164,42,196,62,143,162,128,47,48,121,69,181,67,170,13,70,222,126,204,108,47,144,121,151,66,226,214,57,104,171,96,25,2,13,46,196,236,8,254,250,255,25,227,190,179,195,51,170,27,16,143,176,83,144,214,164,134,134,8,212,134,102,93,27,141,232,133,182,233,122,126,24,80,154,27,206,184,85,236,147,11,240,232,243,187,196,141,130,140,149,152,6,227,167,43,214,80,227,175,194,153,143,146,120,57,226,220,141,38,16,69,243,142,73,207,246,5,194,64,207,71,93,192,166,75,180,238,90,196,159,28,45,80,82,76}, {66,68,204,209,192,244,6,227,48,167,174,97,62,107,253,96,207,128,210,163,82,123,31,0,215,37,109,49,4,207,23,198,123,200,47,184,7,146,186,148,8,70,232,194,130,190,254,125,205,87,250,139,180,120,186,158,65,184,241,1,166,124,206,225,95,177,120,177,61,252,209,38,127,222,4,34,160,78,212,206,165,35,12,17,44,170,22,32,111,34,28,76,110,241,237,156,158,202,28,105,49,128,250,129,232,90,195,197,66,251,182,155,168,144,251,146,95,149,118,106,157,250,151,14,250,36,223,77,28,246,201,7,33,241,193,191,225,228,129,192,28,177,169,52,156,111,196,189,116,12,67,204,36,71,141,198,50,227,88,175,30,242,195,21,99,207,9,29,46,25,225,153,189,107,142,94,153,168,146,81,131,76,0,114,209,110,249,205,145,191,102,195,142,84,11,180,186,19,253,88,17,59,73,113,176,145,126,124,86,175,115,16,137,251,211,218,122,147,173,234,215,46,115,47,175,238,246,27,210,237,5,38,70,77,83,20,255,104,146,88,74,233,32,10,195,247,137,44,240,166,53,103,1,113,222,140,72,8,234,101,72,35,133,195,5,255,118,231,194,209,53,25,3,120,166,241,238,185,238,19,161,56,67,87,47,22,37,181,80,69,246,254,7,57,127,172,253,48,5,115,54,111,15,71,54,97,192,173,199,30,65,245,99,105,116,126,168,65,220,211,121,89,243,14,69,20,118,202,246,128,205,15,43,223,241,80,113,217,131,235,15,122,204,143,139,239,224,151,64,17,243,47,213,254,169,102,0,91,192,18,98,203,250,191,179,90,82,87,13,21,38,76,247,22,117,150,189,99,100,66,74,12,49,189,220,21,182,45,52,136,235,12,68,182,81,108,175,231,252,20,223,188,71,41,132,193,101,171,79,212,42,1,223,39,122,93,165,195,16,196,251,227,42,37,73,50,9,24,120,244,105,174,190,199,115,148,6,60,2,147,82,159,35,223,176,25,223,60,1,247,131,204,92,125,25,55,193,160,40,52,27,102,82,200,218,134,249,253,89,77,187,108,58,253,129,119,161,212,172,190,77,165,151,152,3,198,242,41,44,22,242,84,68,226,225,66,84,50,99,185,178,16,225,192,133,150,4,235,4,26,174,81,25,58,71,234,220,155,230,109,147,160,230,165,236,120,157,233,26,6,247,209,253,77,177,72,217,212,243,17,255,248,92,25,46,139,216,176,22,15,44,221,41,134,45,198,223,30,250,108,96,88,245,143,9,149,31,196,241,137,124,128,56,209,55,132,233,13,217,232,10,115,34,203,135,110,192,156,170,10,63,134,80,157,97,237,138,24,255,170,235,244,78,28,14,162,188,59,140,49,88,40,159,251,78,230,58,209,110,170,73,130,220,94,17,44,210,193,176,16,90,173,111,105,205,210,76,13,88,69,52,89,216,71,247,156,141,248,4,49,239,69,58,184,238,250,103,25,54,156,182,114,100,87,143,11,179,254,186,173,30,205,191,228,228,86,205,74,173,1,126,3,171,36,95,217,20,6,216,208,185,126,13,102,175,41,118,221,171,232,209,212,200,220,84,3,67,20,223,205,74,96,8,227,146,97,131,40,171,122,185,0,102,127,232,8,87,30,60,54,216,114,183,44,190,52,197,146,24,227,244,137,207,232,170,235,132,31,233,23,54,3,218,145,118,56,197,197,90,57,183}, {199,5,141,172,3,106,136,18,138,72,186,6,146,122,33,235,130,132,16,172,247,74,255,124,139,62,220,48,64,49,62,187,190,45,6,211,67,164,168,153,200,0,117,189,100,23,224,175,49,104,232,213,113,143,30,185,223,13,134,254,129,31,145,103,104,214,175,139,102,85,216,70,226,53,246,255,90,195,40,151,150,8,107,211,247,25,162,254,225,224,160,111,222,125,99,143,117,215,11,228,217,128,181,220,48,157,75,245,245,5,234,170,77,167,220,225,229,86,103,183,50,68,250,220,0,42,57,204,103,23,32,176,201,101,133,202,250,6,211,200,251,61,145,213,108,139,196,248,36,7,242,88,113,135,127,112,23,115,78,249,176,41,35,58,227,239,53,113,39,198,228,11,208,168,121,151,228,138,209,222,134,44,120,134,96,16,222,161,120,169,172,139,188,188,99,247,48,0,235,104,181,13,79,46,2,217,164,196,46,79,41,160,112,71,186,252,255,135,213,9,74,178,85,155,86,8,124,63,157,162,88,240,162,140,123,225,59,6,39,206,5,123,60,194,31,211,196,138,199,124,115,176,236,205,206,135,24,192,14,12,172,154,11,88,144,112,58,202,233,233,55,148,68,239,97,90,247,31,116,170,235,148,65,212,19,208,131,39,172,78,221,250,141,130,174,38,250,55,211,46,59,47,191,136,105,82,207,15,224,60,136,188,40,162,229,126,28,76,153,101,49,16,152,222,219,145,118,88,180,47,167,156,100,159,100,216,109,226,231,167,62,40,57,85,94,198,154,210,221,130,197,183,95,175,30,143,136,120,197,239,101,15,134,94,22,67,70,241,132,1,157,224,154,201,157,90,69,3,210,43,30,60,126,161,103,58,55,13,3,229,174,160,223,7,138,236,181,130,255,34,252,98,161,242,114,41,30,65,98,58,92,226,20,242,119,110,182,85,255,149,212,26,208,72,48,172,215,183,159,52,16,238,185,55,237,32,53,158,83,170,163,105,178,31,68,177,27,146,93,37,184,54,58,64,45,150,19,113,75,208,69,51,211,94,200,20,42,253,168,215,56,91,97,249,44,148,234,235,119,247,232,176,187,50,72,159,205,121,122,135,47,103,139,208,87,157,114,249,111,3,5,238,20,195,203,227,14,17,114,179,87,78,187,67,152,139,193,116,167,145,189,108,242,158,165,35,240,244,66,50,169,125,96,48,255,181,44,3,75,73,119,230,39,194,161,159,6,237,73,18,222,184,190,123,152,49,153,184,238,76,123,182,59,129,194,207,15,69,195,59,151,14,13,178,80,75,43,131,250,201,110,189,42,173,241,138,29,84,48,147,61,37,197,126,50,133,57,100,203,18,229,243,189,167,62,35,190,145,169,228,59,186,120,242,42,192,86,107,145,108,111,140,198,121,255,181,230,225,231,238,234,121,129,229,170,33,168,114,53,126,189,185,122,224,162,92,102,139,212,109,46,205,111,55,151,98,22,13,133,72,183,119,144,221,148,2,88,138,16,35,136,171,195,186,202,42,255,210,51,200,81,158,55,33,144,68,59,174,64,151,96,0,97,207,122,191,40,105,173,247,254,181,6,247,231,16,174,132,124,215,119,156,224,54,28,134,199,194,181,130,242,80,217,12,251,179,85,206,47,17,130,187,150,26,120,80,40,75,83,17,34,190,45,112,6,82,148,61,165,208,15,28,172,87,231,206,215,198,97,103,238}, {138,131,94,87,16,239,242,31,191,74,138,37,22,208,105,208,31,170,59,94,223,143,166,12,106,120,113,56,42,88,104,87,50,127,190,149,206,178,191,27,143,0,40,248,54,93,100,188,216,18,142,196,250,36,60,31,162,23,254,67,180,191,41,145,229,9,204,19,242,39,199,106,215,96,212,110,135,117,36,232,143,232,90,72,219,117,86,189,15,147,22,238,199,122,114,8,34,8,191,245,12,39,71,225,170,125,188,18,121,236,135,132,174,91,217,17,138,4,206,132,168,122,99,176,255,93,34,222,205,103,20,214,183,145,6,42,27,248,107,3,53,9,107,118,89,77,98,223,212,248,42,157,215,21,215,196,28,141,99,91,255,143,242,79,91,240,23,210,37,169,199,135,185,66,56,213,116,7,10,87,165,129,183,161,128,182,132,107,247,107,195,30,8,254,56,119,94,147,182,46,238,220,208,76,41,108,201,36,235,203,74,77,174,3,125,83,166,133,109,222,225,238,15,11,118,150,112,217,40,92,136,58,174,221,51,44,101,220,44,94,193,107,161,89,19,231,179,189,53,119,30,224,144,234,177,23,102,203,101,159,76,239,178,54,5,114,89,126,147,202,218,152,63,221,17,167,215,247,152,221,152,166,115,20,104,173,235,154,36,142,121,172,1,227,61,33,74,37,95,207,80,85,186,8,78,238,247,137,14,139,242,68,243,57,147,155,173,46,48,52,254,230,241,190,22,236,146,44,214,98,5,1,196,128,181,120,133,117,79,33,113,171,154,91,50,239,244,251,4,140,131,143,145,104,243,188,75,44,164,146,144,172,134,58,122,0,203,138,166,225,97,99,81,156,25,143,217,25,221,75,195,195,56,87,226,98,229,150,21,190,91,211,114,66,60,144,108,57,127,104,25,4,170,164,233,237,22,242,112,30,57,108,167,143,131,156,177,28,228,13,226,110,79,63,148,194,26,208,0,180,212,58,174,81,57,179,69,254,96,93,108,13,229,171,167,235,145,254,44,107,125,125,240,148,68,51,127,42,201,15,8,132,178,97,100,80,72,151,145,61,66,119,232,53,176,242,21,99,164,16,109,172,99,149,82,200,12,207,196,71,62,213,42,105,255,35,27,79,222,211,77,226,222,242,130,115,139,191,101,117,236,227,13,223,37,200,124,166,33,189,81,65,167,52,171,127,249,230,45,54,25,63,187,20,73,40,32,110,114,60,189,147,133,139,97,23,212,247,2,46,90,22,217,206,213,117,61,46,251,243,224,24,71,121,177,243,239,98,161,233,90,242,36,115,143,97,105,133,117,220,71,190,46,159,250,236,74,84,227,59,130,125,145,56,140,113,250,147,0,159,155,164,91,18,113,243,91,243,86,202,217,99,247,221,136,121,213,231,109,58,183,87,242,193,63,74,124,164,30,119,29,214,255,42,115,232,130,189,80,136,77,108,181,52,207,244,13,57,70,27,161,21,119,171,94,22,53,235,119,166,124,202,16,151,241,16,66,244,224,161,14,111,82,162,8,247,150,190,54,98,43,142,13,107,188,3,201,203,212,117,150,80,15,158,214,174,48,94,105,238,137,194,11,85,30,173,204,216,11,10,173,121,171,49,5,166,35,1,22,238,1,238,143,171,251,202,207,115,82,63,120,72,8,68,222,241,67,113,28,42,84,246,73,142,140,158,132,41,170,42,114,180,48,252,38,1,81,95,67,193,98}, {255,255,0,255,255,255,1,255,1,255,0,255,1,1,1,1,255,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_inv3sntrup761_k[precomputed_core_inv3sntrup761_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_inv3sntrup761_c[precomputed_core_inv3sntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, } ; static void test_core_inv3sntrup761_impl(long long impl) { unsigned char *h = test_core_inv3sntrup761_h; unsigned char *n = test_core_inv3sntrup761_n; unsigned char *k = test_core_inv3sntrup761_k; unsigned char *c = test_core_inv3sntrup761_c; unsigned char *h2 = test_core_inv3sntrup761_h2; unsigned char *n2 = test_core_inv3sntrup761_n2; unsigned char *k2 = test_core_inv3sntrup761_k2; unsigned char *c2 = test_core_inv3sntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup761(impl); printf("core_inv3sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup761_implementation(impl),ntruprime_dispatch_core_inv3sntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup761; printf("core_inv3sntrup761 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup761_implementation(),ntruprime_core_inv3sntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_inv3sntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_inv3sntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_inv3sntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_inv3sntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_inv3sntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_inv3sntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_inv3sntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_inv3sntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_inv3sntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_inv3sntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_inv3sntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup761")) return; storage_core_inv3sntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_inv3sntrup761_h = aligned(storage_core_inv3sntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_inv3sntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_inv3sntrup761_n = aligned(storage_core_inv3sntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_inv3sntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_inv3sntrup761_k = aligned(storage_core_inv3sntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_inv3sntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_inv3sntrup761_c = aligned(storage_core_inv3sntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_inv3sntrup761_h2 = callocplus(maxalloc); test_core_inv3sntrup761_h2 = aligned(storage_core_inv3sntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_inv3sntrup761_n2 = callocplus(maxalloc); test_core_inv3sntrup761_n2 = aligned(storage_core_inv3sntrup761_n2,crypto_core_INPUTBYTES); storage_core_inv3sntrup761_k2 = callocplus(maxalloc); test_core_inv3sntrup761_k2 = aligned(storage_core_inv3sntrup761_k2,crypto_core_KEYBYTES); storage_core_inv3sntrup761_c2 = callocplus(maxalloc); test_core_inv3sntrup761_c2 = aligned(storage_core_inv3sntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_inv3sntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup761();++impl) forked(test_core_inv3sntrup761_impl,impl); ++test_core_inv3sntrup761_h; ++test_core_inv3sntrup761_n; ++test_core_inv3sntrup761_k; ++test_core_inv3sntrup761_c; ++test_core_inv3sntrup761_h2; ++test_core_inv3sntrup761_n2; ++test_core_inv3sntrup761_k2; ++test_core_inv3sntrup761_c2; } free(storage_core_inv3sntrup761_c2); free(storage_core_inv3sntrup761_k2); free(storage_core_inv3sntrup761_n2); free(storage_core_inv3sntrup761_h2); free(storage_core_inv3sntrup761_c); free(storage_core_inv3sntrup761_k); free(storage_core_inv3sntrup761_n); free(storage_core_inv3sntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_inv3sntrup857.c0000644000000000000000000010176014705505542023450 0ustar rootroot/* ----- core/inv3sntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_inv3sntrup857_checksums[] = { "beebb8615a6dd9308e9366214edc0bfda955b1bcdbd191941c48d7febf3412cd", "b7973784222ad1aec8dc6b5cd12bdd500f7297561bbd70a7e899598d4bda2cd1", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_inv3sntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_inv3sntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_inv3sntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_inv3sntrup857_CONSTBYTES static void *storage_core_inv3sntrup857_h; static unsigned char *test_core_inv3sntrup857_h; static void *storage_core_inv3sntrup857_n; static unsigned char *test_core_inv3sntrup857_n; static void *storage_core_inv3sntrup857_k; static unsigned char *test_core_inv3sntrup857_k; static void *storage_core_inv3sntrup857_c; static unsigned char *test_core_inv3sntrup857_c; static void *storage_core_inv3sntrup857_h2; static unsigned char *test_core_inv3sntrup857_h2; static void *storage_core_inv3sntrup857_n2; static unsigned char *test_core_inv3sntrup857_n2; static void *storage_core_inv3sntrup857_k2; static unsigned char *test_core_inv3sntrup857_k2; static void *storage_core_inv3sntrup857_c2; static unsigned char *test_core_inv3sntrup857_c2; #define precomputed_core_inv3sntrup857_NUM 5 static const unsigned char precomputed_core_inv3sntrup857_h[precomputed_core_inv3sntrup857_NUM][crypto_core_OUTPUTBYTES] = { {255,255,255,0,255,255,1,1,1,1,1,0,1,255,255,1,0,255,1,1,0,1,1,1,0,1,255,0,1,0,0,255,1,0,0,1,255,1,1,1,1,0,1,255,255,1,1,0,0,255,0,1,1,0,1,255,1,1,0,1,0,1,1,255,0,0,1,0,0,0,0,255,0,0,1,1,255,0,1,255,255,0,255,1,255,255,255,0,0,0,1,255,255,255,0,255,0,1,1,1,255,1,1,0,255,0,255,255,255,1,255,1,255,0,255,1,1,255,1,1,255,0,0,255,0,0,255,0,0,255,255,1,0,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,255,255,0,1,1,255,1,255,255,255,0,255,0,1,255,0,0,255,255,255,0,1,0,1,1,0,0,1,255,255,1,0,255,0,255,0,255,255,1,0,1,255,1,1,255,0,255,0,1,0,1,255,0,1,0,1,255,1,1,1,1,0,1,0,0,1,1,1,1,0,1,255,1,0,255,255,1,0,0,0,1,1,0,0,0,1,1,0,255,1,255,0,255,0,255,0,0,1,255,1,0,1,1,255,255,0,0,0,0,255,255,0,1,255,255,255,0,0,1,1,0,255,255,255,0,0,255,0,1,0,0,1,255,255,1,1,1,0,255,1,1,0,255,0,0,0,1,1,255,1,1,0,255,0,255,1,1,0,0,255,0,0,0,1,1,255,1,0,255,0,1,0,0,1,1,255,1,255,255,255,0,255,1,255,1,0,255,255,1,1,1,255,0,255,255,1,0,0,1,0,1,0,1,255,255,1,255,255,255,255,0,255,1,255,1,0,255,1,255,0,255,1,1,0,1,0,0,0,1,1,1,255,1,255,0,255,0,1,255,0,0,255,1,255,1,0,255,1,1,1,1,1,255,1,0,0,0,1,1,1,255,1,0,1,0,0,0,1,1,1,0,0,1,1,255,1,0,0,255,1,1,255,1,0,255,1,255,1,1,255,1,0,0,1,255,1,0,1,255,0,0,0,1,1,1,1,1,1,1,0,1,255,1,0,255,0,255,1,1,255,1,0,255,1,255,255,0,0,255,0,0,255,0,1,255,1,255,0,255,255,255,1,0,1,0,0,1,1,0,255,1,1,1,255,0,0,1,1,255,0,255,0,0,1,0,0,0,1,1,0,255,255,1,0,0,1,255,1,1,0,255,255,0,1,1,1,0,255,0,1,0,0,0,255,1,1,1,255,0,0,255,1,255,1,255,255,1,0,1,0,255,1,255,255,0,1,0,0,255,1,0,255,0,0,255,255,0,1,1,1,0,255,0,255,0,0,1,1,1,1,1,0,0,1,0,0,0,0,1,255,255,255,1,0,255,1,1,0,1,1,0,0,1,0,0,1,255,1,1,0,0,255,0,255,1,255,0,0,255,1,1,255,0,0,1,1,0,255,255,1,1,1,255,1,255,1,1,0,0,0,0,1,255,0,255,1,1,0,255,255,1,1,1,0,255,0,1,255,255,1,0,255,255,1,255,255,0,255,1,1,255,255,0,1,0,1,255,1,1,1,255,0,0,1,255,255,0,1,0,1,1,0,1,255,0,0,255,255,255,1,255,0,255,0,0,0,1,1,0,0,1,255,255,0,255,1,255,1,255,255,255,255,0,255,1,1,1,1,1,0,0,0,255,255,0,0,0,255,1,255,0,0,1,1,0,0,0,255,0,1,255,0,1,0,0,0,0,0,1,255,1,255,1,0,1,255,0,1,1,0,255,255,255,0,255,1,1,1,255,0,1,1,1,1,0,1,1,1,1,1,0,1,1,255,255,0,1,255,255,1,255,255,1,255,1,255,1,255,255,255,255,0,0,255,1,0,1,1,1,255,255,255,0,255,255,1,1,255,1,255,255,255,255,0,0,1,0,0,1,1,255,1,0,255,255,255,0,0}, {255,255,255,255,255,255,1,0,255,1,1,0,0,0,1,255,255,1,255,255,255,1,255,1,0,1,0,255,255,0,1,1,0,255,0,0,255,255,1,0,255,1,255,0,255,255,255,1,0,1,0,255,0,255,1,0,0,0,0,255,255,0,255,255,0,1,1,0,0,1,1,1,255,255,1,255,0,0,0,255,255,255,1,1,1,0,255,255,1,0,1,1,0,0,255,0,255,0,1,0,1,1,0,1,1,0,255,0,0,1,0,0,1,0,0,1,1,255,0,1,1,255,255,1,255,255,0,1,255,0,0,1,1,0,1,1,1,255,0,1,255,1,1,0,255,0,255,255,0,255,1,255,1,0,0,0,1,255,1,0,1,0,255,0,255,0,0,1,0,255,255,0,0,1,255,0,255,255,0,255,0,255,1,1,255,0,255,0,255,255,255,0,255,1,0,255,0,255,255,255,255,255,255,0,0,0,255,255,0,1,1,0,255,1,1,255,1,0,255,0,1,1,1,0,1,1,0,255,0,0,255,0,0,255,0,255,1,0,1,0,0,0,255,1,1,1,0,255,1,1,0,1,0,0,1,255,0,1,1,0,255,1,1,0,1,0,0,255,255,0,0,0,1,0,0,255,255,1,0,0,1,0,255,0,1,0,1,1,255,255,0,1,1,255,255,0,1,1,255,0,0,1,1,0,255,0,0,1,1,0,0,0,255,255,255,1,1,1,0,0,1,1,1,255,255,1,255,1,255,0,0,1,1,0,0,0,1,1,0,255,255,1,255,0,0,255,0,255,1,1,255,255,0,255,255,255,1,0,0,255,0,0,255,1,255,0,255,1,255,255,1,0,0,0,1,1,0,255,255,1,1,255,1,0,1,0,255,1,0,255,1,255,0,0,255,255,1,1,0,1,1,1,1,255,0,1,1,255,1,1,1,255,0,255,0,255,1,1,255,255,255,0,1,1,0,0,1,0,0,1,1,0,255,255,255,1,1,255,1,0,0,255,1,1,1,1,1,0,0,255,1,0,255,255,0,0,0,1,255,1,0,0,0,255,255,0,0,255,255,0,255,255,0,1,255,0,1,0,0,1,1,1,1,1,255,255,1,1,255,255,1,0,1,0,1,255,1,1,0,255,1,0,1,0,255,0,0,0,255,255,1,1,1,255,1,0,0,1,0,0,0,0,0,255,0,0,1,0,255,0,1,1,0,0,1,255,1,255,1,0,255,1,0,255,0,255,0,255,1,1,255,255,255,255,0,255,1,1,1,1,1,0,1,0,1,1,255,255,0,255,1,255,1,255,1,0,0,1,255,0,1,255,0,0,255,255,1,0,255,1,1,0,1,1,1,0,255,1,0,255,255,1,1,1,0,0,255,255,0,1,0,1,255,0,1,255,1,1,0,0,255,1,1,255,1,0,1,255,255,1,0,1,1,0,255,255,0,0,0,1,0,255,1,255,1,0,255,255,1,1,255,0,1,255,255,255,0,255,255,1,0,0,255,0,1,255,255,0,255,255,255,255,1,0,255,255,0,255,0,0,255,0,1,255,0,0,255,0,1,1,0,255,0,255,0,255,1,255,1,0,255,0,0,1,1,1,1,255,1,1,255,1,0,0,0,1,255,0,1,255,0,1,0,0,255,0,255,0,255,255,255,1,255,1,0,255,0,255,0,255,0,255,0,1,0,255,0,0,1,0,255,0,1,0,1,1,1,0,1,255,255,0,255,0,0,255,1,0,255,1,1,1,255,1,255,255,0,255,0,1,255,255,1,255,0,1,255,1,0,0,0,0,255,255,255,1,1,1,1,0,255,255,0,1,1,0,0,1,1,0,1,255,1,255,255,0,0,1,1,0,0,255,0,255,1,1,0,1,255,1,255,1,1,255,255,255,255,1,1,255,255,255,255,0,0,1,1,1,1,255,255,255,255,1,0,0,0,0}, {0,1,255,255,255,0,255,0,0,255,1,0,0,0,0,0,255,1,0,255,0,0,255,1,0,0,1,255,0,255,1,255,255,0,255,255,1,1,0,1,0,0,0,0,255,0,1,1,0,0,255,0,1,255,1,1,1,255,255,1,255,1,0,0,1,255,255,255,1,1,0,255,1,0,0,255,1,0,255,255,1,1,0,0,255,0,255,1,255,0,0,255,1,1,0,255,255,0,1,0,1,1,1,1,0,0,1,0,0,1,255,0,255,0,1,1,255,0,0,1,1,255,0,255,1,1,255,255,1,1,0,255,0,255,255,255,1,0,1,1,1,255,0,1,1,0,0,0,255,0,255,0,0,255,255,0,255,1,0,255,1,1,1,1,0,1,0,255,1,0,255,255,0,1,0,0,0,1,1,1,0,0,255,255,255,0,1,1,1,0,255,1,1,1,1,0,1,1,0,0,0,0,1,0,1,1,1,0,0,1,255,0,255,0,255,0,1,0,0,255,1,1,0,0,0,1,0,255,1,0,1,0,1,1,255,1,0,0,0,255,0,255,255,255,1,255,255,255,255,255,1,255,255,0,0,255,0,255,1,0,0,255,1,0,1,0,255,255,1,1,255,1,0,0,255,0,255,255,0,255,1,255,255,0,0,0,1,255,255,255,255,1,255,255,0,255,0,255,255,1,255,255,0,1,1,0,0,255,0,255,0,1,255,255,1,0,255,0,255,0,1,0,1,0,0,255,255,0,1,0,1,0,1,1,0,0,255,255,1,0,1,255,1,0,0,1,255,0,0,1,0,0,0,0,255,1,255,0,255,1,255,1,0,0,255,255,0,0,0,0,0,1,0,0,255,0,255,1,255,255,1,255,255,1,1,1,0,255,255,1,0,255,0,1,255,0,0,255,0,1,255,255,0,0,1,1,0,1,0,1,255,0,1,255,1,1,1,0,255,0,0,1,1,255,1,0,1,0,0,255,1,255,255,0,255,255,0,0,255,0,0,255,255,1,0,255,0,0,1,1,255,0,1,0,255,1,1,0,0,0,0,1,1,1,255,1,1,255,255,1,1,255,1,255,1,1,255,1,255,1,255,0,255,0,255,0,1,0,0,0,1,0,255,1,0,0,1,0,0,0,0,1,255,0,255,255,0,1,1,0,0,0,255,255,0,1,255,255,255,255,255,255,255,0,1,1,255,0,255,255,255,0,1,255,0,1,255,255,255,1,1,1,255,0,1,1,1,0,1,0,255,0,0,1,1,255,255,255,0,0,255,1,255,1,1,1,0,1,1,0,255,255,0,0,0,255,0,0,255,0,255,255,255,255,255,0,1,255,255,1,0,0,255,255,255,255,1,1,255,1,1,1,255,0,0,0,0,1,1,0,255,0,255,1,255,0,0,255,0,0,255,255,255,0,1,1,1,0,255,255,255,1,255,1,255,0,255,1,0,255,0,255,0,0,255,255,0,1,255,1,255,255,255,1,255,0,255,1,1,0,1,255,255,0,255,0,0,0,255,1,0,1,255,255,1,1,0,1,255,0,1,1,0,0,1,255,255,1,255,1,1,255,255,255,1,1,255,255,0,1,0,1,1,0,1,255,0,0,255,1,255,1,255,0,255,1,0,0,0,0,255,1,0,0,0,1,0,0,0,0,1,255,0,255,1,1,255,1,1,0,255,0,255,0,0,255,1,1,1,255,255,0,0,1,0,255,255,255,1,0,255,0,1,0,1,255,255,0,0,1,0,1,0,0,1,0,1,0,1,0,0,255,0,1,255,255,0,255,1,0,0,255,1,255,0,1,0,0,255,1,255,255,255,255,255,0,1,1,255,1,255,0,1,255,0,0,255,0,255,255,255,0,1,0,255,0,255,255,255,0,1,1,1,0,0,0,1,0,0,1,1,0,255,1,255,0,1,255,0,1,1,1,255,255,1,0,0,0}, {0,1,255,255,255,255,255,255,255,255,0,0,0,255,255,255,1,1,255,255,255,0,0,1,255,255,255,255,0,255,1,1,0,1,1,0,1,0,0,1,255,1,1,0,0,0,1,1,1,0,1,1,255,1,1,1,1,0,255,255,1,0,1,1,255,1,255,0,255,0,0,1,1,255,1,1,255,255,0,255,0,0,255,1,1,1,255,255,255,255,255,0,1,1,1,255,255,255,1,0,1,1,1,255,255,255,0,1,1,1,255,1,0,255,0,1,0,1,1,1,1,255,1,1,1,0,0,0,1,0,1,1,1,0,1,1,255,0,1,255,1,1,1,1,0,1,0,0,255,255,255,1,1,255,255,0,1,255,1,1,1,255,0,0,1,0,255,1,1,255,1,1,1,255,255,255,1,1,0,255,0,0,1,0,255,0,1,1,0,0,0,1,255,1,0,1,1,1,0,255,0,0,1,0,1,255,1,255,1,0,0,1,0,0,1,1,0,1,255,1,255,255,1,255,0,0,1,0,255,255,1,1,255,0,0,1,1,0,0,255,255,0,0,1,0,0,0,0,0,1,255,1,255,255,1,1,255,1,255,255,1,1,255,1,1,255,0,1,0,1,255,255,255,1,1,0,0,255,1,1,1,1,1,1,1,0,1,1,0,255,255,255,0,0,255,255,255,255,255,0,1,1,1,255,255,1,255,0,1,1,255,255,255,1,255,255,1,1,255,1,255,255,0,1,1,0,1,255,255,1,255,0,0,255,1,255,255,1,1,0,1,0,1,255,1,255,255,1,255,0,255,0,0,1,1,0,255,0,255,255,0,0,255,1,1,255,255,255,1,255,255,255,1,255,1,0,0,1,1,255,255,0,255,255,255,0,1,0,255,255,0,0,0,0,0,255,1,0,1,1,255,255,1,255,255,0,1,1,0,0,1,255,0,255,0,1,1,0,1,1,1,0,1,255,1,1,0,1,1,255,255,0,1,1,0,1,255,1,0,0,0,255,1,1,0,1,1,0,0,0,0,0,255,0,1,1,1,255,0,1,255,1,1,1,255,1,0,1,0,0,255,0,0,0,255,255,255,255,0,0,0,1,1,0,0,1,1,1,255,1,0,1,255,0,0,1,0,0,0,0,0,0,1,1,255,255,0,255,0,1,1,0,1,255,255,1,0,0,255,1,255,0,255,255,0,0,255,0,1,0,0,1,255,1,1,255,255,255,1,1,0,0,255,0,255,1,255,255,255,0,255,255,0,255,255,1,255,0,1,0,255,0,0,0,1,255,0,0,1,1,1,255,1,255,1,0,0,0,0,0,0,1,1,0,0,0,1,255,255,1,1,1,0,1,1,1,255,1,1,0,0,0,0,255,1,255,255,0,255,1,255,1,255,1,0,1,255,1,1,0,255,0,0,0,1,255,0,1,1,255,255,255,0,0,255,255,0,1,0,255,1,255,0,0,1,1,1,255,1,0,0,0,1,255,1,0,1,0,1,255,0,0,0,255,255,0,1,255,0,255,1,255,1,0,1,255,0,0,1,1,255,1,1,1,0,255,0,0,0,255,1,1,0,255,0,1,0,0,1,255,255,1,255,0,1,255,0,0,255,1,0,1,255,1,255,255,255,1,1,255,1,255,0,1,0,255,255,255,0,255,0,255,0,1,0,0,0,255,255,255,1,0,0,0,1,0,255,255,255,255,0,255,1,255,0,1,1,0,0,1,255,255,0,1,1,0,1,1,1,255,255,0,0,1,255,1,0,1,255,255,255,255,0,0,1,0,255,1,0,255,255,0,0,1,1,1,255,255,255,0,255,255,1,255,255,255,255,1,1,0,0,0,1,255,255,255,1,1,1,0,1,0,255,255,255,255,1,0,0,1,0,1,0,0,0,255,1,255,0,255,0,0,1,255,1,255,0,1,0,1,1,255,0,0,1,0,255,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255}, } ; static const unsigned char precomputed_core_inv3sntrup857_n[precomputed_core_inv3sntrup857_NUM][crypto_core_INPUTBYTES] = { {106,191,4,203,41,122,134,42,100,123,44,27,110,22,1,148,130,213,82,167,202,213,111,45,178,241,10,133,225,117,185,159,145,213,78,38,92,242,248,107,176,33,115,180,115,116,151,53,219,74,178,148,196,79,225,99,82,250,89,31,231,29,253,98,76,108,221,219,207,155,205,200,42,3,9,152,25,35,210,146,222,15,172,115,33,131,78,80,117,51,130,150,57,228,188,164,58,35,123,102,238,33,161,115,36,17,111,35,77,96,218,242,246,218,196,55,139,7,21,228,56,66,228,111,217,149,238,0,246,138,108,30,167,65,164,54,118,110,215,161,202,34,221,133,134,202,239,10,214,136,10,182,20,179,80,159,159,80,169,173,157,157,19,242,179,143,189,245,59,189,243,107,142,51,12,50,137,217,202,220,79,163,210,137,117,10,237,25,70,182,237,58,177,32,9,74,120,180,105,16,93,11,255,240,245,156,109,19,224,14,166,250,161,177,211,115,223,123,123,25,195,103,87,154,135,107,26,123,116,113,242,60,155,125,95,84,232,160,97,231,148,249,136,131,106,84,210,102,231,17,112,245,208,72,232,92,141,37,172,3,199,190,10,50,89,204,89,24,229,44,127,101,109,2,84,181,197,152,212,253,142,42,39,206,103,17,218,220,93,202,250,22,249,245,130,175,9,74,228,197,74,231,141,219,42,46,202,15,3,31,84,138,206,185,94,25,131,243,178,12,229,86,140,195,61,92,69,236,71,207,20,37,253,194,81,251,102,60,94,93,142,48,95,160,133,219,104,18,195,233,240,31,176,95,54,187,11,153,69,237,108,128,140,194,216,192,103,70,128,114,171,107,50,174,248,44,199,175,117,126,229,22,217,8,178,77,77,126,92,220,102,111,206,204,17,244,45,122,101,1,25,39,24,223,253,72,141,92,119,187,53,137,37,85,115,98,119,7,49,222,36,132,48,132,249,125,144,69,199,126,144,141,159,162,123,69,131,199,121,239,169,180,207,29,6,201,227,207,117,229,95,133,38,54,252,31,159,24,17,123,50,96,23,223,5,71,181,228,98,68,117,74,97,27,61,245,27,180,253,63,54,171,162,95,137,26,191,120,238,212,98,82,15,212,237,10,97,2,56,148,226,45,104,157,154,157,47,220,47,17,68,79,52,209,206,149,9,121,8,45,187,183,196,28,65,174,17,141,140,22,131,88,124,146,249,229,192,58,254,139,123,68,185,197,250,124,170,242,185,172,30,24,212,156,110,102,208,202,178,112,39,242,138,75,142,221,146,159,34,206,227,197,15,216,97,109,163,108,72,37,177,64,249,122,59,48,27,151,176,19,189,136,31,16,155,163,83,18,205,171,54,186,253,62,36,126,80,34,240,50,100,24,106,3,86,215,99,194,201,118,11,37,173,191,46,228,143,222,191,80,58,34,18,136,129,28,18,192,55,106,250,202,2,74,161,136,220,105,155,43,170,247,47,179,107,187,203,160,82,61,79,251,51,2,255,187,10,26,157,71,31,83,217,0,7,180,66,93,172,47,252,190,100,37,212,235,172,105,133,108,27,43,35,2,241,123,227,4,195,156,213,7,228,187,161,204,110,89,168,158,57,225,171,250,207,18,202,154,101,176,18,22,190,133,51,61,33,123,163,139,115,180,73,53,194,244,17,142,247,145,165,44,231,236,219,171,52,240,205,233,119,170,227,24,24,110,144,121,32,103,182,188,216,107,31,243,90,5,227,94,222,149,184,87,126,61,227,209,65,128,51,212,159,150,213,205,140,95,250,111,203,142,164,251,100,50,236,74,61,206,32,136,103,162,237,126,120,166,65,43,213,23,143,83,75,181,30,91,228,86,81,233,179,134,87,245,135,103,145,244,155,177,69,201,37,111,75,71,175,153,125,122,170,217,139,189,254,213,40,95,136,41,113,171,30,177,175}, {61,158,165,254,206,200,239,69,151,3,41,64,127,149,190,156,94,166,145,58,201,177,2,211,85,52,183,29,31,246,56,65,162,2,96,217,99,191,132,201,105,175,95,79,85,136,235,199,85,82,110,158,21,81,192,147,59,155,143,85,215,125,128,192,24,35,193,255,4,205,202,25,101,131,102,240,57,63,111,216,145,110,124,29,53,96,152,24,77,182,87,112,51,191,240,17,56,25,60,171,8,29,249,10,28,33,242,177,97,186,142,180,75,153,200,83,18,57,250,53,48,114,66,82,221,235,189,148,152,125,254,234,164,184,41,94,129,65,56,216,48,148,111,101,255,35,100,45,34,8,23,26,114,234,240,30,236,57,14,150,234,89,16,145,47,225,168,212,134,103,190,255,141,123,105,212,10,30,215,244,182,150,12,6,75,159,106,120,30,10,235,69,14,49,32,30,161,13,32,11,48,137,218,115,70,200,24,48,45,129,53,209,54,8,244,96,27,81,233,222,68,180,9,117,236,30,189,224,95,10,248,135,254,188,121,24,0,66,190,53,229,214,210,189,102,66,93,0,9,199,28,195,124,9,14,131,6,177,66,169,133,206,102,105,34,187,147,226,53,87,63,225,231,172,36,186,201,176,58,77,89,18,209,199,155,123,75,145,239,72,11,98,232,167,183,117,179,113,102,103,75,65,125,141,118,120,182,71,32,72,205,108,211,201,108,23,81,110,68,74,172,76,134,95,185,129,218,65,195,176,169,239,55,77,89,188,30,41,109,100,28,209,90,25,139,95,7,102,53,244,69,109,149,195,34,148,103,143,134,255,199,204,47,213,186,239,156,200,255,186,249,143,73,193,177,130,127,95,199,45,146,108,64,4,135,86,210,231,139,15,108,133,209,219,49,73,64,172,106,67,117,227,241,80,232,141,181,35,84,182,187,118,37,92,38,89,27,90,20,20,188,232,242,224,199,0,69,143,199,223,113,47,30,217,22,129,239,5,134,126,99,235,4,191,145,170,132,146,157,29,76,155,183,10,8,76,190,224,43,36,0,0,76,122,30,183,76,28,217,223,11,68,7,240,73,41,98,105,29,158,122,250,144,44,230,14,187,52,140,38,6,197,205,99,14,202,25,41,191,160,13,30,46,156,120,209,36,105,64,197,134,231,29,85,98,7,206,178,186,208,90,88,56,208,60,94,24,144,105,90,105,220,97,8,45,62,8,167,16,251,188,188,96,132,247,255,109,231,59,160,77,178,67,169,215,148,254,116,189,135,248,201,151,241,8,48,43,65,4,12,8,168,233,183,45,72,167,81,128,185,200,180,88,161,156,183,102,192,70,171,229,168,63,238,235,163,131,69,156,188,188,116,159,175,231,155,68,66,88,139,80,189,134,234,126,63,200,233,119,172,89,182,200,231,240,26,83,105,182,55,106,159,164,131,54,129,136,84,32,241,69,236,88,121,192,200,238,84,48,71,153,179,146,107,90,28,193,145,249,209,38,235,2,235,83,216,43,75,195,80,164,215,212,198,115,73,30,206,39,179,153,140,184,25,126,51,80,7,44,29,218,217,146,41,31,2,252,247,173,77,185,45,32,21,218,204,123,23,28,138,46,19,254,221,4,143,165,158,188,10,191,88,48,113,87,228,245,51,58,31,0,38,87,188,99,175,208,191,233,164,77,102,61,6,15,241,215,196,227,150,255,150,91,17,155,64,70,239,180,85,188,181,42,237,101,82,251,110,212,197,174,51,32,203,236,83,199,164,218,129,117,220,223,98,103,36,202,161,31,103,137,171,132,207,168,220,39,177,39,176,133,39,133,136,244,6,169,196,43,255,39,174,23,33,154,73,248,165,125,197,77,186,236,147,126,127,31,208,113,240,1,19,121,231,120,181,85,39,174,146,63,69,131,186,251,105,145,250,199,115,75,239,39,21,50,82,111}, {7,144,188,244,28,146,30,101,163,63,101,23,95,48,25,28,101,224,18,94,195,119,108,173,213,240,80,163,81,57,225,208,19,155,93,112,28,114,8,153,141,113,205,251,250,146,19,47,32,53,29,128,190,200,197,20,255,136,248,213,31,120,124,247,106,94,242,161,198,63,44,33,7,149,99,207,246,191,7,226,76,121,157,136,52,42,240,210,126,139,6,206,5,17,190,171,22,216,54,229,79,23,255,96,189,121,68,154,1,120,237,151,174,100,70,56,116,56,95,164,162,29,57,59,83,83,124,30,153,86,129,181,88,35,116,245,115,96,128,151,78,4,179,235,236,40,29,172,143,167,81,14,226,135,65,1,147,88,126,55,21,19,180,107,200,38,105,241,89,253,51,67,233,188,171,77,29,170,185,107,48,216,87,124,75,245,7,190,224,217,201,247,131,179,44,107,28,232,210,142,250,0,6,54,193,60,42,35,69,155,66,251,86,78,132,194,233,201,222,181,216,21,51,113,253,49,76,226,108,153,169,131,137,164,27,133,123,220,119,224,20,235,203,123,38,113,198,190,204,2,160,67,24,168,14,229,237,253,85,134,99,94,191,249,15,165,22,179,88,137,49,228,9,113,16,112,60,241,17,14,219,252,186,75,6,15,85,55,189,30,108,90,168,228,244,197,110,207,108,247,179,32,101,251,191,113,105,219,254,56,134,26,107,27,182,75,242,206,157,209,9,113,117,172,193,77,183,236,125,78,243,249,101,63,130,132,38,47,188,222,87,240,165,74,18,15,42,10,56,169,237,237,70,8,224,245,209,71,44,84,99,27,246,223,223,7,212,50,73,121,142,41,124,183,239,191,247,0,35,77,182,153,170,245,36,247,57,19,100,17,128,134,49,68,217,244,215,80,12,19,249,167,185,54,7,94,42,33,253,199,36,252,209,172,133,188,42,131,71,242,194,12,62,238,239,154,218,81,13,111,105,130,246,199,241,103,151,206,136,251,240,163,7,238,35,221,167,149,221,67,13,173,80,66,167,78,214,82,213,134,232,55,215,204,14,39,122,143,12,27,150,7,212,146,61,85,228,183,241,119,58,81,66,181,4,89,251,106,20,90,36,88,209,187,242,83,206,214,108,150,23,8,110,60,92,90,233,228,140,146,250,230,43,241,37,245,88,75,92,70,129,238,202,68,74,137,41,3,106,221,61,76,53,216,206,120,128,148,230,254,22,230,117,20,191,226,78,193,181,227,224,229,36,221,193,14,243,166,189,58,15,66,14,219,144,198,55,61,127,39,125,53,17,122,245,144,0,227,43,126,3,94,243,53,141,202,38,168,96,199,216,58,69,203,242,88,43,105,203,119,84,77,231,209,134,253,39,242,191,153,235,115,152,17,149,164,157,189,249,236,46,84,72,181,186,42,19,58,33,204,189,233,88,132,154,153,128,239,117,253,73,61,19,152,229,174,58,211,202,144,200,53,235,59,73,132,102,26,22,204,29,161,83,242,4,88,3,247,171,92,192,13,59,10,40,54,26,45,210,185,212,211,1,129,153,180,133,142,246,34,242,93,78,75,113,170,209,255,84,95,252,37,163,81,194,135,254,29,14,67,72,206,100,72,186,79,64,108,228,93,163,207,231,130,12,132,37,195,18,149,201,169,175,58,247,253,65,160,233,166,129,53,135,83,135,100,121,82,1,29,54,125,23,20,220,226,13,140,251,231,2,94,45,186,137,44,43,108,237,249,222,191,70,76,25,156,87,153,17,203,140,52,233,56,100,20,222,101,167,90,52,249,187,81,40,159,213,53,53,67,205,151,64,23,241,116,17,49,204,55,115,14,163,118,67,34,183,167,209,60,60,93,6,73,248,166,32,11,47,125,239,48,96,193,102,189,70,143,48,237,94,255,246,74,218,206,183,74,68,202,224,42,179,63,93,141,31}, {125,252,224,120,134,246,239,29,175,107,41,61,20,76,172,159,111,113,208,121,202,115,46,178,182,4,186,220,156,155,151,68,228,218,206,28,247,162,136,229,49,248,115,196,252,214,231,125,195,120,97,61,132,103,111,89,1,29,36,242,100,10,223,223,0,202,114,166,219,59,93,169,114,79,137,27,175,9,25,204,235,212,205,61,70,51,157,54,34,171,60,84,141,243,109,7,73,161,64,132,123,222,230,114,44,201,61,211,166,180,130,145,206,114,41,241,78,224,70,191,224,154,169,72,197,156,217,80,111,109,208,117,48,74,168,231,80,144,114,180,42,38,241,45,45,197,44,103,140,216,113,241,68,108,65,199,114,16,236,58,110,36,56,251,54,197,193,167,93,89,128,7,136,213,56,75,115,234,213,207,50,209,2,221,255,193,70,143,6,82,136,168,61,75,6,70,223,231,229,27,171,129,234,114,101,61,198,47,102,241,26,15,103,14,244,243,37,213,198,168,47,49,252,62,84,78,205,245,131,59,209,72,218,173,130,35,154,92,180,190,6,192,35,51,101,93,34,166,16,72,180,92,17,202,216,254,245,132,89,179,52,238,144,21,207,237,174,108,245,227,205,216,149,175,205,253,243,148,75,12,193,29,178,30,109,239,142,161,189,223,41,110,91,192,104,27,253,111,124,136,196,170,45,152,46,141,111,43,31,208,184,74,184,151,172,130,52,139,219,95,174,4,79,164,103,45,15,221,20,110,234,222,127,175,185,240,177,113,61,17,239,195,140,79,171,48,162,4,244,11,100,120,134,47,7,86,9,231,49,204,51,37,137,123,20,160,228,25,139,83,174,107,78,130,158,68,254,163,24,150,49,231,33,216,234,18,201,171,146,211,84,98,168,149,21,211,97,122,241,210,218,73,115,70,42,183,138,229,80,248,179,104,119,30,213,133,48,19,231,28,43,50,22,90,216,66,239,251,85,66,234,250,80,182,83,92,2,16,12,52,255,146,111,17,237,16,238,58,91,95,93,218,120,148,73,207,239,30,242,214,241,138,210,59,211,49,224,135,146,226,101,216,163,204,134,59,233,1,238,169,84,21,143,135,247,234,28,249,150,212,168,91,69,1,118,203,138,91,163,106,189,175,160,161,213,169,92,226,100,15,212,163,126,59,242,223,190,121,234,231,196,2,199,126,168,182,106,30,239,148,143,118,247,140,141,231,244,47,23,96,181,248,132,174,251,82,7,57,50,162,28,227,117,92,216,205,55,227,192,244,200,190,243,139,180,227,0,227,21,171,181,105,183,138,178,194,6,87,11,7,210,62,172,197,73,198,71,185,137,215,238,146,71,19,224,192,13,211,195,104,227,61,98,186,247,32,128,185,12,92,138,173,171,5,215,83,39,77,200,6,237,26,167,248,186,204,93,201,103,251,196,62,48,90,216,75,223,76,63,84,238,35,209,194,176,129,221,201,40,252,164,136,113,191,35,129,82,14,227,169,55,132,177,166,202,155,159,75,79,174,122,59,225,130,172,128,172,113,177,255,239,50,162,141,15,162,61,3,151,77,183,77,9,201,245,170,121,5,178,53,14,234,178,72,53,103,205,251,179,80,114,148,121,12,169,232,255,181,148,164,40,81,21,107,133,131,142,243,57,224,193,142,173,106,236,60,171,238,247,1,152,151,122,87,167,246,189,222,106,208,3,29,121,13,117,151,71,42,6,14,9,229,97,235,213,67,92,184,71,64,160,219,163,39,222,148,229,65,197,116,52,125,186,57,247,5,201,222,10,86,6,6,11,79,161,121,114,181,154,204,231,58,166,173,215,85,219,131,171,94,187,2,175,85,202,138,113,79,101,31,23,158,190,48,148,252,135,172,174,162,233,233,41,138,208,209,177,123,84,139,97,116,120,156,60,31,78,1,31,117,254,67,28,165,16,39,31}, {1,0,0,1,255,0,0,0,1,1,1,255,0,255,1,255,255,0,0,1,1,0,1,255,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_inv3sntrup857_k[precomputed_core_inv3sntrup857_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_inv3sntrup857_c[precomputed_core_inv3sntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, } ; static void test_core_inv3sntrup857_impl(long long impl) { unsigned char *h = test_core_inv3sntrup857_h; unsigned char *n = test_core_inv3sntrup857_n; unsigned char *k = test_core_inv3sntrup857_k; unsigned char *c = test_core_inv3sntrup857_c; unsigned char *h2 = test_core_inv3sntrup857_h2; unsigned char *n2 = test_core_inv3sntrup857_n2; unsigned char *k2 = test_core_inv3sntrup857_k2; unsigned char *c2 = test_core_inv3sntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup857(impl); printf("core_inv3sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup857_implementation(impl),ntruprime_dispatch_core_inv3sntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup857; printf("core_inv3sntrup857 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup857_implementation(),ntruprime_core_inv3sntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_inv3sntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_inv3sntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_inv3sntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_inv3sntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_inv3sntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_inv3sntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_inv3sntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_inv3sntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_inv3sntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_inv3sntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_inv3sntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup857")) return; storage_core_inv3sntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_inv3sntrup857_h = aligned(storage_core_inv3sntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_inv3sntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_inv3sntrup857_n = aligned(storage_core_inv3sntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_inv3sntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_inv3sntrup857_k = aligned(storage_core_inv3sntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_inv3sntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_inv3sntrup857_c = aligned(storage_core_inv3sntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_inv3sntrup857_h2 = callocplus(maxalloc); test_core_inv3sntrup857_h2 = aligned(storage_core_inv3sntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_inv3sntrup857_n2 = callocplus(maxalloc); test_core_inv3sntrup857_n2 = aligned(storage_core_inv3sntrup857_n2,crypto_core_INPUTBYTES); storage_core_inv3sntrup857_k2 = callocplus(maxalloc); test_core_inv3sntrup857_k2 = aligned(storage_core_inv3sntrup857_k2,crypto_core_KEYBYTES); storage_core_inv3sntrup857_c2 = callocplus(maxalloc); test_core_inv3sntrup857_c2 = aligned(storage_core_inv3sntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_inv3sntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup857();++impl) forked(test_core_inv3sntrup857_impl,impl); ++test_core_inv3sntrup857_h; ++test_core_inv3sntrup857_n; ++test_core_inv3sntrup857_k; ++test_core_inv3sntrup857_c; ++test_core_inv3sntrup857_h2; ++test_core_inv3sntrup857_n2; ++test_core_inv3sntrup857_k2; ++test_core_inv3sntrup857_c2; } free(storage_core_inv3sntrup857_c2); free(storage_core_inv3sntrup857_k2); free(storage_core_inv3sntrup857_n2); free(storage_core_inv3sntrup857_h2); free(storage_core_inv3sntrup857_c); free(storage_core_inv3sntrup857_k); free(storage_core_inv3sntrup857_n); free(storage_core_inv3sntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_inv3sntrup953.c0000644000000000000000000010742514705505542023451 0ustar rootroot/* ----- core/inv3sntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_inv3sntrup953_checksums[] = { "9237c4567f8c2a46bdd2352fd36246298755505410c350016bc46a91a4b267a3", "83d67d2813b5abbb50c0686c4a605c5e85b59adbc04b9b55d1585d6f114303d2", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_inv3sntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_inv3sntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_inv3sntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_inv3sntrup953_CONSTBYTES static void *storage_core_inv3sntrup953_h; static unsigned char *test_core_inv3sntrup953_h; static void *storage_core_inv3sntrup953_n; static unsigned char *test_core_inv3sntrup953_n; static void *storage_core_inv3sntrup953_k; static unsigned char *test_core_inv3sntrup953_k; static void *storage_core_inv3sntrup953_c; static unsigned char *test_core_inv3sntrup953_c; static void *storage_core_inv3sntrup953_h2; static unsigned char *test_core_inv3sntrup953_h2; static void *storage_core_inv3sntrup953_n2; static unsigned char *test_core_inv3sntrup953_n2; static void *storage_core_inv3sntrup953_k2; static unsigned char *test_core_inv3sntrup953_k2; static void *storage_core_inv3sntrup953_c2; static unsigned char *test_core_inv3sntrup953_c2; #define precomputed_core_inv3sntrup953_NUM 5 static const unsigned char precomputed_core_inv3sntrup953_h[precomputed_core_inv3sntrup953_NUM][crypto_core_OUTPUTBYTES] = { {1,255,1,255,0,0,1,255,255,1,1,1,1,0,0,0,0,0,0,255,0,1,1,1,0,255,255,1,255,255,255,255,255,0,1,255,0,0,0,1,0,0,1,0,0,255,255,255,0,0,0,255,0,0,255,1,0,0,1,0,0,1,255,1,0,0,1,1,0,1,255,255,0,1,255,1,255,255,255,1,255,255,1,255,0,255,0,1,1,255,0,0,1,0,0,255,0,255,255,0,0,255,255,255,1,0,255,0,1,0,1,255,0,1,255,0,255,1,1,255,1,0,1,255,255,1,0,1,0,255,0,1,1,1,0,0,1,1,255,0,0,255,255,0,1,255,255,255,0,0,255,0,1,255,0,1,0,255,0,1,0,0,0,1,0,0,255,1,255,0,255,1,1,0,0,0,255,0,0,255,1,1,255,0,1,255,255,1,1,255,1,0,0,1,255,0,0,255,255,1,255,255,1,255,0,0,1,0,255,255,0,0,1,255,1,255,0,1,1,1,1,1,255,1,255,255,255,0,255,1,1,1,0,0,1,1,255,0,255,0,1,1,1,255,1,255,0,1,1,1,1,255,0,0,255,255,255,0,1,1,1,1,1,0,0,255,1,255,255,1,1,255,0,255,1,255,1,1,0,1,255,0,255,1,255,0,0,1,255,1,255,1,1,1,255,255,0,255,0,0,255,255,255,1,255,1,255,1,0,255,255,1,255,255,1,1,255,0,1,0,1,255,1,0,255,255,255,1,1,255,1,1,0,1,1,1,0,255,1,0,1,1,0,0,255,1,255,255,255,0,1,1,0,0,0,1,0,1,0,1,255,1,0,255,0,1,1,255,1,1,1,255,1,0,255,255,255,1,0,1,0,1,255,255,1,255,1,0,255,1,1,255,255,0,255,255,1,1,0,255,1,0,1,255,0,1,1,1,255,255,0,1,255,1,0,255,0,0,1,255,255,0,1,255,1,0,0,0,0,1,1,1,0,0,1,0,255,255,255,255,255,255,1,255,1,255,255,0,0,0,0,1,1,0,1,0,255,0,0,1,255,0,1,1,0,1,0,255,1,255,0,1,0,255,0,1,255,0,0,0,1,0,255,0,255,0,1,255,1,0,0,255,1,1,0,255,1,1,1,0,0,1,255,0,0,0,0,1,0,255,255,1,0,1,0,0,1,255,1,1,255,0,255,0,1,255,255,255,1,1,255,0,0,0,255,255,1,255,255,1,1,1,1,255,255,0,255,0,255,1,1,255,255,0,1,0,255,255,0,1,255,0,255,255,1,0,255,1,255,1,0,1,0,255,0,1,0,1,1,1,255,0,0,1,1,0,0,0,0,0,1,0,255,255,0,255,255,1,0,0,0,255,1,0,0,1,255,1,0,1,1,255,255,1,0,255,1,1,255,255,0,1,0,1,1,1,1,255,1,1,0,255,255,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,255,1,0,0,0,255,0,255,255,1,0,0,0,1,1,0,1,1,0,1,255,1,0,1,1,1,1,1,1,255,1,0,0,255,255,1,0,255,255,255,0,1,255,255,1,0,255,1,1,255,255,1,255,0,1,1,0,1,0,255,0,1,255,255,0,255,1,0,0,255,255,255,255,255,1,1,0,0,255,255,0,255,1,1,255,255,0,1,1,1,255,1,1,1,0,255,1,255,255,1,255,0,255,1,255,0,255,1,0,1,255,1,0,1,1,0,0,0,0,0,255,1,1,1,255,255,1,0,0,0,1,1,0,0,0,0,255,1,1,1,255,1,255,1,255,255,255,1,1,0,255,0,1,0,255,255,255,0,255,255,0,255,0,0,1,255,255,1,255,0,0,1,1,1,0,0,0,1,1,255,0,0,0,0,0,1,1,255,1,255,0,1,1,1,0,255,255,1,255,0,1,255,0,1,1,0,255,255,0,0,1,0,255,1,255,0,1,255,255,0,1,255,1,1,1,0,0,0,1,1,255,0,255,1,1,0,255,1,255,0,255,255,0,1,0,1,255,255,0,0,1,255,0,1,1,255,255,0,255,255,1,0,1,0,255,0,1,255,1,1,1,1,0,0,255,0,255,255,1,1,1,1,255,255,0,255,0,0,0,0,0,255,255,255,0,255,1,0,0,1,0,0,0,255,255,0}, {255,0,255,255,255,255,0,255,0,1,0,0,255,1,255,0,255,1,255,1,0,255,1,1,0,0,1,255,255,0,1,1,255,0,0,255,1,0,1,1,0,1,0,1,1,255,0,1,1,255,0,0,0,1,255,1,0,1,1,1,255,0,255,255,1,1,0,255,0,1,255,1,1,255,1,255,0,255,1,255,255,255,255,0,0,0,0,0,255,255,1,0,1,0,1,0,0,255,0,0,255,255,0,255,1,0,1,1,255,255,0,255,1,255,255,255,1,0,255,1,1,0,1,255,0,255,0,255,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,255,255,1,255,255,255,0,1,1,0,255,1,1,1,1,1,0,0,255,0,255,1,0,255,255,0,255,1,0,0,255,0,0,255,1,255,255,255,1,255,255,1,255,0,0,0,255,255,255,0,0,1,1,0,0,255,0,255,1,255,0,255,255,1,0,1,0,255,255,255,0,1,0,1,0,255,0,255,0,1,0,1,0,0,1,1,0,1,1,1,0,255,255,0,0,0,255,255,1,0,1,0,1,1,255,0,1,0,0,255,0,0,255,255,0,255,1,0,1,255,1,1,1,0,1,1,255,255,1,0,1,0,255,0,1,1,255,0,1,1,1,255,255,255,1,255,255,1,0,0,0,255,1,1,0,0,255,0,0,255,255,1,255,1,255,1,255,255,0,1,0,255,255,1,1,255,1,1,1,255,1,0,255,1,0,0,0,0,1,0,1,255,0,0,0,0,0,1,1,1,255,1,255,255,255,0,255,255,1,1,0,1,1,255,1,255,0,255,1,0,0,255,255,255,1,1,255,1,255,1,0,255,1,0,1,0,0,1,0,255,1,0,255,255,1,255,0,255,255,0,255,0,0,255,255,255,255,1,0,0,1,1,1,0,1,1,1,1,1,1,1,0,255,1,1,255,0,255,255,255,0,255,0,1,255,1,0,1,0,255,255,0,0,1,255,0,1,0,255,1,0,1,0,0,0,255,1,255,1,1,0,1,0,1,255,0,1,1,0,0,255,0,255,255,0,1,1,255,0,255,255,0,0,1,255,0,255,255,255,0,255,255,0,1,255,1,1,0,255,0,0,255,0,1,255,255,0,255,255,0,0,1,255,0,0,0,1,0,1,255,1,1,255,0,255,255,0,0,255,0,0,0,1,0,1,1,0,0,0,1,0,255,0,1,0,255,0,0,255,255,0,255,255,0,255,1,1,255,0,255,255,0,0,0,255,0,255,1,1,255,255,1,1,1,255,255,1,1,255,0,0,0,0,255,0,1,0,1,1,0,0,0,1,255,0,1,1,255,0,0,0,255,1,1,0,1,0,1,255,255,255,255,1,255,255,1,0,1,255,255,255,0,255,255,255,0,255,1,0,1,1,1,1,0,0,1,0,1,0,1,255,255,1,1,0,255,1,0,255,255,255,1,255,0,0,255,1,0,1,1,1,255,255,0,1,255,0,255,1,255,255,255,1,0,1,255,255,0,255,1,255,255,1,0,255,255,255,0,255,0,0,0,1,1,1,1,1,255,1,0,0,0,0,1,255,1,255,255,255,0,255,0,255,1,255,1,0,255,255,0,0,0,0,0,255,0,1,0,255,255,255,1,0,0,1,1,255,255,255,0,1,255,1,255,0,0,0,255,1,255,255,0,1,255,1,0,255,255,0,0,1,255,1,0,255,0,0,1,1,255,255,1,1,255,1,1,0,255,255,0,1,0,0,1,255,255,255,1,255,255,1,1,1,0,1,255,0,1,1,0,255,0,255,255,255,1,0,0,1,0,0,255,1,1,255,255,0,255,0,255,0,255,1,0,0,1,255,255,0,0,255,255,1,255,255,1,255,0,1,255,1,1,0,255,1,255,0,255,1,0,255,255,1,255,255,0,255,255,0,255,1,1,255,255,255,255,0,1,0,1,1,0,255,0,0,1,1,255,0,255,255,0,0,255,1,1,0,255,0,0,255,1,0,255,0,1,0,0,0,0,1,255,0,0,0,1,0,0,1,1,1,255,1,0,1,1,255,255,1,1,255,0,255,1,1,0,0,1,0,1,255,0,255,1,1,0,0,0,1,1,0,0,255,0,0,1,1,1,255,255,255,1,0,1,0,0,0,1,255,255,0}, {0,0,0,0,255,1,255,255,255,255,0,0,255,1,1,0,0,0,1,255,1,255,255,1,1,0,0,255,0,255,255,255,1,1,0,0,255,255,1,1,1,0,1,0,0,255,0,1,0,255,255,0,255,1,255,255,0,255,0,0,255,1,1,0,0,255,255,255,255,255,0,1,0,255,255,255,1,0,0,1,0,0,0,0,255,1,1,0,255,255,255,1,1,1,1,255,255,255,255,255,1,255,1,0,255,1,1,1,1,255,1,0,1,1,255,0,255,255,1,0,255,255,0,1,255,1,0,0,1,0,255,255,0,1,1,255,1,1,255,1,0,255,1,0,1,1,1,255,0,1,1,0,255,1,0,1,255,0,0,1,1,255,255,0,0,255,255,1,1,1,0,255,255,255,0,255,255,0,255,255,1,0,255,255,255,0,255,255,1,255,0,255,255,1,0,1,0,255,255,0,1,0,0,1,255,1,0,0,1,1,255,255,1,1,1,255,1,255,255,255,0,0,0,0,0,255,255,1,255,1,1,0,255,1,0,255,255,255,0,0,1,0,0,0,1,0,255,255,1,0,0,1,1,1,1,0,0,1,0,0,1,0,255,255,1,255,0,1,1,255,1,0,0,0,255,0,255,1,255,255,0,1,0,0,0,0,0,255,255,0,255,1,0,0,0,1,255,1,255,0,0,255,255,255,0,0,1,255,0,1,1,1,1,255,255,0,0,1,0,0,255,1,1,0,255,0,1,1,0,255,0,255,0,0,1,255,0,255,255,255,255,255,1,255,255,1,1,0,1,0,0,255,0,1,255,1,255,255,0,255,255,255,0,1,1,0,0,1,1,255,1,255,255,0,255,255,1,0,0,0,0,1,0,0,0,255,1,255,0,0,1,0,1,0,255,0,255,1,1,0,0,0,1,1,0,0,255,0,0,0,0,255,1,1,1,0,255,255,255,0,1,0,255,0,0,0,1,1,255,1,0,255,1,255,1,255,255,1,0,1,0,1,255,0,255,1,0,1,255,255,0,0,0,255,1,0,0,1,0,1,0,1,1,1,1,0,0,1,255,255,0,1,255,0,255,0,255,1,255,255,255,0,1,255,0,0,0,0,0,0,255,255,255,0,255,0,0,255,255,255,1,255,255,1,1,1,0,255,255,255,1,1,1,0,255,255,255,255,0,0,255,0,255,0,1,1,255,0,1,0,255,1,0,255,255,1,255,0,255,0,1,255,255,0,1,255,1,1,0,0,0,255,1,255,1,255,1,255,1,1,255,1,255,1,255,255,0,1,0,1,255,1,255,1,255,1,255,1,0,0,1,0,1,255,0,0,1,1,255,255,0,0,0,255,255,0,255,255,0,0,1,0,1,0,1,255,0,0,0,1,255,0,1,1,0,0,0,255,0,1,1,255,1,255,255,0,0,1,0,1,0,1,1,0,1,1,255,255,1,0,0,255,0,0,1,0,0,1,0,0,0,0,0,255,0,1,0,0,255,255,0,0,0,1,0,1,0,1,1,0,0,0,0,1,255,0,1,255,255,0,0,1,255,1,0,0,0,1,0,255,1,1,1,1,0,1,1,1,1,0,0,0,1,255,0,1,255,1,0,0,255,255,0,1,1,1,255,0,255,1,255,0,1,1,1,255,255,0,255,255,255,1,255,255,1,0,1,1,1,0,255,255,1,1,1,255,255,0,255,1,1,1,1,255,255,0,0,255,255,1,255,1,255,255,255,255,0,255,0,255,0,0,255,0,255,1,0,0,0,255,1,255,1,0,0,255,255,255,0,1,1,255,255,1,0,1,0,0,255,0,255,0,0,255,0,0,255,255,1,0,1,0,1,255,0,1,255,0,1,0,1,0,255,255,0,1,0,1,255,1,0,1,0,1,255,1,255,1,255,1,0,1,255,1,0,255,1,1,0,0,255,255,0,1,255,0,1,1,0,0,255,0,255,0,1,0,255,255,0,1,255,0,1,255,0,255,255,0,1,0,1,1,255,255,0,255,255,1,1,0,255,0,255,0,0,255,255,0,1,1,0,1,1,1,0,0,0,1,0,1,0,255,255,0,0,255,1,0,255,1,255,255,1,255,1,1,0,1,255,0,255,1,255,0,0,0,0,1,0,0,1,255,255,0,0,1,1,1,1,1,1,255,0,0}, {1,0,255,0,0,0,255,255,255,0,1,0,0,0,1,1,255,0,255,1,1,255,1,0,255,0,255,1,255,1,1,1,0,255,0,255,1,1,1,255,255,1,0,0,255,0,1,1,1,0,1,0,0,255,1,255,255,0,1,255,1,255,0,255,0,1,0,255,1,255,255,1,255,255,255,0,255,255,1,1,0,255,0,1,0,255,0,1,1,1,255,0,255,1,0,255,1,1,0,1,1,255,0,255,255,0,1,1,0,0,1,1,255,255,0,1,255,1,255,255,0,255,255,1,1,0,255,0,0,255,255,0,255,255,0,1,0,255,255,0,0,0,255,1,255,255,0,255,0,1,1,0,0,1,255,255,1,0,0,255,0,255,1,0,255,255,0,255,255,255,1,1,255,0,255,255,0,255,1,0,255,255,0,255,0,0,0,255,255,0,0,1,0,0,0,255,255,255,0,1,0,1,0,0,1,1,1,255,0,1,0,1,1,1,1,1,0,255,1,1,255,0,0,1,255,255,1,1,255,255,255,1,1,1,255,0,0,1,1,255,1,255,0,1,255,255,0,1,0,255,0,0,1,1,0,0,1,0,255,0,255,255,0,1,1,255,255,1,0,0,1,0,0,1,1,1,255,255,255,255,1,0,0,1,0,0,1,0,0,0,0,1,255,0,0,1,0,255,1,1,0,1,255,0,255,0,1,0,255,0,255,255,1,0,1,0,255,255,255,0,1,1,0,0,1,0,1,0,1,0,1,255,0,0,1,1,1,1,255,1,0,255,0,0,0,1,0,0,1,255,255,255,1,1,1,0,255,1,255,1,1,0,255,0,255,0,255,255,1,1,1,255,0,1,1,255,255,1,1,255,255,1,255,0,1,0,1,255,1,255,0,1,255,255,0,0,0,255,0,1,255,0,255,255,255,255,1,255,255,1,0,0,255,1,0,255,255,255,0,1,255,0,0,255,1,255,1,1,255,0,1,255,1,0,1,0,0,0,1,1,1,0,1,1,0,0,1,1,1,255,0,1,1,0,0,255,0,0,255,255,0,1,0,1,0,1,0,255,0,0,255,0,255,255,255,0,1,1,255,1,1,0,0,1,255,255,255,0,1,0,0,1,1,1,1,1,0,255,255,0,255,0,0,1,0,255,255,1,0,255,1,255,1,1,255,1,255,255,0,0,255,0,0,0,0,0,255,1,1,1,255,255,1,255,1,255,0,1,1,1,255,255,0,0,255,0,255,1,1,1,1,1,1,1,1,1,255,0,1,1,1,255,0,1,1,1,0,1,1,0,1,1,1,255,1,255,255,255,1,0,1,255,255,255,1,1,1,0,1,255,0,0,255,0,1,0,255,1,255,0,0,0,1,1,0,0,0,0,255,0,1,0,0,1,0,255,1,1,255,255,255,1,0,1,0,0,1,1,255,0,0,1,1,255,0,0,0,255,1,0,255,255,0,0,1,1,0,0,0,255,255,1,1,255,255,1,1,0,1,1,255,255,255,1,255,0,255,0,255,1,0,0,0,255,1,255,255,1,255,255,0,1,1,0,0,1,0,1,255,0,1,255,255,255,0,0,255,1,0,1,0,0,255,255,255,0,0,0,1,1,0,1,0,0,255,1,1,1,255,255,0,0,0,0,0,1,1,255,0,1,255,0,0,1,1,255,0,255,255,1,1,0,0,0,255,255,1,0,0,1,1,255,1,1,255,1,1,0,0,1,1,255,1,255,1,255,1,255,1,1,255,0,1,255,255,0,255,1,0,1,0,255,1,1,1,255,0,0,1,1,1,0,255,1,255,0,0,1,0,255,255,255,0,1,1,0,1,1,0,255,0,1,1,1,0,1,0,1,1,0,0,255,0,0,255,255,1,0,0,1,255,0,255,0,1,0,0,1,255,255,0,1,1,1,255,255,1,0,1,0,0,255,0,0,255,255,255,0,255,0,1,0,0,255,255,1,1,255,1,0,1,255,1,0,0,0,0,0,255,1,1,1,255,255,1,255,0,1,1,1,0,255,255,1,255,0,255,255,0,1,0,0,1,255,1,255,255,255,0,255,255,255,255,255,0,1,255,1,1,1,1,0,255,1,1,255,255,0,0,1,0,0,1,1,255,0,0,1,0,255,1,255,1,255,255,1,1,1,1,0,255,255,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255}, } ; static const unsigned char precomputed_core_inv3sntrup953_n[precomputed_core_inv3sntrup953_NUM][crypto_core_INPUTBYTES] = { {121,227,126,104,142,246,103,181,4,39,44,29,202,118,8,90,200,223,158,216,36,3,244,228,117,202,85,24,235,252,246,7,40,202,118,164,180,5,122,42,241,212,36,25,23,104,122,220,99,45,204,193,61,93,77,200,140,53,73,180,107,167,163,222,130,101,179,236,158,132,226,102,4,12,64,150,149,50,169,227,252,205,129,49,234,179,217,203,14,18,174,144,63,149,0,136,195,64,43,38,113,185,141,76,204,168,191,227,250,91,210,186,84,172,247,133,76,241,245,134,92,132,111,31,153,250,130,145,215,172,251,227,62,68,49,8,91,110,70,59,3,88,75,156,127,178,161,90,102,130,228,91,26,202,11,129,155,53,233,125,245,136,246,33,188,19,90,163,112,197,40,209,17,161,181,191,222,98,187,66,131,144,179,52,88,189,159,147,150,135,0,227,197,38,44,245,135,93,28,196,204,93,192,211,229,52,110,81,1,129,65,49,26,106,245,15,189,214,28,65,56,21,25,126,61,128,209,188,70,128,42,85,175,156,37,154,5,244,152,67,18,55,188,28,222,99,157,97,251,161,12,97,129,202,252,110,161,90,122,83,128,164,13,73,49,219,36,247,133,36,199,254,146,223,241,99,178,148,119,165,125,42,92,99,200,107,175,166,73,86,50,179,161,80,244,88,226,33,25,71,252,16,215,186,255,47,182,178,19,113,31,170,73,158,248,187,161,70,175,6,149,95,207,236,73,18,234,9,173,166,86,249,113,237,123,240,155,182,214,151,242,94,242,48,146,247,233,95,243,201,192,5,225,236,3,181,16,248,137,79,4,213,78,69,132,180,35,4,137,149,251,36,115,188,145,13,34,41,47,181,220,29,33,81,243,107,54,204,243,201,219,112,10,160,199,2,30,225,206,113,224,181,210,229,156,163,63,201,88,127,190,1,42,25,226,129,109,130,75,94,201,55,63,166,97,139,246,216,213,255,55,99,98,138,109,252,202,118,172,38,162,72,195,214,119,228,169,104,50,41,254,207,241,84,197,20,214,113,41,8,179,184,114,78,148,247,118,244,157,0,125,69,53,253,232,238,124,127,118,117,168,93,93,94,110,180,42,11,46,159,219,74,99,148,105,219,142,133,45,126,212,61,166,6,95,196,149,50,40,207,108,165,149,216,13,196,61,219,120,114,46,180,12,19,214,159,92,124,121,189,176,154,234,4,111,191,182,234,48,204,94,175,55,103,131,54,113,13,188,0,237,45,99,139,236,193,136,210,146,84,108,254,84,5,160,106,33,30,64,95,207,236,203,115,223,195,166,123,227,5,114,12,50,63,181,46,129,86,2,208,89,81,50,69,128,205,168,103,224,224,136,183,255,177,117,4,195,65,157,11,170,13,116,83,61,243,151,98,8,75,148,74,231,117,146,2,120,24,123,127,64,57,251,71,19,199,209,64,227,142,225,177,11,230,115,111,104,124,187,178,28,25,197,128,252,156,158,57,87,8,87,132,123,207,100,200,163,16,11,253,119,10,242,23,218,14,111,69,251,246,65,152,190,146,216,10,194,59,253,14,244,142,67,201,160,179,85,53,213,168,88,222,77,12,207,246,117,106,51,198,25,174,100,251,240,16,245,97,102,230,200,78,118,96,56,26,194,245,134,200,140,168,216,11,247,162,117,63,254,115,120,184,141,220,137,175,59,193,233,7,6,219,222,180,76,136,44,92,155,90,50,233,185,70,189,136,41,20,210,189,111,94,93,190,61,86,88,65,230,79,57,140,111,237,233,26,57,131,111,120,107,176,246,44,91,166,18,50,157,50,155,18,87,231,185,203,43,120,203,211,193,63,255,189,162,52,75,82,188,51,35,135,102,112,168,243,226,57,151,83,172,28,242,96,183,126,113,239,183,92,159,184,70,241,16,8,140,72,59,75,11,144,79,188,85,70,171,59,64,66,56,118,229,175,98,181,252,2,210,190,122,252,145,108,87,34,202,252,228,134,2,144,165,152,220,180,27,251,167,50,215,35,5,233,214,83,78,153,224,170,55,126,152,163,149,107,91,171,216,61,18,130,57,146,180,252,235,126,57,133,24,32,47,78,37,182,210,161,63,220,143,71,2,182,54,86,86,69,95,49,239,128,127,18,126,178,160,248,87,152,144,243,32}, {107,203,223,104,252,21,35,83,189,190,97,11,221,173,156,197,23,149,129,115,211,71,43,104,197,167,70,126,181,202,124,127,178,3,19,253,82,149,122,157,0,64,225,67,205,119,88,220,37,154,220,140,150,132,136,171,19,35,134,160,54,110,4,49,75,105,19,244,156,54,74,120,140,208,244,166,249,40,24,237,180,138,6,60,182,178,175,21,228,118,240,168,236,245,159,228,194,184,97,161,168,24,27,121,57,180,184,229,134,227,248,158,31,117,86,33,35,157,98,157,9,111,36,192,137,31,3,244,197,40,12,117,7,40,240,58,168,11,215,62,14,62,25,141,210,176,0,241,212,230,21,84,242,158,184,250,78,2,241,225,197,103,251,147,169,78,204,73,132,62,233,178,181,13,157,32,93,181,68,46,207,86,150,184,106,67,76,227,102,41,69,150,161,199,80,25,86,93,83,151,187,117,68,58,63,222,22,112,134,218,150,12,3,36,121,31,192,68,80,237,220,237,220,218,201,114,54,207,228,245,60,144,12,197,199,207,47,82,16,64,227,44,188,191,243,52,64,230,172,43,157,182,152,153,113,109,6,12,107,242,235,138,112,146,122,145,249,22,16,132,164,60,80,54,103,83,43,236,194,182,107,60,243,98,68,221,126,106,207,164,245,5,227,142,205,144,110,71,116,147,86,223,32,34,139,194,158,195,193,60,207,156,109,67,243,163,157,228,118,243,227,246,42,118,36,45,131,183,221,113,130,170,101,246,143,149,120,41,16,2,113,22,93,195,224,240,50,178,149,168,29,14,34,198,147,253,91,212,216,229,17,147,27,5,68,108,59,195,209,161,75,132,177,185,227,210,108,220,179,149,191,20,60,141,187,80,54,172,217,82,133,203,74,77,26,242,32,176,204,55,84,17,255,57,204,94,159,110,41,63,16,80,250,131,118,47,128,152,175,199,239,237,210,86,98,150,89,128,157,57,90,251,115,222,106,176,70,69,180,41,157,158,22,2,102,177,17,181,209,155,112,155,159,98,167,70,114,142,134,204,49,44,47,176,144,215,71,19,17,255,228,31,209,195,187,6,185,99,173,145,0,100,108,241,23,251,168,54,247,26,50,207,195,55,170,56,40,205,68,196,236,33,140,131,103,165,190,162,196,65,215,63,255,243,182,174,192,251,107,19,78,172,178,35,13,1,28,160,36,48,181,237,131,238,26,142,11,96,156,213,144,24,75,65,199,94,237,30,250,27,180,74,179,9,53,222,70,55,249,246,33,180,27,137,28,235,199,100,161,53,105,195,164,66,237,4,29,85,185,46,220,102,11,227,84,6,35,97,89,143,182,255,229,227,212,2,216,220,222,90,27,14,225,105,178,245,22,205,209,58,193,92,52,169,201,63,145,80,93,231,220,54,207,131,108,250,180,85,125,88,63,249,16,82,79,82,128,186,16,233,223,43,35,111,43,145,19,118,224,166,208,36,157,122,11,48,249,201,132,22,40,194,163,5,54,77,21,197,234,241,199,255,172,211,185,158,141,21,241,191,182,250,228,169,146,162,142,55,29,34,243,25,204,91,108,177,31,58,69,30,155,250,77,238,74,93,192,30,75,44,174,151,63,76,126,53,162,10,220,109,39,76,13,52,94,186,61,2,148,225,164,153,253,166,70,224,100,251,165,104,117,97,27,67,168,196,96,95,112,14,50,191,154,4,242,77,236,39,250,2,84,81,119,74,104,127,200,131,177,134,222,11,62,3,1,215,36,73,241,140,83,207,17,22,211,80,1,11,133,101,106,134,232,221,23,216,24,60,178,99,2,234,102,60,43,177,220,141,127,173,204,124,215,234,132,110,163,154,90,37,61,198,110,82,157,181,81,194,128,206,143,85,113,98,238,20,157,84,163,142,225,73,245,161,176,127,13,87,16,109,179,16,46,186,131,216,138,229,55,189,95,135,34,72,173,114,184,246,253,190,105,184,224,37,29,193,231,212,175,59,72,163,52,237,106,33,192,218,185,160,168,205,116,146,241,208,154,10,214,130,225,234,97,64,57,52,94,24,25,32,196,127,156,69,7,139,156,181,46,149,12,215,83,208,33,158,76,116,72,51,27,204,0,112,124,37,148,61,174,103,77,125,213,144,84,179,171,186,204,231,130,187,230}, {136,235,202,111,190,219,195,84,35,251,191,174,222,252,130,22,201,247,13,216,116,218,59,193,155,49,221,153,153,119,226,3,237,83,3,14,153,151,98,143,109,177,73,47,218,148,184,161,210,69,234,228,13,157,152,117,37,68,155,131,27,130,58,77,76,12,42,195,57,119,82,247,8,168,180,83,142,94,62,140,129,3,42,86,15,169,152,164,238,208,206,193,203,229,133,55,94,187,87,240,32,52,105,45,194,65,75,245,85,243,96,242,7,85,205,101,56,225,235,104,49,5,229,25,130,200,200,250,9,65,174,48,235,232,160,224,222,168,137,143,40,230,191,181,121,159,172,80,208,181,25,67,129,131,219,140,141,191,96,165,54,67,144,58,191,83,176,198,66,84,247,111,238,142,88,131,100,128,70,222,38,111,94,221,224,105,229,148,53,229,65,44,144,135,140,32,134,188,208,76,217,103,53,217,6,27,211,253,200,232,80,152,22,149,112,30,240,103,80,128,166,101,120,112,151,183,185,30,50,115,116,102,234,225,148,105,13,112,9,40,239,37,83,52,6,131,144,230,8,18,246,159,249,254,182,1,194,4,165,244,239,221,249,51,78,75,80,144,87,124,154,171,118,221,49,110,242,17,146,2,232,148,167,56,22,83,71,35,76,166,155,28,189,177,83,68,221,216,190,240,209,61,128,16,105,127,249,249,214,20,221,177,188,107,14,236,136,84,242,15,62,165,156,3,188,171,49,6,223,38,123,13,215,118,50,52,194,162,240,221,171,8,26,163,251,5,129,141,49,248,146,130,120,188,205,214,231,114,152,93,148,251,223,177,215,71,195,12,68,111,91,92,22,156,17,181,196,126,38,167,240,66,223,169,33,159,252,79,138,35,169,139,224,157,144,103,200,186,50,209,165,132,23,228,193,84,135,139,112,151,56,98,83,197,42,183,59,252,113,220,89,37,179,171,2,14,158,153,102,93,108,45,76,101,132,164,108,42,160,78,184,209,86,40,241,115,43,214,158,61,228,254,83,211,162,21,90,17,198,214,217,20,155,68,229,86,203,8,102,184,160,122,44,130,225,113,225,180,32,186,176,165,207,201,86,231,138,128,105,197,103,168,249,35,54,238,163,113,165,112,47,24,80,215,220,88,249,123,147,158,30,167,119,216,107,86,227,6,152,131,89,115,66,154,87,156,209,64,154,96,145,224,129,255,204,18,156,39,31,153,199,13,47,215,72,146,235,12,56,165,69,150,59,209,230,230,222,132,12,196,15,171,174,129,196,200,206,3,90,50,197,103,85,137,104,48,83,246,106,46,245,24,110,233,210,88,37,143,116,228,31,197,55,17,175,153,183,169,110,117,23,152,248,76,100,119,243,165,142,127,34,72,5,23,5,49,78,179,197,35,146,104,176,18,221,201,64,51,200,223,6,146,186,119,232,210,200,94,161,232,164,43,172,193,195,91,183,49,156,150,33,171,159,1,82,232,10,141,195,16,101,250,232,133,113,97,39,183,106,253,127,182,147,73,112,210,132,93,240,156,117,242,145,103,205,42,54,76,61,129,171,48,74,142,102,167,80,213,57,225,40,120,179,227,116,163,65,186,50,100,248,116,88,11,83,35,237,20,248,198,78,18,248,216,115,28,139,211,79,121,229,147,217,117,48,52,180,153,13,194,189,64,237,19,155,145,221,8,154,223,161,57,252,10,225,29,132,135,174,213,74,236,131,237,152,179,159,168,176,64,235,244,167,78,227,80,153,186,124,73,185,112,42,251,174,105,198,180,67,46,36,64,217,221,1,243,180,103,235,116,56,114,52,95,131,17,23,50,16,113,105,36,105,142,186,1,41,13,17,103,54,246,152,78,20,123,79,7,34,189,242,105,235,143,81,216,198,96,124,131,224,95,109,176,40,211,83,136,36,193,140,163,115,142,6,65,225,220,207,238,60,242,17,67,183,209,231,118,1,105,176,236,102,247,125,63,21,216,44,185,212,102,251,216,105,170,86,81,74,35,89,202,180,76,178,120,218,191,70,142,73,188,236,57,89,208,244,126,99,87,222,229,245,31,80,101,42,89,87,161,72,204,108,34,177,76,132,111,150,153,218,117,160,146,21,0,13,248,59,150,198,131,72,170,138,174,141,64,125,40,100,247,230}, {203,25,189,229,166,73,29,179,183,217,51,169,240,254,187,212,234,247,212,16,1,245,146,230,240,75,226,117,117,20,27,164,59,163,31,242,107,88,133,63,165,65,239,126,10,85,49,246,96,59,213,144,134,22,61,211,37,203,66,132,174,85,162,67,46,192,193,249,86,84,103,72,18,81,211,231,196,4,104,121,112,67,18,100,86,60,121,62,240,160,59,242,240,12,104,86,179,154,215,107,155,18,167,201,82,156,75,179,185,229,223,205,53,133,149,156,83,32,141,151,36,117,214,137,138,32,193,243,4,105,125,154,102,221,229,37,108,224,5,248,39,154,50,180,168,226,49,131,53,108,251,50,130,186,165,34,192,156,107,48,126,193,91,209,160,21,237,207,108,21,59,46,8,37,5,253,37,120,229,15,101,70,207,151,124,1,103,105,48,165,63,1,251,97,38,180,195,32,133,226,107,115,110,63,74,51,34,145,201,109,74,17,239,83,78,162,212,192,44,64,115,98,228,8,128,21,87,64,81,97,246,142,164,57,169,183,76,104,146,211,103,55,63,212,231,30,186,57,164,159,217,56,202,167,101,195,205,65,171,254,186,18,6,176,180,214,2,112,194,56,177,8,23,214,189,196,53,158,48,254,195,243,158,65,232,166,48,41,219,155,65,29,32,193,160,70,137,152,143,52,227,120,7,79,53,219,149,6,183,255,51,89,76,38,131,117,177,168,243,202,238,38,78,249,57,190,20,193,69,107,132,53,106,221,216,121,98,208,78,216,29,248,43,184,112,120,173,16,213,215,107,34,255,61,157,33,146,137,12,141,221,81,117,169,205,143,166,9,22,189,144,223,80,189,247,69,138,11,32,100,182,11,220,47,48,39,63,140,32,182,54,250,33,102,150,11,182,231,239,23,134,158,112,64,234,97,80,124,209,208,209,94,175,61,51,155,86,20,192,111,101,191,55,70,90,160,182,69,77,247,176,242,126,136,196,10,160,165,4,105,97,19,189,41,142,105,93,185,220,26,194,141,137,163,206,28,45,175,152,181,14,245,206,114,32,242,126,96,132,120,151,121,236,25,108,248,218,204,43,111,187,153,248,130,211,231,124,151,77,35,20,15,5,34,18,37,140,4,60,252,21,206,170,135,17,60,108,168,96,191,219,73,138,192,145,235,237,18,151,217,110,227,201,48,196,80,28,15,119,46,146,237,222,140,208,68,139,10,221,130,8,125,7,10,113,17,134,29,124,8,49,150,219,23,47,115,13,115,202,177,74,162,98,153,149,192,96,83,48,96,100,101,45,129,92,177,235,102,248,70,143,103,170,24,78,120,219,232,255,243,75,62,148,164,212,147,57,230,49,102,56,57,210,156,45,145,61,145,221,56,140,246,169,20,4,149,5,150,76,90,98,93,244,202,185,97,63,55,231,243,216,81,102,31,108,9,91,206,112,15,216,35,119,88,41,89,49,214,85,13,93,177,242,43,12,145,93,134,216,187,53,104,28,112,95,254,50,50,181,141,107,14,8,204,109,96,181,136,66,178,114,51,46,25,235,207,112,62,215,242,138,103,237,239,153,33,29,47,126,133,134,251,57,17,140,163,236,23,89,247,109,247,231,116,147,2,169,225,100,127,100,157,214,138,145,55,123,173,133,90,156,101,147,246,123,21,60,84,9,58,77,150,79,129,172,68,221,24,146,196,193,161,176,254,60,10,53,248,62,80,73,103,76,104,128,5,163,73,235,72,221,243,55,24,104,15,64,233,9,211,132,134,92,169,93,25,92,175,242,237,204,70,109,83,231,93,167,107,143,120,1,17,106,200,121,65,154,32,165,68,94,107,253,140,96,109,252,144,196,136,172,13,125,133,246,242,67,204,175,114,32,69,137,74,206,19,113,105,25,165,14,13,39,6,156,43,10,254,87,233,165,176,121,7,40,238,174,29,253,96,248,138,20,42,136,147,126,21,111,221,221,146,94,190,114,135,183,56,67,155,216,93,237,209,122,90,35,65,156,67,19,31,242,210,214,104,36,46,253,127,40,194,179,5,62,162,250,117,71,110,208,117,120,148,37,117,242,200,212,24,187,179,247,168,105,82,63,180,114,89,42,32,221,52,100,70,74,99,65,252,57,107,29,87,144,104,229,75,150,124,15,152,92}, {1,0,255,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_inv3sntrup953_k[precomputed_core_inv3sntrup953_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_inv3sntrup953_c[precomputed_core_inv3sntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, } ; static void test_core_inv3sntrup953_impl(long long impl) { unsigned char *h = test_core_inv3sntrup953_h; unsigned char *n = test_core_inv3sntrup953_n; unsigned char *k = test_core_inv3sntrup953_k; unsigned char *c = test_core_inv3sntrup953_c; unsigned char *h2 = test_core_inv3sntrup953_h2; unsigned char *n2 = test_core_inv3sntrup953_n2; unsigned char *k2 = test_core_inv3sntrup953_k2; unsigned char *c2 = test_core_inv3sntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_inv3sntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_inv3sntrup953(impl); printf("core_inv3sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_inv3sntrup953_implementation(impl),ntruprime_dispatch_core_inv3sntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_inv3sntrup953; printf("core_inv3sntrup953 selected implementation %s compiler %s\n",ntruprime_core_inv3sntrup953_implementation(),ntruprime_core_inv3sntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_inv3sntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_inv3sntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_inv3sntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_inv3sntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_inv3sntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_inv3sntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_inv3sntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_inv3sntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_inv3sntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_inv3sntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_inv3sntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"inv3sntrup953")) return; storage_core_inv3sntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_inv3sntrup953_h = aligned(storage_core_inv3sntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_inv3sntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_inv3sntrup953_n = aligned(storage_core_inv3sntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_inv3sntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_inv3sntrup953_k = aligned(storage_core_inv3sntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_inv3sntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_inv3sntrup953_c = aligned(storage_core_inv3sntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_inv3sntrup953_h2 = callocplus(maxalloc); test_core_inv3sntrup953_h2 = aligned(storage_core_inv3sntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_inv3sntrup953_n2 = callocplus(maxalloc); test_core_inv3sntrup953_n2 = aligned(storage_core_inv3sntrup953_n2,crypto_core_INPUTBYTES); storage_core_inv3sntrup953_k2 = callocplus(maxalloc); test_core_inv3sntrup953_k2 = aligned(storage_core_inv3sntrup953_k2,crypto_core_KEYBYTES); storage_core_inv3sntrup953_c2 = callocplus(maxalloc); test_core_inv3sntrup953_c2 = aligned(storage_core_inv3sntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_inv3sntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_inv3sntrup953();++impl) forked(test_core_inv3sntrup953_impl,impl); ++test_core_inv3sntrup953_h; ++test_core_inv3sntrup953_n; ++test_core_inv3sntrup953_k; ++test_core_inv3sntrup953_c; ++test_core_inv3sntrup953_h2; ++test_core_inv3sntrup953_n2; ++test_core_inv3sntrup953_k2; ++test_core_inv3sntrup953_c2; } free(storage_core_inv3sntrup953_c2); free(storage_core_inv3sntrup953_k2); free(storage_core_inv3sntrup953_n2); free(storage_core_inv3sntrup953_h2); free(storage_core_inv3sntrup953_c); free(storage_core_inv3sntrup953_k); free(storage_core_inv3sntrup953_n); free(storage_core_inv3sntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_invsntrup1013.c0000644000000000000000000014276614705505542023441 0ustar rootroot/* ----- core/invsntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_invsntrup1013_checksums[] = { "f6a51c797d29c780474c27d518d04993a0522cd81996c9b618b42059ba667ec3", "53217389455102d1f4fcf9dac3db99bbd39bfbf23559699f6f1913e1aa9b8d82", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_invsntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_invsntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_invsntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_invsntrup1013_CONSTBYTES static void *storage_core_invsntrup1013_h; static unsigned char *test_core_invsntrup1013_h; static void *storage_core_invsntrup1013_n; static unsigned char *test_core_invsntrup1013_n; static void *storage_core_invsntrup1013_k; static unsigned char *test_core_invsntrup1013_k; static void *storage_core_invsntrup1013_c; static unsigned char *test_core_invsntrup1013_c; static void *storage_core_invsntrup1013_h2; static unsigned char *test_core_invsntrup1013_h2; static void *storage_core_invsntrup1013_n2; static unsigned char *test_core_invsntrup1013_n2; static void *storage_core_invsntrup1013_k2; static unsigned char *test_core_invsntrup1013_k2; static void *storage_core_invsntrup1013_c2; static unsigned char *test_core_invsntrup1013_c2; #define precomputed_core_invsntrup1013_NUM 4 static const unsigned char precomputed_core_invsntrup1013_h[precomputed_core_invsntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {254,254,105,7,48,13,218,13,146,248,152,3,194,8,100,2,178,251,132,252,106,247,33,9,223,10,133,0,156,243,235,250,92,242,131,255,138,243,201,243,122,6,97,253,157,0,71,3,230,9,91,245,167,247,121,3,47,2,102,249,21,10,206,250,5,4,62,254,152,4,159,10,241,254,57,5,249,0,74,12,50,4,130,251,244,246,251,251,75,253,82,6,17,6,151,252,43,255,151,254,235,5,231,251,26,0,11,254,37,255,179,251,14,2,152,243,138,7,51,247,120,248,214,12,189,8,73,244,84,11,169,251,22,248,229,244,157,7,182,1,153,3,129,6,116,254,165,245,159,253,193,11,22,244,131,247,43,243,101,244,65,248,51,250,5,255,127,249,45,251,87,254,159,9,0,9,167,9,184,253,245,249,254,2,179,242,162,12,33,254,83,11,155,10,169,3,72,249,216,3,215,13,66,251,148,7,4,8,102,13,47,9,132,4,140,11,47,247,191,1,154,1,148,247,187,247,76,10,37,245,166,250,153,8,32,5,84,3,190,244,47,2,216,254,180,10,14,0,208,6,121,4,115,250,221,5,221,253,84,12,253,9,55,249,214,242,240,255,0,14,101,252,77,4,250,250,24,250,171,1,150,0,128,10,110,4,183,0,86,249,224,253,49,4,157,3,41,248,250,253,89,252,240,249,200,8,242,7,202,250,118,254,255,5,246,12,166,8,139,251,64,251,38,11,47,245,245,251,94,10,9,9,102,244,136,3,117,249,126,251,24,245,125,255,171,4,46,255,7,8,248,11,125,8,118,249,183,12,202,253,86,10,181,3,66,9,231,2,245,247,200,255,117,245,31,10,50,6,12,11,67,255,213,0,208,242,250,252,190,245,71,252,230,243,222,3,162,1,118,12,102,243,235,247,83,248,208,252,135,252,112,251,242,243,244,10,97,244,40,0,78,245,117,244,238,248,152,243,156,252,82,246,26,249,59,253,49,251,189,250,42,245,118,7,122,253,229,250,16,248,115,2,153,251,41,2,56,4,125,252,101,251,240,0,151,7,5,255,123,4,244,1,182,244,88,2,23,13,203,251,165,2,56,10,38,12,104,249,252,248,134,12,13,7,221,8,4,13,55,254,175,255,185,243,21,13,129,244,43,247,136,247,157,246,202,245,177,8,47,8,229,2,123,1,191,3,175,0,16,4,44,248,124,253,64,13,40,250,75,10,38,9,235,246,18,7,121,254,149,11,169,252,113,3,64,255,162,244,158,2,128,244,199,243,132,11,162,252,63,247,118,11,63,242,192,243,60,11,87,252,44,11,49,6,100,7,40,242,83,243,205,12,1,248,44,244,122,3,23,13,30,13,109,248,199,7,180,4,108,248,93,2,14,244,192,242,9,1,182,10,181,250,120,10,135,1,119,251,78,246,102,4,113,12,117,11,178,251,35,4,192,243,6,1,78,242,254,10,29,255,202,249,2,9,145,3,9,10,170,10,7,4,8,252,30,2,198,248,221,13,188,2,118,10,228,11,13,244,0,253,138,9,67,1,84,251,18,2,104,4,213,242,210,6,143,1,85,246,231,0,62,11,37,9,231,13,105,253,155,251,129,252,157,0,217,12,219,255,196,4,241,2,56,6,181,6,197,3,2,2,50,244,154,247,193,247,4,249,22,243,119,7,155,9,19,13,200,10,10,12,244,247,145,246,53,8,145,244,241,245,28,248,51,246,22,246,134,253,65,246,215,252,19,252,123,252,136,247,234,2,110,12,66,3,66,10,240,5,41,250,73,242,0,242,155,254,85,253,78,4,14,5,102,3,45,253,189,249,235,254,102,13,4,245,110,8,204,252,222,4,85,11,135,245,57,246,51,3,133,0,9,245,240,255,89,251,157,3,222,0,15,242,192,4,51,248,247,255,225,252,164,6,82,3,67,13,47,2,243,11,88,3,50,253,34,2,241,11,41,242,127,9,29,8,138,246,207,10,236,2,176,2,83,12,41,6,23,250,210,6,200,7,204,5,112,248,107,247,123,13,46,2,114,8,237,3,241,253,190,6,113,1,67,248,116,10,7,246,92,6,24,0,187,246,226,245,1,245,225,252,128,255,115,3,254,254,23,242,203,254,32,12,125,246,180,251,91,13,76,255,108,0,130,243,148,11,249,12,166,248,43,246,136,250,211,0,67,13,20,243,132,7,187,3,75,244,109,7,101,248,253,7,244,8,139,242,123,254,200,254,169,250,213,247,204,8,128,254,189,1,110,243,25,251,63,246,149,9,70,242,51,13,136,251,175,247,33,247,213,12,83,249,32,249,209,10,173,245,177,10,147,249,77,5,25,253,138,244,73,250,41,9,174,9,223,13,27,253,13,5,212,8,28,3,101,247,137,246,106,248,161,251,229,251,1,14,1,250,191,242,180,247,105,4,2,242,241,245,115,6,159,249,141,250,242,10,23,12,56,4,224,251,213,245,53,1,122,245,103,4,102,254,117,253,104,250,154,1,82,245,168,6,238,12,50,251,172,6,149,2,225,2,205,5,93,7,112,244,47,4,219,244,28,243,157,251,159,253,141,13,7,0,60,242,136,3,225,251,79,252,0,245,212,244,222,9,217,251,181,4,0,13,244,246,189,12,62,5,204,7,165,8,21,13,181,250,30,6,252,8,142,249,117,6,58,245,228,250,195,243,165,5,199,254,120,0,174,3,255,246,244,10,86,3,182,7,182,246,246,5,115,254,99,252,11,13,83,6,254,13,253,13,216,8,112,242,51,1,58,245,203,243,9,7,55,13,205,5,15,242,137,7,204,8,214,243,239,1,103,5,8,251,96,248,153,1,39,244,117,255,161,251,2,247,48,8,203,7,23,9,210,248,50,2,204,10,50,254,45,247,198,251,67,242,208,248,146,8,13,245,24,1,125,250,51,8,240,247,75,244,68,255,89,255,177,11,228,246,152,248,184,245,11,251,50,2,72,9,71,242,255,11,153,254,193,6,69,246,214,243,160,253,0,250,205,13,70,245,222,245,102,3,43,254,86,1,86,251,146,9,245,251,60,253,73,6,194,242,33,6,108,5,179,12,43,6,166,1,174,245,137,10,38,2,34,1,104,254,108,8,118,11,54,250,254,248,46,248,188,8,15,246,222,251,241,251,193,252,219,4,48,252,206,2,8,7,192,3,6,0,119,1,246,243,247,252,67,250,124,3,249,6,8,244,179,3,157,248,239,12,191,2,238,243,163,10,74,250,163,7,213,13,201,248,43,7,38,5,128,252,236,5,243,254,193,252,154,249,11,250,39,5,51,6,236,245,132,1,130,9,227,8,224,249,249,12,133,242,185,246,238,11,143,249,98,12,0,12,159,251,150,9,237,4,192,11,122,249,227,254,57,255,136,248,39,0,123,247,90,11,5,1,244,6,223,12,48,12,175,5,64,243,180,12,235,2,53,242,232,5,171,8,207,3,50,0,71,255,148,245,116,254,69,248,229,4,173,0,130,0,144,243,24,252,123,251,118,2,13,254,237,0,105,5,4,250,176,246,247,1,151,9,214,247,48,3,108,251,78,252,232,5,238,253,62,247,191,10,155,252,132,5,90,243,76,1,211,249,243,245,207,248,241,8,203,245,135,3,85,3,249,254,17,242,238,242,170,8,36,244,74,245,32,4,71,242,149,2,1,252,200,250,112,246,175,11,22,1,49,8,79,245,39,1,47,10,119,9,137,7,221,11,34,253,56,4,83,3,220,11,240,251,189,2,173,252,62,244,86,254,168,11,152,245,244,255,105,251,208,254,164,9,166,250,197,10,147,3,195,255,87,242,98,252,118,253,144,246,193,242,40,11,12,254,141,247,145,0,217,5,151,254,92,13,91,2,238,7,19,12,211,6,165,5,62,8,237,244,219,9,175,12,149,252,173,248,221,4,10,255,67,7,186,5,185,4,244,243,4,254,244,9,187,254,179,4,241,252,6,245,121,10,137,5,168,1,166,8,184,9,213,10,10,242,132,9,229,253,84,13,241,249,45,4,64,243,194,253,204,246,80,5,118,11,231,255,42,249,27,246,54,255,176,248,152,11,174,249,88,4,188,254,192,242,151,6,123,6,53,245,190,10,136,4,59,242,153,242,154,247,246,7,117,4,20,9,152,7,236,242,87,255,233,8,72,7,223,244,131,243,51,4,102,255,169,242,4,8,110,252,239,252,59,242,201,8,90,251,157,3,66,13,88,2,25,1,163,254,182,13,115,245,217,9,251,254,168,6,69,4,148,254,254,8,64,1,71,246,133,7,242,247,251,13,82,5,122,4,192,13,21,10,32,8,25,252,134,245,25,251,241,247,93,250,27,13,100,1,240,253,161,250,126,4,36,252,226,253,94,8,23,244,164,245,85,250,121,243,181,8,139,2,210,7,90,252,182,4,145,13,194,243,96,250,83,254,74,250,242,254,5,248,86,246,183,254,9,250,192,3,143,245,172,13,175,0,41,252,177,13,227,250,85,10,243,11,139,253,105,0,167,251,159,6,161,252,123,1,72,4,84,3,87,255,10,5,34,11,187,244,104,247,37,251,9,2,0}, {141,252,24,243,95,12,108,255,107,10,124,250,36,250,228,253,245,251,156,8,136,243,227,4,186,250,134,7,231,0,169,245,167,7,183,9,167,12,127,250,222,242,129,7,36,246,102,3,172,247,58,250,15,254,113,7,28,2,69,242,97,10,96,243,89,9,172,2,126,249,25,11,48,245,11,243,69,247,141,1,76,12,107,243,218,2,86,12,58,1,38,4,150,252,206,8,111,244,255,3,126,246,247,9,247,8,41,248,67,248,128,2,161,6,108,9,53,249,22,250,44,10,44,10,30,5,107,242,91,9,218,6,199,254,141,246,176,8,96,8,24,243,98,252,106,248,113,4,220,254,222,248,13,12,70,11,194,252,244,251,201,245,163,252,67,247,198,6,142,13,238,10,56,244,36,245,180,1,236,248,145,249,114,11,189,0,146,9,145,4,75,243,84,253,66,246,171,255,63,245,94,248,4,14,236,4,73,8,83,248,16,250,112,247,105,243,245,1,95,245,165,253,149,1,23,1,117,11,89,10,208,245,30,11,87,249,24,242,130,245,94,6,112,248,178,1,229,248,141,243,229,13,70,11,235,254,23,4,89,247,52,250,252,12,51,247,141,245,240,247,187,246,21,242,214,244,124,242,187,251,174,255,221,243,27,0,139,0,117,6,77,248,147,1,78,248,28,0,133,246,118,12,231,245,189,246,161,13,162,255,5,6,132,13,191,9,171,11,49,3,5,245,15,9,219,3,21,8,65,255,180,13,212,7,163,245,128,243,7,249,245,5,59,243,145,248,210,247,139,3,217,245,226,254,106,250,251,251,126,13,212,244,69,2,72,254,79,247,121,246,234,251,243,9,157,255,252,252,229,255,49,243,73,6,182,6,32,252,251,255,188,5,242,247,123,249,45,2,20,5,231,12,101,8,85,2,9,5,52,12,91,6,134,2,123,252,116,10,77,245,101,246,151,255,203,12,95,250,107,254,31,0,125,1,212,3,62,254,55,245,174,254,122,0,12,10,177,243,177,5,51,7,244,255,254,251,103,252,158,5,68,2,113,11,238,246,205,3,241,0,189,12,85,5,97,248,133,249,219,10,24,246,94,245,108,245,57,244,92,252,38,10,189,9,185,255,148,6,251,6,12,246,246,254,138,0,147,5,186,0,168,8,3,4,22,2,180,12,190,2,228,6,199,255,98,7,12,6,184,248,253,249,74,244,97,5,136,2,201,3,47,10,73,250,204,5,34,6,56,247,148,249,29,0,134,242,37,244,103,248,70,3,73,249,56,254,228,0,159,12,239,5,77,255,185,11,72,3,201,6,144,2,82,8,3,249,91,249,111,243,215,11,165,4,120,243,69,5,123,0,4,10,233,253,54,8,203,4,2,0,162,1,105,10,172,252,207,251,215,6,194,11,67,243,22,246,245,6,187,246,110,4,30,249,189,1,247,6,112,246,243,250,205,5,42,245,18,242,26,244,201,11,156,7,168,11,10,242,230,9,50,251,183,244,64,2,108,10,10,8,102,248,4,252,92,254,236,5,178,245,228,243,174,7,208,12,89,248,86,244,205,254,64,13,216,3,12,252,60,243,88,6,55,3,62,245,83,4,50,245,64,7,160,253,43,242,105,9,82,1,160,5,237,250,205,5,111,9,172,252,222,252,79,0,11,253,231,254,90,250,48,1,174,245,42,254,211,251,28,245,58,11,143,9,202,0,106,8,26,3,20,6,140,0,212,246,147,251,226,12,102,249,55,248,253,244,189,10,154,242,215,255,1,251,142,2,141,251,169,0,221,246,111,0,49,251,178,253,64,10,159,247,49,247,35,243,160,249,172,246,84,7,53,5,169,244,87,12,174,251,31,4,86,247,217,244,186,246,207,4,144,5,189,251,97,245,123,4,33,251,218,7,4,255,58,247,195,255,44,2,236,253,53,246,73,254,161,11,132,10,232,249,36,6,193,249,193,253,126,250,178,10,244,254,214,11,223,252,7,2,126,253,50,0,212,7,95,243,150,248,58,252,2,249,37,0,187,247,243,253,231,13,246,2,0,12,70,6,118,4,14,245,35,252,28,243,55,243,111,246,251,242,20,2,85,254,87,0,40,249,210,248,15,4,126,5,58,3,111,242,122,3,144,6,194,251,215,255,102,246,188,249,15,247,254,253,226,252,46,247,78,255,97,0,136,243,181,253,138,4,67,0,110,10,172,249,236,251,95,2,243,255,186,254,141,242,211,4,240,248,55,11,202,254,248,4,218,2,80,12,99,1,55,0,48,243,196,247,235,253,136,250,231,245,90,2,55,253,32,0,206,1,208,10,59,7,49,251,155,13,203,4,84,249,135,0,231,1,150,245,209,4,212,2,4,253,8,8,92,247,185,247,57,246,20,255,136,10,179,248,226,2,252,11,243,8,64,253,56,0,73,4,38,253,165,2,161,242,157,5,31,246,253,4,126,5,165,243,49,250,170,254,59,255,175,0,53,252,27,252,46,254,86,7,53,3,110,246,225,3,200,10,93,244,216,248,45,254,172,5,32,13,69,243,234,242,140,252,6,249,248,254,206,11,183,250,43,4,175,246,77,1,164,6,121,7,110,248,255,247,3,1,141,255,40,10,208,252,175,246,239,8,190,10,9,245,225,5,215,254,41,4,169,7,18,245,153,252,172,8,207,244,195,244,102,243,154,255,127,11,252,244,103,3,0,243,120,255,254,3,225,1,67,2,50,244,217,251,163,255,81,246,246,10,35,247,103,5,196,251,180,249,197,247,141,243,107,253,205,12,211,246,53,7,138,11,220,243,96,249,100,246,205,5,3,253,21,8,211,252,110,244,16,244,230,250,111,244,125,252,217,12,137,243,101,255,27,0,25,13,229,13,101,1,80,12,71,13,104,5,56,5,65,12,39,5,189,7,211,244,64,245,222,249,88,6,220,254,59,246,26,10,105,247,253,3,80,253,198,11,144,253,204,247,37,248,219,8,225,7,89,245,160,255,39,249,77,250,116,11,183,252,210,243,179,2,111,5,19,10,18,254,209,252,199,246,209,244,242,3,80,252,183,3,104,251,197,246,115,8,225,243,199,1,59,8,97,0,209,250,95,9,167,250,86,249,166,244,232,250,87,2,232,7,31,7,35,4,138,13,198,244,210,242,94,6,167,247,221,247,101,243,29,8,148,6,255,254,63,4,192,0,97,255,77,251,66,6,94,6,182,255,82,249,44,11,203,250,155,247,21,251,9,253,41,251,207,242,23,248,212,255,189,252,207,0,181,250,113,3,11,8,65,7,88,3,227,242,68,249,81,248,217,5,166,12,0,247,38,6,245,251,152,4,102,252,138,8,16,3,187,9,221,246,2,250,226,244,219,1,121,4,117,5,220,3,105,243,56,11,68,242,163,249,207,244,218,8,44,249,99,2,9,247,211,248,114,246,76,7,16,10,246,10,98,9,219,12,205,245,216,9,181,5,238,1,175,244,208,248,130,254,79,12,240,6,203,254,209,4,17,245,188,4,117,242,65,5,243,5,84,255,159,249,171,249,154,3,252,248,11,2,135,253,23,244,182,0,205,0,194,5,201,244,124,253,200,253,244,246,152,242,252,7,178,13,7,8,251,5,106,12,79,3,248,10,232,249,54,242,242,13,181,248,182,0,20,3,98,245,46,252,252,242,54,9,177,0,15,252,46,7,125,250,105,5,147,3,231,251,5,252,51,249,240,248,227,242,91,4,241,243,27,253,160,252,203,242,160,250,165,0,24,255,130,250,110,1,244,3,245,11,62,254,102,2,63,6,175,249,218,9,105,11,88,12,209,249,245,13,115,242,214,247,63,244,46,253,147,252,55,245,74,252,241,246,141,247,7,244,13,254,216,7,52,11,57,242,46,5,45,10,114,12,162,0,27,249,212,244,195,2,92,11,80,248,65,5,18,6,5,251,27,5,233,244,29,243,236,3,32,248,160,0,202,250,215,244,55,7,117,255,19,253,241,8,209,244,81,11,207,9,117,7,26,245,243,13,161,246,221,246,69,246,75,247,55,2,54,0,126,12,54,11,172,1,21,4,216,252,107,246,181,2,66,3,231,5,106,9,192,13,27,7,51,6,143,252,80,255,211,2,46,1,87,243,173,246,209,9,198,12,50,248,6,10,100,12,87,0,49,243,214,249,77,253,147,246,40,5,107,8,210,6,148,248,107,8,250,253,78,255,191,243,45,6,62,255,164,249,80,243,69,9,210,254,239,242,27,252,204,11,38,255,131,1,84,244,77,0,64,255,91,4,117,4,63,4,234,1,21,5,37,11,38,247,234,244,75,2,161,9,70,252,165,11,52,12,64,242,103,249,200,12,86,246,233,0,155,1,26,11,40,248,157,11,33,249,247,10,44,5,59,10,124,2,88,11,100,253,130,247,61,251,35,255,84,4,234,242,57,6,147,246,251,247,252,5,7,244,211,244,227,246,188,252,165,13,65,252,21,6,28,255,199,245,197,8,33,9,194,7,50,0,71,1,165,3,23,252,108,252,109,251,172,251,254,242,9,5,225,3,153,3,240,249,65,11,117,249,84,242,174,1,156,3,0}, {221,249,155,255,50,254,153,248,139,245,86,244,217,9,49,249,80,12,107,248,132,251,145,255,249,253,59,1,123,11,233,254,246,1,158,252,3,248,75,0,224,242,79,0,188,250,6,2,40,243,60,2,214,244,178,252,216,9,255,250,100,255,26,7,40,252,98,11,191,10,114,8,29,2,218,249,46,252,23,7,196,250,122,13,60,9,164,247,20,1,224,252,216,245,18,6,194,5,104,3,246,245,26,8,84,13,193,247,132,242,204,244,103,253,140,253,102,248,198,245,86,5,236,249,112,7,214,247,156,5,56,254,191,248,223,250,188,13,180,7,187,3,89,8,114,246,38,246,158,242,160,3,208,2,201,5,99,3,199,247,61,248,162,11,201,251,141,5,140,12,42,252,231,11,180,242,187,12,179,253,161,3,21,3,186,12,2,244,20,4,204,5,60,247,206,255,180,1,236,247,1,248,251,244,187,248,209,250,242,11,100,9,226,8,77,6,78,250,94,3,249,1,48,243,242,243,97,5,69,254,249,253,234,250,116,5,43,246,15,10,94,2,62,252,99,243,83,13,66,5,205,9,11,1,176,6,162,13,181,3,51,253,225,254,69,9,5,13,208,242,31,4,104,251,148,251,242,242,17,1,78,251,111,13,116,248,91,12,107,248,102,254,108,250,23,4,229,244,225,253,26,247,10,250,138,13,58,242,99,7,0,249,57,255,60,10,92,252,42,245,247,254,96,10,212,10,15,13,197,249,150,246,187,2,158,249,192,2,104,12,226,252,126,255,228,7,35,246,55,245,250,247,252,8,109,12,229,0,52,2,137,246,3,13,83,8,118,245,68,7,84,12,28,251,34,250,142,242,110,242,188,8,49,11,13,12,218,247,202,11,169,250,174,10,175,1,158,6,242,0,116,8,249,7,123,2,215,0,136,245,55,6,58,0,215,245,246,8,117,242,130,0,22,248,48,5,4,2,21,252,90,2,27,246,114,9,153,10,147,5,233,2,249,251,63,0,47,8,187,245,174,248,83,247,205,11,224,249,115,247,56,244,185,7,1,243,27,0,127,12,207,11,246,13,176,250,60,245,231,11,59,250,126,246,191,249,89,12,55,253,5,255,247,11,152,244,151,251,88,0,161,6,109,242,251,0,38,244,209,244,117,0,217,247,19,11,130,1,186,252,173,13,175,6,137,3,180,4,116,246,222,8,117,250,167,12,206,0,217,2,250,255,237,12,22,2,28,11,179,2,55,0,85,3,188,1,111,254,140,244,96,248,132,255,84,246,19,243,145,244,55,11,40,4,156,248,186,242,138,249,66,6,98,242,168,251,175,6,143,242,163,250,33,254,158,3,47,254,234,247,23,254,196,8,234,246,111,250,208,8,127,249,244,8,127,3,132,253,85,11,195,246,72,10,69,254,72,254,134,248,142,3,4,0,181,1,255,6,237,12,42,253,84,4,18,254,184,8,50,11,242,13,95,13,136,8,239,12,241,255,224,253,243,6,65,250,93,2,106,254,145,251,226,247,124,248,190,7,197,243,18,244,242,1,38,3,231,246,28,255,185,243,5,12,34,247,69,246,78,244,3,249,196,0,19,5,78,242,194,0,73,0,60,249,220,251,37,1,91,242,176,250,143,246,89,242,183,244,80,245,176,244,42,242,242,250,160,246,242,255,99,252,187,7,43,0,189,255,21,248,59,253,189,250,230,248,103,246,244,0,218,7,185,246,191,244,237,2,168,13,73,2,57,3,190,254,198,255,187,10,226,248,142,1,221,243,132,251,88,246,233,243,21,243,1,5,148,8,102,6,149,246,168,13,192,245,195,9,200,12,95,245,54,243,216,2,92,252,56,13,250,248,143,5,209,252,191,8,63,244,156,254,208,9,155,255,217,246,149,6,140,2,19,11,252,1,130,8,171,1,90,6,80,11,144,5,115,10,150,251,40,248,120,254,202,252,249,13,131,10,132,12,132,13,98,11,32,9,100,252,51,249,121,249,130,3,58,2,213,1,2,250,60,245,18,255,44,251,206,255,200,13,109,254,198,2,34,0,54,254,238,249,4,10,61,2,230,254,155,6,79,8,217,249,38,9,124,244,22,0,95,2,141,242,48,251,119,13,170,246,164,4,226,13,194,4,78,6,103,255,174,5,29,254,39,253,20,9,196,254,240,244,93,5,70,7,115,6,98,5,66,9,174,254,216,243,50,3,50,249,68,247,223,248,126,254,24,243,130,248,215,13,85,250,69,12,113,3,16,9,185,249,60,0,93,13,126,13,136,13,79,249,221,12,136,255,216,0,214,0,209,3,230,11,27,2,30,5,216,0,93,248,41,11,134,3,142,245,114,9,149,248,57,251,74,7,157,242,18,250,136,7,73,4,2,10,6,11,193,8,34,255,143,12,222,253,194,245,12,13,7,0,135,8,209,248,30,249,170,249,201,12,61,8,169,243,55,255,0,254,80,1,216,7,173,7,6,244,101,8,183,253,40,2,66,7,217,13,97,255,12,242,117,251,11,10,128,242,45,245,149,242,96,249,252,9,84,2,152,245,218,12,173,1,219,7,215,1,240,4,136,252,146,4,136,12,179,9,189,243,140,9,84,13,60,7,134,0,233,245,68,249,63,252,57,246,238,246,249,254,60,13,4,244,76,253,151,6,62,13,141,248,50,252,37,243,57,5,215,249,147,249,225,12,224,243,135,247,58,248,96,247,180,2,23,1,24,244,205,5,14,244,196,1,11,254,181,244,131,2,81,251,126,0,3,244,243,246,142,0,143,2,245,246,252,252,76,253,12,253,155,244,166,246,248,253,144,255,3,3,36,4,78,255,44,242,97,249,138,1,164,8,201,242,72,252,29,0,254,241,241,254,70,253,79,255,27,11,239,2,74,3,203,10,123,250,122,1,33,254,205,255,236,252,12,5,197,9,254,0,208,242,63,253,1,248,96,248,108,245,30,9,117,4,82,7,171,248,56,253,212,244,232,252,189,0,220,2,94,4,227,3,35,0,222,246,66,254,12,4,73,247,87,246,222,6,105,244,204,252,68,245,44,243,218,255,167,9,133,249,97,247,192,13,174,11,87,253,72,253,251,251,144,245,29,254,178,7,131,252,39,246,191,244,116,255,145,246,78,251,185,243,31,251,12,248,218,3,67,2,110,246,49,253,76,3,125,255,150,10,91,248,16,8,27,251,182,246,89,248,62,10,30,11,127,13,51,243,15,250,213,10,54,10,245,1,87,252,230,253,207,9,190,1,111,248,210,12,61,0,216,252,51,1,182,250,193,252,62,8,33,242,239,246,169,255,202,13,19,251,250,5,97,252,98,6,175,9,183,7,47,246,252,247,193,11,244,243,207,247,180,242,87,252,138,11,48,253,182,2,102,9,166,9,223,4,203,246,102,248,52,250,73,4,99,8,178,5,9,2,232,252,6,7,181,2,58,8,33,9,97,254,44,253,95,249,57,11,30,7,99,251,31,244,22,8,23,4,220,253,10,249,60,250,24,2,57,9,95,1,224,253,106,244,118,8,78,9,253,3,219,252,68,245,99,252,65,4,70,10,214,245,84,3,158,1,58,8,76,250,216,245,219,9,42,244,149,13,167,5,230,2,254,0,162,254,34,8,173,11,251,244,135,9,182,245,36,249,52,243,80,13,228,3,61,250,23,0,100,245,19,13,222,245,202,4,93,4,147,3,127,254,101,243,192,242,187,0,66,251,178,245,185,250,255,252,150,243,57,5,85,10,20,255,2,242,112,254,51,13,174,252,235,245,69,12,236,252,51,9,203,4,77,244,177,5,58,7,189,247,198,254,21,249,75,248,227,3,123,7,245,3,196,13,244,7,9,255,180,248,84,9,121,10,36,5,34,5,1,5,160,252,89,4,189,13,13,0,143,242,144,251,114,11,110,4,31,244,171,0,100,10,243,8,228,245,113,3,134,242,79,6,168,251,222,0,243,253,107,252,223,247,185,13,65,247,204,1,187,1,251,8,211,244,35,250,32,243,175,249,41,251,15,244,186,244,94,245,36,243,199,9,104,243,50,255,2,10,99,9,48,242,54,4,3,11,138,245,110,242,218,6,10,12,10,253,213,11,76,245,243,252,43,3,187,12,94,244,159,5,221,254,226,12,158,5,48,243,150,12,158,2,81,248,50,12,87,8,81,250,123,2,166,243,71,253,46,245,43,247,165,252,45,8,255,4,220,9,119,252,126,250,111,255,26,254,151,11,38,243,224,5,130,250,223,8,153,246,106,249,138,254,219,245,70,245,71,252,229,250,169,253,190,12,219,247,63,8,146,0,91,252,159,8,227,247,120,253,188,242,185,0,206,250,255,244,231,248,228,249,1,252,50,250,60,7,64,4,19,247,5,255,178,6,70,11,51,248,207,254,165,254,2,14,34,254,154,7,43,248,101,250,177,1,166,248,100,255,199,4,11,2,177,0,231,247,20,245,237,4,246,9,198,254,176,253,32,249,11,248,95,9,174,12,56,242,91,255,154,243,140,7,180,3,92,5,52,6,138,3,245,0,9,9,69,250,230,249,157,1,225,1,56,251,22,246,0}, {72,253,67,6,184,242,113,11,24,249,230,255,235,1,13,9,145,245,166,9,83,11,201,250,209,11,136,1,168,0,90,244,117,244,245,1,134,247,153,243,158,1,56,2,212,250,58,11,79,8,119,8,89,243,49,2,40,244,18,10,37,6,105,4,119,252,72,7,33,248,99,4,253,0,229,249,19,254,92,255,45,245,122,0,253,7,240,7,112,3,51,247,131,250,96,243,180,243,151,253,219,0,212,5,241,253,60,252,150,6,165,4,11,249,84,2,193,1,61,249,182,12,200,5,87,250,43,255,230,2,140,7,214,243,123,1,239,251,71,4,35,6,127,12,42,242,34,12,97,3,86,250,89,3,24,6,201,254,228,244,31,5,132,10,58,252,97,10,10,247,230,247,78,4,30,255,182,13,178,6,255,13,89,10,70,244,98,11,17,254,188,8,157,251,231,246,11,243,50,244,30,2,76,5,43,245,246,9,106,7,68,1,140,255,188,6,214,249,57,6,202,244,3,3,230,9,21,250,209,12,221,247,188,9,186,254,110,2,110,9,175,245,81,4,201,242,139,243,205,5,71,242,29,255,177,246,205,1,164,255,159,250,6,1,174,11,30,3,216,251,124,247,218,13,42,8,99,11,225,6,164,254,56,0,255,1,86,7,101,8,218,10,4,4,123,0,170,244,13,8,81,245,211,9,123,3,133,248,143,10,119,6,61,12,159,12,194,10,201,2,251,254,227,2,214,246,76,249,91,10,223,245,46,12,186,2,40,254,78,13,51,242,182,12,5,10,141,245,83,242,81,6,3,3,16,247,244,13,135,2,235,249,15,248,165,10,65,255,218,251,152,248,179,254,166,6,11,13,169,251,50,242,171,13,53,252,255,244,187,254,90,2,40,253,60,242,109,254,56,9,118,4,69,12,86,5,146,3,30,4,175,12,216,253,101,8,180,0,197,2,108,3,186,246,246,254,184,7,166,248,103,11,188,1,148,11,101,244,72,13,158,244,204,10,119,251,123,255,8,8,216,6,200,11,180,8,59,247,232,243,227,6,5,5,123,251,52,3,175,13,174,246,109,249,22,4,201,243,51,5,176,8,152,243,123,11,243,5,99,5,160,9,148,13,136,248,113,0,16,1,156,242,146,1,157,243,0,246,55,10,136,6,72,243,185,6,167,1,242,251,241,246,59,5,87,243,176,0,128,2,234,244,92,242,100,254,78,6,170,243,140,10,69,247,192,2,99,4,68,250,72,249,118,2,241,6,205,5,251,245,146,253,1,13,5,251,64,242,16,254,171,244,35,3,213,248,254,10,63,249,105,249,71,1,79,12,150,252,94,242,182,6,104,253,248,12,12,10,4,254,180,2,60,255,165,11,172,255,236,243,53,13,149,1,87,10,20,243,116,251,220,243,136,5,94,249,175,2,47,248,91,1,240,255,38,251,100,0,121,248,234,6,43,246,102,252,237,253,247,244,196,247,14,243,185,10,206,8,126,3,163,250,87,10,201,243,231,249,130,1,154,10,80,4,82,9,39,4,5,8,2,0,116,243,130,250,177,0,25,251,216,242,142,251,172,249,54,247,132,245,63,250,57,244,92,13,209,6,5,7,158,1,8,250,109,4,31,11,186,9,213,247,58,12,255,255,253,12,8,244,223,0,207,1,169,9,121,7,183,251,63,3,44,3,76,248,138,10,136,3,32,7,216,254,181,247,126,11,54,255,114,7,131,245,83,2,110,255,233,245,224,2,34,1,140,13,252,247,238,248,69,248,147,242,122,8,119,249,193,11,132,250,253,252,83,243,25,2,130,12,31,247,97,252,67,248,191,4,218,251,132,246,251,242,147,252,73,1,218,254,244,6,113,242,70,10,47,5,162,2,70,245,128,3,0,243,108,1,132,250,49,254,117,1,128,6,183,248,238,5,138,13,118,13,231,246,191,249,17,4,123,248,169,253,107,11,22,251,111,5,23,251,244,6,68,13,182,248,67,11,44,251,195,250,48,250,217,243,251,8,23,249,24,254,25,254,251,13,127,246,16,244,219,244,57,255,176,247,64,247,224,244,78,243,68,6,1,247,130,242,235,9,131,246,25,253,75,12,179,5,229,5,106,7,76,1,85,248,91,242,54,11,255,249,159,7,43,6,25,254,72,11,128,5,158,246,144,10,93,242,133,250,216,246,36,4,68,12,144,242,147,249,212,249,196,243,201,8,133,5,89,10,107,255,141,250,235,11,60,245,38,7,172,1,121,1,186,2,255,246,237,3,103,250,107,243,211,10,128,251,221,252,119,6,223,255,75,250,132,244,83,4,22,250,65,11,251,253,250,243,235,11,79,246,145,0,240,12,137,9,53,2,223,248,175,242,129,247,26,9,2,9,20,250,75,244,171,13,227,5,110,250,123,9,96,247,219,248,93,252,16,251,228,5,81,0,132,0,239,247,253,241,157,252,244,254,247,252,69,248,140,251,9,2,99,251,112,250,182,252,51,11,56,249,1,8,112,4,53,13,244,12,48,243,25,6,148,2,236,7,136,1,28,0,46,5,87,3,236,2,52,12,218,253,144,254,170,244,56,11,144,243,15,242,208,11,63,1,166,13,98,255,0,7,155,249,156,11,230,12,208,7,117,10,235,246,247,12,29,1,80,243,170,4,60,251,88,4,140,1,153,2,241,251,188,5,185,245,195,4,229,243,39,4,95,2,233,248,25,246,126,13,213,246,20,12,66,246,27,255,184,12,146,253,186,249,108,243,154,3,197,11,132,249,138,254,254,255,97,247,246,0,215,255,152,243,10,255,81,2,239,4,113,249,52,9,18,9,194,10,75,13,141,8,224,1,162,12,249,247,180,12,8,246,56,3,104,1,201,248,175,7,68,244,206,6,146,8,142,8,227,254,229,252,84,8,164,255,187,4,87,247,208,245,88,2,131,10,224,247,88,247,6,8,222,242,44,3,63,255,212,2,152,7,36,6,54,1,16,13,147,3,88,10,153,10,68,7,197,250,201,252,140,255,88,246,13,254,36,255,74,10,130,7,61,12,58,2,200,254,22,7,102,246,167,7,164,250,20,244,11,243,84,13,178,0,210,252,170,10,118,6,205,253,137,249,168,6,207,252,192,6,78,0,186,11,76,3,201,0,95,12,3,255,36,243,176,10,53,10,189,249,108,244,78,248,59,13,129,254,227,1,6,242,208,247,164,248,48,248,178,248,9,252,92,245,231,248,70,252,60,4,251,250,200,249,202,1,80,6,38,246,59,245,240,6,87,9,152,244,64,249,4,12,144,247,35,12,52,244,97,3,221,252,176,242,203,5,110,252,249,246,252,10,40,7,213,9,66,11,93,252,73,255,237,245,63,250,10,1,124,244,144,9,61,252,18,251,135,250,248,13,110,245,220,10,72,248,154,5,64,244,44,9,49,245,100,247,145,4,149,7,159,244,108,8,83,9,226,246,137,4,13,253,156,9,233,4,62,5,105,249,250,1,225,245,11,242,238,248,41,253,136,6,191,255,72,245,138,3,133,251,33,10,169,242,175,4,110,4,126,13,124,255,6,245,25,7,176,251,154,249,19,6,179,244,55,255,68,7,171,253,104,10,46,252,203,245,24,243,228,10,134,10,237,254,126,12,7,248,83,4,183,12,14,13,228,247,128,253,90,10,139,242,10,12,103,254,158,243,54,2,156,9,91,6,18,248,41,7,235,243,45,9,78,250,34,4,9,249,199,11,195,246,67,255,139,12,71,246,109,8,88,4,16,7,140,247,143,249,124,8,220,7,140,10,128,250,109,253,44,242,212,13,58,7,174,4,158,247,70,6,45,0,224,7,21,6,229,10,150,247,220,252,72,4,241,255,254,6,101,2,177,9,65,6,253,248,98,5,2,9,39,13,134,246,69,242,126,248,108,255,211,13,120,7,71,249,196,248,36,0,207,249,129,12,123,248,188,3,150,1,27,7,243,247,74,248,103,4,38,244,139,245,60,255,72,242,201,5,222,13,78,253,27,247,119,6,203,1,253,243,76,245,36,248,54,7,67,3,117,5,75,252,23,12,195,1,175,253,62,3,244,7,159,8,180,8,115,12,195,6,133,7,18,251,144,252,10,252,169,254,68,248,75,3,133,255,224,0,27,244,42,252,170,5,71,13,35,11,66,253,239,11,204,251,171,12,201,254,250,8,152,253,14,253,72,10,39,246,177,250,100,246,25,248,243,253,228,12,217,11,91,7,90,245,161,252,173,6,54,6,140,6,108,245,225,250,169,246,158,9,26,9,32,243,153,10,24,8,191,6,154,0,86,243,12,255,199,247,60,254,28,8,201,13,237,251,78,245,19,253,70,2,219,254,29,251,78,8,168,243,60,254,17,8,54,2,125,244,1,14,109,10,224,8,146,242,64,245,86,245,81,8,49,247,178,9,207,251,50,0,243,250,51,13,188,5,13,6,210,10,196,6,56,254,95,246,120,2,21,7,129,3,174,243,101,248,120,242,9,247,233,1,204,8,173,7,40,9,61,3,37,8,78,0,178,6,81,6,113,255,17,242,135,250,145,246,204,248,98,244,100,8,192,252,0}, } ; static const unsigned char precomputed_core_invsntrup1013_n[precomputed_core_invsntrup1013_NUM][crypto_core_INPUTBYTES] = { {108,114,20,187,202,219,118,144,255,167,28,171,128,150,70,222,212,71,158,210,118,181,162,180,45,205,168,149,110,65,15,204,234,83,186,68,59,120,70,38,119,55,92,116,91,11,152,21,54,160,73,137,140,182,244,108,86,242,48,123,190,96,17,86,247,110,203,241,127,57,45,214,33,23,36,174,1,187,239,110,117,218,126,137,225,238,125,74,204,236,149,201,86,220,77,237,4,75,132,166,179,12,184,125,210,74,222,247,1,142,44,41,93,63,156,177,86,199,84,215,4,161,245,99,61,221,1,128,60,191,123,34,10,214,138,173,215,62,147,194,111,184,88,216,216,33,218,129,145,109,113,169,238,14,145,233,82,212,13,138,133,223,28,125,55,19,232,179,231,36,168,192,47,254,174,95,139,161,176,181,236,91,127,118,165,58,69,188,14,84,132,37,165,213,11,242,204,128,66,37,46,191,4,48,164,142,71,183,63,153,148,224,234,84,208,247,252,136,249,141,167,245,43,162,110,218,59,130,82,55,167,69,23,84,130,94,158,215,207,45,234,69,13,20,187,227,192,79,211,145,247,72,221,186,78,65,143,201,9,167,47,132,184,169,87,205,8,247,31,34,54,1,97,169,136,231,21,152,225,1,203,145,106,223,53,255,219,34,112,66,179,172,104,236,210,176,172,7,45,24,152,72,127,142,189,86,133,3,137,111,90,86,54,92,238,111,154,226,242,184,165,161,3,62,240,203,183,135,102,132,117,140,220,38,46,193,52,201,194,141,170,112,125,158,145,38,193,176,208,44,13,175,47,150,23,84,86,15,111,63,143,225,82,240,41,96,215,72,27,87,136,21,160,126,237,201,179,239,200,178,245,237,144,255,21,227,154,23,70,131,73,168,181,36,190,141,188,234,181,48,219,10,183,70,180,229,88,121,249,18,65,4,15,135,185,0,226,148,167,170,81,67,23,112,211,84,64,193,53,141,77,166,112,254,228,17,203,144,220,125,100,43,82,12,106,193,73,22,222,152,72,66,27,91,76,67,126,193,71,187,209,31,245,168,202,50,153,8,22,246,151,3,176,247,171,164,229,142,202,68,89,28,10,233,106,130,84,251,94,23,134,27,67,13,152,206,174,62,17,242,251,148,138,244,173,51,69,76,141,140,49,255,67,149,202,17,194,14,211,42,114,187,128,163,183,119,208,56,132,148,173,240,52,79,88,207,236,20,7,35,22,113,25,163,4,215,250,241,183,160,206,71,215,62,121,107,238,162,64,83,111,184,10,247,37,207,110,194,55,185,40,70,58,130,142,123,242,166,19,186,67,132,138,16,222,28,63,255,71,212,204,240,19,65,226,128,180,53,125,16,100,36,177,62,149,223,21,12,225,143,205,45,214,245,198,180,206,183,86,35,44,75,133,143,114,185,191,188,148,146,44,72,11,227,46,212,156,0,130,41,148,140,172,120,41,197,255,14,129,137,66,14,34,229,182,78,248,155,69,224,238,115,163,91,78,2,134,212,148,214,12,4,214,103,129,156,37,92,47,130,88,93,21,224,59,190,35,128,237,228,102,155,203,122,195,121,62,233,81,195,184,58,209,35,0,43,150,198,86,241,10,244,65,213,164,72,48,232,89,41,229,237,235,231,108,243,2,97,12,114,104,80,216,122,225,106,138,206,150,255,100,88,230,177,218,16,254,226,255,55,102,142,112,185,207,224,181,26,248,170,163,23,73,53,95,146,169,75,121,192,45,209,190,153,9,129,64,112,172,239,80,89,201,119,179,205,120,67,49,228,181,208,75,54,87,137,28,64,198,40,75,23,158,66,77,84,178,91,145,68,142,113,188,129,2,21,117,0,94,177,101,201,195,133,152,163,6,113,91,38,148,54,37,35,220,69,225,255,97,62,206,78,47,231,24,237,233,198,137,13,123,247,248,132,138,162,96,194,208,13,72,214,182,207,180,111,192,231,10,189,4,142,173,78,111,125,65,129,73,53,160,3,164,119,6,236,98,87,17,124,45,195,28,117,208,91,225,149,51,160,44,225,155,174,137,72,8,111,92,236,209,142,103,142,45,142,95,90,142,197,38,240,254,66,232,48,210,173,103,23,78,13,106,109,161,10,129,134,131,170,241,45,14,67,39,249,108,209,132,1,53,179,204,215,4,53,116,152,205,192,67,165,242,82,131,188,147,154,173,26,172,73,43,17,253,226,23,55,144,114,201,49,215,99,182,187,159,7,39,79,99,78,237,235,195,128,186,39,250,121,198,67,91,60,136,104,43,0,199,157,129,51,75}, {208,88,175,231,161,20,174,219,182,215,63,140,168,127,184,60,86,24,189,49,70,186,163,115,212,143,197,56,78,41,112,165,220,118,39,144,126,231,224,234,249,139,181,115,79,171,161,195,17,132,207,96,221,120,253,85,42,234,142,12,138,78,199,128,1,15,2,241,141,46,47,249,7,222,148,133,55,76,5,16,229,95,23,71,72,76,74,28,103,34,163,150,173,175,75,101,224,146,133,213,242,50,253,66,247,155,169,41,246,39,5,55,89,65,189,211,251,241,170,67,44,127,25,34,247,134,55,59,117,16,234,50,56,18,54,92,208,22,49,103,57,53,104,248,193,135,161,173,225,244,94,93,213,183,54,219,65,144,8,236,206,162,241,179,55,181,172,195,72,89,228,131,220,36,9,112,113,234,76,60,246,19,64,171,179,28,92,161,14,21,148,138,214,27,232,7,226,105,48,91,186,132,211,161,101,216,135,43,152,147,179,234,162,63,22,138,3,10,121,151,14,7,242,35,117,171,116,135,89,52,184,128,17,142,44,60,18,140,148,82,155,131,88,232,115,3,65,240,47,105,185,184,150,75,129,170,32,188,244,234,163,197,35,158,178,4,18,51,204,2,173,136,118,200,153,192,66,105,189,174,160,98,147,247,111,80,173,88,115,19,161,5,83,206,182,10,48,95,32,41,67,141,182,176,158,90,139,39,51,148,68,157,156,106,184,243,167,167,133,228,73,194,89,29,73,124,202,85,70,60,153,231,64,206,239,92,141,93,23,194,85,128,84,8,161,252,39,1,76,140,132,92,224,216,180,238,37,73,211,64,11,186,211,77,35,127,255,4,19,2,41,83,207,112,129,163,147,17,75,229,183,79,211,144,230,131,98,253,91,143,85,242,3,228,72,78,133,205,111,177,164,243,147,185,19,116,77,162,132,36,88,167,233,99,130,80,225,225,234,162,232,206,46,236,148,196,215,114,112,107,127,111,203,177,224,4,187,46,146,170,68,100,184,234,13,191,155,34,244,198,116,236,138,190,204,90,121,28,74,115,136,34,228,167,35,131,17,98,18,109,228,210,7,96,247,77,4,208,93,250,74,103,91,46,17,214,12,148,4,16,160,213,25,83,116,168,243,213,129,36,183,197,230,150,242,80,95,137,228,60,228,81,133,43,60,171,141,198,43,102,2,209,228,240,160,101,235,111,208,40,61,6,66,140,0,185,216,251,30,201,230,53,12,79,78,27,72,13,234,239,89,131,117,4,44,205,173,190,179,152,4,124,43,15,205,115,102,41,56,22,179,115,51,75,20,153,241,172,103,115,59,182,230,72,52,31,196,25,97,203,28,124,1,170,21,7,106,187,203,29,129,92,11,147,112,211,245,117,50,121,203,147,214,98,230,73,133,216,89,148,138,174,7,150,41,147,122,79,110,247,188,164,72,152,197,139,26,189,116,222,100,66,9,131,233,78,155,193,225,155,170,137,104,19,165,169,1,51,78,83,171,207,254,100,78,137,8,68,61,101,242,161,5,37,0,117,7,79,220,11,226,42,5,99,150,149,133,213,186,37,81,30,55,130,72,32,171,184,53,125,12,5,9,229,243,130,27,16,21,41,29,241,48,57,171,75,29,164,101,7,8,140,239,7,239,192,117,86,219,27,76,185,160,215,86,119,31,198,209,151,56,32,112,158,103,114,117,229,181,13,30,38,214,133,54,253,251,73,42,186,208,54,32,168,120,56,15,228,104,66,231,250,83,65,71,219,84,39,245,49,167,52,251,168,251,119,147,66,135,83,248,236,209,139,200,180,84,224,188,236,61,138,87,65,47,161,174,50,43,1,112,106,116,128,158,88,150,64,29,177,60,204,153,201,174,223,136,184,76,212,211,230,217,202,209,181,21,57,133,185,246,111,154,58,90,82,7,0,57,144,243,228,227,104,164,82,197,51,150,149,163,35,161,238,63,251,104,205,43,232,252,140,68,11,50,250,173,186,247,13,112,170,219,37,220,184,17,7,103,74,222,199,75,173,92,213,127,242,92,173,199,171,234,184,144,64,146,161,247,173,171,58,212,121,26,196,181,10,74,228,105,181,71,198,146,71,49,118,21,245,238,77,8,125,62,166,105,204,234,157,198,240,126,99,249,49,135,251,215,242,0,160,123,42,212,174,176,185,196,245,36,95,110,250,137,246,133,26,183,85,110,40,131,75,14,71,171,100,229,89,48,244,133,24,50,134,47,139,34,216,195,181,172,10,186,88,133,22,49,170,33,247,196,130,200,192,142,128,176,30,100,37,254}, {151,188,187,37,78,109,93,166,147,77,226,175,181,188,225,153,53,50,99,31,180,174,186,177,111,134,92,201,117,25,110,230,221,127,247,161,213,247,207,136,248,202,139,131,250,252,178,251,244,54,59,1,33,45,98,5,174,29,35,255,107,54,186,131,81,244,220,24,63,253,249,141,69,47,216,106,187,178,181,152,112,1,58,198,91,14,80,130,199,84,84,12,193,72,44,13,15,73,172,208,152,74,159,0,54,198,70,207,173,212,26,235,153,93,216,192,56,245,149,116,148,136,201,65,74,150,78,40,115,73,37,71,136,42,142,158,171,230,223,0,49,182,9,107,3,226,145,30,179,142,14,140,180,21,63,190,229,57,125,87,39,152,187,195,196,209,79,36,173,111,54,191,57,163,69,190,202,161,135,163,192,90,31,224,144,107,172,118,135,213,61,227,112,184,185,68,148,173,230,186,158,99,14,113,135,63,104,204,237,0,161,147,183,59,61,100,25,54,95,210,210,214,194,178,251,43,168,148,155,237,78,117,155,174,37,119,225,57,253,59,122,221,132,113,111,142,154,167,61,39,160,39,235,40,152,50,66,35,209,118,226,160,110,93,40,93,208,123,15,233,181,14,254,41,243,255,53,177,178,55,203,185,117,192,7,8,225,153,24,181,158,94,23,250,166,95,31,244,197,8,126,16,10,87,7,96,73,199,242,214,53,40,53,246,231,62,12,226,114,247,152,85,234,16,166,164,248,85,203,116,27,29,179,144,43,44,159,39,222,167,239,207,220,122,38,239,190,172,240,152,162,19,159,176,111,248,182,233,177,186,40,14,144,67,97,127,153,229,22,103,250,95,171,254,180,133,235,47,41,14,159,63,205,162,31,236,247,67,123,201,105,46,245,203,218,132,30,21,199,81,134,218,249,96,75,166,218,28,2,13,249,185,164,31,82,184,48,208,32,91,111,247,71,65,220,210,229,111,221,92,77,26,237,238,84,146,234,117,99,100,105,0,89,51,119,98,133,1,180,183,155,193,107,169,211,87,153,218,211,31,131,42,177,164,128,183,106,255,97,174,196,95,136,126,207,42,0,153,7,75,36,64,73,150,124,229,14,223,224,26,62,225,149,126,15,250,108,51,115,35,32,214,166,209,237,14,246,45,186,94,158,117,82,185,200,103,188,3,75,137,96,185,162,39,232,112,250,235,201,241,42,4,63,78,207,51,127,77,211,195,13,100,128,155,173,136,58,9,12,200,247,88,95,138,168,215,31,87,101,91,214,19,210,143,240,40,214,87,147,234,65,253,54,146,205,14,141,210,98,247,3,80,196,177,98,173,142,220,29,228,208,29,111,16,44,219,88,16,224,47,143,173,238,253,35,80,151,83,222,126,80,76,165,0,168,108,238,125,46,153,254,202,32,71,142,124,42,106,214,38,78,18,118,180,191,249,224,209,80,190,130,108,101,239,179,89,186,99,18,219,218,154,172,122,110,167,21,72,64,244,122,74,82,110,181,139,194,238,231,64,170,107,107,118,121,186,211,187,180,25,173,130,48,84,199,32,242,248,216,186,130,83,148,15,170,45,26,206,129,165,162,3,226,226,39,150,203,197,11,194,189,30,10,194,196,210,97,162,49,52,38,236,196,4,66,101,202,101,36,173,178,177,92,63,49,81,243,36,126,232,232,38,41,63,103,102,217,168,54,161,190,230,175,132,132,51,155,44,141,25,13,24,119,176,201,193,71,232,254,113,87,59,247,193,251,142,231,149,48,50,36,228,196,63,2,100,125,42,245,172,180,41,64,147,83,199,16,68,91,121,246,93,10,11,100,108,25,84,43,131,75,183,184,161,127,152,109,89,181,240,213,50,186,102,170,179,146,112,111,181,118,235,76,70,80,9,114,141,104,145,48,199,14,214,159,118,25,246,26,68,41,125,246,16,170,40,134,241,202,59,231,68,235,146,88,170,78,121,126,211,213,41,106,246,54,156,232,249,92,187,120,23,213,248,155,125,98,77,213,99,32,187,147,49,22,90,59,109,208,31,229,96,83,232,154,95,216,9,48,143,74,61,199,102,197,53,55,190,136,225,164,110,81,8,69,90,168,211,22,228,18,162,49,135,202,133,231,231,104,46,223,99,200,120,123,12,109,234,39,84,83,166,98,88,106,119,23,164,239,254,2,112,4,251,126,229,9,209,237,66,135,150,46,76,119,185,207,171,146,159,116,118,224,18,188,59,249,58,20,131,105,149,144,90,191,120,157,28,229,242,66,131,66,240,245,124,47,61,187,217,133,245,163}, {216,56,210,195,158,188,225,37,150,135,51,148,199,218,157,6,62,193,250,186,40,255,46,92,100,169,137,77,81,32,48,58,142,2,230,230,107,178,34,70,73,39,108,172,167,86,145,155,68,75,205,156,0,33,26,68,73,12,65,71,17,54,202,78,110,174,88,62,188,34,49,9,91,180,212,69,165,69,143,228,21,167,60,220,58,63,83,111,204,230,173,5,173,67,109,127,49,232,199,197,183,170,71,31,179,127,101,118,37,111,154,238,207,216,59,40,195,2,246,229,85,12,60,198,101,111,65,9,196,41,32,12,10,165,155,173,194,64,247,166,185,221,244,246,213,116,18,185,31,16,73,83,114,161,68,67,29,99,139,81,26,71,87,165,73,174,165,151,33,38,91,233,60,154,66,213,66,58,3,159,141,220,46,224,55,31,57,107,163,126,134,58,52,215,54,32,35,46,15,217,50,64,231,205,55,86,97,126,39,181,28,85,170,161,6,54,237,94,166,207,3,217,206,85,154,224,113,209,125,211,227,115,222,147,197,115,226,131,11,227,45,238,171,41,14,17,68,186,126,60,152,114,250,83,49,135,232,201,116,2,118,176,231,16,235,56,120,45,42,159,69,193,18,122,244,187,212,255,61,84,206,33,134,151,173,153,102,150,100,178,146,123,216,173,249,252,79,147,252,225,49,222,238,170,47,60,103,167,126,7,183,234,114,88,135,97,18,119,151,139,140,179,245,124,180,65,191,123,191,247,102,247,156,83,59,62,134,248,210,63,27,10,205,42,211,28,209,176,97,33,218,22,161,99,80,55,117,211,168,125,25,190,6,195,102,86,251,92,192,45,165,67,68,224,172,173,150,231,169,109,131,158,31,23,130,237,111,57,151,234,223,213,245,96,96,124,212,130,186,64,189,38,109,55,88,216,104,181,58,35,69,190,154,148,58,16,251,230,209,240,5,38,28,42,192,189,92,220,149,77,236,90,199,93,115,203,160,254,7,75,200,102,11,246,193,214,108,173,182,251,115,135,15,114,44,85,205,244,63,140,6,137,4,71,132,78,65,95,168,144,45,189,57,13,187,104,209,19,64,48,224,130,59,197,40,149,137,204,200,32,91,2,148,6,113,183,31,107,191,34,132,40,121,77,37,134,45,95,53,39,25,251,143,201,17,190,118,254,239,159,102,47,211,143,31,202,183,52,149,74,209,220,97,171,56,166,57,226,115,76,29,63,99,85,134,45,72,168,7,109,185,126,91,219,227,95,201,133,97,77,110,34,109,96,128,228,63,219,41,26,14,29,149,195,184,51,87,231,100,143,72,40,179,109,48,89,161,143,50,224,121,64,74,224,92,69,80,216,112,248,184,121,64,166,90,64,191,239,140,56,80,176,29,185,34,48,26,4,122,202,99,250,27,129,76,242,126,80,151,27,168,193,132,77,61,17,141,203,158,73,81,242,76,88,82,85,235,32,208,78,216,133,15,137,148,97,29,99,129,170,126,246,9,141,20,5,8,7,174,108,190,163,152,49,137,15,23,207,253,205,218,119,94,103,21,21,195,240,198,234,239,171,89,191,52,57,128,36,46,199,19,18,25,192,88,169,12,31,177,18,13,193,239,126,6,152,140,154,239,107,93,169,25,43,205,13,192,25,209,194,72,3,59,192,104,175,41,50,229,224,238,8,14,8,70,1,234,74,74,105,80,147,130,2,70,239,227,106,144,42,220,153,6,20,246,166,142,53,13,78,243,110,78,131,231,46,195,103,64,146,28,10,200,245,166,28,37,27,140,239,230,145,194,117,88,146,91,109,116,227,201,212,120,59,246,97,184,143,255,112,106,128,101,28,158,177,236,215,151,197,165,160,206,39,25,45,145,7,187,139,217,61,196,217,115,149,241,134,92,172,252,61,94,125,230,22,5,178,49,74,145,103,233,17,70,183,115,32,185,133,239,56,96,118,189,152,225,246,248,161,77,151,116,239,231,245,204,238,38,206,34,209,151,7,69,245,236,63,42,22,11,190,24,217,94,30,166,128,236,99,166,16,161,76,168,85,201,77,165,164,120,196,227,201,246,227,108,156,145,176,18,211,162,64,195,90,210,109,64,3,114,158,187,27,115,66,180,82,178,159,216,103,80,37,230,247,214,44,252,120,75,147,17,252,40,130,112,113,146,189,229,18,140,135,20,0,140,44,164,107,99,167,127,25,190,67,95,65,135,149,163,2,34,134,95,79,56,165,187,87,67,212,2,153,41,230,94,32,128,205,197,241,224,179,81,76,188,61,143,4,212,7,119}, } ; static const unsigned char precomputed_core_invsntrup1013_k[precomputed_core_invsntrup1013_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_invsntrup1013_c[precomputed_core_invsntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_invsntrup1013_impl(long long impl) { unsigned char *h = test_core_invsntrup1013_h; unsigned char *n = test_core_invsntrup1013_n; unsigned char *k = test_core_invsntrup1013_k; unsigned char *c = test_core_invsntrup1013_c; unsigned char *h2 = test_core_invsntrup1013_h2; unsigned char *n2 = test_core_invsntrup1013_n2; unsigned char *k2 = test_core_invsntrup1013_k2; unsigned char *c2 = test_core_invsntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_invsntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup1013(impl); printf("core_invsntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup1013_implementation(impl),ntruprime_dispatch_core_invsntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup1013; printf("core_invsntrup1013 selected implementation %s compiler %s\n",ntruprime_core_invsntrup1013_implementation(),ntruprime_core_invsntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_invsntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_invsntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_invsntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_invsntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_invsntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_invsntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_invsntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_invsntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_invsntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_invsntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_invsntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup1013")) return; storage_core_invsntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_invsntrup1013_h = aligned(storage_core_invsntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_invsntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_invsntrup1013_n = aligned(storage_core_invsntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_invsntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_invsntrup1013_k = aligned(storage_core_invsntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_invsntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_invsntrup1013_c = aligned(storage_core_invsntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_invsntrup1013_h2 = callocplus(maxalloc); test_core_invsntrup1013_h2 = aligned(storage_core_invsntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_invsntrup1013_n2 = callocplus(maxalloc); test_core_invsntrup1013_n2 = aligned(storage_core_invsntrup1013_n2,crypto_core_INPUTBYTES); storage_core_invsntrup1013_k2 = callocplus(maxalloc); test_core_invsntrup1013_k2 = aligned(storage_core_invsntrup1013_k2,crypto_core_KEYBYTES); storage_core_invsntrup1013_c2 = callocplus(maxalloc); test_core_invsntrup1013_c2 = aligned(storage_core_invsntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_invsntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup1013();++impl) forked(test_core_invsntrup1013_impl,impl); ++test_core_invsntrup1013_h; ++test_core_invsntrup1013_n; ++test_core_invsntrup1013_k; ++test_core_invsntrup1013_c; ++test_core_invsntrup1013_h2; ++test_core_invsntrup1013_n2; ++test_core_invsntrup1013_k2; ++test_core_invsntrup1013_c2; } free(storage_core_invsntrup1013_c2); free(storage_core_invsntrup1013_k2); free(storage_core_invsntrup1013_n2); free(storage_core_invsntrup1013_h2); free(storage_core_invsntrup1013_c); free(storage_core_invsntrup1013_k); free(storage_core_invsntrup1013_n); free(storage_core_invsntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_invsntrup1277.c0000644000000000000000000017026614705505542023451 0ustar rootroot/* ----- core/invsntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_invsntrup1277_checksums[] = { "a76fff56bde559a7eae01add3f5446ce57238eb5d56a1ce04aba66fe8ddac009", "323564aa131a8f844bc99ffe99f5f151839729573c215eac12ddec35c3d4a721", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_invsntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_invsntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_invsntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_invsntrup1277_CONSTBYTES static void *storage_core_invsntrup1277_h; static unsigned char *test_core_invsntrup1277_h; static void *storage_core_invsntrup1277_n; static unsigned char *test_core_invsntrup1277_n; static void *storage_core_invsntrup1277_k; static unsigned char *test_core_invsntrup1277_k; static void *storage_core_invsntrup1277_c; static unsigned char *test_core_invsntrup1277_c; static void *storage_core_invsntrup1277_h2; static unsigned char *test_core_invsntrup1277_h2; static void *storage_core_invsntrup1277_n2; static unsigned char *test_core_invsntrup1277_n2; static void *storage_core_invsntrup1277_k2; static unsigned char *test_core_invsntrup1277_k2; static void *storage_core_invsntrup1277_c2; static unsigned char *test_core_invsntrup1277_c2; #define precomputed_core_invsntrup1277_NUM 4 static const unsigned char precomputed_core_invsntrup1277_h[precomputed_core_invsntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {35,244,137,1,79,2,221,242,2,249,116,249,226,253,87,250,171,253,232,10,56,1,193,2,194,243,8,3,91,250,255,4,47,2,193,4,240,9,251,249,241,0,229,1,162,243,34,248,214,242,7,11,25,8,53,248,183,8,218,4,222,5,192,244,81,12,135,248,66,0,104,7,51,252,220,1,164,243,1,11,194,247,60,253,165,3,79,15,148,248,197,11,141,249,24,245,150,14,84,9,219,251,255,247,223,6,197,2,11,3,177,2,133,6,209,7,45,250,214,254,44,12,190,245,133,0,55,5,90,250,156,5,15,253,206,255,220,9,175,242,59,254,58,14,137,252,133,241,70,9,235,240,158,3,144,254,214,243,202,6,102,242,66,12,87,245,149,251,75,248,71,247,244,8,200,13,171,252,21,250,36,241,179,9,219,0,127,255,165,10,20,251,215,2,161,10,244,6,9,255,25,245,19,9,111,8,219,241,224,1,27,11,198,12,22,13,45,2,184,248,81,3,168,5,190,245,224,254,164,240,206,246,115,7,249,247,25,248,120,245,209,250,254,251,128,243,60,246,101,3,205,244,133,7,199,14,32,249,218,12,222,255,146,4,8,243,128,14,182,247,110,11,98,3,76,7,131,252,150,242,59,255,29,246,62,14,86,10,107,241,165,244,56,252,103,241,51,1,180,251,127,4,238,245,109,14,212,12,119,248,9,13,115,255,73,0,53,254,23,10,173,249,217,251,7,14,215,246,203,12,32,248,103,248,32,4,155,2,14,242,11,245,78,246,141,249,112,250,245,249,178,251,231,242,30,252,131,14,30,249,14,247,220,252,78,253,241,8,59,250,107,12,163,1,35,250,166,253,43,4,162,1,193,5,73,248,155,12,138,3,213,11,131,248,207,8,205,249,165,241,150,4,247,247,33,6,251,6,126,0,126,1,90,4,47,2,130,2,125,13,182,243,17,3,151,1,234,252,81,242,184,1,152,6,35,243,242,247,251,243,5,15,180,248,50,6,174,241,85,247,163,11,105,9,2,253,56,6,47,11,169,248,17,5,254,240,128,3,102,2,131,14,23,241,19,6,234,0,151,6,46,254,247,2,82,0,207,253,153,1,12,245,214,252,165,3,171,12,202,248,204,248,250,253,142,244,147,8,53,9,105,246,127,3,128,241,87,241,47,15,210,245,160,7,18,7,109,241,160,247,164,244,235,255,157,255,252,4,103,243,18,254,152,244,0,9,153,9,83,255,170,2,190,240,211,9,23,1,21,3,143,14,34,241,159,5,7,14,134,8,30,245,247,14,80,5,39,254,250,254,173,247,83,242,230,7,6,9,89,2,176,245,56,10,1,4,135,245,190,9,149,8,118,14,74,7,10,10,74,244,152,9,94,249,95,8,60,250,33,243,3,251,22,253,57,11,197,248,34,241,165,9,87,252,239,6,213,240,112,6,8,251,248,13,134,0,219,249,236,6,8,13,245,240,34,14,125,4,220,249,74,10,230,5,196,1,114,254,246,243,249,8,231,250,42,249,235,243,131,11,83,10,10,13,253,244,252,255,156,245,154,1,100,2,203,240,215,10,234,243,53,7,124,1,208,3,76,247,150,14,87,5,169,4,105,251,104,8,180,10,184,250,169,253,185,254,198,4,149,11,53,245,98,254,95,252,217,250,213,240,142,4,34,15,217,5,255,0,98,7,235,249,247,240,128,244,68,247,89,248,83,247,91,11,221,13,145,4,145,246,156,12,13,8,136,10,242,14,69,247,248,11,217,243,95,247,255,13,91,3,224,253,69,248,32,2,168,255,145,14,188,14,202,14,255,9,247,5,168,0,250,13,128,251,225,7,134,250,106,246,231,8,224,1,203,245,224,250,157,242,86,14,61,7,30,248,207,248,112,253,205,13,198,242,103,245,15,247,213,246,115,14,152,11,66,246,185,250,15,10,118,14,139,7,54,253,250,252,137,248,144,255,168,246,146,3,248,251,164,245,242,240,165,253,249,240,196,250,93,241,95,250,53,245,183,12,42,4,241,249,225,255,216,14,41,7,70,14,94,9,121,12,22,9,103,248,25,8,119,5,224,242,255,248,54,3,89,10,42,15,208,7,119,250,223,7,244,10,227,2,86,250,175,247,118,243,22,14,162,241,238,243,51,5,17,250,189,241,149,4,13,11,11,12,123,2,159,1,119,242,108,10,61,13,26,252,221,9,126,249,241,251,232,252,109,246,150,252,118,241,142,247,90,8,58,244,212,12,124,13,253,247,220,10,172,0,170,255,214,11,18,10,193,240,225,240,8,252,252,7,70,8,12,247,189,2,186,241,159,253,253,250,91,4,187,4,150,3,216,10,14,254,155,14,143,1,218,252,129,11,80,10,52,250,15,13,77,247,175,247,253,247,159,253,97,242,165,244,193,248,96,246,84,10,55,2,155,243,199,248,221,251,126,255,139,1,68,255,252,6,68,244,123,242,52,13,135,251,2,10,217,252,155,251,223,249,237,11,189,246,186,7,212,12,172,10,193,246,119,12,41,243,103,251,242,254,2,7,99,4,116,12,99,8,248,0,123,5,239,5,59,243,83,248,208,245,233,12,37,252,77,7,38,13,23,10,56,251,241,8,173,242,3,3,84,6,113,3,242,251,113,9,210,244,146,242,219,2,21,3,132,252,97,255,85,254,229,251,55,3,203,9,217,6,216,9,130,253,56,3,42,4,165,10,47,250,157,245,199,13,228,254,78,241,225,6,107,247,99,249,177,13,42,4,175,5,105,2,227,1,143,246,32,252,235,255,45,242,64,252,155,254,192,7,187,246,78,10,179,9,105,251,183,1,78,251,67,253,235,243,221,1,198,249,162,14,204,0,211,4,124,250,166,251,14,246,29,2,34,251,171,13,10,1,156,9,189,247,240,248,88,248,221,10,196,249,222,254,221,9,216,1,164,253,199,244,6,8,110,249,239,1,41,6,174,8,73,249,61,251,228,12,13,245,108,250,45,243,76,247,153,252,193,253,214,241,219,243,4,8,100,246,31,244,0,13,8,7,101,13,105,252,165,1,21,250,135,251,49,6,156,244,66,246,88,2,192,10,234,243,0,10,8,255,168,245,26,7,17,1,133,241,114,248,68,249,140,11,97,4,9,254,3,245,24,14,147,3,17,15,127,254,185,252,216,253,172,243,152,252,65,4,219,4,176,249,133,11,239,12,29,255,15,243,144,11,72,5,155,254,137,10,2,248,102,4,84,249,179,3,81,11,3,247,45,249,27,7,121,10,181,253,88,5,15,241,164,1,86,14,84,14,223,242,154,254,17,251,173,247,151,0,204,251,130,9,123,14,106,7,214,251,98,11,56,254,69,245,215,14,33,14,208,4,46,5,156,249,17,253,157,252,8,242,30,252,9,246,222,12,38,245,254,6,8,8,51,248,58,241,120,2,54,250,191,241,118,9,217,9,190,251,136,254,70,251,71,5,48,0,82,255,108,12,93,246,2,10,121,12,208,254,30,13,68,245,118,243,238,8,198,1,147,246,180,246,11,12,162,3,250,240,79,242,87,0,104,243,61,246,28,13,144,245,41,6,158,246,48,244,238,251,103,244,112,245,123,253,100,251,31,252,92,10,97,5,183,250,247,6,154,10,64,5,64,9,150,245,8,250,125,249,34,9,139,8,115,6,182,241,223,252,60,4,24,241,36,0,24,5,194,242,9,5,55,6,9,11,217,1,180,246,206,250,143,248,5,254,102,248,248,0,22,247,95,15,130,0,215,245,43,252,28,246,93,248,188,250,118,7,60,248,168,241,20,15,155,245,92,14,94,241,52,11,213,0,229,251,238,3,128,245,224,245,15,244,3,250,216,250,100,8,77,9,220,4,211,9,142,247,208,6,39,11,210,12,181,250,192,246,19,255,122,242,57,245,198,254,234,13,46,14,156,253,59,252,7,244,61,244,96,2,182,255,217,8,76,253,145,8,85,250,73,1,73,249,211,13,93,6,2,249,15,3,252,252,132,9,192,2,66,11,121,6,140,249,73,248,24,11,29,11,142,11,249,9,168,0,86,9,179,10,72,247,88,250,213,244,41,241,16,2,99,249,192,254,190,242,252,247,99,4,127,5,173,242,199,247,199,255,56,8,144,14,46,249,43,248,206,245,128,247,117,12,224,248,251,250,177,0,65,248,113,242,2,252,139,2,113,243,172,11,84,255,95,249,78,241,250,244,238,13,78,246,209,240,255,246,225,6,186,8,132,14,78,11,160,10,86,248,50,251,16,0,251,7,166,6,226,244,70,241,121,8,127,5,248,4,131,247,174,241,169,248,199,2,254,247,68,245,45,4,200,11,33,254,238,7,124,244,72,15,108,243,2,12,170,3,111,0,94,14,13,246,193,1,182,5,49,254,113,249,237,10,186,13,149,9,43,245,224,7,159,255,192,13,54,2,158,253,25,251,69,11,84,0,27,255,244,8,35,4,10,0,152,12,6,254,52,13,36,4,244,4,167,250,42,244,242,9,127,250,50,252,146,3,66,2,24,241,47,253,52,255,17,243,117,9,150,244,111,4,133,11,127,6,31,15,182,248,209,251,178,8,102,253,143,2,199,243,137,241,95,9,248,244,142,4,227,255,46,249,226,241,66,248,254,5,217,8,21,243,43,6,68,11,160,254,7,255,231,247,40,248,248,5,47,3,212,252,46,12,193,7,162,11,206,13,85,4,250,251,179,247,251,247,196,241,193,249,144,4,38,249,174,0,253,255,183,2,72,13,22,13,50,251,0,246,92,252,188,253,144,244,195,240,144,241,229,240,43,249,252,241,42,241,146,7,80,11,162,2,34,4,38,242,174,242,239,12,179,247,234,254,246,254,111,252,173,254,176,3,42,242,104,6,140,6,126,0,86,10,53,252,209,14,42,11,242,13,93,248,212,253,181,241,7,254,231,2,240,9,38,1,34,255,232,7,168,13,4,1,243,3,78,13,224,254,84,11,216,0,78,251,169,241,236,250,11,254,42,254,208,6,89,6,95,11,28,243,128,242,184,11,136,245,29,7,40,243,199,251,25,246,44,12,74,11,39,2,252,248,22,6,168,255,209,244,169,250,103,248,207,252,126,2,31,8,53,255,203,8,175,6,28,241,226,247,64,14,8,250,56,2,106,4,201,241,152,4,163,247,240,253,252,0,216,240,125,243,152,247,87,245,155,253,75,15,80,254,138,253,33,248,33,248,122,242,51,245,153,243,251,5,134,249,156,255,60,249,168,4,171,13,203,255,152,252,112,13,197,12,113,8,210,2,39,12,186,242,114,246,72,7,184,241,12,15,126,9,133,1,91,1,139,247,165,6,31,250,160,8,139,4,167,7,247,252,153,8,48,14,36,12,137,1,115,1,245,246,166,3,68,0,158,2,17,251,216,3,12,4,59,241,196,11,184,9,199,247,230,7,120,246,79,3,96,243,225,7,178,248,167,249,173,11,42,244,50,2,88,9,104,250,110,7,173,247,106,254,1,9,48,6,30,248,6,8,36,249,104,244,83,12,118,255,76,250,145,246,182,1,112,245,89,13,229,6,3,242,197,8,6,2,108,249,159,3,126,9,2,243,66,244,192,254,83,0,237,253,172,10,80,0,40,12,11,254,206,254,231,2,10,252,35,253,191,10,134,3,233,246,11,9,173,242,167,249,230,12,128,247,186,242,143,242,201,3,90,246,208,241,217,11,2,242,187,13,83,14,11,3,179,246,105,243,74,243,187,13,164,1,185,8,0}, {100,252,164,4,182,241,159,240,57,14,251,3,5,10,235,13,37,0,52,254,188,2,126,254,15,11,124,5,5,1,65,4,9,249,126,10,82,250,14,11,158,12,211,2,151,252,237,241,21,241,249,251,101,3,83,10,167,0,218,9,62,14,168,250,42,2,185,255,70,8,199,251,135,250,7,5,17,252,90,12,205,247,224,254,1,14,66,245,91,10,255,243,30,249,119,5,17,11,31,9,33,247,193,247,208,8,135,10,97,1,109,243,109,251,73,245,88,3,235,244,33,1,199,253,8,4,173,14,163,11,87,5,161,242,77,255,4,13,29,4,14,12,234,5,32,253,141,254,243,3,87,245,130,250,239,7,253,248,175,250,113,10,209,251,101,10,177,8,220,14,75,245,191,250,37,3,12,251,170,13,25,241,99,10,250,244,41,252,124,10,24,245,179,2,12,7,226,11,148,12,84,249,148,9,12,250,106,11,68,12,249,250,252,254,85,249,54,250,170,5,97,5,228,243,202,241,109,251,70,252,151,248,206,248,210,242,180,240,61,0,55,12,122,246,15,9,187,252,86,10,215,9,77,253,233,5,103,4,182,252,236,250,90,245,165,250,172,14,207,8,102,255,250,240,7,12,213,13,210,0,59,10,4,249,152,243,232,5,127,14,155,4,107,242,45,248,104,248,6,252,148,2,138,243,10,12,206,253,101,11,238,8,146,10,166,2,235,9,245,243,36,12,116,251,49,15,191,13,40,255,57,245,17,15,89,6,155,253,53,11,249,245,176,245,235,6,60,4,186,3,143,8,220,255,166,14,68,243,6,251,16,3,50,0,233,245,138,242,105,247,172,240,64,253,112,0,170,240,216,6,245,10,34,252,135,7,227,248,56,9,12,243,212,240,213,251,92,13,236,241,239,11,59,253,163,4,206,245,223,12,15,242,174,251,181,248,211,14,52,1,89,253,30,254,127,12,24,242,35,7,221,253,137,12,67,251,41,15,112,8,213,14,96,6,83,249,123,255,74,1,43,5,170,11,57,7,144,4,238,249,66,9,34,14,102,5,209,246,156,3,3,254,181,251,109,9,57,246,175,12,148,241,226,9,146,245,185,11,75,254,239,240,153,12,188,2,152,2,53,246,192,250,46,251,152,246,120,247,70,241,13,245,226,251,129,3,50,6,38,11,110,10,19,242,77,255,245,1,209,0,57,255,170,254,149,7,127,5,13,12,194,13,130,254,137,7,193,243,156,9,186,7,38,245,27,6,107,8,129,248,137,241,3,6,85,13,111,244,106,4,69,1,47,245,105,12,17,9,139,250,178,247,246,8,234,245,130,13,248,13,227,1,43,0,154,5,33,14,218,9,153,6,234,9,192,0,35,2,44,5,47,15,29,5,127,246,63,2,76,5,55,4,97,6,187,12,63,8,73,8,171,249,55,15,218,9,23,0,242,0,119,3,62,255,120,3,241,8,57,12,156,7,160,251,210,2,145,8,36,247,51,253,85,13,126,2,107,3,255,4,106,0,133,0,66,247,51,244,82,4,34,0,83,255,189,249,27,243,255,247,81,11,219,249,208,247,223,14,74,8,212,10,110,243,35,3,114,250,129,14,153,254,145,14,168,247,54,15,245,2,0,253,246,248,93,11,188,1,167,249,138,255,229,13,42,3,253,1,246,4,55,248,150,9,90,248,46,247,121,254,97,247,45,253,22,15,141,242,170,254,32,247,82,13,26,15,111,12,254,9,21,242,106,242,63,12,153,0,128,5,180,247,228,7,130,244,106,255,199,248,133,7,88,9,130,7,132,254,34,13,219,242,106,251,98,251,67,242,151,6,149,11,99,10,92,9,87,11,134,11,73,245,71,241,77,3,68,251,221,12,118,11,162,7,72,252,198,241,18,253,167,10,28,9,60,5,196,243,136,8,234,9,73,255,182,7,70,9,51,2,138,5,251,8,105,243,18,242,86,6,178,11,198,244,181,11,22,4,212,251,167,6,180,9,109,252,70,247,18,3,73,255,62,251,59,249,85,246,174,255,242,10,0,10,98,1,211,243,178,242,218,255,242,255,70,7,57,250,27,0,86,3,192,240,33,249,50,242,65,255,83,9,21,244,121,242,108,247,189,14,95,251,118,243,208,4,174,244,182,10,119,241,198,249,63,242,3,255,41,250,211,245,92,1,212,251,201,246,28,14,76,248,2,14,187,14,78,241,239,9,62,4,7,243,226,2,86,14,110,241,13,0,146,245,77,10,177,5,166,251,9,1,225,12,88,245,36,248,93,14,127,10,53,247,23,252,179,8,39,5,232,10,211,250,255,241,100,246,12,246,115,254,41,12,46,15,108,252,87,253,148,243,219,250,197,8,149,249,138,5,157,0,96,246,224,6,213,246,67,253,9,2,242,254,52,11,21,241,179,8,153,248,180,11,64,9,168,0,251,3,58,248,80,3,36,3,83,244,152,11,38,252,5,7,196,250,228,245,100,246,222,244,19,2,34,245,213,12,235,13,65,246,31,251,197,4,223,243,88,251,95,250,169,243,12,12,170,248,43,243,197,241,193,1,158,3,189,253,96,2,82,9,242,10,93,251,33,11,125,13,67,248,220,8,35,241,29,2,56,0,84,255,143,6,0,247,33,253,26,251,55,13,140,245,90,251,117,243,68,248,191,240,97,0,193,248,14,8,53,11,244,255,201,0,65,248,148,246,192,243,87,253,71,243,237,7,114,9,121,8,69,242,119,243,190,250,168,8,159,247,206,1,224,6,115,251,81,246,204,2,5,245,181,249,114,243,188,7,75,13,197,0,66,252,250,6,74,0,28,245,202,246,118,255,29,246,19,10,181,13,20,255,221,248,87,243,218,0,85,254,85,11,233,242,8,242,117,3,249,6,251,243,247,3,196,11,203,1,240,8,80,250,32,14,195,13,226,241,229,255,70,251,176,249,122,6,179,249,95,13,47,0,80,249,246,252,190,11,114,249,245,13,190,255,175,249,159,8,169,2,242,2,253,253,79,241,31,5,129,247,193,248,249,245,182,246,112,245,103,244,183,252,120,2,107,247,181,241,246,0,20,3,30,254,144,7,124,241,57,246,242,255,171,250,189,12,120,13,164,252,29,246,28,255,56,12,159,14,126,4,193,11,81,250,32,253,102,9,164,8,111,12,178,240,74,2,220,5,65,13,224,7,7,7,54,6,58,252,98,245,69,243,179,12,141,12,55,248,64,250,117,12,202,249,203,11,0,249,9,246,198,248,16,14,161,9,161,251,66,0,15,243,152,250,184,243,198,245,204,243,240,3,2,12,84,9,217,243,90,0,122,14,148,1,191,12,91,249,188,253,136,12,249,242,17,8,31,1,56,242,136,4,204,246,254,243,201,250,209,9,106,1,220,4,141,10,102,14,113,12,175,244,145,0,207,12,56,15,189,6,26,243,119,246,198,240,65,14,6,4,91,0,202,248,238,2,24,253,24,10,66,246,15,9,55,252,238,242,45,242,176,251,127,12,80,254,28,1,88,242,163,1,219,255,71,1,84,10,122,10,192,11,5,14,223,240,246,8,86,1,146,7,177,11,166,240,255,10,196,7,64,8,84,12,142,14,43,12,175,240,205,9,239,252,146,253,95,255,188,247,223,246,199,8,5,254,209,253,209,11,219,3,44,1,35,5,125,9,48,244,218,247,38,1,224,11,111,1,157,14,245,10,238,254,147,252,198,8,156,246,201,243,96,245,51,14,161,6,167,255,179,254,175,0,91,246,184,8,203,246,5,4,6,245,194,255,237,12,60,252,239,0,61,243,20,253,248,13,154,0,111,5,237,243,47,7,229,1,41,241,158,0,35,13,102,242,234,0,177,11,109,0,72,4,30,12,164,245,248,240,223,7,64,1,248,247,76,15,190,250,103,243,176,9,171,253,156,255,103,12,102,254,28,242,216,250,167,247,240,252,35,248,166,253,36,243,71,245,33,243,68,7,254,245,157,246,235,249,44,244,102,4,210,9,42,5,235,14,247,8,170,8,131,243,120,250,69,253,166,4,103,5,178,6,81,0,43,6,214,0,35,243,61,242,226,14,65,251,67,241,154,6,224,5,70,241,8,6,4,14,5,1,114,252,189,4,3,246,184,1,14,10,125,246,50,250,23,253,186,5,9,253,7,248,102,7,222,12,97,241,241,247,58,2,179,4,50,1,104,250,19,244,253,10,203,1,4,246,9,10,168,5,238,254,42,13,65,245,116,252,228,6,139,14,253,246,205,8,31,9,4,4,186,243,156,8,87,245,236,246,178,247,229,240,182,4,90,3,147,12,183,10,33,249,195,242,139,241,252,5,196,0,185,255,42,0,235,255,129,247,78,254,18,6,174,9,204,242,109,1,198,8,56,5,173,250,246,243,25,247,61,9,94,251,248,241,139,247,116,244,212,13,154,3,248,255,67,11,118,251,62,10,14,250,118,12,113,8,178,246,140,6,42,250,89,10,114,252,5,254,152,243,61,14,155,7,198,1,164,249,167,243,183,249,89,15,227,4,204,0,106,12,3,255,108,254,65,5,146,253,131,9,162,250,229,247,17,250,21,0,96,12,152,248,198,11,52,7,161,7,209,11,78,244,134,10,217,2,187,1,117,245,32,243,191,2,63,246,132,248,25,253,11,243,216,252,229,241,213,241,50,0,19,10,99,15,231,244,171,253,7,2,241,14,48,12,112,8,152,4,242,250,245,241,85,241,94,244,195,250,42,248,172,6,101,12,171,13,99,244,253,11,188,249,59,6,3,2,115,12,169,251,57,5,90,1,97,2,6,11,18,14,126,242,130,251,236,243,206,254,39,244,73,253,240,2,64,4,110,12,100,244,214,3,30,7,83,3,161,248,147,13,38,8,241,11,232,250,76,251,11,11,135,254,172,7,195,14,178,6,152,7,229,241,42,10,200,255,166,247,229,0,151,245,235,249,44,249,33,4,212,249,250,244,220,14,155,242,243,0,91,249,3,241,23,6,44,244,214,245,91,254,149,242,184,248,204,1,181,9,204,247,139,14,195,244,135,8,152,14,163,246,130,243,136,246,221,251,195,242,80,254,234,10,241,14,43,13,178,4,229,7,62,14,87,252,67,0,186,3,154,251,210,4,237,243,180,240,103,241,45,7,234,253,135,241,209,14,113,4,246,250,182,10,158,14,68,242,227,242,18,253,120,250,1,245,101,7,86,8,86,245,70,11,245,6,203,251,232,14,243,9,153,14,227,7,238,7,0,246,18,2,34,246,17,251,211,255,159,244,227,1,167,240,151,250,192,241,184,14,209,245,73,11,200,254,37,254,112,241,79,15,137,254,63,0,192,255,178,4,211,12,48,14,151,11,86,248,40,0,90,254,201,9,135,12,216,10,232,254,94,2,231,1,53,2,59,253,177,13,98,12,178,244,40,246,46,3,211,252,157,2,4,254,80,7,14,248,20,8,168,244,228,249,52,254,168,249,63,1,230,6,163,0,219,9,141,249,12,247,51,11,201,3,92,248,234,244,167,250,2,243,179,243,248,11,203,5,69,2,69,255,190,252,140,250,35,8,216,240,73,4,236,3,173,255,116,246,115,10,183,9,9,13,193,3,209,250,140,241,114,246,106,251,185,12,149,250,58,15,139,250,179,251,243,10,39,15,134,13,80,245,157,255,64,246,30,254,135,253,228,241,6,4,16,3,215,12,83,250,89,254,115,243,157,241,170,255,207,244,172,255,101,246,175,246,66,253,44,9,43,5,47,253,0}, {146,4,182,8,46,8,168,14,46,14,213,255,63,4,195,251,21,246,107,10,30,248,252,0,80,2,48,243,9,254,119,12,82,245,119,245,24,250,231,5,133,13,252,248,200,3,124,9,122,11,20,252,41,249,145,251,70,14,192,250,24,2,147,6,214,250,117,252,255,253,58,13,117,250,2,4,102,3,57,245,125,8,206,246,147,5,165,255,14,9,10,241,217,253,4,254,18,255,129,246,118,247,108,248,76,1,52,10,119,0,152,245,40,250,121,5,56,8,74,7,78,4,113,5,33,241,181,243,199,240,140,8,25,8,46,243,118,11,91,243,116,1,248,0,46,9,24,244,17,242,123,4,191,8,47,13,20,246,25,10,245,249,55,246,10,11,235,4,250,244,144,14,227,4,181,5,227,6,6,244,231,10,227,11,163,248,179,5,87,1,31,252,162,13,135,244,215,247,40,12,43,252,231,12,64,6,207,7,224,251,21,242,56,7,38,1,106,11,247,12,209,0,23,5,217,246,83,247,171,2,127,14,215,240,49,242,240,9,187,251,247,245,12,241,122,1,15,243,237,245,158,11,155,247,69,1,112,243,219,250,6,254,99,246,67,1,197,0,120,11,70,14,89,6,149,6,14,13,121,6,60,252,24,15,22,249,20,251,109,0,92,11,235,242,183,244,123,11,230,254,154,9,173,11,196,7,21,250,75,248,196,251,160,247,50,12,39,7,215,245,10,9,177,252,101,10,132,250,148,248,196,254,32,5,21,9,79,254,54,2,197,243,173,7,176,253,97,251,38,247,224,251,51,248,69,14,89,8,77,15,141,8,239,8,110,254,22,6,185,247,229,248,232,251,188,242,205,13,51,0,215,247,113,11,143,6,252,12,180,5,125,1,232,7,118,4,108,9,235,244,105,243,205,249,129,250,237,243,50,9,62,15,36,7,168,254,164,7,64,5,105,251,161,11,82,4,195,251,147,10,14,246,20,255,52,241,161,11,79,8,69,3,38,244,1,8,12,3,52,7,191,243,132,12,24,242,222,5,48,4,200,6,98,4,91,251,122,4,55,247,160,9,141,12,2,1,78,254,127,3,189,243,201,6,229,3,61,255,169,6,226,14,211,248,118,10,142,8,7,254,166,11,5,254,104,1,109,10,239,4,13,249,163,243,122,254,246,255,165,0,84,242,189,6,21,3,178,0,35,14,117,242,223,2,180,10,67,6,162,10,168,9,244,240,246,8,213,242,228,11,171,252,65,2,196,246,146,244,164,253,131,3,170,250,227,240,156,10,128,249,73,15,134,243,10,11,188,243,209,249,15,2,193,6,147,251,181,255,137,5,154,243,188,4,182,5,215,242,41,252,59,12,171,240,116,243,205,0,18,242,69,1,245,8,169,249,250,247,99,3,178,14,155,242,1,1,9,245,26,245,24,255,158,245,87,244,59,253,72,249,253,245,87,254,204,10,90,246,209,252,55,241,63,11,55,6,130,248,52,5,228,244,148,9,132,12,246,9,95,7,135,251,35,14,114,252,11,13,247,251,109,248,150,3,32,2,135,3,51,6,28,253,188,4,250,0,52,247,104,246,52,245,188,245,107,255,199,251,158,254,148,253,154,252,167,14,25,13,75,15,108,245,61,245,100,8,167,2,191,10,117,14,47,5,188,10,193,244,39,15,155,251,125,251,121,12,150,242,173,6,145,11,177,242,228,244,12,247,49,248,52,4,192,255,6,246,234,13,219,250,165,4,138,11,177,4,203,245,251,12,81,6,204,253,242,255,79,10,246,253,112,254,41,245,70,251,207,7,172,0,199,8,112,4,197,13,90,11,91,247,244,0,248,11,252,253,61,4,114,11,160,255,207,5,213,2,194,251,172,252,174,14,98,6,38,250,11,6,163,252,126,2,167,1,143,246,184,10,211,252,50,13,129,251,76,15,215,10,195,4,91,14,223,4,206,254,177,246,52,1,51,5,96,254,213,14,230,248,14,7,112,3,140,248,205,255,252,0,121,255,17,3,138,10,21,241,29,4,33,6,57,253,205,249,206,4,217,6,44,255,76,5,255,251,116,251,53,249,198,2,173,255,43,249,122,4,39,14,100,1,150,3,180,254,183,11,126,2,233,3,57,0,14,11,97,4,5,244,143,249,75,14,107,250,173,241,188,5,207,249,167,254,54,13,6,243,120,6,222,1,95,253,122,14,14,6,69,242,195,245,25,0,172,240,225,14,98,253,180,1,221,245,135,1,66,248,119,8,81,254,161,9,145,244,222,251,198,244,165,246,160,3,37,255,205,243,214,246,195,246,242,2,146,251,87,254,61,15,238,249,161,5,198,240,231,10,231,254,147,4,45,250,64,0,44,7,129,243,232,13,85,6,195,240,107,5,71,15,10,1,184,3,202,246,167,1,140,249,39,0,123,2,22,254,125,255,175,245,73,15,196,255,130,243,202,12,130,248,208,6,101,4,82,7,77,14,50,3,200,0,155,246,18,253,116,254,98,0,42,6,187,250,60,247,167,246,2,255,98,242,8,242,118,1,68,247,195,13,179,9,168,3,152,5,0,255,215,1,30,243,131,250,219,254,187,247,250,249,121,14,127,3,101,243,226,7,103,10,161,1,211,249,181,10,122,244,30,254,207,9,22,247,138,2,182,4,135,10,114,247,47,255,236,252,119,12,77,10,225,4,52,250,164,252,207,4,206,250,176,6,223,251,166,12,131,241,239,0,30,4,127,4,55,15,73,5,227,1,229,255,11,250,197,253,209,11,133,241,169,4,48,252,191,254,130,242,60,255,202,251,148,5,10,249,68,243,200,13,57,6,146,13,20,15,92,243,156,2,185,247,175,246,29,9,120,245,103,250,231,249,230,241,62,253,231,240,120,0,136,11,14,7,72,252,126,14,21,2,141,254,59,8,225,8,166,250,136,9,233,14,128,253,12,4,172,7,233,250,228,0,14,244,193,7,24,3,85,247,183,246,197,249,254,10,91,8,72,247,138,248,24,255,76,250,120,12,237,13,9,245,32,249,222,252,191,240,108,14,210,245,177,5,103,8,72,5,17,243,183,7,151,10,137,11,152,0,77,9,245,255,70,242,142,3,97,5,202,13,163,247,31,242,127,11,233,249,155,242,121,247,140,252,91,242,6,12,19,245,48,247,153,1,185,7,84,255,27,248,21,247,64,12,146,247,20,244,144,8,220,245,234,249,96,13,44,247,231,241,148,241,217,0,127,244,249,241,110,4,177,11,156,1,113,247,34,250,226,0,187,246,141,2,149,12,28,11,193,0,208,244,17,6,150,10,42,253,56,11,107,247,222,11,49,11,64,250,71,255,28,245,67,248,139,3,63,4,97,13,140,11,41,9,161,2,64,254,133,253,2,250,130,255,147,251,239,244,76,243,169,12,117,13,210,247,128,11,79,14,189,12,205,11,140,7,199,1,83,252,119,252,53,1,52,246,66,252,100,8,151,10,161,246,136,2,81,1,238,12,213,240,219,242,41,249,56,9,110,1,235,251,130,11,13,253,212,242,161,245,83,6,70,15,174,242,50,4,233,248,254,245,217,3,67,246,114,251,132,9,0,252,205,245,121,250,158,10,76,7,70,245,66,15,60,13,197,14,169,243,172,7,175,250,53,12,2,242,75,6,94,248,176,11,13,246,11,241,149,9,0,250,177,249,148,0,93,245,137,2,30,3,169,9,247,247,117,4,61,252,65,241,112,11,10,14,212,6,81,9,146,252,153,9,152,244,23,248,91,12,63,1,184,255,29,9,233,248,236,13,222,1,108,248,143,4,112,245,125,245,85,248,23,8,35,14,101,250,69,2,160,254,245,248,37,246,120,248,171,242,131,241,31,9,75,10,95,1,232,7,79,0,148,2,221,10,242,5,208,6,4,4,48,246,25,10,113,1,238,245,206,3,75,7,97,241,189,241,133,0,116,1,140,243,213,2,138,247,114,8,202,242,50,3,34,12,35,2,111,249,218,5,240,246,130,12,180,6,20,248,81,13,143,7,240,2,216,245,209,2,64,253,101,9,119,9,59,245,176,10,141,252,29,15,177,247,84,249,41,250,227,248,210,245,129,0,205,241,19,15,52,5,246,14,112,0,248,249,187,14,90,11,68,245,80,241,27,12,92,251,194,5,213,14,221,11,212,5,193,252,84,1,161,244,195,10,65,11,186,247,188,6,199,3,9,8,95,241,223,252,47,244,73,255,153,246,176,5,76,5,135,8,183,247,157,13,3,5,216,10,111,247,124,2,20,0,164,11,131,241,153,5,174,2,13,252,54,3,209,3,157,247,166,9,251,14,117,255,6,245,106,9,185,248,110,4,31,242,61,244,222,243,54,241,31,243,225,245,218,10,124,242,222,252,214,1,173,12,228,247,197,252,153,244,222,11,114,252,211,240,189,252,70,255,152,247,250,250,251,3,185,251,153,247,231,246,19,12,68,245,80,255,120,2,227,4,198,250,117,9,10,1,173,14,189,12,5,2,24,247,153,0,222,2,255,11,139,3,70,246,253,12,222,3,168,13,64,8,23,255,189,11,63,7,192,250,35,252,24,6,236,8,53,248,179,247,118,244,165,11,84,13,150,5,189,1,91,248,1,244,153,253,183,13,73,1,123,247,246,2,57,0,34,249,83,255,59,252,241,244,163,11,212,253,65,251,227,248,235,243,104,7,125,0,130,245,134,250,200,14,130,248,120,254,50,251,228,13,73,251,129,3,33,7,32,10,129,254,191,250,211,248,24,250,92,2,15,243,77,8,71,15,164,6,249,1,220,14,188,245,26,253,76,2,143,8,24,247,211,251,41,7,221,255,224,242,165,248,185,244,144,9,141,252,153,8,155,1,155,11,198,247,62,250,46,12,2,254,58,255,253,2,223,1,4,247,162,240,123,248,71,241,149,251,74,241,63,13,208,10,88,248,37,8,3,242,54,11,127,248,254,10,1,241,116,244,172,254,81,5,103,244,70,241,105,247,172,2,103,252,99,248,218,8,125,11,159,11,186,12,36,242,240,240,219,244,36,5,247,5,100,251,83,241,220,14,119,251,161,253,71,11,149,249,12,9,65,248,183,7,185,245,154,251,61,249,225,11,210,249,136,14,67,1,64,251,172,8,100,13,84,248,120,255,228,251,85,248,171,2,98,4,20,2,152,255,121,10,5,252,102,246,234,249,232,0,9,14,171,246,117,244,99,247,99,11,176,1,222,243,28,4,113,250,168,9,118,251,8,5,206,255,229,247,223,5,191,5,124,245,17,244,190,250,220,2,63,7,89,10,92,245,110,252,28,251,220,247,134,248,31,252,160,240,148,10,243,251,138,5,213,11,180,5,246,10,167,7,17,1,181,249,8,0,68,245,99,255,27,250,218,11,102,247,87,6,232,254,194,255,108,252,241,254,150,247,174,244,238,0,147,242,90,246,147,254,252,14,136,252,134,251,225,5,77,254,35,0,90,255,229,9,11,14,97,0,245,240,165,255,153,252,224,2,252,244,13,0,156,255,5,12,207,247,96,8,66,8,164,3,115,252,129,0,60,247,58,0,73,7,8,249,97,246,26,248,152,249,11,250,225,253,155,13,253,9,147,252,203,244,104,9,50,242,27,247,187,5,176,254,233,1,109,9,194,250,160,8,119,5,73,6,57,12,254,249,183,251,91,244,217,244,135,7,208,241,232,8,176,249,126,7,116,245,31,3,240,8,67,11,27,9,117,246,25,250,18,255,121,8,185,252,198,241,143,252,0}, {59,246,174,2,216,243,3,1,82,255,191,241,17,242,92,4,230,240,84,253,121,12,92,254,46,241,85,5,238,4,53,242,2,249,159,0,136,242,255,13,69,5,56,14,13,3,19,15,95,8,243,252,137,1,222,251,142,13,82,253,63,3,109,0,29,10,150,251,100,10,69,255,131,243,115,6,111,8,0,241,198,13,67,247,3,248,116,4,134,11,199,246,214,4,219,247,81,15,246,255,76,244,163,240,219,240,60,251,238,7,159,251,135,8,74,245,207,8,198,14,34,242,50,12,26,248,18,248,61,254,177,14,223,7,128,255,241,5,214,240,61,11,84,242,15,254,143,0,134,12,134,6,24,9,216,10,133,250,86,253,241,240,205,249,37,12,97,6,34,2,217,241,162,248,69,0,170,251,79,13,10,10,106,4,59,255,21,246,25,6,155,12,112,243,90,8,27,248,158,9,141,9,45,242,72,246,39,244,4,254,66,252,28,249,205,12,78,7,126,1,164,250,35,2,203,13,109,246,179,242,253,254,214,241,84,254,84,251,85,250,67,255,195,0,252,2,79,1,207,253,2,2,222,13,22,252,20,11,161,2,179,243,191,1,5,254,212,5,18,243,108,248,242,251,27,253,233,248,114,14,20,244,76,247,109,14,187,249,9,4,223,248,217,0,233,0,75,244,116,244,29,0,160,250,58,12,121,249,244,13,73,246,117,2,62,6,65,13,110,242,78,5,158,251,82,244,242,249,25,6,185,8,185,245,229,4,55,11,220,249,36,9,116,242,199,250,153,242,38,13,140,13,239,248,185,11,11,253,165,250,237,8,224,7,244,250,146,255,244,4,126,253,111,3,46,243,130,253,121,243,194,11,21,1,153,14,6,2,164,255,94,255,241,7,151,12,88,6,126,0,220,252,59,13,249,13,97,242,109,3,167,242,132,253,14,251,103,244,14,14,150,11,248,252,173,8,147,1,57,252,125,5,118,8,186,254,230,244,253,10,18,254,53,4,67,12,94,252,12,4,207,250,241,6,5,247,224,12,126,4,210,241,214,252,52,9,211,244,52,11,192,247,50,14,89,254,186,13,58,7,255,251,205,0,15,241,85,9,222,12,247,243,34,241,73,255,43,242,12,250,20,2,54,7,147,10,145,10,11,10,230,251,40,5,197,0,1,3,251,241,163,244,128,9,77,247,241,6,55,251,34,2,98,12,209,12,53,3,28,253,223,12,254,10,206,14,140,11,114,241,4,248,162,13,133,243,165,255,189,5,212,3,200,247,83,11,76,244,126,3,245,241,168,254,67,10,1,253,21,244,98,252,108,253,180,9,166,6,236,5,5,10,198,9,116,14,189,4,211,254,171,240,15,1,255,2,176,14,112,3,76,243,7,241,226,246,16,252,204,247,222,242,32,255,84,247,5,1,123,245,173,249,17,1,196,12,51,9,55,9,44,7,241,245,43,2,231,11,39,13,8,245,59,5,245,248,14,246,184,247,251,9,138,248,133,247,94,9,43,5,95,4,231,242,88,14,11,10,234,242,211,253,36,244,198,7,223,251,33,4,121,244,252,242,126,2,76,242,142,252,167,245,179,2,31,9,24,242,35,13,117,5,73,5,65,9,177,0,217,244,147,249,168,252,113,255,110,242,234,7,19,248,186,246,127,5,8,8,8,242,216,241,36,12,12,247,1,2,64,251,153,5,190,4,20,13,207,251,85,7,223,10,52,4,41,255,101,252,128,241,23,10,112,3,160,3,167,7,98,13,66,2,42,13,160,243,163,246,124,2,215,249,7,7,209,240,194,10,107,254,31,243,191,243,54,0,145,243,111,249,252,10,94,15,10,251,33,14,185,6,253,240,21,6,108,8,133,247,251,12,138,250,92,14,191,11,202,3,123,9,66,4,88,247,254,247,248,2,103,253,31,2,137,3,244,0,230,9,156,255,251,2,17,11,6,254,161,241,241,8,121,4,100,247,47,255,125,253,89,244,90,0,206,254,169,241,155,13,186,14,81,249,78,0,156,242,202,254,138,254,195,243,156,247,228,0,254,246,236,254,223,240,28,252,194,240,47,249,71,5,58,255,231,254,90,251,81,251,185,240,154,10,210,8,88,12,16,250,229,242,141,4,210,244,59,254,243,248,236,9,4,249,219,246,45,2,93,246,229,11,57,1,74,252,188,244,229,12,8,245,208,0,219,252,169,8,95,252,253,240,39,6,134,254,136,14,125,244,210,242,230,14,175,252,178,244,157,11,214,8,124,13,235,14,64,14,129,7,19,9,140,1,179,246,72,14,47,242,130,8,209,255,9,7,252,253,164,0,110,9,153,7,45,254,2,249,172,1,201,11,141,248,46,0,207,0,18,15,119,245,101,248,227,252,204,11,242,1,250,12,55,252,34,4,213,14,25,1,122,255,230,241,162,11,220,5,38,4,69,250,123,255,79,248,8,252,130,251,118,6,172,12,135,252,249,0,25,243,89,243,124,247,181,243,59,14,104,243,82,6,192,243,109,6,110,244,53,244,107,0,23,241,61,252,113,244,26,4,143,6,221,12,217,251,140,6,237,254,7,15,53,247,53,241,107,2,222,252,42,255,138,247,131,2,1,15,51,250,129,0,187,251,68,4,239,1,225,12,144,6,117,245,102,251,89,252,227,14,162,9,79,253,225,252,74,247,14,247,116,7,148,1,51,12,77,0,184,5,2,6,163,8,231,252,183,254,52,253,189,252,129,247,142,252,29,7,77,248,169,242,33,243,228,5,173,250,168,13,8,250,244,11,52,13,56,15,14,11,218,254,160,254,132,0,165,8,211,7,136,4,134,5,244,14,60,255,69,0,234,1,107,254,86,247,107,1,80,8,19,11,100,247,38,2,214,0,115,0,160,10,237,240,250,4,49,245,231,252,214,14,58,9,34,14,206,13,236,254,145,1,38,9,64,243,103,5,1,247,63,2,19,246,115,246,227,247,198,9,19,14,125,3,239,252,3,255,226,3,238,252,162,14,142,8,107,4,175,244,83,4,200,9,87,245,83,245,254,14,17,3,137,253,245,4,45,243,76,7,216,243,171,246,190,244,27,9,230,241,170,255,116,243,53,254,238,4,218,255,19,6,160,246,140,252,199,0,45,255,44,252,186,13,241,5,11,244,166,244,156,3,125,12,69,245,163,242,160,240,26,8,199,8,88,7,181,248,250,251,245,244,238,14,234,249,72,10,210,12,247,243,94,247,164,4,101,250,233,11,6,14,72,2,51,4,21,248,93,8,182,3,173,246,202,248,226,244,145,243,82,10,28,7,110,13,243,252,136,248,100,245,116,241,199,246,209,4,16,13,228,241,70,10,24,11,142,6,7,242,4,241,184,7,12,241,145,6,213,4,55,9,126,3,252,9,200,11,150,12,122,249,57,243,175,250,201,13,155,8,148,7,85,5,69,13,10,241,8,241,149,251,86,11,24,1,232,252,209,245,77,243,232,9,199,253,131,252,138,247,232,8,236,9,248,0,59,3,60,10,181,249,250,252,69,13,41,246,219,3,208,242,60,14,245,245,29,0,72,242,213,254,66,11,46,6,211,9,196,251,249,248,62,9,131,253,144,248,223,14,247,241,161,246,104,14,246,7,60,246,248,0,11,5,19,0,41,241,67,12,240,6,239,246,171,6,217,251,148,249,116,3,130,254,182,0,131,254,200,12,234,253,125,3,190,247,164,255,231,249,107,245,66,3,18,246,9,13,17,13,170,4,208,1,251,8,23,242,148,255,92,3,107,255,7,249,42,241,228,245,63,250,150,0,58,11,43,243,25,243,1,11,111,3,168,255,175,4,213,240,239,248,95,252,227,242,142,241,166,6,13,9,51,1,254,12,81,242,226,10,242,8,40,248,185,252,51,253,54,255,195,241,237,11,37,4,158,245,223,10,207,241,240,247,167,11,170,251,58,2,144,7,219,11,244,8,123,253,121,8,119,10,175,254,176,13,9,8,106,5,34,251,132,244,119,241,240,244,14,13,127,249,7,246,118,12,127,251,59,13,216,7,204,3,62,13,229,248,16,9,106,1,62,14,171,242,211,245,47,252,130,245,106,244,113,3,9,2,86,243,60,251,40,8,61,1,159,0,176,250,182,10,125,11,89,250,20,13,26,251,204,241,212,7,98,247,92,247,4,1,213,1,42,15,46,5,124,254,134,243,249,10,124,248,72,3,203,251,253,7,255,248,34,244,68,14,215,1,11,249,178,241,28,12,204,13,20,11,241,253,109,6,36,2,67,1,220,248,199,255,187,244,151,244,14,252,61,4,168,9,153,250,110,10,113,12,183,14,110,5,32,8,33,2,81,4,186,243,95,2,3,11,128,5,181,12,208,8,147,249,9,11,8,252,51,9,58,5,60,243,235,254,201,243,124,250,198,249,180,252,51,5,172,11,216,250,2,14,0,1,248,250,211,254,31,2,65,248,202,6,194,245,155,254,212,251,34,252,55,245,118,243,163,1,34,248,141,9,199,11,231,253,199,3,122,244,39,6,107,246,200,4,35,11,62,9,145,248,199,8,83,246,92,8,145,244,222,251,139,253,224,255,56,14,231,241,153,248,255,1,158,2,180,248,120,251,187,13,57,247,245,249,246,2,96,15,190,5,29,243,122,3,109,255,67,4,142,245,248,242,73,2,128,3,47,3,149,4,126,245,173,12,152,243,77,252,243,10,235,13,134,251,221,242,237,0,190,245,253,253,221,248,52,253,199,13,34,241,82,248,38,255,135,245,21,254,13,247,189,248,53,5,73,11,132,7,163,244,13,243,41,7,128,252,140,13,45,242,17,255,37,0,47,250,197,243,189,8,205,252,178,2,113,10,224,243,36,244,2,254,42,241,137,253,176,247,87,0,252,244,115,0,73,6,134,247,135,13,183,6,166,11,13,255,136,3,137,248,166,247,111,245,40,252,236,4,209,250,156,7,234,8,117,241,26,3,234,1,103,9,155,241,72,6,252,242,177,13,147,0,147,254,132,242,193,13,187,14,18,0,109,253,87,252,150,254,202,7,120,244,94,242,45,9,154,7,175,251,172,242,67,244,187,2,66,4,53,249,146,8,47,8,233,14,245,255,173,241,144,8,86,4,74,15,211,240,99,244,1,252,121,11,64,249,164,5,160,255,77,250,187,3,145,244,209,10,71,11,124,242,230,245,231,2,118,9,186,4,93,10,21,14,168,10,70,1,63,5,184,14,11,252,0,9,8,10,224,8,20,3,93,14,168,13,72,8,50,245,88,7,27,242,77,6,167,242,250,253,248,11,35,13,253,249,9,5,253,12,208,250,191,8,194,251,86,248,32,12,9,9,189,243,97,251,82,2,5,6,80,8,132,241,205,2,233,253,59,251,125,255,210,12,247,253,225,9,33,254,255,11,179,241,96,242,158,4,2,13,44,3,120,246,36,15,116,4,65,4,119,13,229,247,101,4,133,245,205,10,22,1,176,5,254,255,27,247,160,240,164,14,171,254,19,14,104,252,46,245,255,6,0,247,47,0,6,249,155,1,61,8,224,12,95,249,235,6,177,1,72,250,81,242,13,242,31,11,74,246,192,12,97,0,224,3,198,14,9,5,191,240,40,12,47,254,10,9,94,243,96,245,229,246,147,251,90,253,25,15,56,3,8,0,162,248,216,244,203,3,182,3,224,252,1,251,11,244,230,6,80,243,187,251,59,249,77,4,3,254,163,242,206,254,152,252,164,252,13,3,235,255,214,244,23,248,102,10,0}, } ; static const unsigned char precomputed_core_invsntrup1277_n[precomputed_core_invsntrup1277_NUM][crypto_core_INPUTBYTES] = { {163,85,191,245,248,250,53,42,196,204,248,160,221,219,115,185,171,89,212,202,129,227,223,224,225,50,40,252,77,37,11,83,118,71,20,27,120,25,35,252,0,58,115,96,184,195,215,180,61,33,3,10,74,52,243,136,143,250,2,84,237,150,108,254,224,155,185,96,235,86,131,181,98,73,26,253,80,49,178,143,209,53,210,34,43,180,43,69,174,149,118,19,122,190,119,219,234,201,210,50,7,52,150,177,221,54,29,39,27,75,216,172,240,171,228,169,184,13,103,206,23,123,171,47,203,174,12,245,154,34,78,5,81,17,110,75,217,164,80,50,226,140,142,94,107,52,244,199,80,76,34,77,27,44,144,250,200,206,165,141,42,121,121,38,253,116,170,105,191,10,18,92,214,153,226,252,18,106,134,225,60,36,26,72,212,244,54,205,182,32,121,180,68,99,163,116,140,219,89,229,66,155,129,66,69,55,131,209,232,215,45,28,89,157,107,133,47,101,43,163,34,81,37,254,116,120,53,180,27,79,198,18,131,114,57,90,167,234,35,197,73,146,32,115,191,61,211,96,244,164,217,131,124,234,189,147,234,133,195,222,120,106,86,179,14,151,168,234,19,46,36,35,227,166,246,181,177,93,24,33,39,158,87,78,146,129,106,1,13,153,86,68,58,160,199,103,25,228,113,252,135,41,249,137,255,217,192,154,231,45,182,175,160,233,93,22,179,91,33,8,141,133,47,176,177,161,32,201,204,124,82,6,64,128,241,134,88,6,170,249,232,194,41,209,211,139,84,18,84,99,92,120,106,155,160,131,79,27,234,249,42,180,187,2,94,255,130,44,170,106,114,129,157,160,64,104,168,255,201,200,138,223,199,12,111,172,142,40,10,175,56,186,136,197,169,228,96,34,64,24,90,163,39,109,177,157,16,83,193,57,110,191,16,64,57,100,198,91,82,38,215,21,207,215,170,189,155,192,18,135,251,135,249,225,176,36,83,22,179,117,117,10,64,224,195,160,41,140,207,107,45,66,221,172,182,211,252,122,7,178,1,182,61,18,239,126,140,214,150,120,46,17,30,9,162,95,61,224,130,97,186,192,88,42,202,0,249,18,173,197,188,116,125,59,212,145,76,156,100,145,71,208,93,227,200,15,63,12,27,229,235,240,244,210,213,4,24,165,19,185,66,206,251,94,91,94,48,9,66,4,89,36,99,142,56,91,0,211,165,53,96,89,136,158,116,141,162,81,44,2,212,88,82,141,242,222,237,182,134,134,59,56,192,68,183,244,215,146,112,21,200,225,194,8,205,201,174,129,90,182,106,68,159,152,158,92,62,181,247,50,113,181,248,71,232,178,217,120,25,139,134,60,96,164,208,223,243,119,158,239,21,80,55,171,125,58,20,135,122,166,44,111,121,222,216,232,253,150,241,182,17,62,195,81,88,230,151,96,212,76,226,20,58,251,71,162,98,230,43,92,157,194,110,110,207,252,138,25,67,215,217,8,238,141,185,41,141,212,112,231,125,242,186,93,51,39,63,26,62,64,146,222,237,168,198,215,69,32,175,135,18,15,193,111,160,232,221,238,169,62,94,79,8,99,53,221,16,37,105,70,165,166,203,175,62,157,156,70,90,168,225,142,71,159,50,17,93,74,62,200,209,124,197,86,224,196,19,83,11,4,164,135,10,101,174,236,149,146,204,177,46,146,50,131,105,200,34,19,48,132,90,209,71,143,227,165,59,219,204,222,16,61,143,69,237,124,3,127,134,68,115,153,157,238,196,96,38,63,112,184,119,178,111,221,251,18,113,102,253,23,148,84,166,16,167,72,11,211,21,57,100,252,251,72,35,1,36,5,201,76,67,105,211,206,130,45,89,223,12,163,118,73,19,153,169,155,4,31,151,218,134,40,85,19,24,72,24,183,97,244,156,48,194,167,127,19,159,136,120,95,101,39,135,127,47,147,214,207,113,92,0,40,168,4,58,184,65,95,194,249,7,239,128,249,214,147,247,126,152,71,153,231,159,149,165,192,35,63,195,65,158,90,44,95,244,55,219,74,187,46,2,112,161,168,133,61,105,72,31,218,144,205,57,15,20,94,50,49,100,115,89,240,249,48,255,111,178,192,11,161,60,230,94,84,13,183,167,12,163,71,246,171,44,92,233,159,77,229,201,249,83,87,212,151,143,95,91,122,241,217,109,246,100,177,7,71,117,3,119,214,178,52,191,211,111,132,221,5,113,222,144,63,82,123,88,43,22,254,118,255,79,182,119,91,38,188,105,205,128,5,162,56,227,58,85,197,32,144,154,141,164,164,80,71,72,41,197,246,176,2,255,26,138,98,213,1,191,40,34,251,181,204,241,38,133,61,240,113,18,247,170,219,180,238,9,160,38,13,144,47,24,127,212,114,157,233,223,109,241,241,75,90,230,137,153,156,94,212,247,165,140,180,53,144,27,101,223,16,138,121,164,91,104,141,116,32,10,36,194,55,17,29,126,108,75,183,68,194,163,73,29,182,71,23,209,249,251,25,124,154,75,231,199,238,232,221,245,211,81,155,26,204,101,130,110,202,96,107,38,154,222,66,243,47,117,126,43,126,228,47,210,30,153,125,234,109,36,12,124,87,15,245,66,153,184,48,130,49,221,90,112,130,220,149,142,126,138,168,37,166,50,168,74,153,247,188,229,69,27,149,59,124,12,43,89,198,51,79,165,18,107,179,132,214,164,232,170,238,148,169,129,255,238,69,129,147,134,98,85,144,27,230,6,88,119,130,96,79,21,44,55,29,212,82,79,108,225,38,159,100,89,205,14,137,162,100,246,133,215,78,37,32,139,4,26,150,98,54,37,96,208,201,224,236,97,229,61,240,7,217,199,64,124,26,16,23,21}, {153,162,97,196,15,154,177,149,1,193,219,15,253,94,119,187,125,228,170,146,163,140,151,56,97,148,170,47,103,13,121,14,76,251,58,221,49,173,29,255,15,218,97,255,167,195,63,31,151,228,214,86,234,42,223,101,98,160,30,149,114,49,86,138,55,17,65,235,65,80,214,234,41,44,108,120,163,5,215,114,172,114,98,130,163,54,100,150,111,94,247,131,93,241,37,169,12,18,150,108,252,35,172,134,61,200,146,149,7,179,69,99,181,222,69,50,87,65,138,152,77,34,109,217,226,115,5,244,124,6,49,68,96,68,60,81,29,16,11,121,112,83,250,102,243,3,238,56,9,154,130,9,91,41,37,31,132,167,185,30,74,158,130,136,240,245,86,185,123,121,128,133,100,190,150,12,177,110,118,96,73,55,93,192,95,49,50,106,43,182,142,188,93,225,174,11,51,173,243,19,208,11,15,153,155,212,245,223,73,86,103,6,221,160,129,61,133,92,12,105,226,98,123,119,148,179,50,144,59,35,205,216,83,60,138,200,9,34,224,9,179,196,224,53,52,200,104,188,70,53,86,1,88,167,212,44,211,125,83,138,164,44,227,1,66,221,228,118,23,39,177,163,221,235,219,105,211,96,228,129,203,31,22,30,225,206,36,56,173,113,139,12,17,56,150,42,0,88,143,219,84,187,148,143,217,107,175,165,173,167,168,161,35,163,122,84,213,187,91,235,64,182,244,97,47,57,9,28,108,201,173,183,82,233,122,1,155,48,34,251,74,29,193,186,165,207,201,240,192,3,163,170,88,144,96,181,87,154,177,255,201,211,153,233,111,71,21,160,49,48,138,95,150,52,157,212,23,156,51,107,11,163,34,171,15,69,195,162,7,48,53,199,143,185,238,228,69,1,62,34,98,215,223,160,75,134,202,153,244,59,190,110,239,79,67,4,85,252,236,6,123,48,185,202,210,55,114,192,6,99,178,126,105,153,164,2,151,20,119,0,179,58,60,101,57,96,147,147,190,129,158,59,168,54,103,153,9,129,35,34,19,240,62,2,142,250,65,67,214,91,81,221,184,117,58,169,39,230,210,242,77,249,193,175,31,118,75,102,5,99,87,231,206,54,208,185,250,178,107,15,5,64,152,223,126,135,241,211,37,153,254,13,180,25,101,161,168,253,86,75,100,227,64,151,46,50,87,137,6,59,61,69,54,11,204,185,76,141,211,143,20,212,165,87,43,218,240,75,143,12,88,167,125,135,66,93,163,120,108,9,2,238,79,223,222,118,59,122,121,253,102,89,200,163,53,149,83,204,158,38,147,0,187,148,243,235,9,78,37,155,141,57,170,248,189,191,8,108,179,169,37,29,75,85,113,128,38,204,125,196,54,205,95,172,206,202,122,112,66,24,205,69,234,246,252,85,162,96,160,148,127,115,101,1,65,106,205,224,229,68,235,26,46,23,247,31,170,42,23,205,173,139,209,185,199,83,80,235,106,2,78,104,179,91,77,129,152,130,250,197,121,100,210,221,54,75,146,16,235,91,202,163,123,169,56,210,243,236,248,175,107,231,64,20,164,200,217,73,151,162,5,67,230,210,102,163,97,227,196,221,82,223,81,132,177,236,101,182,23,73,200,188,81,212,36,175,43,161,135,237,140,196,129,139,235,118,115,82,71,57,227,214,2,254,93,138,186,87,61,139,12,144,129,177,25,66,164,226,107,48,174,170,254,22,215,61,1,91,142,26,148,81,55,71,190,223,85,144,168,67,76,198,217,41,168,9,4,101,105,196,131,35,192,7,223,95,221,170,244,222,114,247,49,252,143,253,40,133,222,151,70,169,93,225,130,38,236,248,236,22,12,186,134,27,195,170,178,103,82,68,140,96,71,35,33,208,254,161,70,255,28,251,219,129,71,229,44,89,96,182,214,237,5,235,251,74,123,183,252,15,136,136,70,238,45,45,223,87,108,130,159,84,31,179,45,32,105,190,199,242,158,86,189,191,199,17,136,180,51,168,255,31,114,18,154,96,94,70,230,17,131,207,75,46,62,126,205,21,2,79,64,157,200,142,223,235,79,182,3,192,176,120,129,10,183,162,25,38,240,128,235,122,169,237,86,251,218,21,142,129,31,242,18,143,95,141,103,232,161,228,65,185,233,43,19,123,146,97,203,18,253,217,127,200,56,163,216,39,18,19,230,79,33,32,11,92,235,209,156,70,229,115,12,123,188,53,13,134,179,106,137,204,168,243,211,72,117,245,15,124,218,51,90,3,69,208,252,217,186,207,190,246,58,47,239,190,176,128,155,104,180,1,129,87,217,68,61,139,249,152,117,6,202,116,165,122,147,137,14,134,216,195,214,201,205,110,183,178,114,101,64,253,177,230,49,78,237,156,225,80,125,133,104,219,185,245,91,111,239,210,82,77,92,243,132,183,41,21,126,29,54,122,145,234,59,54,144,131,150,94,27,201,192,44,3,141,68,174,162,195,72,246,122,57,173,79,234,211,215,59,99,138,230,145,40,204,200,150,190,20,97,157,170,153,145,254,204,3,49,128,221,177,89,46,252,157,75,146,207,212,184,2,9,189,110,40,187,125,245,64,76,73,87,5,39,103,249,84,4,22,87,154,229,70,105,27,216,235,34,129,38,73,128,66,122,152,156,15,27,46,120,74,71,70,60,169,190,64,168,28,179,100,130,31,204,106,230,140,203,187,90,168,179,71,99,185,85,209,41,214,196,9,152,85,7,27,222,233,206,14,75,231,12,225,105,47,0,208,190,209,209,184,46,48,75,115,9,97,191,131,133,91,254,137,172,28,87,151,33,185,153,77,82,34,151,43,11,135,148,120,32,151,132,104,19,211,62,61,114,79,51,239,121,12,170,75,120}, {191,236,91,143,207,246,63,218,221,239,156,235,115,244,14,121,142,20,97,23,176,42,190,229,39,38,23,172,137,97,157,92,213,78,58,175,43,158,234,40,226,234,82,195,76,158,147,133,52,170,151,1,176,159,185,99,198,183,86,74,129,199,140,74,202,232,230,112,52,35,40,166,119,232,206,46,211,105,218,221,70,88,211,173,237,152,189,66,88,64,254,254,215,2,205,101,15,18,228,66,91,179,144,170,6,23,241,128,17,39,109,60,34,200,200,35,185,140,92,249,153,16,55,240,62,81,231,182,93,178,188,219,96,47,221,139,157,227,126,8,139,240,77,236,189,3,2,140,74,204,185,77,125,223,196,138,63,156,61,151,65,212,8,136,158,186,162,238,151,83,218,176,147,172,138,228,94,232,121,115,204,18,125,177,63,178,18,70,41,119,115,75,86,21,181,70,238,206,164,177,142,73,192,36,93,45,197,82,54,93,192,201,114,119,194,182,8,49,12,38,183,29,199,121,88,215,112,237,41,148,27,31,10,57,171,67,186,149,100,163,25,154,128,36,180,229,206,93,247,215,176,56,199,227,240,59,111,0,150,162,206,159,1,37,3,160,21,68,97,67,88,143,41,82,181,40,35,41,154,118,83,141,102,223,14,139,7,183,165,233,192,232,9,207,51,240,209,202,149,231,14,172,6,224,70,247,190,126,171,23,32,14,138,143,33,128,144,5,198,163,235,0,225,168,99,209,29,179,196,50,179,116,90,45,199,42,42,181,132,33,186,46,94,148,125,139,40,169,7,103,120,166,251,139,215,128,28,130,146,156,208,43,212,169,14,22,149,15,160,52,219,58,237,5,18,0,179,77,7,217,162,170,49,169,189,60,102,156,50,71,173,65,72,24,56,71,209,118,45,183,6,34,200,137,90,5,55,200,9,104,35,130,52,185,155,64,1,236,19,180,51,12,140,167,102,212,193,118,195,67,213,217,255,17,5,4,165,224,24,198,70,100,132,102,122,229,248,62,136,110,211,112,181,46,61,175,164,129,224,106,186,165,4,212,133,251,40,49,185,176,181,253,51,31,177,118,127,192,29,214,29,44,2,36,200,8,3,4,30,131,19,5,113,12,111,46,151,226,130,79,153,122,124,174,228,16,117,87,36,192,58,132,27,225,242,214,174,191,142,109,168,230,84,100,87,32,52,157,161,199,190,247,98,244,125,183,40,145,22,109,5,169,38,87,81,155,198,101,82,180,252,131,44,234,81,146,100,95,127,2,189,177,205,8,7,202,214,80,185,51,22,238,8,65,30,70,57,2,75,5,224,133,218,176,76,243,7,70,30,38,193,152,247,245,141,128,140,162,93,210,63,48,98,248,36,218,69,202,36,79,1,116,252,29,6,39,237,62,255,38,202,213,245,213,200,211,84,55,243,51,199,232,57,246,191,114,94,212,40,84,27,206,118,121,30,186,98,104,175,201,232,72,120,252,127,3,102,102,164,130,232,219,52,196,21,228,81,132,159,245,43,75,233,244,182,11,171,182,190,28,114,13,78,79,239,188,182,170,139,219,54,151,141,252,191,72,182,167,124,223,86,1,29,25,27,57,187,209,121,8,13,249,77,131,164,5,84,58,108,243,85,39,59,255,106,186,191,173,75,130,152,125,168,7,16,118,84,12,222,46,48,2,36,88,133,48,64,20,204,103,168,243,172,39,116,244,226,125,222,169,70,198,5,187,211,25,78,153,112,160,132,85,59,106,27,87,85,82,226,96,201,132,240,79,158,101,45,153,154,219,70,129,34,18,209,154,185,202,174,61,154,140,152,178,238,201,165,131,194,181,167,53,138,234,49,230,10,173,178,152,118,189,123,95,196,185,69,149,132,159,38,48,119,241,124,7,42,233,58,75,230,188,217,109,111,239,141,159,182,48,194,233,241,171,71,120,102,158,221,122,161,220,53,147,162,81,40,16,96,88,204,213,78,96,162,232,147,142,108,48,52,104,0,235,62,62,25,127,17,49,163,157,106,171,5,136,99,143,71,219,42,85,99,186,85,220,197,247,32,45,221,118,197,140,52,236,206,230,100,77,254,178,22,52,16,252,48,102,98,242,151,94,66,30,126,49,144,195,96,229,197,132,148,20,104,158,145,104,149,235,68,68,253,57,237,68,187,149,127,25,121,158,43,79,51,85,207,240,159,1,200,201,112,8,184,221,25,31,39,201,211,48,29,140,86,168,116,204,86,130,38,61,28,192,138,58,145,178,70,235,34,212,94,78,112,53,17,20,200,12,127,163,182,244,67,6,227,41,20,2,96,144,178,190,210,170,157,203,68,85,30,12,56,116,4,65,106,189,131,83,126,230,111,7,165,2,83,188,36,255,172,52,78,247,168,217,222,123,91,153,210,181,97,79,186,110,200,36,38,197,197,57,82,5,213,85,95,51,7,253,202,147,211,39,12,182,46,246,218,91,39,17,9,57,95,196,105,156,151,77,53,43,88,42,150,109,53,37,80,235,128,254,100,173,158,25,16,8,141,200,23,159,89,89,205,126,160,247,24,220,254,44,172,86,104,0,38,172,59,135,228,167,58,153,197,38,130,210,152,243,85,34,40,12,237,40,175,221,239,34,181,89,80,243,130,29,201,127,87,224,147,178,210,112,180,255,8,56,224,58,29,2,93,65,224,134,53,96,126,203,245,255,71,111,32,141,102,153,103,237,212,104,23,97,21,114,228,136,67,202,88,62,156,56,108,238,222,85,250,215,111,25,183,105,187,224,140,161,198,153,105,216,166,247,96,175,7,227,20,238,34,189,53,224,47,167,211,250,125,221,93,181,130,205,177,171,174,110,36,216,95,15,231,64,132,63,21,102,94,228,117,199,229,110,63,189,62}, {154,108,243,222,154,122,223,223,8,134,191,47,86,85,24,116,217,199,99,63,9,145,47,87,109,43,169,167,196,68,75,166,162,70,1,225,50,150,150,135,44,251,47,46,22,211,114,91,32,255,123,19,62,38,228,49,38,116,104,112,127,236,243,157,235,117,89,232,226,176,211,105,235,130,46,221,126,116,60,116,93,244,79,49,5,245,113,183,147,46,208,1,130,176,42,113,138,116,252,204,166,244,177,210,242,88,114,173,172,101,212,21,221,118,92,65,76,149,213,75,3,254,235,88,156,212,115,7,184,47,65,94,96,170,126,183,165,91,219,146,0,157,14,219,241,86,220,209,71,209,162,108,247,169,70,45,3,73,131,171,97,33,205,161,129,62,250,219,248,213,90,37,55,119,237,181,31,240,140,235,40,193,156,76,130,242,36,121,7,130,123,52,73,120,58,160,43,112,77,0,75,38,56,74,137,97,63,12,45,105,40,81,145,161,131,99,58,168,60,159,57,102,214,161,245,49,231,5,47,150,153,141,221,95,87,113,50,90,75,206,88,242,213,185,248,228,15,18,43,57,31,89,204,207,152,227,247,109,177,182,187,88,227,183,118,230,173,232,255,125,149,9,18,16,68,135,46,37,162,135,76,87,192,77,31,176,29,35,86,33,109,31,14,1,180,13,21,245,152,110,123,64,170,177,131,90,3,136,250,7,203,173,165,69,93,62,118,53,33,193,81,17,96,73,76,122,144,16,143,202,115,21,159,211,58,206,162,168,102,59,180,23,133,158,31,228,31,104,203,99,9,72,38,14,70,154,83,24,148,206,71,59,142,64,254,228,194,73,3,8,50,29,135,117,56,186,107,122,197,165,203,184,49,10,235,114,192,30,39,157,83,30,148,123,249,162,168,121,149,252,204,72,37,225,139,53,57,190,130,211,21,33,212,167,18,54,175,65,171,196,60,45,146,211,96,39,204,74,231,80,29,248,160,214,110,146,183,69,247,152,215,60,233,2,120,39,141,147,10,229,60,114,50,168,153,0,237,4,114,16,185,199,182,62,156,92,91,53,233,232,185,226,147,152,249,192,15,36,14,110,212,147,113,157,160,250,27,159,211,85,193,53,133,63,126,253,172,115,4,104,233,113,138,170,163,163,172,237,43,83,192,92,133,246,174,203,241,26,170,181,196,160,145,254,189,17,46,195,110,139,168,165,152,105,233,35,108,4,93,52,221,204,136,212,29,37,250,30,28,188,82,63,79,65,96,103,119,173,57,168,34,205,252,44,14,118,138,5,183,13,98,195,63,36,22,22,139,58,67,191,68,26,236,79,17,164,16,103,52,238,152,147,42,86,129,74,156,64,121,96,241,36,131,248,8,110,128,94,64,107,91,165,224,214,222,117,119,245,32,138,142,184,131,10,139,105,7,195,88,3,66,52,211,222,27,122,16,145,31,243,221,237,127,148,8,120,171,153,113,124,111,40,131,119,124,105,137,111,173,106,82,33,187,118,212,237,63,193,45,176,108,76,136,153,143,215,123,30,52,223,123,3,200,14,154,19,71,195,4,127,71,63,7,8,60,208,25,240,230,54,165,198,79,37,174,42,72,164,188,52,191,189,252,177,96,173,249,7,223,245,250,97,5,236,14,234,224,215,152,174,75,165,137,152,239,83,251,253,51,115,184,174,186,34,55,20,42,133,219,51,170,15,209,53,6,43,15,72,56,29,83,242,176,195,243,41,175,171,61,8,65,1,204,181,231,97,71,193,92,8,167,136,74,2,216,105,138,247,155,176,55,4,246,50,232,190,123,243,37,104,98,211,19,75,34,53,222,25,218,83,148,141,104,231,175,248,164,61,211,145,162,75,207,116,123,235,255,186,85,202,1,185,184,124,163,123,112,217,174,232,31,111,186,215,248,123,61,79,83,162,143,122,249,58,228,252,234,69,190,89,154,211,196,9,160,71,11,7,39,46,5,211,98,21,75,9,9,107,252,68,42,72,247,98,225,226,122,85,164,199,75,197,198,172,111,73,77,72,217,5,32,160,176,72,104,141,76,34,188,192,226,120,200,108,44,129,122,87,81,11,69,66,16,83,91,170,115,152,85,225,117,80,255,207,252,33,157,247,46,46,124,195,134,172,83,169,204,107,248,181,223,166,94,157,30,128,188,23,209,214,126,76,11,193,35,32,39,31,165,75,83,94,117,114,188,213,115,26,62,46,73,135,138,185,24,111,158,19,255,241,151,153,16,28,66,22,75,165,56,30,196,136,47,127,219,213,80,126,245,188,210,128,14,34,217,101,64,124,21,50,165,165,174,109,88,120,211,132,190,237,118,109,70,200,226,82,134,27,0,16,72,164,116,207,126,162,25,238,217,223,244,115,104,245,161,173,91,111,124,48,36,171,145,143,53,210,233,52,111,229,119,23,203,116,240,234,103,103,29,208,92,157,216,253,135,245,236,65,149,144,192,119,63,130,33,98,24,125,6,255,253,150,220,135,20,26,136,144,116,83,154,112,118,207,72,102,153,30,24,52,102,87,195,47,104,116,201,77,34,34,27,201,161,142,67,226,158,169,224,56,71,87,122,253,79,86,249,154,228,85,104,150,239,84,178,189,253,60,144,31,100,66,255,207,188,25,233,193,164,152,227,0,175,44,64,238,239,116,6,96,104,65,220,180,25,169,14,212,83,241,63,72,210,172,163,12,9,201,115,47,1,173,201,46,62,109,210,221,8,243,7,247,159,160,59,208,192,172,39,237,211,159,31,55,33,228,215,149,11,227,10,59,29,134,84,29,49,148,211,209,128,207,180,90,68,150,141,178,164,45,71,90,233,26,212,176,231,203,251,116,239,227,99,227,94,143,20,189,157,31,53,64,208,198,94,176,98}, } ; static const unsigned char precomputed_core_invsntrup1277_k[precomputed_core_invsntrup1277_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_invsntrup1277_c[precomputed_core_invsntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_invsntrup1277_impl(long long impl) { unsigned char *h = test_core_invsntrup1277_h; unsigned char *n = test_core_invsntrup1277_n; unsigned char *k = test_core_invsntrup1277_k; unsigned char *c = test_core_invsntrup1277_c; unsigned char *h2 = test_core_invsntrup1277_h2; unsigned char *n2 = test_core_invsntrup1277_n2; unsigned char *k2 = test_core_invsntrup1277_k2; unsigned char *c2 = test_core_invsntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_invsntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup1277(impl); printf("core_invsntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup1277_implementation(impl),ntruprime_dispatch_core_invsntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup1277; printf("core_invsntrup1277 selected implementation %s compiler %s\n",ntruprime_core_invsntrup1277_implementation(),ntruprime_core_invsntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_invsntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_invsntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_invsntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_invsntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_invsntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_invsntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_invsntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_invsntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_invsntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_invsntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_invsntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup1277")) return; storage_core_invsntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_invsntrup1277_h = aligned(storage_core_invsntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_invsntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_invsntrup1277_n = aligned(storage_core_invsntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_invsntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_invsntrup1277_k = aligned(storage_core_invsntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_invsntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_invsntrup1277_c = aligned(storage_core_invsntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_invsntrup1277_h2 = callocplus(maxalloc); test_core_invsntrup1277_h2 = aligned(storage_core_invsntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_invsntrup1277_n2 = callocplus(maxalloc); test_core_invsntrup1277_n2 = aligned(storage_core_invsntrup1277_n2,crypto_core_INPUTBYTES); storage_core_invsntrup1277_k2 = callocplus(maxalloc); test_core_invsntrup1277_k2 = aligned(storage_core_invsntrup1277_k2,crypto_core_KEYBYTES); storage_core_invsntrup1277_c2 = callocplus(maxalloc); test_core_invsntrup1277_c2 = aligned(storage_core_invsntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_invsntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup1277();++impl) forked(test_core_invsntrup1277_impl,impl); ++test_core_invsntrup1277_h; ++test_core_invsntrup1277_n; ++test_core_invsntrup1277_k; ++test_core_invsntrup1277_c; ++test_core_invsntrup1277_h2; ++test_core_invsntrup1277_n2; ++test_core_invsntrup1277_k2; ++test_core_invsntrup1277_c2; } free(storage_core_invsntrup1277_c2); free(storage_core_invsntrup1277_k2); free(storage_core_invsntrup1277_n2); free(storage_core_invsntrup1277_h2); free(storage_core_invsntrup1277_c); free(storage_core_invsntrup1277_k); free(storage_core_invsntrup1277_n); free(storage_core_invsntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_invsntrup653.c0000644000000000000000000010515414705505542023360 0ustar rootroot/* ----- core/invsntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_invsntrup653_checksums[] = { "783437aa0948fbed0301273c0cd5c08de5d3cd1cec0b5ee2e4794efee2bdbc6c", "f7eec5214a2b2c85244e55ffc91787ecbd8c7e8c501ac4f01e4375c7c401e222", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_invsntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_invsntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_invsntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_invsntrup653_CONSTBYTES static void *storage_core_invsntrup653_h; static unsigned char *test_core_invsntrup653_h; static void *storage_core_invsntrup653_n; static unsigned char *test_core_invsntrup653_n; static void *storage_core_invsntrup653_k; static unsigned char *test_core_invsntrup653_k; static void *storage_core_invsntrup653_c; static unsigned char *test_core_invsntrup653_c; static void *storage_core_invsntrup653_h2; static unsigned char *test_core_invsntrup653_h2; static void *storage_core_invsntrup653_n2; static unsigned char *test_core_invsntrup653_n2; static void *storage_core_invsntrup653_k2; static unsigned char *test_core_invsntrup653_k2; static void *storage_core_invsntrup653_c2; static unsigned char *test_core_invsntrup653_c2; #define precomputed_core_invsntrup653_NUM 4 static const unsigned char precomputed_core_invsntrup653_h[precomputed_core_invsntrup653_NUM][crypto_core_OUTPUTBYTES] = { {137,1,73,7,39,250,250,3,220,8,48,251,172,253,70,1,34,8,118,253,136,7,119,254,19,255,52,1,240,248,28,251,44,252,134,4,56,5,158,5,126,3,45,249,180,251,203,2,100,4,101,252,53,254,13,247,140,4,178,1,79,8,165,252,54,253,125,251,168,252,250,247,152,250,252,255,216,4,224,5,43,249,149,3,242,7,26,248,111,249,207,2,197,1,28,255,86,8,2,249,236,4,182,253,152,250,119,3,67,7,60,7,103,1,232,247,41,251,143,250,80,249,224,249,241,250,235,0,38,4,234,0,221,254,83,250,112,2,167,254,215,250,126,7,248,249,135,252,50,250,204,251,65,0,93,247,240,3,26,252,159,253,196,251,3,5,242,251,104,2,237,3,179,252,56,255,230,252,92,4,167,0,219,251,242,250,51,0,171,247,36,249,197,247,63,5,204,0,202,253,103,247,197,3,78,4,125,250,161,248,213,252,220,8,62,254,230,4,229,5,173,250,63,8,35,3,20,5,107,6,200,252,13,254,4,248,194,5,20,3,17,252,44,2,201,3,125,254,156,3,247,0,95,2,77,249,219,248,255,255,249,5,218,249,173,8,125,252,108,6,173,8,179,8,12,252,12,247,114,8,60,3,118,1,154,250,5,249,82,0,12,6,62,252,172,5,72,2,130,7,196,1,85,1,162,4,127,8,41,7,103,250,244,7,70,3,121,252,221,247,190,0,156,2,128,4,9,5,215,4,33,1,161,255,59,1,216,0,208,1,221,0,224,254,90,252,221,255,107,0,161,6,242,255,20,247,111,250,83,252,200,253,24,249,109,255,132,252,10,248,164,250,172,3,232,2,54,2,92,248,117,247,198,8,181,2,223,250,54,247,236,247,102,251,101,4,189,252,153,248,30,6,119,251,49,254,122,252,96,249,210,2,53,3,164,0,84,252,46,4,206,255,53,8,62,1,239,4,177,8,220,6,229,6,129,8,148,249,232,2,136,253,187,253,15,2,31,0,147,253,127,255,202,5,123,247,250,2,165,255,7,7,20,255,243,1,43,0,178,252,81,247,222,3,158,0,102,251,209,248,241,254,71,8,221,3,240,7,204,0,231,1,48,0,130,0,248,251,106,251,105,4,139,254,247,4,191,251,71,0,213,7,193,252,134,2,137,254,238,255,225,4,202,6,171,255,252,6,64,5,141,247,152,250,184,2,201,250,162,4,145,248,200,5,222,248,236,7,39,247,97,255,206,247,43,253,191,4,135,251,152,3,95,247,94,247,229,253,206,248,156,3,26,253,3,8,78,5,191,2,222,251,43,253,159,253,171,253,104,253,143,0,120,4,116,250,192,249,149,2,27,3,16,3,190,253,244,247,60,249,175,251,208,251,112,6,230,249,253,251,123,250,158,255,15,6,235,253,36,6,201,254,229,7,254,2,62,8,127,7,170,4,231,255,112,5,241,248,111,4,202,4,155,255,205,251,223,251,182,5,176,248,206,3,246,248,153,5,117,254,255,255,89,2,93,249,180,6,145,3,5,1,201,248,154,8,60,249,31,247,39,3,191,253,28,8,56,0,24,250,63,3,55,249,75,251,232,2,14,250,230,252,100,247,251,5,114,250,50,5,158,6,145,254,24,4,116,0,103,248,219,249,118,251,121,0,87,252,143,6,152,3,240,6,129,254,125,252,236,3,160,252,120,251,59,248,224,251,195,250,46,252,36,250,248,4,13,7,226,4,197,7,161,250,223,252,140,8,149,5,31,255,50,255,126,2,213,3,234,6,246,1,193,3,132,2,101,5,138,255,249,249,179,8,37,247,89,0,241,4,155,8,247,5,161,252,43,2,219,8,130,1,15,248,237,3,243,252,216,7,102,250,154,250,114,6,172,255,247,249,75,3,3,250,11,8,70,3,207,5,36,0,173,250,37,3,97,2,69,0,204,247,192,253,239,0,31,3,11,8,101,251,197,2,154,247,72,8,108,8,80,248,193,252,131,248,149,7,82,252,241,248,27,253,54,250,132,0,78,4,29,6,247,249,19,0,148,7,93,250,157,253,83,249,237,0,35,255,14,6,220,3,187,5,84,8,202,252,156,2,211,255,159,253,166,7,181,252,180,252,245,252,167,7,67,253,247,6,108,248,248,6,100,253,113,248,210,254,101,0,60,1,40,253,21,250,67,5,45,7,145,250,102,1,69,6,32,2,156,254,205,249,38,1,16,4,211,253,65,2,219,248,239,250,40,2,46,2,178,7,134,250,90,248,132,247,185,4,157,5,182,255,115,2,1,247,252,254,169,250,187,6,221,254,204,5,99,248,193,251,141,6,62,0,203,7,175,253,89,248,108,251,180,0,60,249,209,1,63,248,167,4,169,248,74,248,92,4,180,8,97,254,67,0,44,251,152,1,163,0,138,1,113,250,138,252,71,6,68,6,180,250,221,7,253,3,108,1,236,248,107,251,167,248,181,252,49,6,37,1,92,6,21,250,138,247,92,2,220,255,13,250,59,7,24,247,176,247,96,255,128,0,209,6,190,251,163,4,226,8,227,5,254,246,138,7,182,249,197,2,249,249,158,3,213,7,191,1,199,4,41,5,29,6,46,255,75,3,138,4,61,6,253,253,217,7,34,3,207,3,108,7,111,2,156,252,40,247,117,0,0,252,42,255,175,0,21,5,205,8,252,0,130,0,20,8,153,255,156,252,14,253,39,2,194,1,223,253,32,253,216,251,70,2,231,8,117,254,90,5,122,254,84,250,50,7,98,253,222,252,213,255,204,1,157,254,23,251,50,1,143,254,174,7,171,1,170,8,244,6,101,0,73,250,207,255,16,247,112,250,37,247,70,248,174,253,138,255,255,3,206,255,61,5,129,8,107,3,67,2,255,253,124,6,213,5,241,251,239,253,124,0,219,2,206,8,199,248,163,4,227,4,21,254,175,249,0}, {19,252,187,1,169,254,232,247,47,5,42,4,165,7,141,3,229,2,208,4,237,7,177,5,175,250,44,250,238,8,180,249,19,254,182,2,210,250,5,9,211,0,145,4,121,2,69,251,11,250,79,252,116,7,78,4,172,5,122,6,112,254,67,5,169,3,200,255,32,248,22,248,103,4,23,247,141,1,169,253,171,251,46,249,146,253,215,254,246,1,145,0,200,4,95,6,196,252,12,255,47,4,91,2,128,6,210,249,209,252,178,250,137,247,252,248,61,253,109,2,70,248,83,5,27,247,79,253,181,6,54,5,19,8,105,2,169,3,129,6,212,8,127,7,233,1,252,0,161,248,239,247,89,4,214,252,133,253,222,251,226,249,107,253,71,254,62,254,71,8,16,2,65,1,18,2,39,254,113,249,119,254,71,6,207,3,161,249,220,7,242,248,21,8,112,4,198,8,175,2,246,3,98,7,39,252,20,254,0,3,237,2,253,250,12,7,210,250,6,7,224,252,109,254,80,6,174,4,98,248,154,7,237,253,143,249,35,6,118,2,192,2,230,248,198,8,218,4,202,247,155,4,55,1,213,5,184,0,37,251,180,7,221,5,53,248,195,251,211,2,132,7,162,2,68,6,201,254,16,254,150,254,185,251,101,4,244,248,150,7,253,0,158,250,166,254,13,7,193,252,47,8,18,3,87,6,14,8,60,249,4,9,146,7,160,2,94,253,31,1,116,253,190,250,92,254,32,4,56,7,52,8,119,247,135,252,226,249,245,5,68,248,210,1,73,2,239,8,108,249,83,255,50,251,17,0,103,7,168,1,12,5,100,8,131,255,26,247,154,4,125,252,50,252,65,6,130,3,152,2,46,255,222,255,40,0,237,2,205,6,119,254,63,249,135,0,172,250,232,252,119,0,62,248,207,247,37,247,182,251,66,4,40,251,21,248,90,5,103,250,226,6,253,254,246,254,226,3,172,6,45,0,185,7,130,248,227,254,59,248,226,249,180,2,205,255,132,4,104,8,25,4,247,248,193,252,1,252,249,255,174,249,126,0,29,8,224,5,172,254,220,251,180,255,39,255,147,250,160,7,223,4,55,253,246,4,221,5,24,2,172,7,54,4,178,7,78,253,207,8,47,250,51,6,161,250,36,1,105,7,107,248,19,250,36,3,235,8,195,249,149,251,56,247,195,254,179,255,152,8,65,7,68,3,97,6,67,5,136,4,125,251,60,7,184,251,198,7,133,247,103,247,141,7,193,247,174,2,23,5,222,247,21,1,161,1,42,251,46,2,167,255,211,255,48,5,201,2,17,253,158,249,20,248,186,250,68,251,253,0,17,5,228,248,42,8,136,253,9,253,130,251,11,0,29,2,28,6,7,4,121,253,197,253,165,1,242,5,255,252,238,254,195,253,66,252,95,252,235,254,220,3,138,6,8,250,171,253,23,254,131,1,192,253,244,254,148,254,147,249,90,251,244,6,81,0,201,253,96,2,18,4,84,2,209,1,152,254,49,250,213,255,252,248,124,1,121,248,198,255,132,0,89,253,104,7,184,250,31,2,113,6,164,249,23,247,79,8,167,2,103,8,148,255,55,249,62,254,4,255,112,249,103,251,6,0,244,254,152,8,40,3,254,3,231,250,152,6,212,7,80,251,167,247,48,4,207,252,148,7,20,5,212,7,100,4,207,250,205,6,56,253,183,4,19,247,81,250,20,7,226,249,66,5,137,255,187,247,121,4,167,0,163,255,176,6,91,4,236,8,113,255,174,255,103,7,185,251,150,252,77,6,139,5,194,254,211,252,167,5,242,8,18,1,168,255,233,251,35,252,120,252,9,255,151,250,184,254,82,0,113,5,64,248,73,6,17,253,87,255,18,255,64,5,255,5,214,6,129,6,77,248,252,254,96,8,209,1,175,7,199,253,97,248,17,6,21,247,31,253,127,253,250,249,51,249,237,8,192,2,161,4,230,5,162,247,249,1,102,6,19,253,53,0,235,0,8,1,145,251,180,2,192,5,129,0,88,254,161,0,190,2,147,247,185,0,40,3,220,4,152,253,44,8,121,252,177,247,68,5,126,251,207,5,65,255,172,252,160,8,196,251,243,0,54,248,180,6,173,249,163,252,39,6,83,2,38,1,170,250,39,253,242,250,210,4,159,3,248,249,78,252,23,8,7,7,17,3,109,4,169,247,128,6,163,3,6,254,54,252,167,248,244,3,169,0,77,254,121,255,140,1,136,255,49,2,16,253,48,1,157,253,41,3,133,1,185,250,212,6,124,247,87,1,111,7,157,0,161,255,204,2,173,0,66,254,173,5,214,4,185,250,110,6,12,251,194,7,76,253,134,251,171,7,179,7,38,250,217,4,10,4,58,250,237,2,7,255,191,255,10,5,53,247,90,6,163,3,110,247,208,5,160,2,173,248,137,250,198,0,7,4,31,0,70,8,233,252,197,7,2,5,162,1,221,248,140,0,221,5,223,3,81,1,86,2,237,2,136,247,42,6,199,1,70,254,179,251,38,249,83,253,200,0,73,1,236,253,122,250,64,252,33,252,158,3,9,253,213,249,6,255,12,7,152,248,223,253,165,6,254,8,122,1,125,247,82,252,8,249,215,254,105,247,86,250,47,4,189,252,195,3,51,8,43,249,140,7,32,252,84,1,34,250,87,251,220,249,35,254,85,251,222,249,254,5,75,249,193,250,22,250,243,2,47,4,3,4,19,0,207,3,112,253,40,253,203,250,91,251,123,7,113,1,202,255,37,255,221,250,133,0,124,2,216,3,70,6,24,251,101,2,7,5,135,7,128,3,210,254,55,252,51,254,20,1,64,249,108,4,18,248,98,8,58,5,73,7,21,3,43,249,35,7,224,248,84,3,237,5,155,247,78,248,94,1,30,248,160,255,54,8,121,5,165,4,33,6,74,2,37,255,186,5,176,251,0}, {90,248,62,253,107,5,192,251,143,251,113,3,248,1,53,250,86,252,169,254,69,7,16,1,136,4,143,2,181,2,70,247,62,4,209,254,244,5,193,3,195,254,121,4,84,2,215,255,107,5,125,0,1,7,241,254,95,247,110,255,167,5,166,254,64,1,98,249,6,253,230,0,64,251,249,7,146,2,65,2,105,5,96,248,88,1,145,2,252,0,217,249,222,249,35,252,148,2,141,248,70,4,92,2,242,8,236,255,134,254,44,6,151,8,63,254,4,252,145,250,73,254,163,251,10,249,23,251,142,4,200,253,180,0,133,0,162,247,136,253,146,3,229,252,18,248,69,247,165,7,68,251,66,8,30,0,178,3,148,3,129,254,162,2,35,0,242,251,153,250,124,255,207,0,70,251,87,5,100,253,241,3,70,254,60,255,83,0,221,1,254,7,25,3,149,1,133,248,191,249,85,1,138,7,169,248,156,254,236,2,48,254,208,6,8,6,127,7,20,251,173,248,81,5,71,7,87,251,165,3,75,6,6,248,96,2,164,0,193,249,214,253,245,6,137,5,153,8,112,254,15,248,189,6,115,247,194,255,126,1,187,8,176,247,211,251,125,250,24,5,136,7,92,251,77,249,216,254,177,0,79,250,116,254,15,249,223,2,200,1,215,1,51,250,39,247,210,7,135,8,111,2,203,252,11,251,150,2,80,0,98,0,3,6,68,1,220,1,228,250,128,7,75,248,198,2,155,3,86,5,205,6,7,253,61,6,154,0,87,0,96,2,159,3,14,250,74,250,164,4,133,252,252,4,248,252,95,249,236,2,110,255,137,8,210,7,129,255,172,250,143,247,200,1,37,7,37,4,128,251,33,1,165,251,218,252,240,253,7,251,160,251,244,6,207,247,83,1,235,250,128,249,45,249,141,254,122,254,207,253,181,247,233,2,253,254,225,8,209,0,222,250,35,252,138,6,213,250,185,254,61,252,141,254,187,3,156,1,240,1,37,250,46,3,101,6,193,4,121,5,48,2,218,252,148,0,206,2,151,253,182,254,65,250,145,1,58,8,101,5,29,252,225,6,143,255,134,255,235,253,50,0,222,8,16,247,121,2,128,253,148,248,152,2,222,3,153,250,13,5,140,4,59,250,40,249,85,6,103,1,136,250,83,8,127,254,76,251,140,6,74,248,157,253,240,249,50,250,190,247,32,249,126,3,188,251,251,251,197,255,190,250,190,3,74,3,195,8,47,8,208,252,11,8,193,4,41,253,79,6,129,248,13,1,165,2,217,251,250,254,118,250,169,1,126,249,99,1,59,250,135,254,46,250,34,253,100,4,32,252,97,247,26,250,74,249,43,253,61,253,55,0,124,251,4,255,29,253,173,253,216,2,135,255,102,254,205,252,97,6,120,250,17,6,126,0,255,4,41,4,203,253,32,2,56,4,124,253,217,253,111,4,67,7,6,254,220,8,158,252,33,2,93,249,53,255,51,250,66,6,173,8,224,252,219,5,118,2,70,1,124,4,72,2,19,2,219,254,249,253,147,251,23,0,22,247,180,254,36,4,244,253,141,254,17,251,69,5,53,249,33,250,127,7,41,6,77,254,55,251,175,6,62,247,210,3,246,253,69,7,82,254,244,1,155,3,82,4,150,4,130,248,162,3,194,255,48,5,117,3,151,249,136,8,225,5,168,8,86,0,147,249,135,247,203,252,198,255,133,2,158,0,149,0,139,4,99,251,135,3,49,254,159,5,142,4,7,250,33,252,195,1,4,3,245,252,6,248,195,250,89,248,118,2,4,4,101,4,145,5,104,7,89,2,119,6,8,254,65,250,79,7,214,4,231,253,52,250,102,5,184,8,37,7,72,255,252,252,97,248,92,1,110,252,100,2,205,6,135,0,141,8,6,3,160,2,180,5,238,248,199,248,85,249,37,255,85,252,114,1,108,251,133,6,149,253,178,247,148,1,219,249,88,5,27,1,35,0,22,253,204,255,182,0,192,253,216,1,1,247,56,249,96,247,94,252,163,254,197,7,10,255,175,254,56,3,105,1,241,8,58,4,175,4,166,252,223,253,158,253,184,1,157,254,55,254,118,3,138,5,243,250,217,254,100,3,40,249,120,8,87,250,162,5,189,4,117,0,86,247,73,8,0,7,177,251,134,0,202,6,91,250,57,3,75,3,213,7,183,7,44,6,148,247,249,5,84,247,126,255,50,8,95,7,79,4,228,4,157,248,81,4,170,251,161,4,131,252,41,255,232,255,151,4,203,248,183,247,192,250,127,3,163,251,190,253,169,2,84,0,159,2,170,251,39,4,152,251,111,6,73,2,215,5,96,7,140,2,134,7,93,2,120,8,39,247,82,249,223,1,84,247,199,0,184,254,161,253,35,8,118,0,122,250,69,249,43,251,45,6,12,252,200,5,126,253,172,247,51,0,155,252,107,248,161,6,147,4,25,248,223,3,71,6,53,254,167,6,107,6,100,3,52,252,184,0,180,251,40,6,204,7,112,251,141,6,65,254,8,253,35,255,111,7,82,0,20,247,78,250,212,7,158,254,148,251,227,2,141,7,165,8,113,1,164,247,221,249,242,3,194,0,162,7,64,252,159,248,3,248,234,3,223,248,96,253,63,253,20,251,56,249,173,6,16,251,112,0,149,0,207,1,53,249,208,249,62,2,33,1,188,251,12,7,191,4,133,248,128,253,83,8,112,249,195,1,85,249,94,3,158,254,40,1,77,7,149,253,227,250,53,1,7,6,182,248,39,0,79,255,93,251,168,247,190,5,90,248,80,248,158,8,200,249,161,8,151,0,178,251,147,253,192,0,174,4,92,2,113,255,147,251,137,4,215,8,205,2,102,1,171,249,35,251,197,8,213,1,60,2,229,247,222,249,34,5,77,6,244,1,37,1,56,0,52,6,161,252,208,255,101,0,46,249,236,0,0}, {134,4,172,4,217,251,187,252,161,0,224,7,180,0,25,250,126,8,120,0,65,249,160,249,12,6,254,249,198,251,62,7,171,254,180,251,230,8,116,254,91,253,69,2,4,5,81,6,177,248,179,254,217,2,79,252,186,2,160,7,198,8,78,254,121,5,91,2,214,8,3,253,183,7,88,250,53,250,174,4,136,251,166,251,178,6,170,250,59,7,32,255,224,251,110,0,65,0,194,5,37,253,195,3,214,250,144,248,130,8,56,7,78,4,18,252,128,249,225,7,247,2,54,0,216,252,202,253,203,5,128,4,50,7,144,0,43,5,226,250,49,3,24,249,79,254,193,250,27,249,255,246,90,252,254,246,193,247,223,247,61,250,241,5,242,254,123,248,225,2,97,250,21,247,8,253,243,3,84,253,114,6,69,252,254,251,63,4,16,6,95,5,160,0,183,6,40,251,120,252,20,252,139,248,202,1,154,2,46,248,102,249,54,2,68,247,196,255,194,4,37,250,104,6,61,253,105,249,39,251,151,249,95,252,58,6,32,248,31,249,31,251,153,4,101,4,135,7,235,7,152,253,59,6,22,253,174,252,97,250,141,4,157,255,75,7,136,248,94,3,56,4,138,6,215,254,193,3,207,4,255,255,20,7,116,0,84,255,150,248,190,247,92,254,56,0,30,2,29,6,139,249,244,3,199,0,201,250,77,1,63,253,171,2,127,248,56,2,186,251,248,255,34,250,127,0,52,252,49,4,229,1,31,3,167,254,212,1,131,4,18,0,38,248,12,8,165,248,87,255,38,6,24,247,53,253,238,252,44,250,216,255,221,6,184,8,155,0,127,253,230,4,7,5,66,2,110,248,169,254,93,251,232,254,16,4,51,3,23,3,6,253,35,253,243,3,238,4,19,250,42,251,221,251,70,6,84,1,250,0,174,3,6,6,0,2,75,249,160,247,1,6,67,1,129,4,209,6,210,3,84,0,71,1,219,253,65,6,229,247,255,4,234,4,141,250,51,1,235,248,97,4,211,7,217,248,141,6,23,252,145,252,200,0,140,254,77,6,113,250,199,251,239,255,44,3,205,248,75,5,222,254,180,252,40,2,143,249,118,247,253,6,182,247,135,4,30,2,234,7,204,252,134,255,180,2,229,255,48,251,185,3,220,251,35,253,209,4,143,5,177,251,65,6,61,5,188,247,5,2,140,254,119,248,186,247,94,6,245,7,110,1,189,253,119,3,129,1,159,247,26,4,223,0,25,2,164,1,254,249,121,3,65,3,59,249,113,2,46,4,110,0,211,247,250,3,180,249,126,8,24,8,60,249,136,0,94,4,236,253,39,255,229,248,197,8,189,247,15,8,60,255,38,248,160,4,181,4,104,3,88,3,65,8,204,3,129,249,204,4,128,3,251,4,254,4,220,252,66,255,240,254,82,251,152,5,27,255,176,251,204,253,154,7,168,3,228,1,36,249,68,6,13,251,169,2,6,253,23,7,137,7,152,6,104,253,71,248,237,2,145,251,227,0,133,0,184,249,122,8,33,0,0,8,151,6,82,251,199,3,60,6,76,247,142,4,53,7,232,7,32,5,158,2,101,8,163,249,135,8,36,0,4,251,206,253,30,2,72,252,66,6,193,8,50,254,73,255,45,252,38,4,52,253,72,7,35,247,159,254,185,253,124,252,152,254,196,5,51,255,90,253,208,3,152,252,175,6,169,252,117,251,63,251,167,251,143,253,72,248,117,6,65,7,16,1,85,2,106,253,156,253,102,253,146,2,136,2,156,247,226,4,148,253,29,8,125,4,123,1,37,5,112,4,80,3,143,248,220,1,107,253,171,8,241,3,14,2,179,253,36,6,23,3,215,250,46,7,48,255,65,8,75,2,247,254,103,2,164,254,205,254,166,250,50,252,87,247,26,250,41,8,13,2,146,3,228,3,225,3,95,248,106,253,247,248,56,252,91,3,26,250,15,254,71,248,187,1,16,0,19,251,94,254,255,8,39,250,25,247,83,8,169,8,196,254,118,8,101,4,109,4,28,247,130,0,140,253,13,1,154,249,41,6,214,3,22,8,44,3,59,6,193,5,242,4,41,3,232,251,122,0,75,1,219,254,70,252,128,247,159,248,185,251,217,249,104,251,138,255,159,251,124,248,171,255,177,248,134,7,228,0,135,2,231,6,170,247,29,3,30,0,101,255,166,251,160,252,175,248,97,249,237,4,109,250,159,255,116,8,242,5,226,7,18,8,205,255,191,253,224,249,120,252,183,2,36,250,244,7,172,4,158,254,87,2,246,0,112,3,217,247,37,6,64,7,151,1,100,252,176,6,172,5,106,2,194,251,166,250,221,7,224,4,34,8,197,6,100,0,238,0,167,8,39,250,9,1,201,249,76,254,159,253,121,1,150,247,30,255,150,247,158,248,20,1,7,5,192,248,16,251,22,0,207,253,124,250,183,255,123,255,141,4,210,249,242,8,254,8,11,253,44,0,202,248,173,253,98,6,63,252,68,2,186,255,236,3,17,251,151,6,219,6,20,0,153,253,125,250,12,7,43,252,57,251,229,249,34,248,58,250,93,255,220,3,157,254,108,6,10,253,176,255,243,254,140,255,13,7,116,252,56,251,49,4,155,1,27,247,206,5,63,4,93,0,192,2,109,6,75,6,64,253,18,251,107,2,123,0,105,247,248,250,250,253,98,4,106,254,4,249,152,254,55,249,125,6,201,247,76,8,233,3,149,255,110,6,67,5,124,253,159,0,89,5,170,251,233,255,8,1,135,249,102,0,122,7,132,254,250,248,146,250,236,251,116,251,61,3,152,3,116,249,247,248,35,250,17,2,176,251,193,249,84,1,156,3,78,255,90,2,12,253,93,2,54,255,16,247,186,251,77,4,183,250,64,249,137,250,132,251,246,248,218,0,5,252,26,249,23,2,36,254,115,255,0}, } ; static const unsigned char precomputed_core_invsntrup653_n[precomputed_core_invsntrup653_NUM][crypto_core_INPUTBYTES] = { {13,228,255,151,110,255,243,150,57,100,53,227,217,228,223,65,238,82,117,179,180,231,36,165,125,33,217,54,7,124,183,135,8,64,148,162,67,6,79,179,76,253,200,139,204,232,228,14,163,101,2,67,254,65,212,228,8,67,142,212,243,54,116,159,143,84,84,63,35,134,224,123,23,39,29,253,251,153,197,157,81,160,142,59,233,111,233,17,144,227,194,100,33,116,150,237,205,115,160,178,167,24,101,235,169,49,58,30,152,109,120,104,100,57,239,46,250,47,247,40,110,231,108,167,1,56,6,19,207,50,123,152,158,151,197,230,75,58,54,125,102,137,250,195,222,136,154,62,19,147,7,81,204,211,137,75,151,51,230,116,57,62,143,23,61,16,163,97,183,164,3,194,167,17,206,253,185,78,43,128,134,32,153,193,215,95,209,104,31,253,137,39,226,190,225,168,100,255,88,108,11,224,91,87,194,155,28,51,186,179,88,17,118,233,200,213,36,68,243,167,26,70,127,11,187,196,179,48,130,157,140,189,129,12,35,250,207,77,116,241,226,185,178,176,63,249,46,235,56,255,65,150,5,54,231,221,55,1,198,196,46,72,255,205,29,224,30,98,187,90,132,173,68,134,152,45,214,205,115,246,113,115,129,213,60,112,81,160,55,230,235,36,179,233,130,180,26,100,47,141,181,144,63,60,168,134,32,138,30,90,72,230,127,187,128,121,231,60,186,115,54,189,127,176,53,227,74,69,183,143,117,175,203,45,199,124,244,22,147,245,74,210,219,202,104,55,28,124,111,42,253,108,221,71,231,105,185,170,112,188,36,208,100,236,23,110,75,150,22,118,7,14,207,92,171,0,248,182,230,110,118,41,204,233,42,57,183,151,128,244,230,97,233,232,239,123,103,205,206,58,166,75,6,135,159,200,62,197,173,215,89,242,228,17,86,211,44,222,113,0,117,237,98,180,87,10,164,93,169,226,84,243,74,2,45,114,72,248,32,94,146,16,34,229,141,159,152,252,88,223,17,243,166,13,3,76,68,61,58,69,54,31,118,79,58,124,69,149,10,32,180,248,137,16,9,180,171,160,239,34,195,122,25,191,135,138,170,193,133,79,104,16,51,43,40,42,198,174,237,253,84,225,65,255,201,199,82,14,125,42,243,35,251,116,172,192,16,21,192,88,113,215,31,202,160,223,52,153,99,136,240,111,49,191,194,225,142,22,140,39,139,118,215,47,8,221,221,61,135,91,229,177,240,198,149,200,10,183,76,135,255,182,106,64,24,179,119,89,35,10,139,79,64,79,32,134,207,145,249,160,246,52,37,103,234,42,189,17,66,102,102,31,88,191,62,105,137,221,184,233,161,119,47,177,46,107,131,0,16,17,62,71,40,28,171,135,139,60,145,121,12,138,201,19,230,161,3,135,115,115,105,98,50,243,2,211,200,150,248,190,94,24,160,98,242,201,9,46,78,165,110,25,141}, {189,141,228,128,35,176,167,250,73,142,40,241,52,2,158,216,143,144,17,113,96,134,32,173,231,89,159,192,13,129,9,87,83,151,24,174,172,110,199,65,155,98,28,218,68,207,183,193,171,211,199,30,43,151,2,235,225,254,166,184,219,100,134,2,1,0,156,84,80,83,107,143,26,10,228,51,244,119,65,39,89,245,175,6,148,112,224,121,161,121,92,201,180,2,179,179,50,177,35,172,4,149,186,205,170,116,20,98,135,81,25,79,176,187,93,159,131,113,235,188,125,133,228,200,133,77,172,136,97,225,111,227,158,51,68,70,239,57,141,76,142,112,17,220,151,107,246,130,191,126,107,13,148,25,29,118,51,47,87,37,244,57,146,73,1,160,184,58,106,214,62,64,250,1,174,37,56,180,38,199,156,247,68,222,164,168,124,91,200,85,242,172,57,77,105,179,200,27,73,232,13,169,5,206,24,48,16,96,238,237,181,212,247,206,174,175,196,138,118,250,25,114,234,132,86,90,209,46,81,127,200,59,205,196,127,28,62,238,100,90,89,99,38,185,85,20,39,6,84,15,64,114,220,79,101,119,31,190,204,243,27,107,23,159,98,105,114,42,118,30,218,228,228,146,222,213,143,60,227,109,232,64,13,179,105,198,247,161,2,91,27,117,11,199,176,73,174,188,217,43,49,164,172,27,234,115,213,52,63,19,247,128,234,115,80,69,41,255,124,52,254,217,166,85,165,36,251,144,32,169,78,48,136,170,66,31,169,100,142,255,221,163,219,16,24,59,144,154,252,24,143,170,199,42,65,75,172,40,170,203,65,226,21,32,70,31,121,70,19,235,224,127,254,207,224,160,100,42,112,162,142,68,190,71,213,96,56,143,48,44,25,61,56,226,96,130,138,151,241,180,194,145,41,236,194,25,147,238,79,233,219,93,206,169,173,220,121,59,197,184,72,61,0,30,13,120,15,99,133,201,219,83,19,70,111,102,183,216,174,37,94,243,133,50,159,154,132,155,33,185,239,46,134,130,155,142,109,61,245,85,62,255,121,219,79,95,51,11,202,76,183,79,244,50,239,134,3,138,119,34,103,84,21,190,134,88,86,23,177,34,27,189,160,106,104,43,132,62,204,63,227,124,181,111,238,90,252,190,125,29,202,34,214,102,253,248,31,135,57,127,191,18,9,7,232,38,140,150,16,19,147,145,180,200,114,236,223,114,11,5,217,177,33,132,202,244,80,131,129,13,127,149,141,216,88,106,166,211,166,192,59,0,250,27,223,200,178,8,182,69,129,215,85,49,112,68,211,112,16,148,41,157,63,238,197,212,163,97,174,253,80,25,51,33,204,250,165,124,102,14,241,19,16,246,60,25,206,100,144,234,35,72,24,183,98,16,140,91,191,212,8,169,41,183,65,66,220,200,192,68,252,146,175,124,106,36,21,197,14,228,144,2,207,114,219,18,3,168,192,249,213,13,220}, {254,48,115,31,209,53,3,3,152,99,182,68,238,158,205,57,158,10,248,110,45,36,253,60,157,197,123,240,168,3,138,167,253,203,116,65,69,122,188,215,207,223,32,192,39,234,23,102,81,158,239,176,153,76,237,100,88,133,210,203,52,234,203,53,189,147,166,195,166,226,221,196,109,115,17,19,58,0,68,85,89,230,161,190,86,244,11,6,82,128,40,56,235,137,90,238,66,184,30,79,172,10,84,42,94,40,165,116,154,68,253,38,195,94,8,159,241,13,144,213,139,55,237,92,63,236,154,120,115,224,129,137,142,186,203,211,12,55,77,145,85,16,168,199,30,237,80,89,147,108,92,104,183,42,188,247,29,123,32,42,117,27,191,51,166,123,219,214,176,178,58,161,198,237,141,167,206,163,128,246,221,50,178,112,159,130,26,105,20,106,138,114,27,232,154,50,163,117,47,109,29,73,222,134,153,52,173,184,185,89,70,14,66,13,125,79,103,111,32,113,40,67,207,95,183,255,115,74,52,168,148,242,91,84,198,51,162,61,165,161,48,38,23,4,41,39,45,196,113,102,244,162,25,11,91,175,223,222,127,74,207,200,128,202,101,149,160,196,58,27,14,223,215,66,118,54,131,234,171,200,194,149,109,212,160,201,162,215,174,167,136,141,213,98,149,250,247,178,124,211,208,248,147,63,239,123,90,189,2,252,209,132,51,163,96,122,49,231,64,171,185,140,32,111,141,103,32,245,71,165,10,234,110,170,193,84,109,83,241,99,157,172,189,31,169,176,149,214,209,56,22,71,52,163,113,158,29,245,79,202,95,133,158,235,87,33,212,96,198,86,72,204,174,3,169,73,74,52,104,91,144,225,3,244,4,56,233,29,95,3,78,57,198,1,119,255,241,213,59,46,243,143,156,62,193,132,146,33,20,132,71,12,42,159,240,2,99,35,4,58,203,111,56,224,205,36,183,150,203,83,187,2,187,151,252,144,192,207,154,125,69,139,35,49,12,151,145,170,250,105,241,112,136,126,132,32,168,141,196,229,72,232,124,47,222,229,18,129,249,43,124,223,218,38,72,33,249,232,150,172,250,68,241,12,128,210,200,202,76,102,7,240,178,20,63,255,28,15,167,205,124,229,137,42,3,13,64,66,41,222,108,126,216,92,86,20,101,227,189,109,7,64,120,162,19,218,153,109,65,16,193,224,245,207,113,156,130,17,25,59,80,27,4,23,180,98,33,68,232,240,59,250,130,231,219,6,156,146,198,124,112,106,110,192,194,160,2,65,82,207,141,74,182,250,26,135,72,15,183,217,194,59,61,93,177,87,235,169,107,201,251,173,189,68,116,151,30,130,137,14,217,148,55,57,94,53,199,18,118,55,229,133,5,77,180,56,71,81,183,224,134,255,92,173,77,158,47,94,253,90,33,243,60,234,32,188,65,247,208,37,238,217,16,142,61,104,224,217,169,220,232,217,104}, {161,178,200,112,62,231,41,110,32,114,199,67,190,32,247,23,242,211,46,83,141,133,169,166,35,174,110,26,89,211,126,92,52,150,108,192,110,26,20,216,144,61,15,247,132,226,241,192,62,237,149,157,69,246,100,216,71,135,4,165,24,64,150,187,27,58,195,191,83,174,186,95,65,145,53,202,44,77,10,174,101,240,245,10,37,33,102,191,216,23,61,113,121,193,170,145,96,39,46,214,244,107,226,191,38,204,27,126,194,207,35,179,69,241,214,215,177,128,253,36,210,191,167,248,97,132,96,225,111,89,120,21,232,92,64,75,208,83,242,231,138,82,161,181,6,191,9,74,146,188,125,78,168,45,11,88,169,181,2,26,72,161,127,29,119,52,115,255,114,89,117,78,234,34,158,63,240,1,23,99,56,19,109,143,126,46,199,200,83,50,101,169,225,250,100,139,233,123,116,148,33,101,214,108,218,133,173,33,180,70,118,207,35,7,117,221,230,198,154,146,103,120,207,105,12,234,246,25,108,182,120,213,145,16,240,62,16,249,80,235,165,208,145,185,158,97,115,227,145,173,108,11,165,127,86,234,86,168,113,33,72,140,177,102,71,220,250,200,139,151,122,30,234,163,73,105,62,6,162,191,12,201,104,114,188,92,150,97,221,229,174,197,216,164,126,17,98,157,105,145,115,240,249,89,207,250,218,187,44,139,116,120,58,54,171,19,10,75,253,177,213,161,4,86,196,56,251,174,95,194,16,159,120,158,48,245,152,22,173,243,137,159,235,41,113,246,237,160,117,11,208,10,24,31,229,29,186,108,43,109,115,47,11,199,155,98,228,31,56,74,235,218,214,179,176,125,87,254,4,112,57,216,13,101,40,65,23,158,244,24,221,37,239,76,60,192,191,123,193,6,87,243,206,123,241,3,113,126,44,198,9,147,205,116,98,8,74,12,182,15,211,214,210,156,55,67,185,165,58,176,226,8,248,8,61,253,149,96,148,115,17,11,206,208,247,185,119,30,130,9,17,126,104,107,91,190,44,252,184,21,214,178,49,51,132,157,162,59,161,214,48,98,171,126,214,194,250,56,53,243,56,255,2,241,50,117,88,29,47,94,169,93,215,116,37,70,101,136,154,65,251,157,202,59,100,165,54,242,125,79,161,28,181,216,101,61,122,132,220,36,155,26,98,81,100,195,221,45,210,136,20,42,243,165,29,76,224,251,226,241,84,10,31,32,223,251,213,116,131,79,41,220,48,0,73,91,142,124,96,49,3,121,67,27,120,116,241,140,30,218,198,131,160,26,200,67,78,198,50,99,55,227,108,84,247,103,167,133,192,197,64,197,114,225,249,234,136,205,76,83,96,190,164,204,198,179,220,34,226,165,105,4,156,85,255,112,156,226,211,174,82,46,104,146,74,246,177,138,87,156,28,55,94,98,185,38,71,104,122,28,122,161,116,229,137,55,230,32,161,133,84,240,120}, } ; static const unsigned char precomputed_core_invsntrup653_k[precomputed_core_invsntrup653_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_invsntrup653_c[precomputed_core_invsntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_invsntrup653_impl(long long impl) { unsigned char *h = test_core_invsntrup653_h; unsigned char *n = test_core_invsntrup653_n; unsigned char *k = test_core_invsntrup653_k; unsigned char *c = test_core_invsntrup653_c; unsigned char *h2 = test_core_invsntrup653_h2; unsigned char *n2 = test_core_invsntrup653_n2; unsigned char *k2 = test_core_invsntrup653_k2; unsigned char *c2 = test_core_invsntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_invsntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup653(impl); printf("core_invsntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup653_implementation(impl),ntruprime_dispatch_core_invsntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup653; printf("core_invsntrup653 selected implementation %s compiler %s\n",ntruprime_core_invsntrup653_implementation(),ntruprime_core_invsntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_invsntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_invsntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_invsntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_invsntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_invsntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_invsntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_invsntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_invsntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_invsntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_invsntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_invsntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup653")) return; storage_core_invsntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_invsntrup653_h = aligned(storage_core_invsntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_invsntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_invsntrup653_n = aligned(storage_core_invsntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_invsntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_invsntrup653_k = aligned(storage_core_invsntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_invsntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_invsntrup653_c = aligned(storage_core_invsntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_invsntrup653_h2 = callocplus(maxalloc); test_core_invsntrup653_h2 = aligned(storage_core_invsntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_invsntrup653_n2 = callocplus(maxalloc); test_core_invsntrup653_n2 = aligned(storage_core_invsntrup653_n2,crypto_core_INPUTBYTES); storage_core_invsntrup653_k2 = callocplus(maxalloc); test_core_invsntrup653_k2 = aligned(storage_core_invsntrup653_k2,crypto_core_KEYBYTES); storage_core_invsntrup653_c2 = callocplus(maxalloc); test_core_invsntrup653_c2 = aligned(storage_core_invsntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_invsntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup653();++impl) forked(test_core_invsntrup653_impl,impl); ++test_core_invsntrup653_h; ++test_core_invsntrup653_n; ++test_core_invsntrup653_k; ++test_core_invsntrup653_c; ++test_core_invsntrup653_h2; ++test_core_invsntrup653_n2; ++test_core_invsntrup653_k2; ++test_core_invsntrup653_c2; } free(storage_core_invsntrup653_c2); free(storage_core_invsntrup653_k2); free(storage_core_invsntrup653_n2); free(storage_core_invsntrup653_h2); free(storage_core_invsntrup653_c); free(storage_core_invsntrup653_k); free(storage_core_invsntrup653_n); free(storage_core_invsntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_invsntrup761.c0000644000000000000000000011557514705505542023370 0ustar rootroot/* ----- core/invsntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_invsntrup761_checksums[] = { "681d6c76cd117dbe30df650d7701ae3a75b82d0a916ed319e942e34d87726ab6", "e0a98560abe832360f4b8a8101491ccc7e1adaeafcf056b382ff9a16c24004b6", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_invsntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_invsntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_invsntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_invsntrup761_CONSTBYTES static void *storage_core_invsntrup761_h; static unsigned char *test_core_invsntrup761_h; static void *storage_core_invsntrup761_n; static unsigned char *test_core_invsntrup761_n; static void *storage_core_invsntrup761_k; static unsigned char *test_core_invsntrup761_k; static void *storage_core_invsntrup761_c; static unsigned char *test_core_invsntrup761_c; static void *storage_core_invsntrup761_h2; static unsigned char *test_core_invsntrup761_h2; static void *storage_core_invsntrup761_n2; static unsigned char *test_core_invsntrup761_n2; static void *storage_core_invsntrup761_k2; static unsigned char *test_core_invsntrup761_k2; static void *storage_core_invsntrup761_c2; static unsigned char *test_core_invsntrup761_c2; #define precomputed_core_invsntrup761_NUM 4 static const unsigned char precomputed_core_invsntrup761_h[precomputed_core_invsntrup761_NUM][crypto_core_OUTPUTBYTES] = { {140,8,204,253,247,247,3,0,59,255,251,2,102,3,216,4,157,247,253,5,208,251,23,255,71,248,172,5,140,6,2,4,171,3,21,4,128,0,13,247,162,250,23,252,12,4,0,4,247,7,95,7,123,255,39,254,107,248,89,248,227,1,116,7,164,1,145,250,20,3,164,8,189,247,198,250,37,249,156,250,63,254,13,255,223,7,181,3,158,2,218,248,0,253,56,250,54,2,183,249,5,252,30,253,232,1,213,250,213,253,254,248,172,0,133,247,8,253,97,8,47,251,95,249,56,254,121,3,60,8,61,249,34,252,222,8,203,0,127,252,135,249,63,251,20,252,6,5,187,250,101,255,139,253,198,7,171,254,15,249,25,5,45,248,165,8,174,2,47,8,144,249,169,254,251,4,114,5,239,250,82,255,133,254,211,4,46,7,251,252,68,8,128,254,247,251,116,6,235,4,178,3,150,4,34,7,92,253,5,254,127,3,195,255,127,7,104,255,233,1,144,255,96,247,135,2,91,7,10,248,179,6,203,0,11,255,95,2,228,3,206,4,194,1,52,2,216,250,91,254,171,248,181,1,123,3,230,7,85,4,127,254,80,0,157,250,172,1,73,6,36,0,50,1,142,6,104,247,157,1,245,248,235,6,127,4,11,251,205,8,102,252,50,255,218,2,85,253,239,8,238,1,80,255,18,247,189,253,193,254,252,250,234,252,110,249,205,7,116,251,110,2,182,5,198,248,57,1,124,250,219,4,253,2,123,2,172,250,36,7,79,3,48,2,85,251,43,3,29,254,98,1,109,249,253,255,232,6,96,7,165,254,63,250,66,251,121,251,127,2,122,7,104,250,68,1,228,248,17,2,114,2,56,3,44,4,192,251,207,249,62,249,94,3,57,5,54,247,63,251,29,248,124,253,173,2,170,2,173,8,187,8,127,8,71,8,144,248,253,248,178,4,54,254,27,252,128,5,218,2,65,252,186,0,225,254,138,250,64,249,146,255,20,5,248,254,149,0,146,8,31,252,106,3,92,2,132,249,82,252,137,248,63,251,127,249,10,248,210,250,128,253,229,2,141,7,117,3,62,252,194,2,228,0,66,1,225,1,200,0,95,8,137,248,186,5,193,7,104,1,201,254,196,2,63,249,243,251,31,8,213,253,108,255,10,5,64,249,75,253,26,247,234,8,72,254,253,2,16,251,146,4,242,254,188,3,192,2,130,251,186,3,71,255,130,1,51,251,49,248,95,254,240,8,52,252,13,5,112,248,128,251,86,252,70,253,56,253,158,247,163,253,254,254,128,3,208,255,218,254,33,254,31,248,15,249,88,254,199,251,133,5,150,247,188,4,117,250,57,251,90,248,164,6,240,250,246,3,45,250,200,2,81,8,140,1,6,254,67,3,249,254,27,253,95,248,22,8,103,4,49,4,180,252,213,248,174,3,60,6,128,6,247,8,171,255,189,248,230,254,107,1,191,3,112,252,202,251,174,3,192,0,102,2,67,251,29,4,42,247,18,0,248,249,33,251,197,7,91,1,106,248,241,253,2,1,216,255,220,0,59,3,81,0,37,8,47,250,16,0,0,3,216,251,236,0,5,5,22,5,165,2,130,248,162,8,152,4,130,4,203,255,22,248,14,7,153,250,166,255,178,5,107,1,159,248,59,0,131,0,55,248,177,0,242,2,31,8,128,6,206,8,41,252,148,248,54,1,196,0,223,253,19,4,244,250,243,1,12,7,52,7,180,6,145,7,174,251,113,6,62,4,57,1,243,254,25,255,84,7,162,8,217,247,250,1,99,251,178,254,226,249,13,255,167,252,40,1,76,255,221,250,28,253,254,249,74,1,117,252,140,252,43,254,143,252,185,3,6,248,146,2,125,2,188,248,81,5,98,8,16,249,201,5,240,251,206,0,108,1,97,3,42,6,47,255,228,251,187,253,4,251,170,1,111,252,149,6,24,2,174,254,121,7,44,255,200,249,251,7,60,247,67,249,37,4,166,5,0,251,133,249,106,254,61,251,105,250,92,253,186,255,39,254,23,4,141,248,150,254,222,5,234,3,232,252,101,248,174,250,89,8,55,4,110,249,159,0,87,0,118,253,69,252,35,2,55,253,158,251,149,254,133,6,26,250,100,249,194,0,125,8,215,253,82,249,106,249,95,3,181,249,18,3,104,249,120,255,114,3,232,6,78,249,149,251,200,7,142,255,155,255,133,2,137,7,160,2,205,5,164,8,53,250,190,3,158,253,22,251,55,247,10,7,100,250,143,253,47,0,200,6,134,253,41,247,213,7,13,5,106,249,233,247,89,252,10,251,176,255,148,8,87,6,244,252,107,3,195,252,133,252,11,7,197,7,82,3,25,254,79,250,11,250,135,6,35,250,11,254,141,5,97,255,80,7,255,6,8,7,67,3,193,7,245,253,77,248,224,251,66,7,87,4,2,1,209,6,187,2,40,6,142,3,66,251,239,253,183,4,165,253,223,254,155,4,31,0,214,0,8,2,241,255,205,248,132,0,15,247,253,249,181,251,102,0,94,8,67,6,204,255,79,7,180,4,14,2,3,250,224,247,169,251,112,5,208,253,16,249,122,0,18,247,52,252,88,248,97,252,45,4,198,7,83,6,201,250,38,7,81,252,185,3,197,6,132,251,201,5,188,250,170,5,145,251,178,3,156,5,78,0,217,7,246,4,101,255,229,249,119,250,237,4,43,3,122,249,44,6,123,0,52,0,56,251,84,249,148,8,206,7,161,248,83,249,140,248,175,8,46,7,61,2,139,253,222,251,221,255,90,253,35,5,140,0,51,2,60,5,83,255,137,7,185,8,171,255,127,252,216,4,69,5,80,6,40,6,203,253,48,250,135,251,131,7,203,7,212,3,10,7,119,252,81,3,74,254,95,8,199,250,41,0,250,249,105,6,103,249,116,2,138,6,87,248,206,1,147,252,92,250,34,247,92,248,0,251,248,254,201,253,68,255,134,255,88,3,172,7,255,248,106,1,73,252,174,4,160,0,195,249,217,2,94,8,55,252,75,252,11,252,62,254,72,252,123,2,75,1,59,2,210,249,25,254,191,6,155,251,9,248,203,250,97,253,93,0,128,4,199,1,40,7,125,7,38,1,7,7,115,6,117,2,0,1,12,8,145,7,193,248,120,247,120,6,59,252,163,255,2,7,69,6,183,254,178,2,93,247,120,0,177,247,203,253,31,3,166,2,154,248,217,2,0,0,136,8,77,2,230,254,107,252,42,5,247,253,44,7,209,255,92,255,35,5,146,2,52,3,214,3,72,6,57,253,85,253,84,0,155,2,229,7,222,250,152,255,27,8,255,249,103,251,219,247,34,8,176,253,245,252,219,253,105,8,199,250,8,249,40,250,22,249,38,249,207,250,166,3,41,0,88,8,48,250,135,1,107,250,156,252,0}, {198,6,206,251,242,248,133,2,57,249,250,255,89,254,193,7,202,7,140,250,177,3,74,255,85,249,255,2,43,3,244,1,65,255,220,6,134,252,83,8,53,255,21,8,98,0,200,251,230,249,230,249,110,249,213,0,229,8,163,250,93,250,10,7,252,252,192,2,91,250,211,2,141,3,239,251,230,254,99,255,240,0,38,254,218,247,147,250,60,0,113,7,165,0,79,254,181,5,88,251,220,251,191,247,51,5,136,7,32,5,100,8,144,8,245,2,188,5,226,254,244,250,95,7,8,250,90,253,250,4,101,8,179,247,138,0,82,248,214,2,64,254,0,0,242,8,250,6,107,0,96,253,164,247,220,255,192,5,108,3,35,247,48,1,46,248,194,253,82,250,205,255,214,250,213,252,106,247,167,8,141,5,188,7,189,6,187,253,97,252,47,2,238,253,204,8,178,4,49,7,98,247,102,3,100,6,102,0,145,248,218,5,95,2,88,8,130,4,206,5,49,252,158,253,57,253,99,0,164,3,77,8,207,252,21,250,249,6,230,0,237,7,12,0,112,8,139,249,131,6,148,251,148,252,52,8,130,250,144,1,70,249,86,6,164,254,29,254,64,253,130,251,224,8,131,252,48,6,164,255,29,1,240,8,154,1,127,252,9,253,149,5,193,8,169,250,118,3,197,3,231,1,219,249,2,7,18,3,37,5,107,8,179,255,37,249,213,254,13,255,178,3,233,0,133,251,156,7,22,250,219,254,226,5,205,247,36,2,243,1,171,250,226,247,220,7,97,4,201,248,38,254,133,6,49,252,16,1,49,0,146,250,143,1,175,6,127,247,145,7,135,3,94,253,4,6,76,249,142,252,104,253,91,4,115,1,23,249,31,1,131,2,29,255,119,247,161,5,65,250,140,6,9,249,160,4,104,6,52,250,38,8,246,6,219,254,7,255,243,6,136,255,157,5,16,0,68,251,42,248,94,250,58,253,166,254,141,1,214,251,169,252,58,252,122,4,20,251,96,247,222,249,137,1,133,251,95,250,13,254,136,250,180,5,47,254,34,253,36,6,231,6,33,251,193,5,123,252,249,2,54,8,130,254,128,7,8,254,169,252,239,251,35,247,234,248,242,254,115,250,11,254,162,5,73,255,58,7,243,247,117,250,162,7,106,1,77,5,90,253,230,7,190,254,110,1,25,7,195,7,168,254,249,248,71,253,83,254,206,252,196,251,176,8,205,5,44,8,235,254,143,6,41,255,47,251,15,250,206,250,20,2,16,2,64,1,135,248,119,3,36,255,102,8,223,248,236,7,85,4,68,249,31,0,108,255,139,0,154,0,131,6,250,5,53,249,84,255,113,253,150,250,71,2,135,6,194,7,94,6,33,254,194,254,12,252,11,1,48,4,37,3,211,248,91,247,173,6,209,252,29,3,167,8,206,249,27,6,55,254,27,5,123,6,197,8,25,3,85,252,42,0,143,5,218,2,209,2,138,1,107,8,98,253,70,2,15,0,10,5,143,251,105,0,208,254,7,5,161,255,162,4,193,4,168,254,234,7,126,2,158,254,3,249,222,249,15,1,224,250,126,0,48,0,26,5,153,1,154,247,113,8,169,255,186,7,131,3,249,7,44,248,255,253,246,248,219,249,76,249,154,2,97,0,229,1,123,7,148,5,122,0,5,5,127,0,26,3,130,7,205,2,169,0,237,8,53,252,184,252,71,8,85,255,209,247,45,8,45,253,241,8,99,7,97,8,150,251,114,250,96,7,178,8,37,255,225,7,112,253,145,6,80,6,140,253,33,252,128,254,99,2,181,0,162,247,64,249,113,250,221,5,45,253,82,3,104,6,66,255,177,252,197,248,144,5,192,248,140,8,82,6,64,250,124,5,27,4,41,7,62,4,140,252,242,1,7,5,29,247,14,2,58,248,46,7,214,255,2,6,188,8,188,250,135,253,233,250,229,5,167,5,251,254,74,5,60,249,231,5,154,6,76,255,213,251,36,4,1,6,18,247,147,251,93,250,206,254,111,0,233,6,188,252,223,7,7,1,53,248,195,248,95,253,15,253,39,248,145,7,162,7,30,255,38,6,133,248,68,251,91,253,29,6,4,0,51,3,31,2,236,255,242,249,70,7,186,253,95,252,41,248,3,0,17,3,188,1,162,4,232,254,6,5,208,3,60,3,160,252,70,0,239,2,117,0,220,255,98,4,132,247,36,5,111,2,42,7,175,252,142,7,145,3,5,252,140,252,71,253,111,3,6,250,166,255,149,249,230,248,48,1,161,253,201,251,7,249,178,3,39,251,72,4,238,248,101,1,172,2,114,4,82,248,23,253,224,252,141,6,33,8,236,253,186,7,168,3,105,250,199,5,185,5,95,8,239,247,73,249,7,254,102,3,44,247,154,247,89,0,196,6,150,250,132,3,24,249,172,254,162,252,132,6,130,247,191,255,251,250,232,1,163,247,147,2,225,247,27,255,59,1,4,2,204,253,11,4,86,248,114,3,161,3,123,253,61,0,179,8,171,248,29,2,117,255,251,7,54,251,112,254,129,3,248,3,26,5,135,4,77,248,246,1,219,0,244,252,107,5,238,249,127,4,210,0,38,249,6,248,74,3,226,253,158,251,81,255,123,2,42,251,69,255,52,255,192,251,245,250,9,247,167,6,101,5,171,5,134,248,210,3,190,253,43,5,24,5,159,248,1,248,13,255,225,8,118,6,211,253,35,4,95,254,142,251,165,3,172,247,254,255,185,5,188,249,80,254,46,2,250,253,137,253,79,4,152,8,218,0,116,254,233,252,70,249,130,7,50,4,49,1,104,8,210,4,32,254,233,4,33,2,226,4,86,252,200,253,118,255,35,254,34,4,154,255,71,249,171,253,31,255,184,6,11,7,222,3,81,251,89,6,54,6,252,247,34,6,198,253,3,6,90,6,48,255,248,0,105,247,115,252,63,6,192,254,26,7,208,4,181,2,99,250,85,248,126,254,29,3,83,0,101,4,22,8,104,6,205,253,228,254,177,2,127,254,158,0,103,6,190,6,164,251,67,250,3,254,21,252,18,251,57,0,66,2,18,248,163,3,213,6,83,4,41,255,223,248,3,5,242,3,33,248,62,248,224,250,8,3,97,247,103,8,31,6,18,5,152,7,37,5,117,251,123,252,55,1,19,7,170,250,228,247,138,0,127,247,123,1,243,5,42,1,207,255,204,4,142,4,143,2,188,3,19,1,97,249,155,7,166,248,229,253,60,8,135,251,123,254,71,250,139,251,120,255,207,8,172,3,179,253,33,253,123,0,93,7,38,0,205,8,253,252,66,249,125,3,20,251,35,254,243,250,44,251,13,3,29,2,109,252,146,1,239,0,28,252,93,8,101,252,90,3,250,254,75,253,28,8,133,248,140,2,122,2,66,5,102,248,99,248,0}, {67,249,56,253,107,0,24,3,196,247,234,0,229,0,92,4,4,254,97,254,192,0,73,6,1,8,116,0,186,0,157,252,110,5,163,8,129,7,152,247,167,251,143,247,181,250,110,8,208,4,38,249,202,249,247,255,87,2,29,251,215,251,67,249,54,255,118,249,38,7,36,5,103,250,194,8,1,0,157,0,138,3,123,8,219,6,96,8,86,252,226,253,153,250,126,0,120,248,227,253,6,252,171,252,89,4,177,248,12,254,200,255,171,0,154,3,26,251,81,253,57,5,24,255,11,254,15,5,40,250,184,253,112,247,115,247,187,0,3,0,107,250,117,252,218,3,117,247,176,247,145,248,212,2,36,2,113,252,217,2,82,4,122,248,222,0,150,255,153,3,91,3,211,252,239,247,244,249,83,247,235,8,99,4,103,253,203,255,43,7,91,252,201,3,83,5,208,5,170,4,47,0,52,8,184,7,170,255,71,247,156,249,124,255,253,251,110,6,117,254,104,251,196,0,90,247,29,248,75,250,171,247,218,5,112,247,29,6,113,0,223,247,195,7,80,3,113,2,33,249,115,7,85,250,51,5,74,250,191,248,127,7,148,250,225,0,209,2,243,250,33,248,183,247,104,253,238,255,193,6,57,2,121,7,42,8,101,2,117,255,123,252,56,7,76,2,64,253,228,251,38,251,180,249,133,252,41,252,185,250,94,253,108,254,28,7,119,2,178,1,115,250,109,8,165,4,43,250,68,7,210,7,145,4,118,250,99,3,236,250,23,252,13,7,175,250,28,252,33,247,250,247,221,6,19,247,64,252,7,254,70,8,57,3,61,253,95,254,35,4,239,2,190,249,122,6,129,0,236,3,131,251,35,7,174,249,112,248,80,0,222,247,143,8,37,7,139,3,84,7,55,249,35,247,184,6,154,3,208,249,234,253,224,248,151,0,168,255,160,2,70,248,130,253,162,6,22,251,95,8,193,5,211,252,251,2,169,254,78,5,83,254,25,250,153,248,175,247,185,2,181,253,171,255,19,251,182,6,235,249,166,254,105,7,82,8,133,2,106,250,187,250,159,4,199,250,237,3,81,249,107,1,201,7,3,248,2,5,247,1,96,255,226,1,183,251,171,248,67,5,51,251,183,254,184,3,21,8,155,4,118,252,84,0,200,7,42,3,63,253,141,251,251,3,39,247,220,249,193,4,206,249,144,4,46,0,49,7,176,249,148,1,12,253,37,4,38,7,16,249,20,7,189,247,105,1,198,253,239,247,212,253,135,251,165,247,48,2,39,1,130,0,98,254,88,7,224,8,100,250,165,4,114,5,215,4,16,252,253,248,122,7,191,5,94,249,6,249,110,3,14,8,77,250,193,2,42,2,133,254,200,255,238,250,97,253,253,250,86,247,69,249,152,5,12,255,208,247,5,4,45,8,98,250,228,252,218,3,9,8,124,3,196,248,8,254,252,249,34,8,216,249,96,8,215,4,10,8,254,252,112,248,78,252,197,249,172,6,252,6,145,249,3,4,249,251,6,251,36,247,208,251,49,8,174,247,45,8,171,252,155,254,173,6,52,253,20,3,159,252,224,247,71,6,247,251,168,3,133,6,213,250,78,4,116,253,245,3,34,251,48,250,92,6,205,247,15,248,73,5,201,5,129,2,111,1,201,4,106,247,163,252,209,251,170,250,224,255,243,249,62,7,138,253,154,247,86,2,220,255,64,3,29,247,62,249,123,253,200,255,51,0,37,255,141,3,14,251,39,3,255,4,91,7,18,251,57,254,134,251,248,5,188,2,38,253,253,255,130,249,253,0,181,2,138,255,50,254,199,3,195,251,14,1,43,2,238,0,13,250,127,254,157,3,213,247,23,247,85,4,153,0,30,252,7,254,124,250,208,252,107,254,79,249,136,7,49,2,225,252,55,247,107,5,0,1,209,250,25,4,143,253,186,5,29,249,106,255,77,6,162,251,99,252,122,3,136,2,34,0,75,254,17,250,60,7,148,2,21,249,78,250,223,252,159,249,42,247,193,252,15,250,21,255,120,250,31,247,166,7,196,249,135,1,91,8,107,2,224,251,222,7,11,8,96,8,234,253,60,251,112,8,152,248,239,1,131,4,16,252,27,8,234,8,171,8,15,247,64,7,192,251,47,4,57,3,16,247,227,247,175,8,193,1,227,251,249,255,142,253,8,4,4,253,69,253,150,250,50,8,64,255,71,247,217,247,64,1,187,253,234,253,37,6,84,253,203,248,230,250,161,250,106,4,218,252,184,248,55,5,42,5,55,252,174,0,237,249,78,251,169,247,115,3,139,247,12,255,105,255,164,249,118,253,55,4,228,251,213,1,72,7,175,7,160,6,40,3,6,5,167,1,134,1,160,254,38,0,139,251,195,249,190,248,38,248,164,249,117,248,12,6,78,8,12,6,186,4,194,252,18,6,242,253,79,251,26,250,130,4,16,4,87,5,152,3,72,247,79,252,225,247,78,0,0,8,227,3,81,248,73,247,214,6,208,251,120,3,125,251,9,6,137,247,19,6,209,255,6,254,239,247,8,251,220,253,151,5,229,1,199,1,43,5,238,254,55,1,226,3,186,250,64,251,187,248,192,0,114,247,18,254,80,252,150,5,61,250,170,5,246,252,99,5,207,253,192,255,251,5,106,251,130,248,132,248,68,0,51,0,16,255,69,0,128,252,101,8,171,248,118,252,246,0,216,4,99,248,78,248,146,252,234,251,250,253,149,247,159,253,51,253,189,5,98,247,93,2,230,2,24,4,208,6,16,7,169,255,97,1,9,247,245,250,194,250,153,0,6,250,231,251,218,253,221,247,169,250,247,255,154,253,170,5,145,255,38,254,90,4,49,2,72,247,144,2,14,251,238,6,165,253,193,0,113,252,197,255,12,3,143,247,112,252,22,248,19,250,93,1,193,3,145,5,158,255,235,247,70,3,203,0,133,254,86,253,190,8,82,252,91,249,191,248,156,7,130,4,125,252,97,250,110,6,175,5,58,4,95,252,38,0,151,255,164,6,166,1,194,255,131,251,49,3,243,4,134,253,193,8,209,248,204,253,150,248,140,249,50,255,168,4,166,252,91,7,121,250,240,252,97,252,120,2,102,247,6,252,44,249,29,1,4,2,55,6,152,251,20,4,40,0,16,249,54,253,94,248,20,249,246,3,126,1,155,3,187,249,51,252,8,252,199,7,131,4,32,252,154,1,70,2,232,5,31,252,250,6,197,4,209,253,91,8,227,3,122,252,84,250,43,6,103,247,194,3,97,253,157,3,114,247,9,255,62,255,219,252,182,3,240,3,101,251,98,5,245,251,138,7,227,7,184,6,28,247,84,247,68,255,173,0,24,249,203,1,17,252,222,7,250,249,18,5,92,4,62,2,245,3,109,2,31,255,21,1,55,253,64,249,120,253,0}, {219,7,190,255,204,6,82,3,187,253,78,252,132,7,214,253,174,254,232,254,203,255,194,254,20,255,70,3,110,0,193,251,15,249,167,249,191,6,72,4,182,255,188,255,197,5,20,247,227,4,100,4,28,2,118,5,195,4,243,8,125,249,231,255,88,2,83,251,163,6,201,1,23,249,0,254,98,248,108,0,78,254,111,249,1,252,109,253,167,5,246,1,246,254,138,1,26,4,221,248,215,251,137,4,95,250,53,8,1,7,126,252,15,252,143,254,139,5,71,250,220,248,205,2,113,5,32,0,247,7,160,7,252,255,79,0,231,250,247,247,244,7,173,251,199,251,158,5,244,251,157,254,35,4,207,253,157,255,61,249,65,250,44,5,47,249,197,250,151,252,105,8,248,249,178,4,93,5,7,251,176,5,210,248,124,5,161,8,165,0,71,3,177,5,72,254,38,254,161,6,109,249,217,252,38,0,254,4,204,250,134,255,221,3,61,250,121,254,231,6,214,247,213,252,228,5,45,6,129,6,171,3,163,250,101,3,212,247,36,248,162,8,66,249,148,6,211,3,126,1,101,252,131,0,69,2,208,6,44,255,115,5,251,253,149,252,210,253,109,7,214,255,238,6,183,254,33,4,249,1,36,8,192,252,200,250,172,3,124,1,61,254,172,255,47,250,40,5,41,0,63,0,105,255,46,5,247,4,30,252,127,253,8,251,149,250,113,254,171,250,238,0,216,249,161,1,12,8,29,249,235,7,86,0,188,250,190,247,166,248,25,0,136,7,140,8,31,5,142,253,57,2,157,250,39,2,59,5,164,253,155,248,130,1,24,0,4,3,46,1,170,4,175,252,220,6,67,248,64,252,217,1,150,249,15,4,219,0,167,3,88,7,167,255,170,250,244,252,205,6,241,250,14,247,65,247,56,248,153,253,34,247,192,247,11,247,148,4,143,250,170,255,71,254,106,253,105,5,179,255,0,5,237,251,236,6,108,247,146,247,14,2,151,7,179,8,122,6,67,248,232,5,32,8,213,1,135,248,115,251,216,2,2,2,208,7,240,251,91,252,87,7,235,254,79,254,28,3,99,247,41,2,71,255,58,247,43,7,37,251,83,1,9,3,103,254,253,253,120,250,251,251,188,1,85,1,110,247,5,249,143,6,238,2,250,253,236,1,37,247,165,7,132,255,248,7,95,0,122,5,52,8,133,252,132,249,29,255,37,255,9,251,35,8,107,248,222,8,221,0,190,2,116,3,68,247,23,6,13,8,187,251,29,249,87,6,127,248,140,251,46,249,125,4,251,4,62,6,82,5,165,5,181,247,142,4,4,250,59,5,119,255,26,0,214,249,118,251,105,7,140,250,37,255,68,248,225,247,118,255,188,248,119,3,156,5,191,255,180,8,37,254,193,3,174,255,190,253,33,255,161,247,103,251,130,250,48,2,138,248,223,0,202,247,230,255,100,249,1,251,71,4,179,252,10,247,154,253,115,5,169,250,186,5,75,3,134,5,38,3,203,255,242,3,174,255,155,252,86,249,65,249,138,4,56,8,71,4,212,248,113,1,182,7,120,254,41,5,154,2,30,252,95,8,131,251,76,7,77,254,86,249,130,248,33,251,9,1,163,248,168,8,64,248,214,253,135,255,72,249,169,2,132,0,55,252,195,253,59,4,163,249,151,247,59,251,42,253,34,247,169,248,139,253,166,253,228,8,75,248,63,247,142,254,235,2,255,7,194,8,84,250,106,4,74,3,64,7,98,248,145,253,192,0,135,6,76,0,240,0,12,251,127,254,91,8,133,255,247,6,253,247,141,252,40,8,179,7,8,250,125,8,251,251,219,248,22,2,148,4,248,3,2,4,152,5,132,5,123,7,15,2,76,250,184,248,133,252,194,6,14,248,76,255,141,255,23,6,188,251,34,3,229,255,70,6,77,5,234,1,189,1,220,254,24,7,103,249,203,6,70,255,188,4,57,2,49,3,211,5,238,5,130,253,149,0,254,4,6,253,81,251,123,255,98,3,24,1,176,255,143,2,7,8,135,3,133,8,2,251,103,255,97,251,105,250,118,247,2,6,101,252,204,247,232,251,102,1,113,253,73,247,61,255,94,250,82,249,211,250,42,8,47,252,140,253,187,251,202,3,119,7,63,248,6,250,47,4,120,251,22,251,53,254,146,251,217,5,169,248,139,252,51,1,164,1,24,247,176,0,82,1,135,249,16,6,65,250,49,8,160,2,213,252,192,252,231,0,92,251,200,248,84,254,18,3,77,254,25,5,201,6,110,247,155,0,166,6,12,0,213,249,184,1,239,8,166,250,171,2,24,2,198,8,103,3,67,1,60,7,51,8,218,252,86,251,212,252,71,251,153,6,70,4,238,250,181,253,36,252,39,248,86,8,62,8,144,250,17,4,123,248,12,249,161,252,248,1,36,253,157,255,37,0,144,251,154,6,215,247,21,251,207,249,135,0,181,251,172,252,157,251,178,8,170,247,136,5,103,255,57,4,154,3,210,4,162,2,244,1,230,4,244,251,245,247,216,0,215,4,209,6,36,0,177,6,192,6,145,254,213,250,226,252,160,8,202,1,235,250,140,254,182,7,246,251,167,247,88,3,41,252,144,248,187,248,125,253,161,0,91,255,183,255,209,254,41,4,222,4,249,1,248,250,189,2,199,248,230,252,46,251,41,253,84,2,218,6,79,249,142,255,182,4,252,6,238,252,73,3,138,253,56,250,106,6,80,250,154,4,151,249,229,247,44,6,214,5,68,250,113,5,29,254,80,3,1,0,83,253,174,247,130,251,153,255,108,251,95,0,78,6,149,250,220,253,46,250,187,2,194,249,128,2,33,254,86,251,193,255,129,249,8,5,94,248,112,6,61,248,178,252,122,8,23,3,25,253,123,254,233,7,61,8,69,6,246,253,41,2,60,247,241,0,243,254,139,251,11,253,35,2,89,2,209,250,81,8,127,6,74,247,137,3,64,252,80,4,55,0,83,8,179,250,234,0,227,6,120,250,4,6,213,254,37,252,60,254,164,7,155,248,175,255,180,7,147,1,114,5,203,1,63,248,10,251,64,247,57,253,63,255,132,4,49,1,206,0,7,6,226,8,175,254,206,3,206,4,86,4,6,251,88,8,247,253,158,3,249,252,152,252,152,247,41,248,81,0,203,254,174,253,239,4,199,5,173,254,40,1,107,5,245,250,123,0,153,250,62,250,204,6,122,250,47,8,166,254,162,253,164,3,23,252,85,4,192,248,73,252,115,253,201,253,207,255,37,253,183,254,124,248,89,249,203,251,255,252,97,4,138,247,231,6,124,248,143,252,26,252,229,252,244,250,210,5,111,249,0,8,237,0,237,254,130,255,191,6,144,5,169,7,42,249,248,255,31,248,136,249,221,248,4,2,27,255,16,1,125,5,93,5,0}, } ; static const unsigned char precomputed_core_invsntrup761_n[precomputed_core_invsntrup761_NUM][crypto_core_INPUTBYTES] = { {23,134,222,114,112,111,226,94,165,159,216,93,208,82,195,24,156,127,190,89,151,44,43,218,70,87,49,129,176,248,74,7,131,94,122,221,108,145,39,163,46,251,50,252,235,35,72,142,203,217,235,19,184,217,194,201,159,224,179,202,135,90,239,173,72,27,20,171,86,51,184,222,119,80,133,40,221,1,139,243,142,153,19,112,56,164,183,29,115,13,249,202,54,133,215,86,8,200,128,55,60,24,247,94,86,169,125,169,121,5,222,203,81,221,254,251,174,153,168,193,157,88,95,232,176,27,127,187,1,230,0,143,95,234,242,68,20,159,79,254,7,229,241,164,28,79,215,73,86,77,190,69,76,37,151,59,197,9,225,198,159,50,7,71,103,207,50,199,170,217,144,137,176,245,203,111,80,51,60,232,98,43,165,0,77,215,98,116,172,134,123,152,135,34,26,159,190,209,223,110,109,137,189,10,97,76,196,47,161,66,2,37,184,171,25,57,118,233,20,84,38,11,179,170,114,131,19,239,128,227,68,163,141,40,153,132,163,28,194,49,152,20,143,64,162,225,159,116,11,33,126,40,219,169,137,80,134,8,217,209,114,77,17,243,179,35,155,236,215,114,50,170,164,194,14,84,62,232,15,107,55,73,62,3,95,206,83,68,172,124,93,214,251,62,242,136,60,191,178,140,146,208,141,81,104,156,166,102,49,136,79,98,147,69,186,119,158,88,34,69,82,173,239,0,158,13,48,240,26,181,52,208,139,204,155,35,175,190,210,14,87,158,96,127,243,177,128,71,54,143,103,45,16,157,159,245,139,32,117,215,137,51,69,201,150,128,161,140,162,210,64,64,210,70,91,225,105,193,29,8,37,168,171,253,83,72,4,1,210,149,226,10,163,147,32,10,13,86,28,151,201,31,198,114,116,183,50,220,243,148,29,153,139,49,171,119,178,72,102,217,187,39,41,36,145,234,56,61,11,228,30,12,222,74,238,11,27,222,142,161,186,163,121,106,177,225,124,28,74,165,117,59,64,31,155,151,193,221,204,168,106,43,7,252,58,53,52,68,120,213,123,24,67,91,199,205,90,159,208,52,61,87,199,35,87,160,176,193,108,204,154,147,152,121,5,52,2,127,35,59,17,170,84,157,14,245,222,197,66,18,132,244,67,239,137,48,160,25,63,25,52,180,154,176,249,71,73,238,149,150,5,167,184,171,210,181,190,24,58,174,200,150,27,57,206,246,132,109,123,139,99,110,61,82,80,249,156,231,95,98,242,105,46,57,196,76,78,103,81,76,240,182,134,140,192,194,185,54,55,197,237,250,30,211,202,148,220,234,225,244,127,205,157,73,158,214,242,183,82,223,119,131,125,45,45,221,192,101,119,154,70,169,25,198,162,53,29,87,101,138,220,45,53,198,41,34,32,6,96,206,47,173,240,195,204,114,36,97,217,154,227,205,64,54,25,57,216,185,223,10,9,255,58,229,6,191,70,81,9,29,37,169,225,174,99,129,160,90,159,179,44,174,77,212,21,157,202,185,186,13,127,155,84,39,23,97,47,228,165,86,42,198,114,134,142,7,157,110,211,31,124,150,136,84,144,105,53,19,113,167,215,189,24,10,120,174,151,29,17,14,51,213,162,147,8,61,105,111,13,45,206,190,32,69,194,130,244,4,251,51,156,122,149,128,67,144,83,56,253,98,36,222,217,46,188,240,48,216,84,228,43}, {165,128,124,77,134,24,59,83,60,1,46,214,62,235,88,1,253,130,109,255,105,146,3,80,47,124,88,189,146,156,38,245,12,151,62,100,131,218,21,7,109,71,222,142,235,34,59,137,154,241,113,157,232,168,2,91,198,180,155,36,138,41,186,152,197,81,88,35,240,128,196,25,186,173,180,82,45,73,95,35,16,149,129,59,65,47,150,217,118,0,162,14,109,70,154,242,219,67,6,216,127,76,209,237,225,109,249,185,61,29,116,241,228,24,149,186,146,94,95,69,159,30,199,82,159,122,231,94,106,109,236,63,31,98,49,133,137,94,108,94,65,109,59,177,41,52,252,233,8,100,150,124,134,50,205,195,222,40,192,28,3,113,93,14,57,79,237,134,58,196,137,64,205,91,32,248,73,126,70,31,93,211,96,15,68,170,78,58,89,13,122,97,254,127,79,25,112,27,242,207,165,133,153,197,76,22,66,239,12,239,212,113,206,7,153,65,72,185,105,51,155,151,255,192,112,136,0,39,12,112,234,163,160,145,141,152,33,124,17,186,245,28,159,237,12,120,184,117,124,99,44,86,124,90,8,148,153,113,77,211,106,45,78,20,78,85,157,201,194,166,171,83,0,122,51,38,68,0,57,255,47,17,220,167,236,55,171,245,76,96,159,12,101,116,172,126,6,119,239,192,197,24,12,189,20,165,208,163,174,67,50,76,39,41,215,116,117,20,49,81,103,125,49,56,15,195,174,228,49,15,201,87,195,111,209,237,147,224,65,5,12,120,128,23,92,22,4,23,84,28,191,12,111,40,170,168,241,212,55,103,134,235,36,211,202,53,250,164,84,191,85,53,232,20,92,183,159,133,237,15,87,186,116,103,122,87,99,92,70,171,14,216,65,47,172,165,62,34,162,246,86,211,233,235,89,6,97,198,176,229,218,171,44,139,191,179,237,85,103,234,62,145,25,198,246,51,217,144,250,115,200,124,22,10,228,119,224,204,41,19,182,236,76,250,12,132,190,93,245,102,160,239,59,120,13,254,203,17,252,208,189,174,25,90,72,142,250,31,173,18,76,35,78,9,111,77,92,81,140,234,199,162,72,233,60,179,99,19,210,78,141,241,221,90,209,88,78,217,96,64,144,66,54,236,40,79,72,144,197,65,35,22,203,19,22,99,154,29,182,125,58,42,82,138,149,109,42,35,178,186,38,143,145,32,199,51,82,168,82,229,69,48,76,14,148,181,167,142,169,209,101,247,236,134,142,187,83,89,121,8,142,178,14,21,63,130,227,159,55,172,135,142,90,48,7,85,219,142,18,10,243,70,166,101,221,112,181,204,161,36,76,97,205,12,10,191,110,3,240,29,230,75,127,184,159,159,185,232,142,244,145,76,65,203,221,75,129,169,252,106,139,102,27,248,36,177,3,145,166,95,29,95,200,237,133,137,173,151,50,132,220,195,127,76,201,70,174,182,252,180,105,243,54,187,78,12,117,212,88,192,73,123,189,184,90,56,182,72,173,27,131,164,209,245,60,161,138,27,199,116,90,229,124,244,223,26,194,50,117,125,250,18,199,206,225,31,47,214,113,12,207,162,164,73,226,125,48,36,84,252,117,200,101,93,22,234,181,22,79,248,202,246,168,138,3,4,202,101,204,205,232,242,79,213,199,176,187,128,49,36,216,25,128,183,30,63,214,58,232,21,60,44,251,68,2,211,52,236,7,148,56}, {15,40,143,222,21,143,192,255,57,184,178,151,85,131,186,231,63,123,34,92,146,34,202,178,180,12,121,59,124,182,208,7,109,225,68,65,68,237,205,225,96,62,101,77,37,255,208,56,109,122,174,181,192,72,108,170,46,59,159,112,74,51,35,161,1,158,254,175,90,64,226,5,210,124,150,82,251,89,82,14,137,179,108,38,217,158,9,217,170,14,22,163,104,225,221,229,107,2,53,30,176,169,51,157,165,72,15,170,9,214,124,161,161,85,43,56,52,6,74,14,233,82,1,100,73,113,91,205,187,222,238,90,58,36,122,36,84,243,152,33,115,152,101,249,188,55,66,151,59,137,28,210,165,233,117,60,226,55,144,244,108,112,201,185,221,22,194,51,106,196,49,44,252,237,98,62,220,21,14,66,247,67,229,224,11,11,56,215,202,131,235,135,192,130,147,79,203,96,109,136,14,163,242,150,97,225,219,240,176,149,248,2,237,74,38,50,96,120,34,87,247,238,2,148,157,185,15,25,139,47,188,28,100,204,221,69,119,63,148,245,159,37,226,147,58,75,228,128,8,17,170,250,236,113,212,48,43,38,190,51,17,91,90,217,182,98,12,244,89,66,160,171,101,18,120,173,28,244,54,48,153,179,100,111,207,28,147,72,49,10,79,78,251,144,201,197,182,238,44,109,247,54,137,221,168,235,83,187,74,127,81,89,160,198,83,235,82,93,122,204,81,168,157,196,75,235,238,169,127,59,205,217,237,9,117,130,129,125,19,25,89,164,88,107,176,1,153,112,84,194,115,221,236,105,64,34,100,193,78,157,29,247,138,117,232,18,92,137,187,49,219,142,119,127,105,31,192,200,23,217,109,44,83,37,98,182,52,178,8,141,147,241,158,17,28,144,251,171,193,246,238,181,74,141,163,188,47,164,129,109,111,12,7,135,65,144,137,33,149,206,215,57,73,139,26,199,176,40,217,161,96,135,35,157,33,80,199,28,0,241,229,192,118,118,63,102,225,237,43,5,254,81,100,64,200,173,242,17,222,100,154,149,210,96,70,203,152,114,99,154,211,5,39,237,210,233,88,190,121,156,233,236,62,130,104,9,108,191,155,42,250,83,177,107,59,243,169,170,66,121,50,238,233,22,68,140,241,35,200,132,128,17,52,21,116,246,123,140,238,163,96,196,82,245,249,223,66,75,14,207,55,201,88,172,6,64,7,215,131,7,161,30,165,120,120,109,21,191,255,145,152,61,231,142,49,84,216,111,54,241,182,22,103,182,156,62,54,249,158,141,194,8,101,106,236,77,40,74,14,45,23,52,34,245,75,174,7,55,235,186,69,73,231,160,37,181,62,172,168,21,103,161,142,42,63,67,153,17,231,115,220,39,102,88,83,188,220,223,178,222,182,213,148,225,66,202,230,237,250,192,50,103,31,210,197,13,175,3,172,248,74,247,245,249,59,223,29,58,184,95,66,107,106,84,224,57,132,152,216,155,61,8,229,64,105,197,152,168,131,171,119,57,235,123,223,183,117,90,226,60,185,22,142,255,225,160,177,168,182,21,216,220,46,149,58,157,108,5,174,34,111,241,50,126,71,100,65,195,17,74,58,252,176,133,244,144,74,249,32,161,22,169,209,72,1,244,153,191,121,173,21,27,153,162,52,65,82,124,236,232,62,151,107,62,157,68,167,160,87,107,188,207,191,100,108,96,246,200,102,122,163}, {6,101,200,25,20,139,83,75,153,124,216,34,162,154,93,33,12,83,77,233,225,16,96,122,82,59,42,100,46,252,64,56,209,178,26,78,210,205,16,17,194,251,77,46,105,147,25,204,81,62,165,96,235,142,21,149,232,71,85,154,125,68,50,145,124,59,84,6,6,198,41,103,133,15,192,104,142,56,122,39,16,60,104,209,176,113,106,94,183,230,216,198,158,14,52,248,107,46,187,77,82,82,26,171,32,101,129,157,234,233,33,18,217,55,215,82,56,184,197,98,218,143,253,19,127,203,243,140,169,26,89,246,41,151,118,208,91,202,222,129,21,35,228,24,61,147,38,44,59,193,18,166,30,143,122,59,107,99,88,218,18,104,127,89,41,248,22,103,232,31,82,160,165,223,171,175,234,24,52,50,79,96,101,251,245,59,11,65,161,4,106,231,117,75,167,30,44,2,101,66,134,54,242,48,137,238,240,230,117,226,10,164,151,49,173,150,18,244,163,200,211,116,111,161,16,101,219,151,93,33,122,110,72,174,191,106,176,212,148,71,97,99,53,145,55,131,9,184,53,76,107,248,255,37,42,117,86,70,131,196,92,46,154,212,229,33,219,35,93,139,47,54,12,83,252,86,28,42,79,173,65,64,121,109,128,17,121,139,234,132,95,77,19,107,238,178,203,67,135,229,62,70,35,254,4,232,151,22,170,234,16,249,110,51,241,179,109,254,123,1,30,214,15,144,99,212,174,142,187,36,90,147,4,36,87,117,16,251,173,34,179,246,159,185,127,90,145,159,85,126,223,184,101,185,40,201,105,24,66,134,208,3,126,70,229,97,254,199,241,62,57,217,204,99,56,65,92,199,210,15,72,188,139,2,27,93,228,50,84,204,68,124,128,253,143,133,122,115,140,131,19,44,132,18,172,145,44,174,129,61,177,13,156,16,44,7,5,219,49,14,24,247,151,241,187,129,53,200,155,32,255,249,133,164,12,34,56,40,54,67,191,212,144,197,86,60,17,19,94,75,220,228,11,251,21,40,175,37,130,73,246,68,54,235,207,4,118,25,154,52,168,71,171,24,130,243,182,55,38,216,194,36,214,139,28,149,29,52,62,19,133,81,18,127,134,9,122,245,80,173,164,38,37,90,96,34,37,205,27,54,9,192,216,85,250,98,15,30,118,211,145,13,120,191,91,252,166,126,59,77,156,185,55,183,235,206,208,36,65,201,45,106,208,241,125,69,250,21,171,164,44,249,80,178,122,200,247,236,159,223,124,64,133,236,51,198,113,17,153,166,45,108,27,159,168,117,201,31,123,51,72,133,171,186,215,225,164,11,87,111,76,10,178,219,114,159,50,26,210,121,95,177,152,68,57,236,133,200,39,66,209,74,74,141,39,186,41,160,53,143,86,195,129,127,12,171,231,250,27,120,52,4,139,231,32,41,72,255,33,204,115,108,162,144,85,231,219,62,3,195,146,44,208,214,34,127,53,233,98,217,210,71,234,64,65,97,63,43,30,180,156,36,223,33,189,50,60,241,2,209,8,47,252,199,16,204,105,60,40,62,18,203,120,21,143,205,107,37,99,217,255,92,43,97,192,7,83,53,182,201,119,107,14,178,210,209,102,93,207,107,233,13,234,230,19,214,138,222,14,106,147,31,117,190,199,242,42,250,11,158,208,224,187,210,239,241,128,187,124,215,142,199,234,97,94,110,245,125,222,129,84}, } ; static const unsigned char precomputed_core_invsntrup761_k[precomputed_core_invsntrup761_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_invsntrup761_c[precomputed_core_invsntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_invsntrup761_impl(long long impl) { unsigned char *h = test_core_invsntrup761_h; unsigned char *n = test_core_invsntrup761_n; unsigned char *k = test_core_invsntrup761_k; unsigned char *c = test_core_invsntrup761_c; unsigned char *h2 = test_core_invsntrup761_h2; unsigned char *n2 = test_core_invsntrup761_n2; unsigned char *k2 = test_core_invsntrup761_k2; unsigned char *c2 = test_core_invsntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_invsntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup761(impl); printf("core_invsntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup761_implementation(impl),ntruprime_dispatch_core_invsntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup761; printf("core_invsntrup761 selected implementation %s compiler %s\n",ntruprime_core_invsntrup761_implementation(),ntruprime_core_invsntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_invsntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_invsntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_invsntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_invsntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_invsntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_invsntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_invsntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_invsntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_invsntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_invsntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_invsntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup761")) return; storage_core_invsntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_invsntrup761_h = aligned(storage_core_invsntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_invsntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_invsntrup761_n = aligned(storage_core_invsntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_invsntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_invsntrup761_k = aligned(storage_core_invsntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_invsntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_invsntrup761_c = aligned(storage_core_invsntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_invsntrup761_h2 = callocplus(maxalloc); test_core_invsntrup761_h2 = aligned(storage_core_invsntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_invsntrup761_n2 = callocplus(maxalloc); test_core_invsntrup761_n2 = aligned(storage_core_invsntrup761_n2,crypto_core_INPUTBYTES); storage_core_invsntrup761_k2 = callocplus(maxalloc); test_core_invsntrup761_k2 = aligned(storage_core_invsntrup761_k2,crypto_core_KEYBYTES); storage_core_invsntrup761_c2 = callocplus(maxalloc); test_core_invsntrup761_c2 = aligned(storage_core_invsntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_invsntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup761();++impl) forked(test_core_invsntrup761_impl,impl); ++test_core_invsntrup761_h; ++test_core_invsntrup761_n; ++test_core_invsntrup761_k; ++test_core_invsntrup761_c; ++test_core_invsntrup761_h2; ++test_core_invsntrup761_n2; ++test_core_invsntrup761_k2; ++test_core_invsntrup761_c2; } free(storage_core_invsntrup761_c2); free(storage_core_invsntrup761_k2); free(storage_core_invsntrup761_n2); free(storage_core_invsntrup761_h2); free(storage_core_invsntrup761_c); free(storage_core_invsntrup761_k); free(storage_core_invsntrup761_n); free(storage_core_invsntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_invsntrup857.c0000644000000000000000000012536314705505542023372 0ustar rootroot/* ----- core/invsntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_invsntrup857_checksums[] = { "884d58c031b7f0ea5e9cbbc8274a3fa8b462f381f43d63d18fd1a2056d2c6742", "a5ad90978659be45ef3d4ce0ab6a151d4dfeaca2da7de476eb9b61d31b058f67", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_invsntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_invsntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_invsntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_invsntrup857_CONSTBYTES static void *storage_core_invsntrup857_h; static unsigned char *test_core_invsntrup857_h; static void *storage_core_invsntrup857_n; static unsigned char *test_core_invsntrup857_n; static void *storage_core_invsntrup857_k; static unsigned char *test_core_invsntrup857_k; static void *storage_core_invsntrup857_c; static unsigned char *test_core_invsntrup857_c; static void *storage_core_invsntrup857_h2; static unsigned char *test_core_invsntrup857_h2; static void *storage_core_invsntrup857_n2; static unsigned char *test_core_invsntrup857_n2; static void *storage_core_invsntrup857_k2; static unsigned char *test_core_invsntrup857_k2; static void *storage_core_invsntrup857_c2; static unsigned char *test_core_invsntrup857_c2; #define precomputed_core_invsntrup857_NUM 4 static const unsigned char precomputed_core_invsntrup857_h[precomputed_core_invsntrup857_NUM][crypto_core_OUTPUTBYTES] = { {131,255,51,250,78,247,42,1,165,4,45,1,171,247,253,5,86,248,125,250,213,9,146,0,96,249,148,251,99,1,119,253,142,252,152,255,228,255,4,10,116,1,180,247,238,255,101,251,145,250,35,254,21,248,26,3,97,0,11,250,243,1,26,6,114,250,179,7,119,3,112,5,180,5,199,8,139,249,99,6,124,4,213,6,171,252,203,5,181,4,230,250,37,249,192,3,227,6,104,248,127,6,251,248,81,2,155,0,213,7,231,252,74,8,212,247,202,254,234,6,10,2,112,248,190,254,124,255,53,3,204,254,210,6,8,5,228,3,46,249,194,5,103,7,20,3,81,9,46,5,250,9,92,1,222,248,58,255,206,255,188,248,11,9,69,251,150,8,34,7,102,248,199,252,36,246,188,253,235,246,61,5,120,9,65,247,93,7,95,9,45,249,186,1,71,1,88,252,79,252,38,249,166,2,153,7,42,7,2,254,83,5,2,2,72,251,54,2,148,7,96,255,246,250,248,253,241,252,13,4,219,253,150,9,139,251,49,2,91,252,187,7,243,251,128,4,172,255,114,6,196,246,244,7,102,3,36,252,193,9,113,7,201,8,207,1,139,247,234,245,127,5,212,255,201,8,246,249,20,0,36,3,170,249,101,5,54,252,67,249,10,250,5,252,165,3,138,250,96,2,209,247,73,253,40,248,5,2,65,1,210,7,48,253,248,7,25,4,33,252,174,255,160,254,41,248,84,0,30,254,77,5,144,255,71,2,46,5,226,249,64,249,68,254,167,0,138,5,142,9,123,254,158,252,76,2,156,252,85,247,211,251,105,247,111,252,161,5,95,8,106,253,150,4,220,4,118,251,170,249,59,4,103,1,215,255,244,2,36,8,207,249,38,5,153,0,229,6,102,248,84,4,224,254,27,252,2,253,229,255,208,249,92,247,21,8,61,254,84,255,68,254,13,246,156,253,41,1,207,3,22,4,47,5,116,252,104,252,100,9,115,248,206,255,174,3,167,250,103,5,17,3,108,9,240,3,48,247,168,3,29,7,67,7,103,247,185,9,158,247,146,253,117,250,206,255,241,246,238,248,155,5,222,249,108,246,145,4,219,251,120,250,244,247,231,0,99,7,204,253,58,246,78,7,254,254,40,9,44,8,51,250,160,254,248,248,95,5,62,0,96,252,75,9,48,4,201,251,154,252,14,252,44,250,153,252,252,247,69,254,248,255,118,250,27,3,221,255,226,247,206,251,53,250,245,1,196,8,126,255,4,250,188,247,93,248,252,1,121,254,204,252,3,254,78,255,130,254,238,247,214,247,174,9,190,7,147,248,189,255,60,254,74,255,94,249,70,249,129,2,9,9,15,0,242,250,102,6,126,250,33,248,112,6,22,248,241,247,130,255,82,250,97,249,242,253,139,250,172,250,60,251,240,245,157,4,20,5,39,7,155,248,217,7,253,6,105,8,45,254,92,8,247,0,149,248,117,249,250,3,118,249,151,247,36,9,235,1,233,3,21,248,168,254,164,252,253,252,99,246,176,7,164,9,85,249,230,255,242,255,190,254,185,3,122,247,178,1,249,247,251,1,157,1,192,253,122,252,172,253,122,251,146,248,88,255,96,251,27,0,86,3,158,255,199,251,45,7,181,248,227,6,30,249,180,253,149,250,101,4,71,252,8,10,121,3,16,247,167,252,101,9,26,251,230,247,165,4,107,2,189,254,113,251,88,9,3,10,215,252,36,9,240,245,151,2,108,2,79,251,184,0,22,251,138,5,178,253,228,249,210,0,142,3,125,7,185,254,7,4,98,3,247,247,156,9,250,1,92,247,20,3,16,3,104,246,140,254,115,5,0,10,12,246,102,255,55,254,11,0,91,2,112,3,150,7,87,251,152,254,143,248,102,1,104,247,247,7,197,251,178,3,118,8,106,247,195,3,58,0,183,5,31,248,243,2,135,251,179,253,221,255,137,0,198,1,247,250,28,3,117,249,199,247,220,9,52,4,254,8,16,249,111,7,78,0,210,252,35,252,134,1,154,8,117,248,197,254,53,246,209,252,21,251,167,2,158,1,250,251,15,254,205,8,1,250,86,248,126,7,123,255,236,246,142,252,38,250,213,8,2,2,10,9,128,2,119,246,246,247,69,252,181,255,3,255,26,251,100,250,206,253,148,0,226,251,255,247,59,8,124,1,91,7,231,248,105,255,128,254,64,249,130,249,245,3,229,252,161,7,122,251,54,251,16,1,216,5,59,247,250,253,191,6,37,250,41,7,201,0,197,5,199,6,109,0,239,4,74,252,213,255,169,6,255,255,42,3,40,8,82,9,25,247,101,4,59,8,7,252,222,4,97,255,117,6,232,3,177,252,142,4,10,9,57,255,201,3,130,5,83,4,34,4,169,248,125,6,52,1,108,9,105,252,50,252,131,252,114,252,154,251,67,247,197,9,222,3,162,7,170,248,38,255,137,253,134,254,156,252,90,8,216,4,23,10,110,252,148,6,31,255,85,255,214,250,169,255,225,248,253,255,150,0,124,251,56,251,95,253,185,3,72,246,157,253,209,9,73,255,131,9,128,248,251,0,139,254,242,9,248,7,66,252,252,3,218,0,46,249,104,255,51,251,83,3,41,7,163,4,142,254,157,255,42,1,215,246,102,248,68,248,254,250,155,0,100,246,122,7,19,246,168,252,15,249,77,7,74,6,140,6,57,251,199,5,8,255,101,250,215,6,183,5,58,7,61,4,229,250,29,252,177,250,194,246,6,7,54,253,41,2,68,250,29,3,100,246,248,255,219,1,238,7,228,255,32,9,145,255,207,255,45,247,167,247,1,8,83,252,203,253,31,4,35,2,79,254,189,248,76,252,165,8,37,6,51,255,137,2,252,2,118,1,184,2,71,254,47,1,55,251,10,253,219,246,242,8,141,246,20,3,140,7,240,254,89,249,42,252,125,2,0,251,113,255,233,253,223,252,114,250,22,254,221,5,3,7,73,6,71,255,238,9,56,250,156,252,150,255,120,9,210,4,176,0,39,247,67,2,3,6,211,6,15,254,101,255,142,0,133,4,87,249,148,4,35,8,205,7,251,250,64,249,179,2,98,249,3,7,5,6,223,249,15,6,55,254,100,253,69,3,236,4,245,248,106,0,147,7,236,248,1,2,1,8,197,3,237,6,7,10,99,7,99,2,135,6,93,247,93,6,129,3,140,7,96,247,85,254,109,251,188,0,11,4,38,7,145,5,14,251,94,2,187,247,40,250,178,7,37,247,208,253,8,252,164,1,151,7,46,250,129,3,8,248,33,9,63,247,103,9,216,251,106,253,105,247,147,254,142,246,24,0,54,251,243,4,176,8,249,248,72,249,143,255,122,7,150,249,171,0,92,9,41,252,168,254,254,245,95,253,119,2,8,255,90,4,236,6,181,249,247,253,200,248,106,250,110,254,234,251,76,8,213,9,140,248,66,246,127,5,145,251,47,247,18,253,236,253,221,248,191,247,189,251,85,7,151,251,140,247,56,246,197,254,186,1,179,9,220,8,102,246,96,248,78,255,206,7,59,9,184,255,249,249,134,7,249,7,212,1,213,250,215,0,62,254,201,255,247,253,189,248,176,0,30,254,216,251,108,254,34,247,69,248,234,249,38,6,138,9,81,6,82,249,212,255,75,4,184,2,207,5,207,253,210,253,140,249,29,8,120,7,233,246,230,2,224,251,87,7,153,5,55,8,156,9,99,255,248,246,160,254,234,2,69,7,245,1,109,4,136,3,192,2,84,0,38,8,36,7,252,254,145,2,144,6,114,4,14,252,86,5,248,246,225,252,98,247,99,2,109,6,87,5,83,250,227,0,151,250,145,249,0}, {120,1,126,5,195,247,55,249,198,249,151,250,150,4,243,245,136,251,46,255,250,4,82,3,199,2,204,3,160,3,86,3,109,249,113,6,170,248,219,248,22,252,113,250,211,254,7,254,86,3,168,2,88,250,15,253,242,6,5,2,160,248,8,2,109,246,107,1,43,4,53,247,184,5,66,248,92,5,64,1,138,3,84,254,202,255,206,250,246,247,28,9,114,255,113,0,69,9,99,1,144,9,210,9,103,5,65,248,7,2,0,246,40,7,251,245,97,0,215,249,47,251,95,251,163,255,45,8,27,248,49,8,32,249,36,254,76,247,157,254,68,8,188,3,19,247,17,10,195,253,207,9,205,0,6,0,6,246,205,246,238,253,233,254,81,0,183,248,128,249,69,5,72,247,160,1,168,248,16,0,194,252,105,248,109,2,177,4,111,254,206,251,109,249,204,252,116,247,221,255,193,253,147,8,22,248,252,4,34,5,32,246,157,2,77,253,138,249,217,6,253,250,173,249,172,249,9,247,127,7,146,0,238,9,247,1,160,249,198,250,158,250,216,246,207,3,14,248,240,2,163,4,57,8,218,248,46,255,21,10,32,7,235,5,254,251,233,8,115,8,54,252,176,248,173,252,248,251,40,0,174,0,190,246,5,246,11,248,228,8,144,254,255,9,175,7,203,9,112,246,22,251,175,2,171,9,173,254,249,246,242,1,63,246,61,252,239,6,216,2,23,1,91,8,78,0,165,6,26,8,18,7,240,253,230,7,237,252,52,250,119,252,178,2,245,9,226,248,195,5,135,3,226,6,85,5,55,254,42,249,254,255,74,249,49,255,190,249,156,252,210,251,16,7,13,255,70,8,194,249,90,255,31,250,117,248,33,3,3,1,145,5,252,251,48,3,1,248,82,248,29,8,160,250,145,0,114,254,21,2,18,251,145,9,27,5,4,1,12,0,63,248,200,251,116,250,141,6,125,8,152,253,8,253,63,248,193,246,12,8,80,7,177,250,120,249,55,253,212,9,237,8,76,250,57,9,206,3,108,4,70,252,238,250,110,5,6,5,14,7,65,254,49,250,3,0,213,246,159,1,89,251,162,5,43,255,222,253,0,254,15,8,141,6,249,252,212,0,216,254,244,5,86,251,91,9,147,1,97,2,32,255,102,8,24,247,160,248,105,249,14,249,98,255,145,2,84,246,35,1,94,250,246,1,19,5,208,5,215,7,82,248,169,1,105,252,16,249,187,8,243,4,170,255,170,255,58,252,66,9,219,246,61,8,45,9,220,0,218,6,198,5,98,9,110,255,78,248,196,1,52,4,249,4,181,253,223,2,200,253,66,253,185,255,85,8,88,250,208,255,171,7,236,255,116,248,232,254,85,6,150,254,61,7,40,253,242,4,40,0,212,255,115,7,71,254,152,252,44,247,166,250,82,246,59,250,0,5,26,7,206,253,36,246,192,254,232,254,65,254,137,5,5,252,231,8,84,248,131,248,220,5,209,250,36,1,133,254,105,249,220,6,246,8,4,251,242,3,197,251,153,0,179,246,237,253,103,4,30,3,44,248,235,248,91,9,182,249,139,0,242,5,253,253,82,253,103,0,238,245,209,252,47,249,1,2,166,8,68,251,180,253,90,4,195,8,1,3,13,253,19,7,101,9,204,247,246,3,27,246,22,246,93,255,81,0,156,246,204,5,244,253,239,250,88,9,101,255,227,6,12,250,241,251,240,245,170,1,57,250,139,254,217,3,168,2,53,7,40,6,57,6,199,249,182,8,68,251,105,250,59,7,4,254,171,9,62,1,239,249,255,4,103,250,248,0,151,8,206,8,250,5,251,247,111,247,24,6,54,2,207,254,87,9,182,7,29,5,87,253,18,8,175,246,97,5,138,0,131,1,202,252,104,252,130,251,226,251,195,248,123,247,177,1,47,248,14,7,3,249,244,255,11,5,140,9,178,252,123,253,52,5,178,0,152,250,137,251,157,254,141,8,28,1,156,248,176,8,251,254,136,248,185,253,241,247,118,247,24,6,161,250,69,254,147,250,151,249,145,6,6,2,91,254,70,8,143,251,86,247,245,0,63,1,98,255,181,5,21,7,213,5,7,8,45,248,60,7,241,8,228,249,196,248,214,9,225,6,210,246,19,246,221,255,114,8,216,4,28,2,175,5,51,252,252,9,172,5,211,255,251,249,211,255,165,7,106,250,254,8,167,6,181,5,177,248,191,249,116,2,162,254,149,5,221,249,248,9,150,255,33,4,64,2,77,5,70,254,200,253,134,251,57,254,182,251,136,246,189,254,159,246,222,255,0,255,217,6,110,3,172,251,137,8,220,7,146,9,225,255,14,254,25,9,60,8,123,3,89,247,141,3,124,249,38,246,18,249,17,5,211,248,204,5,117,3,3,9,10,248,53,6,27,251,17,246,170,246,80,9,244,2,183,5,204,8,16,1,96,255,53,248,47,252,253,250,118,4,4,246,226,247,249,3,105,247,62,2,201,250,108,250,138,4,152,252,161,251,220,254,142,250,45,254,58,0,173,253,65,250,147,254,8,7,30,248,22,0,228,4,78,7,113,2,30,246,122,247,216,6,96,1,216,5,19,248,106,246,254,3,255,249,226,252,142,254,66,247,188,0,18,6,89,7,245,249,151,254,23,1,145,249,9,1,50,253,141,247,160,6,187,9,144,248,17,2,59,9,109,5,186,6,109,9,142,5,163,9,67,8,44,8,190,249,106,246,198,7,233,9,21,0,74,251,236,5,85,6,62,250,163,2,166,9,223,8,102,4,137,254,90,3,79,247,1,252,79,249,25,6,89,4,133,248,14,4,228,7,124,246,139,252,192,251,205,253,175,248,155,253,34,251,131,7,217,0,54,251,185,248,197,4,250,255,130,4,86,250,134,4,152,0,131,254,117,249,80,8,250,250,44,254,114,252,36,6,121,9,113,254,234,2,209,249,215,6,219,255,13,255,53,254,162,8,105,0,189,246,53,5,115,253,194,1,122,3,75,5,1,249,2,3,8,251,122,254,99,248,188,9,240,8,63,9,123,3,240,9,26,246,226,247,151,5,11,254,184,3,121,5,62,254,132,252,247,255,176,7,76,4,203,8,103,9,116,1,46,249,154,248,98,2,36,248,249,8,42,255,218,3,48,3,85,1,141,4,188,4,104,2,32,9,172,8,164,248,218,0,83,246,142,254,7,250,32,2,99,7,146,8,123,2,84,252,93,6,23,250,86,6,22,3,135,247,99,3,4,6,129,254,147,0,211,0,103,255,52,5,22,250,45,246,165,3,20,1,90,255,116,251,103,7,154,255,125,5,186,6,79,249,120,252,199,3,121,252,108,9,1,250,65,255,104,2,23,2,234,7,80,5,27,246,121,0,76,2,79,1,249,252,14,246,17,9,40,3,137,255,209,7,42,254,91,4,173,252,253,254,198,6,164,255,20,7,179,7,248,4,155,7,138,251,215,252,252,250,185,248,49,0,180,255,34,7,246,6,190,8,203,3,31,250,186,3,209,1,42,253,214,255,132,249,26,255,227,1,237,9,11,10,97,9,252,254,254,252,208,0,142,2,88,247,97,9,195,0,230,250,126,253,163,252,249,0,219,2,191,253,210,252,180,249,14,8,194,0,201,8,86,252,127,5,28,0,246,7,13,7,134,252,86,3,206,254,100,249,184,6,120,3,150,8,30,250,31,7,96,250,237,249,250,2,223,248,158,251,117,254,151,4,35,4,198,6,58,255,101,252,133,6,172,248,68,252,242,9,231,251,38,246,127,249,29,246,21,255,209,249,122,253,80,254,86,5,216,247,117,246,150,251,74,8,0,249,210,255,65,3,107,6,7,252,168,9,0}, {55,249,88,253,205,8,255,9,246,253,137,1,46,5,54,252,178,246,63,1,118,8,139,7,197,2,163,248,4,247,189,5,133,255,195,5,130,254,52,253,13,5,37,0,161,252,198,248,140,0,246,254,105,1,68,3,149,7,5,0,125,252,152,9,3,2,218,1,245,9,203,253,129,248,33,254,80,246,191,255,94,250,114,6,98,9,46,251,143,252,43,253,228,8,164,5,166,252,123,8,230,3,216,254,106,246,49,3,235,6,222,252,40,3,225,8,151,250,201,247,6,251,241,6,69,248,38,253,245,8,245,9,3,250,117,247,207,9,242,247,152,5,42,253,63,250,49,1,228,3,5,251,54,254,10,9,127,247,164,5,223,2,197,251,56,0,104,7,55,4,212,2,206,248,18,250,32,246,2,255,226,250,167,3,123,252,134,8,90,6,53,4,162,8,95,2,33,2,225,1,82,0,238,248,71,9,80,253,27,246,32,8,243,7,110,8,131,247,29,249,152,249,52,7,213,250,223,251,238,249,33,252,215,252,185,247,34,250,13,0,187,0,46,0,16,255,253,253,198,9,211,255,53,7,154,1,35,247,30,2,144,246,203,4,217,249,151,247,93,250,28,6,46,0,28,7,77,0,151,246,71,246,142,250,80,5,185,0,3,255,34,251,216,8,8,255,243,254,137,7,125,1,158,253,30,9,61,0,61,248,245,247,169,3,65,255,200,6,208,252,170,6,82,8,177,6,52,252,147,250,51,0,161,255,191,255,35,0,2,247,227,250,186,247,112,248,226,246,191,7,233,247,200,0,40,0,14,0,253,254,225,4,122,249,105,246,35,249,163,251,207,255,229,253,224,2,220,1,243,6,43,0,219,9,202,254,143,5,109,0,41,6,26,252,110,7,226,1,203,255,12,1,169,254,233,251,146,9,163,2,109,6,198,2,105,249,70,252,22,9,48,247,197,251,235,7,246,4,148,0,226,250,13,247,7,0,253,245,6,0,186,3,204,5,228,9,233,252,185,8,196,248,94,250,154,4,59,253,235,5,60,5,73,6,126,253,77,8,224,247,63,249,113,4,61,251,50,1,82,254,245,7,183,254,222,248,125,5,47,249,117,246,135,252,240,251,72,1,243,255,138,246,220,0,166,248,165,5,93,6,112,8,232,255,25,249,28,250,135,6,114,251,81,246,243,8,74,253,251,7,68,6,86,7,50,0,33,7,40,4,10,248,91,4,143,246,53,247,255,1,145,254,144,249,6,8,76,7,1,9,30,254,38,1,194,9,51,9,75,255,128,5,39,3,5,247,77,252,38,3,45,4,142,1,90,255,35,247,228,253,48,251,120,0,222,248,132,4,227,249,185,254,147,255,54,253,225,255,240,9,52,248,230,248,176,251,209,253,184,252,142,5,9,3,81,249,17,4,168,8,219,9,51,9,143,254,19,247,136,250,103,6,127,246,102,247,162,4,92,246,115,1,21,4,168,249,186,5,66,9,3,249,70,8,145,9,224,249,33,246,219,249,61,4,128,0,131,5,114,0,232,253,195,249,187,7,64,252,89,254,52,8,132,247,136,8,232,2,161,252,227,6,240,9,68,7,24,248,210,254,101,5,159,254,48,4,13,6,190,254,132,9,231,2,1,248,95,252,187,254,75,5,158,3,111,253,198,250,129,247,192,2,222,9,188,253,101,3,198,248,125,255,26,251,217,1,191,254,247,6,146,249,33,255,63,255,59,252,244,248,200,5,253,3,87,250,215,4,105,248,93,3,55,248,59,253,29,247,9,253,80,251,188,4,241,252,157,2,71,249,215,254,165,250,165,246,76,2,150,255,139,9,237,248,147,248,7,246,35,246,44,247,22,253,253,0,122,249,247,248,225,254,179,251,170,255,56,4,232,255,61,255,156,250,27,2,184,8,51,7,14,248,86,5,142,247,202,254,18,248,80,2,213,253,231,0,200,5,57,5,145,249,149,249,17,6,218,249,91,1,214,0,25,7,199,246,172,4,81,4,161,7,49,249,169,1,27,255,126,255,108,2,143,8,64,4,101,5,42,255,71,0,211,3,52,246,176,1,143,246,0,247,205,2,157,246,131,2,150,8,46,3,123,4,228,250,73,0,190,0,14,254,177,250,211,2,129,255,36,5,68,7,169,7,100,248,251,3,195,252,144,249,110,0,195,247,193,7,7,7,67,247,26,246,99,246,209,5,62,4,245,2,211,5,120,6,27,7,9,249,99,246,196,248,148,3,22,250,208,5,74,248,79,1,191,252,46,252,43,246,147,7,187,250,5,246,89,5,161,247,72,246,214,246,247,2,182,1,210,9,247,3,140,249,198,253,225,251,41,9,138,4,3,7,202,252,110,247,104,2,169,5,138,6,180,246,34,251,69,248,71,248,26,251,152,248,15,2,232,250,137,6,57,6,82,9,59,246,208,4,200,248,132,249,167,8,79,5,195,248,47,251,202,1,132,248,5,249,128,247,174,8,184,8,87,6,27,1,204,8,53,251,64,254,183,253,254,4,170,255,212,6,26,254,53,246,132,252,18,1,11,4,247,247,228,252,250,255,168,254,187,248,27,0,127,6,65,252,29,6,182,249,114,6,100,8,123,4,188,254,15,254,127,246,78,3,240,250,131,4,120,255,250,247,127,253,188,4,115,1,143,8,159,3,109,246,238,3,63,4,180,247,173,9,140,3,38,248,213,252,184,253,120,248,117,5,220,4,69,252,130,2,183,0,251,4,82,246,78,8,185,246,143,9,76,7,236,2,186,246,252,7,49,250,62,5,67,7,156,1,249,255,46,250,47,8,198,2,51,9,128,3,214,246,65,0,30,8,20,8,49,9,180,254,88,254,233,253,164,252,32,0,218,6,193,251,187,0,134,253,49,247,63,253,196,9,29,6,9,252,31,251,150,2,182,246,240,249,186,246,142,252,176,9,109,1,134,9,130,5,179,252,165,3,176,7,81,3,105,2,93,9,184,251,112,252,150,1,34,248,243,5,13,6,107,247,56,250,8,10,70,254,243,7,94,1,241,5,201,251,221,248,202,249,185,4,117,5,193,246,252,253,103,250,71,6,214,3,62,8,5,254,62,249,22,7,52,3,207,0,70,6,246,0,239,252,126,248,206,2,24,6,200,251,60,249,253,255,142,253,10,254,77,8,71,3,209,9,179,0,100,1,244,9,182,9,118,246,151,0,237,5,142,2,105,247,36,251,225,255,0,6,52,4,249,9,171,3,189,252,64,250,195,1,252,253,143,252,42,255,185,3,117,250,10,254,97,1,191,250,116,8,46,4,164,252,124,4,107,251,200,4,242,250,127,250,52,0,25,9,72,252,3,253,108,248,60,255,59,6,12,2,116,3,235,9,10,4,186,1,147,0,27,5,240,7,238,247,189,3,247,2,165,9,89,5,11,6,117,250,230,250,85,253,109,249,198,2,159,247,98,7,233,8,189,247,88,251,115,4,76,9,57,9,70,251,180,1,186,254,114,9,108,246,231,248,13,254,53,254,169,255,47,2,236,0,33,7,253,1,120,246,130,252,51,248,20,248,61,4,251,3,23,247,176,8,220,251,32,249,80,250,138,250,171,0,171,8,221,251,94,8,41,2,50,2,71,252,95,1,137,249,85,6,148,253,97,4,103,252,192,247,134,246,62,6,45,252,98,248,238,253,191,4,53,8,112,0,236,6,239,255,29,249,133,3,130,7,84,2,21,0,10,8,140,247,26,5,148,246,89,1,217,5,7,251,18,252,209,248,237,0,201,252,152,9,154,3,110,7,236,3,189,254,228,248,149,247,23,2,36,9,208,7,244,7,107,250,141,248,94,249,223,4,239,254,0,2,55,7,208,254,247,250,0}, {218,8,114,250,60,247,57,5,217,7,141,3,151,248,93,8,230,2,229,253,7,253,45,248,58,251,186,2,13,246,246,9,82,0,96,248,185,248,78,8,95,246,108,5,163,250,27,0,134,254,131,252,179,252,137,253,33,249,105,7,132,253,103,5,198,8,94,5,194,254,149,247,213,4,34,250,63,9,109,255,47,253,202,249,169,249,136,1,216,7,37,253,86,3,133,7,225,249,171,253,239,249,238,249,111,9,59,250,77,0,132,9,59,252,98,9,141,2,249,9,49,7,49,253,209,6,81,247,186,1,8,254,19,1,102,252,141,252,108,254,189,1,151,254,138,5,135,3,160,9,129,253,201,249,63,246,219,4,152,250,105,5,192,5,151,251,141,255,158,252,19,254,243,1,60,254,27,250,23,6,105,250,252,247,213,248,142,9,195,246,229,3,253,245,143,8,91,9,178,248,13,4,97,4,38,252,229,4,13,3,165,250,96,253,74,6,122,250,185,253,180,1,45,251,219,5,4,248,128,251,122,8,251,255,75,9,195,250,218,249,57,251,103,253,114,5,195,249,90,254,58,5,103,2,46,249,19,254,24,4,48,8,104,254,65,6,46,4,114,2,188,255,153,252,142,9,88,247,172,255,235,4,162,9,253,9,147,2,95,2,59,247,78,9,251,1,184,9,206,7,222,249,96,2,155,0,141,254,188,3,55,9,245,7,212,9,159,5,46,1,173,249,9,0,34,251,117,255,29,246,39,246,44,254,84,248,153,9,71,3,222,249,14,8,192,1,186,3,30,0,131,3,28,249,129,4,177,0,93,255,49,2,83,255,17,247,206,246,99,254,50,7,185,7,28,0,181,9,62,255,97,253,80,254,89,248,214,247,201,247,87,4,170,255,45,2,10,252,190,251,248,253,185,5,121,246,1,7,181,246,52,252,184,5,86,1,173,254,188,4,72,5,210,249,194,250,109,247,77,253,39,253,95,254,115,249,77,2,19,3,113,5,64,255,38,247,37,253,137,2,204,250,15,253,186,253,176,250,12,247,56,252,249,254,197,248,37,252,139,255,117,7,5,0,65,4,115,254,199,246,188,255,44,250,28,9,119,4,234,9,2,248,155,9,13,3,109,4,166,6,31,2,135,247,46,9,57,3,167,8,234,1,161,253,4,6,50,2,244,252,27,8,132,8,212,5,99,9,250,4,101,252,78,2,114,0,133,6,200,247,166,253,247,249,116,254,44,252,13,254,96,6,157,248,253,253,190,249,196,5,3,249,101,6,94,3,8,247,155,2,68,6,225,255,65,3,145,249,113,249,222,4,123,4,65,7,136,251,117,253,163,252,159,252,50,6,238,255,156,0,23,0,28,253,80,246,203,8,212,246,69,8,55,5,111,255,109,4,208,1,30,252,246,249,149,0,106,8,248,245,72,255,20,251,40,252,158,254,126,255,226,4,200,2,233,246,10,5,235,5,207,251,19,2,103,6,237,247,103,255,211,0,55,251,201,248,218,247,131,248,96,254,231,8,129,3,196,251,8,5,77,0,57,255,6,250,12,249,216,0,182,251,147,4,134,254,65,255,20,2,197,249,174,1,70,7,107,250,0,247,9,9,155,253,188,2,28,4,145,247,192,249,209,0,212,4,33,3,31,248,178,253,39,255,20,0,226,247,210,5,122,2,54,254,71,8,94,249,63,1,177,249,242,250,230,9,248,255,44,5,204,246,40,254,61,254,19,0,71,9,156,247,167,5,239,246,168,4,197,2,50,6,156,253,185,254,223,249,96,248,95,246,110,247,163,3,48,254,246,254,144,247,127,254,90,246,51,4,172,247,203,7,218,9,18,247,146,6,74,250,241,8,98,2,62,1,142,2,113,249,181,2,23,247,175,4,16,250,21,251,114,8,57,1,166,8,57,250,251,248,50,6,247,247,190,4,109,246,149,0,127,249,6,8,202,255,60,249,211,9,8,1,86,247,44,247,231,247,123,253,37,0,39,249,189,5,158,5,111,253,232,246,196,2,51,4,158,0,149,8,242,7,178,4,32,249,160,2,159,254,206,254,20,5,217,247,127,1,233,9,70,253,59,247,72,254,250,250,222,251,124,250,52,247,251,4,175,4,143,252,70,247,248,7,25,9,189,248,251,250,12,3,157,249,1,3,53,9,103,5,253,6,78,7,234,253,227,0,7,252,115,8,229,252,23,9,182,252,212,6,75,254,181,7,63,5,159,253,171,250,70,249,109,247,72,247,249,3,85,9,14,252,123,246,247,4,9,3,73,0,209,6,79,253,232,253,141,252,66,4,78,4,131,253,32,246,242,248,44,0,51,252,25,4,122,4,140,0,177,5,74,252,114,252,103,251,243,8,33,9,135,247,71,8,241,255,7,255,180,252,96,250,125,252,150,7,94,0,195,250,45,7,35,5,250,253,114,6,82,248,45,1,224,1,72,3,212,5,27,8,3,251,86,3,77,246,250,8,92,3,216,246,48,6,71,3,255,253,14,1,205,254,209,8,208,3,41,9,82,1,150,8,70,253,88,246,215,3,22,249,41,248,86,7,196,0,71,7,223,6,18,10,82,252,201,9,2,252,39,253,134,9,105,247,165,9,123,253,110,5,79,252,197,1,130,5,128,0,241,252,185,7,169,255,246,245,117,8,232,9,25,2,111,250,55,250,67,5,233,9,46,251,214,6,59,2,196,6,228,255,118,248,242,248,193,4,68,3,180,1,107,6,245,2,107,249,218,6,249,3,35,246,209,254,130,8,94,249,205,255,39,6,120,249,29,250,164,6,220,247,135,1,167,3,126,249,83,8,113,2,245,3,174,3,194,249,218,255,95,255,9,250,98,246,13,8,188,246,226,248,25,4,151,246,215,4,236,250,221,4,20,247,92,255,252,247,169,246,128,2,115,7,119,0,225,0,145,247,34,255,203,3,96,247,205,9,9,2,5,2,53,254,43,4,100,1,105,252,24,1,125,248,149,1,173,3,172,247,37,252,72,252,1,5,151,250,161,254,229,3,175,247,197,3,199,1,129,254,52,0,0,5,219,247,99,7,150,255,242,246,127,2,152,7,239,249,51,7,47,7,239,5,174,248,61,5,122,4,162,254,49,2,88,250,69,247,52,255,18,3,239,0,107,6,192,6,40,6,27,4,204,247,92,9,109,246,176,3,121,9,103,253,204,248,189,248,51,8,55,246,8,10,187,5,187,250,202,252,216,7,212,0,127,254,207,5,6,2,89,253,195,7,222,249,128,253,20,253,116,249,135,6,116,251,7,251,141,1,72,246,61,249,100,255,67,248,123,253,72,9,171,246,232,246,228,249,224,251,126,8,198,6,243,245,193,2,188,255,238,2,99,7,244,251,188,255,182,247,24,0,217,249,249,8,13,6,8,0,10,3,143,254,159,254,139,3,62,7,98,252,20,5,196,246,158,247,9,8,114,6,191,2,97,249,128,4,184,6,176,1,42,0,27,253,94,5,20,251,79,8,131,249,13,250,246,7,242,7,86,253,65,252,198,9,114,252,61,246,119,247,76,246,118,6,255,1,83,248,60,5,143,5,66,5,141,255,43,8,23,8,119,255,63,246,244,251,182,8,246,0,28,252,129,5,108,7,130,247,204,254,249,0,232,9,148,249,139,253,93,249,237,4,231,249,78,9,133,7,110,249,129,5,186,253,77,6,132,255,151,247,42,249,120,250,167,253,91,254,107,0,130,9,234,9,202,250,64,4,202,1,43,5,50,249,61,246,184,5,90,7,65,250,132,8,228,251,86,1,146,0,185,255,52,5,33,248,131,4,232,2,127,247,250,0,180,8,70,9,35,1,242,0,95,248,27,7,151,252,108,1,14,5,162,3,0}, } ; static const unsigned char precomputed_core_invsntrup857_n[precomputed_core_invsntrup857_NUM][crypto_core_INPUTBYTES] = { {200,179,34,113,134,217,96,222,13,32,96,87,31,240,145,221,250,71,69,145,75,186,168,193,135,115,39,128,243,144,60,206,157,23,13,224,86,74,110,229,2,88,238,41,160,189,24,80,179,60,217,235,197,38,165,36,75,212,18,211,130,97,48,51,157,57,228,71,199,76,95,16,250,33,236,14,74,58,244,9,19,253,64,181,176,44,122,151,212,97,60,47,135,122,90,190,206,98,127,92,58,194,183,214,223,132,102,192,55,1,144,88,217,16,38,126,221,62,223,228,144,138,247,180,3,107,244,84,54,36,3,2,65,238,217,13,212,228,34,188,7,28,107,147,229,97,105,253,221,136,67,79,232,173,24,183,77,136,108,111,255,196,77,67,127,85,242,223,161,133,170,113,206,142,149,86,146,160,8,149,104,247,53,40,208,89,82,179,135,31,93,164,242,24,128,37,108,179,136,38,134,227,30,47,111,91,62,85,0,192,169,126,173,3,16,221,169,22,81,186,143,8,77,152,55,17,114,179,247,58,129,198,228,105,118,69,152,251,48,203,120,14,220,94,2,80,183,44,14,79,61,60,68,225,99,1,64,238,18,241,89,242,98,159,195,140,51,166,41,83,114,249,237,30,105,149,12,203,14,36,9,88,17,237,104,149,14,4,235,143,32,172,113,47,255,46,177,55,195,57,207,13,75,137,56,195,240,104,176,182,122,63,201,101,57,183,169,205,161,124,117,54,5,155,29,200,91,240,54,184,75,82,97,22,203,224,74,138,26,113,61,110,146,108,73,207,116,104,89,132,251,187,116,64,5,95,11,42,113,139,32,51,180,156,245,229,43,187,28,57,55,225,49,139,3,207,86,117,149,111,205,55,193,177,161,19,162,5,118,22,123,202,127,103,225,105,138,44,81,63,47,25,207,156,31,185,93,1,226,188,67,158,64,103,69,234,80,149,63,187,65,241,165,171,51,223,109,186,206,59,198,173,62,144,50,238,222,14,101,125,187,160,223,114,142,181,111,92,65,190,38,72,96,165,14,67,39,88,94,30,96,41,63,78,250,144,139,59,100,139,225,113,233,139,174,77,85,8,90,175,220,122,107,7,123,183,123,205,149,216,22,43,225,124,14,56,73,30,155,4,69,206,26,137,141,59,3,234,224,53,227,153,36,123,61,153,48,66,181,177,241,188,145,203,61,97,111,3,57,31,228,188,118,103,38,57,195,182,42,194,190,91,134,239,58,169,228,225,235,90,165,216,214,150,53,220,134,225,151,177,189,44,12,5,251,156,131,42,38,51,101,58,139,191,212,206,202,167,162,206,42,94,56,125,71,119,131,95,114,139,71,98,165,161,235,99,89,56,239,120,103,112,201,8,173,172,74,137,114,198,100,118,61,222,67,109,231,11,34,243,3,164,132,177,234,167,15,230,13,43,24,197,248,173,45,16,63,121,4,170,212,17,170,207,149,143,121,189,155,75,42,225,119,188,3,175,6,151,5,51,191,167,192,206,193,136,204,146,101,17,124,165,97,67,86,123,12,143,42,106,58,55,192,136,210,42,254,248,223,77,92,166,80,80,160,110,54,176,78,111,179,170,252,120,215,70,133,135,83,35,129,81,188,19,99,52,243,116,54,28,152,58,141,24,116,129,211,124,146,214,40,235,141,137,56,139,242,244,81,49,105,182,146,233,242,115,61,140,167,18,4,177,65,239,1,240,85,147,60,55,161,252,16,6,104,135,227,149,222,49,23,65,94,200,142,207,193,56,40,175,191,50,207,219,205,26,91,139,234,42,122,248,182,66,131,63,187,81,134,83,41,193,234,23,215,64,215,69,221,141,139,69,64,222,250,40,137,103,68,92,76,198,166,178,98,160,195,39,90,244,225,251,130,62,252,132,99,89,202,136,202,25,232,169,140,100,48,164,68,217,101,84,179,131,3,163,202}, {49,104,39,123,15,40,164,115,150,152,246,205,52,83,144,55,57,168,157,235,86,131,154,215,153,166,67,104,14,11,19,149,82,216,86,138,121,1,0,39,232,69,217,64,242,63,225,51,153,56,38,108,14,49,226,70,204,141,163,116,132,222,234,197,203,187,188,223,25,142,245,32,55,92,127,124,163,21,77,169,47,158,126,13,79,76,215,40,134,23,122,255,18,1,52,187,113,248,153,192,223,3,50,176,69,26,178,148,198,133,203,68,45,163,54,60,61,63,203,70,1,16,10,225,223,42,174,71,112,213,159,112,207,164,46,5,97,82,128,76,154,223,228,39,183,218,85,108,37,207,198,194,47,133,160,43,200,18,145,245,227,72,213,6,8,27,49,171,193,104,59,226,16,4,32,196,27,142,228,125,177,131,76,118,68,237,44,104,23,187,23,98,69,239,70,255,236,236,189,203,82,76,2,13,169,251,12,107,21,198,113,112,238,197,216,38,33,40,86,234,115,196,226,106,233,184,233,99,224,136,228,7,64,83,147,119,94,60,246,20,223,142,127,117,163,1,143,142,182,216,58,84,235,246,224,44,143,62,75,56,84,214,126,189,240,78,148,87,38,5,230,208,118,133,98,162,245,142,55,151,37,253,143,55,56,244,242,62,206,75,157,91,126,224,72,192,65,45,103,203,254,128,141,156,30,250,13,121,49,88,197,107,53,246,74,182,213,223,155,114,49,56,214,190,31,237,147,26,123,48,217,247,147,65,36,52,125,215,179,210,105,13,133,171,207,248,105,64,121,53,52,100,153,5,211,226,183,11,143,112,187,44,11,201,235,234,16,201,65,61,226,124,249,47,112,149,217,5,121,204,168,249,200,144,118,127,165,118,169,231,74,203,68,121,186,204,121,173,247,185,126,41,42,239,6,122,158,30,112,120,210,199,237,181,36,134,221,47,49,173,118,16,51,154,172,79,110,16,128,82,43,43,74,214,54,85,224,149,241,63,87,52,18,133,186,206,146,67,228,13,164,147,60,174,27,192,194,115,19,169,13,123,147,143,55,64,19,34,28,116,70,113,171,71,191,38,199,147,140,194,11,174,176,11,118,225,64,18,241,102,182,150,156,119,82,57,44,252,47,213,162,154,142,55,143,218,157,88,99,186,36,129,188,48,152,123,244,11,79,196,253,100,84,86,253,45,194,103,249,81,51,140,10,23,17,32,76,53,83,5,162,136,80,184,122,78,240,28,169,63,204,38,137,75,79,6,233,196,115,165,214,204,26,215,64,206,177,160,225,48,82,244,157,196,51,184,113,11,0,5,80,187,161,68,105,200,134,205,243,102,84,194,46,152,252,218,248,244,220,91,62,255,250,206,165,107,104,158,40,187,245,194,109,105,188,44,229,58,67,47,165,48,244,61,238,205,129,9,101,44,39,104,107,100,78,99,199,53,161,244,24,172,249,157,232,169,234,238,35,45,24,186,14,76,251,165,151,106,175,163,182,28,27,241,164,86,191,48,2,169,178,100,106,240,140,22,67,76,242,252,153,234,104,50,148,108,120,94,83,27,68,51,239,134,13,52,31,136,192,106,95,7,43,83,206,61,98,118,116,222,233,94,2,205,71,167,147,157,11,197,146,128,22,250,242,126,242,123,127,73,5,45,122,31,165,45,200,70,7,12,193,21,200,191,151,218,189,38,251,27,100,172,76,174,126,161,222,67,211,124,22,34,253,28,186,118,152,218,112,67,157,44,35,82,156,133,213,90,248,40,156,242,13,186,175,247,122,120,30,207,182,235,124,181,9,114,162,170,225,33,206,163,227,180,205,210,234,92,70,68,244,231,29,123,1,144,111,92,149,71,89,190,126,252,111,63,200,163,197,42,53,106,172,157,181,255,185,132,227,78,143,193,56,50,238,28,127,152,171,181,90,204,38,9,239,104,163}, {76,179,30,69,175,228,49,149,159,55,226,209,243,239,17,213,188,149,183,111,178,35,28,150,104,207,218,144,113,50,147,144,8,12,245,122,75,154,137,225,161,137,64,163,116,88,20,240,182,222,120,217,227,168,72,188,189,147,9,64,112,34,62,188,175,254,203,244,223,69,193,17,129,223,233,247,119,127,118,243,186,141,59,66,222,126,19,90,253,14,44,53,81,155,124,247,228,244,165,50,198,14,194,128,43,128,184,138,211,34,178,151,113,103,175,207,147,102,6,21,128,82,159,17,156,233,15,34,103,118,45,239,64,72,22,23,29,136,64,242,100,244,149,45,157,97,186,86,67,151,205,204,167,125,251,156,79,228,226,124,151,178,111,116,143,18,155,47,181,86,167,213,126,217,34,222,86,254,133,126,228,242,157,173,9,83,27,252,121,116,109,33,42,212,236,18,73,168,48,138,229,221,41,144,116,65,24,239,95,82,45,170,2,134,100,20,169,93,90,248,40,123,145,64,43,158,126,246,17,141,177,245,69,219,99,120,215,196,30,134,123,167,90,172,68,35,177,157,140,148,129,110,101,105,184,207,101,57,45,141,175,129,20,13,248,91,202,192,68,92,233,66,76,60,237,194,113,81,127,96,161,182,241,13,245,31,252,20,69,86,141,153,50,238,53,57,14,162,108,93,199,174,225,18,203,27,211,47,154,102,94,131,55,142,213,253,151,183,94,33,85,105,112,102,27,182,232,171,200,28,101,144,0,88,50,152,6,57,246,3,120,99,64,27,10,57,117,242,165,212,225,100,234,56,158,140,233,70,233,191,126,222,113,45,132,57,136,38,56,48,138,50,80,123,243,30,107,42,142,209,45,117,153,214,127,67,249,164,89,92,73,30,8,138,178,153,112,91,133,206,229,198,159,98,129,244,6,231,107,107,176,128,143,60,24,120,137,231,2,222,8,245,106,68,150,101,214,204,127,139,182,243,23,101,128,14,241,230,183,38,116,209,132,167,180,156,140,116,222,227,140,0,96,198,101,141,103,217,90,242,58,196,43,215,235,45,191,32,131,226,137,71,192,40,253,156,176,25,53,134,196,99,135,40,230,177,19,190,193,247,23,115,12,215,83,118,239,11,142,211,204,172,130,118,125,132,211,176,50,183,82,55,128,3,48,15,78,203,136,97,226,44,157,215,203,180,35,26,181,21,175,255,10,190,20,60,175,71,103,133,32,232,199,101,193,101,186,103,180,13,61,167,202,76,239,140,15,68,234,167,127,183,41,38,202,75,184,241,120,176,120,254,61,156,182,74,170,78,144,185,86,46,186,219,129,53,253,248,158,148,235,188,116,125,186,89,93,132,2,46,72,23,120,109,221,226,202,91,155,115,78,223,119,151,197,80,43,81,184,251,12,190,118,31,243,199,184,164,164,189,73,66,99,188,52,111,28,193,255,242,55,49,156,173,102,233,191,228,57,246,162,81,120,14,234,242,55,173,250,224,163,249,82,25,66,228,190,132,247,116,112,208,0,103,115,212,107,175,140,182,104,240,219,240,99,113,115,103,27,0,232,232,180,125,175,106,17,221,8,28,150,104,160,138,25,96,127,88,235,29,231,19,177,116,201,237,70,103,49,216,107,89,155,230,45,124,37,7,209,23,164,43,30,36,190,106,201,49,248,166,6,25,185,41,190,244,39,154,167,84,159,211,122,157,238,163,57,13,107,210,142,238,155,115,101,47,13,242,71,90,139,70,129,39,200,108,132,182,218,71,106,99,195,93,242,177,102,159,136,150,27,218,127,199,43,147,7,84,114,110,6,138,114,134,252,110,84,251,0,33,77,239,26,13,38,36,187,44,26,192,119,130,17,234,129,27,15,218,109,80,173,80,138,183,37,190,19,210,211,129,183,49,179,194,101,203,88,213,138,37,116,227,25,219,154,119,102}, {43,141,12,27,70,230,208,8,88,182,178,241,92,233,79,212,113,251,146,157,129,250,252,94,133,160,249,98,199,231,46,162,45,190,38,124,219,164,208,166,103,22,167,103,235,241,172,196,188,172,100,248,174,21,74,243,235,88,126,147,190,25,170,7,179,115,12,72,36,8,220,142,70,252,159,233,201,27,56,55,128,222,222,47,126,127,113,111,223,93,14,105,114,5,45,231,151,143,135,248,238,210,72,3,46,85,198,160,121,155,39,97,246,199,84,48,227,176,96,190,218,88,189,251,190,17,29,197,58,70,56,239,23,206,180,4,166,167,95,228,15,52,198,4,177,253,118,13,20,62,138,25,202,172,103,26,37,213,14,175,244,162,246,143,245,205,10,225,146,72,90,28,162,53,104,81,133,99,120,3,175,176,167,23,204,92,125,215,103,127,154,89,136,242,186,217,1,64,81,116,157,237,105,85,195,102,163,237,181,88,15,178,239,183,6,253,249,106,26,179,156,127,105,137,56,215,11,57,136,250,246,253,36,183,140,38,222,150,207,136,73,115,124,16,32,52,140,138,228,88,24,226,151,46,102,224,72,12,133,161,14,198,10,244,220,251,18,187,211,4,188,36,138,198,0,54,60,14,241,31,102,192,80,35,0,89,92,121,80,208,183,220,34,35,14,99,19,43,158,72,174,231,198,133,244,167,25,78,194,22,199,18,73,6,23,12,123,106,29,130,11,106,226,208,244,223,220,174,237,180,212,126,56,123,14,128,74,72,46,145,231,13,250,89,97,120,2,53,22,139,225,120,12,97,184,83,129,95,147,87,252,153,182,66,212,152,227,76,226,212,130,185,63,5,105,48,114,134,150,143,247,255,2,92,99,52,130,112,15,226,106,58,216,75,28,138,61,138,135,53,14,163,145,12,237,151,209,163,33,8,212,80,76,216,186,51,148,187,252,46,174,33,21,119,82,204,61,114,232,37,125,197,134,165,212,53,175,21,208,229,48,232,81,185,64,239,155,23,244,112,85,8,172,138,79,231,87,64,159,147,104,187,144,182,179,23,21,239,178,229,245,219,157,84,252,3,89,160,147,37,25,155,116,68,97,210,147,93,38,24,3,222,136,107,250,224,93,101,137,1,61,27,211,117,16,13,215,135,209,129,152,1,255,176,59,85,254,24,100,179,92,95,29,195,119,241,137,75,142,206,148,200,194,55,115,83,165,125,14,221,135,20,104,238,41,8,15,16,169,47,32,73,250,2,154,53,41,52,165,44,120,75,254,157,221,206,119,73,89,38,89,173,19,204,173,10,251,152,164,145,176,10,34,50,64,194,171,128,178,113,237,205,3,174,69,159,152,235,62,183,41,237,217,26,170,178,45,218,118,134,113,35,193,182,163,236,128,3,160,221,239,82,148,88,243,70,92,111,52,40,204,49,173,233,216,142,76,254,134,224,250,63,211,31,253,114,7,174,135,135,221,25,33,242,253,94,139,5,104,186,201,203,104,80,21,193,109,205,67,32,46,137,139,156,44,101,21,171,150,17,122,173,157,5,218,202,223,212,10,125,196,104,104,231,214,250,130,49,170,1,67,27,218,75,43,93,128,177,78,205,124,67,144,129,103,33,162,35,207,171,137,242,193,70,132,222,251,0,48,89,53,233,85,0,88,232,249,70,140,32,46,160,144,96,34,143,27,91,117,18,88,47,195,37,77,12,71,238,62,27,253,141,134,33,141,0,247,194,236,153,133,195,204,6,91,14,235,69,140,107,126,19,79,236,68,161,182,168,200,2,74,147,60,11,184,46,185,163,200,75,34,198,131,162,111,111,196,223,86,120,230,117,124,253,227,83,144,157,216,232,119,43,218,66,145,103,62,144,0,79,145,143,53,27,66,128,216,195,4,248,63,47,82,16,146,65,54,224,6,18,218,150,108,16,184,238,156}, } ; static const unsigned char precomputed_core_invsntrup857_k[precomputed_core_invsntrup857_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_invsntrup857_c[precomputed_core_invsntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_invsntrup857_impl(long long impl) { unsigned char *h = test_core_invsntrup857_h; unsigned char *n = test_core_invsntrup857_n; unsigned char *k = test_core_invsntrup857_k; unsigned char *c = test_core_invsntrup857_c; unsigned char *h2 = test_core_invsntrup857_h2; unsigned char *n2 = test_core_invsntrup857_n2; unsigned char *k2 = test_core_invsntrup857_k2; unsigned char *c2 = test_core_invsntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_invsntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup857(impl); printf("core_invsntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup857_implementation(impl),ntruprime_dispatch_core_invsntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup857; printf("core_invsntrup857 selected implementation %s compiler %s\n",ntruprime_core_invsntrup857_implementation(),ntruprime_core_invsntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_invsntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_invsntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_invsntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_invsntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_invsntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_invsntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_invsntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_invsntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_invsntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_invsntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_invsntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup857")) return; storage_core_invsntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_invsntrup857_h = aligned(storage_core_invsntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_invsntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_invsntrup857_n = aligned(storage_core_invsntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_invsntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_invsntrup857_k = aligned(storage_core_invsntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_invsntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_invsntrup857_c = aligned(storage_core_invsntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_invsntrup857_h2 = callocplus(maxalloc); test_core_invsntrup857_h2 = aligned(storage_core_invsntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_invsntrup857_n2 = callocplus(maxalloc); test_core_invsntrup857_n2 = aligned(storage_core_invsntrup857_n2,crypto_core_INPUTBYTES); storage_core_invsntrup857_k2 = callocplus(maxalloc); test_core_invsntrup857_k2 = aligned(storage_core_invsntrup857_k2,crypto_core_KEYBYTES); storage_core_invsntrup857_c2 = callocplus(maxalloc); test_core_invsntrup857_c2 = aligned(storage_core_invsntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_invsntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup857();++impl) forked(test_core_invsntrup857_impl,impl); ++test_core_invsntrup857_h; ++test_core_invsntrup857_n; ++test_core_invsntrup857_k; ++test_core_invsntrup857_c; ++test_core_invsntrup857_h2; ++test_core_invsntrup857_n2; ++test_core_invsntrup857_k2; ++test_core_invsntrup857_c2; } free(storage_core_invsntrup857_c2); free(storage_core_invsntrup857_k2); free(storage_core_invsntrup857_n2); free(storage_core_invsntrup857_h2); free(storage_core_invsntrup857_c); free(storage_core_invsntrup857_k); free(storage_core_invsntrup857_n); free(storage_core_invsntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_invsntrup953.c0000644000000000000000000013536614705505542023373 0ustar rootroot/* ----- core/invsntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_invsntrup953_checksums[] = { "e3c85424efc73a2708c2fcfe0a3f330c164eec370ed8432105e1f670e2cc7760", "176b39e76aaec3d9e0e1ed90902be3539020c31478076233b511e983c989d207", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_invsntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_invsntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_invsntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_invsntrup953_CONSTBYTES static void *storage_core_invsntrup953_h; static unsigned char *test_core_invsntrup953_h; static void *storage_core_invsntrup953_n; static unsigned char *test_core_invsntrup953_n; static void *storage_core_invsntrup953_k; static unsigned char *test_core_invsntrup953_k; static void *storage_core_invsntrup953_c; static unsigned char *test_core_invsntrup953_c; static void *storage_core_invsntrup953_h2; static unsigned char *test_core_invsntrup953_h2; static void *storage_core_invsntrup953_n2; static unsigned char *test_core_invsntrup953_n2; static void *storage_core_invsntrup953_k2; static unsigned char *test_core_invsntrup953_k2; static void *storage_core_invsntrup953_c2; static unsigned char *test_core_invsntrup953_c2; #define precomputed_core_invsntrup953_NUM 4 static const unsigned char precomputed_core_invsntrup953_h[precomputed_core_invsntrup953_NUM][crypto_core_OUTPUTBYTES] = { {34,0,193,248,23,251,38,0,81,250,115,8,165,5,221,245,201,246,113,3,219,4,130,252,75,11,137,9,233,8,172,244,163,0,248,251,69,8,255,8,220,0,165,2,195,244,252,245,224,3,191,11,80,247,170,11,17,254,114,247,154,9,145,250,251,248,71,251,57,251,26,253,178,255,170,247,217,10,207,248,122,245,11,1,197,3,84,249,207,254,0,4,202,11,234,4,115,3,118,246,79,6,229,249,29,249,90,1,211,8,29,7,149,247,221,253,60,254,41,245,186,243,43,8,226,255,157,243,191,250,229,10,63,7,182,247,222,247,79,250,36,11,172,253,85,8,4,2,37,6,17,254,99,246,204,255,167,5,95,245,12,6,208,248,232,252,104,5,164,245,86,2,36,6,95,1,187,249,26,245,230,3,183,244,25,10,152,250,255,246,156,247,62,12,107,255,111,6,79,6,53,8,46,245,148,254,118,0,48,6,34,248,16,0,34,10,9,244,32,3,164,1,84,246,172,251,101,4,204,5,133,246,160,255,219,6,136,247,20,0,146,245,43,6,105,255,147,1,153,252,18,251,221,250,109,0,10,254,244,0,77,10,23,251,79,253,125,11,107,10,65,249,152,247,179,4,10,0,104,253,31,247,105,11,239,7,59,252,115,254,148,252,195,254,71,9,130,3,158,10,83,249,83,244,113,4,64,0,95,251,33,245,136,5,109,255,181,6,120,7,72,249,125,249,108,249,16,245,155,245,125,253,147,0,104,7,46,10,11,254,48,251,104,3,128,245,71,7,199,0,5,247,84,4,227,10,230,2,230,245,153,5,62,5,78,8,124,10,15,248,132,250,190,9,232,0,184,252,131,8,142,2,26,3,83,248,104,248,209,244,157,243,171,4,0,8,243,7,215,6,182,7,20,253,191,6,9,8,12,5,80,252,97,244,116,0,233,11,139,11,125,11,118,5,153,247,97,10,133,244,195,7,52,1,238,4,212,11,216,244,129,6,93,245,201,247,149,4,183,9,196,254,119,6,168,10,250,252,70,8,22,12,59,2,64,12,212,7,93,9,92,246,208,6,221,1,0,11,12,2,117,0,36,12,239,1,63,1,133,0,204,6,129,253,122,4,56,12,34,246,21,10,25,9,202,1,196,10,0,251,186,252,61,1,77,251,66,246,216,253,136,8,112,249,74,5,161,6,167,248,224,4,171,4,93,0,234,253,156,250,168,255,209,248,227,249,145,255,155,4,240,247,219,4,109,249,128,250,43,251,162,243,110,251,228,251,142,254,17,252,37,5,174,8,128,253,193,254,12,10,41,254,233,9,55,10,215,0,53,244,75,246,255,248,206,250,193,243,190,248,71,253,47,10,93,249,107,254,233,243,50,3,86,8,244,249,212,4,107,0,143,7,181,247,22,12,68,254,154,0,171,3,212,255,62,248,78,5,43,247,102,244,30,0,124,246,224,1,203,3,105,250,221,6,6,2,151,11,11,255,191,248,150,5,52,0,127,244,173,246,24,2,41,253,223,3,3,249,95,3,130,247,67,253,11,250,17,9,2,12,40,8,75,10,88,3,83,244,49,248,167,11,216,10,190,9,65,10,209,0,31,2,79,0,158,2,197,251,182,253,211,248,84,248,169,7,11,248,31,249,186,249,159,252,4,5,243,0,17,9,188,255,59,255,119,10,113,244,39,7,95,5,249,6,193,253,179,11,253,253,78,248,215,255,85,248,40,2,229,7,2,5,96,7,198,248,205,7,149,9,97,244,219,246,140,4,134,4,82,6,78,4,48,6,242,0,46,8,88,8,136,252,243,252,97,11,30,7,213,253,8,248,14,251,119,250,28,8,1,11,35,255,216,251,124,7,4,8,58,249,9,249,11,253,5,8,220,251,16,254,14,6,130,251,120,255,3,253,34,4,176,7,55,0,209,248,214,9,130,3,3,11,119,245,243,245,137,247,36,3,79,250,143,245,136,5,177,254,65,246,88,1,230,249,245,255,124,7,253,0,225,247,240,8,89,12,192,244,50,252,1,251,81,249,227,243,67,244,162,255,181,8,94,0,39,4,239,245,62,247,248,252,128,244,225,10,3,8,182,5,82,2,96,253,244,245,127,4,158,252,176,11,239,10,61,2,151,0,230,254,105,0,188,244,144,244,254,10,153,254,197,251,39,12,218,2,2,8,220,247,236,248,73,244,230,9,16,249,2,6,126,249,227,253,216,1,124,7,202,4,239,7,206,3,46,247,82,249,59,7,25,8,18,248,142,246,209,248,26,251,130,6,84,1,35,11,235,11,35,4,135,253,66,1,161,8,100,247,209,246,8,246,189,247,73,0,243,252,153,247,136,5,103,253,108,248,10,252,47,1,246,244,185,5,19,245,81,0,183,0,188,245,198,249,38,10,124,255,77,0,110,248,71,252,146,4,205,255,201,8,162,2,66,5,20,249,199,10,248,7,136,5,157,244,66,11,146,247,89,252,206,2,196,247,43,11,66,7,71,251,199,10,172,0,91,245,121,252,76,9,88,251,223,253,97,248,147,250,28,9,110,1,38,7,129,247,25,2,44,252,62,245,150,6,36,4,90,1,129,10,177,245,15,11,252,248,218,4,66,5,7,244,102,244,60,9,127,252,252,11,139,2,49,250,134,8,216,4,246,2,157,249,208,244,200,5,179,2,26,8,57,244,206,254,63,10,21,251,148,252,14,253,223,249,219,245,179,4,143,247,143,3,165,244,94,255,202,0,27,9,251,0,212,243,17,2,221,244,104,10,74,0,199,1,104,255,220,248,21,249,236,245,116,251,34,248,79,1,29,248,83,253,102,249,128,6,15,9,146,9,161,251,203,7,172,245,23,255,239,11,198,249,17,7,71,8,219,9,145,7,240,247,32,10,57,2,25,244,139,4,242,5,176,251,6,7,44,9,200,9,105,3,205,6,106,244,12,4,73,1,111,3,0,248,136,7,115,249,191,251,33,11,115,8,189,244,74,1,40,254,216,7,64,5,251,248,225,2,229,249,161,247,205,4,161,245,225,4,116,10,44,253,175,248,231,1,212,249,15,249,206,250,208,247,234,245,182,252,123,7,98,244,56,8,203,4,4,253,218,0,158,252,77,249,35,1,123,246,226,5,244,4,142,6,89,252,158,9,34,255,120,250,99,3,50,12,62,249,6,9,146,252,185,254,202,8,168,255,122,252,166,250,219,252,9,10,68,254,231,253,242,245,0,246,220,249,112,2,192,248,168,11,160,243,116,245,6,244,14,244,187,244,240,9,165,9,131,4,108,249,28,12,6,11,97,254,69,252,157,243,228,1,157,254,75,7,168,255,250,247,141,9,26,249,215,3,209,4,83,250,118,248,19,3,134,6,4,7,165,252,84,247,215,255,202,253,211,10,5,252,100,8,222,7,199,3,240,250,181,248,87,2,227,7,113,255,160,6,171,8,13,9,243,249,56,247,190,254,216,246,97,5,104,255,60,246,109,11,11,2,177,250,249,3,134,9,180,245,187,10,213,3,183,243,228,249,188,10,52,3,39,8,93,4,249,251,65,7,8,0,95,248,22,246,222,252,250,249,0,6,180,4,53,248,21,253,247,6,16,2,214,246,169,249,16,253,127,1,17,248,9,245,216,252,214,8,234,3,41,9,69,252,250,1,148,3,130,5,59,5,194,3,228,8,234,11,189,2,73,0,168,245,59,4,86,7,123,7,105,1,164,10,36,251,42,2,0,246,234,244,131,1,77,6,130,1,63,246,5,254,245,0,21,6,73,5,145,2,164,9,28,6,230,3,212,255,4,249,83,4,125,7,155,254,60,254,254,9,90,10,244,249,106,10,251,11,84,255,58,6,131,244,146,4,99,249,221,3,109,6,115,252,197,7,173,5,189,8,78,9,93,2,97,3,37,253,179,10,51,0,228,2,18,245,0,10,13,3,130,5,112,252,3,4,215,245,93,6,187,11,247,3,22,2,224,5,205,10,198,6,227,252,237,243,151,252,168,244,198,248,62,255,125,3,113,0,63,1,248,253,96,252,23,12,191,6,12,253,245,4,111,244,109,250,135,244,33,1,116,8,3,250,78,246,81,0,157,255,85,247,208,243,89,246,235,247,6,248,226,8,131,251,47,6,190,1,135,253,97,4,147,8,39,8,91,252,215,10,178,252,236,250,190,252,38,9,68,10,116,247,206,255,97,255,41,246,169,252,34,254,144,250,18,7,3,250,19,12,192,253,246,250,106,11,112,6,100,10,37,3,101,2,173,243,120,3,154,252,115,246,42,245,72,4,234,244,0}, {112,11,55,6,234,251,238,11,212,248,187,250,57,252,162,4,20,1,42,9,188,247,174,11,145,6,247,5,234,5,197,244,192,254,54,251,34,0,170,255,125,8,51,5,17,9,8,252,236,5,240,246,236,247,253,247,203,243,26,246,136,10,251,8,234,2,35,8,3,6,90,254,74,245,102,3,6,9,18,2,78,248,72,11,82,4,41,250,58,1,171,245,1,4,94,4,228,252,220,4,180,251,64,12,43,248,104,248,83,3,79,5,204,243,112,245,136,255,45,6,223,244,182,7,137,247,78,249,185,246,161,243,14,250,106,11,45,6,211,8,209,3,88,2,8,250,12,6,46,4,227,254,197,5,5,246,102,4,69,2,33,249,115,250,117,1,239,1,162,8,97,0,114,244,31,7,195,250,82,8,73,251,222,247,171,2,136,0,224,1,192,4,107,1,64,251,200,250,93,254,77,11,86,6,96,1,186,5,98,244,229,4,71,253,80,8,133,9,23,247,90,245,75,3,210,1,21,11,137,249,28,251,194,10,152,4,237,9,91,0,26,251,82,10,227,9,92,245,80,5,121,5,69,255,164,243,74,245,90,245,249,0,30,5,166,11,46,252,103,11,228,11,119,10,222,3,91,248,73,247,216,248,137,10,107,1,54,254,146,248,187,252,53,252,86,245,26,253,80,4,180,3,110,251,196,251,166,245,232,2,202,245,175,255,121,255,140,7,180,9,21,10,136,10,106,4,128,0,224,10,44,8,224,4,61,254,67,252,170,252,154,247,81,253,174,3,166,247,179,245,89,11,135,6,53,254,27,6,52,245,1,6,212,6,160,250,77,3,107,6,117,11,73,6,36,244,45,251,149,252,239,1,8,6,226,250,245,245,189,246,245,5,146,254,243,250,184,255,164,251,183,4,81,248,56,248,117,249,11,4,161,2,228,248,33,1,225,2,112,255,41,11,52,5,165,245,43,251,141,11,188,247,201,3,111,251,244,11,110,247,92,1,210,11,212,251,74,8,202,0,217,244,86,12,158,8,31,12,92,247,60,0,249,254,202,2,82,8,251,253,83,245,165,245,73,244,179,1,187,251,126,245,244,9,8,1,227,245,150,244,66,9,194,1,248,1,84,8,230,248,253,253,159,250,208,245,76,7,123,5,255,254,147,2,100,245,81,244,196,244,34,3,154,244,212,248,85,247,161,11,238,253,202,244,175,245,139,249,174,251,226,0,107,252,186,11,176,245,217,252,83,253,214,252,227,250,54,8,21,7,247,247,32,3,206,7,187,4,191,10,233,255,70,6,173,7,176,1,178,247,203,251,41,252,53,5,115,7,165,255,250,6,28,2,249,244,99,0,212,0,27,10,217,4,168,250,136,247,227,248,21,255,215,9,244,254,231,11,80,7,238,245,246,249,186,11,196,255,99,1,182,250,183,249,68,8,124,3,97,249,154,10,151,9,53,10,194,253,75,10,226,254,31,248,75,0,58,251,24,254,67,245,45,11,85,11,106,2,140,7,222,0,147,253,64,9,5,255,40,244,245,8,20,251,106,253,249,11,59,4,7,7,241,245,68,244,20,3,124,248,234,247,169,4,63,8,17,244,58,5,17,251,23,6,47,250,215,2,106,3,31,1,172,250,0,1,98,7,61,247,69,1,80,8,126,255,165,247,10,252,117,9,5,7,0,3,32,3,242,4,58,11,204,7,167,4,213,250,9,252,223,251,123,245,62,5,116,11,51,4,95,248,126,4,193,10,4,252,75,244,248,243,59,8,219,9,122,253,217,249,54,4,127,254,145,253,205,250,246,249,237,253,170,4,38,9,179,10,91,254,114,248,3,252,150,251,179,11,57,246,102,254,143,251,32,245,44,0,255,6,42,251,36,7,40,1,239,2,184,253,141,4,79,255,58,3,55,248,198,2,65,249,172,255,64,249,40,6,219,251,219,248,56,252,167,248,215,3,249,252,191,11,158,1,32,9,11,251,203,3,208,9,45,7,53,3,193,2,5,5,89,246,122,2,26,9,41,12,142,246,107,245,211,250,181,254,71,11,250,250,134,254,239,1,57,0,212,11,152,251,126,246,176,245,2,6,202,9,46,10,202,246,244,251,58,245,155,3,59,1,177,4,203,243,13,3,73,244,80,8,244,8,218,3,23,9,112,255,124,247,17,250,98,255,159,244,66,251,28,9,15,245,241,243,118,3,128,3,96,4,156,9,5,9,185,6,69,4,225,251,205,2,57,0,118,252,109,9,146,251,99,4,221,253,226,252,65,247,31,249,133,4,202,251,75,8,214,2,253,6,140,2,5,8,64,7,27,6,17,255,115,250,251,252,22,248,99,252,9,245,249,252,35,246,85,246,47,253,192,11,74,4,229,9,197,5,159,7,38,1,63,253,130,7,241,3,173,248,177,3,6,12,205,2,217,247,73,11,36,248,203,250,227,4,160,1,202,250,158,10,210,253,223,3,226,7,207,245,196,254,15,251,244,253,28,3,222,6,145,2,154,0,195,246,11,246,178,244,238,252,150,246,119,250,98,251,93,12,89,2,21,250,40,1,190,243,25,2,72,11,204,10,227,3,10,255,127,245,40,246,80,9,218,10,49,8,222,250,196,5,145,252,145,3,159,10,140,254,115,6,113,1,239,244,115,252,126,6,76,4,84,244,131,255,106,255,180,243,53,12,44,251,84,253,22,6,133,11,19,255,8,2,194,252,26,250,124,246,9,9,18,253,211,243,170,246,39,9,14,3,156,246,231,246,78,9,24,251,129,0,82,12,219,252,199,243,25,244,103,253,67,0,97,255,152,248,165,246,34,245,59,245,33,4,93,255,90,247,237,3,152,0,222,6,148,10,93,245,0,7,252,2,17,251,156,5,0,255,64,6,41,249,251,10,250,249,75,8,109,247,143,254,224,250,148,251,54,252,165,5,241,6,25,9,81,9,137,246,13,249,184,252,2,4,28,10,89,9,253,0,16,255,108,248,73,7,56,4,104,250,48,244,212,249,152,245,198,247,253,5,225,3,8,251,33,244,61,252,112,252,175,243,39,247,12,1,98,12,14,250,142,244,153,248,68,253,170,253,166,7,62,10,218,0,74,10,191,7,88,247,191,253,255,253,243,251,136,0,252,245,79,12,154,245,177,246,172,0,133,8,161,8,42,11,74,248,110,244,58,245,139,255,4,3,96,1,39,2,224,2,100,8,173,250,16,8,42,9,62,244,225,11,46,6,184,0,209,6,195,244,88,1,246,243,135,7,253,248,154,244,186,11,135,247,134,9,189,1,58,252,112,2,68,5,182,244,129,7,123,0,6,1,11,6,174,248,67,5,124,250,96,11,186,244,245,252,164,3,3,7,42,0,129,254,58,6,1,7,243,2,207,5,233,7,57,255,224,0,202,4,155,6,64,255,33,254,152,4,67,6,86,3,195,0,197,8,70,6,104,245,132,253,171,255,10,0,52,10,55,1,108,245,98,7,189,243,61,4,66,2,204,254,28,6,60,1,24,0,58,248,179,1,165,9,16,254,165,4,10,247,11,1,248,253,147,1,115,255,6,255,72,244,125,246,59,6,134,250,247,254,6,249,187,252,174,8,169,252,133,9,129,11,252,4,46,250,125,254,177,10,19,1,214,4,254,8,169,254,163,8,44,9,239,5,229,250,160,1,129,249,217,1,118,246,183,246,222,248,142,245,6,249,147,5,157,1,200,253,248,11,34,249,183,249,88,253,41,253,122,248,166,8,249,0,158,243,53,253,185,1,20,244,96,8,52,4,206,10,184,9,217,7,249,253,209,9,213,243,127,252,125,250,168,8,224,245,52,6,85,3,48,252,233,244,180,253,106,0,214,247,238,11,26,250,252,255,34,1,252,244,232,9,211,253,199,1,50,6,173,249,162,252,186,255,249,3,189,2,203,249,236,250,33,255,30,246,93,252,159,1,243,11,219,1,26,255,224,255,79,7,208,4,183,5,174,6,63,244,240,2,168,0,159,253,145,244,199,5,107,246,50,3,142,9,210,247,53,255,222,4,81,8,212,245,39,254,108,246,132,245,121,250,119,6,226,8,184,248,13,12,49,245,247,6,120,251,147,253,239,2,88,244,114,7,200,2,194,5,56,3,197,8,236,254,96,244,177,255,242,255,196,6,152,249,69,252,68,253,254,243,11,251,128,2,140,245,86,247,165,250,114,252,85,247,184,251,94,10,252,10,200,2,191,254,31,7,140,244,153,8,160,247,108,251,234,11,97,250,61,10,40,4,170,243,240,248,198,3,2,3,62,250,178,2,193,11,0}, {44,6,148,5,124,251,68,247,130,1,173,243,22,252,224,11,226,248,181,1,27,10,28,8,22,245,95,2,133,252,206,255,114,5,150,2,156,6,181,2,116,5,120,253,252,8,92,246,22,9,17,1,204,9,49,10,133,8,81,6,21,10,223,9,161,10,188,250,72,248,123,3,153,2,110,250,124,252,106,244,235,252,125,11,144,246,197,4,164,5,194,248,238,9,243,246,62,254,161,244,152,11,198,251,50,9,18,253,5,248,15,8,205,253,166,4,252,7,99,12,116,251,133,252,216,243,35,249,145,4,38,8,94,252,44,254,131,4,140,2,35,249,112,8,110,11,215,253,252,2,222,2,108,2,58,247,30,252,116,9,186,9,244,253,105,6,12,246,3,247,13,250,93,250,108,6,218,243,27,252,218,6,140,246,152,244,228,11,42,4,226,4,241,2,124,1,240,244,16,248,230,254,201,244,243,10,20,245,180,0,150,244,106,245,232,252,157,0,215,7,7,245,136,4,114,249,245,6,8,249,3,1,179,8,168,254,182,247,107,244,219,243,168,244,229,2,109,10,177,7,98,8,24,253,158,255,217,7,49,3,182,244,255,251,157,244,179,6,209,1,209,243,198,11,165,5,65,254,206,1,181,250,24,249,101,249,149,6,196,249,229,247,228,2,185,255,178,7,146,245,242,3,115,253,117,1,225,254,132,246,30,245,95,6,10,3,133,9,56,244,239,249,226,2,208,1,200,2,22,244,163,2,175,8,29,11,11,248,42,245,62,12,252,246,42,6,170,244,132,3,12,244,179,5,83,252,252,252,193,10,17,247,86,11,33,7,168,253,228,2,91,9,137,10,160,244,151,248,210,4,150,0,235,245,102,10,105,245,118,1,15,246,241,3,20,0,75,11,115,253,88,252,85,253,31,0,238,3,167,245,207,9,49,248,188,254,100,250,127,254,35,2,4,255,150,245,242,255,186,243,168,3,21,246,45,3,139,253,61,1,152,253,129,10,50,248,51,247,228,248,13,2,211,254,41,7,60,255,157,11,249,249,206,244,160,254,121,247,21,253,197,251,211,248,149,5,90,249,124,247,72,244,146,2,230,5,176,252,158,1,117,245,218,9,102,7,135,248,115,4,26,2,55,2,175,3,161,246,148,246,145,252,10,253,24,2,62,253,216,250,249,251,112,4,163,243,125,248,193,248,137,250,89,6,223,245,233,245,252,6,57,3,255,3,145,255,190,7,127,6,180,249,248,2,39,6,52,255,232,243,126,245,100,3,127,1,47,11,80,10,68,248,85,1,1,247,171,248,58,12,137,255,237,251,16,254,233,10,82,3,185,246,219,0,187,4,140,249,107,6,229,1,154,3,25,9,17,244,137,1,94,251,47,249,226,251,149,5,184,244,103,249,222,245,208,0,92,244,157,252,2,250,243,9,12,0,243,243,207,243,71,4,39,246,141,7,174,244,101,250,87,254,207,255,195,251,135,252,53,244,72,247,231,10,154,244,251,249,186,11,146,3,39,10,206,11,238,249,137,10,159,4,106,6,73,8,72,6,69,246,193,7,64,254,36,9,250,255,3,248,136,5,118,251,116,4,180,0,49,3,243,251,210,3,182,7,175,254,233,247,177,4,147,253,109,244,89,11,113,247,200,8,83,7,237,248,178,10,131,0,173,253,95,2,206,243,122,5,141,244,244,251,112,248,33,9,165,255,219,9,230,245,174,3,46,4,70,8,38,5,48,2,35,248,174,9,115,252,209,7,245,0,90,244,197,250,70,0,109,246,36,5,161,254,93,11,120,246,209,249,236,249,198,251,82,252,25,244,0,245,89,3,93,244,24,3,65,249,217,247,221,248,58,252,166,243,147,251,12,250,224,245,2,244,178,10,109,10,177,244,253,243,142,3,116,4,250,253,223,7,188,3,236,9,194,248,109,11,255,4,175,243,44,1,163,5,69,7,249,5,126,4,13,0,85,9,160,253,197,0,249,253,243,11,154,0,222,4,180,9,103,248,95,244,40,254,77,7,70,252,25,10,61,252,163,250,242,8,205,8,152,7,38,11,86,2,166,4,203,248,195,247,173,255,143,0,141,5,47,248,177,252,79,252,26,2,207,243,140,3,239,250,12,5,242,1,70,249,29,2,241,7,236,246,243,11,11,253,187,248,172,1,60,255,122,4,179,245,148,244,163,247,167,9,75,248,208,249,24,248,233,245,12,251,185,8,112,11,122,250,30,249,248,3,62,10,159,3,230,251,148,8,158,2,119,10,188,11,73,0,216,3,247,3,242,246,129,3,91,248,106,11,166,249,15,6,94,10,169,249,247,243,146,248,109,247,115,251,66,4,110,255,30,3,154,8,49,246,98,0,78,247,3,6,35,10,69,244,165,255,80,8,168,254,187,9,90,247,134,11,110,9,139,11,160,244,176,243,192,250,170,254,25,6,157,10,231,2,122,7,117,5,16,5,115,5,183,244,2,10,179,251,178,245,193,254,42,6,78,2,225,5,176,2,108,252,36,6,33,255,207,245,50,246,179,251,36,251,185,2,236,253,163,11,57,247,232,254,210,3,79,2,197,252,213,4,71,245,150,250,142,2,75,2,165,0,134,7,134,2,10,7,190,3,85,244,205,11,54,255,52,246,217,7,99,0,144,245,75,244,173,246,143,246,130,11,241,250,218,9,66,244,234,247,118,6,195,243,146,7,136,2,65,11,25,6,177,254,192,9,33,12,212,247,142,252,251,0,164,5,173,248,135,3,111,246,188,11,154,252,11,254,255,9,30,253,2,254,46,10,191,243,131,4,12,250,186,251,12,252,189,244,102,255,27,249,201,9,202,243,121,11,9,250,3,7,137,252,230,7,203,1,171,7,176,248,163,2,168,253,237,251,185,251,115,248,69,253,94,246,247,254,33,11,126,249,244,7,16,2,209,249,253,247,76,244,62,1,184,249,236,1,121,3,102,3,90,251,145,10,66,4,169,247,52,5,4,249,8,7,29,4,244,10,16,8,166,252,228,255,111,248,127,254,181,244,78,12,244,246,71,3,251,254,134,249,157,252,216,1,176,4,241,247,192,6,81,8,84,246,228,3,152,246,219,2,132,247,112,248,202,2,52,8,88,10,17,7,72,252,51,10,186,9,69,5,156,1,207,0,24,245,70,10,82,12,255,250,7,255,145,248,61,249,89,6,94,7,205,251,190,250,68,8,237,244,237,2,142,245,15,249,5,9,117,244,130,2,181,2,236,246,136,1,167,11,5,7,44,245,27,249,249,2,39,0,71,249,122,0,236,255,139,252,252,251,246,252,41,253,176,244,187,245,27,7,20,4,238,1,81,247,216,244,36,251,168,8,91,253,184,255,84,253,140,251,240,254,18,0,73,254,123,11,29,11,174,6,178,6,187,1,50,250,214,254,64,245,49,249,17,12,55,11,230,6,86,253,229,6,14,7,102,11,39,2,189,11,153,251,211,7,233,10,245,246,26,251,157,250,121,247,68,12,228,10,103,7,170,2,110,11,255,246,36,251,18,247,95,249,252,250,160,5,32,8,211,6,21,12,224,255,181,249,52,12,215,4,26,251,198,7,187,7,249,248,21,247,219,245,142,245,29,0,172,254,157,252,132,11,78,255,248,5,124,247,69,250,110,1,252,249,182,5,110,254,246,7,200,10,69,254,79,253,62,12,138,244,82,3,85,245,16,252,13,0,41,9,22,249,249,243,162,243,238,247,153,1,122,252,117,7,3,254,111,11,1,246,182,1,206,248,165,250,49,251,207,5,18,245,244,248,108,7,6,10,214,6,97,252,123,10,19,1,12,1,174,0,32,6,102,248,62,6,25,10,22,254,63,248,223,2,35,246,50,246,9,12,246,250,164,3,80,251,91,1,51,249,235,9,27,10,85,247,35,9,145,0,89,11,88,3,185,8,83,250,23,8,58,254,132,254,172,0,228,10,120,2,243,10,69,248,254,253,74,255,34,3,255,5,15,1,201,7,2,0,204,3,27,4,144,5,156,250,155,8,182,10,237,245,218,248,189,245,27,250,221,8,97,8,67,253,233,255,46,254,232,11,183,7,68,2,141,8,89,251,191,7,113,3,152,1,118,0,147,4,140,244,18,250,37,251,210,254,43,4,194,245,80,5,184,1,174,9,16,6,61,12,212,8,92,247,84,5,110,248,176,6,159,253,150,250,205,254,78,249,157,255,175,254,161,253,10,247,205,6,203,2,236,11,246,243,19,6,47,8,185,243,45,4,100,250,54,1,121,254,151,255,84,3,37,251,177,243,51,8,0}, {253,0,234,252,231,9,237,245,190,247,6,1,206,244,12,1,166,243,198,244,40,6,243,2,130,254,3,7,216,252,123,11,236,243,39,251,138,255,241,9,47,251,121,9,3,249,118,250,28,11,93,250,104,244,177,0,68,10,124,252,94,2,74,1,41,250,0,8,73,9,79,2,21,11,150,255,74,11,134,245,196,254,64,1,48,248,136,249,202,253,130,248,240,5,190,246,199,243,139,6,251,3,20,12,7,244,99,253,116,1,80,255,173,244,173,244,36,1,211,6,157,8,31,248,75,3,157,253,8,5,0,6,210,255,248,250,32,10,201,244,60,7,59,244,164,11,70,3,155,247,223,253,93,5,183,251,34,4,41,4,233,252,161,245,193,254,43,247,113,255,15,8,39,244,74,9,172,246,129,245,209,246,175,251,81,10,180,246,4,248,151,2,224,248,13,246,124,255,10,246,205,8,229,251,81,245,20,5,58,250,200,10,194,249,201,4,29,7,239,243,224,10,185,4,131,246,20,10,76,248,86,10,18,3,233,1,43,4,82,249,139,253,155,5,147,255,204,247,50,245,143,244,96,246,206,249,104,10,83,11,33,8,102,245,14,250,56,249,172,7,98,249,201,254,12,253,49,9,139,8,170,1,100,1,235,254,15,254,245,252,244,3,52,8,166,7,133,0,83,246,36,254,102,9,113,248,145,10,66,246,112,251,165,248,32,244,136,248,78,1,102,0,29,11,221,10,0,249,13,245,50,253,42,253,194,3,106,6,84,11,200,0,163,244,139,247,215,2,6,250,45,9,157,6,42,12,24,254,188,5,162,245,66,0,162,3,72,245,34,245,26,5,21,2,1,254,77,253,163,247,32,12,103,247,143,251,234,1,88,6,167,248,217,0,95,0,102,8,44,246,3,4,80,7,216,8,36,6,152,245,184,8,215,10,237,249,104,11,171,246,18,9,138,0,113,11,165,0,24,2,177,253,133,2,27,252,81,4,125,10,78,8,77,253,232,8,109,250,170,11,250,254,216,1,158,255,100,9,32,5,8,0,43,4,147,252,43,5,101,1,182,254,225,1,25,249,25,244,106,0,32,2,105,9,178,244,69,10,163,255,8,12,133,252,56,248,153,3,27,253,241,246,131,10,247,250,224,245,231,255,108,10,236,243,138,249,84,2,172,0,244,3,194,5,60,3,156,4,77,245,117,249,21,249,240,8,137,255,18,254,56,6,185,254,45,10,24,252,79,5,176,3,153,9,100,250,25,245,174,0,68,247,67,8,119,246,177,252,42,2,5,6,3,255,173,250,233,243,223,248,246,243,80,0,197,245,127,7,20,249,50,12,24,6,48,9,82,248,68,251,109,8,254,250,202,247,181,5,38,11,118,246,130,247,31,249,73,249,228,250,253,245,12,248,214,253,53,7,149,5,228,249,199,246,172,246,39,246,1,6,38,248,250,252,39,11,217,8,88,11,234,243,223,8,41,246,101,11,217,253,252,248,205,247,163,253,19,250,60,6,246,7,29,3,133,6,108,253,29,7,215,252,130,8,60,244,132,254,31,244,176,244,18,2,95,11,206,5,213,8,71,11,100,4,212,7,191,254,60,246,39,10,209,250,54,255,208,2,35,245,98,10,74,245,52,254,45,244,105,250,110,3,232,243,16,9,67,247,132,251,137,5,110,248,191,11,123,1,80,244,135,8,219,4,149,0,61,8,97,8,82,4,185,2,188,6,222,1,205,248,169,255,84,253,20,254,82,2,235,2,191,249,229,4,38,245,193,4,135,244,243,7,128,244,216,244,204,11,9,0,86,252,16,5,143,3,31,10,0,254,206,250,87,244,202,249,203,247,46,3,110,249,71,253,14,9,45,9,183,4,254,252,153,0,146,8,91,12,213,252,184,7,75,253,216,4,143,1,221,3,215,3,196,8,93,253,221,5,123,6,31,3,130,244,224,254,202,253,227,244,183,9,188,243,222,10,124,3,24,4,216,244,168,251,110,6,36,6,12,7,95,0,214,247,37,2,140,249,147,244,150,3,65,4,55,248,170,251,217,252,24,12,158,245,208,249,160,250,114,3,245,244,243,10,157,246,95,8,206,243,144,8,94,248,81,255,40,252,178,244,163,250,34,255,168,255,58,10,240,6,78,255,101,9,147,249,138,251,243,2,158,0,209,2,10,6,108,1,32,5,239,6,66,1,41,250,59,249,180,255,73,12,199,9,31,5,52,251,238,255,11,8,31,249,253,250,215,245,45,1,100,252,100,3,78,248,159,247,66,247,176,254,67,255,48,2,47,252,190,0,40,7,3,2,137,4,254,1,238,8,216,243,202,249,65,2,21,249,190,0,165,255,51,5,82,245,25,4,142,247,230,250,44,2,27,0,252,255,82,3,48,247,216,255,250,1,181,9,51,2,169,254,123,2,154,254,134,1,113,245,251,6,41,1,204,1,53,1,155,7,155,10,227,250,80,248,204,255,48,254,17,248,175,3,129,0,247,6,220,254,136,4,244,2,9,11,132,244,77,6,52,10,5,2,31,247,162,10,212,3,75,4,26,250,255,243,64,245,194,250,192,250,254,246,115,244,100,3,83,253,85,10,9,0,118,249,226,250,52,250,251,253,78,7,122,6,63,8,222,249,184,251,11,9,239,252,212,10,212,250,171,5,40,1,163,4,165,243,49,0,197,250,138,246,91,248,41,244,155,2,247,251,91,4,104,0,161,7,184,11,30,4,85,7,3,249,213,251,237,5,142,246,172,247,28,8,90,8,20,4,71,251,132,244,108,247,122,255,94,9,144,2,143,3,109,255,63,246,165,0,248,0,231,6,178,255,174,4,121,1,216,255,118,5,232,249,47,254,53,244,177,9,216,11,167,7,29,5,86,254,211,3,223,0,126,254,193,243,123,253,64,245,79,251,117,6,206,249,77,249,41,12,56,249,7,249,64,0,140,10,187,5,177,2,93,248,181,246,160,9,179,254,52,10,148,0,30,252,230,10,164,246,86,3,90,247,214,4,137,10,224,1,205,245,92,11,217,11,37,11,175,3,240,253,188,9,20,8,122,245,118,3,174,9,179,255,181,244,36,253,26,251,172,3,72,1,159,10,194,245,62,252,130,9,112,1,44,250,107,0,74,247,5,9,140,8,30,244,250,253,47,11,64,250,253,253,12,4,70,1,237,251,98,3,151,247,37,250,241,245,215,245,146,4,181,245,104,255,235,0,24,11,45,3,166,249,152,252,221,0,17,255,203,3,107,0,75,1,56,12,56,10,255,253,98,10,16,5,117,2,179,244,249,247,84,250,138,246,240,6,107,252,45,255,47,253,104,244,117,250,169,3,54,255,19,7,203,243,214,8,91,250,68,247,161,5,6,251,58,0,197,10,242,245,185,1,171,253,10,7,111,9,155,250,18,246,66,1,85,10,208,5,222,0,247,253,222,10,85,4,57,10,209,252,169,251,117,9,92,249,102,3,11,252,221,249,75,6,166,253,92,2,241,0,31,3,83,10,188,253,24,8,44,254,151,4,243,11,30,254,7,5,116,9,97,244,60,249,43,8,189,247,158,243,147,5,69,6,142,245,35,245,178,250,86,245,75,252,60,248,188,7,13,0,91,6,184,9,155,1,22,8,26,2,19,3,250,249,141,251,199,247,230,10,40,247,15,10,166,10,244,254,71,11,65,11,72,249,186,248,129,251,150,250,7,11,182,254,87,251,162,251,95,253,133,244,142,3,212,5,98,1,213,251,59,4,248,1,64,248,230,1,222,2,252,251,66,9,51,245,70,8,14,244,133,255,250,2,59,247,76,251,119,1,10,1,85,252,45,250,95,245,191,248,143,7,53,0,77,251,218,1,162,243,42,3,101,244,109,249,158,246,44,4,218,253,158,11,207,247,155,6,109,248,212,253,209,245,41,244,167,254,81,12,200,8,80,6,83,253,129,8,5,7,116,245,184,251,224,9,105,5,197,10,98,250,188,247,39,3,120,6,27,6,237,8,40,7,163,253,131,8,1,254,123,6,172,253,232,10,131,244,52,4,125,250,31,9,2,244,76,7,180,255,129,4,70,254,90,254,60,4,44,248,225,11,85,1,125,4,48,10,249,248,187,252,25,12,140,5,101,246,3,244,54,2,168,248,125,5,7,11,194,247,119,1,131,9,5,6,17,254,193,11,140,4,124,244,181,246,0,255,222,246,66,246,215,255,204,252,15,244,152,251,32,7,57,11,43,7,88,5,50,7,100,252,119,6,207,3,164,247,9,1,124,255,245,0,102,250,248,9,25,244,194,243,0}, } ; static const unsigned char precomputed_core_invsntrup953_n[precomputed_core_invsntrup953_NUM][crypto_core_INPUTBYTES] = { {236,62,75,14,34,121,162,154,80,90,153,200,199,162,195,24,241,27,175,53,198,149,249,249,194,232,13,193,77,247,216,227,43,237,132,57,89,240,30,31,192,176,218,69,113,64,191,165,88,179,159,106,44,124,174,23,42,224,94,250,80,115,149,171,141,62,237,238,37,228,55,220,183,218,181,68,5,150,194,129,48,75,253,4,135,114,195,22,226,214,210,30,80,245,100,248,142,112,86,129,213,243,229,50,17,135,44,139,250,53,176,252,202,157,159,217,56,159,124,177,17,85,98,152,70,18,168,191,129,209,199,59,154,28,129,25,56,146,44,151,71,197,140,246,178,122,156,233,177,44,127,111,52,67,59,201,53,193,163,164,55,69,134,38,132,102,114,164,250,185,61,196,36,64,172,14,182,20,96,44,172,234,90,159,176,87,241,43,45,72,208,46,44,148,16,9,201,99,66,224,205,62,16,107,229,19,95,187,120,99,13,46,134,255,10,212,238,161,249,65,164,246,174,224,96,230,44,185,143,135,50,96,164,174,61,155,40,12,2,232,75,170,247,197,23,79,179,26,96,45,62,111,21,220,115,122,7,146,98,146,52,208,167,3,50,25,198,188,144,244,119,55,224,206,66,174,27,133,226,152,200,61,45,170,60,31,98,195,172,189,250,83,34,115,124,212,77,254,132,51,160,64,199,93,111,63,163,20,135,111,115,203,107,124,76,26,150,130,208,226,73,128,130,70,90,146,122,1,159,174,147,39,195,132,56,176,173,110,218,99,120,240,191,71,8,122,172,221,111,20,74,70,237,254,77,100,120,233,53,99,35,237,52,94,125,11,82,49,115,107,199,170,135,41,132,19,155,51,208,161,125,88,193,121,194,197,16,63,126,249,157,133,150,227,140,241,160,158,162,228,116,41,134,161,193,12,215,177,147,124,147,43,253,37,214,6,139,205,149,145,111,251,242,207,204,211,19,147,242,21,173,66,30,147,17,14,222,103,181,154,49,18,184,198,229,132,126,234,132,112,197,15,206,188,222,232,98,129,7,137,64,10,230,80,194,162,116,227,19,202,147,13,109,250,204,31,103,11,181,12,254,142,122,185,120,11,81,1,230,125,83,149,87,182,88,22,115,83,122,2,89,103,202,120,233,43,119,17,55,76,39,139,8,91,156,205,20,54,125,239,4,63,158,100,126,133,43,178,73,128,134,139,101,73,27,18,173,240,28,249,191,50,182,240,121,72,22,12,168,243,143,180,157,31,147,69,227,195,156,209,151,235,116,70,98,163,83,154,93,2,91,94,144,253,8,158,75,248,226,6,117,233,31,28,83,252,210,134,160,240,237,154,87,78,57,90,35,26,3,186,42,212,138,156,152,59,64,139,255,232,41,243,161,223,67,24,136,89,213,17,36,78,40,42,195,11,94,162,135,80,91,52,175,138,68,77,189,69,252,172,87,165,10,1,212,251,74,83,175,0,225,27,199,196,79,44,152,37,222,22,136,88,120,19,30,133,224,240,64,51,70,83,2,86,113,91,234,165,123,170,68,150,49,160,29,130,40,101,86,140,250,10,235,133,119,98,253,216,146,250,24,21,99,251,224,211,92,210,56,25,131,238,110,154,184,192,119,31,178,113,143,253,0,108,125,237,42,236,156,40,105,41,246,187,155,180,43,131,238,114,186,178,253,70,229,167,58,15,54,153,100,171,180,223,173,68,217,16,58,103,109,252,254,53,232,245,127,112,132,150,155,132,111,55,91,7,191,28,162,47,107,244,169,117,88,145,53,30,51,234,175,53,224,209,220,109,138,30,187,50,56,77,38,238,127,40,238,120,172,244,222,44,213,240,22,105,106,74,207,251,100,97,224,170,174,124,50,54,242,207,124,30,175,204,8,125,252,252,151,56,83,85,44,81,177,103,139,176,232,241,204,130,191,172,245,132,155,13,239,203,251,252,150,140,208,216,200,207,150,223,237,184,114,141,168,205,113,155,234,64,178,215,53,226,65,13,194,74,138,154,160,227,163,116,92,35,240,195,102,56,48,159,166,98,97,252,206,6,185,74,132,78,195,47,127,102,177,143,154,255,117,17,194,209,40,150,193,211,181,9,251,89,141,161,23,26,24,30,139,178,188,158,142,218,141,125,6,255,230,40,81,210,14}, {148,16,236,177,74,37,40,86,209,182,78,116,131,121,55,163,131,140,89,120,154,156,92,98,128,49,18,4,56,176,144,43,127,122,117,210,40,166,19,228,16,10,210,36,63,133,162,35,168,101,176,68,40,115,162,90,108,105,190,92,122,220,80,9,190,215,151,191,77,156,107,59,200,249,197,143,18,201,78,59,179,151,87,71,246,190,175,54,26,71,115,68,185,56,56,3,161,99,187,76,144,173,138,175,249,217,28,5,27,179,41,44,193,16,126,93,69,76,165,180,213,199,92,232,42,0,24,8,174,243,189,44,80,70,235,175,181,216,19,205,125,10,79,165,73,146,60,2,120,5,196,103,147,13,132,192,227,82,254,66,134,33,239,199,105,182,7,67,71,211,18,118,90,169,202,149,128,98,226,212,24,202,184,204,93,40,89,246,177,85,172,255,145,41,125,228,215,75,46,67,13,171,79,118,174,52,155,156,14,20,214,142,184,131,76,17,219,245,217,74,147,69,7,161,112,245,41,109,46,109,254,200,149,59,206,103,142,36,131,122,82,77,217,66,90,123,223,211,45,207,180,137,72,106,219,194,19,193,87,46,97,103,104,59,233,78,144,230,108,64,105,18,116,165,184,168,58,0,244,99,224,90,79,129,33,15,186,245,246,244,73,222,218,103,111,30,191,182,66,50,39,2,18,135,251,52,253,38,16,246,151,137,171,225,179,81,167,250,85,23,119,174,197,247,61,81,94,203,209,95,188,113,146,110,241,208,14,142,185,167,50,21,192,91,216,20,136,16,136,253,47,210,9,243,225,44,13,201,92,54,170,20,124,168,132,194,99,130,81,54,195,97,128,3,172,65,2,210,185,93,7,5,149,175,136,146,192,78,71,120,240,170,249,227,21,22,142,135,91,200,114,47,19,217,182,66,194,23,38,14,29,6,54,189,105,233,4,49,237,226,134,212,44,82,226,227,209,206,160,148,204,26,74,42,117,168,165,12,180,214,193,139,35,106,133,194,91,59,55,33,123,188,253,208,8,124,96,208,63,40,98,58,182,195,243,88,7,107,19,137,178,225,170,185,110,175,182,232,133,248,98,232,225,66,192,54,77,75,9,123,98,113,83,232,195,93,51,154,77,101,196,149,31,181,238,232,220,7,164,140,31,86,118,179,195,101,164,60,167,75,202,88,4,212,179,25,147,165,16,5,107,156,129,250,78,25,70,189,110,166,19,207,123,81,194,185,47,61,245,9,177,201,33,1,29,178,164,122,87,96,114,172,134,175,166,8,65,42,65,31,236,155,206,62,243,76,240,59,6,202,179,97,43,228,130,15,64,114,234,24,148,33,229,5,66,81,154,148,6,152,137,141,176,245,31,37,239,101,71,209,136,134,195,18,177,63,180,207,36,32,253,208,137,251,181,183,241,232,12,189,87,205,2,214,24,111,185,176,241,73,134,168,249,91,84,139,9,231,190,75,93,54,23,68,192,71,160,158,199,42,151,92,19,211,255,165,29,245,114,122,149,2,80,219,29,242,50,231,141,217,84,230,12,118,241,185,109,183,181,193,190,119,180,55,244,195,72,26,169,41,230,58,79,247,212,190,88,98,40,230,17,169,109,135,83,173,26,238,132,170,169,65,171,118,234,48,65,8,87,17,115,239,33,247,222,150,73,110,66,127,40,187,93,190,76,235,83,99,25,163,117,245,48,31,59,192,171,155,13,194,69,208,40,208,135,214,95,123,166,255,113,0,233,131,206,243,221,31,110,236,77,220,19,126,78,17,169,71,202,208,178,249,83,47,28,208,3,63,227,67,118,12,144,252,71,16,121,243,118,37,142,86,45,35,199,133,98,210,83,53,148,54,172,181,171,63,89,118,230,179,64,105,56,190,85,179,86,164,87,75,76,60,10,100,157,151,245,194,136,166,125,6,192,45,53,236,62,50,51,231,168,175,237,162,73,122,42,36,209,201,130,28,72,115,49,165,130,217,38,78,233,183,229,44,47,199,104,227,235,78,165,242,149,196,223,207,5,206,238,180,188,219,86,201,87,176,90,102,114,145,148,195,89,47,36,154,119,192,211,102,36,233,45,125,249,61,111,158,217,112,175,51,133,204,77,205,15,142,8,97,253,223,190,195,110,153,137,252,42,182,39,111,26}, {152,208,180,252,179,45,169,130,184,221,73,229,5,247,91,62,105,229,14,224,182,220,15,196,2,37,189,149,185,71,7,211,83,155,119,109,23,215,56,111,250,251,161,113,42,168,65,248,57,23,228,204,35,90,62,114,216,46,141,185,231,89,99,241,219,64,188,172,30,5,187,159,185,114,237,237,238,52,233,231,61,64,181,199,124,161,61,169,92,247,242,112,60,118,248,177,103,69,143,240,250,77,71,123,113,171,231,57,241,159,253,209,214,0,42,253,8,11,14,215,169,37,119,60,180,32,103,143,117,254,247,189,139,65,255,75,187,40,247,144,164,165,65,143,33,205,210,89,225,63,218,233,157,243,243,157,235,24,235,181,62,8,249,28,115,169,54,46,210,180,76,106,159,42,70,36,97,80,226,29,13,98,34,67,112,180,190,23,136,235,176,171,98,36,246,36,107,236,12,76,142,128,112,12,60,14,93,131,133,188,87,228,109,189,59,78,68,120,214,136,7,38,131,86,25,238,155,43,247,230,207,237,73,134,190,169,199,167,196,129,187,153,41,158,123,128,211,252,113,164,117,163,98,254,205,9,23,93,184,30,219,155,142,189,245,222,184,213,6,148,195,26,91,130,158,136,114,72,131,29,106,218,23,191,137,49,224,161,238,53,161,209,101,8,55,90,185,90,233,111,233,161,107,193,155,30,15,118,73,71,185,186,166,154,225,90,184,224,97,68,113,0,96,157,234,13,196,83,143,106,1,47,209,245,103,146,117,194,151,142,63,125,155,142,229,223,119,15,228,17,203,138,55,122,131,248,214,125,158,109,100,37,224,116,206,116,152,228,31,105,218,94,78,59,94,231,116,5,13,8,229,178,89,193,81,228,76,71,115,96,29,59,191,69,75,245,181,111,143,23,101,125,88,186,220,193,119,127,127,204,129,6,2,96,20,148,65,142,167,236,84,19,79,11,16,224,142,167,193,29,244,40,147,161,205,105,4,216,40,240,236,139,234,232,157,243,67,183,84,67,140,123,65,71,160,216,70,120,188,105,79,253,209,226,207,145,65,46,81,128,33,228,206,172,153,205,104,238,236,211,82,116,3,150,122,117,171,129,56,160,193,138,180,43,38,85,116,113,220,113,126,240,223,40,95,220,208,116,173,112,2,136,216,183,6,13,205,188,82,155,116,101,171,148,85,54,158,170,40,94,102,218,238,124,238,59,104,141,79,175,115,194,149,60,14,169,174,135,214,71,171,135,245,168,21,203,46,128,214,13,197,202,33,229,54,3,202,70,200,9,30,123,191,26,254,121,165,99,74,121,249,90,125,73,108,5,92,203,232,245,115,210,130,94,33,237,145,81,195,32,151,211,88,28,2,100,225,129,151,86,226,64,79,156,111,192,204,122,31,190,198,93,9,113,34,181,179,50,195,249,74,242,151,147,167,15,188,2,187,210,247,151,69,164,230,124,134,95,25,181,80,77,198,135,205,251,201,98,16,101,49,173,51,43,70,82,26,164,33,194,105,251,139,92,169,190,147,74,229,9,82,30,43,219,194,81,162,35,136,128,8,150,232,83,121,35,119,169,189,26,99,66,168,110,123,17,23,52,183,235,233,52,211,161,158,189,3,233,219,17,229,139,58,30,178,186,206,151,28,120,78,122,49,146,96,219,57,197,157,201,173,162,76,112,224,171,38,34,201,39,211,13,75,175,108,42,164,2,171,196,88,171,81,129,20,185,128,96,175,28,137,215,43,239,71,207,124,248,228,116,185,75,35,73,247,28,77,27,122,46,136,129,12,35,68,181,66,70,59,95,11,176,123,167,173,244,68,104,148,224,112,142,187,247,46,69,115,23,156,172,2,89,142,84,140,19,4,41,38,166,186,210,240,117,104,245,218,136,126,237,107,1,146,168,169,245,144,60,60,120,79,210,240,214,159,203,169,149,112,217,182,215,180,247,146,134,26,233,194,124,42,72,164,65,148,33,186,2,247,128,224,211,19,35,151,115,56,106,86,220,25,50,95,1,28,170,251,242,78,191,51,167,238,61,207,171,212,5,3,99,1,137,145,245,180,37,67,150,204,161,34,108,76,136,121,229,34,216,136,42,11,239,148,15,137,3,42,85,3,231,24,173,130,211,250,166,102,40,160,187,163,199,11}, {239,55,145,154,252,242,93,210,239,228,255,91,253,56,82,64,237,78,213,137,122,15,154,26,126,98,138,140,50,120,1,47,176,21,16,32,189,116,190,168,175,231,49,52,6,39,167,89,247,123,70,104,123,241,148,36,126,53,198,136,176,115,170,77,133,48,225,82,240,24,165,28,22,118,155,241,15,114,252,194,146,67,155,202,175,36,185,119,248,201,197,131,174,98,153,147,149,84,7,12,253,134,58,24,238,228,189,126,135,125,241,55,4,158,170,35,14,85,29,9,153,183,199,3,21,18,199,236,3,74,213,99,154,251,71,29,218,97,44,146,62,39,94,85,117,48,55,38,141,204,100,127,172,140,89,58,130,152,121,240,111,2,189,199,205,203,62,59,101,134,122,118,116,147,10,48,199,196,133,14,17,208,99,242,139,194,181,203,161,91,194,148,154,62,189,18,165,7,123,165,187,17,27,113,255,69,64,202,115,108,247,11,199,2,13,134,98,126,245,131,166,40,226,72,185,181,46,101,233,27,4,112,105,198,235,107,77,23,196,190,121,4,37,254,43,62,88,155,105,127,132,103,174,64,210,235,121,93,121,152,84,183,174,252,75,53,112,84,10,188,70,238,212,136,40,115,32,210,108,130,85,76,253,143,213,116,164,131,58,88,108,253,167,241,12,242,2,202,197,37,107,26,8,250,161,210,133,183,81,52,195,3,57,68,13,113,129,83,186,55,66,86,255,57,119,148,189,97,17,42,51,36,197,55,48,155,24,154,121,21,118,142,153,32,106,92,52,173,95,228,17,97,165,48,2,148,21,47,81,6,55,44,98,127,227,87,44,190,86,197,39,207,145,186,110,35,48,18,77,46,54,3,229,126,230,241,32,130,95,152,67,32,34,117,197,67,157,40,185,101,246,172,77,158,42,77,28,229,13,38,198,50,47,46,242,90,214,121,171,79,243,68,69,144,219,15,78,193,107,158,55,214,104,90,239,215,173,4,228,49,20,97,93,189,173,208,74,194,142,155,11,184,215,91,175,73,61,104,13,99,155,171,24,149,176,4,111,141,226,17,159,103,99,74,235,128,144,187,19,113,169,130,65,5,208,49,173,210,253,203,190,56,247,141,41,114,53,14,130,125,48,7,199,207,169,41,197,42,98,204,129,15,234,216,56,55,148,243,82,134,202,96,114,99,63,173,132,9,49,224,43,220,243,127,123,170,139,122,104,31,190,30,8,183,192,77,110,107,180,119,181,132,151,70,69,110,19,32,90,97,112,86,139,211,73,138,216,211,237,178,1,84,172,61,119,165,12,160,239,201,224,246,219,30,70,22,158,36,161,114,203,75,53,145,212,29,232,253,14,182,148,74,84,251,87,216,222,0,47,214,138,212,166,41,223,196,95,148,198,143,72,63,76,216,47,254,12,228,187,26,103,58,81,205,166,151,131,245,36,236,124,200,72,42,8,248,102,172,91,155,235,130,26,0,183,250,108,166,159,216,234,62,86,39,64,180,224,238,199,1,76,21,1,139,194,145,37,128,255,217,55,91,216,157,156,141,105,20,180,222,44,74,76,98,156,202,163,154,140,217,64,44,237,224,59,237,201,8,135,17,190,139,47,12,211,174,120,189,104,114,201,139,85,201,90,223,206,168,74,130,214,193,188,84,65,133,182,221,242,203,0,129,110,89,222,34,19,133,242,157,93,162,77,54,68,91,77,121,211,143,144,173,65,180,189,81,214,246,88,226,98,199,62,122,23,108,174,94,0,165,69,172,8,206,21,195,60,147,29,28,225,20,127,129,162,38,187,173,125,149,190,35,67,202,196,91,61,159,32,248,52,138,119,170,149,62,153,161,71,171,227,146,61,39,202,41,66,31,250,154,46,194,71,136,164,111,198,92,238,136,178,75,240,187,162,118,88,80,110,160,90,163,79,22,24,221,149,200,49,252,145,75,5,147,58,148,34,241,24,77,158,108,47,241,90,54,34,41,138,194,69,161,117,235,66,141,85,36,165,121,212,242,10,118,154,197,56,206,171,124,203,135,226,73,250,91,137,56,227,120,210,208,36,122,204,122,169,187,81,73,61,49,183,108,146,89,143,63,4,235,234,116,81,20,16,142,43,211,18,241,217,9,15,59,236,218,150,50,227,38,238,10,155}, } ; static const unsigned char precomputed_core_invsntrup953_k[precomputed_core_invsntrup953_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_invsntrup953_c[precomputed_core_invsntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_invsntrup953_impl(long long impl) { unsigned char *h = test_core_invsntrup953_h; unsigned char *n = test_core_invsntrup953_n; unsigned char *k = test_core_invsntrup953_k; unsigned char *c = test_core_invsntrup953_c; unsigned char *h2 = test_core_invsntrup953_h2; unsigned char *n2 = test_core_invsntrup953_n2; unsigned char *k2 = test_core_invsntrup953_k2; unsigned char *c2 = test_core_invsntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_invsntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_invsntrup953(impl); printf("core_invsntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_invsntrup953_implementation(impl),ntruprime_dispatch_core_invsntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_invsntrup953; printf("core_invsntrup953 selected implementation %s compiler %s\n",ntruprime_core_invsntrup953_implementation(),ntruprime_core_invsntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); } checksum_expected(core_invsntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_invsntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_invsntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_invsntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_invsntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_invsntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_invsntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_invsntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_invsntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_invsntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_invsntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"invsntrup953")) return; storage_core_invsntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_invsntrup953_h = aligned(storage_core_invsntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_invsntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_invsntrup953_n = aligned(storage_core_invsntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_invsntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_invsntrup953_k = aligned(storage_core_invsntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_invsntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_invsntrup953_c = aligned(storage_core_invsntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_invsntrup953_h2 = callocplus(maxalloc); test_core_invsntrup953_h2 = aligned(storage_core_invsntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_invsntrup953_n2 = callocplus(maxalloc); test_core_invsntrup953_n2 = aligned(storage_core_invsntrup953_n2,crypto_core_INPUTBYTES); storage_core_invsntrup953_k2 = callocplus(maxalloc); test_core_invsntrup953_k2 = aligned(storage_core_invsntrup953_k2,crypto_core_KEYBYTES); storage_core_invsntrup953_c2 = callocplus(maxalloc); test_core_invsntrup953_c2 = aligned(storage_core_invsntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_invsntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_invsntrup953();++impl) forked(test_core_invsntrup953_impl,impl); ++test_core_invsntrup953_h; ++test_core_invsntrup953_n; ++test_core_invsntrup953_k; ++test_core_invsntrup953_c; ++test_core_invsntrup953_h2; ++test_core_invsntrup953_n2; ++test_core_invsntrup953_k2; ++test_core_invsntrup953_c2; } free(storage_core_invsntrup953_c2); free(storage_core_invsntrup953_k2); free(storage_core_invsntrup953_n2); free(storage_core_invsntrup953_h2); free(storage_core_invsntrup953_c); free(storage_core_invsntrup953_k); free(storage_core_invsntrup953_n); free(storage_core_invsntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_mult3sntrup1013.c0000644000000000000000000011460314705505542023676 0ustar rootroot/* ----- core/mult3sntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_mult3sntrup1013_checksums[] = { "7977e0e9c64b2a69ebdd8ba689cb035d0e60211d0264a1158cac4db08c19d972", "65bbb4ce5a9530513872bb37156d0e6054c0006049f81a79d8aa4692876b5b89", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_mult3sntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_mult3sntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_mult3sntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_mult3sntrup1013_CONSTBYTES static void *storage_core_mult3sntrup1013_h; static unsigned char *test_core_mult3sntrup1013_h; static void *storage_core_mult3sntrup1013_n; static unsigned char *test_core_mult3sntrup1013_n; static void *storage_core_mult3sntrup1013_k; static unsigned char *test_core_mult3sntrup1013_k; static void *storage_core_mult3sntrup1013_c; static unsigned char *test_core_mult3sntrup1013_c; static void *storage_core_mult3sntrup1013_h2; static unsigned char *test_core_mult3sntrup1013_h2; static void *storage_core_mult3sntrup1013_n2; static unsigned char *test_core_mult3sntrup1013_n2; static void *storage_core_mult3sntrup1013_k2; static unsigned char *test_core_mult3sntrup1013_k2; static void *storage_core_mult3sntrup1013_c2; static unsigned char *test_core_mult3sntrup1013_c2; #define precomputed_core_mult3sntrup1013_NUM 4 static const unsigned char precomputed_core_mult3sntrup1013_h[precomputed_core_mult3sntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {1,1,255,0,1,255,1,1,0,255,255,255,0,255,1,0,1,0,0,255,1,0,0,1,1,255,0,255,0,0,0,0,1,1,255,1,1,1,0,1,1,255,1,0,0,1,255,255,0,255,0,1,1,255,0,1,1,1,255,1,255,1,1,255,255,1,1,1,0,0,255,0,0,255,0,255,0,0,255,255,255,0,255,255,255,1,255,0,0,1,1,255,0,0,255,0,255,1,0,255,0,1,255,0,255,1,255,1,255,255,0,255,255,0,0,0,1,0,1,0,255,1,0,255,0,255,255,255,0,255,255,1,0,0,255,0,255,0,1,1,0,255,255,1,255,1,255,255,1,0,0,1,255,1,1,255,1,255,255,1,1,0,255,1,0,0,1,0,255,1,0,0,1,1,255,255,255,255,255,0,255,0,0,0,255,255,255,0,0,255,0,0,255,0,1,1,0,1,255,255,255,255,255,255,1,0,1,1,0,1,255,1,1,0,0,1,255,255,1,1,255,255,255,1,0,0,1,255,255,1,255,0,255,255,1,1,1,255,255,255,1,255,255,0,255,0,0,255,1,0,0,255,0,1,0,0,0,0,1,255,0,1,0,255,1,255,1,255,255,0,0,0,1,1,0,1,255,1,0,1,1,255,0,0,1,1,0,255,1,0,255,255,1,0,255,1,1,1,1,255,255,0,1,255,1,0,255,0,0,255,0,0,0,255,0,1,0,255,255,0,1,1,0,1,1,255,255,0,255,1,0,1,0,1,0,1,255,0,0,0,1,0,0,1,1,255,255,1,0,0,0,0,255,1,1,1,1,1,255,0,0,1,0,255,255,255,0,255,0,0,0,255,0,1,0,1,255,0,255,0,0,0,255,0,1,1,1,0,1,0,255,1,255,255,1,0,1,1,255,1,1,255,1,1,1,255,255,0,0,0,0,0,255,0,1,255,0,1,255,255,1,255,0,255,1,0,0,0,255,1,0,0,255,1,255,0,255,0,0,0,1,0,255,1,1,0,0,0,255,255,255,1,1,255,255,255,0,255,255,255,1,1,1,0,255,1,1,0,255,255,255,1,1,255,0,0,0,255,255,1,1,1,255,0,1,1,255,1,1,1,1,1,0,0,0,0,255,255,0,255,0,0,0,0,0,255,1,0,0,0,1,0,1,1,1,0,255,255,1,1,1,0,255,0,255,255,255,255,1,255,1,0,255,0,255,1,1,0,255,1,1,255,1,0,0,255,1,0,0,0,1,255,0,0,0,255,255,255,0,255,0,255,0,255,255,0,0,255,0,0,255,1,1,1,0,0,0,1,1,1,0,1,0,255,255,0,255,0,1,255,1,255,1,0,1,0,1,0,0,0,1,0,1,1,1,1,0,255,1,1,255,255,255,0,1,1,1,0,255,255,0,1,0,1,1,255,255,255,1,255,1,255,0,0,1,1,1,1,255,0,1,1,1,0,255,1,255,1,1,0,1,255,1,1,1,255,0,0,0,1,1,0,0,1,0,0,0,255,1,0,1,255,255,255,255,0,255,1,0,0,255,255,0,255,0,0,0,1,255,0,1,0,255,1,1,255,1,0,1,255,1,255,0,0,1,255,1,0,1,1,0,1,0,255,0,255,1,255,255,0,0,1,0,0,255,255,1,255,1,255,0,0,0,255,1,0,1,1,1,0,255,255,255,255,255,255,0,0,0,255,1,255,1,0,255,0,255,0,1,1,255,1,1,0,1,0,255,1,1,1,1,0,255,255,1,0,255,0,255,1,255,0,255,1,1,255,1,1,1,255,1,0,1,0,0,1,255,255,255,255,0,1,0,1,255,255,255,1,0,1,1,0,255,255,0,1,255,1,255,0,255,1,255,0,255,255,0,255,255,1,255,0,0,0,255,255,0,1,255,1,0,0,1,0,1,0,255,255,0,255,255,0,1,0,0,1,1,255,1,1,255,0,0,0,1,255,1,0,0,255,1,255,255,255,255,0,1,0,255,0,0,1,1,1,1,1,255,0,0,255,1,0,1,0,1,255,255,1,1,255,1,255,1,255,0,1,255,255,0,0,1,0,1,1,0,0,0,0,1,0,255,0,0,1,255,0,0,255,255,255,1,255,1,255,1,1,0,255,255,255,0,255,0,0,0,1,0,255,0,255,255,1,0,0,0,255,255,255,1,0,1,255,1,255,255,1,0,0,1,255,0,1,0,255,0,1,255,255,1,1,255,255,255,1,1,0,255,255,1,255,0,0,1,255,255,0,1,255,1,1,0,0,0,255,255,255,255,1,1,255,0,0,255}, {1,0,255,1,1,255,1,0,0,0,255,255,255,255,0,0,0,1,255,255,255,1,255,255,1,1,0,255,255,0,255,0,255,1,255,0,0,1,0,1,0,1,1,255,1,255,1,0,0,0,1,0,0,1,0,255,1,1,0,255,1,255,255,255,0,255,0,1,255,0,255,0,255,255,255,1,1,1,1,1,0,0,255,255,1,255,0,255,255,255,255,255,0,1,0,1,1,0,1,1,255,1,1,0,255,0,0,255,1,255,1,255,255,255,0,1,255,0,255,0,0,255,1,255,1,1,1,255,255,1,0,255,1,0,1,0,255,1,255,0,0,1,255,0,0,255,0,1,1,0,1,255,255,1,0,0,0,255,255,1,0,1,255,1,255,0,255,0,1,1,0,0,255,255,1,0,0,1,1,255,255,1,0,0,255,1,0,255,255,255,255,1,255,255,255,0,255,255,255,1,0,0,1,1,255,0,255,255,1,0,255,255,0,1,255,0,255,1,255,1,255,1,0,1,255,1,1,0,1,1,1,255,1,1,0,1,1,255,255,1,0,0,1,255,255,1,1,0,1,1,0,0,1,255,0,0,1,1,1,0,1,1,1,1,255,255,255,1,255,1,255,1,0,255,0,1,1,255,0,0,1,0,0,1,0,1,255,0,1,255,1,255,1,255,0,255,0,0,255,1,0,0,255,0,0,255,0,255,255,255,1,0,255,0,1,255,0,0,255,255,0,1,0,255,1,255,255,0,1,0,0,255,0,1,1,0,0,255,1,255,0,1,0,255,0,1,255,1,255,0,255,1,0,0,1,255,1,1,1,1,255,255,0,0,1,1,1,255,1,255,1,0,0,0,255,255,255,0,1,1,255,0,0,1,1,0,1,1,1,255,1,255,1,1,1,255,1,0,1,0,255,255,1,255,255,1,255,1,1,255,0,0,0,1,1,255,1,1,0,0,0,255,255,255,0,255,0,255,255,0,0,0,0,0,0,255,255,1,255,0,1,1,1,255,255,255,255,255,1,255,255,1,1,1,255,255,255,1,1,255,1,255,0,1,1,0,255,1,255,255,0,0,0,1,255,255,255,255,1,0,0,1,255,0,0,255,0,0,0,1,0,1,1,255,1,1,0,255,0,0,0,1,1,1,255,0,0,255,1,1,1,1,1,255,0,255,0,1,255,0,0,1,1,0,0,0,255,255,1,0,0,0,255,0,1,255,1,255,255,0,0,255,255,0,1,255,0,255,0,255,1,255,0,0,255,255,255,255,0,1,1,255,0,1,1,0,0,0,0,255,0,1,1,1,0,1,255,255,0,1,1,0,1,0,0,0,1,0,0,0,1,1,255,255,255,1,0,0,1,1,255,255,1,0,255,255,0,1,0,255,1,0,255,0,1,0,0,255,255,1,1,0,255,1,1,255,255,1,0,255,255,1,0,0,0,1,0,1,1,1,1,1,0,1,1,0,1,0,255,0,0,1,255,255,1,1,255,1,1,0,255,1,1,1,0,1,255,0,0,1,255,1,0,255,1,0,0,255,1,0,255,1,1,255,255,1,1,1,0,255,1,0,0,1,0,255,255,0,255,0,255,0,1,255,0,0,255,1,1,1,0,1,255,255,0,0,0,255,255,0,0,1,255,1,255,1,1,1,0,1,0,1,0,255,0,0,0,0,255,1,255,1,0,255,0,0,0,1,0,0,1,255,0,1,0,255,255,1,0,0,255,255,255,1,0,255,255,0,0,255,1,0,255,1,255,1,0,0,255,255,255,0,0,1,1,255,0,0,1,0,255,0,255,0,255,0,0,1,0,0,255,0,0,0,0,1,0,255,0,1,1,255,0,1,0,0,1,1,0,1,255,0,255,0,0,0,0,255,255,1,255,255,255,255,0,1,0,255,0,1,0,1,255,0,1,0,0,255,1,0,1,255,255,0,1,1,0,1,1,255,1,1,255,1,255,1,1,1,0,255,255,255,0,255,255,1,1,0,255,1,1,1,255,1,1,255,255,1,255,0,1,255,0,0,1,1,0,1,1,1,0,255,0,0,0,0,0,1,0,0,255,255,0,0,255,0,1,1,0,1,255,255,0,0,1,255,1,1,0,0,1,255,1,255,0,0,1,1,255,255,255,255,255,0,0,1,1,1,0,0,1,255,0,0,255,1,0,1,0,255,255,0,1,255,0,0,255,255,0,0,0,1,255,0,0,255,255,255,255,255,1,255,1,255,0,255,1,1,0,255,1,0,255,1,255,1,1,1,1,255,0,1,0,255,1,0,0,1,1,0,0,0,255}, {0,255,255,255,0,1,1,0,1,0,255,0,1,0,0,0,255,255,0,0,255,255,0,1,255,1,0,255,255,1,255,255,1,0,0,1,255,255,255,255,0,1,1,1,255,1,0,1,255,255,0,0,255,1,255,0,0,255,1,0,0,255,0,1,255,1,0,1,1,0,255,0,0,255,0,0,0,1,0,1,255,1,255,0,255,1,1,255,0,255,255,1,1,255,255,255,255,0,0,1,0,0,0,1,0,0,0,0,0,1,255,0,1,0,255,0,255,1,0,1,1,0,0,0,255,255,255,0,0,255,1,1,255,0,255,255,0,0,1,0,1,1,255,255,0,255,255,1,0,255,1,1,255,255,255,255,0,255,255,0,0,0,255,1,0,255,0,1,255,255,0,255,1,255,0,0,1,1,255,255,0,1,1,1,0,0,255,0,0,255,255,0,255,255,255,1,1,255,255,1,0,255,1,1,255,1,1,0,0,255,1,255,1,0,255,255,0,1,0,255,0,0,255,0,0,0,1,0,0,1,1,255,0,1,0,255,1,0,1,1,0,0,1,255,0,255,255,255,255,255,0,0,0,255,0,1,255,255,1,1,1,0,0,255,0,255,0,1,0,1,0,1,0,1,255,1,1,0,1,0,255,0,1,255,1,0,1,0,0,0,0,255,1,0,0,0,255,1,255,1,255,255,0,255,1,255,255,255,1,255,1,255,255,255,0,0,255,0,1,255,1,1,0,1,255,1,0,255,255,1,1,255,1,0,255,255,0,0,255,1,0,1,0,255,255,0,255,255,255,0,1,0,1,0,1,1,1,255,0,255,0,255,255,255,1,1,255,255,255,0,0,1,1,1,1,1,0,0,255,255,255,0,0,255,1,255,0,255,255,0,0,255,255,1,255,0,255,0,1,0,255,1,1,0,1,255,0,1,255,255,0,1,1,0,255,255,0,255,255,255,255,255,1,255,1,255,0,0,255,0,255,0,255,1,255,1,255,1,255,0,0,1,1,0,1,0,1,255,0,1,255,0,1,0,1,255,0,255,1,0,0,255,1,0,255,0,255,1,1,1,0,0,1,255,255,1,0,1,1,255,255,1,0,1,0,255,255,1,255,0,1,1,1,0,0,255,255,0,1,1,1,1,0,0,255,255,255,0,255,255,0,0,1,255,255,255,255,255,255,255,255,0,255,1,0,1,0,0,1,1,0,1,1,1,0,0,0,0,255,0,255,255,1,255,1,255,0,255,1,0,255,0,255,1,0,255,255,0,0,0,255,255,1,255,255,0,1,0,255,0,0,0,0,0,0,1,255,0,1,255,1,255,0,1,255,255,255,255,1,1,255,0,255,0,1,1,0,0,0,0,1,1,0,255,1,255,0,255,1,255,255,0,1,255,255,0,0,1,0,255,0,1,0,0,255,1,0,0,0,1,1,255,1,255,1,255,0,255,1,255,255,255,0,0,255,255,0,255,0,0,0,1,0,255,1,0,1,255,1,255,0,255,255,255,1,0,0,0,255,1,255,1,1,1,255,0,255,0,0,0,0,1,255,1,255,1,0,1,1,0,255,1,0,0,1,0,1,0,1,255,255,1,0,255,255,255,1,255,0,0,255,0,1,0,0,255,0,1,0,0,1,0,1,1,1,0,1,255,1,255,1,1,255,0,0,1,1,1,0,255,255,0,255,1,0,0,0,255,1,0,0,1,0,0,1,0,0,1,1,1,255,1,255,1,255,0,0,0,1,0,255,0,1,1,1,255,255,0,255,1,255,0,255,255,1,1,255,1,1,255,0,255,0,0,255,255,1,255,0,0,1,255,1,1,1,1,1,1,255,0,255,255,0,0,0,1,255,0,1,1,0,255,255,255,0,255,0,255,255,255,1,1,0,255,1,255,0,255,1,255,255,0,255,255,0,1,255,1,0,255,255,255,255,1,1,0,0,255,1,0,255,255,1,0,255,0,1,255,1,255,255,255,1,255,255,1,255,255,0,0,0,255,0,255,1,0,1,0,1,0,255,0,0,0,255,0,0,255,0,0,0,0,0,1,0,1,0,0,255,0,1,0,255,255,0,255,0,1,255,1,1,0,0,1,255,255,255,0,0,1,1,255,1,255,1,255,1,0,255,0,255,0,0,255,0,1,255,255,1,255,255,1,1,0,1,1,1,1,0,255,0,1,0,255,0,255,255,255,255,0,255,255,0,255,0,255,0,1,1,255,255,1,1,255,1,255,255,1,255,1,255,255,1,1,1,255,1,0,255,1,255,0,1,1,0,255,1,1,255,0,1,1,1}, {255,255,1,255,255,1,1,0,1,1,255,1,1,0,0,1,0,255,255,0,0,1,1,255,1,0,1,0,1,1,0,0,255,255,1,255,1,255,1,1,0,1,0,0,1,1,255,1,1,1,0,1,255,1,0,0,0,1,255,1,1,255,1,0,1,0,1,1,0,0,1,1,0,255,1,1,1,0,0,255,255,1,1,1,1,0,255,255,255,0,1,1,1,0,1,1,0,1,1,0,0,255,1,255,0,255,1,255,1,0,0,1,0,255,255,255,1,255,255,1,255,0,1,0,255,0,255,1,255,0,0,0,255,255,255,255,0,255,0,255,0,255,255,255,255,1,0,0,255,0,0,255,255,0,255,0,0,1,255,1,0,0,0,0,0,0,0,0,0,1,255,1,0,255,1,1,1,255,1,255,0,255,255,1,255,1,255,1,255,1,0,255,0,1,0,1,1,0,255,255,255,1,255,0,255,1,0,0,255,1,255,0,1,255,1,255,0,255,0,0,0,0,0,0,0,1,1,255,0,255,1,1,0,0,255,255,0,0,255,1,255,1,1,1,255,1,1,255,1,0,0,0,1,0,255,255,255,0,1,255,0,255,1,0,255,1,0,0,255,255,1,255,255,255,1,255,255,255,0,1,0,1,255,255,255,255,0,255,0,1,255,1,1,255,255,0,0,1,255,1,1,1,0,0,1,0,1,255,0,1,0,0,1,0,255,255,0,1,255,0,255,0,255,255,255,255,1,255,1,255,0,0,1,0,255,0,1,0,1,255,255,255,1,1,255,1,0,255,0,0,255,0,0,0,0,1,255,1,255,0,0,0,0,1,1,0,0,1,0,1,255,0,255,0,1,0,1,255,255,0,0,1,255,255,255,0,0,1,255,0,1,255,0,0,255,255,0,0,0,1,1,255,255,0,0,1,1,255,255,1,1,0,1,1,0,255,255,255,255,255,0,1,255,1,255,255,0,255,1,0,0,255,0,0,255,0,255,255,255,0,1,1,1,0,0,255,255,255,1,0,1,1,255,1,255,1,1,1,255,1,1,0,1,0,1,0,255,255,0,255,255,255,0,255,255,255,1,255,255,0,255,1,255,0,255,255,0,1,255,255,0,0,255,255,255,0,255,255,1,1,0,255,0,0,1,1,1,0,255,1,0,255,255,255,0,255,1,1,255,255,0,255,0,255,1,0,0,255,0,255,1,1,255,1,255,0,255,1,0,1,1,255,0,1,1,1,255,1,1,1,1,255,0,0,1,255,1,0,0,255,0,1,1,0,0,0,255,1,255,1,255,255,1,255,255,1,0,1,0,1,255,255,255,1,1,1,1,1,255,1,255,255,255,1,1,255,255,255,1,0,1,255,0,0,1,0,1,1,255,255,0,0,1,255,255,0,1,1,1,0,255,0,1,1,0,1,255,0,1,1,0,1,255,255,0,1,255,0,1,255,0,0,1,255,255,1,0,1,0,0,1,0,1,255,255,255,255,0,1,255,255,1,1,0,255,1,1,1,1,1,1,255,255,0,255,1,0,0,1,0,255,1,255,255,255,1,1,1,0,0,1,255,1,1,0,1,255,0,255,255,255,255,1,255,1,1,1,0,0,1,255,255,0,1,0,255,255,1,0,0,255,1,0,0,0,1,0,0,255,0,1,1,1,1,255,0,255,0,255,0,255,255,255,1,1,255,255,1,255,255,0,1,1,255,0,0,255,255,1,0,255,255,1,0,0,1,0,0,255,255,1,1,1,255,255,1,1,0,1,0,1,1,255,255,255,255,1,0,1,0,0,0,1,0,255,0,255,0,0,255,255,0,0,255,0,0,255,255,0,1,255,255,1,255,1,0,255,0,255,255,1,0,0,255,255,0,1,255,0,255,1,0,0,1,255,255,1,255,1,0,0,0,1,255,0,0,0,255,0,255,1,255,255,1,1,0,255,0,1,1,255,1,0,1,1,0,1,0,255,0,255,0,0,1,1,255,0,0,1,1,0,255,0,255,255,255,0,0,1,1,0,0,0,1,0,255,0,0,0,255,0,0,1,0,1,1,0,1,255,255,255,1,255,255,255,0,1,0,0,0,255,255,1,0,1,1,1,1,255,1,0,1,255,1,0,255,0,255,1,255,0,1,0,255,255,0,0,1,255,0,1,255,255,255,0,1,1,1,0,1,255,0,0,255,1,255,255,0,255,255,1,1,0,1,255,0,255,0,0,255,255,255,0,1,1,1,255,1,1,1,1,1,0,255,1,255,1,0,255,0,1,1,255,255,1,0,1,255,1,1,0,1,255}, } ; static const unsigned char precomputed_core_mult3sntrup1013_n[precomputed_core_mult3sntrup1013_NUM][crypto_core_INPUTBYTES] = { {0,0,1,1,1,0,1,0,0,0,1,-1,0,-1,-1,1,0,-1,0,-1,-1,1,0,0,-1,-1,-1,-1,1,0,0,1,1,0,-1,0,0,0,0,1,1,0,0,0,1,1,0,-1,0,-1,0,0,1,0,0,0,0,0,1,-1,1,0,0,0,1,0,-1,-1,0,1,1,1,0,1,0,0,-1,1,-1,-1,0,0,-1,0,1,0,0,0,0,0,-1,0,0,1,0,-1,1,0,0,1,-1,1,1,-1,0,0,1,0,1,-1,-1,0,-1,0,-1,0,0,-1,0,0,1,-1,-1,0,0,-1,1,0,-1,1,0,1,0,0,0,1,-1,1,0,0,-1,0,-1,0,-1,1,0,0,0,0,1,0,1,1,1,0,-1,-1,1,0,-1,-1,-1,0,1,-1,0,1,-1,-1,-1,0,1,1,0,-1,1,0,0,-1,1,0,1,0,0,-1,-1,1,0,-1,0,0,0,1,-1,0,0,0,-1,-1,0,0,1,0,0,1,0,1,0,0,0,-1,0,0,1,1,-1,-1,0,0,0,1,1,-1,0,1,0,0,-1,0,1,1,0,-1,-1,0,1,0,0,0,0,0,0,-1,1,1,0,1,1,0,1,1,1,-1,1,0,-1,-1,0,0,0,-1,1,0,0,1,1,-1,0,1,-1,1,0,1,0,1,0,1,-1,0,1,1,-1,-1,1,1,0,0,-1,1,0,0,1,0,1,0,0,0,0,0,0,0,-1,-1,0,0,0,-1,0,-1,0,0,0,0,0,0,1,-1,-1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,-1,0,1,0,1,-1,0,-1,0,0,0,0,0,0,0,-1,-1,0,-1,0,1,0,1,-1,0,0,1,-1,-1,-1,1,0,-1,1,-1,0,0,1,-1,0,0,1,0,0,1,-1,1,0,0,1,0,1,0,-1,-1,1,0,0,0,1,0,0,1,-1,1,0,0,1,-1,0,1,0,-1,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,-1,0,-1,-1,0,0,-1,0,0,0,-1,0,0,1,-1,-1,0,0,-1,0,1,1,-1,0,0,-1,-1,1,-1,1,0,-1,1,0,0,0,0,0,1,1,0,-1,0,1,-1,-1,-1,0,0,0,1,-1,0,-1,-1,1,0,-1,1,1,0,-1,-1,0,0,1,1,1,-1,0,0,0,0,-1,-1,1,1,1,-1,-1,-1,0,1,0,0,-1,0,0,-1,-1,0,0,0,1,0,0,0,1,1,0,0,1,-1,0,-1,-1,0,-1,-1,0,-1,-1,0,1,1,0,-1,0,1,0,0,1,0,-1,-1,1,-1,-1,0,0,0,1,0,1,1,0,-1,-1,0,0,0,1,1,0,-1,1,0,1,1,-1,1,1,1,0,0,0,1,-1,1,0,1,0,0,0,-1,0,1,0,0,1,-1,-1,0,-1,1,1,1,-1,-1,-1,-1,0,-1,-1,1,1,0,0,0,0,0,0,0,-1,-1,0,0,1,0,-1,1,0,0,0,0,0,0,0,0,1,0,-1,0,-1,-1,-1,1,-1,1,-1,1,-1,0,1,0,0,0,-1,-1,0,0,-1,0,0,1,0,0,-1,-1,0,-1,1,0,-1,0,1,0,0,0,1,0,0,1,-1,0,0,0,0,0,1,1,1,-1,0,-1,-1,-1,1,-1,0,1,0,1,1,1,1,0,0,1,0,0,-1,0,0,0,0,-1,0,-1,0,1,0,-1,0,0,-1,0,1,1,1,0,0,0,0,-1,0,-1,0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,1,0,1,-1,0,0,0,0,-1,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,-1,-1,0,0,0,-1,-1,1,0,1,0,0,0,0,1,0,1,-1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,-1,0,0,0,-1,0,0,1,0,1,0,0,1,0,1,-1,-1,-1,1,1,-1,-1,0,1,0,-1,-1,-1,0,0,0,0,1,-1,1,-1,1,-1,0,-1,-1,-1,0,1,-1,0,-1,1,1,1,1,0,1,0,1,-1,0,1,1,0,-1,0,0,0,0,0,0,0,0,1,0,0,-1,0,0,0,-1,0,1,0,0,0,0,0,0,-1,0,0,0,-1,1,0,-1,1,-1,0,0,0,1,0,0,1,0,-1,0,0,0,1,1,0,0,1,0,-1,1,1,1,0,0,1,0,1,1,0,1,0,1,0,0,-1,0,0,0,1,0,-1,-1,1,1,0,1,1,-1,0,1,0,1,0,1,0,0,1,1,0,-1,0,0,0,0,-1,0,0,-1,0,-1,1,-1,0,0,-1,1,0,0,0,1,-1,-1,0,0,-1,0,0,0,-1,-1,0,-1,0,-1,-1,0,1,0,0,1,-1,1,1,0,0,0,-1,0,-1,-1,-1,1,1,-1,-1,0,-1}, {1,1,1,0,-1,1,0,-1,0,-1,0,-1,0,0,1,-1,0,-1,0,0,-1,1,0,0,0,1,0,1,-1,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,1,-1,0,0,1,0,0,1,0,-1,0,0,0,1,0,0,1,-1,1,1,0,1,0,1,0,1,-1,0,1,-1,-1,-1,0,0,-1,-1,-1,1,1,1,0,-1,0,0,0,-1,1,0,0,1,-1,-1,-1,-1,1,-1,-1,-1,0,0,0,-1,0,0,0,-1,0,-1,-1,0,0,0,-1,-1,1,0,-1,1,0,0,-1,1,0,1,1,1,0,-1,0,0,0,0,1,-1,1,1,0,0,0,-1,1,0,0,1,-1,0,-1,0,0,-1,-1,0,-1,0,1,0,0,1,0,0,0,1,1,1,0,0,0,0,-1,1,1,0,0,-1,0,1,0,0,0,0,0,-1,0,-1,-1,0,-1,-1,1,0,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,0,0,-1,1,0,1,1,-1,-1,-1,0,0,0,0,-1,0,-1,0,0,1,-1,0,-1,-1,1,-1,0,0,-1,-1,1,0,-1,1,1,1,0,1,0,1,-1,1,0,1,0,0,0,1,0,0,0,1,-1,0,0,1,-1,-1,0,-1,-1,0,0,-1,0,1,0,0,1,-1,1,0,0,0,-1,0,-1,1,0,0,-1,1,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,-1,1,1,-1,1,-1,-1,0,-1,0,-1,1,1,1,0,0,-1,0,0,0,0,1,-1,1,0,0,0,-1,-1,1,0,0,0,-1,1,0,0,-1,-1,0,0,-1,0,0,0,1,0,0,1,1,-1,1,1,0,0,1,-1,0,-1,0,0,1,-1,0,0,-1,-1,0,0,1,0,0,0,0,1,-1,-1,1,-1,0,0,1,0,0,1,1,1,1,-1,0,0,-1,-1,1,1,0,0,1,1,-1,-1,0,0,-1,1,1,0,0,-1,0,1,0,0,0,-1,0,0,1,0,1,1,0,-1,0,0,-1,0,-1,1,0,-1,1,1,0,1,0,0,1,0,0,-1,0,-1,1,1,0,-1,1,0,1,0,1,0,0,0,1,-1,-1,-1,0,-1,-1,0,0,0,0,1,0,-1,0,-1,0,0,1,-1,-1,-1,-1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,-1,1,0,0,0,-1,1,0,0,-1,-1,0,-1,1,-1,0,1,0,-1,0,0,0,1,-1,1,1,1,-1,0,0,1,1,-1,-1,0,0,-1,-1,0,0,1,0,1,-1,0,0,1,0,1,1,1,0,0,-1,-1,-1,-1,-1,1,0,-1,1,0,0,1,-1,-1,0,0,0,0,1,1,1,1,0,-1,1,1,1,1,0,0,0,1,1,1,1,0,0,1,-1,0,0,1,0,0,-1,-1,-1,0,-1,-1,-1,1,-1,0,1,-1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,0,-1,1,1,0,1,1,-1,0,-1,1,0,-1,0,-1,1,-1,1,1,-1,-1,0,-1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,-1,1,0,1,0,-1,-1,0,0,0,-1,-1,0,1,1,0,-1,-1,-1,0,0,1,0,1,0,0,1,0,-1,0,0,0,1,-1,1,0,-1,1,0,0,-1,-1,0,-1,-1,-1,-1,0,0,0,-1,0,1,0,0,-1,-1,0,-1,1,-1,0,1,-1,-1,-1,0,0,-1,0,0,0,1,-1,-1,0,0,0,-1,0,0,0,0,-1,1,0,-1,-1,-1,0,1,1,-1,0,-1,1,0,0,1,1,0,-1,1,0,0,1,-1,1,0,0,-1,0,0,-1,-1,1,0,1,0,0,-1,0,0,-1,0,0,0,1,0,1,0,0,0,1,0,1,0,1,0,0,-1,0,0,-1,-1,0,1,-1,0,0,0,0,0,0,0,-1,1,1,0,0,0,0,-1,-1,0,-1,1,-1,-1,1,1,-1,0,-1,-1,1,-1,-1,0,-1,1,0,0,1,0,0,1,-1,-1,0,0,1,-1,0,0,0,0,0,1,-1,-1,1,1,0,-1,0,-1,0,1,0,0,0,1,0,1,-1,1,-1,0,0,0,0,0,-1,0,0,1,1,0,1,0,0,0,-1,0,0,-1,1,1,0,0,-1,-1,1,0,0,0,0,1,0,-1,-1,0,0,1,-1,-1,0,0,0,-1,1,-1,0,0,0,-1,1,-1,0,0,0,-1,0,1,1,-1,-1,0,1,0,0,0,1,-1,0,1,0,0,-1,-1,1,0,0,0,0,1,0,-1,0,0,-1,-1,1,0,1,-1,1,0,0,-1,-1,0,0,0,0,-1,0,0,-1,0,1,0,1,1,1}, {-1,0,1,1,-1,0,-1,0,1,1,0,1,0,0,0,1,0,0,0,0,0,-1,0,0,1,1,0,1,0,0,-1,0,-1,0,0,1,1,0,1,-1,-1,0,1,0,1,1,0,0,-1,0,1,1,0,0,1,1,0,0,1,-1,1,-1,-1,0,0,-1,1,1,0,-1,0,1,0,0,-1,0,0,0,0,1,-1,0,1,0,0,-1,0,1,0,1,1,0,1,0,0,-1,-1,0,0,-1,-1,0,-1,0,0,0,1,0,0,0,1,0,-1,1,-1,0,-1,0,0,-1,-1,1,-1,0,0,-1,-1,0,0,-1,1,0,0,-1,0,-1,-1,1,0,0,0,1,-1,0,0,0,1,0,0,-1,0,0,1,1,-1,0,-1,0,1,-1,0,0,0,0,0,0,1,0,0,1,-1,-1,-1,0,1,1,1,1,-1,0,0,-1,1,-1,0,0,0,0,0,1,-1,0,0,0,1,-1,0,1,0,0,0,-1,-1,0,1,0,1,-1,0,1,-1,1,1,0,0,0,-1,0,1,0,0,-1,0,1,0,0,0,0,0,0,-1,-1,0,0,-1,0,-1,1,0,-1,0,0,-1,1,-1,0,0,1,-1,1,0,1,1,0,0,-1,1,-1,0,-1,1,0,0,-1,1,1,-1,0,1,-1,0,1,-1,0,1,-1,0,0,-1,0,1,0,1,-1,0,0,0,0,-1,1,0,-1,1,0,1,0,1,-1,0,0,1,1,-1,-1,-1,-1,1,-1,0,1,0,0,-1,1,1,0,0,0,1,1,0,1,-1,0,0,0,-1,-1,0,-1,-1,0,0,0,1,1,-1,0,0,1,0,-1,0,1,0,1,1,1,0,-1,0,1,-1,-1,0,1,0,0,-1,0,1,0,0,0,1,-1,0,0,-1,-1,0,0,-1,0,0,1,-1,0,0,0,-1,0,0,1,-1,-1,1,0,1,1,0,-1,-1,0,1,-1,-1,0,0,-1,0,0,0,-1,0,-1,1,1,1,-1,0,0,1,1,0,1,1,0,-1,1,1,0,0,0,0,0,0,-1,1,1,1,0,0,0,0,0,1,0,0,0,0,-1,0,-1,-1,-1,0,0,1,0,0,0,0,0,0,-1,1,0,0,-1,0,-1,1,0,0,1,0,1,0,0,0,-1,1,0,-1,-1,0,0,-1,0,0,1,-1,-1,0,1,0,0,0,-1,1,-1,1,-1,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,-1,1,0,1,0,0,0,0,0,1,-1,-1,1,-1,0,1,-1,0,1,1,1,-1,0,-1,1,-1,0,0,-1,-1,1,1,1,-1,0,0,0,0,-1,1,0,1,-1,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,1,-1,1,0,1,0,0,-1,0,-1,-1,-1,0,-1,-1,0,-1,-1,0,-1,0,-1,0,-1,-1,0,1,0,0,-1,0,1,0,0,0,0,0,1,0,-1,0,0,1,-1,-1,1,-1,1,0,0,1,0,0,1,0,1,0,-1,1,0,0,0,0,0,-1,0,1,0,-1,0,0,-1,1,1,1,-1,0,0,1,0,-1,0,0,0,-1,1,1,0,1,0,-1,0,1,0,0,0,0,0,0,-1,1,0,0,-1,0,-1,1,0,-1,0,0,1,-1,0,0,0,0,-1,0,-1,0,0,0,-1,0,1,1,0,0,0,0,1,0,1,1,0,1,-1,0,-1,1,0,-1,0,-1,0,-1,1,1,0,1,0,1,-1,1,1,-1,-1,0,0,-1,0,0,1,1,0,0,1,1,-1,0,1,-1,0,0,0,0,0,1,-1,-1,0,0,-1,0,0,1,1,-1,1,0,1,0,-1,1,0,1,1,-1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,1,1,0,0,0,0,1,1,0,-1,-1,0,0,-1,0,1,0,0,1,1,1,0,1,1,1,-1,-1,0,-1,-1,-1,0,1,-1,1,1,0,0,1,0,0,1,-1,1,0,-1,0,1,-1,1,0,-1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,-1,0,1,0,0,-1,-1,1,0,1,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,0,0,0,-1,0,1,0,0,0,1,0,1,0,-1,0,1,1,0,-1,0,1,0,1,0,0,0,0,1,0,-1,0,-1,1,0,0,0,1,-1,-1,0,0,1,0,0,0,0,0,0,0,0,-1,1,-1,0,0,-1,1,0,1,0,1,0,1,0,0,0,0,0,1,-1,-1,0,0,0,0,1,0,-1,1,0,1,1,-1,-1,-1,0,-1,0,0,-1,0,0,0,0,0,0,-1,0,0,-1,0,1,1,-1,0,0,0,0,0,1,0,0,0,1,-1,1,0,0,0,0,1,-1,1,1,-1,1,-1,0,-1,-1,-1,0,-1,0,-1,0,0,0,0,0,1,0,0,0}, {0,0,0,0,1,0,0,0,0,0,-1,0,-1,0,0,0,0,1,-1,0,0,0,1,-1,0,0,-1,0,0,0,-1,1,1,-1,-1,1,0,0,1,0,-1,0,1,-1,0,-1,-1,1,0,-1,1,1,-1,1,0,0,-1,1,1,-1,-1,0,1,0,0,0,1,1,0,1,0,-1,0,0,0,-1,1,1,1,0,0,0,1,0,0,1,-1,0,0,0,-1,1,0,1,-1,0,-1,0,-1,0,0,1,-1,-1,0,0,0,-1,1,0,-1,0,-1,0,0,0,-1,0,-1,-1,1,-1,1,0,1,0,-1,-1,-1,-1,-1,-1,0,0,0,0,1,-1,0,0,-1,0,0,1,1,-1,-1,1,-1,1,-1,0,-1,0,-1,0,0,1,0,0,0,1,1,-1,0,0,0,0,1,0,-1,1,1,1,-1,0,1,1,1,1,0,-1,-1,0,1,0,0,0,0,1,0,0,0,0,1,-1,1,0,0,-1,0,-1,0,1,0,0,1,0,-1,1,0,1,-1,1,-1,0,0,0,-1,0,0,1,0,0,0,0,1,1,0,0,0,0,-1,-1,0,-1,1,0,0,0,1,0,-1,0,0,0,0,0,1,1,0,0,1,-1,0,0,1,0,1,1,0,-1,0,-1,0,0,0,-1,-1,0,0,1,-1,-1,0,0,0,0,0,-1,0,-1,0,-1,0,1,0,-1,1,1,0,1,1,0,0,1,-1,1,-1,0,0,0,-1,0,1,0,-1,0,1,1,0,0,1,0,0,0,1,-1,-1,0,0,-1,0,0,0,-1,-1,1,0,1,-1,0,0,0,0,1,1,-1,0,1,-1,0,0,0,0,0,1,-1,-1,-1,0,-1,-1,0,1,1,0,1,1,0,0,1,0,-1,-1,0,0,0,1,1,1,1,-1,0,-1,0,1,1,1,-1,1,0,0,0,-1,-1,0,1,-1,1,0,0,1,1,0,0,0,0,-1,0,-1,0,1,1,0,-1,0,-1,-1,-1,-1,0,1,-1,0,0,0,-1,1,1,-1,0,0,0,0,0,-1,1,0,0,0,1,0,-1,-1,1,0,1,-1,1,-1,1,0,0,0,-1,1,0,1,0,1,-1,-1,0,1,0,-1,0,0,0,0,0,0,1,-1,1,0,0,-1,1,1,-1,0,1,0,0,0,-1,-1,-1,0,1,1,0,0,1,-1,0,0,1,1,0,0,0,0,0,-1,0,0,1,-1,-1,0,1,-1,1,1,1,0,-1,0,0,0,-1,0,1,0,-1,-1,0,0,-1,0,0,1,-1,0,1,0,1,-1,0,0,0,0,-1,0,-1,-1,0,0,-1,0,0,0,-1,-1,1,0,-1,-1,-1,0,0,0,0,0,-1,0,0,0,1,0,-1,-1,1,0,-1,0,0,1,0,-1,0,1,0,-1,1,0,0,0,1,-1,-1,0,1,0,0,1,-1,0,-1,-1,-1,0,0,0,1,0,0,-1,1,1,-1,0,0,-1,0,-1,-1,1,1,-1,0,-1,-1,0,1,0,0,-1,-1,-1,0,1,-1,0,0,0,1,0,0,-1,-1,1,1,0,0,0,-1,0,0,1,-1,0,0,-1,-1,1,1,1,1,1,0,-1,0,0,0,0,0,0,1,1,0,1,-1,-1,0,0,1,0,0,1,-1,1,1,1,0,0,-1,0,0,-1,-1,1,-1,0,0,1,1,0,0,0,0,1,0,0,-1,1,0,0,1,0,-1,-1,1,1,-1,-1,-1,-1,-1,0,-1,1,0,-1,-1,0,0,0,0,-1,1,-1,0,0,-1,0,1,1,1,0,1,-1,0,-1,1,0,0,0,0,0,0,0,1,0,0,-1,0,0,1,-1,0,1,0,1,0,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1,0,0,1,1,1,0,-1,0,-1,1,-1,-1,-1,1,0,1,0,0,1,-1,-1,1,1,-1,0,0,-1,0,-1,-1,0,0,0,-1,-1,1,-1,1,-1,-1,1,0,0,-1,0,1,0,1,-1,-1,0,1,0,1,0,1,0,1,0,0,-1,0,0,0,0,-1,1,1,-1,0,1,0,0,1,1,1,1,1,0,-1,-1,1,0,1,1,0,1,0,-1,0,0,0,0,0,0,1,0,0,1,1,-1,1,1,0,0,0,0,0,-1,1,0,0,-1,0,0,-1,0,1,0,0,-1,1,0,0,-1,0,1,-1,0,1,0,0,-1,1,-1,0,-1,0,1,0,0,0,0,-1,0,0,0,0,1,0,-1,0,0,0,0,0,1,0,-1,0,0,1,1,0,-1,-1,0,0,-1,-1,1,1,0,-1,0,1,1,0,1,0,0,1,-1,0,0,-1,0,0,0,1,1,0,1,1,0,-1,-1,0,-1,-1,0,-1,0,0,0,1,1,0,1,-1,0,0,-1,-1,-1,-1,0,0,-1,1,0,-1,0,1,0,-1,-1,0,1,0,0,1,0,1,0,1,1,0,0,-1,-1}, } ; static const unsigned char precomputed_core_mult3sntrup1013_k[precomputed_core_mult3sntrup1013_NUM][crypto_core_KEYBYTES] = { {1,0,0,1,-1,-1,-1,0,0,0,0,-1,0,1,0,-1,-1,-1,1,-1,-1,-1,0,0,0,1,0,1,1,-1,-1,0,1,1,0,1,1,0,1,0,1,-1,-1,0,0,-1,1,-1,-1,-1,1,0,-1,0,0,0,0,-1,-1,1,-1,0,1,0,-1,0,1,0,1,-1,0,0,0,0,0,-1,0,0,1,1,0,0,1,0,1,-1,0,1,-1,0,-1,0,0,-1,0,-1,-1,1,1,0,1,0,0,-1,0,1,0,0,-1,1,0,-1,0,1,-1,1,-1,0,-1,-1,-1,-1,-1,0,0,0,0,-1,-1,1,0,0,1,1,0,0,0,-1,-1,0,-1,0,1,-1,0,-1,1,0,1,0,-1,-1,1,0,-1,1,0,0,1,0,-1,-1,0,-1,0,0,0,0,0,0,0,-1,-1,0,0,0,-1,0,0,0,1,0,0,-1,0,0,0,-1,0,-1,1,0,0,-1,1,1,1,-1,-1,0,1,0,-1,0,0,1,0,-1,0,-1,-1,1,1,-1,1,0,0,0,-1,0,0,0,0,-1,0,1,0,-1,1,0,0,-1,-1,0,1,0,-1,-1,-1,0,0,0,0,0,-1,0,-1,1,0,0,0,1,1,-1,1,-1,1,0,0,0,0,-1,0,0,0,-1,0,1,0,0,-1,1,-1,-1,1,0,-1,-1,1,-1,-1,0,0,1,1,0,-1,0,-1,1,1,0,1,0,0,1,0,-1,1,-1,-1,1,1,0,-1,0,1,0,0,0,0,-1,1,0,-1,0,0,0,0,0,0,1,-1,0,-1,0,0,0,-1,0,1,1,-1,-1,-1,0,0,0,0,-1,1,0,0,0,-1,-1,-1,0,0,0,1,-1,0,1,0,0,0,-1,1,1,0,-1,0,0,0,1,0,0,0,1,0,0,0,0,-1,0,-1,0,1,0,-1,0,0,-1,0,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,1,0,-1,-1,1,0,0,0,-1,0,0,1,1,1,0,0,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,0,0,0,0,0,1,-1,0,1,0,1,1,-1,-1,0,0,0,1,1,0,0,1,-1,0,1,0,1,0,0,0,-1,1,1,1,-1,0,0,0,-1,1,1,0,-1,0,1,-1,0,1,-1,1,0,0,1,0,-1,0,-1,0,-1,0,1,0,0,0,0,1,-1,0,0,0,-1,0,1,1,-1,1,0,-1,1,0,-1,-1,0,-1,0,0,-1,1,0,0,0,1,0,0,-1,1,-1,0,-1,0,0,0,0,-1,1,0,0,0,0,0,0,0,1,0,0,-1,0,0,-1,0,1,-1,1,-1,0,0,-1,0,1,1,1,0,1,0,0,0,-1,0,-1,0,0,0,0,1,0,0,0,0,1,1,0,-1,-1,1,0,0,0,0,0,-1,0,1,0,-1,0,0,-1,1,0,-1,1,1,1,0,0,-1,1,1,1,1,-1,1,1,-1,1,1,-1,-1,1,-1,0,1,-1,-1,-1,0,1,0,0,0,-1,1,-1,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,1,0,0,-1,0,0,-1,1,1,0,0,-1,0,0,1,-1,1,1,0,-1,-1,0,1,-1,0,-1,0,1,0,-1,0,0,0,1,0,0,0,1,1,-1,0,-1,0,0,0,0,-1,0,0,0,1,1,-1,-1,0,0,0,0,-1,0,0,0,-1,1,0,1,0,0,0,0,1,0,-1,1,1,1,1,1,0,0,0,1,-1,-1,-1,0,0,-1,0,1,0,1,-1,0,0,0,-1,-1,0,1,-1,1,-1,-1,1,1,0,0,0,-1,1,0,0,0,1,1,1,-1,-1,0,-1,0,0,-1,-1,1,-1,0,0,0,-1,0,1,1,1,0,-1,1,-1,0,1,-1,0,1,0,-1,1,0,1,0,-1,0,0,-1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,1,-1,0,0,0,1,1,0,0,1,0,0,1,-1,1,0,0,0,-1,0,-1,0,-1,1,0,-1,-1,0,0,1,1,1,0,1,0,0,-1,-1,0,1,0,1,1,0,0,-1,-1,1,-1,0,-1,0,-1,0,1,0,-1,0,0,1,0,-1,-1,1,0,0,1,1,0,-1,0,0,0,1,0,-1,-1,0,-1,0,0,1,0,0,-1,0,1,1,0,1,1,-1,-1,0,-1,-1,0,-1,0,-1,0,0,-1,0,0,0,1,-1,-1,-1,0,-1,0,0,0,-1,1,0,0,0,0,0,0,1,-1,0,-1,1,-1,0,0,0,-1,1,0,0,-1,0,-1,0,1,0,-1,0,1,0,-1,0,0,1,0,0,0,0,1,-1,1,0,0,1,0,1,0,-1,-1,0,1,0,1,0,-1,-1,0,0,1,1,-1,0,-1,1}, {1,0,0,-1,0,0,0,-1,-1,0,0,1,1,0,1,1,0,-1,1,1,-1,1,-1,0,1,0,0,1,1,0,0,0,-1,1,1,-1,1,0,1,-1,0,-1,0,1,1,0,0,0,0,1,1,0,-1,1,-1,1,0,0,0,-1,0,1,-1,1,-1,1,0,0,1,1,0,0,0,-1,-1,0,0,0,0,1,-1,0,-1,0,-1,0,0,0,0,0,0,0,1,-1,0,0,0,-1,-1,0,0,-1,-1,1,1,0,-1,1,0,0,-1,0,1,0,1,0,-1,0,-1,-1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,-1,-1,0,0,0,1,0,0,-1,0,1,0,-1,0,-1,0,0,0,0,-1,0,-1,0,-1,0,0,-1,1,0,-1,-1,0,-1,1,0,0,0,0,1,0,0,-1,0,0,0,-1,0,0,1,1,-1,-1,1,0,0,-1,0,0,-1,1,0,0,0,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,0,0,1,-1,1,0,1,0,1,-1,0,0,0,1,0,-1,1,-1,0,-1,-1,-1,1,0,1,1,0,0,0,-1,0,1,1,0,0,0,0,0,-1,1,0,0,-1,-1,1,0,-1,0,1,1,0,0,0,0,1,0,1,0,0,0,-1,-1,0,1,0,0,0,1,-1,0,1,1,-1,0,0,0,0,-1,1,0,0,1,1,-1,0,-1,-1,0,-1,-1,0,-1,1,0,1,1,1,-1,0,0,0,-1,-1,0,0,-1,1,0,-1,0,0,0,1,0,1,1,-1,0,0,1,-1,-1,-1,-1,0,1,-1,-1,0,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,-1,0,0,0,1,0,-1,1,0,0,1,0,0,-1,1,0,0,-1,0,0,-1,-1,1,-1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,-1,-1,0,-1,0,-1,0,0,0,1,-1,-1,-1,-1,-1,-1,1,0,-1,0,1,-1,1,0,1,1,0,1,-1,0,-1,0,1,0,-1,0,0,0,1,0,0,-1,1,0,1,-1,1,0,0,0,1,0,-1,0,-1,1,0,-1,0,0,0,1,1,-1,-1,1,0,0,0,1,-1,1,1,0,-1,0,0,0,0,0,-1,0,0,0,0,1,0,-1,0,0,0,1,0,-1,1,-1,1,1,0,1,-1,-1,0,1,0,0,-1,-1,0,0,0,1,0,1,-1,0,1,0,1,1,0,1,-1,-1,1,-1,1,0,0,0,0,-1,-1,1,-1,1,-1,1,0,0,0,1,1,-1,-1,-1,-1,-1,1,1,-1,0,0,0,0,-1,0,1,0,0,0,1,1,1,-1,0,0,0,0,0,1,-1,1,-1,-1,-1,0,0,0,-1,0,0,0,1,1,0,-1,0,-1,0,-1,0,1,-1,1,0,0,0,1,1,-1,1,0,1,0,-1,0,1,-1,0,1,1,0,0,1,0,0,1,-1,-1,1,0,0,0,0,0,0,-1,1,-1,0,0,0,0,-1,1,0,-1,0,0,0,1,-1,0,-1,-1,0,0,-1,1,-1,0,1,-1,0,0,1,0,-1,1,1,0,0,0,0,0,-1,0,-1,0,-1,1,0,0,-1,0,-1,1,0,-1,0,0,0,0,-1,1,0,1,1,0,-1,1,0,-1,-1,0,0,0,0,0,0,-1,1,-1,1,0,0,0,1,0,-1,0,-1,1,-1,0,0,1,1,0,1,0,0,0,-1,1,0,1,0,0,-1,0,-1,0,0,0,0,-1,1,-1,0,1,0,0,1,-1,0,0,-1,0,0,1,1,0,1,0,1,0,-1,1,0,0,1,0,0,-1,0,-1,1,0,0,-1,-1,1,0,-1,0,0,1,-1,-1,0,0,-1,-1,1,1,0,-1,0,-1,0,1,-1,0,-1,0,1,1,1,1,0,0,-1,-1,0,0,0,0,0,0,-1,-1,-1,0,0,0,0,0,-1,1,1,-1,-1,0,0,1,1,-1,0,0,-1,0,1,0,0,-1,0,1,-1,1,-1,1,-1,-1,0,-1,0,-1,0,0,0,0,-1,0,1,0,0,0,0,0,-1,0,-1,0,-1,0,1,1,-1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,-1,0,-1,1,0,1,-1,-1,0,-1,1,0,0,1,-1,0,1,1,-1,1,-1,1,1,1,1,-1,1,1,1,0,1,0,1,-1,1,1,0,0,0,1,-1,1,-1,0,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,-1,-1,-1,0,0,0,1,0,0,-1,-1,0,0,0,1,0,0,-1,-1,1,1,-1,0,1,0,-1,0,-1,-1,-1,1,1,0,0,0,0,0,1,0,0,-1,1,0,-1,-1,0,0,-1,1,-1,0,0,0,0,0,-1,-1,0,0,1,0,1,-1,0,-1,1,0,0,-1,1,0,1,1}, {0,0,-1,0,-1,-1,0,0,0,1,0,1,-1,0,-1,-1,0,0,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,0,0,0,0,0,0,-1,1,0,0,0,0,0,1,-1,0,0,0,0,1,0,0,1,-1,-1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,-1,0,0,1,1,0,0,-1,0,0,1,-1,-1,1,1,0,1,0,-1,-1,1,1,1,1,0,0,-1,-1,0,0,1,1,0,0,1,-1,-1,-1,-1,0,0,0,0,0,1,1,-1,1,1,-1,0,0,1,0,-1,1,0,0,1,1,0,0,-1,0,0,0,0,0,0,0,-1,-1,0,0,0,0,1,1,0,-1,-1,0,1,1,0,1,0,0,1,0,-1,0,0,-1,0,0,1,0,1,0,1,-1,1,-1,0,0,1,0,-1,1,0,1,0,0,1,0,-1,0,-1,-1,0,0,1,0,0,1,-1,1,0,0,-1,0,0,-1,-1,0,0,-1,0,1,-1,0,-1,-1,0,-1,1,0,0,1,0,0,0,1,1,0,0,0,0,-1,1,0,0,1,1,0,-1,-1,-1,-1,0,0,0,0,0,1,0,-1,-1,0,-1,1,0,0,0,0,0,0,0,1,-1,-1,1,0,0,0,0,0,-1,0,0,0,1,1,0,0,0,0,0,0,1,-1,0,-1,0,-1,0,0,0,-1,0,0,0,1,0,0,0,0,0,-1,1,1,0,-1,1,-1,1,0,1,1,0,1,1,-1,0,-1,0,0,0,0,0,1,1,-1,0,1,-1,1,0,-1,0,1,1,1,1,0,1,0,0,0,-1,-1,0,0,-1,-1,1,1,1,0,0,0,-1,0,0,1,-1,0,1,1,1,0,0,-1,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,-1,1,0,1,0,-1,0,0,0,0,-1,1,0,-1,1,1,-1,0,0,0,0,0,0,1,-1,1,-1,-1,0,1,0,0,-1,-1,-1,0,0,1,-1,-1,0,-1,0,0,0,1,-1,-1,1,0,-1,-1,0,1,-1,0,0,0,-1,-1,0,-1,-1,1,1,0,0,-1,-1,-1,1,0,0,-1,0,-1,0,1,0,-1,0,0,0,0,0,-1,0,0,0,0,0,1,0,0,0,0,1,-1,0,1,1,0,1,-1,-1,0,0,0,1,0,-1,-1,0,-1,0,0,-1,-1,0,-1,0,1,0,-1,1,0,1,1,-1,1,0,-1,0,0,-1,0,1,0,0,0,0,-1,0,0,0,-1,1,-1,-1,0,1,1,0,0,0,0,1,-1,0,-1,-1,1,-1,1,0,0,1,-1,0,-1,-1,1,0,-1,-1,1,0,0,1,0,0,0,-1,0,0,1,-1,-1,0,1,-1,-1,-1,1,0,0,-1,1,1,0,-1,1,1,0,0,1,0,1,0,0,-1,0,-1,0,0,0,0,0,0,0,-1,-1,0,1,1,0,-1,0,1,-1,0,1,0,-1,-1,1,1,-1,1,0,1,0,1,0,-1,1,0,0,0,-1,0,0,-1,0,1,-1,0,0,1,0,-1,-1,0,-1,0,1,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,0,1,1,-1,0,-1,1,0,0,-1,0,0,0,-1,1,-1,-1,0,1,0,0,-1,0,0,0,0,-1,-1,-1,-1,0,0,0,0,-1,0,0,0,0,0,0,0,1,0,0,-1,0,1,1,1,0,0,1,1,0,-1,0,0,-1,-1,-1,0,0,0,0,-1,0,1,0,0,0,0,-1,0,-1,-1,0,1,0,1,0,0,-1,1,1,0,0,1,1,0,-1,1,1,-1,0,1,0,1,-1,-1,1,0,-1,0,1,1,0,0,0,0,0,0,0,1,-1,1,0,0,1,0,0,1,0,0,-1,-1,-1,0,-1,0,-1,-1,-1,0,1,0,0,0,0,1,1,1,1,1,-1,1,-1,0,1,1,1,-1,0,1,0,0,0,-1,1,0,-1,1,0,0,0,0,-1,0,-1,0,-1,1,0,0,0,-1,0,-1,0,0,1,-1,0,-1,1,1,1,0,0,-1,-1,1,0,0,0,1,1,-1,-1,0,0,0,1,0,0,-1,0,-1,-1,0,1,0,0,1,-1,0,0,1,-1,0,0,1,0,0,1,0,-1,0,0,1,1,1,0,-1,0,1,0,1,1,-1,1,0,0,1,0,0,0,0,-1,0,-1,-1,0,1,0,1,1,0,-1,1,1,0,1,0,1,0,0,1,0,-1,1,0,0,0,0,0,0,1,1,-1,1,1,1,0,0,1,0,0,0,-1,-1,0,0,1,-1,1,1,-1,1,-1,0,0,1,0,0,0,1,0,1,0,-1,0,1,0,-1,0,-1,1,0,-1,0,0,0,0,0,-1,-1,1,0,1,-1,0,0,-1,0,0,1,0}, {1,-1,0,-1,0,-1,0,0,1,0,0,0,0,-1,0,0,1,0,-1,0,-1,1,-1,0,0,0,1,0,0,0,1,0,-1,0,0,0,0,0,-1,0,-1,-1,0,1,-1,-1,1,-1,0,-1,-1,0,0,0,0,0,1,0,-1,0,0,1,0,0,1,1,-1,0,0,1,-1,0,-1,0,0,1,1,1,0,1,1,-1,1,0,-1,-1,1,0,0,0,0,-1,-1,1,0,1,0,-1,1,-1,-1,0,-1,0,0,0,0,1,0,0,1,-1,0,-1,-1,-1,-1,1,0,0,1,0,0,-1,0,0,0,-1,1,0,0,0,0,1,0,1,-1,-1,1,1,1,-1,-1,0,-1,0,1,0,0,0,0,0,0,0,0,-1,0,1,0,0,0,-1,0,1,0,1,0,0,-1,0,-1,-1,-1,-1,1,1,0,0,0,0,0,0,1,1,1,-1,0,1,1,-1,0,1,0,-1,1,-1,1,0,-1,1,-1,-1,1,0,0,0,1,1,0,1,1,1,0,-1,1,-1,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,0,-1,0,-1,0,1,0,1,-1,0,-1,0,0,1,0,0,1,1,-1,-1,0,1,1,1,0,1,-1,0,1,1,1,0,0,-1,0,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,-1,-1,0,1,1,0,-1,0,-1,-1,0,-1,-1,0,-1,0,0,0,1,0,0,0,0,-1,0,0,-1,0,1,-1,0,-1,-1,-1,-1,0,0,1,-1,0,0,0,-1,-1,-1,1,-1,0,0,1,0,1,0,0,-1,0,1,-1,0,1,1,0,0,0,-1,1,0,1,0,0,-1,0,0,0,0,1,0,0,0,-1,1,-1,0,0,1,1,0,0,-1,0,-1,0,0,0,0,0,0,1,1,-1,0,-1,1,-1,-1,-1,0,0,-1,0,0,0,0,0,1,0,-1,1,0,1,-1,0,1,0,0,1,1,0,-1,0,0,0,0,0,1,-1,-1,0,0,-1,0,1,-1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,-1,-1,1,1,0,0,0,0,0,0,1,1,-1,0,-1,-1,0,0,0,-1,-1,0,0,0,-1,1,0,-1,0,0,1,-1,0,1,0,0,-1,0,-1,0,0,0,0,-1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,-1,1,0,-1,-1,0,0,0,-1,0,1,0,-1,-1,-1,0,-1,1,0,1,1,1,0,-1,0,1,0,0,1,0,1,0,1,0,-1,-1,0,0,0,0,0,-1,0,0,0,1,0,0,1,0,-1,-1,0,-1,1,0,-1,0,0,0,-1,0,1,0,-1,0,-1,1,0,0,-1,-1,1,0,1,-1,-1,1,1,0,0,1,1,-1,0,-1,-1,1,0,0,-1,0,1,1,-1,1,0,1,0,0,-1,0,0,-1,1,-1,-1,0,0,1,0,1,1,0,1,0,0,0,-1,-1,0,0,0,-1,-1,0,1,0,-1,-1,0,0,0,-1,0,-1,-1,0,0,1,1,-1,1,0,0,0,0,1,-1,-1,1,0,1,0,1,0,0,-1,1,0,0,-1,1,-1,-1,1,0,1,0,-1,0,0,0,0,1,0,-1,1,0,1,1,0,-1,0,0,1,0,0,0,-1,0,-1,0,-1,0,0,1,0,0,0,-1,1,0,0,0,0,1,0,1,0,1,0,0,1,0,0,0,-1,1,-1,0,0,0,1,-1,1,1,0,0,0,0,-1,0,0,-1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,-1,0,0,-1,-1,-1,0,0,0,0,0,0,1,0,-1,-1,0,-1,-1,0,0,0,0,-1,-1,1,0,0,-1,-1,0,0,1,0,0,1,0,0,1,-1,-1,1,0,1,0,1,0,-1,0,-1,-1,-1,0,0,-1,-1,1,0,1,1,-1,0,0,1,0,-1,-1,1,1,1,-1,0,1,0,0,0,1,0,-1,0,0,0,0,0,0,0,-1,0,1,1,0,1,-1,1,1,-1,1,0,0,1,-1,-1,1,-1,1,-1,-1,0,-1,0,0,0,0,0,-1,0,1,-1,-1,0,1,0,0,0,1,1,-1,0,0,-1,0,0,1,0,-1,0,0,0,1,-1,1,-1,0,1,-1,0,1,0,0,0,0,0,1,-1,1,-1,1,0,0,1,1,0,0,-1,0,0,0,0,1,-1,0,1,0,-1,1,1,0,0,1,1,0,1,1,-1,0,1,-1,-1,0,0,0,-1,0,0,1,0,-1,0,0,-1,0,1,0,0,1,0,1,1,0,0,1,1,-1,0,1,-1,1,0,1,1,1,0,1,0,1,0,1,0,-1,1,0,-1,-1,0,-1,-1,1,1,0,0,0,-1,0,0,-1,1,0,1,0,1,0,-1,0,0,0}, } ; static const unsigned char precomputed_core_mult3sntrup1013_c[precomputed_core_mult3sntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_mult3sntrup1013_impl(long long impl) { unsigned char *h = test_core_mult3sntrup1013_h; unsigned char *n = test_core_mult3sntrup1013_n; unsigned char *k = test_core_mult3sntrup1013_k; unsigned char *c = test_core_mult3sntrup1013_c; unsigned char *h2 = test_core_mult3sntrup1013_h2; unsigned char *n2 = test_core_mult3sntrup1013_n2; unsigned char *k2 = test_core_mult3sntrup1013_k2; unsigned char *c2 = test_core_mult3sntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup1013(impl); printf("core_mult3sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup1013_implementation(impl),ntruprime_dispatch_core_mult3sntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup1013; printf("core_mult3sntrup1013 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup1013_implementation(),ntruprime_core_mult3sntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_mult3sntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_mult3sntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_mult3sntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_mult3sntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_mult3sntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_mult3sntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_mult3sntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_mult3sntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_mult3sntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_mult3sntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_mult3sntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup1013")) return; storage_core_mult3sntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_mult3sntrup1013_h = aligned(storage_core_mult3sntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_mult3sntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_mult3sntrup1013_n = aligned(storage_core_mult3sntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_mult3sntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_mult3sntrup1013_k = aligned(storage_core_mult3sntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_mult3sntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_mult3sntrup1013_c = aligned(storage_core_mult3sntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_mult3sntrup1013_h2 = callocplus(maxalloc); test_core_mult3sntrup1013_h2 = aligned(storage_core_mult3sntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_mult3sntrup1013_n2 = callocplus(maxalloc); test_core_mult3sntrup1013_n2 = aligned(storage_core_mult3sntrup1013_n2,crypto_core_INPUTBYTES); storage_core_mult3sntrup1013_k2 = callocplus(maxalloc); test_core_mult3sntrup1013_k2 = aligned(storage_core_mult3sntrup1013_k2,crypto_core_KEYBYTES); storage_core_mult3sntrup1013_c2 = callocplus(maxalloc); test_core_mult3sntrup1013_c2 = aligned(storage_core_mult3sntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_mult3sntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup1013();++impl) forked(test_core_mult3sntrup1013_impl,impl); ++test_core_mult3sntrup1013_h; ++test_core_mult3sntrup1013_n; ++test_core_mult3sntrup1013_k; ++test_core_mult3sntrup1013_c; ++test_core_mult3sntrup1013_h2; ++test_core_mult3sntrup1013_n2; ++test_core_mult3sntrup1013_k2; ++test_core_mult3sntrup1013_c2; } free(storage_core_mult3sntrup1013_c2); free(storage_core_mult3sntrup1013_k2); free(storage_core_mult3sntrup1013_n2); free(storage_core_mult3sntrup1013_h2); free(storage_core_mult3sntrup1013_c); free(storage_core_mult3sntrup1013_k); free(storage_core_mult3sntrup1013_n); free(storage_core_mult3sntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_mult3sntrup1277.c0000644000000000000000000013344214705505543023715 0ustar rootroot/* ----- core/mult3sntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_mult3sntrup1277_checksums[] = { "bac954209b725cd50724efb35ec8845e4bcdfcbfd7a8eb34d40c625a2772b9e3", "d8c129631fc1d4f65d262ae836c485fa883a570fb650291e4f1c9317be948bc9", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_mult3sntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_mult3sntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_mult3sntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_mult3sntrup1277_CONSTBYTES static void *storage_core_mult3sntrup1277_h; static unsigned char *test_core_mult3sntrup1277_h; static void *storage_core_mult3sntrup1277_n; static unsigned char *test_core_mult3sntrup1277_n; static void *storage_core_mult3sntrup1277_k; static unsigned char *test_core_mult3sntrup1277_k; static void *storage_core_mult3sntrup1277_c; static unsigned char *test_core_mult3sntrup1277_c; static void *storage_core_mult3sntrup1277_h2; static unsigned char *test_core_mult3sntrup1277_h2; static void *storage_core_mult3sntrup1277_n2; static unsigned char *test_core_mult3sntrup1277_n2; static void *storage_core_mult3sntrup1277_k2; static unsigned char *test_core_mult3sntrup1277_k2; static void *storage_core_mult3sntrup1277_c2; static unsigned char *test_core_mult3sntrup1277_c2; #define precomputed_core_mult3sntrup1277_NUM 4 static const unsigned char precomputed_core_mult3sntrup1277_h[precomputed_core_mult3sntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {0,1,1,0,255,1,255,1,255,0,0,0,1,0,0,255,255,1,0,0,255,255,255,0,255,1,255,1,255,0,255,255,255,255,255,1,255,0,1,1,1,0,1,1,1,255,255,1,255,255,1,255,0,1,1,1,255,0,1,255,1,1,0,255,255,1,1,255,1,255,0,255,255,255,255,255,255,255,255,0,0,1,1,1,1,0,255,1,1,0,0,255,1,1,1,1,1,255,1,1,255,255,255,255,255,0,255,255,1,255,1,1,255,0,0,0,255,0,255,255,1,0,0,0,1,0,255,1,0,1,1,255,0,1,0,255,255,255,1,0,0,1,1,1,1,0,1,1,255,0,0,1,0,255,1,0,1,255,255,255,255,0,0,0,0,255,1,0,1,1,255,255,0,255,255,0,1,1,255,0,0,255,255,0,0,1,1,255,1,255,255,0,255,1,255,1,1,255,0,0,255,1,0,1,1,1,255,255,1,255,1,0,255,1,1,0,1,255,0,0,1,1,255,0,1,0,1,255,0,255,255,1,1,1,0,255,255,0,255,0,255,255,0,255,1,0,0,255,1,255,0,1,1,255,0,0,0,0,255,1,255,255,1,255,1,0,0,255,255,1,255,1,255,255,1,255,0,0,0,1,1,0,1,1,1,1,255,0,1,255,1,0,1,0,0,0,0,0,0,1,1,1,255,1,1,1,1,0,255,1,1,0,255,0,0,255,1,1,255,255,0,0,0,255,255,1,1,0,0,0,1,255,1,1,255,255,1,1,1,0,255,255,0,255,0,255,1,255,0,255,0,255,255,255,255,0,0,255,1,0,1,255,0,0,1,0,1,1,1,0,255,0,1,1,255,1,1,0,255,255,255,255,255,255,0,255,0,255,0,255,255,255,1,255,0,1,1,255,1,1,1,1,0,0,0,255,255,0,1,255,1,255,255,1,1,0,255,1,0,1,0,0,1,255,1,1,0,255,0,0,255,255,1,1,0,1,1,0,255,255,0,1,1,1,1,255,255,255,0,0,0,1,255,255,0,0,1,1,1,1,255,255,255,1,255,0,1,0,255,0,1,1,255,0,255,1,0,255,0,1,255,0,0,0,1,255,0,255,255,255,255,0,1,255,0,1,0,255,255,1,0,1,0,1,0,255,1,255,0,1,1,1,1,0,255,0,0,0,1,255,255,1,1,255,1,255,255,255,255,255,1,1,0,0,1,255,1,1,0,1,255,255,1,1,0,1,1,0,0,1,255,255,0,255,255,0,255,0,1,1,1,0,255,0,255,255,1,1,0,1,0,1,1,1,255,255,0,1,1,255,1,0,255,0,1,0,0,255,255,255,255,0,255,255,0,0,0,255,0,1,1,0,1,0,1,255,0,1,0,255,255,0,255,1,255,255,1,255,0,255,255,255,255,1,1,255,255,0,1,255,0,255,0,0,255,1,0,1,0,255,0,255,0,1,0,255,1,0,255,1,0,0,255,1,255,255,1,0,1,255,255,255,255,1,255,1,255,1,0,0,255,1,1,0,0,0,1,1,1,1,255,0,1,1,0,0,1,255,1,0,255,0,255,0,0,1,255,1,1,255,255,255,255,0,0,1,0,255,255,255,1,1,0,255,255,255,1,1,0,255,255,0,0,1,255,255,255,1,1,1,0,0,1,255,1,255,0,1,1,1,0,1,0,1,1,1,0,255,255,0,255,0,1,0,1,255,255,0,1,1,0,1,1,0,0,1,1,0,0,1,255,0,1,255,0,1,255,0,1,255,255,1,0,1,1,1,0,0,0,1,1,1,1,1,0,1,255,0,1,1,255,255,1,0,0,255,1,0,1,1,1,255,1,1,0,0,1,255,255,1,1,255,0,255,255,255,0,255,255,255,0,0,255,0,255,1,1,1,255,0,255,1,1,0,0,1,1,0,1,255,255,255,1,255,255,1,255,255,0,1,0,0,1,0,255,1,255,255,1,1,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,1,1,255,1,255,1,0,1,255,1,255,1,0,255,0,255,255,1,0,255,1,255,1,255,255,0,1,255,0,0,255,255,0,255,255,0,1,1,1,255,1,1,255,0,255,0,1,255,0,255,255,1,1,1,1,255,1,1,255,1,255,255,0,1,0,255,255,0,255,1,255,1,255,255,255,255,1,1,1,0,0,0,0,1,255,0,1,0,1,0,1,0,0,1,1,0,255,0,1,255,0,1,0,255,1,1,1,1,1,1,0,1,1,1,1,0,255,1,1,0,0,1,0,1,1,255,0,0,255,255,0,0,1,1,0,1,255,255,0,255,0,255,1,255,255,0,255,1,255,255,0,0,255,1,255,0,0,0,255,255,255,0,1,255,1,255,255,0,0,255,0,255,1,1,255,0,255,1,0,0,0,1,1,0,255,1,255,1,255,0,255,0,1,1,0,255,1,255,1,255,0,0,255,1,0,255,1,255,255,255,1,0,0,0,0,255,0,0,255,1,0,255,0,0,0,1,1,255,255,1,0,255,255,1,0,1,1,0,255,1,255,255,0,0,255,0,1,1,1,255,0,0,255,1,0,255,255,0,255,0,1,0,1,255,1,1,1,1,0,0,1,0,1,0,1,255,255,1,255,0,1,0,255,1,0,0,0,0,0,255,1,1,1,0,255,255,0,0,0,1,1,0,255,255,0,1,255,1,1,1,0,255,255,255,255,0,255,255,255,0,0,0,0,255,255,1,0,255,255,1,1,255,1,255,0,0,0,1,1,0,1,0,1,1,0,255,255,255,0,255,255,0,0,1,1,1,255,0,1,1,255,255,0,0,255,0,255,1,255,0,255,255,255,255,0,0,0,255,0,0,255,1,255,0,1,0,0,255,255,0,0,1}, {1,0,0,0,255,0,0,1,255,1,255,1,0,0,0,1,255,1,0,1,1,0,0,1,255,0,1,255,0,1,255,255,0,0,255,0,0,0,0,255,255,1,255,1,255,0,1,255,1,0,0,1,1,1,255,1,255,0,0,255,1,0,1,1,255,1,255,255,255,255,0,0,255,0,255,1,1,1,1,0,1,0,1,0,255,1,0,255,1,255,0,1,1,0,1,0,1,255,1,0,1,255,255,1,0,255,255,0,1,255,0,1,0,255,0,1,1,255,0,255,1,255,255,0,1,255,255,0,1,1,1,0,1,1,1,0,0,255,1,0,255,255,255,0,0,0,1,255,1,0,1,255,0,1,255,0,1,1,1,255,0,1,1,0,0,255,1,255,1,255,0,1,1,255,255,1,0,0,0,0,255,1,0,1,0,255,255,1,1,255,0,1,1,1,255,0,255,1,0,255,1,0,0,255,1,255,255,0,255,1,1,1,0,255,1,255,1,0,1,1,255,1,1,1,255,1,0,255,0,0,0,255,0,255,0,255,1,1,255,255,255,1,0,1,1,0,255,255,1,255,255,0,1,0,1,255,255,0,0,1,0,0,255,0,0,0,0,0,0,255,255,0,0,1,255,0,255,0,0,1,255,255,1,255,255,255,1,255,1,1,0,1,1,1,1,1,1,255,255,0,0,255,1,255,1,1,255,255,0,0,255,0,1,1,1,0,0,1,1,0,255,0,1,1,0,255,255,255,0,1,255,0,1,255,0,1,1,0,1,1,1,1,255,0,255,0,1,255,0,0,255,0,0,0,255,255,1,0,1,0,1,255,255,0,255,1,0,1,1,1,255,255,1,255,255,1,255,255,1,1,255,1,255,0,0,0,255,255,0,1,255,0,0,255,255,255,1,255,255,0,0,0,1,0,255,0,1,1,1,1,255,255,0,1,1,0,255,1,0,0,1,1,255,0,0,0,255,1,255,255,1,255,0,1,255,255,1,0,0,0,0,255,255,255,0,255,255,0,0,1,0,0,255,255,1,1,255,255,0,255,255,255,255,1,255,1,255,255,1,255,255,0,255,1,1,0,1,255,0,1,0,255,0,255,0,1,0,255,1,0,1,255,255,0,0,1,255,255,1,0,1,255,1,1,255,255,255,0,255,1,1,255,255,0,1,1,1,0,1,0,1,255,255,0,1,0,255,0,1,0,1,255,1,0,255,0,255,0,255,0,1,255,255,0,0,1,255,255,0,255,0,0,0,255,1,255,255,1,255,0,255,0,255,1,0,1,0,1,1,1,0,255,1,0,1,0,0,255,255,1,0,0,0,0,255,1,255,0,255,255,255,1,255,1,1,255,0,255,1,0,255,0,255,0,1,1,1,0,0,255,255,1,0,0,0,1,0,255,0,0,255,0,1,0,255,255,0,0,0,0,0,255,1,255,1,0,0,1,0,1,255,1,255,255,255,0,255,0,255,1,0,255,0,1,1,255,255,255,255,255,0,0,1,1,1,255,255,0,255,255,255,0,1,0,0,0,255,1,1,0,255,255,255,1,0,255,0,1,0,0,1,0,1,0,0,1,255,255,0,255,255,1,1,0,0,255,1,1,255,0,0,255,0,1,1,1,255,255,255,1,0,255,255,0,0,0,0,1,255,255,1,1,255,1,255,1,0,0,255,255,1,0,1,255,1,1,255,1,0,0,255,1,255,0,0,1,0,1,1,1,0,255,1,1,255,1,255,0,0,0,1,0,255,1,255,1,255,255,255,1,0,1,0,1,1,255,255,1,255,255,0,255,255,0,0,255,255,255,1,255,255,0,0,1,255,0,1,1,255,1,255,255,0,1,255,0,1,255,255,1,0,0,255,255,0,255,255,1,0,0,255,0,1,0,255,0,1,255,1,1,0,0,255,1,1,255,1,0,0,0,0,255,0,255,0,0,1,255,255,1,0,0,1,0,0,0,0,1,255,255,0,1,0,0,0,0,1,255,255,255,0,1,1,255,1,0,255,255,0,1,1,1,255,0,0,255,0,255,0,1,0,0,0,255,0,255,255,255,1,0,0,255,0,0,255,1,1,1,255,0,0,0,255,0,255,0,255,1,255,255,255,255,255,1,255,255,0,255,1,1,255,255,0,255,255,0,1,1,1,255,0,0,0,255,255,0,255,255,255,0,1,0,0,255,0,1,1,0,255,1,255,1,1,1,1,1,255,0,0,0,1,1,255,0,0,0,1,255,1,0,0,1,255,255,0,0,255,255,0,255,0,0,255,1,255,1,0,255,255,1,1,0,1,255,255,0,1,0,0,255,255,255,1,0,0,1,255,255,0,1,0,0,0,1,255,255,255,1,1,255,0,255,1,255,0,255,0,255,1,255,255,255,0,1,1,0,0,0,255,0,255,0,255,1,255,0,1,0,255,0,255,1,255,1,255,255,1,1,0,255,1,1,1,255,0,255,1,255,0,255,255,255,1,0,255,0,0,255,0,1,255,255,0,255,0,255,1,1,0,0,1,0,1,0,255,0,255,0,255,1,0,255,0,0,255,255,1,0,255,255,255,255,255,0,1,1,255,1,0,1,1,1,255,1,255,255,0,0,0,1,0,255,0,1,255,1,0,0,255,1,0,1,1,255,1,0,255,255,0,0,255,0,255,1,0,1,0,255,255,255,0,0,255,1,0,255,0,0,255,1,0,1,255,255,0,0,0,255,255,1,0,0,255,255,255,1,255,255,1,255,1,0,255,0,255,1,1,255,255,255,1,0,0,1,1,1,255,255,0,255,255,1,1,255,1,255,1,0,0,1,0,255,255,255,255,255,255,255,1,1,0,1,1,1,0,255,1,255,0,255,0,1,1,0,1,255,255,1,1,1,0,1,1,255,255,1,0}, {255,1,0,0,0,0,255,255,255,1,1,255,0,255,255,255,0,1,255,255,255,255,255,255,255,0,1,1,255,1,0,1,1,1,0,0,255,1,255,1,0,0,0,1,0,1,255,1,255,255,255,0,0,1,1,1,0,0,1,1,0,1,255,0,1,255,255,255,255,255,1,1,255,255,255,0,1,1,0,0,0,1,1,0,1,0,1,0,0,255,255,1,0,0,0,0,0,1,0,1,0,0,0,255,0,255,1,1,1,255,255,255,255,1,0,1,1,1,255,1,255,0,0,0,255,255,1,255,1,0,1,255,255,255,1,1,1,255,1,255,0,0,255,255,1,1,0,1,0,0,255,0,255,0,255,255,255,0,1,1,0,0,0,0,0,1,1,0,1,255,1,0,1,1,255,1,1,0,0,1,1,255,0,255,255,0,0,1,1,1,255,0,255,255,1,0,255,1,0,255,255,255,1,255,1,0,255,255,0,1,1,255,0,0,0,0,1,255,1,255,1,1,1,255,255,1,0,0,1,0,0,1,1,1,255,255,0,255,255,255,1,0,1,0,1,255,255,1,1,1,1,1,0,0,1,255,1,0,1,0,255,1,1,1,255,255,255,255,1,1,255,255,255,255,0,0,255,0,255,1,1,255,1,1,0,0,1,0,255,1,0,0,0,0,1,1,1,0,0,255,1,1,255,255,255,255,0,255,1,255,255,0,0,0,1,255,255,1,255,255,1,1,0,0,0,0,0,255,0,255,255,0,255,255,255,1,255,1,255,1,255,0,255,1,255,255,0,255,255,1,1,0,1,0,0,1,0,0,0,0,1,255,0,255,255,0,1,1,1,255,255,0,255,1,255,1,1,1,1,0,0,1,255,255,255,255,1,255,1,0,255,1,1,255,1,255,1,1,0,255,0,1,255,0,0,0,0,0,255,0,0,0,0,255,0,0,255,0,0,255,0,255,0,0,255,255,1,0,255,0,255,1,1,1,1,0,255,255,0,255,255,1,1,1,0,0,0,1,1,1,1,0,1,1,255,255,0,255,255,0,0,1,0,255,0,255,1,255,255,0,1,255,0,0,1,1,1,0,1,1,0,255,0,1,1,0,0,1,0,1,255,0,0,1,255,255,255,0,255,1,255,1,255,0,255,1,1,255,0,0,255,0,0,255,1,255,1,255,255,255,0,255,0,1,255,255,1,1,255,1,0,1,0,255,0,0,255,255,255,0,0,255,255,255,0,1,255,0,255,1,0,0,255,1,255,255,0,255,0,255,1,0,1,0,255,0,1,0,1,255,0,255,255,0,0,0,1,1,1,0,1,255,0,0,255,1,255,1,0,1,255,1,255,0,255,1,1,1,0,255,1,255,0,255,255,1,0,1,1,255,255,1,255,1,1,0,255,0,1,255,1,0,1,255,255,0,1,0,0,0,255,1,1,0,255,0,1,255,1,1,255,1,1,1,0,0,0,0,1,255,0,1,255,0,255,1,255,1,255,0,1,255,1,1,255,0,1,255,1,0,1,255,1,1,0,1,255,1,1,0,1,0,1,255,0,0,255,0,0,1,0,1,255,1,255,255,1,0,1,0,255,1,255,1,1,255,0,255,0,1,0,0,1,1,1,1,255,1,1,0,255,255,0,0,255,1,255,255,255,0,0,0,1,1,0,0,0,255,0,255,255,255,255,0,1,0,1,1,0,1,1,255,1,0,255,1,0,0,255,255,0,1,255,255,0,1,255,0,0,255,0,1,255,255,0,1,1,1,255,255,255,1,1,1,1,255,1,255,0,1,0,0,1,255,1,1,1,0,1,255,1,0,0,0,1,0,255,0,0,0,255,255,1,1,1,255,1,255,0,0,255,0,255,0,0,1,0,255,0,1,255,0,1,1,255,1,0,1,1,1,255,1,1,255,255,0,255,255,1,255,255,0,255,255,0,1,1,255,1,255,255,255,1,0,0,255,255,255,0,255,1,1,255,255,0,0,255,1,0,255,0,0,255,0,1,255,1,255,1,255,0,255,0,255,1,1,255,1,1,255,255,255,0,0,1,255,255,255,1,0,0,0,255,0,1,0,255,1,1,1,255,1,1,255,255,255,255,0,0,255,1,1,1,1,255,0,1,1,1,1,255,0,0,0,0,0,255,0,1,1,1,0,0,255,255,0,1,0,255,1,1,0,0,255,1,255,255,255,0,255,1,1,0,255,0,0,255,1,1,255,1,255,1,0,1,0,1,255,0,0,0,1,255,0,255,0,1,1,1,255,0,0,255,0,255,0,255,1,0,255,0,1,255,1,255,0,1,0,255,255,1,255,1,0,0,1,0,0,0,255,255,1,0,0,1,255,1,1,1,255,255,255,255,1,0,0,255,0,255,255,255,0,255,0,1,0,0,0,255,0,0,255,1,1,0,255,0,255,0,1,1,255,0,1,0,255,0,0,0,1,0,1,1,0,1,255,1,255,255,1,255,0,0,255,0,0,0,255,0,0,1,0,255,1,0,1,255,1,0,1,1,0,1,255,1,1,1,255,255,255,255,1,255,255,255,0,0,0,255,0,1,0,0,0,0,255,255,255,0,1,255,0,1,1,1,0,1,255,255,1,1,1,0,255,255,255,255,0,0,255,0,1,1,255,1,255,1,1,0,0,0,1,1,255,255,255,0,1,0,0,1,1,255,255,0,255,0,0,255,0,1,1,255,1,1,1,255,0,0,1,1,0,255,255,255,255,255,255,1,0,0,1,255,255,255,255,1,255,1,1,0,255,1,0,1,1,255,0,255,1,255,255,0,1,1,1,255,1,0,1,255,1,255,1,1,255,255,1,255,255,1,255,1,1,1,0,255,0,0,1,1,0,255,0,0,255,1,0,255,0,1,0,255,255,255,0,255}, {0,0,0,0,1,0,255,1,1,1,0,1,255,0,1,0,255,1,0,255,255,1,1,0,1,1,255,255,0,255,1,255,0,0,0,1,1,255,1,0,1,1,255,255,0,255,0,0,1,255,255,0,0,255,1,1,0,0,255,255,1,255,255,0,1,1,0,255,255,255,255,255,0,0,255,0,1,0,0,255,1,255,0,255,255,0,1,1,255,1,0,1,255,1,0,255,1,1,0,0,1,255,0,1,0,0,0,0,1,255,0,0,0,0,0,1,1,1,1,255,0,1,1,1,255,1,1,1,255,1,0,1,0,1,0,1,0,0,255,255,255,0,255,255,1,1,255,1,1,1,0,1,1,0,0,255,1,255,255,255,1,1,255,0,255,255,255,255,1,1,255,1,0,1,1,255,1,1,0,0,0,255,255,1,1,1,1,255,1,1,1,255,255,255,1,0,255,1,0,1,1,0,1,0,0,0,255,1,1,0,255,1,255,255,0,0,1,0,1,255,255,0,1,0,0,0,255,0,255,1,1,1,255,255,0,1,255,1,1,255,255,0,1,255,1,1,0,255,255,1,1,1,255,1,255,0,0,255,0,1,0,0,0,0,0,255,0,1,1,1,0,0,0,255,0,1,255,255,1,1,0,0,0,255,255,255,255,255,0,255,1,255,1,0,255,255,1,1,1,1,255,255,1,1,255,255,1,0,0,255,0,255,255,0,255,0,255,255,1,1,0,1,0,1,0,1,0,255,255,0,0,255,255,0,1,255,255,1,255,1,255,255,0,1,1,0,1,1,1,1,1,255,255,1,1,1,1,0,0,1,255,1,255,0,255,1,1,255,1,1,1,0,0,0,0,255,0,1,255,0,1,1,1,1,255,1,1,0,0,0,255,1,1,1,0,0,0,255,1,255,1,1,0,1,0,255,0,255,0,0,255,1,0,0,1,1,1,0,1,255,255,0,1,1,0,0,0,0,1,1,1,255,255,255,0,1,0,255,0,0,0,1,0,0,255,0,1,255,1,0,255,0,255,0,0,1,1,1,0,255,255,1,255,1,1,0,255,0,255,255,0,0,255,255,1,0,0,0,0,1,1,255,0,255,255,1,0,255,255,1,255,0,1,255,0,255,255,0,1,1,1,0,0,0,255,0,255,255,0,0,1,255,0,1,255,255,1,1,0,1,0,1,1,0,255,1,0,1,1,255,1,255,255,255,255,1,255,255,1,1,255,0,255,255,1,255,0,0,1,0,0,0,255,255,0,255,1,255,255,1,1,0,0,0,255,1,0,255,255,1,0,0,0,1,0,0,1,255,0,1,0,255,0,1,255,0,0,1,255,0,1,1,0,255,255,255,255,1,1,0,1,255,0,1,255,0,0,1,0,0,0,0,0,1,255,0,1,0,255,1,1,0,0,255,1,1,1,0,255,0,1,1,1,255,0,255,1,0,255,0,1,1,1,255,1,0,0,0,1,255,0,1,0,1,1,0,1,255,0,255,1,1,0,255,0,0,1,1,0,255,1,1,0,255,0,255,0,1,1,0,0,1,1,0,1,1,0,1,0,0,1,255,0,1,1,1,0,1,255,1,255,1,255,255,255,1,0,0,255,1,255,0,255,1,0,0,255,255,1,1,1,1,255,255,255,1,255,255,1,1,0,255,255,1,0,0,0,255,1,1,1,1,255,255,1,255,1,0,1,255,255,1,1,255,0,0,1,1,1,0,1,255,1,0,0,255,1,255,0,1,1,0,0,0,255,0,255,0,255,255,255,1,0,1,0,0,0,255,1,0,0,255,255,0,0,255,1,255,0,0,1,1,0,1,1,1,255,0,1,0,255,1,0,1,0,255,1,255,255,1,0,255,255,1,0,255,1,255,255,0,0,255,1,0,0,255,0,255,255,0,255,1,1,0,1,255,255,1,0,255,1,1,0,0,255,0,255,1,1,0,255,255,1,0,0,255,255,1,0,1,1,0,0,255,255,255,0,1,1,0,255,255,255,0,1,1,1,255,255,255,0,0,255,255,1,0,255,255,1,1,1,255,1,1,0,0,1,0,0,1,0,1,1,255,0,1,1,0,1,1,255,0,255,255,255,1,0,255,0,0,0,1,1,0,1,1,255,255,255,255,255,255,1,255,1,0,0,255,1,1,0,255,0,1,255,1,1,255,255,1,1,255,1,0,255,255,255,1,255,255,0,0,1,1,1,1,1,255,255,1,255,255,1,1,255,255,0,255,0,1,255,255,0,255,0,0,1,255,1,1,255,1,0,0,0,1,0,0,1,255,255,1,0,255,1,255,255,0,1,1,1,0,0,0,255,255,0,0,255,0,1,255,1,1,0,0,255,0,1,1,255,1,0,0,255,0,255,255,1,0,0,255,255,255,0,1,0,255,0,1,1,1,1,1,255,1,1,0,1,1,255,1,0,0,1,0,255,255,255,0,255,255,0,1,255,0,255,1,255,0,255,1,0,255,255,1,255,1,1,0,255,1,0,0,0,0,255,0,255,0,0,1,1,255,255,255,255,0,1,0,255,255,255,0,0,1,1,0,0,1,255,0,0,1,1,255,1,1,255,1,255,1,255,255,0,0,0,1,0,1,1,1,255,1,1,255,0,1,0,0,0,1,255,255,1,0,1,1,255,255,0,0,0,255,1,1,0,255,255,1,0,255,0,1,1,255,1,0,1,255,255,255,255,0,0,0,1,1,1,1,255,255,1,255,1,1,1,1,1,0,255,1,1,1,0,0,1,0,1,1,1,0,0,1,0,255,1,255,1,0,255,255,255,255,255,1,1,0,255,0,0,0,1,0,0,0,255,1,1,1,255,255,255,1,0,255,255,0,1,1,0,255,0,0,1,255,0,0,1,255,1,0,255,255,0,1,255}, } ; static const unsigned char precomputed_core_mult3sntrup1277_n[precomputed_core_mult3sntrup1277_NUM][crypto_core_INPUTBYTES] = { {-1,1,0,1,0,0,1,0,0,1,0,1,1,0,-1,0,0,-1,-1,-1,1,1,0,1,0,-1,1,-1,0,-1,0,-1,0,0,-1,-1,1,-1,-1,-1,-1,0,0,1,0,0,0,-1,0,0,0,0,-1,1,0,1,0,1,0,-1,0,0,0,-1,1,0,0,0,0,0,0,1,-1,0,1,0,-1,0,-1,-1,0,1,1,0,0,-1,-1,-1,-1,-1,0,0,0,1,0,1,0,1,0,0,-1,1,0,1,0,1,1,1,1,0,0,-1,0,0,1,-1,-1,-1,0,1,0,0,1,-1,0,1,1,0,-1,0,1,0,-1,0,-1,0,-1,1,0,-1,1,0,1,1,0,0,-1,0,0,0,0,0,0,1,0,0,-1,-1,0,-1,1,0,0,-1,0,1,0,-1,0,0,0,-1,1,0,0,0,-1,1,0,0,1,-1,-1,0,0,0,0,0,0,0,0,1,-1,0,-1,0,1,1,0,0,0,0,1,0,0,-1,0,0,0,0,-1,0,1,1,-1,-1,1,1,0,0,1,0,1,1,0,0,1,-1,-1,1,1,0,-1,1,-1,-1,1,-1,0,1,0,0,-1,0,0,-1,0,1,-1,1,1,0,0,1,0,0,0,0,-1,1,0,0,0,0,-1,-1,1,-1,-1,0,1,0,1,0,0,-1,0,-1,0,-1,0,0,0,0,0,-1,1,-1,0,1,0,0,0,0,1,-1,0,0,1,1,0,-1,-1,-1,0,0,0,0,0,1,0,-1,0,0,1,-1,-1,-1,1,0,1,-1,0,0,0,1,0,-1,0,0,0,0,0,0,1,-1,-1,0,-1,0,-1,1,0,1,1,1,-1,0,1,0,1,-1,0,1,-1,1,1,0,-1,0,1,0,-1,1,1,1,0,0,-1,-1,0,-1,0,-1,-1,0,-1,0,1,1,1,0,0,0,0,0,0,1,1,0,0,0,-1,-1,0,0,1,0,-1,1,-1,0,-1,1,-1,1,1,0,-1,1,0,0,-1,0,0,0,1,0,0,0,-1,-1,0,0,1,1,1,0,1,-1,-1,-1,0,-1,0,-1,1,-1,1,0,1,0,0,-1,1,1,-1,0,0,0,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,-1,1,-1,0,0,-1,0,-1,-1,1,1,1,0,1,-1,1,-1,-1,-1,0,0,0,-1,1,0,-1,0,0,1,0,0,0,0,-1,0,0,1,0,0,0,0,0,0,1,-1,-1,1,1,0,0,1,0,0,0,-1,0,0,0,0,0,-1,1,-1,0,1,0,0,0,0,1,0,0,0,1,0,0,1,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,-1,-1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,-1,-1,-1,0,0,-1,0,-1,0,0,-1,0,1,-1,0,-1,-1,-1,0,-1,-1,-1,-1,0,-1,0,-1,0,0,1,-1,-1,1,0,-1,1,1,1,0,1,0,-1,-1,0,-1,0,1,0,0,0,0,-1,0,0,1,0,0,0,-1,-1,-1,0,0,1,-1,0,0,-1,-1,0,1,0,-1,1,-1,0,1,1,-1,-1,1,0,1,0,1,0,1,0,1,-1,0,0,1,0,0,0,0,0,0,0,-1,0,0,1,1,0,-1,-1,0,0,1,-1,-1,0,1,1,0,-1,0,1,-1,0,-1,0,0,0,1,0,1,-1,0,1,-1,-1,0,1,0,0,1,1,0,1,-1,1,0,-1,-1,-1,1,1,0,0,-1,0,0,1,0,0,0,-1,0,-1,1,-1,0,-1,1,-1,1,0,-1,0,-1,0,-1,0,0,0,0,0,1,-1,0,0,0,1,0,-1,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,1,1,0,0,0,0,-1,1,-1,1,-1,-1,0,-1,0,0,-1,-1,0,0,-1,0,0,1,-1,0,0,0,0,1,0,-1,1,1,-1,0,0,0,0,0,-1,1,0,0,0,-1,0,-1,1,-1,0,0,1,0,1,1,1,0,0,0,0,0,-1,0,0,1,-1,1,0,-1,0,0,0,0,1,1,1,-1,0,-1,0,0,0,-1,0,1,1,0,0,0,-1,1,0,0,1,1,0,0,1,-1,1,-1,1,0,-1,-1,0,0,0,-1,0,0,0,0,0,-1,0,-1,0,-1,0,1,-1,1,-1,1,1,0,0,-1,0,0,-1,1,0,0,1,0,1,0,-1,0,-1,0,0,-1,1,0,1,1,0,-1,0,0,-1,0,-1,1,-1,-1,-1,0,0,0,0,-1,-1,0,0,0,-1,1,0,1,0,0,1,1,0,-1,1,0,1,0,0,0,0,-1,-1,0,0,1,1,0,-1,0,0,-1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,-1,0,0,1,1,-1,1,-1,-1,1,0,-1,1,0,1,0,-1,0,0,0,0,0,0,1,0,0,0,-1,0,0,0,0,1,1,0,0,-1,0,0,0,-1,0,0,1,0,-1,-1,1,0,-1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,-1,1,0,-1,-1,0,1,1,-1,1,0,-1,-1,0,1,1,1,-1,0,1,0,0,1,-1,0,0,0,1,-1,1,0,-1,0,-1,1,0,-1,-1,1,-1,1,0,-1,-1,-1,1,0,0,-1,0,0,1,0,0,-1,0,1,1,-1,-1,-1,-1,-1,0,0,1,0,0,-1,0,0,-1,0,-1,0,-1,0,-1,-1,1,-1,1,0,-1,0,0,0,0,0,-1,0,0,1,-1,0,0,0,0,0,0,1,1,0,-1,1,0,0,-1,1,0,1,1,-1,0,0,0,0,-1,0,-1,0,1,0,1,0,-1,-1,1,-1,0,1,0,0,0,-1,1,-1,1,-1,0,0,1,-1,0,0,0,0,0,0,0,0,-1,0,0,-1,0,-1,0,0,0,-1,-1,0,1,1,0,1,-1,1,0,1,-1,0,1,-1,-1,1,-1,0,0,1,0,0,1,1,-1,-1,0,0,0,1,1,0,1,-1,1,1,-1,1,-1,0,-1,0}, {-1,-1,1,0,-1,1,0,1,0,1,1,0,0,0,-1,0,-1,1,0,1,0,0,-1,-1,0,0,0,1,-1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,-1,-1,-1,-1,1,-1,1,-1,1,0,0,1,0,-1,1,0,0,0,0,-1,-1,-1,1,0,-1,-1,0,-1,0,0,1,-1,0,-1,-1,1,-1,1,0,1,0,1,0,-1,-1,0,-1,1,-1,-1,1,-1,0,-1,0,1,0,0,1,0,-1,-1,0,0,1,0,0,0,1,0,1,-1,0,1,-1,0,0,1,0,-1,-1,-1,-1,0,0,0,-1,0,1,1,1,-1,1,-1,0,0,0,-1,-1,0,-1,0,0,1,0,0,0,0,1,0,1,-1,0,0,1,0,1,-1,1,0,1,1,0,-1,1,-1,0,1,-1,-1,0,0,-1,1,0,0,0,0,1,0,-1,1,0,0,-1,0,0,-1,0,0,-1,-1,0,0,1,0,1,-1,0,0,0,1,0,-1,0,0,0,0,0,1,-1,0,1,-1,0,0,1,-1,-1,0,-1,0,0,-1,0,-1,-1,0,-1,1,-1,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,-1,0,0,-1,0,0,-1,-1,-1,1,0,-1,0,1,1,-1,-1,-1,0,0,0,-1,0,-1,0,-1,-1,1,-1,0,0,0,0,-1,0,0,0,1,0,1,-1,1,-1,0,1,1,-1,-1,0,-1,0,1,0,0,-1,-1,0,-1,0,0,0,0,0,-1,1,0,-1,0,0,0,0,-1,0,-1,0,-1,1,1,0,-1,-1,0,0,0,0,1,-1,1,1,-1,1,-1,1,-1,0,0,1,0,1,-1,-1,0,0,-1,0,0,0,-1,0,1,-1,0,0,1,0,0,-1,1,1,1,0,0,-1,-1,0,0,1,0,1,0,0,0,0,1,0,0,1,1,1,-1,1,0,-1,0,-1,0,-1,0,0,0,0,0,0,1,1,1,-1,0,1,0,0,-1,-1,1,0,-1,0,0,0,0,0,0,-1,0,1,0,-1,0,0,-1,-1,1,-1,0,0,0,0,1,0,0,0,1,0,0,-1,0,0,-1,0,0,-1,-1,0,0,0,-1,0,0,1,0,-1,-1,-1,1,-1,1,0,0,0,1,-1,1,-1,0,1,-1,0,-1,-1,0,1,-1,0,1,0,1,0,0,0,1,0,0,-1,0,1,0,1,0,1,-1,0,-1,1,0,1,1,-1,1,0,0,0,0,-1,0,-1,1,-1,-1,1,1,1,0,0,0,-1,1,0,-1,1,1,0,0,-1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,-1,-1,-1,0,0,0,-1,0,0,0,1,0,0,0,0,0,1,-1,1,-1,-1,-1,0,1,0,0,1,0,0,1,-1,0,0,0,0,1,0,0,0,1,1,0,0,-1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,-1,0,1,-1,-1,0,-1,0,1,-1,-1,0,0,1,-1,0,0,-1,0,1,-1,-1,-1,0,0,1,0,1,1,-1,0,-1,1,-1,0,0,0,1,0,1,-1,-1,0,1,-1,0,1,0,-1,-1,0,1,0,-1,1,1,0,-1,1,0,-1,0,0,-1,0,0,-1,-1,1,1,0,0,-1,1,0,1,1,0,0,-1,0,0,1,0,-1,1,-1,0,0,0,0,0,0,0,-1,1,0,1,0,1,1,0,1,1,0,0,1,-1,-1,-1,1,1,1,0,-1,-1,0,0,1,-1,0,1,0,0,0,-1,1,0,0,1,0,0,0,0,0,-1,0,-1,0,0,-1,0,-1,1,0,0,0,-1,-1,-1,-1,1,-1,0,0,0,1,-1,1,-1,-1,0,1,0,0,0,0,0,0,0,1,-1,0,0,-1,0,0,0,0,1,0,0,0,-1,0,-1,-1,0,0,-1,1,0,1,0,-1,0,-1,1,0,0,1,-1,0,0,1,0,0,0,0,1,-1,0,0,1,-1,-1,0,-1,0,-1,-1,-1,0,-1,1,0,-1,1,0,1,-1,0,0,0,0,0,-1,1,0,0,1,0,0,0,-1,0,1,0,0,-1,1,0,-1,1,1,0,0,0,-1,1,-1,1,0,0,-1,-1,-1,0,0,0,0,1,-1,1,0,0,0,1,0,0,1,0,0,1,-1,1,-1,0,0,0,0,0,0,0,-1,0,0,1,1,1,0,0,0,0,1,0,1,0,-1,1,0,0,0,0,-1,-1,1,0,1,0,0,0,0,0,0,-1,1,0,0,-1,0,0,1,-1,-1,0,0,1,0,1,0,0,-1,1,1,0,1,0,0,1,-1,0,1,0,0,0,1,0,-1,-1,1,-1,0,0,-1,0,-1,0,0,1,-1,-1,0,1,0,0,1,1,-1,0,0,1,1,1,0,0,0,1,1,-1,0,-1,1,0,0,0,0,-1,-1,0,-1,0,-1,-1,1,-1,1,0,1,-1,0,0,1,1,1,-1,0,0,0,0,-1,0,1,0,-1,1,1,1,0,0,0,1,0,1,-1,0,0,0,0,0,0,0,-1,1,1,0,0,1,-1,-1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,-1,-1,1,0,1,1,-1,-1,0,-1,0,1,0,0,0,1,1,-1,0,0,0,1,1,-1,0,1,0,1,-1,0,-1,1,0,1,0,-1,0,1,0,0,0,0,0,1,0,1,1,-1,1,-1,-1,0,1,1,0,1,0,1,0,0,-1,0,-1,-1,-1,0,1,0,-1,0,0,1,0,1,1,0,0,-1,0,1,0,0,1,-1,0,0,-1,-1,-1,-1,-1,1,0,0,0,-1,1,0,0,1,0,-1,1,0,-1,0,1,0,0,0,0,1,0,0,0,1,0,-1,1,1,-1,0,1,0,0,0,1,0,-1,-1,1,0,-1,0,1,0,0,-1,0,1,0,1,-1,0,1,0,1,0,-1,0,-1,-1,1,1,-1,0,0,-1,0,1,-1,-1,-1,-1,0,-1,0,-1,0,1,1,1,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,1,-1,1,-1,0,0,0,0,1,0,0,0,1}, {0,-1,-1,-1,-1,1,0,1,1,0,0,0,0,0,-1,1,0,-1,0,1,0,1,-1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,0,0,0,0,1,0,0,-1,0,1,0,0,0,0,0,1,0,1,-1,-1,1,0,1,0,0,1,1,0,0,0,0,1,0,-1,0,0,0,-1,0,0,-1,1,1,0,1,-1,1,-1,1,1,0,0,-1,-1,1,-1,0,1,0,0,0,1,0,-1,-1,1,0,0,0,0,0,0,1,1,1,-1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,1,-1,-1,-1,-1,0,0,1,1,0,1,0,1,1,1,1,1,-1,-1,0,0,1,1,-1,-1,-1,0,-1,0,0,0,1,1,1,0,0,-1,0,0,0,0,-1,-1,0,0,-1,1,-1,1,-1,1,1,0,0,0,1,1,1,-1,1,1,1,-1,0,-1,1,0,1,0,-1,0,-1,0,-1,0,0,0,0,1,1,0,0,0,-1,-1,0,-1,1,0,0,0,1,1,0,1,-1,0,0,-1,-1,0,0,0,-1,0,0,-1,0,-1,-1,1,0,-1,1,-1,0,0,1,0,-1,0,0,1,0,0,0,1,0,0,1,1,1,-1,0,0,1,0,-1,-1,0,0,0,0,1,0,1,0,-1,0,1,0,0,1,-1,0,-1,1,-1,0,0,1,-1,-1,1,1,0,0,0,-1,-1,-1,0,0,0,1,0,-1,0,-1,0,1,1,0,0,0,0,-1,0,1,0,0,0,0,1,0,1,-1,1,0,1,0,-1,0,-1,-1,0,0,-1,0,1,1,-1,-1,1,0,-1,0,0,0,-1,1,-1,-1,1,-1,0,0,0,0,0,1,1,1,0,-1,0,1,0,0,0,-1,1,-1,1,0,0,0,0,0,1,0,1,-1,1,0,-1,1,0,0,1,-1,1,0,0,0,-1,0,0,0,1,1,1,-1,0,0,0,0,0,0,1,0,-1,1,0,-1,0,-1,0,0,-1,1,0,0,0,-1,1,1,0,0,0,1,0,1,0,0,-1,0,-1,0,0,0,1,1,1,-1,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,-1,0,0,1,0,0,1,0,1,1,-1,1,0,0,-1,-1,-1,-1,-1,1,0,1,1,1,-1,1,-1,0,-1,0,0,0,1,1,1,-1,1,0,0,1,0,0,-1,0,0,0,-1,0,-1,0,0,-1,0,0,1,0,-1,0,-1,0,1,-1,-1,0,0,1,0,0,0,-1,0,1,0,1,-1,0,1,1,-1,0,0,-1,0,0,0,0,0,1,1,1,0,0,0,0,-1,1,0,1,1,1,0,0,-1,0,1,-1,-1,-1,0,0,0,-1,1,-1,1,0,0,-1,1,0,0,1,-1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,-1,1,-1,1,-1,1,1,-1,1,0,1,0,0,0,-1,1,0,-1,0,0,0,0,-1,0,1,0,-1,0,-1,-1,-1,0,1,1,0,-1,1,0,-1,1,0,1,1,-1,0,1,-1,0,0,0,0,-1,1,0,0,1,0,0,-1,0,1,0,1,0,-1,1,0,0,0,0,0,1,0,0,-1,0,-1,0,1,0,0,0,-1,1,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,-1,0,1,-1,-1,0,1,0,1,0,0,1,0,1,0,0,1,1,0,0,-1,0,1,0,-1,-1,0,-1,-1,0,-1,0,-1,0,1,0,-1,1,1,-1,0,0,1,-1,0,0,1,0,-1,-1,-1,-1,0,0,0,1,0,-1,0,-1,1,-1,0,0,0,-1,1,1,1,1,0,1,-1,-1,1,0,1,1,-1,0,-1,0,-1,0,1,0,-1,1,0,-1,0,1,0,0,-1,-1,0,0,0,1,1,-1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,-1,1,1,-1,-1,1,0,0,1,-1,-1,0,0,1,0,1,0,-1,1,0,0,-1,-1,0,0,-1,-1,0,-1,1,0,-1,-1,1,-1,-1,0,0,0,1,-1,0,-1,0,1,0,-1,-1,0,0,1,0,0,0,-1,-1,-1,0,0,0,0,1,0,-1,0,0,0,0,-1,0,1,1,-1,1,1,0,-1,-1,1,-1,-1,0,-1,1,1,0,0,1,0,0,1,-1,0,0,0,1,0,1,-1,-1,0,0,-1,0,-1,-1,0,-1,1,0,0,0,0,-1,0,0,0,-1,1,1,-1,0,0,-1,-1,-1,0,0,1,1,0,1,-1,1,0,0,1,0,0,-1,0,0,-1,1,0,1,1,1,0,0,0,0,0,1,-1,0,0,-1,0,1,-1,0,0,1,-1,-1,1,0,1,1,-1,1,-1,0,-1,1,-1,1,0,1,0,1,1,-1,0,0,-1,0,0,0,0,-1,0,0,1,0,1,1,0,1,1,1,0,0,0,0,0,1,0,-1,0,-1,-1,-1,0,-1,-1,0,1,-1,1,0,0,-1,0,-1,-1,1,0,-1,1,0,-1,-1,0,0,0,0,-1,0,0,0,-1,0,1,0,0,1,0,0,-1,0,0,1,-1,-1,0,0,0,-1,0,-1,1,-1,1,1,-1,-1,1,1,0,0,0,-1,0,0,1,1,0,-1,0,0,1,1,0,-1,1,0,-1,0,0,-1,0,1,-1,-1,-1,1,-1,-1,1,1,0,-1,0,-1,0,0,1,-1,0,1,0,0,0,-1,-1,1,0,-1,0,0,-1,1,0,0,1,1,0,1,1,1,0,1,1,-1,-1,1,-1,1,0,0,0,0,0,-1,0,-1,0,-1,0,-1,-1,0,-1,0,-1,1,-1,0,-1,1,-1,-1,1,0,0,0,0,-1,1,1,0,-1,1,-1,0,0,-1,-1,-1,0,1,0,0,1,-1,-1,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,1,0,1,0,1,0,0,0,-1,0,-1,0,0,-1,1,1,0,-1,-1,1,-1,-1,0,0,1,0,0,-1,-1,-1,1,1,1,-1,1,0,0,1,0,-1,-1,0,0,-1,1,0,-1,1,-1,0,-1,-1,-1,-1,1}, {-1,1,1,1,1,0,1,-1,1,0,-1,0,0,-1,0,-1,1,0,1,-1,0,1,-1,0,1,0,0,0,1,0,-1,-1,0,-1,0,0,-1,1,-1,-1,0,1,0,1,1,-1,0,0,0,0,1,1,0,-1,0,-1,0,1,-1,0,0,0,0,-1,0,1,0,0,0,1,0,0,-1,0,0,1,1,-1,1,0,1,0,-1,0,0,-1,-1,0,0,1,0,1,0,0,0,0,0,-1,1,-1,0,-1,1,-1,0,-1,1,-1,0,-1,-1,0,1,0,0,1,1,1,0,0,0,0,-1,0,0,1,1,0,0,-1,0,1,0,-1,0,-1,0,-1,1,0,1,-1,0,0,1,0,0,-1,1,1,1,-1,0,0,0,0,0,0,-1,1,0,-1,-1,-1,-1,0,-1,0,1,0,-1,1,-1,1,-1,0,0,-1,0,-1,1,0,0,0,-1,0,1,1,-1,0,1,-1,1,1,-1,-1,0,0,0,0,1,-1,0,1,-1,0,-1,1,1,0,-1,1,-1,1,0,0,0,0,0,-1,-1,0,1,0,-1,0,1,0,-1,-1,0,-1,1,1,0,-1,1,0,1,-1,0,0,0,-1,0,1,1,1,0,0,0,0,-1,-1,-1,0,0,0,0,0,-1,1,0,0,1,-1,0,1,0,0,1,1,1,1,0,0,0,0,0,-1,1,0,-1,1,0,-1,-1,-1,0,1,0,1,0,-1,1,0,0,0,-1,-1,0,0,1,-1,0,0,0,0,1,0,-1,-1,0,1,-1,0,1,0,0,1,0,0,-1,0,0,0,1,1,-1,-1,-1,-1,0,-1,0,1,1,0,-1,0,0,1,0,0,0,0,1,0,0,0,-1,0,-1,-1,-1,-1,-1,1,1,-1,-1,0,0,-1,-1,0,-1,0,0,0,-1,-1,0,0,1,0,-1,1,0,-1,0,1,-1,-1,0,1,1,-1,1,0,1,1,-1,1,-1,1,1,0,1,1,-1,0,0,-1,0,0,0,0,1,-1,-1,-1,0,0,-1,0,0,0,-1,0,-1,0,-1,0,0,-1,1,0,0,0,-1,1,0,-1,-1,1,0,1,0,0,0,1,-1,1,1,1,0,1,0,-1,-1,0,1,-1,-1,0,0,0,1,0,1,0,1,0,-1,0,1,0,0,1,1,1,-1,0,1,0,-1,0,0,1,1,0,0,-1,1,-1,0,0,-1,1,-1,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,1,-1,0,0,1,0,1,1,0,1,-1,1,-1,0,1,0,-1,0,-1,-1,0,1,1,-1,0,-1,0,0,0,-1,0,0,-1,0,1,1,1,-1,0,0,0,-1,0,0,0,0,0,0,-1,1,0,0,1,0,-1,1,0,-1,-1,1,1,1,0,-1,1,0,0,0,1,-1,0,1,0,0,-1,0,1,0,0,-1,0,0,1,0,0,-1,0,-1,0,0,-1,0,0,0,0,1,-1,1,0,-1,0,0,-1,1,0,0,0,1,0,0,0,1,0,-1,-1,0,0,0,-1,1,1,-1,0,0,-1,1,0,-1,1,0,-1,0,0,-1,0,0,0,1,1,0,-1,0,1,0,0,0,-1,1,1,0,0,1,1,0,0,-1,0,1,-1,0,-1,-1,0,0,-1,0,0,-1,0,-1,1,1,0,0,-1,0,-1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,-1,1,1,0,0,0,0,0,0,1,-1,0,1,0,0,1,0,-1,0,1,-1,1,0,1,0,0,1,-1,0,0,-1,-1,1,-1,-1,0,0,-1,-1,-1,-1,-1,0,0,-1,0,0,1,0,-1,-1,0,-1,0,-1,0,1,-1,1,1,0,-1,1,0,0,-1,0,0,-1,0,-1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,-1,-1,0,1,0,0,1,-1,0,1,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,-1,0,1,-1,1,-1,1,0,0,1,1,-1,-1,0,1,0,-1,0,0,0,0,-1,0,-1,-1,0,0,-1,1,0,0,0,1,0,-1,0,0,0,-1,-1,0,-1,0,0,1,0,0,-1,0,-1,0,1,-1,1,-1,0,0,1,0,-1,-1,1,0,-1,-1,0,-1,-1,1,-1,-1,0,1,1,0,0,0,0,-1,0,0,0,1,-1,-1,1,1,0,0,0,0,0,0,-1,1,1,0,0,0,-1,-1,0,1,-1,-1,-1,0,1,0,0,-1,-1,1,-1,1,-1,1,-1,-1,1,0,0,-1,0,0,0,1,0,0,-1,1,0,-1,-1,0,1,0,1,1,0,-1,1,0,-1,-1,1,-1,1,0,1,0,-1,1,0,1,1,0,0,-1,0,0,0,0,0,-1,0,0,0,0,-1,-1,0,0,-1,1,-1,1,0,0,0,0,0,0,-1,-1,0,0,0,1,0,0,1,1,0,-1,0,1,-1,-1,-1,-1,0,0,0,-1,1,0,0,1,0,1,1,0,0,0,1,-1,0,1,0,0,1,1,1,-1,0,1,0,0,0,0,0,1,0,1,-1,0,1,1,-1,0,-1,0,1,0,0,1,0,-1,0,0,-1,-1,1,-1,1,0,0,-1,1,0,0,0,-1,1,0,-1,-1,0,-1,0,1,0,1,1,0,-1,0,-1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,-1,0,-1,0,0,1,1,-1,0,1,1,0,1,0,1,-1,1,0,0,-1,0,0,0,-1,0,1,1,1,0,-1,1,0,-1,0,0,0,0,-1,0,1,0,0,0,0,1,0,-1,0,1,0,0,1,0,0,-1,0,-1,1,0,-1,0,0,1,0,0,-1,1,0,1,1,0,1,0,0,-1,-1,0,1,0,0,-1,0,-1,0,1,1,-1,-1,1,0,-1,-1,0,-1,1,0,0,0,0,-1,0,0,1,1,0,0,0,1,1,0,-1,0,0,0,-1,1,-1,0,-1,0,0,1,0,0,1,0,1,-1,0,0,0,0,-1,-1,1,-1,0,0,0,-1,0,0,0,0,1,0,0,-1,-1,0,1,1,-1,1,1,0,0,0,0,0,0,-1,0,0,0,1,0,0,0,-1,0,0,0,-1,0,-1,1}, } ; static const unsigned char precomputed_core_mult3sntrup1277_k[precomputed_core_mult3sntrup1277_NUM][crypto_core_KEYBYTES] = { {0,1,0,0,1,1,-1,1,-1,1,-1,1,-1,0,0,0,-1,0,0,0,0,0,1,0,0,-1,0,1,1,0,-1,1,0,-1,0,0,-1,0,-1,1,0,-1,-1,0,0,0,1,1,1,0,0,0,0,0,-1,1,1,1,0,-1,0,0,0,-1,1,1,-1,-1,1,0,0,0,0,1,1,0,0,0,0,1,0,1,-1,1,0,0,-1,-1,-1,0,-1,0,0,-1,-1,0,-1,0,1,0,1,0,0,0,0,-1,-1,0,-1,1,0,0,0,0,0,1,0,-1,0,1,0,0,-1,0,-1,-1,0,1,-1,0,1,0,0,1,0,0,1,-1,0,-1,0,0,1,0,0,0,1,0,1,1,1,0,0,-1,0,1,1,0,0,0,-1,-1,0,1,-1,0,-1,-1,0,-1,-1,-1,0,0,0,1,1,0,-1,0,0,1,0,0,0,1,0,0,0,-1,0,-1,1,1,1,-1,1,-1,-1,0,1,0,0,0,0,0,-1,0,1,0,1,0,0,-1,-1,-1,1,0,0,-1,0,-1,0,1,-1,0,0,0,-1,-1,0,1,1,0,-1,1,-1,1,0,0,-1,0,0,0,0,0,0,1,0,1,-1,-1,0,0,1,-1,0,-1,1,-1,-1,0,-1,0,1,-1,0,0,-1,0,1,1,0,-1,0,0,1,1,1,-1,0,-1,0,0,1,0,-1,0,1,0,-1,0,0,0,1,1,1,0,-1,-1,0,-1,0,0,0,0,1,-1,1,1,0,-1,-1,1,-1,1,-1,1,-1,-1,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,1,-1,0,1,0,-1,1,-1,1,0,0,1,-1,1,0,0,-1,-1,0,0,1,1,0,1,0,0,0,1,0,0,0,0,-1,1,1,0,0,0,0,0,-1,0,0,0,-1,0,0,1,0,0,1,0,0,1,-1,0,0,1,0,-1,0,-1,-1,1,0,-1,0,1,0,0,-1,0,0,1,0,0,0,0,1,0,0,1,-1,-1,0,0,0,-1,1,1,1,-1,0,-1,-1,1,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,0,0,-1,-1,-1,0,1,-1,0,0,1,1,0,1,0,1,0,1,1,0,1,-1,-1,0,1,0,-1,0,0,-1,0,0,-1,-1,-1,0,1,0,0,1,0,-1,0,-1,-1,1,1,0,0,0,0,-1,1,0,-1,0,1,0,0,0,0,0,-1,1,-1,0,0,-1,0,1,1,0,0,0,-1,0,0,0,1,-1,0,0,0,0,0,0,1,0,1,0,0,1,0,-1,-1,1,-1,1,0,0,0,-1,1,1,1,-1,0,0,-1,0,0,0,0,-1,1,0,1,0,1,1,1,0,0,0,0,-1,0,-1,1,0,0,0,0,0,0,0,-1,0,0,1,-1,0,1,0,1,1,0,0,0,0,-1,0,0,0,-1,1,-1,0,-1,0,1,0,-1,1,1,0,1,1,-1,0,0,0,1,1,-1,1,-1,0,0,0,0,-1,1,0,-1,0,-1,1,0,0,0,0,-1,0,-1,0,1,0,0,-1,-1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,1,0,-1,1,0,-1,0,1,1,0,1,0,0,0,-1,0,0,1,0,0,0,1,1,-1,0,0,0,-1,0,0,0,-1,0,1,-1,0,1,0,0,1,0,1,1,1,0,0,-1,0,-1,0,1,-1,0,0,-1,0,1,0,0,0,-1,1,0,1,0,-1,1,0,1,1,0,0,-1,0,0,0,1,-1,-1,0,0,1,0,0,-1,1,-1,0,1,1,-1,-1,1,0,1,0,0,-1,-1,-1,-1,0,0,-1,0,1,-1,0,-1,-1,0,0,0,-1,0,1,1,0,1,1,0,0,0,0,-1,-1,-1,-1,1,-1,0,0,0,0,0,0,-1,0,1,0,0,0,0,-1,1,0,-1,0,1,0,-1,0,0,0,1,1,0,1,-1,-1,1,-1,1,-1,1,0,-1,0,0,1,0,0,-1,0,0,0,-1,0,1,-1,-1,-1,-1,1,0,-1,1,0,1,1,-1,1,0,1,1,1,0,0,0,1,0,-1,1,0,-1,-1,1,0,1,0,-1,-1,-1,1,0,-1,1,-1,-1,0,1,1,0,0,1,-1,0,-1,1,1,-1,-1,-1,-1,1,-1,0,1,0,1,0,0,0,0,-1,-1,1,0,1,1,0,1,0,-1,0,1,1,-1,0,0,0,-1,0,0,0,1,-1,0,-1,0,0,-1,-1,0,1,1,0,1,0,0,1,0,-1,1,-1,-1,0,-1,0,-1,1,1,0,0,1,0,1,-1,1,1,1,-1,0,0,1,-1,1,0,-1,-1,-1,0,0,0,0,1,1,0,-1,1,-1,0,0,0,0,0,-1,0,0,0,-1,0,-1,1,1,-1,-1,0,1,1,0,0,-1,1,0,0,1,1,1,-1,0,0,-1,-1,0,-1,1,0,1,-1,-1,0,0,-1,1,-1,-1,1,0,0,0,0,0,1,0,0,0,0,-1,0,0,-1,0,1,0,0,-1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,-1,0,1,-1,-1,1,1,1,1,1,0,0,0,0,1,0,1,-1,0,0,-1,1,-1,0,0,0,0,1,1,0,0,-1,0,0,1,-1,1,1,1,0,1,0,0,0,1,0,0,-1,-1,1,1,-1,0,0,1,-1,1,0,0,1,0,1,0,1,-1,0,0,-1,1,0,0,0,0,1,0,0,0,-1,1,0,0,0,1,0,1,0,0,0,0,0,1,-1,0,1,0,0,0,1,0,0,0,1,1,0,0,-1,0,0,0,1,1,0,0,-1,-1,0,0,0,0,0,0,1,-1,0,-1,1,1,0,1,0,0,-1,-1,0,0,-1,-1,1,0,0,1,0,0,1,0,0,-1,-1,-1,-1,1,0,-1,-1,0,-1,0,0,1,0,0,0,0,-1,-1,1,0,0,1,1,1,-1,1,0,1,-1,1,0,-1,-1,0,0,0,-1,-1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,-1,-1,-1,0,0,0,1,-1,1,0,1}, {0,1,0,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,0,-1,1,0,0,1,0,-1,-1,0,1,-1,1,0,0,0,0,-1,0,0,1,1,-1,0,1,-1,0,-1,0,0,0,1,0,0,1,1,1,0,-1,-1,-1,-1,1,1,1,0,1,0,0,0,0,-1,0,-1,1,-1,0,-1,0,-1,1,0,-1,0,0,0,0,1,0,0,-1,0,1,0,-1,-1,0,-1,-1,0,0,0,-1,1,1,1,0,0,1,0,0,0,-1,1,0,-1,0,1,0,1,-1,1,-1,-1,0,0,1,1,0,0,0,-1,0,-1,1,0,0,0,1,0,1,1,-1,1,0,1,-1,0,0,1,0,0,-1,0,0,1,0,1,1,1,0,1,-1,-1,0,0,0,0,0,1,-1,1,-1,0,0,0,1,1,0,-1,0,0,1,0,0,-1,1,0,0,0,1,0,0,0,0,0,1,0,-1,-1,0,1,0,0,1,-1,1,1,0,0,-1,0,-1,1,0,1,1,1,0,1,0,1,-1,0,-1,1,0,0,0,0,-1,1,0,0,0,-1,1,-1,-1,0,-1,0,0,1,0,-1,0,0,1,0,0,1,0,-1,0,0,0,1,0,0,1,1,1,0,0,0,0,1,1,-1,0,1,1,0,0,0,-1,-1,0,-1,0,0,1,0,0,0,0,0,1,-1,0,1,-1,0,0,0,1,-1,0,-1,0,0,1,0,1,-1,0,1,1,1,-1,0,-1,-1,1,0,0,-1,-1,1,0,0,0,-1,-1,0,1,-1,-1,1,-1,0,0,-1,0,0,0,0,0,1,-1,1,-1,0,0,-1,0,-1,-1,-1,-1,0,0,-1,1,-1,0,0,-1,1,1,-1,0,1,0,-1,0,1,0,0,1,-1,1,0,-1,1,1,-1,0,0,-1,-1,0,-1,-1,1,1,1,0,1,0,-1,-1,0,1,1,1,-1,1,0,0,0,-1,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,0,-1,1,0,0,0,0,-1,0,-1,1,0,-1,0,0,0,-1,0,1,1,0,0,1,0,1,0,-1,0,1,-1,1,1,1,0,-1,-1,-1,0,0,0,0,0,1,0,0,-1,0,-1,0,1,0,0,1,1,0,-1,0,0,-1,0,1,0,0,0,-1,0,-1,1,0,0,1,1,0,0,0,0,-1,0,-1,1,1,0,1,1,0,0,-1,0,0,0,-1,-1,-1,-1,0,0,0,0,0,1,-1,0,0,1,1,0,0,0,0,0,0,-1,1,0,1,1,0,-1,0,0,-1,-1,1,0,1,0,0,0,-1,0,-1,0,1,-1,0,0,-1,1,0,1,1,0,0,-1,0,0,0,-1,-1,1,0,1,0,-1,0,0,1,0,1,0,-1,0,1,0,1,1,1,0,-1,-1,0,1,1,-1,0,0,1,1,0,1,0,-1,-1,-1,-1,0,-1,0,0,1,-1,1,0,0,1,0,0,1,1,-1,0,-1,1,0,0,-1,1,0,1,0,0,0,0,1,-1,-1,1,0,-1,1,0,0,1,0,-1,0,0,-1,-1,0,0,0,0,1,1,0,1,1,0,-1,1,1,1,1,1,1,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,1,1,1,0,0,0,0,1,0,0,-1,0,1,0,0,0,0,-1,-1,0,-1,0,0,1,1,0,1,1,-1,1,0,0,1,0,-1,0,0,1,1,0,0,0,0,-1,1,-1,0,0,0,1,-1,0,0,0,0,0,1,0,-1,0,0,0,-1,-1,1,0,-1,1,0,1,0,0,0,1,-1,-1,0,1,-1,0,0,0,-1,1,1,0,1,0,1,0,-1,0,1,0,-1,1,0,-1,1,0,-1,0,0,-1,-1,-1,-1,0,-1,0,0,0,1,0,0,0,0,0,-1,1,0,0,1,-1,0,1,0,0,0,1,-1,-1,0,0,0,-1,0,0,1,1,-1,0,0,1,-1,0,1,-1,-1,0,0,1,0,-1,-1,-1,0,1,0,-1,0,-1,0,1,0,1,-1,0,0,0,1,1,0,0,0,0,-1,-1,0,-1,0,-1,0,-1,0,-1,0,0,-1,-1,-1,-1,1,-1,-1,-1,-1,0,0,-1,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,-1,1,-1,0,0,0,0,-1,0,1,1,1,-1,1,0,1,1,0,0,0,0,0,0,1,0,1,-1,1,0,0,1,-1,1,0,-1,0,1,0,0,1,-1,0,0,0,0,0,1,0,1,0,0,1,-1,1,1,0,-1,0,0,0,0,0,-1,-1,1,0,1,-1,0,-1,1,-1,0,0,1,0,0,-1,0,1,1,0,-1,-1,0,1,0,0,1,0,0,0,0,0,1,1,0,1,-1,0,-1,-1,0,0,1,0,1,0,0,0,-1,0,0,1,0,1,0,0,-1,1,-1,0,0,1,0,1,0,-1,0,1,0,0,0,1,0,1,0,0,-1,1,-1,-1,-1,0,0,-1,0,-1,1,0,0,1,0,-1,1,1,0,0,-1,-1,0,-1,-1,0,0,1,1,1,-1,0,0,1,0,-1,-1,0,0,0,0,1,1,1,0,0,0,0,0,1,-1,0,0,0,0,0,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,-1,-1,0,1,0,0,1,-1,0,-1,0,0,1,0,1,1,0,0,1,-1,1,0,-1,1,-1,0,-1,0,0,0,-1,0,1,0,1,-1,0,0,0,0,0,-1,-1,1,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,-1,0,-1,-1,0,-1,-1,1,1,-1,0,0,0,-1,0,0,-1,-1,-1,0,-1,0,1,-1,-1,-1,0,1,0,0,0,0,0,0,0,0,1,0,-1,1,0,1,-1,-1,0,1,-1,1,0,1,-1,-1,0,1,0,1,0,-1,0,0,1,-1,0,0,0,0,1,1,0,-1,0,0,-1,0,0,1,1,-1,-1,0,-1,-1,1,0,-1,0,0,0}, {-1,1,0,1,-1,0,1,0,1,-1,0,-1,0,-1,0,0,0,-1,0,0,0,0,-1,-1,-1,0,1,1,1,0,0,0,0,0,-1,0,1,0,-1,0,-1,1,0,0,1,0,-1,1,0,0,0,0,0,0,-1,-1,1,0,0,-1,0,1,-1,0,-1,0,-1,0,-1,0,-1,0,1,0,-1,-1,1,0,0,-1,0,-1,1,0,0,0,-1,0,1,0,0,0,0,0,1,1,1,0,-1,0,1,0,0,0,1,1,0,-1,1,-1,1,-1,0,0,-1,0,1,0,0,0,0,1,0,1,1,0,0,0,0,-1,0,0,0,0,0,1,1,0,1,-1,-1,0,1,0,-1,1,0,0,1,0,-1,0,0,1,1,-1,0,0,0,1,0,-1,0,0,1,0,-1,1,0,1,0,-1,-1,0,0,1,1,0,1,0,0,-1,0,0,1,1,1,0,0,1,-1,0,0,0,1,0,1,0,1,0,-1,-1,-1,0,0,1,0,0,1,0,-1,0,0,-1,0,1,0,0,-1,1,0,0,-1,0,-1,0,-1,0,0,-1,1,0,0,1,1,1,0,1,-1,-1,1,0,0,1,0,0,-1,-1,0,-1,0,0,0,0,1,1,0,0,0,1,-1,0,1,0,1,0,-1,0,0,0,0,1,0,-1,1,-1,-1,0,0,0,-1,1,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,-1,0,-1,0,1,-1,-1,0,0,1,1,0,-1,0,1,0,-1,-1,1,0,0,0,0,0,-1,-1,0,-1,1,0,0,-1,1,0,-1,0,-1,-1,1,0,-1,0,-1,-1,0,1,1,1,-1,0,-1,0,0,0,0,0,0,0,1,1,0,-1,-1,0,0,0,0,-1,-1,0,0,-1,1,1,0,-1,-1,-1,0,1,1,0,-1,-1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,1,0,0,0,1,1,0,-1,-1,0,1,-1,-1,1,0,1,0,1,1,0,0,0,0,1,0,0,1,-1,1,-1,0,1,-1,1,1,-1,0,1,-1,0,-1,-1,0,0,0,-1,1,0,-1,-1,-1,0,0,1,-1,0,-1,-1,0,1,0,0,-1,0,-1,1,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,1,-1,-1,0,1,0,1,-1,-1,0,-1,-1,1,0,-1,1,1,1,-1,0,-1,1,0,-1,0,-1,0,-1,0,-1,-1,-1,-1,-1,0,0,-1,1,-1,-1,1,0,1,0,1,-1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0,-1,-1,1,-1,1,0,1,-1,0,0,1,0,0,0,0,0,-1,1,-1,1,-1,0,1,0,-1,-1,-1,-1,0,1,0,1,-1,0,0,0,0,0,1,-1,1,1,-1,1,-1,0,-1,1,1,0,1,0,1,0,0,0,-1,-1,0,1,-1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,1,-1,0,1,-1,0,0,0,0,1,-1,0,1,0,0,-1,0,-1,0,-1,0,-1,0,-1,1,0,-1,0,1,0,1,-1,1,0,0,0,0,-1,0,0,-1,0,1,1,1,0,0,0,-1,0,0,1,-1,0,-1,0,1,1,-1,1,0,0,1,0,0,0,0,1,0,1,0,-1,0,-1,1,1,0,-1,0,0,0,0,-1,-1,0,1,1,0,0,0,0,1,0,-1,1,0,-1,-1,0,1,-1,-1,0,1,0,0,1,1,-1,0,-1,-1,0,1,-1,-1,-1,1,0,0,-1,1,0,-1,0,-1,0,0,1,1,0,-1,1,1,1,0,1,-1,-1,1,-1,-1,0,0,-1,-1,0,1,0,1,1,-1,1,-1,0,0,0,0,0,1,1,0,-1,-1,0,0,-1,0,-1,0,-1,0,1,1,0,-1,1,1,0,0,0,1,0,0,-1,0,1,1,-1,0,1,1,0,0,-1,0,0,1,0,1,1,0,0,1,1,0,-1,0,0,-1,1,-1,-1,-1,-1,0,-1,0,-1,1,0,0,0,1,0,1,-1,-1,1,1,1,0,0,0,0,1,0,0,-1,0,0,-1,0,1,0,0,0,1,0,-1,1,-1,-1,-1,1,0,-1,-1,0,-1,1,0,0,-1,0,1,0,1,-1,0,0,0,0,-1,0,-1,-1,0,0,1,0,1,-1,-1,1,1,1,0,0,0,0,-1,-1,-1,0,-1,1,0,1,1,1,-1,0,0,1,-1,0,-1,1,0,-1,0,-1,1,0,-1,0,-1,-1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,-1,-1,1,0,-1,-1,-1,0,1,0,-1,0,-1,-1,1,0,1,1,1,1,1,0,1,1,0,1,0,-1,1,1,-1,-1,0,0,0,-1,-1,0,0,0,0,0,1,0,0,-1,-1,0,-1,-1,1,0,1,0,0,0,-1,0,1,0,-1,0,0,0,0,0,-1,-1,1,-1,-1,1,0,0,1,1,0,0,-1,1,-1,0,-1,1,0,-1,0,1,0,-1,1,1,0,0,1,-1,-1,-1,0,1,0,1,0,0,-1,1,0,-1,0,0,1,0,0,1,1,-1,1,1,0,-1,0,-1,0,1,1,1,-1,1,0,-1,-1,0,0,0,-1,1,1,1,0,-1,1,-1,0,1,0,0,0,1,-1,1,1,1,-1,-1,0,0,-1,1,0,1,0,-1,1,0,1,0,1,-1,1,1,-1,-1,-1,1,0,1,0,-1,0,-1,0,-1,0,-1,0,-1,0,1,-1,0,0,1,0,-1,-1,1,1,0,-1,-1,1,0,0,0,0,0,1,1,0,0,0,-1,0,-1,-1,-1,0,1,1,1,-1,0,0,0,1,-1,1,1,0,1,-1,-1,-1,0,1,1,0,0,1,0,0,0,0,1,-1,-1,1,0,-1,0,1,-1,1,-1,0,0,-1,0,-1,1,-1,-1,0,-1,1,0,0,-1,0,-1,-1,0,0,0,-1,0,-1,-1,0,-1,-1,0,0,0,-1,1,0,0,1,-1,0,0,0,1,-1,0,1,1,-1,-1,0,0,1,0,1,0,-1,1,-1,0,-1,0,-1,-1,0,0,0,1}, {-1,0,1,0,-1,0,-1,0,0,1,0,0,-1,-1,0,-1,0,-1,0,-1,-1,0,0,0,0,0,1,-1,0,1,1,0,0,0,0,0,-1,0,-1,0,-1,-1,0,0,1,0,0,1,0,-1,1,0,1,0,0,1,-1,-1,-1,-1,-1,0,0,0,-1,0,0,1,-1,0,-1,0,0,-1,0,1,0,-1,0,-1,1,0,0,0,-1,-1,0,0,1,-1,-1,1,0,0,1,0,1,0,0,1,-1,0,-1,0,1,-1,0,1,-1,0,1,0,1,-1,0,0,-1,0,1,0,1,0,1,1,0,1,1,0,0,1,1,-1,1,0,0,1,0,0,0,-1,0,0,0,0,0,1,0,-1,0,1,0,-1,0,0,0,-1,-1,0,1,1,-1,1,-1,1,0,0,0,-1,0,0,1,0,1,0,0,1,0,1,0,0,0,1,-1,0,1,0,1,1,-1,1,0,0,0,0,0,0,0,-1,1,1,1,0,-1,-1,1,0,0,0,0,-1,1,0,0,-1,0,1,0,0,0,0,-1,-1,1,-1,0,-1,0,-1,0,1,0,0,0,-1,0,1,-1,1,-1,0,0,1,1,-1,0,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,0,0,0,-1,-1,-1,1,0,-1,0,1,1,0,0,0,-1,1,0,0,1,1,-1,-1,0,0,-1,0,1,0,0,0,0,0,0,1,0,1,0,-1,-1,0,-1,1,-1,1,1,0,0,1,-1,0,0,1,1,1,0,0,0,-1,0,0,0,-1,-1,-1,-1,0,-1,1,-1,-1,1,-1,0,0,0,0,0,1,-1,-1,-1,0,0,1,1,1,-1,-1,-1,0,0,1,0,1,0,0,0,0,-1,-1,1,0,-1,0,1,-1,1,0,1,-1,0,-1,1,0,0,0,0,-1,0,-1,0,-1,1,0,0,1,1,1,-1,1,0,1,0,0,-1,0,-1,-1,0,-1,1,1,1,0,-1,0,0,1,-1,1,0,1,1,0,-1,-1,0,0,1,1,0,-1,-1,0,1,-1,0,-1,-1,1,1,0,0,0,1,-1,0,0,0,0,0,1,0,1,0,-1,1,1,0,-1,0,0,1,0,0,0,-1,1,0,0,-1,1,1,-1,0,0,0,1,0,0,0,-1,1,1,0,1,0,-1,0,0,1,0,0,0,-1,0,0,0,0,0,0,1,-1,0,1,0,0,1,1,1,-1,0,0,0,0,1,1,0,0,0,1,-1,1,0,1,0,-1,0,-1,1,0,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,1,-1,0,-1,-1,1,0,0,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,-1,-1,0,1,0,1,0,-1,-1,0,-1,0,0,-1,0,-1,1,0,-1,-1,0,0,0,-1,-1,0,0,1,0,0,1,-1,0,-1,0,0,-1,1,0,-1,0,0,-1,-1,0,0,1,-1,-1,1,0,0,-1,1,0,1,0,0,0,0,1,-1,1,1,1,1,-1,0,0,0,0,1,0,-1,0,0,-1,-1,1,0,0,-1,1,0,1,-1,0,1,0,1,0,-1,-1,0,1,-1,-1,0,-1,0,0,0,-1,0,1,1,-1,-1,1,0,0,1,0,1,-1,-1,0,0,1,-1,0,-1,0,0,0,0,1,-1,0,0,0,0,-1,-1,0,0,0,0,1,1,0,0,0,-1,-1,1,1,1,0,0,0,-1,1,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,1,-1,0,1,0,0,0,-1,0,0,-1,-1,1,0,-1,-1,1,1,0,1,0,0,1,1,0,1,1,0,-1,0,0,0,1,0,1,1,0,0,0,1,0,0,0,-1,0,1,0,-1,1,0,1,0,-1,0,0,1,1,0,0,1,0,-1,0,1,-1,0,-1,0,0,0,-1,0,0,1,0,0,0,-1,0,0,1,0,0,-1,-1,1,0,0,1,-1,1,0,1,-1,0,0,0,-1,0,1,0,0,1,-1,-1,-1,-1,0,1,-1,0,-1,-1,0,1,1,0,0,0,0,0,0,-1,-1,0,0,-1,-1,0,-1,0,0,0,-1,1,0,1,1,0,1,0,0,0,1,0,-1,0,0,0,1,0,1,0,0,0,-1,0,1,-1,0,0,0,-1,0,-1,0,1,-1,0,0,0,1,-1,0,0,0,-1,1,0,0,0,-1,0,0,1,-1,0,0,1,-1,0,0,0,0,0,1,0,-1,1,1,0,1,0,0,1,0,-1,0,1,0,0,1,0,0,0,1,-1,1,0,0,0,0,-1,0,-1,-1,0,0,1,0,-1,-1,-1,0,0,1,0,0,-1,0,0,-1,0,1,1,1,0,-1,1,0,0,0,-1,-1,0,0,-1,0,-1,0,-1,0,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,-1,1,0,0,-1,1,0,0,0,0,-1,-1,0,1,1,1,0,1,1,1,0,1,0,-1,0,0,0,-1,1,0,-1,0,-1,0,0,0,-1,1,0,-1,1,0,1,1,-1,-1,-1,0,0,-1,0,0,0,0,0,0,-1,0,1,1,-1,0,-1,0,-1,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,-1,-1,0,0,0,1,0,0,-1,0,-1,1,-1,0,0,0,1,0,0,-1,0,1,0,0,0,1,0,-1,1,0,0,0,-1,0,1,0,1,0,0,-1,1,1,0,0,0,0,-1,-1,0,0,0,0,-1,1,1,0,1,0,0,1,1,1,0,-1,-1,0,-1,0,0,-1,0,0,-1,1,0,1,-1,0,0,0,-1,-1,0,0,-1,0,1,0,-1,0,1,0,1,1,0,1,0,1,1,-1,-1,1,0,-1,-1,0,-1,0,-1,-1,-1,0,0,-1,1,0,0,0,0,0,0,1,1,-1,1,1,0,0,0,0,-1,1,0,0,0,1,0,0,-1,0,1,-1,0,0,0,0,-1,-1,1,-1,-1,1,0,0,1,1,0,0,0,0,-1,0,1,-1,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,1,1,0,0,-1,-1,-1,1,-1,0,0,1,0,1}, } ; static const unsigned char precomputed_core_mult3sntrup1277_c[precomputed_core_mult3sntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_mult3sntrup1277_impl(long long impl) { unsigned char *h = test_core_mult3sntrup1277_h; unsigned char *n = test_core_mult3sntrup1277_n; unsigned char *k = test_core_mult3sntrup1277_k; unsigned char *c = test_core_mult3sntrup1277_c; unsigned char *h2 = test_core_mult3sntrup1277_h2; unsigned char *n2 = test_core_mult3sntrup1277_n2; unsigned char *k2 = test_core_mult3sntrup1277_k2; unsigned char *c2 = test_core_mult3sntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup1277(impl); printf("core_mult3sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup1277_implementation(impl),ntruprime_dispatch_core_mult3sntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup1277; printf("core_mult3sntrup1277 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup1277_implementation(),ntruprime_core_mult3sntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_mult3sntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_mult3sntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_mult3sntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_mult3sntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_mult3sntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_mult3sntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_mult3sntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_mult3sntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_mult3sntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_mult3sntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_mult3sntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup1277")) return; storage_core_mult3sntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_mult3sntrup1277_h = aligned(storage_core_mult3sntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_mult3sntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_mult3sntrup1277_n = aligned(storage_core_mult3sntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_mult3sntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_mult3sntrup1277_k = aligned(storage_core_mult3sntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_mult3sntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_mult3sntrup1277_c = aligned(storage_core_mult3sntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_mult3sntrup1277_h2 = callocplus(maxalloc); test_core_mult3sntrup1277_h2 = aligned(storage_core_mult3sntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_mult3sntrup1277_n2 = callocplus(maxalloc); test_core_mult3sntrup1277_n2 = aligned(storage_core_mult3sntrup1277_n2,crypto_core_INPUTBYTES); storage_core_mult3sntrup1277_k2 = callocplus(maxalloc); test_core_mult3sntrup1277_k2 = aligned(storage_core_mult3sntrup1277_k2,crypto_core_KEYBYTES); storage_core_mult3sntrup1277_c2 = callocplus(maxalloc); test_core_mult3sntrup1277_c2 = aligned(storage_core_mult3sntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_mult3sntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup1277();++impl) forked(test_core_mult3sntrup1277_impl,impl); ++test_core_mult3sntrup1277_h; ++test_core_mult3sntrup1277_n; ++test_core_mult3sntrup1277_k; ++test_core_mult3sntrup1277_c; ++test_core_mult3sntrup1277_h2; ++test_core_mult3sntrup1277_n2; ++test_core_mult3sntrup1277_k2; ++test_core_mult3sntrup1277_c2; } free(storage_core_mult3sntrup1277_c2); free(storage_core_mult3sntrup1277_k2); free(storage_core_mult3sntrup1277_n2); free(storage_core_mult3sntrup1277_h2); free(storage_core_mult3sntrup1277_c); free(storage_core_mult3sntrup1277_k); free(storage_core_mult3sntrup1277_n); free(storage_core_mult3sntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_mult3sntrup653.c0000644000000000000000000007002014705505543023622 0ustar rootroot/* ----- core/mult3sntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_mult3sntrup653_checksums[] = { "6c633f57506622093b66449977dda48d3736b0f20eb6f78104f010d8b94c5e51", "2262cd945501dd3967456d24154cd50599be6620378821a6b96ffa95fd8b47ff", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_mult3sntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_mult3sntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_mult3sntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_mult3sntrup653_CONSTBYTES static void *storage_core_mult3sntrup653_h; static unsigned char *test_core_mult3sntrup653_h; static void *storage_core_mult3sntrup653_n; static unsigned char *test_core_mult3sntrup653_n; static void *storage_core_mult3sntrup653_k; static unsigned char *test_core_mult3sntrup653_k; static void *storage_core_mult3sntrup653_c; static unsigned char *test_core_mult3sntrup653_c; static void *storage_core_mult3sntrup653_h2; static unsigned char *test_core_mult3sntrup653_h2; static void *storage_core_mult3sntrup653_n2; static unsigned char *test_core_mult3sntrup653_n2; static void *storage_core_mult3sntrup653_k2; static unsigned char *test_core_mult3sntrup653_k2; static void *storage_core_mult3sntrup653_c2; static unsigned char *test_core_mult3sntrup653_c2; #define precomputed_core_mult3sntrup653_NUM 4 static const unsigned char precomputed_core_mult3sntrup653_h[precomputed_core_mult3sntrup653_NUM][crypto_core_OUTPUTBYTES] = { {255,0,255,0,0,1,0,0,0,255,1,0,255,1,255,1,1,255,0,1,255,1,0,0,0,255,1,1,255,1,0,0,1,0,1,0,0,1,0,1,0,255,255,255,255,255,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,255,255,255,1,0,255,255,1,0,255,255,255,0,1,255,0,255,255,0,0,1,1,255,0,255,255,0,0,255,255,255,0,0,1,255,255,0,1,0,0,255,0,1,1,255,255,0,1,255,1,1,255,0,255,1,255,255,0,255,0,0,0,0,1,1,0,0,1,1,0,255,255,1,255,0,1,255,0,0,255,1,1,0,255,0,0,255,1,1,0,0,0,0,0,0,0,255,1,1,255,1,255,0,1,1,0,255,0,1,1,255,0,255,1,255,0,0,0,0,255,1,255,1,0,255,255,1,255,255,0,1,0,0,1,1,1,0,255,0,1,255,255,0,0,255,1,0,1,1,255,255,1,0,255,0,255,0,1,255,0,255,1,1,0,1,255,255,1,1,1,255,255,1,1,1,1,0,255,0,0,0,255,0,1,1,255,255,255,255,0,0,255,1,1,0,0,1,255,255,255,0,0,255,0,1,0,0,255,255,0,1,0,0,1,1,1,255,1,0,0,1,1,1,255,1,0,0,0,1,255,0,255,255,0,0,255,255,255,255,1,1,255,255,0,1,0,0,255,0,255,0,1,1,1,255,1,1,0,255,0,0,0,255,0,0,1,255,255,1,255,0,255,1,1,255,255,0,255,255,255,255,255,0,1,255,255,255,0,0,255,255,1,255,255,1,0,255,1,255,1,0,1,1,0,255,255,1,1,0,0,255,255,0,1,255,0,1,255,0,0,0,1,1,1,0,1,255,0,0,1,255,0,255,0,0,1,0,0,255,1,255,0,1,0,255,1,1,255,255,0,0,255,0,1,0,255,255,255,0,255,1,0,1,0,0,0,0,1,1,1,255,1,255,255,1,255,1,255,1,0,0,255,0,0,255,255,1,1,0,255,255,0,255,0,0,0,255,0,1,0,0,1,255,0,0,1,1,1,1,1,1,255,255,255,1,1,255,0,255,255,255,0,255,0,1,0,1,1,0,0,0,1,1,0,1,255,255,255,0,255,0,1,255,255,255,1,0,1,0,1,255,255,1,0,255,0,255,1,255,1,0,255,0,255,0,0,1,0,0,1,255,1,255,0,0,255,0,0,0,1,1,0,1,0,255,255,0,1,0,1,0,0,0,0,1,255,0,255,0,0,1,0,255,255,0,0,1,0,1,0,255,1,255,0,0,0,255,1,1,1,1,1,255,0,0,255,255,0,0,1,255,255,1,255,1,0,255,0,255,0,0,1,0,1,1,0,0,0,0,255,0,0,0,0,1,255,255,255,1,255,255,255,255,255,1,0,1,0,0,0,0,255,255,1,0,0,1,255,1,255,255,1,0,0,0,1,255}, {0,0,1,1,255,0,255,255,1,255,1,0,0,255,255,0,0,1,0,255,255,0,1,1,255,0,1,0,255,0,255,0,255,255,0,255,1,255,0,1,0,255,0,0,1,0,0,255,1,255,255,1,1,1,1,1,0,0,255,0,0,0,0,1,0,1,1,255,0,1,255,1,255,255,0,0,1,1,0,1,1,0,1,1,1,1,0,255,0,1,0,0,255,255,255,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,1,255,255,0,1,1,0,0,0,255,1,1,255,0,1,1,0,1,1,1,0,0,255,0,0,0,255,1,255,255,1,0,255,1,255,1,1,255,1,1,0,255,255,255,0,0,0,0,255,255,255,1,255,1,1,0,1,1,255,0,255,0,1,1,255,0,0,1,0,255,255,0,255,1,0,255,255,0,255,255,0,0,0,255,255,255,1,255,255,0,0,0,1,0,1,0,0,1,0,255,0,0,0,0,0,255,1,0,255,1,0,255,0,255,0,255,1,0,0,1,0,1,255,255,0,1,1,1,1,1,255,0,0,1,255,255,0,255,1,255,255,255,255,1,0,255,1,1,255,255,1,255,0,1,0,0,1,255,255,1,0,0,0,1,255,255,0,1,0,255,0,1,0,1,1,1,0,255,255,1,1,1,0,0,255,255,1,1,0,1,1,1,1,0,255,0,0,0,255,1,255,0,1,1,0,255,1,0,0,0,0,1,1,255,0,0,255,0,1,0,255,1,1,1,255,1,0,0,255,255,0,0,1,0,0,0,0,1,255,0,0,0,255,255,0,0,0,255,1,255,0,1,1,255,255,1,0,255,255,0,255,1,1,0,255,0,0,1,1,0,1,1,0,1,255,255,1,255,255,0,0,255,0,0,1,1,255,255,1,0,0,1,255,0,0,0,255,255,0,1,1,255,0,1,0,255,1,0,255,255,0,0,255,0,255,0,255,255,0,0,255,0,1,1,1,1,1,255,255,255,1,0,1,1,0,0,0,0,255,0,0,1,1,255,0,1,255,255,255,1,1,1,1,1,1,255,0,0,1,1,255,0,0,0,255,1,1,0,255,0,0,255,0,0,0,255,0,1,255,1,255,255,0,0,255,255,1,1,255,0,0,255,255,255,0,0,255,0,0,1,1,1,1,0,255,0,0,255,1,0,255,1,0,0,0,0,255,255,1,1,0,0,0,255,1,0,0,255,0,0,0,1,0,255,255,1,1,255,0,1,0,1,0,255,0,0,1,0,0,0,1,255,255,255,1,255,255,1,0,0,0,255,0,255,255,255,255,255,0,1,1,255,1,0,255,0,0,0,0,0,0,0,0,255,255,0,255,1,255,0,255,255,1,0,1,0,0,1,255,0,1,255,255,1,0,255,1,255,0,1,1,255,1,0,0,0,0,0,0,1,1,0,255,1,255,0,255,0,0,255,1,1,255,255,1,255,1,255,255,255,255,1,0}, {255,255,0,1,1,255,1,1,1,255,1,255,0,1,0,1,0,0,1,0,255,0,1,1,255,0,255,1,0,255,255,0,1,255,0,0,0,1,255,1,0,1,0,255,255,255,255,255,0,1,255,0,255,255,255,0,255,0,0,255,0,1,0,1,0,1,1,255,1,0,0,0,0,0,0,1,255,0,1,1,255,1,0,0,1,0,1,255,255,255,255,0,0,0,0,1,255,255,0,0,1,1,1,255,255,0,1,0,1,1,0,255,0,1,0,1,1,0,0,255,1,255,0,0,0,255,255,0,0,1,255,1,0,0,255,255,1,1,1,1,255,255,0,255,1,255,0,1,255,0,255,1,1,1,0,0,1,0,255,255,0,255,255,255,0,255,0,0,255,0,255,0,1,0,0,0,255,0,0,0,0,0,255,1,255,1,0,1,255,0,255,0,0,0,0,255,255,0,255,0,255,0,255,255,1,255,1,255,255,0,255,0,255,255,0,0,255,1,1,0,255,1,1,1,255,0,255,0,1,255,0,1,0,1,1,255,255,1,255,255,1,1,0,255,1,1,255,1,1,0,1,255,0,1,255,255,0,255,1,255,0,1,255,255,0,1,255,0,255,0,0,0,0,1,1,0,0,0,255,1,255,1,255,0,1,1,0,1,0,0,255,255,0,0,255,1,1,255,1,0,0,255,0,255,0,255,0,0,255,255,255,0,1,255,1,0,1,1,255,0,255,0,0,0,255,0,1,0,1,1,1,255,1,255,1,1,0,1,255,255,1,1,255,1,0,0,255,0,1,0,255,0,1,255,255,0,0,255,0,255,0,1,255,0,255,1,0,1,1,255,255,0,255,1,0,0,255,0,1,1,1,0,1,0,0,255,0,255,0,1,1,1,0,1,0,255,1,255,255,0,255,0,0,1,1,255,1,0,0,0,1,1,255,0,1,0,0,255,1,0,1,255,255,255,255,1,0,255,1,1,255,0,0,0,1,0,0,255,1,255,1,1,0,1,1,0,255,1,255,255,0,0,255,255,0,255,0,0,255,255,0,1,0,1,0,255,255,1,1,1,1,0,0,1,0,1,255,255,1,255,255,1,255,1,1,0,0,0,1,0,1,0,0,1,1,0,0,1,1,1,1,1,255,255,255,1,1,255,0,1,255,255,1,0,0,0,255,0,255,0,0,1,1,255,1,0,255,255,1,255,0,0,1,1,255,1,1,255,1,0,255,0,0,0,1,0,0,0,1,1,1,1,1,255,1,1,1,1,0,0,1,0,0,0,0,255,0,1,1,1,1,255,255,1,1,255,1,255,255,1,0,1,1,0,0,0,0,255,0,1,0,0,255,0,255,1,1,0,0,1,0,0,0,1,0,255,255,0,1,1,1,0,0,0,1,255,255,0,1,255,1,0,1,0,255,1,1,255,0,1,1,1,255,0,255,0,1,1,0,0,1,0,255,0,255,1,255,255,1,0,1,0,0}, {255,0,0,255,1,1,255,1,1,1,255,255,255,255,1,1,1,0,1,0,1,0,0,255,0,1,1,1,255,1,1,0,1,255,255,1,255,1,1,0,255,255,255,1,255,255,255,255,1,0,1,0,1,1,1,255,1,0,0,1,0,0,1,255,1,1,0,255,255,0,1,0,0,0,255,1,1,0,0,0,1,0,0,0,255,0,0,255,255,255,255,255,1,0,255,255,0,255,1,1,1,0,255,1,255,255,1,0,255,1,1,255,0,255,1,0,255,255,255,255,255,0,1,1,0,255,0,0,255,1,0,1,255,255,1,255,255,0,255,255,255,255,0,0,1,255,255,1,1,255,255,0,0,255,255,0,0,1,1,0,1,255,0,255,0,0,1,1,0,1,1,255,1,255,0,255,255,255,1,1,1,255,255,0,1,255,1,0,1,1,1,0,1,255,255,0,255,255,0,1,1,0,1,255,255,1,255,0,1,1,0,1,1,255,255,1,255,0,0,1,0,255,255,255,0,1,1,1,1,255,0,0,1,255,255,1,0,0,1,1,1,0,1,1,0,255,1,255,0,1,0,0,1,255,255,0,1,1,255,255,0,255,0,255,1,255,1,255,1,0,255,0,1,0,255,1,0,0,1,1,1,255,1,1,0,255,255,1,255,1,0,0,1,0,0,1,0,0,0,255,0,0,0,1,0,255,1,1,1,0,1,0,1,255,1,255,0,1,255,0,255,0,1,1,255,255,1,255,1,1,255,1,1,0,1,255,1,0,255,1,255,255,1,1,1,255,255,0,255,0,1,1,1,1,1,1,1,1,0,0,255,1,0,255,0,255,255,255,1,255,0,255,1,0,0,1,0,0,1,1,0,0,0,0,0,255,1,1,255,0,0,0,0,255,255,255,1,1,1,255,0,255,1,255,255,0,0,1,0,0,1,255,0,255,255,255,255,255,1,1,255,0,0,255,1,255,255,0,1,255,0,255,255,0,0,255,255,1,0,0,1,255,1,0,1,255,255,0,255,255,1,255,1,1,255,0,255,255,255,1,0,1,255,1,1,255,0,255,0,255,1,1,0,0,1,0,1,1,255,1,255,0,255,255,1,0,255,0,1,1,0,0,0,255,1,1,0,0,0,255,1,1,255,255,255,1,255,0,255,1,255,1,0,0,1,1,255,255,255,1,1,255,0,255,255,1,255,255,255,255,1,0,1,255,0,255,1,1,1,255,0,0,1,1,255,0,1,1,255,255,255,0,255,1,255,1,1,0,255,1,0,1,255,255,255,255,0,0,0,255,0,1,0,255,0,0,0,255,0,0,0,0,0,0,255,255,255,255,1,1,255,255,1,1,0,1,1,0,1,255,0,255,255,255,255,255,255,1,0,1,1,255,0,1,1,1,1,1,255,1,0,1,255,255,1,255,255,0,255,1,1,255,0,255,255,1,0,0,1,1,0,0,1,1,255,255,255,1,1,1,0,1,0}, } ; static const unsigned char precomputed_core_mult3sntrup653_n[precomputed_core_mult3sntrup653_NUM][crypto_core_INPUTBYTES] = { {0,1,0,0,1,0,1,1,0,0,-1,1,1,0,-1,0,0,0,0,0,-1,1,1,1,-1,-1,0,0,1,-1,0,0,0,0,1,0,1,1,0,1,0,0,0,-1,1,0,0,0,-1,-1,0,0,1,-1,0,-1,0,0,-1,1,0,0,0,-1,0,-1,-1,-1,0,0,-1,1,1,0,-1,0,1,1,0,0,0,0,1,0,1,0,0,0,-1,-1,1,0,0,-1,1,0,0,-1,-1,1,0,1,0,-1,-1,0,0,0,1,0,0,-1,1,1,1,0,-1,1,-1,0,0,0,0,1,-1,-1,0,-1,-1,0,0,1,0,0,-1,-1,-1,0,0,-1,1,0,0,0,0,1,0,-1,0,0,-1,-1,0,-1,0,0,0,1,1,0,1,0,0,1,-1,1,1,1,0,-1,-1,-1,0,0,0,0,0,0,0,0,0,1,-1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,0,1,-1,1,0,1,0,0,-1,-1,0,1,1,0,-1,-1,0,-1,1,-1,0,1,0,1,0,1,0,1,0,0,-1,0,1,0,-1,-1,1,1,-1,1,0,0,0,1,0,0,-1,0,0,0,0,0,0,0,1,-1,-1,0,1,0,0,-1,0,0,-1,-1,1,-1,1,-1,1,1,0,1,0,0,-1,0,0,0,1,1,1,0,1,1,0,-1,0,0,1,1,0,-1,0,1,1,0,1,0,0,1,1,0,1,1,0,0,-1,-1,1,1,-1,0,0,0,-1,0,0,0,-1,0,0,0,0,-1,0,-1,1,-1,0,-1,0,1,0,-1,1,0,0,-1,1,-1,1,0,-1,0,0,1,0,0,0,0,0,-1,0,0,1,0,0,1,0,-1,-1,1,0,0,-1,-1,-1,-1,-1,-1,1,0,0,0,0,1,-1,0,1,1,0,0,0,-1,-1,0,0,1,0,1,-1,-1,0,1,1,0,0,0,-1,-1,0,0,1,1,1,0,0,1,-1,-1,0,0,0,1,0,-1,-1,0,-1,0,1,0,-1,1,0,1,1,1,0,0,0,0,1,0,-1,0,1,0,1,0,-1,1,1,0,1,0,-1,-1,-1,0,-1,1,1,0,-1,0,0,1,-1,0,0,1,1,0,1,0,0,0,0,1,0,1,-1,0,1,-1,-1,0,0,1,-1,0,0,0,0,1,0,0,0,0,0,-1,0,0,-1,-1,-1,1,0,0,-1,-1,0,-1,-1,-1,0,-1,1,-1,0,0,-1,1,-1,-1,-1,-1,1,0,0,1,0,0,1,0,-1,0,0,0,0,0,-1,1,0,0,0,0,-1,-1,-1,0,1,-1,1,-1,-1,-1,-1,1,0,-1,0,-1,0,1,-1,0,-1,0,0,1,1,0,-1,0,-1,1,0,1,1,1,0,0,0,0,0,1,1,0,0,0,0,-1,0,1,1,0,-1,-1,0,0,0,1,0,-1,0,0,0,0,0,0,-1,0,0,1,1,1,1,0,1,1,-1,0,0,-1,0,0,-1,0,1,0,0,0,1,0,0,0,1,-1,0,1,-1,1,0,0,0,0,0,-1,1,0,-1,-1,-1,0,0,0,0,-1,0,0}, {0,0,-1,0,0,1,-1,0,0,1,1,-1,0,0,0,0,-1,0,0,0,-1,0,1,1,1,0,1,-1,-1,-1,-1,0,1,1,1,1,-1,0,1,1,-1,0,-1,1,0,0,-1,-1,-1,0,1,-1,0,0,0,0,1,1,0,1,1,0,-1,-1,1,-1,1,0,-1,0,1,-1,0,1,1,0,0,-1,1,1,0,-1,-1,0,1,0,0,1,1,-1,0,1,-1,0,-1,1,-1,0,1,1,-1,1,1,0,1,1,-1,1,-1,0,1,1,0,1,-1,-1,-1,0,-1,0,0,-1,-1,0,1,0,-1,0,1,0,0,0,1,-1,0,1,0,-1,0,-1,0,0,1,0,-1,0,1,1,1,1,1,0,1,1,0,0,0,-1,0,1,0,0,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,1,0,0,-1,1,-1,0,0,0,0,1,-1,-1,0,0,0,0,0,-1,1,-1,-1,0,-1,1,1,0,-1,-1,-1,0,1,-1,0,0,-1,0,0,-1,0,1,0,0,0,1,0,0,1,-1,0,0,1,0,-1,0,0,0,1,0,0,1,0,0,-1,1,0,0,1,-1,0,0,1,0,1,0,-1,1,0,0,-1,1,1,0,-1,0,0,1,1,0,0,1,0,0,-1,0,1,-1,-1,0,0,1,1,1,1,-1,-1,0,0,-1,0,0,0,0,1,0,0,-1,0,0,-1,0,0,0,0,1,1,0,0,1,1,0,1,0,-1,0,1,0,1,0,1,0,0,-1,1,0,-1,0,1,-1,0,-1,-1,-1,1,0,1,0,0,1,-1,0,0,1,-1,0,-1,-1,1,-1,0,-1,0,0,0,0,0,0,0,1,0,1,0,-1,0,1,0,1,1,0,1,-1,0,1,1,0,1,1,-1,0,0,0,0,1,1,0,0,1,1,-1,0,0,0,0,0,0,0,-1,0,-1,1,1,0,0,-1,0,0,0,0,1,1,0,1,-1,1,-1,-1,0,0,0,0,-1,0,0,0,-1,0,0,1,-1,-1,0,1,0,1,0,0,-1,-1,-1,1,1,-1,-1,0,1,0,-1,0,0,-1,0,0,1,1,0,1,1,0,0,-1,0,-1,0,-1,0,1,1,0,-1,0,-1,0,1,0,-1,1,0,0,0,0,0,0,0,-1,1,-1,0,1,-1,-1,0,1,-1,0,0,1,0,0,0,1,0,1,0,-1,-1,0,-1,-1,0,1,0,0,-1,0,0,0,-1,1,0,0,0,1,1,0,0,1,-1,0,0,0,0,-1,-1,1,1,1,1,-1,0,-1,1,1,1,0,0,1,-1,1,1,0,0,0,0,-1,1,1,1,-1,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,-1,0,0,-1,1,1,1,-1,0,0,0,0,0,0,0,1,1,0,0,0,-1,0,0,1,0,0,1,1,0,0,1,1,0,0,1,0,-1,0,0,-1,1,0,-1,0,-1,-1,1,1,0,0,0,0,1,-1,0,0,0,0,0,0,1,0,0,0,1,1,0,1,0,0,-1,0,1,0,-1,0,0,0,0,0,-1,1,0}, {-1,1,0,0,0,0,1,1,1,1,1,1,1,-1,1,-1,1,0,0,0,-1,-1,1,0,0,-1,0,1,1,0,0,0,1,0,0,0,-1,0,1,1,-1,-1,0,1,-1,0,1,0,0,0,0,1,-1,1,0,0,0,1,1,0,-1,1,-1,0,-1,0,-1,0,0,0,-1,1,0,0,0,0,0,1,1,1,-1,-1,-1,-1,-1,0,1,0,1,0,1,0,-1,-1,-1,0,-1,0,1,-1,0,0,0,1,-1,0,-1,1,0,-1,1,0,0,0,0,0,0,-1,0,0,-1,0,0,0,1,0,0,0,1,1,1,0,1,1,-1,-1,0,-1,-1,-1,0,1,0,1,0,0,1,0,0,-1,0,0,0,0,1,1,0,0,1,-1,0,-1,1,0,-1,0,0,0,0,1,0,-1,0,0,-1,0,0,1,1,0,-1,1,0,0,0,0,0,-1,0,1,-1,0,0,0,1,0,-1,-1,0,0,0,1,-1,0,-1,0,-1,-1,-1,0,0,1,0,0,0,1,1,1,0,-1,-1,1,1,0,0,1,-1,-1,1,0,0,0,0,-1,-1,0,0,1,1,0,1,0,1,0,0,1,0,1,1,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,-1,1,1,0,0,0,1,0,0,0,-1,-1,0,-1,0,1,1,0,0,0,0,0,1,0,-1,1,1,0,-1,-1,1,0,0,-1,0,0,-1,1,0,-1,-1,0,0,0,1,1,0,1,0,-1,0,1,-1,0,0,0,0,-1,-1,-1,0,1,0,0,-1,-1,0,1,0,-1,-1,0,-1,0,-1,-1,0,0,0,-1,-1,1,1,1,0,1,0,-1,-1,0,0,0,1,0,1,0,1,1,0,0,0,-1,0,1,-1,-1,0,0,-1,0,0,0,0,-1,-1,0,-1,-1,0,0,-1,0,1,-1,1,0,1,0,-1,-1,1,1,0,1,1,-1,1,1,-1,0,0,1,1,-1,0,-1,0,0,1,0,0,-1,0,-1,-1,0,1,-1,0,0,0,-1,-1,0,1,-1,0,1,1,1,0,1,1,-1,0,0,1,1,-1,1,0,0,1,-1,0,1,0,1,0,0,0,0,0,-1,-1,-1,0,0,0,-1,0,0,0,1,0,0,0,0,1,1,-1,0,-1,0,1,1,0,0,-1,1,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,1,1,0,0,1,0,0,1,1,1,-1,1,0,0,1,0,0,-1,1,-1,0,0,0,0,-1,0,1,-1,0,1,-1,1,0,0,1,1,0,0,-1,1,-1,0,-1,0,0,1,-1,0,1,-1,1,0,1,0,0,1,0,0,0,0,0,-1,0,0,1,1,1,0,-1,0,-1,0,1,0,1,-1,0,0,0,0,1,-1,0,-1,1,0,0,-1,1,0,1,-1,0,0,0,0,0,0,0,0,0,1,1,0,1,-1,-1,1,-1,0,-1,1,0,0,-1,-1,0,0,-1,1,0,-1,-1,0,-1,-1,1,-1,0,0,0,0,1,1,-1,-1,1,0,-1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,-1,-1}, {0,0,1,1,0,-1,0,-1,-1,-1,1,0,0,-1,0,-1,0,1,1,0,-1,-1,1,0,0,0,1,0,0,1,1,-1,1,0,1,1,-1,-1,0,0,1,1,1,0,0,0,-1,0,0,0,1,0,-1,1,-1,-1,0,0,-1,0,-1,0,0,0,-1,1,-1,0,-1,1,0,0,1,0,0,0,-1,0,-1,0,0,0,0,0,-1,1,0,-1,0,-1,0,1,1,1,0,0,0,0,-1,0,-1,0,1,0,0,-1,0,-1,0,0,1,1,1,1,-1,0,1,0,0,-1,0,0,0,0,1,-1,1,-1,0,1,1,-1,-1,0,0,1,1,0,0,-1,0,0,0,0,-1,-1,-1,1,1,-1,1,1,0,1,1,1,1,-1,1,1,1,0,0,1,1,0,-1,-1,1,-1,1,-1,1,0,0,1,-1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,-1,-1,0,0,0,1,0,-1,0,1,0,0,0,0,1,0,-1,0,1,1,0,0,0,-1,0,0,1,1,1,-1,-1,0,-1,0,-1,0,0,-1,0,-1,1,0,0,-1,-1,0,-1,-1,0,0,0,1,0,-1,0,-1,1,1,1,-1,0,1,0,0,0,1,0,-1,-1,1,0,0,-1,1,0,-1,0,0,0,0,1,-1,-1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,1,0,1,1,0,0,1,-1,0,1,1,0,0,0,0,0,1,1,-1,0,1,1,1,-1,1,0,-1,1,0,-1,-1,0,1,1,0,0,0,1,1,0,-1,1,0,0,0,1,1,1,0,-1,0,1,-1,-1,0,0,-1,1,0,0,-1,1,-1,1,1,1,1,1,-1,-1,-1,0,1,-1,-1,-1,-1,0,0,1,-1,-1,0,-1,0,0,1,0,1,0,-1,-1,0,1,0,0,0,-1,0,1,-1,0,-1,0,0,-1,0,-1,1,0,1,0,1,-1,1,0,-1,-1,0,1,0,-1,0,1,1,-1,0,1,1,0,1,-1,-1,-1,0,0,0,1,0,1,0,-1,1,1,0,0,1,-1,-1,0,1,0,-1,0,1,-1,0,0,-1,1,1,-1,0,0,0,0,1,0,-1,-1,1,1,0,0,-1,0,0,1,0,0,0,-1,-1,0,1,1,0,0,0,1,0,0,0,0,0,0,1,-1,-1,0,0,1,1,-1,0,0,0,1,0,0,0,0,-1,0,1,0,0,0,1,0,0,-1,1,1,1,0,0,0,0,0,-1,1,1,0,1,-1,1,0,-1,0,0,0,1,1,0,0,1,-1,-1,1,1,0,1,1,0,-1,-1,0,0,0,0,1,-1,0,1,0,-1,0,0,0,0,-1,1,0,1,-1,0,0,-1,1,1,0,0,0,0,0,0,0,0,-1,0,-1,0,1,1,0,0,0,-1,-1,0,0,-1,1,0,1,0,1,-1,0,1,-1,0,0,0,-1,0,-1,0,1,1,-1,-1,-1,0,1,0,0,0,0,0,1,0,-1,0,-1,0,0,0,0,1,0,0,-1,-1,-1,1,0,-1,1,1,1,-1,1,0,0}, } ; static const unsigned char precomputed_core_mult3sntrup653_k[precomputed_core_mult3sntrup653_NUM][crypto_core_KEYBYTES] = { {1,0,-1,-1,-1,1,0,1,0,0,-1,1,0,0,0,-1,0,-1,0,0,0,1,0,-1,0,0,0,0,0,1,1,1,-1,0,0,0,0,-1,0,-1,1,-1,0,0,1,0,0,0,0,0,-1,0,0,1,-1,-1,0,0,-1,-1,0,1,0,-1,0,1,1,0,0,-1,0,1,-1,0,-1,0,-1,-1,-1,0,0,1,0,-1,0,1,0,-1,0,1,-1,-1,1,1,-1,1,0,-1,0,-1,-1,1,1,0,0,-1,0,0,0,-1,-1,1,-1,0,0,0,-1,0,0,0,0,0,0,0,0,1,-1,-1,0,-1,1,-1,1,1,0,0,0,-1,0,-1,1,0,-1,0,0,1,0,1,0,-1,-1,-1,0,-1,0,1,1,0,0,0,0,1,0,0,0,1,1,1,-1,0,0,0,1,0,0,-1,1,0,0,1,-1,1,0,1,0,1,-1,0,0,0,0,1,-1,1,0,-1,0,-1,1,1,0,-1,0,-1,0,-1,0,1,0,0,-1,1,-1,0,0,1,-1,0,0,0,1,0,0,0,1,-1,1,0,0,0,0,1,0,0,0,-1,1,1,1,0,1,-1,0,0,-1,0,0,0,0,0,1,1,1,1,1,0,1,1,1,0,1,-1,0,1,0,1,-1,0,-1,0,0,0,0,0,1,0,1,1,-1,0,0,-1,-1,0,-1,-1,0,0,1,1,0,0,0,0,0,-1,-1,1,0,-1,0,0,-1,0,0,0,1,1,-1,0,0,-1,0,1,1,-1,0,-1,-1,0,1,0,0,-1,0,0,1,0,0,-1,1,0,1,-1,0,0,0,0,0,0,0,1,1,1,1,-1,0,1,0,-1,0,0,0,0,0,-1,1,0,1,0,-1,1,-1,0,0,0,1,0,-1,0,-1,0,0,-1,-1,0,0,0,0,1,-1,1,0,0,1,-1,-1,0,-1,0,1,1,-1,0,0,1,0,0,0,0,0,-1,0,0,0,0,1,1,0,0,0,0,1,0,0,-1,-1,-1,1,1,-1,0,0,-1,-1,0,1,1,1,0,-1,-1,1,0,-1,-1,0,0,-1,-1,0,0,-1,1,1,0,-1,-1,0,0,0,0,-1,0,0,0,0,-1,-1,0,1,0,0,-1,0,-1,-1,1,0,1,0,1,0,0,-1,0,0,0,0,0,0,1,-1,1,-1,0,0,0,1,-1,0,0,0,0,1,0,0,0,-1,1,-1,1,0,0,0,-1,0,0,1,1,1,0,-1,-1,0,0,0,0,0,0,1,0,-1,-1,0,0,0,1,1,1,0,0,1,1,0,-1,0,-1,0,0,0,1,1,0,0,1,-1,0,-1,-1,1,0,0,1,-1,-1,0,1,1,0,-1,-1,-1,0,-1,0,1,0,0,0,1,1,1,-1,1,-1,0,0,1,1,0,-1,0,1,0,0,-1,1,1,0,0,1,1,0,0,1,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,-1,0,-1,1,0,-1,0,0,0,0,1,1,0,-1,-1,1,1,0,-1,-1,1,0,1,0,0,1,-1,-1,0,0,-1,1,1,0,0,-1}, {0,-1,1,1,0,1,-1,-1,0,0,-1,-1,0,1,1,1,1,-1,1,1,1,-1,1,0,0,-1,0,0,0,0,-1,1,0,1,0,0,1,-1,1,-1,0,0,0,0,-1,0,1,-1,0,0,1,0,1,0,1,0,0,1,0,0,1,1,1,-1,0,1,1,0,1,0,0,-1,0,1,0,0,-1,0,-1,1,-1,0,0,-1,1,0,0,1,0,0,0,-1,0,0,0,0,0,0,-1,0,1,-1,0,0,0,0,0,-1,0,1,0,0,0,1,1,1,0,1,0,0,0,-1,0,0,1,1,0,-1,1,-1,-1,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,1,-1,-1,0,-1,0,1,-1,-1,-1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,-1,-1,-1,0,1,0,0,-1,1,0,1,0,1,1,0,-1,0,0,0,-1,0,0,1,0,-1,0,0,1,0,1,-1,1,-1,1,0,-1,-1,0,0,1,1,0,0,0,0,1,-1,-1,-1,0,0,1,-1,0,1,-1,0,1,0,0,0,1,0,1,0,-1,-1,0,0,0,0,0,0,-1,-1,0,1,0,-1,0,1,0,-1,0,0,1,0,0,-1,0,-1,1,0,0,0,0,1,0,1,0,1,1,-1,1,-1,1,0,0,0,-1,0,1,1,-1,0,1,0,1,1,0,1,-1,1,1,0,-1,0,0,1,-1,1,0,-1,1,0,1,-1,-1,1,0,0,-1,-1,1,0,-1,1,0,-1,1,1,0,1,-1,-1,0,-1,0,0,0,-1,0,1,0,1,1,1,0,0,1,0,-1,0,1,1,-1,1,-1,-1,1,1,1,1,-1,0,0,0,0,1,1,0,1,-1,0,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,-1,0,0,0,1,1,0,0,0,-1,0,-1,0,0,0,0,0,-1,0,-1,0,0,-1,0,1,-1,0,0,0,0,-1,0,-1,1,0,0,0,0,1,-1,0,-1,0,1,-1,1,1,0,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1,-1,0,0,0,-1,-1,1,-1,1,0,0,-1,-1,0,0,0,1,0,0,0,0,0,0,-1,-1,-1,0,1,1,0,0,0,-1,0,1,0,0,1,0,0,1,0,-1,-1,1,0,0,-1,0,0,0,0,0,-1,0,1,-1,0,1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,1,-1,0,0,-1,1,-1,1,-1,-1,1,0,0,-1,-1,0,0,-1,0,-1,0,-1,1,-1,0,-1,0,0,0,-1,0,1,-1,0,0,0,0,0,1,0,0,0,-1,0,0,-1,0,0,0,-1,1,0,1,-1,1,1,-1,-1,1,1,-1,0,0,0,-1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,-1,0,-1,0,1,0,1,1,0,0,1,1,0,0,-1,0,0,-1,1,0,1,1,-1,-1,0,0,1,0,1,0,0,0,1,1,-1,0,0,-1,0,0,0,0,0,0,0,-1,0,1,-1,0,-1,1}, {-1,-1,0,1,0,0,-1,-1,-1,0,0,-1,0,1,0,-1,0,1,-1,0,1,-1,0,-1,0,1,0,1,0,0,-1,1,0,0,1,0,0,-1,0,1,-1,1,-1,0,1,1,0,0,1,-1,1,0,-1,0,0,-1,-1,0,0,1,0,1,1,-1,0,0,0,-1,-1,-1,1,1,0,1,0,1,-1,0,0,0,-1,1,-1,0,1,1,1,1,-1,0,0,1,1,1,-1,-1,0,0,1,-1,0,1,0,-1,1,1,0,-1,-1,0,-1,1,0,1,-1,-1,0,-1,-1,-1,0,0,1,1,0,0,1,-1,0,0,0,1,-1,0,0,0,-1,1,1,0,-1,1,0,1,-1,1,1,0,-1,0,-1,-1,-1,-1,0,-1,1,0,0,1,0,1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,-1,0,-1,0,0,0,1,0,0,1,0,0,-1,0,1,-1,0,-1,1,-1,-1,0,0,0,1,1,0,0,0,-1,1,0,1,-1,0,0,-1,-1,-1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,-1,-1,0,0,-1,0,0,0,0,0,-1,0,0,-1,-1,1,0,-1,0,0,0,0,-1,0,0,1,0,0,0,0,0,-1,1,1,-1,0,0,0,0,1,-1,0,0,0,0,1,-1,1,0,0,0,0,-1,-1,-1,0,0,-1,1,0,0,0,0,0,1,0,-1,0,-1,-1,1,0,0,-1,1,-1,0,0,1,0,0,0,-1,0,0,1,1,0,0,-1,1,-1,1,0,1,0,0,1,0,1,-1,1,1,-1,0,0,-1,0,0,0,0,0,0,0,0,-1,0,0,-1,0,1,0,0,0,1,0,-1,0,-1,1,0,0,1,1,1,0,0,-1,0,0,-1,-1,-1,0,0,-1,0,0,0,-1,0,1,1,-1,0,0,1,-1,0,-1,-1,1,1,-1,0,1,1,-1,0,0,0,-1,1,0,1,1,0,-1,1,-1,-1,1,0,0,1,0,0,0,0,1,0,0,1,-1,1,1,0,0,0,1,1,0,0,0,0,-1,-1,1,1,1,0,-1,0,0,1,0,0,-1,0,0,-1,1,0,0,-1,0,0,0,1,0,1,-1,0,-1,0,-1,0,0,1,-1,0,0,-1,0,1,-1,0,-1,0,0,1,1,0,-1,0,1,0,0,0,0,0,1,0,-1,0,1,1,0,0,-1,0,-1,0,1,1,0,0,0,-1,-1,0,-1,1,0,0,1,0,-1,1,-1,-1,0,0,0,-1,-1,0,0,-1,0,0,0,0,1,0,0,0,1,0,1,0,1,-1,-1,0,-1,0,1,-1,0,-1,0,1,0,0,1,0,-1,-1,0,0,-1,-1,-1,0,1,0,-1,1,-1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,0,1,-1,0,0,0,-1,0,1,0,1,0,-1,-1,-1,0,1,-1,0,-1,0,0,-1,1,0,1,1,0,0,1,0,0,0,1,1,0,-1,0,-1,-1,-1,0,-1,-1,-1,0,0}, {-1,1,0,0,1,1,-1,0,1,0,0,0,0,1,0,1,0,0,0,-1,1,0,0,1,0,0,0,0,0,0,1,0,1,-1,-1,0,-1,0,1,-1,0,1,-1,-1,0,0,0,0,0,0,0,-1,1,0,0,0,1,1,0,-1,-1,0,0,0,0,0,-1,0,0,1,-1,0,-1,1,0,1,0,-1,0,-1,0,0,-1,1,1,-1,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,-1,0,1,-1,-1,0,0,1,0,1,-1,1,1,0,-1,-1,1,1,0,1,1,0,0,0,-1,0,0,0,0,1,0,1,1,0,0,0,0,-1,1,-1,1,0,1,0,0,0,-1,0,1,1,1,-1,0,1,-1,-1,0,1,-1,-1,0,0,0,1,0,-1,-1,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,0,1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,1,0,1,-1,1,1,0,1,0,1,-1,0,0,0,-1,1,-1,0,0,0,0,0,0,1,0,-1,-1,1,0,0,1,0,-1,1,0,0,0,-1,-1,0,1,0,-1,1,0,-1,-1,-1,0,1,-1,0,1,0,0,0,-1,0,0,-1,0,1,0,0,0,0,0,-1,0,1,1,-1,0,0,0,-1,1,1,0,-1,0,0,-1,0,1,1,-1,0,1,0,0,1,-1,0,0,0,-1,1,-1,0,-1,0,0,-1,0,0,0,0,-1,1,0,1,-1,0,0,0,1,1,-1,-1,0,0,0,-1,-1,0,1,-1,0,1,0,-1,0,-1,0,0,0,0,0,0,0,-1,-1,1,-1,0,0,-1,0,0,1,-1,0,0,1,-1,-1,1,1,-1,0,1,0,0,0,-1,-1,-1,1,1,0,0,1,-1,0,0,-1,-1,0,0,0,0,0,-1,0,1,0,0,0,-1,1,-1,1,0,0,0,1,-1,1,-1,0,0,-1,0,-1,-1,0,-1,0,0,-1,-1,-1,0,0,-1,1,-1,1,1,-1,-1,1,-1,0,0,0,0,-1,0,1,0,0,1,0,-1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,-1,-1,1,0,1,0,1,1,0,0,1,1,0,0,0,-1,1,0,-1,-1,0,1,0,1,0,0,-1,-1,-1,0,-1,1,-1,-1,0,1,0,0,1,0,0,1,0,0,0,1,1,-1,1,-1,0,-1,-1,0,1,1,1,0,0,0,1,0,0,-1,0,0,0,1,-1,0,1,0,0,0,0,0,1,0,0,1,0,-1,-1,1,0,0,0,1,0,-1,0,-1,-1,0,0,-1,1,-1,0,-1,0,1,0,0,0,1,-1,0,0,0,-1,1,1,0,-1,0,1,0,1,-1,-1,0,0,0,0,0,-1,0,-1,0,-1,0,-1,-1,0,1,-1,1,1,1,0,0,-1,0,1,-1,1,1,0,0,1,0,-1,0,0,1,0,0,-1,0,1,1,-1,1,0,-1,0,1,1,1,-1,-1,0,-1,1,1,0,0,0,1,0,0,0,1,-1,0,0,0,0,1,0,1,1,1}, } ; static const unsigned char precomputed_core_mult3sntrup653_c[precomputed_core_mult3sntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_mult3sntrup653_impl(long long impl) { unsigned char *h = test_core_mult3sntrup653_h; unsigned char *n = test_core_mult3sntrup653_n; unsigned char *k = test_core_mult3sntrup653_k; unsigned char *c = test_core_mult3sntrup653_c; unsigned char *h2 = test_core_mult3sntrup653_h2; unsigned char *n2 = test_core_mult3sntrup653_n2; unsigned char *k2 = test_core_mult3sntrup653_k2; unsigned char *c2 = test_core_mult3sntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup653(impl); printf("core_mult3sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup653_implementation(impl),ntruprime_dispatch_core_mult3sntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup653; printf("core_mult3sntrup653 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup653_implementation(),ntruprime_core_mult3sntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_mult3sntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_mult3sntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_mult3sntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_mult3sntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_mult3sntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_mult3sntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_mult3sntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_mult3sntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_mult3sntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_mult3sntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_mult3sntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup653")) return; storage_core_mult3sntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_mult3sntrup653_h = aligned(storage_core_mult3sntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_mult3sntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_mult3sntrup653_n = aligned(storage_core_mult3sntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_mult3sntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_mult3sntrup653_k = aligned(storage_core_mult3sntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_mult3sntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_mult3sntrup653_c = aligned(storage_core_mult3sntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_mult3sntrup653_h2 = callocplus(maxalloc); test_core_mult3sntrup653_h2 = aligned(storage_core_mult3sntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_mult3sntrup653_n2 = callocplus(maxalloc); test_core_mult3sntrup653_n2 = aligned(storage_core_mult3sntrup653_n2,crypto_core_INPUTBYTES); storage_core_mult3sntrup653_k2 = callocplus(maxalloc); test_core_mult3sntrup653_k2 = aligned(storage_core_mult3sntrup653_k2,crypto_core_KEYBYTES); storage_core_mult3sntrup653_c2 = callocplus(maxalloc); test_core_mult3sntrup653_c2 = aligned(storage_core_mult3sntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_mult3sntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup653();++impl) forked(test_core_mult3sntrup653_impl,impl); ++test_core_mult3sntrup653_h; ++test_core_mult3sntrup653_n; ++test_core_mult3sntrup653_k; ++test_core_mult3sntrup653_c; ++test_core_mult3sntrup653_h2; ++test_core_mult3sntrup653_n2; ++test_core_mult3sntrup653_k2; ++test_core_mult3sntrup653_c2; } free(storage_core_mult3sntrup653_c2); free(storage_core_mult3sntrup653_k2); free(storage_core_mult3sntrup653_n2); free(storage_core_mult3sntrup653_h2); free(storage_core_mult3sntrup653_c); free(storage_core_mult3sntrup653_k); free(storage_core_mult3sntrup653_n); free(storage_core_mult3sntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_mult3sntrup761.c0000644000000000000000000007624014705505543023634 0ustar rootroot/* ----- core/mult3sntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_mult3sntrup761_checksums[] = { "4a489a66b1977b381a33f6cdb93b9760302789add5208c6e09acc0ea47788efd", "52c3e6619d37995edd3088b9fbb36cebfbbf0308e263d52bc17c4334ef661dd3", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_mult3sntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_mult3sntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_mult3sntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_mult3sntrup761_CONSTBYTES static void *storage_core_mult3sntrup761_h; static unsigned char *test_core_mult3sntrup761_h; static void *storage_core_mult3sntrup761_n; static unsigned char *test_core_mult3sntrup761_n; static void *storage_core_mult3sntrup761_k; static unsigned char *test_core_mult3sntrup761_k; static void *storage_core_mult3sntrup761_c; static unsigned char *test_core_mult3sntrup761_c; static void *storage_core_mult3sntrup761_h2; static unsigned char *test_core_mult3sntrup761_h2; static void *storage_core_mult3sntrup761_n2; static unsigned char *test_core_mult3sntrup761_n2; static void *storage_core_mult3sntrup761_k2; static unsigned char *test_core_mult3sntrup761_k2; static void *storage_core_mult3sntrup761_c2; static unsigned char *test_core_mult3sntrup761_c2; #define precomputed_core_mult3sntrup761_NUM 4 static const unsigned char precomputed_core_mult3sntrup761_h[precomputed_core_mult3sntrup761_NUM][crypto_core_OUTPUTBYTES] = { {0,1,0,1,255,1,1,1,255,255,0,1,255,0,255,1,255,0,0,0,0,1,1,1,255,1,255,255,1,255,0,0,255,255,1,1,1,1,255,255,0,255,1,255,0,255,255,255,1,255,1,1,255,1,255,0,1,1,0,0,1,255,0,0,255,255,0,255,1,0,1,255,0,0,1,1,0,0,1,0,255,1,0,0,255,255,255,1,1,1,255,255,0,0,255,0,255,1,0,255,1,0,255,1,0,0,0,0,255,0,0,1,0,0,255,1,0,0,0,0,1,0,1,0,255,1,255,0,1,255,0,255,1,0,0,255,1,255,0,0,1,1,0,0,255,255,1,1,0,0,1,0,255,255,255,255,0,0,1,1,255,1,1,255,1,255,0,1,255,1,1,255,1,255,1,0,255,1,255,0,0,1,1,1,1,255,255,0,1,255,255,0,1,1,1,0,1,0,0,255,0,0,255,0,1,1,255,1,1,1,0,1,0,255,0,0,255,0,1,1,255,255,0,255,0,255,0,0,1,255,0,1,0,1,255,0,255,0,1,1,0,0,1,255,0,1,255,0,1,0,1,0,1,255,255,1,255,255,255,255,1,0,1,1,255,0,1,1,1,0,1,255,255,0,0,255,255,255,255,1,0,0,0,0,255,1,0,1,0,255,255,1,1,255,255,1,0,1,1,255,255,0,255,0,255,1,0,1,1,255,1,1,1,255,0,0,1,0,1,255,0,255,255,0,255,255,255,255,1,1,0,1,0,255,255,0,255,0,1,0,0,255,0,1,255,255,0,255,255,0,255,1,1,0,255,255,0,0,255,1,0,1,1,255,255,0,1,0,0,0,255,0,255,0,1,0,255,1,255,255,1,0,0,255,1,255,255,1,1,0,1,255,0,1,255,1,1,255,1,255,1,1,0,1,255,0,0,1,255,255,0,255,255,0,255,255,1,1,255,1,0,1,255,1,0,0,255,0,0,255,255,255,1,0,1,0,255,1,255,0,0,0,255,0,255,1,0,0,0,0,0,0,255,0,1,0,255,1,255,1,255,255,0,0,0,0,1,1,0,1,0,0,255,1,0,1,0,1,1,0,255,255,1,1,255,1,0,0,0,0,255,255,255,255,1,1,255,255,1,0,1,0,255,0,0,1,0,1,255,255,1,0,1,0,0,0,0,1,255,0,0,255,1,255,255,255,0,0,255,255,0,1,0,255,0,255,0,1,255,1,255,255,0,1,255,1,255,1,0,0,0,255,255,0,0,255,1,255,1,0,255,0,0,1,0,1,255,1,0,255,255,255,1,255,1,1,255,255,0,0,0,1,255,255,0,255,255,1,1,255,0,1,0,255,0,0,0,1,0,0,0,1,1,1,0,1,0,255,0,0,0,1,1,255,0,0,0,255,0,1,0,0,1,255,1,255,255,1,0,255,1,1,0,1,255,255,0,0,1,1,0,0,255,0,1,1,255,1,0,1,0,1,1,0,0,255,1,255,255,255,255,1,255,1,1,0,1,0,0,0,1,1,1,1,1,0,255,1,0,255,255,255,1,0,1,1,1,0,0,255,1,1,1,255,255,255,1,1,255,1,0,1,0,1,1,1,1,1,255,255,0,255,1,0,255,255,255,1,0,0,255,0,255,255,255,1,0,255,0,0,1,1,1,1,255,0,1,1,255,255,0,255,0,0,255,1,1,1,1,1,1,255,0,1,0,0,0,0,255,0,1}, {1,255,0,255,0,1,255,255,1,0,1,255,1,0,255,1,1,1,0,0,1,255,1,255,0,0,255,255,255,255,0,1,0,1,0,1,1,0,255,255,1,255,0,1,0,1,1,1,1,255,1,1,0,255,1,1,255,1,1,0,1,1,1,1,1,255,1,0,0,255,1,0,0,255,0,1,1,1,255,1,1,1,1,1,1,0,1,0,1,255,0,0,255,1,255,0,1,0,0,0,0,0,0,0,0,255,1,1,1,1,255,0,255,255,0,255,255,255,1,1,255,255,0,0,0,0,1,255,255,255,255,0,255,0,255,0,0,1,255,0,0,1,1,255,1,255,0,0,0,255,1,255,255,255,1,0,255,1,255,0,1,0,255,255,0,255,0,255,0,255,0,0,255,0,0,1,0,0,1,255,255,255,1,0,0,0,1,0,1,1,1,0,0,1,0,1,255,1,1,255,1,0,1,255,1,1,255,255,1,255,1,1,0,255,255,255,255,0,1,0,1,255,0,1,255,255,1,1,1,0,1,255,0,1,1,255,255,255,255,0,1,255,255,255,255,1,1,1,1,0,0,0,0,255,0,1,1,255,255,255,0,255,255,255,255,0,255,0,255,1,0,0,1,1,255,1,255,1,255,255,255,255,0,255,1,0,255,1,255,255,1,255,255,1,0,0,255,0,255,255,255,0,0,255,255,1,0,1,255,1,1,0,0,255,1,0,255,0,255,255,1,1,255,0,255,0,0,0,255,0,0,255,1,0,1,0,1,1,1,0,0,255,1,0,0,0,1,0,255,255,1,1,1,1,0,1,1,0,255,255,1,255,255,0,1,0,1,1,0,255,255,1,255,255,0,255,1,1,1,255,255,255,1,1,255,255,1,255,255,255,0,0,0,255,255,255,1,0,0,255,0,1,0,1,255,1,255,0,255,255,0,1,0,1,0,0,1,1,255,255,255,1,1,0,255,255,255,255,1,255,1,0,1,0,0,255,0,0,255,255,255,255,0,0,0,255,1,1,1,255,1,0,1,1,0,1,255,1,1,1,1,255,255,255,1,0,0,255,0,0,1,1,255,0,0,255,255,0,255,255,1,255,1,0,255,0,0,0,255,255,0,1,0,0,1,0,0,0,0,0,1,0,255,255,255,1,1,0,0,1,255,1,0,1,0,1,1,0,1,0,0,255,255,0,0,1,0,0,255,255,1,0,1,255,1,1,1,1,0,255,0,0,0,1,255,255,0,1,255,255,1,0,1,255,255,0,255,1,255,255,1,1,0,255,0,1,255,255,0,255,0,1,1,0,1,1,0,1,255,1,1,255,1,0,1,255,255,255,1,1,1,0,1,1,255,1,255,255,255,0,255,0,1,0,255,255,1,0,0,255,1,255,1,255,1,0,1,0,255,0,1,255,1,0,1,255,1,255,255,255,0,255,0,255,255,1,0,255,255,255,255,1,1,255,0,0,0,255,255,1,1,1,255,1,1,0,1,255,1,255,255,1,255,0,1,0,0,1,255,0,255,0,1,1,0,255,0,255,1,0,255,0,255,1,1,0,1,1,1,0,1,255,0,255,1,255,0,1,0,0,1,1,255,0,0,255,0,255,1,0,255,1,1,1,255,0,255,1,0,255,0,0,255,0,1,255,1,1,255,255,255,255,255,1,0,1,0,255,0,255,255,1,255,1,255,0,0,255,0,255,0,0,255,0,0,0,255,0,1,0,1}, {255,0,0,255,255,1,0,255,0,0,0,0,255,255,0,255,255,255,0,255,255,255,255,1,255,0,0,255,1,0,255,0,0,0,0,0,0,1,1,1,1,0,255,255,1,255,1,1,255,255,1,0,1,1,1,255,255,255,255,255,1,255,0,0,1,255,255,1,1,1,0,0,1,1,1,255,0,255,255,1,0,255,255,0,255,1,0,255,1,0,0,1,0,255,0,1,255,255,1,255,255,255,255,1,0,255,1,0,1,1,1,0,1,0,1,1,1,255,1,0,0,0,0,255,255,1,0,1,1,0,0,1,1,255,1,0,0,1,1,1,255,1,1,255,0,1,1,1,0,0,0,1,1,0,1,255,255,0,1,255,0,0,0,255,0,255,0,0,1,0,255,1,0,1,255,1,1,0,0,255,1,0,0,1,255,1,1,1,1,1,1,255,255,1,255,1,1,1,255,1,1,255,0,0,0,1,1,1,0,255,0,1,0,1,1,255,0,0,0,0,0,0,1,1,0,1,0,1,1,1,0,0,255,255,0,1,255,255,1,1,255,1,1,1,0,0,1,0,0,1,0,255,1,0,0,255,0,0,1,0,1,0,0,1,0,255,1,0,0,255,0,0,0,0,0,255,1,0,1,1,255,1,1,1,1,255,1,255,1,255,1,255,255,255,255,255,255,1,0,255,0,0,1,255,0,255,1,0,1,1,255,0,0,1,1,1,1,0,255,0,1,0,255,1,1,255,255,1,0,0,0,1,0,0,255,255,0,0,0,255,0,0,1,0,1,255,1,255,1,255,0,255,1,255,255,1,255,1,0,0,255,1,255,0,255,255,255,255,255,0,0,0,1,0,1,0,255,1,0,1,255,0,1,255,1,255,0,255,1,1,255,1,0,1,0,1,0,1,1,0,0,1,0,255,1,0,255,255,255,0,0,1,255,1,0,1,1,1,1,1,255,1,0,255,255,255,255,1,1,0,0,0,0,1,0,255,0,255,255,0,255,255,255,0,255,0,0,255,255,1,0,0,255,1,1,255,0,1,255,255,255,255,255,255,0,1,1,0,1,0,255,0,255,255,0,255,0,1,255,1,1,1,1,255,0,255,255,1,0,255,255,0,255,255,1,255,0,0,0,0,1,1,255,0,1,1,255,1,255,1,0,255,1,255,0,255,255,1,0,0,1,0,1,255,0,255,255,1,255,0,255,255,1,255,0,1,0,0,255,255,1,0,0,0,1,255,255,1,1,0,255,0,1,255,255,0,255,0,1,0,1,1,1,1,255,1,0,255,1,255,1,0,1,255,0,1,0,1,1,0,255,0,0,255,1,0,255,255,255,0,0,1,0,255,1,255,1,0,1,255,1,0,255,255,0,1,1,255,1,1,1,255,255,0,0,255,255,255,1,0,255,255,255,255,1,0,1,1,1,255,1,0,255,0,1,1,1,1,1,0,0,255,0,255,1,1,0,255,1,255,0,0,1,0,0,255,255,1,0,1,0,255,0,1,1,0,255,1,1,1,255,0,0,1,255,0,0,255,0,0,1,255,0,0,0,255,1,255,1,255,255,0,0,255,1,1,1,0,255,1,1,1,0,0,1,1,0,0,0,255,0,0,0,0,0,0,0,0,0,1,0,255,1,0,255,0,0,255,0,0,1,0,255,255,0,1,1,255,0,1,255,0,0,255,1,255,255,1,1,0,255,255,255,255,0,255,255,0,255,0,255}, {1,255,255,1,255,255,0,255,0,255,0,1,1,255,255,1,255,255,255,0,0,255,255,1,0,0,0,0,255,255,1,255,1,1,255,255,0,1,1,255,1,1,1,255,1,1,255,0,0,255,0,1,0,0,255,0,0,0,1,1,1,0,255,0,255,255,255,255,1,0,255,255,1,1,255,255,1,0,255,255,1,0,0,255,1,1,255,1,0,255,255,255,255,255,1,0,255,255,0,255,255,255,1,0,255,1,255,0,1,255,255,0,0,0,1,255,1,255,1,1,0,1,0,255,255,255,1,1,1,255,0,1,255,1,0,255,0,1,1,255,1,1,0,1,1,255,0,1,255,255,255,1,1,0,1,1,1,255,1,255,255,1,1,0,255,0,1,1,255,255,255,255,1,255,0,0,0,1,0,0,255,255,0,255,0,0,1,255,255,1,255,0,0,1,1,1,255,255,255,1,0,255,0,255,0,255,0,0,1,255,255,1,255,1,1,255,1,1,0,255,1,0,255,0,0,1,255,255,1,1,0,0,1,1,255,1,0,1,1,255,1,255,255,1,255,0,255,1,1,0,1,1,255,255,0,1,0,1,1,0,255,0,1,255,1,0,255,0,255,255,1,0,255,1,0,255,255,255,1,1,255,255,1,0,0,0,0,1,1,0,255,1,1,0,255,1,1,255,255,0,1,1,0,255,255,255,255,1,0,255,0,1,0,1,0,0,255,1,255,255,255,255,0,1,0,255,0,0,255,255,0,1,1,255,255,255,1,1,0,1,1,255,255,0,0,0,0,0,1,255,0,0,255,255,255,1,0,0,1,255,0,1,255,0,1,1,0,255,1,255,1,1,255,1,0,255,0,0,0,1,0,255,1,1,1,1,1,255,255,0,1,0,255,255,0,255,1,255,1,1,1,1,1,0,255,0,1,0,255,255,255,0,1,255,0,0,255,1,0,1,1,255,255,1,255,1,1,0,1,255,0,255,0,1,255,1,255,0,1,0,0,255,255,1,0,255,255,1,0,255,255,1,1,255,0,0,255,1,0,255,1,0,0,0,255,0,255,1,1,1,0,255,0,1,0,255,1,1,0,255,0,255,1,1,255,0,255,1,255,255,255,1,0,1,255,0,0,1,0,0,0,0,1,255,255,0,0,255,255,255,255,1,1,1,255,1,1,0,0,1,0,1,255,1,255,255,255,1,1,0,1,0,255,255,0,0,0,255,255,255,255,1,1,0,255,1,1,1,1,255,255,0,0,255,1,0,1,0,0,255,0,255,0,1,0,0,0,255,1,255,255,1,0,1,0,0,255,255,255,255,1,255,1,1,1,1,255,1,0,0,1,1,0,255,0,1,255,255,0,255,1,0,255,255,1,1,255,1,255,255,255,255,255,255,1,1,0,1,1,255,0,255,1,255,0,0,1,0,1,1,255,1,0,255,255,1,255,0,255,1,1,255,1,1,255,255,255,1,0,1,0,255,0,255,0,0,1,255,0,1,0,1,0,0,255,255,0,0,255,0,1,255,0,255,1,0,1,255,1,0,255,1,1,1,255,255,1,0,1,1,1,1,0,255,0,255,255,0,255,255,255,0,255,0,0,255,1,1,1,255,0,0,0,1,0,1,255,255,255,255,0,0,1,255,1,1,255,0,1,0,255,0,0,255,1,1,0,255,1,1,1,0,0,0,1,1,255,0,0,1,255,1,0,255,1,0,0,255,0,1,0}, } ; static const unsigned char precomputed_core_mult3sntrup761_n[precomputed_core_mult3sntrup761_NUM][crypto_core_INPUTBYTES] = { {1,0,0,0,-1,1,-1,-1,1,0,1,0,-1,1,0,0,1,1,0,1,-1,0,1,1,1,1,-1,1,-1,0,-1,1,-1,0,1,0,1,1,-1,1,1,1,0,1,0,0,1,-1,1,1,1,-1,1,0,-1,0,-1,0,-1,-1,1,0,-1,1,1,-1,1,-1,0,0,0,-1,0,-1,1,-1,0,1,0,-1,0,1,0,0,0,0,0,1,-1,0,-1,-1,0,1,1,-1,1,-1,0,-1,1,-1,0,1,1,0,0,0,-1,-1,-1,1,0,0,1,0,0,-1,0,0,0,1,-1,1,-1,1,-1,0,-1,0,-1,0,-1,-1,-1,-1,1,0,0,1,1,1,-1,1,-1,1,1,1,1,1,0,1,0,0,0,0,1,0,1,1,0,0,-1,1,1,-1,0,0,-1,-1,0,-1,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0,0,1,1,0,-1,1,0,-1,1,1,1,-1,1,1,1,1,-1,-1,0,0,0,-1,0,0,1,0,0,0,1,0,1,1,1,-1,0,0,0,0,0,1,0,-1,-1,-1,1,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,-1,0,-1,1,1,1,-1,1,0,-1,0,0,-1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,-1,1,0,-1,0,0,0,0,0,0,0,-1,0,1,0,0,-1,0,0,-1,0,0,-1,-1,0,1,0,0,0,0,0,0,1,0,1,1,0,-1,1,0,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,1,0,0,-1,0,0,0,1,-1,0,0,0,0,0,-1,-1,0,-1,0,-1,0,0,0,1,1,0,0,1,-1,-1,1,0,0,0,-1,1,0,0,1,-1,-1,0,0,-1,0,1,0,-1,-1,0,1,-1,-1,-1,0,0,1,0,0,1,-1,0,0,1,0,-1,1,-1,1,0,0,0,0,0,-1,-1,0,1,0,1,0,1,1,0,0,-1,0,-1,0,1,0,1,-1,1,0,-1,0,-1,-1,0,0,0,1,1,0,0,0,0,-1,0,-1,0,1,0,0,1,1,-1,0,0,0,0,0,0,0,0,-1,0,-1,0,1,0,1,1,1,0,0,-1,0,-1,-1,0,0,1,-1,0,1,0,0,-1,0,-1,-1,0,0,0,0,0,1,-1,-1,0,1,0,0,0,0,1,1,-1,-1,1,-1,0,1,0,-1,1,0,0,0,0,-1,0,-1,1,1,0,0,0,-1,0,1,0,1,-1,1,0,-1,0,-1,1,1,0,-1,0,0,0,0,-1,0,0,0,1,1,0,-1,1,-1,0,1,0,0,-1,0,0,0,0,1,0,0,-1,-1,-1,0,-1,1,0,-1,0,1,-1,0,1,0,-1,0,-1,-1,0,1,0,0,-1,1,-1,0,0,0,1,1,1,0,0,-1,0,1,0,-1,0,0,-1,0,1,0,-1,-1,0,-1,0,0,0,0,0,-1,-1,0,1,0,0,-1,-1,0,0,-1,0,0,1,0,-1,-1,0,0,0,-1,-1,0,-1,0,0,0,-1,0,0,0,0,0,1,1,-1,0,-1,-1,-1,1,-1,0,0,0,-1,1,0,0,-1,1,0,0,0,0,0,0,-1,0,1,-1,-1,0,-1,1,-1,0,-1,1,1,0,1,0,-1,0,0,-1,0,-1,0,1,0,-1,1,0,0,0,0,1,0,0,0,1,0,-1,0,1,0,-1,0,0,0,1,1,0,0,-1,0,0,0,0,1,0,1,0,1,0,-1,0,-1,-1,0,-1,0,0,0,0,0,1,-1,1,1,0,0,0,0,1,1,0,1,1,-1,0,0,0,0,0,-1,0}, {-1,1,1,0,1,1,0,0,1,0,0,-1,1,1,-1,0,1,-1,1,1,0,0,0,-1,0,1,1,0,-1,0,0,-1,0,1,0,-1,0,0,1,0,0,0,1,0,0,-1,-1,0,1,1,0,-1,0,0,1,1,0,1,0,-1,0,0,1,1,-1,0,0,1,-1,-1,0,0,0,-1,-1,1,0,0,1,0,0,0,0,0,0,0,0,0,-1,1,-1,0,0,-1,0,1,-1,1,1,0,0,1,0,-1,0,-1,1,0,-1,-1,-1,-1,0,0,0,0,1,0,0,1,1,0,-1,1,-1,1,-1,0,0,1,1,1,0,1,0,-1,-1,1,0,1,-1,1,0,1,-1,0,-1,0,0,1,1,-1,1,0,-1,0,0,-1,0,0,0,0,0,-1,0,0,0,0,-1,0,1,0,0,-1,0,0,0,0,0,0,1,-1,0,0,0,-1,-1,1,0,0,-1,0,0,0,0,1,0,0,1,0,0,-1,1,0,0,1,0,0,0,1,0,-1,-1,1,0,-1,1,1,0,0,0,-1,-1,-1,1,0,-1,0,1,0,1,-1,1,0,0,0,1,1,-1,0,1,0,1,-1,0,0,0,0,0,1,0,1,1,0,0,1,0,-1,1,0,0,-1,0,0,0,-1,0,-1,-1,1,1,-1,1,-1,-1,0,0,0,-1,0,0,0,0,-1,0,1,-1,1,-1,0,-1,0,0,0,0,-1,1,-1,1,-1,0,1,1,1,-1,1,-1,0,-1,1,0,-1,-1,1,0,0,0,-1,0,-1,0,0,-1,1,1,-1,1,0,-1,0,0,0,0,-1,0,1,0,0,1,1,1,-1,0,1,0,0,0,0,1,-1,1,0,-1,0,-1,1,0,1,0,0,1,0,-1,0,0,1,0,0,0,-1,1,-1,-1,-1,0,0,1,-1,0,0,1,0,1,1,0,-1,1,-1,1,-1,0,1,0,-1,0,-1,0,0,0,0,1,0,0,-1,0,0,0,0,0,-1,0,-1,1,0,1,0,1,0,-1,0,-1,0,0,1,0,-1,0,0,1,-1,1,0,1,0,1,0,1,1,1,0,1,0,1,1,1,0,0,0,1,0,0,0,-1,1,0,0,1,-1,0,-1,0,0,-1,-1,0,1,1,1,1,0,0,-1,1,0,0,-1,0,0,0,0,-1,0,0,0,1,-1,0,-1,0,-1,-1,0,1,0,-1,0,1,0,0,0,-1,0,1,0,1,-1,0,0,0,0,0,-1,1,-1,-1,-1,0,0,0,0,-1,0,0,0,1,0,0,1,-1,-1,-1,0,0,1,1,-1,0,0,0,0,-1,1,-1,1,0,0,1,1,-1,0,0,1,1,0,1,0,0,0,0,-1,0,0,0,0,0,0,1,0,1,1,0,1,1,1,0,0,1,0,-1,-1,0,-1,-1,-1,0,0,0,0,0,1,0,0,-1,-1,1,1,0,1,0,1,1,0,-1,1,0,-1,0,1,0,0,-1,1,0,0,1,0,1,0,-1,0,1,0,0,0,1,-1,0,-1,1,1,-1,0,-1,0,0,1,1,-1,0,-1,-1,-1,1,-1,0,1,0,1,-1,0,0,1,0,-1,0,1,-1,-1,-1,-1,1,0,-1,1,0,-1,0,1,0,0,0,1,0,-1,0,-1,1,-1,-1,0,1,0,-1,0,1,0,-1,0,0,0,0,0,1,0,1,-1,1,0,1,1,0,1,0,0,-1,1,0,1,-1,0,1,0,0,0,1,-1,0,-1,1,-1,0,0,1,-1,0,1,-1,1,1,1,1,1,-1,0,0,0,1,0,1,0,0,-1,-1,-1,-1,-1,-1,0,0,0,-1,0,0,0,-1,-1,0,-1,0,-1,1}, {0,-1,1,0,0,0,0,-1,-1,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,-1,0,1,-1,1,-1,0,0,-1,0,1,-1,0,0,0,-1,0,0,0,-1,0,-1,1,0,-1,0,1,1,0,1,0,0,0,0,-1,-1,-1,-1,1,0,1,-1,1,0,0,-1,1,1,1,1,0,1,1,1,1,1,0,0,0,-1,0,0,1,0,0,0,0,0,-1,0,0,1,1,0,0,0,1,0,1,1,0,0,0,0,1,0,-1,-1,1,-1,1,1,0,0,1,-1,0,-1,0,0,0,0,-1,-1,0,0,0,0,0,1,0,-1,-1,0,1,0,-1,0,0,0,-1,0,-1,1,1,0,0,0,-1,-1,-1,-1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,-1,1,-1,-1,0,1,0,0,-1,0,0,1,-1,-1,0,0,0,0,0,0,0,-1,0,-1,1,0,-1,0,1,0,0,0,0,0,-1,0,0,1,0,0,0,-1,-1,-1,0,0,0,-1,1,0,0,1,0,0,1,0,0,-1,-1,0,-1,-1,-1,0,-1,1,0,0,0,0,1,0,0,1,0,-1,-1,0,0,-1,1,-1,1,0,0,1,-1,0,1,0,0,-1,0,0,-1,-1,1,-1,0,1,1,0,-1,1,1,0,0,0,0,-1,1,1,0,1,1,0,1,0,1,0,-1,0,-1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,-1,-1,0,0,0,1,0,0,1,1,0,-1,1,-1,0,0,0,1,0,0,1,0,1,0,-1,-1,0,1,0,1,1,1,0,-1,-1,0,1,0,-1,1,0,-1,0,1,-1,-1,-1,-1,1,0,1,0,0,-1,0,0,0,-1,0,0,0,-1,0,1,-1,0,-1,0,-1,-1,0,0,1,0,0,0,0,0,0,1,1,1,-1,0,1,0,1,-1,1,0,0,-1,0,-1,0,1,0,-1,1,0,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,1,1,0,-1,1,0,0,1,0,1,1,0,1,1,0,0,0,0,1,1,1,1,0,1,0,-1,0,0,0,1,1,-1,-1,-1,1,-1,-1,0,-1,0,0,1,-1,0,1,-1,-1,0,0,-1,0,1,0,-1,0,0,1,1,0,0,0,-1,-1,-1,0,1,-1,0,-1,1,0,1,-1,1,1,1,-1,0,1,0,0,-1,0,-1,0,-1,0,0,-1,-1,0,1,-1,0,-1,0,0,0,1,1,-1,0,0,-1,-1,0,0,0,-1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,-1,0,-1,0,0,-1,0,1,1,0,0,-1,0,-1,0,0,-1,1,0,0,1,-1,-1,1,0,0,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,-1,1,-1,0,1,-1,0,0,0,1,1,0,-1,0,0,1,0,1,0,-1,0,0,0,0,0,0,1,0,0,1,-1,1,0,0,-1,0,0,1,0,0,-1,0,1,0,-1,0,0,-1,-1,1,1,0,0,-1,0,0,-1,-1,-1,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1,0,0,0,-1,-1,-1,1,0,1,0,0,-1,0,0,0,1,1,0,1,0,1,0,1,-1,0,1,0,0,1,1,-1,0,0,0,0,0,0,0,1,-1,1,-1,0,0,0,-1,0,-1,0,0,0,-1,1,0,-1,0,0,0,-1,0,0,0,0,0,0,-1,-1,0,1,1,0,-1,0,0,-1,1,0,0,0,0,0,0,0,0,-1,1,0,-1,0,-1,1,0,1,0,-1,0,-1,-1,-1,-1}, {0,1,-1,0,1,1,-1,-1,0,1,-1,0,-1,0,1,0,-1,0,0,-1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,1,1,1,-1,0,0,0,0,-1,0,0,1,1,0,-1,0,1,1,0,0,1,1,1,0,0,-1,1,0,0,-1,0,0,0,0,0,-1,-1,0,0,0,0,0,1,1,0,1,1,-1,0,1,-1,0,0,1,0,0,1,-1,0,0,0,0,0,-1,1,0,0,0,1,0,0,-1,-1,1,0,0,0,0,0,0,-1,0,0,1,-1,0,0,1,0,0,-1,-1,0,0,0,0,0,1,0,-1,0,1,-1,1,0,0,-1,-1,-1,1,0,1,-1,0,0,0,0,1,-1,-1,1,1,0,-1,0,1,-1,1,-1,0,0,0,0,0,1,-1,0,0,1,1,0,-1,0,0,-1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,-1,0,-1,0,0,1,-1,0,1,0,0,0,-1,0,-1,0,0,0,0,-1,-1,0,-1,-1,0,1,-1,1,-1,1,-1,1,0,0,-1,0,0,0,1,-1,0,0,-1,0,1,-1,-1,1,0,1,-1,0,-1,0,-1,1,0,0,1,-1,-1,-1,-1,0,0,-1,-1,0,1,0,-1,0,1,0,0,1,-1,0,0,1,1,-1,-1,-1,1,0,0,0,0,1,1,1,-1,-1,1,0,-1,0,-1,1,-1,0,1,1,0,0,0,0,-1,0,0,0,0,0,0,1,-1,1,-1,0,-1,0,0,0,0,1,1,0,0,0,0,-1,-1,0,1,1,-1,0,-1,0,0,0,0,0,-1,0,-1,0,0,0,-1,1,0,0,1,0,0,0,0,-1,0,-1,1,0,0,1,-1,-1,0,1,0,0,0,1,0,0,-1,-1,0,0,0,0,1,-1,0,-1,0,-1,-1,0,0,0,0,1,0,-1,1,0,0,-1,0,-1,-1,0,-1,0,-1,0,-1,1,0,1,1,1,0,0,1,1,-1,0,-1,1,0,0,1,1,0,1,1,1,1,1,-1,0,0,0,-1,0,1,1,0,0,-1,-1,-1,-1,1,-1,-1,0,0,0,0,-1,0,0,0,1,-1,0,1,1,1,1,0,0,1,0,0,0,-1,0,1,0,-1,0,1,0,-1,-1,0,1,-1,-1,0,0,0,0,-1,-1,0,0,1,1,-1,0,1,0,1,1,0,0,1,1,0,1,-1,1,0,1,-1,0,0,0,1,0,-1,0,1,-1,-1,-1,0,0,1,0,-1,1,0,0,1,-1,0,0,0,1,0,0,0,0,0,1,0,0,-1,0,0,0,-1,0,0,0,0,1,-1,0,0,0,-1,1,1,1,1,-1,-1,0,1,0,1,1,0,0,0,0,0,1,0,0,1,-1,-1,1,-1,0,-1,1,-1,1,0,0,-1,0,0,0,0,0,0,0,0,0,0,-1,0,-1,1,0,1,0,0,1,1,1,-1,0,-1,-1,1,1,1,-1,-1,0,0,0,0,-1,0,0,-1,0,1,1,-1,0,1,0,-1,-1,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,-1,-1,0,-1,0,0,-1,-1,0,0,0,0,0,-1,-1,0,0,0,-1,0,1,0,-1,0,0,1,0,-1,-1,1,0,-1,0,0,1,1,0,0,0,-1,1,0,-1,0,-1,0,0,-1,1,0,0,1,1,0,1,1,-1,0,0,0,0,1,-1,0,0,-1,1,0,1,1,1,0,0,0,0,0,-1,0,0,0,-1,0,0,0,0,0,0,1,1,0,0,0,0,-1,1,0,-1,1,0,0,-1,0,1,1,0,-1,0,1}, } ; static const unsigned char precomputed_core_mult3sntrup761_k[precomputed_core_mult3sntrup761_NUM][crypto_core_KEYBYTES] = { {0,0,0,1,0,-1,0,0,1,0,0,0,0,-1,1,0,1,0,1,0,-1,-1,-1,-1,-1,0,-1,0,0,0,0,1,-1,-1,0,0,-1,0,0,0,0,-1,1,1,-1,-1,0,0,-1,0,-1,-1,1,0,1,0,-1,0,1,0,0,0,0,0,0,-1,1,0,0,1,0,0,1,-1,0,1,-1,0,1,1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,1,1,0,-1,0,0,-1,0,0,1,0,0,0,0,-1,0,1,1,0,1,1,0,0,-1,1,-1,0,0,1,-1,-1,1,1,0,0,0,0,0,-1,0,1,0,0,0,1,-1,0,1,-1,-1,0,0,0,1,1,-1,0,0,1,0,-1,0,1,-1,0,0,0,0,0,1,0,-1,0,0,0,-1,1,0,0,1,0,1,0,1,0,0,0,0,-1,-1,0,-1,0,-1,-1,0,0,-1,-1,1,-1,0,-1,1,0,1,0,1,-1,0,-1,1,-1,0,0,1,0,0,-1,0,0,0,0,1,1,0,0,0,1,0,0,-1,1,1,-1,0,0,-1,-1,0,1,0,0,0,1,-1,1,-1,1,0,0,0,-1,0,-1,0,0,-1,0,-1,1,0,0,1,0,-1,0,1,0,-1,0,-1,-1,0,0,0,-1,0,-1,-1,0,-1,1,0,1,0,0,0,1,-1,0,-1,-1,-1,-1,-1,-1,-1,0,0,-1,0,-1,1,0,1,1,1,0,1,0,1,1,0,1,0,-1,0,1,0,0,0,0,0,-1,0,-1,1,-1,0,-1,-1,1,1,0,-1,0,0,0,1,1,0,0,0,0,-1,-1,-1,0,-1,0,0,1,-1,1,0,0,-1,1,0,-1,1,0,1,0,1,0,0,-1,0,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,0,-1,0,1,1,1,1,0,0,1,0,0,0,0,1,1,1,-1,0,0,-1,0,1,-1,1,0,0,-1,-1,0,1,1,-1,-1,-1,-1,0,0,1,-1,0,0,0,1,-1,0,1,1,0,1,0,-1,0,-1,0,-1,-1,0,1,0,1,0,0,0,0,-1,0,-1,1,1,0,0,0,0,-1,0,0,0,1,-1,0,0,1,1,1,0,1,0,0,0,0,-1,0,0,-1,0,-1,1,0,-1,0,1,0,-1,1,0,-1,1,0,0,0,0,-1,0,0,0,0,0,-1,1,1,0,1,-1,0,1,0,0,-1,1,0,0,-1,-1,0,-1,-1,-1,1,0,-1,0,-1,0,0,0,-1,1,0,1,0,1,0,0,1,0,1,-1,0,0,0,1,1,-1,0,0,0,-1,1,-1,1,-1,0,0,1,1,0,0,1,0,1,1,1,1,0,1,0,1,-1,-1,1,0,-1,1,0,-1,0,1,0,0,-1,-1,-1,0,-1,1,-1,1,-1,0,-1,-1,1,0,-1,0,0,1,0,0,1,-1,0,0,1,0,0,-1,0,0,-1,-1,0,0,0,0,1,0,1,-1,0,0,0,-1,0,0,-1,0,0,0,0,0,1,1,0,0,-1,-1,0,1,1,0,0,1,-1,-1,0,1,0,0,0,0,-1,0,-1,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,1,0,0,1,0,-1,0,1,1,-1,-1,-1,0,-1,1,1,0,0,0,-1,-1,1,1,-1,-1,0,1,-1,0,0,1,1,0,1,0,0,-1,1,0,0,1,1,-1,-1,1,0,1,-1,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,-1,-1,1,0,1,0,1,1,-1,1,1,0,1,1,0,-1,1,0,-1,0,0,0,0,-1,0,0,-1,0,0,0,-1,-1,0,1}, {0,0,1,1,-1,-1,-1,0,-1,0,1,0,0,0,0,0,1,0,-1,0,0,-1,0,1,1,-1,1,0,1,0,0,-1,-1,-1,0,0,1,0,1,-1,0,1,0,0,0,-1,0,0,1,-1,0,1,0,1,0,1,-1,0,1,1,0,1,0,-1,0,1,1,0,-1,1,0,0,0,0,1,0,1,1,0,0,0,-1,0,0,1,-1,0,-1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,-1,1,-1,0,-1,-1,0,1,-1,0,1,1,1,0,0,0,0,-1,0,-1,1,1,1,-1,0,1,0,-1,1,-1,0,-1,-1,0,0,-1,-1,1,1,-1,0,-1,1,0,0,0,0,1,1,-1,-1,0,1,-1,0,1,0,-1,-1,0,0,0,0,0,1,-1,0,-1,1,-1,0,-1,1,1,0,0,0,1,0,0,1,0,0,-1,0,0,1,0,-1,-1,0,1,-1,0,1,-1,-1,-1,0,0,1,1,1,0,-1,0,-1,0,0,-1,1,1,-1,1,0,-1,0,0,0,0,1,0,-1,-1,-1,0,1,1,1,1,-1,0,0,1,1,-1,-1,1,0,0,0,0,1,0,0,-1,1,1,1,0,1,0,-1,0,0,0,1,0,0,0,1,-1,0,-1,1,0,0,0,0,0,1,-1,0,-1,1,0,0,1,0,0,0,1,-1,-1,0,-1,0,-1,0,0,-1,1,1,1,0,-1,0,0,0,-1,-1,-1,1,0,0,0,1,0,0,-1,-1,0,-1,0,1,0,0,1,0,0,1,1,1,-1,1,0,-1,-1,1,-1,0,0,1,1,0,0,-1,0,0,0,-1,1,0,0,1,0,-1,0,0,0,0,0,0,0,0,1,0,1,0,0,-1,0,-1,0,0,1,0,-1,0,-1,0,1,-1,-1,1,-1,1,-1,0,0,1,1,-1,0,-1,0,1,0,0,0,-1,1,0,0,-1,-1,0,0,1,0,0,-1,0,0,0,0,-1,0,1,1,-1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,-1,0,0,0,0,1,1,0,0,-1,1,0,0,0,1,0,-1,1,0,0,0,-1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1,1,1,-1,1,0,-1,0,0,-1,0,0,-1,0,0,-1,1,-1,1,1,-1,0,0,0,0,0,1,-1,-1,0,0,0,0,0,0,1,0,0,0,-1,-1,-1,0,0,0,0,0,0,-1,0,-1,-1,-1,-1,0,1,0,0,0,1,0,0,0,0,1,0,1,-1,-1,1,0,1,-1,1,0,-1,0,0,0,0,-1,0,-1,0,0,0,-1,0,1,-1,0,0,-1,-1,-1,0,0,0,0,1,-1,0,1,1,-1,0,1,0,0,1,1,-1,0,1,0,0,1,0,0,-1,0,0,0,-1,0,0,1,0,-1,-1,0,0,1,-1,0,0,-1,-1,1,0,1,-1,1,1,0,0,0,-1,0,0,0,0,1,0,-1,1,1,-1,0,0,0,0,0,0,1,0,0,0,-1,-1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,-1,0,1,-1,1,-1,0,0,0,0,1,-1,0,0,0,-1,0,0,0,-1,1,0,0,0,-1,-1,0,0,0,-1,0,0,1,1,-1,0,0,0,-1,-1,0,0,0,-1,1,-1,1,0,1,0,0,0,-1,0,1,-1,-1,-1,1,-1,1,0,0,0,1,1,0,0,-1,0,0,-1,0,0,1,-1,-1,0,-1,0,0,1,1,0,1,0,-1,0,-1,-1,1,0,-1,-1,0,0,1,1,1,1,-1,0,0,0}, {1,0,0,0,1,1,-1,0,1,0,0,1,1,1,-1,0,0,0,0,0,0,1,0,-1,0,1,0,0,0,0,0,0,0,0,0,1,-1,1,-1,1,0,1,0,1,0,1,-1,0,0,0,1,-1,1,0,0,1,-1,-1,0,0,0,0,1,1,-1,0,0,1,0,0,0,-1,0,0,-1,-1,1,-1,0,-1,1,0,0,0,1,1,1,1,-1,0,1,-1,-1,0,1,1,0,0,0,0,0,1,0,-1,1,1,0,0,0,-1,-1,-1,0,0,1,1,-1,1,0,-1,0,0,0,0,1,0,0,0,-1,0,-1,1,0,-1,-1,1,1,0,1,-1,0,1,-1,1,0,0,0,0,0,0,0,1,0,0,1,-1,0,0,1,0,0,-1,0,-1,-1,1,1,0,0,-1,-1,0,0,0,0,0,0,0,-1,-1,0,1,0,-1,0,0,0,0,1,0,1,-1,0,-1,0,1,0,-1,-1,-1,1,0,0,0,1,1,1,0,-1,-1,1,0,0,0,1,0,0,1,1,-1,1,0,-1,1,0,0,-1,1,-1,0,0,1,0,-1,0,-1,0,0,0,1,1,0,0,-1,0,0,0,0,-1,1,1,-1,0,1,-1,-1,0,1,-1,1,0,0,0,0,1,1,1,1,-1,1,-1,0,0,0,1,0,0,0,1,0,-1,0,0,0,0,0,0,0,-1,-1,0,0,0,-1,-1,0,1,0,0,1,1,0,0,0,-1,1,0,1,-1,-1,-1,-1,1,1,-1,-1,0,-1,0,0,1,1,0,0,-1,0,-1,-1,1,0,1,0,0,-1,0,-1,-1,0,0,0,0,-1,0,1,1,0,-1,1,1,0,0,0,0,0,1,0,0,-1,1,1,0,-1,0,0,1,1,-1,0,-1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,0,-1,0,0,0,0,0,0,0,1,-1,-1,0,1,0,0,0,0,-1,1,1,0,-1,0,1,1,1,-1,-1,1,-1,1,0,0,0,1,0,-1,0,-1,0,0,1,1,0,-1,1,0,0,-1,0,0,1,1,-1,0,0,-1,-1,0,0,0,1,1,0,1,0,1,0,-1,0,0,0,-1,1,1,-1,0,-1,1,0,-1,0,1,0,-1,1,1,1,0,-1,0,0,0,0,0,1,1,-1,-1,0,1,0,0,-1,0,1,0,0,1,0,0,1,0,-1,-1,0,0,0,0,-1,-1,0,-1,-1,0,0,-1,1,-1,-1,0,0,1,0,-1,1,-1,-1,-1,-1,-1,0,1,0,0,0,-1,0,0,0,0,0,-1,0,1,-1,0,-1,0,-1,1,0,-1,1,0,1,-1,0,0,-1,0,0,1,0,0,0,0,0,1,0,0,0,-1,-1,1,-1,0,-1,-1,-1,-1,0,0,-1,1,-1,0,0,0,1,0,1,0,0,0,0,0,-1,1,0,0,-1,1,0,-1,0,0,-1,0,1,-1,-1,0,0,-1,1,0,-1,0,0,1,0,0,-1,0,0,1,0,-1,0,0,1,0,-1,0,1,0,-1,0,1,0,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,0,0,-1,0,0,0,0,-1,1,0,-1,-1,0,0,1,1,0,1,0,0,0,0,0,-1,0,0,0,0,0,1,0,0,-1,-1,-1,0,1,0,0,-1,0,-1,1,1,-1,0,-1,1,1,-1,0,1,0,1,-1,0,-1,0,0,0,0,1,-1,1,-1,-1,0,-1,0,-1,0,0,-1,0,1,0,-1,0,1,-1,0,0,0,0,1,-1,0,1,0,0,0,-1,0,0,1,-1,-1,0,1,0,-1,0,0,-1,-1}, {0,-1,0,0,0,0,1,-1,0,0,0,-1,-1,0,0,-1,0,-1,1,0,0,0,0,1,0,0,1,0,1,0,0,1,-1,-1,0,0,1,-1,0,1,-1,1,-1,1,-1,0,0,-1,1,1,0,0,-1,0,0,0,1,1,0,0,0,1,0,-1,-1,1,0,-1,0,0,1,0,0,0,-1,-1,0,-1,1,-1,1,-1,-1,0,0,0,1,-1,0,1,1,0,-1,0,-1,0,0,0,-1,0,1,0,0,0,-1,0,0,0,-1,0,1,1,0,1,-1,0,0,1,-1,1,0,0,1,1,-1,-1,-1,0,0,1,1,0,0,1,1,0,1,-1,-1,0,0,0,-1,-1,-1,0,0,1,0,0,-1,0,-1,1,0,0,-1,0,1,-1,-1,1,0,1,0,-1,0,0,-1,1,1,-1,-1,0,1,0,1,1,0,-1,-1,0,0,0,1,0,0,0,0,0,0,0,-1,0,-1,0,-1,-1,0,-1,1,1,0,0,-1,0,-1,1,0,-1,0,1,0,0,-1,0,-1,0,0,0,0,0,1,0,-1,-1,1,0,0,1,1,0,-1,0,0,0,0,0,0,0,0,-1,-1,1,-1,1,0,1,1,0,0,0,-1,-1,0,-1,1,1,0,-1,-1,1,1,1,1,1,0,0,-1,0,1,0,1,1,-1,0,1,0,-1,0,1,1,0,0,0,-1,-1,-1,-1,-1,-1,0,1,0,-1,1,0,0,-1,0,0,1,-1,1,0,-1,1,0,0,1,0,1,0,-1,0,-1,1,0,0,1,0,0,-1,0,-1,0,-1,0,1,1,-1,0,0,1,1,0,1,1,-1,1,-1,1,0,0,1,0,-1,1,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,1,-1,-1,-1,0,0,-1,0,0,1,1,1,1,1,1,0,1,0,0,1,1,-1,-1,1,0,-1,-1,0,0,-1,0,-1,0,-1,-1,0,0,0,-1,-1,-1,0,0,0,-1,0,1,0,0,1,1,-1,-1,-1,0,0,1,-1,0,0,-1,1,0,0,0,0,0,-1,0,0,0,-1,1,1,1,0,-1,0,1,0,0,-1,0,-1,0,1,1,0,0,-1,0,1,0,1,-1,0,0,0,0,1,-1,-1,0,0,-1,-1,1,-1,0,0,0,0,-1,0,0,1,0,0,0,-1,0,0,-1,0,1,0,0,-1,0,1,0,0,0,1,-1,-1,-1,0,-1,0,1,-1,-1,0,-1,-1,0,-1,0,0,0,0,1,0,-1,0,-1,0,1,0,0,1,1,0,-1,0,-1,-1,0,-1,0,-1,-1,0,-1,0,-1,0,1,1,0,0,-1,1,1,0,0,0,1,0,1,-1,0,-1,-1,0,1,0,-1,0,1,1,0,1,0,-1,1,1,0,0,-1,0,0,1,0,-1,0,-1,0,0,0,0,1,0,0,0,0,1,-1,-1,-1,1,-1,0,1,-1,0,0,-1,1,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,1,0,1,0,1,0,0,1,1,-1,0,0,0,0,0,0,1,-1,0,-1,1,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,0,0,1,-1,1,-1,0,1,-1,0,1,-1,1,-1,1,0,1,0,-1,0,0,-1,0,1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,-1,1,1,1,0,0,-1,1,1,1,-1,1,-1,0,-1,-1,0,1,0,1,0,-1,-1,0,-1,1,0,0,-1,-1,0,1,0,1,1,0,-1,0,1,0,1,0,0,0,0,-1,0,0,-1,0,0,0,0,-1,0,0,0,1,0,-1,0,0,-1,0,1,0,0,-1,1,1,1}, } ; static const unsigned char precomputed_core_mult3sntrup761_c[precomputed_core_mult3sntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_mult3sntrup761_impl(long long impl) { unsigned char *h = test_core_mult3sntrup761_h; unsigned char *n = test_core_mult3sntrup761_n; unsigned char *k = test_core_mult3sntrup761_k; unsigned char *c = test_core_mult3sntrup761_c; unsigned char *h2 = test_core_mult3sntrup761_h2; unsigned char *n2 = test_core_mult3sntrup761_n2; unsigned char *k2 = test_core_mult3sntrup761_k2; unsigned char *c2 = test_core_mult3sntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup761(impl); printf("core_mult3sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup761_implementation(impl),ntruprime_dispatch_core_mult3sntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup761; printf("core_mult3sntrup761 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup761_implementation(),ntruprime_core_mult3sntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_mult3sntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_mult3sntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_mult3sntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_mult3sntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_mult3sntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_mult3sntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_mult3sntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_mult3sntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_mult3sntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_mult3sntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_mult3sntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup761")) return; storage_core_mult3sntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_mult3sntrup761_h = aligned(storage_core_mult3sntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_mult3sntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_mult3sntrup761_n = aligned(storage_core_mult3sntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_mult3sntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_mult3sntrup761_k = aligned(storage_core_mult3sntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_mult3sntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_mult3sntrup761_c = aligned(storage_core_mult3sntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_mult3sntrup761_h2 = callocplus(maxalloc); test_core_mult3sntrup761_h2 = aligned(storage_core_mult3sntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_mult3sntrup761_n2 = callocplus(maxalloc); test_core_mult3sntrup761_n2 = aligned(storage_core_mult3sntrup761_n2,crypto_core_INPUTBYTES); storage_core_mult3sntrup761_k2 = callocplus(maxalloc); test_core_mult3sntrup761_k2 = aligned(storage_core_mult3sntrup761_k2,crypto_core_KEYBYTES); storage_core_mult3sntrup761_c2 = callocplus(maxalloc); test_core_mult3sntrup761_c2 = aligned(storage_core_mult3sntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_mult3sntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup761();++impl) forked(test_core_mult3sntrup761_impl,impl); ++test_core_mult3sntrup761_h; ++test_core_mult3sntrup761_n; ++test_core_mult3sntrup761_k; ++test_core_mult3sntrup761_c; ++test_core_mult3sntrup761_h2; ++test_core_mult3sntrup761_n2; ++test_core_mult3sntrup761_k2; ++test_core_mult3sntrup761_c2; } free(storage_core_mult3sntrup761_c2); free(storage_core_mult3sntrup761_k2); free(storage_core_mult3sntrup761_n2); free(storage_core_mult3sntrup761_h2); free(storage_core_mult3sntrup761_c); free(storage_core_mult3sntrup761_k); free(storage_core_mult3sntrup761_n); free(storage_core_mult3sntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_mult3sntrup857.c0000644000000000000000000010350714705505543023637 0ustar rootroot/* ----- core/mult3sntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_mult3sntrup857_checksums[] = { "1da51dad572b15486fcb9feee50a8ff22af3ab0cc7c02d0f4873f7fb250cad15", "ae3c60101ad3de65884fd7019032d0e5be3b3f17c4e01bc9cfb0884ccaf9deb6", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_mult3sntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_mult3sntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_mult3sntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_mult3sntrup857_CONSTBYTES static void *storage_core_mult3sntrup857_h; static unsigned char *test_core_mult3sntrup857_h; static void *storage_core_mult3sntrup857_n; static unsigned char *test_core_mult3sntrup857_n; static void *storage_core_mult3sntrup857_k; static unsigned char *test_core_mult3sntrup857_k; static void *storage_core_mult3sntrup857_c; static unsigned char *test_core_mult3sntrup857_c; static void *storage_core_mult3sntrup857_h2; static unsigned char *test_core_mult3sntrup857_h2; static void *storage_core_mult3sntrup857_n2; static unsigned char *test_core_mult3sntrup857_n2; static void *storage_core_mult3sntrup857_k2; static unsigned char *test_core_mult3sntrup857_k2; static void *storage_core_mult3sntrup857_c2; static unsigned char *test_core_mult3sntrup857_c2; #define precomputed_core_mult3sntrup857_NUM 4 static const unsigned char precomputed_core_mult3sntrup857_h[precomputed_core_mult3sntrup857_NUM][crypto_core_OUTPUTBYTES] = { {1,255,1,255,255,255,255,1,0,255,1,1,255,1,0,1,0,1,0,1,255,255,1,255,0,1,255,1,1,255,1,0,255,255,255,1,1,255,0,1,1,255,255,1,0,1,255,255,1,0,255,1,1,0,0,0,1,255,0,1,1,1,255,1,255,0,1,1,0,0,255,0,255,0,1,255,0,255,255,1,255,255,1,1,1,255,255,1,255,0,0,0,255,255,0,1,255,255,0,0,0,1,0,0,255,255,0,255,0,255,255,0,255,1,1,255,1,1,1,255,255,0,255,1,255,255,0,1,1,0,0,0,1,1,0,1,255,1,0,0,0,1,255,0,255,255,1,255,1,1,1,255,255,1,0,255,1,1,0,255,0,0,1,255,0,255,0,0,255,0,1,0,1,1,255,255,1,0,255,255,1,0,0,255,0,1,0,255,0,1,0,255,0,255,0,0,255,1,255,1,255,1,1,255,255,1,1,1,255,1,255,0,0,1,255,1,0,1,0,0,1,0,255,0,1,1,0,0,1,255,0,255,1,1,1,255,255,1,1,1,0,255,255,255,255,255,1,1,255,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,0,0,255,0,255,1,0,0,0,0,255,255,0,255,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,255,1,255,255,255,0,255,0,1,0,1,1,0,1,1,0,1,255,255,0,0,1,1,0,0,0,255,1,1,0,0,0,0,0,255,1,0,1,1,1,0,1,255,1,0,0,0,1,0,1,1,255,1,255,0,255,1,0,255,0,0,255,255,1,255,0,0,0,0,0,1,1,255,255,0,0,255,1,1,255,255,255,1,255,0,1,255,1,255,0,0,0,0,1,255,1,1,0,255,255,0,255,1,1,1,1,0,0,1,1,255,255,255,255,1,255,255,1,0,255,255,0,255,1,255,1,1,0,255,1,1,1,255,1,1,0,0,255,1,0,0,1,255,255,0,0,1,255,0,255,1,0,255,1,255,1,255,255,0,1,0,1,1,0,255,255,255,0,1,0,0,0,255,0,255,255,0,255,255,0,1,0,255,255,255,255,0,0,0,0,1,1,1,1,255,255,1,255,255,0,0,255,0,255,0,255,255,1,255,0,255,0,1,1,1,255,0,255,255,255,255,255,0,0,1,0,1,1,1,1,255,255,1,255,1,0,255,1,255,0,0,255,0,255,1,0,1,255,1,255,0,0,255,0,1,255,255,1,255,0,255,255,0,255,1,1,1,255,0,0,255,0,0,255,1,0,1,1,255,1,255,255,1,1,0,255,255,255,255,0,0,255,255,255,0,255,0,1,255,1,1,255,1,0,0,0,255,0,255,0,0,255,0,255,255,1,255,0,1,1,255,0,0,1,255,0,255,255,0,255,0,1,255,0,255,255,1,1,1,0,255,1,0,1,0,0,1,0,1,255,1,0,1,1,255,255,1,1,0,1,255,1,1,255,1,0,1,0,255,1,1,255,255,0,0,1,255,255,1,1,0,0,255,0,255,255,255,0,1,0,0,1,255,255,255,0,1,0,0,0,255,255,255,0,255,1,255,0,1,0,0,0,255,0,0,255,0,1,255,1,1,1,0,0,255,0,0,0,0,255,1,1,0,1,1,0,0,255,255,255,0,1,1,255,255,255,0,255,1,0,1,1,0,255,0,1,0,1,255,0,1,255,255,0,255,0,1,255,1,1,255,255,255,0,1,1,0,1,0,1,255,255,0,255,0,1,1,1,1,255,255,1,0,0,1,255,0,255,255,0,0,255,1,255,255,255,1,255,255,255,1,255,1,0,0,255,0,255,255,0,255,255,255,255,255,255,0,255,0,1,1,255,1,255,1,1,1,1,0,1,255,0,255,0,1,255,0,255,255,0,255,1,255,255,0,0,0,0,255,1,0,1,0,1}, {1,0,255,255,255,1,1,255,0,1,1,1,0,1,255,0,0,1,0,0,0,0,1,1,1,255,0,0,0,1,1,1,255,255,0,1,255,1,255,1,255,0,255,0,1,255,0,0,255,0,0,0,0,1,0,1,255,255,255,255,0,1,255,0,0,255,255,1,255,0,1,1,255,255,1,1,0,255,255,0,255,0,255,1,1,0,255,255,1,0,0,255,0,1,0,0,255,1,255,255,255,1,0,1,255,0,1,1,1,1,0,1,1,255,0,1,255,0,1,1,255,1,1,0,1,0,255,0,1,1,255,1,0,0,1,1,1,1,255,1,1,255,1,1,1,255,255,0,0,255,1,0,0,255,255,255,255,0,255,0,0,1,0,1,1,1,1,255,255,1,255,0,1,0,1,255,0,0,0,255,1,255,255,1,255,1,1,255,255,255,1,1,0,255,0,1,255,0,1,1,255,0,255,1,255,255,255,0,255,0,0,1,0,255,255,0,255,0,255,255,1,255,255,0,255,1,1,0,1,0,255,0,0,255,0,1,255,255,1,255,255,255,1,1,0,0,0,0,1,255,0,0,0,255,255,0,0,255,255,1,0,255,255,255,255,0,1,1,0,1,0,1,255,0,1,255,1,255,255,0,1,0,1,1,255,255,255,1,0,0,1,0,1,0,255,1,0,0,0,1,1,1,0,255,255,1,1,255,255,1,1,1,1,0,255,1,255,1,255,1,255,1,255,255,1,0,255,1,255,255,255,0,0,0,255,1,0,0,1,0,255,1,255,255,255,0,0,0,0,1,1,255,0,1,1,1,0,1,1,255,255,255,255,0,1,0,0,0,0,0,255,1,0,1,1,0,255,0,1,1,255,0,0,0,255,255,1,0,255,255,0,1,255,255,255,255,255,1,255,0,1,255,255,1,1,1,255,255,0,255,0,0,1,0,1,255,0,1,255,1,255,1,0,1,1,1,255,255,1,255,1,0,0,0,255,1,1,255,0,255,255,0,1,255,0,255,255,1,255,0,255,1,1,0,255,0,0,0,255,0,0,1,1,1,1,1,0,255,1,255,0,255,1,255,1,255,255,1,0,255,0,0,1,0,255,255,0,0,1,255,1,255,0,0,0,0,0,255,1,0,255,1,1,255,1,255,0,255,0,0,1,1,1,255,255,0,1,0,0,255,255,255,1,255,255,0,255,255,0,1,255,1,255,0,1,1,1,0,0,1,0,0,0,255,0,255,255,255,0,0,255,0,255,255,255,1,0,1,1,1,255,0,255,0,0,1,0,0,255,0,0,0,1,255,255,0,1,0,255,1,1,255,1,255,0,1,1,1,1,255,1,0,255,0,1,0,0,255,0,0,255,1,1,255,255,0,1,255,1,0,1,255,0,255,1,0,255,0,1,1,0,0,255,255,0,0,0,255,0,1,1,1,1,0,0,255,255,1,0,0,255,0,1,1,0,1,1,255,255,1,0,1,1,255,255,0,0,0,1,1,0,255,0,1,0,1,255,0,0,255,1,1,1,0,1,0,1,255,1,1,255,0,255,1,255,0,0,0,0,255,1,255,0,0,255,0,0,255,0,1,1,0,255,255,255,0,1,255,0,0,0,0,0,0,1,0,255,0,255,0,255,255,255,255,0,1,255,1,1,255,255,0,0,255,0,0,0,0,255,0,0,0,255,0,255,0,0,0,1,1,0,0,1,255,1,255,1,1,255,255,0,0,0,255,0,1,1,255,255,0,1,1,1,255,0,1,0,255,255,0,1,255,1,1,1,255,1,1,0,255,255,0,0,0,255,255,255,0,255,1,0,1,0,0,0,1,255,1,0,255,255,1,0,0,1,0,255,255,1,1,0,255,0,255,1,255,255,0,1,255,1,1,1,0,1,255,255,255,255,1,0,1,1,0,0,0,1,255,0,0,255,1,0,255,1,1,0}, {0,255,255,0,255,1,0,1,0,255,1,0,1,255,255,0,0,255,1,0,0,255,1,0,255,1,1,0,255,0,1,0,255,0,255,0,0,1,1,1,255,1,255,0,255,1,1,1,0,255,1,0,255,1,1,0,1,0,0,255,0,255,0,255,1,0,255,255,255,1,0,1,1,255,1,0,1,0,255,255,1,1,1,255,255,255,1,0,255,0,1,1,0,1,255,255,1,1,0,1,255,0,0,1,1,1,1,0,1,255,255,1,1,0,1,255,255,0,0,255,255,0,0,1,255,0,1,255,1,255,0,255,1,1,1,1,0,255,1,0,0,0,255,0,0,0,255,0,1,255,255,1,1,0,1,0,255,255,1,1,1,0,255,0,0,0,255,0,255,1,1,1,0,1,255,0,0,1,255,1,1,1,0,1,255,255,1,1,0,1,255,1,1,255,0,255,1,1,1,0,255,0,1,0,255,255,0,255,1,0,255,1,0,1,255,255,0,1,1,0,1,0,0,1,255,0,1,1,255,1,0,0,255,255,0,255,1,1,255,1,0,1,1,0,0,255,255,255,255,1,0,1,0,0,0,1,1,1,1,0,0,255,1,0,0,255,1,255,0,1,0,255,0,255,0,255,1,0,1,1,0,1,1,1,1,255,255,255,0,255,255,255,1,255,1,1,1,1,255,255,1,255,0,1,1,0,1,255,1,255,1,1,1,255,0,1,255,1,255,255,255,1,255,0,0,1,1,255,1,0,1,255,0,0,255,0,1,1,255,1,255,255,0,255,0,255,1,255,255,1,0,0,1,0,1,0,0,0,1,1,0,1,0,0,255,255,255,1,1,1,0,0,1,255,0,255,255,255,0,0,1,255,255,255,0,1,1,0,1,1,0,1,1,0,1,255,0,1,255,255,0,0,1,0,255,1,255,1,1,0,1,1,255,0,0,0,1,1,1,255,1,1,1,255,255,0,1,255,255,255,1,0,1,1,255,0,1,1,255,1,0,1,0,0,255,1,0,1,1,0,255,1,0,255,0,255,0,0,0,0,1,255,1,1,1,1,0,0,255,0,255,0,255,1,1,1,1,255,1,0,1,1,1,1,255,1,1,0,0,0,0,255,255,0,255,1,1,1,1,0,0,0,0,1,255,255,1,1,255,255,1,1,0,255,1,0,255,255,255,1,1,255,1,0,0,0,0,1,255,255,0,255,0,0,1,0,255,0,1,1,0,1,1,255,1,255,0,0,0,255,1,0,1,0,1,0,1,1,0,0,0,1,1,0,255,1,1,1,0,255,0,1,1,0,1,255,255,255,1,0,0,0,1,0,0,0,0,0,1,255,1,255,255,255,255,1,255,1,0,1,255,255,255,1,255,255,1,0,0,0,1,0,0,0,255,1,1,0,0,0,255,255,0,255,255,0,0,1,0,255,0,1,1,1,0,1,0,255,0,255,1,0,0,0,1,255,255,255,255,255,0,1,1,1,0,0,255,1,1,0,1,1,0,0,1,255,0,255,1,255,0,255,1,0,0,0,0,255,1,1,1,0,0,0,255,1,0,1,1,0,255,1,0,1,1,255,255,255,1,255,1,255,0,1,0,0,1,0,0,255,0,0,255,0,255,255,0,1,0,0,0,255,1,255,1,0,0,0,0,1,1,255,255,0,255,0,0,255,1,1,255,0,255,0,255,0,1,1,0,1,1,0,1,255,1,1,0,1,255,0,0,255,0,1,0,0,1,1,1,0,0,255,1,255,1,0,255,0,0,0,0,255,1,255,0,1,255,0,0,1,0,1,255,255,255,1,255,1,255,0,255,0,255,1,1,255,255,0,1,255,0,0,255,255,1,1,0,255,1,0,255,255,0,1,0,1,255,0,255,255,1,1,1,0,1,0,0,0,255,255,0,1,1,1,1,1,255,255,0,255,0,1,255,255,1,0,1}, {0,1,0,0,255,255,255,1,1,0,0,0,255,0,1,0,255,0,255,0,1,1,1,1,0,255,1,255,1,255,255,255,1,255,0,255,1,255,255,255,1,0,0,1,0,1,0,1,1,0,1,255,255,0,1,255,1,255,1,255,1,0,0,255,0,255,0,255,1,255,1,1,0,1,1,255,1,0,0,0,1,1,1,1,255,1,0,1,1,1,1,255,0,255,255,1,255,255,1,0,1,255,0,255,0,1,0,255,1,1,0,255,255,0,255,1,1,1,1,255,255,255,255,1,255,0,1,1,0,1,255,1,1,0,0,1,255,0,255,255,1,255,1,1,0,0,0,0,255,255,255,0,1,1,1,255,0,0,255,1,1,255,0,255,255,0,1,0,1,255,255,0,0,0,1,1,0,255,255,255,1,255,255,0,0,255,1,255,255,255,255,255,1,1,0,1,255,255,255,0,1,255,1,0,1,0,0,255,0,1,1,1,255,1,1,0,255,255,0,0,255,255,1,0,255,1,1,1,1,1,1,255,0,1,1,1,255,255,1,255,1,255,0,1,255,1,0,0,1,1,1,1,255,0,1,255,1,0,1,255,0,255,1,1,1,1,1,255,255,255,0,1,0,0,255,255,1,0,1,0,1,0,255,255,0,255,0,255,255,255,0,0,0,255,255,255,1,1,255,0,1,255,0,1,1,255,255,255,0,1,0,255,1,255,1,1,255,1,255,255,255,255,0,1,0,255,255,0,1,255,255,1,0,1,0,255,0,255,0,255,0,255,0,1,0,0,255,255,255,0,1,1,0,1,1,0,255,1,0,255,1,0,255,255,1,0,0,255,255,1,1,255,1,255,1,0,1,1,0,0,1,0,0,0,255,255,0,255,1,255,1,0,1,1,255,0,255,255,255,1,1,255,0,255,255,1,0,0,1,1,255,1,1,1,1,255,0,255,255,1,0,255,255,1,255,1,0,255,255,255,0,0,255,255,255,255,0,0,0,1,0,0,255,1,0,1,1,255,1,255,0,1,0,255,1,255,255,255,255,1,255,0,0,1,255,255,1,1,255,255,255,1,0,0,255,0,255,255,0,255,1,0,0,255,255,1,255,0,255,1,1,0,1,255,255,1,255,1,0,0,255,255,1,1,255,0,255,1,1,0,255,1,1,0,1,1,255,0,255,255,1,0,255,0,255,0,255,1,255,1,1,255,1,1,0,255,255,0,0,0,0,1,0,1,0,255,255,0,1,255,255,255,0,0,255,1,255,255,0,0,0,255,1,0,0,0,0,1,1,0,1,255,0,255,255,0,1,1,255,1,1,1,1,0,0,1,1,255,255,255,255,1,1,1,0,1,1,255,0,1,0,1,0,0,255,0,1,0,255,1,0,1,0,0,0,0,255,1,1,1,0,255,0,0,1,0,0,0,0,0,0,1,0,255,1,1,255,0,0,255,255,255,0,1,1,1,0,1,255,1,1,1,255,0,1,0,1,255,0,1,0,255,1,0,1,0,255,255,1,255,1,1,1,1,255,255,1,0,0,1,0,0,1,1,0,0,1,255,0,1,255,255,1,0,255,1,255,255,1,255,1,0,255,1,255,255,0,1,0,255,0,255,0,255,1,1,255,0,1,255,255,1,1,1,0,255,1,1,255,255,0,1,1,1,0,0,255,255,255,255,0,0,255,255,255,0,1,0,1,0,1,1,255,0,1,0,0,1,255,255,0,255,0,255,0,255,255,255,0,255,1,255,0,0,1,255,0,1,1,1,1,0,255,0,255,1,0,255,255,255,1,1,255,255,255,255,1,0,1,1,0,1,255,255,0,1,255,0,1,255,255,255,1,0,0,255,255,1,255,0,1,255,0,255,1,0,255,255,0,255,1,1,1,1,1,1,255,255,0,255,255,255,255,255,255,1,1,0,0,1,1,255,255,0,255,255,1}, } ; static const unsigned char precomputed_core_mult3sntrup857_n[precomputed_core_mult3sntrup857_NUM][crypto_core_INPUTBYTES] = { {-1,-1,1,-1,0,-1,1,-1,0,0,1,0,0,-1,0,1,0,-1,1,-1,-1,0,0,0,0,0,0,-1,0,1,-1,1,-1,0,0,-1,0,0,0,0,1,1,1,0,1,-1,0,0,1,0,1,0,-1,-1,1,0,-1,0,1,-1,0,0,0,-1,1,0,1,1,1,-1,-1,1,0,0,-1,0,-1,1,0,-1,0,-1,0,0,0,-1,0,-1,1,1,1,0,1,-1,0,-1,0,-1,-1,0,-1,1,-1,0,0,0,0,-1,1,0,0,-1,0,1,0,0,-1,0,0,1,1,0,0,1,1,1,1,0,1,-1,1,1,-1,1,-1,-1,0,0,1,1,0,1,0,0,-1,0,-1,0,-1,0,-1,0,0,1,0,-1,0,0,0,1,-1,0,-1,0,-1,-1,-1,0,0,0,-1,-1,-1,-1,-1,1,0,-1,0,0,0,1,1,-1,-1,0,1,0,0,-1,-1,0,0,-1,0,-1,-1,0,0,-1,-1,-1,0,-1,1,0,0,0,0,0,0,-1,1,1,0,-1,0,1,-1,0,1,0,-1,0,-1,-1,0,1,-1,-1,0,-1,1,-1,0,0,-1,0,-1,0,0,0,0,0,1,1,0,1,-1,0,1,1,0,0,0,1,0,0,1,0,0,1,0,1,1,0,-1,1,0,1,0,0,0,0,0,0,-1,0,1,-1,0,1,0,1,1,0,1,0,1,-1,1,1,0,1,0,1,0,0,-1,0,1,0,0,0,-1,0,0,0,-1,1,0,-1,0,1,0,1,0,0,0,0,1,1,0,0,-1,-1,0,-1,-1,1,0,0,0,0,1,-1,-1,0,0,0,-1,1,0,0,0,0,1,0,1,0,0,-1,0,-1,0,0,0,0,0,0,1,0,0,0,1,0,1,1,-1,0,0,0,1,0,-1,0,-1,1,1,0,0,0,-1,1,-1,1,-1,1,0,1,0,0,1,-1,0,1,1,0,1,1,-1,0,0,1,-1,0,1,-1,1,0,1,0,1,0,0,0,0,0,0,1,0,-1,1,1,1,0,-1,-1,0,0,-1,1,0,0,0,0,1,0,-1,1,-1,0,1,1,0,0,1,0,1,0,0,0,-1,0,-1,0,-1,0,0,-1,0,-1,-1,1,1,1,-1,1,0,0,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,1,0,0,0,1,-1,-1,-1,0,0,0,0,-1,0,0,-1,1,1,0,0,0,1,0,1,0,1,-1,0,-1,-1,0,-1,0,0,0,1,0,0,1,-1,1,0,0,0,-1,0,-1,0,0,0,0,-1,1,0,0,0,0,1,0,-1,1,-1,1,0,-1,0,-1,1,1,0,0,1,-1,1,0,-1,0,0,0,0,0,0,1,0,-1,1,1,0,1,0,1,0,0,1,-1,1,-1,0,1,1,0,1,0,1,-1,1,-1,0,0,1,0,0,0,0,-1,-1,0,0,0,1,0,-1,1,0,1,0,-1,0,-1,0,0,1,0,1,-1,-1,-1,0,0,-1,-1,-1,-1,0,0,0,-1,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,0,-1,1,0,1,-1,0,0,-1,0,0,0,1,0,-1,0,0,0,0,1,0,1,0,0,1,-1,-1,0,0,-1,0,0,0,1,-1,1,0,0,1,0,1,0,1,-1,1,0,1,0,-1,-1,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,0,0,1,-1,0,0,1,0,1,0,-1,1,1,-1,-1,-1,1,1,-1,0,1,-1,0,1,0,0,1,0,-1,1,0,-1,1,0,1,1,0,0,0,0,0,0,0,0,1,-1,0,0,-1,0,-1,0,0,0,0,0,-1,0,0,1,0,1,0,0,0,0,0,0,-1,0,-1,0,0,1,-1,-1,0,1,0,1,0,-1,0,0,0,0,0,0,0,0,-1,-1,0,-1,-1,-1,1,-1,0,-1,0,1,1,0,-1,-1,1,-1,-1,0,0,0,1,0,1,0,0,-1,0,-1,-1,0,-1,1,-1,1,1,0,0,-1,0,0,-1,0,1,-1,0,1,0,0,-1,1,0,0,-1,0,1}, {1,0,0,0,0,0,0,1,0,0,1,0,1,-1,1,1,0,0,0,-1,0,0,0,0,0,1,-1,0,-1,-1,0,1,-1,1,1,1,0,0,-1,-1,1,0,0,0,1,1,-1,1,0,1,-1,-1,0,0,0,0,1,-1,0,1,0,-1,0,1,-1,1,0,-1,0,0,0,0,0,-1,0,0,0,0,1,1,0,-1,0,1,0,0,0,-1,1,0,1,1,0,0,1,0,0,-1,0,-1,-1,0,0,-1,0,0,0,0,-1,0,0,1,-1,0,1,0,0,-1,1,-1,0,0,-1,0,0,0,1,-1,-1,0,-1,0,0,-1,1,1,0,0,0,0,1,-1,1,0,0,0,0,1,0,0,0,-1,0,1,0,0,0,1,0,-1,0,0,0,0,0,0,0,0,1,-1,0,0,0,0,0,-1,0,1,0,0,0,1,1,-1,-1,0,-1,0,0,0,1,1,-1,1,1,-1,1,-1,-1,0,1,0,-1,0,0,-1,1,-1,-1,1,-1,-1,1,0,0,-1,0,0,0,-1,1,0,1,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,-1,-1,-1,0,1,0,0,0,-1,1,0,1,-1,0,1,0,-1,-1,1,0,1,-1,1,0,-1,0,-1,1,1,1,0,1,1,-1,1,0,-1,-1,-1,0,0,0,1,-1,1,0,1,0,-1,0,0,1,1,0,-1,-1,0,0,1,-1,0,0,1,-1,0,0,-1,0,1,0,0,0,0,1,-1,-1,0,0,0,1,1,1,1,1,1,1,1,-1,1,0,0,0,0,0,-1,0,1,-1,0,1,0,-1,1,0,0,-1,0,1,0,0,-1,0,0,-1,-1,-1,1,0,0,-1,0,-1,1,0,-1,0,-1,0,1,-1,1,1,-1,0,-1,-1,-1,0,0,-1,1,0,-1,0,-1,-1,1,1,0,0,0,-1,-1,0,0,-1,0,-1,0,-1,0,-1,-1,0,1,1,1,0,0,0,0,0,0,-1,0,0,0,0,-1,1,1,0,0,0,0,0,0,0,1,-1,0,1,1,0,0,0,0,0,0,-1,0,-1,1,-1,0,1,0,0,0,-1,1,0,1,0,-1,0,0,0,0,0,1,0,1,0,-1,0,0,-1,-1,-1,0,0,0,0,0,-1,0,-1,1,0,-1,0,-1,0,1,0,-1,0,0,0,-1,0,0,-1,1,-1,-1,1,-1,1,0,0,0,-1,0,1,0,1,1,-1,1,0,-1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,-1,1,0,0,0,1,0,0,-1,0,0,0,0,0,-1,1,0,0,0,0,0,-1,0,-1,1,0,0,1,0,-1,0,0,1,0,1,0,0,1,1,0,-1,-1,0,0,0,0,0,0,0,-1,1,0,0,1,0,0,0,0,0,0,-1,0,1,-1,-1,0,1,0,0,1,0,0,0,0,0,1,0,-1,1,1,0,-1,-1,-1,0,1,-1,0,1,0,0,0,-1,0,0,1,-1,1,1,-1,-1,-1,0,0,1,0,1,0,-1,1,1,0,0,-1,1,1,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,-1,-1,-1,0,0,0,0,0,0,1,0,1,0,0,0,0,1,-1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,-1,0,-1,0,0,-1,-1,1,0,0,0,1,0,-1,0,-1,-1,0,-1,-1,-1,1,1,0,0,0,-1,1,0,0,0,-1,1,1,0,0,1,0,0,1,1,0,-1,1,-1,0,1,0,0,1,0,1,1,0,1,0,0,0,-1,0,-1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,-1,0,0,0,0,0,-1,0,0,-1,0,-1,0,0,1,1,0,0,1,-1,0,1,0,0,-1,0,0,-1,0,1,-1,-1,0,1,0,-1,1,0,-1,-1,-1,-1,0,-1,0,1,1,0,1,0,-1,0,1,-1,1,-1,1,0,-1,-1,0,-1,-1,0,0,-1,-1,-1,1,-1,1,-1,-1,0,-1,1,1,1,-1,0,0,0,0,0,-1,-1}, {-1,0,0,-1,0,0,1,1,0,-1,1,1,1,0,0,0,0,1,1,-1,0,0,1,0,-1,1,0,0,1,-1,-1,0,-1,1,1,0,1,0,1,1,-1,0,0,0,-1,0,1,0,0,1,-1,-1,-1,0,-1,0,-1,0,1,1,0,0,1,0,1,0,-1,1,1,0,-1,1,0,-1,0,1,0,0,0,0,-1,1,0,-1,1,-1,0,0,0,0,0,0,0,1,-1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,-1,0,0,-1,0,-1,-1,1,0,1,1,1,-1,0,0,1,0,-1,-1,0,0,-1,1,1,0,0,0,-1,0,1,0,0,0,0,1,1,1,0,0,0,-1,-1,1,0,1,1,1,1,1,-1,1,1,-1,1,0,1,1,0,0,-1,0,0,0,0,0,-1,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,0,0,0,0,-1,0,1,0,1,-1,-1,-1,0,0,1,0,0,1,1,0,1,0,-1,0,0,-1,-1,0,1,0,0,1,-1,0,-1,0,0,1,0,1,1,0,0,0,0,0,-1,-1,-1,0,-1,0,0,0,1,0,0,-1,0,1,-1,0,0,-1,1,1,0,0,0,-1,1,-1,0,-1,-1,0,0,1,-1,-1,0,0,1,1,0,-1,0,0,-1,1,0,0,0,0,0,0,0,0,1,-1,-1,-1,0,0,-1,0,1,-1,-1,0,0,0,1,1,0,1,-1,1,0,0,0,1,0,0,0,0,0,0,1,1,-1,-1,-1,0,-1,0,-1,0,-1,1,1,0,0,-1,1,-1,-1,1,0,0,0,0,1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,1,1,1,-1,0,-1,1,0,1,0,0,-1,0,-1,1,0,0,0,-1,0,0,1,0,1,0,0,0,0,-1,0,0,0,-1,0,1,0,1,-1,0,0,1,1,1,-1,1,0,0,1,0,1,1,-1,0,1,0,-1,-1,1,1,0,0,0,-1,0,0,1,0,0,0,1,0,-1,1,1,0,0,0,1,0,1,0,-1,1,0,0,1,0,-1,0,0,1,-1,1,0,0,-1,0,1,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,-1,0,1,-1,-1,-1,-1,-1,0,0,0,0,0,1,-1,1,1,1,0,-1,0,0,-1,0,1,-1,1,0,0,1,-1,0,0,-1,-1,0,0,-1,0,0,-1,-1,0,0,-1,-1,-1,1,0,-1,-1,0,0,1,-1,-1,0,-1,1,1,-1,1,0,-1,1,0,1,0,0,0,0,0,1,1,0,-1,-1,1,0,1,-1,1,-1,1,0,1,1,0,0,1,0,0,-1,0,-1,1,0,-1,-1,0,0,1,0,0,1,1,0,1,0,0,1,0,0,1,0,-1,0,-1,0,1,0,0,0,-1,1,0,0,1,1,-1,-1,-1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,1,0,-1,0,1,0,1,-1,0,0,1,1,0,-1,0,1,0,0,-1,1,-1,-1,0,0,0,-1,-1,1,0,1,-1,1,0,0,0,1,1,-1,0,0,1,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,-1,0,0,1,1,1,-1,0,1,1,1,-1,-1,0,0,0,-1,1,1,0,0,0,0,1,0,0,0,0,-1,-1,0,0,1,-1,-1,1,0,1,0,0,0,0,0,-1,0,0,1,-1,1,0,1,0,0,0,0,0,1,-1,0,1,-1,0,0,-1,1,0,0,-1,0,0,1,-1,0,-1,0,1,-1,0,1,0,-1,-1,1,1,0,-1,0,-1,-1,0,-1,0,0,1,0,0,0,1,-1,1,1,0,0,1,-1,1,1,0,0,-1,-1,0,0,0,0,0,-1,-1,1,1,1,-1,0,1,-1,0,-1,0,-1,-1,0,0,0,-1,0,0,-1,1,1,0,-1,1,0,-1,0,-1,0,1,0,-1,-1,-1,-1,0,-1,1,0,0,0,-1,0,1,0,0,-1,1,0,1,0,0,0,0,1,0,0,0,1}, {-1,-1,0,0,0,1,1,-1,-1,-1,0,-1,0,0,1,-1,0,0,0,0,0,-1,0,0,1,0,0,-1,1,1,0,0,0,-1,1,0,0,0,1,0,1,0,-1,0,0,-1,1,-1,1,-1,0,-1,0,0,0,-1,0,-1,1,0,0,0,-1,1,0,0,1,1,0,0,0,0,0,-1,-1,1,-1,0,0,0,0,0,0,0,0,1,1,-1,0,0,1,0,-1,0,0,1,-1,1,1,0,-1,1,0,1,-1,1,0,-1,0,0,1,-1,-1,-1,-1,0,1,0,-1,0,-1,0,0,0,1,0,0,1,0,0,0,-1,1,1,0,-1,1,1,-1,0,0,0,-1,-1,1,1,-1,0,1,-1,0,0,0,0,0,0,-1,0,-1,-1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,-1,-1,-1,0,-1,-1,-1,1,1,0,0,1,-1,0,1,1,0,0,0,-1,0,1,0,0,0,0,0,-1,0,-1,0,0,-1,-1,0,1,0,0,1,0,-1,-1,-1,-1,0,0,1,0,1,1,0,0,-1,0,-1,-1,-1,0,0,1,1,1,0,-1,0,-1,0,1,-1,0,-1,0,1,0,0,1,1,1,0,0,0,-1,0,1,1,0,0,0,0,-1,1,0,0,0,1,-1,0,1,0,0,0,-1,-1,0,0,0,-1,0,0,0,1,0,-1,0,0,0,0,1,-1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,-1,0,0,-1,0,-1,1,-1,0,1,1,1,0,-1,0,0,-1,0,0,0,-1,0,-1,0,0,0,1,0,0,1,0,1,1,1,1,-1,0,0,0,1,0,0,1,-1,0,-1,0,0,0,1,0,0,0,1,-1,1,-1,-1,0,0,0,0,0,-1,0,1,-1,1,0,0,-1,1,-1,0,1,0,-1,0,0,0,0,1,-1,-1,0,0,0,-1,0,0,1,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,-1,0,1,-1,-1,0,0,0,0,1,-1,1,0,-1,0,1,0,0,0,1,1,0,0,1,1,0,1,0,0,0,0,0,0,-1,1,1,-1,0,1,1,-1,0,0,1,0,-1,0,0,0,1,-1,-1,0,-1,0,0,-1,1,1,0,1,1,-1,1,-1,-1,1,0,0,1,0,0,0,-1,0,1,1,1,0,0,0,-1,0,0,1,0,1,0,0,1,1,1,0,0,-1,0,-1,1,1,0,0,1,0,0,1,0,0,0,0,1,0,0,-1,0,1,-1,1,1,0,1,-1,-1,0,-1,-1,0,0,-1,-1,0,-1,0,0,0,0,1,1,0,-1,0,1,-1,-1,0,-1,-1,0,-1,0,0,-1,1,0,-1,0,0,0,1,0,0,-1,-1,-1,-1,0,0,1,0,0,0,0,0,-1,-1,-1,1,0,1,0,0,-1,0,1,1,-1,1,1,1,1,-1,0,0,0,0,1,0,0,0,-1,-1,-1,0,1,-1,-1,0,0,-1,0,0,1,0,1,0,1,0,0,1,-1,1,-1,0,0,1,1,0,1,1,-1,-1,1,1,-1,-1,0,-1,0,1,0,-1,1,-1,1,0,1,0,0,0,0,1,0,0,-1,0,0,0,1,1,0,0,1,1,0,1,-1,0,-1,1,0,1,0,0,1,0,1,-1,0,0,0,0,1,-1,-1,0,-1,1,-1,0,0,0,0,-1,0,0,-1,0,1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,-1,0,0,0,0,0,-1,0,0,0,0,1,-1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,-1,1,0,1,0,-1,1,1,0,0,0,0,0,-1,0,0,0,0,0,-1,0,1,0,0,-1,1,-1,-1,0,0,0,0,1,-1,0,0,0,1,0,-1,-1,-1,-1,1,0,-1,-1,0,-1,-1,0,0,-1,0,0,-1,-1,0,0,1,1,0,0,1,1,1,-1,0,0,0,0,1,-1,-1,-1,0,-1,0,0,0,0,0,0,-1,-1,0,1,0,0,-1,0,0,0,1,0,1,0}, } ; static const unsigned char precomputed_core_mult3sntrup857_k[precomputed_core_mult3sntrup857_NUM][crypto_core_KEYBYTES] = { {-1,0,0,-1,-1,0,0,0,1,0,0,0,0,0,1,1,-1,1,0,0,0,0,1,-1,0,-1,-1,0,0,0,0,-1,0,0,0,0,-1,-1,-1,1,1,0,0,0,-1,-1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,1,1,-1,-1,-1,-1,-1,-1,0,0,-1,1,0,1,-1,0,0,-1,0,0,-1,0,0,1,1,1,0,1,0,0,0,0,-1,1,0,1,0,0,0,0,-1,1,-1,0,0,0,-1,-1,0,0,-1,1,1,-1,1,1,1,0,-1,1,-1,-1,-1,0,0,-1,0,0,0,1,0,0,-1,0,-1,1,0,1,1,0,1,1,0,0,-1,-1,-1,0,-1,0,0,1,0,-1,1,0,0,0,1,0,1,-1,-1,-1,1,0,0,-1,0,0,1,0,0,0,0,0,0,-1,0,1,0,1,0,-1,-1,-1,1,1,0,0,-1,0,1,1,0,-1,-1,0,0,0,0,0,0,0,-1,0,1,1,0,1,0,-1,0,-1,1,0,0,0,-1,0,0,0,-1,0,-1,-1,-1,0,0,0,0,1,-1,0,-1,1,1,-1,0,0,1,0,1,1,0,0,0,1,1,-1,0,1,1,1,-1,0,0,-1,0,0,0,1,0,1,-1,1,-1,1,1,0,0,0,0,-1,0,0,-1,1,0,1,1,0,0,-1,1,-1,0,-1,1,1,0,1,1,0,1,0,0,-1,0,0,1,1,0,0,0,1,0,1,-1,0,0,-1,-1,0,0,0,-1,0,1,1,-1,0,0,0,0,1,1,0,-1,-1,1,0,-1,-1,1,0,0,1,0,0,1,1,0,-1,0,1,-1,0,-1,0,-1,0,0,0,0,1,0,0,-1,0,-1,0,0,-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,-1,1,0,-1,0,0,0,0,0,0,0,-1,0,0,-1,-1,0,0,0,0,-1,0,0,0,1,1,-1,-1,1,0,-1,1,-1,1,-1,0,0,-1,1,0,-1,0,1,1,0,-1,0,0,0,1,0,1,-1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,-1,-1,0,-1,1,0,1,0,1,-1,1,1,0,0,0,-1,0,0,0,0,0,-1,0,1,0,0,0,1,-1,0,-1,0,0,0,0,-1,-1,0,0,0,-1,1,-1,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,-1,1,-1,-1,0,1,0,0,0,0,-1,0,0,0,0,1,-1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,-1,0,1,1,-1,-1,0,0,0,0,1,1,-1,-1,-1,0,1,0,1,0,-1,0,0,0,-1,0,0,1,1,-1,0,0,-1,-1,0,0,1,0,0,0,1,0,-1,0,1,1,0,1,0,0,-1,0,1,0,0,-1,0,-1,0,0,-1,0,0,1,-1,1,0,0,0,0,-1,1,1,0,-1,0,0,0,0,0,-1,0,1,0,0,1,-1,-1,0,0,-1,-1,1,0,-1,1,0,1,0,0,0,-1,-1,1,0,1,-1,-1,0,-1,0,0,-1,1,1,0,1,1,0,0,1,1,0,0,0,-1,1,-1,1,0,1,0,1,0,-1,0,0,0,-1,0,0,-1,-1,1,0,0,-1,0,0,0,-1,-1,0,-1,0,0,1,0,0,0,0,0,0,0,0,0,-1,-1,0,0,0,0,1,0,1,0,1,1,-1,1,1,0,0,0,0,-1,1,-1,0,1,-1,0,0,0,0,0,-1,0,0,0,-1,-1,-1,0,1,1,-1,0,-1,0,-1,0,1,1,-1,1,1,1,1,1,-1,1,1,0,0,-1,-1,0,0,0,-1,0,0,0,-1,0,-1,0,0,0,-1,0,-1,0,0,1,0,-1,0,1,0,0,1,0,0,0,-1,0,0,1,0,0,-1,-1,0,0,0,1,0,1,0,0,0,-1,-1,0,0,0,-1,0,1,-1,1,-1,-1,0,0,0,0,0,1,0,-1,-1,1,0,0,-1,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,1,0,0,-1,1,1,1,0,-1,0}, {-1,0,-1,-1,0,-1,1,0,0,0,-1,-1,1,0,1,1,0,0,0,0,0,-1,-1,0,1,-1,0,-1,0,1,0,1,0,1,0,0,0,-1,0,0,-1,-1,-1,0,0,-1,0,0,-1,0,-1,-1,0,1,-1,-1,-1,0,-1,-1,1,1,1,-1,-1,0,1,0,1,-1,0,0,1,1,1,1,1,0,-1,0,0,0,-1,1,0,0,0,0,-1,0,-1,1,0,-1,1,1,0,0,1,1,0,-1,-1,0,0,-1,0,1,0,1,0,0,1,-1,0,0,-1,0,-1,1,0,1,-1,0,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,1,-1,0,1,0,0,0,0,1,0,-1,0,-1,1,1,0,0,1,0,-1,0,-1,0,0,1,-1,-1,0,1,1,1,0,0,0,0,0,0,0,-1,1,-1,1,0,1,1,0,0,0,-1,0,-1,-1,-1,0,1,-1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0,-1,0,1,0,0,-1,-1,-1,1,-1,0,-1,0,0,-1,0,1,-1,-1,0,-1,0,-1,0,0,0,0,1,0,1,0,-1,1,-1,-1,-1,0,1,0,-1,-1,-1,0,-1,1,0,-1,1,-1,0,0,0,0,1,0,1,0,-1,0,-1,1,0,1,0,0,0,1,0,0,1,0,0,-1,-1,0,-1,0,1,0,1,0,0,0,-1,0,-1,0,1,-1,1,-1,0,-1,0,-1,0,-1,1,-1,0,0,0,1,1,0,0,0,0,0,1,-1,-1,0,0,-1,0,0,0,0,0,0,0,0,-1,0,1,-1,0,1,0,0,-1,-1,0,0,0,0,1,0,0,0,1,0,1,0,0,-1,-1,0,1,0,-1,-1,-1,0,0,-1,1,-1,0,1,0,-1,-1,0,0,1,-1,-1,0,0,0,1,1,-1,0,0,0,1,0,-1,1,1,-1,-1,-1,0,1,0,-1,0,-1,1,-1,0,-1,-1,1,1,1,-1,0,0,0,1,1,1,0,1,1,1,-1,-1,0,0,1,-1,0,1,0,1,0,-1,0,0,0,0,-1,-1,0,1,-1,0,-1,0,-1,0,0,-1,1,1,0,0,1,0,-1,-1,1,0,0,0,-1,-1,0,0,1,1,1,1,1,-1,0,-1,1,1,1,-1,0,-1,0,1,-1,-1,-1,0,0,0,-1,0,0,0,1,-1,0,-1,1,-1,-1,1,1,1,0,0,1,0,-1,0,-1,1,-1,0,0,0,1,0,0,1,-1,-1,1,1,0,1,0,0,0,-1,0,-1,0,1,0,0,0,0,0,1,1,0,-1,0,0,-1,-1,-1,-1,0,1,0,-1,0,1,-1,0,0,1,1,0,0,0,0,0,1,-1,-1,1,1,0,-1,-1,-1,0,1,0,-1,-1,-1,1,1,-1,-1,0,-1,0,-1,1,0,1,0,1,0,-1,-1,-1,1,-1,0,-1,0,1,0,0,0,0,-1,-1,-1,0,-1,0,0,0,0,1,-1,0,-1,-1,0,-1,0,0,-1,1,-1,0,0,0,-1,-1,1,0,0,0,-1,-1,0,1,1,-1,0,0,-1,1,0,1,0,-1,0,1,0,-1,-1,1,0,0,-1,-1,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,1,0,1,-1,0,0,-1,-1,0,1,-1,0,-1,-1,0,1,-1,0,1,0,0,-1,1,0,0,-1,1,1,-1,0,-1,-1,0,-1,-1,1,1,0,-1,0,-1,0,0,0,1,0,-1,0,1,0,1,1,-1,-1,0,0,1,-1,0,0,0,1,0,0,-1,-1,0,1,1,1,0,0,1,0,-1,0,1,0,-1,0,0,1,-1,0,-1,-1,-1,0,1,0,0,-1,0,0,1,0,0,1,-1,0,0,0,1,1,-1,-1,1,1,0,0,-1,0,1,0,0,0,0,0,-1,-1,-1,-1,-1,-1,0,1,-1,0,0,0,0,-1,0,-1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,1,0,1,0,-1,0,-1,1,0,0,-1,-1,0,0,0,1,-1,0,1,0,1,0,1,1,-1,-1,-1,1,0,0,0,1}, {0,1,-1,0,-1,0,1,1,0,0,1,0,-1,-1,0,1,0,1,0,0,-1,-1,-1,-1,0,0,1,0,0,1,0,-1,1,1,0,0,0,0,-1,-1,0,-1,-1,0,-1,0,0,-1,-1,0,1,0,-1,1,0,0,0,1,0,0,1,1,0,0,0,1,-1,0,1,0,0,0,0,0,-1,-1,0,1,1,0,0,0,1,1,0,-1,0,-1,1,1,0,1,1,-1,1,0,1,-1,-1,-1,-1,0,0,0,0,-1,-1,0,0,1,1,-1,0,1,0,0,1,0,0,0,1,-1,-1,-1,1,-1,0,0,-1,0,0,0,1,1,1,1,0,1,0,1,1,1,1,0,-1,0,0,-1,0,1,0,-1,0,-1,0,-1,0,1,-1,-1,0,1,1,0,1,0,1,1,1,-1,0,1,-1,-1,-1,1,-1,0,-1,0,1,0,0,-1,1,-1,0,0,-1,0,1,-1,0,0,-1,0,1,1,-1,0,0,1,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,-1,0,0,-1,-1,0,0,0,0,1,-1,0,0,1,1,-1,0,0,1,1,-1,-1,1,0,0,0,0,1,-1,1,1,-1,0,0,1,0,0,0,-1,1,-1,0,0,1,0,0,0,0,1,1,-1,-1,1,1,-1,0,0,0,1,-1,0,0,-1,1,0,1,0,0,0,0,0,-1,1,0,0,0,-1,0,-1,0,0,-1,0,0,-1,1,1,0,0,1,0,1,0,1,1,1,0,1,1,0,-1,0,0,1,0,0,0,0,1,0,1,-1,0,0,0,0,-1,1,-1,1,1,1,-1,-1,-1,1,-1,0,1,1,0,1,0,0,1,0,1,0,-1,0,0,0,0,0,-1,-1,0,0,1,1,0,1,0,0,1,0,1,0,1,1,0,1,-1,-1,1,-1,1,0,0,1,-1,0,-1,-1,1,-1,0,0,1,0,1,0,-1,0,-1,0,1,1,-1,0,1,0,-1,0,0,-1,0,0,-1,1,0,0,1,-1,0,0,0,0,1,1,1,0,0,-1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,-1,-1,0,0,0,-1,-1,-1,0,0,0,1,-1,1,1,0,-1,0,-1,0,1,0,1,0,1,0,0,0,0,-1,0,0,1,0,0,-1,0,1,-1,-1,0,-1,1,-1,0,1,-1,0,0,0,0,1,-1,0,0,0,1,0,1,0,0,1,-1,0,0,1,-1,0,-1,0,0,-1,0,0,0,0,0,-1,1,1,0,0,0,-1,0,0,-1,0,-1,1,-1,0,0,-1,0,0,0,1,-1,0,-1,-1,0,0,0,0,0,1,1,1,0,0,-1,0,0,0,1,-1,1,-1,0,1,0,0,0,1,0,0,1,0,0,0,-1,0,0,-1,-1,-1,0,1,0,0,-1,1,0,0,1,0,-1,0,1,0,0,0,1,1,-1,1,1,1,0,0,0,0,0,0,0,1,0,-1,0,1,0,0,0,1,0,1,0,0,0,0,1,0,-1,-1,0,0,1,1,-1,0,0,0,0,1,0,1,0,-1,0,0,0,-1,0,1,0,1,0,-1,-1,0,-1,1,0,0,-1,1,1,0,0,1,0,1,0,-1,1,0,0,-1,-1,0,1,-1,0,0,-1,1,0,1,0,1,0,0,-1,1,1,0,-1,-1,-1,-1,0,0,-1,0,1,-1,0,-1,0,0,1,0,0,0,1,0,1,-1,1,1,-1,0,-1,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,1,1,-1,0,-1,0,1,0,1,0,-1,0,0,0,0,0,0,0,1,0,-1,-1,0,1,0,-1,0,1,-1,0,0,0,0,-1,-1,0,0,0,0,0,1,-1,-1,0,-1,0,-1,0,1,1,0,0,0,-1,-1,1,-1,0,-1,-1,0,1,0,-1,-1,0,-1,1,0,1,0,1,-1,0,1,0,0,1,0,0,1,1,-1,0,0,0,-1,0,0,0,0,-1,0,0,1,0,1,1,1,0,-1,0,-1,-1,0,1,0,-1,-1,1,0,1,-1,-1,1,0,-1,0,0,0,1,1,0,0}, {1,0,0,1,0,0,0,0,-1,-1,1,1,1,0,0,0,0,1,0,1,1,1,0,0,0,-1,-1,0,1,-1,0,0,-1,0,1,0,1,1,0,-1,-1,-1,0,1,0,1,0,-1,1,0,0,0,0,0,0,0,0,-1,0,0,-1,-1,0,-1,0,0,-1,0,0,-1,0,-1,0,0,0,-1,0,0,1,1,0,0,0,0,0,-1,-1,1,0,0,0,0,-1,-1,0,0,0,-1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,-1,0,1,0,0,0,1,0,1,0,-1,0,0,-1,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,1,0,0,-1,-1,-1,0,0,-1,1,-1,0,0,-1,0,0,-1,0,0,0,0,1,0,-1,-1,1,0,0,1,1,-1,0,0,1,0,1,0,-1,-1,-1,0,0,0,-1,-1,0,0,-1,-1,0,1,0,0,0,0,0,0,0,0,1,0,0,-1,0,-1,1,0,1,1,1,1,1,0,1,0,-1,-1,1,0,1,1,0,-1,1,0,0,0,0,0,0,1,0,-1,0,-1,1,1,-1,-1,1,-1,1,1,0,1,1,0,0,-1,0,1,1,0,1,0,0,-1,0,0,0,0,1,0,-1,-1,0,-1,0,1,1,0,-1,-1,0,1,0,0,0,1,1,0,0,0,0,-1,0,-1,0,1,0,0,-1,0,-1,1,0,1,1,-1,0,-1,0,0,0,0,-1,-1,-1,0,-1,-1,0,0,0,0,1,1,0,1,0,0,-1,1,1,0,0,1,-1,-1,-1,1,-1,-1,0,-1,0,0,-1,-1,-1,0,0,0,1,-1,-1,0,0,-1,0,0,1,0,1,0,0,0,0,0,0,0,-1,1,0,0,0,0,1,-1,0,1,1,-1,0,0,0,-1,1,0,1,-1,-1,-1,0,0,0,-1,0,0,0,-1,0,1,0,0,0,0,1,0,0,1,0,-1,-1,0,0,1,0,1,0,0,0,-1,1,-1,-1,1,-1,-1,-1,1,-1,1,0,-1,-1,0,1,0,-1,-1,0,0,-1,1,-1,0,-1,1,0,1,-1,0,1,0,1,0,0,0,0,1,0,-1,0,0,0,0,-1,1,-1,0,0,0,1,-1,-1,1,-1,-1,0,-1,0,-1,0,1,0,-1,0,0,1,-1,0,0,0,-1,-1,-1,1,0,0,1,0,-1,-1,0,0,1,0,0,0,1,1,-1,0,0,1,1,0,0,-1,-1,0,1,0,1,1,0,0,-1,0,0,-1,0,-1,0,-1,1,1,1,0,1,0,0,1,0,0,0,1,-1,0,0,1,0,-1,1,0,1,0,1,1,0,-1,1,0,1,0,1,1,0,-1,0,1,0,0,1,-1,1,1,-1,0,1,1,-1,0,-1,-1,0,0,1,0,1,0,-1,0,0,-1,0,-1,1,1,0,1,1,0,0,0,0,-1,0,0,0,0,0,1,0,-1,1,0,0,0,1,-1,0,0,1,-1,0,0,1,-1,-1,-1,0,-1,-1,0,-1,0,0,-1,0,1,-1,0,-1,0,1,0,0,1,0,-1,0,1,0,0,0,0,-1,0,-1,0,-1,0,-1,1,-1,0,-1,-1,-1,0,1,-1,1,1,-1,1,0,0,0,0,0,1,-1,1,-1,1,1,0,-1,1,-1,0,0,-1,0,0,-1,1,1,0,1,-1,0,0,-1,0,0,0,1,1,1,-1,0,0,1,-1,0,-1,0,0,0,1,-1,-1,-1,-1,-1,1,1,0,0,0,1,1,0,-1,0,0,1,0,-1,0,0,-1,1,1,1,-1,0,1,1,1,0,1,-1,0,-1,0,1,0,0,0,-1,1,1,0,1,-1,0,1,-1,0,1,-1,0,0,-1,0,1,1,0,1,0,1,0,1,0,0,0,0,1,-1,1,1,1,-1,-1,0,-1,1,-1,1,0,-1,1,1,0,0,1,0,1,1,0,0,1,0,0,1,-1,0,0,1,0,0,-1,-1,0,0,0,0,-1,0,1,0,-1,-1,-1,0,-1,0,0,1,-1,0,-1,1,1,0,0,1,-1,1,1,-1,0,0,0,0,0,0,-1}, } ; static const unsigned char precomputed_core_mult3sntrup857_c[precomputed_core_mult3sntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_mult3sntrup857_impl(long long impl) { unsigned char *h = test_core_mult3sntrup857_h; unsigned char *n = test_core_mult3sntrup857_n; unsigned char *k = test_core_mult3sntrup857_k; unsigned char *c = test_core_mult3sntrup857_c; unsigned char *h2 = test_core_mult3sntrup857_h2; unsigned char *n2 = test_core_mult3sntrup857_n2; unsigned char *k2 = test_core_mult3sntrup857_k2; unsigned char *c2 = test_core_mult3sntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup857(impl); printf("core_mult3sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup857_implementation(impl),ntruprime_dispatch_core_mult3sntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup857; printf("core_mult3sntrup857 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup857_implementation(),ntruprime_core_mult3sntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_mult3sntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_mult3sntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_mult3sntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_mult3sntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_mult3sntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_mult3sntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_mult3sntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_mult3sntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_mult3sntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_mult3sntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_mult3sntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup857")) return; storage_core_mult3sntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_mult3sntrup857_h = aligned(storage_core_mult3sntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_mult3sntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_mult3sntrup857_n = aligned(storage_core_mult3sntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_mult3sntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_mult3sntrup857_k = aligned(storage_core_mult3sntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_mult3sntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_mult3sntrup857_c = aligned(storage_core_mult3sntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_mult3sntrup857_h2 = callocplus(maxalloc); test_core_mult3sntrup857_h2 = aligned(storage_core_mult3sntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_mult3sntrup857_n2 = callocplus(maxalloc); test_core_mult3sntrup857_n2 = aligned(storage_core_mult3sntrup857_n2,crypto_core_INPUTBYTES); storage_core_mult3sntrup857_k2 = callocplus(maxalloc); test_core_mult3sntrup857_k2 = aligned(storage_core_mult3sntrup857_k2,crypto_core_KEYBYTES); storage_core_mult3sntrup857_c2 = callocplus(maxalloc); test_core_mult3sntrup857_c2 = aligned(storage_core_mult3sntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_mult3sntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup857();++impl) forked(test_core_mult3sntrup857_impl,impl); ++test_core_mult3sntrup857_h; ++test_core_mult3sntrup857_n; ++test_core_mult3sntrup857_k; ++test_core_mult3sntrup857_c; ++test_core_mult3sntrup857_h2; ++test_core_mult3sntrup857_n2; ++test_core_mult3sntrup857_k2; ++test_core_mult3sntrup857_c2; } free(storage_core_mult3sntrup857_c2); free(storage_core_mult3sntrup857_k2); free(storage_core_mult3sntrup857_n2); free(storage_core_mult3sntrup857_h2); free(storage_core_mult3sntrup857_c); free(storage_core_mult3sntrup857_k); free(storage_core_mult3sntrup857_n); free(storage_core_mult3sntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_mult3sntrup953.c0000644000000000000000000011101614705505543023626 0ustar rootroot/* ----- core/mult3sntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_mult3sntrup953_checksums[] = { "b926ca905106675e88bc27e7ffbcad138b421e8d011c7284ca388b29d4a8a513", "0e4f2bdc9d1086a6c4de22e1978dd6f6303d031dedbc80876746326fbe8f8f3a", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_mult3sntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_mult3sntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_mult3sntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_mult3sntrup953_CONSTBYTES static void *storage_core_mult3sntrup953_h; static unsigned char *test_core_mult3sntrup953_h; static void *storage_core_mult3sntrup953_n; static unsigned char *test_core_mult3sntrup953_n; static void *storage_core_mult3sntrup953_k; static unsigned char *test_core_mult3sntrup953_k; static void *storage_core_mult3sntrup953_c; static unsigned char *test_core_mult3sntrup953_c; static void *storage_core_mult3sntrup953_h2; static unsigned char *test_core_mult3sntrup953_h2; static void *storage_core_mult3sntrup953_n2; static unsigned char *test_core_mult3sntrup953_n2; static void *storage_core_mult3sntrup953_k2; static unsigned char *test_core_mult3sntrup953_k2; static void *storage_core_mult3sntrup953_c2; static unsigned char *test_core_mult3sntrup953_c2; #define precomputed_core_mult3sntrup953_NUM 4 static const unsigned char precomputed_core_mult3sntrup953_h[precomputed_core_mult3sntrup953_NUM][crypto_core_OUTPUTBYTES] = { {1,1,0,255,0,0,255,0,1,1,0,255,0,1,1,255,1,1,255,1,0,0,1,255,255,255,255,0,255,1,1,0,0,1,1,0,1,0,1,255,1,1,0,1,0,255,1,0,1,0,255,1,255,0,255,1,1,255,1,0,255,1,0,1,0,1,255,255,255,1,255,0,1,255,255,0,1,255,0,255,255,1,0,255,0,1,255,1,255,0,255,255,255,1,255,0,0,1,0,1,0,1,1,255,255,1,1,0,255,255,255,1,0,1,0,1,1,1,255,255,1,1,255,1,1,1,255,0,1,0,0,255,1,0,1,0,0,0,0,1,255,255,255,255,0,1,255,0,0,255,1,1,1,1,255,255,0,1,1,1,1,0,0,255,1,255,0,0,255,0,0,255,255,255,1,0,255,0,0,0,1,1,255,1,0,0,255,0,255,0,255,255,255,0,1,1,0,1,1,0,255,0,0,0,255,0,0,255,1,1,255,1,0,0,255,0,1,1,1,0,255,255,0,1,0,0,255,0,0,0,255,0,1,255,0,1,255,0,255,1,255,0,1,0,255,0,255,0,255,0,255,0,0,1,1,255,0,0,0,1,1,0,1,1,255,0,255,255,255,0,1,1,0,255,0,255,1,0,255,1,255,255,1,255,255,1,0,1,1,1,1,1,0,255,1,0,0,1,0,0,255,1,1,255,0,255,0,1,0,1,255,1,1,255,255,1,0,255,255,1,0,0,0,0,0,255,1,0,0,255,255,255,255,255,255,1,255,0,1,0,255,255,255,0,255,0,0,1,0,1,1,1,0,1,1,0,0,255,0,255,0,0,0,1,1,0,0,255,0,255,0,1,0,0,0,0,1,0,1,255,0,1,0,0,255,0,255,255,255,1,255,255,255,0,1,1,255,0,0,255,0,255,0,255,1,255,255,255,1,255,255,255,0,1,1,0,0,255,0,1,1,1,255,1,0,0,0,255,1,0,255,255,255,255,255,1,0,1,0,1,255,255,1,0,0,255,1,1,255,1,255,0,1,0,1,1,1,0,255,1,1,1,0,1,255,1,0,1,0,0,0,1,255,255,255,255,0,255,0,0,0,0,0,255,255,255,255,1,1,0,1,255,255,1,255,0,1,255,1,0,1,0,0,0,0,0,0,1,0,1,255,255,1,255,255,1,1,1,255,0,255,0,0,255,255,1,255,0,0,1,255,255,0,255,0,255,1,1,1,255,0,0,0,0,0,0,1,255,0,1,1,255,1,0,255,255,1,0,0,255,255,255,255,1,1,255,1,255,255,0,1,0,1,0,255,1,255,0,0,1,0,1,0,0,1,1,1,255,255,255,0,255,1,0,1,255,0,255,255,0,1,0,255,255,1,255,1,0,1,255,255,1,1,1,255,255,0,255,0,0,255,1,1,255,255,0,255,255,255,0,255,0,1,255,0,0,0,255,255,1,255,255,1,255,255,255,1,255,0,255,1,255,0,0,1,1,255,1,255,255,1,255,1,1,1,1,1,0,255,255,0,255,255,255,255,0,255,1,255,255,1,0,0,1,0,255,255,0,0,0,0,255,1,255,0,1,0,0,0,1,1,0,255,0,1,0,255,255,255,0,1,0,1,1,1,0,0,0,255,1,1,255,0,1,0,255,1,0,0,0,255,0,255,0,255,1,1,255,0,255,0,0,1,1,255,0,1,1,1,0,1,1,1,255,255,0,1,0,0,1,1,255,0,255,255,255,0,0,1,255,255,255,255,0,0,0,1,0,0,255,0,0,1,255,1,255,1,255,255,1,0,255,0,1,255,1,1,1,255,255,1,255,0,0,0,255,1,0,255,0,0,255,1,0,0,0,0,255,0,255,255,1,255,1,1,1,0,0,1,1,0,255,255,1,1,1,0,255,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,255,1,0,255,0,255,0,255,0,1,255,255,255,1,1,1,255,255,0,0,0,255,0,1,1,1,1,1,0,255,1,255,1,0,1,1,0,1,255,0,1,1,0,1,1,255,1,255,255,0,1,1,255,1,255,255,0,255,1,255,0,1,1,255,0,1,255,1,0,1,255,1,1,0,1,255,255,0,255,1,0,1,1,0,0,255,1,0,255,0,255,1,0,0,0,255,255,1,1,255}, {1,0,255,0,1,1,1,0,1,0,1,1,255,255,0,255,0,0,255,255,0,1,255,255,1,255,0,0,0,0,1,255,1,0,255,255,1,0,255,1,0,1,0,1,1,255,0,1,255,255,0,1,0,1,0,0,0,1,0,255,255,255,0,0,1,0,1,0,0,1,255,0,1,0,0,255,0,1,0,0,1,255,1,1,1,0,0,255,0,0,255,1,0,255,0,1,255,1,255,1,255,0,0,255,1,0,0,1,1,1,255,0,1,255,1,255,0,255,255,255,1,0,0,0,255,255,1,1,1,255,1,255,1,0,0,255,0,0,255,255,0,0,0,0,1,255,255,1,1,0,255,0,1,1,0,1,1,255,1,1,1,1,255,255,1,255,0,0,0,0,255,0,0,255,0,255,0,0,1,255,0,1,255,255,1,0,1,0,255,1,0,0,0,0,1,0,1,255,255,255,0,255,1,0,255,1,255,1,1,255,255,1,255,1,1,255,255,1,255,1,255,255,0,255,1,255,1,255,255,1,255,255,255,1,0,0,1,1,255,255,255,255,1,255,255,1,0,0,1,255,1,255,0,255,1,1,0,255,0,1,1,255,1,1,1,1,0,255,1,255,255,1,0,1,255,1,255,1,0,255,255,1,255,0,0,255,1,0,255,1,1,255,1,0,1,1,0,1,0,1,1,0,1,0,0,255,255,1,0,1,1,1,1,1,1,255,1,255,255,0,0,0,1,0,0,1,0,0,255,0,255,0,0,255,255,0,0,255,1,255,0,0,1,255,1,255,255,1,0,0,255,1,1,0,255,255,0,1,255,255,255,1,255,1,255,1,1,0,1,0,0,1,255,1,255,0,1,1,0,255,255,1,1,255,1,1,1,0,255,255,0,255,1,1,0,1,1,1,255,0,1,1,0,1,255,0,0,0,0,1,1,0,1,0,255,255,0,1,0,0,0,0,0,0,0,0,255,255,1,0,255,1,1,1,255,1,0,1,1,1,1,255,1,255,255,0,255,0,1,1,0,1,0,0,0,0,1,255,255,1,255,1,255,1,255,0,1,0,1,1,0,0,0,0,255,255,255,1,0,1,0,1,1,1,255,1,0,255,1,1,255,255,255,255,1,0,0,1,0,0,255,255,0,1,255,1,255,255,255,0,1,1,0,1,0,255,1,0,1,0,1,0,0,1,0,255,1,255,1,255,255,255,255,255,255,0,255,0,255,0,0,255,255,1,255,1,1,1,255,255,255,0,255,0,0,255,1,0,255,1,255,1,0,0,0,0,255,1,255,0,0,1,255,1,0,0,255,255,0,1,1,255,255,0,1,255,255,0,255,255,1,0,255,255,1,255,1,1,255,255,1,0,1,1,0,0,255,255,0,255,255,255,0,1,1,255,255,0,255,255,1,0,255,255,1,255,1,1,1,0,1,0,255,1,1,0,0,0,255,0,0,0,0,1,1,0,255,0,255,255,255,255,255,1,255,1,1,1,255,255,1,1,0,255,0,1,255,0,255,0,255,0,255,255,1,1,0,0,1,1,0,255,1,255,0,0,0,1,0,1,1,0,1,255,0,1,255,255,0,1,255,1,255,255,1,255,255,255,1,255,1,0,255,255,1,0,1,255,255,255,1,0,1,0,0,1,1,0,0,1,255,0,255,0,0,0,255,255,0,0,0,1,0,255,1,0,1,255,255,255,255,0,0,255,255,255,1,0,1,0,1,255,0,1,0,1,0,255,1,0,255,0,1,1,255,255,0,0,255,1,255,1,1,0,1,255,1,1,0,1,255,0,255,1,1,255,255,255,0,1,1,255,255,0,0,1,0,255,1,255,255,1,255,255,0,255,0,1,0,255,0,1,0,0,255,0,0,255,0,0,0,1,0,255,1,0,1,0,1,255,0,255,1,0,0,0,0,1,255,255,255,0,1,0,0,1,1,1,255,255,255,0,0,255,1,1,255,1,0,255,1,1,0,255,1,1,1,255,0,1,1,255,255,0,1,0,255,255,255,0,1,1,1,0,1,1,1,1,1,0,255,1,1,1,1,255,1,1,0,255,255,255,255,1,1,1,255,255,255,255,255,255,1,255,255,1,1,1,1,0,1,255,0,255,0,255,1,255,255,255,255,255,255,255,1,1,255,255,0,1,1,1,1}, {1,1,0,255,1,1,255,255,1,0,0,255,1,255,255,1,255,1,1,0,0,0,255,0,0,255,0,255,255,0,1,0,1,255,0,255,255,1,255,1,0,255,0,255,0,255,255,0,1,255,255,0,0,255,0,255,1,255,0,1,255,1,0,1,1,1,0,1,0,1,0,255,255,255,1,0,0,1,1,1,0,1,1,0,1,1,1,0,0,255,0,1,255,0,255,1,0,0,1,1,1,255,255,0,0,255,0,255,255,1,1,255,1,255,255,255,0,255,0,255,0,0,0,1,1,255,0,0,1,1,1,255,0,255,255,255,0,1,1,1,0,255,255,0,0,1,1,255,1,255,1,0,1,1,0,0,1,1,0,255,0,255,255,1,255,0,1,255,1,255,0,255,1,255,0,255,0,0,255,255,1,1,0,0,255,255,0,255,1,1,255,0,1,1,255,1,255,0,1,255,1,1,255,1,1,0,1,0,255,1,0,0,1,1,255,255,255,255,0,1,1,0,0,0,255,255,0,1,0,1,0,1,0,0,255,0,255,1,0,0,255,0,0,0,255,0,0,0,255,0,1,1,255,0,255,0,0,0,255,1,1,255,0,0,0,1,255,0,0,1,1,255,1,255,1,255,0,255,0,1,1,255,1,255,1,1,0,0,255,1,255,0,255,1,0,255,255,255,0,0,1,0,1,255,1,1,255,255,255,0,255,0,1,255,255,1,0,0,1,0,1,0,1,0,0,1,0,1,0,1,0,255,1,0,255,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1,0,0,255,0,1,255,0,0,1,0,1,0,0,255,0,1,0,1,1,255,0,0,0,1,255,1,1,0,0,1,255,255,255,1,255,1,255,0,1,0,1,0,0,0,1,0,0,0,0,1,255,1,1,0,255,255,1,0,255,255,255,255,0,255,1,0,255,255,255,0,1,255,1,1,1,255,255,1,1,1,0,0,1,1,255,255,0,255,0,0,255,255,255,255,255,255,1,255,255,0,1,0,0,0,255,255,0,0,255,0,0,255,255,0,255,0,1,1,0,0,0,0,0,1,1,0,0,0,0,255,1,1,255,255,0,1,255,0,1,255,1,0,255,255,0,255,1,255,1,255,1,0,255,255,1,255,255,0,0,255,255,0,255,255,255,0,0,1,1,0,255,1,0,1,1,255,0,0,255,255,1,0,0,255,1,255,0,255,0,255,0,0,0,0,0,0,255,1,255,0,0,1,0,0,0,1,0,1,1,1,1,255,0,1,0,255,1,255,1,1,255,0,1,1,0,255,1,1,255,255,0,255,1,0,1,0,1,1,255,0,1,1,0,0,255,0,255,255,255,1,1,1,255,1,255,0,1,255,0,0,0,255,255,0,1,255,255,1,1,1,0,0,255,255,255,1,255,1,0,255,0,255,0,1,255,1,1,255,255,1,255,255,0,255,255,0,1,255,255,1,0,0,0,0,1,0,1,1,255,1,1,0,255,0,0,255,1,1,1,0,255,0,1,1,255,255,0,255,1,255,255,0,1,1,1,1,0,255,1,0,255,1,0,1,0,1,1,255,0,1,1,255,255,0,255,0,1,255,1,1,1,255,0,1,0,1,1,0,255,1,1,1,255,255,1,1,255,0,0,255,1,1,1,0,255,0,0,255,0,0,1,255,1,0,0,1,1,255,0,255,255,255,0,1,255,255,0,1,0,0,255,0,255,255,0,0,0,1,1,0,1,255,255,255,255,0,255,1,255,255,1,255,0,255,255,255,1,1,255,0,255,0,255,255,255,0,1,1,0,255,255,0,0,255,1,255,1,0,1,0,1,255,1,1,1,1,255,1,255,255,1,255,255,1,1,1,1,1,255,255,0,0,1,255,0,0,0,0,255,0,0,1,1,1,1,1,1,255,0,0,0,0,255,255,255,0,255,0,255,255,255,255,0,0,0,0,255,0,255,1,255,0,1,0,1,255,0,0,0,1,255,255,255,255,255,255,255,1,255,255,255,1,255,0,255,255,255,1,1,255,255,1,255,255,0,0,0,1,0,1,255,1,0,1,0,1,255,255,0,0,255,255,1,255,1,1,1,0,1,0,0,255,255,0,1,255,0,0,255,255,1,1,255,255,255,255,1,1,0,0,1,0,255}, {255,255,255,255,0,0,0,0,255,255,0,0,1,1,1,1,255,255,1,0,0,255,255,255,255,1,1,255,255,1,1,1,255,1,255,1,255,1,0,0,1,0,0,255,1,1,1,255,0,255,0,1,0,0,255,1,1,0,255,0,255,255,0,0,0,0,0,255,0,255,0,255,255,1,1,0,255,1,0,0,255,255,0,0,1,1,0,255,1,1,0,1,1,255,255,255,255,1,0,255,1,0,255,1,255,255,1,0,0,255,1,1,1,255,1,1,255,1,0,0,1,255,1,1,1,1,255,255,255,0,0,0,0,255,1,255,255,0,1,255,0,0,0,0,0,1,255,0,1,1,255,255,255,1,1,255,1,255,1,255,0,255,0,1,0,0,0,0,0,255,255,1,255,255,0,255,0,255,1,1,255,255,255,0,0,255,0,255,0,255,255,255,1,0,255,255,1,0,0,255,255,1,1,1,1,0,0,255,0,1,1,0,255,1,1,0,255,1,255,255,1,1,255,255,0,1,255,0,255,1,255,255,1,1,1,0,255,1,255,0,255,255,255,1,0,1,255,1,0,0,1,1,255,255,1,1,1,1,0,0,255,255,255,1,1,255,255,0,0,255,0,1,255,1,255,0,0,255,1,1,0,255,255,1,1,255,255,255,255,0,255,0,0,0,1,1,0,0,1,0,1,255,0,1,255,0,255,0,0,0,255,255,0,255,1,0,1,1,255,1,1,1,255,1,255,0,0,255,255,0,1,1,1,0,0,255,1,0,1,255,1,0,255,1,1,255,0,0,1,255,0,0,0,1,0,1,1,1,255,255,255,1,255,1,255,0,1,1,255,1,255,1,1,0,255,1,0,0,1,255,0,0,1,1,255,255,0,255,255,255,1,0,1,255,255,0,1,0,1,0,0,0,255,0,255,1,1,0,255,0,255,1,1,1,1,255,1,1,1,0,255,255,1,0,0,1,255,1,0,1,1,255,1,1,1,0,0,0,255,0,0,1,255,0,255,1,1,0,0,0,1,1,255,0,1,1,1,0,0,255,255,0,1,1,255,255,255,0,0,1,255,1,0,1,0,0,255,1,0,255,1,255,255,1,1,0,0,255,1,255,1,1,255,1,255,0,0,0,255,0,1,1,255,1,255,1,0,0,255,0,1,0,255,0,1,255,255,0,1,0,1,255,0,255,0,1,255,1,0,1,255,0,255,1,255,1,0,0,1,255,255,1,255,255,255,0,255,1,1,255,1,1,1,255,0,255,1,1,255,255,1,0,1,255,0,0,255,255,255,0,0,255,0,1,255,255,1,255,1,255,1,0,255,0,0,1,0,0,1,0,0,0,1,0,0,255,255,1,255,255,0,255,1,255,0,0,1,1,1,1,0,1,255,0,1,0,255,1,0,1,0,255,0,0,0,255,0,255,1,255,0,255,255,1,0,0,1,1,1,255,0,0,255,1,255,1,255,1,0,255,0,1,0,1,1,255,1,255,0,255,0,1,0,1,0,0,255,1,1,0,1,1,255,255,255,0,255,255,255,1,1,0,0,1,255,255,0,0,0,0,0,255,1,0,0,0,1,0,255,0,1,0,1,0,255,0,255,255,0,1,255,255,255,1,1,255,255,255,0,1,255,255,0,1,255,1,0,255,1,0,255,255,255,0,0,1,0,0,1,255,0,255,1,1,0,1,1,255,0,1,0,255,1,1,1,0,255,255,1,1,1,1,1,0,0,0,0,255,255,1,0,0,1,0,1,1,255,1,255,0,255,255,0,0,255,255,0,0,0,0,0,0,0,255,1,255,1,1,1,0,1,255,1,1,1,1,255,1,1,1,0,1,255,1,255,1,1,1,1,255,255,255,0,255,1,0,0,255,1,0,1,255,1,1,0,0,0,255,0,0,0,0,0,1,255,0,255,0,0,255,1,255,0,1,1,1,0,1,1,0,255,0,0,255,1,0,1,1,1,0,0,255,1,255,0,0,0,255,1,1,1,0,255,1,255,255,1,255,1,1,0,255,1,255,0,0,255,0,255,1,255,1,1,0,0,255,255,255,1,0,255,255,0,1,1,1,0,1,255,1,1,0,0,0,255,0,0,1,255,255,1,0,1,255,255,1,0,1,0,1,255,255,255,0,255,0,255,1,0,0,0,1,255}, } ; static const unsigned char precomputed_core_mult3sntrup953_n[precomputed_core_mult3sntrup953_NUM][crypto_core_INPUTBYTES] = { {0,1,0,1,0,-1,0,1,1,0,-1,0,0,1,0,1,1,-1,0,0,-1,1,-1,1,0,1,-1,0,0,0,1,0,0,1,1,0,0,-1,0,0,1,1,-1,-1,-1,1,0,1,0,-1,1,1,-1,0,0,0,0,-1,0,0,1,0,0,1,0,0,0,0,1,0,0,-1,1,0,0,1,0,1,1,0,0,1,-1,0,0,0,0,0,0,0,1,1,-1,1,1,0,0,-1,0,-1,1,0,0,-1,0,0,0,0,0,-1,-1,1,1,0,0,0,0,1,0,-1,0,0,-1,0,-1,0,0,0,1,1,-1,1,0,0,1,-1,0,0,-1,-1,-1,1,0,0,0,0,-1,1,-1,0,-1,0,0,1,1,-1,1,0,0,1,1,0,-1,0,0,0,1,0,-1,0,-1,-1,0,1,0,0,0,-1,1,-1,1,0,-1,0,1,1,1,0,0,1,-1,-1,0,-1,1,0,1,1,0,1,1,0,-1,0,0,-1,1,-1,1,-1,0,1,0,0,0,0,1,-1,1,0,1,1,0,0,1,-1,1,0,0,0,-1,-1,1,1,0,0,0,0,0,-1,0,1,0,1,-1,-1,1,1,1,-1,0,0,0,0,0,0,0,1,-1,1,-1,0,0,1,0,0,0,0,1,1,-1,0,0,1,1,0,1,0,-1,0,0,0,1,-1,1,-1,0,1,1,0,0,0,-1,0,0,-1,0,0,-1,1,1,0,0,-1,1,0,-1,1,0,-1,-1,1,0,0,1,0,1,-1,0,1,-1,-1,0,0,1,0,1,0,0,-1,0,0,-1,1,0,1,1,0,0,0,1,0,-1,-1,-1,-1,1,1,0,0,0,0,-1,-1,1,1,0,0,-1,1,0,0,0,0,0,0,0,-1,1,1,-1,0,-1,0,0,-1,1,-1,0,-1,-1,0,1,0,0,-1,1,1,0,0,0,0,1,-1,0,1,1,1,1,0,0,0,-1,0,0,0,1,1,1,-1,1,-1,0,0,0,-1,0,-1,0,0,-1,0,0,0,-1,0,1,0,0,1,1,0,-1,-1,0,-1,0,0,1,-1,0,0,1,0,0,1,0,1,0,0,1,-1,-1,1,0,1,0,-1,1,1,0,0,-1,0,0,0,-1,1,0,0,0,1,-1,-1,0,0,0,0,0,-1,0,-1,0,-1,0,0,0,0,-1,1,0,0,0,1,-1,-1,1,1,-1,1,-1,0,1,-1,1,0,-1,-1,-1,-1,-1,1,1,1,0,0,0,0,0,0,0,-1,0,-1,0,1,-1,0,0,-1,1,1,-1,0,0,1,0,1,1,1,0,-1,0,1,-1,0,0,0,0,-1,0,0,0,1,0,0,0,1,-1,1,-1,0,0,0,1,0,0,1,0,0,1,-1,0,-1,1,0,0,0,-1,0,-1,0,0,0,0,1,-1,0,0,-1,-1,1,-1,0,1,0,1,0,1,-1,1,0,1,-1,1,0,1,0,-1,1,-1,-1,1,0,0,0,0,0,-1,0,0,1,1,0,0,1,0,0,0,1,0,1,0,-1,0,0,1,-1,0,0,-1,0,0,1,0,0,1,0,-1,1,0,0,0,1,1,0,0,-1,0,-1,-1,-1,0,-1,0,1,0,-1,1,-1,0,-1,0,0,-1,-1,-1,1,0,0,0,-1,0,-1,0,0,1,-1,0,0,-1,0,0,0,0,1,1,0,0,1,-1,0,-1,-1,0,0,0,0,-1,1,0,1,0,1,-1,1,-1,1,0,0,0,1,-1,0,0,0,1,0,1,-1,1,0,1,0,-1,0,0,-1,-1,0,-1,0,-1,-1,0,1,0,0,-1,0,0,0,0,0,1,0,-1,1,-1,-1,0,1,0,1,1,0,0,0,0,-1,-1,0,0,0,0,0,0,-1,1,1,-1,0,0,-1,-1,0,0,0,1,-1,-1,-1,-1,0,0,1,0,0,0,1,0,0,1,0,0,-1,-1,-1,-1,1,1,-1,1,1,0,-1,-1,-1,0,-1,1,0,1,-1,0,1,0,0,1,0,0,-1,0,1,1,0,0,0,1,1,0,1,0,-1,1,0,0,1,1,1,1,-1,1,0,-1,1,0,1,1,0,-1,0,1,1,0,0,0,0,1,0,-1,-1,-1,1,-1,0,-1,0,1,0,0,1,0,0,0,1,-1,0,0,0,0,0,1,1,-1,-1,0,1,1,0,0,0,-1,1,0,0,0,-1,0,-1,-1,-1,0,-1,0,1,0,1,1,1,0,1,0,-1,0,0,-1,0,0,0,1,-1,-1,0,0,1,-1,0,-1,0,0,0,0,0,1,-1,1,0,0,1,1,1,0}, {0,1,1,1,-1,0,-1,-1,0,-1,0,1,1,0,0,1,1,0,0,0,1,0,-1,1,0,1,1,1,0,-1,0,0,0,0,0,0,1,0,0,0,1,-1,0,0,0,0,0,0,-1,-1,1,0,1,-1,1,1,-1,0,0,-1,0,0,1,1,-1,1,-1,-1,0,-1,0,0,0,-1,0,0,1,0,1,0,-1,-1,-1,0,0,0,1,0,-1,1,0,-1,0,-1,0,1,-1,0,-1,0,0,0,0,-1,0,0,1,0,0,0,0,-1,-1,0,0,1,-1,0,-1,0,0,0,0,0,1,1,1,-1,1,-1,0,0,1,0,1,0,1,0,1,-1,1,-1,-1,-1,0,-1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,-1,0,-1,-1,0,0,0,-1,-1,0,0,0,0,0,1,-1,0,0,-1,-1,1,1,-1,-1,0,1,0,1,0,0,0,0,0,1,0,-1,-1,1,-1,1,-1,1,1,1,0,-1,-1,1,-1,1,0,0,0,0,1,0,0,-1,0,1,0,0,-1,1,1,-1,-1,0,0,0,-1,0,0,0,1,1,0,0,0,0,0,0,-1,1,0,0,0,1,0,0,0,0,0,-1,-1,0,0,1,0,0,1,0,0,1,0,1,0,0,0,-1,-1,0,1,-1,0,0,-1,0,0,0,1,0,1,-1,-1,0,0,0,0,0,1,0,0,0,1,-1,-1,0,-1,0,0,1,1,0,1,1,-1,0,0,1,0,1,1,-1,-1,1,-1,0,1,0,0,0,0,-1,-1,-1,0,1,0,0,-1,1,1,0,-1,0,-1,-1,1,-1,0,-1,1,0,0,0,0,1,0,-1,-1,0,0,1,1,0,-1,0,-1,1,1,0,-1,0,1,-1,0,0,1,0,1,0,1,1,0,1,0,-1,0,0,-1,0,0,0,0,0,-1,1,0,0,0,0,1,0,1,0,-1,0,0,0,0,0,0,0,0,1,0,0,-1,0,-1,-1,0,0,0,0,1,-1,-1,0,1,-1,0,0,1,-1,1,-1,0,-1,1,-1,-1,1,-1,1,1,0,1,0,-1,0,1,0,0,1,0,0,0,0,0,1,-1,1,0,0,-1,0,0,1,-1,-1,1,-1,0,1,-1,0,0,0,0,1,0,-1,0,-1,1,0,0,1,1,-1,1,0,0,1,0,1,0,0,-1,0,0,0,0,0,-1,1,0,0,-1,0,0,0,0,0,0,0,-1,1,-1,1,1,-1,1,1,0,-1,0,0,0,-1,1,-1,0,-1,-1,1,1,0,0,-1,1,1,0,0,1,-1,0,0,0,1,1,0,1,0,-1,1,-1,1,-1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,1,0,0,1,0,-1,1,1,-1,0,0,0,-1,-1,-1,0,-1,-1,1,1,1,0,-1,0,1,-1,-1,1,-1,1,0,0,0,0,0,-1,0,-1,1,1,0,-1,1,0,0,1,1,0,0,0,-1,1,0,0,-1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,-1,1,0,0,1,1,-1,0,1,0,0,0,0,1,1,0,1,0,-1,0,-1,1,-1,0,1,1,1,0,0,0,0,-1,0,1,1,0,0,1,0,-1,0,1,-1,0,0,0,-1,0,1,-1,-1,0,1,0,-1,-1,0,0,-1,-1,0,0,0,-1,0,0,0,1,0,0,1,0,-1,0,0,1,0,1,1,-1,0,0,0,0,0,0,1,0,-1,-1,0,0,0,0,-1,0,1,1,0,-1,0,0,0,1,0,-1,1,-1,1,-1,1,0,0,0,0,0,-1,1,1,1,1,-1,1,1,1,1,0,0,0,-1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,1,0,0,0,0,1,-1,0,0,0,0,1,0,0,0,0,0,0,-1,-1,1,0,0,0,-1,0,0,-1,0,0,-1,-1,1,0,0,0,0,-1,1,0,-1,1,-1,1,1,1,0,0,0,-1,1,-1,1,-1,-1,-1,0,1,0,0,-1,-1,0,0,0,0,0,-1,1,-1,-1,0,0,0,0,-1,0,0,0,0,0,0,1,-1,0,0,-1,-1,1,-1,1,0,0,1,0,0,1,1,1,0,1,0,0,0,0,0,-1,0,0,0,1,-1,0,1,0,1,0,0,1,0,-1,1,0,0,0,1,0,1,1,1,0,0,-1,0,-1,1,0,0,1,1,0,1,-1,-1,0,-1,0,-1,0,0,-1,-1,1,0,-1,-1,-1,-1,-1,0,-1,0,-1,-1,1,0,1,0}, {0,0,0,0,0,0,0,0,-1,0,1,-1,0,0,0,1,1,0,1,0,1,-1,0,0,-1,-1,0,0,0,-1,0,0,0,0,0,0,-1,0,0,-1,0,-1,0,-1,0,0,1,-1,-1,0,0,-1,-1,0,-1,1,0,-1,0,0,1,1,-1,0,0,0,-1,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,0,0,1,-1,1,1,0,0,0,0,0,-1,1,-1,0,0,1,0,0,0,-1,-1,0,0,0,0,0,-1,-1,0,-1,1,0,0,1,1,0,0,-1,-1,0,0,-1,1,1,0,0,1,-1,1,0,1,0,0,1,-1,0,0,1,1,0,-1,-1,0,-1,0,-1,1,-1,-1,-1,0,-1,0,1,0,-1,0,1,0,0,-1,0,-1,0,-1,0,0,-1,0,0,0,1,0,0,-1,0,0,1,0,-1,0,0,0,1,-1,-1,0,1,0,0,0,1,0,1,1,1,0,1,1,-1,0,0,0,1,0,0,1,0,1,-1,-1,-1,-1,-1,0,1,0,0,0,1,0,1,-1,0,1,1,1,0,0,0,1,0,0,0,1,-1,0,0,1,-1,0,1,0,1,1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,-1,0,0,-1,0,1,0,0,1,0,0,1,0,-1,0,1,0,0,1,0,1,-1,0,-1,0,-1,0,-1,0,0,-1,0,0,-1,-1,0,1,0,0,-1,1,1,0,-1,0,1,0,0,1,-1,0,-1,0,0,-1,0,1,0,1,1,-1,0,0,-1,0,0,0,-1,-1,1,0,0,0,1,0,0,1,-1,-1,1,1,0,-1,-1,-1,-1,0,-1,0,-1,1,0,0,0,0,0,-1,0,1,0,0,0,1,-1,1,0,0,-1,0,0,0,-1,0,0,-1,0,1,0,0,0,0,1,0,-1,0,-1,0,-1,0,0,-1,0,0,0,0,0,0,0,1,-1,1,-1,0,0,0,0,-1,0,0,1,0,-1,-1,0,1,1,1,0,-1,0,0,0,1,-1,0,1,0,0,1,-1,-1,1,0,1,-1,1,0,0,0,-1,0,0,1,1,0,0,0,0,-1,0,0,0,0,1,0,-1,0,-1,0,1,1,0,1,0,-1,1,-1,0,1,1,1,0,0,0,-1,0,0,-1,0,-1,0,-1,1,1,0,0,0,0,-1,1,0,1,0,-1,1,0,0,0,0,0,-1,0,-1,0,1,-1,1,0,0,-1,0,1,0,-1,0,0,-1,0,0,0,1,1,1,0,0,1,1,1,0,0,0,-1,0,1,0,-1,0,-1,1,0,0,0,0,1,0,0,1,1,0,0,1,0,1,0,0,-1,0,0,1,-1,-1,-1,0,-1,0,-1,0,0,-1,0,0,-1,1,0,1,0,1,1,1,-1,0,0,1,-1,0,1,0,0,-1,1,1,0,0,1,0,0,-1,1,0,-1,0,0,0,-1,1,0,0,0,0,0,1,0,1,0,-1,-1,1,0,0,-1,0,0,1,0,0,0,0,1,-1,1,0,-1,0,0,-1,0,-1,0,-1,-1,1,0,-1,0,0,0,-1,0,0,1,0,0,0,0,0,0,0,0,-1,0,-1,0,0,0,-1,0,1,1,1,-1,-1,1,1,-1,0,1,0,1,0,0,0,0,0,-1,0,0,1,-1,0,-1,0,-1,0,0,-1,0,0,0,0,-1,-1,0,1,0,0,0,0,0,-1,0,1,0,-1,0,0,0,1,-1,1,1,-1,0,-1,0,0,-1,0,0,1,0,-1,0,0,-1,0,0,1,1,0,1,-1,0,0,0,-1,1,1,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,-1,1,0,0,0,1,-1,0,-1,0,-1,1,1,1,0,0,0,-1,1,-1,-1,-1,-1,0,1,-1,1,0,0,0,0,-1,0,0,0,0,-1,-1,-1,0,0,0,0,0,0,-1,0,0,0,1,0,0,0,0,0,-1,-1,0,0,0,-1,0,0,0,-1,0,0,1,0,0,0,-1,0,0,0,-1,0,-1,1,1,1,-1,-1,1,0,0,-1,-1,0,-1,-1,0,1,0,0,-1,1,1,1,1,0,-1,-1,1,0,0,0,0,-1,0,-1,0,0,0,-1,0,-1,1,-1,1,1,-1,0,1,1,0,0,1,1,1,-1,0,0,0,1,0,0,1,0,-1,1,0,1,1,1,0,0,0,0,-1,-1,0,1,1,-1,-1,0,0,-1,1,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,-1,0,-1,0,0,0,1,1,0,-1,0,0,0,0,0,1,-1,1,1,0}, {0,-1,0,0,1,0,1,-1,0,-1,0,-1,1,1,0,0,-1,0,0,0,0,0,0,1,0,-1,1,0,0,-1,0,0,1,1,0,0,1,0,-1,1,-1,-1,0,1,1,1,0,0,0,-1,0,0,0,1,0,0,-1,1,-1,0,0,-1,1,0,-1,0,-1,-1,1,0,0,1,0,-1,1,0,-1,-1,0,1,1,-1,-1,1,0,1,1,0,0,0,-1,1,1,1,1,0,-1,1,0,0,-1,0,0,0,-1,0,0,0,1,-1,-1,0,1,0,1,0,-1,0,1,1,0,1,0,0,-1,0,0,-1,-1,-1,0,0,0,-1,0,0,-1,1,1,0,-1,-1,-1,1,-1,1,0,-1,0,0,0,-1,0,1,0,1,1,0,0,-1,0,0,1,-1,0,-1,0,0,-1,1,-1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,0,0,0,-1,1,0,0,-1,1,0,-1,0,0,0,0,1,1,0,-1,1,-1,0,0,0,0,0,-1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,-1,-1,1,0,1,-1,0,-1,1,0,1,0,0,0,-1,0,-1,-1,0,-1,0,0,-1,0,-1,0,-1,1,0,0,-1,0,-1,1,0,-1,0,-1,0,-1,-1,0,0,0,0,0,-1,1,1,-1,0,0,1,-1,-1,-1,1,0,1,0,0,0,0,0,-1,1,0,0,0,0,-1,1,0,-1,0,1,0,0,-1,-1,1,1,0,0,0,-1,0,0,1,1,0,0,0,0,1,0,1,-1,1,1,1,0,0,-1,0,0,0,-1,1,-1,0,0,0,-1,1,0,-1,-1,0,0,-1,0,0,0,0,0,1,-1,0,-1,0,1,0,-1,0,-1,1,1,0,0,-1,-1,0,0,0,1,0,1,0,-1,0,0,-1,-1,1,-1,-1,0,-1,-1,0,-1,0,-1,0,0,0,1,0,0,0,0,0,0,-1,0,-1,0,1,0,0,0,-1,-1,-1,-1,0,0,-1,-1,-1,-1,0,0,-1,0,1,0,-1,1,0,0,-1,0,0,0,-1,-1,-1,0,1,-1,-1,0,0,-1,1,1,0,0,0,-1,-1,-1,0,0,-1,-1,0,1,1,0,-1,-1,1,1,0,0,1,-1,0,0,-1,1,1,0,0,-1,1,0,1,1,0,0,1,0,-1,-1,-1,-1,1,0,0,-1,0,1,0,1,-1,0,0,-1,1,0,0,0,1,1,0,1,1,0,0,-1,0,1,-1,-1,0,-1,-1,0,0,-1,-1,1,1,0,1,0,0,0,0,-1,0,1,0,0,0,1,0,-1,1,0,0,0,-1,0,1,-1,1,0,0,-1,-1,0,0,-1,1,1,0,-1,0,1,0,0,-1,0,0,-1,0,0,1,0,0,-1,0,1,-1,0,0,-1,1,-1,1,1,1,0,0,0,1,-1,-1,0,-1,0,0,0,1,1,-1,-1,0,0,1,-1,0,1,0,1,1,0,0,0,1,-1,-1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,-1,-1,0,-1,1,0,-1,1,1,-1,1,0,0,-1,-1,0,0,-1,1,1,-1,-1,-1,0,-1,0,1,-1,0,1,1,0,0,0,1,0,0,1,-1,0,1,0,-1,0,0,0,0,1,1,1,0,0,0,0,-1,0,1,-1,0,1,-1,0,1,0,-1,0,-1,-1,1,-1,0,1,0,-1,0,1,1,-1,1,0,0,1,0,0,0,-1,-1,-1,-1,-1,0,-1,-1,-1,0,0,1,-1,1,0,0,-1,1,1,1,0,0,1,0,-1,-1,0,1,0,0,0,-1,-1,0,0,-1,1,-1,0,1,0,1,1,-1,0,0,-1,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,-1,0,1,1,1,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,-1,0,-1,1,1,0,-1,0,0,0,0,1,0,1,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,-1,0,0,-1,1,0,-1,-1,1,0,0,0,1,0,1,-1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,-1,-1,0,1,1,0,0,-1,0,0,-1,-1,0,1,-1,1,0,0,0,1,-1,0,0,-1,0,0,-1,-1,0,0,-1,1,-1,0,-1,0,1,0,0,0,0,0,0,1,0,0,-1,-1,-1,0,0,0,0,0,1,0,0,-1,0,-1,1,-1,1,-1,-1,0,1,0,0,-1,0,-1,0,1,1,0,0,1,0,-1,0,0,0,1,-1,0,-1,0,0,0,-1,0,1}, } ; static const unsigned char precomputed_core_mult3sntrup953_k[precomputed_core_mult3sntrup953_NUM][crypto_core_KEYBYTES] = { {-1,0,0,0,0,0,1,0,1,0,0,1,-1,-1,-1,0,0,1,1,-1,-1,0,0,1,1,0,-1,0,1,0,1,0,1,0,0,1,1,0,0,-1,1,0,1,0,0,0,1,-1,-1,1,-1,0,0,0,0,1,1,0,1,0,-1,1,-1,0,1,0,0,0,-1,-1,-1,0,1,0,0,0,0,0,-1,0,0,0,-1,0,-1,1,0,0,1,0,0,1,1,1,0,0,0,0,-1,1,0,0,0,0,0,0,0,0,-1,0,-1,1,1,-1,1,-1,0,0,0,0,0,0,1,0,1,-1,0,0,-1,0,-1,1,0,0,0,0,1,1,-1,0,0,0,0,0,0,0,1,-1,0,0,-1,1,1,1,0,0,1,-1,1,1,0,-1,0,0,0,0,1,1,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,1,0,-1,0,1,0,-1,-1,-1,-1,-1,0,0,0,1,1,-1,0,0,1,0,1,1,0,0,0,0,-1,-1,0,0,-1,1,0,1,0,0,0,-1,0,0,-1,-1,0,-1,0,0,0,-1,1,0,0,-1,-1,0,1,-1,-1,0,0,1,-1,1,-1,0,0,-1,0,0,0,1,1,0,-1,0,1,-1,0,0,1,-1,0,-1,0,-1,0,1,-1,0,0,0,1,-1,0,1,1,1,0,1,0,0,0,0,0,0,1,0,0,1,-1,0,0,-1,1,1,-1,0,-1,-1,0,0,0,0,0,-1,1,-1,-1,-1,-1,0,0,0,1,-1,0,-1,0,-1,-1,0,-1,-1,0,1,0,0,-1,0,0,-1,-1,0,-1,0,-1,0,0,1,1,0,0,-1,0,0,1,1,-1,0,-1,0,-1,0,0,-1,0,0,-1,0,1,0,-1,0,0,-1,1,0,1,-1,1,-1,0,0,-1,0,-1,1,0,0,0,0,0,0,1,1,1,1,-1,0,-1,0,-1,0,1,0,-1,-1,1,0,-1,0,0,0,1,1,0,-1,1,1,0,1,1,0,-1,-1,1,0,0,0,0,0,1,0,0,0,1,0,-1,0,0,0,0,0,1,1,-1,0,0,1,0,1,0,1,0,-1,0,0,0,-1,0,0,-1,0,0,-1,-1,-1,0,0,0,-1,-1,0,-1,1,1,-1,0,0,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,0,-1,0,1,0,1,0,0,1,0,-1,0,0,0,1,0,0,1,0,0,-1,0,0,0,0,0,-1,1,-1,-1,-1,0,-1,0,0,-1,1,-1,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,0,0,0,0,-1,-1,0,0,0,1,0,-1,-1,-1,1,0,0,0,-1,0,-1,0,1,-1,0,0,0,-1,0,1,1,1,0,0,1,-1,-1,0,0,1,0,0,0,0,0,0,0,0,1,-1,-1,1,0,1,0,-1,0,0,1,0,1,0,1,0,-1,0,1,0,0,-1,0,-1,-1,-1,1,0,-1,-1,0,0,-1,-1,1,-1,0,-1,0,0,0,0,0,0,0,0,-1,0,1,-1,-1,0,0,-1,-1,-1,-1,0,0,0,-1,0,0,1,1,0,1,-1,0,1,1,0,0,1,0,-1,-1,0,0,-1,0,0,0,0,0,1,-1,0,0,0,0,-1,-1,-1,1,0,0,1,1,0,1,0,0,0,0,-1,-1,-1,0,1,0,0,-1,0,1,1,1,0,0,-1,-1,0,0,1,1,0,-1,1,0,0,-1,0,1,1,0,0,0,1,0,1,1,0,1,-1,0,0,0,0,-1,1,0,0,0,1,0,1,0,-1,0,0,1,1,0,-1,0,-1,-1,0,-1,0,-1,0,0,0,0,-1,-1,0,0,-1,0,-1,0,-1,0,0,-1,-1,0,0,0,-1,-1,0,1,0,1,1,0,0,-1,0,-1,0,0,1,0,1,-1,0,1,1,-1,0,-1,1,0,0,1,0,1,-1,-1,0,0,-1,1,0,0,0,1,1,-1,1,-1,0,-1,0,1,1,1,1,0,-1,0,1,1,-1,0,0,-1,0,-1,-1,1,1,0,0,0,-1,0,0,1,0,0,0,0,0,0,-1,1,-1,0,0,0,1,1,0,1,1,0,-1,1,-1,1,0,0,0,-1,0,1,0,0,1,1,-1,1,-1,1,1,0,-1,0,1,0,1,-1,-1,-1,1,-1,-1,1,0,-1,1,0,0,0,-1,0,1,0,0,0,-1,-1,1,0,-1,0,0,0,0,-1,-1,0,0,1,0,0,0,0,-1,-1,0,0,1,-1,0,0,0,0,0,0,1,-1,0,1,-1,1,0,-1,-1,1,-1,0,-1,1}, {0,-1,0,-1,0,1,-1,-1,0,-1,0,1,0,0,1,-1,0,0,0,0,1,0,0,0,-1,-1,0,-1,1,1,0,-1,-1,1,1,1,0,-1,1,0,0,-1,0,0,-1,1,1,1,0,0,0,1,0,0,-1,0,0,0,0,-1,-1,-1,0,1,0,1,-1,1,-1,0,-1,0,0,0,-1,1,0,0,0,1,1,-1,-1,0,0,-1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,-1,0,1,0,0,-1,1,1,1,0,1,1,0,1,0,-1,0,1,0,0,0,0,1,-1,0,1,-1,1,0,1,1,0,-1,0,0,0,-1,-1,0,-1,-1,1,0,0,-1,1,0,1,0,0,-1,0,0,0,0,1,1,0,1,1,1,1,-1,0,0,-1,0,0,0,1,0,-1,-1,0,-1,0,0,0,1,0,-1,1,-1,0,0,-1,0,0,-1,0,-1,-1,0,-1,0,-1,0,0,1,-1,0,0,-1,0,0,-1,0,0,1,-1,0,0,0,1,-1,-1,1,0,-1,-1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,-1,0,0,-1,0,0,-1,0,0,-1,1,1,1,1,0,0,1,0,-1,1,0,1,0,0,0,-1,1,0,0,0,1,-1,0,0,1,1,0,-1,1,0,0,1,0,0,-1,1,0,1,-1,1,-1,0,1,0,0,-1,0,-1,0,0,1,1,0,0,-1,1,0,-1,0,0,0,0,-1,0,0,0,0,0,0,-1,0,0,-1,0,0,1,1,1,0,0,-1,-1,0,0,0,0,0,0,0,1,-1,1,0,1,1,-1,-1,1,1,0,-1,0,-1,0,-1,-1,-1,1,0,-1,1,1,1,1,0,1,-1,0,0,1,0,-1,0,0,-1,-1,1,0,1,-1,1,1,0,0,0,0,0,1,0,0,1,-1,0,-1,0,-1,-1,1,-1,1,0,0,1,-1,1,0,0,-1,0,0,-1,-1,-1,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,-1,0,1,-1,0,1,-1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,-1,1,0,0,0,0,0,0,0,0,0,-1,0,0,1,-1,1,0,-1,0,1,1,0,1,0,1,1,0,-1,1,-1,-1,-1,0,1,0,-1,1,1,-1,0,0,0,1,-1,-1,1,0,0,0,0,1,0,1,1,0,-1,0,1,0,-1,1,0,0,-1,0,-1,0,0,0,-1,-1,0,1,0,0,0,1,-1,0,0,-1,0,0,1,1,0,-1,0,0,0,0,1,0,1,1,0,0,-1,1,1,0,1,0,-1,0,1,0,0,-1,0,0,0,0,-1,0,1,0,0,-1,-1,-1,0,1,0,1,-1,0,1,0,-1,1,0,1,0,0,0,1,0,1,0,1,-1,0,-1,0,0,0,0,0,1,0,1,0,0,1,-1,-1,-1,0,0,0,0,1,0,-1,1,0,-1,0,-1,1,-1,1,-1,0,1,0,0,0,-1,0,1,0,0,-1,0,0,0,0,-1,0,-1,-1,-1,-1,0,1,-1,-1,-1,0,0,0,1,0,0,0,0,-1,-1,-1,0,0,1,0,0,1,1,0,-1,1,-1,-1,0,1,0,-1,-1,0,0,0,1,0,0,1,0,1,-1,-1,1,0,0,-1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,0,0,0,-1,0,0,0,-1,0,0,0,0,0,-1,0,0,0,0,1,0,0,0,1,0,1,-1,0,-1,1,-1,1,-1,0,0,0,-1,0,0,0,0,0,1,1,0,0,0,1,1,0,1,0,0,1,0,0,-1,0,0,0,1,-1,0,0,0,-1,0,1,1,0,0,1,-1,0,0,1,0,0,0,-1,-1,0,-1,0,-1,-1,-1,-1,1,0,1,0,1,0,-1,-1,-1,0,-1,-1,-1,1,-1,-1,0,0,0,-1,0,-1,-1,0,0,1,-1,0,-1,0,1,1,0,1,1,1,-1,-1,1,1,-1,-1,1,-1,0,0,-1,1,0,-1,0,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0,-1,1,-1,0,0,1,0,0,1,-1,-1,1,0,1,1,0,0,1,0,0,-1,1,0,0,0,0,-1,1,-1,0,-1,-1,1,0,-1,0,1,-1,0,0,0,1,-1,0,-1,0,0,0,-1,-1,0,-1,1,0,-1,1,1,1,0,0,0,1,-1,0,0,-1,0,0,1,0,0,-1,0,-1,0,1,0,-1,0,1,1,-1,1,0,0,-1,1}, {1,0,0,-1,0,1,0,0,1,0,1,0,1,0,-1,1,0,0,0,1,0,1,0,0,1,-1,1,-1,-1,1,1,-1,-1,0,0,-1,1,0,0,0,0,-1,0,1,0,0,-1,0,0,0,-1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,-1,0,1,0,0,0,1,1,-1,-1,0,-1,-1,0,-1,0,0,0,0,0,-1,1,0,0,-1,0,-1,1,1,1,-1,0,1,0,0,-1,1,1,1,1,-1,0,1,1,0,0,1,0,1,-1,0,1,-1,-1,1,0,-1,0,-1,1,1,0,0,0,0,0,0,-1,-1,0,-1,0,-1,1,-1,1,1,1,1,0,1,0,0,-1,0,-1,0,0,-1,0,-1,-1,1,0,0,0,0,0,1,1,0,0,-1,0,1,-1,1,-1,-1,0,1,-1,0,1,0,1,-1,0,1,1,0,1,0,-1,-1,-1,-1,0,1,0,0,0,-1,1,-1,-1,1,0,0,0,-1,-1,1,1,0,0,0,0,1,0,0,0,0,1,-1,0,1,-1,0,0,1,1,1,1,0,0,-1,0,0,-1,1,-1,1,0,0,0,1,0,-1,0,0,-1,-1,-1,1,1,1,0,-1,-1,0,0,0,0,1,0,0,-1,-1,0,0,-1,-1,0,1,0,-1,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,1,0,0,-1,1,-1,0,0,0,-1,0,-1,-1,0,1,-1,1,-1,1,0,0,0,-1,0,0,-1,0,0,1,1,1,0,0,1,0,-1,0,0,0,0,-1,1,-1,1,0,1,0,-1,0,0,1,0,1,0,1,1,1,1,0,0,0,0,-1,0,1,-1,-1,1,1,0,0,0,0,-1,1,0,0,1,0,-1,-1,-1,0,-1,0,-1,1,1,1,-1,0,1,0,0,-1,-1,0,0,1,1,1,0,0,-1,1,0,0,-1,-1,0,1,0,0,0,0,0,0,-1,-1,0,0,-1,-1,0,1,1,0,0,-1,1,-1,0,-1,1,1,1,0,-1,0,0,0,0,0,-1,0,1,-1,0,-1,-1,1,1,1,1,0,0,-1,-1,0,-1,0,0,0,0,-1,0,-1,0,0,0,0,1,0,0,-1,1,1,0,1,1,-1,0,1,1,0,-1,0,-1,0,0,1,0,1,1,0,1,-1,0,0,0,0,0,1,-1,0,0,1,-1,1,0,-1,0,-1,0,0,-1,1,1,0,-1,0,0,-1,1,1,0,1,1,-1,-1,1,1,0,1,0,0,1,1,0,1,-1,1,0,-1,1,-1,0,-1,1,-1,-1,0,-1,0,1,0,0,0,-1,0,-1,0,1,0,0,1,-1,1,0,-1,-1,0,1,1,-1,1,0,-1,1,-1,-1,1,-1,0,-1,0,0,0,1,1,1,-1,0,1,0,1,0,1,0,0,0,0,1,-1,-1,0,0,-1,0,0,0,-1,0,0,0,1,-1,0,0,-1,0,0,1,0,0,0,0,1,-1,-1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,-1,-1,0,0,1,0,0,1,-1,1,1,-1,0,-1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,-1,0,1,1,0,-1,1,-1,0,-1,0,0,-1,0,1,-1,1,0,1,-1,0,0,0,0,1,0,1,1,0,-1,-1,1,-1,-1,0,0,1,1,-1,0,1,0,0,-1,0,-1,-1,0,1,0,0,-1,0,1,1,0,1,0,0,1,1,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,-1,0,0,1,-1,0,0,1,0,0,1,0,0,0,0,0,0,-1,0,-1,-1,0,0,-1,0,-1,1,-1,-1,0,-1,0,0,-1,1,0,-1,0,0,1,-1,0,-1,1,1,0,-1,0,1,-1,0,1,0,0,-1,0,0,0,0,0,-1,0,-1,-1,1,0,0,-1,0,0,1,1,-1,0,1,0,-1,0,-1,0,1,1,0,0,-1,0,1,-1,-1,-1,1,0,0,1,1,0,1,-1,1,0,0,1,-1,0,-1,0,1,0,1,0,0,-1,1,1,0,0,0,0,-1,1,0,0,0,-1,0,0,0,-1,0,0,0,1,-1,1,0,1,1,-1,-1,1,0,0,0,-1,0,-1,0,-1,1,1,0,0,-1,1,0,-1,-1,0,0,0,0,0,1,0,0,0,1,0,-1,-1,-1,1,0,0,1,0,0,0,-1,0,0,-1,-1,0,1,0,0,0,-1,1,0,0,1,-1,0,1,1,0,1,-1}, {-1,0,1,0,0,0,0,1,0,0,1,-1,1,0,-1,1,1,-1,0,0,-1,0,0,1,-1,0,0,1,0,0,0,0,1,0,1,1,-1,1,0,-1,1,-1,-1,-1,-1,-1,1,-1,1,0,1,1,1,-1,-1,0,0,-1,0,1,0,1,-1,0,1,-1,0,0,1,0,1,0,-1,0,-1,0,0,0,-1,1,0,-1,1,0,-1,1,-1,-1,-1,-1,1,1,0,-1,1,-1,0,1,0,1,0,-1,0,-1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,-1,-1,1,1,-1,-1,1,1,0,1,0,0,1,-1,0,0,1,-1,-1,-1,0,0,1,1,0,0,0,-1,0,1,-1,1,0,0,0,1,1,-1,0,0,0,-1,1,0,0,0,0,1,1,1,0,0,1,-1,-1,1,0,0,0,1,0,1,0,-1,1,1,0,0,0,-1,-1,1,1,1,1,-1,0,1,0,-1,-1,1,1,0,0,-1,0,0,0,0,1,0,1,1,0,1,-1,-1,-1,0,0,0,-1,1,0,1,-1,1,-1,0,0,0,0,0,0,0,1,0,1,0,0,-1,1,-1,0,0,0,-1,0,-1,0,-1,1,-1,0,1,0,0,-1,0,0,-1,-1,1,0,0,-1,0,0,0,0,-1,0,0,0,-1,-1,0,-1,1,0,1,0,0,-1,0,0,0,0,-1,0,1,-1,0,1,0,0,1,-1,1,1,-1,1,0,-1,-1,1,0,-1,0,0,0,0,-1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,-1,0,-1,0,0,0,0,0,0,0,-1,-1,1,-1,0,-1,-1,0,0,0,0,-1,0,-1,0,0,-1,1,-1,0,-1,0,0,1,0,-1,0,-1,0,0,0,1,-1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,-1,0,-1,0,-1,1,1,-1,0,-1,0,-1,1,0,0,-1,0,0,1,1,0,0,0,-1,0,0,1,-1,0,0,0,0,0,-1,0,1,0,0,0,0,0,1,0,-1,-1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,-1,-1,0,0,0,0,-1,0,-1,0,1,0,-1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,-1,1,1,-1,0,1,-1,0,0,0,0,1,-1,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,0,1,-1,1,0,0,0,0,0,1,0,1,-1,0,0,-1,-1,-1,0,1,-1,0,0,0,-1,0,0,1,0,0,0,1,0,-1,1,0,-1,-1,0,-1,0,0,1,0,0,0,0,0,-1,-1,0,0,-1,0,-1,0,0,0,1,1,0,0,0,0,0,-1,-1,1,-1,-1,0,0,-1,0,0,0,0,-1,1,0,1,1,1,0,0,-1,0,1,0,1,1,1,1,-1,1,1,1,-1,-1,1,-1,0,0,0,-1,0,1,0,0,0,1,0,0,0,0,-1,0,1,0,1,0,-1,-1,1,-1,-1,0,0,1,0,0,-1,0,-1,0,0,-1,0,1,1,0,1,0,1,0,0,0,0,0,0,-1,0,0,0,1,-1,1,0,0,-1,0,0,-1,0,1,0,1,0,0,0,0,0,-1,0,-1,-1,-1,-1,0,-1,-1,-1,1,-1,1,-1,-1,0,0,0,1,1,0,-1,0,1,1,0,0,0,-1,-1,1,1,1,1,-1,-1,0,0,-1,0,0,-1,0,-1,-1,0,-1,1,0,-1,1,-1,0,0,0,0,-1,0,0,0,0,0,1,-1,0,0,1,0,0,0,0,-1,0,1,0,0,-1,0,1,0,1,0,1,0,0,0,0,0,-1,0,0,0,-1,-1,0,0,0,0,-1,-1,0,0,1,-1,0,-1,0,-1,0,1,0,0,-1,1,1,0,-1,-1,-1,1,0,0,0,0,0,1,0,0,-1,1,-1,0,0,0,0,0,1,0,0,1,1,1,-1,0,0,-1,1,0,-1,0,0,-1,-1,0,1,-1,1,0,-1,0,0,0,0,1,0,0,1,0,-1,-1,-1,-1,-1,-1,0,0,-1,-1,0,0,-1,1,0,-1,1,0,0,0,0,1,-1,1,0,1,1,0,1,1,0,0,0,0,-1,0,1,1,0,1,0,1,0,1,-1,-1,1,0,1,1,0,-1,0,0,0,0,0,0,0,1,1,0,1,-1,0,-1,0,-1,1,0,0,1,0,-1,0,-1,-1,-1,0,0,0,0,0,1,-1,-1,-1,0,0,0,0,1,1,1,0,-1,-1,1,1,0,0,-1,-1,0,0,1,1}, } ; static const unsigned char precomputed_core_mult3sntrup953_c[precomputed_core_mult3sntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_mult3sntrup953_impl(long long impl) { unsigned char *h = test_core_mult3sntrup953_h; unsigned char *n = test_core_mult3sntrup953_n; unsigned char *k = test_core_mult3sntrup953_k; unsigned char *c = test_core_mult3sntrup953_c; unsigned char *h2 = test_core_mult3sntrup953_h2; unsigned char *n2 = test_core_mult3sntrup953_n2; unsigned char *k2 = test_core_mult3sntrup953_k2; unsigned char *c2 = test_core_mult3sntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_mult3sntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_mult3sntrup953(impl); printf("core_mult3sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_mult3sntrup953_implementation(impl),ntruprime_dispatch_core_mult3sntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_mult3sntrup953; printf("core_mult3sntrup953 selected implementation %s compiler %s\n",ntruprime_core_mult3sntrup953_implementation(),ntruprime_core_mult3sntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_mult3sntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_mult3sntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_mult3sntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_mult3sntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_mult3sntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_mult3sntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_mult3sntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_mult3sntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_mult3sntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_mult3sntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_mult3sntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"mult3sntrup953")) return; storage_core_mult3sntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_mult3sntrup953_h = aligned(storage_core_mult3sntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_mult3sntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_mult3sntrup953_n = aligned(storage_core_mult3sntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_mult3sntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_mult3sntrup953_k = aligned(storage_core_mult3sntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_mult3sntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_mult3sntrup953_c = aligned(storage_core_mult3sntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_mult3sntrup953_h2 = callocplus(maxalloc); test_core_mult3sntrup953_h2 = aligned(storage_core_mult3sntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_mult3sntrup953_n2 = callocplus(maxalloc); test_core_mult3sntrup953_n2 = aligned(storage_core_mult3sntrup953_n2,crypto_core_INPUTBYTES); storage_core_mult3sntrup953_k2 = callocplus(maxalloc); test_core_mult3sntrup953_k2 = aligned(storage_core_mult3sntrup953_k2,crypto_core_KEYBYTES); storage_core_mult3sntrup953_c2 = callocplus(maxalloc); test_core_mult3sntrup953_c2 = aligned(storage_core_mult3sntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_mult3sntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_mult3sntrup953();++impl) forked(test_core_mult3sntrup953_impl,impl); ++test_core_mult3sntrup953_h; ++test_core_mult3sntrup953_n; ++test_core_mult3sntrup953_k; ++test_core_mult3sntrup953_c; ++test_core_mult3sntrup953_h2; ++test_core_mult3sntrup953_n2; ++test_core_mult3sntrup953_k2; ++test_core_mult3sntrup953_c2; } free(storage_core_mult3sntrup953_c2); free(storage_core_mult3sntrup953_k2); free(storage_core_mult3sntrup953_n2); free(storage_core_mult3sntrup953_h2); free(storage_core_mult3sntrup953_c); free(storage_core_mult3sntrup953_k); free(storage_core_mult3sntrup953_n); free(storage_core_mult3sntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_multsntrup1013.c0000644000000000000000000022303014705505543023607 0ustar rootroot/* ----- core/multsntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_multsntrup1013_checksums[] = { "bb44732592ee7d27c6e0890312f5d24a549c18dc5a96e228dd1ad2144634967d", "a9055126814af236349885adb167762de5c9b3e19f351de5e14abd91a5fc759f", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_multsntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_multsntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_multsntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_multsntrup1013_CONSTBYTES static void *storage_core_multsntrup1013_h; static unsigned char *test_core_multsntrup1013_h; static void *storage_core_multsntrup1013_n; static unsigned char *test_core_multsntrup1013_n; static void *storage_core_multsntrup1013_k; static unsigned char *test_core_multsntrup1013_k; static void *storage_core_multsntrup1013_c; static unsigned char *test_core_multsntrup1013_c; static void *storage_core_multsntrup1013_h2; static unsigned char *test_core_multsntrup1013_h2; static void *storage_core_multsntrup1013_n2; static unsigned char *test_core_multsntrup1013_n2; static void *storage_core_multsntrup1013_k2; static unsigned char *test_core_multsntrup1013_k2; static void *storage_core_multsntrup1013_c2; static unsigned char *test_core_multsntrup1013_c2; #define precomputed_core_multsntrup1013_NUM 4 static const unsigned char precomputed_core_multsntrup1013_h[precomputed_core_multsntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {66,253,51,255,24,13,194,10,32,247,209,255,144,253,195,12,4,250,246,6,165,245,126,2,200,7,11,12,168,249,21,255,23,4,211,244,250,4,234,7,41,2,176,12,57,252,113,3,243,8,144,6,150,251,152,243,110,248,52,10,173,10,179,7,201,251,228,250,92,5,215,13,242,253,118,244,230,251,138,13,175,244,176,2,141,242,28,242,113,242,168,5,47,2,79,5,253,2,11,13,134,249,195,13,32,243,43,251,22,255,44,9,66,2,133,2,29,252,192,3,103,243,209,243,198,250,134,7,171,13,8,10,183,5,52,253,253,253,230,9,84,12,195,2,139,253,123,246,163,2,167,244,246,245,158,5,17,246,86,242,127,2,64,248,41,1,172,248,164,2,212,243,213,4,85,8,25,252,191,11,133,10,121,247,169,7,27,5,171,6,67,252,109,252,3,251,58,251,132,242,246,5,59,9,139,13,111,243,32,246,118,253,182,249,97,6,253,249,226,242,174,252,179,7,35,251,134,245,38,6,119,253,10,2,232,247,19,245,188,255,122,7,247,0,93,6,107,252,192,247,161,243,119,4,158,251,209,7,32,243,237,10,229,0,236,242,175,13,209,12,18,253,7,0,253,255,167,12,43,12,209,4,73,8,182,253,253,254,115,255,121,249,94,1,233,245,16,13,94,9,241,249,217,1,113,252,10,11,30,244,172,247,121,9,94,3,226,7,243,13,129,247,211,243,15,249,157,5,137,248,145,11,134,2,158,0,79,4,201,4,183,5,151,251,115,243,14,251,4,0,201,6,236,246,88,255,95,253,120,246,243,255,23,6,184,249,123,245,70,11,202,255,40,7,119,253,232,254,9,247,69,13,74,250,116,2,126,252,15,248,66,1,0,243,171,246,127,12,105,244,87,253,216,5,216,10,187,4,113,10,192,4,152,9,138,247,74,10,183,245,23,6,187,0,229,245,167,248,70,9,9,1,159,255,133,4,157,247,190,252,63,12,117,249,200,13,102,249,255,247,96,249,162,4,184,251,80,1,96,251,198,8,102,252,142,9,172,9,208,243,203,10,202,248,161,251,114,7,94,250,73,243,209,10,116,245,44,11,95,242,49,251,87,9,222,9,195,9,148,4,218,252,51,246,193,3,193,250,116,243,132,254,29,5,82,4,2,251,177,2,120,11,100,252,54,254,21,3,96,2,53,12,32,254,77,245,235,9,198,8,197,11,197,8,120,248,82,251,186,3,153,255,127,12,241,247,165,1,174,243,83,246,121,13,78,8,217,242,151,250,129,1,119,9,153,248,103,250,119,254,43,251,38,242,239,12,129,247,88,5,142,244,89,2,111,4,97,249,11,4,15,10,52,10,137,246,174,253,162,249,148,13,125,9,46,12,229,245,114,2,232,9,150,8,213,5,67,8,101,253,13,13,87,2,63,8,139,10,206,243,120,255,76,247,248,9,169,5,171,12,105,12,190,10,148,5,91,255,53,243,140,6,177,245,206,7,202,7,113,8,102,244,220,246,91,253,51,249,52,4,55,6,189,7,152,250,87,6,83,246,163,245,15,11,64,6,211,4,239,4,80,253,200,247,144,10,29,247,129,13,213,6,186,254,39,10,188,248,52,6,159,251,20,249,238,13,220,250,134,2,150,1,182,255,226,8,124,3,30,254,241,252,173,252,57,252,206,244,122,9,104,5,81,2,65,246,121,1,100,3,39,10,11,245,42,11,147,251,226,244,219,7,137,250,97,5,27,6,235,0,87,12,16,5,138,10,123,243,180,8,4,253,99,3,215,6,98,245,33,4,220,12,85,5,241,255,193,8,130,6,117,2,230,253,209,8,132,1,65,250,164,247,51,251,171,244,207,0,165,5,109,243,14,6,90,7,231,11,176,255,155,2,148,2,209,243,92,248,198,251,182,6,70,248,248,253,66,243,38,1,101,5,197,255,255,251,136,247,245,244,233,7,123,252,168,9,20,13,25,9,165,254,174,242,246,3,232,255,207,249,0,249,250,254,239,246,38,251,22,2,234,9,3,252,156,3,249,245,6,243,128,242,125,10,46,0,138,2,215,245,141,11,75,5,207,4,54,1,180,12,232,6,3,242,218,9,156,252,80,253,47,0,44,5,166,248,38,255,141,251,12,1,20,3,0,14,98,247,187,12,17,8,31,253,208,0,144,0,11,253,247,250,100,7,51,1,149,252,247,249,214,243,170,0,255,247,232,250,112,11,143,248,47,249,77,248,125,3,246,250,61,0,114,254,114,253,203,3,65,11,12,246,70,10,251,8,8,9,248,255,143,7,35,245,6,8,91,8,82,0,167,2,48,9,196,8,242,3,188,6,186,11,145,10,17,3,108,246,89,9,7,9,45,5,102,6,15,1,100,11,251,254,32,251,236,243,184,245,43,244,17,3,233,246,184,2,74,0,112,11,203,254,164,249,20,3,190,242,218,11,253,241,131,9,231,252,25,2,86,249,126,5,77,13,121,246,175,7,68,7,216,250,237,251,50,244,73,10,40,251,69,251,40,249,1,249,29,255,141,244,184,243,127,7,243,242,221,251,123,245,60,6,46,5,38,246,65,251,115,243,146,8,80,250,99,253,2,2,55,253,55,249,33,4,141,242,9,251,184,5,236,254,64,12,149,243,91,8,190,0,217,248,52,249,167,254,15,249,20,251,166,247,44,9,25,253,210,10,13,9,182,242,201,9,93,7,7,251,90,246,0,4,191,254,156,10,68,247,231,247,130,249,183,249,206,11,62,13,97,2,94,13,245,242,44,250,146,246,139,254,65,0,70,243,34,246,124,251,100,1,242,246,207,249,217,251,240,245,148,252,238,249,55,2,184,3,61,249,214,11,9,245,70,6,204,249,134,254,209,252,108,249,38,254,152,6,35,10,116,253,15,7,63,250,33,3,230,250,80,6,136,255,47,3,158,9,230,250,217,255,64,4,133,252,128,254,168,8,180,253,140,249,27,5,221,8,100,247,46,12,139,6,26,3,119,7,219,243,237,243,229,252,135,254,141,3,229,255,162,247,201,12,166,8,21,254,116,10,160,249,183,0,27,6,26,10,161,6,66,246,59,11,111,3,158,244,92,10,209,3,58,254,58,249,95,13,41,247,71,1,89,248,100,9,206,9,106,0,78,2,165,247,135,13,71,247,221,250,67,12,237,1,67,2,140,243,10,7,10,250,46,244,83,11,178,12,188,251,147,0,120,253,20,245,33,249,207,11,115,13,10,245,42,5,243,245,157,250,201,248,116,253,117,254,89,13,108,0,216,12,52,250,6,2,154,249,149,0,168,248,10,0,104,245,31,243,74,246,91,10,123,254,90,6,229,4,58,9,207,246,59,7,243,251,11,242,134,6,162,245,101,6,156,6,77,255,122,6,141,6,216,4,27,13,114,244,54,1,250,4,165,244,193,4,58,253,81,245,217,254,38,243,141,9,238,249,225,2,190,13,198,11,230,253,243,5,39,1,118,3,12,9,36,13,95,2,216,8,223,255,119,254,197,249,208,251,111,251,90,247,178,243,129,252,4,249,213,244,139,1,186,10,153,244,78,246,25,250,56,245,209,7,202,246,232,249,177,245,70,247,234,12,147,5,139,11,126,243,186,250,119,4,161,1,143,7,189,12,6,250,32,13,70,1,126,4,134,245,45,4,215,4,99,255,239,11,28,9,170,0,164,252,218,248,16,255,169,250,84,13,219,4,19,243,50,1,122,247,60,3,174,1,213,251,237,249,100,1,239,249,43,254,249,243,126,8,160,11,171,3,16,254,117,249,70,253,4,14,246,255,24,6,250,251,245,249,10,255,162,254,253,244,213,255,38,11,172,10,83,248,249,251,175,253,247,255,49,242,30,2,243,1,237,251,7,10,164,10,10,247,156,253,189,3,152,253,160,6,219,248,239,7,29,5,159,249,67,0,211,12,46,8,51,242,240,254,144,0,116,11,85,252,52,245,120,245,31,246,218,11,214,3,93,0,158,255,82,243,125,1,214,248,193,3,208,7,231,247,208,251,128,244,255,244,239,4,90,9,106,5,131,255,26,249,134,4,95,250,131,246,190,246,184,7,116,3,147,251,85,250,60,253,221,8,137,9,56,244,116,8,125,243,111,12,1,10,34,254,198,249,192,252,169,242,16,252,87,0,57,244,91,7,64,8,202,5,133,242,78,0,162,11,18,255,84,9,196,0,31,10,136,6,15,251,39,253,176,249,19,13,194,12,223,243,236,4,143,253,109,254,213,12,18,13,155,247,68,251,2,253,216,244,251,245,148,10,95,250,228,246,166,1,146,251,169,250,55,249,145,244,3,250,104,242,62,6,153,3,133,8,209,2,173,13,61,12,111,8,50,242,216,7,209,251,208,247,9,13,237,251,54,253,76,242,106,9,107,242,158,0,133,4,60,7,58,5,228,7,255,12,250,252,209,242,64,249,210,255,114,243,106,242,101,2,127,12,69,2,244,251,57,244,246,245,41,246,89,13,183,252,75,2,6,12,88,250,36,253,53,254,71,2,84,3,180,254,23,0,87,252,150,243,106,0,59,13}, {210,242,230,248,137,250,178,3,202,9,27,11,143,245,236,1,255,253,117,246,15,6,205,252,134,248,209,8,110,253,226,3,79,9,102,254,237,253,92,248,75,243,105,250,87,5,157,6,175,245,159,3,241,13,223,2,49,253,19,5,150,253,27,247,89,1,169,13,190,6,237,244,189,5,112,254,42,243,217,247,63,7,233,244,220,250,84,251,45,251,202,9,18,254,28,11,178,255,20,11,99,0,180,11,46,13,54,254,202,2,146,254,174,247,12,255,179,5,222,4,65,10,159,246,175,248,118,250,111,6,85,1,183,248,222,244,205,254,250,8,240,10,41,253,94,249,233,251,185,4,188,250,7,0,137,244,65,3,186,10,221,7,65,255,132,255,240,0,92,249,103,2,90,254,192,9,61,243,172,244,183,7,220,2,56,249,247,4,196,244,191,11,169,248,253,246,77,242,212,249,229,253,246,251,25,250,158,247,175,1,110,4,55,6,187,248,154,9,125,249,51,243,192,11,226,13,240,8,144,242,24,7,29,11,161,1,35,251,181,255,242,247,65,2,121,2,5,2,80,250,249,7,239,0,17,245,217,7,85,255,241,253,228,252,174,254,249,247,101,4,12,7,209,255,16,246,19,13,107,246,48,4,163,2,187,2,48,4,212,10,18,1,167,247,232,7,8,249,51,0,152,251,232,5,89,5,183,3,8,250,197,5,230,251,245,10,22,11,234,0,67,8,82,9,185,13,77,8,151,10,54,244,153,4,83,10,142,245,155,9,22,10,124,0,229,253,21,0,57,249,70,2,193,242,173,249,100,246,248,12,122,255,53,251,218,244,27,3,236,8,184,250,53,12,83,5,42,250,161,11,75,255,128,245,251,11,105,7,75,245,201,255,13,242,216,249,117,13,144,254,193,5,255,254,127,12,183,255,233,3,86,5,126,246,36,244,150,251,44,7,70,255,168,254,175,3,29,10,117,3,185,246,116,255,231,5,129,246,225,8,50,250,174,246,60,249,84,1,27,248,50,0,33,244,78,1,156,248,94,249,183,13,225,7,235,13,159,4,27,8,42,7,123,1,80,255,132,255,97,244,151,245,89,6,114,250,235,5,4,243,179,249,89,8,61,3,67,252,57,0,144,251,59,3,254,9,114,247,240,4,143,254,54,253,170,13,69,247,239,251,239,245,231,254,229,251,98,0,59,1,183,253,1,9,49,242,244,248,238,10,69,249,9,0,117,249,52,2,210,6,236,242,38,0,180,3,141,253,15,5,36,9,212,9,255,247,108,10,182,246,185,5,163,12,137,5,208,253,86,243,167,0,90,246,192,250,154,255,27,12,9,249,40,248,64,248,189,245,87,5,106,12,110,9,231,9,220,253,146,243,91,11,25,250,234,4,247,12,100,8,39,11,63,5,221,243,66,6,33,242,73,6,12,6,169,245,182,3,160,6,103,11,122,249,193,12,179,8,215,249,196,5,35,252,163,250,202,4,15,2,116,0,70,253,54,6,55,6,100,1,168,0,91,245,226,6,8,249,69,253,89,249,88,246,40,253,103,254,200,10,129,10,179,246,138,13,187,3,71,11,63,255,150,244,3,12,55,0,83,1,143,8,39,5,234,6,166,249,255,3,118,9,29,11,87,249,61,248,234,0,17,253,134,12,87,251,157,6,138,13,205,252,201,248,67,250,196,245,219,248,5,2,127,244,16,1,54,9,162,253,2,13,172,4,216,5,99,246,90,244,160,251,47,10,48,253,64,12,167,4,14,9,97,243,32,249,105,3,52,252,129,12,22,3,189,255,161,247,104,243,168,4,229,11,41,254,39,12,223,252,119,250,139,251,164,10,41,253,129,245,67,10,251,5,130,253,115,244,114,5,99,3,119,1,121,248,189,255,249,0,161,242,86,246,194,253,106,11,122,244,90,251,241,2,101,254,42,4,109,11,138,244,167,254,140,245,23,13,195,8,203,244,26,248,202,251,235,253,128,11,176,7,28,11,88,255,218,246,119,250,106,9,166,246,248,12,152,0,105,242,52,13,194,251,2,242,166,7,140,243,178,5,90,1,102,246,214,255,77,243,142,242,84,247,152,5,64,245,224,248,127,4,28,251,196,2,252,2,202,254,171,244,176,11,62,12,173,5,221,247,213,245,202,248,157,246,50,12,236,247,214,1,84,7,60,253,16,245,213,242,37,247,112,252,40,6,206,255,38,248,216,8,82,7,23,5,149,8,102,249,110,11,244,12,226,7,117,242,64,244,30,12,218,251,182,8,44,7,93,3,239,249,217,243,66,9,118,250,255,247,118,0,140,1,234,251,59,2,111,12,155,248,195,245,141,5,64,5,92,7,58,253,120,12,251,10,54,2,246,7,196,242,69,247,45,245,22,244,69,11,114,243,73,11,247,251,230,252,24,247,9,242,230,249,111,4,45,13,117,250,197,247,81,244,49,4,254,0,50,253,154,251,220,254,236,2,19,0,67,254,208,4,132,246,32,242,252,7,6,251,50,246,131,242,227,242,176,6,232,244,69,243,105,251,153,13,92,252,123,1,195,251,225,1,139,13,110,249,185,245,170,3,64,10,138,248,22,13,115,247,107,246,235,6,28,9,181,248,115,9,158,253,38,254,237,6,215,251,129,245,153,5,181,5,31,242,113,6,58,8,184,10,240,7,139,242,132,4,130,244,25,8,12,245,51,5,242,247,225,250,249,8,221,2,31,251,183,12,215,7,144,242,137,252,60,2,65,3,125,247,203,243,97,248,148,6,243,244,106,249,192,3,17,3,53,6,243,254,91,7,10,2,233,255,63,245,57,4,107,245,65,255,26,2,5,9,34,249,31,253,255,252,150,4,11,4,52,5,139,4,208,7,205,7,236,253,45,13,113,12,190,7,158,5,169,6,41,251,251,247,15,12,99,11,44,4,40,6,16,1,24,252,35,243,96,8,225,7,70,242,22,242,241,251,237,6,57,11,152,255,25,8,54,2,179,9,222,12,106,1,203,0,74,8,223,10,34,253,213,249,110,7,137,254,74,9,243,6,161,245,253,248,58,249,237,6,137,0,166,248,203,8,237,8,3,13,139,247,158,13,177,0,244,13,26,9,119,9,255,248,67,252,146,9,36,7,151,253,196,252,183,245,122,255,213,0,55,10,101,7,198,250,46,255,128,249,116,11,248,9,175,251,73,13,173,11,28,247,94,254,231,243,208,249,159,12,154,250,104,6,194,251,139,6,0,3,120,2,87,253,36,253,224,13,210,2,14,6,225,244,208,8,64,243,0,9,112,6,213,242,47,254,249,242,82,247,24,245,209,6,49,12,48,5,50,251,206,0,96,3,63,243,147,4,39,255,255,7,166,11,164,243,113,0,238,248,96,2,174,249,147,252,41,2,181,8,114,253,155,10,89,10,252,3,85,244,183,6,72,248,137,253,20,0,23,7,75,255,32,8,103,242,25,251,8,7,251,251,245,245,132,9,32,7,66,6,134,13,43,252,114,12,22,9,175,4,149,246,35,5,90,243,252,6,197,253,187,245,36,242,73,246,255,8,9,10,92,0,254,3,119,247,46,255,200,254,254,7,7,244,49,3,208,252,244,12,88,6,75,242,155,9,99,251,182,253,195,242,194,254,99,0,84,7,109,255,193,242,225,242,159,253,76,247,191,13,63,249,215,2,249,244,10,251,170,245,88,254,143,253,140,13,26,2,65,5,79,251,119,247,101,3,209,10,72,6,9,4,192,249,160,255,149,250,29,1,194,7,107,12,210,247,96,11,196,248,74,4,129,246,24,9,56,7,48,12,67,13,36,253,25,249,51,243,116,242,195,252,74,242,208,249,142,7,249,9,151,253,236,254,57,248,127,1,140,245,87,11,192,253,182,11,249,244,255,253,147,9,32,252,234,246,201,253,197,11,84,243,84,10,2,253,34,13,155,255,33,5,80,253,51,243,156,4,213,13,126,253,85,2,182,243,153,0,40,4,65,11,46,250,112,11,230,245,118,253,138,7,170,248,32,12,89,243,144,8,241,251,67,254,15,254,193,11,100,245,78,8,127,11,144,2,202,9,28,6,170,252,215,2,228,254,202,10,12,242,165,13,116,255,186,11,20,246,180,247,86,245,143,7,86,4,71,6,13,247,203,6,102,3,223,11,73,0,109,5,233,250,60,249,226,11,22,246,204,8,163,254,75,11,69,254,10,13,70,2,195,3,117,11,99,250,163,245,141,6,4,7,18,251,30,246,193,246,132,246,150,0,166,1,63,7,187,251,169,249,221,248,254,246,8,2,3,250,221,8,233,242,176,5,13,243,209,2,204,253,125,1,113,250,77,242,76,251,17,249,214,5,74,0,3,249,200,13,27,248,103,11,184,254,153,253,163,9,68,247,58,253,84,4,25,251,155,4,120,6,160,3,182,244,112,242,68,12,11,6,41,242,115,4,189,10,147,247,193,246,165,248,22,255,221,0,196,245,98,245,199,249,181,252,203,245,193,7,204,255,117,246,120,9,109,254,63,8,150,8,151,255,229,13,232,251,124,242,2,252,179,8,198,1,52,1,35,5,205,1}, {210,7,191,250,125,246,69,249,230,4,123,249,113,247,231,3,224,249,149,1,208,245,230,249,85,12,86,1,40,9,7,251,155,11,169,246,0,7,47,255,249,254,122,245,166,8,155,5,226,248,216,248,198,4,16,246,160,1,83,250,183,5,10,6,154,11,107,243,136,250,52,250,205,253,15,255,239,10,57,248,191,6,146,253,176,248,180,5,70,243,161,254,149,245,54,250,105,245,75,11,203,252,146,244,76,5,112,246,195,249,61,8,54,9,232,8,251,4,15,252,205,7,217,4,236,255,187,250,105,10,153,255,140,12,141,247,68,10,109,247,80,252,196,6,140,12,146,4,125,13,74,251,226,9,23,1,61,9,83,246,219,249,0,1,182,248,111,252,81,3,205,253,204,13,244,4,194,250,237,9,77,251,151,246,5,250,40,252,55,242,18,9,123,6,108,243,195,249,9,6,69,4,164,245,87,247,252,241,118,1,140,5,232,2,102,247,197,7,72,253,236,249,78,245,108,8,71,249,101,2,69,255,228,255,21,1,13,243,47,249,117,3,74,11,220,242,64,247,245,248,149,243,216,1,180,6,214,6,152,5,67,5,138,6,215,0,61,8,80,11,33,4,59,248,249,255,178,13,219,254,191,252,251,243,66,4,103,6,55,253,80,13,178,248,147,247,7,253,162,244,126,251,97,250,131,9,231,1,222,244,199,245,83,10,162,7,72,4,193,247,231,249,107,11,222,8,30,244,202,10,60,7,32,7,49,9,93,248,53,247,137,8,1,253,85,248,208,243,78,254,194,249,129,13,249,245,84,10,32,5,155,247,100,250,50,242,21,250,104,5,24,3,191,2,255,2,215,11,5,253,183,243,62,250,72,7,232,251,126,7,250,251,5,13,23,244,128,11,74,250,59,12,231,254,6,252,209,246,61,251,14,255,41,3,212,4,55,7,8,244,130,253,187,243,29,250,89,242,236,11,24,249,191,252,79,4,83,0,192,1,228,243,68,246,17,2,207,255,81,253,1,244,171,2,207,254,134,10,237,7,227,248,184,7,151,245,52,8,194,1,55,0,194,253,106,8,242,248,18,5,156,249,252,3,229,250,89,12,212,9,32,251,233,249,22,10,143,245,178,245,219,11,46,5,118,5,107,242,65,1,238,245,211,247,40,253,167,5,225,11,250,249,25,3,142,2,118,7,66,12,1,4,67,4,172,245,158,4,153,7,17,250,61,242,58,9,125,248,199,1,70,247,3,249,201,243,177,12,14,13,54,251,151,253,220,243,5,252,0,254,45,1,138,245,254,246,249,4,69,254,203,5,31,242,225,242,109,0,182,247,147,250,175,10,123,5,217,244,135,5,151,10,27,251,204,7,100,243,18,13,47,3,206,1,198,7,48,250,190,11,6,250,77,2,238,242,87,243,198,249,156,13,187,5,169,255,46,247,68,11,159,11,136,4,208,7,118,253,195,13,205,246,100,254,118,8,205,252,193,249,47,245,61,248,145,244,206,2,5,11,251,243,44,0,31,245,239,8,57,247,223,5,229,1,186,13,80,2,22,12,27,252,6,10,151,8,155,250,219,250,83,3,66,247,33,254,37,242,205,248,145,12,128,253,227,244,248,8,47,253,206,11,197,246,132,255,106,11,105,253,218,4,92,12,214,246,111,1,25,251,151,251,233,243,87,5,187,243,30,9,188,5,245,252,55,7,29,10,229,254,20,244,104,6,67,2,129,245,6,251,206,250,4,1,156,3,155,10,22,6,152,254,73,249,225,12,102,12,244,249,166,1,136,8,201,253,249,245,191,7,174,243,147,251,237,5,204,250,43,11,60,6,35,254,89,253,192,250,122,250,69,248,88,0,11,255,15,3,201,3,76,242,238,254,166,252,126,251,93,246,119,11,225,253,195,7,159,249,112,245,220,10,122,252,214,244,69,8,153,0,169,13,231,2,149,4,247,4,128,243,29,248,22,246,182,243,135,9,227,2,192,244,121,8,131,245,251,12,26,246,72,6,165,251,9,7,113,1,91,9,218,251,82,250,100,8,219,251,217,13,108,243,115,245,88,0,60,8,177,2,22,4,87,251,54,243,237,250,32,3,244,251,122,11,44,247,148,10,183,12,48,254,17,252,255,11,42,246,121,246,86,9,21,6,205,245,185,243,76,1,251,248,17,249,254,5,54,245,210,245,168,247,6,255,155,253,67,242,238,255,38,12,110,4,193,248,142,251,61,248,188,3,14,254,180,1,239,254,21,243,14,8,117,5,2,13,131,4,125,8,59,0,249,1,5,248,75,10,73,253,35,2,213,12,0,247,100,251,33,246,254,243,239,248,84,4,68,5,169,7,13,253,17,246,182,9,70,252,171,2,90,248,172,243,235,4,61,242,197,254,40,244,107,246,158,5,109,255,248,1,46,250,169,251,87,253,167,247,100,5,183,243,109,12,123,246,234,0,87,250,79,255,239,2,99,251,255,250,69,11,0,251,89,247,215,2,201,253,251,252,206,12,87,12,105,12,253,6,173,11,163,2,162,243,91,246,42,8,40,2,145,11,178,10,233,3,15,247,8,9,164,254,65,5,27,9,43,247,48,3,85,3,88,10,115,10,220,242,236,245,250,247,69,253,159,10,231,250,226,4,147,251,64,2,92,5,66,248,35,8,91,3,198,242,104,2,18,243,210,250,108,251,209,251,207,13,109,13,180,11,178,2,210,8,76,242,76,3,149,246,151,244,138,1,168,250,199,11,141,242,111,10,59,251,126,4,245,2,84,255,91,243,59,244,103,3,62,11,151,10,221,247,46,9,166,2,226,10,246,10,10,244,39,10,33,253,48,250,156,11,59,253,158,253,17,246,62,253,27,1,109,12,19,10,89,243,92,4,155,243,185,250,140,254,50,9,114,7,136,10,180,1,154,0,48,253,56,11,220,242,132,5,30,3,134,0,34,255,142,4,110,244,134,12,187,245,160,255,158,244,1,8,249,252,48,4,61,255,10,248,246,243,41,253,35,253,220,7,67,254,162,243,33,3,126,253,24,4,26,10,76,9,65,7,236,9,108,8,183,1,147,253,161,3,64,245,197,10,87,255,244,3,247,252,57,0,46,4,249,255,198,245,61,253,3,245,207,7,20,244,95,248,225,5,207,9,170,252,127,246,199,246,13,9,65,249,2,245,18,0,79,255,23,7,175,250,180,0,241,243,146,2,93,10,211,1,89,243,77,13,129,10,159,255,132,7,128,6,51,251,118,243,71,254,155,2,159,246,13,242,136,3,165,0,229,251,109,2,8,7,112,5,169,242,81,13,225,245,95,9,219,5,88,2,228,253,194,254,96,246,250,3,152,4,248,5,178,243,240,250,54,8,64,254,88,253,126,9,27,251,169,248,212,250,39,12,252,6,201,251,18,8,83,9,55,13,111,3,207,13,214,10,130,11,153,246,14,252,36,4,239,250,91,253,237,6,218,2,101,6,223,0,64,252,140,248,36,243,128,13,24,9,148,255,191,243,42,0,75,253,193,251,15,4,251,9,200,253,48,9,206,0,231,242,252,245,67,4,22,10,201,253,66,251,19,8,130,254,56,9,138,243,243,243,219,244,186,6,53,244,195,7,118,249,205,247,71,248,21,7,34,6,17,10,153,1,189,10,244,247,36,255,7,8,205,251,193,1,152,251,15,0,33,8,125,242,253,249,85,248,32,8,243,250,248,244,168,254,220,252,74,10,153,251,215,6,218,7,75,13,160,12,43,249,185,255,197,249,20,9,71,243,25,251,25,254,144,4,154,249,155,245,171,254,91,244,111,9,135,246,220,243,178,242,237,4,41,2,75,246,2,253,122,250,140,253,60,248,75,11,186,253,17,5,197,4,194,4,196,244,248,246,91,4,16,242,45,6,247,248,15,4,98,255,1,6,69,253,90,246,71,243,60,10,124,2,114,255,105,247,244,253,123,12,216,0,114,9,228,247,248,253,73,244,3,0,71,8,205,249,124,247,47,11,125,10,155,12,176,243,4,7,27,6,134,11,59,251,236,6,54,2,178,246,199,245,229,245,144,0,68,247,16,12,218,254,114,246,170,246,231,251,220,248,14,243,241,253,175,4,78,242,45,3,0,251,239,9,152,251,214,254,178,249,142,243,125,252,133,0,5,3,188,13,214,254,99,251,88,255,46,10,217,4,122,1,51,247,176,243,178,11,237,12,108,10,174,254,23,252,199,2,28,245,191,4,236,2,154,7,254,255,202,242,10,1,61,13,250,246,135,243,151,9,88,9,103,12,84,3,251,12,52,10,250,255,169,255,81,2,35,243,29,245,231,0,135,246,234,252,85,9,225,250,249,253,81,13,92,11,62,13,213,6,81,254,121,11,120,252,127,247,48,251,224,245,243,245,174,6,120,253,178,10,207,3,130,246,66,7,209,13,23,7,178,247,173,9,114,5,40,6,123,254,11,252,12,242,0,243,189,9,120,8,235,3,183,253,32,3,54,251,228,242,159,247,240,245,44,12,147,13,151,8,122,1,135,247,97,244,70,255,135,4,19,7,137,251,41,0,151,251,96,2,42,5}, {208,4,42,7,147,243,160,11,238,11,136,4,74,5,254,3,194,9,176,242,223,253,245,254,40,9,87,247,214,252,151,248,28,4,145,9,250,249,245,3,72,10,213,8,140,9,43,8,109,11,56,6,153,249,140,11,152,247,18,250,35,254,235,245,83,13,27,9,93,246,113,251,68,244,26,5,249,12,90,4,1,3,242,251,71,6,148,0,79,242,133,251,71,244,152,245,106,247,243,254,168,10,218,255,254,252,197,11,138,248,250,11,167,10,41,10,8,12,98,0,192,13,9,249,95,242,134,245,145,12,62,242,186,246,13,242,82,247,208,5,188,11,177,10,173,3,75,10,107,252,105,249,221,243,103,249,176,1,193,250,33,1,37,246,173,245,37,250,233,6,188,8,62,3,64,8,75,11,139,245,33,8,92,0,193,8,106,254,235,245,97,247,135,12,187,254,130,254,13,2,204,11,102,0,92,0,103,255,124,253,138,3,118,7,116,245,216,9,15,1,248,3,232,6,88,0,108,252,186,253,55,255,201,9,252,249,100,10,10,0,242,10,187,244,226,6,142,254,219,254,13,242,150,1,166,253,62,0,101,4,161,245,58,248,2,3,240,5,181,13,44,254,111,12,213,253,23,3,13,249,218,8,139,255,74,7,235,8,16,250,143,247,58,8,174,13,7,13,144,255,12,3,195,242,19,247,169,252,33,253,124,250,4,249,173,5,178,8,195,253,60,2,165,243,146,242,205,245,68,252,233,0,189,1,111,10,125,242,61,2,105,255,165,247,109,12,204,249,33,12,175,251,149,7,149,6,30,5,189,242,239,248,60,8,175,0,228,13,231,244,2,246,187,255,131,252,157,243,121,6,146,12,174,9,44,6,37,0,51,13,100,250,209,252,128,244,238,13,232,248,142,251,96,246,129,10,236,248,227,0,64,4,188,254,53,2,252,5,55,7,107,7,221,243,104,2,183,11,26,245,63,2,230,250,54,6,238,4,220,248,98,4,242,0,192,249,109,11,107,255,191,253,4,1,107,245,8,5,28,244,19,0,182,242,217,4,190,254,177,250,86,4,77,3,186,9,186,245,234,6,29,255,2,13,31,253,126,3,130,3,25,0,18,12,255,12,184,245,175,251,43,11,36,251,210,6,178,11,217,251,105,7,60,242,191,253,42,250,253,9,139,247,163,12,20,0,132,244,145,246,151,253,124,8,89,242,125,254,79,249,85,11,243,11,235,12,121,13,94,6,81,9,181,4,30,253,255,1,6,3,241,6,107,249,103,2,40,1,41,253,105,249,184,4,131,246,106,11,254,10,129,3,96,6,98,1,190,245,254,247,136,243,35,253,46,254,20,245,90,245,214,7,167,247,6,0,105,13,221,11,189,255,162,255,253,7,153,251,125,247,190,4,183,242,75,252,3,242,232,12,100,1,7,0,224,254,216,12,89,246,229,255,157,10,147,254,148,5,142,249,115,0,181,3,152,254,207,1,215,247,244,2,59,3,105,247,168,13,245,0,255,254,73,9,115,251,216,255,216,254,38,11,205,11,34,0,60,1,76,251,222,3,92,13,73,248,222,242,221,7,159,9,118,1,75,2,98,251,110,251,106,8,19,242,107,242,132,254,34,7,32,12,220,8,40,247,107,2,130,9,176,255,232,1,95,9,106,243,15,7,106,4,185,243,67,250,7,10,190,250,121,255,217,254,134,7,201,8,101,4,169,5,142,246,206,249,76,12,157,0,212,7,18,9,230,254,136,255,207,242,154,5,141,11,43,1,179,242,187,10,129,11,197,253,3,248,9,250,205,12,86,254,51,251,45,13,27,243,192,12,224,247,254,0,150,6,59,249,8,4,139,2,184,1,226,13,114,245,124,13,252,4,117,5,143,12,165,11,0,255,144,253,174,3,200,254,48,2,72,12,214,248,122,1,3,250,6,2,130,10,192,9,236,4,215,9,139,2,37,12,182,252,55,251,241,245,85,242,139,2,136,9,70,9,119,255,144,246,46,6,4,10,154,248,7,9,21,0,111,246,77,11,156,254,74,253,16,2,23,12,155,2,154,253,201,0,85,245,46,0,188,248,207,10,8,8,218,8,12,7,164,252,37,9,135,244,5,4,56,248,84,2,185,11,143,6,47,4,234,253,109,252,63,251,155,2,212,13,13,2,222,253,240,255,57,251,241,11,192,11,166,251,90,252,109,9,102,250,94,245,247,4,240,0,24,3,177,3,172,12,84,251,184,12,180,248,45,2,13,243,251,13,160,3,1,251,87,248,195,3,81,9,161,1,61,248,150,13,50,244,118,9,146,243,52,3,0,14,235,243,17,242,211,6,83,246,63,243,141,245,55,4,90,0,73,245,143,11,89,245,24,1,30,248,193,251,133,0,231,4,50,10,45,252,157,12,255,4,34,253,62,13,180,4,29,249,216,254,69,245,76,5,50,10,148,245,99,246,135,251,226,10,102,4,255,4,162,254,65,251,94,5,135,251,105,250,91,250,106,11,137,248,62,251,32,251,252,7,13,252,233,13,183,11,192,12,251,2,37,10,90,250,113,244,208,2,5,248,30,254,42,1,183,6,173,7,182,6,234,12,161,8,135,247,11,5,51,6,18,0,122,11,127,10,75,242,249,6,43,2,103,242,198,12,133,1,215,12,178,248,107,255,197,0,89,255,227,11,116,11,55,10,50,253,46,4,62,255,208,13,108,9,161,250,60,249,176,246,108,4,113,10,129,12,206,10,137,0,86,7,146,3,73,5,219,0,220,243,199,2,3,249,105,6,208,245,53,13,92,7,164,252,47,255,0,242,101,252,177,6,90,13,78,252,114,4,138,1,1,2,155,246,34,249,171,2,21,3,124,11,75,245,239,9,80,247,31,244,89,254,1,250,202,243,10,7,253,12,107,3,135,1,140,10,14,13,238,10,94,8,250,247,93,242,50,0,17,11,20,255,124,246,89,10,181,255,81,252,19,244,68,6,161,246,186,3,201,12,140,245,71,4,101,9,244,249,41,252,183,247,176,255,184,247,151,5,38,243,210,11,125,254,119,242,193,254,253,0,26,11,87,9,32,10,166,1,118,4,224,11,146,1,6,247,167,250,174,0,33,255,84,10,108,249,82,4,193,8,158,5,217,250,240,3,169,12,150,249,99,3,12,247,215,9,19,254,224,251,78,10,113,9,35,247,108,249,152,8,92,244,113,8,15,0,146,252,146,9,85,4,79,3,23,253,238,10,93,247,80,245,95,243,168,253,149,7,6,242,207,255,171,10,82,254,237,243,156,4,60,5,20,245,174,249,16,251,143,3,151,11,98,13,100,2,153,0,33,5,123,6,127,10,73,6,10,2,212,244,82,11,205,255,153,242,188,13,93,2,224,248,85,244,122,242,25,245,192,5,195,251,254,242,7,8,118,251,203,1,125,243,87,249,46,2,212,12,51,255,130,249,17,243,153,242,81,3,104,250,84,1,128,0,103,255,131,0,252,13,100,5,253,254,230,8,38,6,208,8,121,245,228,254,16,254,165,246,193,242,232,244,117,7,112,7,87,254,177,8,38,251,80,246,72,244,242,2,134,242,31,4,95,11,68,8,93,253,24,242,96,4,38,253,21,6,137,6,65,11,124,4,22,247,183,7,25,244,41,251,128,245,110,248,84,248,233,13,218,243,66,9,146,2,251,11,190,1,5,247,223,255,175,2,190,248,177,13,198,245,61,242,29,243,234,7,227,1,78,242,38,245,151,248,90,255,57,245,72,6,216,5,110,251,44,245,97,8,22,5,103,5,130,253,93,0,233,243,27,13,157,13,164,253,116,2,246,254,245,255,133,1,237,255,255,12,83,252,170,2,197,7,228,254,216,4,197,247,176,5,133,247,235,0,151,0,67,249,165,242,98,5,18,4,200,5,78,6,153,246,15,12,240,10,163,244,226,253,85,8,179,243,226,10,209,7,242,247,114,4,200,255,195,5,173,254,192,9,153,254,177,243,119,242,130,13,23,244,51,248,217,11,39,7,142,247,165,8,99,8,133,5,254,242,182,8,48,253,43,13,53,251,76,246,145,8,22,7,207,0,226,2,65,4,197,9,85,13,35,4,205,242,161,1,57,242,35,247,181,253,158,247,159,243,18,12,149,251,32,10,69,13,24,0,118,3,0,9,37,10,249,246,3,244,163,250,39,2,38,7,5,245,102,4,80,254,57,1,185,5,183,251,117,3,203,7,119,245,31,244,182,2,161,254,177,245,6,7,208,11,157,248,208,248,8,2,74,243,58,244,126,2,13,9,75,13,150,9,68,7,213,13,192,244,233,11,197,5,92,6,11,6,212,7,92,244,114,243,113,250,216,12,109,248,224,8,249,251,126,249,164,242,158,12,71,7,153,5,164,10,90,1,169,249,68,254,228,254,193,5,248,9,100,245,51,1,228,5,92,8,56,4,192,13,53,9,7,9,57,242,144,251,20,242,177,242,61,242,92,246,94,249,61,255,170,255,114,247,215,2,92,13,196,247,248,9,206,255,182,249,254,255,171,248,233,13,14,12,143,10,218,243,51,8,167,6,202,254}, } ; static const unsigned char precomputed_core_multsntrup1013_n[precomputed_core_multsntrup1013_NUM][crypto_core_INPUTBYTES] = { {194,119,188,234,1,93,198,243,83,169,5,241,253,123,222,240,89,6,115,195,241,88,132,151,207,39,133,65,120,63,158,62,109,102,152,59,224,76,132,42,197,96,149,190,163,112,7,206,26,4,115,243,215,169,158,101,77,145,172,148,164,38,134,184,223,21,9,115,92,149,83,139,69,209,190,224,16,51,45,173,236,164,242,54,241,105,8,41,118,103,202,18,65,212,179,172,189,224,74,235,131,118,239,213,246,234,247,54,136,26,236,202,136,236,237,29,161,72,74,130,36,29,55,48,214,97,162,33,229,232,31,175,56,235,151,2,218,122,125,92,226,223,23,104,141,17,43,0,216,208,58,62,228,239,124,62,220,36,248,172,19,49,214,243,128,65,60,162,227,240,12,170,145,143,125,127,6,155,90,70,85,143,176,187,223,99,138,229,104,243,232,110,152,49,44,62,163,16,136,217,6,209,36,220,224,203,51,228,64,255,225,53,9,35,236,175,26,236,223,56,173,255,153,232,170,35,210,123,199,116,201,183,148,224,53,110,111,203,175,230,250,3,112,240,22,206,107,15,210,59,58,125,78,247,83,60,106,152,165,102,77,185,240,184,140,131,220,66,63,108,219,190,42,13,63,57,86,203,38,104,218,197,10,217,76,5,53,234,101,178,10,88,94,57,101,233,220,83,252,16,191,12,144,31,18,92,175,239,84,193,33,220,113,102,217,192,48,190,143,208,215,31,13,238,192,26,10,227,29,106,189,65,116,47,127,247,5,73,95,203,27,148,17,41,204,94,122,49,106,53,158,1,50,174,242,86,164,4,28,58,168,111,139,97,44,122,89,157,248,80,99,47,65,38,119,189,211,33,189,166,107,190,107,44,57,167,49,40,185,153,157,239,196,181,213,178,208,240,93,81,87,31,58,217,107,0,146,37,251,118,139,175,119,243,156,112,47,246,73,238,45,25,245,227,203,138,172,193,9,119,113,250,61,238,98,88,101,135,9,135,182,15,131,26,73,97,46,87,174,104,115,190,212,115,236,255,132,144,133,159,197,190,174,156,180,12,6,103,112,187,134,38,176,70,89,50,31,174,220,222,182,180,74,23,170,10,57,31,122,130,110,9,131,108,133,227,105,133,159,46,54,120,0,73,208,250,228,92,83,186,233,199,222,208,143,65,243,159,176,3,78,60,104,6,196,105,243,144,139,255,36,36,206,177,128,98,3,112,209,167,254,215,78,217,27,126,47,153,183,47,136,148,218,210,101,53,3,228,42,119,231,93,199,59,1,203,175,53,225,71,10,184,41,200,123,18,87,83,208,102,241,206,71,169,10,61,64,134,52,79,71,54,67,140,183,250,164,132,38,87,29,179,185,211,107,223,183,129,5,225,49,28,165,199,231,125,243,99,46,231,74,24,73,137,1,56,65,28,201,203,58,209,255,133,56,202,152,77,29,87,83,184,110,32,29,142,232,146,210,168,78,120,126,129,12,112,168,129,14,47,15,80,121,175,245,196,240,246,19,18,190,130,85,231,24,19,94,45,73,201,143,139,139,90,24,159,185,60,86,222,74,86,179,100,7,184,91,245,160,185,179,196,249,83,176,214,36,20,121,165,135,76,251,98,173,30,168,105,188,129,164,247,89,147,213,52,242,38,205,224,158,41,96,184,80,141,8,53,235,105,210,129,227,54,135,212,64,57,0,137,6,202,13,141,136,167,175,252,152,65,201,84,192,254,225,227,197,72,100,9,165,69,164,153,4,33,132,83,130,1,46,163,212,180,240,202,81,3,127,98,96,190,26,230,133,42,69,225,232,94,68,241,60,115,0,190,72,142,174,87,155,196,33,70,119,217,108,193,181,165,48,229,27,154,9,46,55,132,46,21,64,22,15,5,237,227,174,194,173,35,133,61,223,20,108,144,66,72,32,159,175,175,155,244,177,219,141,135,46,175,216,51,251,196,254,168,93,54,49,255,61,210,165,213,145,26,239,240,168,166,208,31,18,100,19,133,85,128,51,29,248,239,57,12,62,238,208,86,33,129,8,109,169,181,169,209,56,32,33,85,132,180,207,72,63,72,197,61,191,22,76,254,99,78,49,51,128,16,104,4,173,33,159,11,198,207,114,108,116,213,132,72,178,22,252,121,149,15,48,120,25,145,237,106,194,85,174,9,229,250,43,67,221,97,136,86,196,135,93,202,200,40,211,169,180,10,128,182,176,148,240,27,234,106,116,221,122,255,217,118,92,79,31,239,13,6,123,57,128,41,48,70,31,162,252,53,57,133,114,138,79,128,71,132,218,129,63,6,195,127,49,196,120,102,62,27,213,154,42,213,90,73,100,171,130,228,195,137,134,94,111,114,41,76,110,62,75,44,49,100,142,23,134,2,227,213,33,188,34,101,44,107,180,43,207,75,93,193,215,133,218,1,227,211,25,78,28,71,80,255,137,64,21,59,231,55,206,141,165,149,162,95,1,151,44,172,10,3,164,133,206,166,255,0,77,148,69,46,214,142,138,67,243,137,225,19,209,209,78,58,169,124,18,222,185,93,215,25,20,249,108,37,95,185,210,136,28,254,107,69,51,249,38,168,83,58,118,178,30,64,83,45,197,215,234,52,77,105,173,165,222,107,41,170,211,242,236,194,42,4,36,224,221,62,82,55,151,150,133,74,197,11,38,64,168,250,119,246,246,150,238,119,159,132,48,114,5,137,85,0,212,251,124,178,99,172,180,68,36,149,240,66,190,169,231,163,135,82,72,251,81,237,122,81,226,212,5,235,248,170,235,132,218,77,192,195,33,215,65,255,107,143,198,12,212,26,18,254,255,44,50,117,229,170,157,250,171,190,174,60,190,172,3,41,86,27,248,227,229,1,214,239,231,22,245,123,61,138,120,233,61,249,100,147,55,132,180,220,39,86,154,56,137,135,56,142,43,156,201,215,192,119,154,45,236,164,194,157,178,203,86,109,117,213,140,228,206,4,169,151,118,69,165,25,47,123,77,187,118,225,157,196,243,144,17,240,131,23,161,13,84,217,121,52,127,22,180,209,53,28,174,191,86,85,14,140,177,197,197,199,223,38,89,92,250,58,53,16,97,198,175,88,137,100,59,246,163,154,208,103,50,195,98,117,162,193,203,184,105,109,160,42,122,206,85,153,61,80,72,30,132,214,194,214,156,171,136,65,49,202,101,205,164,25,139,245,204,122,205,17,45,13,198,58,217,148,201,20,90,29,71,95,255,61,90,101,169,127,10,101,189,117,38,11,211,68,102,101,69,130,231,107,19,166,179,4,92,245,135,67,62,135,71,21,188,50,223,135,233,228,94,196,49,185,74,23,247,235,130,67,138,9,111,32,84,247,17,177,195,140,96,148,174,72,185,158,16,252,172,217,80,181,17,47,68,189,30,67,200,71,211,30,205,24,118,230,147,64,109,160,119,183,118,217,63,157,158,52,61,58,248,121,140,88,111,23,38,193,212,241,228,89,166,255,89,13,142,15,41,182,75,169,137,190,79,240,166,244,112,212,129,245,255,17,152,9,196,255,255,107,237,40,82,211,185,157,107,35,52,64,29,21,213,121,143,139,27,196,84,131,132,184,158,6,246,95,12,127,232,145,74,164,22,151,81,177,184,235,99,148,177,31,45,113,255,14,105,18,219,169,231,173,3,26,235,165,4,248,157,215,59,208,224,102,6,144,220,176,54,173,51,220,74,29,120,244,56,64,63,241,98,37,54,168,152,42,4,175,142,209,197,138,171,149,184,39,197,90,119,116,149,254,209,155,170,89,47,161,25,122,55,253,160,220,79,0,226,51,153,158,162,119,37,86,114,133,23,190,151,237,39,207,35,218,28,44,38,222,185,230,122,30,118,173,163,179,33,69,248,189,53,8,105,99,100,124,41,4,22,27,227,176,141,95,181,67,118,208,18,116,250,193,204,126,54,80,243,114,189,15,253,134,80,52,143,211,200,172,230,96,241,54,68,216,201,213,184,232,49,42,20,195,246,135,232,149,208,249,182,18,154,220,197,50,116,123,164,156,142,134,215,26,101,7,18,62,86,169,124,54,174,59,150,243,251,223,221,101,186,107,119,207,178,25,65,14,37,252,28,179,62,147,139,234,150,234,2,130,171,188,207,189,136,176,240,86,231,69,211,139,27,18,224,103,212,89,191,141,5,242,60,21,5,34,142,100,63,12,206,135,66,44,116,255,175,32,151,248,138,209,197,188,206,92,205,138,195,205,87,24,57,188,183,22,87,32,142,13,36,193,10,168,236,244,99,134,224,250,200,59,178,133,84,191,109,205,212,104,166,216,32,207,62,127,78,241,220,233,186,3,179,85,77,140,119,235,248,50,118,242,235,15,110,243,168,49,154,122,157,18,173,84,229,151,145,184,140,143,122,32,111,103,12,11,56,99,28,101,236,223,72,82,63,57,165,240,228,73,131,124,36,233,128,99,77,255,188,214,51,197,139,146,51,221,228,195,50,42,41,157,242,1,17,70,102,219,92,70,236,198,108,136,141,201,39,222,97,143,160,59,231,40,115,90,47,100,226,172,210,173,67,163,235,43,43,193}, {203,246,185,77,144,116,67,60,122,229,155,254,199,161,115,27,220,205,145,148,123,112,236,23,179,13,150,153,202,161,60,176,91,251,95,112,84,83,122,1,99,121,93,225,130,218,2,167,116,200,56,249,238,46,139,172,4,223,193,6,206,84,241,81,212,221,20,239,224,193,87,157,219,6,71,214,72,237,247,147,162,39,38,163,62,134,225,206,116,175,222,224,250,168,31,160,185,224,179,139,208,184,149,200,227,14,249,172,48,75,25,107,205,51,253,145,97,209,3,61,9,120,152,249,86,30,252,5,98,85,80,68,132,248,251,33,251,143,173,102,198,236,194,185,181,130,197,253,12,97,222,134,177,200,58,192,76,112,174,205,3,126,232,51,1,224,121,52,5,117,82,108,62,143,201,53,79,202,104,53,26,104,48,201,194,232,197,114,61,169,212,142,183,203,43,39,151,185,32,39,96,193,58,93,83,128,187,69,185,52,68,160,140,232,136,79,227,250,170,235,87,192,21,224,230,159,237,7,234,175,64,28,172,206,126,158,180,31,137,22,232,221,204,93,24,135,106,139,108,187,29,92,234,105,250,241,123,15,242,37,212,50,186,136,192,240,9,62,154,133,90,58,223,143,5,0,158,179,39,62,230,96,196,164,99,12,88,153,183,179,173,73,87,24,156,80,238,17,7,95,243,17,65,0,206,25,161,95,165,98,137,195,201,117,186,223,207,132,121,27,207,29,169,250,30,173,159,163,103,232,105,39,200,250,172,200,154,116,76,131,69,163,86,47,74,42,209,26,68,224,146,8,169,65,53,135,156,208,249,133,232,84,88,58,12,17,68,42,171,51,83,161,72,133,69,191,77,50,192,36,132,253,170,209,69,230,8,156,0,183,51,129,235,254,134,95,34,241,129,197,16,164,67,20,167,211,215,149,138,237,51,230,202,78,65,88,71,230,41,85,19,86,207,73,195,82,198,202,49,7,105,25,7,43,36,167,242,89,183,141,111,224,91,81,170,4,120,117,239,207,121,4,164,169,238,128,192,96,176,103,29,190,90,149,20,172,131,244,207,58,15,171,32,18,134,246,103,118,12,161,226,169,80,64,36,144,169,135,133,91,253,126,45,188,201,190,28,32,254,42,98,225,55,62,239,140,87,8,127,107,169,135,45,77,107,197,88,97,108,227,133,192,155,10,104,4,89,41,89,20,113,143,86,184,239,173,29,39,71,161,136,236,238,212,89,249,151,80,195,189,168,149,222,203,196,104,98,108,239,193,255,20,211,107,215,235,80,65,141,116,210,134,32,164,47,248,16,112,216,10,149,74,177,105,112,19,230,144,10,96,172,159,124,194,189,201,29,248,125,255,221,32,63,59,205,45,99,127,244,118,225,142,150,122,115,188,43,142,4,106,242,235,209,85,103,14,179,250,133,191,50,68,55,101,158,105,97,180,109,74,124,76,97,34,219,37,222,182,5,214,3,30,68,52,35,194,22,27,58,58,238,187,180,27,182,21,219,110,237,177,50,179,184,248,98,67,224,179,112,9,146,225,248,191,253,199,30,155,146,153,134,95,40,183,124,15,49,146,124,238,234,13,23,130,19,181,52,161,27,144,225,208,229,221,204,171,153,106,64,202,182,25,97,236,96,214,29,91,170,237,204,66,156,252,115,10,119,152,8,61,49,220,207,73,81,122,175,67,24,78,176,51,241,65,189,187,105,175,36,245,238,69,63,124,62,86,227,128,224,231,235,161,64,191,104,189,91,109,29,185,93,160,122,13,227,15,245,167,116,158,22,43,52,238,156,95,37,149,255,164,116,204,165,243,47,193,27,11,85,102,9,98,44,137,229,16,202,86,90,141,255,118,2,171,244,195,211,139,121,217,51,140,131,45,53,214,135,197,225,33,145,117,114,114,85,79,89,39,100,253,24,209,80,112,124,31,182,199,171,126,89,237,24,118,108,82,10,126,36,197,63,143,64,35,47,22,206,110,163,22,117,77,196,40,169,31,89,41,29,31,108,244,249,113,105,219,60,59,119,220,57,129,145,241,52,103,160,205,253,69,14,142,93,50,61,70,195,97,251,253,108,18,27,50,231,160,201,145,232,27,178,88,27,221,113,194,173,10,188,232,102,140,138,118,66,60,47,60,228,81,190,181,172,166,56,250,58,119,0,155,239,23,92,111,132,99,162,7,48,228,170,36,153,104,61,200,30,38,156,19,174,237,226,43,133,157,33,170,174,65,0,202,96,94,148,52,91,100,19,103,187,5,158,135,8,163,224,118,101,72,19,246,222,67,228,176,218,12,58,229,49,161,172,201,22,162,171,80,17,129,89,25,46,149,70,56,193,228,45,141,122,154,25,101,202,27,87,148,68,99,74,114,127,155,173,157,150,126,231,137,206,186,250,38,212,183,87,48,136,175,78,76,42,100,18,244,75,74,184,145,214,142,172,79,90,95,181,251,157,5,238,82,22,207,125,82,174,7,28,225,85,67,186,223,54,98,11,104,61,187,31,22,192,229,159,203,52,219,158,248,88,128,71,205,176,1,139,99,78,169,28,28,0,28,195,174,248,251,236,56,253,215,215,54,19,50,114,188,83,88,215,216,178,200,88,24,142,221,8,2,151,125,69,38,102,72,148,152,238,74,118,5,170,128,57,73,172,41,252,248,101,215,255,28,158,200,160,84,153,54,18,54,232,87,161,169,252,95,102,177,27,81,252,156,164,145,149,211,190,168,171,49,99,96,31,235,164,217,28,193,22,194,74,171,38,188,201,155,127,36,27,84,54,68,42,207,159,245,86,51,64,154,253,38,240,15,209,248,143,69,136,20,214,120,20,153,41,144,117,183,17,179,244,30,76,52,58,76,147,55,222,227,197,104,165,93,147,106,157,175,130,1,203,185,217,163,204,39,237,167,22,168,46,235,6,15,253,202,78,45,225,50,103,181,244,226,242,245,226,150,0,125,218,227,138,202,236,225,91,107,114,44,140,167,31,197,2,214,234,133,236,229,136,82,46,245,176,49,29,5,55,42,73,87,4,39,72,84,183,228,38,116,157,138,210,173,208,49,23,19,63,38,70,219,163,15,251,106,69,68,147,197,75,23,108,145,27,159,71,171,78,45,72,48,183,0,30,37,65,26,72,119,236,187,159,213,66,155,27,120,168,90,126,248,92,212,60,134,171,143,16,151,6,88,99,8,14,214,209,145,173,192,192,182,133,154,247,212,29,174,243,249,89,100,204,218,100,38,160,91,207,89,244,222,224,168,158,145,220,229,44,170,72,204,93,103,176,124,104,133,83,44,171,91,138,207,98,138,59,196,108,174,153,146,82,25,148,152,49,43,39,7,10,201,181,27,234,129,154,46,194,153,22,137,231,121,211,194,17,111,109,90,74,187,168,48,93,168,44,10,249,201,5,70,225,191,184,213,10,192,157,128,76,42,99,164,60,224,206,156,72,148,64,148,162,73,92,61,119,87,183,23,9,46,192,221,219,43,125,181,206,177,110,11,210,75,122,58,47,30,101,20,212,242,20,122,36,199,11,139,26,107,139,174,160,110,117,74,103,94,211,162,32,89,183,227,222,128,204,187,130,180,71,55,57,132,68,69,241,60,160,253,7,230,157,2,20,185,175,29,40,168,111,228,244,90,43,39,237,205,9,54,49,186,138,245,148,250,130,6,90,162,30,198,138,178,24,202,49,0,51,5,154,167,252,85,243,139,23,35,191,169,98,40,60,195,33,92,127,200,32,64,19,153,239,9,253,148,145,192,24,97,228,158,225,173,21,44,8,47,131,217,193,194,1,247,95,8,225,105,49,83,172,199,169,92,207,174,207,75,172,42,169,8,46,114,194,173,7,125,58,141,65,186,45,11,247,71,102,183,126,226,130,142,56,140,18,246,249,1,104,11,50,3,65,118,233,94,100,251,3,119,224,85,141,77,97,43,55,133,161,172,27,7,76,141,252,4,98,139,150,125,34,107,25,241,119,158,0,204,156,140,112,254,236,238,241,182,94,228,88,245,125,56,70,54,9,223,234,246,3,194,80,111,104,67,42,116,136,152,150,8,200,142,44,243,87,25,123,11,50,39,49,28,89,103,133,56,1,95,18,99,5,168,68,229,213,245,187,214,37,63,40,123,134,6,111,173,252,72,252,81,230,213,108,67,77,27,135,106,63,60,164,112,31,52,107,48,87,177,217,181,114,111,65,65,97,6,223,179,72,254,23,224,220,237,22,2,36,139,235,64,61,83,215,162,188,200,243,108,30,19,12,74,150,141,227,109,68,212,13,104,218,114,180,106,225,36,204,190,72,206,28,248,243,170,175,222,110,151,27,32,197,30,154,136,116,30,141,223,243,204,220,23,133,120,131,8,188,187,126,141,32,227,62,62,203,105,148,55,29,248,152,210,65,167,139,242,200,17,27,62,241,68,95,237,93,199,5,55,234,78,87,119,40,19,127,201,173,165,238,24,134,197,30,215,255,94,80,7,132,133,188,229,96,87,166,108,43,123,198,16,158,33,92,46,23,69,204,176,99,22,171,7,231,159,194,66,31,135,249,235,66,141,245,53}, {48,253,66,185,192,135,121,134,113,159,227,142,115,149,49,191,13,159,247,61,45,192,242,5,174,180,73,87,17,231,2,16,245,160,213,203,12,78,76,32,126,113,247,105,165,225,158,160,136,105,228,91,208,35,204,16,42,101,244,54,147,37,157,136,93,46,178,152,151,37,52,227,247,121,95,11,93,254,97,176,195,98,46,243,237,61,163,83,233,51,207,98,138,16,186,167,208,253,15,186,171,50,78,47,232,129,255,143,235,245,151,105,65,222,0,157,110,204,58,221,149,18,25,146,197,196,77,67,8,3,226,234,37,178,242,4,138,253,50,50,59,252,144,10,92,176,64,77,65,149,57,40,246,185,156,174,203,79,11,1,127,129,45,91,210,188,92,10,73,109,235,76,230,77,224,93,222,15,35,98,219,91,205,192,31,45,208,57,242,178,70,41,129,192,82,242,248,202,107,220,25,149,196,87,128,70,193,141,227,39,163,139,228,147,165,153,232,97,143,218,37,237,46,112,132,33,88,95,206,119,235,90,59,229,71,222,234,178,241,154,1,85,118,219,110,114,133,201,157,137,71,18,169,91,56,32,12,219,219,150,166,163,153,184,178,96,179,231,27,211,179,237,118,121,50,232,113,122,134,115,115,229,105,84,116,89,140,20,121,83,12,31,208,36,30,78,213,58,86,216,97,185,240,86,255,78,131,87,21,149,231,131,158,128,41,83,177,244,206,216,250,89,106,39,85,177,191,218,170,123,66,236,149,137,130,82,102,114,228,222,129,49,32,107,65,122,40,193,36,171,39,101,14,136,63,57,125,101,206,26,223,32,16,155,17,153,5,241,94,7,189,203,241,90,140,235,23,191,235,91,166,160,176,166,18,216,116,246,32,116,60,170,249,109,116,32,48,233,70,168,161,113,3,83,75,40,232,151,129,254,59,228,39,26,158,35,89,168,87,25,173,19,168,13,235,48,133,230,86,132,79,28,234,100,142,55,46,159,124,253,191,61,90,120,54,222,71,4,204,118,95,48,252,143,79,24,147,74,111,107,88,57,114,182,108,242,198,133,229,152,159,137,3,200,86,111,203,181,57,225,9,93,70,26,228,134,173,206,107,43,107,46,158,205,194,219,145,221,118,193,108,165,115,115,34,174,193,76,1,90,103,96,66,186,219,57,169,85,120,160,138,40,5,44,12,12,183,151,172,93,111,36,27,186,54,106,135,141,245,28,114,13,52,64,239,255,152,222,173,14,26,226,13,222,113,73,96,53,3,15,239,98,96,72,169,150,222,157,13,214,228,71,170,62,66,127,159,39,115,182,139,249,13,192,14,187,134,34,2,38,31,115,28,156,216,220,15,107,210,127,216,179,116,233,114,183,115,153,49,70,74,26,104,133,61,70,110,174,132,82,11,67,246,3,95,49,21,247,235,83,37,175,76,88,40,73,36,73,177,159,84,254,236,226,205,207,197,162,21,212,211,25,188,195,244,231,138,40,153,19,146,186,210,9,49,207,61,196,166,10,30,117,210,130,27,53,20,118,68,212,73,133,43,153,73,154,119,208,227,159,63,6,98,7,204,105,2,181,254,252,99,42,121,132,198,126,221,38,200,74,242,207,205,213,80,42,235,186,206,57,134,100,53,248,78,186,63,148,180,10,208,117,195,151,72,132,241,154,173,193,39,143,4,214,247,22,252,0,241,48,22,195,62,199,13,18,2,158,38,101,133,204,63,213,228,167,102,164,254,254,140,240,133,96,157,18,178,49,39,31,193,212,82,3,67,49,222,29,38,164,248,146,242,20,251,192,233,6,21,231,163,87,103,251,238,239,8,165,248,206,34,1,43,231,150,111,190,184,74,168,146,63,11,245,215,79,111,240,143,77,119,52,204,246,231,130,155,48,180,17,207,101,140,129,146,181,80,156,148,99,21,33,13,232,254,26,77,13,236,143,60,144,24,86,190,216,47,12,114,30,146,150,154,141,104,234,221,6,37,55,205,188,39,245,225,87,247,217,67,91,195,200,189,176,254,241,130,114,208,43,144,78,233,135,113,84,119,230,45,41,61,236,172,42,111,93,217,108,238,239,67,41,51,38,25,30,58,229,71,21,126,80,189,212,204,181,27,196,69,253,39,235,165,188,148,39,242,54,188,49,213,240,79,227,33,246,75,52,138,156,14,32,135,91,41,218,86,126,89,219,29,69,50,251,10,22,67,114,203,185,99,192,109,243,191,28,219,162,219,197,198,220,144,106,133,214,124,112,26,112,47,141,251,68,159,185,105,234,219,117,175,64,156,165,219,96,84,248,61,147,108,192,194,47,221,41,209,241,13,203,133,228,253,86,28,27,88,75,242,198,18,29,61,56,30,5,182,211,7,44,167,79,222,102,131,178,40,121,24,71,188,21,177,248,41,87,142,69,254,187,213,52,7,4,189,175,46,71,20,246,147,13,41,6,110,87,98,236,158,163,238,72,133,181,227,186,40,250,193,95,162,107,239,69,249,17,137,95,114,144,33,36,74,52,96,58,15,11,156,206,71,132,171,8,144,163,66,190,75,207,20,56,172,109,210,3,8,39,64,28,139,235,144,107,39,193,34,84,52,34,159,253,101,90,8,69,131,239,113,211,130,7,133,226,251,105,253,124,76,115,254,217,170,198,250,198,124,108,170,78,202,6,71,120,68,167,146,220,96,80,208,8,117,111,217,198,189,154,78,37,203,62,41,247,238,1,46,96,181,229,52,50,84,31,46,96,152,27,229,233,243,20,129,9,200,249,187,85,90,223,209,190,216,235,160,106,155,76,101,153,70,100,16,76,170,75,138,10,5,168,194,203,28,190,55,147,3,231,219,215,24,28,101,92,164,51,188,190,19,154,134,189,188,77,240,211,205,188,9,207,220,31,32,108,253,64,251,45,68,72,97,39,11,134,188,144,215,143,238,252,255,4,241,20,204,33,184,99,220,41,239,17,10,213,15,50,85,32,195,52,162,50,166,213,162,55,106,197,99,192,236,89,67,129,34,247,143,153,148,209,81,200,226,236,148,72,168,62,208,148,164,166,100,126,74,90,33,182,180,17,250,144,55,228,143,162,33,156,113,53,232,212,100,57,139,163,127,0,69,76,62,184,116,114,90,160,53,57,186,55,158,44,232,120,231,222,68,185,111,233,185,75,130,124,230,185,182,158,16,206,164,108,37,202,138,33,148,41,74,251,143,254,27,192,100,170,255,104,234,24,223,91,181,96,234,51,101,172,161,21,68,79,139,156,228,59,240,250,74,171,170,227,196,60,241,140,95,180,157,207,39,110,180,161,99,92,190,147,211,98,71,254,111,61,78,129,248,177,0,150,178,45,200,165,0,149,53,175,82,76,66,103,195,66,39,201,167,249,56,161,144,12,108,183,229,188,6,211,241,200,165,215,131,81,202,81,16,179,100,188,43,99,104,234,161,128,13,41,47,17,13,171,95,254,97,75,99,115,213,123,57,102,194,183,182,123,2,230,5,34,51,155,54,29,178,200,192,0,89,47,115,59,93,172,64,171,228,196,64,43,131,201,145,140,206,134,41,160,51,80,93,226,122,241,132,200,16,22,25,54,172,219,206,36,220,243,189,235,198,86,188,254,5,213,107,105,122,99,200,212,200,197,103,198,40,197,4,112,254,87,242,96,11,155,249,75,244,33,178,73,59,42,67,112,226,91,190,197,85,106,10,10,223,44,185,149,74,74,145,255,224,86,0,194,218,46,188,224,21,143,168,2,0,135,159,249,12,160,23,138,125,133,156,218,203,244,244,200,235,18,62,65,82,196,59,191,124,146,85,205,158,187,44,85,202,120,141,195,19,72,35,221,204,18,161,87,237,80,184,2,6,71,92,7,174,2,124,236,30,116,46,112,93,208,31,243,47,7,221,112,222,210,8,53,153,106,86,99,190,90,190,72,215,138,211,98,102,208,158,124,202,55,98,119,195,176,252,236,38,182,190,29,218,210,47,32,134,230,58,133,135,236,13,214,64,188,38,166,226,144,76,224,208,47,95,202,125,56,111,71,222,15,118,180,204,182,67,66,75,194,198,223,187,247,235,187,84,186,3,226,187,218,52,64,33,74,78,118,63,168,169,211,167,62,20,72,12,195,148,80,66,80,113,128,247,54,126,27,110,147,207,39,163,155,229,193,74,36,39,112,203,84,178,240,165,13,114,119,62,255,55,78,161,216,112,146,38,183,64,29,67,66,234,192,122,177,22,189,216,47,52,89,120,154,210,1,141,221,59,148,226,140,52,140,116,49,45,173,97,47,131,23,158,3,238,50,80,165,104,105,1,205,67,149,118,43,99,29,62,81,240,206,68,26,113,58,71,192,36,79,6,13,166,231,121,194,111,246,165,148,152,188,43,151,82,199,169,198,247,241,190,146,49,180,162,65,29,111,149,121,245,28,62,156,236,100,165,229,71,148,84,187,111,144,219,138,85,243,154,57,174,36,40,158,88,187,243,112,36,230,67,88,17,86,197,50,132,210,10,146,246,238,143,241,38,13,118,72,41,132,37,230,199,108,246,138,4,187,22,15,25,244,155,224,247,129}, {99,204,187,112,168,125,80,17,41,221,204,114,240,111,165,252,99,7,223,54,16,165,59,7,155,189,145,133,46,152,205,87,111,153,50,16,48,175,180,193,4,142,80,208,250,108,113,195,61,231,69,105,28,29,145,175,170,97,81,75,139,107,215,1,163,28,122,96,100,130,78,164,123,220,235,187,73,185,79,167,66,9,41,91,43,76,82,231,191,166,75,125,155,194,0,0,251,156,161,215,250,153,215,122,193,167,244,215,188,146,240,144,238,235,255,171,51,95,246,17,43,151,8,79,117,140,211,8,169,29,234,237,64,139,31,222,178,105,51,27,204,191,194,141,0,107,119,23,242,105,154,94,144,22,237,229,138,44,148,105,4,121,203,167,106,10,21,60,15,38,59,191,11,205,174,210,181,177,46,91,190,247,89,71,224,238,124,141,255,93,87,104,243,241,245,156,218,9,12,186,83,38,112,185,166,254,76,85,98,170,61,49,88,168,149,30,211,77,10,109,107,151,206,93,153,85,37,48,235,161,217,156,185,159,189,217,201,133,18,63,184,86,47,14,21,198,236,40,210,242,2,11,99,173,111,199,170,171,85,235,147,144,224,68,167,66,200,174,93,123,76,218,4,80,229,162,77,84,58,65,119,52,56,167,12,110,109,166,91,234,243,62,175,51,29,111,40,190,86,83,69,135,225,202,23,127,82,155,130,80,215,253,86,141,144,14,238,163,247,13,231,171,119,53,235,104,30,116,237,138,255,163,47,147,32,136,51,120,171,240,146,80,192,127,30,151,48,90,104,163,233,104,226,212,173,93,11,42,173,233,36,186,146,34,255,223,127,194,225,93,5,173,40,164,79,55,118,120,245,190,251,208,30,123,190,205,82,14,147,145,42,96,161,26,46,56,175,70,51,72,143,13,179,116,231,147,198,169,218,238,136,173,41,51,208,48,0,2,25,200,238,45,35,117,145,43,3,233,84,232,93,174,158,10,132,211,109,171,189,0,20,33,154,220,174,83,51,252,10,26,33,171,144,126,221,37,103,97,237,163,125,152,88,124,154,34,208,31,105,212,36,148,103,4,101,253,160,32,222,104,244,136,163,25,113,107,228,224,214,112,92,230,155,170,72,89,73,87,219,95,22,182,97,214,229,136,249,235,67,79,31,180,116,187,231,168,40,208,252,219,230,54,108,192,79,183,174,24,80,29,130,67,182,203,77,212,169,78,48,251,41,122,17,144,114,207,223,122,53,47,100,145,205,201,182,188,7,222,34,133,247,112,25,223,111,134,110,143,129,31,153,119,86,162,99,194,134,81,242,10,37,46,52,133,171,247,189,58,242,176,0,242,132,9,69,28,136,153,231,122,48,213,244,40,245,103,46,32,3,115,239,46,197,10,207,160,111,66,71,213,141,243,157,131,49,226,1,157,255,110,249,26,37,18,41,23,85,173,239,154,90,192,67,107,205,176,62,143,44,246,91,50,88,204,27,172,139,167,162,29,131,23,11,210,42,10,146,149,2,63,196,95,12,174,101,153,187,32,35,247,208,158,64,123,10,36,212,208,110,141,78,166,207,60,212,230,219,156,130,142,104,181,9,233,213,18,0,232,48,167,82,59,150,133,105,0,55,41,181,38,186,138,213,107,93,177,118,61,159,92,170,196,70,18,146,160,195,124,68,121,105,35,49,212,109,223,219,231,52,104,233,75,105,149,230,52,94,246,93,192,70,155,130,227,140,23,62,168,135,177,224,72,132,231,159,91,82,106,73,106,180,121,178,126,152,72,152,193,42,199,182,215,75,9,29,243,29,141,161,61,49,67,49,101,246,113,241,201,249,205,97,60,43,199,24,116,141,55,135,24,207,154,8,231,40,253,252,2,13,167,161,193,245,161,171,46,3,210,142,207,164,90,246,160,122,26,212,4,55,128,253,103,103,1,204,58,32,90,244,17,17,238,27,190,148,206,221,140,189,70,105,12,81,44,129,238,59,83,49,172,171,86,255,130,203,243,72,228,244,120,203,199,168,194,110,156,60,144,8,170,33,96,129,209,173,87,244,253,65,26,12,185,98,117,148,144,63,194,1,34,24,116,112,14,143,135,183,10,247,31,130,90,166,53,188,211,73,243,186,97,107,106,18,108,4,230,222,111,207,70,140,11,175,31,77,51,154,34,81,86,73,94,78,31,239,150,200,80,84,133,204,194,59,193,206,60,27,104,145,216,141,67,253,144,12,26,252,75,84,239,193,145,164,104,233,94,177,85,57,13,16,133,155,52,235,95,24,217,117,243,91,66,238,93,128,211,86,153,191,250,122,192,168,211,209,60,22,189,223,145,69,147,64,176,172,151,235,182,191,243,196,207,184,19,205,100,169,155,148,246,107,88,232,148,38,208,49,248,181,133,165,153,31,239,192,155,89,225,156,71,120,74,125,46,86,106,161,44,34,204,2,167,121,1,52,214,29,131,201,188,16,154,77,239,14,175,78,195,173,186,106,238,223,30,214,79,106,172,185,21,75,120,178,166,223,127,105,50,181,17,135,81,203,31,58,131,193,102,154,107,194,187,78,114,231,36,4,43,37,8,158,44,146,170,132,30,33,21,224,52,211,164,23,102,150,212,86,13,16,116,250,65,190,96,69,162,146,219,207,184,79,36,222,202,58,40,233,104,81,244,251,161,241,141,238,246,114,26,131,143,132,225,113,243,171,237,137,104,34,141,71,125,67,186,47,52,119,249,13,254,114,142,186,219,137,218,133,141,164,237,21,35,35,46,60,105,32,29,83,209,234,211,219,2,115,80,85,201,84,27,250,94,93,105,253,138,183,105,20,89,0,242,42,73,42,228,110,24,72,4,184,26,115,20,49,111,109,59,182,86,188,86,152,97,121,190,67,154,174,195,142,46,180,209,67,158,205,73,46,167,160,65,243,163,154,86,216,57,121,72,136,209,173,21,87,248,59,125,190,170,29,143,11,85,112,78,52,212,128,26,202,180,181,248,242,112,57,71,59,186,3,105,237,251,137,67,184,47,178,159,77,163,141,57,25,111,14,171,201,158,77,127,188,226,118,223,188,235,196,187,48,235,20,215,78,115,205,232,193,221,240,45,120,137,236,142,134,229,237,175,109,232,241,243,119,114,38,14,132,78,191,17,253,41,61,89,13,26,229,1,219,129,97,230,179,189,100,210,118,113,206,188,181,229,89,56,123,215,101,230,213,14,53,126,82,41,209,229,134,76,135,108,197,60,39,128,235,79,29,76,76,201,65,54,191,150,123,128,143,155,174,229,115,177,223,27,223,234,12,10,128,104,191,149,11,179,128,192,145,23,113,141,44,230,205,199,208,207,42,19,110,2,164,173,129,199,252,132,87,6,253,83,197,97,152,122,152,157,197,95,211,219,116,245,250,175,240,11,130,21,214,193,17,152,218,93,157,69,142,13,50,40,77,83,105,71,10,85,48,75,39,64,78,221,236,238,89,23,218,236,177,39,85,33,219,195,69,5,183,35,247,247,28,234,253,174,127,242,192,69,180,167,157,31,16,91,248,103,63,198,157,209,162,66,179,72,178,189,230,176,133,23,221,75,53,5,207,27,40,0,243,61,230,249,153,106,247,184,75,203,39,126,20,237,84,103,221,131,202,55,84,94,11,242,250,2,24,216,169,68,61,236,23,226,15,134,148,140,174,239,138,172,196,87,77,4,13,248,2,255,80,204,176,7,158,175,125,46,153,196,162,196,78,254,125,237,136,226,145,26,251,166,143,130,61,29,98,237,105,110,10,215,13,99,156,147,194,250,254,74,71,58,59,19,212,139,100,152,0,156,54,107,5,159,54,185,134,96,177,70,14,124,236,34,162,53,140,59,142,170,150,232,214,59,94,151,68,81,221,160,124,114,130,203,93,1,176,191,161,237,2,145,31,201,107,125,178,81,99,12,241,20,98,106,51,127,168,41,126,167,177,165,26,75,102,238,44,74,193,149,234,78,119,197,37,140,232,143,230,162,29,75,213,55,52,213,14,20,122,205,92,170,99,246,65,88,31,121,130,47,122,179,140,122,219,111,193,231,177,64,50,149,176,242,21,192,77,225,62,184,27,214,103,253,2,221,59,212,198,72,171,45,95,162,138,218,99,89,59,248,172,186,73,60,213,184,79,117,245,121,200,244,96,157,41,170,210,198,236,14,32,122,167,78,69,250,55,131,76,119,205,176,223,45,184,124,243,175,23,108,23,171,32,70,213,111,172,221,214,192,162,55,21,43,12,207,41,36,229,251,204,171,224,16,223,28,232,144,35,212,184,77,28,16,242,208,202,135,238,107,14,82,221,230,233,28,206,116,74,171,69,52,195,126,26,59,129,206,34,26,5,86,19,4,219,204,29,238,132,102,237,107,157,39,237,25,73,19,108,65,27,80,40,188,47,115,13,163,45,27,12,4,159,191,101,136,238,229,65,247,132,87,114,112,23,25,16,90,175,85,142,56,60,85,128,1,77,238,135,191,213,179,194,13,187,157,248,251,134,206,193,229,154,146,190,21,111,3,60,173,224,254,58,84,224,2,224,172,236,60,184,79,209,94,139,37}, } ; static const unsigned char precomputed_core_multsntrup1013_k[precomputed_core_multsntrup1013_NUM][crypto_core_KEYBYTES] = { {0,1,-1,1,0,0,0,-1,1,0,0,0,1,0,0,-1,1,-1,0,0,0,-1,0,0,0,0,1,0,-1,1,0,1,0,-1,-1,0,-1,-1,-1,0,0,1,1,-1,-1,0,0,-1,1,-1,0,0,-1,-1,1,0,0,0,0,-1,0,1,0,0,1,-1,-1,0,0,-1,0,-1,1,0,1,1,1,1,0,0,-1,1,-1,0,0,1,0,0,0,0,1,0,1,0,-1,0,0,0,1,1,0,-1,-1,0,1,1,0,-1,-1,1,0,0,0,1,0,0,1,0,-1,-1,0,-1,-1,0,0,1,-1,1,0,-1,0,0,-1,1,0,1,1,1,1,0,0,-1,-1,0,0,-1,0,0,1,1,0,-1,1,0,0,0,1,0,0,1,1,-1,0,0,1,1,-1,-1,0,1,0,0,1,0,0,0,0,-1,0,0,1,-1,-1,0,0,-1,-1,1,1,1,0,0,-1,1,-1,1,0,0,0,0,0,-1,-1,1,1,0,1,0,0,-1,1,1,0,-1,-1,0,0,-1,1,-1,0,0,0,-1,0,1,-1,0,0,-1,1,1,0,0,0,1,0,0,0,0,0,0,-1,-1,0,0,0,0,0,1,0,1,-1,0,-1,-1,0,1,0,0,-1,1,0,0,0,0,0,1,0,0,1,0,0,1,-1,-1,0,-1,-1,1,1,1,0,0,-1,1,-1,-1,1,0,0,0,0,-1,-1,0,0,0,1,0,1,1,-1,1,0,0,0,-1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,1,-1,0,1,0,0,1,1,0,1,-1,0,1,0,0,0,1,0,1,0,0,-1,-1,-1,0,1,0,1,-1,0,0,0,0,1,1,0,0,0,1,1,-1,1,0,0,0,0,0,0,1,0,-1,1,0,0,1,0,0,0,-1,-1,-1,0,1,1,0,0,0,0,0,1,-1,0,1,0,-1,-1,0,-1,1,0,0,1,-1,-1,0,0,1,0,0,0,0,-1,0,1,0,0,0,0,0,-1,0,1,0,-1,-1,-1,0,0,0,0,-1,1,1,-1,0,0,0,1,0,1,1,0,0,0,0,1,1,0,0,1,0,1,0,1,-1,0,0,1,0,-1,0,0,0,0,0,-1,-1,-1,-1,1,1,0,0,-1,-1,-1,0,1,-1,1,-1,0,0,1,1,-1,1,1,-1,-1,1,0,0,1,0,-1,0,-1,0,-1,-1,-1,-1,1,1,0,0,1,0,0,0,1,-1,0,-1,1,0,-1,-1,0,-1,1,1,1,-1,0,0,0,0,0,0,1,1,-1,1,-1,1,1,1,0,1,1,0,-1,0,-1,1,1,0,-1,1,0,1,0,-1,0,-1,-1,1,0,1,0,-1,-1,0,1,1,-1,-1,1,0,0,-1,0,0,0,0,0,-1,0,0,-1,0,-1,0,1,1,1,1,-1,1,-1,0,1,1,1,1,0,-1,-1,-1,-1,0,1,0,-1,-1,-1,1,0,1,0,0,-1,0,1,0,1,0,-1,0,1,-1,0,0,0,1,0,-1,-1,0,0,0,0,0,0,1,0,0,1,1,-1,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,-1,1,0,0,0,-1,0,0,0,-1,-1,0,1,0,0,1,0,1,1,-1,-1,-1,1,0,1,0,0,1,1,-1,1,1,-1,-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,0,0,0,0,0,0,0,0,-1,-1,0,0,0,-1,0,1,0,1,1,1,1,0,-1,0,0,-1,0,0,0,0,-1,1,0,-1,0,1,0,0,-1,0,-1,1,0,0,-1,-1,1,0,1,0,1,0,0,-1,0,0,1,0,-1,0,-1,0,0,-1,0,0,0,1,1,0,0,-1,0,-1,0,-1,0,-1,1,1,-1,1,0,-1,-1,-1,0,1,-1,0,0,0,0,0,0,1,1,0,-1,1,0,0,0,0,0,0,-1,0,-1,0,0,-1,1,1,0,0,1,0,0,1,-1,1,-1,0,0,0,0,1,-1,-1,1,1,0,-1,0,0,0,1,1,-1,0,0,-1,-1,0,-1,-1,1,0,0,0,0,1,0,-1,0,-1,-1,0,0,1,0,1,0,1,0,-1,0,0,0,-1,0,1,0,1,-1,0,1,1,0,1,1,0,0,0,1,1,-1,1,0,0,1,1,0,-1,0,1,-1,-1,0,1,1,-1,-1,-1,1,0,0,0,1,1,0,0,-1,0,-1,0,0,1,-1,1,1,0,1,1,-1,1,0,0,0,1,-1,1,0,-1,-1,0,-1,0,-1,0,0,1,1,0,1,1,-1,1,0,1,0,0,0,-1,0,0,0,0,0,0,0,-1,0,0,1,1,0,0,0,-1,1,1,-1,-1,0,1,-1,0,0,0,1,0,-1,1,0,-1,-1,1,-1,0,1,0,0,1,-1,1,-1,0,0,1,1,0,-1,-1,0,-1}, {-1,0,0,0,1,0,0,0,-1,-1,0,1,0,1,0,-1,1,1,1,0,0,-1,0,0,0,0,-1,1,1,1,0,1,-1,0,-1,0,-1,1,1,-1,0,1,1,0,0,0,0,0,0,0,0,-1,1,0,-1,1,0,-1,0,0,0,1,1,1,-1,0,1,0,1,0,1,0,0,-1,0,1,1,0,-1,-1,-1,1,-1,0,0,0,1,0,0,0,1,0,0,-1,0,0,0,1,1,0,-1,-1,0,1,0,0,0,-1,0,1,-1,0,0,0,-1,0,-1,0,1,1,0,0,1,1,0,0,-1,-1,1,1,1,1,1,1,-1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,-1,1,0,0,0,0,0,1,0,1,1,-1,0,-1,1,1,-1,1,0,1,-1,1,1,0,1,1,-1,0,-1,-1,1,1,0,0,0,-1,0,-1,1,0,0,0,0,0,-1,0,-1,0,0,0,0,0,1,0,1,0,1,0,1,0,-1,0,-1,-1,0,-1,0,1,1,0,1,0,-1,-1,0,1,0,1,0,1,-1,0,-1,1,1,0,1,0,0,-1,1,0,0,0,0,1,1,-1,-1,0,0,-1,1,-1,0,0,0,1,0,-1,-1,-1,-1,0,0,0,1,1,0,-1,-1,1,0,-1,1,-1,0,0,0,-1,0,1,0,1,0,0,-1,0,0,0,-1,0,0,1,-1,0,0,0,1,1,1,1,1,-1,0,-1,0,1,1,0,1,0,1,0,0,1,0,1,1,0,0,0,1,1,1,1,1,-1,0,1,-1,-1,-1,-1,0,0,0,0,-1,-1,-1,-1,1,0,1,-1,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,-1,1,-1,0,1,1,1,1,1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,1,0,0,-1,-1,-1,0,0,0,0,0,-1,1,0,0,1,1,-1,-1,0,1,1,1,1,0,0,-1,1,0,0,1,-1,-1,0,1,0,1,-1,1,0,0,1,0,0,0,0,0,-1,-1,1,1,0,0,0,0,0,1,0,0,0,0,-1,0,0,1,0,1,0,-1,0,1,-1,-1,0,0,-1,1,-1,0,0,-1,-1,0,0,0,-1,0,-1,-1,-1,0,0,0,0,-1,0,1,-1,0,-1,0,1,0,0,0,0,-1,0,0,1,-1,0,-1,0,-1,0,0,0,0,-1,0,0,1,1,0,1,0,0,0,1,0,1,1,0,-1,0,-1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,-1,0,1,-1,1,0,0,0,0,-1,0,-1,0,1,1,1,-1,0,0,0,0,-1,0,0,0,1,0,-1,-1,0,0,1,0,0,-1,1,0,-1,-1,0,0,0,1,0,0,-1,-1,-1,1,0,0,-1,0,-1,1,0,0,-1,1,1,0,0,0,0,0,-1,0,0,1,1,0,0,-1,0,1,0,-1,-1,-1,0,-1,-1,0,0,-1,0,-1,1,0,1,0,1,0,0,1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,1,1,-1,-1,0,-1,0,1,1,-1,0,1,0,1,-1,0,0,0,0,-1,1,-1,1,1,1,-1,0,0,0,-1,0,1,1,0,1,0,-1,-1,0,-1,-1,-1,1,1,0,-1,1,1,0,1,-1,1,0,0,0,1,-1,0,1,0,0,-1,-1,-1,0,-1,0,0,0,0,-1,-1,-1,0,-1,0,0,0,0,1,0,-1,0,0,-1,1,-1,0,1,0,0,-1,-1,0,1,0,-1,-1,1,0,1,0,0,1,0,-1,1,-1,0,1,0,0,0,-1,1,0,0,0,1,0,0,0,-1,0,-1,-1,1,0,-1,1,0,1,0,-1,0,-1,0,1,0,0,0,0,1,1,0,1,0,0,0,0,1,0,-1,0,1,1,0,-1,1,-1,0,-1,0,-1,1,-1,0,1,0,1,0,0,0,-1,0,0,0,0,-1,0,-1,0,-1,-1,0,0,0,0,0,0,0,1,-1,0,1,1,0,1,0,-1,0,-1,0,0,1,0,0,1,0,-1,0,0,-1,-1,1,-1,0,0,0,1,-1,0,0,-1,-1,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,-1,1,1,0,0,1,0,1,1,1,0,0,1,-1,0,0,1,1,1,-1,1,-1,1,0,0,0,0,1,0,-1,-1,-1,-1,0,0,1,0,0,0,0,0,-1,0,1,0,-1,1,0,1,1,0,1,1,0,0,1,-1,0,-1,1,0,-1,0,0,0,0,0,0,1,0,0,-1,-1,1,1,0,0,-1,-1,1,-1,1,1,1,0,-1,-1,0,0,-1,-1,1,0,0,1,-1,1,-1,1,0,-1,0,0,0,1,0,0,1,0,1,-1,0,0,0,-1,-1,-1,-1,0,0,0,0,-1,0,0,0,-1,0,0,0,1,-1,0}, {-1,0,-1,1,-1,-1,-1,0,1,0,0,-1,0,-1,0,0,-1,0,0,0,-1,-1,0,-1,-1,0,0,1,1,0,1,1,0,1,0,-1,0,-1,-1,1,-1,0,0,1,0,0,-1,-1,1,0,1,-1,0,1,-1,0,-1,-1,0,1,0,0,0,0,-1,-1,1,0,1,0,-1,0,-1,0,1,1,0,1,0,-1,-1,-1,-1,0,1,1,0,-1,-1,0,1,0,-1,1,0,1,1,1,0,0,-1,0,0,0,1,1,0,1,-1,0,0,0,-1,0,0,1,0,0,-1,0,0,-1,-1,0,0,0,0,0,1,0,-1,-1,1,-1,1,0,0,1,1,-1,-1,1,-1,1,-1,1,0,-1,-1,0,1,0,0,1,0,0,0,0,0,0,1,1,1,1,-1,0,0,0,0,0,1,-1,0,1,1,-1,-1,0,0,-1,0,0,1,0,0,0,1,0,0,-1,0,-1,1,0,0,-1,-1,0,-1,1,0,1,0,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,0,-1,0,0,1,-1,-1,0,0,1,-1,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,-1,0,0,0,0,1,-1,-1,0,0,-1,1,1,0,1,0,0,0,0,-1,-1,0,-1,1,0,-1,0,0,0,1,-1,1,-1,-1,0,1,1,-1,0,1,-1,0,-1,-1,0,0,1,0,1,-1,-1,1,-1,-1,0,0,-1,0,0,-1,-1,-1,1,1,0,0,-1,-1,-1,-1,-1,0,0,0,1,-1,-1,0,1,-1,0,0,-1,0,0,0,-1,1,0,-1,0,-1,0,1,0,1,0,0,-1,0,0,1,1,-1,-1,1,-1,0,0,0,0,-1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,-1,0,1,-1,0,0,1,0,1,0,-1,0,-1,0,1,1,1,1,0,-1,0,0,-1,0,1,0,1,0,0,-1,1,-1,-1,0,-1,0,0,0,1,0,1,1,-1,-1,-1,0,0,0,0,0,1,1,1,0,0,1,0,-1,-1,-1,-1,0,0,1,1,-1,0,0,1,0,0,-1,1,1,0,-1,1,-1,1,0,1,0,-1,1,-1,0,0,-1,1,0,0,0,-1,0,-1,0,-1,0,1,-1,-1,0,0,1,0,0,0,-1,0,0,1,1,1,0,-1,-1,1,1,1,-1,0,0,0,1,1,0,0,0,0,-1,0,1,0,-1,0,0,0,0,-1,-1,1,0,0,0,1,-1,1,0,-1,0,1,0,0,0,0,-1,1,1,-1,-1,0,-1,1,1,0,-1,0,0,0,0,0,-1,-1,0,-1,1,-1,0,-1,1,1,0,1,0,0,-1,-1,0,0,1,0,0,0,0,-1,1,0,1,1,0,0,0,1,0,0,1,0,-1,0,-1,1,0,-1,0,0,-1,1,0,0,1,0,1,1,0,1,-1,1,1,0,-1,0,0,1,0,0,-1,0,0,0,1,0,-1,0,0,1,1,0,0,1,-1,0,0,-1,0,0,-1,1,-1,1,-1,0,1,0,0,-1,0,1,-1,-1,0,-1,0,0,-1,0,0,-1,0,0,1,0,-1,0,-1,0,0,-1,-1,-1,1,1,0,1,0,-1,0,-1,-1,0,0,1,0,-1,1,0,1,-1,0,0,0,0,0,-1,1,-1,0,-1,0,1,-1,1,-1,1,1,1,0,0,-1,1,1,0,-1,0,0,-1,0,0,0,1,-1,-1,0,0,1,-1,0,-1,-1,1,1,0,-1,1,0,0,0,-1,1,0,-1,1,-1,0,0,0,1,0,0,-1,1,0,-1,0,0,1,0,1,-1,1,0,-1,0,0,-1,-1,0,0,1,0,0,0,0,0,-1,0,0,0,1,0,0,-1,0,0,1,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,1,0,-1,0,0,-1,1,-1,0,-1,-1,-1,1,0,0,0,0,0,1,-1,-1,-1,0,1,1,-1,0,0,0,1,0,1,-1,0,0,1,0,1,1,0,-1,1,1,1,0,0,0,0,-1,1,-1,1,0,-1,0,0,1,1,0,1,0,-1,0,0,1,1,0,0,-1,0,-1,0,-1,0,0,1,0,0,1,0,1,1,0,1,0,-1,0,0,-1,0,0,1,0,-1,1,-1,0,0,1,-1,1,0,0,0,-1,-1,0,0,-1,0,0,0,1,1,0,1,0,1,0,-1,0,0,-1,0,0,0,-1,0,1,0,0,0,0,0,0,0,0,1,0,0,-1,1,-1,0,-1,1,1,0,0,0,1,1,1,1,0,0,0,0,1,1,0,0,1,-1,1,0,1,0,1,-1,-1,0,1,0,-1,0,1,-1,0,0,0,0,-1,0,0,0,0,0,0,1,0,-1,1,1,0,1,0,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,-1,1,0,1,0,1,0,1,0,1,-1,-1,0,0,1}, {1,-1,1,1,-1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,-1,0,1,1,0,-1,-1,-1,-1,1,1,0,-1,0,0,0,1,-1,1,1,1,0,0,1,0,0,1,-1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,-1,0,1,0,0,1,0,-1,0,-1,-1,0,1,0,0,1,1,0,0,1,-1,0,-1,1,-1,1,0,-1,0,0,1,0,0,0,1,1,1,0,0,-1,-1,1,-1,1,0,-1,-1,0,-1,0,0,0,1,1,-1,0,0,-1,1,-1,0,-1,0,0,0,0,0,0,0,0,1,0,-1,0,-1,0,1,0,1,-1,-1,0,0,0,0,-1,1,-1,0,1,1,0,0,0,1,0,0,0,-1,1,-1,1,-1,1,0,0,1,0,-1,-1,0,0,-1,0,0,0,0,1,1,1,1,-1,0,1,0,0,-1,0,-1,1,0,0,1,0,0,-1,-1,1,0,-1,0,-1,0,-1,0,-1,-1,1,-1,-1,0,0,1,0,0,1,0,-1,1,-1,1,1,-1,0,1,1,1,0,0,1,0,1,-1,1,0,0,0,0,0,-1,0,0,0,-1,0,0,-1,-1,-1,1,0,-1,1,0,-1,-1,0,1,1,0,1,0,0,0,-1,0,0,-1,0,0,0,-1,-1,0,1,-1,0,1,0,-1,1,-1,-1,0,0,1,1,0,0,1,0,1,0,0,0,1,0,-1,0,1,0,0,0,-1,0,-1,0,0,1,1,-1,-1,0,0,-1,1,1,0,1,0,0,1,0,0,-1,0,-1,0,1,-1,0,-1,-1,1,0,0,0,-1,0,0,-1,1,-1,0,0,-1,-1,0,0,0,-1,-1,1,0,1,0,0,0,1,1,0,1,1,0,-1,0,1,1,1,-1,0,0,0,-1,0,1,-1,-1,0,1,0,-1,0,0,1,-1,0,-1,1,0,0,0,1,-1,0,0,-1,1,0,0,0,-1,1,0,0,1,0,0,-1,0,0,1,-1,0,0,-1,-1,-1,1,0,-1,-1,1,1,1,-1,0,-1,0,0,-1,1,1,1,1,1,0,1,-1,1,1,0,-1,1,-1,0,0,0,-1,-1,1,0,0,1,-1,0,-1,-1,0,0,-1,1,-1,-1,0,1,0,0,0,0,0,1,-1,0,0,0,-1,0,1,0,0,-1,1,0,1,1,0,-1,0,1,-1,-1,0,1,0,-1,0,1,0,-1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,1,1,-1,1,-1,0,-1,-1,-1,0,-1,1,0,0,0,0,-1,-1,0,1,1,0,0,0,0,-1,1,1,0,0,0,0,0,0,1,0,-1,1,1,-1,0,-1,-1,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,0,-1,0,0,0,0,0,-1,-1,0,0,-1,0,1,0,-1,0,0,1,-1,0,-1,1,1,1,1,0,0,1,0,-1,-1,0,0,0,0,0,1,0,-1,-1,1,1,0,0,0,0,-1,1,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,-1,0,1,0,0,-1,1,-1,-1,-1,0,0,0,1,0,0,-1,0,-1,-1,-1,0,0,0,0,-1,-1,-1,0,0,0,1,-1,0,-1,0,0,0,1,0,0,0,0,0,0,-1,0,0,-1,0,1,0,1,-1,1,0,1,1,1,0,0,-1,0,1,1,1,1,1,-1,0,-1,-1,-1,-1,1,-1,0,-1,0,0,-1,1,0,-1,0,1,0,1,0,0,-1,-1,0,-1,0,0,1,-1,0,0,-1,0,-1,0,0,1,-1,-1,1,-1,0,-1,1,1,1,0,0,1,-1,0,0,-1,0,0,0,1,-1,-1,1,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,-1,0,-1,0,0,0,1,0,1,0,0,0,-1,0,0,-1,0,-1,0,1,1,1,0,0,-1,0,0,0,1,0,0,0,-1,0,-1,0,0,-1,1,-1,1,1,0,0,0,0,0,0,0,1,0,-1,-1,1,-1,0,-1,0,0,1,1,-1,0,1,0,0,-1,0,1,0,0,-1,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,0,1,0,1,0,1,0,1,1,0,1,-1,0,1,0,0,-1,0,-1,0,0,1,0,1,0,0,-1,1,1,1,1,-1,-1,0,0,0,-1,1,1,0,1,1,0,-1,0,-1,0,0,-1,0,0,0,1,-1,0,0,0,1,-1,-1,0,-1,-1,0,0,1,0,-1,0,0,-1,0,1,0,0,1,0,-1,1,1,0,0,0,-1,-1,0,0,1,0,-1,0,0,-1,-1,1,0,0,0,-1,-1,0,1,0,-1,0,1,0,-1,1,1,0,-1,0,1,1,0,1}, } ; static const unsigned char precomputed_core_multsntrup1013_c[precomputed_core_multsntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_multsntrup1013_impl(long long impl) { unsigned char *h = test_core_multsntrup1013_h; unsigned char *n = test_core_multsntrup1013_n; unsigned char *k = test_core_multsntrup1013_k; unsigned char *c = test_core_multsntrup1013_c; unsigned char *h2 = test_core_multsntrup1013_h2; unsigned char *n2 = test_core_multsntrup1013_n2; unsigned char *k2 = test_core_multsntrup1013_k2; unsigned char *c2 = test_core_multsntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_multsntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup1013(impl); printf("core_multsntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup1013_implementation(impl),ntruprime_dispatch_core_multsntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup1013; printf("core_multsntrup1013 selected implementation %s compiler %s\n",ntruprime_core_multsntrup1013_implementation(),ntruprime_core_multsntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_multsntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_multsntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_multsntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_multsntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_multsntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_multsntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_multsntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_multsntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_multsntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_multsntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_multsntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup1013")) return; storage_core_multsntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_multsntrup1013_h = aligned(storage_core_multsntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_multsntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_multsntrup1013_n = aligned(storage_core_multsntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_multsntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_multsntrup1013_k = aligned(storage_core_multsntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_multsntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_multsntrup1013_c = aligned(storage_core_multsntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_multsntrup1013_h2 = callocplus(maxalloc); test_core_multsntrup1013_h2 = aligned(storage_core_multsntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_multsntrup1013_n2 = callocplus(maxalloc); test_core_multsntrup1013_n2 = aligned(storage_core_multsntrup1013_n2,crypto_core_INPUTBYTES); storage_core_multsntrup1013_k2 = callocplus(maxalloc); test_core_multsntrup1013_k2 = aligned(storage_core_multsntrup1013_k2,crypto_core_KEYBYTES); storage_core_multsntrup1013_c2 = callocplus(maxalloc); test_core_multsntrup1013_c2 = aligned(storage_core_multsntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_multsntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup1013();++impl) forked(test_core_multsntrup1013_impl,impl); ++test_core_multsntrup1013_h; ++test_core_multsntrup1013_n; ++test_core_multsntrup1013_k; ++test_core_multsntrup1013_c; ++test_core_multsntrup1013_h2; ++test_core_multsntrup1013_n2; ++test_core_multsntrup1013_k2; ++test_core_multsntrup1013_c2; } free(storage_core_multsntrup1013_c2); free(storage_core_multsntrup1013_k2); free(storage_core_multsntrup1013_n2); free(storage_core_multsntrup1013_h2); free(storage_core_multsntrup1013_c); free(storage_core_multsntrup1013_k); free(storage_core_multsntrup1013_n); free(storage_core_multsntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_multsntrup1277.c0000644000000000000000000026502314705505543023633 0ustar rootroot/* ----- core/multsntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_multsntrup1277_checksums[] = { "058a17a603ab239e229ecee9714be97af3029708f9c0cd163abec692e829d154", "6a784e7b89a244f38d8683537c375958c9c75a4796a2de4d1daa3d00aad2668e", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_multsntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_multsntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_multsntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_multsntrup1277_CONSTBYTES static void *storage_core_multsntrup1277_h; static unsigned char *test_core_multsntrup1277_h; static void *storage_core_multsntrup1277_n; static unsigned char *test_core_multsntrup1277_n; static void *storage_core_multsntrup1277_k; static unsigned char *test_core_multsntrup1277_k; static void *storage_core_multsntrup1277_c; static unsigned char *test_core_multsntrup1277_c; static void *storage_core_multsntrup1277_h2; static unsigned char *test_core_multsntrup1277_h2; static void *storage_core_multsntrup1277_n2; static unsigned char *test_core_multsntrup1277_n2; static void *storage_core_multsntrup1277_k2; static unsigned char *test_core_multsntrup1277_k2; static void *storage_core_multsntrup1277_c2; static unsigned char *test_core_multsntrup1277_c2; #define precomputed_core_multsntrup1277_NUM 4 static const unsigned char precomputed_core_multsntrup1277_h[precomputed_core_multsntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {131,13,63,252,160,10,64,246,99,2,56,6,27,1,255,255,121,11,169,240,172,13,212,11,62,250,52,241,201,12,46,4,155,5,11,247,61,13,208,9,60,1,182,11,103,5,111,9,81,241,219,241,183,243,88,250,220,243,16,0,177,249,35,8,175,0,121,7,186,243,189,242,211,250,32,11,191,254,208,13,84,244,98,252,183,9,227,243,107,251,145,250,76,245,180,1,17,8,24,244,130,4,158,12,202,7,64,7,49,252,190,247,230,8,66,241,254,248,120,14,29,243,176,1,88,243,144,246,224,8,214,1,170,244,166,242,183,9,55,14,46,2,211,247,31,12,206,6,13,250,211,241,180,3,197,9,237,11,183,12,247,10,123,249,3,247,59,242,70,255,72,255,7,245,70,13,246,2,29,8,21,251,178,11,13,244,124,244,241,4,247,14,12,246,21,1,179,5,157,244,59,7,128,8,244,8,40,245,123,10,147,7,183,12,106,248,65,251,229,14,55,1,246,5,139,8,166,244,188,255,235,8,220,13,25,3,2,251,91,8,137,11,91,10,44,4,56,254,193,253,194,5,146,249,59,7,172,250,109,242,144,12,245,255,130,5,169,247,166,252,158,3,38,0,58,5,153,8,127,252,207,242,158,10,217,3,57,245,32,5,51,8,14,249,60,14,102,242,44,10,52,248,91,12,183,7,202,247,242,1,14,2,241,4,114,255,249,241,192,241,27,2,214,5,67,251,139,241,204,2,160,242,113,250,93,248,158,246,216,251,154,255,137,254,81,255,38,5,105,251,236,12,206,254,252,0,34,244,208,248,225,8,147,6,160,240,111,2,88,255,107,7,47,243,183,247,15,252,81,5,146,6,38,4,204,9,141,254,174,249,147,6,193,246,239,250,135,12,64,2,88,3,190,254,131,252,185,9,20,1,219,240,112,246,4,15,183,12,103,251,61,3,129,255,107,10,151,4,147,244,157,251,214,2,163,253,125,255,142,248,175,246,71,12,77,248,237,5,200,4,1,244,227,255,121,251,71,242,100,250,104,7,67,253,197,246,41,14,2,4,2,249,72,15,113,13,8,15,126,11,11,12,58,6,195,8,119,248,227,4,153,250,102,247,26,252,167,254,57,1,243,243,171,242,134,10,253,7,28,10,138,245,38,250,197,1,9,253,59,13,234,243,88,10,85,5,57,247,110,4,121,1,237,4,205,255,247,248,219,0,168,11,233,3,108,3,107,247,164,245,185,11,224,4,189,255,205,8,50,253,186,2,73,8,227,246,169,9,182,10,76,249,8,8,30,5,95,15,168,242,58,15,173,13,51,244,68,10,139,255,45,244,145,3,71,241,52,10,36,14,47,10,29,253,17,253,238,242,48,245,248,3,128,242,65,241,196,251,58,15,225,5,218,251,27,243,134,3,134,3,7,250,109,10,24,8,138,255,139,4,37,13,97,250,233,8,138,249,21,3,113,243,25,0,70,252,188,11,232,244,78,252,19,8,193,244,16,14,79,14,85,2,150,247,129,243,88,253,46,8,218,251,228,244,104,5,57,1,84,252,143,0,230,246,22,252,40,10,12,251,159,10,196,241,224,0,240,9,192,10,69,5,195,1,228,251,151,2,130,248,73,1,19,255,133,243,74,253,233,254,237,10,190,5,15,252,49,251,234,0,214,3,188,11,37,7,10,251,110,246,183,9,63,6,91,5,97,254,139,8,155,252,213,253,164,243,127,2,86,0,235,241,183,248,5,1,238,13,245,253,166,0,245,240,137,2,31,5,251,243,44,12,210,246,145,255,104,14,84,11,151,1,69,1,29,255,154,10,128,3,40,250,151,250,114,253,184,252,116,247,77,12,87,248,245,12,162,247,213,248,111,254,172,240,152,245,66,249,245,1,73,253,186,5,150,244,19,9,9,6,133,249,192,247,10,253,113,251,175,251,125,2,116,12,0,14,206,12,102,8,12,253,152,248,163,241,167,7,73,9,13,254,43,2,164,242,56,0,8,247,86,3,153,6,78,13,48,15,98,11,53,12,198,11,186,250,163,252,136,13,62,0,34,3,13,241,146,10,69,8,245,6,149,243,214,240,68,241,231,10,162,249,173,242,159,250,248,251,16,243,84,13,150,242,128,9,77,14,194,3,168,3,160,249,14,15,231,243,247,9,141,14,72,241,144,243,251,0,104,249,148,2,227,3,152,244,223,253,49,254,33,245,100,249,176,255,219,13,107,253,201,9,246,7,11,245,144,248,182,251,39,249,124,245,45,244,89,11,106,5,238,9,129,12,58,10,247,240,85,249,56,1,203,255,30,252,128,244,203,255,166,7,160,244,64,245,77,3,77,253,232,243,30,15,57,12,97,247,72,3,238,8,219,8,227,250,117,6,79,248,70,11,5,6,236,247,221,9,75,255,240,7,229,5,110,255,225,243,143,14,222,253,171,13,128,251,85,5,163,255,217,0,250,243,227,5,59,3,84,246,215,251,235,247,34,244,144,10,188,11,236,244,69,249,136,252,145,4,178,4,160,250,108,14,60,249,102,6,240,249,8,0,234,240,90,248,12,8,70,249,223,253,162,1,198,1,1,0,250,249,22,8,222,4,18,8,94,254,129,2,254,6,5,246,125,8,101,243,181,8,118,10,233,248,107,245,197,246,247,247,19,8,205,14,12,248,70,6,235,243,21,252,51,6,139,248,68,251,184,247,138,244,152,251,180,242,113,3,4,3,247,253,190,2,71,9,79,255,157,14,181,241,10,244,60,11,84,242,95,6,13,11,116,242,33,3,76,11,52,15,251,244,199,241,198,9,249,244,149,4,97,10,59,1,178,14,164,13,161,253,28,1,212,250,213,241,85,248,87,0,101,14,52,255,202,255,213,8,83,255,162,9,42,255,109,10,223,4,54,6,135,255,84,4,34,249,99,3,227,255,129,242,121,244,217,13,64,251,74,14,198,10,52,247,185,253,129,255,191,11,103,243,237,251,56,9,87,244,20,11,67,246,47,255,201,241,170,242,19,242,163,246,204,246,54,250,37,13,232,241,93,244,225,6,173,5,212,240,51,253,83,6,179,3,100,12,92,10,65,255,220,9,86,2,176,7,88,7,173,253,96,14,137,244,67,0,116,8,219,255,167,250,8,8,207,1,83,14,130,251,79,8,123,249,244,5,245,12,137,254,248,11,28,253,10,7,31,242,118,3,32,10,1,1,135,6,179,5,127,6,105,254,24,244,54,12,8,251,94,252,97,7,201,4,247,241,160,241,110,255,101,255,244,251,44,1,221,0,181,245,70,6,221,245,234,245,66,254,117,11,23,243,118,251,130,8,79,13,166,255,212,10,206,244,209,14,61,250,168,252,35,10,91,244,173,6,133,8,152,6,81,241,31,247,153,12,250,243,226,243,13,15,181,2,243,6,112,248,194,13,108,246,89,250,239,11,205,246,68,251,164,250,205,240,177,248,80,248,186,14,125,244,147,255,244,8,163,3,244,244,63,252,189,8,231,253,111,12,255,253,0,15,20,250,134,4,182,9,211,3,110,0,118,14,252,0,143,243,77,251,241,11,171,9,50,13,42,246,185,248,245,14,130,4,75,0,102,245,15,252,48,14,175,244,162,14,164,249,116,253,48,5,81,2,173,14,147,12,206,13,179,246,106,241,220,8,253,3,107,0,184,3,134,9,81,10,16,6,21,249,128,4,135,11,249,255,154,255,191,253,133,12,156,13,56,243,6,8,31,246,13,4,107,241,167,249,85,14,217,8,147,249,130,13,112,253,123,5,204,12,188,245,185,241,17,3,52,8,166,247,18,252,146,249,193,240,37,253,127,2,179,12,224,240,49,8,8,3,26,8,122,1,84,11,2,255,89,15,201,253,1,2,30,4,134,254,64,14,204,7,182,247,94,255,192,247,134,253,144,251,106,0,252,253,133,2,180,250,157,255,204,246,247,246,55,12,224,248,190,245,209,10,114,7,180,253,155,245,216,1,174,13,21,255,128,12,159,4,71,241,160,241,123,12,202,3,2,14,5,5,124,9,238,10,138,13,177,245,177,244,63,1,176,241,211,254,189,254,91,253,139,2,79,12,100,2,33,254,66,11,222,0,59,6,168,2,134,1,139,249,94,13,217,244,206,1,58,7,99,11,248,254,197,2,248,245,125,248,17,13,137,255,123,0,143,243,81,0,251,247,10,8,94,0,252,12,82,250,172,244,117,10,122,254,19,245,241,242,76,1,66,242,179,251,163,12,54,254,75,251,136,10,76,3,198,13,68,244,232,248,56,245,67,4,147,7,232,0,165,0,224,245,44,12,101,253,236,251,104,3,9,246,225,13,77,244,100,0,223,7,159,244,21,11,40,15,155,4,139,249,160,252,48,8,185,241,186,247,170,250,78,253,214,5,99,254,195,245,95,7,191,2,224,255,194,254,250,8,123,241,248,7,44,255,21,12,163,245,48,252,15,244,188,242,193,240,46,249,27,11,76,2,20,254,90,5,150,253,183,255,237,6,51,1,11,245,149,14,238,242,73,254,138,6,126,241,201,244,209,241,91,254,188,248,0,241,126,245,33,241,12,243,6,12,236,1,62,243,212,255,112,1,174,245,60,13,144,10,75,243,116,6,132,1,48,6,61,11,114,253,137,4,96,9,144,12,184,4,185,10,195,0,206,3,107,13,255,245,200,5,132,9,223,249,88,6,107,249,130,11,179,7,21,253,195,244,127,0,215,14,38,14,190,14,248,9,251,246,179,5,146,0,208,248,36,254,147,13,245,6,66,243,100,13,71,246,186,251,168,9,98,241,44,244,205,243,93,12,63,241,67,15,48,4,46,251,126,4,239,251,17,5,54,243,96,241,247,254,108,13,161,253,99,8,48,4,122,249,36,1,245,247,23,243,143,3,43,0,185,254,94,15,173,243,222,252,85,3,231,248,121,250,226,0,189,5,123,14,118,10,106,1,84,253,94,11,244,253,15,13,9,15,33,2,216,4,143,10,225,252,101,2,40,4,12,255,11,13,19,8,15,4,225,11,46,10,44,242,28,5,69,245,140,1,195,250,131,8,157,241,224,10,56,3,214,247,219,6,116,250,112,6,228,7,61,12,116,250,153,241,205,254,10,244,221,13,4,247,141,252,246,2,39,242,11,249,48,248,155,14,159,251,92,248,81,8,162,7,178,4,228,247,12,4,166,254,253,253,136,11,92,241,128,4,108,253,8,12,242,14,169,246,178,8,2,251,223,252,73,253,108,245,165,6,194,255,160,247,37,248,250,253,245,247,225,10,54,246,251,254,111,246,105,253,83,13,151,10,203,245,44,4,119,250,241,5,142,246,101,252,153,8,181,3,209,244,104,254,80,251,71,2,128,241,146,245,71,254,135,242,26,247,242,254,64,241,202,5,174,5,189,14,197,248,173,243,234,1,244,9,204,244,125,251,99,15,92,10,86,254,135,245,74,7,0,254,40,253,0,242,177,246,124,14,76,255,146,6,174,248,165,246,80,253,212,249,200,10,254,246,148,7,248,255,217,241,44,243,81,2,181,1,69,255,252,249,252,6,204,249,170,3,89,14,209,3,218,242,116,2,32,248,244,7,205,240,118,255,236,252,104,1,73,244,144,255,0,11,240,241,153,247,72,12,48,2,43,249,147,254,251,5,131,255,244,246,42,7,172,246,11,246,38,254,96,15,132,9,102,0,210,249,220,240,117,241,94,8,13,2,29,252,129,4,208,0,198,12,28,2,107,253,89,8}, {139,10,118,254,31,14,234,244,255,245,48,247,80,249,92,252,196,252,97,246,195,243,74,5,207,11,182,252,142,2,197,252,27,7,21,249,117,254,15,254,177,247,163,5,137,12,41,246,200,7,173,246,21,252,183,10,52,250,236,9,202,254,187,252,46,248,172,251,223,14,125,8,44,11,143,252,50,247,81,245,88,247,98,254,236,241,193,248,200,243,126,249,130,0,13,15,98,248,151,255,164,255,162,252,0,241,120,250,97,251,136,11,95,15,50,15,110,253,122,10,142,13,181,252,236,246,161,251,21,4,182,249,76,242,126,9,19,5,242,3,187,248,221,1,111,4,128,2,101,255,18,250,190,3,173,2,194,10,38,241,167,0,234,241,98,241,225,2,35,3,11,1,181,10,255,13,110,1,255,249,200,13,67,246,31,245,106,11,12,255,172,244,44,244,33,7,226,7,202,12,187,1,220,9,254,244,218,12,50,244,176,255,220,251,75,255,153,243,27,9,154,247,239,0,250,7,144,6,136,4,214,240,45,8,163,14,7,241,244,7,166,250,3,241,167,3,86,8,221,250,72,11,78,249,238,6,150,12,15,253,213,251,197,13,224,13,42,242,170,11,7,253,28,2,162,248,157,1,8,249,242,12,1,245,135,13,1,11,11,7,74,253,228,241,164,254,48,4,81,14,65,3,94,5,234,249,68,243,144,12,192,246,216,2,140,242,46,249,6,11,139,12,192,247,47,251,46,251,2,5,175,4,150,2,2,11,28,2,224,0,45,242,184,247,228,240,79,7,242,0,215,243,4,15,81,3,104,9,52,2,69,11,148,13,162,0,214,245,70,13,161,245,6,251,254,2,150,246,77,7,62,14,77,7,170,251,193,241,40,255,212,242,244,9,107,4,193,246,98,253,205,254,56,0,167,247,164,6,138,244,45,244,15,8,130,253,250,2,163,11,251,12,123,7,224,250,129,2,109,254,191,5,191,5,215,240,161,251,14,255,190,244,24,242,200,240,71,249,28,15,91,14,143,14,38,10,237,250,210,245,251,3,58,245,65,243,65,247,116,253,42,250,110,243,233,0,85,6,177,1,93,250,217,242,120,0,156,254,222,3,215,252,38,11,121,248,214,249,49,7,66,14,129,14,82,8,18,248,243,245,164,11,189,14,233,246,165,240,154,4,177,254,96,242,118,8,86,1,75,249,85,12,182,1,77,247,96,14,48,243,32,243,184,11,239,250,42,13,67,255,38,7,81,253,97,244,49,3,77,9,17,241,39,13,46,248,241,250,53,255,227,2,1,244,122,2,208,249,194,11,69,249,178,6,152,254,121,11,231,243,187,242,81,9,185,7,32,249,163,250,135,7,209,6,136,244,116,1,247,251,177,245,200,4,218,11,207,7,94,243,121,254,11,11,67,243,127,10,85,13,106,7,37,248,51,12,126,3,214,10,30,10,222,9,50,8,2,254,50,15,70,2,136,7,139,9,174,6,138,7,21,6,29,11,225,10,206,253,216,8,109,247,64,9,64,249,241,6,135,10,157,245,195,250,18,254,169,4,68,8,41,241,130,2,200,242,211,7,251,2,44,11,150,6,212,10,218,242,211,243,58,246,154,7,139,0,83,243,106,241,44,253,253,13,64,9,151,250,170,11,217,5,217,245,227,4,245,1,215,5,163,9,183,13,241,0,170,247,96,1,235,241,41,244,91,252,13,2,138,4,123,244,151,10,65,13,249,254,104,249,76,251,3,241,157,242,145,11,239,250,237,249,164,241,42,5,92,253,91,3,237,246,97,253,195,255,185,244,29,10,157,243,102,248,129,242,99,255,102,9,89,14,141,241,42,246,250,252,101,250,48,245,242,254,26,11,40,1,215,252,120,252,97,241,167,2,210,3,125,254,181,7,16,246,52,0,171,251,180,1,46,249,115,245,145,4,249,254,15,1,34,251,141,4,74,10,194,0,176,243,70,14,28,255,57,248,30,249,244,247,85,244,114,243,209,6,251,13,155,11,208,247,97,241,42,9,177,8,25,11,125,249,81,8,85,252,105,8,238,0,37,250,68,1,0,2,84,1,109,245,241,13,211,14,19,12,151,245,135,5,160,252,163,0,151,246,221,11,246,10,32,244,213,246,210,246,239,254,126,251,234,7,106,253,89,250,228,249,127,247,240,247,112,14,81,11,47,247,29,252,122,244,150,252,22,13,142,244,248,247,209,251,127,245,140,243,60,12,215,13,57,248,78,249,139,11,15,248,12,255,14,253,45,252,157,7,233,244,158,4,92,249,221,242,180,253,123,0,44,247,82,1,193,247,142,250,206,240,115,251,165,1,137,4,58,8,231,12,126,7,100,5,180,14,97,254,132,241,121,252,219,255,27,243,106,242,154,246,89,10,135,13,209,249,254,244,146,250,222,245,35,15,50,11,22,10,18,250,96,2,31,245,61,4,183,13,82,6,203,252,12,253,247,248,220,244,28,252,246,7,82,243,38,0,70,5,95,247,229,13,53,249,116,5,185,0,59,254,241,240,211,2,62,2,178,254,125,8,207,1,211,241,174,245,145,254,75,2,116,245,4,245,25,2,65,4,18,14,98,252,24,14,118,252,205,0,29,4,15,253,130,250,79,5,238,250,155,243,174,10,149,253,21,244,1,243,95,3,139,3,244,255,9,250,95,12,148,255,89,255,196,255,16,0,110,9,9,255,4,0,145,246,203,241,63,13,91,0,208,254,162,240,8,250,219,251,78,244,4,243,143,8,39,11,161,4,83,253,135,242,225,246,60,9,252,255,141,251,68,246,12,15,119,248,128,253,12,7,237,1,1,7,240,7,98,243,182,249,117,244,17,14,85,8,89,252,241,9,78,8,180,2,0,249,9,12,108,245,221,244,13,255,47,252,112,251,194,5,106,9,50,15,24,254,82,3,5,7,241,241,5,248,183,2,164,4,139,246,186,4,216,10,177,249,250,10,248,240,42,243,221,0,60,243,2,250,217,247,235,254,54,10,118,4,43,3,244,240,0,255,15,249,81,12,197,9,10,249,116,10,245,242,24,2,232,241,29,7,80,251,179,241,160,248,163,245,224,12,218,9,129,13,59,2,156,12,31,4,105,9,112,248,122,10,143,251,57,255,145,245,141,252,234,255,74,252,87,8,201,241,90,13,193,250,98,0,190,248,209,4,76,247,215,9,178,13,118,253,147,253,148,14,184,3,241,5,81,255,41,253,207,14,184,7,231,12,193,241,224,250,221,243,250,243,61,14,206,10,97,247,26,6,19,254,241,3,207,243,73,14,189,240,80,13,168,2,250,244,163,12,176,248,250,251,102,255,209,245,39,252,245,255,53,10,128,246,40,253,38,249,239,13,45,252,127,249,93,245,215,13,71,15,72,2,24,255,169,255,17,6,202,243,44,7,53,250,99,7,250,11,200,10,72,248,201,1,3,14,32,244,215,12,29,2,189,254,213,250,14,248,226,3,116,246,191,245,88,4,149,12,242,251,170,253,36,244,92,244,249,3,226,247,169,1,16,10,219,255,186,252,164,255,166,1,16,7,230,5,208,3,1,243,116,241,23,251,153,246,199,11,6,252,147,244,114,249,32,250,153,1,91,7,88,250,12,5,252,241,240,13,73,0,1,245,18,253,143,4,136,9,231,251,172,248,127,4,250,245,185,2,23,15,104,255,85,11,69,7,25,13,154,254,189,13,221,246,69,3,234,249,51,241,237,2,211,247,234,8,211,12,253,255,232,248,102,245,6,244,161,240,65,255,98,6,27,13,240,242,133,241,164,253,103,1,225,245,107,241,149,250,180,243,186,242,96,245,9,255,231,7,64,246,17,8,203,14,166,246,8,14,52,2,157,243,108,8,176,244,246,254,12,254,113,5,40,2,120,255,43,12,182,243,221,253,163,252,189,248,178,254,29,242,236,251,45,3,201,1,57,245,74,5,232,240,11,247,189,249,38,251,18,2,43,6,155,244,143,247,128,11,212,11,192,2,76,244,205,242,63,255,232,4,40,250,8,246,195,243,182,6,23,4,157,243,150,254,255,241,81,15,217,252,166,13,245,248,173,245,165,253,12,246,152,243,101,10,249,0,62,252,208,243,142,247,248,10,75,14,201,8,181,254,128,245,102,248,46,5,230,3,131,241,210,252,230,12,162,14,130,13,217,255,241,242,48,243,24,252,250,12,72,251,203,240,194,11,209,251,66,7,211,7,58,250,72,1,103,14,15,251,67,7,192,4,131,13,200,8,212,8,129,1,108,244,171,254,165,12,156,4,169,1,248,246,208,9,66,243,228,4,34,11,231,249,141,1,226,251,240,3,239,242,232,242,16,12,134,254,126,14,66,12,55,253,22,15,125,12,188,240,56,245,133,246,29,13,145,7,249,252,189,7,156,245,230,11,212,249,117,13,230,249,14,1,93,248,44,5,111,254,2,13,98,1,24,0,182,1,216,10,174,4,78,14,169,8,183,12,163,253,149,5,196,10,115,243,94,246,1,2,86,246,240,244,208,250,73,253,223,241,160,8,57,250,85,15,204,245,218,249,161,250,245,0,98,9,3,250,244,251,88,6,117,246,145,248,24,1,124,252,83,8,206,252,188,1,147,8,31,254,47,247,223,5,214,248,17,4,41,6,167,250,58,251,123,13,14,243,72,254,172,5,107,246,237,255,72,5,118,10,200,249,197,255,254,249,250,7,67,1,223,241,140,246,69,255,53,241,33,242,135,252,23,252,96,245,219,11,20,253,221,250,183,240,12,13,81,249,172,248,254,7,251,244,13,14,174,249,245,255,143,2,116,242,46,7,65,8,46,14,122,248,16,244,150,12,113,10,91,241,212,7,65,15,4,241,46,3,79,13,159,1,158,251,194,6,132,0,252,245,247,250,253,0,117,7,197,248,10,15,191,14,137,248,15,10,10,253,131,248,0,249,233,13,252,5,32,11,17,249,210,244,30,3,17,244,42,243,156,3,102,12,5,249,232,255,74,15,163,6,81,7,132,246,81,253,203,244,13,9,74,12,211,6,235,7,111,13,67,12,248,242,233,244,33,254,8,3,37,3,148,0,130,254,229,254,190,4,56,4,46,248,4,15,205,255,82,2,202,241,34,3,171,14,161,8,67,8,161,251,225,247,220,9,243,9,253,252,110,253,219,11,167,248,70,8,233,242,233,0,46,246,140,5,16,14,3,6,220,251,114,255,182,250,221,250,73,9,221,1,197,0,3,250,78,8,75,12,195,251,222,241,163,11,222,240,140,2,182,248,45,248,103,254,108,249,66,14,208,248,80,2,37,11,23,245,70,243,100,241,115,3,229,10,96,8,148,254,199,4,140,8,228,252,63,10,253,12,25,248,202,12,111,7,74,248,133,244,10,254,169,254,71,241,5,241,39,247,105,253,155,6,17,252,187,250,101,248,160,252,224,255,205,243,130,12,73,14,165,253,134,13,136,241,192,13,144,7,32,1,65,9,113,11,18,254,171,1,239,249,16,252,14,5,140,4,84,2,234,245,5,247,9,254,149,5,0,9,215,251,144,253,109,0,221,3,40,4,141,3,53,243,75,6,153,10,244,249,98,248,26,246,37,7,27,245,230,251,202,245,222,7,99,246,30,250,136,242,115,7,79,3,54,242,137,248,150,14,96,248,2,11,71,241,243,14,192,5,160,250,204,2,179,245,184,247,72,252,116,249,28,246,42,5,89,248,84,14,228,5,2,11,247,241,176,247,23,12,133,0,79,11,150,9}, {63,1,87,3,152,247,160,6,168,240,121,14,13,12,127,241,25,251,144,241,240,240,182,241,41,7,14,247,134,252,60,1,19,11,171,5,47,242,251,9,17,11,139,1,172,5,69,5,205,7,169,245,174,14,153,250,66,2,55,251,106,8,62,11,181,251,120,14,190,247,171,10,67,0,73,245,0,13,221,13,170,3,252,247,220,3,126,246,145,249,29,0,147,250,16,251,169,243,154,5,193,14,14,3,252,12,20,11,87,0,101,253,192,251,139,0,74,13,82,1,195,251,55,14,175,255,246,6,146,245,44,249,254,14,99,255,5,252,13,242,214,14,156,6,175,9,157,13,116,241,145,245,45,247,150,14,107,250,5,10,184,242,112,245,77,245,39,242,191,1,142,5,167,248,83,250,208,243,42,245,113,6,92,241,30,11,153,9,228,254,234,250,164,13,234,254,20,252,220,255,254,7,208,250,170,9,165,7,7,14,103,245,163,3,204,240,18,13,117,245,240,240,15,5,48,254,67,8,74,242,207,250,150,244,171,245,16,244,130,7,246,246,204,10,129,7,9,13,223,249,7,241,84,244,222,254,166,251,115,0,234,12,52,247,164,247,68,246,95,3,79,252,123,241,226,7,0,244,229,240,143,250,83,4,197,7,156,248,243,240,251,243,113,10,217,10,5,2,126,3,10,10,76,249,43,14,200,7,1,15,143,255,123,2,74,15,166,5,49,7,34,252,201,12,255,251,98,12,1,252,72,248,247,3,75,2,0,0,50,251,15,251,48,5,5,255,211,5,75,2,137,245,212,241,86,255,186,255,135,253,155,250,28,0,116,3,239,8,236,9,73,253,9,11,155,241,26,243,140,252,97,243,70,1,171,2,114,0,73,13,225,243,86,2,4,252,153,2,16,245,118,248,254,10,21,254,242,13,52,5,240,244,61,245,20,255,178,0,221,7,213,251,157,5,77,251,181,13,218,245,102,254,230,255,44,9,104,13,34,251,202,0,82,6,102,3,143,1,146,251,32,251,85,243,89,244,99,255,131,249,115,245,11,11,90,242,224,245,233,253,90,241,62,3,163,255,216,9,126,14,50,248,147,241,220,242,147,254,253,247,217,1,213,243,242,241,168,2,76,15,25,10,238,10,254,253,218,3,21,241,226,243,180,243,205,248,151,6,122,248,127,11,177,6,204,249,202,240,215,7,93,12,34,7,166,246,183,247,11,3,239,14,125,247,116,11,121,255,244,242,233,8,35,244,37,12,31,246,94,253,201,1,30,252,54,2,181,248,187,255,95,241,237,246,137,246,0,253,250,3,161,14,29,247,97,241,239,254,17,255,53,14,28,244,183,7,113,248,96,11,180,8,66,4,158,7,67,8,136,243,64,247,141,244,133,249,213,241,48,245,237,240,185,5,24,1,201,14,137,9,228,249,179,250,20,10,145,13,183,254,16,252,124,10,126,11,251,7,136,243,238,2,10,254,73,254,56,1,92,250,73,245,233,4,166,1,209,11,184,14,117,247,89,245,197,251,41,12,51,248,172,3,88,5,6,241,2,252,83,2,11,2,30,241,158,8,234,8,106,243,79,246,207,249,203,245,255,246,202,10,20,248,25,243,206,14,53,1,159,243,112,10,232,14,108,12,33,0,182,249,2,1,156,3,124,244,122,241,40,245,121,245,45,244,83,2,106,0,75,11,75,7,250,250,132,255,4,248,87,4,208,8,162,246,235,243,20,9,30,13,225,240,202,1,139,245,182,246,218,11,151,0,86,12,56,7,60,241,241,242,164,247,250,253,86,243,227,251,236,243,90,249,232,3,5,243,7,252,25,255,41,246,209,2,184,8,137,255,152,241,172,10,163,4,49,241,28,9,151,6,192,243,232,14,117,250,215,250,8,255,67,245,226,251,107,8,213,4,235,13,26,255,213,248,71,14,32,252,232,4,64,247,6,253,83,0,255,7,97,1,208,2,87,254,235,248,88,10,62,8,169,255,215,6,67,241,25,251,172,252,85,255,222,10,43,0,153,250,126,11,34,3,174,240,231,254,105,6,7,244,252,242,108,246,37,244,178,14,200,252,131,12,57,15,148,8,254,13,13,246,171,9,104,7,83,244,114,6,190,242,94,13,59,2,118,13,195,254,23,2,249,240,101,5,52,252,129,1,62,9,105,247,112,251,121,252,47,255,82,13,95,255,225,247,9,251,23,248,138,13,20,6,28,2,76,245,25,3,101,248,133,244,204,6,201,14,22,246,176,246,236,7,80,247,21,244,69,5,214,3,151,254,74,248,2,0,138,3,134,5,99,2,67,241,118,241,78,242,228,9,154,255,90,5,175,4,179,241,23,255,244,244,57,15,201,240,157,241,175,255,84,0,133,12,81,8,114,242,165,4,68,249,149,249,25,241,112,243,210,254,182,247,204,250,166,4,56,251,138,14,69,12,246,10,49,1,45,2,95,255,159,241,199,9,52,254,139,10,2,4,174,10,242,4,171,5,147,10,5,254,97,244,215,245,183,247,130,10,215,240,47,255,40,242,47,2,210,7,118,14,169,0,73,251,65,6,204,241,162,244,107,243,93,8,55,244,239,6,9,253,27,254,154,9,246,245,90,252,113,8,126,250,231,243,75,10,112,7,236,250,67,243,159,12,182,11,158,3,240,5,147,255,209,254,239,246,237,7,207,252,44,244,221,243,90,250,244,244,232,2,25,242,25,7,109,250,191,255,212,5,88,253,197,8,134,12,213,14,243,252,171,255,105,0,211,247,150,241,19,3,151,5,248,252,231,249,7,5,45,8,125,14,150,6,152,243,115,253,174,242,112,244,139,6,194,241,228,2,82,2,229,11,121,3,37,242,3,250,230,254,255,245,89,253,250,0,40,11,209,249,45,15,201,13,166,10,92,253,208,255,35,245,62,249,108,9,254,242,96,253,73,241,232,8,137,14,234,14,92,249,110,0,9,243,7,11,250,8,161,240,246,251,44,255,130,7,144,8,60,242,114,3,174,1,140,248,217,11,140,2,133,251,61,247,17,15,102,254,35,249,123,254,92,250,65,4,126,243,185,248,136,2,250,11,245,244,94,6,42,13,5,251,233,5,228,2,185,7,209,4,217,246,79,11,160,0,244,1,235,254,182,12,240,14,246,251,122,249,151,12,31,252,174,243,128,6,48,250,136,255,142,3,124,247,246,7,7,5,253,250,137,5,238,8,59,251,254,241,42,241,178,250,179,252,182,253,129,2,36,249,206,253,151,3,84,15,156,247,120,247,96,5,18,2,206,9,227,14,67,246,153,5,65,15,18,15,18,11,8,3,230,2,25,244,7,246,25,249,63,11,172,246,189,247,138,242,238,14,44,248,177,9,19,252,87,5,37,241,6,14,142,255,191,8,14,254,161,6,28,245,220,254,141,251,228,1,145,7,231,2,113,247,87,244,108,5,12,3,56,251,155,13,46,10,88,5,83,251,210,242,119,5,33,245,29,9,199,255,201,2,27,8,8,248,202,253,127,249,32,1,154,255,143,245,176,13,248,4,15,246,249,14,198,4,27,249,142,8,49,250,90,2,164,240,239,244,190,250,215,12,234,255,46,7,223,249,248,12,38,245,27,247,107,6,23,248,151,247,53,15,166,9,121,14,103,247,142,4,190,13,43,253,199,7,229,3,181,247,24,4,79,251,161,241,210,249,89,241,87,11,72,2,183,251,73,250,45,255,86,247,227,251,112,249,183,246,77,246,60,247,185,6,167,241,153,241,129,248,84,15,116,249,195,240,36,8,112,7,209,11,136,0,15,2,149,8,158,240,238,2,23,2,217,243,219,7,66,0,145,251,33,6,90,7,176,14,113,244,212,1,194,240,52,14,20,4,120,6,145,0,55,12,211,0,227,11,49,251,213,241,139,2,146,6,248,243,60,1,196,244,211,3,132,251,64,6,172,252,51,9,194,9,99,242,134,247,126,0,71,246,196,247,30,250,246,241,156,241,100,250,253,247,69,15,105,5,247,255,212,9,50,249,118,0,74,5,147,246,57,4,170,2,99,7,112,13,240,7,75,253,125,251,104,14,231,2,146,2,126,250,245,0,50,252,172,13,87,14,133,9,152,255,210,253,13,241,135,5,121,243,116,255,212,0,120,252,241,11,53,15,46,10,165,255,78,245,140,8,92,12,74,5,87,7,63,8,75,5,113,4,245,4,4,11,19,4,220,254,83,245,224,248,201,242,221,250,52,253,229,2,38,243,124,12,218,241,149,13,168,240,16,11,102,10,198,3,194,6,174,245,218,241,39,252,194,7,218,250,251,12,220,12,40,245,97,242,34,252,187,7,13,255,96,254,252,13,51,6,215,0,33,4,26,4,216,243,108,10,175,14,51,6,159,2,180,253,15,4,53,8,11,11,22,11,180,13,152,6,93,0,228,10,246,4,147,253,155,9,142,253,193,241,52,250,213,245,181,242,191,0,44,254,36,255,102,243,90,4,182,242,214,247,190,245,87,1,177,248,148,5,86,8,100,249,217,10,156,5,45,250,210,255,31,249,40,253,227,252,227,247,183,6,68,11,189,251,225,249,3,252,65,12,239,244,249,241,34,0,150,255,239,251,57,254,210,12,10,6,128,0,153,245,105,13,105,254,69,242,57,246,53,7,27,8,26,250,72,0,2,8,58,255,156,255,163,254,62,250,49,244,234,250,141,250,125,6,6,14,248,8,46,254,103,250,214,246,94,243,235,6,146,247,250,245,190,2,198,3,51,241,24,247,253,9,202,249,120,11,55,11,221,253,18,1,53,8,163,255,166,5,185,247,183,2,247,2,178,2,132,8,89,13,33,3,105,4,67,2,233,8,216,11,29,242,203,7,40,9,217,0,85,5,110,243,194,5,102,1,37,6,150,244,229,246,44,255,204,7,199,7,23,1,70,247,156,9,184,8,195,3,227,3,111,251,150,243,49,3,34,0,182,14,81,246,234,2,28,11,86,13,235,241,108,13,144,243,66,242,45,250,186,255,126,1,196,2,235,246,142,243,44,255,125,7,229,254,137,244,46,247,92,252,116,4,145,251,0,6,63,253,84,3,181,3,100,11,142,241,31,241,223,255,114,2,96,250,199,254,234,244,185,3,4,248,32,15,133,3,70,254,34,252,222,4,113,251,4,7,120,249,138,4,179,8,183,1,216,1,213,1,81,255,27,249,69,8,205,244,135,9,215,12,30,11,207,248,40,245,130,13,245,249,193,14,150,9,215,240,246,253,224,246,237,1,57,5,134,252,174,248,157,247,218,247,141,4,98,246,174,242,130,4,113,248,189,8,168,2,77,10,166,248,55,12,180,2,47,242,20,250,207,8,254,243,242,244,208,9,238,2,78,7,123,2,35,8,44,8,131,247,102,255,197,9,126,10,190,254,85,8,172,8,155,248,120,252,1,0,199,241,37,249,98,254,115,250,38,249,32,241,69,255,255,9,39,244,198,245,195,248,58,8,133,7,106,245,186,253,234,247,12,251,107,245,128,249,225,14,46,241,180,254,171,2,18,253,40,251,19,253,111,10,127,249,74,14,200,244,242,246,22,247,189,249,163,250,143,244,50,12,212,251,254,250,151,242,146,246,251,10,57,5,97,6,121,9,187,12,26,252,98,243,99,244,127,244,43,248,210,10,84,9,192,240,88,253,4,249,118,248,84,1,63,254,247,9,31,246,247,14,19,10,172,247,63,1,117,6,204,9,69,2,107,0,197,255,82,14,245,14,55,12,220,246}, {84,241,21,244,243,3,137,255,93,255,70,249,155,245,61,244,71,7,14,15,171,242,129,1,104,3,19,10,143,0,100,245,113,244,236,8,134,247,91,4,42,8,244,2,191,255,137,254,128,249,143,241,133,241,185,253,11,1,194,0,250,242,221,253,179,254,56,2,86,10,105,244,254,249,38,0,0,14,23,245,64,245,149,13,128,247,40,3,165,247,207,3,116,252,217,4,165,13,100,7,11,245,175,241,203,8,46,251,52,11,145,7,101,245,110,0,200,6,19,14,229,12,78,247,77,252,79,15,49,11,65,250,73,241,146,7,3,241,199,247,1,12,79,246,221,249,51,244,210,252,182,0,253,244,233,10,23,252,155,3,184,248,169,240,169,1,31,8,220,252,51,6,222,242,64,247,165,253,180,254,191,2,156,4,110,13,99,244,253,8,31,0,247,244,203,13,164,5,213,7,80,15,38,246,231,4,116,6,189,253,60,246,150,0,211,6,113,253,247,10,18,243,142,5,65,9,40,251,152,2,184,4,32,250,249,246,26,13,5,1,124,12,222,254,148,253,49,6,53,14,194,10,205,11,107,255,115,6,72,0,235,244,23,253,11,245,28,11,183,240,46,242,228,254,109,254,66,255,71,251,207,12,237,1,56,9,153,0,35,247,1,5,71,14,90,247,22,251,208,250,117,10,82,249,161,252,33,243,20,14,74,9,109,7,141,5,84,11,24,14,88,1,160,252,27,15,144,12,4,241,34,6,19,11,87,250,193,9,10,3,57,255,226,4,64,246,19,248,36,8,220,8,170,8,65,7,117,10,213,245,37,0,164,245,19,250,108,241,169,8,147,255,226,2,252,7,92,249,132,11,133,252,138,246,154,7,21,7,137,245,60,11,135,242,132,253,211,243,165,6,223,2,210,12,123,255,127,245,177,2,52,244,136,9,192,245,118,244,158,3,55,0,221,11,125,245,32,4,202,10,182,244,44,2,173,255,229,254,99,11,42,5,254,14,76,251,171,251,18,10,99,241,64,245,35,15,153,244,7,14,148,13,242,243,119,8,152,246,186,251,253,4,120,6,128,252,224,4,69,11,223,242,106,0,209,244,221,250,182,245,30,251,66,251,236,241,167,248,139,245,24,254,100,250,54,8,229,14,222,250,68,246,80,244,84,3,89,253,140,255,64,244,248,241,128,250,53,11,55,3,37,247,236,249,199,13,93,249,76,246,153,250,45,250,70,15,146,252,70,8,142,0,68,242,170,255,152,252,69,2,70,250,199,240,142,241,73,14,136,10,204,242,234,244,179,13,168,7,207,250,103,8,117,243,195,254,13,251,127,6,111,4,93,247,101,10,19,253,29,253,172,252,41,246,24,15,38,5,80,5,150,247,103,253,111,242,42,251,178,6,238,245,130,1,96,243,217,8,128,10,56,252,158,242,153,9,199,6,241,250,121,9,28,0,235,247,246,252,28,245,97,6,207,14,47,244,150,10,135,12,246,8,117,6,4,10,235,4,125,5,188,9,108,2,138,255,159,10,207,4,229,253,36,255,108,244,59,3,38,246,196,252,101,9,214,249,122,11,190,13,44,241,87,10,245,247,102,254,26,251,245,254,226,249,161,5,222,6,43,254,122,14,53,2,68,6,202,253,168,246,17,248,13,11,252,0,177,2,222,9,109,10,97,2,76,13,163,7,127,4,180,252,181,5,74,6,140,8,178,252,253,252,20,243,255,241,223,10,225,250,228,0,20,249,59,0,223,250,139,249,244,10,227,4,22,2,8,249,220,12,139,5,220,0,248,5,133,241,77,15,124,250,149,253,198,247,168,7,40,6,165,5,142,251,76,9,84,1,61,10,233,0,185,12,123,246,177,14,143,241,25,0,38,1,167,240,200,1,75,4,250,242,61,255,243,10,245,10,126,5,15,250,240,7,222,7,101,253,193,9,68,9,192,241,247,1,232,246,182,4,84,243,85,3,116,241,162,12,98,7,108,253,40,7,107,0,69,5,54,4,186,14,89,13,185,11,44,6,252,6,84,1,167,0,245,9,104,244,27,5,167,240,94,243,34,249,230,241,132,242,187,8,34,14,120,243,215,247,27,9,207,250,140,3,196,243,204,254,32,252,90,254,88,253,169,12,65,8,65,10,121,9,235,240,165,247,79,7,254,245,74,246,206,251,2,251,100,251,154,242,128,3,177,247,244,6,75,1,113,0,45,9,38,13,87,2,217,4,208,240,175,241,220,248,126,4,2,251,49,6,186,3,65,8,236,244,161,246,47,6,184,9,181,5,121,246,206,242,1,12,178,246,174,253,50,2,76,15,207,1,70,1,106,247,182,240,169,248,25,250,226,2,45,254,156,245,175,255,122,3,183,245,110,253,121,243,214,7,125,241,32,9,0,7,144,255,9,244,161,14,127,9,225,249,98,253,219,5,104,8,178,5,209,9,225,249,103,253,31,11,212,246,23,5,114,253,221,245,241,240,153,6,227,243,24,250,144,4,24,241,181,240,43,249,156,10,13,7,143,6,164,3,124,5,187,248,228,1,181,4,98,3,182,254,163,12,78,247,64,0,236,255,219,4,37,250,118,7,235,8,231,246,67,9,154,251,177,7,195,14,66,244,55,251,0,253,199,242,208,11,0,253,53,244,94,241,42,10,81,250,187,10,159,0,160,243,160,246,106,5,189,8,58,10,36,248,41,245,26,14,106,3,139,4,188,249,106,0,178,8,239,254,67,15,206,248,198,14,107,13,19,4,242,244,217,8,16,249,210,247,192,11,174,245,213,244,152,8,47,1,79,247,224,243,67,254,129,248,12,243,60,1,78,251,135,10,196,7,113,10,84,8,68,248,46,9,62,241,147,10,94,255,92,0,140,252,18,8,201,250,92,12,211,254,106,7,182,5,198,5,200,244,31,244,95,244,9,5,209,4,184,2,168,244,128,245,58,13,204,10,251,247,79,253,93,254,59,4,117,242,12,2,86,251,28,7,114,246,206,245,72,1,195,9,103,249,30,3,175,243,212,5,228,243,76,241,133,3,202,242,228,0,22,246,44,8,24,0,214,0,81,11,219,254,52,1,198,9,246,9,117,10,75,9,24,8,1,244,168,12,153,243,150,9,218,245,89,243,80,251,79,241,202,241,69,254,148,251,188,245,206,10,114,8,74,3,242,13,30,254,183,1,141,255,159,14,249,9,113,245,36,0,158,255,112,253,215,0,236,6,129,6,49,254,98,3,230,240,42,245,188,253,247,254,171,252,159,1,222,11,28,15,93,4,154,245,98,2,65,253,207,9,4,255,241,0,209,7,244,3,87,15,213,246,199,245,151,255,133,5,220,243,138,253,174,247,146,4,231,252,214,247,63,3,248,6,96,252,137,247,243,12,27,253,180,248,62,242,80,13,189,249,215,13,77,252,199,8,104,4,245,7,45,13,201,243,49,10,241,255,80,249,40,5,133,9,198,246,114,253,7,6,204,240,223,248,239,252,148,245,183,7,33,11,231,1,72,11,223,6,149,242,88,249,184,253,119,14,57,253,247,8,49,13,119,251,248,7,195,250,165,251,81,0,10,253,250,12,208,244,199,7,19,13,10,12,219,3,43,249,10,255,61,251,249,3,130,254,9,7,232,6,47,8,205,240,167,2,98,8,60,3,37,252,169,251,218,12,145,243,94,255,89,6,100,13,2,15,247,246,128,12,220,253,183,241,81,13,8,249,45,253,53,9,237,246,224,241,196,10,11,250,38,11,100,247,160,252,20,242,225,4,3,2,94,9,137,243,62,14,39,15,157,252,162,11,89,247,241,252,172,254,233,3,193,250,77,246,90,13,172,8,129,250,54,15,89,242,130,251,198,13,47,247,234,248,254,7,31,245,221,248,58,255,229,13,152,246,200,3,206,250,194,6,58,251,94,253,134,254,53,9,188,245,15,7,95,13,20,245,207,13,179,2,52,252,194,10,178,7,202,0,242,243,2,9,236,255,88,7,185,249,19,252,160,4,219,12,217,240,117,255,70,249,2,255,152,245,233,7,149,7,116,255,34,10,11,251,74,246,144,8,41,10,207,247,187,245,70,252,38,246,109,2,38,9,76,7,65,2,40,252,109,8,219,240,17,9,203,2,2,248,224,253,243,255,220,244,118,6,62,12,7,249,114,7,163,244,53,241,213,243,53,244,166,252,41,247,64,12,233,244,106,250,35,10,20,254,249,10,69,243,217,253,168,13,59,251,203,242,246,13,206,244,73,246,173,241,39,248,114,254,98,251,116,246,137,0,228,248,39,15,214,248,210,244,241,3,62,253,159,246,231,247,93,4,174,2,41,1,195,2,125,0,131,3,74,13,89,0,114,246,238,241,227,255,253,5,150,9,113,245,7,249,197,9,49,252,215,254,233,243,239,255,20,248,235,242,83,7,164,9,179,253,206,9,187,249,251,4,41,5,140,3,168,252,7,242,75,241,238,244,79,249,46,255,244,8,87,8,235,11,118,252,156,244,105,242,161,12,220,1,108,249,138,252,84,252,96,8,116,247,164,248,70,254,102,10,188,11,43,4,214,246,223,240,65,253,48,244,154,8,130,1,182,242,217,247,167,10,253,243,82,12,44,14,69,5,62,245,194,241,157,9,125,241,153,5,3,254,174,13,3,8,87,252,57,243,255,3,152,249,63,0,229,247,239,251,176,4,128,6,159,249,52,243,249,9,217,7,12,10,58,254,0,15,89,252,190,7,244,247,223,254,209,7,84,4,169,14,253,249,210,5,118,245,227,4,70,5,61,15,71,246,27,244,219,3,218,1,152,252,123,11,71,249,10,244,144,245,161,7,236,245,170,0,108,10,54,242,130,11,105,244,92,243,11,244,49,3,26,7,236,244,27,12,45,2,227,243,122,13,37,3,99,253,153,241,82,254,99,13,223,10,71,8,42,249,10,255,160,4,17,247,175,9,49,9,128,251,2,254,246,12,72,249,94,15,158,7,199,246,158,243,190,251,170,14,220,14,230,2,83,249,146,252,28,242,46,253,88,10,86,1,41,252,110,12,111,255,229,246,217,9,199,250,111,255,15,255,70,254,8,245,52,6,131,248,109,13,193,0,9,248,87,3,59,255,189,13,187,246,79,1,1,11,253,6,183,5,185,4,127,5,37,250,101,1,253,240,213,244,38,15,23,242,67,7,22,13,77,3,167,12,38,244,229,243,82,12,209,3,86,252,1,253,16,242,151,252,240,8,76,253,196,254,96,248,19,4,247,247,216,9,63,3,200,247,56,249,154,2,140,4,91,242,233,240,24,11,143,9,123,242,232,251,248,244,91,15,62,11,246,244,254,251,136,255,112,255,55,11,15,14,184,0,246,12,114,254,196,254,87,9,81,7,51,13,147,7,231,249,13,3,27,9,186,247,159,252,111,12,3,255,241,1,123,246,226,14,217,0,245,253,61,253,162,251,240,244,97,2,82,247,237,251,245,12,227,10,21,243,110,246,50,248,54,6,47,6,149,7,204,2,178,12,104,255,219,248,134,11,15,252,8,247,228,10,25,11,112,245,167,245,24,248,34,14,46,250,219,14,174,1,151,9,1,242,20,7,205,240,104,248,24,5,160,1,55,3,77,7,3,0,201,3,192,255,104,248,11,13,138,0,25,254,169,5,123,13,213,6,127,252,5,254,231,13,66,6,30,241,112,249,99,1,114,9,11,1,105,12,34,3,134,255,199,9,191,245,114,12,2,7,192,251,51,249,201,247,164,0,204,251}, } ; static const unsigned char precomputed_core_multsntrup1277_n[precomputed_core_multsntrup1277_NUM][crypto_core_INPUTBYTES] = { {37,61,180,212,67,200,103,2,65,64,127,104,35,107,140,158,75,150,162,228,205,131,94,17,98,126,104,229,131,95,252,104,22,43,144,152,234,142,187,168,156,179,187,192,169,45,163,167,108,22,50,19,35,85,191,6,191,54,121,142,241,106,122,7,183,160,189,109,243,132,2,246,127,52,97,49,38,69,86,17,241,34,142,206,11,65,175,150,33,62,239,127,149,136,16,19,18,181,47,243,8,83,118,41,176,140,65,110,58,170,149,163,5,114,3,4,41,171,155,189,182,240,48,119,58,104,91,49,53,252,201,176,207,2,212,15,224,250,241,149,147,95,168,131,137,212,242,65,177,21,94,139,137,12,107,102,32,99,71,142,215,150,248,178,12,247,115,148,104,200,21,242,201,114,172,148,238,17,51,127,228,19,168,141,81,45,53,235,71,19,38,139,90,168,161,21,87,116,184,62,176,46,56,135,120,68,85,93,181,168,77,65,136,43,176,168,199,113,246,248,84,164,2,232,95,230,89,227,31,137,52,176,67,216,182,205,249,92,127,14,72,192,236,109,112,12,241,246,152,68,83,98,178,117,63,33,88,12,175,185,189,68,192,93,17,169,26,223,83,21,121,145,242,140,216,72,210,161,105,152,159,78,143,64,92,18,106,55,204,89,66,169,239,179,222,65,25,162,225,155,235,93,25,6,148,200,38,212,95,239,3,8,56,128,137,156,24,125,20,218,102,67,215,174,246,122,31,222,181,123,17,38,90,68,55,223,125,220,111,26,198,251,68,13,46,161,228,186,113,238,2,201,28,248,92,194,107,75,46,6,86,188,192,246,116,18,27,191,239,162,21,143,155,168,252,80,115,70,138,137,22,129,190,134,248,161,165,233,238,141,102,59,205,249,115,248,25,213,36,201,47,83,163,154,128,128,170,239,220,110,50,107,196,71,136,133,96,25,33,80,72,16,200,228,36,87,240,185,189,8,144,29,188,140,43,8,86,212,91,180,147,149,79,197,207,46,13,232,236,134,138,156,60,8,85,171,136,248,202,175,135,82,254,225,29,177,185,17,203,237,212,194,180,105,96,68,253,47,189,76,115,235,81,144,178,254,106,173,108,156,104,181,223,138,55,79,86,97,238,234,192,156,254,5,161,96,220,209,79,36,169,104,103,249,67,96,76,86,178,147,68,89,60,58,45,87,10,4,45,182,152,247,184,39,70,227,140,87,99,171,162,33,24,211,207,188,95,151,23,6,238,43,24,149,244,12,148,145,208,90,45,44,253,29,48,230,10,118,74,229,198,113,70,200,224,123,116,138,54,91,181,220,180,165,86,131,255,243,157,124,84,82,150,247,81,249,0,88,130,71,152,219,113,57,12,57,46,2,210,197,4,119,209,125,172,250,210,21,5,105,245,17,113,39,88,238,196,169,109,234,60,180,253,87,121,129,91,210,176,83,223,120,92,217,119,49,220,210,110,59,124,181,234,244,84,102,80,19,213,135,11,6,129,217,153,77,154,136,66,101,117,215,166,133,239,48,29,89,61,141,221,212,237,148,113,206,169,9,13,169,126,88,170,230,195,170,150,68,242,45,189,18,253,49,169,123,186,3,194,116,200,81,53,225,216,41,113,244,213,8,241,95,231,252,204,107,96,146,225,200,10,108,160,138,154,97,110,9,131,127,231,81,43,183,33,29,104,132,59,15,190,60,208,206,38,104,58,50,213,196,20,223,105,190,172,85,178,51,216,109,219,150,107,141,30,35,203,159,76,68,94,165,82,26,252,17,32,219,169,40,87,145,199,103,100,149,209,118,15,148,236,196,72,242,49,225,150,73,10,226,202,114,79,192,249,0,140,223,255,51,219,113,91,89,112,13,252,27,201,66,227,195,60,85,44,134,116,177,218,104,204,184,177,26,153,122,229,183,166,23,138,166,223,132,80,165,250,99,174,184,122,46,201,174,2,247,182,201,39,181,223,3,255,37,86,221,150,102,150,6,162,1,54,222,227,252,242,205,222,224,36,141,36,35,216,243,123,103,157,208,208,200,139,89,175,180,229,37,193,211,13,87,254,18,177,204,86,0,118,228,107,4,3,139,151,85,78,203,245,47,159,28,69,74,158,239,129,178,232,45,118,0,86,63,205,23,196,220,109,148,147,108,173,139,73,26,52,12,60,161,229,135,77,198,193,193,174,172,253,222,247,109,138,200,102,57,245,111,64,192,70,196,104,104,139,116,172,152,158,231,2,154,42,44,112,226,125,108,152,100,188,32,33,156,21,71,195,141,146,142,88,154,170,106,99,189,77,111,47,66,153,220,122,174,26,20,118,206,68,235,218,247,182,55,230,174,153,205,223,211,15,22,252,94,46,16,166,68,137,68,241,169,10,11,180,165,219,112,215,83,20,140,239,132,122,194,187,165,227,74,135,220,205,120,238,239,210,182,232,66,88,180,191,123,142,136,146,114,183,140,23,77,222,247,23,192,168,145,237,65,78,245,248,52,2,208,169,234,35,233,26,192,46,3,201,68,242,55,121,195,150,210,51,242,250,110,3,121,172,204,63,145,148,110,126,115,218,205,147,202,190,235,47,248,120,98,55,25,55,24,223,158,107,79,110,20,81,36,241,65,100,39,145,237,121,34,12,9,87,147,7,43,214,74,237,169,124,82,16,136,42,226,138,181,107,112,243,100,213,74,13,172,86,103,24,149,18,12,182,180,209,21,202,191,175,96,117,160,117,178,6,95,30,5,148,74,244,2,202,238,210,53,228,76,75,139,192,80,222,36,116,81,89,132,66,140,98,199,218,202,20,60,58,216,249,130,11,70,91,241,137,27,171,103,29,149,250,252,82,28,128,255,30,31,156,249,68,103,233,46,155,130,75,205,90,101,112,20,158,76,104,33,88,206,165,125,230,227,30,187,44,103,162,239,104,12,181,91,187,248,51,127,196,86,137,203,109,68,113,228,212,50,222,147,108,237,95,111,226,42,227,101,169,182,163,197,153,53,150,211,54,68,160,33,135,36,7,202,236,213,73,51,90,137,20,189,144,178,244,99,167,26,197,35,160,21,23,216,246,67,135,97,202,90,157,119,47,195,96,85,236,103,88,163,167,74,96,127,23,193,118,201,196,21,149,42,210,181,2,87,16,122,137,2,82,63,222,17,125,150,62,216,139,138,41,108,148,230,174,210,10,137,142,27,99,188,128,5,141,123,68,245,87,225,251,21,198,163,159,220,6,99,246,105,247,151,200,84,82,15,143,203,89,38,153,79,67,84,131,189,192,81,182,68,162,48,114,230,135,240,64,91,100,102,130,222,214,27,250,18,205,125,249,219,252,45,49,159,234,60,82,39,72,96,188,223,13,202,160,28,204,196,57,240,149,160,153,180,55,183,247,197,230,254,135,157,46,5,248,185,33,36,92,100,163,176,243,97,117,169,41,16,15,214,226,54,129,22,40,35,91,226,104,174,81,51,120,104,118,225,79,145,208,237,72,210,221,159,231,9,29,213,97,244,115,33,195,216,201,135,23,66,249,85,61,31,35,248,47,57,150,168,93,197,233,119,239,12,184,63,186,97,224,198,125,224,178,69,99,122,253,0,55,179,181,141,132,18,226,39,164,197,243,98,207,63,47,103,220,206,183,83,109,4,254,48,123,236,185,67,102,249,136,170,198,239,95,145,106,185,113,26,153,78,97,183,11,41,246,118,93,124,240,243,204,170,18,126,176,21,37,200,81,248,197,240,240,99,129,200,200,83,95,110,94,37,238,16,170,160,123,196,124,180,254,30,45,152,34,197,41,102,29,244,225,22,160,221,1,240,102,65,198,30,159,145,154,27,122,58,42,95,161,139,7,212,238,0,179,179,251,129,172,248,67,34,178,204,115,6,203,15,238,233,28,75,102,153,231,75,175,68,89,154,60,178,20,175,48,118,232,149,214,98,188,113,103,193,200,187,233,232,247,18,210,52,47,137,229,195,91,226,90,193,179,200,229,242,234,159,33,14,183,138,7,130,95,210,10,164,113,76,250,150,231,138,57,85,17,213,92,18,104,140,241,232,150,172,49,80,49,10,113,203,61,108,36,108,143,149,54,124,83,159,123,247,160,158,251,75,243,36,156,86,104,35,151,236,18,110,92,221,64,3,164,99,14,56,115,106,29,18,136,45,47,80,4,152,130,5,207,108,149,166,27,221,38,3,250,182,0,224,88,36,190,241,115,228,190,24,104,120,2,55,82,239,72,27,83,130,217,179,9,35,75,61,68,74,85,229,85,138,164,57,21,173,229,37,201,26,207,177,122,197,47,135,64,100,236,130,175,29,78,14,170,48,200,151,205,90,91,187,166,111,59,142,3,61,9,250,47,115,240,58,134,207,167,25,209,222,86,252,137,172,189,110,17,143,178,86,72,28,15,225,55,43,52,144,132,202,182,54,199,12,220,156,249,2,107,86,150,17,222,76,153,71,51,203,148,64,158,251,201,254,97,76,236,45,158,153,149,77,18,157,90,224,83,209,79,193,118,165,100,54,231,143,201,124,246,203,92,213,199,59,166,206,89,60,121,188,106,162,170,145,144,74,67,245,91,155,80,186,165,41,206,31,79,75,188,11,76,127,37,168,145,104,111,1,87,93,163,236,157,10,132,187,253,47,118,102,172,151,214,139,222,60,91,139,29,13,22,103,71,159,179,7,154,129,167,101,30,116,124,30,52,108,83,144,249,239,109,57,142,213,13,178,179,224,18,59,116,252,221,192,186,123,254,27,15,122,254,195,201,255,52,76,162,129,252,155,232,124,228,105,159,243,129,132,84,34,180,63,254,149,30,86,188,175,244,187,147,81,35,189,76,60,64,122,147,185,252,68,193,114,191,85,114,105,95,104,87,167,253,176,49,32,209,184,23,223,235,72,89,206,202,226,103,190,103,0,37,238,197,106,151,124,33,121,170,118,61,247,93,185,190,115,144,178,229,78,152,124,1,108,247,227,17,163,88,60,134,111,163,81,74,86,212,202,126,250,186,141,50,64,82,60,205,180,238,87,191,222,182,123,214,84,120,232,165,244,46,10,244,137,127,66,71,10,219,18,129,76,97,14,116,246,13,14,111,182,17,223,71,204,158,62,69,160,188,175,160,91,87,162,39,212,233,138,127,241,110,146,199,141,224,132,185,80,178,220,211,141,173,75,38,195,69,140,130,54,126,35,255,251,216,224,73,60,135,166,43,192,93,0,8,64,54,219,116,237,231,195,248,199,212,223,242,97,101,174,250,188,55,162,211,237,178,130,152,64,34,31,127,73,126,28,162,2,65,82,216,223,161,189,89,86,220,31,45,224,249,218,21,88,15,199,248,25,80,90,166,160,104,192,88,12,101,240,237,124,65,255,250,152,22,61,14,105,122,61,64,128,141,40,158,134,98,78,203,91,111,53,40,179,147,153,117,251,80,121,236,69,23,89,23,16,58,44,144,23,182,195,33,188,217,40,137,220,107,17,116,167,145,206,35,29,251,132,38,112,106,123,141,21,79,48,255,50,65,242,172,27,143,138,93,213,59,238,243,171,208,103,48,110,14,54,161,192,236,134,43,121,89,21,168,244,239,206,220,187,212,56,23,142,152,8,174,241,162,58,115,80,55,91,253,142,166,253,171,206,66,19,84,193,231,239,8,19,138,3,184,45,237,119,122,162,170,128,79,132,50,85,80,116,243,138,193,20,64,2,17,218,6,207,35,65,222,132,122,130,72,15,148,180,86,237,96,37,173,172,67,44,165,247}, {187,23,17,92,213,173,37,184,147,89,90,126,142,58,90,249,108,205,12,48,89,132,139,189,181,169,119,73,191,238,88,209,65,179,224,196,143,250,193,49,240,71,62,25,21,118,43,14,164,129,94,108,86,138,46,22,202,152,221,198,32,158,159,211,123,145,31,130,98,246,19,207,126,237,52,163,127,24,56,227,152,238,230,66,226,12,233,124,197,119,240,165,226,110,190,51,59,238,2,19,189,244,43,157,34,145,180,89,146,123,73,49,9,101,129,251,123,70,180,204,60,8,108,165,136,45,150,128,93,33,245,109,219,211,22,188,191,16,106,190,112,48,161,91,123,112,166,70,35,90,113,201,150,156,111,21,242,185,142,90,185,56,138,125,233,244,46,170,164,138,197,120,123,18,25,118,31,230,113,70,235,181,209,130,249,132,105,54,118,128,113,12,157,217,26,13,164,50,57,212,86,76,216,213,159,180,189,116,159,147,190,247,51,85,88,123,7,185,6,31,214,68,128,228,149,137,89,10,41,240,153,157,4,143,106,249,119,112,55,64,40,237,184,143,238,150,181,49,239,40,204,122,217,185,154,49,69,152,92,149,17,90,209,31,43,169,169,6,32,40,195,33,147,55,225,246,250,100,81,82,184,255,30,253,32,58,83,87,1,18,22,236,205,49,207,133,161,172,232,103,56,109,118,158,77,130,245,74,204,248,86,180,65,194,109,67,252,252,251,81,240,82,252,31,154,22,57,219,90,255,187,254,193,153,203,102,116,18,209,176,74,36,185,32,51,30,96,147,133,110,94,67,123,203,110,5,121,121,80,29,89,208,200,63,187,247,118,249,129,64,121,92,154,7,96,204,124,126,33,124,238,125,124,24,93,68,19,232,251,5,202,55,130,68,65,95,215,32,16,7,61,62,127,3,65,44,101,160,221,116,237,23,140,70,16,140,145,199,122,16,145,104,220,133,139,55,14,192,224,242,93,247,126,142,150,106,29,93,232,254,113,238,42,175,196,31,235,30,162,247,33,135,253,109,252,176,43,9,114,55,77,225,68,148,161,223,255,100,94,48,83,244,222,168,38,148,206,187,102,43,88,9,20,248,186,204,19,130,21,126,167,140,19,72,237,15,210,8,223,186,190,242,202,48,139,204,39,166,50,188,238,145,23,252,186,196,162,199,157,254,141,60,32,61,80,159,215,25,14,12,4,16,103,101,65,252,220,212,39,130,84,157,178,203,126,181,194,83,229,250,181,63,125,185,71,58,228,185,118,97,190,214,82,203,172,128,87,162,165,87,126,145,60,10,241,4,19,207,217,83,169,44,52,134,29,231,240,99,177,249,255,106,150,113,254,252,169,91,66,153,124,133,224,100,155,38,148,248,189,86,191,250,19,205,187,126,181,210,122,26,147,95,12,86,213,129,68,95,232,105,92,36,100,160,99,188,125,225,213,137,253,227,226,169,141,102,8,119,219,222,176,130,91,198,35,54,204,228,34,214,147,251,152,34,250,121,110,111,62,64,144,234,86,163,251,143,123,90,68,72,135,255,234,147,92,152,199,79,137,88,136,172,118,39,222,91,109,129,119,204,239,69,59,36,216,21,103,24,138,5,73,8,189,200,87,107,178,148,214,223,83,28,44,45,67,107,100,218,133,48,56,108,158,188,192,187,243,233,30,240,239,188,42,10,48,168,228,106,236,37,64,103,244,22,173,8,83,188,195,116,119,119,209,139,84,41,128,43,221,37,202,216,190,86,68,92,217,125,242,239,231,148,152,109,125,98,32,143,120,140,93,225,195,214,99,224,35,1,164,76,33,173,162,19,140,194,81,38,36,235,58,109,158,126,255,90,49,248,150,101,47,146,239,240,236,143,79,229,94,247,232,138,41,150,136,26,103,156,230,104,40,86,149,117,5,25,43,232,120,186,59,204,18,142,91,85,235,93,232,160,15,45,44,186,114,246,185,176,145,180,146,88,172,20,36,77,207,131,106,77,23,51,104,74,31,100,100,116,32,23,222,47,66,249,32,30,17,219,147,4,189,157,23,101,16,212,243,83,253,183,94,114,188,148,254,97,13,80,224,178,119,218,183,169,254,44,98,224,199,134,103,26,4,227,10,191,67,82,157,10,18,196,237,42,224,58,235,95,167,185,152,162,189,2,80,235,121,66,234,31,173,67,142,58,88,132,31,14,224,109,39,26,36,62,230,150,2,109,188,53,83,5,162,129,66,238,200,81,82,59,185,190,171,102,45,141,52,78,66,50,50,35,71,203,115,129,185,229,140,146,96,164,210,248,238,84,148,215,15,115,114,14,56,34,212,28,74,118,113,198,118,92,234,134,163,115,190,83,142,71,124,7,60,196,59,204,2,82,233,100,232,62,101,169,110,192,110,79,26,80,60,67,99,208,24,135,135,157,131,7,243,167,147,64,211,197,156,202,203,64,254,49,145,138,46,111,248,202,26,76,234,11,52,12,103,178,64,140,240,135,3,178,134,196,240,97,15,250,31,176,141,188,133,186,198,48,13,74,174,204,237,51,157,64,189,75,155,215,164,82,212,253,166,155,205,132,243,74,23,15,60,252,149,61,110,157,201,10,158,20,162,198,179,135,5,15,188,253,45,77,115,88,234,233,146,223,146,49,203,88,30,140,27,38,21,97,217,169,123,159,10,85,57,80,208,108,11,225,106,15,159,192,174,22,34,167,63,192,235,133,240,69,226,105,228,241,66,123,145,143,119,90,191,9,206,125,162,246,112,77,85,17,139,147,116,70,131,25,218,101,241,98,148,152,57,184,43,71,126,91,232,30,19,227,62,184,144,102,247,203,85,187,58,194,206,13,198,138,151,93,99,64,149,114,113,219,102,11,190,186,229,159,84,136,139,206,228,236,147,58,173,228,202,199,233,180,82,233,244,26,94,217,167,245,24,21,140,151,12,33,149,41,132,230,133,79,217,173,117,38,134,88,64,58,165,215,57,171,86,91,142,188,96,43,93,136,234,197,13,25,163,119,56,191,150,199,73,95,213,16,241,188,211,100,155,242,227,5,83,19,77,18,19,164,6,192,51,91,128,152,167,35,113,76,240,2,195,151,211,65,115,59,149,183,169,102,197,62,112,110,238,187,100,1,124,197,187,119,47,123,234,187,93,53,57,46,83,140,194,231,55,121,206,125,171,79,158,232,114,177,246,249,6,103,224,173,46,226,255,159,30,16,99,185,67,50,181,127,138,30,14,61,135,187,242,113,139,132,43,69,180,198,16,172,102,164,214,118,92,247,232,208,194,193,126,138,68,135,197,141,118,93,254,32,8,237,42,44,234,144,139,72,117,220,64,197,233,74,170,168,85,179,160,250,160,130,80,83,131,51,126,107,164,246,221,85,182,184,151,224,243,34,217,148,245,38,255,127,232,10,45,154,103,167,84,88,39,60,120,116,230,207,252,152,227,253,164,245,110,228,53,158,110,250,3,40,212,207,38,30,124,174,172,20,93,201,16,197,8,103,52,49,229,88,165,130,92,180,242,229,103,5,161,74,228,218,215,144,0,251,188,45,84,198,65,170,249,207,6,169,222,50,67,5,226,112,183,63,72,135,136,56,202,36,235,120,164,96,157,195,219,229,25,212,176,115,66,128,43,221,92,64,170,15,140,148,75,154,142,229,144,106,104,183,123,9,29,191,68,121,122,114,235,177,161,193,34,165,154,48,35,231,186,135,240,200,207,76,1,0,117,210,59,165,142,1,92,240,201,158,190,226,186,50,118,52,57,24,164,17,120,254,185,239,247,104,55,221,72,238,168,41,37,27,102,209,107,69,119,172,145,209,75,1,232,113,223,92,203,198,25,128,231,112,233,8,183,70,167,101,132,145,250,152,140,151,199,25,69,248,174,45,73,221,240,71,224,19,112,69,113,250,239,11,84,103,81,154,147,160,189,213,233,90,100,126,56,143,9,117,118,222,118,68,83,120,4,175,151,108,229,104,185,174,178,70,104,189,165,195,123,82,239,245,134,113,250,198,54,83,204,132,202,70,167,77,168,163,95,152,94,72,140,252,217,244,225,246,172,212,20,100,240,7,226,177,45,152,26,3,234,225,215,172,206,100,217,56,39,168,6,97,82,200,36,231,145,210,78,3,30,117,45,237,173,78,138,243,63,145,162,105,81,43,75,165,36,68,125,54,60,118,228,126,109,16,246,246,158,162,73,112,15,109,30,126,199,174,92,210,46,42,187,168,244,224,238,238,208,151,44,61,253,106,22,214,110,32,96,179,236,205,78,35,193,230,239,253,41,31,148,193,87,136,223,169,104,95,164,130,110,45,161,252,85,90,175,222,167,25,119,99,92,47,44,5,109,238,91,113,49,169,84,45,194,67,215,221,84,128,48,11,118,150,149,102,240,40,241,254,126,94,251,57,237,59,106,46,18,216,213,1,131,127,150,69,163,65,185,43,104,133,149,15,74,252,218,194,178,135,221,161,211,234,185,197,65,11,203,85,1,171,198,25,135,14,205,113,97,90,222,254,100,194,236,230,208,76,128,217,157,105,216,5,219,220,245,24,139,53,126,221,80,136,73,165,47,7,58,198,246,110,248,37,249,134,7,239,189,244,170,77,52,130,250,28,43,193,98,56,75,239,214,144,95,178,37,191,141,192,2,156,66,129,90,240,229,138,134,77,193,203,75,137,169,142,150,233,50,55,162,155,91,44,140,124,18,91,170,99,233,218,26,177,1,146,171,228,28,131,210,51,231,63,82,238,214,7,255,74,27,74,187,126,175,88,34,150,51,52,17,32,178,158,9,170,163,224,114,195,188,216,106,23,212,144,17,37,180,42,138,91,62,14,217,219,8,114,183,223,147,70,225,13,255,74,212,169,246,181,171,129,60,1,70,38,33,107,126,122,25,171,6,106,181,124,190,151,191,24,20,213,23,108,30,112,14,196,61,51,177,168,173,146,97,11,82,245,127,168,91,74,97,183,54,251,102,219,110,33,60,92,200,77,49,216,115,149,195,159,96,37,237,106,172,180,192,120,53,169,116,171,164,92,238,75,245,231,99,64,187,213,219,127,207,44,152,247,133,142,226,48,71,94,50,136,169,70,206,220,75,123,222,102,198,81,46,37,132,166,50,193,2,200,79,71,178,28,115,9,208,216,123,243,213,119,29,42,80,172,56,87,253,231,73,4,27,248,97,229,186,83,190,170,76,211,210,159,240,247,32,130,225,36,21,191,87,44,86,243,74,203,187,183,205,157,18,158,255,73,205,6,126,89,14,203,253,51,233,35,43,69,66,69,253,183,115,204,246,140,57,11,192,82,143,179,50,63,162,242,156,28,142,104,99,41,155,204,6,241,178,211,78,151,128,22,176,219,75,182,41,234,97,155,193,22,121,185,150,112,146,241,3,85,66,134,6,170,3,29,108,218,83,55,39,111,215,209,51,89,200,124,191,40,180,69,42,227,227,182,100,229,45,59,61,216,104,209,109,221,230,104,129,88,10,109,87,223,209,111,64,100,35,101,14,170,202,140,239,10,43,233,223,188,255,250,73,15,114,214,97,181,195,233,5,241,190,122,135,15,61,18,147,254,61,33,219,56,219,113,199,252,23,116,171,247,235,146,42,96,227,203,41,117,185,144,165,99,178,28,171,13,224,157,46,134,135,128,97,163,207,249,150,106,8,248,32,165,176,15,153,78,24,212,254,212,187,147,8,88,23,101,182,17,6,190,185,220,193,236,230,119,123,153,121,189,104,139,111,65,181,236,123,20}, {176,4,63,113,14,156,172,11,87,39,58,145,58,142,177,182,71,80,189,171,116,184,138,157,140,169,76,82,212,34,116,239,194,241,143,181,62,56,166,232,7,82,189,82,115,66,8,2,194,225,224,45,247,34,250,217,58,67,182,187,14,5,139,79,33,5,181,183,223,148,119,80,26,173,155,44,50,137,229,171,144,177,195,30,49,96,72,132,205,224,119,131,175,24,197,237,4,102,6,1,98,193,201,240,60,146,225,183,235,118,55,112,51,113,137,81,229,184,133,38,50,174,65,170,55,198,91,158,178,251,14,196,89,177,194,38,225,212,154,5,242,136,17,99,116,187,198,20,192,201,221,188,158,255,127,177,37,8,238,222,84,87,103,45,229,42,247,10,249,8,179,218,229,159,8,1,88,129,88,201,42,67,115,243,151,237,50,36,165,206,249,35,98,131,101,65,217,61,34,194,139,127,239,119,178,166,226,28,188,230,221,149,238,122,107,42,144,177,109,166,126,136,252,106,22,2,195,250,223,18,224,91,36,110,201,194,175,140,162,144,9,29,104,245,195,227,185,254,106,42,218,242,2,146,9,175,30,140,143,32,116,114,86,99,75,61,10,213,81,159,237,66,172,246,48,92,217,78,96,176,16,121,10,162,61,245,183,198,82,129,166,50,25,7,35,6,16,232,16,239,89,114,239,114,69,222,247,155,116,52,203,71,184,148,161,136,14,20,190,211,126,130,61,153,251,213,19,183,11,140,221,25,47,149,10,189,49,131,75,39,109,231,164,245,199,15,48,100,194,126,69,26,235,107,235,248,125,157,75,215,162,182,157,181,219,193,191,154,254,96,89,115,20,93,168,128,216,124,156,198,143,11,199,235,4,24,105,135,143,60,225,211,255,49,199,11,64,122,167,125,3,80,77,65,149,53,158,177,196,193,28,71,155,185,83,51,120,138,22,132,99,213,250,2,169,190,21,69,178,218,226,246,188,197,212,130,48,179,93,47,15,68,113,81,216,223,219,10,196,20,163,131,5,21,57,105,42,145,16,253,207,184,90,122,115,148,15,44,167,78,237,51,218,100,67,122,54,205,141,156,179,103,206,197,231,47,236,90,234,170,156,3,68,88,168,240,88,44,209,20,113,12,185,189,41,31,27,237,64,124,28,210,6,121,143,73,148,41,211,174,230,34,203,27,94,76,106,104,123,239,146,49,191,17,218,32,23,21,228,45,2,169,224,180,52,251,144,208,153,154,93,98,158,221,137,42,180,235,218,203,71,70,25,183,7,58,169,200,43,225,132,192,23,53,74,139,230,233,12,111,130,12,151,242,89,105,172,47,40,203,91,25,230,118,8,204,116,228,218,55,215,78,227,163,236,126,92,32,212,105,178,103,233,59,130,143,4,230,153,65,51,48,212,219,173,122,241,35,238,32,55,59,131,32,181,92,10,90,130,12,255,169,88,147,33,37,173,170,93,236,238,14,244,163,211,64,12,244,93,9,59,11,29,93,113,79,101,78,244,235,236,28,231,7,44,37,119,1,191,75,23,72,46,229,18,127,174,154,201,249,49,208,69,198,132,249,191,37,218,106,28,251,214,156,2,141,153,140,237,107,126,87,131,244,113,186,163,83,43,202,197,32,122,107,95,30,9,244,171,113,86,119,166,154,75,229,14,46,123,175,208,213,166,33,108,8,10,108,17,221,70,104,75,254,191,250,116,165,96,147,196,82,197,171,156,198,48,180,72,228,4,180,70,152,105,150,153,223,221,3,254,207,144,35,243,245,52,79,100,182,182,138,46,192,32,33,25,147,50,9,254,34,65,75,227,70,208,19,53,144,99,232,175,74,234,49,37,134,232,43,239,45,160,175,29,95,235,97,202,81,22,134,162,134,244,222,138,120,167,194,175,128,57,152,152,142,37,100,57,28,102,200,138,83,46,49,2,161,54,67,107,145,135,223,82,101,168,39,110,14,50,0,66,238,253,147,74,102,31,216,182,75,48,148,94,223,97,95,21,190,45,234,52,168,189,67,130,64,158,42,170,250,116,33,154,48,214,222,60,66,86,47,143,35,42,248,13,119,156,177,230,127,13,40,191,85,158,128,62,49,153,130,73,29,128,30,64,106,227,62,253,13,172,184,21,52,56,18,55,241,64,196,249,248,246,180,181,3,224,114,234,213,65,254,69,108,4,69,162,201,197,20,172,136,86,10,219,99,18,216,186,28,188,30,97,23,128,168,193,181,238,209,164,5,195,55,221,199,74,173,124,75,230,13,146,84,38,103,101,95,89,145,20,132,233,58,236,30,81,30,48,75,86,63,200,111,69,26,220,33,73,105,164,182,180,28,194,234,228,131,41,104,26,67,205,96,99,225,253,91,196,225,253,44,98,110,252,159,107,180,202,45,156,152,108,72,183,127,129,107,54,217,94,113,103,26,74,249,69,243,77,51,39,182,175,124,26,43,182,146,60,17,183,60,82,100,25,107,40,93,53,245,85,6,9,246,126,161,106,223,68,12,202,88,208,90,0,106,53,80,134,198,199,83,209,22,206,168,204,219,99,243,187,245,79,81,92,246,34,146,18,252,144,196,149,77,131,175,40,113,179,188,216,6,128,38,216,176,214,91,173,100,160,109,73,22,18,26,12,61,247,216,117,26,217,148,175,194,70,103,44,227,159,84,118,211,214,236,202,242,155,59,222,214,250,205,59,198,151,81,74,174,40,5,26,85,15,37,209,218,2,95,3,1,151,106,55,237,224,3,216,241,95,46,24,5,72,105,104,175,198,227,169,196,166,147,196,1,146,154,129,53,109,243,189,124,248,142,16,197,226,200,113,247,184,224,170,185,241,34,149,199,100,138,128,90,151,44,67,66,3,168,154,171,214,43,60,139,106,54,135,87,34,121,2,177,35,110,20,18,163,91,46,208,120,138,183,79,108,160,237,170,241,213,236,102,133,129,240,55,21,255,141,83,235,85,227,151,78,134,10,205,95,167,164,22,35,214,211,133,196,106,118,158,167,206,72,123,22,205,226,120,64,2,188,121,113,8,185,15,160,12,101,80,210,90,205,239,149,23,180,113,171,212,137,210,211,246,87,227,221,62,116,212,105,188,90,27,34,196,194,67,214,187,172,178,212,136,164,128,36,15,33,120,14,76,254,76,250,110,185,37,44,11,203,108,242,156,132,105,251,17,72,211,236,241,162,66,201,252,172,23,92,26,5,220,89,160,142,7,81,121,188,35,19,17,248,209,75,130,231,114,164,64,108,154,212,171,69,70,76,1,241,235,234,166,6,68,207,56,211,73,4,140,135,176,75,110,140,132,77,221,238,68,98,81,125,21,76,75,9,207,154,112,30,119,91,77,125,214,72,50,119,67,167,8,128,166,217,236,190,33,235,152,107,205,162,138,40,28,7,53,63,232,29,209,77,215,97,228,132,119,68,129,117,112,247,218,26,21,204,226,237,171,50,91,60,222,119,235,174,172,220,96,175,10,228,122,204,202,175,19,64,41,157,55,132,115,34,133,57,84,10,123,229,102,227,78,157,13,234,211,119,114,194,107,79,248,86,224,32,233,102,153,224,161,76,205,235,234,183,9,88,158,192,229,246,115,235,142,248,162,103,238,10,162,88,220,71,185,193,138,1,37,154,174,149,247,192,54,100,177,27,44,33,72,123,120,75,111,202,137,222,250,12,254,233,156,241,66,160,255,130,75,145,87,207,105,151,133,34,199,241,157,176,82,204,155,80,184,178,81,92,78,121,245,90,193,10,152,199,163,63,10,233,234,119,22,159,64,124,82,221,154,46,235,186,192,182,219,58,117,135,23,187,55,57,227,208,218,123,240,190,80,59,221,203,203,18,135,87,3,129,3,37,207,112,3,198,17,44,104,254,200,7,67,233,208,166,74,85,213,182,76,228,1,168,52,151,93,153,169,69,89,63,144,248,132,176,59,243,90,135,66,8,217,115,13,83,227,27,37,79,148,165,227,176,167,111,200,68,64,133,234,216,1,188,244,30,219,248,236,227,245,126,122,42,3,70,75,113,89,133,241,27,82,222,199,224,76,170,87,140,93,215,198,74,88,134,76,177,29,206,116,119,93,7,204,61,218,114,89,12,43,14,251,196,130,223,196,242,234,100,12,132,160,141,139,179,115,148,84,40,29,201,114,138,58,225,76,167,106,113,141,119,75,103,151,253,199,146,182,159,160,16,241,229,232,147,53,157,243,106,69,213,166,26,241,98,112,77,194,48,241,75,57,232,15,20,201,179,22,184,86,107,247,163,42,79,248,215,255,60,40,27,118,158,19,217,203,122,96,131,5,111,103,243,242,205,255,46,221,179,192,114,65,53,123,83,177,148,196,215,150,238,239,147,50,250,234,43,144,236,47,204,188,8,247,247,61,154,122,180,176,89,239,28,63,80,179,13,187,233,66,121,182,179,81,150,34,142,110,134,131,51,40,73,48,176,156,239,73,165,164,248,123,204,223,129,36,49,242,237,189,236,130,1,4,190,2,252,14,10,89,54,160,221,249,250,242,117,248,70,5,55,104,13,70,211,230,65,251,250,42,212,195,84,200,38,113,55,100,222,55,103,165,183,229,208,190,160,131,222,134,145,248,125,133,43,157,233,59,243,51,92,97,67,52,34,142,114,211,172,205,82,155,236,67,141,64,94,9,107,127,42,72,57,38,143,238,182,245,185,134,136,102,0,240,71,58,7,31,4,78,224,13,74,15,213,20,77,57,149,226,50,234,238,0,187,138,156,59,125,81,137,62,171,83,35,99,202,247,42,130,24,17,161,111,138,214,253,178,9,5,40,56,87,105,151,42,243,68,78,199,223,51,207,6,254,200,227,105,247,243,253,5,26,180,185,186,202,33,162,60,175,95,252,12,33,31,173,171,63,181,14,117,25,82,205,75,115,130,243,197,46,252,242,133,66,73,154,62,235,154,235,6,210,208,69,46,47,15,20,83,185,122,124,74,109,137,55,172,2,218,117,202,233,208,217,21,75,113,30,98,124,250,65,15,176,151,109,151,124,47,8,9,26,200,29,29,228,36,93,96,224,71,159,101,215,158,98,63,16,157,63,158,145,179,206,131,66,98,213,10,253,60,87,191,29,205,16,224,178,85,239,26,98,217,201,199,84,205,208,210,11,179,218,197,87,15,45,251,58,121,202,198,197,124,207,52,133,127,37,99,72,126,157,181,36,18,63,202,168,27,33,84,226,160,139,148,215,122,19,104,207,213,236,185,183,77,34,233,5,164,184,105,232,106,155,117,100,190,240,96,163,90,95,35,4,182,32,229,196,235,136,227,85,120,137,210,149,130,176,64,124,42,142,174,237,60,157,79,122,114,107,227,214,13,56,34,3,165,179,56,75,234,244,17,215,226,238,85,140,220,24,117,200,96,46,64,22,224,81,228,252,104,161,54,137,17,214,10,175,189,226,169,31,27,79,232,171,25,11,104,91,116,253,12,92,163,101,255,190,233,112,86,74,205,240,67,90,14,157,210,129,77,4,110,81,41,145,0,34,237,235,144,199,197,69,27,14,222,175,124,225,38,140,162,196,103,106,18,81,5,30,86,142,94,12,1,15,166,14,9,110,13,90,156,162,186,72,135,77,99,161,171,235,203,70,41,76,5,238,14,242,140,220,221,176,71,10,134,88,79,86,98,135,166,64,87,91,216,213,55,83,218,215,171,48,158,243,55,3,220,196,182,107,240,159,40,139,230,3,21,192,134,28,36,241,64,211,190,96,180}, {252,222,140,28,28,230,30,239,156,156,207,37,214,242,193,183,72,12,220,173,138,32,222,176,107,167,19,33,181,152,93,84,187,158,117,192,78,113,143,109,95,122,197,13,98,69,186,95,156,190,191,50,131,244,105,66,7,217,209,67,231,182,129,159,255,92,26,114,67,90,167,131,76,139,170,203,19,54,213,109,71,86,153,169,160,142,61,202,179,139,20,141,11,164,204,46,205,127,152,9,236,18,180,26,147,246,200,209,17,132,142,47,235,151,47,160,211,70,10,237,188,149,96,101,131,54,212,240,248,109,138,255,224,97,217,15,252,192,207,195,144,215,7,7,94,12,182,8,107,11,200,190,246,157,249,184,197,252,154,113,139,46,59,108,194,227,186,74,48,8,51,124,254,182,81,203,84,128,204,146,172,254,83,255,213,107,217,214,105,177,24,47,230,92,190,109,144,122,255,19,26,232,218,57,124,136,227,69,191,8,112,146,61,212,193,115,107,157,54,122,71,36,94,164,174,190,86,174,8,234,150,181,213,18,101,17,131,214,27,106,201,238,64,75,172,93,215,231,200,203,148,22,92,254,252,194,216,63,169,229,70,59,90,254,29,144,224,90,105,26,23,95,91,210,3,168,27,101,133,41,211,69,115,215,31,224,116,190,101,31,58,49,236,212,185,132,90,165,106,189,214,30,90,126,80,142,159,122,232,209,244,29,163,125,73,100,139,108,4,214,85,141,18,95,137,53,79,243,174,63,121,23,192,252,153,156,35,34,82,3,81,248,21,66,40,19,240,73,110,16,54,182,36,164,212,107,157,33,182,39,63,224,196,134,12,239,253,218,126,137,202,164,243,241,212,128,129,13,58,255,134,16,64,220,199,176,161,205,232,32,31,249,158,212,157,113,166,56,33,19,212,111,173,23,141,116,91,130,101,16,165,45,138,22,99,119,122,73,47,202,156,8,225,136,189,166,249,254,249,98,56,187,209,35,74,85,101,87,19,229,149,250,66,114,102,71,100,13,84,76,216,88,135,190,220,70,218,65,86,156,161,156,193,9,131,142,157,188,188,109,201,47,218,30,58,71,188,88,118,171,221,236,251,99,189,196,119,13,207,213,206,119,160,94,139,59,253,237,164,61,208,130,34,180,84,117,25,230,180,54,152,153,127,15,204,85,30,55,59,82,128,29,242,50,12,189,182,167,246,183,175,5,57,14,111,225,247,175,117,193,82,55,134,165,38,197,113,81,197,10,162,61,199,59,174,212,217,160,113,116,49,73,223,15,80,219,10,239,56,239,133,172,156,188,186,5,145,102,175,83,99,239,17,3,10,17,152,151,229,53,175,105,21,241,126,39,87,122,48,152,83,204,252,251,24,3,50,147,251,90,62,43,245,79,71,210,210,121,170,122,8,71,48,131,201,148,12,227,39,144,212,129,128,63,168,234,223,234,203,139,25,35,97,73,1,89,39,242,121,140,99,53,216,93,15,141,116,74,229,141,203,48,242,228,159,14,123,46,82,78,166,227,183,174,48,200,124,42,22,159,157,114,115,63,6,48,134,84,157,209,187,143,141,43,221,96,13,61,173,218,227,239,10,46,19,248,150,4,108,10,5,215,39,177,81,202,49,121,162,143,78,73,96,32,81,128,206,126,108,130,243,251,135,159,124,200,226,232,151,149,96,156,25,149,235,79,244,53,209,38,2,55,100,245,102,124,188,232,179,242,114,130,82,59,240,121,154,158,236,30,188,163,88,175,45,133,64,130,111,211,110,130,28,122,41,102,214,140,173,1,224,93,30,93,141,17,185,75,175,42,13,149,159,26,27,106,50,146,161,195,133,107,255,127,102,73,103,135,81,147,106,169,150,208,193,238,30,7,254,175,135,192,24,218,24,67,25,26,8,35,164,156,182,193,255,111,146,184,204,119,105,139,14,70,76,159,199,237,71,105,160,75,32,91,179,140,228,230,142,192,18,187,222,252,233,235,26,229,186,211,179,147,76,72,57,168,183,205,33,135,75,182,16,146,169,152,222,130,220,70,38,7,213,142,96,115,187,90,214,7,85,180,137,101,100,212,203,125,2,106,146,155,4,236,46,244,144,86,107,111,78,98,194,213,63,86,83,255,207,180,174,206,235,173,11,93,116,111,128,130,243,122,42,50,68,143,40,249,231,7,99,165,180,18,14,12,128,132,30,190,52,167,152,193,36,227,63,18,33,8,0,122,140,129,193,192,159,229,94,37,251,172,220,82,234,192,79,5,83,244,127,131,150,11,223,232,38,95,4,158,172,4,178,254,201,56,34,123,128,117,89,58,216,94,91,168,191,139,244,123,19,65,246,91,244,66,79,195,145,115,226,124,167,84,17,130,46,142,189,167,251,236,84,127,13,161,190,211,122,209,187,71,134,151,3,225,246,2,159,6,166,229,17,182,16,214,38,176,52,135,10,230,0,145,6,23,196,58,161,170,80,210,253,44,91,127,7,248,139,163,165,69,208,30,232,107,158,86,54,10,49,92,89,175,226,56,92,23,50,0,72,223,207,238,185,75,33,127,122,106,27,220,215,225,43,225,168,209,184,136,246,255,211,253,148,116,83,89,14,200,219,238,25,197,48,159,5,174,78,206,82,13,32,133,171,23,81,149,125,160,59,147,176,86,41,25,45,133,149,44,41,89,114,156,98,19,11,244,222,93,166,139,223,99,190,121,156,239,143,125,201,31,192,108,163,231,110,240,35,100,152,155,148,92,54,187,9,193,196,222,9,154,6,30,44,57,179,116,70,112,210,233,225,48,110,127,185,179,198,160,58,95,182,39,39,221,11,85,153,26,53,192,143,19,219,163,200,220,11,71,121,166,58,76,64,225,145,142,147,103,115,35,46,58,73,228,7,98,54,203,53,40,29,103,18,7,185,213,104,188,44,156,156,9,191,224,151,8,21,168,82,217,64,5,73,107,208,34,72,241,184,194,87,7,93,33,198,48,88,88,134,190,190,152,237,154,232,156,184,150,37,78,97,189,155,139,80,227,201,130,222,235,251,239,117,217,35,59,250,81,252,203,122,103,45,97,194,157,183,132,255,191,238,184,67,53,190,198,202,211,176,73,117,212,166,222,222,56,142,159,194,177,245,79,90,99,205,91,146,191,123,53,246,66,53,155,46,36,251,54,222,174,30,5,182,225,232,131,156,36,209,135,44,21,82,178,142,209,151,45,145,127,130,134,26,128,12,108,235,142,66,236,92,153,31,175,42,55,89,130,194,159,161,110,151,165,255,100,118,67,56,194,100,11,55,224,36,64,64,83,220,145,49,50,127,37,107,134,238,180,20,98,175,157,35,24,206,0,149,194,133,140,237,85,206,35,88,254,238,69,39,42,217,64,214,215,7,86,215,112,16,10,113,18,76,50,64,174,141,210,231,222,48,248,114,36,46,146,20,57,78,170,209,182,129,76,245,46,68,101,152,223,158,60,186,211,86,122,41,236,166,150,74,8,252,6,253,2,56,117,38,178,223,67,69,248,89,23,100,165,110,58,155,108,251,164,100,177,220,68,248,189,29,11,223,95,6,138,242,32,18,83,0,13,162,99,146,1,87,221,221,204,211,101,88,156,130,59,121,43,107,128,74,81,106,16,159,149,233,115,53,83,212,255,215,89,64,59,55,186,152,247,187,163,35,169,143,175,174,239,59,179,153,3,233,220,195,206,93,250,149,50,10,141,158,187,68,1,189,89,60,221,66,150,214,246,172,126,173,44,150,253,53,233,206,188,208,226,59,94,26,188,37,74,13,94,142,81,2,112,228,95,242,115,86,111,228,142,27,178,30,189,177,243,160,249,169,4,184,7,45,134,177,26,10,234,175,135,20,81,40,221,76,3,237,194,31,183,168,68,154,69,123,231,160,206,199,169,29,114,81,93,72,181,126,71,135,247,163,39,44,113,72,51,46,118,57,84,47,94,119,123,181,81,44,207,96,90,197,29,213,124,159,69,72,21,229,252,247,202,242,50,76,1,102,154,249,134,58,19,107,55,94,42,149,63,96,215,234,225,115,60,112,208,25,231,84,61,116,21,182,175,30,241,219,213,91,122,48,13,192,214,123,244,79,88,24,254,158,24,189,173,105,213,228,164,100,112,10,9,249,198,67,14,169,152,160,178,207,254,166,192,20,126,40,140,57,212,189,241,51,27,19,122,170,20,255,110,40,97,171,23,87,103,102,57,73,164,188,224,141,56,99,211,23,57,49,226,131,169,141,172,32,219,238,198,148,28,127,53,45,33,32,96,236,172,203,71,155,146,136,254,189,200,223,59,170,152,155,68,144,168,56,153,199,176,129,187,241,177,148,194,91,100,128,202,208,89,47,38,78,175,20,218,187,214,100,165,109,153,53,174,26,142,172,67,248,121,175,207,138,2,45,74,57,111,200,102,90,149,102,199,92,72,186,79,62,120,58,185,13,62,67,65,89,8,230,63,137,37,157,5,68,221,29,175,131,15,71,203,188,168,41,196,16,71,139,9,223,118,24,125,191,138,223,219,141,105,250,60,131,56,109,55,151,32,238,97,138,61,151,66,19,182,90,241,104,219,121,56,202,84,42,107,0,13,123,170,100,179,229,21,82,34,47,120,72,198,160,223,189,147,7,139,81,98,253,202,54,255,64,13,109,101,234,109,189,253,81,100,226,173,196,128,206,151,229,190,66,53,144,138,37,161,125,254,212,32,138,125,253,24,170,202,83,241,239,51,44,209,182,138,175,87,148,59,240,107,13,61,152,172,11,31,188,220,198,170,1,224,102,146,96,240,215,186,97,178,158,37,132,99,174,153,186,178,124,209,112,229,109,14,220,200,245,0,163,110,171,54,71,183,10,174,183,203,96,30,77,112,66,12,73,26,3,73,249,183,15,129,203,117,176,61,93,94,129,83,174,218,63,143,207,15,197,204,152,72,213,93,216,161,210,116,228,177,153,225,242,254,200,67,32,9,195,102,12,157,150,104,33,104,103,109,80,100,89,231,33,196,116,125,164,209,104,22,204,63,77,105,99,204,48,134,133,169,102,144,96,177,47,189,181,225,126,103,68,247,218,162,59,245,248,179,18,101,78,192,119,244,157,117,46,133,108,31,10,195,191,247,117,71,122,130,234,121,117,251,92,222,51,43,192,163,242,254,194,131,103,203,106,252,191,46,91,12,57,246,107,203,79,80,232,6,244,54,219,37,245,22,254,137,42,31,23,242,78,130,211,179,86,188,73,0,61,144,55,160,13,201,67,220,212,6,251,146,96,172,189,232,31,176,197,222,96,134,212,0,64,19,16,79,93,208,19,185,33,131,171,150,221,50,46,121,116,125,19,233,145,33,168,215,161,95,23,79,176,76,76,226,153,8,126,245,166,29,148,113,64,168,52,220,64,221,149,185,71,34,32,40,147,111,182,123,244,28,120,188,244,139,188,75,144,203,186,4,249,82,27,57,40,69,179,217,199,165,147,137,223,149,21,65,143,12,76,88,190,61,202,26,231,163,217,146,184,126,167,69,12,116,27,74,13,96,116,19,252,253,226,90,93,96,111,248,110,86,22,135,203,149,226,209,242,56,189,186,17,72,149,162,104,249,250,38,235,118,74,182,47,96,226,144,250,7,148,179,225,33,157,112,37,129,64,212,10,75,61,255,166,74,60,72,213,59,237,153,199,51,139,26,158,195,103,218,243,36,172,185,100,228,16,249,75,233,54,33,170,125,128,126,232,113,87,73,196,182,53,21,48,209,60,170,202,219}, } ; static const unsigned char precomputed_core_multsntrup1277_k[precomputed_core_multsntrup1277_NUM][crypto_core_KEYBYTES] = { {-1,1,1,0,-1,0,0,-1,1,0,0,-1,1,-1,0,1,1,0,-1,1,-1,1,0,1,0,0,0,0,1,0,0,0,0,-1,1,1,0,-1,-1,0,0,1,0,1,0,1,1,0,1,-1,0,0,0,-1,0,-1,-1,1,0,0,1,0,1,-1,-1,0,-1,-1,1,-1,-1,0,0,0,0,0,0,1,-1,-1,0,0,0,1,-1,-1,0,0,1,0,1,0,0,1,0,-1,0,1,-1,0,0,-1,1,0,1,-1,0,1,1,0,-1,0,1,0,1,0,1,0,-1,1,0,0,-1,0,1,0,0,0,0,1,1,0,-1,1,0,0,0,0,1,0,0,0,0,0,-1,1,1,1,-1,1,1,0,1,-1,0,0,1,0,1,0,-1,1,-1,-1,-1,0,1,0,0,1,-1,-1,0,-1,-1,0,1,0,0,-1,1,-1,-1,0,0,1,0,0,-1,0,0,0,-1,1,1,-1,1,1,0,1,1,0,-1,1,0,1,-1,0,0,1,-1,1,1,0,-1,-1,1,0,0,1,1,0,0,-1,0,0,1,0,-1,1,-1,0,0,1,0,-1,0,0,-1,1,0,1,1,0,0,0,-1,1,-1,0,1,0,0,0,0,1,0,0,0,0,0,-1,-1,0,0,0,-1,1,0,-1,-1,-1,0,0,1,0,0,0,-1,0,1,0,1,-1,1,-1,0,0,-1,0,-1,0,1,-1,0,0,0,0,1,-1,0,0,0,-1,-1,0,0,0,-1,1,1,0,-1,-1,0,-1,0,1,-1,0,1,-1,0,0,1,-1,0,1,0,0,0,0,-1,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,-1,0,1,0,1,-1,-1,0,0,0,0,1,0,-1,0,0,1,1,0,1,-1,-1,0,1,-1,1,0,-1,1,0,0,0,0,0,1,0,-1,0,1,0,0,0,0,0,0,0,0,-1,-1,0,-1,1,0,-1,0,1,0,1,0,1,-1,1,-1,0,-1,0,0,0,1,0,0,1,0,-1,-1,0,1,-1,0,1,0,0,0,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,0,0,0,-1,1,1,1,1,0,0,0,0,1,1,-1,-1,1,-1,0,0,0,1,-1,0,1,1,0,0,0,-1,-1,0,-1,0,0,-1,1,1,1,1,0,0,-1,0,0,0,-1,1,1,-1,1,1,0,1,0,0,-1,-1,0,-1,0,1,-1,1,0,1,-1,1,-1,0,0,0,1,0,0,1,-1,0,-1,0,0,0,-1,0,-1,0,-1,0,1,0,1,1,-1,-1,0,-1,1,-1,-1,-1,0,-1,1,-1,-1,0,-1,0,1,0,0,1,0,1,0,0,-1,-1,0,0,0,1,0,1,1,1,-1,0,-1,-1,1,1,0,1,0,0,1,0,1,1,-1,0,1,-1,1,0,0,0,1,0,-1,0,-1,0,-1,0,-1,0,0,1,0,0,0,0,-1,1,1,1,1,0,1,0,0,0,-1,-1,0,-1,0,0,0,1,0,-1,1,0,-1,0,-1,-1,1,0,1,0,0,1,-1,1,-1,-1,0,0,0,0,0,0,0,1,1,0,0,1,-1,1,0,1,0,-1,0,-1,-1,0,0,1,1,0,-1,1,-1,0,-1,1,1,0,0,0,-1,0,-1,-1,1,0,-1,1,0,1,0,-1,-1,-1,0,-1,1,1,1,0,1,-1,0,0,0,0,-1,0,0,1,1,0,0,1,0,-1,-1,1,1,1,0,-1,0,1,0,0,1,-1,0,0,1,-1,0,0,-1,0,0,0,0,1,-1,0,0,0,1,0,1,0,-1,0,0,0,-1,0,-1,1,0,-1,1,0,1,-1,0,1,-1,0,1,0,1,1,0,0,0,0,-1,0,-1,1,0,0,-1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,0,-1,0,-1,-1,1,0,0,-1,0,0,-1,0,-1,-1,1,1,0,1,1,0,1,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,-1,0,0,-1,-1,0,1,0,0,0,1,0,0,-1,0,0,0,-1,-1,0,1,1,0,-1,-1,1,-1,0,1,-1,0,-1,1,0,1,0,0,1,0,1,-1,0,-1,-1,0,1,0,0,1,0,0,-1,0,0,0,0,-1,1,0,0,0,1,1,0,0,0,1,-1,-1,0,0,0,0,0,0,-1,0,0,1,1,0,0,0,1,0,0,0,1,0,1,0,-1,0,0,0,0,0,0,-1,-1,0,-1,0,0,0,0,-1,0,0,-1,0,0,0,0,0,-1,0,1,1,1,-1,0,-1,1,1,1,0,1,-1,-1,0,1,1,1,0,1,0,0,-1,0,0,0,1,1,0,0,0,0,0,-1,0,0,1,0,-1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,-1,0,0,-1,-1,0,0,1,0,-1,-1,0,0,0,0,0,-1,1,1,-1,0,1,1,-1,-1,0,0,1,1,0,-1,-1,-1,0,0,-1,-1,-1,-1,1,-1,-1,0,0,0,0,0,-1,-1,-1,0,-1,0,0,-1,0,0,0,1,0,0,-1,0,-1,0,0,0,1,1,-1,0,0,-1,1,-1,0,1,-1,-1,-1,1,0,0,-1,-1,0,-1,-1,0,0,-1,0,0,-1,1,0,-1,1,1,0,1,0,-1,1,0,0,0,-1,0,0,-1,-1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,-1,-1,0,1,1,0,0,1,0,1,1,-1,1,0,1,-1,-1,-1,0,1,0,1,-1,1,1,0,0,1,0,1,1,-1,-1,1,1,-1,-1,1,1,0,0,1,0,0,0,-1,-1,0,1,0,0,1,-1,-1,1,0,1,0,-1,1,-1,0,0,0,1,0,-1,0,0,0,1,0,0,-1,1,-1,1,-1,0,-1,0,-1,0,1,0,1,0,1,0,0,0,0,0,1,-1,0,1,0,1,0,0,-1,-1,-1,0,-1,0,-1,-1,0,1,-1,-1,1,0,0,-1,0,0,1,0,0,-1,-1,0,0,0,0,-1,0,-1,-1,1,0,0,0,0,0,1,0,0}, {0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,1,-1,0,0,1,0,-1,0,0,-1,0,0,0,1,1,1,-1,-1,0,1,0,1,0,1,-1,0,0,0,-1,0,0,0,1,0,1,0,0,0,-1,0,1,-1,1,-1,0,0,0,0,0,0,0,0,-1,1,-1,0,0,0,-1,0,0,-1,0,-1,0,1,1,-1,-1,-1,-1,1,-1,1,-1,1,0,0,0,-1,0,0,0,0,0,0,0,0,1,0,1,-1,1,1,-1,-1,1,0,0,0,-1,-1,1,-1,1,-1,1,0,1,-1,1,0,-1,-1,1,0,-1,-1,0,-1,-1,0,1,-1,0,0,-1,1,-1,0,0,-1,0,1,0,1,0,0,0,-1,-1,1,0,0,-1,0,-1,0,0,0,0,1,1,0,-1,-1,0,0,-1,-1,0,-1,-1,-1,1,1,1,-1,1,0,0,1,0,-1,0,-1,0,0,0,1,1,-1,-1,-1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,-1,0,0,1,0,0,-1,-1,-1,0,-1,0,1,-1,1,-1,-1,-1,0,1,-1,-1,1,1,-1,1,0,0,0,1,-1,1,0,-1,1,1,0,-1,0,-1,0,0,1,0,1,0,0,-1,0,0,-1,-1,1,0,0,-1,0,0,1,-1,0,0,1,1,1,-1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,-1,1,-1,1,-1,1,1,-1,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,-1,1,1,1,1,-1,1,0,0,0,0,-1,1,0,1,1,0,0,1,0,-1,0,-1,0,1,-1,1,0,1,0,1,0,-1,1,0,0,1,0,0,1,-1,0,0,0,0,1,-1,-1,0,0,-1,0,-1,0,-1,1,-1,0,0,0,0,0,1,0,1,1,0,1,-1,-1,0,1,0,0,0,0,0,0,1,0,0,0,0,-1,1,0,1,0,1,-1,0,0,0,1,0,1,1,0,1,-1,0,0,0,-1,1,-1,-1,0,-1,1,1,0,0,1,0,0,1,-1,0,0,-1,-1,0,0,1,1,-1,-1,0,-1,-1,0,1,0,1,-1,0,-1,0,0,0,-1,1,1,-1,0,-1,-1,1,0,0,1,-1,-1,0,1,1,1,0,-1,-1,0,0,1,1,1,1,0,-1,-1,0,0,0,0,0,-1,0,0,1,0,1,-1,1,-1,0,0,-1,-1,0,-1,0,-1,0,1,1,0,0,0,0,0,-1,-1,0,0,0,1,0,0,1,0,0,0,0,1,-1,0,0,-1,0,-1,0,1,1,0,0,-1,-1,1,-1,0,1,-1,0,-1,0,1,-1,1,-1,0,0,1,0,-1,1,0,0,0,-1,-1,0,0,1,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,-1,1,-1,0,-1,0,1,0,-1,0,-1,-1,0,0,1,-1,0,0,0,-1,0,1,-1,-1,1,0,0,-1,0,-1,1,0,-1,-1,1,0,-1,-1,0,-1,1,0,0,0,0,0,0,-1,1,0,1,-1,-1,1,1,0,0,0,0,0,-1,-1,0,0,-1,0,1,0,0,-1,-1,0,0,1,0,1,-1,-1,0,0,0,1,-1,-1,0,1,-1,-1,-1,0,1,-1,0,-1,1,1,1,0,0,0,1,0,0,0,-1,1,0,-1,1,0,1,0,0,1,1,1,0,0,-1,1,0,-1,1,-1,1,-1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,1,-1,1,1,1,-1,0,0,-1,-1,0,0,0,0,-1,1,0,0,-1,0,-1,1,1,-1,-1,0,1,0,0,0,-1,1,-1,0,0,0,0,-1,0,0,0,-1,0,0,1,0,-1,1,1,-1,0,0,-1,0,1,1,0,1,0,1,0,1,1,-1,0,0,-1,0,1,0,0,1,1,0,0,1,0,0,1,0,0,-1,0,0,-1,1,-1,0,1,0,-1,-1,0,0,-1,1,1,0,1,0,0,0,0,0,0,0,0,0,-1,1,-1,0,-1,-1,-1,1,0,0,0,1,0,0,0,0,1,0,0,0,-1,1,0,0,0,-1,-1,0,1,1,-1,-1,0,-1,-1,0,-1,0,1,0,1,0,1,1,-1,0,0,0,-1,0,-1,-1,1,1,0,-1,0,1,0,0,-1,0,0,-1,1,0,-1,1,0,0,0,0,1,0,1,-1,1,0,1,0,0,-1,1,-1,-1,0,1,0,0,0,0,1,-1,0,1,0,-1,0,-1,0,0,0,0,-1,0,0,1,-1,-1,-1,0,-1,0,1,-1,1,-1,0,-1,0,1,0,0,1,0,-1,0,-1,0,-1,1,1,-1,0,0,1,-1,1,0,0,0,-1,-1,0,-1,0,0,1,0,0,0,0,-1,0,-1,1,0,0,0,-1,0,0,1,0,0,-1,-1,0,1,0,-1,0,1,1,0,-1,0,1,0,1,1,0,1,0,-1,0,-1,0,1,0,1,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,-1,0,1,0,0,-1,1,0,0,0,0,0,-1,-1,0,0,0,1,1,-1,1,0,0,0,-1,0,0,0,0,0,0,0,0,1,-1,-1,-1,1,0,1,1,-1,-1,0,0,0,0,0,-1,0,1,0,-1,0,1,1,0,-1,0,1,1,0,-1,0,0,0,1,0,-1,1,-1,-1,-1,0,1,0,0,-1,-1,-1,1,0,-1,1,1,1,1,1,1,1,-1,-1,0,0,-1,0,1,1,0,1,1,-1,0,0,0,0,0,1,-1,1,0,0,-1,-1,-1,0,-1,1,0,-1,1,-1,0,1,0,1,1,0,-1,0,1,-1,0,-1,1,0,-1,0,1,0,0,1,0,-1,0,-1,-1,0,0,1,1,1,1,1,-1,1,0,1,-1,0,0,0,0,0,0,-1,0,0,0,1,1,0,-1,0,1,0,0,0,1,1,1,-1,0,-1,0,-1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,1,0,0,-1,0,-1,-1,0,-1,1,0,0,0,0,0,1,-1,0,0,1,0,0,1,0,1,1,-1,1,-1,0,0,1,-1,0}, {0,-1,0,-1,-1,0,0,1,1,-1,-1,0,-1,0,1,1,0,0,0,0,1,1,1,1,0,0,-1,-1,0,0,0,0,0,0,0,1,1,0,1,0,-1,-1,0,0,-1,-1,0,1,0,1,1,-1,1,0,0,0,1,0,1,1,1,0,1,0,-1,0,-1,0,0,0,-1,0,0,0,1,0,0,0,-1,1,0,0,1,0,0,-1,1,1,-1,-1,-1,0,1,0,1,0,0,0,1,-1,-1,0,0,0,1,-1,0,0,0,-1,0,-1,0,-1,1,-1,0,-1,0,1,0,0,-1,-1,-1,1,0,1,0,-1,-1,-1,1,0,0,0,0,1,0,0,0,-1,0,1,0,0,-1,-1,0,-1,0,0,1,0,1,1,0,-1,0,0,1,1,-1,0,0,1,1,0,0,0,0,0,-1,-1,1,0,1,-1,1,1,1,0,0,0,0,0,0,1,0,-1,0,0,1,-1,1,-1,0,0,0,0,-1,1,1,0,0,0,0,-1,0,1,1,1,0,-1,-1,1,0,1,0,-1,0,0,0,0,1,1,0,1,-1,0,-1,-1,0,1,0,0,0,0,-1,0,0,0,0,1,1,1,0,0,-1,1,1,0,0,-1,1,0,-1,-1,-1,1,1,1,-1,1,0,0,0,0,0,0,0,0,-1,0,0,1,-1,0,0,0,-1,0,1,0,0,-1,1,0,1,0,0,-1,0,0,0,0,0,1,1,0,-1,1,0,-1,-1,-1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,-1,-1,0,0,1,-1,-1,-1,1,-1,-1,-1,1,-1,0,-1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,-1,-1,0,0,0,1,-1,0,0,0,-1,1,-1,-1,1,-1,0,0,0,0,-1,0,0,-1,1,-1,1,0,0,1,0,-1,-1,0,-1,-1,-1,-1,-1,0,0,1,0,0,0,0,-1,1,0,0,1,0,1,0,0,1,0,-1,1,-1,1,0,0,0,1,-1,0,-1,0,0,0,0,1,0,0,0,1,-1,1,0,-1,1,0,0,0,1,1,0,0,0,0,-1,1,0,1,0,1,0,0,0,-1,-1,-1,0,1,1,0,0,1,-1,0,-1,0,-1,-1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,0,-1,1,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,1,-1,-1,1,-1,0,-1,-1,0,1,0,-1,0,1,0,0,0,0,0,-1,0,0,0,0,0,1,1,0,-1,0,0,0,1,1,-1,1,0,1,0,-1,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,1,-1,0,1,1,0,0,0,-1,-1,0,0,0,0,0,1,-1,0,-1,1,-1,0,-1,-1,0,0,0,0,-1,1,0,1,1,0,1,0,0,0,1,-1,1,1,0,0,-1,0,0,-1,1,0,1,0,0,-1,0,0,-1,0,0,0,-1,1,1,1,1,-1,0,1,0,1,0,-1,-1,0,0,1,1,-1,-1,0,0,1,-1,0,-1,1,0,0,0,1,0,-1,1,0,-1,0,0,1,0,0,0,-1,-1,-1,0,1,1,0,-1,1,0,0,1,0,-1,0,-1,0,0,-1,0,-1,-1,0,1,-1,-1,0,0,0,-1,0,0,1,0,0,0,0,0,1,-1,1,0,0,-1,-1,0,-1,1,-1,-1,1,0,-1,0,1,0,1,1,-1,0,0,0,0,-1,-1,1,1,1,1,0,-1,1,0,0,1,0,0,1,0,0,1,1,-1,-1,-1,1,0,-1,1,1,1,0,0,0,-1,0,0,0,0,-1,0,1,0,0,0,1,0,0,0,0,1,-1,0,0,0,1,0,-1,-1,0,1,1,0,1,0,1,0,-1,0,-1,0,-1,1,0,0,0,0,0,-1,1,0,0,0,0,0,-1,0,-1,0,0,0,-1,1,1,-1,-1,-1,0,0,-1,0,-1,-1,-1,-1,0,1,-1,0,0,-1,1,1,1,-1,0,0,0,-1,1,0,0,-1,0,-1,1,-1,1,0,-1,0,1,1,0,0,1,1,0,0,1,-1,1,1,0,1,-1,1,0,1,0,0,0,-1,0,0,0,-1,0,-1,1,0,0,0,-1,0,0,-1,1,0,0,-1,0,-1,-1,1,0,1,0,0,0,0,0,-1,0,-1,0,1,0,-1,0,0,0,0,-1,0,1,0,-1,0,0,0,0,-1,-1,0,0,1,-1,-1,0,0,-1,-1,0,0,-1,0,0,0,0,0,-1,-1,-1,-1,1,-1,1,0,0,0,0,-1,0,0,0,0,0,0,-1,0,1,0,0,-1,1,1,0,1,0,-1,0,-1,-1,-1,-1,0,0,0,1,1,-1,0,-1,0,0,-1,0,1,1,1,0,1,0,0,-1,0,0,0,0,-1,1,0,0,1,1,1,0,-1,-1,1,-1,-1,-1,-1,0,0,-1,-1,-1,1,0,-1,0,0,0,0,0,-1,0,0,0,1,0,-1,0,0,1,0,1,0,0,0,1,1,1,-1,0,0,0,0,0,0,0,-1,1,1,-1,1,1,-1,-1,0,1,-1,0,1,1,-1,0,-1,0,0,0,1,1,-1,-1,1,-1,-1,-1,0,0,1,1,-1,0,1,0,0,0,0,-1,-1,-1,-1,0,-1,0,0,0,0,-1,-1,1,0,0,0,0,-1,1,0,-1,0,-1,-1,-1,0,-1,0,1,-1,0,0,1,-1,-1,0,-1,1,-1,0,-1,1,-1,1,-1,0,-1,-1,0,0,1,-1,1,-1,1,0,1,0,1,0,1,-1,0,-1,-1,0,0,0,-1,-1,-1,0,-1,0,0,0,-1,-1,0,0,0,-1,0,0,1,1,-1,0,0,0,-1,-1,0,-1,1,-1,0,1,0,1,1,0,-1,0,-1,0,0,1,0,0,0,0,0,1,1,0,0,-1,1,-1,1,0,0,0,1,0,-1,-1,0,0,0,0,0,1,0,1,0,-1,1,0,0,0,-1,-1,-1,1,0,0,-1,0,-1,-1,1,1,0,0,1,1,-1,0,0,1,1}, {1,0,0,0,0,0,-1,0,1,0,1,1,-1,0,-1,0,0,-1,0,0,1,0,1,1,0,0,-1,0,1,-1,1,-1,0,1,0,1,-1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,-1,0,1,0,0,1,0,1,0,0,1,0,-1,-1,0,1,1,-1,-1,1,1,1,-1,1,0,1,1,0,0,1,1,1,1,-1,-1,1,0,-1,1,0,0,1,0,1,0,-1,0,0,0,0,-1,1,0,0,0,1,-1,0,1,0,-1,-1,0,0,0,0,0,1,0,1,-1,0,0,0,-1,1,0,1,0,0,0,0,1,-1,1,0,1,0,0,0,-1,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,-1,1,1,-1,-1,1,0,-1,1,0,1,1,0,-1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,-1,0,1,0,1,0,0,1,1,1,0,-1,0,-1,-1,0,1,0,0,-1,1,0,-1,1,1,-1,0,-1,0,0,0,0,0,0,0,1,-1,0,0,0,1,0,0,0,-1,-1,0,0,1,1,-1,1,1,0,-1,0,0,0,0,1,1,1,1,-1,1,-1,0,0,1,1,-1,0,0,1,0,1,-1,0,1,-1,1,1,0,0,-1,1,0,0,1,0,0,-1,1,-1,0,0,-1,1,0,0,-1,-1,-1,0,0,-1,-1,-1,1,0,-1,1,0,0,0,0,-1,0,1,-1,0,0,0,1,1,1,0,-1,0,0,1,-1,1,-1,1,0,0,-1,0,-1,0,0,-1,0,0,0,-1,1,0,1,-1,-1,0,1,1,0,1,1,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,-1,0,-1,0,0,-1,-1,1,0,1,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,1,0,1,0,1,0,-1,-1,0,0,0,-1,0,0,-1,0,0,1,-1,1,-1,-1,1,0,0,0,1,-1,0,-1,0,-1,0,1,1,0,-1,-1,1,-1,0,0,0,-1,-1,0,0,0,0,1,0,-1,-1,-1,1,-1,0,0,0,-1,0,0,0,0,-1,0,1,1,0,1,-1,0,0,0,-1,0,0,0,0,0,1,0,0,-1,-1,0,0,1,0,-1,0,-1,1,-1,-1,-1,-1,0,-1,1,0,-1,0,0,0,1,-1,0,0,1,0,0,0,1,1,0,0,1,0,-1,0,0,-1,0,-1,1,1,1,-1,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,1,0,0,-1,0,1,0,1,1,0,0,1,0,1,0,0,0,0,-1,1,-1,0,-1,1,0,-1,0,0,0,1,-1,0,0,-1,0,0,0,1,1,-1,0,0,1,1,0,0,0,0,-1,0,1,-1,-1,-1,0,0,0,0,0,0,0,0,-1,0,1,-1,0,0,0,1,0,1,0,0,-1,-1,0,0,0,0,0,0,-1,1,0,-1,0,0,0,0,-1,-1,-1,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,-1,-1,-1,-1,0,0,0,0,-1,0,0,-1,1,-1,0,1,0,1,1,0,0,1,0,0,-1,1,-1,0,0,1,0,-1,1,-1,0,0,1,1,-1,0,-1,0,-1,-1,0,0,1,0,1,-1,0,1,0,0,1,-1,0,0,0,0,1,0,0,0,0,1,0,1,-1,0,-1,1,1,0,-1,-1,-1,1,0,1,-1,0,0,1,-1,0,1,-1,-1,0,0,0,0,0,0,0,1,1,-1,1,0,0,1,1,1,-1,0,0,1,1,0,0,0,1,1,1,1,-1,-1,1,0,-1,0,0,0,0,0,0,0,-1,0,0,0,-1,-1,0,-1,0,0,1,0,-1,-1,-1,0,-1,-1,0,1,-1,0,1,1,0,-1,1,1,1,-1,0,0,-1,0,1,0,-1,1,0,0,0,0,0,-1,1,0,0,0,0,0,-1,0,-1,0,-1,0,-1,0,-1,0,0,0,0,0,0,-1,-1,1,-1,-1,0,0,0,-1,0,0,-1,1,0,-1,1,0,0,0,1,0,0,0,-1,0,1,-1,-1,1,0,-1,1,-1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,-1,1,0,1,1,1,0,1,0,0,0,1,1,-1,1,1,-1,1,0,1,0,-1,0,0,0,1,0,1,0,-1,1,-1,0,0,-1,0,1,0,1,1,1,-1,1,-1,1,0,1,-1,-1,0,1,-1,1,0,0,-1,1,0,-1,1,0,-1,0,0,0,0,0,-1,0,-1,0,0,0,-1,-1,-1,-1,0,1,0,-1,0,0,0,0,1,0,0,0,0,0,0,1,1,-1,-1,1,-1,-1,1,1,-1,0,0,1,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,1,0,0,1,1,1,0,-1,0,-1,0,0,1,-1,0,1,-1,1,1,0,-1,0,1,0,-1,-1,1,0,1,0,0,-1,1,1,1,-1,-1,0,0,0,0,0,0,-1,0,0,1,0,1,0,-1,-1,1,0,-1,-1,1,0,1,0,0,-1,0,0,0,0,1,0,0,0,0,-1,1,0,1,1,-1,0,-1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,-1,1,-1,0,0,-1,1,-1,0,1,0,0,0,1,0,0,-1,1,-1,-1,1,-1,1,1,0,1,1,-1,0,1,1,1,1,0,-1,-1,0,1,0,0,-1,0,0,0,1,-1,0,-1,-1,-1,0,1,-1,0,-1,-1,1,1,-1,0,1,1,1,0,-1,0,1,0,0,0,0,1,0,0,-1,0,1,0,1,0,-1,1,-1,0,-1,-1,1,1,0,1,1,0,-1,0,0,0,1,0,1,0,0,1,1,0,1,0,0,-1,-1,-1,1,-1,1,0,-1,0,-1,0,1,0,1,1,0,0,1,0,1,1,1,1,1,1,-1,0,1,-1,1,-1,0,0,1,-1,0,1,-1,0,0,-1,0,0,0,0,0,-1,0,1,0,0,1,0,0,0,0,0,1,-1,0,0,1,0,1,0,0}, } ; static const unsigned char precomputed_core_multsntrup1277_c[precomputed_core_multsntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_multsntrup1277_impl(long long impl) { unsigned char *h = test_core_multsntrup1277_h; unsigned char *n = test_core_multsntrup1277_n; unsigned char *k = test_core_multsntrup1277_k; unsigned char *c = test_core_multsntrup1277_c; unsigned char *h2 = test_core_multsntrup1277_h2; unsigned char *n2 = test_core_multsntrup1277_n2; unsigned char *k2 = test_core_multsntrup1277_k2; unsigned char *c2 = test_core_multsntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_multsntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup1277(impl); printf("core_multsntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup1277_implementation(impl),ntruprime_dispatch_core_multsntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup1277; printf("core_multsntrup1277 selected implementation %s compiler %s\n",ntruprime_core_multsntrup1277_implementation(),ntruprime_core_multsntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_multsntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_multsntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_multsntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_multsntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_multsntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_multsntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_multsntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_multsntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_multsntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_multsntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_multsntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup1277")) return; storage_core_multsntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_multsntrup1277_h = aligned(storage_core_multsntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_multsntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_multsntrup1277_n = aligned(storage_core_multsntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_multsntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_multsntrup1277_k = aligned(storage_core_multsntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_multsntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_multsntrup1277_c = aligned(storage_core_multsntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_multsntrup1277_h2 = callocplus(maxalloc); test_core_multsntrup1277_h2 = aligned(storage_core_multsntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_multsntrup1277_n2 = callocplus(maxalloc); test_core_multsntrup1277_n2 = aligned(storage_core_multsntrup1277_n2,crypto_core_INPUTBYTES); storage_core_multsntrup1277_k2 = callocplus(maxalloc); test_core_multsntrup1277_k2 = aligned(storage_core_multsntrup1277_k2,crypto_core_KEYBYTES); storage_core_multsntrup1277_c2 = callocplus(maxalloc); test_core_multsntrup1277_c2 = aligned(storage_core_multsntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_multsntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup1277();++impl) forked(test_core_multsntrup1277_impl,impl); ++test_core_multsntrup1277_h; ++test_core_multsntrup1277_n; ++test_core_multsntrup1277_k; ++test_core_multsntrup1277_c; ++test_core_multsntrup1277_h2; ++test_core_multsntrup1277_n2; ++test_core_multsntrup1277_k2; ++test_core_multsntrup1277_c2; } free(storage_core_multsntrup1277_c2); free(storage_core_multsntrup1277_k2); free(storage_core_multsntrup1277_n2); free(storage_core_multsntrup1277_h2); free(storage_core_multsntrup1277_c); free(storage_core_multsntrup1277_k); free(storage_core_multsntrup1277_n); free(storage_core_multsntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_multsntrup653.c0000644000000000000000000014447314705505543023555 0ustar rootroot/* ----- core/multsntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_multsntrup653_checksums[] = { "426661f4ba18f29eae9e2b7d4d6c1569e9f91db693cafb76ede67fba9873b64b", "5f42341ecdbb0e13b2d071ecc75f874ae3b0fa913f8b62fcf93fcb13d01b417c", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_multsntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_multsntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_multsntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_multsntrup653_CONSTBYTES static void *storage_core_multsntrup653_h; static unsigned char *test_core_multsntrup653_h; static void *storage_core_multsntrup653_n; static unsigned char *test_core_multsntrup653_n; static void *storage_core_multsntrup653_k; static unsigned char *test_core_multsntrup653_k; static void *storage_core_multsntrup653_c; static unsigned char *test_core_multsntrup653_c; static void *storage_core_multsntrup653_h2; static unsigned char *test_core_multsntrup653_h2; static void *storage_core_multsntrup653_n2; static unsigned char *test_core_multsntrup653_n2; static void *storage_core_multsntrup653_k2; static unsigned char *test_core_multsntrup653_k2; static void *storage_core_multsntrup653_c2; static unsigned char *test_core_multsntrup653_c2; #define precomputed_core_multsntrup653_NUM 4 static const unsigned char precomputed_core_multsntrup653_h[precomputed_core_multsntrup653_NUM][crypto_core_OUTPUTBYTES] = { {94,6,224,4,178,0,189,248,229,4,154,0,161,250,252,8,239,5,180,4,172,254,141,7,35,255,196,3,19,248,18,3,176,7,250,2,87,2,77,7,24,0,86,7,33,248,178,248,43,253,14,1,134,0,80,6,148,4,44,3,230,254,203,4,73,247,13,7,239,0,182,248,184,247,149,1,142,4,225,254,160,250,118,249,50,255,168,254,227,7,215,5,137,3,245,250,77,4,39,0,37,2,165,255,98,247,122,254,232,253,244,248,190,8,131,255,151,6,190,255,155,7,6,2,70,251,148,5,254,250,169,251,34,253,92,7,255,254,148,5,234,2,178,250,26,248,228,4,94,3,119,8,31,2,35,250,12,0,203,248,56,250,203,6,229,248,114,8,228,247,5,1,160,250,168,8,200,247,86,5,150,5,0,0,224,7,224,0,203,3,31,251,171,1,174,5,64,1,162,2,118,255,229,254,50,249,13,4,150,250,4,3,117,3,157,6,62,5,215,1,181,1,52,0,224,2,82,247,225,5,234,5,151,3,139,250,11,1,45,3,223,1,234,8,135,4,66,0,238,4,68,4,54,1,190,250,123,3,61,7,164,1,70,0,51,251,99,254,60,8,126,248,47,250,92,247,112,0,121,6,9,254,157,8,251,4,167,250,136,250,187,249,124,1,221,252,177,6,204,8,193,248,217,5,228,251,52,249,193,249,158,3,59,249,171,8,161,252,24,248,77,6,28,251,41,5,67,0,66,251,22,255,100,2,118,251,10,6,182,3,154,4,224,1,129,1,214,252,106,4,163,248,214,248,132,1,5,247,13,248,129,8,182,248,87,0,201,253,55,254,230,5,146,251,50,250,182,253,51,3,83,247,117,3,125,0,3,247,26,4,189,3,253,255,254,5,24,251,106,248,208,4,203,0,192,4,123,1,70,2,119,249,126,2,161,5,241,252,218,255,253,255,144,250,115,253,132,249,252,8,44,2,223,7,191,7,67,254,109,6,232,249,82,253,56,253,230,1,98,249,168,6,85,5,241,4,202,251,171,2,226,2,230,0,4,251,139,254,54,3,107,8,140,0,81,0,209,250,18,3,17,251,8,249,251,255,164,247,235,254,107,8,166,250,97,5,172,5,225,252,255,252,54,255,233,3,123,3,6,0,56,249,199,247,228,7,174,253,87,5,5,251,12,1,130,254,60,0,53,251,9,3,168,249,241,2,42,6,193,4,146,4,248,255,198,254,62,251,218,5,27,2,25,2,126,6,72,3,192,253,9,248,23,7,180,252,175,7,71,2,99,2,154,7,91,5,246,6,252,251,147,253,122,249,75,250,222,1,255,247,81,5,88,3,93,2,232,248,20,3,22,4,33,248,191,0,195,252,98,253,62,4,188,0,163,6,112,255,44,254,194,4,130,252,44,5,83,0,36,4,70,251,41,0,23,0,47,251,36,249,176,3,236,0,37,1,157,247,91,3,133,1,204,2,200,253,199,5,229,4,100,4,27,248,1,9,230,255,103,4,2,251,124,3,94,249,231,4,219,4,220,247,105,5,201,249,223,254,182,255,172,4,15,7,159,7,8,254,207,255,111,5,128,254,245,255,67,253,87,2,177,8,240,7,153,250,128,255,244,251,197,254,61,252,88,6,12,252,253,6,234,7,252,255,207,0,118,247,107,0,221,4,85,254,27,7,137,3,156,2,145,251,232,4,3,247,180,251,237,6,158,250,231,8,203,253,16,250,148,252,176,249,170,255,154,1,100,254,210,4,247,254,25,4,211,251,35,0,28,254,105,4,94,1,141,248,34,4,160,5,74,6,137,255,227,5,237,254,187,255,82,248,8,8,130,254,199,6,143,8,86,250,43,7,60,255,103,250,220,5,1,7,225,5,58,252,201,248,176,2,163,3,40,4,191,249,107,248,200,1,202,7,227,247,93,248,54,4,157,3,131,0,24,250,170,255,109,252,79,248,191,251,112,6,143,247,86,251,111,255,224,1,128,250,157,6,171,1,73,254,254,255,159,3,147,4,49,253,198,3,43,4,194,255,219,248,215,254,196,1,130,248,77,7,5,0,195,254,190,4,172,250,9,251,89,6,219,251,179,3,137,248,229,253,171,6,206,252,67,252,14,251,250,3,211,6,106,255,75,1,70,3,61,5,80,4,157,1,145,5,207,6,85,252,66,8,124,5,128,253,229,1,29,250,148,4,48,2,192,4,100,1,1,6,199,254,200,253,147,3,237,247,74,251,156,3,81,250,130,247,235,253,102,7,116,252,227,247,229,252,15,1,221,250,239,249,210,4,167,3,59,7,247,250,60,7,38,3,140,248,96,7,247,252,236,1,230,254,167,253,43,255,154,6,45,248,124,253,108,7,234,8,121,247,253,246,246,4,19,6,181,2,205,0,185,5,71,4,170,254,163,0,12,250,144,7,10,253,19,251,4,6,202,249,7,250,241,253,8,8,64,0,74,7,141,254,20,247,150,250,188,7,16,4,196,247,154,253,184,249,107,248,28,251,157,254,165,247,132,0,130,250,0,8,119,1,228,2,246,255,37,251,247,250,109,247,202,255,168,247,86,247,181,249,230,252,162,254,255,248,102,8,148,251,34,247,133,255,39,249,95,255,179,255,104,4,51,1,68,2,21,255,110,251,61,250,214,254,66,5,179,0,5,5,65,251,163,247,65,2,234,253,226,253,153,249,139,3,66,253,86,252,17,0,223,252,225,251,165,3,151,248,118,8,133,0,93,7,231,1,136,249,216,3,47,255,59,5,0,0,54,247,59,247,48,247,244,4,109,6,141,8,226,253,107,253,82,5,217,1,160,252,198,250,70,248,166,247,140,2,158,5,67,252,149,1,140,7,54,3,61,250,29,253,168,250,109,252,142,8,108,252,110,251,83,5,89,7,72,247,139,253,89,5,58,0,151,251,13,254,98,1,55,5,214,7}, {94,253,98,3,126,247,87,6,142,2,81,250,195,249,105,255,69,250,15,247,72,253,164,248,116,2,107,247,31,7,70,5,23,254,99,248,56,254,115,251,128,247,208,1,9,249,132,252,182,5,37,253,123,255,229,248,122,5,56,2,194,247,43,3,152,251,1,8,6,251,44,251,120,1,208,249,173,251,59,248,166,7,105,248,79,0,124,1,17,250,1,254,139,249,20,7,201,4,246,3,194,2,158,248,30,251,244,6,94,254,151,4,57,6,191,1,47,0,87,249,158,7,57,254,76,2,83,8,2,8,152,248,22,247,95,4,5,1,66,255,147,255,34,247,207,2,165,255,141,6,190,251,167,252,99,253,28,248,233,252,142,4,172,4,209,253,110,8,227,6,22,248,152,250,105,253,37,5,252,246,87,249,57,250,57,3,61,255,54,249,100,247,191,251,20,8,93,3,89,2,107,247,10,3,202,5,11,7,80,7,58,6,180,3,165,0,61,252,213,251,204,4,107,7,112,250,166,250,70,252,240,249,187,252,22,254,87,251,165,250,98,254,196,6,225,4,238,250,112,255,161,3,131,255,246,0,132,2,73,2,170,253,91,248,214,247,215,3,40,253,42,8,136,247,56,254,100,4,186,253,185,251,12,252,59,252,207,251,114,254,162,248,73,251,198,0,53,6,211,6,200,248,125,249,157,253,62,247,56,254,116,254,44,247,253,247,17,249,49,250,164,7,238,6,81,3,195,3,191,251,250,253,148,1,1,4,213,5,37,252,62,247,188,7,31,252,56,248,59,247,146,1,199,254,87,247,159,4,219,1,148,4,66,0,43,0,240,253,124,251,30,6,5,5,59,7,124,7,7,255,185,249,184,253,197,252,210,250,228,1,79,8,26,3,27,253,171,0,81,2,226,4,59,3,173,249,100,6,201,249,147,255,49,254,0,2,84,253,203,5,99,4,53,1,2,8,36,5,182,1,77,252,154,7,168,7,170,254,143,5,63,250,64,1,116,251,34,2,136,8,184,249,62,3,91,253,125,3,165,1,245,249,28,5,72,7,40,4,7,249,150,0,157,4,122,252,74,249,100,3,213,255,178,253,75,253,210,2,208,249,162,247,69,2,228,253,234,250,196,247,104,3,39,254,13,0,181,5,62,252,19,248,254,251,6,4,43,6,178,247,44,253,97,248,154,255,49,7,226,5,234,5,223,8,193,0,139,6,140,255,194,8,151,8,147,250,78,1,208,0,195,7,92,253,161,6,102,6,255,0,152,252,72,0,154,252,152,251,100,251,173,254,206,1,125,2,166,251,221,4,57,2,90,1,40,249,13,0,24,8,215,1,184,252,112,254,249,251,217,6,120,254,202,250,116,8,168,5,1,255,169,6,113,2,132,6,31,253,44,250,99,3,5,253,162,251,81,2,64,4,138,252,64,250,174,5,6,254,117,1,83,251,25,255,250,4,125,254,119,255,123,254,120,255,210,8,197,254,223,254,215,3,209,251,58,255,248,4,82,2,18,7,241,250,7,248,134,255,83,6,147,252,45,7,62,248,133,5,91,7,104,0,3,3,210,1,149,255,155,3,142,251,253,4,126,249,111,0,255,1,194,254,161,2,143,251,253,250,59,255,44,253,155,8,197,6,65,0,246,251,206,254,6,1,230,251,79,7,234,1,52,249,136,251,186,254,188,2,205,2,237,8,17,8,122,252,132,0,42,251,170,8,252,250,204,8,101,1,189,250,174,249,126,1,38,3,188,247,12,247,235,3,80,3,208,253,136,250,217,4,122,3,41,251,115,254,9,250,169,249,113,251,54,247,175,3,74,249,98,4,125,1,210,0,233,253,128,253,55,251,145,255,93,248,112,5,79,5,185,254,139,8,138,248,230,247,246,251,217,253,92,1,86,254,74,1,70,0,191,249,66,3,182,1,145,252,254,0,85,251,114,8,19,3,133,0,254,250,220,3,104,254,102,7,159,8,66,0,173,252,215,247,61,3,179,255,170,255,57,2,114,2,103,253,248,253,241,250,108,8,193,250,189,0,233,3,190,8,187,249,210,248,205,253,221,248,145,8,179,4,47,249,82,248,74,1,144,247,215,3,76,247,201,251,20,3,246,250,127,5,151,1,167,3,68,253,226,2,187,249,134,251,115,252,70,251,88,0,249,250,74,5,226,253,88,8,16,247,204,5,173,2,199,250,40,249,177,1,196,3,226,249,50,253,40,3,5,248,41,0,216,2,108,255,52,6,80,252,24,2,76,0,68,8,74,250,129,247,249,254,240,4,137,252,230,0,18,8,194,253,192,0,202,2,207,248,255,247,126,249,21,255,27,254,255,2,143,3,138,255,71,5,143,8,168,6,116,248,46,249,20,254,4,250,92,5,231,254,195,252,179,4,108,251,115,2,76,4,211,254,57,250,93,3,148,255,199,255,173,2,70,0,194,250,107,2,119,255,205,6,186,6,73,252,27,2,112,249,160,8,57,4,90,253,88,248,181,248,37,253,207,0,192,250,143,1,21,3,126,0,129,3,46,8,214,2,52,5,41,247,242,250,115,5,14,247,219,251,76,4,103,253,75,249,34,247,106,7,54,4,48,248,189,0,248,1,218,6,15,8,53,0,53,8,251,247,62,255,87,5,166,2,175,2,98,250,168,7,193,250,130,254,219,7,120,3,56,5,207,247,239,253,179,254,230,249,22,7,143,247,131,252,17,250,140,3,58,0,52,254,224,249,170,255,108,5,50,1,48,3,246,251,243,2,7,4,114,250,102,255,160,6,32,247,235,252,205,248,65,251,65,5,246,8,141,8,79,250,231,2,47,255,162,247,121,249,161,252,219,253,155,255,99,255,129,8,2,0,84,248,209,3,66,249,66,8,211,247,59,250,210,255,24,1,254,252,141,247,97,8,127,7,8,0,47,254,28,8,35,3,92,253,32,247,210,2}, {86,2,202,0,185,6,69,254,245,8,95,6,1,8,235,253,171,2,208,7,224,250,181,8,226,248,132,8,152,254,15,250,230,2,238,4,90,2,217,5,74,249,78,1,78,248,189,3,84,255,65,249,174,1,62,1,16,249,43,254,105,254,15,8,144,6,189,247,77,7,5,255,234,251,109,255,224,8,103,248,67,253,247,251,45,5,51,1,65,251,182,8,158,5,178,255,162,7,239,3,151,6,248,8,122,249,138,248,17,5,189,1,26,250,202,3,5,6,27,248,39,2,88,250,188,6,145,255,251,3,87,250,149,1,30,6,107,3,122,253,212,2,46,8,28,251,25,1,11,0,80,1,243,253,84,248,73,3,5,9,78,252,84,255,206,1,69,249,139,7,40,3,42,1,28,253,115,254,2,8,104,5,45,252,122,5,41,247,67,253,111,254,194,249,223,254,42,250,206,8,107,2,249,8,9,253,244,8,113,5,37,2,40,0,175,251,203,1,131,250,183,249,217,8,163,248,139,251,42,4,21,250,190,7,4,252,110,252,153,5,68,255,63,1,153,4,151,0,204,2,144,251,197,247,27,254,76,4,170,251,242,7,250,252,94,3,40,7,137,247,227,6,253,253,105,6,159,251,231,252,179,6,8,0,215,7,27,7,231,1,140,7,71,255,176,251,161,6,241,3,85,6,63,250,75,7,85,8,254,0,225,8,245,251,186,8,122,2,180,247,243,1,171,247,130,250,131,251,102,248,191,251,246,254,200,2,43,5,58,251,6,9,8,255,126,252,45,254,59,3,79,4,220,2,75,1,0,8,111,4,14,253,60,1,13,253,253,6,223,7,240,1,193,252,6,5,25,254,181,2,62,4,173,2,207,251,43,255,49,254,92,6,233,249,211,250,65,0,138,247,188,3,23,252,108,2,219,2,211,1,5,4,239,4,39,2,80,251,58,249,1,1,64,6,220,8,253,4,74,1,39,249,146,2,221,0,233,7,220,254,0,249,139,251,103,8,226,248,194,253,43,247,156,1,171,249,187,248,67,254,214,6,224,250,12,250,255,3,217,249,17,255,173,1,56,0,155,2,245,8,56,2,56,251,121,1,248,247,182,7,84,7,61,7,210,2,60,254,238,6,189,254,129,251,65,252,255,2,3,253,253,4,248,8,184,249,90,3,43,250,132,7,179,253,245,0,159,2,18,4,183,6,222,253,21,5,157,5,44,6,56,3,61,3,48,4,60,7,26,254,40,6,126,251,235,248,193,247,63,247,114,8,249,2,41,249,212,6,62,250,227,254,103,250,5,2,46,253,197,8,180,6,1,3,67,255,39,0,167,7,180,1,143,3,95,249,1,6,164,8,114,1,70,1,172,4,27,253,9,5,153,247,226,2,37,254,179,8,37,249,193,3,112,255,216,3,77,248,173,247,26,249,15,5,31,255,87,1,185,253,20,5,221,4,142,255,76,6,41,248,190,254,190,249,162,7,186,2,202,4,194,7,82,7,12,248,59,253,199,250,242,3,34,1,220,1,243,255,73,249,127,4,183,8,15,1,220,253,5,249,6,253,182,252,152,0,36,0,194,1,26,251,37,247,220,248,1,0,63,6,106,6,208,250,29,253,114,1,160,247,21,250,197,248,173,252,234,5,152,5,167,3,162,8,202,1,167,5,192,0,33,252,45,2,8,247,216,254,216,3,254,249,118,247,248,1,5,6,131,8,91,3,125,4,125,1,15,5,134,5,218,252,118,6,38,252,192,6,44,254,41,1,11,249,59,5,153,2,77,249,171,253,45,255,68,254,111,6,87,253,246,255,244,0,82,7,170,0,23,7,167,4,58,255,181,3,106,251,10,6,228,254,69,255,41,4,126,248,178,5,155,248,180,7,172,4,110,250,55,6,170,0,34,250,4,0,247,7,27,2,185,5,0,249,123,248,150,2,226,1,138,3,158,6,124,3,36,5,24,1,92,4,193,6,13,249,215,1,76,0,240,4,44,8,225,8,216,250,37,6,197,252,3,251,78,249,242,7,218,0,236,2,80,248,15,3,196,0,226,0,20,252,150,0,209,2,16,251,78,4,78,0,245,251,49,6,19,1,85,255,71,250,205,250,27,4,28,249,88,247,22,4,82,254,35,4,249,249,204,255,67,251,72,3,197,248,97,3,80,7,208,249,53,253,132,7,207,5,167,253,115,253,0,252,50,253,230,253,212,5,89,251,127,251,175,254,173,254,45,5,6,2,92,0,37,247,57,254,143,247,193,1,71,251,91,4,157,251,158,255,116,254,104,254,146,247,211,8,153,251,235,0,11,8,24,252,157,0,203,2,235,251,2,255,49,3,35,255,170,7,73,255,60,248,69,0,167,249,210,249,152,3,40,5,199,0,30,251,220,250,194,7,176,251,109,251,92,248,162,253,48,3,123,254,120,254,240,6,32,254,50,8,158,254,153,3,170,252,18,8,253,5,244,4,50,251,192,251,80,247,230,5,82,253,14,251,35,6,225,3,107,250,49,7,163,251,179,5,154,249,213,254,228,253,138,250,174,251,164,6,140,247,212,252,215,7,157,249,63,2,143,7,59,251,147,2,5,4,204,252,147,253,124,255,147,248,174,2,197,5,148,253,165,5,163,248,19,254,204,7,42,3,197,248,18,252,6,253,9,5,157,254,183,3,188,250,61,252,169,248,129,2,97,3,139,5,236,4,108,247,136,4,26,252,166,251,158,251,167,4,31,2,236,251,112,8,251,250,140,254,203,5,210,247,142,252,83,4,167,253,2,8,153,1,0,7,26,1,124,5,95,250,155,8,215,8,224,8,34,248,91,248,68,255,189,248,133,2,122,1,238,253,215,5,108,0,20,1,46,3,140,4,245,1,216,249,54,255,76,254,213,253,183,255,39,4,146,247,25,3,226,254,183,3,79,249,32,251,96,247,4,9,130,251,85,2}, {98,8,171,255,161,4,108,4,198,1,111,6,71,1,139,250,30,248,191,250,152,247,86,249,46,249,57,249,149,5,182,8,225,2,73,255,65,247,169,248,40,250,16,249,247,249,75,1,160,3,1,3,207,255,54,7,248,1,127,249,159,6,170,252,232,3,51,251,67,6,110,0,40,251,47,6,51,255,253,250,135,7,67,2,24,7,109,4,93,8,26,4,180,255,84,248,111,248,201,249,159,253,66,253,145,247,116,249,120,2,31,2,154,251,58,250,163,252,208,248,36,7,232,252,131,251,5,1,47,7,44,2,89,6,107,254,190,251,7,5,5,249,8,247,99,250,177,247,39,4,252,251,100,4,151,0,88,1,196,4,53,254,39,254,93,255,135,249,50,254,228,3,198,4,203,5,188,4,5,248,17,255,59,253,54,2,248,255,255,4,117,7,151,4,214,0,18,254,232,250,10,2,71,249,214,3,99,1,153,7,113,249,89,249,31,8,120,6,37,2,164,253,196,251,136,4,213,1,92,252,222,6,63,253,255,0,221,255,139,254,91,0,66,4,254,252,157,254,85,3,76,8,124,3,70,252,176,247,89,255,238,250,34,3,111,6,188,250,201,252,87,8,159,250,10,255,148,250,120,4,55,0,67,0,54,0,146,252,184,0,6,247,51,250,84,3,36,2,66,254,137,255,193,1,115,5,21,252,214,0,46,251,245,252,50,0,109,1,94,255,231,250,129,3,224,252,180,2,63,4,54,250,195,4,22,7,125,254,123,247,208,5,83,0,38,255,85,248,170,251,13,2,236,247,104,249,225,7,222,253,42,7,103,253,141,1,133,253,147,2,45,255,97,248,77,250,74,249,162,253,217,3,187,7,89,4,23,1,46,251,71,6,53,249,168,7,185,251,218,250,74,250,194,0,200,4,100,5,252,6,116,2,95,8,105,254,218,248,111,252,232,1,174,250,245,8,128,248,106,255,25,4,123,7,227,250,244,249,189,248,176,253,36,253,3,3,124,250,123,249,128,3,125,247,38,249,107,252,69,251,205,249,77,255,135,1,197,7,219,1,86,248,117,6,62,250,103,251,157,1,71,6,70,4,13,254,50,2,7,248,10,3,144,6,6,252,178,248,128,4,97,251,77,4,209,6,98,1,204,8,14,247,195,254,240,249,53,0,65,1,204,248,184,250,247,248,231,255,171,3,193,254,97,248,241,4,117,253,177,254,241,249,251,248,130,253,77,5,51,248,5,2,233,4,29,0,132,6,99,251,209,253,43,5,64,1,11,255,27,250,185,5,117,248,191,2,238,6,122,7,121,8,80,252,3,253,37,247,250,8,189,255,94,0,246,249,75,251,169,7,33,251,246,7,249,6,70,255,173,7,149,247,40,254,65,254,13,1,39,5,57,8,4,6,23,0,214,253,27,255,125,6,110,250,143,252,113,248,43,5,176,248,106,5,209,254,254,246,139,4,214,6,131,248,125,250,96,5,159,252,53,8,127,4,106,252,162,251,162,8,49,8,140,5,96,249,254,6,84,3,230,247,37,254,183,0,17,5,11,250,154,5,32,7,203,8,176,8,172,5,66,254,66,247,88,249,88,8,164,5,31,253,193,247,101,248,68,248,177,2,42,251,94,252,135,250,79,6,188,5,38,249,8,7,34,4,213,2,180,254,72,5,164,251,221,255,210,1,129,0,137,247,157,251,164,253,21,251,114,253,246,254,144,5,148,247,88,253,235,7,227,251,154,4,39,249,145,248,125,250,191,7,54,248,9,5,239,252,93,247,91,255,139,1,52,251,148,253,121,254,252,3,156,248,202,7,147,253,150,6,117,1,203,4,161,5,189,4,212,4,198,252,191,3,238,249,190,1,86,2,165,250,58,254,54,4,229,8,75,251,135,248,99,254,98,254,55,253,194,6,0,253,36,255,175,6,12,250,68,248,37,255,142,0,48,6,134,7,83,250,221,7,154,250,53,8,115,251,185,249,177,1,15,4,242,247,18,3,97,2,178,249,101,247,247,0,177,2,44,8,193,3,225,254,62,252,104,3,75,247,58,7,206,1,28,0,207,7,92,252,4,7,39,8,102,5,185,8,204,2,246,252,13,0,70,4,223,248,184,248,91,4,4,253,86,2,217,0,121,0,190,7,72,251,123,251,214,250,255,252,70,249,204,249,47,6,40,5,50,4,213,253,249,251,46,0,215,248,19,248,219,2,9,255,35,249,94,255,71,247,53,5,139,6,231,4,37,3,247,4,116,252,218,247,59,252,0,6,154,255,201,252,53,248,136,7,10,250,101,250,165,0,95,7,154,5,59,8,214,251,17,255,118,254,111,5,43,0,107,2,45,3,86,249,53,5,171,7,170,251,174,253,213,248,112,7,148,6,182,7,251,254,247,255,169,0,94,5,158,6,112,4,215,1,198,247,7,248,161,252,27,251,132,251,128,0,183,255,250,8,138,255,79,255,22,2,32,3,148,251,22,0,224,7,121,251,247,6,4,255,87,2,184,1,28,247,156,6,188,0,116,1,67,6,70,1,214,255,32,247,104,3,236,254,212,2,186,249,76,2,83,2,91,0,133,251,46,0,207,255,174,0,119,4,239,254,20,250,3,255,161,0,2,2,202,0,80,252,118,250,5,250,185,255,211,248,26,4,96,252,110,3,251,0,154,6,149,250,132,2,92,250,131,250,65,252,220,254,164,249,37,250,156,251,7,249,204,247,213,0,75,0,214,3,201,1,108,2,162,249,122,1,21,250,88,7,232,252,184,253,207,7,67,250,128,255,61,5,246,249,53,252,149,1,132,8,193,247,249,3,40,1,242,5,179,247,103,252,66,252,32,5,53,1,33,4,62,251,120,6,197,7,49,252,66,255,133,254,239,3,121,2,168,253,172,4,51,2,240,253,0,250,203,1,214,6,76,7,63,0,151,250,211,252,151,251}, } ; static const unsigned char precomputed_core_multsntrup653_n[precomputed_core_multsntrup653_NUM][crypto_core_INPUTBYTES] = { {162,148,76,22,5,64,112,4,5,85,247,229,249,61,46,219,120,157,206,49,188,162,246,167,236,0,15,40,4,12,58,219,116,93,232,216,64,80,48,180,88,72,146,56,199,19,195,10,143,97,126,26,92,147,236,41,187,2,106,181,57,36,62,147,152,88,250,254,44,65,218,57,112,229,225,134,184,135,130,217,87,186,73,129,16,80,237,210,236,209,109,87,95,66,243,248,246,21,247,156,224,81,6,109,147,52,167,144,120,14,232,91,121,54,188,171,93,72,245,47,128,190,141,97,137,22,19,14,136,8,2,209,141,192,204,11,103,8,246,249,39,68,181,220,135,214,183,120,238,75,169,13,221,108,225,249,95,249,37,57,163,124,139,156,192,131,1,166,23,76,37,32,11,121,26,85,58,53,41,155,120,216,57,90,102,84,201,170,14,80,207,137,132,55,14,88,191,241,227,192,130,117,177,83,195,146,180,145,248,159,33,214,248,173,18,117,24,217,30,205,152,159,166,125,90,186,171,255,105,77,184,199,100,144,187,255,165,192,226,46,206,16,231,122,2,195,40,132,25,175,98,82,217,212,186,253,241,116,156,190,210,218,41,89,221,179,87,206,73,8,103,220,209,175,182,81,185,0,113,215,58,55,165,39,100,169,189,68,183,16,24,165,103,141,170,200,133,216,184,47,79,8,192,202,45,161,157,233,93,95,240,201,179,206,4,97,198,51,66,90,44,139,217,74,24,43,30,159,102,63,177,75,209,56,47,35,207,134,161,69,42,155,67,61,142,98,231,199,223,238,156,200,131,178,18,127,21,176,227,84,9,34,244,167,222,89,246,103,15,80,21,74,58,35,103,40,177,95,62,213,125,116,113,40,122,186,126,162,43,23,123,92,131,11,140,116,217,120,101,105,53,152,89,86,23,215,13,137,2,183,92,171,152,233,109,111,236,100,34,251,57,57,169,57,200,100,202,252,57,193,236,61,211,177,102,74,73,42,11,158,226,187,11,72,7,42,70,215,44,234,214,115,89,5,123,183,129,172,95,45,150,199,157,185,40,136,73,4,52,235,36,26,48,223,203,197,253,134,198,33,25,252,86,255,11,214,55,240,176,174,228,235,181,252,14,106,219,105,237,148,219,104,5,80,2,209,110,219,138,82,240,54,202,72,111,33,114,40,166,186,103,223,7,43,208,9,30,165,181,229,65,69,49,180,207,225,152,133,234,47,238,155,196,188,157,248,26,236,124,31,51,220,167,151,231,126,210,243,81,65,161,200,151,194,210,232,232,226,30,45,69,14,226,65,105,90,182,254,71,150,211,23,93,173,15,180,241,78,69,154,168,68,205,110,244,22,95,4,85,181,150,121,40,218,213,205,68,241,4,82,160,48,25,111,71,193,140,0,208,29,85,96,222,212,194,232,23,68,87,238,26,2,251,176,202,11,182,221,51,38,174,35,92,205,211,163,113,120,150,187,103,210,167,139,35,115,123,67,32,24,97,27,187,55,208,75,218,110,66,199,107,247,149,226,68,241,2,39,143,119,196,220,145,103,49,138,117,159,64,241,130,189,168,112,133,12,50,234,112,202,93,82,202,18,135,255,0,216,40,98,5,103,94,148,239,211,155,123,222,109,87,166,122,252,7,166,8,244,46,175,101,130,41,126,153,123,39,116,115,94,69,27,124,63,17,179,115,181,11,34,78,116,223,152,30,224,18,124,98,35,46,9,67,70,246,227,112,59,208,155,113,61,76,211,136,161,189,36,116,101,119,113,203,7,88,210,231,247,219,216,143,1,136,142,91,7,106,219,159,194,57,234,168,246,127,210,206,1,247,14,51,42,91,165,44,204,179,7,93,232,102,94,168,159,192,106,151,253,55,121,155,16,14,26,197,24,13,163,97,83,181,229,72,87,155,224,8,230,201,82,40,85,161,83,77,33,28,224,43,203,73,182,141,159,41,197,34,106,152,35,254,83,183,246,44,226,210,129,121,246,105,41,44,181,44,84,165,227,199,121,91,250,156,4,94,174,29,212,57,43,142,195,215,224,21,17,24,151,121,107,10,184,141,116,173,118,158,128,177,147,131,225,87,53,180,172,159,106,105,228,172,68,176,202,9,82,97,132,135,247,46,75,42,172,185,58,123,157,212,56,115,92,245,142,180,17,89,152,13,252,57,142,114,106,172,223,145,112,51,20,42,212,26,42,183,130,7,15,97,129,178,52,116,198,247,113,188,248,210,85,116,206,23,210,37,115,19,196,51,208,162,231,68,112,107,221,215,189,103,175,153,200,36,16,210,225,223,14,67,127,210,212,232,211,214,246,112,74,122,209,61,59,213,115,198,37,112,31,206,200,70,216,43,100,148,234,170,86,22,164,117,169,129,0,206,51,189,155,26,139,97,187,226,52,5,37,132,147,10,114,227,24,246,18,127,218,209,6,14,43,96,143,105,156,75,181,140,73,192,115,106,45,217,245,79,165,161,183,184,3,195,139,4,221,81,26,134,98,209,18,175,176,49,40,143,120,12,164,18,53,46,181,214,228,0,60,199,96,24,250,79,37,109,90,38,96,100,103,63,242,66,41,110,56,178,11,154,235,151,28,34,107,85,204,116,80,253,174,157,151,6,192,246,78,202,66,131,0,114,73,187,226,144,56,60,12,228,237,31,179,77,171,158,182,18,196,58,11,107,67,166,1,115,176,47,17,223,145,113,135,137,152,149,27,210,122,221,137,205,67,29,154,89,37,116,189,174,237,169,49,245,15,96,0,26,175,59,250,16,204,236,66,103,102,220,24,238,1,114,97,134,189,120,106,101,130,191,127,121,240,15,152,216,178,29,130,3,40,158,158,109,237,136,249,223,136,105,177,36,192,135,67,78,24,161,174,136,152,4,15,130,144,96,68,207,131,7,143,145,76,63,79,148,160,172,94,140,87,235,202,129,45,221,177,159,106}, {227,192,63,93,107,172,131,142,209,239,187,210,148,236,250,166,235,42,17,154,160,10,148,132,76,92,77,220,148,96,166,205,239,66,198,121,125,76,248,201,145,56,179,177,251,254,239,28,195,131,15,152,60,6,198,11,66,146,144,171,101,174,224,208,112,78,254,130,107,50,99,61,212,192,246,223,156,131,204,11,154,251,71,234,59,54,162,190,81,96,190,175,192,140,70,38,6,89,111,39,23,97,131,24,178,238,98,118,219,90,244,89,212,135,211,3,95,131,211,39,214,21,59,229,244,101,92,246,230,57,149,133,101,149,77,237,118,178,124,116,174,91,17,192,77,141,111,102,127,101,101,185,137,87,56,21,98,147,44,134,53,45,116,148,88,91,138,134,170,210,242,40,49,252,105,148,12,108,85,189,137,2,27,66,106,109,163,157,198,30,98,64,56,224,217,190,166,120,114,183,210,148,59,172,95,81,138,122,174,120,150,48,245,192,177,210,68,65,52,122,110,175,155,188,251,23,23,73,68,234,110,154,172,13,132,3,142,33,253,63,21,108,68,25,209,16,98,28,170,217,211,237,127,178,134,93,208,143,187,106,24,102,246,233,162,81,176,94,184,14,235,210,220,66,51,196,89,76,107,233,96,193,233,142,202,137,217,129,93,136,30,181,27,98,192,85,122,61,58,87,77,87,95,91,194,27,159,115,31,216,160,127,175,52,48,114,15,42,177,208,253,168,238,39,47,122,112,204,181,182,151,248,113,181,99,112,86,164,54,70,8,51,22,122,240,61,123,98,64,226,62,169,194,233,4,0,30,113,33,231,18,166,60,245,47,56,142,86,176,97,64,251,141,92,172,136,66,140,80,95,67,122,187,132,30,236,73,110,32,157,111,0,95,131,81,226,240,160,144,180,74,188,243,240,77,102,153,10,215,240,13,153,196,146,16,253,154,59,247,133,113,213,99,36,142,134,53,32,136,0,92,178,79,125,193,4,155,180,23,247,217,228,60,124,27,108,182,105,178,106,82,229,48,214,114,194,22,189,10,252,13,15,26,170,184,18,36,79,10,48,56,163,171,38,160,4,201,24,137,1,72,49,35,232,243,145,64,116,80,43,182,72,71,179,77,196,77,176,70,213,192,81,15,108,202,238,60,87,44,114,208,246,78,76,82,5,58,86,199,26,219,89,209,141,11,16,137,47,62,63,154,37,4,177,177,149,142,65,230,161,229,30,17,53,246,139,29,190,35,58,88,160,14,203,24,102,204,123,3,30,149,5,165,222,94,251,66,239,45,46,182,14,37,44,204,49,255,99,94,148,185,7,254,98,244,58,162,241,183,149,231,32,214,97,67,20,120,119,201,49,47,28,38,12,76,57,4,61,33,24,58,234,2,77,80,199,104,30,150,101,236,47,49,33,5,24,39,35,135,231,100,169,87,200,162,109,94,58,249,84,209,198,52,210,58,21,46,70,155,96,251,178,101,131,72,178,244,160,118,128,36,245,17,206,37,116,80,134,86,147,6,89,224,4,121,189,42,81,70,135,191,126,156,169,214,10,16,116,232,66,96,133,85,116,225,76,97,138,138,120,216,59,182,147,51,14,226,237,82,65,54,243,151,251,169,222,90,127,100,128,67,102,233,216,204,168,129,171,206,235,20,251,198,3,92,211,130,52,127,134,160,207,38,29,161,89,169,89,1,81,9,242,198,159,146,183,29,19,29,58,181,74,129,190,149,150,19,29,105,49,38,39,55,163,239,210,236,213,104,146,52,141,53,34,66,206,144,38,13,96,159,172,6,248,249,111,218,95,190,162,41,27,1,234,160,101,187,13,35,75,16,219,185,26,194,237,34,207,51,40,0,6,198,31,4,111,134,188,95,146,250,154,124,174,177,115,25,185,38,28,209,245,194,172,40,240,122,169,175,81,49,193,141,118,25,65,218,193,190,153,230,76,29,254,94,223,29,52,206,222,90,195,33,1,69,180,153,22,61,130,8,210,117,187,60,28,166,33,238,152,192,204,74,244,169,107,49,90,146,216,80,243,180,141,6,238,237,13,222,224,114,242,185,132,241,170,74,173,104,127,177,204,125,24,223,128,68,3,35,97,231,46,251,151,102,90,81,37,154,140,145,159,91,158,139,166,152,75,252,30,24,49,79,92,65,229,78,254,71,74,184,244,113,165,216,35,156,244,63,170,247,177,219,178,197,24,175,157,84,99,4,28,21,202,131,1,118,205,163,32,151,52,231,230,177,34,216,94,226,4,6,76,104,40,232,34,149,74,174,55,193,171,88,65,116,131,229,202,37,19,154,69,121,217,198,220,134,2,133,98,161,193,26,253,41,18,219,35,88,39,166,151,138,10,9,160,232,208,90,67,9,28,232,103,114,34,74,155,251,230,246,114,39,223,54,205,255,239,207,28,105,82,43,255,153,75,24,38,237,149,105,200,25,177,6,23,197,154,225,214,96,248,214,151,16,93,14,126,201,114,4,12,198,0,183,127,22,60,89,192,123,45,184,189,126,48,248,120,170,238,221,45,143,94,55,201,34,170,60,128,205,112,153,201,17,206,45,100,68,170,172,174,8,189,207,187,197,154,134,154,150,72,111,54,182,2,104,122,179,206,135,133,90,75,75,105,186,57,110,128,227,212,161,135,240,23,247,249,73,74,109,44,50,38,43,123,235,128,89,115,8,238,30,145,16,162,158,221,86,127,242,212,185,55,29,81,160,1,163,224,175,72,13,71,243,86,31,184,248,132,13,145,128,28,100,7,74,106,148,189,21,118,117,173,138,193,53,201,148,83,70,140,244,6,191,4,30,210,108,141,110,105,29,112,91,31,155,106,30,31,3,210,125,119,229,8,4,25,45,227,140,227,21,210,186,129,97,230,155,249,56,109,229,109,40,64,249,159,14,54,211,231,86,255,27,175,19,2,37,161,126,49,84,16,208,21}, {94,182,143,105,116,224,241,37,196,114,243,184,176,55,131,212,40,180,208,230,2,77,92,166,131,97,67,34,77,59,98,82,61,251,31,211,104,140,94,160,36,137,27,114,236,243,25,212,123,76,228,37,15,19,181,89,107,76,42,129,110,186,180,4,231,130,53,199,147,59,218,122,93,195,164,254,91,72,12,152,35,24,43,3,228,212,174,223,89,74,157,91,195,152,107,40,216,161,30,181,155,253,193,76,136,69,52,58,2,199,77,178,187,248,5,56,186,30,115,230,89,176,29,59,108,156,182,112,93,55,76,191,79,141,9,203,223,41,118,45,245,128,201,112,163,96,78,75,230,219,21,125,202,23,7,233,53,58,90,166,153,71,171,172,249,39,61,220,229,156,188,71,61,143,49,96,209,225,3,127,188,245,57,159,92,65,167,163,22,147,215,13,63,215,84,218,109,24,123,90,203,42,137,87,241,6,251,88,131,225,230,166,18,64,237,10,196,249,157,39,121,156,160,86,132,8,206,197,106,251,0,253,51,103,76,72,222,121,143,79,237,119,74,105,255,89,236,213,238,172,145,54,229,144,203,42,160,194,250,39,40,70,203,71,10,159,49,200,36,223,86,137,134,93,161,120,61,146,220,118,231,42,56,158,194,127,48,54,210,189,115,57,0,3,200,122,35,189,33,151,114,5,171,74,235,166,48,114,35,35,66,231,150,123,112,98,71,193,239,196,63,153,97,27,205,140,156,162,97,84,165,166,218,193,102,21,251,165,42,34,200,167,251,39,30,163,2,246,118,85,148,37,161,233,232,1,11,25,184,3,211,189,109,109,180,204,140,98,105,63,229,52,172,111,220,170,66,115,70,117,72,211,58,77,250,149,103,80,84,186,67,171,216,38,208,156,99,186,117,26,175,248,88,46,85,28,220,66,214,88,144,236,164,164,55,59,217,164,3,153,162,73,191,122,164,42,65,251,7,212,77,223,149,146,100,48,168,108,250,138,190,215,223,77,33,72,115,212,83,10,61,204,19,73,78,252,105,151,125,148,148,36,143,205,159,147,187,203,114,85,202,202,106,199,19,59,48,183,188,140,112,240,46,39,108,48,118,107,146,225,10,72,98,144,22,246,200,173,165,73,149,166,107,209,245,147,175,6,204,36,38,77,255,86,115,219,158,179,207,142,255,174,164,234,178,254,97,9,247,105,221,92,49,189,74,83,42,209,198,182,77,211,124,136,124,224,59,182,82,73,53,219,194,166,33,19,222,116,179,152,166,27,172,180,224,218,174,68,148,71,47,202,128,56,61,216,77,163,216,55,243,142,169,75,90,86,236,216,39,73,4,199,4,197,127,249,60,167,151,225,129,87,98,125,93,187,129,167,175,131,22,85,185,243,20,121,134,120,62,187,41,213,67,13,60,220,191,234,44,83,84,196,141,82,189,173,47,247,159,121,195,240,162,7,176,110,140,63,78,15,141,212,190,112,185,189,189,202,69,6,83,93,198,183,201,240,139,212,48,161,7,33,194,62,147,251,4,162,11,88,125,164,178,164,47,167,177,218,169,235,179,184,184,255,111,241,178,98,143,86,170,83,190,97,86,130,79,123,239,59,226,186,195,248,186,241,124,176,153,146,181,144,107,231,132,81,34,47,135,75,38,75,127,189,124,157,140,39,25,240,224,138,129,136,234,197,170,88,68,96,52,155,219,123,60,86,92,141,157,170,59,190,23,6,61,79,155,129,151,32,25,206,0,96,158,76,119,88,251,80,116,179,98,109,20,130,187,166,125,159,80,18,38,146,196,60,73,146,52,104,16,119,38,254,236,248,126,245,93,100,46,123,58,114,187,97,1,214,5,71,162,42,9,179,83,60,152,181,192,88,78,249,112,227,5,68,69,108,219,44,61,183,20,71,126,217,23,32,240,58,189,174,152,182,108,8,9,73,74,26,193,77,97,133,47,70,207,139,35,172,230,6,54,96,235,91,209,87,201,213,80,103,23,201,64,9,16,59,71,12,176,85,113,74,141,218,108,155,150,108,136,85,2,2,14,52,244,51,125,4,75,50,229,10,245,6,188,48,96,119,48,126,236,141,234,116,18,202,106,164,141,159,43,39,59,250,158,113,230,242,159,9,31,191,123,123,241,233,179,167,115,167,68,30,47,204,88,32,11,63,39,39,219,14,181,145,152,185,146,224,213,111,131,134,67,183,174,28,68,125,157,160,10,175,187,255,194,45,130,108,30,130,162,66,125,195,238,0,170,212,157,75,246,2,2,80,149,185,233,98,224,243,175,20,244,94,243,199,109,6,96,96,69,191,250,125,209,165,191,128,175,234,100,198,11,29,187,73,56,189,117,10,255,48,240,12,111,243,9,152,179,204,91,73,100,177,241,243,239,168,177,121,214,202,112,233,108,142,129,50,148,66,50,150,16,74,117,144,231,245,65,113,143,245,151,9,117,109,225,5,121,214,154,17,142,21,219,134,5,104,149,108,66,59,126,19,137,19,115,192,69,152,158,59,234,101,194,35,179,199,238,229,182,57,238,220,140,38,104,52,219,9,81,80,185,93,237,109,97,247,11,137,199,149,18,146,73,78,109,242,27,177,164,217,97,127,164,102,194,13,255,216,195,155,88,58,30,72,90,103,5,91,35,39,176,53,63,125,126,169,236,122,229,225,192,250,215,30,10,138,126,247,34,75,68,243,210,195,137,204,91,78,87,126,111,47,192,180,158,214,171,141,118,111,153,87,129,81,81,204,227,206,64,158,251,143,190,131,176,48,9,126,33,200,3,236,245,244,49,194,191,218,85,24,241,239,137,181,39,149,78,125,208,186,106,65,103,242,43,20,107,187,120,98,113,114,219,255,0,51,160,120,114,6,250,167,80,252,111,195,4,69,157,178,3,166,211,221,29,204,210,157,103,179,23,120,218,48,150,73,56,62,236,125,230,72}, {42,3,185,191,41,119,55,89,221,204,115,75,110,20,25,138,242,101,187,113,27,178,91,65,71,89,104,169,36,244,59,98,194,33,10,146,157,118,153,160,3,228,37,26,18,105,147,44,95,127,127,80,62,38,120,181,12,48,143,19,238,6,203,59,9,202,130,138,175,53,238,173,95,112,37,199,93,220,137,173,232,208,125,140,193,237,27,33,22,177,5,122,125,158,37,138,136,102,144,228,6,132,27,113,159,194,104,12,35,25,211,8,121,206,110,212,162,128,231,140,97,29,155,234,94,223,154,62,225,118,68,56,242,148,53,1,185,66,97,184,194,14,98,12,248,226,19,47,253,194,6,128,142,251,9,196,255,255,114,176,53,32,129,69,212,5,75,167,223,104,241,9,217,237,16,208,163,244,0,133,88,15,166,28,209,163,214,213,157,114,223,94,8,105,159,216,154,193,252,100,231,134,153,13,253,122,171,79,243,154,36,37,90,8,94,12,241,143,131,119,150,8,157,156,134,166,177,232,74,126,108,91,104,182,104,168,209,237,157,77,204,155,87,211,153,209,59,34,48,134,163,109,97,33,116,96,166,59,155,0,26,203,121,160,209,4,163,243,70,102,25,209,235,168,71,193,10,174,72,110,45,137,165,49,130,1,231,206,78,75,174,189,92,176,246,76,149,93,174,146,118,247,200,19,6,148,195,110,94,114,161,20,195,128,41,63,148,56,4,232,162,6,179,75,188,22,44,197,159,20,13,102,217,173,62,84,25,161,34,126,157,17,110,32,221,67,52,122,203,189,21,141,27,187,156,149,255,190,98,56,191,56,168,232,230,223,200,233,32,91,74,84,91,55,228,160,254,59,218,208,200,17,80,217,46,118,232,210,222,62,74,2,79,44,17,165,114,134,36,30,90,239,92,196,127,24,164,80,11,151,50,18,164,15,115,234,201,2,253,182,22,0,166,60,163,137,139,15,84,140,236,153,179,196,244,53,219,73,63,116,200,97,176,44,19,152,243,147,213,121,41,35,204,227,240,108,174,168,85,173,94,27,173,99,16,219,157,229,162,53,1,37,214,203,28,141,62,51,107,95,146,180,249,236,235,165,124,212,220,29,233,14,219,62,32,8,166,121,163,135,10,154,12,151,199,233,249,135,219,15,100,186,68,192,58,115,6,48,134,51,57,70,45,159,57,233,196,85,250,162,176,4,99,182,18,108,231,128,120,219,189,117,117,32,217,234,163,109,170,134,253,225,81,183,138,207,211,193,194,189,103,2,176,218,250,129,57,221,78,15,15,43,55,241,22,143,43,195,205,152,80,58,91,202,242,198,237,68,130,228,226,165,118,112,157,159,71,3,15,13,169,41,224,64,54,229,251,246,238,104,119,123,104,171,123,251,214,193,55,27,204,51,155,172,174,101,193,144,153,95,189,31,10,143,136,35,118,61,197,14,82,1,178,158,224,103,211,204,52,192,154,63,25,240,101,200,251,60,47,82,209,159,156,213,82,135,188,124,88,158,108,152,35,71,12,25,248,3,254,82,188,153,150,8,172,218,135,184,255,177,228,206,248,102,101,21,64,103,86,69,231,255,209,156,10,67,170,240,195,12,87,160,11,234,161,253,198,140,91,223,150,110,182,179,189,114,252,44,158,46,28,156,172,24,156,215,98,247,161,221,230,45,34,2,244,49,8,64,204,191,26,138,31,127,163,60,43,149,103,246,243,98,191,2,157,45,23,171,248,179,149,152,205,235,219,35,178,20,74,120,103,196,247,140,92,191,155,58,33,201,113,159,103,130,25,55,6,96,138,33,25,240,66,156,31,31,94,233,43,0,44,83,16,89,20,14,159,8,236,236,5,182,182,184,157,49,84,179,174,239,119,121,250,200,245,160,79,178,171,245,43,90,222,131,126,2,103,35,227,231,221,17,37,169,201,244,183,118,69,215,59,178,142,236,0,219,179,76,69,181,129,181,221,110,104,46,43,24,12,83,32,252,26,30,109,252,204,10,13,65,172,105,120,22,79,81,252,127,16,5,227,87,174,73,237,21,171,175,129,58,207,79,197,59,158,23,20,24,20,55,51,23,137,253,130,72,171,163,78,125,61,16,242,41,167,36,52,4,94,250,65,68,98,173,233,161,31,32,132,172,51,173,209,50,70,37,183,210,144,21,115,80,72,92,122,57,210,106,94,248,203,89,209,27,55,171,150,199,93,51,253,111,1,172,190,164,197,44,221,47,163,19,135,127,67,23,224,111,56,120,94,86,99,195,142,123,72,109,72,234,45,194,179,2,193,22,112,81,64,183,180,126,239,104,74,131,97,10,196,181,176,151,32,182,251,1,202,252,197,105,24,94,37,42,119,50,89,162,243,55,54,19,95,123,49,94,63,93,159,81,212,205,6,120,226,126,235,131,64,58,161,55,190,192,255,201,186,243,12,68,83,177,145,54,152,23,241,65,41,215,68,79,11,156,60,194,228,20,176,242,194,64,224,56,14,62,3,77,234,219,138,234,108,206,78,4,138,143,101,192,111,217,180,66,189,160,168,161,1,184,120,255,186,226,122,26,221,5,133,71,86,72,110,82,40,110,102,17,216,178,138,5,85,208,100,32,69,191,26,122,132,204,45,133,99,41,10,247,100,32,88,224,208,179,14,53,139,61,232,107,128,151,73,79,56,52,201,202,249,173,242,140,211,190,147,106,49,213,206,119,44,170,28,136,153,159,255,120,37,79,4,40,133,139,188,234,33,29,135,228,154,117,120,166,239,241,75,249,9,178,100,0,133,181,143,56,190,89,51,222,97,224,192,117,32,54,145,252,115,33,89,40,212,78,172,83,135,65,171,231,139,182,163,83,144,167,86,59,42,93,73,199,184,131,217,248,108,14,174,162,201,231,178,203,183,220,122,208,30,128,194,59,89,47,30,197,119,203,234,205,74,169,238,133,159,167}, } ; static const unsigned char precomputed_core_multsntrup653_k[precomputed_core_multsntrup653_NUM][crypto_core_KEYBYTES] = { {0,0,0,0,0,0,-1,0,-1,0,1,-1,-1,-1,0,0,-1,-1,0,0,-1,-1,1,0,1,-1,1,1,-1,1,0,-1,0,0,0,-1,1,-1,-1,0,0,0,0,0,0,0,1,0,0,1,1,-1,-1,-1,-1,1,0,0,-1,1,0,1,1,0,1,0,-1,0,0,-1,1,1,0,1,0,0,0,0,-1,1,-1,0,-1,1,0,0,-1,0,0,0,-1,0,1,1,1,-1,1,-1,-1,1,0,0,1,1,1,0,1,-1,1,-1,0,0,0,0,1,1,-1,1,0,-1,0,-1,0,0,0,0,0,1,-1,-1,0,1,0,0,1,0,0,0,1,-1,0,-1,1,-1,0,1,0,1,0,0,1,0,-1,0,-1,-1,-1,0,1,0,0,-1,0,-1,0,1,1,-1,-1,0,-1,-1,1,-1,0,0,-1,-1,0,1,0,0,0,1,1,0,0,1,1,-1,-1,1,1,1,0,1,-1,1,1,0,0,0,1,0,-1,0,0,0,-1,0,0,0,-1,0,0,1,0,1,1,0,0,0,-1,0,0,1,1,0,0,1,0,0,-1,0,-1,1,0,0,1,0,0,-1,0,1,0,0,0,1,0,0,0,0,0,-1,0,0,0,-1,1,-1,-1,-1,-1,1,-1,0,1,1,1,0,-1,1,0,0,-1,0,0,-1,1,1,1,0,1,-1,1,1,1,0,-1,0,0,0,0,1,-1,-1,0,0,0,0,0,0,0,1,1,0,0,-1,0,0,0,0,1,1,1,0,-1,0,-1,1,-1,-1,1,-1,1,1,1,0,0,0,0,-1,1,-1,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,1,-1,1,0,1,-1,1,0,0,0,1,0,0,0,0,0,0,1,-1,1,0,0,-1,0,-1,0,1,-1,0,1,1,-1,-1,0,0,-1,1,1,0,-1,0,0,-1,1,1,0,0,1,-1,0,-1,1,-1,0,0,-1,0,0,-1,-1,-1,0,0,0,1,0,0,-1,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,1,-1,0,0,0,1,0,0,-1,-1,-1,0,1,-1,0,1,0,0,1,0,0,-1,1,1,0,0,-1,0,0,-1,1,0,1,0,0,0,-1,0,-1,0,-1,0,-1,1,1,0,1,0,0,1,0,0,-1,0,0,0,-1,0,1,1,0,0,-1,0,-1,-1,1,-1,1,0,1,0,-1,0,-1,1,0,1,0,-1,0,1,1,0,1,0,-1,1,1,1,0,1,-1,0,1,0,1,-1,0,0,-1,1,1,0,-1,-1,0,1,0,0,0,-1,0,0,0,1,-1,-1,1,0,-1,0,0,0,-1,1,-1,-1,0,0,-1,0,-1,-1,-1,1,0,1,0,0,-1,-1,-1,-1,1,0,1,0,0,1,0,-1,1,-1,0,-1,0,0,-1,0,1,0,0,0,1,1,-1,0,0,-1,-1,0,0,0,-1,0,0,0,-1,0,0,0,1,0,-1,0,-1,1,-1,-1,1,0,0,0,-1,-1,-1,0,-1,0,-1,1,1,1,1,-1,-1,-1,0,0,1,-1,1,0,0,0,0,1,1,1,0}, {0,0,1,1,1,0,-1,1,0,1,-1,-1,1,1,1,-1,0,-1,-1,1,0,-1,-1,-1,1,1,0,0,0,0,-1,0,0,-1,-1,1,0,0,0,1,-1,1,1,0,0,1,0,1,-1,1,0,0,0,-1,0,1,0,0,-1,1,1,0,-1,1,-1,0,1,-1,0,0,0,-1,0,1,-1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,-1,-1,0,-1,1,0,0,0,0,1,0,1,0,0,1,0,1,-1,1,1,0,1,-1,0,0,-1,0,-1,1,0,-1,0,1,1,0,-1,0,0,0,1,1,-1,0,1,1,1,0,0,0,-1,-1,1,1,0,1,0,0,0,1,1,1,-1,1,-1,0,-1,0,0,0,-1,1,0,0,-1,0,0,1,0,1,0,1,-1,0,-1,-1,1,-1,1,0,1,1,1,0,0,-1,1,0,-1,1,0,1,1,0,1,1,0,0,1,-1,0,0,-1,0,-1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,-1,0,0,-1,1,-1,-1,-1,0,0,0,-1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,-1,1,1,0,-1,0,0,1,1,0,0,0,0,0,1,-1,-1,1,1,1,1,0,1,1,0,1,0,1,1,-1,-1,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,0,1,1,0,1,-1,1,-1,1,0,0,0,0,0,1,1,0,0,0,-1,-1,-1,0,0,0,-1,0,0,-1,-1,0,0,0,1,-1,1,1,-1,1,0,0,0,0,0,1,1,1,0,-1,0,0,1,1,1,-1,0,1,-1,0,-1,0,0,0,0,0,1,0,-1,1,-1,1,-1,1,1,0,-1,-1,-1,-1,0,0,-1,-1,1,-1,-1,1,0,0,1,0,-1,-1,0,-1,1,0,0,-1,0,0,0,1,-1,-1,0,0,1,1,1,1,1,0,0,1,0,-1,1,0,0,-1,0,0,0,-1,0,0,-1,-1,1,-1,0,0,-1,0,-1,0,-1,1,0,0,0,0,1,-1,0,0,-1,1,0,1,1,0,-1,0,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,-1,0,1,-1,0,1,0,0,0,0,0,0,-1,1,0,0,0,0,-1,0,0,-1,-1,0,0,1,1,0,1,1,-1,1,0,1,1,0,0,-1,1,0,-1,0,0,-1,-1,-1,0,0,0,1,0,1,-1,1,0,-1,0,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,-1,-1,0,-1,0,0,0,0,1,-1,0,0,0,0,0,0,-1,-1,0,1,0,-1,-1,-1,-1,1,-1,-1,-1,-1,0,1,1,-1,0,1,0,0,0,0,0,0,1,0,1,1,-1,-1,-1,1,1,-1,-1,0,1,1,0,1,0,0,0,-1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,-1,0,0,0,1,0,-1,1,0,1,-1,1,1,1,0,0,0,1,-1,0,0,0,1,-1,0,0,0,-1,-1,0,1,0,0}, {1,-1,0,1,0,1,-1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,-1,0,-1,0,1,1,0,1,0,0,-1,1,0,0,-1,0,0,0,1,1,0,0,0,1,1,-1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,-1,0,0,1,0,0,0,-1,0,-1,0,1,-1,-1,1,0,-1,1,0,0,0,-1,1,0,1,0,1,-1,-1,0,0,0,0,0,0,0,0,1,0,0,1,0,-1,0,1,0,0,0,1,0,1,0,1,0,1,1,1,-1,0,0,0,0,0,1,-1,0,0,0,1,0,0,-1,1,0,1,-1,1,-1,1,1,1,0,1,-1,0,1,0,-1,0,0,0,1,0,-1,0,0,0,1,-1,0,0,0,0,1,-1,0,0,0,1,-1,1,0,-1,-1,0,-1,-1,0,0,0,0,0,-1,-1,1,0,0,0,0,0,0,1,-1,-1,0,1,0,-1,0,-1,-1,0,0,0,0,0,0,-1,1,0,-1,0,0,1,1,-1,0,1,1,0,-1,-1,0,-1,1,-1,1,0,-1,1,1,0,0,0,0,-1,-1,-1,0,-1,0,-1,0,1,0,1,0,-1,0,1,-1,0,0,0,1,0,0,0,0,-1,1,0,-1,0,0,0,0,1,0,0,0,0,0,0,1,-1,-1,0,0,0,-1,0,1,1,-1,0,1,-1,0,0,0,-1,-1,-1,-1,1,1,-1,-1,1,1,-1,1,-1,1,1,0,-1,-1,1,-1,1,0,0,0,0,0,1,-1,-1,1,1,1,-1,-1,0,0,-1,0,0,0,0,0,1,-1,-1,0,-1,0,1,0,1,1,1,-1,1,0,0,-1,1,1,0,0,0,0,0,0,0,0,-1,1,-1,0,-1,-1,0,-1,1,1,0,0,-1,0,-1,1,1,0,1,1,0,0,0,-1,0,0,1,1,0,-1,0,0,0,1,0,0,0,-1,0,0,1,1,1,0,-1,0,0,0,-1,0,0,-1,1,1,0,1,0,0,1,0,-1,0,0,0,0,0,0,0,0,-1,0,1,1,0,-1,0,-1,-1,-1,0,0,1,0,0,0,1,0,0,-1,1,0,0,-1,1,0,0,0,-1,-1,1,0,0,1,0,0,0,0,-1,1,1,0,-1,1,0,-1,-1,1,0,0,1,0,-1,0,-1,0,0,0,0,-1,0,-1,-1,0,0,1,1,1,0,-1,-1,1,0,0,0,1,1,0,0,1,1,0,-1,1,-1,-1,1,-1,0,-1,1,0,1,0,0,1,1,0,0,0,1,-1,1,-1,0,0,-1,1,1,0,-1,0,-1,0,1,1,0,1,0,0,0,0,0,-1,-1,1,0,0,1,1,0,-1,0,-1,0,-1,-1,-1,1,1,1,-1,-1,1,-1,0,0,1,0,-1,0,-1,0,0,-1,1,0,0,0,-1,0,1,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,-1,-1,-1,1,-1,0,-1,0,0,1,0,0,1,-1,1,-1,-1,1,-1,0,-1,0,0,0,0,0,1,1,1,1,0,-1,1,-1,1,0,0,-1,0,0,0,1,-1,1}, {0,0,1,0,0,0,0,-1,0,1,1,-1,1,0,0,1,-1,0,0,1,1,-1,1,0,0,1,0,0,-1,0,0,-1,0,0,1,-1,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,-1,0,-1,-1,0,-1,1,-1,-1,1,0,-1,1,-1,0,0,0,0,1,-1,-1,0,1,-1,1,-1,-1,0,0,0,0,1,0,0,0,1,0,0,0,-1,0,-1,0,0,-1,0,0,1,0,-1,-1,1,1,-1,-1,0,0,0,1,-1,-1,0,-1,0,0,0,1,0,0,1,0,0,0,1,-1,1,0,0,0,0,0,1,0,0,-1,-1,-1,-1,0,0,0,0,1,0,0,1,0,1,0,-1,0,0,1,-1,0,0,0,0,-1,1,-1,0,1,0,0,0,0,1,0,-1,1,0,1,1,0,-1,1,0,0,-1,0,0,1,1,0,0,-1,0,-1,-1,-1,0,0,1,-1,0,0,0,1,-1,0,1,0,0,0,0,0,0,0,0,0,0,-1,0,1,0,1,1,0,-1,0,0,0,-1,1,1,-1,1,-1,0,-1,0,1,0,-1,-1,0,1,-1,-1,1,1,-1,1,0,-1,1,-1,-1,-1,-1,0,0,1,1,0,1,-1,0,1,-1,0,0,0,0,-1,1,1,0,-1,0,1,1,0,0,-1,0,0,0,1,0,1,0,1,0,0,0,0,0,-1,0,1,1,0,1,0,0,0,-1,-1,1,0,0,-1,1,1,0,0,1,-1,-1,0,-1,1,-1,0,0,-1,-1,-1,0,1,1,0,-1,0,0,0,0,-1,0,-1,0,-1,-1,0,0,1,-1,0,0,-1,0,0,-1,0,-1,1,-1,0,-1,1,0,0,-1,0,0,0,-1,0,1,0,1,1,0,0,0,1,0,0,0,-1,0,1,0,0,1,-1,0,-1,1,0,0,0,1,-1,-1,1,-1,-1,0,0,0,-1,0,-1,-1,1,0,0,0,0,1,0,1,1,1,-1,-1,0,0,0,0,0,-1,0,-1,0,0,0,0,-1,-1,-1,1,0,1,1,-1,1,1,0,1,-1,0,1,1,-1,1,-1,1,0,1,0,0,-1,1,0,-1,1,-1,1,0,0,1,-1,0,0,1,0,0,0,0,-1,0,1,0,0,-1,0,0,0,0,0,1,0,0,0,-1,-1,0,0,0,-1,-1,0,0,1,1,0,0,0,0,0,-1,-1,1,-1,-1,0,1,0,1,1,-1,0,0,0,-1,0,0,-1,-1,1,0,0,-1,0,0,0,-1,0,1,0,0,0,0,1,0,1,0,0,1,0,-1,0,-1,1,0,0,0,1,-1,0,1,0,-1,1,0,-1,1,-1,-1,-1,-1,1,0,1,0,0,1,1,1,0,0,-1,-1,1,0,0,0,0,-1,0,0,0,0,1,1,0,-1,1,-1,1,0,0,0,0,-1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,-1,-1,0,1,0,0,1,0,-1,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,-1,0,-1,0,0,1,0,-1,-1,0,-1,0,0,0,-1}, } ; static const unsigned char precomputed_core_multsntrup653_c[precomputed_core_multsntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_multsntrup653_impl(long long impl) { unsigned char *h = test_core_multsntrup653_h; unsigned char *n = test_core_multsntrup653_n; unsigned char *k = test_core_multsntrup653_k; unsigned char *c = test_core_multsntrup653_c; unsigned char *h2 = test_core_multsntrup653_h2; unsigned char *n2 = test_core_multsntrup653_n2; unsigned char *k2 = test_core_multsntrup653_k2; unsigned char *c2 = test_core_multsntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_multsntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup653(impl); printf("core_multsntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup653_implementation(impl),ntruprime_dispatch_core_multsntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup653; printf("core_multsntrup653 selected implementation %s compiler %s\n",ntruprime_core_multsntrup653_implementation(),ntruprime_core_multsntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_multsntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_multsntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_multsntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_multsntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_multsntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_multsntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_multsntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_multsntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_multsntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_multsntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_multsntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup653")) return; storage_core_multsntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_multsntrup653_h = aligned(storage_core_multsntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_multsntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_multsntrup653_n = aligned(storage_core_multsntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_multsntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_multsntrup653_k = aligned(storage_core_multsntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_multsntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_multsntrup653_c = aligned(storage_core_multsntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_multsntrup653_h2 = callocplus(maxalloc); test_core_multsntrup653_h2 = aligned(storage_core_multsntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_multsntrup653_n2 = callocplus(maxalloc); test_core_multsntrup653_n2 = aligned(storage_core_multsntrup653_n2,crypto_core_INPUTBYTES); storage_core_multsntrup653_k2 = callocplus(maxalloc); test_core_multsntrup653_k2 = aligned(storage_core_multsntrup653_k2,crypto_core_KEYBYTES); storage_core_multsntrup653_c2 = callocplus(maxalloc); test_core_multsntrup653_c2 = aligned(storage_core_multsntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_multsntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup653();++impl) forked(test_core_multsntrup653_impl,impl); ++test_core_multsntrup653_h; ++test_core_multsntrup653_n; ++test_core_multsntrup653_k; ++test_core_multsntrup653_c; ++test_core_multsntrup653_h2; ++test_core_multsntrup653_n2; ++test_core_multsntrup653_k2; ++test_core_multsntrup653_c2; } free(storage_core_multsntrup653_c2); free(storage_core_multsntrup653_k2); free(storage_core_multsntrup653_n2); free(storage_core_multsntrup653_h2); free(storage_core_multsntrup653_c); free(storage_core_multsntrup653_k); free(storage_core_multsntrup653_n); free(storage_core_multsntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_multsntrup761.c0000644000000000000000000016230114705505543023543 0ustar rootroot/* ----- core/multsntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_multsntrup761_checksums[] = { "eda43ab4b93ce66fd26d8c0989b0297c8fe1e6984ba9b751f6193d35ef8a7a85", "67171a7876696cfda06721697664dad2f14395fdc559520f41f90fce0195ecba", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_multsntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_multsntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_multsntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_multsntrup761_CONSTBYTES static void *storage_core_multsntrup761_h; static unsigned char *test_core_multsntrup761_h; static void *storage_core_multsntrup761_n; static unsigned char *test_core_multsntrup761_n; static void *storage_core_multsntrup761_k; static unsigned char *test_core_multsntrup761_k; static void *storage_core_multsntrup761_c; static unsigned char *test_core_multsntrup761_c; static void *storage_core_multsntrup761_h2; static unsigned char *test_core_multsntrup761_h2; static void *storage_core_multsntrup761_n2; static unsigned char *test_core_multsntrup761_n2; static void *storage_core_multsntrup761_k2; static unsigned char *test_core_multsntrup761_k2; static void *storage_core_multsntrup761_c2; static unsigned char *test_core_multsntrup761_c2; #define precomputed_core_multsntrup761_NUM 4 static const unsigned char precomputed_core_multsntrup761_h[precomputed_core_multsntrup761_NUM][crypto_core_OUTPUTBYTES] = { {39,255,41,4,112,0,100,5,154,5,217,8,13,3,144,0,213,6,90,6,158,252,32,1,151,251,65,1,8,254,184,247,103,251,194,3,70,249,244,1,70,0,41,7,114,254,203,4,176,253,177,2,86,250,61,8,67,6,189,2,174,5,110,254,63,247,245,4,67,249,7,255,80,247,175,248,220,248,142,0,72,253,68,247,20,8,157,6,253,254,36,4,223,5,210,250,150,8,113,250,68,5,242,7,200,252,89,249,14,3,114,253,123,255,97,253,109,8,77,2,238,251,210,253,104,251,195,5,65,250,173,249,24,247,65,6,189,8,226,6,229,4,231,5,3,248,155,8,158,1,60,248,25,253,192,2,113,255,226,3,34,5,243,254,198,252,152,250,43,5,134,254,88,0,180,2,249,4,55,6,226,247,65,4,242,254,27,0,237,253,241,7,144,254,239,248,113,4,193,8,160,250,250,1,84,254,130,6,18,254,9,252,239,1,11,250,164,251,128,8,44,7,184,6,98,248,72,5,38,1,12,4,195,249,184,255,118,6,208,252,29,254,211,248,175,5,175,251,114,251,94,3,179,255,80,2,140,0,5,253,88,3,154,249,194,3,113,6,54,0,226,8,37,5,131,254,151,6,58,5,170,250,51,252,55,5,116,1,93,1,149,1,143,5,228,252,113,249,109,247,26,8,34,252,137,249,228,253,191,247,48,248,220,250,163,253,32,255,150,255,249,252,197,5,13,253,122,255,203,1,136,5,155,1,181,249,213,255,248,1,172,255,168,3,132,248,250,2,145,250,252,0,36,247,175,5,183,255,154,8,43,2,50,5,51,8,130,253,114,247,249,247,157,3,112,248,110,249,248,249,20,0,111,255,234,2,168,3,82,6,11,4,101,251,24,247,31,251,122,247,110,4,206,0,120,248,215,248,83,1,43,7,223,7,128,8,136,2,26,251,107,3,226,250,119,4,60,248,25,254,142,0,85,5,171,7,77,247,155,5,222,255,30,248,61,0,169,250,213,1,81,253,64,250,237,249,70,1,121,255,157,0,143,1,238,249,253,251,234,7,213,3,57,3,247,8,40,7,240,253,40,8,148,250,115,4,12,8,123,255,220,6,225,3,234,252,31,8,217,8,172,255,3,1,139,251,202,3,199,7,237,0,238,6,72,250,138,248,138,8,54,253,55,255,209,254,115,248,151,7,79,0,41,247,189,253,158,8,1,1,158,250,36,251,179,1,55,6,226,247,121,247,169,253,141,252,139,5,102,255,150,254,240,6,207,250,50,2,252,0,141,254,195,251,64,2,217,6,40,247,80,0,37,250,187,3,119,7,176,248,22,5,37,1,52,8,151,1,127,7,215,3,122,255,229,254,230,8,128,4,0,2,211,5,229,1,60,250,162,5,254,247,187,4,87,254,91,253,131,247,168,254,237,250,205,252,45,0,131,6,227,3,35,247,170,2,95,2,130,255,218,2,121,3,122,255,171,5,172,5,245,253,130,251,221,2,233,3,167,7,59,7,50,7,154,255,24,7,232,2,95,255,159,252,254,5,90,8,74,253,43,8,1,1,42,4,179,2,87,5,42,5,22,6,250,252,142,248,45,8,110,255,213,8,97,249,147,252,119,7,42,5,168,7,244,253,39,247,205,250,218,1,159,255,10,247,115,249,115,249,72,250,178,254,43,2,127,248,198,0,177,247,67,251,2,2,220,252,230,250,102,6,247,8,110,255,176,247,225,8,190,1,204,0,221,250,106,1,22,5,160,248,209,5,172,1,11,6,0,0,207,251,24,6,78,7,231,248,173,2,128,249,52,2,137,248,184,3,35,255,217,6,45,3,205,248,15,4,150,8,145,254,35,248,231,8,213,251,221,4,218,3,34,3,8,250,187,252,243,8,252,3,67,254,19,7,254,4,57,247,85,0,33,0,65,4,51,2,93,252,0,5,42,8,207,253,174,5,125,248,167,247,107,255,76,2,81,251,33,247,179,5,165,252,215,251,213,253,200,5,84,7,207,1,174,251,52,252,32,8,95,255,243,248,55,3,14,2,69,254,78,8,64,248,211,5,160,249,111,255,236,252,64,1,72,2,76,253,112,5,204,248,46,0,252,7,64,249,156,254,117,252,42,5,212,247,139,8,190,247,101,8,20,247,78,8,227,253,125,253,235,2,198,251,198,6,57,0,105,5,150,252,232,249,134,4,1,255,186,7,185,254,64,252,171,7,143,7,152,1,91,253,106,5,229,5,127,1,53,254,97,5,229,8,184,252,206,254,48,254,233,1,147,253,203,3,139,249,197,3,216,7,40,254,162,3,163,249,10,253,110,3,168,0,220,8,33,247,179,3,185,255,185,254,24,0,61,4,136,252,195,1,197,251,129,0,9,247,75,255,137,252,181,250,15,5,174,255,248,251,30,249,116,251,118,5,204,2,238,7,237,255,93,7,218,4,183,1,57,251,222,253,226,250,246,250,128,249,227,247,37,247,162,248,145,251,26,250,77,5,162,0,135,254,83,0,55,0,116,250,22,0,20,7,104,248,121,249,222,247,152,8,103,4,207,6,244,2,202,0,7,250,96,255,145,1,30,254,177,7,217,7,69,7,91,255,104,254,240,248,122,0,129,250,132,251,208,5,93,8,128,3,208,3,201,3,174,247,30,6,102,252,162,251,161,7,122,2,134,250,106,248,91,250,227,251,190,255,76,250,221,249,189,247,235,248,90,252,179,252,217,5,62,7,109,6,227,250,230,247,130,247,133,8,236,255,77,2,239,252,182,255,81,250,26,2,209,248,172,4,184,252,114,251,127,1,220,255,177,249,247,251,229,253,110,254,113,254,168,248,41,4,59,252,179,6,228,247,93,7,30,247,208,248,236,253,168,4,101,0,234,3,222,0,133,253,112,252,39,254,222,0,242,8,76,8,153,251,115,4,206,247,68,2,231,254,195,247,239,8,108,4,158,251,59,249,194,5,111,8,245,253,134,6,1,255,154,254,10,248,228,254,113,2,241,3,28,247,253,2,102,251,82,255,74,1,88,252,219,255,95,249,154,251,126,250,208,0,154,4,223,248,33,5,189,249,204,255,1,252,12,6,41,250,206,3,78,255,88,2,183,249,40,4,137,4,99,1,210,3,185,7,68,253,162,248,7,254,230,6,145,249,75,252,182,4,244,252,234,254,19,1,115,252,67,6,230,251,137,252,130,248,221,252,251,252,75,250,151,2,205,250,171,249,208,247,68,4,18,4,11,254,37,7,226,1,204,255,231,2,31,253,39,3,219,2,85,250,114,252,194,251,106,6,1,0,147,4,44,4,193,6,140,255,10,255,141,7,181,254,234,252,196,253,59,2,254,254,200,255,209,248,201,251,151,2,101,251,148,1,225,7,115,253,129,2,64,7,176,3,173,5,183,4,32,254,74,6,248,4,144,251}, {247,6,235,0,165,253,69,1,62,6,163,249,81,4,56,252,73,1,68,248,135,6,29,6,23,7,146,247,225,2,120,250,74,253,222,4,58,249,200,3,40,1,62,7,115,248,172,250,229,249,155,251,96,250,54,7,241,4,24,250,252,6,17,255,43,8,221,6,20,1,71,255,19,249,134,5,88,255,92,0,102,5,90,6,178,3,128,254,204,0,6,254,74,249,94,2,29,247,33,0,13,251,216,253,111,6,247,2,89,251,138,254,20,251,198,6,142,6,5,2,164,251,49,3,1,2,193,250,5,254,181,7,54,250,124,6,41,2,136,3,200,5,100,255,132,3,53,1,157,2,220,5,1,4,69,255,55,4,15,2,34,252,124,5,45,8,16,7,252,0,252,1,87,251,254,2,77,3,58,7,227,249,7,5,72,249,17,3,75,252,87,249,253,2,23,251,5,249,143,1,45,4,164,4,215,4,33,254,119,2,122,251,86,248,163,251,236,248,183,1,2,252,148,252,255,1,236,2,176,249,34,247,133,249,142,6,70,4,248,248,89,247,20,255,21,8,203,1,156,5,14,252,56,0,58,7,153,250,167,252,131,3,49,5,169,0,165,0,181,249,63,249,20,0,212,251,153,252,142,7,33,6,222,5,174,7,206,3,53,3,17,250,38,2,213,255,45,254,215,6,10,6,203,255,65,248,52,1,176,1,123,7,81,250,201,254,202,8,122,249,47,253,10,254,14,1,121,2,155,255,122,253,245,3,117,4,189,251,36,5,19,6,200,255,213,252,92,253,176,8,125,251,65,253,185,254,233,4,254,250,235,2,184,252,164,3,87,251,79,4,75,5,77,247,251,250,210,2,162,6,61,254,97,247,250,0,217,251,172,4,195,3,149,1,2,249,176,8,177,6,49,254,61,8,132,4,195,248,20,252,165,252,184,252,45,253,15,251,117,254,215,5,196,0,48,254,134,6,118,253,232,251,121,250,52,7,84,8,150,250,140,7,51,4,148,254,222,248,146,249,74,255,254,5,160,254,254,250,140,254,92,1,163,249,170,5,78,247,7,3,186,250,59,254,216,6,185,5,209,2,237,1,125,7,209,3,150,4,186,7,242,254,78,247,100,250,213,251,136,249,94,248,11,5,137,248,29,4,49,251,28,252,34,252,215,4,251,251,4,249,235,248,108,3,58,5,233,251,104,3,137,0,183,253,75,247,17,249,220,1,44,7,147,251,120,255,198,0,23,247,90,2,197,255,223,254,136,3,124,2,184,249,127,250,90,1,118,252,23,5,119,8,172,4,149,8,197,255,155,254,182,251,74,7,64,5,178,8,233,5,168,4,157,1,131,0,157,252,207,2,155,3,87,5,41,3,88,5,226,7,40,8,186,7,30,1,189,8,101,7,222,6,119,1,249,255,67,2,91,251,113,3,108,255,251,251,218,0,174,0,187,250,19,250,177,5,122,248,15,6,43,8,145,255,195,5,39,253,246,3,240,252,111,8,227,252,95,8,98,252,65,251,150,3,140,8,203,2,0,255,125,254,57,248,39,247,187,8,107,3,243,250,194,1,23,1,61,253,168,248,51,2,152,253,184,4,61,250,60,0,182,252,105,2,34,247,68,249,167,4,220,6,230,254,137,250,35,252,56,248,45,6,180,6,135,6,229,6,118,3,178,2,233,2,113,5,80,5,140,247,220,6,156,247,5,8,180,0,169,247,184,255,18,4,143,255,28,253,32,4,6,8,208,5,61,253,134,3,122,251,213,254,194,3,118,6,213,8,78,4,3,3,119,253,192,7,72,3,16,7,182,252,102,2,118,8,5,6,147,8,22,248,13,253,74,1,89,254,204,249,163,255,175,251,201,2,31,247,233,7,139,5,20,253,216,248,153,254,64,253,104,4,52,250,63,5,199,252,98,250,157,5,202,5,67,253,119,2,4,3,170,254,215,3,104,252,217,1,183,3,99,248,205,3,180,255,32,252,41,252,55,1,118,0,212,2,199,251,50,252,5,5,162,254,180,250,162,0,100,1,196,7,61,7,103,8,168,5,204,252,24,2,170,251,16,247,134,248,221,253,22,255,222,252,9,254,196,250,168,248,62,253,177,3,15,6,153,1,210,251,64,248,230,252,223,250,175,247,32,7,168,249,99,8,31,1,181,253,251,248,226,5,82,250,182,247,171,248,144,251,132,253,52,247,129,2,236,2,125,0,225,6,163,8,74,247,72,255,199,254,233,250,230,4,180,251,60,1,139,7,85,5,79,3,114,7,149,254,147,1,180,8,228,252,60,250,115,250,7,252,43,249,175,7,128,250,44,1,128,254,23,253,202,7,176,254,189,8,206,7,110,2,249,3,142,250,12,0,169,248,33,2,232,7,68,251,190,248,179,249,151,1,163,2,223,8,170,3,178,7,225,252,214,249,36,248,82,250,92,251,32,255,115,1,2,4,61,5,140,8,87,255,186,254,96,4,138,6,37,1,13,252,63,253,76,248,233,248,239,2,145,5,156,4,75,0,26,4,155,7,161,3,138,6,10,7,15,253,121,255,127,2,172,3,192,248,10,5,95,248,157,252,63,5,223,255,191,248,244,254,219,247,202,248,245,248,197,253,105,3,11,255,43,7,12,247,103,249,127,253,96,8,36,249,116,249,51,4,109,5,48,248,115,3,54,250,207,4,93,251,206,248,76,247,103,8,171,254,231,247,9,8,139,253,174,8,76,4,161,253,190,6,181,255,30,7,25,0,136,249,12,252,245,254,215,248,190,7,18,1,8,0,184,1,252,7,136,250,186,255,232,254,62,248,94,8,73,8,102,252,250,251,228,2,220,6,69,252,232,0,99,6,40,3,10,252,146,250,124,3,119,4,243,247,7,5,146,7,213,4,134,7,105,3,225,0,30,8,157,7,144,2,4,1,194,7,206,247,133,7,84,253,198,248,251,1,237,250,254,0,115,247,177,3,129,250,180,0,46,6,249,7,172,6,96,253,33,0,177,8,190,4,152,252,75,255,159,247,8,7,16,3,145,254,255,6,133,6,80,251,230,252,156,255,248,4,230,2,163,251,32,253,204,7,112,252,184,249,242,255,161,253,191,7,198,254,176,4,170,5,65,2,24,8,41,251,151,8,203,253,104,247,17,247,255,250,161,8,252,5,49,248,3,3,26,248,8,250,101,255,238,250,180,7,24,253,82,2,215,0,98,0,17,252,232,251,24,250,18,1,1,253,239,4,203,3,107,251,218,253,2,252,9,249,31,253,215,7,248,5,5,251,247,255,161,5,169,252,14,250,176,250,99,5,10,250,66,249,186,254,211,253,190,6,16,255,28,6,159,7,26,3,142,247,248,4,192,252,165,248,6,255,96,254,222,5,233,0,201,5,94,248,131,7,4,250,251,3,142,6,44,254,162,8,93,0,189,1,48,251,54,247}, {233,247,146,249,54,2,134,249,160,1,57,3,81,2,120,248,25,2,72,254,50,248,204,6,127,5,197,4,116,249,38,254,117,254,138,252,114,1,84,4,207,2,253,250,50,249,247,247,87,252,56,3,158,252,221,248,171,249,140,1,45,3,236,249,185,8,248,4,124,253,175,248,65,252,215,248,197,8,82,5,129,252,177,248,10,6,91,255,22,255,190,4,203,6,49,1,175,7,85,4,149,6,125,253,124,4,12,1,194,252,142,253,44,250,198,255,31,252,6,0,99,8,206,252,219,250,51,254,137,8,118,249,99,251,178,252,89,2,247,252,115,247,78,7,197,252,62,8,73,254,68,7,112,247,251,254,223,3,14,0,223,0,54,253,64,253,149,1,211,4,173,254,10,250,123,255,194,6,114,249,224,2,118,1,149,6,210,7,121,4,107,7,89,254,183,5,5,8,26,4,16,5,81,251,237,249,7,250,51,1,11,255,195,253,11,2,131,2,7,0,107,255,56,8,151,252,190,2,141,254,212,7,152,254,70,253,121,4,202,247,251,247,47,1,205,252,188,252,202,6,135,8,172,247,109,250,59,250,232,252,152,249,102,4,109,247,226,1,49,250,209,248,78,5,97,253,235,252,220,247,15,251,164,248,66,250,244,6,164,6,73,249,241,252,220,255,5,8,235,247,156,6,190,254,128,252,67,252,43,1,139,8,236,5,175,253,152,0,167,250,232,251,35,250,221,3,242,251,238,1,144,0,62,250,7,1,63,251,94,249,213,7,76,252,133,247,154,248,107,249,157,253,60,6,193,4,138,250,21,4,39,253,185,0,234,248,13,254,34,0,194,253,43,6,95,248,168,1,178,2,108,3,5,1,206,247,173,253,184,7,110,250,139,3,23,1,64,251,140,254,19,251,199,6,221,2,144,4,82,248,200,1,200,7,98,250,125,250,91,0,127,250,147,0,210,249,152,255,54,254,217,8,183,247,120,248,40,8,170,0,64,247,163,7,106,247,80,2,207,6,12,249,22,247,149,2,204,250,33,251,173,247,111,1,202,253,169,248,88,5,213,2,8,6,205,1,176,2,145,254,210,250,183,253,30,248,20,249,44,249,153,248,111,3,88,2,5,248,5,252,152,252,183,247,80,5,237,248,211,1,97,252,30,6,66,247,219,252,53,7,148,252,149,248,102,6,162,4,100,248,99,249,73,249,250,254,11,254,17,253,24,4,85,4,224,5,230,0,161,254,68,8,103,2,32,4,217,249,74,4,0,5,79,253,105,2,113,5,219,250,45,253,90,2,123,249,85,250,50,248,96,3,218,252,129,253,211,4,68,7,172,2,76,250,203,247,238,5,72,2,204,253,67,1,156,249,31,254,161,250,113,7,61,7,139,0,71,252,39,2,164,4,194,251,73,248,254,3,65,254,86,2,181,6,4,7,43,249,17,248,190,7,91,251,250,255,73,247,183,1,54,252,251,254,64,5,99,247,9,4,77,251,130,1,101,1,130,7,69,249,8,254,206,5,86,6,253,4,119,248,80,247,71,247,229,6,155,8,229,4,187,252,173,254,128,247,216,252,17,3,87,4,24,248,17,7,202,8,36,253,10,6,173,250,254,5,125,3,11,7,206,247,82,253,75,250,128,0,60,8,129,3,232,7,199,252,39,4,74,3,42,254,91,4,97,7,122,5,248,250,253,252,229,250,102,248,117,251,212,255,77,4,144,2,82,2,47,252,249,6,73,254,53,7,180,252,80,249,189,248,84,249,142,4,192,248,32,1,69,3,148,251,182,5,66,3,152,251,36,1,229,248,1,250,164,255,39,0,4,1,36,255,10,249,231,247,194,248,41,8,71,8,37,251,147,251,131,248,190,5,41,1,229,4,166,247,61,8,82,248,139,247,36,254,198,5,160,8,190,8,225,249,176,248,222,252,64,7,84,253,179,2,23,2,73,0,45,253,100,1,159,249,223,5,38,5,192,250,211,1,70,1,207,6,141,250,217,252,22,2,54,251,146,251,199,250,39,252,97,249,0,1,69,0,144,250,176,0,213,253,108,248,92,3,21,252,207,6,141,2,10,5,4,2,8,2,102,252,95,7,72,1,165,253,153,2,239,254,32,1,180,250,65,249,79,8,143,247,96,250,190,4,16,5,101,255,181,4,211,254,242,2,54,250,126,255,178,252,126,248,153,6,236,7,212,8,192,6,143,253,150,4,8,3,203,0,35,5,15,1,122,250,38,0,132,255,89,247,29,250,126,3,98,6,67,3,37,247,156,0,139,1,196,2,30,255,133,0,89,253,120,253,108,0,65,251,14,8,72,254,99,7,135,5,226,251,132,6,167,247,118,254,101,255,134,252,190,3,130,255,210,0,160,2,229,251,177,6,113,255,98,253,76,250,181,247,164,1,122,254,81,8,51,253,37,250,98,7,198,249,100,250,150,250,215,254,181,252,129,253,51,255,111,254,239,6,58,8,248,2,158,248,78,251,203,6,216,255,212,2,226,6,16,1,26,6,42,4,165,1,122,7,59,253,131,251,243,253,167,248,7,3,37,0,162,253,183,253,191,0,51,255,58,254,181,0,196,248,186,250,157,7,227,7,110,5,14,0,105,247,129,3,66,3,0,255,85,255,189,2,48,252,187,1,191,7,2,2,13,249,219,1,211,254,83,255,59,7,42,254,32,253,237,3,163,4,208,4,194,0,109,4,52,4,236,255,69,1,182,8,239,4,112,1,59,254,8,255,93,249,183,0,233,251,24,251,47,5,225,3,58,255,219,252,214,8,59,8,253,4,77,255,131,251,128,6,136,1,110,8,126,248,43,252,14,249,17,3,165,248,250,1,134,0,215,8,206,253,180,249,105,255,211,8,254,248,221,255,171,252,197,249,209,5,247,3,10,249,104,0,38,4,147,5,185,3,251,247,125,0,78,254,52,3,225,0,234,0,133,2,116,248,122,252,219,247,137,249,21,7,179,248,210,254,75,252,184,0,113,7,150,7,107,8,27,255,150,2,96,249,169,1,90,255,178,5,0,1,210,247,58,249,235,5,3,0,160,8,223,251,98,0,152,6,75,249,200,253,152,1,208,254,212,5,15,253,206,255,5,1,248,1,164,0,247,6,212,254,8,8,197,250,63,247,207,8,177,8,75,3,181,3,130,247,233,254,64,4,183,6,107,248,173,6,173,250,69,2,117,248,82,255,136,1,107,4,228,254,225,2,10,6,132,7,72,3,239,0,199,1,232,252,92,5,28,251,182,253,196,1,139,255,225,7,31,247,127,249,53,3,73,4,174,3,100,249,84,249,246,253,98,7,91,2,22,1,235,2,119,250,185,4,196,4,50,247,26,0,14,3,117,248,229,249,95,251,143,247,65,249,45,3,96,2,244,254,107,250,187,251,28,253,136,254,149,0,132,1,233,254,19,3}, {112,250,7,252,38,253,0,4,103,6,55,2,68,251,89,8,220,1,213,253,13,254,63,253,71,1,3,250,25,1,10,3,47,2,64,255,47,250,207,6,129,247,62,4,246,254,81,247,105,7,181,6,197,254,108,248,111,249,15,6,92,5,148,4,54,0,187,7,136,4,32,253,66,6,239,8,226,5,194,1,186,7,100,249,103,247,32,248,115,4,232,1,105,4,156,5,134,250,209,253,228,247,220,247,162,250,87,6,126,248,29,249,162,6,144,253,61,0,28,4,205,5,140,5,17,7,240,252,211,248,231,7,236,253,105,5,215,248,145,253,63,249,196,255,98,254,129,3,162,1,11,0,81,250,207,7,37,7,100,3,47,248,17,6,116,247,225,2,225,0,142,254,23,251,176,253,236,249,227,1,7,249,147,1,106,253,93,2,89,249,54,1,151,1,0,252,150,249,5,4,53,249,123,0,214,2,61,7,59,254,233,254,170,250,31,254,184,0,245,250,137,8,251,250,43,7,75,247,126,247,175,255,21,6,147,249,226,2,233,247,5,2,129,3,92,3,36,7,112,6,122,250,22,4,37,253,153,247,159,5,160,4,10,5,3,251,56,255,12,255,125,254,118,3,215,0,129,6,87,249,52,3,39,7,112,3,146,3,83,250,194,3,166,247,198,253,42,7,82,255,113,0,113,3,3,8,24,250,233,255,42,3,127,254,135,8,215,1,243,6,73,7,33,255,79,247,144,2,222,8,216,5,90,8,112,247,116,253,134,5,186,4,26,247,116,250,163,252,78,5,60,247,10,248,136,3,82,1,238,6,24,253,10,5,116,8,169,250,136,248,82,247,172,255,120,2,22,250,47,249,219,254,135,8,34,6,11,1,132,250,41,8,9,255,94,2,243,0,158,1,163,251,184,3,227,249,229,0,110,248,255,252,239,253,232,250,145,0,108,8,216,2,92,2,119,0,48,2,126,247,240,0,17,251,143,7,195,4,43,252,55,3,29,7,33,6,245,255,12,7,240,6,35,248,201,251,213,1,55,6,138,7,185,254,103,251,189,253,17,6,108,253,101,0,97,7,65,4,69,252,62,254,26,248,210,253,237,6,206,5,132,4,126,253,125,0,27,253,49,250,119,253,237,2,203,248,41,252,0,2,97,252,207,3,240,2,76,8,76,3,211,253,84,4,205,249,154,247,50,252,14,254,113,253,174,7,152,1,172,2,170,8,131,247,0,249,89,247,157,7,146,7,97,8,243,8,34,7,237,255,255,3,182,2,74,253,233,5,177,247,204,253,122,251,1,248,43,253,25,5,100,247,184,8,217,6,219,253,64,247,38,4,125,255,184,8,42,253,55,249,196,7,37,4,225,4,113,249,179,2,124,1,139,7,208,255,232,1,84,6,232,254,182,8,153,3,16,251,120,0,128,6,2,249,13,249,178,247,227,3,65,253,22,255,24,2,208,253,134,251,86,250,171,0,173,250,102,6,162,252,149,248,214,249,139,252,13,1,239,254,88,7,15,247,146,252,207,7,172,0,5,254,174,6,176,252,216,253,30,254,212,6,164,248,209,249,151,5,54,253,114,6,157,8,136,247,142,5,201,7,64,248,113,3,41,252,107,248,219,254,187,2,20,6,78,7,207,8,85,251,28,255,112,6,199,251,226,8,97,8,34,254,249,2,167,4,25,6,9,7,130,4,126,254,187,1,121,255,49,8,18,6,18,248,179,254,161,6,135,252,238,255,111,1,180,248,110,249,214,253,84,250,204,3,101,3,112,247,255,4,241,5,16,252,210,7,7,249,94,7,224,251,98,250,95,255,150,8,119,3,191,248,44,1,71,3,250,255,217,5,236,8,215,247,83,2,156,251,132,0,69,254,124,4,31,5,149,247,226,251,183,252,153,7,58,8,193,250,177,255,201,8,136,0,29,249,54,0,41,255,84,254,196,250,167,249,76,253,156,251,192,0,85,255,248,2,40,250,101,247,83,249,50,254,222,253,157,249,17,248,184,6,71,7,94,249,126,251,138,251,163,0,50,252,12,5,97,252,118,248,163,4,18,255,228,3,54,5,116,248,119,0,105,3,79,6,24,249,192,1,105,250,226,249,18,252,161,8,50,249,44,254,68,1,95,248,35,254,193,247,44,1,203,0,73,250,237,248,138,7,128,8,115,253,245,1,111,247,248,6,222,255,8,6,124,252,192,251,136,249,134,255,193,252,30,247,39,247,217,253,125,2,200,0,238,250,66,0,42,253,245,1,129,2,60,5,37,2,82,251,100,2,91,4,140,253,59,248,24,2,138,249,195,1,62,7,112,251,120,251,130,7,106,247,144,253,21,0,89,252,129,8,133,3,133,1,30,1,162,249,140,0,139,255,78,0,106,4,22,254,161,251,174,0,39,3,175,255,242,8,147,0,40,250,32,0,183,0,46,249,29,1,74,1,4,6,82,2,121,251,154,4,73,249,234,253,195,2,112,7,83,248,11,249,152,248,146,0,20,1,38,7,15,252,208,2,197,248,104,248,19,255,150,0,159,7,203,5,117,251,78,255,17,0,129,248,131,255,101,247,208,251,60,3,58,6,143,4,217,249,158,7,207,251,105,252,98,250,0,6,113,5,143,8,112,4,9,253,74,7,208,8,11,6,205,255,53,251,71,251,170,6,198,3,18,248,93,7,7,255,176,3,85,248,20,5,129,7,198,3,107,4,238,249,160,254,185,2,250,255,2,6,20,5,214,250,172,247,170,251,250,255,175,4,58,252,150,6,217,8,39,255,94,251,252,7,94,6,122,5,235,5,75,253,195,252,89,252,91,251,108,7,104,3,201,254,139,254,168,247,76,0,7,8,249,250,31,251,59,4,193,253,190,250,72,253,183,5,53,253,74,248,72,4,75,1,17,0,163,7,55,3,25,4,167,4,197,7,132,254,166,6,195,1,174,251,219,6,228,8,223,247,230,247,202,8,61,0,214,252,140,252,245,250,100,251,145,250,133,1,87,2,157,248,216,248,188,6,99,253,155,8,136,254,135,248,41,252,7,248,182,0,63,6,206,251,7,252,246,250,103,248,3,252,143,1,88,248,70,253,191,4,22,3,164,7,177,252,105,247,196,253,80,255,124,252,200,3,17,255,135,249,144,254,82,249,100,250,14,249,108,252,150,254,106,2,0,3,166,6,148,5,99,251,159,251,159,249,151,1,52,249,28,5,246,252,38,255,62,253,140,247,147,250,59,249,3,3,164,255,211,252,212,251,64,247,67,249,188,2,205,255,64,250,240,7,254,5,172,1,227,1,54,7,149,2,194,250,44,250,32,250,164,249,203,7,121,251,172,248,14,248,78,255,53,255,46,251,82,254,87,8,171,249,244,5,14,255,30,247,134,5,42,249,94,249,50,6,160,248,178,250,23,252,83,3,203,2,86,247,74,3}, } ; static const unsigned char precomputed_core_multsntrup761_n[precomputed_core_multsntrup761_NUM][crypto_core_INPUTBYTES] = { {190,5,129,98,184,113,94,149,6,210,100,68,17,218,206,100,208,165,98,21,242,221,197,137,57,118,2,73,199,238,251,240,133,36,0,208,26,12,255,65,44,176,230,170,49,169,87,164,77,201,165,17,79,226,182,11,163,121,39,1,173,107,178,101,119,198,23,180,145,226,97,189,207,94,141,145,190,43,23,165,212,17,22,103,25,119,120,73,75,81,133,25,220,134,193,194,100,102,148,188,112,50,244,200,99,48,192,163,20,89,147,76,9,45,110,29,7,102,245,117,254,155,181,80,24,17,44,161,178,9,73,243,243,88,231,136,72,225,131,126,158,42,107,23,164,254,9,33,181,255,4,95,22,17,101,200,93,4,110,88,127,6,125,101,166,246,127,34,107,29,219,189,6,167,50,59,222,125,188,210,180,120,167,214,193,194,236,138,111,151,201,88,20,48,82,127,121,108,160,195,186,17,97,60,56,165,42,98,26,100,239,89,25,20,196,217,171,85,175,95,168,135,120,180,205,77,42,18,234,120,35,52,234,39,130,141,73,47,242,25,206,9,138,155,89,40,243,124,170,193,148,227,24,198,63,62,234,116,101,192,153,116,81,18,32,210,71,74,185,177,184,174,66,211,165,164,82,205,68,238,91,30,68,8,22,240,98,27,119,198,192,25,210,106,46,159,217,55,13,61,70,214,177,197,156,118,152,74,106,1,186,245,15,157,26,234,167,121,142,156,106,113,117,119,241,102,67,195,11,157,160,86,7,203,59,30,145,2,169,139,107,31,59,85,4,243,106,114,145,20,167,97,174,179,177,0,193,17,59,249,13,204,95,39,151,166,135,128,175,59,237,134,60,56,19,15,176,166,208,191,99,3,84,173,73,92,15,72,219,198,11,99,94,187,87,69,123,253,17,183,183,146,13,8,234,146,227,146,13,238,16,180,122,107,49,86,227,23,34,108,142,12,252,164,40,63,116,234,75,20,35,28,230,176,153,213,19,221,214,233,1,159,146,67,103,19,26,211,12,241,178,176,99,121,59,108,207,140,180,55,4,127,93,146,245,144,137,170,41,120,251,21,27,168,139,200,150,16,30,212,246,55,143,91,21,16,176,146,236,20,222,8,187,139,252,54,110,96,196,166,50,195,37,84,61,94,230,17,194,96,229,19,240,157,112,234,193,169,41,228,159,232,231,182,195,32,102,209,27,37,100,191,26,239,188,82,255,60,139,150,248,10,233,35,234,146,75,110,1,81,209,23,195,60,71,116,117,209,215,233,121,190,162,90,65,242,29,175,222,9,48,60,112,102,244,228,218,213,102,113,80,17,130,16,93,79,11,2,131,213,169,92,84,149,147,250,14,252,10,88,186,109,115,71,54,53,203,142,233,77,10,172,217,60,80,190,152,165,238,100,183,245,156,213,19,104,221,150,45,225,173,96,103,148,176,113,133,142,185,141,192,167,173,213,5,52,19,137,227,126,4,138,123,69,252,99,207,28,54,35,252,154,226,6,255,9,191,178,196,175,59,186,245,162,125,214,129,244,33,153,83,111,149,20,43,137,111,197,200,122,186,146,104,130,95,149,9,84,114,159,220,147,178,30,245,38,223,159,76,229,152,7,57,47,155,204,207,21,156,81,162,25,79,209,44,132,54,253,141,188,141,200,26,58,36,87,52,177,255,172,166,145,149,73,148,132,53,190,19,96,137,109,184,198,220,58,56,165,174,152,167,68,48,147,212,181,56,38,166,6,214,95,34,58,98,148,167,151,107,22,57,111,62,240,244,215,226,3,227,3,161,207,66,161,183,53,4,194,15,156,138,15,159,97,112,184,148,242,158,180,89,114,104,166,89,151,127,254,234,3,113,20,216,83,250,66,131,159,115,144,237,189,249,15,71,16,59,118,237,104,229,52,239,47,223,149,69,129,150,240,189,111,117,176,118,165,176,171,93,217,179,14,133,36,37,219,79,186,121,108,5,185,143,159,204,4,7,30,5,212,26,236,113,163,173,87,73,148,64,140,119,24,219,57,42,203,218,183,110,212,177,67,201,197,8,29,200,62,248,47,41,206,246,210,23,223,23,8,109,181,27,48,232,50,227,146,8,195,14,170,236,142,144,19,127,23,146,128,2,160,227,43,183,174,56,239,84,45,143,127,18,179,1,45,81,56,213,23,128,148,241,139,99,183,221,19,122,60,155,201,118,163,32,208,240,248,139,73,76,154,213,186,115,176,163,16,164,220,60,193,54,181,150,68,161,125,240,109,232,41,171,106,173,67,153,182,5,218,226,13,106,189,169,16,189,228,253,15,200,1,246,15,154,79,198,222,137,68,98,142,246,240,140,76,115,245,47,12,46,36,152,96,3,7,74,12,222,197,174,17,142,193,186,69,97,186,157,25,199,211,42,60,188,11,173,69,66,206,69,178,243,177,211,88,148,2,104,174,131,247,209,100,212,250,175,18,27,45,87,168,161,122,168,79,90,45,5,151,88,91,105,56,145,171,67,165,59,96,249,200,81,8,71,138,37,51,216,232,22,35,249,208,238,199,204,15,155,189,72,85,73,212,79,53,97,173,67,1,62,78,167,77,61,67,164,48,40,103,197,81,28,126,80,115,241,89,194,64,178,135,29,69,158,243,253,129,45,224,178,242,23,43,87,25,199,240,28,54,75,214,248,32,161,134,204,133,149,72,74,218,225,73,216,55,171,96,86,237,13,164,250,27,119,143,80,28,73,186,254,43,56,14,157,150,41,196,126,171,103,198,176,254,42,196,93,75,241,84,117,254,172,165,49,192,96,42,22,19,127,65,13,230,23,201,240,98,156,76,244,44,93,12,249,96,253,89,142,255,190,141,167,13,138,77,164,73,135,140,215,245,55,12,2,167,141,152,91,163,21,246,213,105,128,40,159,181,88,6,227,116,61,43,141,5,55,225,60,185,31,154,27,55,169,110,86,192,116,112,133,40,23,174,88,69,6,11,231,71,64,130,51,69,40,188,40,198,127,67,114,218,86,65,41,248,234,185,11,208,80,39,45,106,247,66,177,122,7,152,125,223,95,224,90,177,195,122,60,95,37,224,220,203,154,63,105,216,168,229,116,106,115,201,254,32,87,48,210,124,24,244,86,61,21,28,136,228,112,74,72,81,135,12,52,67,32,255,28,199,142,211,217,227,208,33,94,151,164,80,210,200,162,207,187,178,150,176,11,146,76,149,104,104,1,115,115,229,24,136,4,151,44,166,65,250,73,236,22,182,157,3,82,224,160,222,18,52,117,222,67,195,242,181,198,112,209,218,107,86,156,16,195,128,199,133,205,224,79,234,186,54,126,196,3,154,82,226,55,139,47,179,84,102,245,178,244,66,48,195,146,176,107,64,148,234,180,173,124,194,211,120,219,168,128,30,11,215,15,36,231,181,132,193,181,159,103,123,241,124,188,122,6,248}, {122,255,172,82,113,55,178,5,218,48,206,92,253,95,240,120,28,178,156,74,153,130,201,2,241,227,92,215,102,151,4,80,159,152,0,176,109,134,116,22,48,70,131,145,122,182,104,128,150,199,220,98,110,125,163,192,92,68,30,214,163,88,241,19,182,166,245,193,124,175,197,238,78,8,19,179,239,74,216,124,55,253,205,54,154,230,165,219,139,62,148,36,199,20,253,250,116,130,243,237,188,216,62,12,90,135,200,47,142,229,86,38,205,86,230,173,241,25,192,39,79,231,43,91,143,138,166,132,34,217,26,48,98,68,112,55,179,68,119,248,196,86,38,42,161,217,77,188,197,73,114,53,66,19,229,187,47,54,167,75,102,228,151,198,116,134,58,58,136,38,63,45,233,83,101,143,40,94,2,62,50,219,75,34,200,209,116,112,77,17,178,61,180,48,176,134,199,105,249,20,57,172,230,251,123,21,173,110,250,163,86,45,183,214,57,138,162,39,62,177,157,215,53,101,134,136,45,167,230,142,229,165,178,156,123,7,207,68,90,239,155,67,247,12,232,72,101,244,79,26,146,1,15,49,99,79,234,124,44,40,159,78,214,116,203,8,138,227,201,16,194,243,114,175,20,218,19,140,8,245,151,240,202,59,224,140,121,79,35,82,23,188,191,162,55,255,72,156,17,101,67,122,144,183,253,188,47,122,224,213,46,96,230,152,15,196,121,10,240,199,77,219,8,21,13,69,169,133,51,41,224,205,83,7,236,125,41,65,110,206,133,182,82,254,37,247,94,236,160,50,154,245,215,160,35,5,72,93,21,150,139,107,247,146,78,18,57,101,17,141,163,128,110,9,47,0,136,29,232,188,68,16,21,188,28,93,39,164,58,210,252,49,69,70,209,195,86,241,235,74,114,104,3,180,200,210,86,7,234,204,147,193,163,197,152,181,22,209,207,246,18,168,70,234,99,230,56,17,44,137,66,42,67,220,54,6,38,203,174,31,33,173,87,70,30,57,59,221,140,168,198,189,144,242,99,123,181,166,234,123,26,97,135,66,216,61,91,119,182,96,57,187,154,17,2,170,163,18,228,26,191,167,18,148,240,187,164,26,255,173,244,197,51,166,87,193,220,34,79,111,107,214,211,133,251,10,48,12,192,116,160,204,222,202,236,244,150,125,151,162,142,154,190,5,80,21,141,69,176,28,138,132,100,37,111,45,122,175,222,25,246,241,139,169,110,92,247,190,108,11,153,89,70,82,83,169,203,66,154,167,54,143,113,115,19,40,27,145,161,94,167,54,76,159,249,252,93,50,4,64,35,73,149,33,101,246,99,115,22,41,190,47,80,143,119,165,87,179,20,88,15,75,220,210,219,216,252,169,192,46,6,84,13,43,138,67,52,222,49,12,168,29,99,207,107,9,246,55,98,133,113,151,217,21,190,240,92,179,128,143,199,168,255,113,0,202,2,178,161,62,31,101,120,101,193,149,147,31,133,140,254,140,208,80,81,203,75,96,92,237,93,202,85,222,233,54,199,121,26,96,155,19,170,173,134,146,70,61,167,142,99,199,62,122,68,196,209,52,191,139,147,154,49,73,91,60,165,166,251,21,230,161,200,207,19,19,82,115,160,245,234,164,1,132,105,145,219,242,8,87,230,129,85,83,3,159,32,237,241,79,131,9,199,210,119,74,233,183,168,52,65,90,66,198,120,196,162,107,125,122,219,84,165,248,218,246,249,40,168,81,95,198,81,222,109,3,49,176,248,223,76,169,40,65,43,234,26,21,146,242,56,25,4,7,153,241,223,15,250,40,3,238,228,119,41,1,81,237,224,67,16,76,205,241,225,176,250,250,113,252,54,50,108,64,117,201,80,107,10,32,9,227,179,59,74,249,238,224,220,182,122,194,84,236,86,43,85,43,160,94,107,14,124,42,194,163,63,248,139,156,171,127,85,10,126,64,144,241,4,155,82,27,116,209,212,169,42,5,4,66,25,150,173,115,8,226,2,94,62,169,227,3,0,4,85,215,199,165,14,207,238,0,89,170,202,167,135,246,31,86,18,193,86,199,184,232,103,64,223,204,90,99,109,200,119,69,176,214,11,7,32,35,119,27,190,236,209,39,78,161,28,12,147,57,142,135,73,62,187,120,90,36,243,198,95,16,83,146,62,62,121,145,111,254,155,53,18,142,123,156,178,162,194,51,133,185,206,114,33,239,35,122,123,49,36,20,73,117,50,237,235,79,73,159,180,65,150,238,133,101,228,61,220,68,33,103,160,94,204,79,14,227,59,95,34,22,153,190,185,18,23,178,92,150,206,181,102,0,174,53,214,178,168,196,8,205,172,205,87,5,240,29,3,147,24,173,211,93,26,134,106,200,154,115,49,185,205,30,189,24,72,174,250,71,19,196,125,63,207,134,17,87,230,188,87,99,99,67,216,161,97,45,13,226,161,148,162,15,14,198,32,213,5,106,205,254,59,150,244,124,145,116,85,125,159,65,35,182,30,126,61,101,115,27,97,160,89,59,15,137,204,11,28,79,26,5,157,117,131,237,242,67,99,206,108,139,99,115,235,54,200,168,160,136,59,66,85,32,249,192,209,83,138,39,225,225,118,44,9,169,27,92,224,156,73,139,250,134,88,20,226,195,45,141,190,8,233,176,192,144,62,111,217,158,53,97,107,215,33,107,20,251,127,16,246,95,234,181,155,37,203,255,2,59,98,189,139,147,246,0,7,130,57,81,79,180,86,117,93,245,179,233,158,135,96,203,237,17,108,88,97,30,230,171,143,183,148,8,253,32,141,142,20,11,62,166,93,203,186,60,53,208,40,108,115,178,220,212,22,74,38,140,233,11,235,170,35,39,38,96,136,104,193,136,34,102,109,48,58,252,69,113,199,201,24,31,163,120,145,6,13,244,238,216,236,132,83,119,3,254,31,145,114,113,31,63,233,170,3,52,251,38,224,222,2,124,232,143,186,56,225,65,99,148,82,49,237,244,125,216,109,49,142,72,141,30,233,224,238,179,89,47,228,108,1,242,216,238,229,225,136,155,83,187,38,22,153,228,117,183,202,28,72,100,100,60,140,251,237,22,52,104,242,200,115,67,34,149,228,165,158,196,46,100,106,173,202,239,20,138,196,158,51,206,69,52,212,233,254,163,24,161,28,194,137,212,182,138,65,251,153,186,245,224,198,63,113,153,76,156,218,147,243,48,100,78,78,225,91,227,73,77,51,242,135,174,107,43,26,252,178,155,22,105,78,107,80,111,99,27,97,110,7,45,54,188,227,63,122,224,98,89,96,15,137,1,232,83,217,58,187,115,117,132,91,171,138,172,230,27,131,2,57,126,233,135,3,56,177,142,47,248,137,7,92,22,61,164,16,238,167,203,218,12,104,251,120,199,114,227,23,39,122,232,181,94,37,239,159,207,59,125}, {220,120,240,244,68,158,131,151,191,170,103,64,209,196,72,22,180,65,214,67,80,215,228,11,186,59,64,128,57,243,0,183,230,79,86,142,82,72,183,58,34,1,109,217,204,110,71,115,183,41,17,167,22,98,21,178,101,94,176,138,34,51,248,39,244,86,231,68,127,236,101,235,136,15,94,56,252,246,101,129,34,175,28,154,235,175,182,4,201,120,115,77,233,62,49,7,112,2,173,138,159,90,235,71,97,71,201,31,240,148,4,237,241,156,228,184,234,199,160,210,112,188,116,140,174,215,49,156,195,247,31,80,103,44,109,91,72,221,80,58,134,125,67,26,161,249,186,231,206,218,174,76,182,231,174,114,72,187,205,149,66,106,106,35,177,146,42,228,74,45,75,67,115,211,67,183,121,68,204,247,9,25,35,123,124,97,45,44,40,171,3,201,139,194,154,26,113,190,238,186,87,229,19,38,110,81,20,207,31,73,188,111,78,202,255,154,236,85,127,243,126,198,193,162,42,90,11,197,147,222,66,85,153,128,27,148,229,171,169,133,141,88,57,93,139,60,105,32,236,36,27,112,154,74,242,115,128,246,141,213,110,44,75,44,179,159,77,2,69,72,206,45,235,46,60,48,50,32,75,167,56,149,26,171,150,243,12,214,150,249,156,88,12,241,208,227,123,156,180,214,62,61,130,71,112,221,172,93,133,104,19,187,59,110,171,221,148,42,52,106,15,17,190,181,156,127,32,144,25,96,3,243,99,241,182,229,139,34,32,240,205,201,186,154,150,38,175,90,159,117,12,123,33,175,41,40,92,98,171,169,179,100,112,183,22,240,198,184,179,178,211,101,32,145,69,114,79,168,82,117,21,69,175,190,70,140,233,132,124,66,105,46,22,95,58,206,11,220,20,85,137,140,19,180,245,109,233,176,238,29,93,14,51,140,150,59,182,238,113,0,138,92,135,210,37,98,10,39,85,229,73,248,227,127,44,251,5,153,151,100,92,106,203,145,195,85,126,105,117,137,181,74,184,169,69,111,60,136,144,112,216,0,244,99,183,170,219,101,187,79,93,205,59,41,30,220,118,234,136,133,250,120,65,111,158,41,43,103,64,18,14,94,183,62,95,126,98,17,146,88,117,163,5,3,42,144,149,181,30,159,217,245,163,230,169,119,142,193,79,31,189,225,58,31,196,79,201,26,238,245,252,191,226,48,16,73,93,12,90,141,144,203,73,189,241,118,242,79,254,171,225,213,202,99,45,100,242,141,229,254,95,37,1,224,145,192,92,202,71,66,147,50,14,112,206,27,206,216,76,237,92,5,84,64,201,43,127,4,163,141,104,32,84,91,238,164,134,27,156,245,16,7,149,84,204,133,82,109,69,235,10,56,69,32,60,102,176,168,242,8,33,112,72,212,246,118,15,159,92,255,60,221,136,160,11,249,154,133,31,63,109,243,201,144,199,247,124,54,165,126,109,164,76,18,83,128,123,4,40,250,184,181,244,41,216,137,126,245,209,231,169,187,40,217,247,219,127,218,136,220,229,14,171,70,161,151,128,122,22,206,73,208,14,74,191,165,147,237,176,78,207,162,40,27,134,223,171,76,248,209,18,49,81,4,240,27,95,103,176,232,62,70,232,97,145,67,66,200,147,67,246,53,27,71,244,122,155,146,153,171,13,208,205,150,208,80,142,135,134,226,136,175,108,105,137,176,32,194,252,153,84,174,20,5,178,215,217,193,227,58,34,94,249,170,210,63,204,120,26,83,147,24,160,13,207,165,139,3,98,18,49,82,212,215,134,41,35,145,170,175,51,15,9,87,116,63,141,151,79,46,77,147,76,48,132,57,162,150,192,35,61,162,83,106,79,89,115,221,75,255,103,1,84,181,154,122,218,180,87,4,163,173,150,134,125,212,45,170,178,203,101,253,251,162,16,201,34,97,9,199,87,207,5,9,28,32,1,88,182,99,136,78,1,68,23,234,224,212,115,232,232,241,73,8,63,190,118,54,82,128,147,73,25,98,210,221,146,161,195,70,238,243,239,104,35,15,69,58,56,40,136,97,137,135,188,172,202,24,32,43,192,46,247,106,95,254,145,3,122,115,64,51,173,19,106,139,16,49,3,185,18,111,243,70,72,165,181,179,83,168,76,164,12,85,55,191,205,115,31,212,206,7,89,58,170,156,53,121,248,161,190,158,31,148,29,116,42,248,58,63,146,55,168,62,58,254,124,124,131,114,95,1,159,97,44,211,248,247,3,87,61,196,24,121,22,133,119,133,121,241,125,188,247,225,107,228,203,117,19,152,45,243,129,166,220,21,62,12,241,160,32,11,146,94,70,77,85,72,86,65,147,44,105,153,111,150,240,228,68,2,73,47,205,251,120,108,167,216,16,98,184,116,249,136,62,103,5,190,222,171,169,139,128,83,105,25,153,116,38,13,181,74,251,232,71,179,215,76,146,97,64,26,61,137,1,86,194,60,8,157,192,187,67,89,180,121,235,248,100,124,248,126,82,241,46,9,106,151,183,171,171,46,204,35,76,217,86,120,141,80,0,141,177,254,5,236,57,98,89,187,250,172,98,240,11,24,72,30,166,136,82,22,57,70,239,78,81,147,113,57,59,202,166,24,214,147,42,23,199,102,216,36,205,2,185,196,46,247,167,36,241,242,97,21,96,134,243,251,16,227,19,182,126,203,73,73,98,49,245,221,217,51,254,141,150,48,86,195,130,224,86,19,92,146,55,24,244,137,25,215,241,196,140,224,7,98,197,140,245,183,76,56,165,67,171,145,67,200,153,157,206,53,203,240,81,195,154,20,117,54,201,236,89,9,45,15,43,48,24,209,140,207,150,47,251,56,184,103,107,241,55,98,48,164,126,41,128,152,80,1,52,217,30,8,148,46,85,51,218,213,214,66,107,25,30,115,47,101,120,55,32,244,31,71,11,159,25,9,41,249,234,70,0,148,248,170,88,33,223,254,205,103,63,248,124,109,238,52,221,154,94,169,69,125,202,43,65,103,116,144,193,131,50,35,64,111,129,165,105,23,173,179,98,73,112,72,246,211,148,129,186,209,134,52,203,226,226,233,23,12,62,60,66,131,186,245,60,190,71,123,189,110,222,239,171,224,59,108,140,188,175,232,111,131,20,239,30,143,225,25,124,162,20,211,91,157,185,202,158,123,137,48,68,91,99,35,107,155,90,36,149,1,111,161,222,104,173,238,145,204,244,229,19,71,163,127,126,204,1,77,41,67,166,182,151,91,180,119,139,64,251,195,73,242,17,223,11,238,7,230,55,171,31,47,2,108,2,230,230,76,244,99,197,53,74,88,125,188,57,45,115,31,104,99,138,110,7,89,162,94,132,89,90,202,211,97,249,9,33,2,103,110,113,115,217,187,142,233,220,108,160,20,128,169,200,184,19,227,246,90,199,221}, {232,123,162,57,118,248,128,229,117,159,46,134,66,242,14,240,197,183,113,252,63,155,143,85,197,179,108,145,106,1,232,80,159,91,169,19,75,12,12,171,107,182,231,76,119,238,50,17,27,111,230,227,61,157,105,48,238,209,6,204,61,52,139,2,46,222,111,168,184,25,241,88,163,148,60,167,109,144,34,104,9,160,251,103,236,159,166,2,174,116,129,112,8,38,45,245,162,228,153,243,193,200,243,80,190,217,166,35,176,174,223,198,96,141,151,196,89,246,139,191,186,170,161,186,46,169,50,233,135,119,193,107,234,248,55,55,218,35,118,239,130,96,226,217,98,142,127,113,45,221,231,184,159,47,254,15,204,163,140,151,51,211,91,87,35,196,42,12,169,197,229,79,185,212,248,8,19,152,62,180,125,33,83,83,69,248,102,89,226,77,160,142,67,185,253,255,73,75,225,28,51,161,90,231,244,178,103,241,139,218,56,248,236,1,78,174,251,185,152,180,118,21,32,201,1,37,1,241,225,213,117,44,50,187,158,22,106,81,139,69,49,110,236,213,61,116,17,7,170,42,82,197,92,36,155,180,169,188,60,130,17,124,142,126,161,242,230,224,2,213,150,87,164,126,39,231,49,94,234,125,61,163,94,50,244,194,216,77,150,170,140,238,0,57,192,177,81,40,87,185,208,104,199,105,45,131,155,208,182,209,187,124,96,251,141,66,67,64,224,252,142,62,144,174,249,58,104,122,96,244,112,150,66,186,252,136,219,214,128,0,95,84,42,111,40,245,120,172,249,166,10,89,98,122,87,10,43,203,139,21,160,184,166,108,136,28,132,117,114,238,17,10,111,29,140,203,207,250,209,132,117,138,120,120,26,170,45,37,246,2,141,52,107,178,199,7,243,88,242,55,179,200,253,174,43,124,73,196,210,19,35,128,18,138,53,234,131,78,165,140,100,136,156,139,155,128,174,125,44,83,132,252,157,88,191,211,209,9,250,3,109,76,182,162,140,176,92,136,68,71,127,40,114,251,10,255,225,168,148,146,162,132,60,4,235,7,189,176,254,9,122,228,218,164,237,187,1,251,211,33,22,153,190,200,24,124,118,202,52,203,27,233,146,14,154,147,155,42,58,163,30,41,138,124,243,7,239,32,162,21,42,124,48,139,189,12,9,135,138,24,232,250,250,137,250,136,86,250,157,70,68,232,126,210,64,30,149,222,43,99,212,141,212,129,7,95,22,247,177,80,70,230,137,14,1,158,228,3,33,63,244,104,115,181,133,236,202,209,140,189,4,168,149,33,174,146,91,183,95,196,246,246,109,240,40,241,55,105,41,144,120,123,148,130,212,244,66,18,62,211,211,119,7,35,15,240,43,112,56,120,132,174,126,237,227,217,177,94,99,178,117,76,250,134,98,15,229,62,173,138,38,26,4,235,46,66,183,108,22,232,141,170,18,21,71,168,215,149,67,97,82,6,185,110,13,21,236,222,197,138,97,10,2,80,29,15,139,215,194,170,215,248,45,169,41,5,53,252,163,221,196,236,195,130,2,192,236,81,40,202,228,216,220,37,215,212,25,171,187,120,149,63,255,248,148,50,66,57,89,154,4,67,29,252,124,5,0,182,179,144,132,151,203,95,251,103,162,123,75,54,65,173,131,72,220,122,13,252,226,106,4,146,105,194,231,12,5,84,37,132,16,196,106,115,222,145,182,112,119,172,5,192,66,130,6,178,131,94,236,135,59,194,74,41,130,137,238,25,218,155,77,224,111,70,199,35,30,189,12,183,114,229,230,235,152,139,74,220,242,186,80,229,125,218,136,103,241,180,42,65,243,93,162,131,55,123,23,67,43,117,108,254,254,77,249,241,217,120,93,243,234,172,62,205,172,81,81,86,21,142,126,115,0,13,225,207,55,75,51,66,131,139,165,26,202,80,206,120,156,255,40,162,12,119,197,245,5,78,13,54,61,63,121,131,136,21,129,55,194,22,135,195,12,114,202,90,219,94,65,98,32,45,43,245,189,8,125,108,44,99,78,22,223,86,201,86,14,234,125,11,73,215,166,65,183,91,239,90,103,250,3,3,196,244,177,155,24,62,127,32,202,93,129,15,55,39,240,33,164,209,91,226,51,214,209,132,238,96,65,109,141,198,98,241,34,153,17,180,203,140,221,10,42,108,96,141,32,60,169,113,180,233,55,32,230,205,232,122,156,41,15,17,164,43,139,174,73,204,32,171,38,36,51,237,186,190,117,166,138,77,58,176,245,221,144,180,32,114,92,123,93,54,22,187,84,191,60,61,110,195,22,234,69,159,199,168,20,25,72,109,39,87,115,153,169,23,58,217,217,199,162,73,174,242,248,147,20,130,175,232,232,130,153,19,10,194,185,215,241,247,163,189,88,114,110,33,60,200,3,191,106,203,207,209,49,194,227,146,163,101,116,161,73,172,149,19,172,82,145,154,255,10,59,60,197,36,60,7,219,169,112,115,187,134,86,23,252,164,76,240,146,43,13,114,36,253,138,235,239,101,219,44,152,126,77,96,169,4,43,201,227,248,109,74,33,26,242,241,156,33,159,106,113,234,238,196,73,116,125,72,167,254,8,47,100,218,124,63,233,130,213,88,222,231,157,115,102,213,116,220,12,244,184,245,143,236,94,233,64,223,106,82,148,105,173,227,238,17,9,37,203,239,215,242,177,138,251,62,5,119,218,116,148,189,213,109,45,49,149,253,6,193,98,93,177,74,216,0,250,174,76,102,239,213,252,51,147,40,57,87,157,155,237,70,106,128,243,14,134,68,119,19,2,201,246,34,109,44,30,127,145,224,234,209,1,79,43,248,93,192,132,143,228,59,46,5,206,158,10,108,6,74,164,150,38,101,11,79,185,162,63,101,63,44,228,213,164,3,253,151,51,94,140,140,76,117,214,85,26,67,205,218,205,113,216,91,41,104,45,191,46,152,203,69,118,255,122,97,9,202,53,29,14,121,129,123,48,86,109,79,234,195,167,183,192,93,93,126,24,91,10,225,116,90,228,34,35,19,135,131,174,198,22,80,15,224,235,148,129,103,184,135,14,81,43,176,17,193,14,227,195,15,42,108,226,42,87,26,255,46,185,246,240,122,141,14,10,49,16,3,60,111,219,222,155,95,147,50,69,240,126,142,175,146,2,57,185,245,13,7,6,194,81,115,221,51,187,9,200,208,219,168,220,169,195,156,234,29,5,18,137,223,179,211,210,87,115,86,87,26,223,128,155,127,253,250,95,180,42,76,115,45,211,214,245,50,184,3,142,48,120,148,97,224,215,65,230,249,13,131,171,158,183,134,188,209,101,156,222,59,222,227,47,74,27,187,248,74,132,245,57,238,89,87,239,51,135,188,230,250,135,211,93,224,21,194,89,138,205,247,138,144,2,154,242,88,50,202,23,123,106,213}, } ; static const unsigned char precomputed_core_multsntrup761_k[precomputed_core_multsntrup761_NUM][crypto_core_KEYBYTES] = { {0,0,0,0,-1,0,0,1,1,-1,1,0,1,-1,-1,0,1,0,1,0,1,0,1,-1,1,0,0,-1,0,0,0,0,1,-1,1,1,0,0,0,-1,1,0,0,-1,-1,0,0,0,1,1,0,0,-1,0,1,-1,0,0,0,0,0,-1,0,1,1,0,0,1,1,1,0,0,0,0,-1,1,0,-1,0,-1,0,-1,0,0,1,0,-1,0,-1,1,0,1,0,-1,-1,0,-1,0,0,0,-1,-1,-1,0,0,0,0,1,0,1,1,0,0,0,-1,-1,1,0,-1,1,-1,0,0,1,0,1,0,0,0,0,0,-1,-1,0,0,0,-1,-1,1,0,0,-1,0,1,-1,0,-1,1,-1,-1,0,1,-1,0,-1,0,0,0,1,0,0,-1,-1,1,1,-1,0,0,1,0,-1,0,0,1,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,-1,0,0,0,1,-1,-1,0,-1,-1,-1,-1,0,0,0,0,1,0,0,-1,-1,-1,1,0,0,0,1,0,1,1,0,0,-1,1,0,1,0,-1,-1,-1,0,0,-1,1,-1,0,-1,0,-1,1,0,0,-1,1,0,-1,0,0,1,-1,-1,-1,0,1,0,1,-1,0,0,-1,-1,0,1,1,1,1,-1,0,0,0,-1,0,1,1,0,1,1,-1,0,-1,0,1,1,0,1,0,0,-1,0,-1,-1,0,0,0,0,1,0,1,1,1,0,0,0,0,-1,1,0,0,-1,0,1,1,0,0,1,1,-1,-1,-1,1,0,-1,0,1,0,0,-1,0,0,0,-1,0,0,0,0,-1,0,0,0,1,-1,1,0,0,0,1,1,0,1,0,1,1,1,0,0,1,0,1,-1,-1,0,-1,0,0,-1,0,-1,0,0,0,0,-1,0,0,1,-1,1,1,1,1,1,0,0,1,-1,-1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,0,-1,0,1,-1,1,-1,-1,0,1,-1,-1,-1,0,1,-1,0,1,1,0,0,0,1,0,1,0,-1,1,0,-1,0,1,1,0,-1,1,-1,-1,1,1,0,1,1,1,-1,0,0,-1,1,0,-1,0,0,-1,0,1,0,0,1,1,0,0,0,-1,-1,1,0,-1,-1,1,0,1,0,0,0,0,-1,1,1,0,-1,1,-1,0,1,-1,0,-1,0,0,1,1,0,1,-1,0,1,1,1,1,0,1,-1,-1,-1,0,0,0,0,0,0,0,0,-1,-1,-1,0,1,0,0,1,0,-1,1,1,1,-1,-1,-1,-1,0,-1,0,0,0,1,-1,1,-1,1,0,-1,-1,1,0,1,0,0,0,0,-1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,-1,0,0,-1,0,1,-1,0,-1,0,1,-1,1,0,0,1,0,0,0,-1,0,1,1,0,0,0,1,0,1,1,-1,0,-1,0,0,1,0,-1,0,0,0,0,-1,1,1,0,0,0,1,1,0,0,1,-1,0,1,-1,1,1,1,1,0,1,1,-1,-1,-1,0,1,0,1,0,0,0,0,0,0,-1,1,0,0,0,-1,-1,1,0,0,0,0,0,0,0,-1,-1,0,0,1,0,0,1,1,0,1,1,0,-1,0,-1,0,0,0,1,-1,0,0,-1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,-1,-1,0,-1,0,0,-1,0,0,-1,0,1,-1,-1,1,0,0,0,0,0,0,-1,-1,0,1,0,-1,1,1,-1,-1,0,0,0,1,0,-1,-1,0,0,0,-1,-1,0,1,0,0,0,-1,0,0,0}, {-1,1,-1,-1,0,0,-1,0,0,0,1,0,-1,0,0,0,0,0,0,0,1,0,0,-1,-1,-1,0,0,1,0,0,1,1,0,0,0,-1,1,1,0,0,1,-1,0,0,0,0,0,0,0,0,0,1,1,-1,-1,0,0,0,-1,1,0,0,-1,0,0,0,1,1,-1,-1,0,0,1,1,0,-1,-1,0,-1,-1,1,-1,1,0,0,0,0,-1,-1,1,1,1,1,0,0,0,-1,0,-1,0,-1,0,0,-1,0,-1,0,0,1,0,0,1,0,-1,0,-1,0,0,0,0,0,-1,0,1,0,0,1,0,-1,0,0,1,0,1,-1,0,-1,-1,0,-1,0,0,-1,1,-1,0,0,1,1,-1,-1,0,-1,0,0,0,0,0,-1,-1,1,0,1,0,-1,0,0,-1,0,1,1,1,0,0,1,1,-1,0,1,-1,0,0,1,-1,0,-1,0,-1,0,1,0,0,-1,0,0,-1,0,0,0,-1,0,-1,-1,0,-1,-1,-1,1,-1,0,0,0,0,0,0,-1,1,0,0,-1,0,1,0,0,0,0,1,-1,-1,1,0,1,-1,1,1,0,1,1,-1,0,-1,-1,-1,0,1,0,-1,1,-1,1,1,1,1,1,0,-1,0,0,-1,0,-1,-1,0,0,-1,0,-1,-1,0,1,-1,0,0,1,-1,1,-1,0,0,0,-1,0,1,0,0,0,-1,0,-1,0,0,0,1,0,1,0,1,0,0,-1,0,-1,0,0,1,0,0,-1,-1,0,0,0,1,1,-1,1,-1,1,1,0,1,0,1,-1,1,-1,1,1,0,-1,0,1,0,-1,0,1,-1,0,1,-1,-1,0,0,-1,1,1,0,-1,-1,1,1,1,-1,1,1,1,1,0,-1,1,1,-1,-1,1,1,1,0,-1,1,0,0,-1,0,1,0,0,0,1,0,-1,-1,1,-1,0,0,0,0,0,1,0,0,-1,1,-1,1,0,1,-1,-1,1,1,0,-1,0,0,1,-1,0,1,0,0,-1,-1,-1,0,-1,0,1,-1,0,-1,1,0,1,0,0,1,1,-1,0,0,-1,1,0,0,1,0,0,-1,-1,0,0,0,0,1,0,0,1,1,0,1,-1,0,1,-1,-1,1,-1,-1,1,1,0,-1,0,0,0,0,-1,0,1,1,-1,0,0,1,1,0,0,-1,0,-1,1,-1,-1,-1,0,1,0,0,-1,-1,0,0,0,0,-1,0,0,-1,1,1,0,1,0,-1,0,0,1,0,-1,1,-1,-1,0,0,-1,0,0,-1,0,0,1,0,0,0,1,0,1,-1,0,-1,0,0,1,1,-1,0,0,1,-1,-1,1,-1,0,0,0,0,-1,1,1,-1,0,1,1,0,1,1,-1,0,1,-1,0,0,0,0,-1,0,1,-1,0,1,1,1,1,1,0,1,0,-1,1,1,-1,1,1,0,0,0,1,1,-1,0,0,0,-1,0,1,0,-1,1,1,0,0,-1,-1,0,1,1,-1,1,0,0,-1,0,-1,0,0,0,0,0,0,-1,0,0,1,-1,0,0,0,-1,1,-1,-1,-1,0,-1,-1,0,1,0,1,0,-1,0,0,1,1,1,-1,-1,1,0,-1,0,0,0,0,0,-1,1,0,1,1,-1,0,0,-1,0,-1,1,-1,0,1,0,0,0,-1,-1,0,1,-1,-1,-1,0,0,-1,1,0,0,0,0,1,-1,1,0,0,0,0,-1,0,-1,1,-1,1,1,0,-1,0,0,1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,-1,1,-1,0,0,-1,0,0,1,1,-1,0,-1,1,0,0,0,-1,0,0,0,0,0,0}, {0,-1,-1,-1,0,-1,-1,1,-1,0,-1,0,0,0,0,1,1,0,1,-1,-1,-1,-1,0,0,-1,-1,-1,-1,0,0,-1,-1,-1,-1,-1,-1,1,0,-1,1,-1,-1,1,0,0,-1,-1,0,0,1,1,0,-1,0,1,0,0,-1,1,1,0,1,1,0,-1,0,-1,0,0,-1,0,0,-1,0,0,0,0,-1,1,0,-1,0,0,1,0,0,0,-1,1,0,0,-1,-1,1,0,0,0,0,0,1,0,-1,-1,1,0,1,0,1,0,0,1,0,-1,1,-1,1,1,1,1,0,0,1,1,1,0,0,0,1,-1,1,0,0,0,1,0,-1,0,0,1,0,-1,1,0,0,0,0,0,0,-1,1,1,-1,0,1,0,1,-1,-1,0,0,0,1,1,0,1,-1,-1,1,0,1,1,-1,0,1,0,-1,0,0,0,1,1,-1,0,-1,-1,0,0,0,-1,1,0,0,0,-1,0,0,0,0,-1,0,0,1,1,0,0,0,0,-1,0,0,1,-1,-1,1,1,0,0,1,0,0,0,0,-1,-1,0,0,0,1,0,-1,0,0,1,1,0,-1,0,1,1,1,-1,1,0,-1,1,-1,0,1,-1,0,1,1,0,-1,0,0,0,0,0,-1,-1,0,0,0,0,-1,0,1,-1,-1,-1,0,1,0,0,0,-1,0,0,1,-1,0,-1,-1,1,1,1,-1,0,0,0,0,0,0,0,1,-1,1,-1,1,-1,-1,0,-1,1,0,-1,0,0,-1,0,0,0,0,1,0,0,1,-1,1,0,1,0,-1,-1,0,-1,1,0,0,0,0,-1,0,0,0,0,-1,0,-1,0,1,-1,-1,0,1,-1,0,-1,-1,0,1,0,1,1,0,1,0,0,-1,0,1,0,0,1,0,1,1,1,-1,1,1,-1,0,1,1,0,0,0,-1,1,0,1,0,0,0,0,-1,-1,1,0,-1,0,0,1,-1,1,1,-1,-1,0,1,0,-1,0,0,-1,1,-1,-1,0,1,-1,1,0,-1,-1,0,0,1,0,0,0,0,1,0,-1,1,1,0,-1,1,0,1,0,-1,0,0,1,1,1,0,-1,0,0,0,-1,0,0,0,0,-1,1,0,-1,0,0,-1,0,1,0,1,-1,0,1,0,-1,0,-1,0,-1,0,1,-1,0,1,0,0,1,0,0,-1,-1,1,-1,0,0,0,0,1,1,-1,-1,-1,-1,1,0,0,1,1,-1,0,0,0,1,0,-1,-1,0,-1,0,-1,1,0,0,0,0,0,-1,0,-1,0,0,0,0,0,0,1,0,0,-1,-1,0,0,0,0,0,-1,-1,0,0,-1,1,-1,-1,1,1,-1,1,0,1,0,0,-1,-1,1,1,0,0,1,1,0,0,0,1,0,-1,1,-1,0,1,0,0,-1,0,0,0,0,-1,1,0,0,-1,0,0,-1,0,-1,1,0,0,-1,0,0,0,1,0,1,1,0,0,-1,0,1,0,0,1,0,0,-1,0,1,1,0,1,1,1,0,-1,0,-1,1,0,0,1,1,-1,1,0,-1,1,0,0,0,0,0,0,0,-1,-1,0,0,0,0,1,-1,0,0,-1,-1,0,0,0,0,0,0,0,1,0,-1,0,-1,0,0,-1,0,-1,0,1,1,0,0,0,1,0,-1,0,0,-1,1,0,1,-1,-1,0,-1,1,-1,-1,0,-1,0,0,-1,0,0,-1,0,0,0,0,0,0,0,-1,0,0,-1,1,1,-1,0,0,0,-1,0,1,0,1,0,0,-1,0,0,0,1,0,1,1,-1,-1,1,1,1,1,0,1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,1,-1,-1,-1,-1,1,0,0,1}, {0,1,-1,1,0,-1,1,0,0,1,0,0,0,-1,0,-1,0,-1,0,0,0,1,1,1,-1,0,1,-1,1,0,1,1,0,0,0,1,0,1,-1,0,0,0,1,0,1,-1,-1,0,-1,0,-1,0,0,0,-1,-1,1,-1,0,0,0,1,0,1,-1,1,-1,0,0,0,-1,1,0,1,1,0,1,0,-1,0,1,-1,0,-1,1,1,0,-1,-1,-1,-1,1,0,1,0,1,-1,1,0,-1,-1,-1,0,1,0,0,0,-1,1,0,0,0,-1,-1,0,-1,1,0,-1,1,0,0,-1,1,0,0,0,0,0,-1,1,1,0,0,1,0,1,0,-1,1,-1,0,-1,0,0,0,0,0,0,1,0,0,-1,0,0,-1,0,-1,-1,-1,1,-1,0,-1,0,0,-1,0,0,1,-1,1,0,0,0,0,1,0,-1,0,0,1,0,0,0,1,0,0,1,0,0,1,-1,0,1,0,0,-1,-1,-1,0,1,0,0,1,-1,0,0,0,0,-1,1,0,1,1,1,1,1,-1,0,-1,0,0,1,0,-1,1,0,0,0,0,-1,1,1,1,0,-1,1,1,1,0,0,0,1,0,0,0,1,-1,0,0,-1,-1,0,0,-1,0,0,0,0,-1,1,1,-1,0,-1,0,-1,0,1,1,-1,1,1,0,-1,-1,0,0,1,0,0,0,1,0,0,0,0,0,-1,0,-1,-1,0,-1,-1,-1,0,1,1,-1,-1,0,1,0,0,0,0,-1,0,0,-1,0,0,-1,1,-1,1,0,0,1,0,1,0,0,-1,1,1,1,0,0,-1,0,-1,0,0,0,0,1,1,1,1,-1,-1,0,0,0,0,1,-1,0,-1,0,1,-1,0,0,1,-1,0,-1,1,0,0,-1,0,0,1,0,0,0,1,0,0,0,-1,-1,-1,1,-1,0,1,0,1,-1,0,0,0,0,0,0,-1,0,1,0,0,0,0,0,0,0,0,0,-1,0,1,-1,0,-1,0,0,0,1,0,1,1,1,1,0,0,1,-1,-1,0,1,0,0,1,0,-1,1,0,-1,0,0,0,0,0,-1,-1,-1,-1,-1,-1,0,0,-1,0,0,-1,0,1,0,0,0,0,0,0,1,1,-1,-1,1,-1,-1,0,0,-1,0,0,1,1,0,0,1,-1,0,1,0,1,0,0,0,-1,1,0,0,0,0,0,0,1,-1,1,0,-1,1,0,0,-1,-1,1,-1,0,0,1,0,-1,0,-1,0,0,-1,0,0,-1,1,0,1,0,1,-1,-1,0,0,0,0,0,0,0,1,0,0,1,-1,-1,0,1,0,1,1,1,0,0,0,-1,0,0,1,-1,0,1,-1,1,0,-1,0,1,0,-1,0,-1,0,1,0,1,0,0,0,1,-1,0,-1,1,0,1,0,1,0,0,-1,0,1,-1,1,1,1,0,-1,0,-1,-1,-1,0,1,0,1,-1,-1,0,0,-1,0,0,-1,0,1,-1,0,0,-1,1,0,0,0,1,1,1,0,1,1,-1,-1,-1,-1,0,0,0,0,0,0,-1,1,0,-1,0,1,0,0,0,0,0,-1,0,0,-1,-1,-1,-1,0,1,-1,0,0,0,0,0,1,-1,1,1,1,0,0,1,0,1,0,0,-1,0,0,0,0,1,1,-1,-1,0,1,0,-1,-1,0,0,-1,1,0,1,1,1,0,0,-1,-1,-1,0,1,1,0,1,1,1,0,1,0,0,1,-1,1,0,1,0,0,0,-1,1,1,0,-1,0,0,1,-1,0,-1,0,0,0,0,0,0,0,0,-1,0,0,0,-1,-1,0,0,1,0,-1,-1,1,0,-1,0,0,0,-1,0,1,0,0,1,0,1,1}, } ; static const unsigned char precomputed_core_multsntrup761_c[precomputed_core_multsntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_multsntrup761_impl(long long impl) { unsigned char *h = test_core_multsntrup761_h; unsigned char *n = test_core_multsntrup761_n; unsigned char *k = test_core_multsntrup761_k; unsigned char *c = test_core_multsntrup761_c; unsigned char *h2 = test_core_multsntrup761_h2; unsigned char *n2 = test_core_multsntrup761_n2; unsigned char *k2 = test_core_multsntrup761_k2; unsigned char *c2 = test_core_multsntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_multsntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup761(impl); printf("core_multsntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup761_implementation(impl),ntruprime_dispatch_core_multsntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup761; printf("core_multsntrup761 selected implementation %s compiler %s\n",ntruprime_core_multsntrup761_implementation(),ntruprime_core_multsntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_multsntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_multsntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_multsntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_multsntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_multsntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_multsntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_multsntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_multsntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_multsntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_multsntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_multsntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup761")) return; storage_core_multsntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_multsntrup761_h = aligned(storage_core_multsntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_multsntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_multsntrup761_n = aligned(storage_core_multsntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_multsntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_multsntrup761_k = aligned(storage_core_multsntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_multsntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_multsntrup761_c = aligned(storage_core_multsntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_multsntrup761_h2 = callocplus(maxalloc); test_core_multsntrup761_h2 = aligned(storage_core_multsntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_multsntrup761_n2 = callocplus(maxalloc); test_core_multsntrup761_n2 = aligned(storage_core_multsntrup761_n2,crypto_core_INPUTBYTES); storage_core_multsntrup761_k2 = callocplus(maxalloc); test_core_multsntrup761_k2 = aligned(storage_core_multsntrup761_k2,crypto_core_KEYBYTES); storage_core_multsntrup761_c2 = callocplus(maxalloc); test_core_multsntrup761_c2 = aligned(storage_core_multsntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_multsntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup761();++impl) forked(test_core_multsntrup761_impl,impl); ++test_core_multsntrup761_h; ++test_core_multsntrup761_n; ++test_core_multsntrup761_k; ++test_core_multsntrup761_c; ++test_core_multsntrup761_h2; ++test_core_multsntrup761_n2; ++test_core_multsntrup761_k2; ++test_core_multsntrup761_c2; } free(storage_core_multsntrup761_c2); free(storage_core_multsntrup761_k2); free(storage_core_multsntrup761_n2); free(storage_core_multsntrup761_h2); free(storage_core_multsntrup761_c); free(storage_core_multsntrup761_k); free(storage_core_multsntrup761_n); free(storage_core_multsntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_multsntrup857.c0000644000000000000000000017617014705505543023562 0ustar rootroot/* ----- core/multsntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_multsntrup857_checksums[] = { "d8bf44e9672dea2fc7a424fc0a0036c60cbb70bbde0754573455fffcf65e6e29", "b043b7fb8f6de5ed482bcbec3b317ef523d5b1d67061dd51f4a5b335696f7ef6", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_multsntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_multsntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_multsntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_multsntrup857_CONSTBYTES static void *storage_core_multsntrup857_h; static unsigned char *test_core_multsntrup857_h; static void *storage_core_multsntrup857_n; static unsigned char *test_core_multsntrup857_n; static void *storage_core_multsntrup857_k; static unsigned char *test_core_multsntrup857_k; static void *storage_core_multsntrup857_c; static unsigned char *test_core_multsntrup857_c; static void *storage_core_multsntrup857_h2; static unsigned char *test_core_multsntrup857_h2; static void *storage_core_multsntrup857_n2; static unsigned char *test_core_multsntrup857_n2; static void *storage_core_multsntrup857_k2; static unsigned char *test_core_multsntrup857_k2; static void *storage_core_multsntrup857_c2; static unsigned char *test_core_multsntrup857_c2; #define precomputed_core_multsntrup857_NUM 4 static const unsigned char precomputed_core_multsntrup857_h[precomputed_core_multsntrup857_NUM][crypto_core_OUTPUTBYTES] = { {3,1,70,1,205,8,103,9,105,8,161,255,2,5,253,0,241,6,186,2,6,3,167,252,174,254,55,1,211,252,43,250,143,7,176,249,0,249,133,4,166,7,145,246,155,249,110,247,48,249,57,248,225,3,123,246,105,251,190,255,247,9,229,1,187,3,242,246,101,8,15,10,247,1,207,251,168,8,247,255,47,7,219,8,162,255,155,8,42,8,22,247,166,252,40,255,197,3,3,255,185,2,180,1,247,9,80,0,52,251,111,253,164,8,236,251,5,248,231,4,129,249,192,251,63,6,84,3,91,249,19,249,183,250,174,246,40,8,197,249,158,255,32,253,73,250,30,251,129,7,101,254,15,5,66,246,224,246,119,251,120,248,73,246,173,255,166,246,225,2,70,5,133,2,72,4,152,7,159,4,19,248,129,248,254,249,121,254,205,8,59,249,71,8,60,249,17,252,22,3,122,9,164,252,130,8,93,6,245,8,82,255,90,249,14,5,242,5,217,2,76,246,254,8,169,1,178,246,70,7,111,247,231,3,81,5,195,1,27,248,31,0,110,253,6,246,150,8,127,250,212,9,38,250,195,252,23,7,227,0,0,7,22,253,231,9,46,4,197,6,68,254,209,253,244,246,225,6,166,252,247,5,52,251,53,251,79,254,153,0,101,248,43,4,44,6,104,250,177,2,143,252,218,8,181,0,169,5,61,255,36,8,118,252,163,252,222,255,224,252,124,9,248,0,55,0,45,4,46,248,44,1,198,248,8,253,14,10,131,5,214,8,37,253,222,247,88,250,248,2,237,5,100,249,97,2,110,8,132,6,19,253,129,251,79,4,28,0,128,0,35,0,11,10,232,255,32,247,173,3,61,250,172,0,243,7,84,248,160,5,57,247,216,4,240,252,139,255,146,7,81,7,158,250,227,7,64,3,196,253,176,3,232,5,185,249,0,5,67,8,12,8,141,9,199,8,189,253,221,255,110,249,62,9,45,6,35,0,108,246,240,248,135,254,53,246,108,254,75,5,194,251,37,6,28,255,234,246,42,6,133,0,187,247,177,4,210,7,164,249,219,246,32,253,49,252,70,255,92,251,122,253,225,253,112,7,205,4,60,254,198,254,173,7,3,247,158,1,116,9,24,4,67,4,114,2,94,255,31,6,82,7,73,7,76,250,18,248,89,6,157,5,120,255,83,246,190,1,36,250,166,2,202,0,63,250,20,249,89,252,88,251,214,3,162,2,204,3,207,251,190,5,210,248,115,7,163,248,18,3,86,3,92,253,133,251,251,249,240,247,229,6,153,252,133,248,154,248,182,252,190,247,177,8,139,8,124,251,218,9,226,9,214,252,128,250,155,1,246,252,174,247,164,9,34,4,244,9,128,249,206,4,28,249,39,251,81,250,151,2,96,5,70,5,113,3,252,3,115,248,198,0,42,5,93,5,90,2,250,6,226,252,107,1,82,0,101,255,49,247,247,2,56,6,191,0,188,4,49,0,102,9,136,5,168,252,201,4,154,7,166,254,91,8,52,1,97,250,124,4,100,253,63,1,79,253,227,247,134,1,235,248,201,254,238,246,27,255,148,252,241,246,4,250,134,252,64,253,177,9,13,255,178,8,143,0,170,3,238,245,76,253,20,250,104,250,54,249,87,2,50,254,179,250,2,249,145,8,209,249,45,252,60,1,175,0,212,246,208,247,39,0,61,9,54,6,101,255,110,9,79,248,140,1,106,0,209,3,74,6,46,7,93,251,21,249,11,8,202,6,115,250,21,254,223,1,187,248,195,9,0,10,39,247,31,2,100,4,220,4,235,254,37,252,98,251,159,249,204,0,230,255,59,4,18,0,175,255,74,6,178,3,51,252,11,2,238,255,179,251,130,255,36,253,204,2,107,8,28,8,130,250,227,2,53,3,148,247,175,3,3,1,94,6,126,4,219,0,85,255,108,254,3,246,115,0,244,250,124,7,16,8,250,2,64,1,46,4,245,255,233,251,210,0,190,2,137,252,200,4,122,248,22,252,133,247,218,4,53,248,96,254,133,253,233,245,13,250,212,0,145,7,200,248,170,247,1,255,172,0,82,3,188,7,122,6,17,251,209,254,30,5,72,9,13,0,206,253,177,249,45,248,26,255,200,5,219,5,123,246,242,248,186,253,218,8,120,246,170,5,241,9,189,0,147,252,240,255,95,1,87,254,210,5,48,1,240,1,251,252,97,254,130,6,122,0,132,253,88,247,219,249,20,251,78,248,22,246,100,9,77,255,232,9,36,4,236,1,48,2,104,7,226,253,97,4,13,249,221,2,41,4,78,250,82,251,188,255,180,247,235,246,0,252,43,2,128,3,56,253,126,8,169,248,8,254,80,7,10,253,213,4,89,249,169,5,92,250,46,250,46,7,70,247,1,10,56,6,141,4,248,253,125,251,237,5,12,252,119,254,92,7,22,250,205,246,198,9,248,250,78,250,29,4,25,6,78,250,160,253,222,8,136,248,51,251,246,255,190,255,125,250,98,250,115,253,229,7,178,5,114,7,237,255,17,251,217,6,183,7,103,250,113,6,196,7,31,248,123,249,51,7,38,2,93,8,37,249,175,254,133,253,203,8,241,6,85,4,36,0,224,253,89,1,185,249,236,2,163,249,180,250,20,248,29,1,221,250,55,248,246,255,68,252,237,8,176,255,32,3,61,248,235,7,168,4,246,247,142,246,20,6,12,250,187,7,209,249,6,2,244,245,64,2,114,6,41,5,118,3,78,9,222,250,6,252,145,254,167,8,36,4,45,2,38,250,125,253,216,4,156,255,169,250,81,3,192,1,144,6,168,252,248,1,108,2,133,3,174,248,230,248,84,246,254,7,102,247,63,0,224,248,218,6,63,251,24,0,68,254,145,4,194,2,230,5,75,9,37,250,15,2,194,253,81,246,240,1,120,0,41,246,195,254,79,250,82,249,246,0,144,2,215,252,46,253,175,9,166,253,40,250,247,246,66,255,250,7,22,250,136,0,32,252,191,247,70,3,181,247,234,9,143,247,15,250,149,0,59,8,2,8,71,7,165,250,64,2,8,253,171,6,96,254,140,248,119,5,122,0,27,252,47,2,195,4,217,6,191,252,131,3,14,254,184,9,239,252,206,253,63,247,116,0,118,1,251,3,95,253,187,9,155,4,107,254,49,8,213,0,222,246,210,246,56,254,231,247,35,253,206,2,102,5,6,8,159,9,70,3,5,10,169,1,99,7,103,9,214,8,202,0,49,1,38,250,143,247,2,2,242,254,148,8,250,254,9,5,11,246,136,3,65,248,216,255,2,10,43,1,30,246,220,255,223,2,78,6,170,248,128,0,218,4,52,247,254,245,214,249,109,1,20,252,22,9,60,3,121,8,254,6,238,245,159,1,110,6,200,252,87,250,40,6,38,9,65,8,58,3,247,5,241,255,73,3,119,1,23,249,233,251,160,251,121,1,66,4,73,247,90,249,105,2,209,8,136,249,153,6,103,246,38,7,52,250,121,249,186,9,8,3,10,5,186,5,249,249,177,253,196,9,169,247,32,251,237,249,224,246,143,6,61,248,128,248,198,251,191,249,7,248,101,8,142,7,216,250,41,251,161,252,9,6,229,252,51,254,50,249,162,5,50,6,67,1,214,6,56,5,83,248,46,249,243,8,219,0,128,255,240,250,126,255,237,9,161,6,95,255,199,1,174,6,237,247,108,253,177,6,125,250,205,251,166,7,127,5,32,2,70,6,108,246,249,2,73,4,21,249,82,1,37,247,128,250,3,254,192,255,247,1,241,254,190,251,159,9,170,255,115,252,198,253,19,5,206,251,56,247,89,255,64,7,235,248,233,5,12,3,113,4,4,247}, {32,255,200,5,237,0,96,4,25,0,145,255,113,9,106,1,63,250,93,252,0,252,116,9,165,1,134,7,19,4,203,251,25,6,183,5,42,0,129,249,216,9,3,9,48,246,129,251,117,251,119,254,63,248,131,7,15,3,224,251,83,5,199,254,69,6,113,250,240,0,87,8,135,9,23,246,205,253,159,1,130,0,187,250,79,255,239,6,147,247,20,8,122,251,14,4,162,252,148,254,187,6,153,254,141,3,83,2,3,248,50,4,102,5,98,4,53,9,221,246,205,2,198,249,0,249,72,3,21,3,118,251,176,249,129,6,223,8,18,248,114,248,60,2,61,249,41,5,83,253,151,2,233,247,173,253,127,247,199,3,96,7,25,250,92,7,44,252,195,249,63,253,78,253,37,251,144,0,51,249,89,255,0,2,17,1,1,246,114,9,242,252,20,247,45,7,101,247,89,2,242,7,122,251,61,8,28,9,137,253,45,7,211,3,147,248,37,2,35,2,220,253,92,8,38,253,95,4,2,255,34,246,91,1,201,5,233,246,164,253,241,6,79,250,79,7,222,2,1,255,97,247,31,1,209,248,9,6,145,2,97,252,234,0,241,254,18,7,90,249,202,249,170,5,28,249,103,251,109,246,92,3,34,250,64,248,28,8,104,246,1,0,39,254,92,254,107,248,117,0,34,248,61,248,173,0,31,7,152,4,173,255,26,3,184,248,66,3,95,3,20,8,243,9,152,255,93,249,177,247,97,247,44,253,238,255,90,3,183,9,218,248,106,4,93,249,184,9,14,3,246,252,70,0,219,249,228,4,115,249,154,255,47,249,77,2,141,250,33,248,105,0,170,5,16,247,185,252,112,246,37,5,142,8,12,6,254,8,128,5,225,253,191,1,191,6,242,247,213,250,199,247,233,252,233,3,185,2,200,4,253,247,48,2,101,247,135,249,187,250,139,4,38,252,203,1,133,0,8,251,238,249,68,246,122,7,129,255,86,2,72,5,144,246,110,5,69,6,182,5,206,254,123,3,39,2,140,8,66,248,78,249,79,7,144,7,176,1,19,250,110,246,0,251,237,254,191,255,101,253,194,5,224,4,158,247,212,4,234,247,136,2,216,4,128,3,75,6,79,247,171,251,4,1,250,5,184,248,247,250,183,2,234,255,225,6,166,249,217,8,239,7,39,246,3,4,34,3,126,3,129,3,188,3,198,9,222,248,70,252,65,251,122,9,117,2,11,247,96,5,101,8,242,1,21,3,4,10,22,248,107,5,141,250,172,3,240,246,215,250,225,1,53,249,181,250,195,252,105,5,244,8,30,247,177,6,235,4,154,251,90,247,56,8,139,250,51,5,194,6,114,5,44,250,137,246,82,4,199,7,233,9,220,252,156,4,18,0,188,2,116,246,135,4,45,254,40,253,51,3,158,9,104,252,215,251,81,4,174,246,222,246,69,255,203,249,198,246,41,5,251,5,145,3,142,4,68,0,150,253,253,6,220,249,192,252,236,250,163,251,249,249,238,9,186,7,66,5,221,0,125,2,226,3,181,4,237,1,159,1,202,8,63,255,182,6,142,5,107,2,131,3,84,255,25,249,11,4,36,0,34,247,241,8,211,253,33,7,197,252,244,8,45,5,94,2,225,249,134,249,241,4,127,6,59,3,92,247,40,4,238,0,92,3,145,250,172,250,118,5,69,3,229,248,207,8,117,249,78,247,90,254,26,3,165,254,117,7,201,252,14,252,138,0,94,250,117,5,79,248,237,251,200,2,195,254,211,248,39,7,37,9,236,4,200,251,25,6,197,255,234,2,34,254,89,6,2,252,182,248,168,249,179,250,81,2,41,4,79,2,97,251,132,250,185,3,79,1,97,249,31,1,26,8,233,253,82,1,209,252,13,252,228,4,64,3,88,253,10,10,159,250,219,254,45,9,99,250,167,255,13,254,253,255,91,0,242,4,196,250,76,246,101,248,123,255,37,2,110,248,189,247,237,247,203,249,139,6,138,9,144,2,183,0,69,1,89,8,213,247,218,249,120,9,117,5,107,8,163,9,22,249,93,0,222,253,56,1,120,255,51,248,61,252,142,1,86,254,215,252,95,247,146,252,132,252,189,4,26,247,28,252,127,3,207,9,248,5,110,5,67,255,227,255,165,250,88,254,57,251,178,3,82,6,80,255,252,1,33,251,230,255,164,9,206,3,142,253,112,9,207,255,81,250,189,8,235,255,7,9,237,255,153,248,243,245,138,3,104,4,247,247,135,4,247,1,179,254,119,248,124,0,194,249,142,248,135,1,199,255,244,0,85,248,253,8,207,250,201,254,24,252,43,252,70,8,243,249,75,3,140,5,219,250,19,253,63,252,194,4,104,3,79,254,73,252,17,246,123,5,44,248,45,247,67,6,150,252,140,250,20,253,234,254,243,246,41,1,47,4,183,4,131,246,217,251,84,255,190,2,177,247,185,0,72,1,195,248,96,250,13,250,97,246,191,4,42,254,164,252,15,253,15,246,240,250,118,249,63,253,230,5,92,253,67,0,10,255,42,248,90,7,220,250,48,255,106,253,216,251,144,6,94,7,29,1,218,255,11,254,33,250,140,255,164,7,133,9,177,251,219,0,32,7,129,0,66,250,99,1,158,7,133,249,255,3,157,254,60,254,247,247,12,254,80,253,123,9,176,249,161,248,148,2,161,252,162,246,105,251,189,253,3,3,9,7,214,248,95,249,47,246,88,251,126,249,57,1,217,255,158,250,16,1,230,249,63,9,243,254,240,4,135,255,174,254,81,4,64,254,19,251,127,2,247,4,158,253,158,4,192,3,207,249,15,251,16,248,206,250,227,4,131,252,194,8,6,2,133,250,2,2,224,0,22,5,230,254,231,0,177,9,105,249,225,249,190,248,51,2,170,0,153,7,137,253,121,2,195,9,155,0,100,6,44,4,254,251,99,249,84,249,232,255,172,5,84,6,223,5,61,7,82,0,74,254,242,246,62,252,1,254,146,255,49,1,81,8,97,248,140,255,72,3,193,2,232,1,3,1,146,248,23,3,60,0,243,250,138,249,35,1,227,250,220,248,220,253,169,251,207,0,69,1,184,247,254,7,125,249,205,7,83,252,125,2,222,5,96,255,186,2,204,3,247,247,239,9,165,4,216,6,46,4,100,4,200,9,7,7,32,9,46,4,103,6,135,254,240,1,53,252,142,4,204,254,32,246,97,248,73,2,205,247,188,251,3,249,129,4,242,253,121,8,149,252,170,252,189,8,106,250,123,3,246,249,113,251,231,4,193,247,96,246,151,2,228,248,113,7,145,249,54,3,235,6,38,8,187,2,189,8,64,247,190,253,87,254,97,5,97,246,219,8,80,254,154,8,141,251,27,1,131,251,230,7,1,10,47,250,110,248,96,247,255,2,241,1,216,252,220,6,236,1,9,2,242,4,181,1,0,251,66,253,81,248,202,246,111,2,115,246,16,5,9,249,217,3,145,246,133,253,211,248,111,8,158,7,183,1,178,6,241,3,54,7,204,4,221,7,26,253,195,255,97,254,52,2,91,1,38,248,14,5,182,4,61,249,146,246,88,2,80,0,194,255,250,8,81,252,100,1,141,248,83,7,67,9,229,246,89,8,43,246,186,8,50,246,22,247,80,1,32,247,189,1,229,247,200,246,67,4,32,9,244,254,226,0,109,8,2,247,126,9,56,6,240,248,32,5,139,9,251,5,214,5,27,2,118,246,232,248,198,255,177,4,148,248,242,251,24,2,4,1,57,255,0,255,144,2,210,2,115,246,46,254,140,9,18,6,171,2,228,253,55,6,186,246,225,2,24,8,230,254,196,2,72,252,216,2,65,248,176,5}, {66,5,169,253,190,246,19,3,187,3,76,0,33,4,103,253,29,250,41,1,200,1,185,254,159,6,64,254,161,5,169,253,208,6,206,255,200,0,151,6,240,253,240,252,237,6,78,248,169,1,17,246,73,255,204,246,138,250,113,255,131,247,1,6,160,4,173,2,61,252,62,9,34,253,28,8,59,0,128,249,101,247,177,250,127,6,243,1,28,246,218,3,226,5,246,7,239,255,152,253,200,247,212,1,69,250,109,7,222,248,245,6,78,1,20,252,129,251,250,1,137,3,4,246,88,0,164,249,126,252,15,4,178,0,153,249,98,247,15,246,241,251,142,6,102,249,188,1,146,8,79,7,4,254,248,253,0,0,215,9,83,6,75,3,248,4,64,5,240,249,64,3,22,250,89,9,87,0,106,3,240,1,82,246,91,1,117,248,46,1,92,2,16,248,53,249,109,249,199,8,233,253,143,246,131,6,226,246,115,254,198,255,49,254,171,247,86,247,71,250,151,5,186,252,23,254,82,7,179,0,74,2,128,251,33,255,33,248,161,5,0,251,216,250,213,5,239,5,175,3,89,247,3,1,2,253,68,1,121,248,248,6,106,8,208,1,64,7,146,7,223,8,241,245,33,7,126,246,29,254,100,7,13,248,253,5,117,0,169,6,234,249,170,247,201,255,63,246,122,9,233,255,177,5,152,9,55,5,58,250,35,0,177,248,249,254,19,0,115,248,161,246,238,3,114,4,217,4,44,246,205,8,21,251,160,252,214,2,196,2,86,2,11,253,51,1,197,2,222,5,198,254,244,251,16,246,11,9,154,254,40,2,231,249,198,249,216,9,112,4,160,0,187,252,79,9,35,253,31,248,90,2,151,250,126,255,31,250,210,9,151,6,45,249,213,255,219,7,185,1,52,3,109,3,190,5,134,246,187,254,181,4,92,4,141,253,52,251,2,7,58,5,241,247,189,0,57,5,149,254,192,0,103,248,115,2,255,250,46,247,16,250,188,7,60,249,109,0,121,5,198,4,125,251,10,255,122,249,21,254,160,254,30,250,195,9,97,254,64,9,194,254,80,252,194,255,236,245,57,254,169,4,191,3,209,9,166,3,216,9,183,249,208,9,31,3,47,7,237,253,85,2,20,250,128,1,160,2,33,255,185,8,47,2,237,254,100,246,51,252,113,0,47,3,22,247,107,4,4,250,91,255,130,8,237,253,15,249,84,3,86,246,46,7,234,4,239,248,91,253,40,3,176,250,78,252,101,3,147,248,201,248,133,7,58,9,76,247,175,253,250,7,52,248,183,8,5,247,235,245,197,251,106,1,14,255,132,254,151,0,65,4,254,6,133,250,148,0,193,1,128,254,245,8,46,2,4,10,4,7,183,7,209,4,56,253,199,1,115,9,48,250,41,5,203,2,96,247,213,6,222,9,222,254,228,246,89,0,188,6,32,3,153,8,53,254,57,7,246,5,246,247,123,250,170,254,80,246,60,2,137,8,42,2,107,9,204,255,147,1,223,250,135,253,251,255,228,247,108,0,130,1,144,246,230,248,89,254,251,245,130,246,86,249,196,8,221,5,48,247,88,3,23,4,61,247,145,9,92,7,238,255,16,1,90,9,98,251,42,7,121,1,179,252,4,6,1,2,13,246,244,252,148,249,95,9,124,252,209,3,221,3,235,249,21,253,178,251,80,1,128,247,144,1,106,5,62,254,64,252,7,10,179,254,4,249,152,2,189,250,18,3,126,246,29,4,88,8,156,251,224,8,87,8,254,4,242,4,224,6,237,250,127,254,179,255,225,248,105,7,250,248,214,248,89,7,52,3,233,252,162,2,205,2,79,3,28,6,186,2,95,0,228,1,22,255,54,253,22,250,116,2,96,252,214,252,8,247,3,247,236,4,93,254,161,255,81,7,231,253,241,246,78,1,137,255,18,251,57,5,93,4,196,4,90,251,217,5,247,6,89,251,127,252,166,255,32,8,117,1,4,254,57,5,241,250,160,1,100,246,135,255,161,0,183,248,208,246,123,251,185,249,79,4,99,249,38,5,22,2,203,4,162,251,244,5,80,5,218,9,226,251,193,255,34,4,35,8,7,2,116,255,49,251,243,2,56,253,212,7,69,2,234,252,11,10,9,250,80,6,7,2,211,251,198,252,221,252,178,255,111,8,216,254,131,8,105,9,233,247,147,4,14,8,249,2,137,250,167,4,144,251,68,246,223,3,97,250,245,4,110,255,242,2,153,3,101,251,95,7,239,247,142,5,53,251,94,2,74,3,196,247,247,247,21,3,144,255,245,7,41,252,91,5,232,1,30,8,139,1,9,1,201,9,198,255,192,0,209,7,158,3,53,4,66,252,60,7,171,247,1,6,137,249,101,251,184,248,145,5,140,250,215,2,231,5,75,247,18,9,61,249,29,7,91,9,182,253,173,251,178,4,245,1,97,5,95,253,68,250,251,8,130,5,142,254,101,7,40,8,44,249,233,251,162,248,7,3,67,253,244,249,253,245,50,252,17,248,104,255,104,253,32,5,90,2,34,247,35,2,183,3,173,1,163,7,246,3,76,5,126,253,47,9,156,255,79,0,219,254,47,255,144,4,36,9,245,0,148,1,206,7,245,1,166,255,136,8,117,253,225,2,0,7,138,246,164,247,111,6,41,251,41,5,195,1,50,252,211,246,29,249,84,248,48,253,19,4,36,1,13,0,64,9,108,248,13,7,49,246,177,3,210,7,183,252,180,253,225,255,42,253,72,6,151,6,177,253,245,9,136,3,234,0,131,254,39,248,6,2,177,250,108,8,123,9,128,250,49,253,145,249,33,7,112,4,152,253,146,0,58,2,141,250,79,6,179,8,140,255,116,249,250,247,36,2,182,4,2,5,24,248,216,1,10,2,21,248,159,9,229,255,202,246,197,4,20,5,192,252,121,253,93,249,224,8,212,9,47,6,88,0,135,247,139,254,31,248,182,253,7,2,189,248,45,2,171,2,186,248,153,250,238,9,193,252,50,6,209,252,153,249,185,7,168,6,221,253,2,248,200,7,251,3,234,0,218,246,153,9,84,0,161,249,175,254,95,252,195,7,97,7,110,4,118,246,134,7,226,247,247,4,16,9,102,253,72,249,208,249,144,3,160,2,222,4,164,0,165,1,3,247,22,3,43,3,170,3,123,255,65,9,51,253,134,246,32,5,67,247,30,251,73,255,134,3,85,254,7,4,113,8,61,246,39,2,72,2,28,5,48,3,16,251,15,3,30,5,76,7,84,9,91,253,156,248,146,246,183,2,255,0,75,251,160,2,185,254,222,249,110,0,244,8,14,5,250,252,105,254,148,5,234,7,93,252,214,7,72,255,111,0,136,255,240,253,109,5,192,253,77,4,126,247,85,246,61,0,89,6,224,4,23,2,117,9,150,7,242,9,182,252,137,2,103,5,129,251,5,6,185,249,122,1,211,8,218,6,209,0,193,5,88,6,38,9,164,248,46,248,174,8,192,7,19,252,243,0,244,0,69,253,138,252,110,5,69,9,72,5,90,4,223,9,103,250,68,5,66,1,37,249,234,8,122,248,128,8,157,250,73,247,244,252,154,246,109,251,131,6,160,255,136,8,111,246,37,248,151,246,35,250,253,253,186,6,247,9,119,0,70,253,192,6,161,247,222,254,98,248,91,253,28,255,245,7,95,255,74,5,126,250,167,252,105,251,46,6,161,251,199,1,232,9,65,4,197,252,187,2,170,246,121,246,27,8,215,2,227,248,244,255,173,251,5,247,253,250,118,2,139,250,148,0,129,8,203,6,227,0,205,9,141,8,62,3,147,6,61,249,52,6,247,2,202,249,208,7,229,0,187,250,84,2}, {104,247,14,251,202,246,218,1,16,5,152,3,219,252,7,5,3,4,203,247,248,246,116,248,24,246,168,6,127,253,128,0,105,4,78,248,12,246,168,251,103,252,186,2,83,8,25,253,50,255,87,3,19,249,77,251,46,249,254,1,63,251,99,253,250,4,129,7,219,254,134,3,187,5,31,250,100,255,178,4,222,5,103,249,210,8,46,8,15,254,92,251,103,3,255,252,201,246,18,2,57,7,7,255,214,247,71,249,60,3,32,248,126,248,122,0,175,246,153,251,240,246,11,253,0,7,38,4,9,6,142,2,160,9,214,251,224,248,220,250,140,4,221,248,40,2,192,4,244,250,199,8,221,7,94,247,149,6,51,248,220,2,120,252,50,5,10,6,78,252,37,7,145,0,57,1,29,3,21,251,19,255,126,250,139,252,187,9,93,254,109,3,63,9,69,246,50,252,246,5,202,1,85,6,99,6,98,9,176,247,253,4,5,255,217,0,156,4,86,251,235,251,201,8,228,246,14,9,39,251,148,255,105,246,215,252,18,6,180,9,209,3,5,10,236,248,46,4,130,7,106,255,226,253,248,0,217,255,37,4,235,245,168,250,147,248,245,4,170,1,72,2,69,251,171,0,31,252,245,255,69,255,4,250,103,247,138,251,116,9,141,8,92,252,173,254,187,255,25,6,153,9,115,250,231,8,170,7,122,3,119,7,81,249,29,255,196,247,87,251,77,248,46,5,38,253,147,2,101,4,230,8,226,0,161,1,191,8,105,252,16,251,14,255,197,251,199,248,81,247,43,2,116,255,30,254,229,251,119,248,14,7,203,248,160,252,7,252,173,5,174,5,209,250,115,251,198,7,118,0,193,6,55,2,196,8,209,1,17,252,196,251,179,250,54,246,82,4,14,247,38,248,105,247,77,9,208,250,9,0,201,248,96,4,140,5,188,247,155,7,108,7,54,2,10,10,176,4,94,255,196,250,187,254,26,249,28,247,223,251,100,255,248,248,19,250,223,255,123,249,127,5,250,252,187,253,14,247,87,250,50,2,35,254,141,253,62,1,226,248,73,3,6,0,36,3,196,251,251,0,23,0,89,5,220,0,209,252,227,255,161,247,183,8,22,6,11,250,186,6,231,253,194,0,198,2,59,246,148,248,134,3,9,255,204,252,151,250,79,5,99,1,194,8,55,7,184,255,26,255,91,248,207,2,243,2,144,249,61,250,149,248,202,248,42,250,163,9,108,249,193,252,157,247,23,252,138,1,119,252,46,6,104,253,101,255,169,0,58,248,87,9,0,248,251,254,70,8,64,248,82,6,224,0,16,246,11,5,183,255,234,251,43,253,201,252,118,254,35,246,138,254,2,1,202,6,23,254,194,9,160,2,191,6,9,252,63,9,29,7,254,245,165,246,57,254,241,246,182,254,87,249,18,3,74,254,86,2,192,8,189,0,75,9,31,9,238,245,171,251,252,255,11,9,121,9,151,251,206,4,195,253,143,253,87,8,110,6,72,253,168,1,14,3,10,247,198,1,56,253,112,9,225,253,253,8,88,9,146,6,44,6,198,254,118,254,4,1,77,255,212,5,198,7,186,250,66,246,111,4,177,255,241,255,252,0,186,8,40,6,147,255,253,246,230,6,34,249,175,247,247,248,86,9,237,6,196,1,114,6,129,3,226,5,174,4,2,248,152,7,21,253,17,254,194,5,110,248,63,250,16,254,167,1,231,9,37,249,20,3,134,8,202,6,251,251,151,8,194,1,122,248,90,8,28,3,7,253,27,7,55,246,221,1,149,253,206,252,13,248,174,6,181,5,253,251,244,6,120,250,36,8,149,249,241,5,115,253,252,247,117,248,8,5,152,3,237,253,118,1,209,253,209,249,129,249,35,0,208,0,5,9,11,1,26,246,111,254,122,2,191,246,84,6,115,3,207,3,21,3,104,249,18,10,14,7,107,255,143,9,25,8,108,255,173,2,8,248,89,250,89,252,101,248,185,250,2,252,216,254,65,4,156,254,189,8,80,0,67,9,74,6,197,247,171,255,222,9,223,254,23,0,115,248,28,9,6,250,140,7,202,5,195,251,163,255,39,6,159,9,251,6,93,251,53,6,205,9,118,5,127,254,204,254,96,7,207,253,34,5,68,1,125,246,234,245,140,7,47,250,200,5,236,9,24,249,48,3,70,8,188,254,6,251,237,254,72,248,108,250,190,253,237,245,174,9,100,1,224,249,131,6,214,249,22,250,191,247,84,5,42,5,198,255,14,248,152,249,6,5,134,253,143,5,91,254,73,254,191,0,214,7,130,7,61,8,100,8,138,250,17,248,24,0,214,251,4,251,190,9,48,250,251,1,222,246,162,9,235,247,236,2,238,4,233,6,169,253,181,9,250,251,142,253,63,250,5,254,0,1,234,253,176,9,229,3,66,4,109,4,95,253,116,246,100,9,196,248,165,1,42,6,189,254,16,255,166,246,215,6,244,5,244,254,112,9,84,251,227,0,193,2,192,4,88,9,170,248,4,3,175,1,231,252,245,252,47,9,202,0,83,253,101,7,30,249,68,5,98,250,63,254,150,253,214,250,250,5,99,246,77,249,233,4,229,5,138,3,125,4,216,3,200,251,92,8,202,252,26,3,98,7,129,9,122,8,219,248,211,250,47,254,114,252,182,7,247,249,111,253,85,255,65,250,67,8,233,252,137,0,72,0,61,7,212,255,136,6,242,247,15,7,145,251,97,6,197,4,159,252,15,8,182,252,20,255,89,4,63,250,28,6,217,252,126,2,57,246,64,3,86,6,159,248,157,1,197,247,12,246,84,252,135,7,23,255,7,4,207,0,27,8,235,9,105,255,19,8,208,7,211,5,11,4,203,4,63,254,115,2,75,254,57,1,140,1,41,250,216,6,233,247,143,254,27,250,216,251,210,253,125,251,167,2,245,250,220,5,45,1,133,254,49,7,19,1,22,0,111,9,42,254,179,0,91,254,86,249,79,0,234,250,170,254,175,253,123,6,59,7,216,4,101,0,113,255,36,1,247,3,53,255,110,248,96,4,141,2,119,249,204,5,65,251,63,7,25,7,240,255,250,249,155,253,98,6,225,2,174,8,218,9,21,251,156,252,198,2,195,250,236,250,118,0,10,254,182,2,75,8,197,251,110,2,14,248,238,1,48,252,0,1,233,9,207,4,38,2,22,0,109,8,5,251,1,252,113,5,184,1,146,0,6,4,137,248,249,1,21,0,120,7,153,254,186,4,217,6,162,3,115,251,249,0,24,9,155,7,41,2,56,246,159,6,192,3,77,6,78,4,12,4,18,0,129,0,45,249,66,250,201,250,158,254,1,249,123,1,1,250,85,8,14,251,208,2,12,2,82,254,176,9,215,254,112,0,152,249,60,4,179,6,245,254,247,6,245,245,22,5,36,3,60,251,87,5,26,7,58,2,4,255,76,247,241,6,96,246,234,2,176,4,253,247,110,247,3,6,37,3,156,255,201,7,9,252,113,255,111,247,59,250,250,8,175,254,133,248,7,250,179,2,7,6,81,2,133,246,79,255,219,249,40,252,239,253,29,4,222,6,61,246,167,1,223,255,239,249,227,7,237,245,175,8,137,7,147,250,184,1,17,6,18,254,245,8,94,254,223,253,109,4,206,5,115,4,227,4,126,7,219,9,119,251,241,0,88,2,160,247,253,1,135,4,213,2,255,9,91,247,104,4,102,6,94,250,90,247,101,253,145,254,172,7,74,4,230,6,217,255,158,248,245,2,167,250,245,248,75,6,32,254,118,255,43,246,44,4,73,248,141,253,140,9,3,1,232,5,128,254,56,249,2,248,159,3,125,7,136,248,47,255,55,5}, } ; static const unsigned char precomputed_core_multsntrup857_n[precomputed_core_multsntrup857_NUM][crypto_core_INPUTBYTES] = { {170,229,233,140,9,186,137,148,227,111,99,242,192,140,45,220,124,35,16,179,43,37,238,25,61,108,26,73,31,229,170,1,216,64,187,7,51,28,119,158,194,13,190,183,55,234,151,111,174,124,171,85,3,167,122,45,151,188,180,53,232,234,85,98,120,34,74,138,30,133,85,106,109,61,151,10,229,144,83,78,25,18,200,127,227,250,110,4,68,1,37,15,49,151,75,50,139,155,98,191,171,112,103,210,170,84,17,163,229,1,11,40,19,48,124,226,168,51,170,186,136,13,49,219,201,31,86,163,137,245,159,183,10,32,170,5,64,17,1,99,112,165,225,88,158,55,11,159,69,160,77,186,83,58,74,134,74,118,207,175,47,105,73,48,54,163,178,228,88,3,160,187,209,224,190,155,236,27,247,155,48,18,203,130,190,7,156,75,47,219,54,5,152,193,42,13,137,174,36,63,67,228,81,68,89,248,68,98,131,159,74,6,175,39,101,200,173,147,71,183,138,156,57,11,11,151,141,37,176,201,251,64,174,12,232,86,74,206,189,120,139,59,168,30,160,129,14,145,115,218,42,139,98,79,68,184,156,137,209,176,228,54,51,248,29,131,234,107,235,178,139,183,232,89,56,0,27,236,16,118,46,23,217,235,80,142,44,16,68,222,232,34,22,201,165,163,23,123,12,27,236,232,48,248,96,66,8,124,101,38,234,233,103,248,164,50,138,32,114,217,122,9,137,30,44,57,150,182,50,49,168,232,131,13,44,139,235,224,203,77,255,73,248,51,174,76,75,107,12,82,39,49,31,81,224,120,172,86,205,130,57,15,246,208,199,201,124,2,181,114,145,213,247,112,38,123,131,79,171,122,165,252,54,40,208,105,80,38,3,45,20,4,115,18,120,220,98,70,225,97,17,37,47,8,36,191,51,30,205,106,161,42,194,203,216,30,40,182,39,52,47,134,135,205,222,154,54,29,150,6,226,239,13,93,97,210,87,45,196,74,94,25,98,233,61,79,51,137,61,154,162,18,98,140,221,139,222,33,149,120,255,169,83,157,65,33,192,239,1,244,134,117,96,81,71,77,93,140,172,187,176,11,196,255,225,18,39,69,175,220,191,233,208,136,2,98,196,79,253,152,159,197,247,212,144,186,169,152,171,210,122,98,92,147,6,36,216,239,227,99,17,61,91,85,126,57,217,154,136,137,236,3,104,177,119,143,108,17,183,42,236,69,184,165,186,9,193,177,91,97,165,14,63,33,100,144,210,246,153,165,134,67,213,179,164,9,95,239,180,150,213,107,239,238,129,70,33,70,139,32,49,59,132,127,88,56,93,159,1,81,137,162,10,160,81,105,91,5,166,56,154,128,157,66,135,206,130,50,72,4,7,126,152,231,224,98,195,149,109,100,212,48,241,176,126,52,32,8,1,49,130,137,23,92,181,97,151,160,163,199,148,54,79,18,196,248,161,27,107,46,116,189,246,64,56,99,32,39,213,171,242,250,193,227,47,169,137,81,10,138,49,125,14,177,172,29,132,140,2,67,251,26,215,14,19,17,155,86,198,42,137,171,133,176,76,29,197,206,56,224,12,213,250,255,1,33,165,254,63,217,239,255,8,144,178,253,180,137,96,195,91,145,200,22,51,229,93,0,236,43,131,164,176,17,10,75,22,246,192,206,74,213,110,25,141,27,215,22,168,202,105,10,241,28,214,75,105,130,166,250,229,230,194,145,91,50,24,220,15,183,179,183,90,133,92,117,239,223,248,74,38,193,170,94,230,48,103,194,231,255,213,236,227,191,102,88,242,148,34,53,238,13,57,14,131,165,216,230,196,29,133,224,152,170,160,36,234,154,227,159,187,65,49,161,9,36,67,58,235,9,124,127,229,85,230,28,152,19,220,193,249,83,7,69,65,50,164,203,97,44,6,58,176,209,23,54,64,252,148,111,116,99,126,38,149,192,143,156,100,104,41,15,40,60,68,64,4,170,192,244,135,160,198,1,38,218,172,28,200,55,189,205,5,139,59,21,166,176,255,174,68,215,21,189,109,68,243,34,31,240,62,145,215,189,48,27,80,237,190,192,104,38,147,91,87,121,201,69,52,238,227,10,25,206,172,111,208,79,88,145,185,89,187,119,225,137,246,179,47,68,47,243,247,91,12,240,186,13,0,86,21,148,163,19,190,108,139,104,239,194,96,239,198,165,162,118,200,16,202,209,130,36,189,53,250,182,104,76,174,250,232,117,136,169,71,248,155,130,226,253,212,78,231,187,189,233,253,80,53,165,74,6,84,158,108,145,188,115,50,43,95,192,66,29,49,199,242,21,215,239,194,231,127,213,112,168,205,192,25,172,136,218,114,223,126,142,52,105,153,181,244,2,174,98,69,215,209,207,45,85,237,27,160,80,201,181,138,9,221,152,101,184,71,88,163,140,167,128,66,233,191,197,193,18,27,106,159,63,218,177,211,22,133,125,252,70,100,52,75,149,35,25,66,249,56,48,18,208,223,70,60,180,241,43,237,227,242,240,177,5,163,244,244,164,101,112,8,133,203,147,150,222,69,235,75,204,231,63,104,165,203,160,183,15,112,37,84,212,120,199,159,156,178,120,221,203,65,191,247,22,107,141,133,72,251,190,25,36,248,74,223,169,178,220,163,117,117,105,236,226,55,201,217,101,138,202,86,205,45,44,161,72,191,181,192,237,109,20,227,176,58,156,17,68,61,244,23,82,40,60,79,12,65,90,242,139,157,226,146,117,104,99,162,226,167,253,190,5,129,234,38,92,31,201,213,86,138,22,160,176,91,51,155,130,247,38,104,100,163,7,221,238,7,166,168,130,217,235,219,8,142,210,162,192,175,127,120,13,225,19,174,58,174,183,210,215,215,184,89,192,9,39,228,53,46,227,93,250,167,248,78,209,43,110,74,224,245,98,111,190,30,62,18,86,120,69,104,161,93,121,54,116,81,236,12,164,156,78,252,181,214,34,229,26,190,231,147,72,80,92,93,23,6,209,20,204,199,126,235,237,105,64,62,210,159,210,249,56,28,123,235,47,72,206,148,208,150,188,205,224,33,46,203,50,56,226,55,181,16,134,130,127,80,159,188,141,103,112,105,126,175,68,229,116,191,5,219,4,35,2,139,10,126,121,147,98,42,43,37,17,50,211,111,74,70,101,82,157,147,76,157,185,161,152,254,176,22,6,169,48,221,190,50,49,237,1,160,88,120,28,44,141,5,137,196,217,89,27,119,213,51,95,143,163,53,45,195,112,247,95,157,55,241,31,99,230,175,91,65,8,126,98,199,223,1,19,178,56,111,56,150,45,88,55,182,133,108,222,161,230,173,145,147,212,145,168,82,54,44,55,142,119,151,205,207,115,157,69,164,181,184,249,22,22,172,145,185,15,252,63,60,43,211,138,170,245,220,16,79,166,138,156,32,55,233,214,167,183,154,169,139,176,233,142,47,73,234,227,199,148,20,249,221,181,211,241,43,211,9,54,109,51,201,137,20,127,200,14,130,67,142,14,68,198,5,88,164,41,104,119,179,58,15,60,201,191,50,74,19,59,222,45,112,251,192,42,179,170,191,78,128,167,255,113,30,21,103,216,212,84,120,95,241,187,14,10,0,160,176,6,75,175,40,60,75,59,191,146,254,203,42,161,195,78,105,210,214,162,250,63,119,56,244,105,86,175,144,42,172,235,182,17,196,83,212,42,217,244,124,136,152,60,217,127,44,116,117,190,62,165,143,203,7,10,107,124,216,156,25,38,162,51,91,200,94,165,235,128,17,54,184,242,138,252,127,150,183,112,181,4,209,165,199,141,65,134,82,52,198,69,129,62,231,244,50,0,158,202,121,20,116,3,90,86}, {247,20,158,35,13,250,37,43,98,30,219,91,18,189,211,223,217,82,41,95,115,219,161,143,86,40,168,217,136,230,180,196,175,240,31,176,117,172,2,236,32,41,14,238,43,4,216,164,249,224,231,128,20,13,38,52,75,163,220,168,208,52,6,62,89,104,215,174,175,39,228,7,6,4,223,29,128,131,66,119,37,100,113,186,59,224,4,155,70,209,27,137,198,41,97,68,104,92,215,221,112,50,27,162,24,93,183,78,170,135,103,216,218,164,19,159,85,60,116,150,47,138,115,78,227,181,169,169,153,210,71,119,161,169,60,160,231,51,34,152,195,155,139,66,172,92,213,11,82,163,93,25,241,151,172,114,170,204,131,52,142,8,41,184,148,226,204,112,65,31,126,38,87,134,162,52,208,91,14,221,250,240,200,135,181,138,51,28,15,214,142,156,188,203,3,112,174,134,12,105,34,49,107,62,199,56,153,32,205,242,89,63,39,85,255,20,45,136,142,183,90,238,81,84,132,153,164,90,118,85,225,253,24,246,109,21,60,243,171,165,206,43,232,197,10,23,187,191,77,229,202,128,241,85,45,1,245,122,168,117,109,171,19,108,159,128,214,164,238,191,10,21,106,95,157,50,100,251,180,243,177,0,242,182,232,37,227,12,60,165,186,191,89,214,87,29,93,60,198,221,26,76,150,165,158,109,172,68,203,109,15,120,117,66,83,97,106,227,124,3,124,195,52,81,1,92,150,116,77,222,5,79,81,226,218,162,204,81,13,139,200,210,129,192,50,56,56,195,147,137,177,62,160,150,26,254,212,207,37,26,155,104,155,33,82,93,15,108,171,117,160,51,68,133,174,4,70,125,172,143,7,84,201,68,217,230,123,133,241,92,58,253,248,250,232,42,199,5,96,126,120,152,247,65,177,132,178,80,81,72,126,165,73,28,234,252,114,172,136,66,203,9,157,198,25,52,104,250,150,120,118,157,145,78,158,229,34,99,248,54,221,35,83,97,220,162,80,69,186,65,1,26,135,148,88,6,110,181,36,236,129,86,234,50,122,65,208,92,202,168,113,14,177,10,198,165,97,104,25,115,254,96,232,99,180,157,238,30,80,190,225,140,122,93,155,250,27,25,86,237,209,184,126,185,72,144,151,185,13,254,180,137,192,79,226,235,194,225,134,8,247,9,98,17,63,205,216,120,206,230,13,133,45,88,81,94,122,174,2,163,116,130,254,31,58,66,40,230,98,168,123,101,207,213,130,31,35,208,104,122,232,23,113,195,102,165,248,159,130,142,51,76,246,128,200,109,32,229,117,113,12,19,230,168,62,228,63,238,27,19,96,180,67,247,75,7,12,205,50,189,166,113,61,56,135,184,67,43,99,48,117,231,142,186,186,54,255,153,73,249,15,251,27,246,145,145,239,108,125,187,141,73,127,93,131,92,149,15,37,194,72,27,86,41,111,5,255,62,171,255,54,188,176,45,167,132,140,187,152,76,161,224,27,218,30,148,175,16,80,70,226,235,188,229,20,4,203,4,137,127,136,195,166,22,17,255,153,179,51,43,191,242,4,15,177,184,5,121,152,159,220,232,104,15,162,36,250,182,36,74,162,60,184,2,194,85,52,22,72,86,151,172,30,143,145,63,56,184,58,202,127,140,72,165,236,50,6,173,8,255,0,61,84,97,219,227,101,37,233,210,217,152,200,204,139,177,134,108,155,69,185,87,249,180,174,180,52,70,124,35,52,247,18,66,133,24,159,75,148,160,230,183,156,16,63,222,163,116,166,60,228,239,89,3,162,112,113,143,2,22,135,216,251,69,78,93,254,166,146,54,160,166,245,35,165,12,39,41,157,200,92,14,15,32,103,119,119,11,248,155,76,203,106,214,45,219,99,136,74,204,41,161,254,176,200,172,51,184,244,134,38,115,72,54,62,203,228,84,223,150,66,156,208,189,245,52,233,222,114,160,36,198,51,9,72,227,44,23,230,177,215,248,156,176,187,44,98,41,130,79,183,247,87,136,118,67,97,181,27,228,206,111,176,70,14,186,170,240,80,105,172,116,76,220,208,185,175,143,54,30,200,172,178,157,144,117,216,223,232,252,206,69,13,98,110,85,78,202,11,185,36,112,157,153,127,241,152,14,101,5,244,8,174,60,103,46,128,143,146,248,186,91,2,157,151,194,137,254,146,69,97,83,22,236,72,204,65,219,107,171,111,21,11,187,88,186,50,50,236,72,88,83,243,133,80,155,89,34,157,191,254,128,88,108,218,224,74,219,36,105,20,79,95,46,200,61,191,200,210,64,80,147,228,157,86,120,173,112,10,39,192,59,236,109,190,166,99,47,49,29,89,126,202,179,210,142,87,241,138,32,66,231,150,41,31,19,123,69,187,255,200,158,54,213,72,139,173,179,18,12,225,87,1,185,68,188,201,2,127,244,20,112,82,121,67,133,146,27,26,69,136,220,68,236,75,153,96,138,226,19,92,143,51,252,102,85,254,3,89,45,227,218,145,80,204,141,79,200,55,202,149,83,128,146,38,157,2,71,206,187,24,66,187,245,72,141,169,229,102,195,197,76,51,125,202,93,190,213,29,220,18,112,70,115,151,95,28,99,169,23,129,92,5,202,168,212,67,13,118,110,139,72,3,36,84,159,234,87,115,86,227,19,200,103,173,0,20,157,59,25,67,227,8,223,108,47,244,230,54,138,165,23,153,17,89,53,35,192,23,20,92,69,196,142,166,180,244,74,92,235,61,65,233,217,157,12,155,78,53,47,222,174,162,187,105,239,35,70,174,227,121,82,187,140,138,44,44,39,128,168,41,134,77,247,35,92,142,252,30,166,242,136,24,233,183,158,203,36,194,18,191,15,22,166,89,85,69,244,131,175,178,50,217,50,168,44,160,221,216,80,95,54,99,113,187,104,224,213,8,151,82,121,253,225,187,80,169,226,157,165,123,204,96,13,68,38,226,154,63,170,51,128,197,215,252,203,92,110,191,71,78,115,24,59,174,34,191,118,60,26,113,68,74,216,74,194,153,99,9,68,214,127,116,204,150,234,53,223,236,132,99,113,182,88,126,190,52,123,232,117,37,97,210,101,1,35,38,252,185,220,9,168,214,26,84,185,39,26,242,32,192,115,210,227,123,87,54,73,227,61,212,200,185,161,113,202,28,42,34,22,149,73,57,3,227,170,25,126,95,101,12,227,21,93,49,32,245,16,158,151,12,188,25,138,142,113,68,168,162,194,62,46,71,193,91,41,107,236,7,138,79,80,71,118,130,255,155,163,67,53,167,10,91,216,153,151,221,125,199,56,239,46,181,113,25,218,205,109,19,90,120,201,126,248,239,225,212,118,119,13,225,32,156,23,112,31,189,6,176,55,252,251,180,73,189,129,158,233,44,155,202,63,168,9,45,129,58,158,89,14,61,239,45,165,58,54,160,65,221,74,155,102,72,73,148,136,129,204,171,28,7,71,215,52,85,50,194,171,223,196,201,216,8,182,221,69,159,130,61,58,167,114,23,92,169,224,219,7,161,37,93,162,189,218,195,119,146,138,139,79,110,204,36,251,245,231,15,144,48,121,81,169,205,104,118,2,234,186,91,170,112,17,153,38,44,13,136,131,3,168,171,210,15,154,151,3,191,29,169,46,94,119,60,230,226,15,43,174,240,2,68,24,102,226,74,109,0,162,163,125,20,127,94,247,183,236,50,109,152,145,143,251,123,81,14,237,224,28,200,82,69,20,67,103,189,134,218,129,182,190,73,22,199,114,181,230,142,79,175,181,118,222,34,179,156,176,40,66,83,214,198,1,118,155,19,152,168,211,210,255,216,152,16,5,27,132,151,73,160,72,178,222,135,22}, {16,44,65,224,61,179,27,180,23,117,227,2,42,193,124,233,5,3,123,71,144,217,225,99,5,21,82,60,9,151,224,57,125,89,167,55,229,50,230,205,131,177,11,19,144,227,230,122,147,171,144,5,52,22,150,110,204,25,114,30,252,167,184,212,163,101,92,5,207,224,181,167,212,242,194,180,80,178,224,118,41,115,248,69,48,131,64,200,126,159,254,147,133,79,148,92,214,126,35,238,184,19,179,143,32,32,56,183,218,44,59,250,149,238,62,210,97,75,183,205,34,140,177,34,31,92,97,169,21,89,125,190,237,61,26,175,110,225,39,102,175,202,129,129,47,199,6,217,88,113,81,77,56,193,247,164,121,8,179,5,227,229,5,247,207,102,230,40,23,85,79,56,170,10,224,240,21,38,236,88,71,128,244,196,120,142,177,146,228,170,7,108,44,6,236,249,51,147,159,136,182,116,64,45,193,156,94,131,158,138,100,48,97,67,62,211,137,26,69,222,43,13,194,80,187,240,120,210,119,16,164,35,45,47,66,153,116,41,15,46,233,164,18,15,7,255,131,150,242,149,163,161,191,134,141,255,65,19,37,60,62,218,182,32,24,42,236,202,153,177,242,106,239,38,39,141,254,85,248,135,197,13,111,81,205,34,184,103,195,82,35,108,245,244,35,159,226,164,185,35,213,61,217,242,247,129,212,88,78,59,146,125,59,216,253,99,227,252,112,67,58,160,152,191,65,175,79,17,228,69,15,206,0,93,107,54,74,99,32,34,0,33,161,142,90,81,231,131,120,32,170,100,7,229,112,100,34,255,35,210,72,202,199,30,13,89,128,57,145,181,227,98,19,52,51,55,36,160,83,139,21,108,153,38,59,134,252,99,99,128,17,158,165,106,42,1,4,149,199,195,255,25,177,228,26,59,252,218,248,20,122,213,246,92,125,41,177,182,74,127,170,82,12,213,21,67,193,130,33,86,173,209,222,81,9,154,32,92,200,206,209,45,29,213,87,227,97,202,136,130,216,73,47,248,130,90,166,195,163,112,45,94,63,249,167,197,144,155,196,127,209,185,121,117,46,147,52,29,159,138,168,155,48,96,109,26,194,21,34,54,108,90,203,136,236,36,183,138,11,108,161,102,117,126,166,192,84,172,59,129,123,122,78,41,199,208,198,44,135,151,150,157,120,171,25,20,24,50,113,114,97,101,223,213,127,148,222,240,58,135,88,247,170,79,18,144,58,13,39,115,29,62,203,160,53,68,218,163,127,22,194,97,77,80,157,8,65,163,178,59,16,124,124,33,8,128,111,53,137,30,65,60,235,10,53,29,166,51,178,212,102,233,89,15,83,123,223,100,117,116,62,206,218,124,101,51,30,232,137,178,46,81,182,36,47,35,74,14,104,249,192,222,132,193,246,237,210,176,163,255,193,34,231,124,47,10,209,236,80,8,23,247,219,84,187,75,254,202,43,30,57,89,252,152,67,173,205,146,167,70,199,84,99,215,169,255,199,89,210,21,33,32,121,190,166,173,174,61,102,102,57,219,209,131,205,198,223,221,223,54,185,19,77,222,5,54,68,163,120,245,132,8,27,174,173,149,205,28,122,197,39,62,201,132,121,81,148,238,161,79,26,88,61,142,217,220,197,101,224,141,191,233,70,124,136,114,34,88,157,235,143,8,170,247,32,15,185,36,16,192,213,99,42,250,148,130,30,144,103,222,63,85,216,94,253,92,148,3,226,157,174,32,32,18,28,249,39,229,207,181,187,86,223,68,253,254,196,193,105,194,93,20,202,139,51,65,82,97,147,188,203,137,127,114,192,58,81,110,84,1,209,26,36,166,142,85,213,169,3,211,104,121,167,225,146,98,159,78,192,125,227,79,80,206,254,21,146,158,56,234,109,2,124,155,189,33,101,20,128,192,39,54,106,231,171,47,236,4,85,20,211,103,31,146,29,175,115,161,75,0,92,130,60,230,2,220,9,105,113,42,197,153,22,219,161,202,43,91,88,2,116,57,201,233,41,229,225,18,30,227,107,222,29,2,122,130,85,39,192,180,181,231,21,109,86,150,23,40,122,20,111,16,67,58,117,139,112,10,42,36,165,186,32,222,49,155,225,151,39,11,202,182,64,247,75,185,120,222,227,253,171,12,252,195,86,232,231,59,188,254,233,122,239,167,113,158,89,130,250,228,213,183,236,167,226,7,97,135,71,11,154,119,65,27,242,249,239,126,65,238,215,65,64,213,63,173,220,102,18,59,236,17,171,4,131,167,105,252,141,121,6,108,58,198,93,95,64,12,180,176,183,250,184,2,188,182,91,209,247,233,198,216,62,25,142,93,136,146,111,181,206,148,83,33,227,42,89,195,6,195,185,130,80,172,115,49,8,51,191,34,16,46,6,215,68,241,81,80,244,222,197,47,234,166,28,125,253,117,39,180,248,154,147,34,241,184,15,49,132,102,240,248,97,56,88,74,20,233,152,94,6,58,134,231,254,53,175,157,220,22,91,208,160,239,233,180,234,117,129,168,162,13,57,163,138,184,82,187,203,236,208,36,57,68,85,193,207,17,254,77,201,189,134,249,135,196,87,195,64,208,4,147,30,161,228,55,27,17,207,145,128,237,25,199,161,239,128,11,160,169,166,228,114,152,207,139,235,55,161,171,57,214,201,104,109,4,249,47,50,174,173,35,241,188,200,243,24,96,240,193,213,157,244,144,62,74,48,57,249,109,9,177,12,209,254,151,39,227,231,31,55,2,87,146,145,74,185,200,50,127,202,166,182,195,123,142,179,36,176,176,145,233,65,76,82,202,168,183,106,227,83,53,148,235,79,166,242,221,213,128,146,150,164,235,65,73,213,122,106,48,120,248,194,179,251,190,96,15,254,227,15,11,103,42,108,224,78,179,14,214,202,247,165,59,117,252,144,216,23,148,219,159,51,70,30,127,67,107,200,104,44,172,191,248,200,74,109,196,132,73,14,168,169,24,35,105,182,147,68,61,205,248,32,62,217,150,31,174,194,193,111,88,44,151,16,255,32,227,212,76,33,124,202,27,179,96,149,141,169,138,141,242,125,113,210,175,233,248,36,133,136,32,51,176,92,86,113,76,165,1,19,140,147,81,81,240,34,181,222,197,25,108,234,2,180,29,13,94,246,32,158,162,10,190,142,16,87,206,179,88,149,97,19,3,138,165,228,116,142,166,75,175,121,116,115,188,113,236,251,144,22,211,156,104,131,39,88,95,18,227,36,225,210,206,43,248,249,68,99,143,184,177,109,21,197,138,183,100,10,196,236,247,29,74,73,127,143,23,161,129,94,36,134,251,156,65,77,56,115,134,9,215,100,237,228,19,240,153,143,37,61,249,88,147,81,204,253,136,251,213,162,119,176,237,46,92,94,199,250,175,61,150,38,187,34,153,171,190,234,47,219,49,161,18,247,103,148,86,150,14,151,204,7,190,76,233,214,92,242,68,42,48,76,102,209,104,30,67,165,57,170,168,19,149,19,137,202,236,199,128,25,166,68,49,32,39,193,239,174,193,241,70,157,147,11,249,195,231,196,97,180,58,177,129,131,155,143,182,188,241,110,132,90,138,78,216,231,5,121,55,252,59,226,230,128,154,128,23,230,205,228,150,251,56,10,8,187,169,34,44,11,131,193,157,71,56,14,222,179,38,150,18,211,110,90,93,237,65,242,110,60,73,45,103,111,85,2,31,34,104,238,110,237,106,7,246,39,234,37,26,11,13,138,212,50,206,228,51,192,97,10,50,62,134,87,22,176,67,133,102,213,179,155,212,142,190,52,103,237,191,79,76,84,95,54,169,114,227,71,102,142,187,167,91,209,80,127,76,147,172,173,47,89,46}, {193,107,196,200,46,188,177,29,211,184,218,230,228,209,52,242,64,50,13,53,177,52,236,5,163,138,215,9,119,44,161,4,152,132,12,240,109,99,16,126,152,228,132,150,137,229,107,131,214,68,189,24,223,126,196,79,225,105,63,83,189,127,235,116,184,36,223,154,4,139,136,76,40,212,190,35,108,208,0,222,195,115,35,192,107,164,40,174,118,194,20,18,42,63,28,2,108,190,160,46,38,158,254,215,175,254,246,107,224,239,151,27,176,8,229,140,198,184,254,107,208,146,250,155,156,19,57,184,153,169,244,68,55,101,206,106,166,249,176,192,67,50,212,224,71,172,113,122,202,75,17,19,213,179,234,190,80,51,22,187,169,94,82,227,63,39,42,88,122,165,140,234,234,31,31,109,80,247,132,144,7,246,5,189,247,165,226,132,135,73,194,250,163,104,6,43,211,59,232,101,79,138,169,126,125,179,249,241,57,201,51,79,215,107,19,185,114,161,227,185,246,10,23,53,58,36,55,27,241,12,150,96,85,205,10,229,20,60,145,68,185,249,148,123,252,36,187,77,44,76,5,233,70,220,236,219,215,88,166,154,37,193,108,18,114,237,20,210,190,190,235,107,47,73,16,128,90,212,86,176,181,44,87,39,207,155,17,52,250,182,36,65,89,6,166,223,93,227,145,149,214,50,186,137,225,159,87,56,161,226,202,44,216,228,64,154,80,43,1,17,93,221,16,216,220,151,36,48,119,143,172,242,126,211,174,124,99,108,254,225,197,138,123,24,246,103,252,152,244,238,210,223,255,249,211,15,97,254,246,112,190,222,89,251,222,207,16,150,51,85,111,149,117,140,14,57,110,57,87,191,215,68,179,203,187,71,53,218,241,205,217,179,111,165,232,204,254,80,216,114,5,196,136,223,99,194,204,129,99,209,69,15,210,177,153,137,111,71,243,1,20,131,13,216,232,241,195,149,11,230,39,232,199,117,184,84,133,123,241,78,226,250,216,43,38,172,60,44,226,133,197,69,131,208,18,44,70,115,135,138,52,193,70,196,15,235,134,76,144,187,45,252,232,8,236,236,240,217,132,80,45,223,45,212,209,245,146,17,243,42,227,99,216,4,27,123,133,111,83,11,191,211,112,73,14,5,247,55,81,60,107,86,229,19,166,156,147,14,210,0,79,224,15,71,128,146,240,8,185,173,132,172,59,172,194,107,95,170,178,239,227,239,199,210,35,127,176,221,108,154,98,180,161,211,28,179,136,161,120,224,27,213,149,121,142,202,79,29,84,244,46,19,11,208,252,232,129,160,75,203,222,158,169,180,233,175,126,103,237,159,68,135,13,167,166,4,91,85,128,87,90,37,192,6,96,106,205,41,193,27,123,2,45,8,220,53,170,149,127,19,90,40,225,226,125,161,0,126,77,91,255,19,221,56,243,2,233,26,203,24,206,43,9,202,224,223,130,174,0,241,113,197,117,224,149,181,177,188,175,66,224,89,64,40,29,243,10,208,0,161,239,68,19,40,28,67,210,144,231,14,130,235,117,202,81,116,250,131,18,69,143,181,17,88,77,137,139,109,3,110,192,197,232,171,35,186,196,76,160,11,34,80,145,151,228,244,8,195,42,44,208,182,77,74,240,10,167,186,38,151,254,100,3,252,201,201,106,100,63,96,65,39,193,201,71,204,232,67,177,220,5,118,218,206,112,167,92,248,19,112,200,153,142,134,76,247,39,92,62,11,14,128,121,72,9,163,107,0,192,167,25,154,132,82,93,104,85,207,212,2,137,31,17,11,99,90,255,144,199,60,174,116,67,138,242,45,245,28,125,196,152,167,161,129,7,244,119,94,190,71,78,199,236,209,81,92,45,49,231,181,181,207,221,222,156,5,123,121,158,119,218,237,134,207,226,26,48,57,176,22,144,138,27,195,124,10,113,127,70,48,221,112,72,228,254,92,216,46,125,0,46,102,51,245,7,241,223,87,47,239,253,64,38,173,32,143,247,100,249,202,110,232,51,27,209,181,181,109,197,202,6,252,12,144,125,130,36,47,35,120,60,82,147,153,177,187,221,222,10,145,68,200,231,166,249,167,233,55,219,186,77,72,26,215,164,103,238,143,109,92,231,202,171,14,255,39,121,20,15,66,53,203,240,34,137,179,167,156,84,98,141,227,244,72,38,144,36,57,89,252,184,107,20,115,235,20,247,104,16,163,164,177,217,225,244,98,72,51,12,29,78,91,148,206,0,185,234,171,23,64,48,126,150,102,8,102,54,236,134,118,83,29,247,134,53,110,100,55,180,56,185,166,237,179,74,204,233,243,9,24,132,181,197,3,73,96,112,87,80,244,128,81,198,238,201,230,119,223,61,250,186,165,220,231,7,102,79,173,14,79,23,228,22,107,218,138,146,3,45,180,164,224,252,120,120,197,94,244,220,95,130,206,169,209,42,13,17,227,79,228,231,233,11,73,214,128,50,42,198,181,43,222,163,99,140,50,43,170,105,74,149,241,194,116,48,39,99,211,42,170,108,159,183,123,247,12,202,218,132,250,180,137,139,110,71,62,94,170,206,179,11,164,50,4,87,100,153,180,254,192,193,228,234,110,218,65,87,143,19,209,154,137,85,85,96,197,8,181,54,136,132,30,238,210,141,34,174,191,210,67,47,253,237,192,157,164,157,64,196,208,102,152,213,251,174,98,242,48,23,128,175,122,171,197,178,252,239,213,44,214,199,164,147,187,162,180,197,255,84,227,27,103,107,213,190,238,159,51,91,153,37,65,52,244,175,121,109,215,164,255,73,96,41,80,251,46,37,177,141,142,46,37,127,141,143,21,179,53,191,43,216,85,212,182,248,197,38,214,137,2,10,241,155,38,16,31,193,200,36,139,36,128,241,77,224,33,126,250,181,25,193,40,132,170,254,146,100,79,24,95,139,74,28,224,95,108,0,150,171,165,76,135,125,199,202,247,36,135,126,19,77,65,234,148,42,36,61,137,241,151,102,55,227,57,175,164,146,11,252,79,77,93,17,72,44,131,146,208,149,250,28,247,147,178,35,214,105,10,229,96,203,123,178,156,75,241,92,106,155,63,229,144,101,170,110,239,43,214,74,177,194,26,181,49,168,190,165,39,64,135,72,120,156,165,235,30,46,195,74,17,68,14,125,44,146,40,65,188,140,141,22,45,74,127,93,254,178,160,37,218,136,145,18,155,177,0,46,247,21,70,211,101,168,126,205,213,25,172,72,217,40,219,61,160,103,43,203,33,103,100,36,69,186,76,136,8,89,62,124,189,101,80,84,168,249,131,66,37,8,11,193,121,126,134,140,130,171,64,59,17,63,246,85,20,172,193,191,210,117,4,17,81,159,77,9,180,11,170,218,103,185,101,14,220,57,94,136,238,42,252,203,159,168,54,36,1,16,27,217,113,154,84,250,23,196,154,110,22,91,63,111,148,44,222,99,115,59,85,239,185,131,82,224,105,90,187,191,119,40,188,94,175,148,26,39,129,29,53,14,102,174,69,183,144,25,101,117,153,145,196,106,59,124,29,224,123,224,158,144,177,175,62,83,33,9,209,60,123,177,83,215,99,49,24,99,168,83,177,5,13,119,43,4,97,125,217,83,159,231,141,137,84,23,71,86,132,77,109,236,48,97,30,86,94,203,201,143,182,211,111,166,48,87,168,193,177,170,149,149,196,6,114,114,222,232,105,32,250,240,26,195,130,212,56,2,104,199,250,21,142,35,111,150,171,54,123,61,87,32,41,206,152,63,23,206,226,221,138,191,128,8,245,48,181,225,14,233,78,84,99,90,213,133,254,175,133,147,235,38,209,243,163,68,158,60,39,106,228,44,126,143,20,93,189}, } ; static const unsigned char precomputed_core_multsntrup857_k[precomputed_core_multsntrup857_NUM][crypto_core_KEYBYTES] = { {0,0,-1,-1,0,-1,-1,0,1,-1,0,1,-1,0,0,1,0,-1,-1,1,-1,1,1,-1,-1,-1,0,0,1,1,-1,1,1,0,1,1,0,-1,-1,1,1,0,-1,0,-1,-1,1,0,0,0,0,0,0,1,0,0,0,0,-1,0,1,1,0,0,-1,1,-1,-1,-1,0,0,0,-1,0,0,1,1,0,0,0,1,-1,-1,1,0,1,0,1,0,0,1,-1,0,1,1,-1,-1,1,1,0,0,1,1,0,1,-1,1,0,0,0,0,1,-1,-1,1,0,0,0,0,0,0,-1,0,1,1,0,0,-1,0,-1,0,-1,0,0,0,1,-1,0,-1,-1,-1,-1,-1,0,-1,0,0,0,-1,1,0,0,1,0,0,1,0,-1,0,1,-1,0,-1,1,0,0,0,0,-1,0,0,0,1,1,-1,0,0,0,0,0,0,1,-1,0,1,0,0,-1,0,-1,1,-1,1,0,-1,0,0,-1,0,0,-1,0,-1,-1,0,1,1,-1,-1,-1,1,0,0,0,0,0,1,0,1,0,-1,-1,-1,1,1,0,1,0,1,1,-1,0,0,0,1,1,0,-1,-1,0,-1,0,-1,1,0,-1,0,0,-1,1,-1,0,0,0,0,0,-1,0,0,-1,0,1,0,0,0,0,-1,1,1,0,1,0,0,1,-1,1,0,-1,0,-1,0,-1,0,0,0,-1,-1,-1,-1,0,0,0,1,0,-1,1,1,-1,0,0,1,-1,1,-1,1,-1,0,1,-1,0,0,-1,-1,0,0,1,0,0,0,0,-1,1,1,0,1,1,0,0,-1,1,-1,-1,0,-1,-1,1,0,-1,0,0,1,0,1,-1,0,0,-1,1,-1,1,1,1,-1,-1,1,0,0,-1,0,0,0,1,1,0,0,0,0,0,-1,0,1,0,1,0,0,0,-1,0,0,0,0,-1,-1,1,-1,-1,0,0,0,-1,0,1,0,1,0,-1,1,0,1,0,0,1,-1,1,1,-1,0,-1,1,0,0,-1,-1,0,0,1,1,-1,0,1,0,1,-1,-1,0,1,0,1,1,-1,0,0,0,1,0,0,-1,1,0,1,0,0,0,1,1,-1,0,1,0,0,1,-1,0,1,0,-1,1,1,-1,0,0,0,-1,-1,1,0,0,0,0,-1,-1,0,0,1,0,-1,1,0,1,0,0,0,-1,-1,1,0,-1,0,0,0,1,-1,-1,-1,1,1,-1,1,1,1,0,-1,-1,-1,0,1,0,0,-1,1,0,-1,-1,1,0,-1,0,-1,1,0,1,0,0,0,-1,1,1,-1,1,-1,-1,-1,0,-1,0,0,0,1,1,0,-1,-1,-1,1,0,-1,-1,-1,-1,1,0,0,1,-1,0,1,0,-1,-1,0,1,-1,1,0,-1,1,-1,1,1,1,0,0,-1,-1,1,1,0,0,0,0,0,-1,-1,1,0,1,1,0,0,-1,-1,0,1,1,0,0,0,0,0,1,-1,1,0,0,0,0,1,1,-1,0,0,-1,1,-1,-1,-1,1,-1,1,0,0,-1,-1,-1,0,1,0,0,-1,-1,0,0,-1,-1,0,1,1,0,0,0,-1,-1,-1,0,0,-1,1,1,0,0,0,1,0,-1,0,0,1,1,-1,-1,1,1,1,0,0,1,1,0,-1,-1,1,-1,0,-1,1,0,0,1,-1,-1,0,0,-1,0,0,1,0,-1,-1,1,-1,0,-1,-1,0,0,0,-1,0,-1,0,1,-1,0,0,0,0,0,-1,-1,-1,0,0,1,-1,1,0,-1,1,0,0,1,-1,-1,0,1,-1,1,0,0,0,0,0,-1,-1,-1,1,0,0,1,0,0,-1,1,-1,0,0,0,0,0,-1,0,1,0,1,1,-1,-1,0,1,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,-1,0,0,1,-1,-1,0,-1,0,-1,-1,-1,1,1,0,1,0,0,0,1,0,0,1,-1,0,1,0,0,0,-1,0,0,1,-1,0,0,0,1,1,0,0,-1,0,-1,-1,0,0,0,1,-1,-1,1,-1,1,0,1,-1,-1,1,1,0,0,1,0,-1,-1,0,1,1,0,0,-1,-1,1,0,0,1,1,0,-1,0,0}, {0,0,-1,0,1,1,-1,1,0,1,-1,-1,-1,1,1,-1,0,0,0,0,1,1,0,0,0,0,1,0,-1,1,0,1,-1,0,-1,0,1,1,1,-1,0,1,0,0,0,0,-1,1,1,0,1,-1,0,0,0,0,1,0,1,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,1,0,-1,-1,-1,0,-1,1,0,0,0,0,-1,0,1,0,0,0,-1,0,0,1,0,1,0,-1,0,0,0,0,0,0,0,0,1,1,-1,0,1,0,1,1,1,0,-1,-1,0,0,0,0,1,0,-1,-1,-1,1,0,0,1,-1,0,0,1,0,-1,1,1,0,1,1,0,0,-1,0,0,0,0,0,-1,-1,0,1,1,1,0,-1,-1,-1,0,1,-1,0,1,1,0,0,1,0,1,-1,0,0,0,0,0,1,0,-1,1,0,-1,-1,1,1,0,0,1,0,0,0,-1,0,0,-1,-1,-1,0,0,1,0,0,0,0,0,0,1,0,-1,0,-1,-1,0,1,0,0,1,-1,1,0,0,0,1,0,-1,0,-1,0,1,0,-1,1,0,-1,0,1,0,0,-1,0,1,0,1,1,1,0,-1,0,0,0,0,-1,1,-1,0,-1,0,-1,1,-1,-1,0,0,0,1,1,0,1,0,1,1,-1,1,1,0,-1,1,-1,1,1,-1,1,0,0,0,1,1,0,1,1,1,0,0,0,-1,0,1,1,1,0,-1,0,0,0,1,0,-1,0,0,0,1,0,-1,0,0,-1,1,0,0,0,0,1,0,0,0,0,-1,1,1,0,1,0,-1,0,-1,0,1,0,0,-1,-1,1,-1,1,0,0,-1,0,-1,0,-1,1,1,-1,1,0,0,0,-1,0,-1,-1,0,0,0,1,1,-1,0,0,-1,1,0,1,0,1,-1,1,0,1,-1,0,1,-1,0,0,-1,0,0,0,0,1,0,1,-1,1,0,-1,0,0,1,0,1,0,0,0,0,1,-1,-1,1,-1,-1,0,-1,1,0,0,0,-1,0,0,0,1,1,-1,-1,0,1,-1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,-1,-1,0,-1,0,0,-1,1,-1,-1,0,0,-1,1,-1,-1,1,-1,0,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,1,0,1,0,0,0,0,0,0,-1,-1,0,1,1,-1,0,0,-1,0,0,-1,1,0,1,0,0,-1,1,1,0,0,0,0,0,-1,0,0,1,1,-1,-1,-1,0,1,0,-1,1,0,0,0,0,-1,0,0,1,-1,0,1,1,0,0,-1,0,1,-1,0,-1,0,0,0,1,0,0,1,0,1,-1,0,0,0,-1,-1,0,0,0,0,1,0,-1,0,0,1,-1,-1,0,0,0,-1,0,1,-1,-1,1,1,0,0,0,1,-1,0,1,0,0,-1,0,1,0,0,1,0,0,0,-1,-1,0,1,0,0,1,1,0,0,0,0,-1,-1,1,0,0,1,-1,-1,0,-1,-1,1,0,0,0,-1,0,0,0,-1,1,0,0,0,0,0,-1,0,0,-1,1,0,-1,0,-1,1,0,1,0,0,1,-1,1,0,0,0,0,0,0,-1,-1,0,0,-1,1,1,1,0,0,0,0,-1,0,0,-1,1,-1,0,-1,-1,0,-1,1,-1,1,-1,0,0,0,-1,-1,0,1,-1,0,0,0,0,1,1,0,-1,0,-1,1,-1,0,0,0,1,1,-1,-1,1,0,-1,0,0,1,0,1,0,-1,0,0,1,0,0,0,-1,0,0,-1,0,0,0,1,0,0,-1,-1,0,1,-1,0,0,0,0,0,0,1,0,0,1,1,0,-1,1,-1,0,1,0,0,1,-1,0,-1,1,1,0,0,0,0,1,1,0,1,0,0,0,-1,0,0,0,0,0,-1,1,1,-1,-1,0,0,-1,0,0,1,0,-1,1,0,-1,0,0,1,0,-1,-1,1,-1,1,0,0,-1,0,0,1,1,0,-1,1,-1,-1,-1,1,0,1,-1,-1,0,-1,1,0,-1,0,-1,1,0,-1,0,0,-1,-1,1,0,0,-1,1,0,0}, {0,0,0,0,-1,-1,0,-1,0,0,-1,0,1,0,0,1,-1,0,1,-1,-1,0,0,1,-1,0,0,1,0,0,-1,0,0,-1,-1,0,1,0,0,-1,1,1,1,0,1,1,-1,0,0,0,1,-1,1,1,-1,-1,0,0,0,0,0,0,-1,0,0,0,0,1,1,1,-1,0,0,-1,-1,1,0,0,0,0,-1,1,1,0,1,1,0,0,0,-1,0,0,-1,0,0,1,0,0,0,0,-1,1,1,0,1,1,0,0,0,-1,1,0,0,1,-1,0,0,0,0,-1,1,0,0,-1,-1,1,1,-1,1,0,0,-1,1,-1,1,0,1,-1,1,0,-1,-1,0,1,-1,-1,0,-1,1,0,1,0,-1,-1,1,-1,0,0,1,0,-1,1,0,0,1,0,-1,0,-1,0,-1,0,0,1,-1,1,0,-1,1,0,0,0,1,0,1,0,1,-1,-1,0,0,0,0,0,0,0,1,1,0,-1,0,1,0,0,1,0,0,-1,-1,0,0,-1,-1,0,1,0,1,0,0,1,1,-1,1,0,-1,0,0,0,0,0,0,0,0,0,-1,0,1,-1,-1,-1,-1,0,0,0,1,0,1,0,1,0,-1,-1,1,0,1,0,0,1,1,0,-1,1,-1,-1,0,0,0,-1,1,1,0,0,-1,0,0,1,-1,-1,1,0,0,0,0,-1,0,0,-1,0,-1,0,1,1,0,0,-1,-1,0,-1,1,0,0,0,-1,1,0,1,0,-1,0,-1,1,-1,0,0,-1,-1,-1,-1,-1,0,1,-1,0,0,0,0,-1,0,1,0,-1,0,0,-1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,-1,0,0,0,0,0,-1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,-1,-1,0,0,0,-1,0,0,0,1,0,-1,0,0,0,1,-1,1,0,0,-1,0,0,-1,0,0,0,-1,0,0,0,0,0,-1,1,0,-1,1,-1,0,0,1,1,-1,0,1,0,1,-1,1,-1,0,0,0,0,0,-1,0,1,1,1,0,0,0,1,1,0,1,0,1,-1,-1,-1,0,1,1,-1,-1,0,0,-1,-1,1,0,0,-1,0,-1,-1,0,0,-1,0,0,0,1,0,1,-1,-1,0,0,0,0,0,0,0,1,1,1,0,-1,0,0,0,1,0,1,-1,-1,1,1,-1,0,0,-1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,-1,-1,0,-1,-1,-1,-1,0,-1,-1,0,-1,0,0,0,-1,0,0,0,0,0,0,1,1,0,1,1,-1,0,1,0,-1,1,1,1,1,0,-1,0,0,0,1,0,0,-1,0,-1,0,-1,0,1,0,0,0,-1,0,1,0,0,0,1,0,0,0,0,1,-1,-1,0,1,0,0,0,0,0,0,1,-1,1,1,-1,0,0,0,-1,0,-1,0,0,0,0,-1,-1,0,-1,1,0,1,1,1,-1,-1,-1,-1,1,-1,-1,0,-1,0,0,-1,0,-1,1,1,1,0,-1,-1,0,-1,-1,0,-1,0,0,1,0,1,0,1,1,1,0,0,0,0,-1,-1,-1,0,-1,1,1,1,1,1,-1,0,0,1,1,-1,1,-1,0,1,-1,0,1,0,1,0,0,0,0,-1,0,1,-1,1,-1,1,0,0,0,0,1,1,0,0,-1,-1,0,1,-1,0,-1,0,0,0,1,0,1,-1,-1,1,0,0,1,0,1,1,0,0,-1,-1,0,0,1,1,1,0,0,0,1,0,1,-1,-1,0,1,1,0,-1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,-1,-1,0,0,0,1,1,0,0,-1,1,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,-1,0,0,0,1,-1,1,0,0,1,1,0,1,1,0,1,0,0,-1,-1,1,0,-1,1,-1,0,0,1,-1,0,0,1,0,-1,1,0,0,1,0,1,0,0,1,-1,1,0,0,0,1,1,-1,1,0,1,0,1,0,0,0,0,0,1,-1,0,0,0,0,1}, {1,1,-1,1,0,0,-1,1,0,-1,0,0,-1,-1,-1,-1,0,1,0,-1,1,0,-1,0,1,0,-1,1,0,1,-1,-1,-1,0,0,-1,1,1,-1,-1,0,1,0,-1,0,0,0,0,0,0,1,-1,-1,-1,0,0,-1,1,-1,0,-1,1,0,-1,0,-1,0,1,0,-1,-1,-1,1,1,1,-1,-1,1,0,0,0,1,0,1,-1,1,0,0,-1,-1,1,-1,0,0,1,1,0,0,1,-1,1,1,1,-1,0,0,1,0,0,-1,0,1,0,-1,1,0,-1,0,-1,-1,-1,-1,0,0,-1,0,1,0,0,0,-1,0,0,0,0,0,-1,0,1,0,0,1,0,-1,-1,-1,-1,1,1,0,1,1,-1,1,1,0,1,0,0,0,1,0,-1,0,-1,-1,1,1,0,-1,0,0,-1,-1,1,0,0,1,-1,1,1,0,0,0,0,-1,1,1,1,0,1,1,-1,0,-1,0,0,-1,-1,-1,-1,-1,0,1,1,0,-1,0,0,-1,1,0,-1,-1,0,0,0,-1,-1,0,0,-1,0,-1,0,1,1,1,-1,1,1,1,1,0,1,0,-1,1,0,0,0,-1,1,1,-1,-1,1,1,0,0,0,1,-1,-1,0,-1,-1,0,1,-1,0,0,1,0,0,0,0,0,-1,0,-1,-1,0,-1,0,0,0,-1,-1,-1,0,1,0,0,-1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,0,-1,0,0,1,1,1,0,-1,0,1,-1,0,-1,1,-1,1,0,1,0,-1,-1,0,0,1,-1,-1,1,-1,1,-1,0,1,-1,0,-1,-1,0,0,1,0,-1,0,0,1,0,0,0,1,-1,-1,1,0,1,1,0,0,0,1,0,1,0,1,-1,-1,-1,0,0,1,0,0,1,0,1,1,0,1,0,1,0,0,0,1,1,-1,-1,1,-1,0,1,-1,0,0,0,-1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,-1,0,0,1,0,-1,1,-1,0,0,1,1,-1,0,0,0,0,-1,1,0,-1,1,1,0,0,-1,0,0,1,1,-1,1,0,-1,1,1,0,1,0,1,0,-1,0,-1,0,1,0,1,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,-1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,-1,-1,0,0,0,0,0,-1,0,0,0,0,1,-1,0,-1,1,1,0,1,1,1,1,0,0,-1,0,0,0,0,0,1,1,1,-1,1,0,0,0,1,0,0,-1,-1,0,0,-1,0,-1,0,-1,0,0,0,-1,0,0,1,-1,1,1,1,0,1,0,1,1,-1,-1,0,-1,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,-1,0,-1,0,0,0,-1,-1,1,-1,1,0,0,1,0,0,-1,0,1,0,0,1,0,0,-1,0,1,0,1,0,0,0,-1,1,0,-1,1,0,1,0,-1,-1,1,0,-1,0,0,0,0,1,1,1,0,0,-1,1,-1,1,0,-1,1,-1,-1,1,1,0,1,0,1,-1,-1,1,1,0,0,0,0,-1,0,-1,1,-1,0,0,-1,0,0,-1,-1,1,0,1,0,-1,0,1,0,0,1,-1,0,-1,-1,-1,0,0,-1,0,0,-1,-1,-1,0,-1,1,1,-1,0,0,0,1,1,0,0,1,0,1,-1,0,-1,1,-1,1,0,0,0,0,0,0,1,-1,-1,0,0,-1,1,0,-1,1,-1,1,1,0,-1,0,0,0,-1,0,1,-1,0,0,1,1,0,0,-1,1,0,0,1,0,1,0,-1,-1,-1,0,-1,0,0,-1,0,-1,-1,-1,-1,1,1,-1,0,0,-1,-1,1,0,0,0,0,0,-1,0,0,0,-1,1,1,1,0,1,-1,-1,-1,0,0,1,0,0,0,1,-1,0,0,0,0,-1,0,-1,0,1,0,-1,0,0,1,0,1,0,0,-1,1,0,0,-1,0,0,0,0,1,0,0,0,-1,0,-1,-1,-1,0,1,-1,0,1,0,0,1,0,0,0,1,1,0,-1,1,0,-1,0,1,1,-1,1}, } ; static const unsigned char precomputed_core_multsntrup857_c[precomputed_core_multsntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_multsntrup857_impl(long long impl) { unsigned char *h = test_core_multsntrup857_h; unsigned char *n = test_core_multsntrup857_n; unsigned char *k = test_core_multsntrup857_k; unsigned char *c = test_core_multsntrup857_c; unsigned char *h2 = test_core_multsntrup857_h2; unsigned char *n2 = test_core_multsntrup857_n2; unsigned char *k2 = test_core_multsntrup857_k2; unsigned char *c2 = test_core_multsntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_multsntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup857(impl); printf("core_multsntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup857_implementation(impl),ntruprime_dispatch_core_multsntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup857; printf("core_multsntrup857 selected implementation %s compiler %s\n",ntruprime_core_multsntrup857_implementation(),ntruprime_core_multsntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_multsntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_multsntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_multsntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_multsntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_multsntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_multsntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_multsntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_multsntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_multsntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_multsntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_multsntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup857")) return; storage_core_multsntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_multsntrup857_h = aligned(storage_core_multsntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_multsntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_multsntrup857_n = aligned(storage_core_multsntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_multsntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_multsntrup857_k = aligned(storage_core_multsntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_multsntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_multsntrup857_c = aligned(storage_core_multsntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_multsntrup857_h2 = callocplus(maxalloc); test_core_multsntrup857_h2 = aligned(storage_core_multsntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_multsntrup857_n2 = callocplus(maxalloc); test_core_multsntrup857_n2 = aligned(storage_core_multsntrup857_n2,crypto_core_INPUTBYTES); storage_core_multsntrup857_k2 = callocplus(maxalloc); test_core_multsntrup857_k2 = aligned(storage_core_multsntrup857_k2,crypto_core_KEYBYTES); storage_core_multsntrup857_c2 = callocplus(maxalloc); test_core_multsntrup857_c2 = aligned(storage_core_multsntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_multsntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup857();++impl) forked(test_core_multsntrup857_impl,impl); ++test_core_multsntrup857_h; ++test_core_multsntrup857_n; ++test_core_multsntrup857_k; ++test_core_multsntrup857_c; ++test_core_multsntrup857_h2; ++test_core_multsntrup857_n2; ++test_core_multsntrup857_k2; ++test_core_multsntrup857_c2; } free(storage_core_multsntrup857_c2); free(storage_core_multsntrup857_k2); free(storage_core_multsntrup857_n2); free(storage_core_multsntrup857_h2); free(storage_core_multsntrup857_c); free(storage_core_multsntrup857_k); free(storage_core_multsntrup857_n); free(storage_core_multsntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_multsntrup953.c0000644000000000000000000021274214705505543023553 0ustar rootroot/* ----- core/multsntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_multsntrup953_checksums[] = { "6204041e985eecd6f688132f753441c49a9cfa99a37b142a49425a4e5f8c69f7", "1b3f1343cd066c133980283e6e6f76ee8a1f3b72b2399109ee03a77d1e3b460b", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_multsntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_multsntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_multsntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_multsntrup953_CONSTBYTES static void *storage_core_multsntrup953_h; static unsigned char *test_core_multsntrup953_h; static void *storage_core_multsntrup953_n; static unsigned char *test_core_multsntrup953_n; static void *storage_core_multsntrup953_k; static unsigned char *test_core_multsntrup953_k; static void *storage_core_multsntrup953_c; static unsigned char *test_core_multsntrup953_c; static void *storage_core_multsntrup953_h2; static unsigned char *test_core_multsntrup953_h2; static void *storage_core_multsntrup953_n2; static unsigned char *test_core_multsntrup953_n2; static void *storage_core_multsntrup953_k2; static unsigned char *test_core_multsntrup953_k2; static void *storage_core_multsntrup953_c2; static unsigned char *test_core_multsntrup953_c2; #define precomputed_core_multsntrup953_NUM 4 static const unsigned char precomputed_core_multsntrup953_h[precomputed_core_multsntrup953_NUM][crypto_core_OUTPUTBYTES] = { {21,248,236,252,251,5,197,253,170,250,159,2,213,6,111,247,208,255,31,247,178,8,136,5,47,248,131,252,146,248,239,244,223,10,74,253,80,254,100,252,215,251,63,255,51,246,228,255,41,255,245,250,192,3,16,5,70,6,10,1,167,244,146,5,50,8,50,245,176,9,237,253,169,249,201,11,115,254,89,2,97,246,32,9,128,246,127,255,156,251,15,12,25,245,222,0,45,248,241,249,100,247,52,2,70,8,186,245,188,10,167,251,190,254,13,9,181,2,248,11,29,12,89,249,89,255,204,2,68,247,228,249,245,245,61,0,64,253,88,0,8,247,0,247,88,244,112,253,248,6,113,3,253,249,169,247,171,1,91,10,16,1,255,8,1,2,178,1,226,250,146,5,194,4,114,0,17,4,236,3,76,250,180,11,122,249,248,8,99,251,75,2,38,252,136,8,34,248,157,3,31,254,40,244,148,6,160,10,108,11,182,11,18,10,187,4,184,248,83,4,188,4,89,8,134,8,82,9,126,10,255,247,234,250,80,253,158,248,87,250,103,247,141,11,133,5,13,251,126,2,75,251,46,248,167,255,207,243,178,1,62,244,20,245,219,253,98,249,66,247,157,0,39,249,115,6,49,249,244,1,249,251,179,245,19,4,213,7,176,253,207,8,129,252,108,4,157,0,64,7,173,3,134,251,165,246,54,9,122,250,117,255,29,1,20,5,199,245,19,4,88,10,158,254,79,245,26,248,19,8,2,255,223,243,110,246,57,247,71,253,160,4,183,251,233,4,183,5,148,2,102,6,213,251,150,0,214,251,35,250,148,255,128,1,190,253,78,1,165,1,29,1,51,6,244,9,244,2,176,248,236,247,75,249,210,252,138,2,78,250,46,246,83,252,229,251,32,252,155,255,140,252,209,6,104,255,7,244,244,8,63,247,67,11,72,249,180,3,4,2,222,244,162,249,230,3,227,1,142,244,157,9,116,255,86,5,227,254,24,245,181,5,246,255,84,3,78,4,97,248,164,8,167,252,100,6,97,248,238,248,161,243,108,253,173,9,93,248,223,252,82,246,209,246,48,254,139,253,89,252,100,6,98,251,184,1,149,245,94,5,135,252,91,10,161,250,76,244,138,8,91,246,51,244,173,11,22,255,9,4,162,249,140,1,125,252,33,3,77,252,13,1,24,247,245,244,236,2,209,245,31,252,191,249,34,3,174,9,118,6,49,10,138,251,53,6,70,10,183,247,133,2,6,255,8,3,134,246,92,7,214,245,57,4,33,0,92,1,209,8,46,250,209,6,55,254,239,255,46,11,98,251,189,249,18,6,147,7,109,0,19,10,54,244,181,244,166,6,96,9,222,247,129,247,159,244,104,1,88,2,105,253,132,4,31,250,106,0,141,253,197,1,159,243,64,246,202,249,117,10,202,7,9,5,124,0,169,249,149,248,41,253,90,4,20,245,191,249,92,12,234,1,70,255,157,9,159,254,21,247,153,251,9,250,123,244,16,5,31,3,198,252,133,246,60,249,89,9,247,254,96,3,187,253,42,4,176,10,252,244,243,0,17,254,108,254,72,2,145,8,199,252,249,244,16,244,251,7,249,8,152,248,60,1,94,244,160,248,169,3,55,6,182,254,173,244,65,1,144,9,247,255,207,2,167,243,56,246,188,252,227,244,127,245,70,246,183,11,46,252,245,251,152,253,185,7,206,7,110,11,33,4,65,251,155,253,132,9,110,4,18,254,146,245,203,248,212,253,115,249,240,255,19,2,153,255,238,9,60,3,186,252,131,255,16,11,97,247,162,8,20,249,247,11,108,249,60,7,92,251,190,4,117,4,41,5,248,5,21,252,133,254,94,2,207,246,128,244,178,2,53,249,240,255,122,250,8,10,93,246,1,251,143,9,73,11,165,7,136,8,145,254,223,5,31,12,117,250,123,5,194,246,4,244,127,255,154,246,121,246,211,0,172,251,251,3,81,0,29,252,71,251,222,1,243,11,118,246,234,248,195,244,100,249,69,244,78,7,120,246,10,254,169,255,37,248,64,8,79,248,227,252,75,9,103,245,128,2,235,10,111,2,52,253,162,254,143,249,236,5,10,250,105,249,220,5,84,249,86,12,90,10,66,11,252,6,36,10,38,0,111,0,129,3,8,12,100,253,112,247,240,248,222,253,98,249,115,252,48,8,73,11,0,12,81,253,6,6,137,0,28,5,88,8,172,6,161,9,241,5,129,0,183,0,75,249,199,10,81,253,227,254,117,254,227,8,10,9,0,246,225,2,222,11,217,244,113,250,159,253,124,254,88,10,250,2,0,253,126,6,146,2,81,10,200,249,239,252,71,248,175,5,181,8,105,247,67,9,27,245,184,6,248,247,158,9,103,246,218,7,173,8,190,1,80,7,130,253,190,1,199,246,93,12,107,251,244,254,243,8,250,2,99,251,143,7,166,9,230,246,254,255,224,1,234,5,48,251,216,1,116,7,37,250,108,247,23,255,34,252,53,246,55,7,110,245,201,2,134,1,37,253,22,252,138,244,24,12,33,7,228,250,79,1,217,248,54,253,59,246,189,4,240,243,2,7,226,247,20,254,100,8,41,10,246,6,248,5,217,8,210,251,166,243,246,245,54,7,209,0,198,254,193,2,22,5,160,252,23,7,31,11,110,244,163,246,196,244,112,250,230,246,231,10,213,254,253,249,96,8,168,1,214,11,255,248,214,246,116,252,151,6,19,251,180,9,51,249,117,1,61,252,106,4,229,11,26,252,54,244,51,11,212,250,213,1,240,5,21,246,169,250,76,253,27,5,156,5,159,253,56,247,140,0,122,4,137,0,161,0,42,4,45,244,5,5,14,254,227,243,91,245,97,2,195,250,92,2,117,8,179,255,138,252,251,0,10,246,5,10,190,246,222,254,103,248,66,249,195,2,53,9,205,11,129,248,237,1,81,255,61,6,15,0,73,251,254,247,145,6,166,254,1,255,229,254,170,0,122,247,75,5,232,252,226,5,87,1,179,249,226,245,28,11,29,0,244,247,162,2,157,2,30,12,179,246,253,253,201,255,53,252,94,252,133,6,59,11,158,10,224,254,63,247,222,5,1,6,178,254,2,7,131,10,216,8,149,8,123,254,175,253,166,5,101,0,216,247,191,246,234,247,11,4,109,254,181,252,193,252,21,252,80,8,167,0,102,249,250,253,130,5,164,250,195,253,240,244,113,6,178,254,130,10,172,245,108,8,220,243,28,245,138,10,47,246,218,252,168,247,105,10,229,1,134,11,217,254,192,245,255,10,89,248,196,0,96,8,133,250,50,5,131,255,137,2,152,245,184,243,148,8,151,246,249,253,125,9,62,254,19,254,184,243,19,247,188,252,209,254,58,249,252,9,11,3,73,0,140,252,239,246,249,246,13,252,231,0,118,246,88,6,180,254,51,251,90,246,179,9,166,11,172,1,46,0,180,8,255,245,201,247,241,253,72,4,119,249,31,252,204,245,89,4,47,248,173,9,43,246,95,248,177,6,19,247,28,0,240,250,38,8,173,249,98,6,164,9,21,2,29,255,249,5,40,9,141,247,47,251,202,247,111,250,166,1,141,245,104,251,198,3,107,1,222,250,240,250,94,0,3,3,243,5,37,254,22,11,164,10,156,8,129,253,173,3,88,251,243,254,64,251,8,10,127,250,11,3,29,248,97,246,91,10,214,4,29,249,74,12,135,252,44,10,205,3,41,1,166,255,162,3,17,8,58,5,75,7,120,6,254,11,247,10,9,248,188,255,47,254,165,9,180,248,221,6,98,5,116,249,210,252,70,244,157,0,155,254,128,7,93,248,152,246,182,255,129,10,189,252,232,244,194,248,103,248,135,249,217,243,155,244,152,3,43,252,224,1,54,248,129,7,28,248,104,250,78,255,95,9,131,11,156,247,72,250,191,4,219,250,194,243,138,4,173,8,125,251,6,12,206,3,244,243,226,6,200,8,89,245,43,11,71,7,19,3,58,12,182,246,242,9,82,250,23,254,102,10,150,249,150,251,34,3,115,4,190,8,82,247,19,248,51,249,167,2,101,6,175,1,244,244,108,255,252,251,201,245,92,255,91,249,2,11,249,250,129,5,57,250,16,254,110,246,210,4,122,253,16,254,215,1,25,10,74,6,171,8,186,0,59,7,102,245,193,10,225,3,162,4,212,255,128,249,65,7,12,11,34,250,189,6,59,251,192,248,36,255,102,252,123,11,55,12,150,0,224,252,126,8,138,0,210,244,68,5,82,244,187,6,173,1,45,7,254,251}, {109,5,24,246,242,254,228,9,22,249,101,9,48,249,215,243,120,247,27,4,41,8,58,255,238,254,119,3,238,8,244,0,191,246,132,250,191,1,35,4,221,2,181,6,78,246,30,3,39,244,134,11,10,8,166,11,127,250,15,246,140,0,181,7,75,249,187,2,126,4,157,1,145,252,228,10,10,10,212,7,237,4,47,245,198,244,241,0,186,10,201,4,118,244,168,11,52,253,81,251,32,253,21,252,224,245,139,252,182,8,149,7,67,245,213,7,155,253,37,246,16,2,88,244,1,248,87,245,70,248,0,249,25,244,161,8,125,251,17,249,194,252,81,11,238,248,227,7,228,248,207,9,44,253,95,247,143,253,255,3,37,254,223,1,172,255,183,7,216,249,116,6,222,0,197,0,76,254,178,245,209,250,126,251,198,243,94,252,95,10,20,11,94,249,191,5,180,2,196,254,24,11,82,9,96,12,110,0,240,10,14,3,250,249,251,2,87,252,24,3,81,3,116,247,185,253,208,9,144,6,68,250,49,6,100,245,74,254,252,246,40,245,163,1,79,247,195,8,226,6,178,11,91,8,17,246,118,255,251,9,17,255,187,5,63,10,9,1,200,244,129,4,92,12,102,9,100,249,212,248,69,3,78,4,36,10,34,1,129,249,81,244,176,9,94,253,230,6,51,5,84,9,173,8,118,7,29,5,232,249,129,3,247,5,172,253,85,255,4,248,106,247,124,252,91,1,118,255,79,253,248,254,8,8,244,7,43,253,145,10,16,9,183,5,89,0,145,252,162,9,0,255,133,3,250,7,63,12,4,252,54,1,183,7,17,249,44,246,136,6,84,244,187,1,131,3,214,10,71,254,127,4,5,249,190,7,125,254,170,1,2,5,139,10,154,253,65,6,158,246,223,247,114,255,143,3,26,254,240,247,235,2,63,5,21,252,2,9,209,0,47,9,22,9,61,244,251,9,218,246,61,3,17,247,247,1,126,1,141,253,41,12,197,0,86,254,68,11,235,252,190,248,114,246,108,11,130,9,142,10,89,252,61,8,250,254,195,250,11,1,133,245,50,6,172,5,13,4,137,254,14,248,85,247,214,1,35,2,232,253,42,247,196,244,8,248,167,246,83,12,93,9,119,11,201,11,5,1,168,7,4,10,70,8,96,255,7,251,121,7,80,2,66,244,130,246,17,254,93,7,142,0,92,8,132,6,98,2,102,253,210,247,63,245,171,247,86,250,182,1,148,248,121,6,242,255,187,3,3,12,196,10,45,5,188,247,91,7,101,247,210,6,191,254,29,4,177,11,166,252,13,248,49,255,204,244,152,248,235,247,99,253,55,246,252,0,82,1,107,251,53,4,226,2,223,247,252,9,240,6,104,250,178,10,210,254,217,8,174,245,13,254,162,9,166,1,195,3,240,4,117,252,8,254,86,245,53,252,99,8,29,244,118,255,254,244,119,3,22,246,244,246,217,7,73,244,14,9,60,4,151,6,112,255,197,7,197,4,30,253,213,251,83,253,229,250,243,253,55,244,151,7,178,3,192,11,125,250,56,245,231,252,72,246,0,9,92,251,31,250,133,252,22,246,100,11,212,254,110,247,176,255,221,253,7,12,209,10,60,6,204,0,139,1,14,247,52,2,245,4,7,11,112,251,121,5,237,6,44,5,143,251,175,10,198,248,180,243,212,243,39,5,155,246,54,251,161,0,239,7,139,3,232,243,39,3,165,255,87,11,123,246,184,247,182,5,34,7,0,246,82,1,34,4,172,6,18,7,178,8,26,254,23,9,49,4,156,7,71,250,28,5,125,251,103,251,158,5,140,3,190,251,127,1,20,3,36,11,184,244,193,4,136,0,1,244,130,7,128,9,242,5,48,252,152,251,103,4,49,5,232,244,116,3,195,2,3,247,50,252,145,249,166,8,23,11,54,254,76,6,64,252,79,10,103,5,35,248,70,255,135,8,236,248,172,2,138,246,16,253,17,8,88,8,164,5,66,248,149,244,153,245,69,2,150,11,154,245,0,6,243,251,163,253,200,8,89,11,153,4,57,5,46,255,251,248,176,245,210,255,84,4,100,245,50,254,98,248,250,9,177,7,138,248,197,255,40,254,26,3,183,250,51,245,37,247,85,255,219,1,136,4,34,5,60,0,78,248,36,3,252,4,179,5,145,0,177,4,158,2,251,246,85,244,166,253,195,253,214,1,140,0,83,244,182,6,60,253,157,247,219,10,125,10,179,255,230,4,196,252,120,11,236,2,31,250,107,9,82,244,44,11,197,249,255,248,154,0,60,247,8,2,10,10,173,1,36,5,51,10,2,12,125,254,0,3,242,250,123,1,243,11,49,9,179,255,208,250,156,250,151,249,0,7,4,246,144,252,86,245,62,0,75,2,17,9,188,255,108,1,27,246,235,6,32,7,243,243,94,4,50,251,179,5,116,6,59,254,153,253,40,9,60,252,110,251,90,11,220,251,202,243,240,8,194,8,226,251,206,9,214,4,122,247,30,244,107,251,95,6,191,243,252,3,112,11,194,243,129,255,53,245,182,244,11,1,157,243,43,2,195,5,134,248,172,6,164,252,169,2,42,253,153,4,13,248,220,6,180,245,88,249,16,4,184,8,218,247,40,0,204,254,118,4,24,1,178,0,160,2,143,7,184,10,53,3,42,10,117,6,70,8,249,0,52,246,191,245,228,10,136,1,247,7,179,7,201,3,27,8,17,252,9,255,57,5,215,5,72,254,167,253,186,249,218,255,178,2,91,253,124,248,128,4,52,5,41,7,6,245,187,11,10,12,238,1,48,251,183,254,31,244,29,1,90,2,149,2,195,244,110,5,2,1,173,6,30,253,118,2,41,254,72,253,10,6,127,249,126,245,35,12,84,251,97,255,169,243,140,247,147,247,255,6,43,244,123,253,1,244,89,9,187,245,43,4,14,249,142,5,204,10,251,248,185,9,181,248,172,3,112,244,89,247,156,250,86,250,99,244,150,0,136,9,26,255,46,250,246,7,40,252,234,245,230,2,191,248,170,9,132,249,21,8,199,244,190,244,44,7,243,2,53,1,36,250,204,251,165,250,223,3,35,251,158,9,128,10,1,255,38,0,159,9,214,244,223,243,40,7,192,1,22,248,190,9,236,6,124,8,133,4,40,253,39,2,139,248,236,9,206,255,51,248,144,255,152,1,163,8,124,8,53,4,139,251,167,3,203,1,255,248,54,254,21,251,196,1,79,252,82,5,205,243,155,4,237,243,232,8,193,254,165,243,218,0,223,244,78,248,125,11,9,249,253,10,212,255,169,2,198,246,139,10,20,3,79,249,133,251,41,1,149,247,174,246,133,247,24,11,225,2,6,252,211,3,30,244,104,10,8,252,178,244,169,248,245,248,9,250,9,5,84,5,237,1,124,9,223,8,182,244,204,11,13,245,209,250,14,0,152,255,20,9,54,246,54,248,228,7,185,248,77,247,182,5,117,251,145,6,40,252,12,245,96,10,57,1,42,249,34,2,136,11,14,8,243,2,119,5,44,1,215,8,196,252,118,1,116,4,17,3,113,253,228,8,173,9,109,6,230,1,142,245,226,7,223,0,99,7,53,9,93,254,11,251,18,0,206,1,229,9,227,243,160,249,80,252,64,245,232,250,178,244,91,249,236,252,105,248,167,249,140,3,69,250,147,246,33,246,211,255,135,10,63,2,218,254,242,10,122,1,92,254,140,7,44,250,124,246,191,10,123,8,220,1,160,245,10,1,14,255,132,252,145,11,176,3,68,255,53,4,115,250,86,6,125,253,220,9,42,10,230,252,199,2,136,0,151,252,84,1,198,5,51,12,101,254,4,5,204,2,128,248,0,250,84,246,71,255,245,252,118,9,77,252,229,243,3,245,219,10,138,0,98,9,96,246,5,255,198,8,230,3,208,4,74,255,251,6,67,0,32,245,227,248,233,246,121,7,217,243,226,6,12,7,27,2,232,247,6,0,81,10,235,245,132,244,190,11,230,245,43,254,137,1,152,8,52,11,157,11,192,1,167,10,205,243,3,2,116,1,250,248,221,247,101,244,70,250,132,244,209,7,40,12,237,246,34,249,201,254,251,0,51,254,130,255,137,1,124,249,153,248,48,250,191,252,182,246,13,250,179,8,47,6,2,245,216,243,225,251,78,3,178,245,190,248,222,254,105,249,43,252,129,254,178,248,210,250,86,6,48,9,42,0,96,7,104,253,26,254,74,249,121,253,71,252,154,9,10,4,64,4,134,245,2,8,230,6,62,249,82,9,194,6}, {183,6,20,10,147,251,222,244,83,5,241,9,72,11,78,3,124,248,41,251,12,253,106,249,107,248,83,251,179,253,58,250,50,12,83,2,220,243,87,0,73,5,88,6,121,5,246,3,160,3,191,5,21,253,137,247,94,247,188,11,240,2,182,9,33,246,8,251,246,249,157,9,69,5,128,246,230,254,4,10,16,0,62,3,79,249,8,254,116,246,157,251,218,254,195,0,18,0,254,251,18,12,156,7,61,9,159,254,102,0,5,253,154,246,28,247,154,4,90,6,142,8,17,248,58,246,130,11,202,252,34,11,96,4,35,10,76,3,232,255,220,249,141,244,179,1,199,253,247,251,178,253,222,243,159,250,133,4,30,9,62,246,174,249,251,249,193,249,131,253,192,248,56,9,158,254,192,4,139,246,59,252,180,4,122,251,85,255,22,2,217,10,83,9,20,251,113,6,157,253,63,252,30,253,24,6,189,8,14,9,98,1,125,2,195,4,227,244,167,255,190,251,214,10,247,6,97,248,202,245,147,11,7,244,64,252,184,8,29,4,134,10,111,245,173,9,80,5,83,255,169,255,177,0,173,11,183,2,93,3,13,253,43,9,124,8,97,252,197,246,33,0,113,11,238,9,218,8,3,8,223,243,19,245,159,245,166,254,242,255,236,5,86,11,190,5,226,6,7,10,236,245,79,3,0,255,207,4,123,8,13,245,231,2,192,248,165,250,102,255,126,249,42,12,114,245,84,10,144,244,161,5,148,0,2,247,97,254,186,253,164,9,17,3,121,6,106,246,158,248,175,254,111,9,61,4,28,5,35,253,106,2,106,9,119,5,18,248,188,4,28,11,85,0,243,251,48,0,185,10,235,249,200,4,69,251,3,252,180,250,239,253,132,7,159,9,108,9,193,4,66,250,79,5,111,8,73,2,165,250,88,244,191,5,201,2,37,6,59,5,175,9,76,244,18,251,6,7,199,1,247,253,60,11,67,0,41,247,126,8,182,6,73,11,38,251,86,9,28,12,208,6,91,252,27,248,14,0,195,247,145,244,246,4,120,11,0,247,183,249,226,243,11,244,49,1,12,12,71,10,46,7,20,8,246,2,87,255,85,251,149,249,246,7,39,8,183,249,193,11,230,254,180,7,3,2,210,248,187,2,216,244,234,255,2,252,247,1,199,255,73,10,166,1,199,11,163,250,128,6,23,1,177,10,0,4,198,3,211,254,88,252,14,246,212,255,88,0,1,9,8,0,45,253,196,254,148,4,136,246,41,11,56,251,78,5,214,9,40,251,187,3,26,253,102,5,85,253,45,10,241,255,214,245,52,12,37,7,53,9,107,246,100,251,126,6,45,252,201,255,200,251,73,2,59,1,220,254,253,8,217,244,200,9,204,5,62,247,5,250,240,3,172,10,149,2,64,10,85,250,235,9,14,250,214,244,146,246,253,0,200,6,22,3,203,244,185,3,227,244,222,2,147,5,172,3,20,255,161,10,226,0,195,4,217,253,23,250,45,252,165,253,104,7,160,246,161,7,190,249,251,248,55,6,141,3,49,254,165,243,254,10,70,12,116,6,242,255,146,3,198,6,98,252,135,255,49,8,28,9,50,12,169,247,229,10,61,5,145,250,170,3,93,3,63,247,133,2,227,248,184,252,133,252,110,252,236,1,98,253,207,255,104,2,17,252,14,6,75,244,250,6,83,6,8,245,48,250,6,246,19,7,89,5,224,4,168,255,36,8,105,255,222,4,92,8,24,255,32,12,180,0,3,9,104,2,4,246,89,12,219,249,219,2,77,254,47,4,202,248,101,255,2,11,215,9,94,252,115,250,202,243,173,6,151,248,244,251,157,3,137,0,43,250,194,245,110,0,38,4,188,5,213,253,195,2,152,248,225,248,104,9,239,251,34,245,162,3,233,9,176,251,217,11,175,254,23,11,108,253,48,2,132,11,47,246,251,3,184,2,112,1,173,252,237,252,21,9,36,5,23,11,35,7,148,244,12,11,92,10,66,11,59,8,113,252,45,251,85,252,21,250,150,252,217,251,200,8,107,10,222,11,231,5,126,9,108,4,250,253,132,253,88,8,194,248,87,249,142,250,108,5,5,12,148,2,228,253,125,248,45,245,2,2,175,1,236,10,202,246,115,252,168,246,71,245,221,4,54,246,99,254,132,8,9,11,111,250,138,248,208,245,177,250,51,251,250,243,204,10,206,9,178,254,36,247,42,6,56,247,215,9,14,254,77,253,237,255,82,245,55,12,92,1,105,5,113,252,218,5,134,244,95,10,18,244,135,0,125,246,63,244,111,245,224,1,182,1,27,247,113,6,220,9,71,253,84,244,122,247,208,5,138,251,25,244,67,8,82,245,208,0,36,252,115,4,65,3,177,7,239,253,214,1,30,0,162,10,169,1,106,0,90,2,241,247,140,11,76,10,246,8,189,254,165,249,197,5,206,244,174,244,36,246,73,2,236,11,39,5,63,247,90,10,67,4,183,244,1,1,24,4,37,252,4,8,11,1,192,11,28,7,209,8,128,249,249,254,125,248,245,2,210,7,131,1,97,7,129,247,202,246,241,243,240,7,106,9,215,247,192,4,89,252,54,11,102,10,175,9,36,248,220,1,237,250,132,10,53,246,213,253,8,254,185,5,205,255,64,9,152,6,183,6,163,249,3,11,158,255,28,12,107,244,225,255,190,255,181,10,168,250,68,12,155,250,83,252,152,1,26,247,219,6,125,6,117,247,13,244,139,5,150,244,45,11,201,247,99,244,178,0,161,247,232,246,169,2,61,250,101,10,247,250,184,253,211,2,189,7,155,247,144,254,131,4,28,244,72,10,203,9,166,251,125,8,3,7,148,9,247,255,237,251,107,251,86,251,243,250,255,10,62,9,242,6,37,11,186,7,214,255,116,5,204,8,112,8,71,251,78,6,42,255,77,250,23,249,117,244,246,250,20,251,52,246,13,248,1,254,12,254,205,253,228,0,75,251,126,1,250,253,179,246,213,251,230,9,133,251,59,6,227,9,168,5,127,5,106,249,164,6,26,244,70,248,136,10,101,248,245,0,252,3,149,244,101,0,31,251,165,248,199,243,117,246,221,255,148,11,112,1,135,2,227,252,151,9,27,12,162,251,114,2,91,249,60,248,115,253,136,247,104,2,161,3,250,1,60,248,21,248,200,245,148,248,170,244,43,251,3,251,172,253,217,255,81,12,193,9,238,244,123,247,127,246,47,6,144,251,140,246,26,255,128,4,233,255,120,254,25,245,245,251,198,252,3,246,219,10,193,251,244,252,205,246,39,0,58,9,61,249,94,10,33,11,221,253,65,12,228,245,220,248,148,251,100,11,190,247,45,7,179,8,1,249,188,7,138,247,182,10,197,244,188,254,88,245,105,254,9,244,74,2,227,9,207,253,58,246,134,1,15,245,204,8,62,10,145,247,70,4,95,3,228,246,116,248,243,6,140,250,175,0,115,251,17,247,160,251,140,10,3,1,126,248,109,255,139,9,53,0,192,6,126,252,235,248,17,11,255,244,141,247,4,0,2,12,241,9,37,9,192,9,31,6,194,1,95,254,12,247,243,10,151,8,149,252,149,247,236,248,148,1,182,246,79,2,128,250,9,244,139,246,232,7,2,251,254,6,231,253,253,7,224,1,231,249,138,255,18,10,82,7,23,248,215,9,245,249,190,254,124,8,98,247,192,254,210,7,208,6,17,4,195,250,145,3,124,247,94,3,246,253,119,2,17,250,148,254,90,0,17,6,39,248,224,9,189,7,244,1,180,251,16,11,172,0,77,1,64,244,143,0,208,252,12,7,175,0,23,8,6,245,51,3,165,5,24,248,148,4,24,0,173,249,52,3,196,255,69,2,137,0,252,6,15,253,230,254,26,4,89,11,252,255,212,253,228,2,231,244,123,244,133,0,141,248,152,3,207,252,39,5,139,3,231,249,87,252,248,9,32,4,202,6,109,10,236,253,181,253,133,252,123,4,90,254,101,2,81,0,10,4,34,0,235,2,112,249,17,10,105,244,20,248,150,9,83,4,78,10,114,9,177,253,125,253,109,246,98,246,129,252,232,250,127,10,29,11,13,5,75,246,65,10,182,253,137,6,87,246,59,252,175,245,137,9,235,254,83,12,102,9,125,254,5,247,157,246,247,5,138,252,104,247,105,251,18,12,61,247,241,2,18,248,140,246,151,255,221,249,160,11,18,252,231,4,90,2,57,4,54,245,191,248,180,8,11,246,8,246,1,1,224,254,18,244,8,254,214,244,13,254,77,1}, {18,11,177,246,136,253,78,12,166,249,42,4,67,8,134,244,92,251,41,7,70,253,11,10,235,251,104,3,230,249,178,249,57,6,105,3,152,5,249,11,248,252,141,244,6,245,157,4,143,2,16,247,87,9,141,3,49,246,33,247,100,245,132,6,154,253,200,7,238,6,207,243,63,4,241,5,102,250,159,1,24,9,13,253,93,10,39,6,116,8,209,248,169,11,126,248,250,4,250,245,122,7,69,11,173,250,137,246,16,254,94,6,231,0,131,247,17,10,250,245,162,2,229,6,75,2,28,248,203,9,23,253,134,9,114,8,205,252,90,6,147,248,169,254,246,244,192,253,254,8,156,7,121,10,76,247,200,9,157,0,80,9,94,255,33,249,122,248,35,0,171,8,81,3,92,253,240,7,81,6,177,1,249,251,85,8,142,249,68,252,82,8,129,248,215,7,7,6,111,249,241,251,104,255,136,253,18,10,144,10,97,9,64,9,57,11,107,245,66,4,245,2,191,250,55,247,43,4,208,9,221,249,101,2,249,254,224,7,56,254,165,7,201,254,57,11,172,255,81,5,106,251,45,248,4,247,50,2,32,252,206,249,82,12,156,245,152,251,250,8,114,9,237,9,244,247,128,250,12,251,117,10,68,252,142,252,84,251,237,8,27,1,81,1,139,244,137,11,215,2,56,248,153,245,221,10,73,1,98,10,136,252,122,255,129,248,73,0,24,10,41,11,238,247,208,8,76,7,179,3,173,0,58,252,22,0,108,4,72,248,249,10,165,255,60,1,223,244,6,2,52,9,219,246,234,248,244,251,8,5,194,3,43,0,204,245,80,254,63,2,255,250,86,9,175,243,231,245,178,246,79,8,104,2,192,249,248,243,88,250,54,3,99,248,124,247,29,253,109,3,193,249,246,254,133,3,94,4,84,246,224,1,163,2,151,1,214,245,161,245,190,6,153,247,164,250,83,6,161,0,231,244,131,5,8,248,153,8,32,250,213,11,206,246,91,250,89,1,166,10,18,251,234,251,179,6,35,12,79,9,191,246,200,251,25,4,233,5,73,248,39,246,194,255,159,251,252,250,38,1,161,5,127,254,169,254,134,251,47,254,153,9,155,248,161,11,8,1,145,247,229,244,48,249,220,0,49,248,245,255,222,243,254,8,157,249,163,10,126,0,87,2,176,247,177,248,202,252,5,246,146,6,20,249,16,1,61,1,109,8,190,245,80,6,255,246,5,7,0,6,37,246,110,252,91,248,22,2,94,7,14,2,108,9,5,6,235,249,62,252,146,9,223,249,69,8,0,247,65,254,227,245,122,247,182,248,118,247,0,9,105,8,105,255,220,255,212,251,252,245,33,2,207,245,180,7,78,252,102,244,186,243,233,251,187,1,109,5,97,252,149,251,207,246,206,255,175,245,232,246,107,244,149,248,216,249,8,4,44,3,188,2,151,253,148,250,19,8,216,245,68,9,72,245,221,1,126,247,98,244,74,10,120,253,140,10,53,245,161,1,20,244,118,0,176,253,136,1,80,3,1,250,175,252,146,3,210,243,169,253,3,251,87,11,151,245,173,244,127,244,25,10,66,248,199,3,2,250,78,8,60,246,125,254,16,5,221,0,55,246,183,0,63,247,225,249,95,8,199,246,100,247,77,254,87,244,229,1,12,5,225,254,94,246,57,8,238,246,68,10,100,11,244,10,136,3,213,251,190,252,219,249,56,6,188,249,88,251,114,9,42,8,128,0,247,248,201,9,254,7,7,255,105,251,106,7,7,253,235,247,72,5,6,251,109,10,226,252,151,6,237,246,221,6,97,245,253,246,2,255,46,245,231,9,139,6,129,1,167,245,63,8,194,11,252,249,136,3,92,4,18,252,33,254,143,0,188,249,37,244,211,248,107,255,18,3,147,248,236,1,144,254,50,249,174,2,116,1,36,0,57,253,201,249,14,12,81,5,111,5,72,8,252,252,22,9,73,252,63,4,131,245,142,255,17,11,222,8,120,6,62,248,46,251,130,0,89,246,2,9,234,4,68,3,6,10,192,250,109,248,150,5,250,250,149,248,71,2,168,249,253,252,167,245,179,1,170,6,63,3,54,9,59,255,119,11,231,1,228,253,142,9,30,3,3,9,72,255,59,6,97,10,213,3,199,3,224,246,210,9,102,250,92,2,48,248,68,9,238,253,168,4,29,252,43,2,116,2,161,253,189,244,137,244,85,255,241,248,199,9,195,243,243,250,125,7,220,245,58,4,67,251,192,4,137,252,180,250,129,249,203,244,51,4,31,6,1,245,225,244,121,249,225,251,89,247,9,248,178,244,170,250,235,251,124,252,154,5,114,10,173,9,225,253,55,244,189,251,154,255,54,8,244,6,184,4,65,254,37,252,254,248,215,247,149,8,121,7,16,7,121,251,250,254,85,8,123,247,142,11,125,2,68,4,224,243,224,6,9,249,177,244,212,4,161,251,150,248,6,246,204,250,178,245,33,5,248,243,244,7,168,249,111,254,36,247,64,6,233,7,101,2,177,0,109,250,44,2,101,253,212,255,236,246,239,253,55,5,167,0,115,246,60,252,1,247,10,246,228,10,125,10,38,0,133,244,145,252,15,1,239,245,42,245,163,246,147,8,56,253,227,251,193,244,89,3,174,8,158,8,94,4,74,1,199,251,71,7,129,2,61,7,245,254,45,251,197,250,168,245,6,250,16,8,171,252,255,0,207,248,153,7,116,7,87,5,36,254,146,252,108,11,172,3,39,4,14,12,82,253,171,5,60,249,67,3,217,249,112,252,60,11,124,3,115,6,69,250,130,6,145,255,209,251,251,3,187,249,229,247,114,247,244,4,173,245,105,254,166,2,205,255,102,251,217,244,130,4,255,244,244,9,175,2,150,247,46,253,54,252,178,250,15,246,184,243,196,245,215,2,80,254,220,254,141,8,167,252,103,9,13,254,39,5,10,7,1,251,172,7,215,243,252,251,202,6,215,246,183,250,162,11,60,253,155,248,99,11,155,244,222,255,4,12,112,244,26,4,248,245,18,3,31,247,20,250,191,248,35,251,158,254,53,0,164,11,19,4,78,2,6,247,241,3,11,12,101,4,235,10,183,4,1,250,229,255,135,245,217,9,111,3,131,244,17,1,183,254,125,250,21,12,144,6,168,3,104,9,103,4,220,247,60,251,59,12,20,9,13,8,38,251,168,250,1,255,214,251,53,6,135,251,128,5,151,9,192,244,70,12,147,6,246,7,27,250,57,12,235,255,16,8,10,6,12,250,231,254,165,2,225,6,213,0,183,1,158,248,173,248,11,254,248,248,35,6,110,0,208,11,53,11,222,8,144,251,9,249,227,247,179,247,219,251,177,4,60,12,81,11,1,251,103,4,206,248,44,246,235,250,99,2,66,6,221,247,134,244,70,250,152,0,167,251,202,250,178,11,74,253,197,10,52,9,249,251,120,0,42,244,231,4,222,244,92,12,250,249,130,0,99,0,46,253,221,253,169,10,107,1,253,8,152,0,142,254,49,6,91,10,219,7,80,249,210,244,91,4,202,6,32,8,36,248,36,249,102,250,178,253,155,248,146,249,114,255,75,11,175,247,36,249,255,4,204,9,132,249,27,247,161,243,32,9,225,245,37,12,147,253,3,249,128,1,255,5,239,4,216,1,60,4,194,255,130,3,104,3,195,255,68,6,0,3,177,11,255,8,240,254,33,251,171,245,130,249,85,248,195,244,5,9,159,3,137,8,162,249,2,244,49,253,179,0,46,244,181,249,209,252,231,0,155,3,195,244,208,246,41,253,47,4,57,3,7,9,103,251,169,5,128,4,115,253,85,254,236,247,201,1,61,248,57,253,110,4,30,251,58,12,120,244,56,12,31,8,130,250,224,251,61,11,110,10,124,6,16,12,95,0,164,243,254,247,222,4,45,251,224,0,15,255,147,1,200,253,12,245,115,248,42,3,40,11,127,4,149,245,28,250,105,7,165,255,235,251,236,251,96,1,71,255,120,3,42,253,97,255,104,250,233,1,237,8,183,248,94,6,248,6,143,254,43,244,69,0,50,253,23,4,175,250,107,247,46,5,164,244,184,244,230,1,241,1,74,4,38,244,81,2,200,247,230,4,165,6,240,244,111,9,198,247,212,7,210,5,218,254,58,9,132,0,30,4,238,10,246,1,232,9,58,246,57,8,235,250,47,2,188,0,211,9,195,7,18,2,236,9,113,1,120,9,60,4,126,3,234,9,137,252,169,4,192,255,144,251,44,4,84,247,157,3,12,245,41,254}, } ; static const unsigned char precomputed_core_multsntrup953_n[precomputed_core_multsntrup953_NUM][crypto_core_INPUTBYTES] = { {53,4,143,218,41,249,73,35,200,52,201,98,199,232,67,103,43,164,23,16,61,22,16,28,161,176,143,142,215,229,180,119,150,156,1,100,205,113,137,123,166,115,247,126,166,120,200,116,41,235,226,140,194,150,31,198,157,208,190,252,224,33,106,64,93,221,27,70,156,41,46,236,62,228,234,144,202,145,185,13,189,135,135,162,104,168,63,92,167,117,166,31,169,241,38,25,136,121,205,201,37,124,143,71,25,187,31,210,80,254,152,200,26,168,11,181,210,36,183,21,123,117,77,250,83,51,163,254,121,124,138,132,19,30,212,36,230,67,42,235,182,126,98,1,170,46,227,178,122,245,214,127,51,48,44,177,50,240,251,205,68,10,119,113,242,1,231,211,209,96,65,185,69,174,99,165,43,216,231,81,163,236,97,228,11,32,172,58,218,49,6,81,60,83,123,78,5,130,181,58,239,12,82,4,170,133,109,252,153,3,228,153,136,110,51,96,72,174,175,187,208,71,75,218,115,80,248,197,154,186,165,79,210,52,211,184,136,103,243,30,242,248,118,101,88,48,196,47,80,134,57,144,194,205,61,239,38,244,21,96,255,114,251,158,251,11,67,216,241,81,5,43,102,21,161,136,124,130,160,99,221,34,63,88,252,191,18,183,18,135,83,192,201,184,220,0,124,96,227,112,110,146,30,217,100,176,212,41,153,65,38,18,56,219,203,86,202,49,252,29,172,72,180,62,223,230,118,44,225,212,194,85,147,101,84,63,89,190,83,55,18,151,45,151,22,68,95,139,65,14,24,156,57,18,91,29,35,66,211,42,53,115,61,187,195,191,221,110,112,253,5,68,202,8,28,1,238,99,215,137,162,141,62,110,48,86,245,192,75,139,161,183,58,167,28,116,124,183,235,81,21,159,97,1,41,132,179,76,87,106,129,96,135,20,177,60,93,221,166,162,196,44,152,52,177,128,42,40,150,105,139,223,163,77,219,173,17,31,30,14,165,53,75,220,58,162,44,250,115,55,82,218,68,118,242,216,211,159,25,199,230,181,241,200,251,109,13,28,118,104,66,228,227,134,144,186,86,247,202,181,30,88,165,149,186,137,190,146,52,123,162,164,14,59,229,106,80,225,151,64,163,204,74,61,73,159,217,169,188,176,204,34,226,222,254,60,248,247,32,209,245,42,135,133,177,93,14,6,240,99,12,136,143,173,208,237,23,226,224,230,215,36,131,172,57,208,162,108,51,55,39,224,156,235,101,46,79,12,40,39,116,243,134,228,226,225,125,131,27,248,162,247,71,88,120,205,83,41,212,173,39,58,37,212,172,52,36,176,94,127,74,174,221,252,56,109,232,3,226,12,90,212,214,225,196,102,175,207,212,44,199,249,153,114,79,204,110,237,99,183,68,42,38,216,180,249,88,73,210,186,55,91,108,22,180,241,200,85,6,6,11,186,167,168,240,101,191,79,75,194,160,32,142,175,164,158,73,15,155,81,134,59,239,59,227,222,130,250,15,8,201,147,62,170,141,29,179,160,66,97,105,116,45,9,18,101,40,89,209,129,130,202,231,3,11,109,111,61,118,57,206,5,221,16,255,239,83,17,228,110,175,2,192,99,72,188,40,179,57,86,149,171,154,70,95,238,105,154,199,99,224,242,134,87,236,91,3,157,213,204,44,224,114,94,67,3,161,97,9,31,229,96,60,201,178,15,155,148,54,98,75,178,13,20,49,117,82,191,95,15,92,36,28,40,120,219,15,115,29,218,13,66,92,138,237,53,180,106,165,216,179,51,27,156,45,71,191,172,35,67,119,54,192,103,107,2,9,15,98,232,78,206,175,123,190,138,11,136,30,233,114,162,240,161,64,78,118,114,149,137,92,180,209,90,180,60,123,130,78,161,222,184,43,101,41,90,243,111,149,102,65,116,113,109,233,72,88,178,213,217,84,79,37,221,236,41,101,11,163,162,190,244,150,48,101,220,29,209,164,125,55,70,203,231,172,193,5,142,181,68,172,88,41,26,109,122,46,176,226,69,74,218,80,40,3,158,177,9,204,235,119,140,109,26,170,110,5,8,174,133,66,161,50,209,0,171,81,255,29,203,211,132,0,118,176,145,125,79,208,70,108,231,38,0,193,239,95,89,77,226,110,93,152,167,68,199,87,174,33,34,238,218,96,66,108,178,169,7,36,70,28,69,126,232,190,95,40,249,157,218,251,92,170,137,138,29,191,207,169,200,126,159,38,177,182,94,35,54,83,44,140,79,124,80,172,179,214,140,209,164,90,182,253,133,136,119,111,183,153,58,251,1,240,28,183,190,167,67,137,68,248,142,84,82,200,189,65,141,111,27,230,206,207,62,198,24,34,134,240,5,205,129,84,232,34,234,40,177,37,133,43,158,153,113,179,66,4,99,160,114,154,41,77,61,160,99,255,26,33,165,164,73,130,226,33,3,125,163,150,214,17,184,122,192,82,161,177,30,167,137,96,63,192,75,197,249,249,120,235,252,243,24,243,254,202,192,156,173,44,132,217,52,101,167,161,123,254,2,180,148,46,113,80,203,79,109,140,144,121,169,177,244,204,99,70,227,167,164,119,75,48,24,30,23,255,255,57,48,189,183,166,192,104,91,36,132,132,16,44,162,115,145,66,5,116,54,218,88,136,209,191,79,110,72,240,83,34,227,243,125,194,71,179,175,24,84,162,91,15,88,212,206,139,119,177,198,157,37,139,135,28,211,94,169,190,43,232,224,134,225,35,87,117,16,184,40,86,252,145,114,76,229,146,192,250,102,212,255,64,36,248,90,182,15,173,174,92,40,211,2,77,2,80,57,27,109,58,142,249,97,107,150,70,177,237,255,98,158,79,121,208,110,191,119,63,38,188,146,250,211,26,73,5,162,244,162,114,2,190,50,45,246,213,22,241,112,235,84,116,80,116,143,213,242,46,2,239,129,246,31,20,115,173,68,88,254,2,154,50,184,65,21,133,191,118,149,2,137,41,180,153,188,57,19,53,72,112,112,170,8,42,110,78,211,163,168,103,10,83,253,68,97,29,82,4,105,194,121,11,40,185,99,251,47,92,86,82,233,98,236,14,33,200,100,83,198,29,46,162,248,198,98,8,64,193,158,105,22,79,247,39,178,239,15,31,95,177,51,149,100,154,166,29,244,214,102,155,3,49,162,21,17,203,235,168,204,125,174,218,10,191,245,2,138,42,33,122,92,58,253,0,102,188,226,226,158,247,140,68,137,79,174,51,180,113,135,181,212,85,0,188,253,18,113,66,38,202,231,218,129,150,114,17,246,177,156,104,82,62,80,137,249,100,220,171,250,95,154,60,203,146,233,19,180,101,30,240,180,1,219,241,210,209,222,210,57,217,3,220,69,233,100,92,72,125,83,199,156,30,39,186,170,108,237,187,58,57,48,134,19,97,120,154,215,86,142,245,249,71,209,52,71,248,68,133,127,15,128,156,40,48,82,250,140,14,28,235,46,118,207,39,248,77,124,135,1,55,182,50,66,170,28,76,114,125,41,209,127,150,232,75,59,128,117,255,99,212,83,114,191,32,38,216,254,0,39,156,247,223,133,43,193,137,88,214,22,111,246,10,16,37,27,219,123,91,237,127,119,224,250,238,157,208,49,140,230,212,71,156,80,6,151,35,225,116,135,42,50,176,172,85,147,30,88,233,136,97,209,251,136,104,119,150,216,124,57,156,235,108,1,149,73,168,47,42,26,6,146,141,33,6,10,88,165,87,16,124,170,51,115,124,242,163,29,198,230,172,141,229,18,27,113,6,79,80,230,7,200,99,172,235,246,12,233,119,193,72,162,168,105,83,28,92,173,124,23,186,22,166,163,193,55,232,217,238,31,201,164,42,138,142,35,251,54,195,58,254,157,21,136,188,155,78,136,51,19,104,11,236,150,126,47,152,145,189,191,167,183,51,41,91,146,13,177,201,65,149,139,249,232,129,47,56,197,83,169,149,167,159,204,128,0,220,124,93,164,90,53,213,229,98,191,220,91,147,158,190,87,63,23,157,73,251,145,214,134,102,216,119,94,87,205,192,59,122,255,125,191,207,124,95,250,205,189,188,0,230,89,73,9,52,53,43,38,231,18,245,249,171,81,173,24,223,207,222,49,37,134,28,207,226,31,66,174,163,25,231,174,26,63,133,83,16,69,217,236,45,20,87,29,116,0,49,101,128,146,177,26,102,238,253,239,52,220,180,67,7,58,105,66,139,250,32,8,71,70,10,13,64,112,190,46,223,25,64,196,232,35,218,220,12,236,196,72,77,197}, {123,43,213,215,172,87,229,198,146,87,174,216,129,68,44,111,56,147,157,254,210,103,154,99,20,228,90,178,99,11,199,92,193,23,196,30,128,99,245,22,81,99,24,148,40,206,176,7,134,96,191,139,128,58,207,66,64,11,10,207,99,1,231,168,211,140,100,151,246,213,247,42,252,8,150,14,101,254,2,210,239,52,213,197,233,175,155,146,97,13,214,85,190,236,67,110,236,136,247,231,23,218,89,206,230,160,138,203,22,220,185,137,251,80,184,110,144,88,167,188,45,217,95,192,212,28,37,15,141,8,63,37,113,14,85,225,20,81,129,212,108,13,127,241,173,133,215,231,5,25,243,45,171,66,166,243,3,215,72,42,21,161,101,252,97,139,79,160,106,239,201,45,188,80,149,196,141,74,60,90,106,139,224,131,100,74,253,82,110,147,236,78,39,210,96,169,82,255,209,21,89,157,110,86,88,18,112,158,149,97,77,7,92,72,153,246,241,7,205,138,246,83,117,150,171,80,236,74,192,191,117,145,238,205,187,209,163,120,58,161,76,44,54,91,45,112,226,123,119,110,102,87,181,108,158,66,67,93,12,79,219,226,39,233,83,4,54,78,149,248,36,113,176,90,41,121,99,9,144,245,229,24,133,39,251,207,32,130,78,15,209,183,116,206,94,127,244,154,209,221,170,97,14,158,45,254,138,28,67,94,150,18,32,188,189,218,4,91,136,104,86,84,224,159,20,253,213,7,243,160,59,143,252,195,138,32,191,151,81,155,180,178,31,101,45,243,206,106,61,46,117,157,167,249,156,235,59,110,88,96,182,91,121,171,97,115,109,222,78,242,106,173,96,144,87,72,54,106,64,105,43,215,67,158,107,139,31,0,87,175,239,203,48,156,48,192,107,71,236,104,201,125,34,120,232,241,113,7,93,148,96,41,185,23,182,209,76,4,73,3,223,207,243,179,11,126,18,245,52,2,17,46,85,154,22,12,50,186,217,227,217,136,252,83,211,229,226,77,120,202,247,126,21,225,239,244,207,174,239,205,25,43,69,17,228,66,118,190,162,231,96,61,146,113,60,156,228,149,190,118,249,141,250,36,146,25,236,56,30,103,210,254,195,124,72,159,3,247,116,132,204,212,2,64,112,68,130,165,78,243,154,35,191,183,146,151,181,84,114,172,130,176,34,6,42,93,186,115,60,106,36,15,30,195,151,213,36,198,12,105,246,86,157,32,65,219,205,100,66,93,196,167,27,41,129,205,19,185,182,216,39,224,216,197,82,31,56,226,189,55,177,117,6,0,51,69,105,169,255,150,146,200,247,36,142,193,107,205,167,73,71,141,56,155,247,139,139,250,160,128,120,36,124,54,210,179,41,103,174,225,45,63,60,161,2,57,107,28,139,248,5,118,13,67,216,241,78,113,18,73,47,183,106,161,104,64,111,171,126,12,246,206,123,213,87,252,123,5,234,141,92,199,226,159,75,12,167,27,57,163,181,250,198,221,19,139,41,209,144,155,149,240,223,218,106,75,73,67,107,9,202,123,72,28,53,229,175,146,174,116,131,133,185,247,60,23,252,235,159,121,152,240,126,154,111,220,239,78,115,152,85,55,253,41,209,225,98,243,132,86,205,108,195,215,183,35,251,18,140,191,207,188,105,104,82,117,106,134,242,103,217,43,42,127,167,159,72,70,193,239,156,120,53,193,109,233,225,179,56,186,54,109,6,62,115,145,190,166,226,119,88,140,163,188,77,178,59,30,172,110,14,230,156,182,38,168,90,42,246,76,181,61,29,246,226,211,166,240,30,137,71,178,133,16,27,241,179,64,117,56,2,158,75,90,172,247,38,173,141,84,82,87,220,11,117,125,154,74,94,236,124,231,182,155,198,84,194,138,155,134,80,221,184,185,88,201,206,174,216,121,33,202,157,145,2,132,246,6,113,236,143,221,240,46,236,73,38,29,157,34,145,32,62,20,251,226,196,180,61,70,125,132,91,60,246,40,114,169,221,175,83,203,15,156,85,26,227,39,63,44,192,211,147,178,163,229,46,19,245,198,170,215,167,252,190,82,207,186,37,90,80,14,53,234,116,62,142,246,254,13,62,0,201,115,218,137,18,246,15,82,95,27,255,189,29,182,49,54,64,86,105,113,102,183,4,1,3,113,39,73,32,40,248,125,161,21,251,57,155,41,151,25,6,147,20,162,32,96,167,154,108,159,52,229,237,106,65,86,13,67,216,73,67,214,49,183,44,15,85,227,153,24,215,66,82,28,50,132,29,252,79,103,105,84,54,34,199,144,31,52,164,80,31,13,141,231,12,80,28,80,245,46,164,162,172,228,10,33,224,91,253,48,251,76,163,10,50,142,26,102,136,99,91,101,161,86,125,219,197,180,116,120,27,128,240,169,115,17,190,248,89,24,203,96,4,156,29,183,221,20,251,193,177,98,226,184,210,151,242,91,133,136,13,147,23,234,157,187,20,118,224,249,76,39,105,157,87,68,117,129,68,113,43,134,44,192,193,202,247,107,198,90,251,153,128,187,58,162,136,124,24,212,168,42,167,123,133,56,157,217,1,119,166,92,100,250,33,220,221,167,134,20,102,213,192,69,162,239,88,36,101,220,166,52,82,236,121,71,115,26,191,240,230,22,148,170,110,206,107,117,101,135,255,151,249,230,163,157,80,155,55,230,63,13,86,186,200,194,41,107,223,237,187,152,190,152,131,74,136,114,238,21,121,40,28,121,75,249,45,78,114,215,151,36,190,57,1,224,187,89,25,134,235,201,95,113,252,233,240,23,169,117,62,98,206,85,75,88,31,218,61,251,127,190,80,156,134,37,83,146,33,252,13,103,84,245,255,175,50,127,117,23,68,132,227,1,242,14,128,165,174,231,110,104,44,49,4,93,126,181,88,53,186,138,217,233,58,210,252,86,254,253,219,139,96,187,125,32,10,163,229,93,134,238,72,32,69,172,168,104,63,205,69,12,29,216,93,141,229,60,59,72,137,250,63,26,31,97,196,56,129,30,198,192,170,216,17,171,143,29,245,20,57,129,7,180,195,35,4,136,42,141,44,147,14,151,196,6,138,83,154,73,167,83,233,158,135,165,186,224,174,238,48,215,218,101,195,112,144,75,4,31,93,2,74,163,1,198,63,161,110,73,53,83,34,13,138,110,178,126,240,208,36,165,12,223,66,7,40,182,232,36,160,116,99,252,232,224,207,225,35,100,124,157,105,231,199,163,169,30,220,183,133,240,79,165,234,207,59,147,106,132,154,58,51,236,255,133,222,164,169,154,243,232,37,28,74,8,54,247,31,194,51,180,224,155,157,54,80,226,244,93,209,41,108,119,193,206,94,40,198,230,71,126,179,188,127,210,236,244,103,182,108,52,12,94,97,12,160,117,140,10,66,164,105,170,36,40,42,146,56,102,46,161,137,234,115,213,251,85,192,220,24,90,93,124,87,163,125,234,14,91,79,83,147,249,200,7,166,211,92,79,86,209,132,73,155,40,178,38,97,190,182,170,204,78,229,182,125,160,43,180,75,189,215,16,135,190,62,234,36,16,86,79,174,28,41,176,18,241,8,46,210,132,205,11,5,184,121,199,193,49,212,231,189,45,212,106,102,138,1,201,205,212,185,89,115,252,206,146,186,109,85,151,150,239,21,96,132,21,112,235,251,84,49,195,73,31,153,105,211,196,88,244,89,179,243,51,246,81,199,147,75,126,147,160,242,140,230,128,164,231,37,104,107,10,33,208,254,22,110,222,125,104,17,199,246,137,140,7,96,216,221,169,7,138,157,202,132,53,39,7,243,78,141,152,134,3,45,90,186,253,163,31,252,131,41,19,2,174,129,126,236,58,133,205,201,123,187,10,21,19,239,102,111,158,54,103,137,182,64,68,156,50,254,135,159,57,28,107,245,159,179,15,73,65,247,128,164,207,20,208,55,83,170,204,49,141,152,183,177,154,110,11,176,37,60,62,176,176,253,19,235,244,247,173,246,173,62,151,14,138,2,61,30,15,41,79,216,67,248,150,174,183,159,189,149,40,47,137,252,235,18,116,244,240,203,7,176,65,10,24,235,56,142,205,8,88,112,205,42,184,113,77,120,252,210,184,5,130,140,128,123,123,69,45,189,219,125,240,35,173,10,115,246,84,195,29,154,31,25,154,158,224,186,208,39,132,97,84,198,245,188,141,117,76,253,244,190,109,91,241,227,237,56,88,130,0,247,34,72,200,162,144,8,7,168,67,150,151,36,48,90,156,140,5,236,71,209,165,213,140,119,14,45,191}, {221,29,174,72,18,211,230,156,79,56,165,25,247,46,178,13,240,124,52,149,217,3,31,228,12,130,207,87,166,186,68,190,134,207,29,255,154,207,179,24,241,205,164,85,222,78,126,191,229,193,113,232,80,128,229,133,105,39,232,19,191,53,95,126,216,119,33,252,180,125,103,146,140,213,59,70,40,105,107,216,89,255,164,102,75,2,87,55,75,225,214,227,206,113,39,148,51,174,100,245,123,255,202,26,213,22,113,213,188,93,31,195,191,94,240,85,113,222,224,38,72,197,81,175,17,16,149,179,70,171,87,229,144,126,180,31,102,186,247,209,163,199,115,27,175,76,131,39,63,120,27,40,215,64,223,218,66,15,44,7,12,221,209,45,54,136,206,135,141,24,64,181,170,31,159,99,0,50,242,30,111,155,132,171,145,200,5,24,26,163,73,116,161,51,94,230,111,145,1,151,253,20,90,240,18,227,240,96,32,214,0,207,22,155,236,84,222,160,141,113,203,204,188,114,65,147,53,23,68,115,145,26,68,204,33,128,120,14,74,41,57,217,161,200,139,127,142,180,250,87,40,166,90,97,77,105,48,245,219,117,127,157,188,219,94,129,108,158,84,112,241,252,63,231,218,176,230,73,1,98,64,79,62,91,244,246,131,112,245,132,153,216,0,200,23,60,34,49,201,84,47,103,160,71,53,200,102,62,98,163,250,211,51,81,160,101,119,149,245,42,136,231,19,93,255,208,49,133,84,238,129,194,134,136,236,192,107,196,238,15,135,109,26,69,172,158,1,49,87,85,212,16,154,205,92,249,228,146,168,40,51,206,70,180,1,35,133,164,66,239,178,31,2,146,230,19,133,249,15,166,45,54,46,187,23,223,198,238,112,238,143,44,41,174,82,20,207,25,151,234,0,108,117,62,139,86,207,249,152,203,30,28,81,65,223,75,223,250,169,172,60,9,72,135,197,247,99,182,39,66,241,191,240,68,244,46,38,112,173,66,253,107,74,104,150,217,174,150,153,32,20,215,200,1,20,68,109,38,14,145,47,153,130,179,220,160,106,249,210,232,131,55,70,159,113,198,10,29,208,243,79,155,71,46,41,198,83,99,10,227,105,168,128,44,169,189,81,95,36,144,172,18,64,139,198,234,199,67,162,14,42,122,45,228,168,204,183,129,7,218,140,242,248,102,16,206,244,3,169,24,17,209,11,205,52,194,147,4,90,83,40,130,137,78,211,112,119,135,91,86,40,242,192,197,133,76,47,155,62,15,7,9,12,159,96,102,203,160,2,251,74,29,18,55,54,113,226,174,113,69,56,45,77,68,193,101,200,102,55,170,128,225,4,23,217,178,4,150,15,83,145,97,47,159,223,198,221,123,106,91,70,182,253,181,137,81,235,151,178,229,146,7,67,230,47,165,96,6,120,229,173,210,75,237,71,203,154,255,56,234,153,176,204,159,128,108,61,227,218,134,52,80,68,220,193,61,151,239,62,198,84,166,94,19,251,191,27,88,184,155,224,231,45,252,147,244,35,171,168,220,234,201,145,72,222,245,33,235,194,132,18,41,52,44,149,32,208,109,28,91,198,140,108,237,17,119,227,170,53,138,140,35,13,232,176,14,232,138,255,144,139,222,30,216,20,139,137,90,252,61,105,2,254,234,106,155,176,120,131,21,254,228,17,200,118,39,227,4,146,102,83,83,13,211,125,133,59,254,122,123,77,148,143,184,2,214,156,232,94,74,50,27,38,147,160,198,33,77,154,218,158,203,225,132,106,108,193,152,161,253,180,121,133,149,79,195,124,96,80,5,138,137,212,175,68,92,72,215,146,125,229,109,116,227,236,127,83,221,151,147,121,224,223,255,166,253,47,174,233,133,228,135,167,156,153,190,108,220,40,49,67,158,132,190,107,108,54,26,108,182,90,42,181,210,169,172,122,254,65,30,148,128,7,193,39,147,201,72,128,29,84,32,217,100,127,45,39,180,42,12,191,15,59,71,117,128,240,162,73,126,12,21,56,23,103,116,215,100,204,202,205,156,104,92,239,141,162,214,243,1,125,117,130,178,219,238,25,23,72,76,84,239,134,8,166,40,98,16,89,80,153,89,252,26,221,67,182,237,17,117,160,195,103,206,250,16,136,159,179,100,36,247,187,135,147,176,66,37,126,141,143,218,76,218,245,42,162,249,152,191,133,69,45,80,115,11,6,4,34,36,213,253,30,227,37,96,139,30,184,134,167,130,122,25,36,11,47,127,84,212,165,120,135,6,37,60,86,232,180,155,68,63,50,39,186,137,115,22,128,61,77,210,166,115,65,153,170,224,54,0,200,231,135,177,175,140,47,126,202,96,60,194,134,76,251,101,19,173,196,140,79,79,73,53,138,215,207,160,160,191,177,155,87,183,220,20,104,67,36,4,130,153,146,252,151,62,220,132,35,21,98,58,24,77,17,188,27,14,152,180,117,29,129,224,241,128,5,189,252,39,78,151,2,67,152,72,251,169,248,134,0,201,254,238,177,47,13,104,5,42,17,41,45,19,157,154,89,170,161,20,241,190,73,171,217,163,169,204,61,146,241,134,157,74,253,59,198,156,53,90,123,73,78,38,185,230,240,71,38,14,137,103,161,207,196,134,140,122,128,118,198,1,89,177,17,72,255,169,161,129,80,131,121,9,14,90,159,174,92,34,60,31,78,176,43,68,113,46,3,10,189,181,144,95,247,126,79,154,10,1,165,199,181,172,13,57,148,107,174,156,49,98,132,109,64,39,84,139,169,228,232,30,83,8,176,20,77,132,130,230,225,210,33,172,178,128,6,221,115,105,190,212,116,236,60,231,195,232,247,170,37,183,87,149,224,105,167,227,30,87,200,254,107,170,217,32,140,45,53,117,190,58,140,179,160,190,62,229,120,254,167,56,200,184,59,219,161,162,183,224,253,105,181,14,47,110,0,78,131,75,254,123,173,130,63,152,242,173,122,146,142,87,61,67,125,79,173,56,239,178,148,176,55,87,202,57,104,21,211,22,231,82,101,116,16,218,146,158,62,189,12,205,240,109,74,91,198,66,91,6,74,95,207,163,125,138,189,217,15,249,201,212,171,181,39,61,100,158,233,105,238,72,189,74,223,255,255,170,175,104,121,58,235,106,85,153,78,175,252,163,44,113,59,182,114,36,52,80,204,127,60,148,176,227,46,217,221,155,1,151,29,59,100,178,180,135,151,152,80,37,220,69,72,234,172,175,249,124,150,241,150,110,103,17,116,137,49,143,11,218,229,183,235,98,58,87,25,44,76,230,149,118,111,240,65,115,220,15,208,242,214,140,174,224,73,27,113,8,103,101,91,87,169,55,120,175,97,173,72,218,141,48,2,252,215,182,129,176,83,49,177,167,99,28,223,209,99,240,46,195,200,121,151,216,150,164,112,198,92,153,91,194,197,172,175,59,120,128,238,5,163,228,63,228,232,245,12,19,54,8,76,68,162,214,79,181,234,20,20,75,165,116,3,15,72,135,111,143,194,38,0,91,24,140,239,233,30,184,137,157,203,145,185,9,197,184,162,36,189,114,158,121,238,46,201,147,100,32,27,191,9,65,112,158,102,123,6,96,100,108,111,150,181,12,78,235,33,32,162,183,190,51,149,203,124,3,165,63,251,20,110,101,140,22,244,102,26,227,69,3,14,241,249,65,61,6,43,96,139,155,34,173,65,160,150,226,73,83,43,247,151,157,189,68,76,67,17,126,152,230,187,48,147,64,130,200,111,141,182,50,205,64,91,201,63,114,113,207,119,134,89,67,96,34,211,210,144,241,244,31,5,190,102,140,19,134,22,59,239,226,73,246,237,54,20,159,201,32,253,27,7,90,232,97,11,98,74,69,149,120,117,142,42,235,180,213,250,145,132,0,69,110,178,51,2,193,8,47,15,45,226,174,197,90,12,14,132,138,201,185,39,101,142,145,220,252,9,32,226,24,162,27,142,79,100,203,211,0,77,73,188,134,89,4,90,18,37,65,185,12,58,188,171,163,122,12,248,62,1,17,125,219,88,219,113,141,114,137,183,52,220,240,94,201,208,69,112,104,181,46,238,49,107,72,122,239,219,35,15,138,159,180,232,168,129,222,120,84,68,162,120,17,42,179,36,49,214,183,82,209,203,102,222,28,226,59,36,66,64,129,39,56,221,92,7,121,199,243,216,251,2,92,43,91,94,194,105,216,29,131,221,163,9,186,146,32,161,132,179,221,83,38,205,28,163,2,64,12,169,14,242,126,8,40,110,233,157,145,214,143,170,62,70,172,204,86}, {140,90,40,128,87,96,155,132,130,71,44,33,223,9,81,232,227,100,237,203,211,113,53,49,65,131,180,206,18,48,53,82,89,225,210,1,183,152,42,36,184,89,110,40,157,64,201,128,64,167,145,156,4,85,189,160,197,184,21,187,62,63,42,96,54,62,89,37,251,206,45,81,49,227,167,208,119,233,64,1,14,70,124,118,59,34,85,23,149,59,216,236,139,113,97,71,112,190,158,36,14,145,201,135,58,4,20,12,47,147,92,49,130,54,112,135,6,254,214,78,28,204,140,185,27,159,183,180,27,230,13,196,240,137,38,37,147,253,121,184,110,197,144,60,220,110,160,252,105,129,202,192,156,137,210,31,190,79,90,90,213,64,68,10,186,209,70,2,66,198,80,194,28,183,66,3,187,126,37,182,1,137,9,183,122,124,157,109,160,68,52,36,41,233,185,165,6,90,72,202,104,246,230,53,232,192,212,76,241,48,99,51,4,211,161,15,123,199,117,24,116,244,117,0,19,78,160,47,51,58,162,0,54,160,123,137,172,96,105,46,15,55,63,92,252,215,230,132,244,250,189,10,100,88,81,252,251,207,126,238,217,90,126,4,26,76,53,176,165,45,180,247,153,195,186,48,10,211,218,31,153,49,96,99,85,103,111,114,182,129,249,226,7,12,161,27,250,199,43,75,53,147,223,59,92,201,190,81,223,205,217,230,105,51,190,142,82,9,181,45,47,71,241,30,88,131,154,57,122,167,4,40,109,95,180,231,163,65,160,243,7,242,197,52,239,141,94,87,115,249,241,103,122,143,33,142,210,235,158,204,80,50,143,57,184,41,101,9,49,134,214,150,195,9,35,155,112,181,122,4,216,34,184,238,188,48,34,174,40,112,11,45,48,14,91,60,237,150,240,176,166,63,70,167,122,143,7,119,163,208,85,75,37,236,43,172,27,105,181,57,150,19,225,177,105,27,87,137,158,33,99,51,0,84,25,50,250,99,150,243,166,136,210,160,70,120,81,187,25,95,165,136,254,191,61,30,222,167,230,48,129,62,229,93,252,16,42,224,124,107,242,219,40,195,69,16,134,21,80,10,190,48,235,92,113,199,191,92,218,115,34,86,162,169,249,69,252,139,173,176,87,118,109,81,167,4,18,92,68,113,246,66,110,46,49,228,37,153,144,228,103,25,26,129,69,248,166,67,214,118,28,112,78,9,29,101,94,165,22,221,247,139,68,73,9,177,253,27,239,124,71,4,124,241,237,178,168,170,115,120,133,254,104,61,17,220,219,163,50,125,167,8,148,5,243,43,47,247,203,36,43,254,93,143,208,215,167,100,37,28,64,0,57,32,88,167,183,9,158,13,29,130,148,171,164,193,4,170,168,6,130,191,221,199,148,48,60,178,94,49,93,170,176,208,24,31,32,244,29,78,59,218,26,77,108,218,33,16,189,126,164,7,182,143,6,84,233,58,85,189,46,219,218,157,22,185,191,242,251,251,131,53,246,1,208,143,49,83,167,215,236,110,199,98,137,80,94,209,241,244,249,235,210,195,193,175,28,183,133,210,113,111,34,78,232,211,145,56,86,47,46,85,3,70,238,30,10,110,81,214,85,7,117,179,206,198,24,92,17,120,113,139,144,74,22,178,235,163,77,58,33,182,178,27,248,57,16,23,153,124,226,90,72,17,60,29,98,45,226,46,11,70,57,211,135,186,140,85,22,117,154,146,200,4,154,217,210,202,52,233,192,124,24,8,43,28,161,30,7,243,165,116,115,243,6,108,92,76,198,62,131,86,78,141,141,100,115,93,52,61,244,154,93,236,176,20,120,168,233,36,53,32,101,162,105,45,8,105,206,236,33,96,251,76,104,82,118,104,83,99,18,84,131,59,180,32,213,62,142,170,166,104,102,29,132,13,238,62,156,67,93,63,67,49,81,182,10,46,26,102,210,52,106,189,38,18,136,69,33,56,131,0,20,186,62,100,91,2,42,164,128,217,27,221,143,159,204,80,47,209,118,106,100,68,204,16,18,41,195,157,78,122,27,124,128,76,227,197,143,201,232,202,67,130,110,180,240,230,125,116,201,195,53,89,112,117,88,87,89,216,224,96,217,45,48,144,7,65,61,253,122,159,229,118,44,80,72,133,242,237,195,100,171,38,175,26,35,134,4,58,227,95,59,147,29,239,30,158,18,65,98,79,81,130,220,182,187,25,59,124,218,174,94,240,170,150,55,60,47,134,13,128,156,20,57,225,243,189,147,141,54,149,248,231,1,122,164,37,20,149,165,168,20,112,17,191,157,123,143,76,196,169,164,175,225,157,243,86,76,181,219,50,91,239,224,78,219,146,151,176,237,136,186,105,138,119,73,13,65,147,175,179,69,170,84,24,203,221,196,181,194,77,117,126,105,37,254,109,152,231,156,244,18,226,142,84,115,149,61,110,16,255,252,238,241,127,237,215,137,164,230,129,151,62,223,233,107,105,17,140,194,25,241,218,77,105,103,22,247,174,73,172,69,207,198,30,253,31,112,254,3,66,79,144,42,164,217,135,170,54,247,164,123,215,200,249,108,0,223,0,155,67,238,66,207,136,147,233,75,121,167,72,18,247,45,148,3,146,61,213,70,202,197,193,32,88,10,133,44,180,197,28,175,168,143,20,70,139,221,245,225,88,159,244,163,215,186,176,112,80,1,6,217,108,85,59,66,225,47,139,68,184,119,14,180,212,186,223,215,223,99,208,141,222,155,80,84,231,138,219,132,125,146,68,170,85,144,230,155,165,134,196,190,11,239,63,170,196,214,224,18,207,132,138,121,57,153,107,132,71,48,181,57,35,239,173,120,247,127,41,22,70,175,236,116,152,115,197,244,82,218,60,97,83,116,247,97,38,18,2,240,99,176,45,56,128,204,200,98,129,12,56,174,53,3,218,100,220,116,13,52,37,0,66,13,131,215,188,128,89,246,5,140,80,29,193,114,162,224,91,80,223,186,155,107,151,192,94,157,25,217,180,150,187,26,159,74,176,130,15,19,48,80,100,168,174,145,133,22,185,105,145,109,11,150,205,228,51,198,214,143,107,108,40,154,228,39,172,234,132,162,193,150,2,248,47,144,64,246,94,173,125,222,145,170,192,30,78,133,163,46,221,201,64,246,253,101,40,180,255,75,205,183,37,242,243,252,111,49,202,10,92,193,255,236,132,135,243,36,17,82,201,135,101,146,27,187,249,201,218,211,10,134,114,109,234,55,57,42,224,186,72,243,2,97,99,57,255,82,72,192,11,47,88,236,227,172,89,81,123,248,120,195,152,175,142,35,153,28,137,163,176,25,51,150,95,31,243,15,25,51,54,147,76,57,118,46,133,54,253,153,221,85,140,96,253,99,248,124,176,59,196,245,160,219,189,35,221,78,246,41,107,7,74,211,176,105,122,44,85,239,85,163,94,2,13,242,66,235,61,242,244,191,54,162,170,161,173,127,84,168,29,250,176,213,41,225,32,180,91,84,66,166,14,49,110,246,41,69,136,221,237,62,229,98,61,118,229,90,104,84,84,132,79,221,234,24,45,23,73,44,114,100,215,169,248,80,97,79,61,135,105,115,99,176,15,199,238,28,147,67,130,159,201,213,255,123,170,236,47,7,23,132,121,75,55,196,217,155,35,133,178,141,89,161,32,116,171,196,151,24,208,58,246,34,42,57,96,241,92,113,147,182,136,63,39,107,128,51,225,128,132,54,161,128,118,48,95,181,208,165,83,237,58,40,188,76,139,110,120,98,1,108,214,68,21,202,107,202,155,65,23,96,188,131,156,52,69,186,130,81,201,32,126,171,240,149,50,243,108,45,75,173,26,173,71,51,170,213,224,83,236,64,205,43,90,145,45,41,9,193,114,184,48,99,83,89,48,3,87,17,165,70,98,22,170,195,232,167,166,217,17,47,180,75,31,127,197,135,79,200,135,198,224,219,90,66,31,117,217,155,79,9,186,11,172,221,122,41,16,110,18,126,72,144,57,112,207,49,119,223,232,229,224,218,186,0,11,113,105,189,63,164,101,98,34,171,148,118,145,137,95,165,176,135,215,62,108,113,135,190,195,141,221,4,212,126,46,122,133,198,173,218,113,88,69,131,21,72,171,13,214,193,201,188,131,140,60,200,157,34,246,115,19,15,237,75,212,154,68,138,53,1,160,164,167,132,9,207,99,116,119,231,84,25,207,221,174,28,201,180,230,171,255,224,6,9,67,105,119,159,116,155,93,125,9,17,170,83,31,70,34,92,21,222,176,73,5,73,39,157,255,247,215,84,14}, } ; static const unsigned char precomputed_core_multsntrup953_k[precomputed_core_multsntrup953_NUM][crypto_core_KEYBYTES] = { {1,-1,-1,0,0,0,0,0,-1,0,0,0,0,-1,0,1,0,1,0,0,-1,0,-1,0,0,0,0,1,1,-1,0,0,0,-1,1,-1,-1,0,0,0,1,-1,-1,1,0,0,-1,-1,1,1,0,1,-1,0,1,0,0,-1,1,1,-1,1,0,-1,0,1,-1,0,0,0,-1,0,-1,1,-1,-1,0,1,0,0,0,-1,-1,0,0,1,1,0,1,1,-1,1,0,-1,1,0,-1,-1,0,1,-1,1,1,-1,0,1,1,1,1,0,1,1,-1,0,-1,1,1,0,0,0,1,0,0,0,-1,-1,0,0,0,0,0,1,-1,1,0,0,0,-1,-1,0,1,1,-1,0,0,0,0,0,0,0,1,0,0,1,1,1,-1,0,1,0,0,-1,-1,1,-1,0,-1,0,0,1,1,1,-1,-1,-1,0,-1,-1,1,0,1,-1,0,0,-1,0,1,0,0,-1,1,0,1,0,-1,0,0,-1,0,0,0,1,-1,-1,0,-1,0,1,-1,-1,0,0,-1,0,0,0,1,0,-1,0,0,0,0,1,0,-1,0,0,-1,0,0,-1,1,0,0,0,-1,1,0,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,1,-1,0,0,0,1,0,0,0,0,1,0,0,-1,1,1,0,0,0,0,0,-1,0,1,-1,-1,1,0,1,-1,0,1,1,0,0,-1,1,0,-1,1,-1,0,1,0,1,0,0,0,0,1,1,0,0,-1,0,0,0,-1,-1,-1,0,-1,0,-1,0,0,0,0,0,-1,0,-1,0,1,0,0,1,-1,0,1,0,0,0,0,1,0,-1,0,1,1,-1,0,1,0,0,0,-1,1,-1,0,1,-1,0,0,-1,1,-1,0,-1,0,1,0,1,1,0,0,0,1,1,0,1,0,1,-1,-1,-1,0,1,0,1,0,1,-1,-1,0,1,-1,-1,0,-1,-1,1,0,1,-1,0,-1,0,1,0,1,1,0,0,1,1,-1,0,-1,-1,0,1,0,1,0,1,-1,1,1,0,0,0,0,0,-1,0,1,1,0,0,0,-1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,-1,0,-1,0,-1,1,0,1,-1,0,0,-1,1,1,-1,1,-1,1,0,0,0,1,1,0,0,0,1,0,-1,0,-1,-1,-1,1,-1,0,-1,0,0,0,-1,-1,0,0,1,0,1,-1,-1,0,-1,0,1,0,-1,0,-1,0,0,0,0,0,1,0,-1,1,0,0,-1,0,0,0,-1,1,1,1,0,0,1,0,0,-1,1,0,-1,-1,-1,1,0,0,0,1,0,-1,0,-1,0,0,-1,0,-1,0,0,1,-1,0,0,0,1,0,-1,0,1,1,-1,0,0,-1,1,0,0,-1,0,0,1,0,-1,0,1,0,1,0,0,1,1,1,0,1,1,-1,-1,-1,1,1,0,1,0,0,0,0,0,0,0,-1,1,-1,1,0,0,0,1,0,0,0,0,-1,-1,-1,-1,1,1,-1,1,0,-1,0,0,0,-1,0,1,0,-1,0,1,-1,-1,-1,1,-1,1,-1,0,-1,1,-1,1,1,0,1,0,0,1,-1,0,0,-1,1,-1,1,0,0,0,0,0,0,0,-1,0,0,1,-1,0,0,1,0,1,0,-1,-1,0,0,1,0,0,-1,0,0,0,0,0,1,0,0,0,0,0,0,0,-1,0,1,1,1,0,0,0,0,-1,0,-1,-1,0,0,0,1,0,1,-1,0,-1,0,1,0,0,0,1,-1,-1,0,0,-1,0,0,0,1,1,0,-1,1,0,1,-1,0,0,0,-1,-1,-1,1,0,1,0,0,1,-1,0,0,1,-1,1,-1,0,1,0,-1,0,0,0,-1,0,-1,0,-1,-1,1,1,1,-1,1,-1,1,1,-1,1,-1,1,0,-1,0,-1,1,0,-1,0,0,-1,-1,-1,0,0,-1,0,0,0,-1,-1,1,0,0,0,1,0,-1,-1,0,0,0,0,0,1,0,0,1,1,0,1,-1,0,0,1,0,0,0,0,-1,0,0,1,0,0,1,1,-1,1,-1,0,0,1,1,0,1,0,-1,-1,-1,1,-1,-1,1,1,0,0,0,0,0,0,0,0,0,0,1,-1,0,0,1,-1,-1,-1,0,0,-1,0,0,1,1,1,1,-1,-1,0,0,1,0,1,0,0,1,0,-1,0,0,0,-1,-1,1,0,0,-1,-1,0,0,0,0,0,1,0,1,-1,0,0,0,-1,0,0,-1,0,1,0,0,-1,1,0,1,0,0,1,-1,1,1,-1,0,0,0,1,1,0,0,0}, {0,1,0,-1,0,1,0,1,1,1,1,0,-1,1,-1,0,0,-1,-1,0,1,-1,0,0,-1,0,0,-1,0,0,-1,0,1,-1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,-1,0,0,-1,0,-1,0,0,-1,1,0,-1,-1,0,0,0,-1,0,-1,0,-1,0,0,0,-1,0,0,1,0,0,1,0,0,0,-1,1,0,-1,1,0,0,1,1,-1,0,0,0,1,0,0,0,-1,0,0,1,-1,-1,0,-1,-1,0,0,0,1,-1,0,1,0,-1,0,-1,-1,1,0,-1,-1,0,0,-1,0,0,1,1,0,0,0,-1,0,1,-1,-1,0,-1,0,-1,0,0,0,0,1,0,1,1,0,1,1,-1,0,1,0,1,1,-1,0,-1,1,0,0,0,1,-1,1,-1,1,1,0,0,0,0,0,0,-1,0,-1,0,0,1,0,-1,0,0,0,0,1,1,0,0,1,-1,0,0,-1,-1,0,-1,1,0,0,0,1,-1,0,1,0,0,-1,0,0,-1,0,-1,0,1,1,0,0,0,0,0,-1,0,0,0,-1,-1,-1,1,0,1,-1,-1,0,1,0,1,0,-1,0,0,0,0,-1,-1,0,0,0,0,1,0,1,-1,1,0,1,0,0,0,0,0,0,-1,1,0,0,1,-1,0,0,0,1,-1,-1,0,0,-1,0,0,-1,-1,0,0,0,0,0,0,0,1,0,-1,-1,0,-1,0,-1,-1,1,-1,0,0,1,0,-1,0,0,1,-1,1,-1,0,0,0,1,0,-1,1,1,0,-1,0,1,0,1,-1,0,0,0,0,1,-1,0,0,1,-1,0,0,1,-1,-1,-1,0,0,-1,1,-1,-1,-1,1,0,0,1,-1,0,0,-1,1,-1,0,1,0,1,1,0,0,0,0,0,-1,0,-1,0,0,1,1,0,1,1,-1,-1,0,-1,-1,0,-1,0,-1,1,0,-1,0,0,1,1,0,-1,1,0,1,-1,1,-1,-1,0,-1,0,0,-1,0,1,0,0,1,1,0,0,1,0,0,0,0,-1,0,-1,0,0,-1,0,1,0,-1,0,1,0,1,0,1,1,0,-1,1,1,-1,0,0,1,-1,1,-1,0,1,-1,0,0,-1,-1,0,0,1,1,1,0,0,0,0,0,-1,1,1,-1,1,1,1,0,-1,1,0,1,0,1,1,0,0,1,-1,1,0,-1,1,1,1,-1,1,0,1,0,0,0,-1,-1,-1,1,0,0,-1,1,-1,0,0,0,-1,0,1,1,-1,0,1,-1,-1,-1,1,1,0,1,-1,0,-1,0,0,0,0,0,-1,0,0,-1,0,1,-1,-1,0,1,0,1,0,0,0,-1,-1,-1,0,0,0,-1,-1,0,0,0,0,1,1,-1,0,-1,-1,0,0,-1,1,1,0,0,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0,1,0,0,0,1,0,1,0,1,0,-1,1,-1,0,0,0,0,0,-1,-1,0,0,-1,-1,1,0,0,0,-1,-1,0,1,0,0,0,0,0,-1,1,1,1,0,0,0,-1,-1,-1,1,-1,-1,-1,1,0,0,-1,0,0,0,0,0,1,0,0,-1,0,0,-1,0,1,0,-1,0,1,0,0,-1,0,0,0,0,0,-1,0,0,0,-1,0,-1,0,0,-1,-1,0,0,1,1,1,-1,-1,0,1,0,-1,0,0,1,0,-1,-1,-1,0,1,-1,-1,0,1,-1,1,1,1,-1,0,1,-1,1,0,0,0,1,-1,0,1,1,0,0,-1,0,1,0,1,0,-1,0,0,0,0,0,-1,-1,-1,1,0,1,-1,0,0,1,0,-1,0,0,0,1,1,0,0,-1,1,-1,0,0,1,0,-1,-1,0,-1,-1,-1,1,0,-1,-1,-1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,1,-1,0,1,1,0,0,0,0,-1,1,0,1,-1,1,0,0,-1,0,0,-1,-1,1,0,0,1,0,0,1,1,-1,1,1,0,0,1,-1,1,-1,0,1,0,-1,1,1,-1,-1,1,0,0,0,1,1,-1,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,1,-1,0,-1,1,0,0,-1,0,0,-1,-1,1,1,-1,0,1,1,0,-1,0,0,-1,0,0,-1,-1,1,0,0,0,0,0,1,-1,0,0,0,0,0,-1,0,0,0,0,1,0,1,1,1,0,1,-1,0,0,0,1,-1,1,1,1,0,0,0,0,-1,-1,-1,-1,-1}, {0,1,1,0,0,-1,1,0,1,0,0,0,0,0,-1,-1,-1,0,0,0,0,1,1,0,-1,-1,1,0,-1,0,0,-1,0,0,0,1,1,-1,0,0,0,0,-1,-1,-1,0,0,0,0,-1,0,0,1,0,0,-1,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,1,0,-1,0,-1,0,-1,-1,0,0,-1,0,0,1,-1,1,-1,0,0,0,1,-1,0,0,0,1,1,1,1,1,-1,1,1,0,0,0,1,1,0,0,0,0,0,1,-1,0,-1,0,1,1,0,0,0,0,0,-1,-1,1,0,-1,0,0,0,0,0,-1,-1,0,0,1,1,0,0,1,1,0,0,0,0,0,-1,0,-1,1,0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,-1,1,0,1,-1,-1,0,1,0,0,1,1,0,0,1,-1,1,0,-1,-1,1,0,0,-1,-1,0,0,1,1,1,-1,1,-1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,-1,0,-1,0,0,0,0,0,0,-1,-1,0,-1,1,-1,1,0,1,0,-1,0,-1,-1,0,0,0,0,0,1,0,1,0,1,0,-1,1,-1,0,1,-1,0,0,-1,1,-1,0,1,0,0,1,0,1,0,0,-1,0,0,0,0,-1,0,1,1,-1,-1,0,1,0,1,-1,0,0,0,1,0,-1,0,1,-1,-1,0,1,0,0,-1,0,0,0,0,1,-1,-1,0,0,-1,-1,-1,0,1,0,0,-1,0,-1,0,-1,1,0,1,-1,0,0,0,0,-1,0,0,0,0,-1,0,1,-1,-1,1,0,-1,0,0,1,-1,-1,1,1,1,-1,1,-1,1,0,-1,0,1,0,-1,-1,0,0,1,1,1,-1,0,1,0,0,0,0,0,0,-1,0,1,-1,1,-1,1,0,0,1,-1,0,1,1,1,0,0,-1,-1,0,1,1,1,0,0,0,-1,-1,0,-1,0,0,0,0,0,1,0,0,1,0,0,1,0,-1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,-1,0,-1,0,0,-1,0,0,1,0,-1,-1,0,0,0,1,1,0,0,-1,0,1,1,1,0,0,0,0,0,-1,0,0,0,-1,1,0,1,1,1,0,1,0,-1,-1,-1,1,0,1,-1,1,-1,0,0,-1,0,-1,-1,0,0,-1,-1,-1,1,0,1,1,0,0,1,-1,0,0,0,0,1,0,1,1,0,-1,0,1,1,0,-1,1,1,0,0,1,-1,0,0,1,1,0,0,-1,-1,-1,0,-1,1,0,0,0,1,-1,0,0,0,0,0,0,0,-1,-1,0,0,-1,0,0,1,1,0,0,-1,0,1,-1,0,0,0,0,-1,0,0,0,1,0,-1,0,0,0,-1,-1,0,-1,-1,1,0,1,-1,0,-1,0,1,0,0,-1,-1,0,-1,0,1,1,1,0,-1,0,1,0,1,1,1,1,-1,-1,-1,0,-1,1,-1,0,-1,-1,0,1,0,-1,-1,-1,0,0,1,1,0,1,1,1,-1,0,1,0,1,0,-1,-1,1,0,-1,1,-1,1,0,-1,-1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,-1,0,-1,0,-1,-1,0,0,-1,0,1,-1,-1,0,1,0,1,0,0,0,0,1,1,0,0,1,-1,1,-1,-1,1,0,0,1,1,0,1,1,0,1,0,0,-1,1,1,1,-1,0,1,-1,0,-1,0,-1,-1,1,1,0,1,0,0,-1,1,1,-1,1,1,-1,0,1,0,0,-1,0,0,0,-1,0,0,-1,0,1,-1,1,0,0,1,0,0,-1,0,-1,1,1,-1,0,1,1,1,0,1,0,0,1,-1,-1,0,-1,-1,0,0,-1,0,0,1,0,0,1,0,1,1,1,0,1,0,0,0,-1,1,0,-1,1,0,-1,1,1,0,0,0,-1,0,-1,0,-1,1,1,0,-1,1,0,1,1,0,-1,1,1,0,0,0,-1,0,0,-1,0,-1,0,-1,0,1,1,1,0,0,1,-1,0,-1,0,0,1,0,-1,1,-1,0,1,1,1,0,0,-1,0,0,0,0,0,1,0,0,0,1,0,0,0,-1,0,0,0,0,0,0,1,-1,0,-1,1,0,1,1,1,1,-1,1,1,0,0,1,-1,0,1,0,1,0,-1,0,-1,0,1,-1,0,-1,1,0,0,0,1,0,-1,0,0,0,0,-1,0,0,0,1,1,0,0,0,0,0,-1,0,-1,0,-1,1,-1,0,0,1,-1,-1}, {1,0,0,0,0,1,0,0,0,-1,0,0,-1,0,0,0,0,0,0,0,0,0,1,0,-1,0,0,0,-1,0,0,1,0,-1,0,0,-1,0,0,1,-1,1,1,0,0,1,-1,0,-1,0,-1,-1,0,0,0,1,1,1,0,-1,1,0,-1,0,0,0,0,1,-1,1,1,0,0,0,0,1,0,0,-1,0,-1,-1,0,-1,1,-1,0,0,1,0,-1,0,0,0,-1,-1,1,0,-1,-1,1,1,0,-1,0,1,0,1,-1,0,0,-1,-1,0,0,-1,0,0,0,0,-1,0,0,1,0,0,-1,-1,1,0,1,0,0,0,0,0,0,-1,0,0,-1,1,-1,0,-1,0,-1,0,0,0,-1,1,0,0,1,0,0,1,0,1,0,0,1,0,-1,0,0,0,1,0,0,0,0,1,1,-1,0,0,0,0,0,-1,-1,0,-1,0,1,0,1,0,0,1,1,1,0,0,-1,-1,0,-1,-1,0,-1,1,0,0,0,0,0,0,0,-1,0,1,-1,1,0,0,-1,1,0,-1,-1,0,1,0,-1,-1,0,-1,0,0,1,-1,-1,-1,0,-1,1,0,0,1,-1,0,0,0,0,0,0,0,0,-1,0,1,1,-1,-1,-1,1,-1,0,0,0,-1,0,0,0,-1,1,0,0,-1,0,0,0,1,0,0,0,1,0,1,0,-1,0,0,0,0,-1,1,0,0,0,-1,1,0,0,-1,1,-1,0,1,1,1,0,0,0,-1,0,-1,-1,1,1,0,1,0,-1,-1,0,0,1,-1,0,0,-1,1,-1,1,-1,0,0,-1,0,0,1,0,0,0,0,0,0,-1,-1,0,-1,-1,0,0,0,0,1,0,-1,0,0,0,1,1,-1,0,-1,1,1,0,1,0,1,1,0,0,0,0,0,1,1,-1,1,0,1,0,0,1,-1,0,1,0,0,1,0,0,-1,-1,0,0,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,-1,1,1,0,-1,0,0,0,0,0,1,0,0,0,0,0,0,-1,0,0,-1,0,-1,0,0,1,1,0,1,1,1,1,1,1,-1,0,-1,0,0,1,-1,1,0,0,1,1,1,-1,0,0,0,-1,0,0,0,1,0,0,0,0,0,1,0,1,-1,1,-1,-1,-1,1,1,1,0,0,0,0,0,0,0,0,0,-1,-1,0,1,-1,-1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,-1,0,1,0,0,0,0,0,1,0,1,1,-1,0,0,1,-1,0,-1,1,0,0,0,1,0,0,0,1,0,0,-1,-1,1,0,-1,0,0,0,0,1,-1,-1,0,1,0,0,0,0,1,-1,0,1,-1,0,-1,0,1,-1,1,0,0,0,-1,0,1,1,0,0,-1,0,0,0,0,1,0,1,-1,0,0,1,0,1,0,-1,1,-1,-1,1,0,0,1,1,0,-1,0,1,0,0,1,0,0,1,0,-1,0,0,0,0,0,0,1,0,0,-1,-1,-1,-1,0,0,-1,0,1,-1,0,0,-1,0,0,1,0,-1,1,0,0,-1,0,0,0,-1,-1,0,1,1,0,1,1,-1,-1,-1,0,0,0,0,0,1,1,0,0,1,-1,-1,0,1,-1,0,1,0,1,-1,1,0,0,0,0,-1,0,0,0,0,0,-1,0,0,-1,0,-1,0,1,-1,0,1,1,0,0,0,-1,0,-1,0,-1,0,0,0,1,-1,0,1,1,1,-1,1,1,0,0,-1,0,0,0,0,0,-1,-1,0,0,0,0,0,0,0,0,1,0,0,0,-1,1,1,0,0,-1,0,0,1,0,0,0,0,0,-1,-1,-1,0,-1,0,0,0,0,0,0,-1,0,0,0,1,1,0,0,0,0,-1,-1,0,0,1,-1,0,-1,0,0,1,1,0,1,0,0,1,-1,0,1,-1,-1,1,0,1,0,0,-1,-1,1,0,1,0,0,-1,0,1,0,0,0,1,-1,0,-1,1,0,0,-1,-1,-1,1,0,-1,-1,0,1,0,0,1,-1,1,0,0,-1,0,1,-1,0,0,-1,-1,1,0,-1,-1,-1,-1,1,0,-1,0,-1,1,0,0,0,0,0,0,-1,-1,-1,1,0,0,1,1,-1,-1,0,0,-1,1,0,-1,0,1,0,0,0,0,0,1,-1,0,0,0,0,0,0,-1,1,0,0,0,0,1,0,0,0,1,0,-1,0,1,-1,0,1,1,-1,-1,0,0,1,-1,0,0,0,-1,1,-1,0,-1,0,0,-1,0,0,0,0,0,1,-1,1,0,1,-1,1,0}, } ; static const unsigned char precomputed_core_multsntrup953_c[precomputed_core_multsntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_multsntrup953_impl(long long impl) { unsigned char *h = test_core_multsntrup953_h; unsigned char *n = test_core_multsntrup953_n; unsigned char *k = test_core_multsntrup953_k; unsigned char *c = test_core_multsntrup953_c; unsigned char *h2 = test_core_multsntrup953_h2; unsigned char *n2 = test_core_multsntrup953_n2; unsigned char *k2 = test_core_multsntrup953_k2; unsigned char *c2 = test_core_multsntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_multsntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_multsntrup953(impl); printf("core_multsntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_multsntrup953_implementation(impl),ntruprime_dispatch_core_multsntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_multsntrup953; printf("core_multsntrup953 selected implementation %s compiler %s\n",ntruprime_core_multsntrup953_implementation(),ntruprime_core_multsntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_multsntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_multsntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_multsntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_multsntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_multsntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_multsntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_multsntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_multsntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_multsntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_multsntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_multsntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"multsntrup953")) return; storage_core_multsntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_multsntrup953_h = aligned(storage_core_multsntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_multsntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_multsntrup953_n = aligned(storage_core_multsntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_multsntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_multsntrup953_k = aligned(storage_core_multsntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_multsntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_multsntrup953_c = aligned(storage_core_multsntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_multsntrup953_h2 = callocplus(maxalloc); test_core_multsntrup953_h2 = aligned(storage_core_multsntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_multsntrup953_n2 = callocplus(maxalloc); test_core_multsntrup953_n2 = aligned(storage_core_multsntrup953_n2,crypto_core_INPUTBYTES); storage_core_multsntrup953_k2 = callocplus(maxalloc); test_core_multsntrup953_k2 = aligned(storage_core_multsntrup953_k2,crypto_core_KEYBYTES); storage_core_multsntrup953_c2 = callocplus(maxalloc); test_core_multsntrup953_c2 = aligned(storage_core_multsntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_multsntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_multsntrup953();++impl) forked(test_core_multsntrup953_impl,impl); ++test_core_multsntrup953_h; ++test_core_multsntrup953_n; ++test_core_multsntrup953_k; ++test_core_multsntrup953_c; ++test_core_multsntrup953_h2; ++test_core_multsntrup953_n2; ++test_core_multsntrup953_k2; ++test_core_multsntrup953_c2; } free(storage_core_multsntrup953_c2); free(storage_core_multsntrup953_k2); free(storage_core_multsntrup953_n2); free(storage_core_multsntrup953_h2); free(storage_core_multsntrup953_c); free(storage_core_multsntrup953_k); free(storage_core_multsntrup953_n); free(storage_core_multsntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_scale3sntrup1013.c0000644000000000000000000020361414705505543024006 0ustar rootroot/* ----- core/scale3sntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_scale3sntrup1013_checksums[] = { "3abb01f247f92e49c17e453baf12cbe9d31d3e736f1727b128b1d26ce1b05d8e", "62fa112e6584871480074801b4d477e6510956fab67d0e3ce6680fb208e1b1b9", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_scale3sntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_scale3sntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_scale3sntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_scale3sntrup1013_CONSTBYTES static void *storage_core_scale3sntrup1013_h; static unsigned char *test_core_scale3sntrup1013_h; static void *storage_core_scale3sntrup1013_n; static unsigned char *test_core_scale3sntrup1013_n; static void *storage_core_scale3sntrup1013_k; static unsigned char *test_core_scale3sntrup1013_k; static void *storage_core_scale3sntrup1013_c; static unsigned char *test_core_scale3sntrup1013_c; static void *storage_core_scale3sntrup1013_h2; static unsigned char *test_core_scale3sntrup1013_h2; static void *storage_core_scale3sntrup1013_n2; static unsigned char *test_core_scale3sntrup1013_n2; static void *storage_core_scale3sntrup1013_k2; static unsigned char *test_core_scale3sntrup1013_k2; static void *storage_core_scale3sntrup1013_c2; static unsigned char *test_core_scale3sntrup1013_c2; #define precomputed_core_scale3sntrup1013_NUM 4 static const unsigned char precomputed_core_scale3sntrup1013_h[precomputed_core_scale3sntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {25,12,125,238,177,87,55,247,19,249,21,201,62,11,145,225,213,8,151,242,161,46,151,106,115,64,33,254,118,243,223,242,111,102,103,230,86,231,132,47,101,240,222,172,16,10,233,251,208,254,162,201,234,242,41,19,100,53,94,214,53,31,133,8,230,52,23,110,173,219,157,10,28,20,66,222,179,93,208,41,142,59,32,234,104,177,79,60,165,226,244,243,173,244,6,200,2,230,102,93,124,88,132,13,162,245,204,183,89,97,215,218,12,22,91,225,240,111,40,9,70,66,86,95,197,237,114,108,178,254,66,1,241,17,188,81,91,227,88,178,115,199,131,42,0,210,189,85,7,25,57,80,10,187,168,57,184,227,71,183,60,252,41,175,12,12,254,49,251,186,126,71,214,185,224,242,136,178,147,200,182,244,147,190,124,245,239,212,226,250,203,248,144,42,230,243,139,37,220,53,14,223,72,220,182,248,99,199,182,103,240,205,254,80,194,1,98,199,160,102,206,10,104,3,122,236,62,13,163,95,57,71,11,235,221,243,92,55,158,31,245,3,217,67,181,0,163,10,90,254,232,217,171,42,236,7,168,101,116,98,7,13,125,21,29,219,72,226,65,108,89,251,1,28,140,58,120,93,15,39,120,179,253,41,70,181,172,103,11,23,246,37,147,174,100,254,9,255,129,244,118,19,231,70,36,7,221,178,157,112,49,9,126,16,135,99,61,172,42,245,34,216,185,52,43,209,134,247,157,93,129,57,138,88,235,249,173,0,66,193,139,32,184,65,221,213,59,190,105,43,239,6,24,205,165,2,150,29,150,65,209,64,121,101,110,11,15,172,100,233,89,247,230,226,173,3,171,101,52,206,178,68,179,246,24,214,189,241,88,185,28,195,231,8,90,21,76,13,88,246,194,212,5,246,104,236,128,46,186,244,44,10,45,244,112,182,77,232,52,75,116,35,146,181,224,63,171,221,60,74,74,6,14,2,163,192,6,19,43,193,253,103,255,110,106,33,152,219,103,34,183,80,113,21,139,236,56,192,236,79,151,74,146,9,121,214,160,213,31,251,54,79,176,245,236,243,86,65,104,87,54,108,253,170,148,1,194,248,245,251,212,59,182,245,43,250,54,24,198,18,124,2,156,48,217,211,148,0,221,19,199,218,130,177,218,1,174,87,82,255,109,243,16,244,50,56,222,45,178,74,217,21,146,251,198,96,181,87,43,208,140,58,107,72,197,59,136,46,133,37,161,75,88,195,118,223,39,18,197,5,100,92,93,8,227,194,176,84,39,74,13,25,75,1,76,19,50,236,238,205,59,215,179,203,247,7,229,208,35,11,84,251,109,240,108,243,253,229,182,0,80,238,143,207,112,86,40,241,108,179,7,20,212,234,230,171,141,181,242,191,202,35,17,42,111,254,240,81,86,250,32,209,174,11,232,2,33,42,234,195,140,91,22,14,76,245,60,252,1,252,163,56,247,90,175,234,218,30,54,217,78,91,156,87,248,13,44,26,49,97,202,46,62,0,26,209,241,5,30,35,196,88,201,14,244,0,245,40,191,208,136,4,110,199,45,83,74,11,16,32,144,4,84,8,253,241,140,251,90,107,112,17,25,104,195,235,170,66,32,248,94,251,41,53,213,200,211,238,42,3,195,91,132,253,71,255,38,90,131,106,222,67,19,170,122,255,27,213,166,75,82,5,197,49,146,59,126,246,58,244,115,217,25,111,77,251,54,7,173,73,116,7,252,199,230,81,111,45,78,2,142,110,220,184,155,185,204,245,225,103,96,241,238,170,245,46,217,194,235,255,38,6,73,75,7,3,62,43,158,38,190,18,192,95,11,14,139,6,117,52,249,110,6,21,202,104,224,177,172,207,97,182,211,232,30,198,247,23,125,178,100,221,34,215,30,253,163,3,186,243,83,249,90,28,162,225,230,9,154,209,184,78,105,54,189,8,153,102,197,255,114,110,254,179,201,4,10,5,1,198,105,42,125,82,61,53,98,219,144,9,34,71,190,179,186,253,167,244,202,101,19,22,41,190,104,113,241,187,133,252,102,66,218,231,216,216,97,29,73,217,226,208,25,1,171,40,239,53,171,203,125,7,247,192,214,215,225,172,13,180,62,175,201,109,67,244,63,251,69,76,33,206,220,91,227,97,21,47,210,17,186,249,237,27,151,56,39,21,107,99,174,219,33,108,210,80,29,82,137,248,224,54,42,242,13,37,145,184,188,95,172,98,193,46,250,57,63,26,79,19,155,106,154,222,133,2,136,113,136,15,53,230,234,223,68,11,209,52,212,31,105,1,36,83,74,92,116,249,156,255,192,8,226,105,214,51,203,208,239,14,26,233,151,246,36,225,195,30,117,83,133,41,213,51,31,175,244,208,168,3,64,50,183,34,208,5,33,0,106,227,62,253,148,6,225,246,58,248,46,178,158,98,126,236,118,37,177,93,76,247,22,29,173,16,178,8,235,69,164,57,159,102,181,236,166,79,55,2,0,32,58,208,251,35,8,7,151,65,52,240,154,94,248,209,195,203,17,249,98,254,248,176,193,39,200,7,107,21,191,246,117,32,42,48,137,61,197,104,136,213,208,78,64,58,100,241,186,15,183,89,197,244,171,248,112,255,188,218,239,82,49,243,213,86,210,243,234,12,33,212,34,190,47,43,206,15,191,78,150,229,207,42,120,235,80,188,194,191,184,18,19,19,53,34,216,29,132,24,77,13,25,180,38,6,120,85,237,5,195,230,206,27,198,16,138,187,246,195,0,219,15,44,216,74,156,4,161,89,154,198,46,172,188,212,244,215,102,7,29,183,4,107,133,93,86,94,70,27,200,218,247,204,170,234,90,102,123,6,153,21,95,253,216,77,80,236,137,181,138,90,226,97,110,246,147,31,96,226,50,13,62,1,146,7,158,225,251,69,76,1,218,250,232,102,158,70,1,176,129,11,42,12,252,208,174,195,23,36,126,178,161,230,57,68,226,77,76,194,193,43,21,0,208,67,231,178,4,251,154,255,55,2,144,236,12,21,60,96,175,108,65,230,58,234,9,78,111,14,208,67,251,13,236,234,225,50,45,14,158,110,181,245,27,76,236,18,103,249,146,66,115,91,182,232,145,80,1,72,36,203,254,35,245,246,154,12,57,244,28,31,131,209,248,52,41,246,134,4,66,238,20,53,211,95,116,184,18,95,81,100,118,245,149,252,50,48,3,63,22,231,187,2,216,252,190,180,50,174,30,252,37,179,94,7,209,28,69,41,177,27,24,56,175,251,252,74,133,12,28,11,61,31,177,245,208,59,186,21,32,206,198,222,68,8,45,9,12,11,24,255,170,89,58,254,250,226,47,250,244,186,233,90,172,183,237,251,84,226,220,1,185,91,82,225,104,93,136,56,191,83,139,0,205,234,220,186,0,36,154,9,205,205,161,2,203,241,152,53,139,250,229,88,188,203,245,224,57,187,51,1,84,247,145,173,250,210,198,4,45,11,96,250,91,252,220,198,87,192,47,209,30,64,54,236,60,245,46,254,10,39,206,92,195,241,151,240,254,49,20,72,14,223,250,188,46,242,250,201,178,68,60,53,107,230,2,77,103,23,213,63,63,248,218,35,3,246,182,78,17,23,4,8,176,2,207,245,111,68,96,50,124,109,122,57,9,75,136,101,194,33,252,13,139,43,43,108,193,85,184,2,154,66,118,198,43,3,224,233,155,239,2,248,61,231,184,252,237,81,204,194,121,17,185,23,48,253,23,3,124,93,108,36,140,24,154,255,49,8,56,220,53,191,79,244,90,45,192,9,239,235,41,63,166,5,129,62,169,194,160,244,120,196,115,78,91,252,104,15,105,13,110,1,183,252,109,224,226,50,10,23,254,196,245,109,121,255,110,52,96,182,45,6,217,228,198,208,82,104,4,253,128,18,149,251,135,1,177,212,72,249,235,103,217,98,207,252,181,209,96,20,150,101,242,174,16,8,205,38,67,14,29,247,110,236,214,252,86,191,13,13,233,55,63,104,188,17,8,17,128,218,179,61,52,69,7,98,164,95,90,242,75,22,216,82,194,45,23,18,27,180,139,71,238,80,92,56,187,77,138,87,102,8,129,208,122,33,125,59,215,26,98,92,106,46,235,48,169,233,201,185,25,214,37,175,117,27,223,249,115,2,94,187,53,96,198,255,95,246,198,237,174,61,53,107,136,70,240,170,113,49,242,6,189,93,34,93,46,248,249,218,5,251,241,243,24,245,30,205,192,60,186,105,157,54,183,104,255,23,224,67,177,75,141,203,80,233,105,247,121,223,26,246,188,18,189,111,176,8,31,49,254,249,147,44,60,251,180,4,53,202,39,215,154,50,231,9,11,245,198,199,108,45,169,245,80,10,132,253,120,6,146,244,253,206,93,51,74,7,199,2,159,44,236,107,75,248,164,9,142,37,220,20,2,92,173,189,57,11,95,108,121,13,247,238,215,255,66,11,15,65,152,31,7,69,230,20,166,64,66,193,77,5,47,16,109,80,41,170,138,111,188,10,76,246,211,241,168,34,157,63,85,226,106,24,156,9}, {201,235,175,50,30,3,74,16,10,4,30,255,68,41,46,78,210,11,230,246,92,6,5,9,105,186,248,7,245,247,211,213,114,8,124,1,234,3,146,92,77,22,23,1,227,7,93,186,252,23,121,185,185,214,236,244,154,8,192,254,229,51,59,252,178,61,241,4,201,235,193,253,146,245,248,8,139,26,177,83,217,22,69,174,113,62,182,79,249,255,180,254,124,105,74,236,121,185,92,55,171,110,167,2,56,242,46,4,132,252,25,88,186,255,125,171,130,106,98,173,113,13,67,239,166,195,124,70,131,189,54,35,126,69,76,207,29,80,149,237,140,0,159,8,0,211,65,8,248,71,0,81,150,92,235,246,141,253,5,2,48,94,51,9,142,195,246,211,103,253,212,8,182,245,57,198,238,23,167,33,214,12,17,3,124,113,182,88,137,250,140,236,234,9,197,27,238,191,246,23,199,44,37,246,108,203,64,12,114,49,204,37,54,13,161,11,221,74,98,108,244,6,117,56,9,81,41,214,86,254,16,248,110,242,225,31,98,4,190,176,231,252,22,110,117,78,8,194,103,250,98,64,194,109,54,253,80,4,64,46,99,72,89,1,112,255,212,91,72,50,59,192,235,242,238,87,108,6,149,244,124,111,198,43,168,217,71,111,138,35,252,96,239,202,89,210,235,202,107,190,32,95,130,239,245,97,166,245,252,30,156,59,160,100,180,55,249,16,46,8,97,184,44,4,231,54,177,26,58,61,82,252,211,28,127,249,16,9,218,253,118,95,71,21,96,77,208,7,89,246,172,231,201,67,72,37,180,180,33,236,242,199,133,9,139,11,136,44,42,193,21,0,113,70,140,44,98,110,76,255,224,177,83,41,96,49,103,27,159,8,147,6,150,50,79,11,207,222,243,46,238,5,202,243,0,225,142,76,55,185,69,217,36,12,14,93,31,251,244,5,218,33,108,66,220,13,12,248,180,43,5,203,62,30,20,240,12,78,37,100,19,242,106,62,42,175,94,229,122,54,16,187,224,95,8,227,174,26,123,0,165,15,211,113,187,1,146,39,91,78,247,96,219,6,107,217,90,245,80,95,234,171,70,60,110,188,80,43,197,65,247,92,135,252,70,49,187,192,232,206,84,230,68,192,206,254,177,180,65,226,146,196,206,60,29,248,98,12,72,26,190,26,237,253,171,247,197,65,232,8,241,95,66,181,39,6,110,245,236,98,243,98,165,79,110,188,112,37,156,0,228,95,79,221,217,1,255,0,14,249,250,5,31,67,155,217,236,36,219,25,81,10,229,245,79,85,166,10,250,194,198,223,86,179,226,181,119,32,229,176,233,251,46,60,93,87,46,194,23,253,22,253,199,88,232,253,145,4,82,31,206,253,192,190,218,223,246,250,95,19,194,183,44,2,117,41,191,246,23,7,4,243,156,1,41,104,236,195,9,244,38,215,239,32,202,255,56,34,204,218,2,9,64,253,66,12,100,12,225,252,203,108,18,107,26,212,228,242,42,186,31,38,71,40,68,26,173,200,66,73,54,92,1,3,14,9,197,52,105,24,13,112,97,67,179,76,11,206,200,95,196,186,123,223,201,248,1,247,237,172,167,30,57,9,130,182,193,1,41,5,74,88,213,45,81,76,208,218,235,244,34,85,115,51,153,246,23,207,217,104,168,45,185,30,125,30,238,26,128,224,128,25,151,245,112,113,208,226,130,100,105,247,137,253,179,15,81,91,212,176,40,242,30,253,28,22,251,12,144,17,112,62,100,82,105,8,23,48,77,26,238,31,142,215,71,172,238,243,194,253,238,60,31,36,149,192,235,243,133,81,88,53,207,31,174,10,43,13,138,245,122,2,147,32,236,175,158,244,189,84,104,100,73,93,29,29,142,248,219,234,52,4,243,203,50,3,146,11,144,9,80,252,51,247,195,85,144,177,207,181,62,33,187,34,255,11,39,246,212,228,49,83,54,106,146,69,53,251,158,255,159,69,106,37,24,34,40,68,194,31,39,58,104,231,99,190,234,247,166,85,172,81,168,89,160,251,42,112,115,252,198,215,11,11,188,80,192,252,148,205,194,255,52,249,231,252,146,8,172,254,164,244,67,215,50,6,1,29,243,209,15,213,183,50,70,203,235,232,120,231,206,6,151,88,94,8,42,38,107,189,126,67,189,211,232,91,131,191,246,86,72,231,72,172,1,10,63,237,121,200,150,218,49,97,161,111,218,87,197,208,171,71,29,187,12,236,172,176,229,2,47,199,142,233,166,27,237,1,194,189,36,80,163,9,115,4,52,217,1,50,212,188,5,75,44,39,37,4,86,26,164,81,230,83,25,92,11,249,25,246,146,33,137,244,239,58,230,226,115,245,46,246,185,17,219,207,102,43,143,183,246,105,12,207,39,226,73,74,210,87,143,10,249,4,61,13,225,3,212,48,249,201,134,12,222,79,156,9,148,68,1,6,62,16,230,10,50,245,110,75,9,11,148,82,104,13,10,213,245,91,199,82,147,18,96,10,217,231,177,14,171,245,170,110,133,175,147,249,188,173,181,66,155,111,92,5,113,193,116,183,78,85,81,84,43,98,106,213,211,2,119,1,162,43,129,235,160,228,180,255,122,6,41,44,2,173,109,171,73,185,103,66,35,3,23,83,206,85,169,250,174,13,26,13,37,196,78,185,39,22,68,1,93,36,90,248,132,11,94,76,29,48,242,216,142,205,109,241,11,213,102,41,74,251,205,203,121,105,30,246,83,74,16,44,150,12,243,54,156,228,150,247,80,98,139,173,78,47,4,24,250,247,20,230,69,244,253,71,162,2,16,41,254,228,112,250,90,64,122,67,197,224,61,22,61,231,19,8,181,84,78,60,189,60,203,251,246,111,55,35,185,199,155,201,42,245,112,243,244,47,182,221,22,198,202,46,110,252,130,58,181,242,46,34,110,72,166,188,143,28,145,8,51,215,37,44,93,51,93,12,130,3,60,53,95,179,170,40,3,201,48,64,188,234,77,248,248,8,37,25,44,90,25,182,100,185,62,244,48,10,74,11,160,224,112,249,68,171,196,70,62,0,48,50,179,209,84,58,106,210,241,233,239,229,27,236,233,181,181,98,100,2,216,246,56,241,154,6,30,23,182,20,69,55,53,248,227,33,176,235,43,181,55,226,148,197,134,240,84,103,178,238,81,195,142,190,207,186,153,235,27,186,50,223,47,78,101,56,206,5,137,24,240,63,84,77,231,177,136,253,9,248,1,254,79,41,102,196,100,251,213,12,29,208,14,195,238,35,74,7,37,19,128,246,22,174,54,3,213,67,194,82,92,39,174,11,74,12,120,51,163,107,220,43,78,207,100,236,141,3,152,235,154,218,77,4,83,38,143,105,242,188,239,112,138,83,5,80,33,97,168,248,8,247,166,172,142,2,74,193,0,196,91,29,112,92,238,48,142,44,180,7,62,81,246,8,37,7,241,243,86,252,135,33,186,27,16,6,122,93,14,196,170,225,71,103,141,4,193,67,5,244,223,247,96,250,17,6,179,189,202,13,171,85,194,6,111,8,212,33,139,208,192,21,253,1,134,17,69,231,35,70,43,241,120,91,208,60,206,3,245,75,231,231,66,227,33,113,234,173,191,212,245,49,157,11,135,249,112,73,141,71,14,10,228,85,16,232,245,101,96,38,141,12,55,10,37,101,178,220,208,91,230,92,227,214,240,252,221,2,209,195,247,244,116,113,175,11,0,79,45,172,68,40,107,95,99,17,95,36,228,79,242,112,139,242,157,253,3,32,131,170,31,173,191,4,160,74,126,253,99,180,126,248,220,68,227,246,218,3,142,254,95,240,172,1,66,178,120,212,182,177,145,245,48,247,206,109,64,30,152,221,17,6,70,7,31,10,122,248,130,108,33,219,64,47,73,247,44,12,78,179,213,198,58,58,95,32,150,20,59,101,201,243,87,52,221,53,252,66,88,8,159,92,30,85,109,250,62,27,89,3,162,103,22,73,71,31,136,244,132,48,27,17,195,42,203,209,132,13,140,244,1,112,152,9,91,199,83,113,207,72,114,43,49,71,21,195,159,20,110,255,97,221,41,177,36,11,130,57,141,64,152,9,191,83,167,197,215,26,13,6,123,251,243,48,167,43,1,171,222,207,94,191,91,220,159,73,171,78,180,193,107,99,152,249,142,254,101,201,155,172,44,229,3,251,4,3,169,10,66,3,95,49,64,251,196,108,209,186,106,74,244,192,226,199,143,91,226,207,231,211,61,10,126,228,130,199,42,29,82,217,1,242,27,251,123,21,69,95,159,255,121,13,254,184,239,65,122,228,120,43,48,81,242,74,202,213,45,236,13,187,219,22,248,9,252,38,123,91,161,234,76,247,138,39,254,2,72,17,145,80,75,253,244,174,96,245,121,173,116,39,240,113,181,212,220,1,134,74,214,95,192,193,230,208,222,64,45,246,146,1,156,194,176,246,180,201,94,43,227,0,77,0,132,22,30,47,27,3,85,242,53,255,116,92,94,7,212,0,254,8,34,7,151,25,59,93,192,246,240,83,57,205,58,255}, {71,37,206,65,0,98,189,87,148,5,149,235,13,254,248,41,22,88,69,197,172,41,53,201,141,99,46,48,217,21,188,24,211,244,23,243,118,213,226,225,53,253,137,40,228,16,97,252,204,64,35,206,50,35,199,24,146,229,191,1,26,242,233,171,123,7,181,32,157,194,226,248,132,252,118,211,254,222,127,78,181,199,247,66,200,68,34,77,107,228,198,214,181,82,158,108,235,204,104,10,123,204,112,242,41,248,11,5,193,23,166,51,226,85,201,45,219,6,73,10,164,55,51,1,56,61,168,35,193,219,206,209,66,4,26,20,102,10,162,188,78,95,206,10,241,9,101,49,145,242,153,51,26,100,170,38,80,228,124,83,188,202,93,75,87,172,44,245,59,237,40,73,221,103,51,6,44,249,143,111,7,239,163,214,245,227,174,74,205,75,162,13,86,25,186,181,250,251,218,243,96,245,116,76,136,230,54,14,240,110,205,30,190,41,64,12,177,35,203,224,9,200,68,184,133,21,153,13,236,175,83,32,95,211,128,252,112,97,188,217,240,177,98,53,153,12,69,244,135,187,112,5,176,208,13,75,121,52,198,103,95,218,128,252,220,3,24,96,92,206,85,195,119,13,198,177,126,12,109,87,61,2,95,112,255,69,78,4,206,239,241,174,8,54,184,191,224,61,164,237,104,107,93,229,86,11,12,243,116,72,251,184,25,184,149,245,150,11,216,246,223,94,3,109,107,251,143,1,95,17,92,204,21,171,185,246,10,222,186,230,167,52,210,8,169,210,221,197,226,24,164,241,58,246,138,46,129,175,39,1,125,45,228,54,0,227,75,1,85,63,93,102,253,32,204,3,177,35,209,179,199,0,198,192,56,176,85,95,48,84,26,58,57,2,103,12,79,228,149,191,204,254,34,33,135,2,196,41,36,246,173,86,105,242,128,252,47,214,186,3,64,54,88,22,46,13,209,29,119,177,244,240,212,221,195,231,175,231,80,111,101,6,187,246,142,27,25,246,136,253,164,36,133,62,230,0,217,23,148,219,56,177,27,1,156,246,27,209,118,214,68,33,188,39,105,255,107,12,86,40,64,244,33,180,161,81,189,215,80,251,152,214,190,255,92,220,70,208,52,236,127,230,180,254,139,239,26,245,131,242,15,11,189,247,43,83,215,77,28,229,182,9,176,220,92,253,144,226,39,70,58,194,158,254,134,239,200,241,27,1,46,1,219,33,227,255,115,6,37,183,68,176,98,102,144,239,241,248,251,30,42,7,2,19,67,9,158,27,31,29,24,39,52,34,241,224,135,22,171,181,50,15,40,171,210,239,55,171,241,212,158,13,132,11,65,180,125,2,165,2,176,11,153,69,69,103,246,176,56,1,136,192,180,185,77,90,17,12,169,106,139,17,21,88,9,201,210,244,102,1,252,24,150,253,123,247,0,238,55,7,4,18,65,240,175,247,109,52,24,186,240,44,62,204,122,71,13,36,218,248,216,37,61,85,21,26,167,0,229,75,201,2,66,12,226,39,197,234,226,54,113,69,78,193,138,101,149,233,55,28,100,4,32,51,64,251,233,104,96,222,162,2,69,252,70,252,251,86,195,213,94,187,48,7,214,12,156,48,77,232,21,216,67,246,96,86,161,11,122,29,143,194,229,82,130,36,162,7,249,65,195,2,59,225,179,226,42,22,128,113,8,93,151,109,152,41,247,49,216,233,244,45,42,90,206,58,22,13,53,68,6,103,245,11,125,9,94,42,4,91,151,4,230,184,29,238,117,251,172,82,34,66,39,180,8,52,215,254,44,67,100,67,129,172,202,30,2,5,64,246,136,74,185,253,241,10,50,104,39,252,82,8,166,217,153,11,132,8,52,109,36,80,154,247,166,53,192,175,32,72,85,245,159,43,34,251,195,240,7,251,168,175,176,223,63,1,247,248,190,66,225,173,138,98,2,252,217,70,213,255,204,171,45,243,95,10,5,254,170,171,30,193,196,220,216,74,200,219,247,66,214,231,113,106,217,13,112,13,63,222,7,58,207,203,114,253,48,222,27,63,0,15,71,70,12,209,79,60,207,3,190,196,151,253,11,215,193,248,72,239,87,50,195,246,205,69,130,255,176,91,183,177,35,85,56,5,136,238,206,247,136,4,142,247,196,48,199,221,145,106,248,234,55,1,114,64,191,3,70,44,255,101,92,66,175,221,94,245,252,196,187,7,170,37,86,111,123,234,170,10,188,222,107,108,58,243,22,6,119,52,163,4,247,51,197,79,109,251,164,190,223,251,1,0,165,39,57,45,188,232,236,191,217,220,241,27,21,215,213,8,141,43,103,19,46,202,9,30,50,1,241,239,92,23,155,12,28,247,156,2,43,183,230,232,142,14,194,236,78,236,186,2,9,228,50,174,200,53,236,180,103,29,118,36,168,37,154,37,15,248,62,235,226,238,128,245,59,89,120,184,185,4,214,67,134,184,218,5,167,68,73,197,94,174,173,250,48,49,181,189,13,216,79,187,71,214,3,253,175,13,149,111,68,186,191,58,17,1,36,187,241,244,198,5,150,84,43,95,191,79,125,193,206,72,139,13,96,195,154,198,97,253,131,107,56,56,159,191,249,51,15,44,163,34,219,3,229,7,181,15,2,209,202,86,86,252,72,244,110,29,20,227,214,54,177,238,227,209,108,49,236,185,19,251,118,0,124,66,94,32,226,25,230,231,235,188,185,85,184,53,93,10,231,32,253,102,101,12,60,3,29,230,238,42,218,26,242,176,209,98,62,218,158,184,203,9,130,221,84,78,37,227,73,183,209,184,25,16,150,11,154,244,5,41,172,181,147,93,94,238,192,179,98,252,96,5,178,61,46,50,167,209,164,232,141,72,175,12,63,245,53,95,144,215,190,214,28,179,19,52,212,34,30,13,79,0,144,88,228,245,167,199,56,5,155,205,134,29,41,101,30,231,143,41,80,225,209,19,202,107,43,5,94,34,133,13,201,17,45,252,174,0,5,242,92,8,96,255,40,221,111,5,120,11,130,246,176,73,21,209,107,211,130,175,25,2,112,3,139,11,61,183,11,227,13,59,145,234,211,38,38,250,76,9,214,223,68,9,119,223,67,198,114,206,67,195,230,192,141,111,69,180,180,194,153,176,130,220,96,192,147,38,198,85,162,235,31,61,193,202,174,228,104,77,41,244,9,174,243,10,236,248,250,66,250,253,97,247,188,48,221,241,39,248,53,255,121,243,155,213,214,248,119,87,65,31,96,98,238,53,196,243,58,0,124,68,213,224,12,46,233,101,151,244,176,24,223,249,244,44,86,67,153,12,42,113,231,37,112,247,237,67,20,10,155,246,8,175,35,93,197,16,216,0,164,199,115,54,224,59,88,246,186,14,194,196,163,250,205,57,113,22,231,12,45,79,96,182,28,180,154,103,124,77,28,48,51,2,122,237,152,72,226,197,30,57,209,184,59,252,1,34,178,186,75,85,112,197,217,242,125,12,255,34,228,10,214,202,149,113,67,100,70,3,68,6,210,198,42,11,134,9,227,243,169,0,34,254,240,6,153,188,133,253,176,58,66,92,131,99,226,88,105,244,113,214,233,236,113,244,133,99,253,48,106,89,150,217,145,0,90,5,122,199,2,33,226,85,149,27,204,82,214,224,149,244,196,82,22,209,170,81,165,195,167,61,25,237,11,112,49,101,225,2,106,248,136,171,26,29,161,224,24,42,245,99,142,63,123,181,4,236,248,105,171,251,181,0,57,204,6,7,135,251,25,5,112,4,109,252,185,29,178,72,172,197,119,176,62,243,66,108,55,202,118,249,220,60,66,6,204,109,253,60,152,54,179,29,65,101,160,9,183,33,205,231,171,243,107,200,36,2,105,5,89,170,240,3,72,1,202,222,115,47,255,85,66,175,119,247,27,84,242,9,225,1,195,37,132,14,107,112,208,195,45,254,173,218,12,247,145,55,68,8,193,103,250,248,46,210,63,253,55,113,89,29,55,105,12,2,236,241,203,9,111,175,122,186,60,35,252,242,74,110,51,191,87,56,141,107,37,37,22,23,151,209,239,254,121,231,242,255,78,69,187,0,199,7,154,108,218,229,94,242,210,100,146,245,87,10,84,32,167,197,192,0,14,13,220,90,247,52,103,78,245,24,124,247,52,24,130,71,92,2,195,243,87,216,66,86,131,75,45,242,100,24,52,204,2,235,241,11,88,249,177,254,207,5,78,100,79,245,252,81,42,72,233,2,140,242,21,200,68,109,218,249,229,68,61,189,253,108,1,233,192,109,49,61,15,8,4,56,175,186,146,72,181,37,202,208,171,0,82,107,233,5,167,213,99,68,101,86,37,22,235,85,228,244,28,17,182,202,11,40,221,188,233,63,106,209,86,67,246,101,62,4,132,24,91,223,155,19,52,70,21,64,147,26,53,55,100,217,58,107,92,10,132,10,84,47,36,255,235,54,152,243,86,42,254,80,191,110,252,75,241,223,146,252,241,237,180,13,172,100,20,174,50,209,254,79,168,221,196,192,189,196,85,50,194,10,130,82,53,102,113,82}, {212,251,69,25,59,86,159,244,3,179,53,63,221,25,138,214,89,3,147,9,207,227,118,250,94,4,94,52,154,1,10,9,124,9,249,46,52,99,127,225,79,249,253,236,52,244,119,11,76,250,127,36,172,254,85,9,122,224,27,199,50,239,153,243,16,246,14,171,229,15,76,89,207,12,173,192,148,240,35,4,185,249,142,206,232,42,218,16,22,225,6,202,202,198,46,192,241,41,3,172,145,29,143,68,253,17,10,19,31,27,144,41,226,173,67,246,127,249,170,85,244,7,129,86,114,197,87,38,93,89,162,203,180,197,201,205,150,182,252,15,203,11,158,246,202,15,52,61,249,55,135,194,131,246,35,61,207,106,29,72,220,66,138,91,191,110,60,25,31,202,175,242,164,50,2,0,144,73,93,33,92,6,226,10,231,95,228,55,24,89,106,191,140,182,220,13,135,78,212,8,95,103,234,52,152,173,20,217,83,198,219,227,37,229,91,79,159,10,41,2,234,17,58,181,106,247,6,96,238,97,210,5,53,69,175,7,201,74,142,222,26,189,2,193,215,208,110,23,101,75,151,87,17,30,211,12,159,201,118,254,155,93,123,8,198,255,165,91,127,243,131,7,185,247,130,225,141,240,170,219,197,190,192,249,111,218,157,81,40,38,168,47,21,56,116,175,122,245,162,252,207,202,236,24,226,22,87,249,119,9,220,220,70,208,104,65,151,87,187,10,182,47,9,254,121,37,217,41,86,225,206,246,89,254,93,239,179,254,176,252,131,17,142,93,62,251,150,97,91,11,43,69,180,219,117,210,59,203,97,242,77,48,196,43,198,11,79,209,110,0,52,242,241,24,104,252,100,194,121,244,157,49,153,70,223,33,215,65,242,252,61,226,104,56,154,24,254,12,137,216,214,226,55,0,161,101,153,51,151,8,200,6,180,42,0,30,99,26,30,14,243,63,244,184,244,246,209,67,66,86,148,237,138,242,47,200,161,227,50,73,106,239,250,69,70,223,226,14,255,218,157,205,94,91,55,31,176,3,220,43,62,222,90,252,239,191,110,36,52,211,73,203,211,47,100,170,227,57,179,195,155,192,132,5,124,201,105,44,55,13,44,244,191,244,110,190,14,238,11,10,141,81,104,78,199,174,186,243,111,0,234,43,135,215,244,184,100,112,205,59,227,217,168,252,225,36,91,85,181,40,21,78,228,179,154,252,130,7,75,4,103,239,30,233,179,40,219,203,1,10,196,66,248,233,189,66,56,113,195,230,12,245,242,194,240,80,28,188,248,77,127,34,178,198,75,32,212,233,114,232,187,61,152,255,31,171,173,183,254,91,141,104,242,1,214,84,82,55,100,245,191,228,19,35,86,106,7,96,107,50,224,8,237,53,98,45,53,250,198,7,94,10,90,85,118,171,117,183,79,80,81,11,171,11,130,12,71,65,132,109,117,54,205,236,71,57,70,174,67,251,222,244,202,11,27,180,248,220,255,242,78,17,152,205,230,33,154,84,235,91,56,6,242,0,254,74,252,42,195,91,232,170,87,182,146,44,36,46,104,254,19,247,250,2,69,10,239,243,103,113,71,234,6,104,80,72,145,27,173,205,5,177,52,2,175,246,195,33,158,13,29,229,26,3,216,241,192,187,57,251,152,202,18,49,81,246,126,226,73,247,74,212,122,255,33,113,143,97,156,62,69,1,253,45,226,45,157,28,21,13,213,8,233,255,13,252,131,35,89,9,131,196,210,107,158,184,227,172,109,106,190,1,44,224,25,102,80,22,197,70,147,109,104,58,148,215,72,40,98,249,222,197,225,6,17,242,133,245,38,9,214,246,188,243,243,252,227,239,54,207,60,234,13,42,52,71,164,203,173,105,250,80,27,238,84,237,183,221,31,15,139,106,38,243,195,246,187,44,234,12,197,236,28,242,201,221,212,177,176,26,251,209,50,20,10,216,132,2,82,246,53,66,218,222,179,36,143,235,180,229,195,2,100,5,196,13,44,252,0,6,161,3,48,8,143,7,153,27,10,252,123,180,44,186,112,211,17,211,57,243,86,219,56,7,93,3,155,62,190,243,41,253,211,250,139,180,180,245,235,10,229,12,84,243,239,28,212,192,220,6,18,232,0,14,116,28,58,44,250,252,56,243,119,9,220,69,181,251,65,12,178,241,104,61,103,212,240,181,83,83,130,1,244,211,153,90,195,6,30,55,202,238,128,50,122,246,15,71,81,29,91,188,131,72,198,68,2,254,31,45,165,242,122,171,155,6,80,233,163,15,95,6,231,6,1,247,202,252,174,50,90,213,130,222,144,2,28,31,159,36,198,104,101,175,75,246,131,189,12,9,239,12,232,15,199,7,155,200,251,255,207,67,166,249,149,7,245,13,28,85,224,89,170,8,191,0,95,22,195,240,172,179,206,39,145,229,38,235,206,56,105,10,97,247,102,105,234,242,190,33,144,8,179,19,224,51,163,227,214,254,65,57,107,107,59,5,26,247,207,105,111,237,106,93,161,252,210,253,17,171,4,28,53,2,106,0,73,6,197,171,63,49,2,244,158,60,11,214,136,0,92,21,6,177,215,49,237,106,92,227,165,23,44,3,180,29,221,220,120,72,237,56,243,7,46,246,108,189,186,10,126,250,204,47,165,28,48,5,219,105,213,11,43,244,36,7,222,32,232,180,96,80,33,95,41,216,12,190,95,27,99,182,245,190,243,104,245,11,212,177,172,8,29,253,134,96,255,90,213,238,251,201,161,194,247,78,220,44,29,242,101,35,54,226,255,7,100,106,153,86,76,56,114,19,84,175,68,247,255,7,3,248,70,44,126,4,98,205,120,191,105,10,18,196,124,251,203,183,237,102,8,11,247,25,40,218,164,193,37,180,239,184,156,0,178,250,25,11,197,246,120,65,184,223,237,11,187,177,107,0,146,206,219,247,85,106,37,245,121,189,184,254,160,4,16,39,67,5,216,226,202,194,76,248,109,184,145,83,73,245,214,58,96,210,40,255,38,73,8,5,101,248,205,245,175,7,79,16,134,45,134,255,108,187,92,34,152,48,182,99,63,181,28,4,2,4,0,189,64,55,8,197,189,250,154,82,126,68,35,246,148,23,26,253,195,61,70,67,29,86,201,63,21,228,222,205,158,5,120,91,120,230,31,1,167,244,50,218,46,186,6,218,253,46,139,4,129,37,146,255,245,84,3,28,224,4,81,255,111,78,198,244,66,185,44,182,188,243,208,220,98,201,204,107,7,108,48,113,235,62,106,219,233,69,50,176,84,109,162,218,98,230,73,216,15,78,153,187,143,83,233,183,96,0,90,2,138,73,179,62,1,213,52,253,9,29,57,13,109,11,22,3,176,24,199,26,96,72,218,46,179,197,45,226,13,96,50,5,248,245,192,2,223,184,128,252,189,71,34,9,196,18,86,226,216,252,253,70,129,207,224,208,238,234,158,183,57,252,28,241,163,193,4,59,180,245,145,194,43,192,163,254,119,207,140,231,239,244,72,229,181,252,41,3,154,255,61,47,192,93,206,198,15,218,67,216,140,245,121,220,201,1,118,255,105,250,66,245,130,227,167,4,173,11,72,45,127,59,88,230,181,203,102,107,177,2,45,5,95,76,13,218,192,67,62,191,230,230,246,8,82,106,27,100,15,212,183,239,76,27,39,8,245,195,58,84,157,172,44,179,17,237,94,109,38,97,141,3,194,250,113,177,92,48,229,255,144,0,105,25,79,102,206,184,10,113,50,43,96,1,212,24,51,239,155,2,7,220,150,246,214,69,18,189,163,174,121,82,94,244,128,49,129,198,98,12,199,203,34,21,58,225,43,96,151,106,97,10,5,33,174,3,44,45,145,211,2,247,248,253,237,48,57,253,173,2,140,100,95,38,105,46,14,254,212,243,84,45,203,179,228,89,36,231,130,213,207,6,60,5,87,218,113,212,141,255,250,220,77,71,244,110,206,11,125,227,116,2,124,200,247,242,222,81,91,233,27,0,14,68,120,4,62,206,128,218,34,8,4,255,222,109,0,8,176,226,144,194,167,4,87,199,52,56,81,173,93,89,18,199,118,223,84,95,252,1,159,113,43,201,119,22,205,243,155,19,129,252,226,110,90,75,208,13,198,177,116,104,211,189,8,252,44,226,151,241,126,253,1,4,255,181,141,2,4,247,118,225,171,251,176,42,209,8,241,202,204,52,51,101,213,254,58,7,126,215,195,22,114,175,188,233,16,103,57,4,185,219,6,10,205,203,62,242,158,198,37,209,92,34,210,205,152,210,238,91,222,245,124,22,101,180,153,185,34,247,21,252,11,46,199,102,153,190,23,16,205,174,143,219,101,214,95,251,237,239,168,233,117,252,163,0,193,11,239,112,85,176,140,182,27,83,152,91,85,112,46,51,229,239,2,214,233,91,171,12,177,244,30,1,112,112,182,5,112,77,71,248,62,242,195,253,231,2,53,211,120,245,202,252,157,246,249,48,194,196,155,223,119,228,150,189,11,214,94,5,241,171,202,7,251,29,189,62,211,245,118,98,52,56,194,39,208,3,9,1}, } ; static const unsigned char precomputed_core_scale3sntrup1013_n[precomputed_core_scale3sntrup1013_NUM][crypto_core_INPUTBYTES] = { {182,98,124,155,62,209,189,167,177,253,4,143,109,98,216,65,74,12,221,80,142,195,224,44,212,30,8,246,207,71,245,80,40,214,202,152,111,238,47,25,116,241,71,48,176,88,166,178,243,8,51,143,78,166,102,186,207,197,199,232,106,190,218,182,165,197,96,131,140,234,220,164,183,186,19,150,148,40,243,193,221,199,93,239,117,220,200,114,52,66,255,175,146,5,255,227,83,67,37,211,215,38,47,99,51,243,65,137,118,212,154,63,7,102,198,65,83,217,184,173,197,116,117,126,148,240,41,216,233,8,19,247,254,185,151,36,198,151,197,220,206,227,132,23,253,145,66,123,176,17,22,36,171,223,59,199,229,151,106,222,17,160,96,134,1,80,173,196,166,223,45,33,239,137,160,251,213,220,46,228,149,5,46,54,212,81,162,61,243,244,153,253,51,194,159,242,220,21,247,197,87,150,21,64,146,253,30,57,149,214,77,59,173,121,153,180,115,142,227,128,157,183,123,10,123,69,106,4,228,211,22,33,86,154,156,242,119,198,141,190,167,86,246,31,228,246,228,12,27,246,245,233,60,194,161,78,59,43,127,127,176,13,130,16,92,234,21,66,110,45,112,74,174,18,135,199,43,211,8,193,37,221,2,194,191,221,231,43,92,102,85,107,46,134,201,160,6,9,43,252,213,15,80,118,9,249,156,135,226,46,190,97,45,100,48,213,188,218,11,243,179,62,150,197,182,145,133,6,226,125,46,199,49,124,249,253,146,9,19,55,220,190,235,201,156,232,102,139,38,109,162,163,5,59,55,86,53,19,53,31,158,201,214,213,119,250,2,48,201,153,118,6,159,151,140,162,60,43,185,144,233,202,148,91,5,62,60,71,197,137,177,55,74,164,33,187,199,13,200,252,147,61,87,167,117,69,131,195,59,72,103,183,15,252,205,136,108,153,191,119,127,106,131,136,163,30,54,235,23,34,113,11,90,171,222,54,5,101,182,225,2,44,88,46,209,105,133,234,208,20,64,36,126,16,214,154,101,225,167,206,224,204,134,88,208,232,221,61,184,7,21,121,141,72,164,166,117,116,123,38,21,216,252,132,217,161,147,73,164,74,159,114,146,252,182,244,21,188,69,186,215,180,55,196,240,231,220,170,162,186,234,148,211,49,155,76,61,209,198,255,210,175,179,90,105,113,77,195,233,204,246,101,131,74,69,212,234,123,182,230,135,199,124,33,154,114,219,24,218,21,142,34,197,55,207,235,16,186,154,96,207,210,34,12,158,55,147,37,16,34,178,17,25,171,199,15,99,69,247,229,102,62,142,58,250,163,244,230,100,98,25,245,204,70,36,81,252,237,146,85,109,155,130,230,211,208,181,241,33,221,176,186,153,239,159,218,44,51,163,54,241,191,94,23,40,94,83,207,111,159,93,60,55,165,248,0,14,194,75,141,135,210,181,184,196,81,20,84,174,178,228,198,0,125,226,68,161,19,15,63,29,125,55,209,168,4,103,103,190,41,241,24,109,9,91,60,248,77,13,21,239,38,70,14,255,94,170,193,146,145,213,162,119,142,18,37,110,174,179,190,48,172,31,12,2,90,132,254,33,45,211,185,182,214,62,69,145,31,96,253,202,83,102,112,68,228,238,240,14,1,68,125,47,179,106,246,101,39,132,215,77,117,174,132,126,170,6,147,229,119,195,77,154,196,137,114,42,82,190,166,206,233,182,131,108,74,15,249,146,204,121,78,81,57,165,36,40,195,29,10,221,216,241,222,134,52,65,243,78,129,29,71,247,132,170,195,240,140,252,179,95,163,198,119,170,247,109,194,141,107,237,100,67,41,92,99,214,248,42,112,86,46,5,187,241,214,157,220,225,59,200,136,238,238,7,142,0,188,124,135,201,149,179,147,7,75,222,247,65,5,116,92,33,104,51,151,159,164,219,145,235,120,38,198,66,12,54,214,154,94,41,46,167,50,70,96,171,77,168,56,38,194,130,207,194,197,115,234,48,3,185,203,231,135,62,255,138,157,241,213,180,16,96,139,123,132,248,223,212,74,37,202,155,238,69,148,206,189,192,233,243,230,176,161,60,108,168,112,54,229,124,78,250,54,239,147,72,48,172,50,103,134,70,131,190,242,21,169,26,120,8,230,247,39,164,212,10,25,73,15,65,7,82,189,224,198,16,187,124,42,55,149,14,216,73,36,98,207,134,177,163,27,11,242,178,21,216,222,151,126,231,212,238,24,1,114,24,18,200,15,140,215,219,64,212,76,219,217,219,99,100,67,75,65,108,174,158,197,159,190,35,171,15,37,113,125,127,92,49,161,67,12,249,129,245,111,150,145,168,99,91,68,218,72,9,151,68,190,42,37,218,193,74,197,178,219,249,230,59,181,195,196,64,106,243,181,11,0,203,151,109,8,217,248,78,6,190,82,183,220,141,127,39,240,213,21,62,211,193,243,181,189,146,185,227,78,252,117,143,28,56,214,228,154,229,35,186,76,3,20,187,230,172,106,91,182,224,201,185,70,225,40,165,60,62,229,88,244,115,75,165,49,238,107,149,78,124,16,152,91,42,20,17,196,134,200,154,129,213,61,243,120,195,28,201,241,65,185,64,39,148,157,57,168,211,179,145,63,168,207,190,175,74,38,73,5,81,184,8,232,179,224,104,194,157,14,152,35,47,67,72,194,37,69,109,53,147,54,235,100,180,15,106,191,75,19,47,188,108,80,176,50,101,11,43,123,79,87,62,238,157,18,69,100,43,53,79,141,253,148,8,24,75,34,49,248,142,124,219,56,183,218,145,61,249,147,34,173,92,222,175,215,218,125,117,211,197,103,149,63,250,58,139,239,33,214,44,182,54,187,117,84,75,35,109,69,128,136,49,210,249,41,125,91,52,105,29,66,105,184,106,0,131,78,135,236,172,32,199,9,155,159,251,128,141,203,168,134,43,89,17,184,81,60,55,141,96,21,39,50,136,67,22,32,249,205,193,140,238,23,10,180,243,31,74,50,175,7,225,179,186,76,45,240,7,187,23,212,232,130,104,67,187,68,6,206,40,14,243,31,166,80,161,239,78,26,18,14,141,131,231,81,12,120,167,15,205,253,137,31,212,39,143,153,222,206,174,118,9,229,173,106,164,243,219,250,19,252,183,19,126,60,171,197,99,167,133,181,19,70,95,112,244,211,121,137,9,41,30,128,207,157,135,169,105,25,4,201,175,67,233,0,69,160,231,50,99,219,7,160,180,135,202,87,158,189,26,23,62,189,11,28,232,7,87,34,218,98,177,79,194,19,62,91,243,199,65,187,93,59,63,150,111,97,15,3,7,13,11,9,145,124,193,8,251,236,101,83,249,52,166,39,225,51,82,93,25,66,247,9,150,210,195,65,123,40,219,198,152,122,214,246,236,68,241,52,3,192,219,249,236,229,136,247,150,156,139,112,214,244,250,38,145,58,164,65,16,53,20,95,25,73,216,133,251,60,69,96,15,89,32,254,201,254,241,56,26,140,98,60,13,116,15,240,23,91,183,160,177,107,157,125,62,71,218,70,173,196,95,33,87,150,251,138,183,156,251,57,233,202,23,27,118,67,89,120,208,187,74,201,21,168,161,106,4,6,149,35,94,102,175,182,147,95,69,167,40,32,35,26,215,45,129,28,6,205,219,213,153,20,87,99,220,23,188,130,238,37,232,0,225,116,207,56,182,247,157,68,134,70,86,253,188,67,232,254,82,207,65,226,214,185,150,102,13,75,96,10,215,125,39,192,135,17,225,179,184,78,101,149,100,54,194,242,33,195,67,183,162,154,102,30,223,77,46,30,224,140,224,166,37,56,212,120,204,178,123,14,38,99,125,180,64,8,204,150,249,196,177,187,167,141,170,216,214,179,125,197,29,222,12,78,240,66,63,60,201,214,169,245,131,15,132,74,45,171,56,232,24,83,252,43,246,212,72,8,228,145,35,16,53,43,163,219,173,78,242,192,196,184,92,158,119,69,239,74,111,54,172,165,166,198,24,44,151,100,91,100,125,63,148,200,191,117,176,212,143,126,27,242,28,102,75,122,153,24,96,15,6,136,220,203,253,206,119,113,236,205,49,209,37,12,40,60,129,20,130,114,160,103,121,125,209,24,252,110,224,153,64,223,176,232,180,219,42,189,248,177,209,0,199,223,106,41,69,9,114,243,63,155,61,115,106,130,219,32,77,218,126,196,169,11,66,211,185,125,189,6,80,234,87,254,248,71,8,167,7,59,67,200,65,215,226,112,64,44,88,17,163,202,62,205,44,229,109,68,32,73,208,235,97,91,151,15,66,217,141,249,184,25,173,92,52,24,17,245,60,172,100,143,10,233,225,196,74,79,86,72,63,57,39,195,224,157,112,3,44,255,43,182,131,157,252,144,34,197,110,2,240,180,56,24,167,130,28,92,140,88,221,21,247,186,89,125,140,224,22,13,120,45,214,13,250,240,157,170,22,89,8,31,139,190,176,117,165,101,229,30,19,55,114,96,104,185,210,206,96,47,49,217,148,3,196,252,238,241,59,106,226,115,196,236,209,102,55,183}, {64,69,232,196,7,77,113,185,174,86,7,161,111,108,189,120,73,13,159,243,113,163,90,12,32,138,171,182,167,82,238,61,41,12,212,85,75,77,137,125,114,187,90,76,161,2,28,138,87,17,208,137,144,147,167,5,225,182,67,94,250,111,102,245,233,29,254,10,64,69,232,245,131,72,165,249,220,188,62,37,246,16,20,134,126,115,149,206,83,85,63,94,215,129,107,69,208,137,119,198,60,46,141,171,107,175,183,162,44,84,182,38,62,85,124,218,217,44,115,48,123,4,190,155,223,55,215,32,126,224,21,21,45,203,193,59,98,121,132,240,132,85,56,12,253,60,110,97,171,118,3,207,53,40,252,176,50,179,84,247,19,126,14,79,215,55,79,61,202,245,156,173,149,176,16,142,253,187,144,20,239,250,91,86,215,217,149,209,131,83,129,69,78,3,154,18,247,139,85,17,240,194,186,176,33,229,189,250,41,111,71,107,15,251,139,174,162,119,121,45,249,248,42,28,6,207,96,147,111,75,176,82,125,175,78,105,115,77,231,134,80,8,181,216,42,206,85,55,208,92,121,201,153,216,18,255,112,1,195,24,36,204,115,0,211,179,159,210,27,26,102,225,249,80,253,123,36,2,138,5,215,131,69,109,53,63,112,46,49,21,87,212,162,143,112,231,246,228,118,139,99,126,211,155,170,212,223,157,87,190,55,29,227,42,63,113,86,100,186,2,200,222,100,1,80,198,62,18,193,29,198,254,244,18,213,253,179,97,161,8,213,211,112,16,35,35,240,87,112,243,225,67,70,117,27,107,57,136,8,240,163,142,215,173,214,79,219,194,11,55,10,180,126,203,135,109,121,131,196,255,157,220,116,108,35,111,208,103,53,88,46,78,53,26,197,3,66,150,84,110,250,1,235,71,253,150,221,34,186,137,20,63,9,80,93,40,181,83,252,1,161,20,39,202,241,165,1,244,63,109,84,58,109,19,89,241,7,206,186,42,174,156,209,200,11,49,199,237,129,27,173,223,163,126,85,66,61,18,38,76,58,185,244,217,236,9,137,22,204,120,0,127,76,182,118,148,27,243,115,126,75,133,197,114,119,53,115,194,154,116,0,211,42,160,197,25,230,54,245,144,25,238,105,225,151,75,56,136,104,151,131,141,157,29,95,253,118,89,27,18,237,188,76,75,54,73,154,116,248,2,254,211,19,51,13,2,122,252,167,127,84,42,58,121,119,53,211,21,49,76,79,41,194,149,243,85,82,76,90,168,254,1,184,31,134,148,167,21,76,103,24,250,250,5,200,37,229,12,251,140,63,65,111,50,243,221,128,105,244,134,166,178,189,114,34,209,183,140,93,84,181,93,240,38,248,169,216,162,201,19,154,84,61,54,155,150,85,178,120,186,147,222,97,247,42,23,152,91,96,182,169,71,52,171,102,129,161,226,3,252,95,62,168,105,235,75,107,191,65,234,89,12,192,169,25,184,201,250,72,160,156,45,9,45,91,61,76,166,11,138,184,192,112,193,111,103,140,57,25,119,21,40,171,171,93,12,154,197,38,188,178,46,206,31,148,205,86,59,155,126,233,52,38,65,67,168,174,91,76,48,144,19,22,183,211,136,232,161,102,96,113,209,74,195,30,120,237,148,249,166,185,37,212,111,54,6,90,230,246,214,59,195,150,19,130,19,253,188,125,65,131,188,218,157,211,217,237,236,217,42,38,177,134,8,148,14,30,125,153,49,187,4,13,179,183,16,166,165,51,15,211,200,207,36,35,88,96,25,114,103,253,19,215,147,106,133,247,71,147,160,253,114,184,106,132,225,249,251,218,121,203,197,72,105,55,250,182,165,49,91,129,95,52,20,161,134,138,81,66,208,123,213,198,125,98,104,221,6,70,154,191,10,78,229,102,86,131,250,45,79,112,169,14,73,68,123,45,135,66,51,109,20,236,20,88,13,13,82,153,237,190,207,21,130,137,32,106,178,135,246,56,203,209,21,11,106,187,202,153,190,16,114,117,238,30,54,78,253,229,37,231,121,59,39,224,83,17,132,212,178,63,233,92,98,151,121,67,8,217,229,147,246,185,73,80,8,137,97,231,8,140,81,190,147,102,87,174,189,78,231,2,147,64,26,191,143,246,238,37,153,154,87,224,38,202,2,17,22,118,224,45,117,60,61,251,39,126,54,85,38,21,153,21,48,171,88,18,155,208,142,47,234,190,41,142,46,161,38,148,145,60,33,92,138,1,240,225,134,250,180,98,142,215,153,229,103,82,95,147,224,15,36,225,173,212,10,185,233,174,196,153,53,90,34,103,22,180,162,117,103,143,36,165,122,182,210,86,244,182,176,137,20,134,5,168,199,159,151,209,81,189,176,150,100,70,145,37,109,130,222,85,215,1,145,10,66,198,204,73,209,133,3,86,96,194,13,72,77,159,25,80,143,133,13,77,121,55,183,223,202,171,172,109,185,159,79,99,72,125,34,6,13,223,36,117,80,171,61,170,210,240,36,52,186,35,98,240,67,62,14,54,243,145,131,212,219,49,83,145,48,234,116,140,46,119,96,120,140,121,222,29,123,30,208,188,212,203,61,238,76,128,180,57,109,40,69,221,66,57,161,129,11,102,109,83,48,204,47,192,137,208,116,100,10,96,122,157,208,224,244,61,99,97,184,180,226,23,223,16,102,105,76,34,192,30,168,47,13,205,34,98,25,163,233,215,229,204,241,86,232,37,23,110,254,236,143,214,129,10,82,116,119,179,194,47,80,84,198,49,152,47,73,115,127,214,133,29,25,175,102,251,243,89,67,26,176,2,204,57,10,179,193,167,237,208,168,33,116,129,202,148,65,194,16,188,67,177,2,234,122,29,200,66,200,153,254,85,217,192,191,144,142,134,228,11,243,208,251,255,195,143,64,175,56,241,24,125,93,217,28,234,4,189,20,125,33,223,138,136,189,216,78,14,233,186,194,34,197,31,4,211,247,23,27,114,50,145,193,254,142,19,116,145,239,111,253,165,249,186,17,103,39,176,136,201,137,109,5,16,174,110,174,221,150,211,177,105,218,239,32,103,161,19,26,142,60,31,114,203,60,248,153,162,152,6,240,160,136,234,212,201,76,75,6,101,156,222,172,13,17,149,101,26,113,100,73,164,20,141,154,182,221,186,236,217,141,127,241,31,129,227,240,24,141,215,224,66,138,48,69,6,138,99,150,104,35,122,113,151,248,134,17,83,201,31,35,74,135,213,245,6,92,168,160,200,193,31,56,204,83,68,80,92,145,87,226,253,191,107,78,186,15,128,167,175,48,18,1,74,117,153,207,119,22,61,13,113,13,43,197,228,215,247,23,23,145,201,154,44,77,133,154,219,148,111,1,116,107,136,44,163,53,168,217,49,37,90,121,14,127,53,244,91,6,223,218,221,180,107,140,253,55,204,189,211,210,253,110,221,194,63,97,109,36,85,12,180,163,251,251,114,169,48,191,65,189,176,172,129,40,87,141,139,236,112,214,47,172,238,31,90,5,248,91,29,74,91,87,142,224,238,89,60,123,150,87,40,12,159,20,214,230,67,187,255,85,133,100,20,153,100,203,182,241,43,125,243,114,151,162,170,34,74,153,19,237,14,47,75,219,146,61,170,196,226,183,42,159,211,33,50,33,90,3,79,123,173,238,170,128,35,22,44,80,189,88,186,213,227,234,243,39,165,125,158,147,77,160,159,171,152,226,250,242,127,132,232,183,3,121,12,48,111,193,124,126,36,15,120,21,79,121,169,217,214,156,226,93,4,20,126,47,178,133,149,1,227,204,45,179,30,136,39,244,247,202,158,243,155,162,218,84,114,241,225,161,19,50,37,232,143,220,222,5,13,73,157,216,195,104,133,64,88,163,194,87,181,88,126,253,217,130,8,149,195,195,198,91,100,89,23,221,68,142,193,28,120,105,53,16,108,128,67,81,32,112,162,112,87,202,200,2,56,40,13,123,207,168,109,18,112,162,57,129,181,33,112,190,219,90,47,196,12,15,68,194,150,60,47,99,132,81,174,46,136,88,198,227,116,132,72,204,41,109,190,203,4,141,56,16,119,246,200,149,96,220,12,89,217,113,50,116,136,88,152,122,138,56,160,103,178,96,41,169,84,196,144,194,168,47,71,145,199,139,198,234,56,119,60,206,57,55,124,42,136,168,218,84,116,228,134,133,97,152,1,169,175,95,227,88,25,181,120,196,192,83,239,130,152,223,209,204,249,54,243,227,136,210,243,59,74,61,194,12,39,152,211,227,17,19,195,233,174,4,6,245,44,187,26,41,56,9,214,13,167,137,168,116,123,237,43,109,19,207,169,119,235,61,12,240,172,223,76,102,165,164,87,22,44,125,136,239,199,91,49,193,170,171,27,15,222,206,28,179,249,48,35,91,208,133,127,22,83,47,228,146,241,161,133,119,245,211,61,55,159,145,77,116,15,82,134,0,49,226,141,243,57,143,205,23,158,161,108,161,47,102,13,25,12,181,202,4,103,170,127,125,205,11,153,161,170,173,179,163,224,17,108,40,67,6,83,37,16,59,190,255}, {112,192,157,116,3,42,66,209,217,77,132,154,175,84,171,108,181,38,20,227,231,193,100,228,50,213,189,110,246,101,151,17,238,242,93,166,207,61,243,65,106,8,134,193,79,100,203,254,71,116,94,59,105,106,240,102,131,152,146,76,91,71,160,218,41,173,234,190,220,140,246,82,47,8,207,231,167,235,216,120,228,227,0,117,155,117,185,205,118,237,63,62,234,36,141,45,246,58,123,183,38,144,205,156,96,73,89,172,238,187,229,111,249,37,70,195,73,2,195,88,143,198,17,171,107,200,59,21,232,63,151,60,22,172,97,101,34,174,51,224,29,41,151,79,254,97,122,196,216,156,54,197,97,213,145,107,109,237,215,207,145,143,34,205,26,48,97,72,102,240,187,33,162,214,14,78,100,168,136,46,170,155,222,232,164,66,61,34,242,119,51,251,117,188,59,51,254,83,155,242,32,167,127,205,213,152,21,14,83,46,242,104,237,193,192,174,62,21,150,65,0,228,105,137,218,101,51,175,161,134,116,105,114,146,131,93,211,41,145,148,77,135,121,112,54,184,20,72,42,53,211,181,141,145,178,119,214,26,69,129,114,63,131,93,247,95,11,212,113,59,196,55,128,184,63,135,42,4,210,123,188,76,120,217,88,203,23,248,151,70,248,48,91,27,229,139,163,200,137,240,123,130,28,67,114,174,4,81,127,33,166,137,176,222,132,72,53,13,72,82,248,40,4,131,121,254,133,0,120,100,113,229,4,133,147,167,171,64,59,238,144,197,70,88,224,60,156,56,249,102,137,156,190,252,49,110,40,49,13,171,130,24,79,198,253,236,25,171,202,115,34,214,2,191,65,77,62,21,152,50,237,170,63,140,101,49,202,211,19,208,97,199,16,162,205,174,194,66,132,54,68,170,185,105,48,10,239,193,15,6,146,123,32,242,125,245,98,147,59,77,195,112,203,16,189,13,158,104,122,220,249,70,153,64,62,153,226,67,115,46,122,11,233,252,221,103,182,176,216,169,143,21,218,200,165,9,246,187,217,63,101,220,9,171,55,6,6,231,207,232,111,20,151,22,35,85,118,165,117,193,195,90,8,136,142,36,60,233,115,178,133,147,231,75,113,149,191,230,185,154,210,152,60,170,214,155,97,176,132,175,8,13,66,177,188,207,160,120,177,237,149,12,141,149,113,160,45,66,16,118,187,140,135,75,127,70,149,156,6,247,189,9,76,191,164,94,212,96,180,51,105,49,121,43,45,241,251,82,172,19,17,97,89,186,193,173,141,18,184,189,11,193,191,20,248,150,48,102,54,51,105,14,181,47,67,241,186,47,248,146,135,80,44,89,104,221,130,95,55,86,144,174,54,203,26,129,79,220,104,0,213,54,57,223,114,39,91,89,230,44,220,185,10,124,0,143,73,176,34,171,87,188,53,179,44,177,253,69,189,87,175,100,104,241,226,243,210,26,5,138,83,24,103,229,129,118,178,106,155,73,75,107,194,37,10,18,144,9,250,119,64,162,25,184,249,107,148,239,249,112,126,32,23,55,49,43,132,68,192,18,204,86,99,26,195,7,166,129,29,150,54,86,26,8,191,74,172,123,62,147,199,223,16,173,245,98,55,196,108,153,4,148,196,176,35,38,139,174,129,104,130,55,250,36,217,106,51,249,86,31,68,10,102,236,142,151,17,102,131,132,91,40,224,45,139,108,0,26,69,239,255,109,17,210,157,199,181,13,106,117,5,129,164,250,127,88,205,108,175,39,218,162,159,137,92,155,39,169,231,36,185,116,10,136,91,197,157,255,103,202,207,31,40,48,241,104,86,172,192,252,219,204,147,84,251,88,105,129,10,160,201,182,223,233,51,89,47,12,191,45,15,36,225,91,229,197,61,49,99,33,202,5,56,109,182,83,62,156,170,159,53,49,141,150,18,247,0,7,237,116,72,219,49,42,86,169,246,32,68,161,65,133,12,157,117,3,87,255,139,218,7,55,233,234,75,34,149,234,0,117,239,67,126,215,243,89,208,89,18,150,176,28,66,229,41,179,13,150,12,201,3,185,112,203,1,231,200,114,69,1,231,226,224,93,86,62,232,158,21,241,32,26,65,82,242,117,211,75,147,210,58,135,100,208,104,172,213,240,151,158,219,10,221,91,239,110,234,149,222,44,165,239,192,9,41,116,146,162,197,194,88,43,119,31,226,149,199,157,81,56,233,87,145,192,117,46,38,154,145,183,145,235,124,45,190,251,181,96,128,197,222,162,0,112,154,206,204,159,137,139,242,159,171,170,58,193,22,195,145,153,161,54,240,234,254,103,4,233,74,12,50,109,208,15,183,228,6,190,99,76,248,155,119,102,140,13,177,243,52,86,182,51,159,153,221,184,147,69,23,240,65,10,0,152,99,219,155,112,161,221,208,189,213,106,59,107,225,21,5,168,103,154,243,240,131,176,108,124,37,52,144,77,245,31,127,137,158,172,144,117,192,141,199,48,146,7,19,111,228,53,172,62,194,223,106,147,4,179,232,13,138,46,105,223,152,199,88,76,9,53,254,90,63,163,53,208,188,211,152,206,124,140,157,33,217,89,29,141,219,56,200,245,132,130,107,113,50,225,86,197,8,24,228,20,76,181,250,11,234,99,83,60,241,208,114,169,24,252,125,104,89,66,245,112,56,70,158,60,39,111,161,52,180,7,207,246,215,116,205,190,249,17,159,238,246,138,150,208,235,197,34,98,80,20,2,129,116,165,23,181,92,67,253,108,161,103,163,49,158,127,103,63,135,137,150,164,211,149,31,206,180,151,192,51,152,137,182,14,53,13,222,166,90,108,225,221,52,211,199,240,61,221,118,169,35,11,233,29,189,196,138,60,137,153,50,204,229,174,21,167,106,126,45,233,231,232,177,135,180,26,159,191,13,99,194,246,51,124,73,243,138,142,104,172,134,144,133,104,102,128,7,153,136,108,109,236,158,186,241,215,182,77,205,20,218,13,70,15,12,160,58,0,90,175,119,97,32,85,181,149,37,87,43,13,214,252,147,204,4,231,118,146,211,219,176,76,205,247,220,183,188,51,86,66,178,199,216,68,244,192,95,159,193,249,239,235,108,88,122,150,190,56,35,230,190,55,159,225,50,217,20,136,57,226,48,220,211,234,29,140,52,22,69,123,51,69,184,29,232,228,55,152,123,120,99,81,0,134,81,174,167,177,1,117,1,94,206,91,151,25,156,156,13,168,100,246,208,71,134,232,245,6,128,38,110,190,35,42,253,197,233,71,187,246,215,202,68,236,7,110,166,128,221,166,147,17,242,73,255,194,117,202,48,80,17,47,80,107,208,167,82,117,92,3,134,243,85,134,100,40,154,185,69,76,137,142,212,112,163,114,197,72,65,14,147,141,228,92,242,113,126,187,77,4,18,121,29,222,177,50,225,43,215,205,183,110,14,162,123,240,139,33,243,141,13,199,152,137,102,245,174,20,227,52,28,123,205,141,243,80,127,89,88,106,79,98,239,228,138,132,196,42,197,95,111,11,67,142,17,13,133,12,164,90,230,94,182,84,77,78,48,224,218,93,147,199,25,40,132,42,249,38,38,176,120,147,160,69,120,157,218,127,2,111,209,209,47,63,222,94,27,163,123,142,89,20,249,37,138,18,71,122,239,150,132,157,239,36,175,145,145,36,52,141,144,200,176,69,92,217,190,213,78,10,206,82,213,47,97,104,136,65,11,194,170,42,221,115,38,51,169,154,171,44,60,93,231,170,16,144,255,248,45,169,179,1,205,162,207,254,150,104,233,118,225,141,122,49,109,90,25,216,186,228,213,177,247,114,22,2,71,131,2,115,139,27,148,104,110,128,224,173,64,191,236,67,54,157,118,57,9,162,35,87,112,47,83,181,21,247,235,64,212,195,88,123,19,49,125,82,12,208,166,88,78,95,68,107,47,14,124,217,237,55,15,170,140,63,4,253,222,27,111,97,238,43,1,7,183,60,21,255,192,217,118,104,192,129,4,86,161,156,153,88,34,49,123,223,23,21,81,242,113,131,14,225,32,28,50,45,186,21,181,187,218,145,168,179,208,67,166,170,29,203,230,246,240,11,225,130,155,152,199,156,73,128,137,176,32,98,31,20,138,56,64,0,90,4,247,124,0,27,208,120,170,17,209,243,191,102,217,203,119,95,65,81,26,148,25,38,132,34,18,90,207,102,185,58,83,154,248,79,197,73,59,170,72,11,29,128,197,81,87,207,17,204,160,247,132,251,4,228,111,216,155,244,250,202,188,53,2,131,168,153,67,131,190,29,2,164,175,198,226,52,137,33,234,21,235,230,60,180,201,215,160,248,138,232,36,32,122,123,186,16,252,37,79,176,183,185,143,143,92,193,156,53,166,30,203,145,117,202,85,43,106,1,47,188,198,235,140,186,191,32,10,116,52,18,106,198,201,233,193,215,119,183,47,98,31,25,12,85,252,112,139,90,117,23,173,121,152,131,87,205,248,235,131,245,248,69,57,251,231,42,89,219,99,60,173,206,53,235,233,54,60,56,202,196,147,79,217,36,106,43,126,207}, {153,74,26,103,108,123,53,252,254,220,106,30,162,188,43,62,112,162,46,79,66,237,207,244,202,86,205,26,222,85,177,97,209,249,86,110,191,127,210,65,197,253,252,154,188,166,128,98,199,92,216,106,231,8,199,173,123,65,6,57,99,70,54,5,176,252,87,218,250,99,199,209,72,184,140,225,217,70,94,77,150,92,215,144,251,108,161,185,175,65,255,57,235,56,183,54,254,193,254,47,222,189,136,117,2,186,177,15,184,103,51,23,243,133,193,252,213,253,145,208,249,163,46,38,35,227,32,22,34,39,51,229,57,227,64,59,47,222,87,185,150,250,135,243,241,99,191,29,86,113,42,226,132,91,100,200,72,130,98,33,247,116,49,125,152,131,23,103,178,228,229,80,143,111,86,85,51,119,34,191,113,163,246,88,80,41,79,113,11,39,203,139,129,51,241,165,48,206,153,249,120,214,81,112,133,48,89,148,110,227,70,237,180,237,204,35,56,98,99,171,81,15,187,221,206,167,5,212,253,41,67,163,106,32,229,87,70,34,215,64,91,224,83,140,154,145,125,102,122,34,224,123,94,19,238,250,50,143,213,8,140,40,38,164,63,161,58,125,213,251,129,2,144,158,211,65,44,156,139,234,148,139,64,83,34,234,226,121,187,192,59,25,10,28,121,134,126,252,54,84,66,58,167,17,249,16,32,7,128,12,241,234,191,230,123,116,224,123,233,88,149,110,3,170,214,21,246,193,111,236,157,91,112,75,28,241,148,179,144,169,132,100,221,125,106,254,53,127,201,3,188,117,57,149,36,146,102,58,200,156,114,25,239,23,66,89,194,145,125,9,191,4,254,102,123,93,201,140,208,242,226,25,54,118,248,105,160,116,163,245,188,236,123,113,225,102,170,89,128,233,239,236,192,94,142,128,54,197,221,2,149,163,63,194,3,190,36,18,13,14,84,201,249,222,252,252,158,202,25,38,217,69,49,90,98,57,136,66,105,204,203,155,1,118,191,235,249,184,82,234,220,229,205,39,192,19,144,86,247,23,103,235,33,8,162,54,125,21,185,231,192,143,244,195,201,132,164,28,142,226,134,225,41,163,209,57,38,24,189,89,103,5,149,81,119,139,87,155,86,79,50,207,123,35,234,48,59,157,34,76,81,109,42,233,249,222,207,46,242,199,158,148,59,8,78,192,204,37,234,22,10,206,73,221,225,178,217,11,22,248,202,155,7,239,148,193,70,229,171,88,239,116,165,68,66,202,107,132,62,238,4,167,163,55,83,36,177,138,171,120,216,20,227,56,28,20,153,68,35,68,236,29,133,246,178,47,140,222,173,210,50,44,163,76,245,122,201,27,207,5,146,237,180,191,117,215,176,126,124,111,160,173,82,27,121,24,103,83,63,249,202,88,33,123,207,47,36,137,200,206,24,165,60,13,217,98,112,116,47,131,42,198,236,154,112,28,191,48,190,159,77,176,235,79,6,136,165,149,88,90,29,15,133,144,165,20,225,122,252,39,101,163,163,161,173,119,87,194,68,125,245,132,26,222,137,109,15,110,120,255,174,243,1,181,23,174,165,166,208,217,106,239,5,44,115,33,222,103,140,144,84,220,191,180,226,72,68,191,138,4,92,152,94,86,69,71,61,53,22,93,133,143,9,111,27,82,39,66,198,91,107,61,129,94,14,47,136,212,55,30,23,171,2,110,249,109,226,18,10,99,68,164,163,170,172,74,132,106,118,12,126,141,73,45,135,137,158,133,210,44,237,9,97,65,182,128,115,187,154,203,52,131,123,199,217,147,27,108,118,168,71,227,72,78,88,71,215,81,98,88,242,252,148,166,78,160,158,70,15,145,17,154,178,108,191,203,137,58,146,44,1,207,6,70,25,155,58,235,184,99,220,44,95,242,65,82,236,194,75,80,148,69,183,4,64,235,153,220,147,103,166,60,105,101,171,62,44,86,195,72,106,31,155,235,148,21,130,154,57,67,62,162,207,181,236,89,100,169,253,77,136,162,19,12,133,2,54,189,177,178,38,136,97,223,205,231,88,146,16,157,111,234,104,2,34,181,140,115,234,251,96,160,241,168,214,50,57,243,249,88,244,250,28,81,168,189,153,225,241,248,3,68,0,90,127,189,193,194,254,254,107,90,122,164,247,117,228,159,107,89,227,241,123,200,202,146,77,51,116,122,211,161,249,231,54,210,68,182,13,113,235,240,131,111,123,243,8,33,30,19,198,138,132,33,69,32,86,255,184,109,58,90,123,218,134,163,109,68,228,99,117,87,74,78,171,167,238,254,61,26,27,147,211,64,51,10,183,19,56,192,69,44,116,134,28,6,126,224,1,79,162,165,251,99,234,163,134,57,172,94,72,117,229,177,138,182,170,184,183,37,163,124,145,97,152,9,120,187,62,156,225,135,157,22,216,237,95,154,157,113,32,250,200,243,37,215,81,90,237,105,45,164,148,186,163,26,222,151,245,8,110,28,124,130,108,96,94,82,72,215,34,155,209,125,139,169,70,255,88,218,175,18,100,247,206,170,192,248,148,218,24,111,83,157,141,29,86,147,219,94,119,16,255,134,160,196,82,130,113,66,58,17,100,86,63,19,156,149,43,204,82,28,81,173,186,252,33,139,62,174,45,178,71,25,58,104,16,87,76,215,74,13,182,242,12,173,77,20,245,50,35,36,14,41,96,233,1,54,120,18,30,222,164,139,84,44,167,174,153,220,228,2,95,84,133,41,88,210,68,70,166,228,136,55,0,121,247,194,92,71,122,106,15,66,82,249,207,44,54,38,199,198,41,101,25,49,108,82,82,249,4,92,197,194,42,172,115,144,37,225,38,98,3,56,215,7,150,222,82,214,85,250,0,18,181,148,137,140,180,50,162,137,55,180,233,92,182,183,154,91,43,31,229,235,79,89,230,49,118,161,131,59,70,73,202,44,186,5,208,53,232,84,224,86,179,107,193,1,69,66,235,140,199,6,204,222,222,207,198,5,245,28,29,146,181,75,101,204,85,248,116,73,242,5,232,11,200,14,133,24,133,94,33,53,119,191,139,25,149,42,18,51,180,86,89,181,253,138,195,27,85,56,66,178,225,36,45,32,97,167,223,187,91,160,68,115,197,31,98,123,70,201,4,152,71,59,138,172,43,125,37,238,178,161,141,81,99,63,183,52,255,233,2,25,214,162,46,107,134,170,170,37,4,104,160,1,30,9,40,206,69,176,19,223,97,51,145,242,237,234,115,228,71,45,176,130,19,47,252,200,203,63,166,32,99,49,31,131,51,234,115,67,192,62,8,206,48,53,136,122,160,222,32,0,27,162,49,119,148,115,168,61,185,245,6,19,19,175,207,3,178,171,147,17,240,188,35,204,161,195,142,56,12,66,178,126,102,172,171,176,61,162,242,222,125,245,66,33,182,173,239,100,111,151,69,160,2,33,40,145,157,145,247,68,135,222,19,84,177,241,222,225,175,199,57,243,216,140,182,54,228,8,122,230,129,238,168,5,21,67,234,178,99,86,222,255,194,195,67,211,151,227,2,234,190,62,132,252,208,234,67,171,210,255,38,178,19,243,211,151,141,1,140,250,27,195,216,199,197,152,228,143,37,45,59,86,18,11,120,205,172,148,67,117,103,54,159,67,82,88,201,44,12,128,2,232,58,241,199,103,13,88,164,226,193,122,220,218,97,50,88,240,205,45,101,212,44,77,147,159,120,220,119,25,247,255,51,180,38,103,200,128,151,137,177,217,105,194,29,247,159,17,14,241,140,95,170,234,53,6,245,117,3,139,222,48,214,36,199,242,131,196,40,142,115,165,234,143,185,101,187,65,188,126,224,44,203,88,90,20,55,77,103,24,216,231,86,82,171,8,82,196,19,255,143,171,135,213,120,107,38,110,90,255,153,242,31,195,150,50,79,39,9,153,211,61,66,78,17,163,26,234,120,61,50,9,251,234,114,118,255,216,151,250,124,66,124,171,209,142,250,156,77,207,198,153,9,0,93,117,43,96,103,59,125,63,182,2,175,179,77,131,0,88,141,151,45,226,141,1,26,57,191,198,24,219,34,39,3,57,207,235,31,41,84,171,56,47,182,57,128,187,239,251,140,186,43,84,249,216,33,205,240,89,63,135,127,129,238,53,85,245,97,151,218,241,39,75,171,86,82,51,47,86,175,91,207,65,54,245,147,23,158,97,248,228,71,112,20,43,74,94,187,163,39,233,68,102,35,49,145,68,179,43,19,172,144,234,5,98,236,143,103,71,135,227,180,145,119,191,67,59,133,231,253,39,71,243,215,16,116,221,48,223,182,167,10,8,92,195,240,128,48,54,96,185,236,48,130,234,116,147,120,178,76,241,53,239,39,84,225,170,232,79,168,217,196,134,129,51,12,37,139,210,202,46,189,111,244,155,83,147,166,210,60,184,59,252,7,247,211,46,149,96,211,205,109,253,109,175,68,179,80,10,100,146,37,243,235,74,226,176,86,196,147,141,134,150,122,237,47,139,86,147,205,181,248,47,241,11,172,104,66,30,241,81,213,212,191,198,153,22,243,95,0,247}, } ; static const unsigned char precomputed_core_scale3sntrup1013_k[precomputed_core_scale3sntrup1013_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_scale3sntrup1013_c[precomputed_core_scale3sntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_scale3sntrup1013_impl(long long impl) { unsigned char *h = test_core_scale3sntrup1013_h; unsigned char *n = test_core_scale3sntrup1013_n; unsigned char *k = test_core_scale3sntrup1013_k; unsigned char *c = test_core_scale3sntrup1013_c; unsigned char *h2 = test_core_scale3sntrup1013_h2; unsigned char *n2 = test_core_scale3sntrup1013_n2; unsigned char *k2 = test_core_scale3sntrup1013_k2; unsigned char *c2 = test_core_scale3sntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup1013(impl); printf("core_scale3sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup1013_implementation(impl),ntruprime_dispatch_core_scale3sntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup1013; printf("core_scale3sntrup1013 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup1013_implementation(),ntruprime_core_scale3sntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_scale3sntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_scale3sntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_scale3sntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_scale3sntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_scale3sntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_scale3sntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_scale3sntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_scale3sntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_scale3sntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_scale3sntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_scale3sntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup1013")) return; storage_core_scale3sntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_scale3sntrup1013_h = aligned(storage_core_scale3sntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_scale3sntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_scale3sntrup1013_n = aligned(storage_core_scale3sntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_scale3sntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_scale3sntrup1013_k = aligned(storage_core_scale3sntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_scale3sntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_scale3sntrup1013_c = aligned(storage_core_scale3sntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_scale3sntrup1013_h2 = callocplus(maxalloc); test_core_scale3sntrup1013_h2 = aligned(storage_core_scale3sntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_scale3sntrup1013_n2 = callocplus(maxalloc); test_core_scale3sntrup1013_n2 = aligned(storage_core_scale3sntrup1013_n2,crypto_core_INPUTBYTES); storage_core_scale3sntrup1013_k2 = callocplus(maxalloc); test_core_scale3sntrup1013_k2 = aligned(storage_core_scale3sntrup1013_k2,crypto_core_KEYBYTES); storage_core_scale3sntrup1013_c2 = callocplus(maxalloc); test_core_scale3sntrup1013_c2 = aligned(storage_core_scale3sntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_scale3sntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup1013();++impl) forked(test_core_scale3sntrup1013_impl,impl); ++test_core_scale3sntrup1013_h; ++test_core_scale3sntrup1013_n; ++test_core_scale3sntrup1013_k; ++test_core_scale3sntrup1013_c; ++test_core_scale3sntrup1013_h2; ++test_core_scale3sntrup1013_n2; ++test_core_scale3sntrup1013_k2; ++test_core_scale3sntrup1013_c2; } free(storage_core_scale3sntrup1013_c2); free(storage_core_scale3sntrup1013_k2); free(storage_core_scale3sntrup1013_n2); free(storage_core_scale3sntrup1013_h2); free(storage_core_scale3sntrup1013_c); free(storage_core_scale3sntrup1013_k); free(storage_core_scale3sntrup1013_n); free(storage_core_scale3sntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_scale3sntrup1277.c0000644000000000000000000024037414705505543024026 0ustar rootroot/* ----- core/scale3sntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_scale3sntrup1277_checksums[] = { "49d516671d2ccb0512a7301439c928e5c3b0c931be7394eb883c9ca3748d3f1d", "58b6d7e044d2860ed9aee951367fcf8040720e3c780ce65bea54ff2f7b9ffed6", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_scale3sntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_scale3sntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_scale3sntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_scale3sntrup1277_CONSTBYTES static void *storage_core_scale3sntrup1277_h; static unsigned char *test_core_scale3sntrup1277_h; static void *storage_core_scale3sntrup1277_n; static unsigned char *test_core_scale3sntrup1277_n; static void *storage_core_scale3sntrup1277_k; static unsigned char *test_core_scale3sntrup1277_k; static void *storage_core_scale3sntrup1277_c; static unsigned char *test_core_scale3sntrup1277_c; static void *storage_core_scale3sntrup1277_h2; static unsigned char *test_core_scale3sntrup1277_h2; static void *storage_core_scale3sntrup1277_n2; static unsigned char *test_core_scale3sntrup1277_n2; static void *storage_core_scale3sntrup1277_k2; static unsigned char *test_core_scale3sntrup1277_k2; static void *storage_core_scale3sntrup1277_c2; static unsigned char *test_core_scale3sntrup1277_c2; #define precomputed_core_scale3sntrup1277_NUM 4 static const unsigned char precomputed_core_scale3sntrup1277_h[precomputed_core_scale3sntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {22,3,65,94,243,215,190,104,65,189,118,80,9,250,161,178,155,41,89,4,92,75,209,8,218,252,37,10,6,206,117,247,117,250,40,83,188,248,100,184,159,255,208,0,204,221,165,231,124,187,157,252,145,49,219,14,148,7,147,94,221,214,138,226,230,92,53,30,219,175,92,98,90,180,155,219,158,248,36,225,73,39,211,52,19,11,81,238,187,108,223,39,15,202,172,52,31,8,231,98,162,3,190,3,85,218,163,50,143,14,126,109,224,206,199,21,215,48,217,207,223,69,1,177,49,253,78,219,35,18,23,237,177,92,194,18,177,240,86,220,123,196,83,250,216,6,66,86,26,25,126,241,15,91,12,246,22,224,18,8,234,176,170,1,166,57,101,247,129,10,106,249,84,45,192,52,0,249,13,241,144,2,116,247,46,0,161,55,77,6,117,202,228,80,92,186,26,246,143,39,182,254,26,191,113,215,80,183,212,55,34,98,185,253,125,3,64,6,31,223,24,2,122,241,231,2,207,107,248,209,241,6,248,16,3,214,69,1,202,197,73,248,162,220,170,5,145,112,7,32,82,7,125,63,222,195,60,241,125,206,111,248,8,67,164,105,219,240,101,41,174,227,102,91,236,10,125,10,173,174,202,11,74,199,230,240,98,40,202,182,107,253,81,243,210,216,62,250,97,253,189,47,179,8,190,14,217,56,76,50,210,255,211,174,65,237,252,18,176,248,236,39,123,107,137,207,140,180,46,254,255,208,114,40,135,9,161,1,154,243,24,21,211,215,96,74,90,238,47,19,157,206,21,246,132,77,110,248,47,50,135,7,211,65,187,229,109,13,144,227,156,5,54,51,225,244,12,15,79,40,171,56,101,255,32,78,185,55,177,71,79,45,79,88,31,45,214,176,46,238,173,12,148,180,131,242,108,60,139,8,6,24,201,87,225,83,88,200,48,227,174,255,38,200,244,17,31,35,101,45,4,214,127,7,24,3,197,42,189,242,216,3,154,19,100,73,117,60,94,174,60,241,35,232,246,190,120,214,134,87,238,241,55,11,64,82,172,255,114,202,203,229,94,18,242,245,9,246,95,190,216,58,177,193,168,21,178,87,88,51,117,91,68,1,250,18,248,249,126,195,203,245,100,93,254,207,27,244,22,233,173,92,133,96,167,9,79,212,249,251,119,55,8,183,83,232,63,15,11,60,178,80,101,49,200,200,39,216,225,195,205,14,82,15,130,185,4,9,22,199,7,47,19,18,27,187,164,185,234,251,251,80,132,57,165,232,231,20,26,31,230,76,83,28,24,250,13,10,243,203,114,0,73,18,147,86,168,79,183,17,229,198,181,254,143,14,232,247,198,74,56,229,199,92,84,244,171,236,126,12,45,77,84,42,195,197,39,255,128,244,234,20,169,69,232,200,4,67,132,95,55,175,12,243,51,98,147,76,227,225,124,4,96,248,22,14,160,189,29,233,172,248,104,180,65,255,245,40,41,248,216,253,126,215,108,214,205,217,209,34,179,97,75,35,19,176,18,53,184,254,149,53,248,87,77,178,23,176,123,213,172,47,221,213,177,100,176,200,6,176,120,180,8,8,44,247,135,2,202,80,218,211,166,10,154,187,0,246,215,38,36,55,43,7,118,33,84,111,46,22,199,12,142,213,187,190,220,12,28,10,134,41,100,89,204,108,51,27,141,40,189,253,181,67,181,199,136,233,60,6,154,15,31,97,135,188,141,230,81,197,59,212,51,239,225,61,19,190,45,183,18,255,167,15,238,56,42,209,175,205,218,245,149,234,18,222,248,51,159,244,117,25,244,104,64,108,68,78,223,97,176,83,30,2,100,26,3,93,22,180,90,46,186,66,66,198,184,207,114,20,109,30,170,244,146,59,47,10,38,187,49,204,103,250,31,104,23,31,132,252,234,72,230,98,233,252,251,39,136,29,87,253,119,207,180,104,59,107,241,59,0,109,108,53,115,11,250,89,16,102,32,254,216,253,235,227,102,108,55,10,47,239,165,248,229,88,28,255,152,20,38,209,103,243,181,1,21,11,164,192,231,244,15,15,122,252,238,56,8,47,242,26,53,63,58,4,33,245,202,247,182,244,7,19,63,233,65,202,175,6,25,248,51,6,134,6,128,2,155,241,92,188,42,2,83,242,156,219,216,250,241,243,195,3,52,106,11,212,112,14,191,232,31,245,121,48,61,235,98,65,72,241,130,9,108,53,252,32,174,28,186,241,89,219,127,32,88,243,181,252,159,4,130,203,83,241,39,233,218,99,32,244,174,236,32,64,233,103,152,14,81,0,100,185,94,102,206,32,241,66,216,255,84,110,158,74,157,68,140,14,137,2,58,70,94,217,59,254,10,206,128,183,17,205,207,244,235,91,176,217,38,177,168,246,247,107,184,97,183,13,161,7,182,239,186,216,238,5,238,195,36,35,3,245,220,184,14,244,170,91,144,104,31,63,225,232,166,105,145,236,207,71,80,243,8,5,55,241,14,252,45,249,113,72,181,251,236,29,239,95,222,203,240,193,236,4,181,185,66,249,96,14,60,247,190,203,224,4,94,12,58,202,66,182,23,222,26,250,25,187,183,17,169,0,228,66,172,61,59,222,67,77,151,254,158,43,0,216,243,221,168,227,47,212,204,19,16,53,232,241,165,13,88,52,152,112,225,5,179,53,105,244,178,67,17,244,209,3,249,6,157,246,212,63,237,255,11,2,95,42,225,70,17,61,246,187,250,252,73,0,188,253,87,175,69,204,12,254,166,57,30,219,81,248,4,200,174,109,148,203,28,3,121,9,60,36,112,12,84,255,157,43,160,9,199,91,71,10,253,206,163,80,105,175,211,43,59,48,170,79,78,101,72,215,73,188,96,204,59,222,238,3,209,60,74,90,195,14,246,12,193,175,87,90,252,175,229,2,11,207,211,245,2,101,151,231,110,44,149,92,146,56,117,41,181,11,228,0,87,35,14,59,217,12,168,245,139,34,187,255,133,55,163,211,45,14,0,207,69,13,138,6,126,55,140,247,109,186,130,189,177,183,251,231,107,241,57,226,212,255,70,12,127,8,89,64,175,4,235,245,69,5,177,208,106,253,42,236,33,17,83,192,104,79,67,1,136,177,31,68,40,101,86,98,248,177,206,20,245,251,122,62,50,3,184,28,93,227,135,215,214,17,253,30,91,3,58,182,222,42,244,61,172,177,111,20,59,32,188,243,30,228,60,105,244,69,148,53,194,77,87,103,109,112,140,12,78,109,110,49,170,253,166,4,107,252,242,68,138,65,56,5,168,3,1,213,142,72,52,4,226,27,175,9,76,195,79,221,203,5,254,19,62,2,3,196,111,220,170,27,217,239,81,188,74,66,249,208,2,239,158,209,61,231,2,254,115,191,155,98,113,75,57,219,254,42,91,109,206,63,203,216,30,3,200,222,77,92,60,219,188,196,77,42,128,248,171,251,155,98,169,3,70,221,129,92,218,204,232,183,143,224,163,92,207,255,255,203,45,178,68,240,37,193,28,15,0,181,114,254,153,180,250,72,100,86,115,249,73,105,7,250,176,12,15,94,36,10,240,246,125,18,135,34,244,1,100,213,205,244,4,248,119,8,185,46,174,85,99,14,63,251,178,190,114,241,64,68,215,9,112,12,143,78,220,8,205,7,36,0,219,57,253,247,53,246,8,3,57,2,208,215,9,20,183,73,222,2,16,72,43,0,236,64,186,211,35,101,33,5,97,89,178,218,95,7,232,29,180,232,197,90,186,9,34,65,132,248,35,28,57,27,149,246,16,4,144,241,85,10,64,250,131,242,72,180,191,189,59,248,71,34,175,22,136,180,221,191,115,10,216,201,51,36,24,217,42,97,197,107,80,12,238,0,129,240,104,249,243,32,28,3,8,184,172,77,255,58,106,29,139,91,91,217,237,177,20,217,92,78,222,56,105,72,145,43,225,246,50,235,29,68,165,223,245,3,197,255,33,14,98,56,250,249,121,14,78,17,252,10,22,49,225,244,68,64,204,16,126,11,82,203,55,197,220,32,103,254,191,82,10,81,96,57,104,250,70,244,52,53,235,6,210,46,85,246,58,24,103,209,46,110,171,63,214,31,142,226,228,255,220,88,134,96,179,36,12,12,22,13,190,40,33,198,25,88,11,193,68,4,131,1,158,244,54,87,16,102,107,51,120,201,26,75,196,246,89,63,62,106,80,250,55,76,97,251,241,255,127,195,74,177,104,109,35,10,90,11,223,255,175,100,36,10,213,5,188,203,181,198,177,106,229,36,7,229,131,11,210,70,213,54,82,179,255,12,222,79,255,22,117,40,169,238,208,89,244,214,99,7,171,224,41,80,211,230,53,221,14,9,223,31,250,98,30,255,5,11,141,11,204,249,17,199,192,3,47,226,96,247,176,3,184,106,166,242,117,251,201,218,13,245,132,242,32,64,230,185,27,178,171,224,172,92,140,238,191,23,142,252,235,41,139,80,168,78,206,19,80,251,206,49,0,58,184,254,219,220,48,177,136,178,127,104,6,54,135,3,16,105,148,87,141,35,195,248,220,16,2,51,54,241,54,3,212,192,98,22,121,253,57,217,63,49,235,222,43,21,59,64,151,38,71,61,65,247,72,46,198,224,24,64,196,189,200,15,75,103,73,238,70,190,13,177,150,100,8,184,184,224,168,92,122,94,174,255,125,16,200,90,79,72,104,182,99,63,52,252,35,249,32,88,5,208,36,48,185,27,148,198,178,199,5,108,73,218,48,197,228,244,239,89,80,197,47,57,205,248,63,10,128,19,237,185,46,191,64,86,121,187,13,35,9,25,155,220,143,14,152,7,252,9,64,12,163,4,100,28,10,188,147,0,251,250,123,79,16,2,223,12,248,74,116,225,71,0,225,44,225,95,26,108,241,8,42,253,162,71,153,225,39,80,150,64,75,211,167,4,65,16,96,243,121,243,145,40,193,0,117,196,34,56,171,8,96,40,63,92,240,252,113,34,119,32,100,60,77,3,185,17,159,78,205,244,29,12,113,67,231,92,158,194,136,181,211,93,176,90,128,239,204,7,165,12,147,2,243,201,102,23,157,20,42,184,5,80,168,220,38,253,37,227,231,46,153,18,57,105,127,24,136,200,59,242,122,63,189,255,218,244,66,251,34,3,74,244,254,60,231,207,17,18,63,0,243,0,51,245,229,216,89,5,234,66,2,89,73,198,128,78,90,63,173,12,31,12,109,248,147,239,195,46,117,41,201,0,112,218,100,11,190,3,10,185,18,85,194,11,76,62,176,7,33,103,114,95,49,1,127,2,151,213,20,219,24,246,128,20,65,105,155,186,236,227,133,245,191,50,241,23,119,203,255,12,186,108,193,78,120,212,182,9,225,63,253,5,211,90,251,7,24,246,207,0,216,252,52,188,222,8,106,63,103,230,106,11,77,206,188,14,162,0,104,1,139,241,209,28,16,242,177,68,17,245,64,200,238,196,22,15,29,11,83,246,138,205,159,64,247,254,189,63,136,7,27,200,74,225,55,97,207,45,8,12,101,3,240,4,231,4,230,2,37,107,149,55,16,112,45,208,142,71,33,247,208,35,234,209,149,243,92,182,177,208,148,250,182,185,230,63,101,222,173,110,110,10,220,216,147,68,100,250,236,107,247,229,216,213,30,45,203,177,108,243,249,83,47,246,142,76,43,230,231,194,92,64,129,227,246,69,174,8,196,254,120,64,196,82,88,174,171,6,147,204}, {158,206,62,1,137,232,206,110,172,225,44,5,243,96,8,215,117,2,183,194,99,19,24,224,210,68,130,32,70,177,245,251,16,196,69,182,0,191,55,242,43,242,203,66,132,230,229,97,84,110,100,253,135,93,185,210,229,22,12,15,181,38,224,70,93,245,209,96,110,7,106,3,128,211,252,7,128,252,66,190,54,232,41,38,159,188,195,191,173,195,84,2,129,50,236,179,219,74,251,245,123,194,191,91,252,59,90,1,128,11,142,190,166,255,140,185,198,251,107,202,241,175,101,80,219,52,246,223,190,200,70,2,170,62,150,85,158,205,26,205,154,69,73,198,84,17,166,228,238,49,248,219,96,254,34,49,137,207,149,70,250,233,192,110,174,209,247,246,251,33,49,252,212,75,199,254,123,219,57,87,246,99,66,255,158,3,207,2,206,243,42,38,79,200,104,30,69,181,4,179,241,186,160,50,107,217,61,32,108,247,40,33,3,197,213,252,101,62,125,7,195,176,158,236,210,10,62,103,89,60,144,70,94,3,148,245,224,100,52,192,14,184,75,9,54,236,147,63,3,70,178,210,249,209,129,11,247,33,201,187,209,252,202,211,100,251,110,254,226,246,2,16,161,80,148,15,102,214,221,244,120,13,151,70,165,209,4,33,155,12,250,241,197,192,255,89,254,246,170,234,53,0,22,242,106,176,197,5,22,255,228,242,10,13,183,88,239,248,235,254,173,246,249,101,175,11,225,223,77,15,201,189,64,58,215,188,205,240,2,226,151,251,40,232,139,252,95,46,5,11,99,11,178,102,98,249,196,110,195,0,219,88,241,9,173,12,45,225,35,53,100,106,8,242,62,38,95,178,112,245,37,251,165,1,252,61,162,5,195,6,28,247,150,192,137,251,188,254,206,87,95,250,237,10,72,239,202,243,200,108,48,226,154,97,37,247,66,42,47,200,228,241,43,5,38,13,244,250,127,18,130,204,117,60,46,208,184,12,179,195,244,12,245,255,168,38,62,14,88,195,64,240,37,0,218,237,73,56,118,92,114,212,196,5,43,40,168,221,193,225,85,26,237,8,198,240,26,8,217,221,62,20,113,223,114,250,142,250,15,206,172,186,193,14,210,225,36,28,217,34,192,3,242,244,130,245,63,213,122,11,162,102,30,80,199,100,123,57,114,206,198,194,56,3,7,20,140,244,162,22,154,70,70,247,52,241,184,41,247,101,210,193,200,45,63,61,45,224,248,83,22,2,175,248,27,252,184,42,208,248,235,182,58,212,128,12,25,48,165,249,207,63,41,226,32,243,146,187,197,57,138,28,229,15,167,56,245,14,70,67,24,77,187,252,70,13,181,196,104,92,35,251,167,47,77,242,236,105,10,58,32,211,179,6,244,1,56,36,197,88,247,41,94,41,43,71,182,181,170,76,33,237,63,189,224,95,189,6,218,251,242,85,132,248,150,226,114,255,183,3,49,111,87,18,165,232,97,27,62,97,202,17,27,5,39,65,123,234,170,252,55,69,97,209,93,27,124,238,182,209,118,253,14,253,71,70,234,212,109,224,100,31,34,98,177,211,80,186,241,63,168,12,91,3,184,11,169,198,89,174,91,248,84,250,107,4,173,58,246,41,34,226,112,90,228,231,141,11,54,190,101,253,102,248,107,73,245,11,29,42,189,9,116,64,161,252,131,66,120,61,132,243,198,177,102,183,45,189,238,240,239,54,254,13,58,244,152,108,89,242,44,241,66,215,27,206,175,47,234,250,137,53,33,14,62,12,225,69,222,12,170,82,43,248,78,90,198,223,158,194,51,61,209,239,27,199,49,209,48,93,49,68,129,9,36,235,205,28,255,219,30,185,194,9,193,66,41,239,131,252,79,68,139,206,84,67,69,183,116,49,17,3,80,12,129,180,24,11,162,182,29,210,62,174,73,103,232,79,42,6,121,204,160,240,238,10,72,5,232,2,61,242,96,52,10,8,194,255,179,184,5,8,234,109,137,196,49,8,231,190,48,248,106,219,162,43,133,244,74,224,81,29,82,67,131,7,173,88,189,182,188,252,58,241,173,250,117,189,43,7,49,193,188,198,246,62,198,41,24,105,168,240,91,53,183,58,16,15,149,230,50,209,164,252,189,108,117,82,173,210,254,30,134,88,150,51,0,194,39,29,14,7,217,32,9,201,90,34,63,213,45,226,211,200,208,97,16,188,139,181,170,182,149,252,81,4,31,234,243,104,27,74,228,184,72,64,200,84,93,47,69,81,212,184,113,231,160,223,183,37,110,190,185,82,135,181,172,176,192,10,140,186,190,242,130,175,234,229,154,198,52,13,230,84,86,238,209,185,228,83,165,247,89,55,5,224,172,1,128,91,61,107,158,253,159,82,251,71,212,251,240,214,189,0,202,1,81,76,85,72,191,61,227,1,105,188,202,197,210,104,50,80,205,8,100,7,19,96,167,13,213,24,91,10,125,212,171,10,0,252,120,220,81,6,73,36,152,98,19,254,10,62,68,64,2,41,108,5,157,97,204,29,167,64,38,249,184,0,221,182,151,253,111,31,245,214,183,106,31,252,108,232,159,61,254,17,118,19,43,33,82,13,40,236,253,206,162,241,148,9,24,88,99,54,125,1,155,20,136,25,32,13,228,194,219,187,194,29,246,26,39,242,74,33,159,88,153,246,120,26,31,42,30,219,22,95,188,210,166,193,208,107,151,66,63,59,224,94,15,60,144,27,3,27,206,95,219,42,114,212,72,40,49,4,48,255,222,50,164,59,17,92,226,211,29,185,81,250,172,207,214,221,112,68,181,251,158,55,184,242,228,220,214,213,2,53,19,182,18,224,65,31,12,112,27,243,250,65,141,28,171,100,138,9,176,184,128,102,182,36,197,48,122,197,77,31,119,13,146,205,240,8,26,0,211,1,248,216,57,98,51,248,48,87,80,73,19,243,203,57,155,214,72,12,96,178,73,181,45,253,164,77,190,5,251,212,130,181,52,40,82,45,117,73,17,15,152,4,49,242,45,207,61,41,26,12,248,102,44,1,165,175,223,54,33,27,159,101,197,241,140,195,169,29,70,249,187,19,0,250,17,85,179,58,224,35,67,37,222,56,66,24,81,7,37,3,121,33,117,6,93,7,118,73,49,31,87,94,170,245,38,241,9,3,245,87,66,69,15,44,122,183,213,8,73,250,142,251,129,100,237,246,16,246,22,24,244,253,110,12,146,7,135,2,119,251,10,101,131,4,61,255,0,40,140,27,11,71,209,252,204,253,47,250,126,9,193,223,230,184,12,87,13,8,202,21,196,252,24,107,248,230,124,13,45,17,77,49,91,180,88,73,131,49,170,203,38,191,7,28,195,37,17,62,147,244,154,46,193,89,21,232,128,61,245,202,111,6,47,15,77,64,150,31,108,203,160,7,225,106,228,254,71,252,218,231,191,25,166,28,90,215,17,106,69,242,38,188,159,89,8,80,113,99,171,245,116,247,54,189,120,186,61,232,4,235,159,25,77,209,119,28,91,8,88,49,247,181,151,46,7,27,240,12,242,97,200,200,228,14,195,98,155,214,72,67,150,64,144,86,49,34,119,94,137,251,21,4,130,223,76,201,126,14,119,65,197,47,235,56,249,4,208,41,159,86,29,179,13,241,114,219,44,230,237,76,94,20,208,252,185,238,131,71,67,2,60,242,182,0,53,201,193,212,12,250,247,215,217,87,143,57,131,9,162,225,179,175,124,83,225,104,222,244,32,69,205,30,27,13,244,248,142,33,118,222,79,247,207,241,245,89,87,217,105,246,180,232,42,9,210,14,110,193,149,227,152,12,187,244,157,235,39,250,239,24,125,70,28,225,176,33,218,254,213,8,11,180,57,70,138,253,238,8,247,225,63,46,227,78,65,4,168,14,153,251,23,193,114,112,116,181,180,79,184,207,184,10,69,242,134,214,24,249,138,70,207,3,50,13,198,237,225,205,211,253,142,50,17,43,0,31,38,22,31,24,107,238,93,44,47,221,79,3,162,16,36,208,191,246,179,30,45,12,71,252,144,242,10,243,69,60,234,207,128,237,236,19,56,235,44,83,71,229,126,18,94,1,242,28,138,86,123,233,210,103,221,175,242,206,25,252,115,228,106,18,184,19,251,50,102,242,227,252,213,211,76,10,242,247,128,106,49,50,104,33,86,55,234,81,243,240,219,24,208,246,70,218,241,191,66,239,255,241,129,206,253,236,63,20,189,32,235,34,228,108,243,247,50,7,248,64,81,226,241,224,8,83,129,250,42,219,15,28,139,17,3,181,69,36,121,193,126,195,242,66,59,1,94,80,151,21,22,215,241,93,94,238,98,76,156,247,16,13,121,243,16,192,139,6,100,197,232,85,144,207,234,1,125,1,226,108,170,175,14,204,87,174,189,212,17,29,55,244,138,1,5,12,246,217,18,176,121,243,163,20,230,6,44,3,206,74,188,14,213,108,239,244,83,24,2,112,223,195,38,42,238,209,210,8,220,9,31,66,128,53,215,58,109,57,147,210,251,4,6,223,184,250,80,239,52,214,115,203,170,87,15,248,113,255,206,62,184,25,238,252,155,255,224,83,151,3,176,86,8,72,57,4,213,221,27,5,218,202,19,13,114,33,254,94,15,78,98,243,229,66,130,210,197,231,116,25,46,88,35,92,161,235,68,1,229,2,44,90,123,192,79,91,23,15,62,243,30,231,244,23,93,64,139,26,27,238,154,185,205,42,70,55,74,89,13,235,13,11,64,6,94,90,1,8,152,11,198,243,43,252,130,11,158,8,34,10,175,211,158,206,241,60,243,203,9,230,28,62,168,4,80,248,127,4,1,252,96,96,167,248,178,14,83,234,238,186,238,102,174,13,192,62,196,103,138,39,101,200,153,67,181,76,15,85,29,212,45,219,228,188,243,188,24,217,80,250,71,23,24,73,211,9,249,252,178,195,143,71,16,12,33,200,156,242,178,5,104,208,142,7,172,34,30,182,130,98,195,9,196,60,104,8,124,76,226,195,132,100,114,12,153,188,7,209,239,73,113,59,101,65,183,5,109,4,146,3,22,10,173,5,200,1,48,11,69,240,50,174,2,53,92,84,166,247,109,7,49,105,104,60,160,245,188,174,54,202,181,189,194,241,12,16,71,81,221,73,76,218,83,91,81,235,191,180,114,3,209,179,111,252,228,3,4,109,108,14,210,4,233,47,250,1,33,242,126,180,113,188,242,86,161,0,1,106,136,241,16,184,218,74,130,13,158,37,141,62,106,7,244,234,182,232,149,105,92,71,171,242,93,245,134,91,1,11,241,238,146,196,231,51,126,32,210,14,192,75,106,90,184,9,254,253,80,238,192,12,223,30,122,228,85,236,134,0,102,212,144,14,121,175,112,209,15,13,185,42,12,19,167,51,32,98,18,11,195,230,81,244,244,190,206,44,214,186,130,19,161,5,231,16,13,70,187,35,176,11,202,230,68,41,152,7,203,12,29,84,226,185,235,26,219,248,252,99,223,35,96,77,162,4,222,3,174,232,58,212,251,252,22,44,45,20,177,240,59,84,165,2,243,92,174,43,123,13,179,29,71,235,189,91,100,17,97,240,88,219,95,40,238,208,2,12,36,11,205,14,35,11,130,93,59,195,69,95,158,103,58,84,13,108,166,201,45,248,160,250,18,241,103,73,179,94,35,14,75,82,40,56,66,73,184,214,174,13,201,14,162,255,131,63,70,94,236,38,186,238,3,1}, {245,203,179,248,213,224,146,186,4,9,174,203,237,238,90,9,79,59,49,8,162,6,27,93,31,80,92,185,7,242,107,9,34,249,167,204,95,245,96,10,17,5,75,227,19,91,240,13,126,190,146,15,47,105,209,245,239,35,132,248,90,246,236,210,104,201,181,252,196,3,188,75,134,182,189,192,68,46,8,226,13,216,33,13,88,246,180,7,186,225,224,250,92,183,130,21,84,64,185,199,45,3,25,244,6,176,102,181,155,236,225,53,111,203,60,252,65,56,137,9,168,236,167,52,20,19,179,31,18,12,211,78,63,178,164,244,130,254,0,43,161,9,104,241,99,175,107,241,238,252,32,34,129,200,72,48,242,91,210,12,58,10,246,175,163,25,58,254,26,214,105,18,117,87,193,80,223,197,185,220,28,52,254,235,222,31,130,191,177,48,205,250,213,79,101,38,94,202,10,230,30,181,66,179,94,105,221,1,7,12,61,23,61,232,108,8,194,88,117,42,137,93,153,42,67,217,204,53,216,222,161,28,90,232,158,4,211,0,79,17,225,215,36,103,245,9,206,251,165,77,151,95,63,15,250,72,63,251,216,240,171,4,27,12,237,103,47,65,45,12,168,250,247,5,194,175,92,181,144,49,65,101,171,213,7,61,191,237,101,62,231,9,187,5,249,34,21,223,99,88,240,233,229,210,136,83,207,242,82,205,168,188,204,247,77,90,253,6,228,243,98,189,105,84,186,47,32,64,233,197,255,240,184,188,203,209,11,56,131,14,229,10,104,109,32,252,252,74,52,7,48,49,251,71,123,241,15,193,228,193,100,56,118,217,212,17,20,252,145,175,205,241,192,94,74,234,119,62,36,235,41,11,247,252,117,81,37,3,230,221,52,12,137,43,61,12,59,83,76,55,183,109,124,5,69,63,240,183,110,78,79,195,66,83,86,255,251,76,37,252,75,79,9,91,166,2,197,0,69,248,101,59,160,19,80,241,13,4,193,206,2,111,222,0,227,251,61,225,21,247,13,8,195,59,146,13,249,196,178,39,145,97,179,41,128,74,191,33,221,193,150,254,255,246,181,196,43,0,94,237,69,252,244,249,128,77,145,110,219,62,43,31,253,77,89,85,152,5,142,211,229,254,175,37,95,219,76,16,104,216,232,79,137,225,140,182,176,4,206,247,82,13,12,238,126,95,255,231,106,221,118,77,22,226,62,183,140,228,175,4,242,58,159,39,2,103,172,29,208,104,227,45,238,79,56,189,135,244,217,55,108,14,233,36,181,102,159,226,120,37,6,254,227,66,134,202,202,236,225,9,155,51,195,13,76,53,114,243,23,252,156,193,61,14,86,7,14,8,70,72,188,185,25,246,78,253,192,249,17,248,98,83,144,35,226,176,145,249,181,90,6,222,23,254,126,27,200,84,122,39,240,80,96,45,37,246,242,242,149,23,227,13,79,249,50,244,244,85,225,197,190,69,199,24,62,245,144,50,125,194,148,176,65,63,240,208,161,4,0,25,134,182,115,250,9,243,191,33,245,245,222,253,66,12,69,8,36,234,234,0,183,87,213,62,150,101,131,25,46,6,121,188,212,16,207,248,120,18,207,94,9,9,121,240,98,4,86,195,158,253,229,231,115,252,128,221,176,43,243,242,109,241,246,31,76,76,72,10,22,58,111,246,15,206,236,254,100,250,116,26,111,105,57,21,185,247,140,67,236,238,247,57,226,44,250,254,22,252,71,36,86,39,188,178,106,186,7,14,138,64,252,18,249,191,165,4,208,12,254,88,192,9,22,71,135,239,162,207,2,10,175,41,5,0,233,251,213,234,113,52,94,234,187,55,24,245,134,202,212,9,12,243,248,95,2,8,54,79,162,3,30,12,134,103,206,255,229,25,40,181,57,191,77,71,238,96,130,65,19,37,168,212,207,253,131,218,90,216,152,213,242,70,141,69,37,237,246,242,138,185,134,179,26,241,161,69,152,93,64,92,195,184,91,251,34,36,255,244,89,204,78,255,80,255,141,46,33,219,192,246,142,233,48,1,35,193,66,247,148,104,113,252,43,35,127,101,60,38,232,51,47,73,111,45,96,174,116,5,252,80,29,82,64,39,248,226,251,247,195,76,246,184,56,222,44,65,57,14,75,26,33,51,239,220,152,253,107,220,122,97,52,92,83,197,110,246,158,84,55,99,142,254,35,229,95,249,164,253,193,111,37,208,215,0,235,18,210,17,70,50,180,94,36,65,216,242,132,79,24,1,156,4,166,255,130,244,41,30,113,205,23,49,246,3,111,19,187,24,43,245,148,181,37,65,46,74,25,215,204,246,32,175,6,220,87,105,143,92,85,91,207,4,57,102,94,81,158,193,16,73,33,255,163,14,243,8,165,21,132,69,132,96,244,1,42,22,162,219,16,240,255,6,224,24,27,71,27,176,159,248,40,204,68,237,166,175,8,216,255,55,217,58,195,65,208,99,77,255,94,200,174,242,210,244,196,87,172,57,143,217,246,17,120,253,71,72,255,20,179,207,68,231,161,91,188,229,199,194,249,43,65,28,11,234,189,45,188,81,111,244,89,112,116,67,80,59,69,34,131,68,25,233,172,6,112,58,226,182,182,195,12,180,64,26,163,236,31,28,232,249,139,48,65,225,230,248,35,176,31,54,30,0,218,246,172,66,33,95,25,84,115,249,189,5,117,10,146,85,162,110,205,247,181,56,34,252,147,3,155,239,202,19,101,9,201,13,242,252,112,72,12,61,53,211,41,214,155,12,95,88,240,248,171,210,29,220,185,97,41,188,45,55,169,192,103,2,184,35,105,5,168,15,193,33,123,13,178,10,160,14,102,254,242,204,214,68,2,74,107,254,150,246,24,1,116,34,98,188,75,208,202,107,186,234,228,1,134,64,184,29,139,224,10,18,60,7,170,5,105,9,112,11,54,27,155,81,253,9,134,103,156,15,106,46,82,6,180,247,190,56,245,218,168,90,168,250,191,6,31,0,121,108,53,93,209,73,38,251,37,244,191,16,44,4,79,100,231,247,155,245,243,244,66,6,10,39,237,78,24,29,11,3,140,14,48,4,40,18,240,216,56,7,1,229,35,46,97,235,59,77,178,205,217,11,133,94,17,15,133,188,0,186,173,1,113,246,90,12,169,28,182,255,139,185,78,80,207,3,212,49,112,3,57,90,197,248,108,98,109,221,54,5,96,10,201,78,110,208,213,243,235,7,104,192,52,86,104,240,45,180,106,190,159,244,164,13,13,103,83,248,148,21,152,58,252,13,2,47,71,229,164,21,212,22,221,245,116,35,194,19,107,59,88,222,216,191,208,184,15,222,102,14,219,248,180,254,171,242,101,39,169,243,20,72,253,185,161,184,170,84,97,255,224,249,55,248,221,98,12,234,228,34,71,7,147,252,34,203,252,240,107,100,13,92,174,111,192,240,120,186,165,197,72,252,92,79,194,205,196,246,215,11,119,14,120,64,64,251,221,3,17,252,75,48,226,244,216,250,59,2,5,100,25,54,243,185,60,19,244,103,132,3,253,34,154,97,247,242,26,254,57,221,82,247,224,69,111,33,94,245,113,52,173,224,195,20,18,246,66,88,45,250,105,78,113,254,83,13,185,5,131,248,169,14,201,211,34,5,214,254,150,86,191,245,61,212,159,7,212,26,203,42,246,53,38,0,113,84,168,6,143,253,198,49,43,102,246,100,61,9,59,19,64,10,229,250,232,215,246,174,29,99,207,246,142,4,136,10,222,181,132,195,216,246,53,247,26,72,213,1,54,3,225,44,202,13,101,43,118,96,215,240,226,230,94,5,48,190,75,242,183,240,88,247,192,230,225,0,205,238,78,102,64,245,212,83,163,12,66,190,154,1,90,35,144,49,25,43,33,94,243,214,98,9,99,39,213,2,178,108,186,8,99,243,189,107,196,23,126,27,101,110,138,21,170,43,39,13,141,195,24,243,136,102,168,247,164,200,114,247,6,14,110,61,188,247,203,255,218,229,226,179,3,42,72,57,36,11,223,92,41,10,62,225,123,175,41,1,146,188,209,105,172,245,107,13,15,191,22,211,144,3,172,37,130,98,113,64,147,242,150,189,198,205,250,95,174,229,95,43,243,48,112,255,221,245,161,226,81,191,204,0,172,79,90,5,160,4,157,13,14,218,135,9,240,61,12,109,141,18,76,64,232,245,170,183,3,105,228,249,121,3,242,84,133,49,146,2,231,71,47,246,48,99,204,40,37,79,140,6,129,251,204,188,150,234,97,243,102,2,205,237,33,190,162,192,252,234,143,32,183,33,15,217,38,24,208,6,87,202,248,237,122,246,74,4,137,2,26,12,149,218,111,25,1,10,71,17,177,242,150,238,168,188,204,249,49,237,41,106,29,232,56,80,162,52,179,3,206,108,214,61,40,233,55,21,219,100,22,250,74,13,227,71,246,105,46,196,129,36,57,6,158,8,50,179,1,231,8,204,140,8,234,2,26,86,131,2,117,234,152,94,228,14,44,242,160,225,93,10,138,14,61,44,254,247,193,209,85,15,231,196,163,245,114,212,171,27,67,79,140,223,51,1,43,227,141,0,188,243,143,251,158,64,136,97,244,67,234,48,240,243,238,55,33,64,16,68,148,104,200,181,251,182,65,246,56,241,11,100,48,199,44,56,126,250,232,74,118,74,131,66,216,53,219,185,69,8,151,199,186,26,198,253,76,213,224,11,252,2,172,250,207,217,119,53,79,189,42,93,112,253,49,12,60,86,87,81,103,199,13,17,149,18,110,4,208,92,237,13,134,235,20,3,83,11,77,2,26,51,83,201,159,212,34,1,43,233,100,106,209,65,21,253,7,6,154,220,248,214,77,249,190,111,161,186,199,241,125,64,254,197,42,210,86,101,251,9,32,46,219,27,187,238,141,227,1,246,153,8,167,222,65,255,217,25,70,7,63,218,150,212,22,206,70,255,180,226,252,247,221,90,102,52,34,35,236,241,236,32,36,86,213,37,141,226,81,1,121,247,193,10,4,232,135,64,101,106,200,69,137,2,110,31,220,88,77,220,73,206,178,231,211,36,207,207,11,250,194,71,209,253,64,255,77,84,10,110,131,222,112,48,104,8,232,5,160,184,146,238,193,245,0,26,7,255,202,24,83,24,102,22,223,14,175,79,198,86,70,87,217,254,4,60,125,8,57,242,8,46,85,244,150,241,164,251,21,53,145,57,171,74,138,68,106,11,121,14,223,234,135,22,164,93,160,3,165,34,251,17,72,206,226,97,124,220,155,3,135,2,245,33,34,254,87,100,50,72,208,34,19,0,42,217,146,189,84,233,45,97,154,66,86,243,12,64,173,58,203,247,43,11,232,40,217,42,116,182,93,252,224,92,22,5,58,34,147,197,166,194,129,187,85,191,188,246,6,234,142,8,186,13,255,242,1,61,123,244,243,2,61,248,150,59,175,242,65,58,152,247,232,100,67,96,255,33,24,243,132,36,145,99,62,95,76,13,29,14,75,6,217,85,167,36,152,77,76,3,126,202,27,72,210,83,2,202,54,217,168,3,203,233,128,248,175,40,128,206,216,90,59,6,236,239,252,50,114,208,35,1,238,84,6,14,65,63,54,56,137,241,109,42,134,62,28,1,111,16,168,180,7,67,89,87,195,230,251,25,200,233,240,247,59,11,29,109,25,6,187,236,81,188,57,177,93,71,88,207,243,242,208,3,208,78,165,196,12,246,102,62,70,3,243,252}, {162,65,151,2,136,249,204,236,71,66,186,0,32,72,142,254,121,246,173,4,102,10,92,63,73,11,149,21,34,21,124,106,241,79,95,245,102,79,131,1,98,229,44,25,240,79,117,77,142,81,127,195,193,249,198,19,194,107,140,3,223,178,14,23,212,86,200,215,180,89,175,4,29,32,254,88,3,110,243,90,30,233,16,81,238,240,252,245,72,251,100,0,80,14,236,74,117,59,235,68,160,249,188,254,231,52,107,106,55,99,160,216,239,9,74,73,234,200,223,8,35,29,59,239,31,75,92,15,68,2,214,59,235,5,119,95,163,59,203,252,155,12,242,47,14,93,216,242,117,75,26,217,97,222,211,250,20,245,99,10,69,54,168,188,15,3,158,226,202,64,16,234,217,56,160,240,147,21,168,106,119,30,241,184,110,249,33,80,111,235,239,67,124,201,150,67,12,217,109,7,139,247,43,6,232,233,68,251,95,235,231,0,238,1,35,34,165,34,5,68,120,255,213,40,37,178,150,249,94,198,183,4,90,247,71,255,59,13,72,243,136,239,227,10,150,227,124,18,84,184,225,181,205,92,2,186,114,28,20,47,223,244,249,86,206,15,76,250,117,83,94,189,50,112,222,221,127,75,16,10,63,95,85,5,93,174,254,232,18,98,202,1,127,201,99,7,196,46,43,49,23,229,180,75,64,67,12,68,118,218,26,84,240,33,20,224,79,75,104,245,208,226,104,53,197,242,82,54,61,78,54,5,37,90,225,207,133,84,97,4,219,92,4,36,5,225,67,18,173,33,94,229,6,244,235,194,231,10,152,108,77,76,40,57,55,184,41,63,181,211,58,186,197,200,199,185,235,26,243,0,224,255,104,29,194,255,212,240,229,61,108,212,92,14,136,246,18,175,246,9,81,202,183,98,170,191,62,94,173,14,126,70,76,102,179,0,140,71,157,12,51,88,182,231,254,252,41,241,0,219,242,205,164,245,29,27,71,250,137,251,225,176,25,248,14,86,1,216,128,70,2,248,15,7,88,252,176,6,36,92,155,253,254,59,32,73,101,54,88,61,8,33,69,217,115,11,74,18,148,235,15,110,120,57,113,4,155,62,28,198,203,248,197,224,114,13,72,51,191,194,114,245,211,95,40,14,148,192,141,1,128,96,175,244,112,14,218,47,94,251,186,98,166,44,117,36,221,251,226,246,193,34,5,8,118,46,215,11,32,43,230,208,123,245,21,14,201,39,236,7,138,42,248,185,1,7,106,237,206,48,254,179,180,66,1,221,3,104,235,196,208,221,23,248,195,2,150,13,25,4,121,204,219,215,159,4,75,242,251,246,216,248,194,1,208,250,109,104,92,174,235,0,214,84,186,19,1,98,243,245,192,189,225,26,214,243,83,0,58,232,114,254,138,177,22,47,78,57,80,2,11,249,60,89,71,246,211,80,227,108,33,180,184,0,196,176,230,243,19,92,18,30,169,255,81,207,99,9,162,28,117,106,226,13,97,3,30,87,76,92,99,14,62,254,154,47,178,247,18,224,199,246,90,19,227,10,186,249,228,251,238,217,220,104,253,204,146,10,153,11,255,84,211,242,149,243,131,27,234,246,132,95,127,4,196,213,100,252,136,254,220,69,41,231,157,99,138,48,55,185,231,87,173,255,123,0,141,10,163,63,203,248,142,18,227,104,200,3,232,249,174,254,116,180,141,95,177,57,22,107,215,255,208,9,166,5,81,93,0,79,18,0,85,12,163,40,170,54,100,82,40,0,9,103,240,94,87,193,65,94,205,52,181,241,252,229,176,244,199,86,69,111,230,90,1,230,124,74,60,254,138,88,184,245,215,72,215,70,106,245,139,40,72,3,239,28,2,17,144,90,20,254,84,244,53,232,131,9,204,249,61,36,234,217,233,71,249,10,147,223,67,74,162,20,254,217,195,241,33,216,206,73,36,20,167,220,159,35,143,246,210,210,62,252,207,10,80,251,29,14,25,191,163,246,183,255,249,53,245,177,202,253,213,1,75,13,128,241,177,205,43,83,140,246,10,28,185,179,113,95,152,198,32,211,151,56,132,37,170,70,84,8,183,185,103,34,11,21,91,6,233,87,21,23,100,254,29,2,238,110,29,64,89,237,158,248,13,106,63,33,42,183,98,247,208,248,21,13,79,65,138,88,159,249,13,242,74,55,73,106,193,46,144,181,208,9,63,71,243,96,190,1,25,190,106,45,40,192,12,175,23,7,85,110,51,188,217,99,48,184,251,75,26,213,216,97,178,48,125,47,163,180,240,176,195,12,152,253,42,227,72,91,202,58,36,210,80,9,62,214,191,183,32,193,14,8,89,14,4,200,181,208,6,244,255,250,74,246,76,59,104,91,145,0,144,63,37,185,147,248,72,243,203,11,195,177,180,89,166,41,63,75,40,92,167,237,250,196,54,24,23,23,3,8,76,10,48,192,52,196,104,28,32,103,26,196,230,248,19,249,156,211,177,251,5,24,187,13,190,14,107,53,86,250,205,243,154,243,217,248,42,190,251,93,152,6,45,254,192,5,108,255,104,13,232,12,33,216,5,22,37,25,24,52,144,56,199,99,112,54,14,241,225,250,81,109,162,2,209,55,192,246,101,52,234,3,177,110,201,202,191,249,83,40,75,11,94,28,172,88,18,235,186,8,143,242,154,203,9,33,102,85,162,35,178,239,155,8,201,12,48,5,194,208,224,251,202,14,110,24,205,78,10,179,82,184,40,52,44,175,132,13,184,91,10,6,30,99,124,191,239,250,214,29,93,29,176,240,180,46,254,209,112,91,62,13,229,24,168,55,28,87,161,27,50,240,61,21,10,96,253,93,188,11,155,58,100,219,6,6,125,242,212,8,23,63,83,104,8,188,44,254,162,253,174,83,143,23,255,97,134,90,236,195,255,4,82,13,211,51,51,250,188,0,64,22,94,252,14,224,194,98,48,245,141,97,183,213,78,9,219,3,149,73,17,17,95,0,66,253,33,19,242,34,166,206,89,26,43,50,92,4,163,61,148,234,3,245,128,35,123,30,247,93,40,221,59,199,28,0,81,6,4,57,217,51,100,250,117,31,60,176,146,3,196,78,202,87,61,102,182,253,155,65,251,3,57,62,14,80,117,43,138,57,212,56,166,175,190,212,62,1,246,10,233,43,30,249,135,246,233,230,33,6,183,254,168,250,204,231,225,45,184,43,165,253,243,193,70,183,199,106,30,49,206,103,91,2,28,5,42,41,242,11,188,25,158,95,187,99,8,19,254,110,255,105,84,242,229,22,158,53,157,201,11,251,88,217,248,110,207,82,14,76,214,78,230,245,227,186,81,9,181,45,244,0,128,100,200,233,73,223,166,43,188,6,126,93,59,222,51,46,194,227,172,2,253,253,143,104,59,34,247,3,63,106,75,2,32,12,108,94,41,26,15,9,144,2,243,36,67,65,214,249,188,6,145,58,50,39,38,4,34,212,204,20,15,37,213,2,27,23,218,217,205,194,57,246,116,224,171,251,152,235,124,214,125,102,136,101,203,81,212,55,147,239,90,244,159,32,110,63,43,253,9,191,50,177,185,252,147,67,173,214,171,243,66,179,58,6,224,108,187,41,159,238,86,243,34,37,154,19,120,25,238,251,216,59,164,10,129,72,253,88,138,89,213,242,142,182,189,13,91,88,135,50,109,41,165,78,168,25,188,14,175,195,116,205,77,180,90,230,246,80,241,53,229,207,203,46,8,250,157,237,242,19,107,254,251,238,86,201,209,49,198,249,214,242,187,0,162,25,214,6,25,182,108,248,148,250,78,221,23,14,118,29,238,176,1,4,250,221,219,107,62,56,170,251,88,97,177,184,121,226,25,95,150,220,40,210,108,183,34,8,168,102,11,103,52,13,105,216,61,87,146,36,66,109,239,209,208,81,1,224,50,193,142,247,213,201,33,252,185,247,167,177,120,190,184,204,216,107,222,11,180,98,52,224,16,27,227,186,10,232,37,191,245,241,199,85,211,49,87,87,85,73,126,255,80,213,243,88,48,255,234,245,4,198,77,174,128,250,2,185,246,215,78,201,164,252,191,104,5,106,163,253,124,91,233,240,13,185,132,239,171,81,158,9,235,50,49,27,69,28,198,28,219,10,90,36,98,179,253,9,7,245,246,87,133,242,195,254,45,246,79,205,169,76,225,3,167,3,107,56,134,92,131,255,143,60,239,59,238,223,237,249,22,65,47,251,108,20,101,43,61,239,0,101,185,231,81,79,176,183,133,61,241,218,46,10,51,80,118,5,219,218,218,62,114,78,237,12,174,34,50,100,202,251,44,9,211,13,65,38,178,227,238,253,64,178,241,4,182,186,234,195,141,30,206,94,36,232,124,248,1,12,57,47,239,11,74,45,156,34,132,206,213,251,86,188,217,13,144,36,153,50,23,30,91,110,181,254,237,243,10,1,29,244,59,31,147,102,206,89,197,75,81,51,13,61,140,28,53,48,249,191,23,244,57,32,93,13,109,174,40,3,234,3,224,200,174,2,141,21,207,10,253,199,35,65,181,8,122,11,119,4,83,179,132,2,97,3,91,9,160,89,253,30,229,4,215,98,131,52,84,46,113,253,192,219,146,3,32,212,186,252,136,239,167,4,247,186,146,0,145,83,83,192,87,5,154,35,161,240,226,241,114,247,187,184,102,14,51,7,254,203,91,17,109,52,221,13,44,110,115,77,117,19,236,246,209,209,51,183,163,224,98,236,202,18,226,196,244,86,136,201,95,81,193,9,198,110,233,200,145,233,53,186,228,30,108,13,74,11,98,109,215,70,120,67,208,107,21,11,27,110,0,81,90,1,216,99,135,214,86,77,207,3,87,94,61,252,40,228,61,8,91,205,97,5,75,20,165,239,95,24,192,245,182,198,125,111,84,182,47,219,16,246,114,233,178,234,62,60,135,14,195,247,210,39,209,246,120,9,121,100,113,231,221,241,116,16,163,10,64,14,216,210,61,251,173,37,255,11,48,193,5,84,232,251,252,183,9,193,83,94,173,177,97,43,122,3,31,98,123,67,93,175,39,30,78,88,255,246,224,75,85,3,169,110,168,90,119,189,211,247,25,4,172,185,252,5,0,214,12,78,184,213,45,198,239,82,119,194,154,108,196,254,147,103,225,25,254,236,50,244,7,77,57,195,49,64,69,9,210,255,55,212,0,1,146,232,52,214,205,0,229,61,5,9,56,8,24,182,54,21,223,43,28,183,197,88,123,197,247,243,220,5,143,254,253,252,114,179,143,241,220,180,119,191,92,226,59,255,81,4,234,5,15,83,195,241,170,79,249,52,149,230,218,61,122,227,114,251,68,71,137,243,235,211,22,29,193,177,105,25,200,241,152,8,185,64,189,233,183,32,181,19,60,15,244,55,110,87,213,238,10,10,5,28,179,199,193,225,218,178,102,33,236,1,158,100,145,57,3,56,79,253,108,209,248,22,70,202,18,208,184,251,43,79,186,81,213,251,4,112,145,248,195,41,167,6,125,107,191,209,186,217,198,248,190,21,205,65,119,40,153,245,39,95,164,7,143,245,6,255,133,12,241,39,41,233,7,54,225,249,124,1,178,240,111,83,42,98,179,5,122,112,190,5,4,241,128,21,204,12,225,234,184,185,119,2,225,107,38,106,248,254,236,184,150,53,115,43,3,97,0,220,47,14,251,238,126,181,36,0,166,69,232,7,95,31,248,1,71,213,52,251,157,253,169,254,66,8}, } ; static const unsigned char precomputed_core_scale3sntrup1277_n[precomputed_core_scale3sntrup1277_NUM][crypto_core_INPUTBYTES] = { {197,246,88,212,100,232,215,215,126,223,191,207,240,178,158,134,118,109,96,182,97,35,174,248,177,244,202,163,21,229,20,178,58,73,165,208,129,178,223,221,53,85,3,246,87,234,74,152,231,222,242,73,200,26,54,15,239,162,30,127,178,146,65,65,143,126,84,20,92,48,97,128,49,135,156,233,138,253,31,150,176,108,222,27,177,3,46,69,214,131,226,108,24,57,209,27,181,2,58,43,35,182,215,96,218,147,206,197,133,175,23,132,179,58,218,102,138,26,6,59,226,118,190,48,168,94,45,148,78,16,112,239,40,41,131,16,40,5,133,148,60,55,94,8,72,2,3,39,75,189,42,251,242,125,23,157,197,149,243,12,97,219,161,75,207,114,138,157,62,249,225,72,9,196,45,113,19,158,194,240,67,161,105,7,167,95,120,199,130,162,58,57,57,37,135,222,75,92,114,23,146,255,113,53,142,61,131,221,137,199,163,213,128,9,108,11,192,172,200,234,245,10,107,5,77,86,50,46,187,59,14,248,149,186,20,61,42,246,1,141,195,82,73,63,123,97,200,47,154,191,179,12,108,31,93,140,1,176,146,58,56,243,69,203,121,45,92,155,100,109,77,236,15,126,145,184,108,184,162,218,238,3,129,141,181,240,99,194,1,136,121,84,27,81,89,147,87,8,184,94,44,26,145,173,215,185,224,199,177,197,51,10,4,48,126,239,65,187,144,253,145,23,22,46,150,229,151,220,167,9,104,59,19,109,45,3,158,75,222,251,245,187,4,147,13,35,49,69,82,187,242,143,244,6,25,36,122,253,82,112,26,98,222,202,252,236,207,89,67,236,33,12,255,197,94,71,23,80,178,23,38,29,138,245,77,36,128,199,40,34,178,110,178,39,162,110,5,134,205,239,143,89,239,49,148,70,17,201,198,183,239,188,48,210,56,38,219,141,35,236,39,10,117,56,233,186,162,192,100,25,191,231,194,12,8,1,132,24,82,241,53,182,203,16,185,34,20,201,221,47,1,176,116,152,101,53,59,61,111,39,231,90,170,184,173,37,247,74,57,57,172,151,183,101,166,252,240,6,136,138,53,115,78,54,37,188,211,124,181,112,20,126,89,181,235,101,149,93,61,140,153,252,185,126,189,229,9,252,197,152,124,126,196,127,122,13,216,145,83,169,106,199,107,221,132,152,40,80,70,30,211,207,100,197,171,56,32,147,94,140,220,185,198,175,233,136,172,173,197,226,154,196,158,101,28,52,159,51,78,169,150,122,25,200,74,67,58,17,75,191,143,206,94,190,8,254,156,13,100,228,19,181,176,101,30,39,37,122,42,16,10,56,212,9,152,250,11,243,47,35,123,151,218,211,47,71,76,239,42,4,252,35,9,195,84,226,250,9,109,6,59,17,208,118,11,142,153,32,25,42,208,218,4,81,254,42,30,121,180,235,231,161,51,243,178,4,243,52,114,67,228,82,139,220,107,170,148,194,99,253,91,74,61,232,55,61,2,233,136,192,126,213,6,22,196,133,243,27,213,9,116,113,149,39,130,134,112,48,60,146,209,196,178,231,40,129,163,56,21,219,59,135,107,248,100,82,26,11,219,207,177,145,226,88,241,222,237,6,138,108,249,113,204,162,191,106,9,218,167,17,0,250,237,60,252,223,225,99,199,163,111,109,185,210,49,217,254,189,28,109,63,255,212,32,250,226,235,152,1,183,203,100,162,42,64,223,66,237,46,226,124,60,36,240,56,116,196,223,34,136,6,85,122,15,231,199,33,230,248,228,177,71,154,238,25,149,149,27,34,177,20,104,233,215,173,131,89,36,226,42,125,123,29,161,185,189,238,211,197,49,11,111,43,203,41,141,251,58,19,17,188,105,142,81,115,115,82,184,117,137,206,57,205,168,162,215,74,191,63,159,59,205,143,128,182,244,150,23,197,190,10,180,144,229,41,45,86,131,232,200,237,131,17,28,209,3,235,210,157,129,115,74,72,255,12,151,15,217,189,88,120,69,36,93,228,39,161,180,117,102,117,59,224,70,231,85,26,164,159,224,58,177,24,80,107,94,231,199,69,111,147,104,84,31,190,86,30,242,1,243,165,156,154,16,40,238,126,142,210,97,179,82,17,2,149,162,147,246,156,155,135,52,33,161,113,251,71,148,72,254,251,251,65,1,169,45,108,60,208,4,168,152,181,81,192,111,210,238,99,117,5,176,214,173,17,28,65,21,39,105,81,70,134,233,194,191,181,176,250,73,72,247,233,142,113,80,32,238,139,43,115,156,77,239,77,202,144,215,136,175,27,0,223,136,183,129,135,106,232,117,72,85,9,47,119,120,204,203,132,175,112,96,171,33,221,232,105,255,193,143,147,221,110,143,69,252,230,40,163,147,117,219,75,157,234,216,213,42,80,250,158,77,165,69,81,147,250,1,13,55,249,21,238,91,7,222,109,156,123,211,29,45,162,116,94,67,207,130,238,153,50,34,112,166,107,247,170,90,71,94,15,83,104,34,231,83,145,105,146,127,93,228,99,54,145,182,250,136,22,83,32,90,39,72,253,142,141,182,202,174,209,227,41,221,112,234,113,158,198,222,42,16,246,245,57,203,209,30,124,234,174,206,202,9,119,195,19,147,100,234,75,236,120,60,49,102,157,198,229,90,36,100,181,27,117,218,94,162,126,113,54,71,211,32,91,81,136,11,102,77,223,252,137,31,60,10,89,171,98,24,56,119,72,201,101,52,17,74,176,95,129,9,48,48,42,143,241,94,207,114,29,148,46,243,191,141,39,132,239,142,161,96,192,98,1,193,208,174,47,160,204,24,205,98,218,40,128,78,18,144,206,207,54,48,222,24,86,26,123,207,7,44,43,232,214,137,51,143,124,234,13,247,136,30,91,40,46,15,82,4,254,218,10,211,103,48,247,0,108,229,4,157,67,129,240,66,103,110,116,126,115,114,20,24,231,3,57,181,10,22,71,115,6,250,56,167,198,21,252,74,196,28,244,230,252,14,19,144,4,100,27,183,23,114,151,157,226,51,233,52,78,136,188,237,121,80,38,65,175,245,213,249,194,183,96,202,229,86,249,81,4,12,78,59,187,94,33,239,248,15,132,224,101,207,193,85,235,48,162,203,165,214,95,128,187,219,135,102,186,73,107,116,83,11,213,19,50,236,64,232,223,186,236,105,220,246,209,135,55,195,233,30,247,48,18,17,86,106,148,166,29,151,1,216,233,118,201,198,131,121,10,130,188,47,132,89,7,132,103,197,123,9,226,86,140,244,147,118,27,32,104,172,37,182,190,60,199,119,169,11,227,104,229,173,215,54,216,148,172,247,151,187,125,246,20,55,56,63,123,19,6,155,46,223,91,32,102,59,105,69,157,59,210,66,105,74,228,138,118,128,104,35,38,148,151,24,182,46,135,31,172,232,10,1,171,234,92,126,39,148,167,140,92,24,109,178,76,244,118,128,246,246,213,148,24,41,177,228,11,51,152,64,206,211,69,85,104,228,34,49,127,240,202,224,199,250,19,50,57,245,70,135,235,119,185,209,209,253,176,130,192,243,125,14,242,126,31,249,99,157,108,16,26,107,233,10,223,60,220,91,172,82,144,248,128,196,39,124,52,165,21,169,249,223,19,176,173,203,157,88,208,174,114,36,7,78,2,163,31,75,54,200,236,92,84,92,88,86,38,161,3,147,240,16,42,120,74,86,157,119,204,245,145,202,81,60,78,129,11,87,184,210,249,147,98,183,229,190,79,67,132,40,43,184,163,202,63,243,78,190,0,190,135,167,195,161,67,70,180,13,192,168,110,176,43,135,168,223,86,178,90,192,210,17,235,49,178,53,209,88,91,142,254,192,27,62,251,127,132,131,93,14,13,246,62,155,120,168,62,21,199,246,107,136,209,206,66,115,187,190,198,40,220,232,98,134,111,147,97,36,55,29,16,205,200,24,56,7,121,153,76,118,74,64,148,11,170,245,248,14,99,114,254,253,192,185,7,16,103,249,159,26,94,71,89,202,49,101,23,14,217,142,208,140,225,191,186,9,130,208,155,122,13,200,139,158,213,241,169,198,12,248,51,111,218,71,171,103,224,144,167,217,38,202,223,20,237,235,95,160,225,39,111,42,126,22,241,184,178,89,215,23,30,141,160,39,108,139,108,1,148,75,157,156,255,209,157,129,102,27,59,142,75,35,236,252,96,31,87,216,93,8,170,35,203,83,14,75,232,54,129,219,101,217,97,3,30,89,245,255,210,43,31,249,71,87,167,57,250,55,40,131,228,107,192,236,148,249,51,119,52,199,217,134,85,4,55,122,66,103,20,109,246,239,221,210,15,232,52,248,76,235,80,122,4,152,122,63,90,88,226,20,235,213,247,9,68,99,66,164,49,8,110,141,45,182,120,150,13,178,163,161,213,45,207,5,39,169,86,233,194,156,44,166,77,202,181,51,28,49,76,235,209,211,151,154,130,103,199,179,230,194,198,207,37,207,135,187,112,254,135,197,237,114,213,9,92,63,35,134,235,219,194,215,239,198,26,182,157,130,201,124,28,22,84,243,225,15,67,27,37,70,255,181,175,224,99,188,230,244,38,62,2,112,12,64,166,102,86,202,202,193,90,201,88,7,5,111,85,235,245,116,255,52,133,15,6,130,214,239,213,223,194,48,31,129,107,136,251,149,37,41,107,212,39,10,108,186,133,40,178,119,139,50,14,202,169,179,116,243,77,210,106,144,249,196,128,19,239,55,249,226,68,46,214,147,35,226,76,252,146,125,131,55,82,29,239,82,40,249,109,187,98,222,205,138,173,209,230,222,156,192,240,103,156,148,152,250,136,2,103,78,192,174,206,11,185,19,193,137,68,75,188,158,22,122,157,181,226,99,149,120,143,235,109,85,56,25,56,42,75,46,251,2,14,255,35,34,70,150,250,36,31,117,44,60,122,182,88,186,51,156,211,251,200,23,235,170,58,55,163,199,57,88,13,109,2,41,80,84,104,192,106,106,185,115,92,11,128,101,34,207,2,242,114,164,104,203,58,41,157,54,235,220,222,126,125,40,147,69,68,173,55,4,68,161,100,142,15,18,204,187,33,51,68,122,75,63,98,84,202,150,58,111,32,187,0,216,194,103,235,141,105,251,107,31,63,85,177,156,41,244,182,171,129,156,151,30,96,144,72,16,21,0,100,75,36,242,10,62,134,247,59,203,67,125,214,55,109,36,11,202,143,89,181,174,207,82,68,240,46,111,20,24,48,181,227,147,223,78,253,246,193,136,243,123,131,99,177,201,144,2,248,129,19,42,168,10,232,75,240,60,111,233,245,6,109,102,88,45,156,222,183,65,234,156,130,112,232,188,144,57,66,185,43,217,216,121,59,231,127,13,56,202,18,77,222,125,188,77,245,6,50,181,72,84,207,137,74,88,187,116,224,151,206,3,130,58,167,250,54,0,120,0,217,165,136,190,195,155,40,33,72,177,211,141,13,226,178,175,95,174,94,92,65,58,34,117,16,160,44,202,197,12,28,227,129,235,170,42,50,196,88,89,119,86,99,247,77,172,181,246,164,216,116,199,157,47,34,59,199,204,248,177,221,192,97,230,116,91,135,50,78,59,239,243,165,51,143,31,138,234,124,132,122,3,7,62,30,33,185,93,145,131,16,237,91,146,247,195,172,219,36,81,64,38,101,167,199,35,204,151,96,225,97,202,62,236,63,204,58,88,236,84,21,117,217,37,219,47,38,183,68,143}, {157,58,87,181,150,152,135,132,247,64,100,172,62,213,107,61,58,161,80,225,14,102,27,235,51,33,195,191,213,48,167,254,195,225,42,221,19,224,208,155,166,5,134,32,63,237,228,42,9,47,185,94,26,212,166,230,228,17,4,5,212,193,141,204,12,92,136,42,122,2,206,171,147,145,103,248,147,244,41,53,37,67,80,108,72,223,84,224,162,225,28,86,24,27,183,49,54,35,188,71,60,225,130,211,65,30,49,246,109,99,237,223,207,180,151,51,47,94,140,142,14,219,100,122,54,113,101,64,253,141,213,75,123,116,31,124,157,143,113,143,203,118,214,55,9,16,245,65,231,26,187,233,51,245,163,26,150,229,116,204,17,153,45,47,77,230,16,72,150,21,187,254,137,35,218,9,60,148,0,210,63,214,22,85,138,86,88,161,173,241,251,22,216,141,101,20,42,50,191,134,14,52,205,197,140,147,172,191,55,72,165,106,20,226,90,159,100,116,108,183,84,219,157,68,89,249,87,215,96,30,29,119,202,171,201,6,141,214,207,53,109,136,25,3,37,239,30,202,238,118,249,59,102,230,62,164,234,106,86,52,174,244,1,231,185,8,122,255,9,72,67,186,120,122,201,100,53,61,140,6,59,250,202,33,74,230,153,106,156,164,254,165,170,224,66,40,189,242,161,238,84,10,178,80,225,133,170,247,197,74,76,166,174,89,42,125,146,178,249,84,143,167,64,44,229,3,94,64,92,15,86,138,173,29,176,52,2,70,105,150,221,83,203,237,217,254,98,196,68,99,52,164,211,129,137,243,217,217,84,75,54,125,14,249,143,89,34,150,78,113,185,45,107,70,87,108,136,134,227,156,164,8,36,96,65,116,54,87,84,77,161,92,69,139,112,179,167,74,135,39,117,83,98,249,43,240,238,251,133,46,35,65,203,42,202,242,3,195,120,56,76,251,204,76,79,185,15,244,194,101,233,57,20,201,205,229,213,99,164,225,233,99,167,170,37,23,87,100,219,54,211,69,164,95,177,239,176,199,191,211,57,231,255,76,166,23,75,234,254,64,180,189,79,88,66,80,113,248,6,149,87,102,142,149,38,254,218,168,24,229,247,51,235,4,89,150,249,104,224,21,83,76,185,156,214,81,40,146,126,174,35,215,247,36,218,43,22,200,57,229,85,225,123,161,154,187,113,6,35,103,203,33,175,92,169,90,213,194,234,214,89,54,133,25,2,116,34,235,149,123,178,0,229,82,246,8,213,109,221,7,12,136,209,145,147,164,160,111,74,158,50,202,118,150,96,166,153,137,132,29,27,105,228,100,122,114,167,175,175,32,245,35,233,254,213,164,250,225,101,126,97,254,122,111,130,70,145,45,155,29,115,145,126,12,15,161,85,22,132,210,234,194,183,194,166,204,165,135,123,206,30,154,40,138,141,127,63,2,177,73,147,209,25,93,69,65,57,160,42,182,168,132,10,187,74,67,184,104,87,213,219,186,28,162,250,31,60,153,161,244,170,118,222,144,12,190,231,239,165,59,210,169,71,9,90,204,97,231,226,149,185,20,163,213,78,60,131,222,232,116,56,4,201,171,213,184,246,55,134,218,201,82,47,73,102,182,124,200,63,24,201,235,189,125,95,152,28,14,37,53,100,9,15,93,102,205,167,174,76,24,82,78,105,202,158,244,110,32,21,116,25,6,85,134,53,136,34,138,231,175,146,28,189,79,190,166,117,46,96,176,81,5,41,232,28,229,210,196,78,254,112,113,30,165,106,89,56,204,55,185,123,208,185,82,7,211,85,64,157,54,254,115,174,69,28,56,206,144,253,211,168,203,62,78,31,68,220,19,104,148,29,222,150,88,216,117,118,69,148,244,178,203,236,143,9,118,42,136,105,197,91,86,112,89,62,135,27,164,73,221,114,230,125,218,176,44,229,36,33,77,230,57,224,250,250,88,5,12,229,181,191,80,13,113,193,77,150,170,164,136,68,98,59,132,150,140,206,77,96,53,253,92,225,62,35,110,196,91,129,64,8,20,179,32,129,2,124,210,82,221,167,244,209,240,124,8,58,138,166,12,206,224,167,226,63,31,47,24,245,215,56,80,182,198,42,115,157,100,154,66,121,59,121,94,44,217,20,123,162,230,151,20,111,210,31,198,19,225,250,19,109,77,224,191,22,142,11,107,40,146,34,65,4,142,221,42,195,137,236,220,161,50,154,244,27,172,200,67,62,45,246,34,95,51,5,117,133,38,12,26,4,208,175,136,142,237,243,234,42,108,141,138,128,208,64,50,247,133,45,99,151,222,215,5,233,218,97,66,241,55,207,164,143,38,133,154,174,51,57,38,74,72,96,199,106,64,228,85,109,211,172,216,119,9,34,123,150,119,156,254,99,61,82,75,219,10,8,121,180,119,130,201,180,75,54,223,1,141,51,45,83,122,239,2,223,162,158,127,160,79,52,189,182,13,146,60,76,249,237,8,59,63,46,77,176,107,117,128,196,159,155,201,89,202,67,109,55,162,204,42,49,20,122,202,79,93,232,170,178,50,240,244,18,106,186,146,42,131,162,179,55,67,34,116,151,101,191,16,166,106,198,89,203,153,18,144,73,70,220,173,245,124,14,199,146,75,118,102,197,18,77,185,95,225,92,52,131,105,63,19,32,241,91,21,34,125,70,157,21,19,162,109,29,148,159,212,167,230,245,224,221,216,202,117,2,30,141,212,242,200,29,190,238,189,135,127,54,195,57,231,5,109,187,86,16,85,55,27,121,115,72,126,9,231,114,51,27,254,247,58,5,149,189,203,250,158,119,199,232,80,95,63,5,61,67,113,196,135,25,235,88,191,241,132,28,156,235,202,28,105,38,129,65,78,163,136,109,44,127,22,132,26,145,55,92,191,125,4,153,143,99,163,75,10,4,161,187,232,0,43,36,243,253,209,93,205,196,70,134,29,156,146,43,79,51,49,214,220,15,255,121,121,234,1,188,60,233,220,169,23,179,110,20,120,72,15,155,76,168,5,34,144,172,194,75,14,149,44,81,181,74,48,226,113,248,189,34,44,151,80,151,225,208,190,175,178,214,16,0,254,72,209,126,200,141,107,174,22,55,29,3,189,46,248,164,96,192,106,58,77,12,98,191,34,168,20,10,127,142,252,98,80,3,1,148,39,3,204,242,24,145,221,52,13,214,243,199,8,24,129,60,7,195,71,159,103,15,245,122,89,115,183,26,11,125,254,155,214,129,1,210,74,237,108,113,19,70,119,136,94,87,74,101,83,42,3,254,234,181,136,241,209,175,2,219,102,255,73,245,45,187,66,231,164,252,15,92,197,220,49,181,34,110,197,161,57,117,53,154,19,46,108,72,116,49,252,203,25,216,210,26,67,109,201,186,142,18,183,120,165,92,202,31,106,55,228,243,162,56,131,95,245,90,94,177,237,130,189,207,19,49,232,72,216,23,166,117,52,34,40,69,122,104,43,76,242,124,82,37,138,59,137,210,237,191,238,34,104,130,59,106,190,201,2,181,26,16,221,202,25,154,104,99,79,147,213,171,56,76,90,46,43,156,146,5,118,31,117,29,39,168,21,106,212,150,73,7,172,233,234,215,56,61,165,106,117,132,111,230,199,102,247,221,194,34,39,114,49,156,90,57,148,119,66,60,121,183,187,240,254,166,154,110,119,212,75,1,91,165,160,122,227,254,145,23,73,16,147,224,124,114,29,110,13,73,150,164,133,193,208,56,45,93,71,77,33,220,105,246,99,252,82,199,106,229,63,178,92,50,176,148,125,48,62,54,157,79,67,14,3,89,165,141,139,154,65,136,89,252,241,242,238,13,254,146,18,108,204,199,64,125,21,177,74,90,163,108,220,0,119,46,255,13,78,16,65,2,111,142,36,88,182,56,90,51,169,112,139,19,133,143,135,41,122,251,58,213,13,42,241,149,146,27,158,27,119,50,182,121,79,85,154,94,58,241,169,199,197,72,195,237,105,79,188,162,103,140,154,12,25,120,63,216,246,35,101,31,59,130,92,126,20,252,184,128,244,67,241,155,176,4,201,97,144,147,239,145,187,123,153,81,123,128,151,23,187,183,10,147,190,27,39,60,238,51,130,178,133,185,58,198,73,228,65,187,101,213,16,150,112,15,91,180,244,90,60,177,13,185,157,109,216,168,197,101,21,95,199,59,208,62,5,54,189,221,177,213,147,14,139,41,240,85,251,62,229,18,154,2,17,44,21,230,21,57,217,81,253,121,77,149,202,46,65,14,150,69,123,24,179,33,148,242,104,198,186,20,50,4,193,230,224,61,140,147,32,105,0,183,207,202,102,197,146,232,126,221,239,99,206,52,253,157,14,192,176,195,53,217,172,223,140,229,38,67,144,78,171,127,0,227,131,161,133,109,228,48,133,82,231,72,105,189,166,46,171,87,89,101,62,25,219,211,251,206,187,143,12,81,11,135,120,129,100,52,217,165,81,94,18,67,218,8,55,79,24,13,145,51,13,244,173,162,117,109,113,138,200,188,114,68,145,150,182,21,64,232,168,131,69,207,231,228,142,123,39,24,243,142,245,135,116,213,18,13,74,118,95,141,123,202,96,125,124,69,34,0,97,90,234,246,11,177,142,158,14,19,192,151,212,242,206,137,241,228,117,233,59,170,237,105,189,167,39,78,126,158,153,127,75,10,76,81,40,60,139,178,40,93,90,87,91,29,152,233,188,12,117,198,189,28,69,241,136,220,109,175,28,91,125,194,238,175,3,173,97,183,125,190,77,117,99,47,6,204,73,233,78,157,248,182,88,248,230,157,58,232,115,100,228,22,237,161,201,56,172,93,178,213,86,190,73,13,213,122,178,211,185,132,238,13,52,231,129,39,100,45,31,217,44,27,194,138,56,32,118,212,35,242,123,114,60,34,148,95,223,100,223,27,62,93,8,90,103,245,119,4,249,83,84,249,54,114,119,195,249,30,227,71,241,230,1,139,144,237,162,209,21,29,221,195,213,84,78,217,115,120,173,193,35,9,55,25,129,57,79,70,223,192,144,146,205,104,115,100,117,61,87,188,11,134,86,178,88,162,247,152,0,253,13,42,155,121,218,67,113,97,38,245,242,207,87,168,130,101,30,224,81,167,218,37,57,250,52,169,155,241,100,90,37,140,205,215,147,94,211,46,68,168,220,19,182,174,49,56,159,95,76,153,46,55,165,89,247,144,111,17,161,11,166,61,135,142,52,147,124,139,85,152,45,197,90,195,221,139,120,233,164,119,193,28,31,187,12,15,68,165,152,116,45,97,119,57,166,12,92,111,211,152,184,14,240,153,140,58,198,23,21,51,15,45,206,187,125,213,98,170,84,131,154,45,185,226,105,145,236,218,153,130,85,53,231,48,90,230,218,227,144,5,175,128,24,241,101,122,27,77,128,25,164,84,237,8,177,15,224,135,110,5,52,195,16,120,97,58,101,156,33,214,192,125,99,1,152,89,109,117,183,172,164,76,38,9,137,230,189,73,168,65,214,226,192,13,36,73,247,55,182,77,67,209,145,188,244,159,195,252,16,59,80,86,38,74,161,62,41,39,110,60,250,126,105,128,153,44,126,185,186,222,69,219,62,98,194,13,230,86,89,249,13,239,4,78,99,195,126,124,225,4,42,119,215,171,123,156,131,245,56,34,243,224,168,243,175,186,34,126,212,116,250,6,123,165,199,3,120,251,231,58,175,67,90,54,85,110,31,175,41,145,108,81,69,1,171}, {186,57,145,253,90,235,153,222,153,98,77,228,98,69,30,3,178,200,206,77,54,2,246,211,162,207,135,51,192,155,102,13,201,72,160,228,136,71,13,99,110,247,44,236,158,40,80,175,61,53,115,15,82,45,174,71,146,107,63,243,11,7,183,230,139,227,231,254,217,96,129,35,149,50,82,139,89,196,107,150,194,61,30,250,181,177,60,173,81,150,160,83,135,221,195,102,9,117,166,141,252,181,179,166,21,219,53,50,156,68,56,28,56,228,39,159,88,114,150,163,75,239,122,198,73,187,126,191,243,184,222,121,40,49,159,156,214,84,237,109,139,88,120,80,52,48,102,5,13,74,77,192,62,227,5,197,147,211,70,4,171,13,101,48,206,18,209,159,113,146,16,187,20,210,216,207,8,141,166,148,161,27,189,153,55,106,233,138,40,197,220,93,52,122,100,108,221,227,193,151,29,50,41,220,183,130,178,75,154,99,172,188,210,237,36,88,131,210,20,195,112,41,32,195,212,232,49,28,91,149,120,190,49,67,138,1,222,95,178,186,94,232,249,129,167,88,173,73,36,36,202,212,2,186,235,119,21,169,91,155,76,247,28,79,60,130,82,117,252,184,75,73,253,1,169,133,135,135,29,112,88,129,76,146,154,30,168,239,100,116,77,3,233,1,64,107,26,64,14,125,99,238,10,60,197,208,50,91,217,228,75,223,68,253,92,40,18,248,76,81,137,223,16,209,43,26,77,202,182,55,104,155,251,137,172,59,70,114,129,175,10,164,101,217,96,169,65,35,188,87,253,111,150,119,22,176,24,54,95,54,185,199,229,232,137,101,92,169,238,218,220,90,45,127,129,238,106,116,31,68,118,249,16,74,20,208,202,246,181,63,169,99,112,195,191,174,86,123,177,28,42,132,212,1,4,202,99,136,103,36,216,54,3,38,114,170,150,206,183,254,6,122,240,125,245,75,170,160,23,168,100,115,205,16,112,80,175,86,254,143,67,47,93,75,161,254,210,64,244,177,194,77,46,30,134,4,102,55,211,108,200,42,126,109,109,120,130,21,178,139,69,245,104,157,250,225,204,245,221,68,42,159,15,73,109,121,200,217,54,31,166,20,236,206,96,209,117,97,237,230,228,9,210,22,136,233,177,15,139,232,229,36,150,235,151,50,144,1,173,157,179,14,23,69,23,42,104,152,225,148,191,206,197,235,125,221,151,236,248,161,147,200,34,194,67,215,209,190,221,215,142,25,231,36,123,223,45,252,224,28,17,15,144,22,212,129,72,65,21,108,239,94,142,32,149,142,1,154,94,78,118,27,46,100,177,198,57,156,74,94,71,54,172,185,133,77,109,248,175,119,167,51,179,252,7,180,45,8,110,72,99,123,29,22,9,134,238,72,212,125,21,149,74,180,23,190,133,38,107,23,61,37,13,196,164,177,166,251,116,103,161,4,197,253,102,81,233,38,94,226,215,118,218,103,106,252,29,27,146,54,239,133,88,31,99,59,158,76,237,103,149,50,209,168,3,81,130,21,148,177,55,180,41,79,4,13,31,153,78,0,42,210,52,31,31,44,110,189,186,172,230,137,137,186,69,168,21,187,50,127,240,183,230,69,118,1,133,225,157,159,10,67,209,254,147,63,125,195,81,166,226,240,63,106,177,35,43,249,159,29,18,7,24,229,183,74,185,93,105,104,18,216,0,188,147,82,113,203,183,154,234,114,227,195,235,9,178,254,90,22,95,23,167,134,225,51,192,79,27,117,65,187,102,224,55,172,3,250,151,210,64,3,159,204,64,240,73,144,105,78,210,194,106,160,182,73,90,153,104,198,221,67,214,28,27,242,149,142,137,13,23,156,149,127,67,98,255,121,73,76,247,184,111,215,173,245,228,18,203,220,38,224,92,119,231,127,195,202,158,22,75,231,69,255,148,62,49,147,155,231,147,204,28,204,202,68,82,166,65,222,149,49,75,5,120,33,117,41,173,211,84,51,201,83,163,107,104,71,134,228,45,160,112,170,28,111,30,148,64,82,237,152,16,171,116,139,3,178,201,215,104,94,166,192,194,214,1,23,229,112,82,205,18,196,51,133,143,247,65,37,76,208,173,108,187,150,150,7,46,121,101,51,123,234,81,117,38,165,6,19,248,197,184,148,155,159,140,148,107,213,169,211,132,55,141,242,119,38,170,128,199,9,116,151,117,168,121,9,216,132,202,229,138,10,230,101,51,16,175,197,41,127,249,31,53,91,25,122,245,95,33,97,245,74,233,241,80,20,142,143,74,197,101,76,18,102,214,103,166,6,239,220,164,202,167,205,198,146,49,7,115,133,21,63,10,216,114,126,180,40,88,247,0,215,183,122,157,139,157,34,11,85,225,4,62,13,36,188,25,204,25,213,15,161,251,102,73,148,195,69,66,183,141,18,246,33,28,219,53,168,203,57,127,239,245,218,107,232,66,114,224,29,46,32,221,128,92,95,221,141,39,91,89,71,217,124,209,114,152,147,63,16,59,74,90,34,66,17,164,229,127,237,120,211,167,151,0,140,64,110,88,190,108,238,44,196,129,37,37,252,96,218,105,203,93,115,4,107,110,118,198,152,228,172,189,29,9,136,165,225,23,135,173,189,244,153,162,19,11,73,198,111,126,235,143,178,116,48,162,113,247,180,139,92,209,117,248,41,160,123,228,72,63,87,58,249,115,209,35,47,2,243,212,199,182,254,30,182,156,69,219,16,138,163,48,100,147,94,189,119,241,115,122,145,118,146,118,14,98,210,80,168,76,145,114,148,128,213,118,52,252,113,246,53,205,0,213,192,16,12,37,186,216,106,22,100,230,88,243,79,34,170,185,228,223,203,67,120,121,255,50,82,245,95,105,192,137,52,44,59,219,216,81,153,95,246,111,202,213,190,236,149,155,101,1,98,142,172,16,184,208,3,255,189,118,37,18,249,111,215,33,186,187,25,198,172,41,178,215,199,186,62,37,211,56,254,149,87,162,95,192,131,84,41,136,205,117,73,164,91,130,186,119,76,178,43,58,178,156,71,62,177,3,183,155,108,60,207,245,19,70,11,132,175,35,247,165,101,99,147,85,183,190,236,78,196,222,238,86,121,249,228,6,79,196,41,91,90,234,137,19,137,124,181,104,92,11,185,208,19,165,245,236,136,7,37,88,76,137,197,227,246,0,211,151,253,17,43,226,148,255,11,32,174,48,207,141,144,71,81,249,87,139,224,169,209,139,240,34,135,225,223,53,252,140,4,156,44,132,72,201,102,117,200,103,250,67,111,128,151,121,17,137,188,178,71,105,107,131,187,102,115,219,63,91,224,3,222,24,149,53,165,73,168,60,170,38,91,100,23,208,176,73,34,18,137,158,136,123,38,184,180,141,93,170,7,140,128,23,153,57,107,90,183,68,159,201,142,65,5,102,214,156,211,39,218,64,80,59,137,74,226,5,9,97,207,169,143,217,177,157,174,125,175,21,117,211,158,140,11,110,244,6,197,246,166,53,179,105,171,68,214,160,113,100,222,1,102,233,44,63,76,236,21,203,42,16,156,75,180,38,234,179,92,141,33,18,192,221,156,104,198,162,64,46,17,25,157,3,125,252,178,16,207,142,74,113,4,147,172,129,253,208,185,86,60,201,76,223,9,31,39,149,252,210,145,53,173,137,104,134,24,63,28,117,160,104,38,56,2,152,159,47,112,166,129,63,129,191,173,86,187,192,88,247,168,11,147,101,133,76,43,69,82,199,11,235,163,93,50,63,140,91,157,84,7,75,34,52,96,37,76,56,25,238,89,100,195,191,127,157,165,9,152,221,76,35,53,6,91,80,155,181,92,83,237,56,181,2,240,7,215,173,6,137,123,244,249,41,53,241,160,11,22,29,112,160,24,248,126,100,61,137,163,14,194,90,161,211,131,43,13,14,6,44,46,217,188,23,190,100,132,27,188,123,195,250,99,66,140,8,81,197,129,75,72,159,56,57,72,239,14,103,201,148,82,134,95,177,151,9,135,238,194,5,200,249,13,226,211,80,184,125,235,60,48,99,0,153,52,136,45,247,156,102,185,24,224,197,230,48,1,209,22,195,213,104,202,68,241,69,138,85,58,235,212,77,66,98,195,62,197,208,255,140,177,158,150,46,224,68,0,209,36,49,162,224,86,242,164,109,62,26,184,61,116,241,131,28,187,177,31,248,81,161,221,238,215,57,8,230,246,147,38,196,26,153,246,58,34,120,242,253,213,49,109,164,36,113,12,43,169,87,223,69,153,203,251,53,161,2,69,30,53,73,139,103,153,114,106,42,192,24,62,79,18,240,172,48,57,187,239,145,242,129,76,131,171,75,14,154,62,18,104,152,13,90,101,59,166,69,69,75,223,68,83,206,68,80,216,114,152,85,122,35,113,164,161,135,46,223,30,203,152,170,102,54,129,197,243,91,185,142,119,63,216,205,225,24,193,19,2,138,173,121,49,190,66,107,228,151,248,78,86,75,124,110,96,58,153,117,212,95,165,119,70,243,64,31,174,65,165,172,195,170,82,254,144,180,100,96,55,244,156,57,231,38,190,174,36,151,149,36,246,204,150,66,75,129,91,152,73,119,202,197,42,233,32,59,197,99,156,231,28,248,116,157,203,201,215,171,135,188,50,88,92,123,155,70,214,35,56,81,114,42,254,229,205,191,205,110,32,53,28,92,222,23,88,240,226,43,19,66,255,215,60,179,249,65,11,228,168,88,62,106,113,216,52,251,211,189,94,206,249,1,39,10,208,224,226,156,186,116,16,122,1,221,211,98,250,149,153,73,11,94,99,130,246,75,27,132,227,72,231,163,10,204,152,185,45,136,117,26,74,154,97,241,233,187,146,92,93,215,132,158,222,237,165,108,202,189,55,33,145,95,129,169,88,77,196,54,190,252,239,66,236,152,177,51,88,160,234,126,245,224,18,175,12,40,233,69,231,197,143,175,180,79,65,103,72,140,40,15,113,163,192,183,155,145,106,249,38,52,108,66,65,8,96,192,92,254,163,191,237,26,117,100,216,133,33,150,246,103,191,225,39,130,148,214,143,249,66,222,107,88,144,89,83,131,119,136,9,211,74,92,38,155,217,148,234,189,111,120,173,229,182,243,221,153,154,235,81,237,18,173,255,219,103,94,18,15,103,245,4,210,36,47,39,175,124,243,84,153,115,108,98,0,91,69,196,180,91,50,251,159,73,244,27,200,114,38,35,27,33,225,78,230,79,8,68,26,103,121,41,243,246,36,107,150,101,43,229,227,42,231,233,156,161,64,161,148,21,201,159,10,129,83,34,221,21,158,95,33,62,153,223,47,238,252,127,203,117,95,91,241,116,124,200,172,157,204,78,229,23,224,109,143,50,50,159,141,126,178,1,171,21,68,226,245,139,62,52,218,138,148,167,21,153,218,2,62,175,104,241,152,30,41,252,100,161,172,7,31,30,229,80,88,200,117,7,229,43,174,127,66,192,8,81,25,193,200,128,87,127,196,89,95,175,6,183,224,38,122,22,117,121,196,171,61,57,246,204,51,38,105,142,37,62,37,182,172,67,109,178,210,23,147,58,53,211,124,162,183,69,65,27,57,59,116,75,231,123,2,90,88,31,255,28,131,80,188,109,111,116,199,160,18,101,75,135,154,32,96,39,84,237,150,189,171,67,99,72,124,249,76,217,179,172,252,153,46,223,38,134,12,34,219,58,100,241,240,171,221,121,74,55,241,6,15,31,194,171,100,159}, {35,32,202,181,197,178,87,239,90,32,81,75,77,34,237,159,192,177,143,1,15,99,97,31,214,78,116,17,163,102,193,45,232,36,136,71,15,122,129,0,137,151,81,189,61,122,20,36,199,122,232,54,254,72,47,102,131,131,132,86,8,220,71,103,137,124,171,61,41,40,229,86,76,106,151,210,238,46,62,211,29,238,157,122,250,250,65,92,5,94,223,245,93,100,145,120,20,30,230,203,243,72,167,74,58,113,102,216,170,128,243,61,184,163,91,205,97,227,8,78,78,105,124,69,162,120,97,15,127,246,223,200,230,182,106,127,206,200,153,169,156,164,147,111,71,41,53,91,20,206,113,147,222,63,241,168,73,177,52,249,4,199,75,223,242,181,157,150,219,31,195,67,224,199,224,250,30,188,37,131,106,20,14,222,141,243,248,36,56,68,146,203,231,56,31,118,23,62,226,162,217,167,185,172,11,153,108,254,136,153,77,0,250,85,78,192,36,107,68,118,59,160,52,109,202,219,31,8,221,55,61,172,49,72,109,170,105,4,5,6,235,154,161,3,69,236,193,101,47,51,94,50,220,211,105,222,19,105,73,111,245,166,64,39,135,15,215,243,20,38,221,52,83,218,93,234,194,120,157,13,2,42,180,182,50,133,189,152,243,42,219,10,232,56,52,248,217,25,166,26,112,151,41,206,173,32,241,32,229,147,75,38,61,192,111,64,178,120,139,71,3,236,101,113,170,70,179,113,172,121,18,87,164,125,94,144,196,123,222,161,54,41,153,107,106,235,174,101,124,21,221,236,2,252,12,140,77,174,117,46,92,206,165,114,208,221,80,31,250,230,209,51,170,56,0,137,230,189,81,0,141,95,101,105,169,245,137,90,228,30,55,231,97,100,216,252,25,48,82,3,46,57,42,43,161,53,87,212,143,175,23,119,177,129,145,85,113,119,223,174,254,124,165,237,151,94,118,155,19,148,185,143,140,252,76,19,128,158,112,179,94,219,179,82,71,124,190,61,109,204,105,72,5,173,219,73,144,87,249,40,137,84,151,115,77,205,100,28,181,30,69,21,42,62,190,184,91,16,239,238,242,46,21,200,142,76,118,116,199,55,134,178,170,64,19,100,5,198,168,54,19,92,222,212,203,79,239,53,28,96,109,42,248,241,208,4,139,111,221,158,43,43,207,195,20,193,140,179,246,252,216,21,106,248,191,25,138,99,77,195,181,144,41,167,7,90,48,194,145,183,27,195,187,51,190,162,225,68,135,26,189,49,41,203,190,148,238,44,12,226,3,149,112,72,84,161,50,175,179,86,230,57,92,232,53,172,44,241,169,167,91,243,150,0,221,93,188,215,135,218,249,170,223,123,43,102,152,213,81,167,83,138,56,19,242,251,94,10,209,237,19,95,65,134,159,196,7,200,93,96,108,243,1,40,109,167,222,207,142,46,30,135,251,245,255,133,162,166,158,211,243,190,246,74,46,144,33,3,35,105,20,131,246,89,222,246,247,209,177,211,33,90,106,255,203,196,230,167,25,235,0,72,11,102,142,184,81,158,57,94,13,233,225,215,18,58,134,3,70,164,66,209,4,156,116,91,110,19,97,157,25,42,232,161,255,60,185,179,197,9,225,118,118,237,204,128,27,197,208,136,58,210,162,245,41,0,47,174,206,116,153,253,199,101,142,130,133,11,248,253,39,95,143,220,28,42,40,200,159,216,176,245,3,249,226,1,8,212,237,121,6,0,199,174,206,23,123,28,185,37,184,170,240,129,61,127,48,54,88,212,220,27,212,90,103,66,125,6,218,209,4,218,143,40,190,151,193,205,20,170,27,125,213,6,138,34,138,204,187,6,198,23,24,1,146,190,67,101,29,211,73,180,9,177,122,152,148,163,49,8,172,107,97,62,144,119,83,174,68,64,174,205,35,17,189,147,46,176,30,147,135,205,249,16,160,148,34,22,133,167,89,145,87,94,88,249,93,179,76,100,198,138,225,252,42,10,64,28,186,219,1,245,52,96,25,175,128,80,78,58,166,208,151,242,155,19,166,49,104,127,155,226,115,145,202,199,25,108,123,204,9,13,80,222,186,21,70,17,201,172,144,39,244,17,185,9,95,171,231,217,76,202,134,239,157,72,156,45,2,192,33,136,99,7,3,158,26,250,178,202,27,125,53,83,156,5,91,199,176,45,216,25,67,50,3,249,2,34,62,213,215,10,198,223,187,110,203,53,23,48,112,77,180,217,36,223,224,128,35,51,150,35,113,231,53,128,211,111,108,111,244,49,99,219,46,185,136,84,33,236,5,126,219,29,31,145,112,88,125,146,168,221,115,139,71,98,96,100,191,141,250,229,21,71,85,254,110,167,177,200,101,211,219,170,29,202,202,136,49,168,43,156,134,99,84,134,41,40,207,194,2,206,165,211,160,239,17,226,255,188,74,103,238,12,215,163,35,139,207,225,101,190,77,215,113,140,143,178,158,178,71,60,40,94,68,18,252,164,215,185,102,113,114,83,220,176,203,176,243,82,33,53,150,41,136,87,34,245,83,162,17,10,101,185,229,99,30,147,68,188,164,18,245,112,29,29,218,128,189,113,90,80,56,179,8,132,73,161,136,199,64,82,100,198,78,1,40,47,86,57,130,93,94,194,25,89,183,19,209,39,25,68,81,163,114,176,241,142,240,191,15,124,35,22,249,154,137,173,86,79,35,162,169,144,179,73,238,4,103,18,220,121,193,134,217,221,165,27,119,133,44,175,213,40,193,247,247,213,231,138,146,8,223,190,12,20,144,165,41,111,189,59,189,40,106,4,228,103,37,114,161,124,120,19,121,240,172,102,155,127,236,126,148,174,118,200,223,62,2,2,127,251,137,98,74,31,94,130,107,52,100,255,54,255,39,38,114,103,66,128,111,40,183,225,66,97,198,89,222,112,36,73,129,10,173,17,221,73,109,64,131,128,253,91,28,128,80,146,45,78,73,1,116,205,72,101,136,160,3,180,248,101,147,192,245,143,96,104,166,197,116,1,206,30,239,67,1,167,109,107,22,191,234,126,203,148,124,141,180,170,27,2,153,114,224,112,223,243,20,106,39,219,115,11,217,121,219,124,172,129,146,84,118,117,150,11,0,31,71,122,20,110,27,200,137,114,245,218,253,145,125,75,82,174,144,195,10,83,45,82,182,66,248,182,61,170,56,254,87,152,56,196,213,24,55,255,100,54,213,50,218,45,247,111,135,215,182,181,199,76,251,23,185,249,129,189,119,127,214,128,69,187,151,132,66,216,47,241,228,17,119,113,242,56,108,73,219,232,149,132,50,123,71,206,223,121,162,252,180,222,27,3,212,110,15,246,109,214,171,67,214,234,207,24,148,87,23,212,124,234,254,110,169,65,247,75,255,169,114,130,86,192,253,171,2,131,25,86,115,164,17,127,80,104,5,3,29,11,62,193,174,202,242,253,148,87,200,29,83,23,98,1,201,145,49,17,242,107,52,11,246,17,177,147,2,140,0,7,143,64,38,94,155,153,231,231,108,44,197,214,134,37,137,199,68,240,49,71,34,21,103,31,166,94,22,224,121,219,147,169,30,118,162,146,57,81,41,220,190,172,141,46,214,194,72,69,114,166,163,22,203,16,21,104,231,8,53,30,159,78,24,205,236,39,27,40,90,241,237,135,44,100,182,39,26,27,188,194,36,207,37,104,148,175,248,54,143,143,130,220,49,237,63,37,232,198,10,59,134,196,69,8,242,68,147,187,102,180,188,154,133,227,136,197,85,158,242,80,252,245,35,104,5,248,198,135,55,243,239,243,45,234,112,250,191,190,13,134,190,161,17,149,54,46,87,114,142,254,181,42,78,51,230,235,160,212,69,63,203,59,55,136,201,77,37,215,70,215,169,14,54,147,172,124,115,22,3,132,184,59,221,122,190,149,121,139,237,242,90,142,248,8,166,157,160,219,59,53,251,57,53,46,93,164,41,43,207,149,157,104,180,222,193,237,202,138,186,155,218,38,222,26,10,210,180,34,42,85,131,231,62,125,35,160,97,242,191,55,130,218,109,8,105,51,101,232,45,142,121,94,130,130,68,216,244,244,193,40,144,90,194,136,63,240,38,208,138,88,230,197,168,104,4,105,47,105,92,249,11,193,137,49,236,98,173,81,63,210,234,155,46,95,34,157,216,228,208,35,94,76,141,86,102,114,111,126,129,170,114,30,146,115,13,235,79,83,159,202,101,254,17,17,100,195,210,154,237,43,166,237,8,122,163,221,196,30,14,148,186,88,254,36,191,182,92,233,139,116,19,207,60,185,39,107,83,214,238,83,119,163,222,14,88,108,249,150,250,169,211,219,251,86,165,222,97,140,28,191,135,212,31,67,231,157,171,174,0,26,165,174,91,25,33,107,63,229,90,244,133,52,224,14,29,193,32,27,74,20,182,217,250,159,60,6,193,160,114,156,86,191,30,215,135,125,132,35,8,198,156,30,113,190,84,26,102,224,74,6,0,21,12,100,226,47,165,96,97,76,179,56,39,11,28,188,69,174,18,227,78,117,250,77,145,249,125,1,132,49,25,11,222,246,220,248,205,210,236,105,228,11,138,128,110,198,9,111,123,84,83,148,134,86,115,60,62,84,235,154,160,76,16,52,115,10,200,208,132,224,29,87,203,192,139,165,9,241,57,72,252,221,53,165,17,173,189,57,182,186,188,27,178,79,81,132,190,206,20,102,145,92,174,59,36,136,244,149,137,68,219,101,9,226,233,209,235,56,98,37,235,173,47,47,182,56,238,152,122,222,57,191,17,100,91,99,99,217,138,204,21,118,221,216,26,164,246,46,237,207,49,246,53,214,64,61,95,121,88,76,10,127,191,254,203,65,191,2,220,228,222,76,6,17,74,240,98,18,45,92,165,226,108,47,47,221,120,233,195,71,57,238,249,67,87,30,45,90,46,178,51,194,155,167,40,3,192,43,142,237,178,155,105,186,206,13,173,185,91,145,172,8,124,193,66,14,35,54,68,38,11,159,103,136,22,54,94,212,162,219,184,24,145,161,162,213,22,118,50,48,250,190,7,125,66,7,141,35,218,246,208,217,37,211,144,223,241,167,179,86,247,136,103,162,19,61,241,206,251,60,34,141,146,208,144,54,203,131,236,84,30,130,56,104,189,68,83,6,154,206,38,140,168,31,42,78,51,10,208,145,237,95,153,152,207,231,220,95,228,30,87,88,123,248,27,221,255,187,226,24,199,50,132,210,60,226,253,251,7,77,152,74,236,179,57,220,133,80,7,50,144,53,135,150,124,245,46,247,78,87,242,37,65,251,123,207,64,113,154,66,139,201,145,65,19,94,89,119,150,241,12,231,159,190,254,48,16,104,152,80,155,248,128,202,82,238,42,21,212,16,20,5,233,28,103,39,90,69,155,13,68,190,164,141,254,64,177,134,15,192,145,181,119,214,200,114,238,28,197,169,55,230,149,188,213,227,25,59,251,158,166,36,43,208,71,169,153,47,219,82,46,24,141,87,108,131,168,59,81,62,47,93,215,102,220,202,106,194,51,167,250,41,121,183,152,71,239,9,196,99,232,108,118,67,154,113,56,8,193,10,249,69,18,38,251,42,145,172,107,218,253,76,191,240,109,17,87,79,94,153,251,136,144,246,56,46,79,216,187,74,183,136,31,28,190,24,238,127,19,63,82,100,188,154,61,50,31,75,207,118,11,163,98,191,168,0,128,231,169,8,204,94,246,159,22,88}, } ; static const unsigned char precomputed_core_scale3sntrup1277_k[precomputed_core_scale3sntrup1277_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_scale3sntrup1277_c[precomputed_core_scale3sntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_scale3sntrup1277_impl(long long impl) { unsigned char *h = test_core_scale3sntrup1277_h; unsigned char *n = test_core_scale3sntrup1277_n; unsigned char *k = test_core_scale3sntrup1277_k; unsigned char *c = test_core_scale3sntrup1277_c; unsigned char *h2 = test_core_scale3sntrup1277_h2; unsigned char *n2 = test_core_scale3sntrup1277_n2; unsigned char *k2 = test_core_scale3sntrup1277_k2; unsigned char *c2 = test_core_scale3sntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup1277(impl); printf("core_scale3sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup1277_implementation(impl),ntruprime_dispatch_core_scale3sntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup1277; printf("core_scale3sntrup1277 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup1277_implementation(),ntruprime_core_scale3sntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_scale3sntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_scale3sntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_scale3sntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_scale3sntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_scale3sntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_scale3sntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_scale3sntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_scale3sntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_scale3sntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_scale3sntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_scale3sntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup1277")) return; storage_core_scale3sntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_scale3sntrup1277_h = aligned(storage_core_scale3sntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_scale3sntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_scale3sntrup1277_n = aligned(storage_core_scale3sntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_scale3sntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_scale3sntrup1277_k = aligned(storage_core_scale3sntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_scale3sntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_scale3sntrup1277_c = aligned(storage_core_scale3sntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_scale3sntrup1277_h2 = callocplus(maxalloc); test_core_scale3sntrup1277_h2 = aligned(storage_core_scale3sntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_scale3sntrup1277_n2 = callocplus(maxalloc); test_core_scale3sntrup1277_n2 = aligned(storage_core_scale3sntrup1277_n2,crypto_core_INPUTBYTES); storage_core_scale3sntrup1277_k2 = callocplus(maxalloc); test_core_scale3sntrup1277_k2 = aligned(storage_core_scale3sntrup1277_k2,crypto_core_KEYBYTES); storage_core_scale3sntrup1277_c2 = callocplus(maxalloc); test_core_scale3sntrup1277_c2 = aligned(storage_core_scale3sntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_scale3sntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup1277();++impl) forked(test_core_scale3sntrup1277_impl,impl); ++test_core_scale3sntrup1277_h; ++test_core_scale3sntrup1277_n; ++test_core_scale3sntrup1277_k; ++test_core_scale3sntrup1277_c; ++test_core_scale3sntrup1277_h2; ++test_core_scale3sntrup1277_n2; ++test_core_scale3sntrup1277_k2; ++test_core_scale3sntrup1277_c2; } free(storage_core_scale3sntrup1277_c2); free(storage_core_scale3sntrup1277_k2); free(storage_core_scale3sntrup1277_n2); free(storage_core_scale3sntrup1277_h2); free(storage_core_scale3sntrup1277_c); free(storage_core_scale3sntrup1277_k); free(storage_core_scale3sntrup1277_n); free(storage_core_scale3sntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_scale3sntrup653.c0000644000000000000000000013402014705505543023731 0ustar rootroot/* ----- core/scale3sntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_scale3sntrup653_checksums[] = { "faf8c33dcacc9a98f6e4e751c1b406ebd2e9251ccac159d66847cfdcc45d0c53", "6cb27323e7a868ff2eee421976f5b8fb9795c4b297f63fba3eee86bf559b98c2", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_scale3sntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_scale3sntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_scale3sntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_scale3sntrup653_CONSTBYTES static void *storage_core_scale3sntrup653_h; static unsigned char *test_core_scale3sntrup653_h; static void *storage_core_scale3sntrup653_n; static unsigned char *test_core_scale3sntrup653_n; static void *storage_core_scale3sntrup653_k; static unsigned char *test_core_scale3sntrup653_k; static void *storage_core_scale3sntrup653_c; static unsigned char *test_core_scale3sntrup653_c; static void *storage_core_scale3sntrup653_h2; static unsigned char *test_core_scale3sntrup653_h2; static void *storage_core_scale3sntrup653_n2; static unsigned char *test_core_scale3sntrup653_n2; static void *storage_core_scale3sntrup653_k2; static unsigned char *test_core_scale3sntrup653_k2; static void *storage_core_scale3sntrup653_c2; static unsigned char *test_core_scale3sntrup653_c2; #define precomputed_core_scale3sntrup653_NUM 4 static const unsigned char precomputed_core_scale3sntrup653_h[precomputed_core_scale3sntrup653_NUM][crypto_core_OUTPUTBYTES] = { {153,202,3,210,94,109,162,37,252,208,167,159,205,210,149,216,127,247,34,201,13,64,251,5,41,68,96,227,150,72,41,92,94,208,115,111,138,3,127,101,89,69,59,116,68,111,74,37,70,110,16,49,211,1,27,70,114,229,9,58,4,7,71,1,151,118,175,93,53,3,221,3,215,203,83,111,24,251,40,252,20,191,20,2,233,71,240,109,239,6,64,228,159,234,232,31,180,203,106,105,68,28,6,0,13,108,164,11,185,163,115,47,218,107,186,112,17,210,251,99,139,228,36,242,254,251,141,2,166,225,195,241,11,22,247,36,124,253,15,215,90,79,43,173,83,253,175,177,165,203,126,202,220,4,22,254,89,55,50,254,3,231,137,224,65,188,222,240,210,82,254,8,226,210,152,232,96,55,54,49,57,209,216,0,106,227,4,90,20,171,141,66,71,212,251,8,35,239,173,187,53,9,252,23,16,223,165,45,232,64,109,48,239,3,135,101,18,240,21,199,85,163,1,57,52,102,185,180,190,255,229,88,194,249,9,90,104,101,121,57,150,212,123,21,100,197,196,214,229,28,209,87,240,180,176,62,100,37,24,103,99,45,91,93,120,178,56,5,45,110,106,209,117,220,138,246,187,157,29,90,48,161,243,163,107,238,185,230,132,172,179,237,29,15,99,4,89,77,250,224,113,246,99,239,18,161,113,14,205,21,57,65,166,33,61,179,190,61,247,80,217,203,105,254,107,85,210,11,194,14,216,237,119,104,35,197,165,254,195,21,210,68,80,43,213,76,177,93,65,73,239,36,57,117,131,182,218,192,151,253,178,218,207,162,158,73,142,56,99,217,208,228,44,42,65,8,149,236,203,254,214,248,188,46,214,165,69,245,67,225,108,41,109,85,55,232,95,187,14,71,181,246,7,41,41,167,121,82,195,251,161,94,192,212,165,193,246,214,211,12,164,225,137,238,133,70,117,193,120,240,95,220,162,233,68,25,81,14,94,34,69,98,216,231,188,28,57,92,115,99,80,73,244,228,89,72,190,5,196,30,207,182,68,28,238,179,152,42,72,1,84,173,173,102,177,111,232,164,23,249,171,229,80,7,217,64,218,39,145,56,117,32,163,244,15,24,191,111,88,8,177,45,25,169,215,4,248,116,151,101,154,96,27,82,6,37,230,95,100,251,156,109,109,248,1,76,40,84,5,227,206,191,41,211,81,247,94,241,7,206,169,179,98,213,140,160,127,48,83,91,139,8,102,42,83,72,219,255,135,186,93,226,244,68,192,230,249,108,116,253,23,66,244,250,181,6,22,69,70,43,171,169,73,2,91,204,212,102,165,217,65,217,232,43,33,108,62,196,80,105,85,235,24,73,65,69,234,253,240,226,248,54,147,5,164,115,123,236,134,156,192,56,187,254,189,222,112,0,187,46,204,7,53,48,240,4,12,3,147,189,65,171,54,232,211,111,230,188,221,77,53,31,30,101,14,108,120,101,191,78,170,249,87,32,238,57,31,118,69,255,46,202,88,195,55,35,194,157,51,30,254,231,238,183,246,86,134,0,159,177,185,254,223,254,88,4,49,234,153,3,102,220,114,63,146,209,102,197,164,242,66,229,21,98,118,219,107,237,139,251,131,248,136,204,64,237,2,157,100,155,91,108,145,90,6,203,159,11,225,74,70,108,60,86,217,246,191,111,187,69,30,252,13,177,215,4,194,42,131,4,136,178,79,162,194,249,226,169,75,225,9,250,255,250,108,172,65,0,218,214,138,246,184,155,137,88,200,242,18,69,124,229,86,186,76,178,15,91,38,71,61,63,44,7,201,157,91,63,195,241,38,192,102,247,183,107,64,214,47,197,178,169,143,255,19,167,37,209,15,1,57,94,136,78,207,68,29,27,244,28,248,157,59,171,249,101,12,7,82,255,240,117,174,100,47,87,88,70,200,6,92,84,85,171,82,28,241,188,189,186,186,68,37,2,252,33,116,48,143,78,201,15,94,246,57,16,247,224,6,225,18,18,51,41,191,186,250,4,126,222,186,30,47,255,33,103,253,84,51,199,145,199,218,211,67,11,19,231,135,210,82,167,211,78,174,0,155,49,163,95,219,3,213,201,65,97,23,225,30,237,212,15,249,47,138,36,21,248,12,5,40,5,132,7,108,1,50,1,142,254,74,68,146,0,208,100,89,93,101,110,57,47,108,52,133,157,72,82,213,7,128,7,198,2,156,231,174,204,107,232,116,82,146,231,179,37,226,83,52,241,85,206,107,251,23,61,241,250,114,74,41,56,100,194,139,157,103,242,104,221,88,105,28,233,22,6,249,225,79,60,156,80,134,32,55,109,118,174,11,53,8,28,68,190,136,17,200,218,135,156,85,82,116,100,147,69,205,198,171,78,28,175,170,0,114,6,17,2,236,34,216,158,0,250,39,233,85,195,7,103,25,63,128,177,8,191,166,184,153,14,246,186,2,212,203,33,229,204,42,101,38,206,13,5,223,81,152,250,73,15,211,211,200,107,86,221,159,8,149,78,71,64,74,50,182,249,240,218,57,225,71,173,162,38,123,159,82,205,241,36,159,247,7,252,51,247,61,196,223,188,9,105,85,241,220,108,229,250,215,69,103,12,126,171,35,191,62,172,110,217,163,84,7,228,185,185,116,35,231,62,26,57,199,189,120,159,74,7,120,243,73,167,177,68,217,84,92,15,232,230,168,69,221,29,224,247,140,44,97,180,72,101,230,164,115,37,215,176,41,254,144,239,216,178,9,251,219,71,253,108,110,32,227,72,86,172,241,63,33,27,177,34,208,253,79,157,16,33,142,55,182,63,114,250,120,57,50,6,230,92,255,53,118,66,99,88,225,229,47,22,222,1,129,100,123,247,243,155,67,248,181,247,184,169,238,205,136,199,172,28,248,3,17,248,163,159,107,3,105,209,143,76,177,243,116,240}, {91,78,161,72,30,217,69,3,94,240,191,169,252,15,75,161,81,8,70,7,96,160,246,252,63,84,254,204,5,169,196,171,209,23,7,244,8,0,64,205,165,250,79,63,197,90,96,8,4,86,81,58,164,155,133,46,188,2,23,15,82,228,133,253,206,183,26,79,203,211,238,245,136,75,209,53,51,39,243,29,225,59,61,219,105,44,127,251,128,102,71,223,253,30,145,4,77,252,240,66,83,37,192,10,180,250,245,159,154,116,5,178,217,66,224,211,157,52,11,239,205,210,230,35,244,32,232,92,207,105,30,219,185,113,221,101,75,165,168,74,67,3,132,115,194,249,106,37,154,101,151,98,108,252,233,18,186,43,44,109,49,167,142,195,149,163,170,7,19,1,86,62,76,166,89,184,200,76,89,162,45,7,22,77,230,62,154,188,239,217,209,225,180,191,201,164,192,41,149,62,9,243,95,74,174,156,113,254,116,172,23,246,86,4,41,114,94,167,1,60,164,77,96,36,134,107,38,61,28,222,68,238,183,184,165,28,174,209,162,254,128,209,221,211,180,0,102,6,45,199,67,33,195,194,54,249,140,61,102,254,111,182,79,237,153,67,84,33,219,64,136,196,245,212,27,80,180,209,236,209,208,30,125,209,182,114,221,196,160,189,200,68,118,65,158,22,179,85,38,98,236,232,149,7,117,8,197,174,174,229,238,77,217,92,140,90,145,60,242,4,70,188,103,253,29,0,32,229,196,165,190,0,29,243,78,9,240,105,54,39,42,213,191,254,234,4,112,192,253,87,59,185,198,172,47,81,190,203,88,51,232,227,181,3,208,245,34,252,225,175,86,3,183,180,179,203,135,6,215,1,112,231,92,247,66,10,3,248,34,253,66,193,58,6,98,66,139,182,7,16,60,3,33,247,33,254,86,156,251,181,184,42,252,250,6,40,200,15,103,158,86,7,66,5,207,198,138,39,111,64,181,254,103,159,124,252,110,224,39,181,91,168,103,223,211,168,46,31,242,252,208,180,238,217,191,168,199,250,189,74,180,227,164,48,127,18,76,104,251,82,241,248,105,37,164,12,198,117,167,8,101,71,204,92,88,14,190,55,255,32,209,13,74,229,205,84,133,216,215,109,174,8,22,232,84,53,142,64,74,64,2,108,195,99,119,163,154,255,137,0,137,52,87,106,215,208,89,250,180,89,63,23,57,214,160,117,155,182,126,29,117,83,174,91,193,191,255,72,154,8,75,184,36,38,79,235,246,219,66,237,39,114,106,240,16,9,81,255,135,6,206,63,121,233,237,179,142,195,113,251,56,40,55,43,43,64,212,34,119,93,85,18,88,53,224,227,180,2,222,4,131,62,43,18,55,3,198,201,160,91,29,158,45,247,192,103,241,194,200,176,5,206,22,220,155,8,209,22,191,46,248,7,29,21,178,26,145,250,111,202,185,73,30,2,29,214,34,254,31,229,178,28,41,33,73,115,83,88,162,201,180,250,218,51,225,193,17,52,157,209,56,82,196,162,235,110,199,210,159,31,166,15,35,253,93,188,48,204,215,203,111,233,146,250,36,12,185,49,196,171,120,249,2,203,34,240,30,4,79,80,95,253,217,57,191,93,152,22,202,29,111,58,123,176,255,178,16,233,242,204,44,3,69,188,160,2,70,228,131,115,70,8,141,8,204,51,187,101,103,158,10,15,58,248,242,247,251,240,143,21,170,113,221,238,38,41,99,86,144,237,30,209,24,83,121,88,128,4,30,73,222,114,182,48,27,209,151,84,108,248,94,29,188,92,160,203,89,61,78,65,65,244,206,101,9,245,44,110,199,252,249,182,226,79,226,247,141,94,224,180,185,48,111,166,228,185,189,13,223,70,70,209,62,249,120,230,59,223,196,194,138,18,29,223,55,87,221,41,66,1,27,177,128,247,74,41,48,105,205,247,185,22,140,66,21,21,124,3,145,207,75,222,34,253,176,25,161,0,219,199,253,83,114,252,142,101,12,202,228,6,241,68,11,88,113,171,186,214,83,232,255,210,221,36,158,162,122,169,212,160,219,254,2,249,34,80,140,97,245,111,166,187,135,0,189,173,104,114,132,100,236,197,113,233,202,84,200,218,196,226,248,204,116,2,103,252,195,247,79,191,200,3,52,5,98,8,60,253,158,233,123,185,190,218,151,223,11,115,127,54,107,45,214,254,137,197,171,62,236,68,174,242,189,178,90,190,81,169,95,177,53,177,199,238,184,191,93,194,191,159,146,99,199,88,249,171,202,23,110,57,132,207,10,253,13,2,31,253,77,251,161,0,85,70,136,248,103,78,126,226,103,77,80,95,102,66,246,211,72,17,200,46,76,251,200,191,2,88,184,94,9,199,167,6,120,250,116,2,254,3,228,255,43,68,56,46,90,77,41,97,145,241,252,194,175,4,220,193,240,53,218,93,175,23,162,247,52,22,123,219,30,245,64,239,207,109,167,242,194,242,140,226,221,44,247,156,87,253,155,14,41,156,244,238,1,66,31,112,11,67,250,115,50,38,12,87,172,189,118,206,213,220,47,210,154,156,50,78,165,253,103,248,213,96,179,113,204,206,163,97,222,7,178,204,207,177,250,27,37,34,112,166,138,36,165,62,36,198,165,67,249,157,195,105,102,64,96,236,164,164,160,240,253,196,10,42,227,16,43,187,246,50,195,9,132,157,46,220,251,250,136,46,58,76,197,247,154,225,186,243,247,245,117,202,225,8,28,247,200,82,42,247,177,250,14,4,73,196,223,35,238,67,80,15,249,5,151,255,78,70,36,169,104,14,180,182,184,229,81,185,9,254,105,236,18,108,12,36,82,214,136,247,47,78,108,36,100,174,15,160,230,228,4,253,52,211,7,92,35,210,223,176,239,252,95,35,213,23,241,0,155,99,206,202,240,207,63,221,197,255,165,253,204,4,58,1}, {54,219,215,21,171,187,182,97,27,2,152,8,86,198,219,108,37,58,71,61,236,21,24,177,227,187,254,234,232,7,180,8,77,244,241,38,157,197,82,106,127,200,216,84,207,74,29,235,216,194,178,8,204,21,118,6,149,96,147,94,206,1,202,184,92,76,23,3,202,250,45,14,220,22,183,17,87,247,160,63,214,53,135,82,87,220,172,37,235,1,251,64,150,4,179,187,56,182,65,87,247,33,241,105,189,6,170,101,191,74,224,230,54,65,88,56,242,73,245,88,123,222,67,12,128,61,111,26,162,199,81,101,219,56,224,247,164,172,5,209,132,221,24,79,96,4,227,68,169,62,235,71,23,10,13,17,111,57,130,188,181,12,63,7,55,116,183,219,0,115,59,61,0,249,37,247,116,218,157,212,240,2,115,250,250,13,237,51,229,95,167,8,196,8,200,173,93,73,176,61,203,93,191,62,66,194,81,32,68,187,86,22,138,68,64,103,188,158,3,118,159,250,6,68,100,28,71,28,26,249,133,186,169,171,21,224,177,224,197,176,251,239,208,108,10,225,81,255,94,38,87,221,226,47,216,255,188,170,222,36,219,9,36,11,47,206,47,9,112,49,157,231,64,81,130,50,253,35,142,251,185,172,34,245,46,201,60,74,251,2,99,182,236,96,202,108,78,40,191,5,107,171,83,201,151,65,21,62,39,8,43,31,80,27,4,209,74,204,104,210,242,184,111,13,115,5,133,84,38,155,114,206,58,106,222,110,146,254,212,74,134,28,228,8,208,176,18,24,189,251,180,22,235,202,169,232,173,43,23,36,22,92,6,105,67,166,117,92,148,183,224,208,195,242,220,191,249,9,109,54,237,253,47,14,197,255,227,93,235,54,122,253,104,183,7,27,204,255,153,68,171,86,229,26,179,3,247,41,164,45,46,84,178,94,154,5,92,242,153,237,176,215,77,95,95,73,215,64,209,71,23,186,51,216,85,48,193,46,205,253,152,186,185,52,180,173,15,50,222,156,203,48,208,185,41,30,109,15,43,24,137,0,18,38,34,27,200,26,202,190,95,232,157,31,78,249,85,209,140,2,228,90,49,247,10,248,19,54,20,254,188,253,162,157,167,99,197,10,156,253,167,157,173,0,45,250,119,25,137,234,195,215,36,87,147,25,251,241,187,180,31,250,92,1,104,160,2,31,125,181,254,156,38,207,169,61,143,4,4,109,56,180,83,0,153,101,139,163,180,204,20,222,2,1,61,4,103,117,99,240,138,235,184,2,194,214,162,40,225,52,116,8,92,83,22,0,114,70,112,255,218,102,163,57,83,64,203,86,155,10,197,2,22,7,190,94,88,227,42,82,252,231,2,254,99,97,184,63,47,8,147,5,53,49,161,104,31,171,2,252,109,241,106,157,123,249,110,249,186,187,89,234,227,167,210,215,112,89,74,196,242,198,127,104,35,4,202,13,30,61,139,191,196,69,98,83,33,218,155,202,92,177,157,8,63,110,216,66,87,198,64,242,124,158,63,252,141,43,143,116,50,171,107,43,93,3,186,184,27,247,231,5,12,7,109,2,52,220,106,186,200,239,85,255,236,7,185,215,221,219,38,66,106,6,113,29,233,220,12,79,226,2,0,7,75,45,16,27,161,73,242,97,153,191,7,115,71,193,22,251,30,26,168,218,212,60,217,2,33,57,73,255,165,182,201,200,23,85,186,236,68,81,204,240,123,91,94,240,246,217,34,229,8,107,210,111,120,12,162,0,215,250,68,13,179,229,171,69,42,163,153,186,182,18,171,184,170,72,197,196,207,193,83,63,205,11,80,58,53,168,92,96,8,174,175,249,21,4,68,114,157,40,136,0,213,229,87,102,128,171,101,10,129,181,189,160,96,199,177,253,82,63,187,86,158,229,146,254,14,1,218,2,111,75,53,8,129,103,221,29,212,0,48,202,143,188,230,96,36,80,58,250,119,97,252,106,166,167,36,168,225,180,37,4,10,212,213,1,77,251,67,239,183,7,13,90,84,188,255,246,68,239,193,20,63,246,95,8,109,75,112,240,15,224,180,114,237,6,83,117,9,5,150,206,245,108,86,40,150,1,205,251,91,228,224,228,0,195,9,105,196,175,78,2,229,254,36,21,146,2,94,19,26,165,127,195,186,36,225,182,199,31,169,209,20,181,102,97,209,176,84,155,252,100,162,239,233,173,255,4,124,5,91,105,187,195,207,194,77,4,220,250,222,7,76,38,186,170,104,37,68,102,234,253,185,173,14,43,76,175,65,254,223,62,218,234,59,96,119,118,95,199,85,0,111,183,141,73,83,40,171,22,104,230,107,249,254,111,126,214,236,255,165,40,27,4,159,55,154,81,59,231,222,25,150,54,168,252,123,201,114,49,183,20,219,199,174,253,235,19,178,88,144,21,28,254,15,165,212,100,190,3,228,65,234,184,102,250,249,86,213,52,7,57,8,190,229,51,56,56,214,20,232,41,195,253,237,245,201,104,137,22,150,254,215,202,156,30,224,12,202,247,251,255,29,20,91,255,225,248,87,8,209,18,226,206,189,172,253,211,18,49,240,41,226,81,6,33,15,52,212,70,58,62,9,227,79,108,204,177,12,8,207,1,143,235,141,1,79,41,222,118,162,252,69,156,41,36,78,198,174,211,172,11,127,5,214,104,106,80,222,195,110,100,234,212,19,12,7,174,76,82,49,84,128,8,230,234,142,221,135,182,182,228,27,18,85,158,47,18,158,250,2,69,95,255,29,205,8,44,14,87,142,69,97,222,116,13,22,248,27,88,66,229,232,4,204,101,102,68,139,248,141,185,90,14,157,53,121,176,203,213,44,214,169,242,57,240,23,253,135,0,233,49,0,24,181,205,114,2,72,254,5,33,159,2,54,16,99,235,192,166,45,33,100,105,0,251,2,19,192,216,255,4,171,30}, {107,106,85,254,78,0,226,201,199,203,0,27,204,103,114,167,208,65,37,5,198,4,41,0,6,29,103,89,111,236,204,209,229,225,223,45,110,213,252,239,49,79,196,42,134,11,239,159,90,245,94,12,244,230,214,205,70,248,201,72,23,161,75,245,235,204,164,111,134,186,126,28,247,173,194,202,244,216,9,118,14,30,28,6,244,42,239,218,66,56,59,23,201,252,25,178,204,0,144,247,160,64,3,228,232,62,91,185,166,155,27,27,44,199,29,157,50,60,42,50,255,233,69,45,196,246,54,196,197,230,151,212,225,254,193,5,69,190,136,102,149,73,90,194,21,81,18,219,59,109,80,177,202,18,46,200,34,5,46,244,119,218,242,2,206,79,30,251,18,187,57,111,250,168,179,7,165,243,245,191,223,190,90,183,162,170,19,248,130,8,116,255,80,190,182,16,190,1,46,251,239,205,203,3,42,214,43,2,214,56,110,55,139,14,16,210,148,208,92,245,33,200,254,41,199,43,92,181,116,254,56,202,234,88,53,1,173,176,84,73,139,41,98,249,113,166,19,236,169,4,132,214,40,44,150,199,58,198,137,185,175,66,140,175,124,178,98,180,108,80,113,219,188,23,190,23,217,35,217,21,162,32,141,6,229,8,250,174,222,240,86,175,215,247,73,165,249,85,237,235,222,3,110,5,147,236,5,253,210,56,235,248,6,29,52,55,128,249,65,196,173,17,33,56,215,252,106,254,232,1,76,2,18,206,243,254,95,249,184,4,134,230,115,63,5,59,183,224,203,34,207,71,108,204,64,39,33,249,220,101,80,108,213,61,118,100,201,255,221,93,36,250,168,197,184,57,49,72,1,1,215,247,182,89,254,40,91,21,250,168,114,47,183,250,176,105,180,202,218,75,129,34,160,19,238,255,161,99,193,231,104,21,177,16,110,190,46,161,180,12,135,240,174,225,99,254,198,118,150,62,243,8,150,244,250,197,83,238,233,218,18,247,202,187,210,3,39,248,26,45,227,8,155,249,225,169,249,92,215,117,231,77,241,87,205,49,229,72,97,1,192,11,44,220,129,194,11,5,79,186,16,90,166,37,144,156,210,202,137,114,6,91,197,199,218,181,109,245,39,165,88,177,247,229,119,254,155,13,166,213,111,242,235,11,66,192,199,109,31,173,32,80,103,192,67,19,38,166,144,2,81,34,139,189,186,29,168,37,158,184,181,179,177,1,171,237,232,2,83,229,40,87,107,249,160,228,209,239,98,29,108,116,126,0,5,7,152,86,76,72,18,99,127,220,178,0,128,86,182,67,72,74,181,83,29,250,99,206,203,223,118,4,177,70,98,240,41,244,105,167,16,86,222,3,163,171,189,39,230,165,61,98,88,190,231,234,197,53,152,93,13,7,240,187,60,27,151,164,75,33,141,13,184,158,224,52,155,211,181,180,204,194,65,51,2,6,126,87,83,23,27,179,148,98,205,60,239,164,231,218,98,239,228,160,13,2,100,164,1,170,133,117,25,49,15,64,109,162,158,248,207,84,9,229,249,217,143,108,126,74,212,7,31,11,123,180,209,189,99,26,195,20,82,0,118,179,151,76,71,7,193,163,95,246,222,73,51,255,90,169,185,1,35,8,149,61,254,8,146,252,45,213,55,105,43,167,251,57,204,34,16,113,37,61,70,162,199,240,60,201,141,184,190,176,140,251,18,11,235,48,241,160,198,32,169,118,218,55,113,95,188,178,64,81,41,92,201,253,117,61,85,43,48,68,70,168,246,105,143,197,9,86,227,10,13,52,252,40,206,203,223,94,47,100,125,158,195,180,64,158,184,101,142,4,33,244,77,37,231,246,17,25,82,6,74,112,10,43,15,3,181,84,179,170,199,8,15,254,195,189,149,254,123,185,196,194,242,232,79,197,108,8,49,250,21,21,50,169,2,240,238,51,36,16,244,74,63,174,53,249,15,164,227,211,53,199,239,172,14,2,173,0,245,161,156,189,148,192,11,12,215,22,131,204,112,231,233,22,91,13,88,13,175,251,17,79,28,228,122,221,4,191,77,5,114,197,68,98,89,160,15,235,214,249,119,96,255,7,148,240,165,109,58,218,65,39,193,172,124,221,1,197,179,1,157,231,225,226,249,54,68,229,235,253,72,37,19,251,205,206,0,158,242,247,29,189,2,240,51,231,136,253,175,247,5,85,21,96,23,38,231,70,227,91,56,11,55,45,238,94,60,111,35,205,250,187,71,103,165,0,188,228,115,6,250,211,27,168,60,57,140,70,236,97,11,170,177,52,164,3,220,4,35,200,87,70,164,61,59,1,146,83,11,102,254,194,152,75,156,62,240,7,133,95,164,69,237,178,242,199,66,101,217,211,246,206,142,6,92,2,86,202,97,180,12,93,170,86,178,94,12,249,127,247,223,251,151,251,239,87,98,230,112,11,246,82,67,34,237,14,39,18,154,234,136,95,244,227,138,109,24,59,58,220,52,226,140,109,152,48,30,78,151,38,187,0,171,53,142,182,62,253,78,207,223,252,229,178,125,204,139,89,132,246,221,99,200,187,226,218,171,67,137,182,137,39,169,243,187,32,210,17,114,206,80,84,154,228,30,252,210,76,32,104,253,2,247,251,45,233,75,226,29,103,251,72,49,219,185,168,11,208,167,168,119,222,29,254,206,209,227,52,71,22,200,247,218,232,199,2,122,214,94,241,76,80,227,221,70,248,38,12,168,76,67,1,15,231,218,238,67,17,169,176,243,38,81,205,49,62,118,184,113,234,215,76,187,57,24,211,24,74,116,83,17,90,42,185,20,221,34,244,190,27,83,87,207,41,55,176,11,217,149,5,115,159,42,106,134,7,118,252,6,168,253,1,165,71,146,53,107,199,224,255,30,21,52,74,230,193,91,248,137,180,205,86,53,251,36,103,41,219,83,40,82,68}, } ; static const unsigned char precomputed_core_scale3sntrup653_n[precomputed_core_scale3sntrup653_NUM][crypto_core_INPUTBYTES] = { {132,61,82,149,121,42,229,103,165,63,222,217,64,64,216,236,132,88,7,61,94,27,169,172,18,114,113,240,225,200,18,122,27,234,128,128,221,177,132,210,34,29,24,130,27,43,29,189,113,213,95,22,160,6,184,114,119,70,178,110,91,8,28,177,140,45,148,122,103,86,240,165,238,61,32,43,183,89,103,175,173,57,173,250,82,115,255,127,165,87,17,70,134,157,167,16,141,232,125,126,27,186,177,176,94,127,59,95,228,133,128,192,77,127,237,128,172,234,88,39,42,70,93,245,251,77,222,6,51,69,146,74,8,184,172,103,131,90,86,236,205,117,10,137,194,163,54,53,136,232,123,61,163,7,3,164,34,195,183,78,82,156,212,68,188,56,155,159,245,118,170,173,71,64,217,156,207,109,193,107,100,234,247,176,31,155,91,121,173,221,222,198,190,64,169,173,178,73,224,141,22,9,3,14,1,239,230,191,167,27,126,107,246,165,220,39,87,159,88,60,24,219,90,110,107,125,228,224,234,255,166,35,231,247,178,206,39,125,130,110,131,235,216,183,29,145,61,236,166,15,74,35,161,139,63,112,123,18,183,125,208,191,120,122,121,53,104,172,190,42,31,149,120,67,127,161,58,217,14,36,97,218,162,48,202,158,228,70,125,51,226,243,14,11,114,251,34,117,79,154,204,246,114,244,87,218,42,96,158,98,194,27,145,102,16,139,153,26,172,203,68,147,210,90,40,205,245,9,69,96,153,158,44,126,178,59,136,249,240,183,245,28,31,191,246,116,234,207,26,201,84,18,194,215,210,54,239,228,46,249,55,152,150,133,57,201,137,195,114,66,65,70,19,20,26,94,216,72,153,255,242,82,67,192,67,49,104,246,18,69,211,19,126,34,14,242,198,141,9,115,56,76,92,190,180,49,130,33,240,89,58,208,145,235,136,58,163,65,160,95,221,239,212,158,134,29,120,58,121,159,198,152,135,242,27,185,202,10,121,17,198,38,153,156,67,186,194,36,128,124,31,201,77,70,34,30,59,81,155,101,150,225,27,186,75,139,55,20,105,250,109,222,62,40,234,213,73,134,93,168,138,70,112,2,162,27,77,19,138,195,214,16,50,246,180,184,68,43,200,2,234,191,4,221,76,178,87,130,140,210,141,123,184,118,177,103,81,123,123,4,227,127,126,3,90,31,103,119,168,69,235,57,180,149,202,173,27,245,254,147,52,139,199,235,213,132,132,107,32,207,42,82,209,190,32,30,154,164,126,141,112,69,171,199,145,241,2,213,43,5,12,28,77,248,231,172,97,114,113,20,138,50,195,0,26,62,75,40,136,66,188,151,167,20,186,212,187,144,31,41,24,243,183,115,26,29,78,255,161,69,87,24,49,87,59,215,122,243,211,216,239,24,152,5,144,153,127,91,152,21,149,252,22,22,80,172,4,1,130,142,188,221,99,71,160,128,243,56,78,117,22,187,185,39,9,42,215,39,68,32,61,89,204,16,169,110,100,45,198,5,11,232,25,59,108,188,231,131,192,186,251,241,75,55,1,35,130,85,134,138,147,255,70,164,25,166,12,72,51,1,115,67,213,197,215,63,115,230,221,74,103,70,182,38,35,67,202,243,217,83,210,76,41,62,17,73,167,131,29,131,120,127,138,121,83,232,228,9,250,30,113,127,195,34,68,76,68,43,152,114,185,4,0,53,157,1,69,20,129,1,41,224,22,48,69,89,71,221,106,154,3,254,85,254,117,51,26,6,239,150,127,161,57,131,50,206,233,74,181,199,37,241,195,226,21,224,180,121,17,115,110,112,100,2,148,46,120,112,146,74,179,228,115,76,236,41,17,236,182,59,55,221,52,91,2,135,8,149,5,171,194,122,135,117,244,28,14,15,171,15,249,131,186,221,2,40,179,93,198,255,255,215,233,124,20,35,119,29,71,8,35,34,24,51,117,15,76,142,144,141,237,28,183,0,3,188,43,22,52,32,242,181,27,76,194,96,78,154,83,154,181,182,192,19,230,226,173,7,123,153,237,186,20,91,186,125,174,119,98,60,44,231,239,149,112,180,2,71,126,149,23,135,160,117,233,176,56,193,144,208,154,80,152,146,26,209,174,239,91,158,75,11,2,22,221,188,182,88,4,87,9,81,125,252,211,91,21,177,218,84,29,114,53,6,159,39,34,37,38,128,194,21,211,108,40,217,199,118,71,173,209,81,241,6,133,156,139,147,202,156,43,204,215,241,64,189,165,204,13,245,24,148,121,254,12,197,251,168,213,30,18,110,29,144,42,217,30,160,201,67,119,126,5,157,178,172,164,154,116,111,227,32,49,102,108,42,35,52,8,109,7,186,189,142,135,182,233,66,126,131,118,33,43,210,224,199,64,60,232,202,5,223,142,85,213,178,10,92,83,188,153,217,81,77,94,242,24,59,92,40,98,112,209,223,169,57,51,226,226,10,163,141,167,64,72,17,72,62,189,39,179,62,175,1,164,118,217,162,114,96,66,235,71,127,195,67,228,8,54,32,28,198,29,108,65,89,161,237,100,154,190,51,229,18,122,132,23,233,170,103,228,173,92,175,17,253,16,230,70,142,178,211,24,245,163,127,166,89,76,29,124,95,123,136,178,57,187,136,203,151,144,119,254,69,228,55,43,103,252,26,13,25,62,57,121,132,191,81,121,160,20,135,234,28,162,119,35,11,73,156,231,199,78,101,160,82,51,106,28,54,199,39,243,48,128,18,238,52,18,176,129,244,153,53,84,248,248,29,174,127,41,102,80,30,195,136,170,112,186,185,234,102,159,90,22,217,95,102,137,24,65,27,213,174,215,195,21,8,81,122,4,24,129,113,208,120,156,70,20,184,155,250,218,124,41,253,162,216,193,82,231,167,57,221,75,233,41,231,147,15,168,86,172,76,50,47,121,86,116,234,52,202,140,160,205,244}, {120,117,58,30,91,66,198,177,27,74,230,135,3,182,106,218,202,8,194,87,113,47,82,84,196,204,251,232,168,135,61,51,74,99,254,245,88,85,17,233,136,77,116,112,70,36,32,88,91,205,202,110,221,45,134,21,148,171,12,11,23,70,40,249,235,225,13,203,234,149,75,161,135,116,74,109,192,189,0,16,250,25,16,67,210,20,38,163,47,40,190,153,174,101,219,86,30,90,255,198,32,189,239,94,141,77,248,217,141,215,168,138,162,113,241,149,142,23,170,73,64,64,81,103,171,187,167,207,244,211,91,152,66,129,78,125,106,134,231,30,18,251,219,129,150,168,125,18,141,210,140,209,117,163,82,12,237,105,19,213,12,135,43,59,216,133,142,2,2,165,33,112,21,220,196,140,71,202,196,218,190,93,97,202,81,112,47,142,246,151,236,239,141,228,148,219,239,19,54,112,84,160,36,116,139,131,42,176,205,136,174,246,33,178,18,44,27,135,90,111,59,117,207,188,49,127,17,197,5,68,189,158,142,55,230,100,139,234,54,170,209,63,240,149,141,79,209,178,96,60,112,102,146,229,18,83,51,197,209,90,118,225,22,73,226,113,203,187,248,112,41,230,248,64,184,32,141,234,245,63,159,101,208,63,65,44,240,144,49,57,71,114,129,198,57,184,64,205,17,124,245,156,54,179,120,167,232,222,139,70,169,202,162,207,51,36,138,111,247,80,19,142,30,249,95,85,177,155,61,49,234,170,176,245,201,179,255,211,193,189,95,150,149,255,253,92,33,58,174,120,186,55,147,51,20,33,59,147,119,108,73,155,231,171,65,161,7,78,156,52,195,165,142,139,226,61,45,2,76,177,33,71,197,161,197,94,176,88,101,90,103,58,190,172,37,28,42,140,92,11,195,177,186,173,92,249,195,216,250,139,151,105,165,77,177,104,71,11,30,132,114,2,103,166,150,145,221,189,212,112,150,5,30,47,131,175,203,68,94,54,26,50,30,239,66,50,105,16,247,248,65,54,75,237,230,220,156,89,238,30,141,240,59,22,132,97,115,211,88,204,251,82,210,103,59,10,241,215,141,173,38,115,243,36,119,181,153,24,4,17,74,181,191,155,158,119,40,66,76,213,139,167,3,242,203,23,137,27,29,198,5,42,240,209,206,133,47,79,131,85,50,194,204,126,238,148,34,4,235,35,196,13,100,65,143,130,218,54,217,15,214,33,233,121,60,143,4,201,222,2,106,55,187,18,22,243,163,152,103,158,188,214,31,74,95,94,108,164,45,2,73,27,36,157,160,224,43,59,204,77,23,190,108,20,104,27,75,188,44,37,118,97,119,194,241,69,235,6,249,92,48,112,104,97,108,92,147,146,143,36,176,46,96,76,239,125,76,144,233,52,168,62,3,238,56,94,74,184,68,192,249,81,14,13,149,185,44,248,118,61,66,201,185,6,176,150,101,5,6,241,149,15,18,17,114,44,32,206,135,146,235,174,77,23,156,58,10,194,48,149,23,204,61,48,168,213,62,64,228,101,145,96,178,163,112,227,97,147,238,61,118,242,53,4,187,180,66,193,61,51,121,162,167,61,7,74,10,172,116,203,117,84,162,110,68,37,55,184,157,186,212,110,122,223,166,53,1,157,247,232,19,7,104,227,143,177,19,70,48,215,19,82,47,88,243,193,152,210,30,132,93,96,109,3,85,3,250,244,52,13,61,129,240,158,17,105,208,34,129,158,91,234,183,33,130,35,128,1,185,115,249,214,65,22,90,234,140,119,36,168,121,186,67,122,49,147,34,197,201,27,188,160,73,125,84,246,19,128,156,175,164,225,165,32,71,247,222,122,241,224,66,22,118,49,157,226,238,95,164,29,19,149,187,247,121,241,186,153,61,144,221,182,176,153,108,120,78,105,22,171,90,138,47,3,29,105,191,211,64,247,66,184,51,28,182,183,37,251,44,63,106,153,182,169,63,185,58,6,154,60,174,204,119,163,137,210,85,61,251,178,170,199,8,206,204,221,143,65,194,156,166,149,78,18,219,218,207,135,237,132,248,90,5,89,101,203,51,209,86,43,51,227,126,79,144,222,39,44,219,124,245,59,204,71,157,119,233,66,61,240,249,232,205,250,124,175,65,253,22,143,152,86,13,81,199,252,101,78,219,71,122,226,59,152,46,239,8,215,132,109,40,21,161,5,212,59,232,26,83,114,139,245,144,53,111,57,108,50,198,223,184,223,62,244,57,143,112,229,230,217,53,39,156,35,164,136,157,184,41,25,125,148,93,90,0,80,6,249,111,254,58,6,118,29,135,3,124,117,123,69,124,202,31,123,209,198,163,64,199,11,71,192,21,163,233,57,5,206,151,37,84,60,60,8,215,174,124,171,89,7,76,85,104,199,23,192,205,31,18,209,44,245,165,229,148,7,69,229,255,23,77,37,148,184,229,173,107,13,122,152,91,246,17,159,244,127,222,74,231,74,213,154,78,106,78,46,110,78,56,96,180,216,77,244,90,113,100,43,8,199,173,44,21,104,179,205,53,57,35,148,152,67,182,234,47,46,21,32,136,78,205,82,246,208,64,129,149,233,144,38,74,173,55,62,150,138,173,100,102,17,33,220,221,188,230,26,93,145,230,113,164,46,240,211,209,112,113,243,221,48,49,74,80,230,93,105,80,182,10,227,1,23,240,179,125,46,11,238,169,83,135,21,109,31,70,3,47,69,143,160,78,161,120,61,156,167,5,247,71,204,95,76,140,77,9,178,20,230,164,188,169,28,31,11,164,166,46,79,201,114,93,50,39,96,141,225,57,241,108,226,3,170,116,243,181,212,179,188,23,236,216,167,20,32,211,188,29,52,86,47,243,240,91,90,13,235,92,207,178,234,70,138,84,90,36,103,246,13,76,250,56,39,235,146,161,148,102,238,151,170,230,175,68,172,109,6}, {99,152,76,13,138,56,65,209,9,86,136,173,195,230,248,212,102,25,28,197,83,13,89,138,242,141,251,242,248,87,60,88,192,160,170,189,48,145,117,41,38,146,247,204,244,30,176,157,153,229,230,2,243,183,129,93,54,38,224,122,73,177,63,226,35,202,12,7,157,89,190,10,163,13,236,11,204,173,143,112,161,194,220,118,110,67,147,18,249,85,88,198,131,251,226,141,185,54,26,35,172,102,170,126,144,81,61,125,68,116,241,70,193,27,119,195,85,201,86,206,122,153,112,95,47,197,212,14,135,60,202,39,248,24,160,82,221,136,168,63,125,238,183,117,32,172,80,114,146,197,168,200,12,180,94,182,212,195,39,142,150,95,21,173,108,215,142,152,175,129,24,197,0,83,8,247,205,66,48,150,161,165,209,168,173,10,254,193,166,208,60,94,236,2,233,51,206,115,63,197,72,37,68,112,103,229,202,16,189,141,33,184,221,28,111,40,229,46,176,130,53,254,177,28,123,15,28,186,175,247,40,56,52,51,88,239,140,239,232,52,250,73,159,127,255,68,27,85,121,189,110,238,165,192,247,5,229,50,249,188,248,179,187,9,182,62,20,9,127,22,48,71,111,118,133,193,174,188,43,163,228,136,7,161,11,61,195,30,250,250,114,225,83,38,157,127,201,104,230,251,202,221,194,231,140,198,182,26,94,167,104,16,31,15,253,148,191,232,201,234,247,140,212,95,128,178,134,119,179,45,119,233,109,41,249,42,53,176,75,116,49,186,76,88,65,138,181,184,63,169,235,98,74,232,52,242,62,191,12,18,97,207,177,211,18,220,214,36,45,55,241,148,146,245,69,143,2,180,126,109,79,255,20,96,232,249,80,37,168,109,45,5,201,225,92,100,243,5,226,28,232,34,166,185,145,86,172,190,59,21,105,119,149,37,47,81,197,74,132,158,225,65,30,123,36,201,76,198,74,115,174,226,98,151,118,107,154,21,64,249,217,226,66,194,141,222,180,22,155,131,72,22,65,141,18,16,126,96,104,99,50,6,181,18,101,100,71,100,63,228,198,156,142,16,26,83,24,149,132,171,251,206,187,167,93,3,96,109,173,78,67,5,135,46,60,39,70,180,133,78,222,131,62,6,15,254,44,185,212,242,146,236,187,205,224,99,250,159,58,54,100,89,35,177,201,132,5,187,208,139,251,216,179,233,146,26,214,80,91,42,185,224,32,6,226,39,42,219,141,147,173,238,86,0,191,86,124,130,114,159,127,72,232,0,231,150,229,104,250,108,205,252,35,119,97,91,213,114,33,79,77,40,144,110,32,198,72,120,56,180,232,250,97,8,153,37,25,155,189,118,165,156,86,255,208,123,151,112,20,94,130,166,22,193,58,126,6,51,5,90,32,245,31,217,122,162,41,89,143,56,196,242,242,49,151,236,127,206,191,144,247,230,132,211,16,178,157,10,185,111,42,143,155,114,37,119,92,237,218,146,197,223,142,179,196,42,247,198,110,145,17,160,37,132,21,84,222,105,52,130,183,221,40,191,206,177,143,55,184,173,158,166,85,252,32,80,13,238,31,56,233,73,199,255,83,179,228,65,240,237,17,28,206,172,42,101,244,152,179,117,71,80,81,252,200,191,95,100,58,201,85,209,132,228,92,44,190,143,178,83,185,14,137,237,75,26,243,0,186,195,114,176,136,225,148,231,12,205,143,243,27,33,149,159,216,121,27,74,163,66,7,241,7,127,245,213,215,180,229,176,157,83,27,181,226,155,232,199,95,48,132,141,65,12,138,55,61,30,232,144,150,58,32,27,158,180,31,196,184,220,35,38,169,222,148,174,7,172,27,44,142,19,216,170,152,70,204,210,209,221,38,180,124,54,144,47,113,60,140,78,117,112,152,205,219,155,134,255,171,79,158,171,212,201,103,173,218,125,78,101,237,164,97,61,214,56,81,38,187,32,109,89,44,209,3,127,51,135,93,135,156,139,8,166,255,149,246,91,30,175,18,159,142,252,94,121,109,227,4,3,189,73,154,183,102,161,36,94,126,116,33,74,86,239,235,214,254,178,32,45,84,166,131,233,86,42,33,190,131,250,239,83,26,70,241,240,81,144,178,211,61,223,201,6,247,84,187,183,53,92,121,12,175,219,38,59,237,188,156,225,156,16,52,149,173,139,209,123,236,52,109,216,3,125,135,244,244,51,85,172,131,178,120,126,58,59,150,229,30,178,244,168,74,173,115,189,143,221,39,189,27,40,253,175,228,51,9,191,21,223,188,78,164,197,239,242,24,38,44,216,198,145,24,250,118,140,222,115,32,190,232,98,201,70,202,247,89,43,123,65,164,170,230,104,9,172,228,109,141,118,186,241,249,99,225,194,56,84,122,146,213,107,236,12,154,60,58,255,168,12,149,35,223,183,5,164,86,134,75,210,153,92,251,27,159,55,209,174,2,35,246,108,92,110,169,142,166,108,23,110,161,183,167,190,146,78,160,246,242,40,50,184,50,170,238,146,227,186,79,10,63,247,250,249,14,98,120,176,156,247,29,88,74,12,71,148,144,51,80,235,181,107,255,19,165,118,177,187,180,108,75,200,109,197,84,240,116,127,149,138,85,167,69,171,214,157,222,91,116,190,249,130,229,4,104,131,18,18,107,145,139,64,147,180,132,178,161,211,125,203,155,144,41,210,159,235,96,95,254,51,115,33,106,119,209,252,243,242,43,153,126,225,227,240,184,182,24,132,20,12,138,83,5,29,117,170,176,147,7,106,9,35,137,114,28,68,43,181,3,162,184,120,103,70,73,166,243,39,209,28,217,82,128,226,205,10,142,194,36,138,234,235,181,150,52,160,100,159,174,163,126,79,82,193,175,184,56,233,213,6,105,249,6,17,53,86,193,96,114,72,145,49,190,187,123,126,175,89,5,183,145,151,4,93,232,186}, {40,212,24,164,107,79,71,61,62,147,175,185,243,125,119,220,159,198,183,1,66,172,180,164,177,15,124,206,118,243,149,234,72,69,164,106,203,235,165,244,106,32,155,105,49,95,246,217,111,246,121,95,77,156,67,233,194,82,242,200,174,47,106,246,74,62,59,43,211,226,217,100,78,137,231,146,77,66,178,130,9,16,180,172,171,105,246,66,197,24,24,99,242,4,4,224,68,0,223,173,143,27,82,155,167,197,26,141,51,131,184,185,181,145,176,131,21,26,189,22,166,242,198,191,61,76,99,59,232,70,46,150,75,170,235,1,104,57,135,125,54,201,111,229,182,203,87,152,24,213,193,223,157,97,11,146,101,178,11,246,206,66,85,92,73,203,10,169,87,56,194,213,79,50,226,81,136,160,248,57,70,228,111,140,135,221,177,82,214,2,205,249,193,142,65,182,153,6,186,83,246,147,234,165,95,65,104,177,161,195,41,195,136,181,1,64,45,234,197,75,92,231,89,105,156,20,197,139,205,78,185,146,253,120,184,79,224,52,203,115,136,190,118,168,204,134,2,158,227,86,125,65,103,191,131,60,15,60,212,55,148,113,213,137,37,224,199,224,211,32,204,237,67,99,153,184,162,188,162,98,229,16,128,81,166,179,79,52,155,159,195,137,76,3,20,49,2,120,160,72,155,80,122,172,130,243,87,84,245,24,74,162,177,15,107,24,128,168,188,144,62,97,186,24,76,90,125,5,248,85,21,80,87,233,162,249,198,247,232,86,211,70,128,112,6,111,142,239,72,188,244,29,117,147,111,104,92,162,163,210,31,42,246,111,129,39,148,164,78,37,187,174,137,230,151,110,106,115,252,164,157,82,65,121,89,190,120,98,79,50,213,21,142,77,63,41,141,61,77,31,218,102,143,12,250,255,58,39,60,71,39,13,234,96,203,142,11,133,235,180,126,159,139,154,208,90,241,130,225,26,0,9,131,75,79,145,194,158,244,66,6,253,63,227,151,80,13,168,13,21,80,94,56,89,156,50,2,37,76,45,252,31,170,120,158,22,166,115,28,165,239,9,181,152,124,229,170,251,22,56,95,121,145,18,129,131,151,61,50,44,177,121,232,145,239,139,32,161,94,134,25,53,78,241,125,255,56,181,51,65,118,245,168,180,103,143,156,42,6,137,15,118,30,58,112,12,179,134,129,165,202,102,42,57,237,15,231,103,219,140,56,139,140,250,138,158,248,0,194,155,103,120,40,89,49,70,236,73,37,101,211,44,217,176,6,179,55,120,115,115,181,209,38,238,230,170,47,120,65,199,199,30,150,204,95,83,114,233,234,153,210,86,234,114,199,244,180,160,116,220,95,205,249,177,50,51,238,189,243,219,110,209,25,228,158,157,70,109,55,37,175,87,161,56,195,185,46,134,200,187,222,95,57,132,79,194,218,149,56,54,149,229,26,23,5,8,217,205,32,99,90,224,139,209,158,111,246,48,158,237,199,73,157,47,94,177,29,134,252,135,134,130,98,22,180,112,32,48,219,76,244,204,84,70,164,66,52,42,217,30,156,2,100,180,122,139,236,227,208,14,240,12,23,250,35,139,140,31,28,179,60,219,198,246,249,115,192,5,111,50,228,79,97,173,54,197,89,94,53,90,96,150,108,126,10,135,88,25,243,102,95,214,102,26,19,48,62,74,101,146,128,55,59,138,51,175,181,9,168,107,76,218,241,16,146,45,77,195,42,123,229,138,111,118,18,122,242,175,214,111,118,20,191,28,19,50,1,212,214,59,178,34,80,180,94,23,3,105,235,61,164,37,20,210,208,46,146,139,17,132,151,210,43,166,92,75,30,189,158,161,10,185,198,172,29,214,93,20,86,80,150,119,226,50,156,179,180,90,146,142,54,176,122,226,61,144,247,156,22,145,211,8,106,89,182,183,183,135,167,244,169,108,187,96,171,201,102,137,22,89,86,219,242,149,184,145,246,136,171,250,62,6,248,47,133,142,45,58,8,10,76,184,210,232,33,71,82,184,120,10,119,10,54,163,10,203,5,70,207,67,253,142,111,172,119,230,27,124,196,132,86,72,67,77,44,38,4,94,45,74,230,127,15,152,26,19,60,222,37,153,252,144,226,79,48,71,156,69,2,195,189,155,74,249,199,103,2,163,64,148,81,217,247,161,176,227,167,244,98,156,135,90,54,247,6,205,182,208,12,104,252,114,80,207,23,95,108,106,169,37,195,213,178,147,79,227,28,211,55,0,229,240,34,252,79,235,90,135,195,195,51,200,83,209,170,50,234,108,59,7,163,7,178,60,204,114,59,197,186,79,53,119,8,40,251,58,55,31,227,26,161,252,134,208,59,29,160,53,247,145,197,39,68,235,163,233,137,93,35,92,195,146,28,54,179,207,61,120,149,37,4,83,38,247,164,4,221,83,84,35,199,70,127,180,1,119,112,17,254,10,188,182,47,72,135,208,77,155,221,127,183,25,15,238,13,240,51,213,55,22,185,202,140,189,233,170,232,23,43,140,106,84,107,148,164,175,72,224,208,232,136,206,125,161,78,39,233,141,71,152,232,113,212,54,50,19,52,75,152,187,245,11,119,233,31,34,47,70,10,84,245,116,15,126,174,177,253,83,96,242,106,69,14,211,88,30,12,67,228,220,170,148,222,220,206,238,95,255,235,63,80,194,28,184,233,161,239,156,237,0,207,150,27,245,115,203,242,67,194,82,17,10,231,116,193,85,86,156,239,158,112,182,52,138,0,19,108,62,106,197,35,226,204,242,76,202,152,110,89,64,183,30,43,119,10,36,95,226,173,67,7,246,153,100,32,35,244,19,14,138,170,151,54,93,34,47,189,126,49,179,35,78,83,135,174,6,230,29,53,109,202,145,241,249,185,183,107,201,243,143,26,162,212,224,158,205,22,175,187,125,180,237,32,190,117,199}, } ; static const unsigned char precomputed_core_scale3sntrup653_k[precomputed_core_scale3sntrup653_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_scale3sntrup653_c[precomputed_core_scale3sntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_scale3sntrup653_impl(long long impl) { unsigned char *h = test_core_scale3sntrup653_h; unsigned char *n = test_core_scale3sntrup653_n; unsigned char *k = test_core_scale3sntrup653_k; unsigned char *c = test_core_scale3sntrup653_c; unsigned char *h2 = test_core_scale3sntrup653_h2; unsigned char *n2 = test_core_scale3sntrup653_n2; unsigned char *k2 = test_core_scale3sntrup653_k2; unsigned char *c2 = test_core_scale3sntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup653(impl); printf("core_scale3sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup653_implementation(impl),ntruprime_dispatch_core_scale3sntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup653; printf("core_scale3sntrup653 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup653_implementation(),ntruprime_core_scale3sntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_scale3sntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_scale3sntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_scale3sntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_scale3sntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_scale3sntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_scale3sntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_scale3sntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_scale3sntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_scale3sntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_scale3sntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_scale3sntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup653")) return; storage_core_scale3sntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_scale3sntrup653_h = aligned(storage_core_scale3sntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_scale3sntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_scale3sntrup653_n = aligned(storage_core_scale3sntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_scale3sntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_scale3sntrup653_k = aligned(storage_core_scale3sntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_scale3sntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_scale3sntrup653_c = aligned(storage_core_scale3sntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_scale3sntrup653_h2 = callocplus(maxalloc); test_core_scale3sntrup653_h2 = aligned(storage_core_scale3sntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_scale3sntrup653_n2 = callocplus(maxalloc); test_core_scale3sntrup653_n2 = aligned(storage_core_scale3sntrup653_n2,crypto_core_INPUTBYTES); storage_core_scale3sntrup653_k2 = callocplus(maxalloc); test_core_scale3sntrup653_k2 = aligned(storage_core_scale3sntrup653_k2,crypto_core_KEYBYTES); storage_core_scale3sntrup653_c2 = callocplus(maxalloc); test_core_scale3sntrup653_c2 = aligned(storage_core_scale3sntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_scale3sntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup653();++impl) forked(test_core_scale3sntrup653_impl,impl); ++test_core_scale3sntrup653_h; ++test_core_scale3sntrup653_n; ++test_core_scale3sntrup653_k; ++test_core_scale3sntrup653_c; ++test_core_scale3sntrup653_h2; ++test_core_scale3sntrup653_n2; ++test_core_scale3sntrup653_k2; ++test_core_scale3sntrup653_c2; } free(storage_core_scale3sntrup653_c2); free(storage_core_scale3sntrup653_k2); free(storage_core_scale3sntrup653_n2); free(storage_core_scale3sntrup653_h2); free(storage_core_scale3sntrup653_c); free(storage_core_scale3sntrup653_k); free(storage_core_scale3sntrup653_n); free(storage_core_scale3sntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_scale3sntrup761.c0000644000000000000000000014776714705505543023757 0ustar rootroot/* ----- core/scale3sntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_scale3sntrup761_checksums[] = { "f6b9859408d1cc2e2701b8df30a0f1d79d7f5a2ecdd6540b2b0581dfda36cdb2", "d6657470f469bfb6616dcac8f672f028e435e89289a47b1987ce736dc189aef5", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_scale3sntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_scale3sntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_scale3sntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_scale3sntrup761_CONSTBYTES static void *storage_core_scale3sntrup761_h; static unsigned char *test_core_scale3sntrup761_h; static void *storage_core_scale3sntrup761_n; static unsigned char *test_core_scale3sntrup761_n; static void *storage_core_scale3sntrup761_k; static unsigned char *test_core_scale3sntrup761_k; static void *storage_core_scale3sntrup761_c; static unsigned char *test_core_scale3sntrup761_c; static void *storage_core_scale3sntrup761_h2; static unsigned char *test_core_scale3sntrup761_h2; static void *storage_core_scale3sntrup761_n2; static unsigned char *test_core_scale3sntrup761_n2; static void *storage_core_scale3sntrup761_k2; static unsigned char *test_core_scale3sntrup761_k2; static void *storage_core_scale3sntrup761_c2; static unsigned char *test_core_scale3sntrup761_c2; #define precomputed_core_scale3sntrup761_NUM 4 static const unsigned char precomputed_core_scale3sntrup761_h[precomputed_core_scale3sntrup761_NUM][crypto_core_OUTPUTBYTES] = { {38,238,24,95,161,201,53,216,35,52,75,156,214,3,13,28,26,54,58,166,0,3,155,8,77,50,14,194,188,3,200,94,78,94,118,4,84,176,246,64,235,158,231,50,254,177,19,239,177,26,187,62,209,163,89,70,54,250,225,216,153,205,99,237,41,37,172,221,0,90,28,251,238,98,136,0,244,0,26,10,21,250,186,1,35,57,166,15,60,19,237,59,53,0,226,4,133,61,46,9,17,198,125,158,116,77,48,204,60,213,58,71,255,158,183,2,223,211,82,6,13,176,125,220,167,30,113,191,115,112,146,163,189,18,64,245,157,35,20,208,131,203,145,191,145,155,189,113,233,85,220,52,11,8,243,92,105,164,80,196,202,2,157,249,45,23,87,183,216,101,18,68,15,198,172,8,1,6,149,246,164,51,137,176,100,112,5,28,86,118,124,10,198,249,119,91,95,184,66,160,86,236,174,3,31,199,155,248,250,14,215,248,232,168,175,175,137,172,139,171,231,26,29,194,68,218,254,221,89,0,56,251,198,160,247,60,31,4,88,45,150,1,101,76,208,205,30,251,127,221,155,83,79,110,235,178,138,12,96,6,229,199,20,18,23,55,168,225,192,35,60,41,39,3,15,81,134,98,93,14,181,28,213,250,62,202,224,219,44,90,216,11,173,10,214,254,51,69,167,255,190,220,13,68,30,98,125,4,31,203,156,5,76,11,5,114,110,229,235,2,112,197,204,237,106,248,144,8,62,243,74,227,248,162,37,251,168,111,208,67,136,161,83,230,21,65,208,254,47,47,218,252,32,214,149,62,233,69,72,251,177,171,183,48,10,199,41,22,58,251,13,188,181,4,53,50,199,182,16,22,243,184,227,86,142,194,73,0,143,54,134,86,29,114,251,169,184,23,93,186,217,209,71,7,120,103,176,24,68,249,133,54,161,211,232,0,89,201,201,21,89,220,113,63,102,207,193,18,196,178,152,197,193,77,135,249,75,18,4,23,244,115,103,214,157,243,22,162,104,44,218,17,103,8,80,255,233,96,243,250,16,24,125,116,97,98,248,94,78,89,101,181,74,249,190,3,126,215,250,154,126,35,190,114,151,231,254,210,67,25,187,27,50,193,253,53,86,50,39,73,17,41,198,187,173,44,80,229,69,233,250,241,130,195,191,28,74,239,65,222,225,225,211,102,155,69,135,205,7,44,167,109,121,8,135,255,24,174,127,226,102,78,4,86,22,4,152,177,220,91,3,220,198,47,98,192,37,88,95,93,40,158,72,1,142,80,31,247,77,101,111,218,50,253,177,5,143,36,26,98,93,6,220,3,82,179,50,195,204,231,147,248,111,227,115,214,227,71,241,94,34,249,155,220,35,227,82,7,67,60,242,5,183,163,249,70,62,93,212,106,119,225,156,112,240,255,236,36,68,31,121,191,81,179,101,171,194,222,227,63,236,193,104,218,254,155,4,164,0,110,65,10,60,21,12,100,56,19,145,110,250,199,205,237,28,37,197,17,99,61,0,52,228,160,92,214,34,111,88,35,170,249,21,19,12,173,123,182,114,182,207,2,39,10,96,189,89,115,222,0,150,33,87,35,233,193,70,185,80,251,206,252,230,56,65,192,102,41,253,213,150,207,198,0,150,77,104,211,212,100,91,160,117,190,69,32,95,72,173,237,10,104,22,67,88,199,132,243,237,67,189,118,185,213,187,230,244,94,225,225,114,164,182,247,136,220,133,86,158,12,198,14,150,66,133,221,137,211,15,176,122,247,65,180,105,56,64,3,206,193,166,2,181,206,215,65,236,164,150,222,15,195,207,172,238,28,150,188,92,221,154,66,22,85,58,219,136,67,209,118,43,63,45,49,61,249,56,61,45,0,213,64,5,231,215,117,229,77,228,118,81,109,82,99,197,34,27,246,71,177,25,167,237,37,55,90,81,25,108,4,23,3,209,114,23,117,161,85,68,32,127,25,19,101,68,176,100,178,86,253,93,211,61,19,253,219,225,178,167,13,44,246,109,102,50,79,60,103,104,231,82,2,5,118,39,7,246,204,225,188,170,23,28,182,127,89,138,1,50,97,91,111,60,207,88,45,126,105,39,168,71,7,60,243,206,81,196,248,123,38,144,234,247,1,171,182,73,106,114,16,200,199,94,209,237,216,231,157,251,50,44,237,107,97,117,246,149,253,229,250,120,51,211,59,141,14,194,2,152,3,244,238,28,168,209,47,202,118,250,171,112,247,214,75,162,8,236,221,206,240,118,215,172,114,147,50,109,38,28,42,35,173,129,159,31,36,186,161,37,39,230,6,7,200,45,228,35,47,107,70,213,4,56,183,88,236,137,195,198,2,253,58,75,219,123,4,197,167,221,44,146,46,150,53,223,4,53,253,46,74,31,93,126,47,101,173,24,198,48,203,239,36,219,173,9,178,221,100,116,69,46,5,32,65,34,241,161,41,209,115,183,247,104,180,108,205,200,237,204,58,53,250,4,222,212,97,124,70,117,192,190,78,227,3,97,181,78,55,220,209,149,15,96,247,122,203,177,251,170,2,187,251,254,62,134,53,78,184,102,161,118,1,159,242,30,21,24,6,156,207,119,87,41,221,232,210,98,38,230,11,156,4,226,177,185,27,187,3,214,206,131,28,247,93,229,169,208,251,135,101,81,24,145,254,248,219,84,39,51,88,34,30,42,188,56,178,26,81,100,82,25,21,233,182,181,230,85,82,202,82,200,194,244,62,185,181,89,241,135,59,40,117,22,3,216,25,88,78,127,185,25,4,123,198,107,250,87,195,9,186,88,24,225,10,115,248,29,155,84,247,156,210,71,30,149,245,209,84,49,30,253,246,183,92,229,245,232,254,101,252,53,109,87,246,26,0,62,246,189,70,19,80,241,174,110,233,124,108,8,58,17,198,253,82,40,255,208,53,111,195,93,83,70,25,59,2,86,249,161,200,207,250,222,85,168,62,2,194,196,157,43,28,225,249,80,205,220,100,185,239,18,78,93,103,0,109,63,50,246,20,110,183,219,184,10,185,63,173,208,67,42,53,218,247,189,94,99,3,164,249,105,253,5,88,211,99,250,214,135,98,26,182,102,75,147,174,42,97,227,54,46,205,230,104,75,8,65,170,147,91,160,181,77,4,204,176,250,109,185,215,41,97,255,194,102,79,232,239,158,165,25,7,38,248,127,19,63,2,113,24,222,50,107,157,47,102,19,254,111,17,175,223,103,227,131,219,115,50,225,253,214,168,107,86,214,6,97,209,105,102,211,71,116,78,199,34,100,80,52,108,114,114,160,77,150,4,162,253,120,233,212,91,89,71,101,65,117,174,239,5,232,196,83,156,188,46,200,114,230,112,195,21,17,17,162,55,124,97,84,251,235,247,22,181,131,118,165,8,4,186,226,69,175,217,15,109,50,76,53,6,236,99}, {83,42,186,7,2,79,96,195,46,22,76,12,104,113,241,247,231,206,65,87,94,8,13,7,48,254,175,60,91,106,202,51,235,95,113,72,35,169,85,239,86,42,168,39,2,243,74,67,187,241,202,85,104,111,0,53,252,207,88,165,174,39,8,195,1,233,157,113,246,69,27,171,184,83,231,77,48,30,37,195,106,70,6,7,148,69,121,176,127,62,63,110,147,176,205,97,224,180,243,75,21,253,73,194,231,82,149,51,89,9,1,211,122,176,130,71,43,203,80,157,53,52,76,77,118,38,56,105,97,92,31,3,62,107,15,77,113,59,85,199,196,2,195,48,130,159,85,219,11,250,174,107,88,254,129,165,139,165,176,168,234,162,12,109,231,47,46,221,90,76,174,75,148,178,100,166,0,177,8,240,65,206,144,184,19,161,71,253,4,210,176,86,109,77,202,158,63,8,169,176,199,1,73,46,157,247,39,252,179,6,82,5,216,46,77,113,44,253,130,255,129,80,184,55,92,250,245,71,107,228,82,201,179,169,177,167,176,215,189,49,250,7,206,110,236,49,235,4,16,50,3,168,36,254,194,172,45,39,44,175,116,5,89,178,16,45,159,175,239,97,199,155,232,194,174,93,108,244,113,36,8,3,187,196,126,24,12,225,57,8,28,198,182,11,87,223,187,2,141,233,94,109,165,102,102,201,68,248,221,99,253,107,107,85,54,235,254,248,187,109,71,161,1,251,71,60,242,229,164,22,182,174,78,197,226,15,6,155,19,196,126,76,105,15,180,249,21,253,22,55,217,183,79,200,136,54,105,79,230,80,255,68,34,197,203,167,235,7,140,90,243,15,143,20,134,245,110,31,37,231,216,108,168,182,40,167,128,115,11,19,116,78,80,46,98,85,19,111,129,48,13,17,29,15,243,164,2,228,110,39,88,106,125,209,196,195,113,216,210,237,173,156,44,108,137,200,231,162,137,91,159,220,253,11,255,159,177,193,255,100,63,209,3,76,10,108,82,250,93,7,55,81,223,70,153,195,146,67,123,171,104,247,28,25,172,45,122,236,11,40,0,12,235,211,135,215,152,160,117,54,117,198,242,175,85,251,149,58,139,161,242,199,136,249,20,31,243,210,222,61,154,215,11,8,232,225,75,112,9,46,188,193,2,5,171,160,12,52,19,169,0,234,23,15,200,227,150,253,89,5,240,12,16,171,137,160,79,61,76,57,65,163,152,113,188,248,19,112,90,42,181,224,44,37,12,249,58,57,224,215,45,109,184,117,241,31,226,173,239,7,214,68,251,116,203,206,130,211,48,248,64,164,125,221,182,105,251,57,109,15,102,162,20,163,70,88,77,104,236,255,238,176,36,46,236,247,235,9,118,79,251,240,93,8,252,220,36,100,193,6,32,40,116,202,157,22,27,24,162,85,77,33,9,47,161,74,246,252,196,4,157,33,3,83,128,32,98,208,4,218,127,162,129,43,144,182,48,71,144,196,39,55,188,51,247,58,14,23,94,27,66,185,91,103,102,77,26,59,4,37,243,113,192,249,38,214,120,99,224,241,131,85,16,248,235,178,5,8,41,17,248,101,2,108,147,255,105,115,27,190,195,100,248,88,86,240,200,193,227,7,48,2,255,57,87,7,19,59,38,163,176,103,78,28,249,3,229,62,252,182,59,41,160,65,242,247,250,161,178,52,211,8,197,22,205,201,92,216,201,202,77,248,230,114,176,192,247,90,206,39,124,252,83,0,52,168,32,240,144,43,28,167,68,77,54,250,11,11,211,0,229,19,22,75,46,95,173,167,116,0,68,57,7,43,164,9,38,41,46,70,14,71,210,236,9,87,105,182,25,202,23,51,140,194,216,70,119,107,239,33,53,179,179,215,199,171,5,4,238,212,178,169,194,51,142,98,59,253,123,74,65,235,5,90,127,252,90,185,29,41,141,76,46,176,154,200,32,82,99,255,167,212,111,245,156,197,219,47,155,53,138,48,108,1,196,165,209,220,7,253,37,17,125,14,37,18,98,114,230,93,119,228,169,194,80,2,96,228,151,73,76,104,111,102,32,65,100,206,67,2,7,76,71,84,153,200,86,190,249,250,110,14,215,244,131,112,93,105,52,88,211,251,3,224,159,58,243,82,121,173,148,1,71,95,194,48,195,209,162,14,186,213,132,0,246,54,61,0,97,60,244,51,125,2,185,156,239,188,74,213,150,176,153,162,160,100,81,1,210,217,210,73,156,83,249,53,216,6,251,84,251,50,23,227,253,107,30,14,103,251,80,65,228,5,169,90,55,101,246,12,79,251,217,249,240,23,75,84,8,232,157,235,52,4,205,176,20,180,53,208,246,215,214,205,108,253,80,5,185,252,207,59,74,6,114,56,183,191,81,219,220,215,173,244,83,1,240,35,240,205,179,52,242,202,23,25,239,17,21,164,44,166,63,210,224,40,137,239,124,23,7,5,155,171,212,73,116,23,201,6,131,15,169,100,244,19,103,2,25,0,127,247,111,83,1,252,113,245,186,96,50,225,147,186,101,255,218,250,93,91,196,110,139,4,180,161,146,100,89,156,54,191,254,4,222,159,107,53,89,33,43,74,149,26,82,174,61,229,184,188,180,52,193,13,125,189,17,241,135,220,115,55,72,254,253,55,102,91,237,104,176,55,180,208,216,247,131,93,122,214,250,223,44,65,237,204,199,171,181,94,199,231,247,255,243,213,180,76,59,81,210,198,211,92,149,255,147,249,209,52,105,253,114,3,205,28,18,239,66,104,69,2,205,252,122,110,204,1,207,203,150,193,188,192,249,18,43,65,131,223,223,244,175,207,21,169,121,87,41,215,140,199,204,238,51,38,207,109,55,8,89,9,110,204,250,235,133,217,8,94,169,6,95,104,193,65,68,253,167,169,74,173,148,33,39,2,134,157,204,33,141,212,156,117,164,178,98,194,244,50,156,35,12,166,135,173,91,207,138,34,15,96,157,198,255,248,182,247,224,183,125,80,89,251,165,251,161,197,62,7,36,252,180,101,189,13,98,166,53,54,116,112,24,97,202,103,172,6,144,220,53,75,176,17,123,68,216,0,63,102,149,182,110,87,83,247,88,83,228,172,83,208,214,5,192,99,182,171,89,212,220,26,73,8,238,230,50,7,29,231,8,207,231,247,78,254,111,81,68,73,121,117,239,50,95,89,239,211,29,69,149,60,245,31,106,42,76,48,34,221,163,1,72,185,62,25,221,247,16,65,238,168,36,250,114,117,128,53,173,170,174,68,140,201,70,197,72,99,5,253,166,84,16,255,226,33,197,156,5,71,229,238,9,12,168,104,236,39,64,53,138,212,94,73,140,90,94,107,80,253,19,231,86,221,51,82,216,7,223,91,226,249,108,234,22,8,154,2,251,220,167,118,202,55,242,2,229,116,101,105,136,4}, {153,78,235,163,251,195,171,224,233,53,26,173,82,253,103,193,224,76,105,163,190,3,231,24,227,70,104,189,141,174,218,186,51,84,239,47,162,107,139,91,129,247,171,116,2,253,116,104,242,219,220,74,50,207,67,229,229,253,127,247,6,174,158,160,21,90,151,60,224,179,180,251,198,36,129,28,108,16,34,246,43,5,168,60,197,4,25,237,222,248,222,242,216,187,215,45,155,245,12,216,76,63,200,57,141,27,189,86,34,240,15,227,173,249,69,50,126,53,148,81,156,101,239,234,202,55,11,193,175,242,230,248,99,187,208,39,206,85,42,53,58,2,171,218,229,64,101,236,188,235,112,5,236,56,182,23,157,166,237,164,12,51,78,252,89,80,1,252,51,172,27,234,19,252,42,255,163,4,24,176,208,172,211,252,202,158,255,0,76,253,10,180,58,252,172,217,212,117,173,222,129,115,62,235,144,2,56,254,176,1,252,81,51,4,82,23,165,223,9,255,37,38,215,116,50,248,123,94,4,2,148,219,233,220,211,194,128,169,156,117,31,109,255,248,57,252,61,247,167,202,43,79,57,176,219,254,9,200,157,91,27,189,150,159,196,187,174,16,11,104,223,198,56,247,206,55,238,6,121,89,216,250,3,10,219,248,84,71,102,28,188,60,38,3,79,1,86,2,170,251,255,247,171,98,105,82,239,185,208,111,167,166,180,238,141,2,38,60,246,186,136,106,35,85,231,92,95,195,203,255,45,244,169,250,162,188,95,196,109,156,30,158,131,106,216,62,150,83,110,57,7,72,88,209,167,247,129,89,171,73,236,104,252,49,155,227,4,28,236,251,48,237,74,55,122,232,64,97,222,221,164,46,9,201,157,68,219,110,163,188,237,102,106,2,121,59,240,97,142,246,250,21,34,10,215,95,204,17,140,248,156,66,175,219,2,94,252,7,212,254,156,65,179,0,43,114,96,24,206,101,139,232,127,237,85,179,162,32,154,14,89,2,54,254,227,165,223,83,0,53,244,87,142,73,4,191,205,252,140,55,197,32,24,15,241,28,232,159,235,213,243,113,177,220,14,234,115,43,114,246,134,1,39,82,200,57,245,65,69,205,29,245,105,75,202,55,59,56,242,112,226,34,121,7,51,3,235,208,145,46,99,80,216,16,171,0,234,160,64,250,123,35,13,114,165,5,85,98,169,118,244,55,246,249,109,157,73,250,196,53,192,82,229,183,210,1,169,0,13,255,110,254,141,253,170,89,90,202,214,1,207,0,205,250,135,49,18,247,241,48,9,101,48,42,46,186,119,175,91,255,153,166,87,203,83,76,12,8,250,24,151,175,49,255,179,248,141,5,109,113,214,71,188,204,125,104,121,6,93,51,201,177,36,191,17,97,91,6,62,255,29,57,159,94,219,85,85,4,90,200,123,204,13,249,112,184,52,224,92,249,201,63,185,20,231,192,167,233,20,37,72,227,234,242,204,204,183,33,56,252,27,90,28,99,252,201,136,217,60,9,127,236,4,73,105,203,94,19,106,225,247,222,69,36,140,192,149,2,172,211,53,250,182,3,211,243,192,203,171,103,251,238,95,102,49,225,81,36,51,217,39,19,164,223,52,196,17,2,21,18,24,88,242,207,81,3,210,12,29,46,96,74,18,45,114,189,156,250,163,34,196,155,126,199,90,255,143,51,128,84,100,209,94,6,48,26,48,78,82,87,97,37,204,181,40,243,75,236,89,48,51,164,142,164,31,24,12,48,26,55,180,208,152,7,126,85,179,164,210,237,6,180,32,5,82,0,230,220,38,81,180,103,15,57,174,69,33,176,55,205,146,228,111,42,124,214,26,161,149,183,64,203,136,186,233,118,27,156,205,241,235,39,85,29,102,90,1,118,20,78,176,80,30,56,243,1,171,190,208,242,168,55,58,105,49,255,132,108,242,190,87,245,209,63,11,117,60,255,192,250,46,247,173,93,118,5,246,197,108,8,142,54,208,254,51,208,73,95,206,181,74,33,195,3,1,199,101,7,144,234,250,217,33,252,216,37,202,175,137,179,106,79,182,225,73,67,50,242,49,95,210,11,64,197,200,97,251,162,137,43,52,172,127,118,73,106,5,155,226,238,52,6,62,180,237,155,220,56,75,210,44,164,37,163,120,91,18,89,75,185,204,171,193,249,120,39,42,219,37,0,87,118,141,197,125,241,240,38,214,51,71,62,39,82,132,104,9,88,15,249,207,174,112,74,159,19,150,174,115,73,100,5,240,22,80,36,168,81,185,210,151,220,253,192,237,9,24,249,94,96,191,108,87,203,39,8,88,216,0,17,175,6,135,243,112,204,144,161,146,179,111,88,146,184,35,233,203,70,200,227,52,40,67,249,202,50,186,225,255,11,221,96,29,197,92,41,12,95,226,0,145,226,65,236,249,3,123,253,77,189,254,162,144,209,203,246,29,225,80,32,176,216,112,203,70,236,235,70,198,191,65,112,251,220,212,216,29,254,26,8,38,43,228,186,243,216,57,20,112,240,216,51,220,17,134,177,147,64,69,56,194,30,112,47,36,38,156,218,62,176,239,21,172,222,206,77,143,224,184,57,106,185,166,181,88,4,159,243,218,189,133,106,238,115,242,1,54,221,2,23,235,90,159,112,183,156,98,1,5,45,203,44,235,112,242,216,176,97,28,200,225,56,211,248,187,98,77,45,15,251,109,248,31,94,254,212,25,95,195,0,48,200,213,2,89,24,99,159,1,21,200,35,102,193,234,74,7,8,203,52,172,173,75,254,35,31,129,4,219,116,146,2,21,7,17,43,172,103,179,191,164,217,216,1,138,232,242,203,121,241,30,56,232,208,222,78,139,29,85,251,98,254,201,158,242,103,146,2,83,249,224,86,9,76,165,241,43,72,38,32,59,108,28,97,170,1,241,210,74,44,197,180,114,250,63,223,41,17,214,212,71,158,46,48,231,3,243,50,20,21,174,205,22,243,24,2,107,58,91,110,147,170,182,92,188,19,146,7,86,52,85,113,179,113,239,77,6,214,103,222,145,98,28,41,50,112,107,29,120,7,236,17,89,234,230,77,113,237,83,74,209,192,137,248,75,93,1,79,204,251,97,22,121,246,197,5,111,98,230,163,11,252,96,244,198,108,6,175,239,255,6,171,31,226,172,157,223,219,85,63,194,194,135,24,7,22,43,252,239,0,110,47,229,222,243,250,250,43,43,195,58,195,189,226,248,32,73,171,240,252,84,40,24,162,212,4,125,193,114,251,231,168,245,216,84,63,228,224,38,166,40,55,195,167,126,165,127,10,10,40,254,154,107,185,115,245,138,221,16,64,76,24,74,189,54,52,72,238,125,158,185,156,237,36,222,93,253,94,234,247,91,247,49,186,195,237,210,229,162,188,116,42,80,4,16,217,133,23,190,188,94,43}, {14,20,251,229,42,28,131,216,28,38,170,72,220,70,177,6,173,251,104,1,163,79,130,95,127,4,127,105,38,248,51,4,177,84,196,58,67,115,200,227,232,202,231,173,52,199,92,102,52,197,122,1,216,62,190,114,85,169,162,0,94,207,221,188,9,116,209,31,6,64,246,247,193,86,78,78,78,12,64,87,186,176,41,241,130,72,155,220,194,0,211,179,114,171,234,88,146,202,250,161,54,171,187,213,75,219,172,60,73,255,227,198,104,254,25,187,145,201,14,25,99,250,48,227,182,116,244,2,99,91,204,170,43,97,63,2,24,251,99,18,94,254,137,76,47,247,36,80,122,12,16,254,214,64,157,197,28,16,19,77,2,8,227,197,168,239,232,240,147,13,156,60,207,71,251,5,77,199,125,7,74,1,144,97,29,244,250,247,35,101,220,244,129,228,255,246,211,211,199,245,56,173,136,178,170,79,175,248,77,42,229,32,130,84,242,165,205,247,175,188,160,41,168,4,179,199,85,158,204,211,207,2,24,193,69,27,123,165,254,105,107,245,140,252,124,9,117,171,64,99,195,35,31,48,97,58,172,227,158,175,140,206,112,48,148,169,165,217,228,0,14,196,248,160,152,4,190,184,70,109,249,245,219,41,57,242,85,33,129,255,201,177,111,249,146,33,9,110,187,80,180,178,240,43,29,188,49,252,206,226,157,114,189,178,220,104,85,201,236,209,134,102,206,240,143,231,253,7,29,107,29,91,153,2,41,5,2,221,128,247,163,165,180,105,62,98,210,165,226,65,209,59,240,8,227,4,158,49,192,179,168,174,43,17,215,96,20,162,62,89,19,3,124,205,93,170,49,199,119,4,139,219,3,254,6,27,202,99,132,161,91,4,80,19,205,214,116,167,164,213,245,93,225,55,188,45,154,253,234,74,37,255,34,118,106,19,63,248,112,16,130,252,173,238,233,54,27,166,76,217,200,8,30,55,90,88,219,109,21,250,188,179,71,4,138,1,212,7,65,249,239,25,69,167,49,4,50,23,174,103,66,243,75,231,90,174,240,253,33,255,174,233,237,84,136,181,95,248,233,45,116,242,110,232,113,157,66,187,152,76,10,205,39,180,137,245,109,13,56,237,187,37,89,5,139,7,10,8,232,50,176,156,123,59,124,215,159,3,159,240,40,175,62,28,114,250,205,173,159,183,43,232,96,26,39,220,50,55,240,214,122,190,204,100,156,247,135,203,126,232,20,249,245,183,3,1,241,207,242,247,89,85,110,7,239,112,7,36,53,250,164,181,51,42,129,102,1,109,225,108,143,70,11,56,149,24,191,54,149,8,219,234,131,253,34,247,228,171,133,116,190,17,109,251,196,52,58,210,27,243,98,100,75,29,202,172,134,244,205,1,131,36,209,195,68,198,120,6,181,8,108,62,187,170,152,211,111,115,16,254,117,192,86,105,116,199,30,248,202,5,117,100,120,229,83,249,254,100,24,221,75,250,221,101,193,163,44,8,165,38,231,250,255,90,57,169,237,170,204,77,119,184,97,44,215,43,1,248,127,79,155,80,14,175,19,255,13,66,73,58,180,252,121,166,206,184,74,93,51,215,227,43,114,247,174,214,112,2,202,56,127,68,245,38,186,194,168,31,8,195,56,156,137,157,98,177,146,5,79,2,184,110,38,28,96,219,219,1,77,196,190,173,136,101,69,83,77,55,241,67,178,6,28,211,9,194,237,20,128,204,77,184,177,247,195,251,138,175,80,75,0,192,61,181,212,232,123,80,228,114,51,70,117,8,61,169,60,231,146,32,203,248,98,246,60,16,78,196,50,59,197,222,39,195,14,252,36,76,169,117,173,181,135,95,81,90,97,97,14,178,45,52,132,251,67,21,106,195,168,233,199,215,82,253,154,159,104,4,126,191,107,186,105,49,96,4,164,187,35,251,137,17,88,229,93,30,35,212,47,98,74,236,48,51,119,68,21,166,37,94,31,184,158,174,75,224,187,94,216,79,155,84,207,249,229,189,131,180,171,224,221,16,126,155,52,35,33,254,81,249,249,236,50,230,59,15,136,17,209,6,135,218,211,247,45,228,239,30,252,250,244,62,253,34,243,185,211,3,12,34,255,251,121,60,145,74,206,240,160,5,193,0,197,76,88,201,100,192,77,250,19,115,206,28,14,6,106,3,128,32,34,20,190,75,10,87,151,220,62,188,153,102,171,80,62,193,57,240,243,59,194,246,60,99,90,81,115,110,69,181,198,22,228,85,142,81,37,0,208,240,180,248,63,59,224,171,110,244,89,253,226,170,174,174,56,9,164,176,170,155,96,254,163,248,94,107,124,1,6,58,218,217,18,12,132,211,228,6,233,40,13,105,192,87,33,116,125,32,106,216,232,214,198,104,85,190,92,200,110,19,100,4,206,5,5,198,186,185,5,39,49,235,220,169,106,52,218,49,205,24,29,247,115,51,84,222,136,247,194,248,4,15,231,243,245,163,154,3,122,90,137,4,183,237,144,197,151,158,37,56,28,19,183,188,83,194,31,21,83,177,9,200,141,194,124,82,235,87,232,192,173,106,204,165,41,204,80,160,178,12,149,91,17,68,136,198,198,0,141,191,47,77,77,253,165,186,91,192,237,239,166,5,159,75,6,6,183,245,22,95,234,177,198,216,105,18,203,100,126,0,149,103,96,95,88,230,138,247,186,3,194,253,66,37,64,156,224,180,42,254,194,160,2,11,48,6,143,72,12,247,113,75,140,221,114,44,233,25,26,251,122,159,55,155,8,3,206,197,192,249,139,166,111,68,113,62,236,5,12,3,218,167,26,32,6,57,16,174,250,85,60,182,20,100,49,107,38,250,104,222,248,234,172,7,27,27,52,0,122,2,22,8,157,218,69,215,220,6,41,234,76,113,12,46,162,156,204,200,33,239,84,251,97,67,240,176,165,79,42,62,181,55,157,11,224,102,69,4,103,81,222,66,227,23,255,202,198,233,2,202,61,15,133,44,234,15,28,19,97,165,232,94,157,51,134,168,2,13,174,54,88,33,254,176,143,157,195,249,230,0,72,111,123,187,178,17,99,39,253,252,119,48,161,185,195,210,102,30,57,200,56,172,166,110,126,242,64,1,35,238,204,248,227,16,103,111,137,71,195,181,166,160,4,214,39,192,233,102,153,54,159,59,146,8,142,252,106,58,243,162,132,202,51,218,118,174,133,79,215,161,185,4,73,253,131,159,233,252,39,76,98,193,241,6,139,173,249,163,174,84,119,190,100,5,15,218,52,160,75,247,216,116,137,117,90,254,71,209,63,48,123,4,227,249,209,236,8,75,46,104,221,254,28,8,237,228,53,181,165,8,86,206,202,82,15,63,119,173,29,245,226,253,169,2,61,65,230,245,31,82,252,174,121,214,211,178,186,6,1,254,78,2}, } ; static const unsigned char precomputed_core_scale3sntrup761_n[precomputed_core_scale3sntrup761_NUM][crypto_core_INPUTBYTES] = { {189,158,173,37,230,231,194,236,6,194,116,131,242,171,84,15,3,24,25,220,0,1,137,173,20,108,181,58,148,86,61,208,191,122,45,166,119,223,247,112,84,132,242,22,5,224,12,159,224,14,142,197,246,133,24,200,18,254,166,151,142,62,124,158,8,189,63,153,165,206,180,83,159,209,216,170,87,250,3,180,7,254,227,91,6,25,135,96,185,97,244,25,12,6,246,86,124,26,95,94,182,230,218,46,33,117,107,147,111,150,99,200,176,217,226,6,80,235,198,172,10,138,218,152,50,16,214,57,118,43,225,133,228,182,27,161,132,188,183,148,220,61,54,143,54,131,228,43,72,205,153,23,89,173,246,36,126,219,203,144,238,0,58,77,180,13,120,140,237,39,171,28,96,145,63,82,80,93,226,246,49,23,222,52,113,43,252,185,23,216,121,9,66,83,34,207,208,140,113,47,205,72,223,177,16,231,137,253,163,181,248,76,83,50,64,223,222,136,52,51,242,14,186,58,199,66,5,68,24,6,195,77,157,47,162,111,16,166,109,106,215,91,28,202,75,233,175,89,48,153,46,119,106,213,84,224,211,180,197,178,82,231,1,12,2,195,147,154,229,17,185,19,104,80,170,203,39,124,196,10,140,15,162,77,197,146,251,237,9,36,237,9,52,180,77,164,182,199,141,170,69,238,84,199,175,38,218,80,16,147,52,87,105,180,252,43,213,155,84,80,43,145,159,158,115,3,48,88,197,245,201,69,3,219,183,83,221,213,149,28,51,133,204,70,172,27,149,5,10,107,249,248,187,150,44,112,72,29,24,169,150,136,226,192,9,231,8,184,25,163,10,142,140,7,12,108,72,140,85,13,172,55,70,120,53,144,195,170,42,24,39,120,4,44,4,136,141,184,122,141,78,149,109,2,205,125,53,14,199,247,124,109,230,149,248,170,206,231,232,183,206,152,32,27,125,148,144,97,71,224,227,59,144,202,136,162,190,182,81,184,161,44,40,236,58,75,13,48,29,106,67,97,40,82,203,249,72,38,81,254,85,99,36,130,112,209,77,208,191,35,210,139,110,168,143,92,133,236,89,216,207,17,143,129,56,71,5,235,102,14,142,100,193,143,164,194,23,108,178,115,0,105,157,56,52,106,203,155,114,242,89,245,49,59,58,186,201,73,198,238,166,154,150,125,46,29,136,62,82,191,50,213,46,82,45,85,99,137,48,240,199,202,81,205,178,86,227,223,153,36,92,67,231,21,209,228,92,35,26,37,19,132,24,171,127,203,90,88,20,125,128,237,193,163,224,7,42,18,3,124,31,2,153,92,33,139,193,229,159,156,214,88,128,240,44,236,70,115,160,37,17,77,228,152,188,69,198,87,102,111,166,172,152,48,248,114,15,37,65,212,216,239,217,128,171,164,73,18,17,187,46,143,118,224,210,221,241,238,70,27,255,143,211,66,5,46,7,134,165,42,16,180,185,183,169,124,13,183,128,213,89,231,74,73,89,18,60,97,198,111,165,108,167,47,207,150,91,128,109,188,51,89,172,97,95,222,132,225,129,225,160,165,178,94,123,142,24,215,239,176,215,187,194,17,254,143,29,141,112,254,63,90,71,110,198,228,199,19,90,65,141,148,231,176,215,31,211,149,65,210,36,218,130,57,188,16,26,30,234,243,83,211,87,28,35,231,135,160,244,113,228,130,238,235,68,156,161,37,166,154,129,219,237,161,51,238,124,205,47,10,231,10,215,198,50,153,222,149,96,223,35,3,198,224,200,24,192,171,245,143,226,0,66,148,66,113,255,48,141,153,96,144,160,51,159,15,141,227,207,67,131,113,87,34,25,67,125,28,64,216,94,112,180,107,191,253,13,197,15,0,236,112,178,241,66,45,156,202,241,130,192,127,107,124,60,188,100,161,200,223,14,135,244,103,98,121,192,99,36,172,2,7,64,44,2,45,48,205,17,102,122,14,86,210,199,52,39,224,114,84,122,64,100,12,90,67,166,53,50,181,191,246,116,125,11,203,185,125,211,241,33,80,252,215,13,173,173,147,166,227,51,99,15,140,122,206,137,250,11,209,110,128,111,148,109,106,207,211,104,135,109,2,111,160,63,33,236,82,206,18,139,157,162,6,148,225,104,41,203,96,243,145,37,149,170,151,168,46,78,108,191,243,30,209,130,161,135,84,247,168,205,193,150,196,212,10,59,92,136,86,87,244,15,50,64,107,147,45,89,51,117,88,151,116,219,8,255,67,245,244,45,151,137,129,214,22,116,189,89,105,188,51,134,132,90,103,153,218,92,104,71,8,8,146,106,155,6,107,30,200,162,251,195,225,35,158,222,229,231,6,164,25,116,152,41,172,242,49,68,106,43,192,215,23,154,7,103,84,95,201,90,122,207,21,210,51,99,145,107,232,74,18,164,222,94,53,68,210,33,29,21,81,5,113,17,245,48,105,64,215,226,173,211,224,127,62,243,243,233,110,103,83,7,68,65,209,121,29,130,143,143,117,252,165,38,225,191,109,79,149,44,11,32,253,217,61,224,89,142,171,68,163,79,112,39,109,117,55,125,218,45,165,144,245,175,183,173,178,143,148,34,35,190,67,83,64,27,104,71,95,52,172,81,53,56,15,142,92,77,148,38,186,162,122,82,221,75,163,210,39,192,184,54,164,3,238,193,189,182,120,91,101,105,227,195,138,3,33,113,33,88,98,254,54,66,156,108,33,147,33,243,58,161,197,238,139,206,159,210,25,93,130,178,171,237,99,109,117,48,141,14,166,132,145,30,4,120,144,94,141,109,99,240,94,118,3,186,45,193,173,143,149,18,16,226,75,64,34,96,101,90,76,226,36,82,161,248,84,28,90,12,213,120,161,3,6,197,246,228,114,86,203,86,52,213,71,121,127,253,195,182,230,164,33,93,176,149,194,128,144,196,33,103,14,105,171,205,247,230,60,69,254,239,119,221,26,177,58,71,217,94,15,75,83,203,147,153,39,238,73,171,202,196,125,165,127,186,22,247,12,213,225,164,55,9,141,112,222,149,28,179,23,158,82,228,122,124,80,231,247,126,78,252,205,150,124,89,236,210,38,185,54,199,201,140,137,179,123,70,24,21,233,71,126,116,167,198,50,214,121,59,225,111,1,159,223,163,42,238,65,8,209,176,229,199,117,83,159,229,219,88,8,98,253,122,12,186,6,32,14,239,22,212,131,10,40,86,5,202,11,64,239,40,155,220,237,118,193,240,175,77,50,30,120,151,93,38,149,200,210,150,200,33,32,146,17,113,203,97,127,203,214,133,202,141,251,54,255,131,242,65,207,24,115,28,113,130,137,165,172,83,230,204,216,57,192,61,44,71,214,230,183,0,97,219,109,121,38,28,169,249,167,13,225,38,216,55,88,7,56,155,114,64,237,170,127,11,202,12,8,73,39}, {22,20,227,93,251,202,123,144,95,13,105,95,29,129,160,88,168,233,16,35,111,179,84,8,181,90,138,111,110,41,147,108,158,208,32,30,188,135,34,159,23,20,221,189,177,245,19,199,68,245,147,34,29,43,165,23,175,148,35,49,223,189,179,229,6,157,132,214,247,199,100,136,141,204,242,31,181,186,18,59,115,29,167,93,129,114,46,138,122,197,186,42,140,223,148,38,251,224,246,201,172,175,30,144,242,118,44,23,24,9,6,235,217,52,123,200,20,147,203,131,12,194,105,202,119,189,13,41,112,207,16,251,15,127,170,31,32,111,34,231,71,80,230,192,49,47,34,67,254,3,223,41,200,84,134,134,52,49,235,220,169,133,169,127,242,21,21,153,195,116,223,201,55,224,39,220,91,138,179,244,198,62,139,55,12,133,18,5,7,64,53,120,116,202,73,132,21,88,62,138,146,6,104,21,223,167,178,4,54,8,198,1,237,106,20,129,100,84,49,79,208,32,141,24,207,162,76,115,212,240,33,61,236,135,150,220,235,65,228,107,163,8,63,128,73,193,249,86,85,193,92,135,177,90,241,136,180,189,191,137,215,251,206,138,85,106,144,52,74,209,72,131,83,144,223,207,127,75,32,18,88,86,68,230,207,184,95,154,184,8,15,60,55,95,120,68,68,80,138,242,111,42,220,210,125,146,199,76,68,39,164,212,30,205,109,72,79,174,142,42,200,47,6,163,18,26,1,156,49,184,237,222,117,230,155,96,93,216,12,230,207,116,200,181,60,83,7,255,87,24,78,55,32,146,125,109,200,117,71,118,250,28,17,145,244,49,158,8,41,36,246,181,42,98,221,75,31,187,18,71,237,212,147,225,19,135,37,215,254,182,33,32,21,192,27,205,86,128,208,192,84,182,4,11,172,219,177,240,31,19,109,41,218,63,71,59,214,236,161,158,234,216,9,42,222,60,168,133,40,207,144,67,164,180,176,132,150,58,250,124,112,234,166,116,83,127,107,89,196,93,98,118,154,29,142,144,43,199,132,136,211,161,89,14,137,106,217,72,254,189,165,180,84,235,136,236,227,132,204,194,130,145,1,138,108,4,44,196,52,133,1,146,216,253,1,187,172,149,239,111,57,151,180,252,83,69,190,128,168,106,239,143,251,92,148,47,169,108,12,221,91,157,2,11,243,69,141,78,206,251,245,180,11,51,222,132,106,26,105,110,198,133,45,129,239,76,86,43,195,190,66,154,9,189,169,3,99,110,251,65,180,127,141,130,160,16,81,137,0,82,151,199,78,130,244,62,49,235,16,168,27,134,218,67,55,41,78,25,116,96,125,133,183,133,103,35,20,126,255,249,85,138,177,106,164,82,158,94,119,32,4,245,196,8,175,67,177,124,144,93,5,190,215,146,132,13,174,184,219,119,20,17,168,21,48,116,173,163,145,7,132,102,166,33,37,102,209,148,7,152,48,48,208,105,139,225,181,29,139,59,178,109,57,23,162,25,255,98,111,100,113,226,110,40,199,31,3,111,81,18,246,43,155,162,189,150,205,209,251,159,38,205,176,82,84,224,178,252,8,97,77,125,251,41,49,85,200,129,100,57,230,124,77,206,205,244,243,143,70,179,16,86,250,195,120,252,86,196,189,133,53,211,191,100,83,1,156,197,175,225,14,105,133,198,166,82,89,133,139,23,150,179,60,184,74,61,207,236,158,61,20,174,71,44,235,228,162,121,63,19,212,254,204,164,23,50,187,244,213,105,15,135,17,117,18,254,254,94,241,170,156,12,87,116,95,208,234,49,124,85,17,25,82,20,49,9,7,105,95,29,255,114,161,243,168,205,126,225,14,232,2,23,223,58,237,114,34,127,74,17,194,53,236,65,72,51,178,80,85,150,65,221,59,23,127,209,105,84,206,30,198,157,252,35,48,78,121,226,4,105,212,116,21,138,57,146,5,204,33,85,232,64,128,246,143,230,238,21,46,109,211,192,36,171,71,49,246,152,173,169,92,182,36,96,92,97,27,44,71,37,216,240,62,144,21,92,123,155,130,30,105,211,202,210,5,113,39,148,28,80,82,31,18,34,142,231,205,142,248,174,31,96,248,160,38,214,196,211,97,35,150,4,92,239,218,110,246,118,46,137,55,165,18,123,59,22,156,234,219,10,153,150,44,0,247,194,191,170,112,111,161,108,36,92,238,216,0,57,201,235,141,223,142,133,133,39,192,91,161,66,235,115,217,33,248,23,237,178,78,34,78,108,184,69,164,212,175,10,205,83,21,113,241,7,136,121,98,210,247,180,106,4,78,77,245,13,190,204,179,156,58,243,23,166,74,138,183,224,194,148,173,236,77,233,201,175,21,93,238,248,234,25,110,87,203,24,152,228,118,152,79,151,234,160,204,79,245,17,171,62,54,194,1,147,2,185,74,97,98,219,191,134,112,149,69,190,222,73,121,184,8,81,228,221,65,201,33,99,67,2,38,11,136,39,161,12,40,80,14,250,122,88,202,33,6,78,214,75,227,208,193,239,140,141,28,91,158,83,196,121,145,213,126,7,151,218,43,210,206,216,109,228,5,81,165,132,30,109,24,17,94,201,44,100,33,52,26,241,67,142,225,108,144,10,218,227,182,159,136,67,118,24,189,90,164,24,199,121,244,40,53,195,151,63,72,253,38,37,217,150,89,239,9,113,170,147,72,51,140,37,72,71,253,255,172,150,225,116,14,33,161,145,150,207,44,91,214,3,64,194,126,78,129,80,148,15,97,244,187,40,188,6,148,175,35,128,68,171,160,232,141,58,239,228,248,182,94,198,220,153,80,246,64,63,98,50,120,120,190,65,223,145,159,73,182,18,234,127,24,82,24,9,213,232,89,243,50,237,253,207,136,93,26,126,144,198,108,84,232,135,201,51,129,102,104,165,221,131,233,187,138,235,217,215,231,138,209,58,161,193,217,17,95,49,136,222,36,63,211,102,170,208,58,60,176,247,237,161,251,225,36,118,24,175,146,248,230,59,197,81,103,163,225,39,228,95,209,134,12,24,33,214,173,123,147,40,63,252,139,67,12,31,53,97,206,28,72,0,186,210,226,54,31,35,113,82,109,204,167,51,204,148,77,81,229,209,237,221,206,64,153,185,104,179,85,156,11,179,186,241,179,233,77,253,26,170,202,203,17,201,120,130,74,108,26,121,0,150,4,29,44,26,76,187,115,105,105,107,17,153,134,6,115,226,15,185,68,3,85,198,85,50,12,254,203,215,37,109,234,50,223,28,223,231,29,145,189,209,252,4,135,119,11,79,155,102,242,216,252,114,82,244,168,180,221,40,73,19,101,194,137,235,111,30,41,36,111,212,203,163,12,71,205,67,182,118,72,173,154,36,155,174,127,157,13,82,222,0,4,153,50,216,147,24,75,92,156,215,28,41,51,166}, {216,202,84,219,4,230,148,239,72,109,185,51,33,249,40,229,69,202,126,48,143,92,242,184,70,200,211,227,138,137,249,226,182,204,74,107,219,41,126,36,43,253,222,44,86,84,33,126,1,238,153,201,193,233,28,241,156,90,213,167,93,137,229,132,172,206,130,111,251,53,225,89,231,188,208,100,201,96,17,76,94,178,221,196,60,178,14,73,74,168,165,245,163,56,66,21,228,75,95,151,105,112,61,25,212,185,228,34,17,74,96,240,52,89,188,22,207,23,129,118,217,39,0,243,147,24,180,143,64,160,253,76,124,56,149,104,63,205,179,23,190,0,148,237,156,27,210,72,239,157,117,178,73,110,55,99,58,220,170,219,169,193,191,4,24,118,80,175,108,51,100,157,86,175,14,85,134,7,99,223,75,222,76,78,73,132,85,0,105,90,9,54,99,175,63,237,65,45,234,238,208,129,197,157,139,165,13,176,53,177,249,203,108,251,107,184,146,68,3,85,92,189,66,130,11,174,206,122,7,80,55,67,254,152,76,144,219,135,217,215,90,42,85,168,110,163,26,247,232,146,94,32,110,223,238,90,94,231,132,36,100,142,141,132,71,227,223,96,254,125,80,60,195,161,63,195,159,93,120,206,163,77,166,94,238,88,193,29,199,100,57,26,7,7,197,85,23,92,51,175,85,253,222,38,200,118,0,56,149,128,232,134,151,73,47,86,7,26,173,141,125,41,6,205,242,36,208,229,62,91,106,75,62,248,145,227,208,144,42,46,101,217,38,212,237,26,215,33,31,25,82,115,35,149,232,161,208,35,222,115,73,126,249,107,228,69,81,15,255,77,107,158,19,195,217,156,101,38,165,238,49,192,94,146,132,199,238,42,60,142,244,210,115,177,120,196,245,123,53,76,163,98,91,9,66,123,233,11,223,76,217,198,64,67,251,207,175,252,247,78,217,27,145,85,94,129,197,184,63,125,52,242,48,73,34,139,219,16,131,181,24,92,183,90,252,219,154,204,165,23,161,120,127,30,7,143,74,78,41,195,60,102,173,181,160,15,83,47,84,65,246,43,150,67,181,242,118,20,129,161,130,0,178,118,61,25,76,113,114,62,186,75,200,201,147,24,14,110,75,214,155,17,120,8,108,80,84,234,128,21,198,32,237,96,57,0,169,47,101,89,206,17,84,129,55,87,108,209,136,45,161,24,173,162,42,217,195,168,145,194,229,118,82,55,70,171,62,250,84,176,31,176,47,255,51,121,121,61,242,85,69,0,74,248,210,107,97,76,160,107,168,39,181,190,21,56,216,137,201,255,142,49,120,232,22,202,95,167,163,99,56,223,22,79,54,174,138,166,116,214,151,200,239,232,36,126,211,172,196,193,158,138,103,228,0,209,201,172,197,249,4,25,218,122,238,119,199,86,121,231,132,147,10,77,43,226,23,154,207,247,232,197,56,98,168,143,232,71,1,189,115,240,169,245,159,147,226,187,13,90,174,206,89,124,175,146,51,237,185,179,48,158,81,30,126,232,111,12,41,69,88,68,188,188,223,228,135,171,63,235,194,162,55,7,76,75,155,232,222,125,4,159,26,40,22,69,192,188,108,66,178,97,231,153,23,230,91,171,172,182,173,120,1,234,27,1,235,180,4,192,197,30,171,191,129,142,217,174,134,17,71,131,133,60,121,164,42,23,37,34,39,149,111,93,181,14,181,202,107,120,112,18,159,54,19,75,116,243,24,22,108,219,53,134,90,99,169,192,3,195,151,63,45,179,207,119,236,48,161,158,93,139,187,251,33,250,253,152,7,33,225,125,170,195,223,199,102,223,24,233,225,240,202,190,47,236,185,47,226,225,27,147,51,56,72,216,100,131,74,245,158,104,108,186,199,206,80,45,1,32,53,118,175,24,246,91,148,57,75,160,221,109,99,126,22,79,209,212,1,143,120,246,64,27,254,44,185,5,64,254,21,247,52,37,210,1,173,230,201,8,127,109,240,84,108,63,104,208,245,139,19,17,230,177,6,231,210,81,139,157,89,237,102,163,237,103,73,223,222,53,115,32,237,239,104,28,193,74,96,208,235,9,27,145,61,209,4,219,40,191,23,222,122,45,104,41,178,45,81,244,97,93,197,224,170,216,153,195,116,149,191,48,18,219,205,121,171,35,116,226,159,136,70,77,205,189,105,152,183,170,194,130,138,230,218,159,245,18,151,108,18,112,178,118,209,40,168,120,96,162,160,137,117,201,218,97,141,137,118,30,39,81,245,98,21,18,221,203,238,234,56,238,90,58,244,179,173,3,111,123,58,42,120,232,104,167,35,66,165,11,138,93,136,160,43,62,139,218,225,53,202,120,225,140,188,71,62,200,243,69,97,19,28,77,147,193,153,154,250,9,68,38,186,59,25,105,169,37,155,91,54,240,198,72,174,80,41,255,202,227,5,219,139,234,244,246,186,239,21,102,235,236,43,147,29,158,158,29,157,228,16,214,4,153,247,236,186,78,185,252,7,191,167,141,172,151,184,12,43,74,237,193,153,182,221,223,214,112,188,24,59,16,117,192,177,18,143,237,197,52,74,13,63,68,63,117,224,68,141,110,41,141,61,225,109,7,144,160,249,227,124,41,159,44,75,177,109,238,251,98,158,121,218,128,152,131,209,79,252,20,62,106,158,43,1,237,53,209,15,146,240,24,150,3,142,209,20,21,96,248,207,82,90,37,5,65,88,208,65,0,107,231,162,165,24,14,124,132,80,98,61,103,125,58,243,30,173,2,62,194,63,137,116,249,6,187,134,251,238,44,225,250,98,252,0,191,137,40,236,57,231,151,163,250,137,71,1,62,46,245,175,24,83,234,239,202,126,186,108,4,209,78,158,217,75,211,225,250,204,247,69,120,168,116,146,74,94,115,7,102,14,42,89,38,142,0,86,64,19,106,242,224,203,174,112,68,8,97,77,150,200,46,95,107,77,1,246,22,1,13,149,62,13,75,99,165,30,196,110,213,140,221,55,122,57,183,134,2,23,194,108,214,54,129,74,117,93,65,40,68,128,209,89,190,11,214,30,101,205,93,73,97,206,242,71,117,214,243,22,116,246,228,40,174,190,207,80,32,68,169,112,13,46,76,151,172,202,38,253,133,254,89,123,75,231,212,93,52,165,170,93,136,16,240,63,217,80,67,108,112,241,58,210,184,82,13,94,175,0,165,31,107,82,68,81,254,163,20,20,59,25,59,154,69,77,102,30,51,245,4,193,104,99,133,247,80,218,143,203,89,168,135,2,237,193,197,167,239,189,134,93,24,156,220,133,134,122,9,83,19,5,131,212,55,44,161,137,238,85,27,105,99,201,227,183,108,115,73,218,46,238,216,244,188,239,207,164,37,169,76,36,247,22,56,156,158,161,70,145,227,33,20,203,80,11,237,124,184,69,142,111,20}, {255,97,4,156,179,100,220,236,89,189,51,30,153,29,224,178,52,175,211,79,134,32,123,208,48,166,122,126,98,253,17,172,224,204,145,25,102,44,243,69,83,232,168,222,23,231,25,40,23,145,217,79,237,26,143,129,34,221,54,0,37,63,250,56,168,44,64,187,167,112,173,76,144,205,191,202,191,180,101,120,153,223,190,159,123,115,228,152,150,85,76,139,129,136,243,120,225,146,89,133,109,136,68,65,116,152,137,111,195,255,252,230,211,78,14,227,54,61,255,184,198,174,107,240,55,130,87,80,198,121,159,221,94,38,21,86,173,89,198,182,202,84,40,202,10,3,177,32,35,10,85,5,151,27,58,145,89,11,86,202,251,93,252,59,147,244,83,74,214,95,217,196,234,29,4,252,202,145,218,81,201,79,213,123,186,160,89,247,6,125,79,246,134,155,176,161,76,235,72,161,195,51,51,224,51,203,64,162,20,20,156,187,123,119,1,220,148,88,64,142,133,190,147,251,236,145,34,132,159,64,160,165,99,58,188,185,132,134,79,41,212,75,41,90,121,94,130,136,101,124,230,17,90,107,112,25,63,155,229,137,223,62,117,107,55,221,146,66,76,0,181,144,3,133,227,80,69,226,103,42,174,246,238,19,110,245,108,102,208,5,158,138,202,3,43,17,168,42,142,203,151,53,245,105,186,56,22,78,245,154,132,129,154,53,153,211,34,61,255,63,39,40,245,244,224,241,164,8,4,127,4,207,51,86,190,251,177,67,219,161,60,49,225,211,15,124,161,134,155,198,64,111,245,8,252,80,47,193,155,224,147,137,94,182,66,38,183,218,15,121,86,92,47,233,122,221,22,231,125,1,52,67,1,170,167,185,147,124,135,218,201,86,21,183,74,236,215,49,231,235,76,37,240,109,57,21,57,249,243,30,92,176,91,45,115,12,112,247,117,11,123,175,234,158,72,24,100,49,31,237,61,94,175,109,195,120,238,127,98,77,239,53,18,178,137,250,247,81,16,89,74,185,114,220,22,166,11,99,223,125,113,160,116,156,121,137,245,175,176,5,149,242,244,204,51,225,117,253,72,21,215,74,213,156,214,131,113,56,45,202,9,233,104,139,222,75,116,10,195,243,142,18,24,93,126,8,83,179,157,193,235,216,206,25,47,151,218,177,144,159,19,223,15,186,129,77,74,137,144,140,20,242,197,14,104,67,11,195,171,65,217,142,233,124,217,173,136,232,133,71,1,89,2,226,92,250,86,63,1,162,24,205,31,179,74,214,82,103,12,4,231,139,182,190,208,210,80,42,240,212,42,200,254,109,44,14,58,24,44,94,164,157,129,84,182,167,167,136,124,215,143,182,116,4,145,23,25,64,100,160,27,210,190,15,73,222,221,160,239,85,38,18,246,229,199,230,131,81,231,2,201,26,68,136,227,149,202,129,11,164,130,143,23,41,215,145,101,247,147,178,204,124,131,70,22,89,79,210,99,238,116,77,68,125,70,219,9,94,220,18,77,254,250,206,110,50,170,221,233,31,216,140,112,191,66,191,6,162,122,32,46,118,181,137,86,176,84,113,104,25,151,163,46,220,245,140,19,37,108,236,70,191,129,76,149,65,43,80,147,195,122,199,76,104,153,229,221,101,179,229,195,216,222,131,209,223,225,251,32,80,141,213,7,186,123,152,164,250,202,144,69,137,125,210,188,33,20,195,160,28,230,172,15,235,94,229,244,12,219,232,202,140,224,173,65,169,137,52,21,31,91,143,26,225,247,156,206,32,241,214,182,114,39,88,26,221,111,156,43,102,244,76,209,246,185,96,117,59,11,111,242,238,104,144,255,89,177,116,136,130,234,139,210,37,192,206,112,38,181,138,180,108,135,248,102,98,41,59,147,242,72,151,107,90,57,47,211,80,133,228,212,226,200,107,32,172,231,141,97,254,40,97,35,241,196,186,188,64,10,124,201,72,181,193,34,114,98,49,92,37,16,226,229,222,116,239,142,37,237,117,46,34,160,162,82,57,220,224,148,239,68,182,133,216,97,188,102,249,118,162,174,243,193,70,14,11,125,182,155,87,136,237,241,167,106,155,74,16,249,174,161,197,164,17,172,226,150,92,169,102,250,89,120,111,128,201,245,244,133,178,144,91,60,202,35,61,39,58,202,162,86,44,63,186,90,87,41,251,37,102,91,183,143,116,83,120,56,238,197,56,216,210,222,32,197,143,110,159,246,25,241,246,185,209,195,203,118,213,114,54,231,98,241,119,127,118,183,170,75,74,151,247,186,25,251,221,213,160,115,84,81,136,149,137,13,9,231,52,233,45,32,170,225,82,111,212,212,85,167,110,249,151,171,180,135,64,76,2,72,190,84,126,229,205,176,44,36,102,41,66,83,236,231,40,34,228,207,60,31,183,39,166,63,93,178,230,153,226,252,18,22,243,79,221,115,23,67,193,148,99,4,3,118,108,119,153,216,167,241,76,81,96,168,160,2,134,131,92,35,36,131,1,152,158,139,230,56,132,92,195,89,12,152,227,204,58,90,98,204,223,94,231,138,229,121,33,158,120,83,58,52,212,159,134,190,232,203,132,139,95,44,207,0,114,51,60,231,176,138,228,10,117,20,5,146,141,36,58,170,244,135,178,218,201,2,2,152,246,87,208,169,138,157,151,200,182,62,210,42,0,44,211,197,37,35,156,137,76,227,177,241,163,187,103,27,46,251,224,14,170,241,132,251,94,16,2,42,30,95,76,32,31,223,67,203,20,72,185,185,77,217,217,24,131,253,6,245,59,229,3,52,220,202,28,32,112,73,93,169,177,249,49,3,102,167,195,11,52,163,34,111,225,1,210,96,212,98,83,211,238,3,243,63,167,174,185,97,91,35,92,178,2,58,152,114,236,79,252,190,242,105,214,169,106,145,131,159,231,102,244,193,89,112,28,171,223,220,117,179,26,140,24,132,180,69,40,114,251,114,118,239,198,70,99,176,61,157,242,177,146,100,96,124,191,243,181,89,12,38,49,157,37,132,108,221,220,251,180,223,194,109,102,5,53,224,131,156,162,162,85,189,213,132,56,139,182,198,189,90,78,34,22,230,55,156,149,199,186,110,231,195,136,135,213,133,245,192,85,188,158,68,168,70,182,114,128,40,115,156,54,61,218,7,236,104,143,72,40,216,194,218,25,134,173,127,175,115,25,172,133,135,61,108,237,45,52,124,32,248,47,147,1,30,249,220,217,163,169,178,116,209,143,160,93,52,137,174,48,223,204,216,142,39,81,96,237,23,218,190,173,237,44,40,45,30,170,200,63,186,192,206,92,70,89,246,72,253,30,95,211,68,176,180,2,170,155,194,139,55,88,205,62,147,33,170,197,216,51,186,75,81,249,227,0,100,198,253,75,90,33,175,137,46,236,76,224,62,2,171,84,117,165}, } ; static const unsigned char precomputed_core_scale3sntrup761_k[precomputed_core_scale3sntrup761_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_scale3sntrup761_c[precomputed_core_scale3sntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_scale3sntrup761_impl(long long impl) { unsigned char *h = test_core_scale3sntrup761_h; unsigned char *n = test_core_scale3sntrup761_n; unsigned char *k = test_core_scale3sntrup761_k; unsigned char *c = test_core_scale3sntrup761_c; unsigned char *h2 = test_core_scale3sntrup761_h2; unsigned char *n2 = test_core_scale3sntrup761_n2; unsigned char *k2 = test_core_scale3sntrup761_k2; unsigned char *c2 = test_core_scale3sntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup761(impl); printf("core_scale3sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup761_implementation(impl),ntruprime_dispatch_core_scale3sntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup761; printf("core_scale3sntrup761 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup761_implementation(),ntruprime_core_scale3sntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_scale3sntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_scale3sntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_scale3sntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_scale3sntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_scale3sntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_scale3sntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_scale3sntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_scale3sntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_scale3sntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_scale3sntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_scale3sntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup761")) return; storage_core_scale3sntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_scale3sntrup761_h = aligned(storage_core_scale3sntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_scale3sntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_scale3sntrup761_n = aligned(storage_core_scale3sntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_scale3sntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_scale3sntrup761_k = aligned(storage_core_scale3sntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_scale3sntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_scale3sntrup761_c = aligned(storage_core_scale3sntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_scale3sntrup761_h2 = callocplus(maxalloc); test_core_scale3sntrup761_h2 = aligned(storage_core_scale3sntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_scale3sntrup761_n2 = callocplus(maxalloc); test_core_scale3sntrup761_n2 = aligned(storage_core_scale3sntrup761_n2,crypto_core_INPUTBYTES); storage_core_scale3sntrup761_k2 = callocplus(maxalloc); test_core_scale3sntrup761_k2 = aligned(storage_core_scale3sntrup761_k2,crypto_core_KEYBYTES); storage_core_scale3sntrup761_c2 = callocplus(maxalloc); test_core_scale3sntrup761_c2 = aligned(storage_core_scale3sntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_scale3sntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup761();++impl) forked(test_core_scale3sntrup761_impl,impl); ++test_core_scale3sntrup761_h; ++test_core_scale3sntrup761_n; ++test_core_scale3sntrup761_k; ++test_core_scale3sntrup761_c; ++test_core_scale3sntrup761_h2; ++test_core_scale3sntrup761_n2; ++test_core_scale3sntrup761_k2; ++test_core_scale3sntrup761_c2; } free(storage_core_scale3sntrup761_c2); free(storage_core_scale3sntrup761_k2); free(storage_core_scale3sntrup761_n2); free(storage_core_scale3sntrup761_h2); free(storage_core_scale3sntrup761_c); free(storage_core_scale3sntrup761_k); free(storage_core_scale3sntrup761_n); free(storage_core_scale3sntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_scale3sntrup857.c0000644000000000000000000016212514705505543023746 0ustar rootroot/* ----- core/scale3sntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_scale3sntrup857_checksums[] = { "9a0c86ef536b17661fc00fb0a1d3bbaeb811467e20cdaf7f3b2e9d11c157e112", "60cf4ed2b17e4f69461e1edebcc59e2a39c232d1d352b51f4ebb2b578f4833fe", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_scale3sntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_scale3sntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_scale3sntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_scale3sntrup857_CONSTBYTES static void *storage_core_scale3sntrup857_h; static unsigned char *test_core_scale3sntrup857_h; static void *storage_core_scale3sntrup857_n; static unsigned char *test_core_scale3sntrup857_n; static void *storage_core_scale3sntrup857_k; static unsigned char *test_core_scale3sntrup857_k; static void *storage_core_scale3sntrup857_c; static unsigned char *test_core_scale3sntrup857_c; static void *storage_core_scale3sntrup857_h2; static unsigned char *test_core_scale3sntrup857_h2; static void *storage_core_scale3sntrup857_n2; static unsigned char *test_core_scale3sntrup857_n2; static void *storage_core_scale3sntrup857_k2; static unsigned char *test_core_scale3sntrup857_k2; static void *storage_core_scale3sntrup857_c2; static unsigned char *test_core_scale3sntrup857_c2; #define precomputed_core_scale3sntrup857_NUM 4 static const unsigned char precomputed_core_scale3sntrup857_h[precomputed_core_scale3sntrup857_NUM][crypto_core_OUTPUTBYTES] = { {130,161,204,252,160,188,30,23,95,40,0,14,106,4,230,108,151,192,74,238,68,4,77,174,63,95,183,215,46,183,74,29,33,245,35,227,229,6,202,250,131,74,131,248,3,52,181,250,187,76,29,172,115,66,56,201,167,243,53,112,100,245,47,95,117,64,172,6,149,37,20,0,25,218,37,243,91,169,0,110,58,87,97,11,29,48,5,254,145,117,12,9,187,11,76,61,212,205,108,5,194,75,90,40,27,17,126,192,191,42,238,253,88,65,27,73,220,53,40,20,33,247,218,79,99,61,74,15,249,218,20,58,170,36,99,3,153,211,159,238,171,1,96,1,83,44,255,26,61,254,104,216,249,80,137,69,69,242,236,10,151,232,92,105,35,228,76,190,103,0,32,237,4,247,110,247,92,230,34,214,16,252,66,188,117,163,63,31,244,71,144,32,72,50,46,162,113,252,21,217,11,50,27,189,166,24,19,0,149,248,64,228,174,242,27,97,72,110,103,94,228,212,231,202,250,174,204,7,3,89,45,30,193,65,80,57,112,192,160,76,38,92,165,247,243,177,207,31,88,185,175,90,37,253,134,4,10,169,61,93,21,54,136,165,42,182,48,160,18,1,77,94,157,20,255,6,71,190,146,2,160,8,246,199,113,8,194,5,164,187,127,211,130,110,13,169,104,99,99,236,33,26,64,45,189,234,95,207,134,80,140,191,204,57,100,205,150,34,120,247,101,210,41,74,6,60,31,106,56,83,189,238,75,10,137,92,75,66,222,23,204,114,124,3,177,51,48,84,33,253,90,250,51,240,182,40,57,222,143,217,85,223,86,104,102,168,154,158,235,169,222,9,140,176,194,216,82,3,249,249,180,217,231,160,250,161,18,174,60,237,207,204,146,187,7,44,104,7,252,35,143,2,70,64,4,80,248,22,141,200,38,240,82,6,20,222,84,178,137,183,38,250,74,163,158,110,175,1,44,72,34,91,92,175,110,175,113,18,99,3,59,250,58,8,120,85,236,196,178,106,98,232,226,224,119,88,77,91,98,168,174,71,47,175,178,60,154,219,219,247,144,29,96,37,161,205,73,249,208,215,69,248,157,173,97,253,222,109,129,223,103,247,249,58,41,105,12,95,165,255,18,227,177,67,33,79,45,240,225,105,244,22,213,54,252,236,155,235,89,1,46,220,125,50,18,231,175,209,224,173,116,41,114,243,204,51,69,70,21,107,80,105,47,248,67,175,1,79,141,192,127,44,0,172,245,93,50,83,72,250,25,215,73,36,66,47,121,164,3,13,106,29,217,177,130,89,222,1,233,69,253,184,113,3,240,59,125,9,156,203,122,106,31,222,215,11,97,42,114,7,151,6,19,82,138,87,238,5,165,249,16,68,43,216,33,47,58,208,174,9,26,249,165,222,250,186,184,246,249,206,162,176,123,214,227,162,12,1,68,3,36,17,145,254,252,192,40,98,82,219,183,16,90,164,35,213,241,85,98,161,113,212,59,242,183,230,246,93,55,203,29,178,223,187,2,101,188,24,67,47,249,57,164,41,109,228,238,7,189,4,183,253,101,250,78,175,228,17,166,246,101,213,35,82,111,254,189,209,219,180,208,253,111,0,237,248,34,94,157,237,42,75,110,85,21,216,88,7,167,16,32,59,6,161,78,28,144,180,227,247,112,99,140,163,219,158,210,236,13,59,101,54,80,215,183,65,209,206,96,238,82,159,79,202,99,235,3,21,29,250,66,199,238,167,49,183,220,65,222,248,196,102,150,3,158,70,117,54,131,1,236,182,98,64,61,109,34,250,28,9,213,30,107,55,50,250,139,91,158,254,238,219,185,163,241,249,244,106,249,11,129,102,180,247,174,196,245,82,225,165,29,33,17,4,2,180,93,93,234,180,245,5,64,174,157,221,102,12,100,9,215,34,165,37,122,248,86,52,242,229,204,234,192,222,144,185,152,7,141,252,35,20,136,163,119,58,32,52,55,251,192,178,163,186,207,19,136,222,45,225,224,99,35,166,9,87,139,190,181,216,240,177,41,255,76,6,21,178,147,180,209,31,127,115,153,252,166,198,250,229,70,1,53,2,113,249,98,3,223,14,40,213,132,254,174,254,3,36,169,207,140,239,196,253,100,246,81,246,5,176,6,43,86,238,235,8,90,43,79,1,0,11,85,173,180,17,41,78,80,97,164,182,99,195,12,250,204,253,82,252,144,15,215,254,97,32,186,106,205,44,81,4,93,235,185,248,245,70,65,101,164,214,92,7,126,67,204,198,55,21,94,178,84,97,118,0,133,52,110,95,249,3,207,176,71,224,167,58,168,189,66,255,88,243,15,249,80,11,174,62,253,57,143,64,140,250,199,178,209,215,76,181,247,79,8,12,57,188,41,5,216,179,222,3,140,87,82,71,21,242,6,40,212,207,63,104,77,15,78,78,88,22,206,246,24,25,202,87,254,47,100,97,164,45,239,252,194,25,152,255,235,163,112,214,23,0,146,192,54,76,69,51,140,247,9,188,55,180,153,234,161,108,243,91,224,248,112,62,110,33,178,40,214,250,236,106,165,178,109,53,230,112,231,252,185,86,17,190,248,112,50,83,26,32,6,3,235,37,68,6,180,4,180,13,78,46,252,253,71,1,111,229,42,215,171,249,85,214,6,28,85,185,157,19,68,56,201,196,199,103,91,22,22,195,22,101,80,216,152,4,90,246,199,251,95,78,153,3,75,246,7,214,34,226,78,107,194,228,63,4,180,248,251,248,3,94,18,76,25,52,240,65,57,70,127,205,145,169,91,202,221,65,214,203,14,202,33,9,130,76,70,179,102,2,203,28,123,34,117,80,234,249,70,221,151,236,249,162,97,254,133,174,44,168,178,77,38,97,139,46,158,248,79,207,131,42,60,115,174,4,33,91,139,75,238,9,37,6,47,8,225,255,180,238,27,16,208,194,178,7,76,26,98,8,50,249,124,237,122,225,197,250,197,93,198,10,197,249,208,6,42,71,254,252,233,57,159,62,163,104,128,53,253,14,71,46,23,2,78,19,153,35,222,191,172,38,48,16,8,98,64,64,178,252,149,185,253,232,92,13,209,21,89,12,178,114,248,244,213,95,153,76,187,247,6,255,80,71,68,37,240,34,211,81,94,13,149,52,162,26,170,38,247,217,92,229,69,238,212,23,217,56,55,23,2,249,206,98,141,255,63,62,160,175,85,55,214,65,110,247,121,6,61,115,215,26,45,201,35,22,48,192,225,228,175,253,127,5,169,206,10,86,74,197,43,85,76,45,133,8,158,56,177,110,43,102,24,166,13,194,23,70,87,2,155,253,69,71,111,28,97,112,16,12,172,217,80,0,19,28,216,53,37,8,31,114,234,46,202,240,210,223,48,102,143,224,40,29,231,1,176,48,218,163,118,247,144,192,61,7,53,19,36,80,206,253,36,175,147,3,152,50,233,23,191,255,190,159,177,12,217,5,92,64,239,110,37,6,227,79,254,252,125,115,131,66,255,254,150,223,76,31,199,111,202,101,50,255,44,228,204,181,155,74,199,163,16,28,64,64,84,44,203,92,167,77,44,7,246,219,39,247,214,177,121,39,7,228,125,237,255,1,131,95,45,26,125,6,74,50,68,82,215,66,86,163,179,160,227,41,219,40,68,204,28,89,14,23,4,55,218,0,253,189,116,224,143,250,73,114,150,169,57,215,123,26,4,10,162,6,53,57,81,82,246,195,155,220,226,248,123,17,107,184,197,214,103,246,132,57,84,25,39,77,29,255,230,68,179,41,9,179,238,254,186,2,39,229,191,3,32,78,87,219,98,222,46,195,162,49,130,3,225,9,21,93,87,52,87,160,80,226,144,14}, {83,216,52,5,74,4,255,43,231,246,220,245,37,62,48,165,210,103,213,1,136,89,232,234,234,73,139,227,201,94,251,73,119,67,140,90,134,17,81,224,42,253,163,254,12,13,116,56,40,49,221,44,180,64,129,249,50,103,107,185,10,159,33,69,143,47,216,177,185,79,166,110,74,213,63,115,192,45,10,180,86,117,112,235,19,174,159,212,43,163,24,38,76,197,144,182,189,103,234,9,170,247,165,173,237,201,140,250,10,232,43,76,136,114,253,223,173,228,146,52,78,67,101,250,132,186,217,247,1,68,77,97,173,0,226,177,72,218,152,163,11,9,123,3,42,99,55,165,234,42,160,2,10,85,36,71,111,89,155,65,143,7,20,254,52,87,243,247,66,22,185,178,3,2,164,18,96,15,185,49,212,172,122,202,122,108,167,65,36,244,110,114,107,58,240,205,6,78,255,234,73,189,151,58,97,251,196,230,113,58,14,225,163,67,219,8,6,183,153,180,109,96,91,5,2,108,193,164,4,215,129,250,57,116,197,81,32,215,193,252,161,181,224,255,194,7,45,56,107,226,122,158,254,49,146,77,223,91,119,24,218,69,233,9,235,9,140,208,247,194,52,249,10,44,233,192,60,248,191,231,235,15,2,86,9,252,221,6,187,24,35,248,102,182,22,225,253,51,161,91,173,16,230,195,34,20,165,21,117,104,93,251,147,27,30,1,56,29,97,13,157,244,9,231,75,32,198,7,14,68,129,168,185,81,52,5,186,3,200,45,82,162,46,79,213,34,117,90,140,224,121,214,49,17,194,39,98,2,22,208,223,174,174,224,145,195,33,2,49,247,149,9,98,202,6,37,20,8,184,236,85,66,129,219,180,21,74,49,248,39,121,193,34,47,244,34,184,210,52,70,218,2,69,189,209,250,79,33,118,14,253,170,251,74,221,107,92,193,66,164,150,67,75,181,143,243,46,90,252,7,144,58,166,65,102,59,125,112,190,250,109,203,130,105,177,102,246,5,89,81,232,193,82,8,114,11,7,6,213,198,142,82,64,167,28,249,52,13,182,77,35,219,4,54,192,113,207,204,202,6,185,173,104,59,56,22,60,197,73,169,75,253,164,1,6,206,136,23,48,115,78,79,136,30,219,78,40,167,139,79,173,93,98,25,237,248,228,93,48,207,209,48,247,237,198,97,156,204,63,160,237,229,241,10,252,211,74,182,113,192,41,32,236,253,116,246,238,251,176,34,24,177,185,2,84,255,225,51,127,224,213,5,102,111,19,56,202,188,209,93,246,215,107,105,178,252,148,211,198,249,227,164,77,246,199,223,223,178,111,70,125,193,156,73,44,247,175,254,169,1,249,184,137,64,67,162,144,8,69,189,76,36,247,16,132,50,38,253,241,8,228,167,178,228,222,210,163,251,98,199,236,228,199,2,49,165,78,216,216,93,94,168,105,250,9,185,195,205,5,3,191,69,184,25,62,221,152,237,112,179,59,206,32,114,90,77,100,39,1,39,138,55,4,252,120,51,114,102,200,251,41,207,229,251,111,194,91,42,218,160,19,95,80,38,89,197,42,29,167,72,84,7,24,229,20,226,228,59,253,38,31,93,126,60,61,91,231,41,224,186,36,99,190,76,62,24,8,26,78,238,234,4,250,42,207,241,86,245,102,12,248,2,217,249,196,47,170,49,225,216,248,203,213,114,106,203,207,98,147,255,83,61,203,90,146,35,241,101,23,227,61,186,91,52,218,196,226,82,237,173,111,4,14,84,63,217,156,85,114,189,112,216,86,232,131,183,217,40,195,70,198,9,86,108,106,232,57,109,244,173,110,62,115,243,199,64,126,201,183,173,6,89,152,6,51,50,150,18,174,6,133,163,101,111,223,212,31,215,255,196,156,43,83,223,142,1,229,211,193,48,6,17,207,33,106,2,61,164,237,15,74,213,1,213,251,159,234,22,199,0,132,98,138,225,205,9,178,8,106,49,93,94,62,108,65,187,246,62,131,6,158,7,46,191,191,30,164,2,192,50,201,213,243,178,217,57,21,97,239,82,82,105,198,66,167,255,201,191,50,14,230,249,227,196,208,100,206,22,201,192,137,179,124,235,232,249,60,83,235,197,236,164,103,64,68,70,15,57,42,77,50,52,250,5,168,5,168,252,235,165,246,170,115,27,190,23,197,69,116,51,218,67,4,20,204,20,75,5,134,230,59,18,179,255,233,8,207,78,20,202,192,64,133,163,131,170,160,253,227,89,160,106,171,235,225,213,205,111,106,6,234,249,172,169,194,13,182,1,61,170,200,182,35,252,223,188,100,212,24,30,215,252,178,222,99,221,82,65,43,83,4,42,47,182,249,8,161,166,81,117,62,169,143,11,220,164,12,73,159,9,41,255,147,173,117,175,132,80,17,50,125,173,182,229,188,11,3,68,54,237,63,208,105,94,22,55,205,0,153,26,239,66,216,34,248,67,84,231,43,193,46,49,136,114,13,94,136,162,72,242,40,117,123,80,144,1,210,66,172,53,24,163,225,9,217,237,82,52,31,184,224,5,140,50,16,60,177,254,61,234,199,26,114,19,76,41,204,76,17,62,138,50,10,199,129,64,9,248,214,97,122,251,214,85,126,45,46,238,96,8,120,7,55,55,10,20,2,39,160,248,243,193,238,198,39,24,43,163,152,215,162,215,207,82,9,106,185,12,70,240,209,6,196,9,225,3,87,234,119,7,110,80,233,247,142,218,61,23,237,78,88,16,228,178,228,47,188,56,102,253,106,225,166,28,216,169,10,251,241,191,198,184,208,180,219,114,164,78,124,253,17,255,105,2,55,214,9,186,150,168,131,2,252,69,159,234,163,216,254,107,108,3,223,0,225,184,42,53,226,76,46,3,80,97,53,26,242,84,37,0,75,80,183,205,164,0,216,33,124,227,83,3,196,213,75,90,66,59,245,237,78,188,201,98,87,212,192,56,228,102,232,221,206,16,212,11,24,247,176,71,212,231,9,179,79,251,83,205,211,51,167,163,169,92,109,226,185,180,39,173,83,106,216,48,120,1,41,206,124,38,215,28,177,102,0,67,111,164,206,251,115,70,156,198,167,22,20,19,220,251,234,30,46,91,40,188,204,65,177,1,37,252,218,246,12,253,166,250,133,252,185,221,172,18,110,42,199,251,155,184,169,74,77,251,142,94,0,90,152,4,189,3,119,174,134,88,7,0,201,7,88,10,79,25,60,49,219,52,53,216,207,181,29,76,86,19,216,3,85,245,102,216,8,114,68,2,78,193,78,207,58,200,143,180,76,188,130,6,236,246,217,67,162,62,88,47,26,251,116,39,70,218,76,0,77,96,212,250,239,5,73,85,197,57,14,85,37,47,45,98,23,252,27,169,88,163,131,8,25,101,2,5,128,173,142,90,31,249,45,68,241,66,0,169,78,104,2,239,96,5,180,215,18,255,239,209,203,251,1,103,225,185,190,253,246,12,61,13,87,211,70,51,235,21,130,99,229,61,140,98,203,185,231,52,253,162,95,90,57,57,185,200,203,64,210,233,217,7,238,101,98,50,83,109,90,251,236,9,172,59,198,38,50,187,135,28,42,2,39,241,111,221,156,169,204,82,20,9,222,0,222,242,193,62,72,183,210,196,123,31,117,32,224,31,202,4,213,198,121,15,18,7,160,83,83,246,218,225,222,102,16,255,123,255,82,54,98,111,120,51,124,15,248,1,168,225,165,191,254,240,23,114,32,8,249,25,65,23,84,84,90,113,3,98,6,240,182,111,44,32,164,160,227,3,197,173,156,16,86,106,84,55,191,216,83,82,121,249,49,72,182,163,80,50,244,248,194,39,159,107,3,9,22,5}, {125,237,210,244,206,160,38,114,236,247,254,161,130,108,187,53,241,78,69,103,229,48,1,221,57,27,109,177,99,4,112,239,119,247,190,245,91,158,86,181,144,108,252,254,113,114,250,86,120,240,140,165,244,65,84,61,138,7,102,89,83,5,132,101,103,25,139,48,97,9,155,114,52,54,58,26,160,106,91,1,226,106,228,228,158,250,173,109,111,255,189,180,219,249,145,171,11,187,155,6,250,171,108,61,111,24,81,158,23,187,72,1,43,38,242,15,92,65,77,218,221,212,235,175,84,41,145,251,206,0,76,255,72,228,211,248,195,47,87,95,48,105,55,221,31,77,54,1,224,232,108,0,150,53,56,20,167,204,94,82,14,192,225,27,213,173,127,182,129,98,148,20,92,5,136,16,204,248,208,70,57,3,131,173,83,81,243,64,198,43,220,6,25,66,22,219,51,182,183,98,216,54,200,254,127,216,102,1,40,87,206,248,243,214,229,71,167,199,228,168,121,247,221,254,131,80,219,193,94,2,25,202,251,18,39,64,213,190,114,206,225,40,177,18,168,17,227,200,222,22,7,213,96,94,66,197,135,88,222,159,137,63,50,27,0,31,233,243,206,81,105,65,147,226,72,64,124,29,114,198,77,203,164,61,62,69,177,222,25,163,238,158,72,71,131,172,194,175,223,8,145,72,8,42,238,89,39,74,152,90,99,233,114,168,50,48,160,253,215,183,212,254,24,236,219,93,114,174,71,252,100,213,6,36,9,159,115,237,176,31,19,183,165,70,82,247,199,182,37,34,58,254,151,49,182,246,58,176,255,70,186,89,45,188,148,94,230,250,229,187,129,171,70,160,222,2,144,226,236,180,193,31,181,68,111,95,28,250,147,62,202,104,172,105,74,184,110,36,213,183,243,3,213,177,35,21,83,70,185,102,163,253,185,245,100,186,160,213,106,190,144,190,61,171,156,9,47,168,95,158,36,9,76,6,36,5,0,197,51,220,59,249,195,178,28,248,39,240,12,4,7,33,209,0,72,75,161,252,41,111,12,87,53,84,25,229,213,251,134,16,40,173,129,3,102,238,220,3,136,246,216,58,31,8,6,4,106,247,149,225,233,14,224,59,255,49,160,215,167,249,65,228,36,219,59,14,100,65,125,184,51,25,237,159,235,191,157,6,247,71,127,207,179,2,15,171,133,2,92,193,122,51,71,172,176,113,193,92,85,45,26,176,178,163,214,55,45,244,216,236,88,72,174,61,232,213,59,240,190,102,129,167,226,225,189,240,201,61,156,93,120,246,253,8,57,68,223,56,7,67,56,199,98,233,68,101,186,24,234,107,44,72,224,65,141,162,101,169,187,4,250,236,62,255,74,234,178,161,148,70,212,116,164,189,253,71,23,0,27,187,128,169,13,248,28,251,230,7,239,103,31,83,192,168,152,189,227,17,30,17,246,105,236,35,97,111,98,84,153,8,53,1,28,55,188,70,105,38,89,244,253,93,121,172,57,59,6,239,218,6,87,223,228,114,88,231,245,232,95,202,55,95,61,3,228,242,125,17,135,39,179,168,38,246,144,3,183,68,83,75,208,253,115,65,135,243,13,83,96,2,241,36,40,29,120,167,184,3,191,7,228,187,94,218,28,115,68,61,149,103,233,100,37,96,213,188,57,26,233,16,186,230,156,85,217,47,57,194,87,24,112,188,131,5,176,214,240,19,49,254,231,247,184,215,86,7,179,184,189,46,245,7,220,34,9,24,166,87,55,247,104,17,67,34,66,37,151,57,179,52,165,254,69,68,55,1,20,6,248,192,89,249,229,165,209,172,217,216,175,2,233,254,218,200,208,33,224,217,152,114,208,63,157,7,77,253,0,214,146,27,148,38,64,68,202,105,116,227,153,163,105,3,1,39,144,35,238,56,161,9,243,6,112,255,185,96,222,211,0,178,93,255,132,4,117,175,40,56,101,7,114,6,198,30,32,85,143,58,29,246,44,35,158,238,245,2,110,250,48,17,103,226,187,181,248,15,142,175,16,82,8,112,223,246,92,16,152,249,228,6,128,3,103,42,208,199,147,253,41,192,49,207,136,47,156,87,215,12,253,237,123,184,238,170,120,106,75,54,38,96,250,35,135,234,248,255,14,4,77,1,146,38,8,91,196,81,106,1,217,68,246,87,66,221,228,105,202,94,96,6,88,247,152,223,183,204,44,40,49,55,197,41,247,106,244,75,61,41,240,63,183,110,254,37,180,0,240,182,227,59,235,97,184,54,169,99,29,163,227,229,41,41,212,224,16,89,147,6,72,243,145,225,192,159,98,233,71,213,5,3,236,101,163,108,169,160,244,107,71,249,104,109,34,62,80,49,36,213,251,1,185,47,81,201,108,45,197,7,196,34,212,110,80,97,102,87,110,231,122,32,111,246,37,2,76,222,49,46,70,249,23,249,239,162,33,96,75,34,96,79,73,19,140,111,55,249,109,19,243,40,175,11,253,65,231,251,17,58,249,200,155,214,251,4,137,46,99,112,85,0,147,111,138,29,249,189,207,231,7,216,3,8,26,198,211,105,204,254,30,25,86,246,31,248,163,193,163,58,191,2,94,27,35,174,156,88,152,109,172,164,47,251,251,22,115,229,81,243,188,57,234,247,19,248,18,34,237,67,22,195,58,117,97,98,78,241,213,72,113,95,8,90,23,29,4,9,98,111,48,113,193,114,93,3,200,221,95,221,55,218,192,6,108,191,200,230,43,95,43,80,241,97,129,0,81,69,59,250,52,47,212,205,165,254,62,218,222,86,154,96,235,225,98,162,142,254,63,0,130,83,61,252,248,246,174,79,61,13,144,211,240,253,153,96,35,7,31,4,49,235,236,42,59,117,221,185,48,243,77,160,163,0,63,253,109,0,63,112,142,27,98,62,203,96,208,1,102,0,25,30,33,63,63,55,208,179,24,46,67,82,156,240,230,72,4,240,125,22,141,90,111,49,46,15,100,239,218,97,222,5,226,18,36,30,177,1,184,48,164,2,35,4,75,117,248,103,59,91,115,54,200,246,230,176,199,161,165,73,129,58,28,66,20,29,21,249,125,78,165,55,24,41,208,8,183,32,43,9,101,255,70,78,109,8,23,44,99,216,116,226,252,236,118,80,194,66,206,186,193,218,174,7,57,32,169,235,116,243,67,12,185,251,58,87,10,5,196,100,85,166,106,217,158,253,77,93,23,207,191,39,146,43,80,214,107,252,117,208,71,2,74,189,38,208,234,6,92,226,201,55,141,21,16,195,202,196,30,66,186,25,41,47,238,162,128,255,52,99,105,174,32,249,62,116,93,247,251,198,107,108,207,48,151,43,9,9,68,28,19,172,249,1,179,5,8,250,212,217,128,251,163,247,242,251,144,8,64,2,103,233,247,2,115,75,39,191,208,75,69,195,178,5,66,3,49,0,57,82,125,48,224,198,202,89,20,110,198,172,128,53,222,2,144,167,255,173,37,5,90,184,188,74,77,191,51,174,102,18,225,4,121,4,52,98,229,107,158,55,147,227,34,18,195,175,222,104,207,76,78,53,56,190,225,113,129,200,81,239,29,185,61,170,133,221,122,64,45,218,167,238,94,63,101,180,26,247,43,223,138,201,255,199,181,6,211,21,169,47,96,90,14,192,45,9,205,205,31,186,2,197,185,20,163,79,90,21,99,250,222,228,216,184,171,5,19,222,186,236,240,65,161,12,188,54,14,205,127,254,24,233,167,92,6,9,253,92,107,108,233,171,37,96,121,69,5,72,241,26,24,242,150,5,208,187,247,70,177,168,28,59,234,220,124,94,191,252,191,98,65,24,66,246,198,161,129,10,19,248,75,4,234,177,230,166}, {71,99,25,96,107,3,81,5,72,228,38,22,254,58,117,229,17,40,106,194,85,248,152,231,99,222,45,49,187,194,52,53,67,192,91,5,12,182,176,38,100,247,120,65,53,177,164,3,67,23,206,178,25,19,241,64,13,116,209,79,54,14,130,240,169,175,242,22,118,7,8,67,162,158,234,78,110,246,87,253,37,159,52,106,120,112,71,78,158,251,41,48,75,193,29,105,53,46,139,163,36,112,24,177,166,17,166,40,29,250,35,106,73,9,26,249,184,62,80,96,132,84,214,1,16,3,76,78,146,53,235,253,237,28,131,28,169,60,88,78,204,168,189,189,253,219,26,223,161,17,169,9,193,2,189,220,155,107,219,114,32,86,200,9,170,103,165,213,202,0,187,199,186,81,5,247,115,115,152,218,33,234,2,83,193,25,27,80,75,88,104,171,100,176,38,113,204,44,84,166,195,223,77,172,50,184,174,199,253,79,238,4,179,58,252,29,185,77,253,229,175,41,197,22,201,73,225,77,215,102,184,249,45,53,89,235,224,208,137,115,227,253,103,7,147,0,220,200,106,254,88,56,123,105,57,79,112,241,159,176,30,107,9,176,145,95,237,245,4,80,177,11,118,247,110,178,225,225,9,246,90,6,211,55,25,252,166,13,19,186,243,115,44,89,148,78,252,235,20,250,189,215,62,217,203,248,39,8,40,8,13,193,86,6,124,253,136,70,229,26,239,200,152,76,170,46,231,48,165,186,185,204,164,74,55,229,21,93,68,37,82,52,19,222,143,78,107,13,144,106,173,74,117,180,246,13,208,180,209,197,38,66,37,44,92,67,249,20,111,225,175,200,134,254,132,0,188,6,134,113,230,211,123,70,15,57,20,8,83,219,4,160,6,18,63,252,38,23,99,105,98,0,173,248,240,226,115,232,242,14,163,75,239,57,148,172,34,208,20,247,208,8,82,167,87,90,55,34,30,227,37,87,129,60,184,4,132,247,206,99,153,247,229,109,150,39,149,227,100,237,131,78,86,3,254,73,57,9,185,6,223,66,98,186,76,246,207,55,13,249,3,33,254,89,151,17,199,75,60,89,98,165,232,15,26,65,71,9,224,214,65,75,243,25,102,65,20,228,182,21,14,62,91,50,201,251,30,114,23,67,232,85,187,184,143,80,35,4,73,84,115,9,0,40,56,110,215,39,68,16,232,186,188,68,48,220,199,247,43,6,101,240,159,159,141,6,54,92,138,110,38,63,230,7,23,2,106,255,61,92,233,204,121,185,54,249,206,67,14,192,160,43,73,253,120,59,115,232,85,234,236,81,6,200,6,45,246,36,220,6,232,205,162,49,56,237,126,237,231,3,9,249,112,23,254,84,41,71,61,14,84,159,159,103,186,113,165,9,196,252,161,47,31,249,69,102,220,114,130,117,124,84,47,246,146,230,218,183,246,235,162,198,157,113,216,50,104,204,151,5,134,225,85,210,220,15,154,249,159,255,196,197,123,216,140,53,8,175,54,244,94,78,115,64,122,15,203,233,221,209,106,193,92,166,63,54,54,4,249,72,221,240,3,162,124,55,49,203,142,116,99,3,81,251,70,65,59,7,45,236,81,31,62,111,149,223,40,162,27,36,110,3,9,246,21,236,90,42,216,22,71,0,220,35,90,1,254,247,12,225,4,249,135,239,146,234,88,252,28,89,24,189,11,56,56,163,91,250,248,251,105,170,180,92,109,109,82,191,35,237,197,204,80,255,71,202,39,3,165,33,218,162,24,170,77,202,59,9,214,5,182,4,37,40,164,199,251,4,108,45,56,18,86,222,215,190,224,116,165,83,237,99,113,251,97,198,18,112,164,174,57,20,4,14,41,3,109,84,18,95,127,224,12,168,113,38,251,198,162,0,147,207,177,27,67,88,74,104,209,53,10,63,153,249,192,252,236,255,155,161,37,72,130,233,13,83,26,211,161,3,140,4,167,37,19,53,130,195,156,114,11,237,59,95,67,74,207,5,252,244,136,61,224,171,131,253,114,11,203,80,227,39,65,175,170,9,112,235,92,51,227,219,232,247,169,116,130,228,10,115,140,79,100,230,240,4,199,81,69,211,134,3,205,28,17,192,90,34,41,227,232,64,135,112,116,161,251,222,64,211,246,12,159,36,111,9,244,7,101,112,81,105,6,78,238,45,129,255,128,45,30,98,103,28,72,221,137,106,202,61,98,109,212,66,72,15,236,172,23,27,46,117,59,59,234,84,185,171,54,247,126,165,102,186,109,49,211,161,23,219,56,18,223,240,202,1,212,237,151,8,36,26,74,218,131,37,78,101,179,31,184,192,116,69,110,37,23,193,140,246,91,41,131,217,113,13,153,76,102,114,84,0,12,38,214,9,160,204,150,93,111,195,102,175,135,204,4,77,176,250,56,220,62,44,233,76,206,75,94,232,136,14,78,7,41,12,72,64,159,229,189,180,80,176,222,252,178,12,123,226,78,4,250,195,230,86,235,178,200,73,241,91,36,32,140,112,105,232,166,1,11,166,66,86,157,37,162,166,27,52,176,251,58,197,3,184,91,117,80,3,4,207,15,114,18,252,16,12,251,17,208,243,43,1,233,75,70,240,187,45,209,220,159,81,91,190,127,242,127,98,209,6,197,43,249,244,242,167,0,60,36,9,103,5,20,95,146,182,113,45,65,7,245,3,212,50,217,38,25,114,119,6,88,225,195,24,145,246,146,48,212,213,216,99,21,209,198,224,209,21,231,41,116,233,6,108,126,8,213,249,220,160,204,253,8,170,228,221,92,29,37,84,39,199,69,40,117,56,151,77,216,186,81,200,181,209,225,75,26,15,86,190,153,17,234,55,61,209,140,0,184,30,131,55,145,16,89,192,70,13,171,178,62,211,32,241,164,81,142,221,201,46,74,239,171,113,167,215,42,94,112,50,217,6,128,2,85,252,153,248,225,246,3,190,16,100,252,53,54,20,177,192,95,39,84,173,187,2,159,231,233,250,85,93,3,4,9,56,104,94,34,11,46,217,219,176,178,5,53,52,9,65,61,60,223,37,68,248,80,178,4,35,136,251,100,0,92,227,43,11,165,85,13,78,45,210,94,206,224,253,208,189,64,17,48,216,89,69,190,198,89,89,44,211,38,187,93,64,226,26,183,251,195,7,133,12,173,49,242,240,174,194,28,219,181,81,253,9,21,11,167,38,252,210,68,97,97,60,152,246,115,113,37,162,169,251,208,251,90,19,251,57,181,48,223,0,30,251,54,164,34,107,42,167,226,9,20,34,82,8,158,28,235,114,149,8,60,22,146,188,222,84,117,8,229,165,55,74,125,199,140,216,104,253,148,227,147,48,109,207,221,66,143,206,38,91,193,185,169,4,138,104,125,229,16,160,137,78,133,191,218,103,3,101,81,117,118,240,221,108,43,46,205,210,28,221,60,0,244,1,64,30,12,12,26,252,80,173,42,102,208,211,29,238,111,114,151,109,165,170,62,24,57,5,162,254,172,107,65,254,186,88,217,253,15,31,169,6,141,8,132,59,91,185,165,207,221,105,236,9,196,74,204,167,134,24,232,161,2,210,125,178,53,28,205,92,214,32,199,7,203,160,178,236,240,3,205,186,224,75,63,169,88,48,184,87,133,225,57,252,67,11,13,194,60,225,83,78,241,62,12,236,247,5,107,15,197,80,211,23,100,71,32,26,117,41,255,63,72,6,53,193,119,58,153,39,151,6,150,46,151,228,98,64,100,78,0,70,229,47,58,231,54,9,2,242,48,10,61,7,233,104,246,6,144,174,183,24,24,199,78,81,78,69,87,65,61,94,241,180,206,182,54,86,28,40,85,236,222,1,216,208,171,25}, } ; static const unsigned char precomputed_core_scale3sntrup857_n[precomputed_core_scale3sntrup857_NUM][crypto_core_INPUTBYTES] = { {113,132,68,84,123,141,111,14,218,190,101,11,206,86,7,43,120,57,9,158,209,178,10,222,122,38,216,235,85,54,211,101,166,245,252,68,92,94,137,247,230,116,230,174,102,109,130,247,78,32,250,135,54,114,3,231,40,245,204,214,103,160,202,123,140,113,127,251,236,189,193,6,78,151,82,74,100,220,101,43,35,121,48,181,196,22,87,255,64,131,4,3,78,181,41,27,55,147,191,165,251,31,131,105,110,12,197,142,250,20,149,248,45,199,110,116,89,195,29,184,166,75,3,204,134,112,211,11,238,236,193,196,243,18,134,178,206,63,208,72,158,92,133,92,214,106,186,15,36,6,19,236,184,33,232,29,178,244,9,181,120,241,217,41,252,239,95,227,50,92,251,242,71,246,223,3,15,70,81,235,75,77,177,226,194,47,122,102,97,201,149,17,125,23,85,47,22,248,162,65,190,108,164,141,71,100,177,170,135,253,91,69,213,244,110,124,125,43,50,38,231,234,232,60,153,51,169,94,102,36,116,187,80,199,213,25,107,57,69,32,199,122,156,174,236,137,170,102,99,140,74,122,28,91,231,178,73,220,36,123,108,195,115,48,169,224,171,46,6,171,212,208,68,184,85,2,8,142,235,92,123,81,237,59,224,94,251,93,39,141,112,234,59,214,74,220,221,39,188,242,112,15,37,107,218,156,16,233,231,118,31,57,169,196,103,232,151,103,141,174,18,234,200,116,103,197,26,42,205,119,218,72,126,95,232,122,126,199,175,14,169,215,111,250,160,194,117,205,11,255,30,254,172,158,247,190,174,152,32,151,98,238,215,126,189,134,121,131,148,220,74,3,31,52,49,236,198,171,184,4,215,65,232,46,153,132,161,136,175,157,224,146,33,141,18,192,221,179,185,18,234,92,39,28,17,204,13,185,202,230,253,243,43,94,247,237,183,52,30,225,253,161,9,133,239,128,229,85,201,30,27,37,15,137,21,137,224,12,188,79,105,83,190,2,141,120,63,144,75,42,17,156,145,153,226,206,212,207,17,220,159,30,0,137,75,112,121,66,73,253,149,16,133,104,38,147,94,76,139,150,23,168,122,136,203,169,175,128,198,67,205,167,184,111,200,41,105,38,55,85,161,239,160,114,112,118,170,158,176,212,97,14,172,195,239,242,36,157,115,0,85,237,228,108,161,155,128,148,59,51,225,105,193,159,169,194,124,115,108,42,213,41,0,76,92,222,16,33,202,142,58,192,155,50,12,38,203,119,179,76,78,150,40,104,123,22,110,133,102,96,51,187,142,52,59,207,74,171,8,30,154,225,224,7,181,26,228,9,207,231,227,212,80,67,2,96,48,106,139,94,221,172,22,34,147,206,95,179,156,4,21,200,84,65,112,22,89,233,159,180,94,168,210,152,153,55,77,174,238,232,209,222,196,64,60,218,105,92,7,165,113,12,64,6,239,142,29,210,97,66,162,97,185,218,252,234,96,35,17,47,22,64,4,74,216,240,183,208,88,146,250,137,144,226,187,125,249,14,38,193,184,196,241,105,106,69,95,9,164,93,162,176,119,83,181,51,177,12,226,252,18,235,198,204,37,170,218,233,228,138,240,169,192,78,234,246,27,38,122,72,115,202,223,205,162,150,45,9,242,182,197,111,157,217,127,101,203,138,161,82,53,125,31,133,228,216,225,242,20,197,220,24,11,65,162,28,54,62,187,72,97,46,96,231,188,71,102,184,196,4,177,59,149,134,86,54,89,199,175,89,81,126,205,79,239,200,140,195,28,79,63,54,219,198,36,43,81,247,25,95,172,187,222,195,1,162,62,37,37,78,149,66,46,133,96,175,97,42,184,10,144,211,60,253,213,58,12,205,230,133,196,17,246,79,241,223,132,208,233,138,66,251,91,51,122,152,135,181,49,95,2,189,156,104,126,253,215,194,65,155,223,156,219,152,203,225,35,81,202,162,198,98,115,218,226,196,197,194,34,5,219,52,124,55,170,98,115,67,170,153,5,40,252,133,104,206,116,227,130,65,235,137,254,248,95,251,162,52,204,138,0,188,58,45,152,5,125,59,153,240,194,85,204,92,123,168,118,86,90,182,83,64,44,170,58,170,102,189,126,62,31,73,236,169,103,75,128,3,242,51,103,106,13,158,148,81,131,106,42,7,101,10,98,136,161,12,200,32,213,209,39,54,188,143,4,254,223,77,198,254,149,182,56,78,48,188,163,127,84,192,182,250,186,71,46,76,12,201,208,125,39,150,15,81,143,114,223,144,34,99,101,223,129,124,210,170,60,24,223,123,238,79,224,222,8,68,242,196,211,141,177,163,99,74,106,4,213,95,159,27,100,111,234,198,233,4,136,223,54,65,95,224,98,33,189,10,174,226,99,172,227,223,74,1,233,35,43,201,162,244,103,105,55,233,122,41,212,11,127,203,45,14,255,88,109,100,83,121,15,108,49,39,241,21,165,169,251,185,136,170,148,218,107,235,248,163,33,228,119,117,124,194,132,82,158,226,88,53,206,156,240,42,182,122,160,253,53,198,223,17,75,20,87,90,9,213,210,52,52,195,7,215,77,84,248,120,246,141,13,215,203,119,195,102,157,79,94,19,108,87,215,250,161,96,127,107,185,176,109,0,192,69,169,235,212,161,98,235,103,101,98,140,68,13,209,110,222,58,82,41,46,14,77,58,23,211,11,236,237,178,185,160,237,83,218,32,152,178,25,82,72,235,81,239,127,42,49,240,176,250,60,168,169,253,102,123,107,117,24,24,181,28,120,115,112,232,118,220,100,231,4,114,141,146,245,145,112,180,59,32,93,138,135,7,254,186,142,103,140,33,179,4,93,152,120,157,238,132,48,6,114,51,255,219,75,203,199,209,62,22,37,76,96,62,230,20,121,130,159,93,112,122,62,117,149,252,82,251,101,173,176,6,215,72,110,97,139,143,129,166,41,186,219,94,203,89,111,72,25,239,252,4,252,37,167,95,252,89,240,172,115,30,15,91,8,26,154,27,70,212,229,109,100,182,210,192,93,171,127,98,152,18,229,227,73,190,117,97,189,124,37,28,75,176,34,55,154,241,217,181,0,14,216,10,75,130,67,160,172,38,152,117,78,89,103,6,213,115,209,189,181,103,86,119,47,11,236,194,155,15,243,104,152,236,15,155,178,72,1,100,88,196,34,185,241,246,255,124,148,6,122,27,123,222,44,25,87,199,223,3,110,251,36,45,2,101,170,145,198,184,171,142,230,154,128,248,213,1,126,147,19,206,9,59,30,35,41,107,60,180,239,110,160,43,30,126,163,48,74,143,194,200,29,86,238,5,124,30,138,101,48,44,21,96,127,236,11,164,22,16,173,24,28,180,26,130,179,107,137,73,225,67,117,211,32,68,29,187,178,92,245,22,57,133,109,246,203,142,191,87,204,183,113,33,255,5,167,51,150,178,237,108,8,100,149,170,133,46,160,181,243,1,217,198,10,129,82,251,6,204,69,248,228,215,230,28,240,248,205,67,41,17,82,129,83,211,203,91,255,239,223,53,238,116,136,218,21,16,37,28,129,21,254,122,242,117,255,80,237,151,13,253,141,52,56,105,72,69,26,243,186,92,230,123,116,15,228,8,211,108,209,204,2,29,13,133,44,132,6,106,174,105,7,232,25,207,191,99,17,25,3,7,154,56,23,68,133,83,40,130,205,49,174,235,142,15,172,88,155,179,204,25,128,119,237,143,36,152,91,4,142,12,20,140,50,150,104,75,145,196,129,100,114,32,250,248,7,115,246,105,158,223,95,6,163,7,168,69,48,165,197,32,184,151,17,238,85,58,155,108,113,250,230,81,108,208,130,109,184,46,11,154,149,11}, {12,236,87,80,211,178,186,106,77,82,143,160,28,198,171,133,171,126,226,249,61,207,147,71,179,116,116,154,168,123,14,202,226,199,233,36,231,97,182,238,169,77,124,163,105,96,225,110,29,23,4,107,161,113,144,4,203,211,20,55,73,46,112,200,234,107,227,137,248,203,71,214,9,235,122,130,165,192,73,53,215,45,107,242,76,51,208,234,84,218,109,19,95,144,203,224,164,126,179,180,243,3,210,221,234,145,31,162,73,241,30,32,61,130,154,238,42,240,235,194,127,114,119,83,199,140,88,89,16,200,212,209,42,164,145,52,179,236,35,133,89,88,41,1,115,210,88,48,179,191,224,0,19,35,113,30,138,36,238,113,32,81,92,255,33,121,236,75,123,99,46,138,102,7,241,12,133,182,248,193,55,136,25,146,227,42,242,113,167,74,223,44,222,196,235,61,103,203,240,156,94,56,66,26,102,162,135,155,224,196,245,238,70,29,73,88,157,139,206,138,52,124,100,80,187,42,134,133,71,150,144,175,120,45,252,33,251,64,134,77,38,139,59,249,251,179,116,25,20,154,25,46,15,194,235,117,90,37,226,14,3,30,163,88,148,252,31,148,152,143,188,253,19,192,62,228,121,89,48,241,94,97,187,120,158,162,4,9,78,100,97,253,189,224,77,68,100,109,240,207,244,182,61,229,27,184,156,184,140,41,31,169,150,186,165,249,205,101,48,11,122,245,158,155,126,17,167,94,191,114,198,134,248,33,87,80,217,79,253,21,97,47,31,33,172,103,140,207,31,68,110,235,32,183,251,19,219,92,77,233,144,51,213,238,118,58,11,86,32,89,34,167,17,146,103,104,247,251,131,157,44,114,198,151,161,184,211,193,13,20,110,228,27,193,97,18,131,63,33,30,158,171,178,141,155,83,42,103,55,182,154,135,14,117,4,128,15,143,177,218,151,114,180,53,32,245,31,122,84,173,149,111,71,199,135,26,228,214,234,168,106,146,59,127,160,211,183,8,216,33,147,228,43,180,139,10,18,94,226,144,63,34,91,134,180,253,33,11,247,117,252,236,17,110,165,44,224,146,238,172,46,51,221,111,205,184,175,229,94,220,180,77,241,177,157,232,61,185,117,130,127,118,61,102,174,203,83,134,62,33,244,37,219,185,79,168,177,208,171,147,0,23,152,72,167,124,207,146,176,46,234,69,96,10,239,63,9,54,22,228,200,102,63,163,225,88,250,83,245,188,163,137,46,250,28,85,176,194,112,153,71,87,135,214,22,196,137,141,0,38,237,235,222,41,75,176,119,234,221,161,60,48,10,246,136,238,144,223,138,115,26,143,153,116,100,82,229,84,72,7,238,54,232,198,92,47,203,166,178,141,41,104,98,12,145,23,253,162,96,180,231,219,129,69,229,148,70,5,17,145,63,240,82,178,86,48,181,150,173,208,101,49,136,175,158,225,220,61,242,164,250,29,77,15,5,67,35,243,107,138,4,62,197,44,131,32,49,105,16,105,147,110,17,176,141,194,139,211,152,254,254,232,146,162,192,228,46,106,57,132,22,209,213,104,14,59,115,16,242,30,183,251,163,69,247,153,177,26,100,190,26,123,143,197,36,37,178,20,59,226,113,210,79,32,207,14,189,100,181,72,179,93,99,106,224,73,13,75,135,181,67,250,142,76,81,193,243,193,230,150,67,61,172,215,105,146,170,39,49,85,214,197,254,36,235,103,96,211,248,68,90,55,46,24,57,144,91,34,234,221,37,172,191,34,176,65,153,120,193,141,107,65,13,156,28,225,88,20,166,115,221,81,215,42,105,241,120,128,151,136,223,112,108,74,82,28,197,145,216,221,103,36,237,8,118,23,151,183,159,179,114,218,220,43,144,149,80,150,240,58,153,106,12,153,218,85,146,234,80,108,103,12,170,188,206,0,90,133,180,182,9,235,70,64,68,217,179,99,237,170,145,39,201,153,138,252,75,180,51,23,132,123,207,42,6,141,183,27,129,87,138,2,85,142,250,16,140,171,165,23,222,149,236,52,88,111,108,124,10,205,43,127,167,199,242,91,222,227,203,96,61,247,60,144,85,40,255,184,222,142,30,53,111,242,93,175,121,34,148,144,63,48,50,28,209,200,106,196,115,32,203,194,99,179,211,165,157,5,148,48,237,220,54,101,79,185,252,29,225,23,3,200,17,184,169,13,126,8,29,70,206,12,145,170,62,252,170,203,247,145,165,113,114,218,28,50,69,91,6,122,69,42,212,71,230,149,84,129,51,94,179,4,127,220,251,181,146,0,90,135,51,54,198,90,144,141,103,149,109,187,56,248,129,67,188,237,43,199,30,205,17,106,0,54,83,88,38,134,128,216,5,135,234,95,143,133,105,116,154,180,99,170,204,221,194,51,145,33,192,108,26,51,45,155,249,95,102,29,173,157,176,62,136,123,23,25,138,249,152,15,10,29,173,103,13,200,183,155,84,228,31,23,61,130,20,38,115,47,179,244,29,131,142,33,48,171,171,199,73,195,163,47,75,3,142,72,43,24,80,225,5,94,233,108,21,112,160,91,90,71,82,186,139,98,41,191,169,117,192,112,147,23,73,230,144,113,104,89,87,39,126,254,87,35,143,192,85,243,187,166,195,251,34,25,19,184,187,19,224,82,236,57,149,59,114,185,84,218,35,65,209,235,170,119,104,127,248,10,93,73,155,87,236,173,176,178,184,156,125,2,223,118,163,82,117,151,36,185,180,203,45,12,231,52,177,22,249,110,135,176,105,68,71,16,227,49,174,83,150,142,221,54,139,53,174,215,241,32,111,248,91,170,35,86,88,235,158,140,205,134,129,171,185,200,208,156,124,65,15,128,36,1,245,170,230,54,115,24,91,32,31,93,213,209,204,100,11,35,28,92,126,33,216,61,140,85,173,188,111,154,12,165,135,64,126,207,123,26,66,243,181,226,168,39,184,234,165,25,177,211,147,152,255,182,1,96,109,174,245,115,55,241,158,223,197,83,12,147,86,109,40,133,72,208,106,239,46,224,168,221,214,212,173,193,40,171,254,61,57,190,2,187,160,211,101,114,192,218,255,175,54,30,207,144,242,184,193,183,143,162,179,187,31,37,83,141,169,28,160,92,28,176,57,246,105,176,71,90,60,176,46,67,73,98,223,20,136,162,36,140,72,202,10,77,63,38,101,207,136,1,63,1,24,222,231,206,72,249,222,251,45,10,42,15,121,108,174,109,2,236,224,53,196,202,215,183,227,79,98,160,189,150,189,44,7,250,181,57,181,147,89,145,32,224,95,141,214,172,63,246,88,29,155,27,45,193,249,76,225,19,93,151,196,170,212,38,156,83,165,172,40,35,252,25,191,205,28,193,116,39,248,247,164,49,99,218,129,173,24,211,241,250,27,51,63,122,80,76,116,29,96,114,155,49,127,41,241,72,32,87,215,235,6,85,64,63,254,175,16,41,230,225,79,91,183,181,36,11,184,63,39,109,94,99,59,125,92,27,233,124,52,55,178,109,154,47,218,36,120,196,46,60,254,198,225,241,142,166,95,211,219,108,214,213,131,90,9,10,73,197,167,19,1,141,146,101,115,7,168,73,192,237,207,49,169,119,92,88,175,177,229,244,80,198,179,139,225,58,142,102,140,17,5,188,238,86,226,144,56,97,6,173,69,205,113,167,57,239,175,211,21,177,196,163,43,110,219,43,141,194,57,97,13,178,211,153,210,227,69,244,194,44,96,173,184,100,208,99,129,205,131,44,102,39,157,158,247,43,201,102,39,132,6,8,50,51,153,97,215,212,129,110,48,236,214,204,211,253,32,116,45,133,213,108,252,82,251,19,154,42,102,180,23,179}, {26,243,225,74,53,132,199,44,63,161,69,47,59,128,78,195,96,118,124,126,92,108,70,152,120,186,106,52,134,93,107,158,125,82,133,160,100,131,13,139,149,213,84,170,224,44,99,206,195,158,31,219,97,199,129,112,46,173,135,36,214,93,145,40,50,15,62,108,48,95,238,44,33,110,35,186,69,42,201,85,91,42,231,154,138,83,244,213,192,163,218,138,228,161,118,50,244,140,36,166,153,50,137,112,138,185,182,216,248,140,24,171,30,190,11,12,217,113,10,66,58,64,148,222,129,20,118,162,154,85,41,177,179,154,86,4,166,22,130,38,117,212,88,152,26,203,18,171,59,156,36,0,151,24,205,98,40,232,47,34,245,227,176,186,226,221,112,139,144,39,65,184,217,93,61,12,223,246,85,30,174,79,28,51,214,33,182,113,167,106,143,251,24,114,77,66,172,224,162,39,173,195,253,176,112,65,135,92,29,121,53,76,236,64,92,201,40,145,231,134,56,89,58,78,230,118,228,57,47,178,78,231,14,13,114,113,226,56,193,232,176,105,160,183,157,12,60,60,175,99,72,64,133,123,177,229,146,121,229,131,232,27,203,15,101,102,62,245,255,33,136,28,204,68,125,113,57,187,193,144,10,61,241,197,207,29,214,152,78,218,149,131,125,30,28,136,49,137,245,2,64,116,189,20,95,207,114,31,237,36,188,241,193,134,203,22,123,248,56,225,156,255,163,242,174,208,193,136,8,248,103,64,103,189,158,131,108,72,245,187,76,54,156,115,97,246,136,139,28,18,89,163,66,23,45,246,89,137,186,115,163,36,170,226,65,38,61,162,146,226,198,135,93,217,229,164,203,68,63,224,80,17,76,200,138,38,25,90,150,27,83,212,73,127,9,140,223,18,226,139,236,79,226,137,198,13,214,200,248,40,70,91,46,75,103,55,123,64,105,227,203,56,90,50,153,180,0,220,16,46,113,180,95,251,167,165,155,229,172,66,4,247,220,52,25,4,168,158,4,172,18,103,0,7,125,202,240,90,200,43,105,206,204,34,78,240,71,169,231,182,83,136,43,1,189,72,244,171,115,75,173,111,26,180,157,250,105,246,34,239,8,97,5,112,186,108,123,150,40,247,6,240,167,151,206,96,49,199,26,140,118,100,234,131,148,142,122,251,98,201,112,62,246,92,160,135,215,0,15,143,227,23,8,136,245,129,80,208,44,107,249,51,129,218,87,25,170,74,227,242,45,116,159,112,147,64,4,244,79,126,198,219,145,68,218,158,168,112,153,208,141,3,100,180,120,29,90,196,18,29,3,145,17,71,209,125,163,185,179,42,201,30,5,114,202,132,18,135,132,165,153,157,207,91,9,242,129,132,65,30,1,131,39,227,100,201,248,163,164,55,27,135,175,82,25,5,61,81,10,212,26,205,219,134,35,227,6,98,111,12,183,212,9,104,48,129,219,34,51,88,103,0,25,25,249,200,136,19,14,160,100,123,110,221,120,26,157,243,3,9,184,67,177,215,99,70,66,156,16,146,34,209,90,250,231,244,228,97,146,190,44,220,253,245,48,1,162,29,214,31,240,169,54,199,200,159,20,205,187,164,96,104,29,187,195,219,232,171,250,179,231,55,101,151,25,45,209,197,236,211,8,211,28,124,226,226,120,15,8,183,217,240,153,120,88,193,174,228,130,185,107,141,129,172,43,150,181,98,187,84,232,75,131,150,114,2,44,140,164,107,66,81,89,18,104,185,71,121,189,167,221,97,38,18,123,104,66,111,246,194,156,91,124,29,88,164,193,8,67,228,216,89,146,48,54,136,142,65,74,178,163,255,57,60,85,103,59,151,237,44,85,113,223,87,212,5,155,64,235,15,65,190,37,200,83,127,23,69,206,47,35,1,16,105,149,18,95,196,139,88,182,179,107,78,248,38,229,63,155,52,132,6,199,250,194,51,29,196,119,2,193,80,167,187,197,205,234,196,250,245,201,103,37,158,66,250,223,4,117,12,104,239,132,224,13,12,117,222,21,34,189,214,245,252,217,182,136,168,177,179,229,7,50,106,139,230,150,176,254,227,86,62,61,193,153,206,2,11,154,72,196,54,149,135,141,127,126,195,199,38,99,189,200,156,67,249,90,1,111,0,235,104,189,207,81,119,206,85,88,200,183,206,177,237,177,212,83,38,133,179,99,246,35,153,216,146,201,190,32,25,252,105,98,42,97,117,36,191,181,198,162,43,15,190,161,177,235,224,6,112,94,39,77,110,72,125,250,132,60,155,200,105,55,68,21,207,204,80,179,159,118,68,219,131,17,71,8,235,87,86,9,126,70,128,126,217,97,213,8,247,221,213,27,198,213,193,167,149,14,178,248,107,182,145,137,192,252,179,81,18,1,129,213,209,135,206,21,241,227,102,138,3,183,0,95,67,32,22,93,76,93,168,64,218,112,209,126,103,133,118,40,13,233,43,88,76,52,13,182,105,74,181,100,199,77,169,192,196,238,230,36,150,68,80,232,192,134,129,199,170,150,214,147,16,238,141,224,155,72,65,156,166,249,229,86,127,169,91,111,100,13,246,26,4,124,228,70,26,48,250,47,101,252,221,153,121,237,213,127,133,0,77,14,185,108,240,182,159,249,25,233,75,76,161,107,103,180,114,77,58,35,131,48,210,181,73,172,201,224,123,189,36,194,101,17,95,219,43,117,44,80,130,186,79,51,67,16,67,88,151,219,80,191,227,51,70,30,209,30,204,96,39,144,177,128,200,105,83,33,193,55,147,210,248,5,66,175,35,67,124,148,68,17,218,218,84,176,78,59,205,191,254,168,167,159,118,36,11,203,63,235,77,152,209,198,179,181,86,86,242,9,21,206,45,58,55,171,159,10,132,124,249,21,255,106,249,122,129,63,101,219,112,254,38,240,85,189,78,24,102,112,198,122,110,139,138,109,107,38,34,207,158,7,31,71,73,228,184,148,207,138,108,31,97,103,158,3,210,175,8,91,98,113,187,214,249,77,108,140,171,97,1,126,216,13,212,206,207,54,110,51,246,61,52,136,132,156,116,144,111,25,114,193,101,162,161,228,32,156,110,109,20,240,2,162,17,185,173,220,91,39,118,106,81,194,106,188,150,23,154,239,242,55,204,251,28,53,226,134,151,159,94,120,17,126,242,23,245,38,96,147,254,35,121,19,179,81,40,98,219,105,236,138,84,212,37,248,232,250,19,235,191,11,150,222,90,194,62,109,171,9,227,253,147,233,80,15,154,168,110,148,184,75,58,137,229,111,199,163,100,200,107,149,47,229,91,33,125,190,136,251,246,207,130,31,253,68,230,222,42,170,193,66,21,3,3,209,186,76,221,83,171,145,172,243,161,55,151,128,254,225,167,11,176,149,9,37,178,104,156,152,79,54,117,168,227,85,117,178,143,230,1,177,79,187,170,120,119,228,22,59,230,83,207,193,128,221,50,229,109,175,7,203,219,240,221,183,1,185,54,249,116,10,57,172,136,135,183,176,93,211,86,33,210,92,213,239,195,204,239,27,98,220,51,175,41,170,117,127,24,3,142,176,44,198,230,182,243,250,54,90,135,114,152,227,198,170,236,40,158,47,113,18,224,94,82,84,238,201,145,240,59,231,172,86,99,72,193,133,207,245,227,170,81,138,232,80,55,241,58,248,98,70,33,131,184,134,175,229,154,227,54,212,165,76,67,217,242,181,28,240,10,249,24,245,146,213,84,163,241,242,122,157,81,100,208,222,42,62,221,28,124,56,115,188,30,96,186,163,244,50,87,139,226,98,30,214,134,25,197,233,66,57,38,48,248,250,124,208,14,22,82,221,217,144,95,22,4,25,172,233,137,61,134}, {210,39,24,124,20,165,27,87,179,154,199,184,15,197,194,69,192,190,105,143,44,4,35,241,188,152,116,108,132,143,33,195,92,57,100,80,159,224,245,104,49,89,141,28,2,223,140,86,38,185,53,138,24,13,96,28,20,216,0,204,119,11,113,73,126,222,11,185,55,9,189,199,209,216,179,203,21,246,29,255,82,46,33,42,141,129,210,32,138,254,200,22,180,57,196,41,204,192,116,218,113,129,163,137,71,183,71,20,95,83,198,212,195,173,195,89,77,198,213,38,145,205,87,7,21,93,41,118,235,109,94,91,180,101,230,186,72,112,45,118,223,134,218,141,154,66,249,152,240,97,227,173,134,79,218,66,238,127,174,215,197,120,253,9,243,211,210,149,83,92,132,230,163,204,87,82,54,45,35,66,166,156,187,119,80,15,110,33,126,121,19,221,103,137,199,129,169,21,183,48,220,67,10,136,1,140,213,59,100,33,250,86,246,196,185,16,248,117,154,240,74,191,252,184,168,116,176,32,2,41,77,175,116,24,14,157,59,148,232,215,6,6,50,9,49,0,143,145,206,84,45,196,142,212,120,118,107,244,208,222,111,42,158,222,64,209,234,245,17,204,160,10,109,246,21,138,230,153,158,160,131,179,86,25,78,77,71,11,76,55,182,130,201,121,65,118,239,71,247,161,218,235,5,151,52,76,13,88,83,81,74,228,114,87,212,169,61,30,92,186,64,60,237,202,243,192,178,193,210,140,46,232,241,116,88,240,108,208,209,189,43,24,76,67,234,32,222,181,149,127,244,116,194,138,183,96,139,53,54,59,199,28,28,192,217,199,184,13,192,153,128,145,231,176,44,0,148,87,231,129,61,149,142,115,106,196,193,94,12,237,71,217,103,183,122,5,199,99,134,212,118,85,42,76,235,68,108,241,11,97,70,117,10,26,119,221,81,233,92,82,85,180,97,134,130,207,34,18,165,239,28,121,144,197,131,165,199,75,255,39,152,174,92,43,151,190,34,69,103,72,230,32,13,165,15,202,174,81,46,166,90,114,17,226,41,174,170,110,175,253,102,188,15,122,66,183,82,117,121,36,17,219,93,97,195,113,210,9,59,150,208,31,182,100,135,28,247,239,247,13,191,112,46,194,168,90,111,215,194,199,93,35,132,225,234,118,97,1,40,120,54,95,101,105,205,128,2,20,209,182,147,55,249,114,171,66,82,89,84,251,18,244,208,131,202,80,119,37,147,43,199,27,162,2,93,171,105,78,36,208,62,232,110,140,119,4,255,199,245,227,69,21,94,248,141,26,108,241,98,71,9,34,157,230,103,192,183,189,143,251,147,232,155,108,3,243,197,157,178,178,158,161,53,185,15,35,200,115,36,182,183,131,154,126,163,44,55,3,236,254,240,107,80,76,124,211,89,130,59,131,57,120,0,246,33,70,57,225,237,71,209,144,68,215,173,23,19,232,66,179,29,239,98,63,89,97,222,253,53,85,135,144,196,150,233,109,243,136,173,74,47,118,54,28,227,11,52,71,58,63,105,228,15,134,122,195,119,93,184,201,58,244,156,132,57,25,86,146,63,216,33,1,128,90,39,199,4,81,170,242,128,102,207,43,34,153,83,47,110,189,223,7,3,82,162,242,131,191,173,99,8,164,89,189,185,249,15,4,159,153,71,76,200,243,33,242,45,176,25,207,163,141,190,110,3,133,201,168,67,77,190,220,161,37,52,43,97,142,252,242,50,232,112,170,8,146,168,79,156,188,57,218,163,220,10,146,105,88,242,1,247,178,28,20,39,145,68,80,137,192,205,12,13,238,56,142,5,131,156,34,180,210,22,77,102,59,107,129,39,222,120,13,17,182,99,86,52,120,107,38,112,153,159,134,224,104,68,230,155,177,204,147,160,186,38,36,211,126,0,110,19,113,152,4,64,84,9,92,36,47,28,116,113,156,20,205,249,148,139,86,132,1,242,189,22,195,113,58,153,215,244,242,206,123,38,202,69,87,239,74,61,27,59,221,230,5,139,10,254,118,6,20,6,137,41,167,107,242,217,23,60,237,147,246,72,216,113,69,19,45,233,203,103,155,181,93,82,119,178,63,231,7,84,16,246,227,131,103,254,68,93,28,146,129,23,47,68,238,91,234,183,181,154,189,192,81,97,9,220,214,128,212,103,203,95,107,144,6,229,21,111,39,50,16,179,237,232,212,83,27,219,213,1,29,125,182,63,136,194,15,31,131,206,111,179,205,46,221,173,75,197,133,189,140,52,23,140,132,248,236,205,12,144,73,238,85,55,243,66,180,113,15,9,66,230,189,127,40,246,187,131,57,225,29,223,189,248,142,132,167,46,191,28,151,224,181,152,117,135,215,28,0,105,19,242,173,123,61,151,208,192,143,189,51,200,146,17,203,43,162,3,152,207,106,8,203,255,31,101,241,61,182,181,251,200,10,125,113,208,69,218,138,11,52,229,162,75,96,196,68,181,250,153,58,7,121,148,223,253,201,96,37,113,17,233,214,190,70,71,7,244,133,123,35,68,19,209,48,110,109,43,77,89,144,156,54,46,131,112,86,71,62,106,215,6,84,21,96,14,98,139,74,30,7,8,32,93,73,78,107,54,152,154,204,100,227,112,159,58,210,155,87,252,191,238,74,65,49,101,197,12,3,205,1,193,123,33,54,224,21,208,179,12,8,1,109,88,190,24,130,24,166,99,68,166,185,219,252,235,22,55,235,173,210,162,233,221,238,0,14,178,20,23,71,103,213,197,166,71,83,143,217,169,176,243,49,231,237,217,101,28,120,168,59,124,105,140,25,66,203,227,140,182,230,130,148,176,202,195,11,13,142,152,12,179,110,90,148,132,85,77,102,230,195,64,12,14,228,39,11,212,52,5,149,251,158,241,33,117,152,168,107,9,73,158,44,40,65,115,123,53,194,88,94,128,171,98,77,206,246,75,82,156,56,21,40,185,24,119,13,214,142,218,19,183,221,132,79,208,155,163,83,44,123,1,172,104,25,221,208,27,181,85,236,228,222,75,179,204,194,104,28,36,112,90,19,7,76,11,138,17,189,216,83,204,170,15,69,30,181,156,120,20,118,170,148,101,147,160,84,139,56,37,183,171,150,216,29,133,59,216,121,255,148,253,140,132,113,91,186,162,90,166,94,60,96,244,193,65,244,213,228,79,66,76,119,100,95,108,10,242,104,239,148,209,209,48,112,35,246,54,215,82,47,72,5,240,83,131,98,14,26,76,108,245,170,111,90,173,218,27,213,169,219,91,95,193,188,97,81,239,186,94,130,135,173,121,99,33,56,175,205,194,166,146,48,34,202,26,145,31,236,221,5,119,154,150,193,106,62,4,29,32,62,199,207,134,140,72,8,147,41,26,155,75,217,232,32,114,142,3,212,102,40,128,216,109,73,4,43,30,22,138,63,79,152,175,78,252,85,37,102,105,181,94,169,11,51,115,211,139,234,250,157,138,215,66,43,210,220,207,14,19,87,209,248,73,213,107,255,163,121,243,169,106,102,72,94,202,166,145,26,100,140,210,147,4,42,63,167,81,202,223,219,231,14,147,132,241,233,26,138,204,186,84,208,87,188,237,87,52,132,129,157,235,79,138,55,5,32,176,49,45,108,77,121,114,68,19,84,38,181,74,143,175,153,214,32,96,198,159,242,253,1,222,11,252,118,86,185,49,201,197,100,140,20,186,198,179,80,2,143,226,196,152,190,66,94,151,107,120,69,219,198,49,118,101,115,92,193,89,70,173,81,241,73,117,95,90,166,8,127,183,179,203,136,162,185,163,59,127,204,127,200,130,28,36,38,150,53,53,54,119,35,25,20,98,157,175,92,227,62,158,100}, } ; static const unsigned char precomputed_core_scale3sntrup857_k[precomputed_core_scale3sntrup857_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_scale3sntrup857_c[precomputed_core_scale3sntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_scale3sntrup857_impl(long long impl) { unsigned char *h = test_core_scale3sntrup857_h; unsigned char *n = test_core_scale3sntrup857_n; unsigned char *k = test_core_scale3sntrup857_k; unsigned char *c = test_core_scale3sntrup857_c; unsigned char *h2 = test_core_scale3sntrup857_h2; unsigned char *n2 = test_core_scale3sntrup857_n2; unsigned char *k2 = test_core_scale3sntrup857_k2; unsigned char *c2 = test_core_scale3sntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup857(impl); printf("core_scale3sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup857_implementation(impl),ntruprime_dispatch_core_scale3sntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup857; printf("core_scale3sntrup857 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup857_implementation(),ntruprime_core_scale3sntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_scale3sntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_scale3sntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_scale3sntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_scale3sntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_scale3sntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_scale3sntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_scale3sntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_scale3sntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_scale3sntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_scale3sntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_scale3sntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup857")) return; storage_core_scale3sntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_scale3sntrup857_h = aligned(storage_core_scale3sntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_scale3sntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_scale3sntrup857_n = aligned(storage_core_scale3sntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_scale3sntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_scale3sntrup857_k = aligned(storage_core_scale3sntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_scale3sntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_scale3sntrup857_c = aligned(storage_core_scale3sntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_scale3sntrup857_h2 = callocplus(maxalloc); test_core_scale3sntrup857_h2 = aligned(storage_core_scale3sntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_scale3sntrup857_n2 = callocplus(maxalloc); test_core_scale3sntrup857_n2 = aligned(storage_core_scale3sntrup857_n2,crypto_core_INPUTBYTES); storage_core_scale3sntrup857_k2 = callocplus(maxalloc); test_core_scale3sntrup857_k2 = aligned(storage_core_scale3sntrup857_k2,crypto_core_KEYBYTES); storage_core_scale3sntrup857_c2 = callocplus(maxalloc); test_core_scale3sntrup857_c2 = aligned(storage_core_scale3sntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_scale3sntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup857();++impl) forked(test_core_scale3sntrup857_impl,impl); ++test_core_scale3sntrup857_h; ++test_core_scale3sntrup857_n; ++test_core_scale3sntrup857_k; ++test_core_scale3sntrup857_c; ++test_core_scale3sntrup857_h2; ++test_core_scale3sntrup857_n2; ++test_core_scale3sntrup857_k2; ++test_core_scale3sntrup857_c2; } free(storage_core_scale3sntrup857_c2); free(storage_core_scale3sntrup857_k2); free(storage_core_scale3sntrup857_n2); free(storage_core_scale3sntrup857_h2); free(storage_core_scale3sntrup857_c); free(storage_core_scale3sntrup857_k); free(storage_core_scale3sntrup857_n); free(storage_core_scale3sntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_scale3sntrup953.c0000644000000000000000000017461514705505543023752 0ustar rootroot/* ----- core/scale3sntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_scale3sntrup953_checksums[] = { "8314ddeee37405ec4052b6a273321eadef8a41e2037942e57799265898c5d69a", "0e9ac7e49118ea8c87983e80587ad9b42cb117dab2e807d78f8589c447c44fdb", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_scale3sntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_scale3sntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_scale3sntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_scale3sntrup953_CONSTBYTES static void *storage_core_scale3sntrup953_h; static unsigned char *test_core_scale3sntrup953_h; static void *storage_core_scale3sntrup953_n; static unsigned char *test_core_scale3sntrup953_n; static void *storage_core_scale3sntrup953_k; static unsigned char *test_core_scale3sntrup953_k; static void *storage_core_scale3sntrup953_c; static unsigned char *test_core_scale3sntrup953_c; static void *storage_core_scale3sntrup953_h2; static unsigned char *test_core_scale3sntrup953_h2; static void *storage_core_scale3sntrup953_n2; static unsigned char *test_core_scale3sntrup953_n2; static void *storage_core_scale3sntrup953_k2; static unsigned char *test_core_scale3sntrup953_k2; static void *storage_core_scale3sntrup953_c2; static unsigned char *test_core_scale3sntrup953_c2; #define precomputed_core_scale3sntrup953_NUM 4 static const unsigned char precomputed_core_scale3sntrup953_h[precomputed_core_scale3sntrup953_NUM][crypto_core_OUTPUTBYTES] = { {181,207,215,253,239,185,150,82,217,9,136,40,40,187,12,211,84,58,151,179,162,31,65,109,247,253,136,24,117,47,77,112,20,21,157,215,37,246,122,9,23,113,216,57,174,105,146,63,133,200,12,219,220,201,102,235,72,230,46,234,0,232,21,169,109,50,154,72,247,168,136,5,160,253,20,86,17,219,25,80,143,94,172,1,2,59,51,249,77,209,111,237,180,9,211,230,224,19,46,6,138,31,167,60,73,101,18,235,200,83,175,215,201,53,10,69,36,0,34,245,71,70,38,6,208,222,12,1,88,194,163,247,26,0,69,255,116,185,52,246,150,194,48,5,43,202,109,178,104,31,15,22,196,5,109,11,238,223,178,29,157,9,126,234,210,20,83,6,139,254,17,187,195,211,218,7,59,185,151,39,39,5,222,172,34,252,72,12,245,185,59,200,199,188,246,222,116,87,152,0,148,208,219,60,114,173,242,234,237,192,105,50,250,113,222,87,212,62,14,223,194,75,225,247,224,33,69,6,233,100,9,248,54,102,12,174,173,243,236,39,33,52,147,183,64,249,157,193,162,233,222,250,114,208,215,169,98,227,40,214,228,75,33,28,137,45,249,108,241,177,203,185,24,177,195,181,151,237,247,244,144,190,117,113,211,204,163,112,221,24,61,255,217,11,149,60,29,197,179,81,55,1,11,10,14,45,35,89,100,255,165,91,48,99,99,52,40,252,157,234,13,182,27,100,16,71,19,64,15,10,144,2,180,8,221,223,119,225,5,4,73,177,100,47,65,2,198,242,124,68,199,47,83,18,189,233,117,201,150,194,60,40,176,186,111,191,151,2,120,252,109,245,227,103,199,221,177,178,83,75,60,1,178,44,249,2,66,21,177,243,231,104,48,205,63,203,223,203,140,82,170,45,104,218,96,205,226,229,58,240,197,177,5,219,171,171,221,247,161,9,255,181,53,223,121,254,20,71,53,246,33,99,89,100,8,16,139,204,159,187,52,112,236,245,162,240,237,181,24,88,132,213,131,230,192,243,34,18,59,65,47,54,151,248,205,33,118,111,42,114,174,195,41,55,149,7,157,168,243,185,213,210,10,177,65,224,201,11,38,81,120,224,90,110,138,98,249,104,246,10,159,101,216,229,13,1,90,0,182,208,219,16,17,0,26,219,119,55,183,251,214,255,15,175,105,207,133,95,58,76,238,220,37,246,149,247,21,27,114,30,5,51,69,30,73,12,157,64,136,5,137,115,27,66,174,26,6,100,152,32,60,165,166,27,59,18,31,248,58,105,111,93,187,198,20,173,168,216,209,169,24,47,106,7,117,25,68,4,178,1,106,29,132,229,49,6,18,253,2,245,26,241,106,52,65,79,111,197,61,165,124,250,190,1,101,8,230,73,159,5,22,79,45,215,144,190,208,85,51,181,53,239,232,243,206,7,210,11,111,82,193,219,75,249,255,254,94,8,38,92,36,255,184,193,57,243,156,0,62,94,138,223,150,113,100,101,172,105,145,57,56,51,129,59,133,240,38,241,76,5,51,252,204,30,247,47,67,221,182,171,21,5,213,109,125,65,49,90,199,227,237,2,133,77,227,243,193,60,165,12,94,210,224,80,218,254,43,114,45,236,95,110,100,244,159,226,188,86,232,244,219,245,13,183,118,242,52,105,99,252,142,1,68,109,165,249,100,0,120,254,242,219,14,12,206,167,225,3,106,218,107,248,53,167,32,1,132,206,60,171,111,58,139,3,126,6,117,8,32,48,169,65,144,211,47,176,143,18,174,4,228,250,196,0,188,207,38,8,17,43,234,5,126,93,74,21,51,215,43,220,51,215,180,17,193,235,202,182,238,40,204,2,51,205,38,203,208,250,121,42,188,253,56,42,228,173,21,36,154,181,226,105,110,192,15,8,150,204,175,4,37,0,133,223,255,230,144,243,2,98,107,6,205,240,96,63,113,245,8,200,254,95,153,246,86,18,136,44,163,110,4,74,16,111,223,30,240,217,83,11,37,172,173,248,173,5,43,10,65,243,127,16,151,246,5,177,38,173,189,32,166,171,69,200,46,59,136,33,127,110,179,105,55,1,68,166,43,252,13,8,254,10,100,254,68,44,50,1,66,174,128,85,45,17,16,92,111,233,17,114,66,99,8,241,145,11,197,86,75,28,219,246,9,16,151,61,103,245,103,224,12,81,7,110,169,62,8,1,61,176,17,207,228,243,166,82,253,46,75,234,255,101,230,0,61,183,231,0,70,37,130,109,3,16,137,1,53,85,137,11,211,18,24,88,140,101,41,181,46,7,242,173,199,222,176,78,11,251,88,201,25,24,82,94,111,7,1,39,24,188,220,49,161,75,15,97,55,114,15,35,41,252,117,220,17,1,39,176,251,6,23,248,229,1,16,7,182,193,235,214,232,23,160,99,114,247,235,34,118,194,208,103,86,74,209,252,73,167,213,62,63,79,197,245,111,245,14,198,251,6,230,74,218,168,98,167,82,215,41,78,181,220,101,187,109,91,234,11,173,187,195,247,20,247,101,213,76,32,217,245,218,23,178,222,79,12,63,186,154,253,215,21,90,103,80,250,224,249,55,91,88,214,42,5,113,42,244,9,55,184,227,1,11,115,38,91,103,27,37,74,17,249,238,42,79,9,86,242,128,11,3,3,78,18,174,250,85,6,61,115,177,182,23,49,209,43,55,48,52,4,135,193,235,114,170,236,45,180,174,29,234,251,156,248,154,86,99,252,75,185,37,4,37,0,104,114,162,255,87,8,161,49,85,33,84,0,176,245,62,204,35,174,1,246,181,91,3,52,152,58,99,245,140,15,122,196,57,12,14,182,244,248,195,78,101,90,185,76,199,4,8,5,36,255,35,182,63,11,64,248,5,50,33,78,251,40,9,251,223,5,73,38,20,250,152,250,2,115,101,234,29,249,187,182,172,47,39,46,242,191,247,97,0,4,131,252,129,224,21,249,57,28,228,11,70,87,91,207,82,233,95,209,231,73,250,233,245,233,214,205,184,71,141,254,31,218,152,113,244,2,47,57,83,84,32,8,4,107,45,247,132,95,99,170,150,222,113,239,9,12,248,243,130,16,79,237,44,105,240,229,229,49,175,111,209,51,103,52,253,111,91,44,20,9,150,213,43,227,200,39,51,177,24,169,63,64,56,79,224,108,0,233,129,58,218,225,102,5,40,171,181,5,30,87,164,78,32,64,104,97,81,208,89,0,13,220,113,201,213,244,145,246,62,57,216,95,177,218,195,15,82,101,49,48,49,185,152,245,63,29,99,21,219,243,191,45,21,166,173,187,61,14,254,38,95,178,222,166,55,33,228,21,174,247,224,0,210,56,157,54,32,99,131,244,17,193,231,11,19,4,150,188,214,47,195,41,196,166,251,185,233,175,166,4,21,112,59,11,144,253,173,44,97,168,94,250,107,176,86,9,153,3,97,5,39,4,42,220,14,73,57,114,207,165,231,244,124,65,28,247,82,53,58,174,217,91,198,255,181,198,144,0,5,51,117,48,4,247,95,192,212,10,235,234,71,223,156,198,181,187,81,45,215,200,9,65,186,96,44,105,121,82,123,178,208,12,115,1,210,186,88,199,42,76,160,169,153,202,64,11,215,197,212,39,32,44,6,42,61,82,20,35,27,3,62,99,146,236,12,53,29,203,214,253,97,252,171,75,45,178,139,5,89,98,240,111,125,225,163,253,140,252,157,106,161,52,174,8,158,198,19,60,187,93,164,67,208,82,86,6,116,59,165,252,120,252,123,12,247,35,184,9,48,203,7,201,173,237,130,43,15,8,86,255,141,29,235,42,120,109,247,8,50,166,167,70,32,100,1,39,85,11,140,222,221,108,81,244,123,253,69,254,141,61,37,179,129,111,122,3,9,168,145,167,38,40,125,3,86,251,48,250,61,231,201,57,212,56,148,68,56,102,191,11,222,34,61,205,155,197,93,243,71,85,243,250,244,6,126,103,31,243,107,102,210,9,199,203,165,7,222,250,64,87,11,197,244,181,164,114,115,21,161,21,56,41,208,243,183,41,251,247,153,4,72,252,167,249,247,66,111,245,122,1,39,109,143,80,113,30,146,171,223,60,179,167,137,215,23,172,183,175,151,26,235,78,187,188,166,93,138,230,162,39,27,10,96,216,241,1,114,9,223,83,144,87,123,242,181,28,148,217,128,13,218,31,187,9,137,4,239,177,99,169,52,218,50,198,229,4,236,6,170,177,8,47,217,225,137,245,186,0,65,184,167,252,72,115,107,197,203,247,151,253,82,113}, {101,202,208,196,195,6,232,231,237,7,159,243,169,103,243,102,96,254,122,3,0,209,214,93,134,251,201,168,55,218,179,0,169,211,46,7,222,245,176,192,244,0,133,246,78,97,84,199,213,94,209,209,123,251,77,76,164,107,146,3,100,38,140,211,182,9,192,204,180,40,77,34,32,245,143,249,223,67,143,28,126,253,211,82,9,3,141,6,82,99,79,9,148,76,172,10,171,49,199,21,251,111,84,72,251,73,84,248,46,35,52,3,123,107,213,66,165,254,127,78,135,248,194,242,204,57,18,249,203,86,72,1,151,96,152,176,111,219,71,180,70,102,254,207,142,252,224,80,45,232,26,247,115,48,61,38,205,11,4,105,94,102,217,201,118,23,76,6,77,81,197,93,238,58,120,96,5,239,168,113,119,166,191,51,144,80,255,201,236,68,145,11,99,198,115,250,174,101,54,203,137,3,155,236,217,47,136,88,49,112,71,233,2,218,15,45,105,205,5,1,216,23,192,78,252,44,147,3,179,5,220,2,169,74,71,41,166,11,109,49,3,81,185,112,144,14,239,74,255,50,14,254,163,181,167,82,119,169,6,98,252,94,199,8,127,83,4,62,174,5,134,254,198,7,114,114,110,94,118,91,212,254,173,197,131,207,53,89,9,11,60,16,32,26,18,224,15,12,245,96,106,222,152,20,164,173,205,96,203,249,26,85,28,88,215,12,185,26,23,95,159,7,134,223,74,244,41,253,86,253,234,214,178,216,52,45,137,252,247,58,32,10,246,186,109,59,7,35,70,6,231,101,31,70,162,36,136,231,57,65,82,167,57,204,55,25,166,251,230,182,58,113,151,173,64,204,169,245,2,61,228,106,52,31,171,21,52,203,28,209,224,249,204,101,194,222,137,53,154,232,249,55,67,11,144,197,69,6,2,4,175,241,241,214,90,195,198,183,60,210,148,57,189,195,170,102,44,254,18,216,169,183,218,218,182,253,251,12,33,7,145,9,184,0,232,8,12,78,38,62,15,191,204,75,191,40,49,16,14,101,122,66,123,170,133,180,34,209,194,50,172,2,121,36,77,168,126,113,134,254,87,1,127,80,140,93,45,3,157,96,126,200,244,36,81,182,252,27,255,255,138,11,193,46,195,28,119,97,134,102,27,21,59,220,5,204,248,248,241,39,46,240,162,88,194,76,80,2,92,38,228,187,145,246,64,209,132,0,176,47,159,70,148,244,179,60,65,22,1,221,233,254,182,23,68,253,238,247,33,108,129,9,73,227,236,1,183,181,88,213,154,182,118,221,182,190,182,7,1,248,88,247,249,37,187,6,208,242,115,44,234,206,2,239,59,217,222,247,29,186,115,104,18,249,34,25,31,111,1,61,64,214,104,45,202,109,89,87,110,186,135,4,69,188,85,228,23,88,50,175,196,253,110,212,70,192,27,99,64,30,54,251,45,40,125,71,29,254,169,23,133,20,242,225,214,39,175,245,66,47,189,168,80,20,141,105,18,255,120,185,84,210,198,167,29,82,220,86,242,18,115,72,239,16,109,228,12,201,216,251,181,56,224,182,219,101,105,31,217,10,108,0,151,246,245,104,2,251,240,90,59,81,45,41,138,15,101,104,157,255,119,179,180,2,0,5,131,32,247,7,191,254,19,110,76,236,166,255,19,249,35,192,223,113,196,231,12,78,154,205,57,252,195,201,122,39,109,64,41,75,45,227,69,229,248,254,107,180,94,241,105,175,187,63,232,229,91,248,210,99,226,27,46,1,73,12,152,100,85,250,240,20,102,8,38,34,162,10,127,244,180,174,137,80,12,236,79,87,101,28,59,15,146,248,40,33,67,38,19,29,121,248,159,15,19,86,64,63,49,101,206,88,130,84,68,244,148,10,123,196,249,56,234,62,8,252,181,243,240,10,63,21,185,112,49,209,145,176,97,95,150,115,186,16,45,87,109,200,150,77,203,209,206,100,4,110,118,115,194,9,168,2,26,84,95,176,237,61,175,108,201,5,68,67,190,69,95,10,180,254,170,10,225,34,209,176,90,10,66,53,236,244,214,191,209,217,71,115,120,87,239,72,223,243,86,6,107,6,140,4,222,20,139,81,22,37,14,167,14,80,53,179,182,227,221,35,75,239,107,1,174,109,93,24,7,0,115,254,100,65,144,114,85,77,79,92,214,223,218,253,168,249,174,255,242,192,13,8,41,191,192,104,25,90,26,223,49,7,201,234,48,237,202,255,81,85,140,246,135,82,249,243,170,226,13,63,88,167,149,16,19,189,55,1,182,234,234,62,19,12,171,215,98,199,188,196,242,26,255,188,57,213,8,39,252,61,22,184,75,173,78,192,210,203,190,70,144,109,137,3,130,69,9,8,202,0,115,36,43,6,69,220,71,236,43,217,134,234,31,109,163,113,58,107,5,246,22,182,166,33,69,25,48,25,59,225,227,107,155,113,163,5,125,18,75,39,88,46,171,97,157,199,88,188,62,193,235,68,131,234,41,205,57,244,131,245,21,255,5,208,67,53,124,186,107,76,59,30,131,239,238,221,73,28,119,8,188,218,143,52,154,9,202,45,91,181,93,3,113,244,209,91,148,16,70,167,166,3,113,95,106,172,83,210,182,181,22,204,232,240,140,199,169,94,157,60,148,214,17,1,137,35,151,103,41,18,91,27,33,35,7,5,118,232,115,4,230,172,79,95,239,215,190,250,185,9,201,252,172,9,212,211,81,26,29,81,232,206,180,85,226,251,215,75,213,57,116,218,37,53,173,26,53,203,10,58,117,226,30,6,173,107,208,238,215,72,113,198,120,88,154,207,22,49,230,197,210,85,92,17,184,14,136,220,180,97,196,173,152,202,219,6,240,74,151,69,73,240,31,37,161,244,192,59,154,34,61,7,22,232,32,3,202,10,221,213,7,34,215,97,46,240,126,8,110,230,65,171,54,226,120,7,234,238,215,41,214,48,59,249,47,95,176,244,102,72,57,238,6,14,203,179,218,91,55,88,197,250,107,83,191,226,122,104,195,0,58,248,131,205,93,185,177,180,209,7,191,244,85,255,40,254,231,255,205,66,219,166,123,107,136,109,111,232,111,62,196,60,233,11,152,32,58,114,28,25,154,222,206,196,32,39,53,46,255,11,221,68,65,61,77,226,63,193,71,254,28,6,139,73,111,28,135,13,229,20,202,3,43,55,167,201,152,78,32,4,179,8,66,115,93,254,207,202,92,71,67,40,39,237,207,52,162,89,234,249,51,9,234,57,195,80,126,36,224,191,192,40,28,199,18,57,71,240,38,49,41,232,158,21,17,46,38,172,42,252,55,104,40,255,62,165,133,35,148,253,153,18,199,212,212,14,214,8,177,106,182,198,150,253,29,221,34,86,67,51,237,250,108,226,98,8,231,249,133,61,101,246,92,253,100,227,92,61,206,99,174,96,20,54,159,61,22,171,45,11,211,79,40,174,83,43,55,0,45,17,125,7,87,33,229,193,190,46,180,245,60,188,97,246,248,246,47,1,184,91,222,60,92,197,6,12,58,45,82,37,126,57,144,67,115,205,124,25,42,220,88,72,249,224,255,191,1,86,218,248,247,199,79,186,116,2,77,63,113,61,83,74,120,105,83,59,167,248,135,213,7,5,28,12,248,255,67,250,31,221,222,105,221,224,71,179,68,48,226,3,153,8,67,237,237,52,171,20,220,192,10,55,240,74,17,191,3,54,30,250,162,246,135,48,4,252,185,174,196,34,80,183,31,83,117,196,166,13,28,252,58,220,60,115,84,6,83,85,46,172,175,176,166,39,222,5,144,195,79,178,124,253,27,6,251,4,234,84,73,64,47,1,50,37,206,12,159,169,173,243,166,1,109,33,209,221,159,247,69,0,31,47,86,193,228,255,208,21,224,241,103,188,120,172,74,26,91,181,175,166,202,209,219,10,113,84,48,8,223,197,190,7,23,237,164,255,74,14,68,12,84,108,104,172,210,201,137,65,99,19,101,173,12,178,96,89,24,253,84,175,237,214,183,34,153,241,155,235,214,233,126,68,174,229,29,250,64,33,217,245,121,233,176,106,216,190,227,87,121,236,116,47,57,246,192,254,187,207,209,7,96,86,225,178,91,214,98,240,85,248,115,185,112,97,4,181,40,12,184,19,70,178,244,18,169,251,220,245,120,76,250,208,126,3,232,249,140,2,177,229,167,25,57,0,221,11,30,114,150,11,22,1,3,225,208,25,231,235,201,246,12,10,56,11,96,108,145,104,10,11,149,34,29,197,62,68,76,64,15,169}, {34,249,25,3,217,15,174,11,182,75,10,28,174,4,205,3,172,66,132,14,113,11,126,62,122,222,24,253,228,113,185,54,20,181,129,5,145,215,218,88,17,253,49,86,233,188,171,30,121,249,141,202,227,44,118,50,92,2,140,99,113,97,209,2,99,255,130,100,188,74,180,45,25,2,214,95,176,229,224,55,170,19,161,246,252,54,102,249,165,14,192,218,37,242,118,226,163,41,31,5,250,32,211,85,230,63,57,194,125,50,214,252,167,217,102,0,230,177,187,244,111,193,50,226,138,200,202,104,35,247,184,0,86,9,164,54,50,247,52,235,192,100,15,226,196,84,131,244,62,255,92,96,203,17,145,37,123,16,103,217,226,39,100,193,188,2,208,20,201,25,171,214,247,52,52,6,59,183,4,254,69,109,211,247,11,6,21,72,145,170,255,11,236,2,184,11,251,29,218,3,13,204,149,5,162,231,204,173,75,229,92,88,53,215,159,13,202,244,220,202,62,93,235,180,138,248,84,18,214,8,11,105,128,67,193,18,77,252,160,0,170,250,21,172,117,51,214,43,234,95,30,253,188,44,2,43,172,20,2,208,233,233,48,207,77,233,254,110,249,10,125,71,34,85,167,22,92,66,140,255,158,101,86,0,102,41,236,103,138,44,22,249,81,89,131,222,86,208,69,25,176,181,181,11,184,0,54,239,165,200,254,2,163,223,201,35,148,15,244,5,44,54,197,240,14,246,104,251,25,11,57,19,195,55,201,234,189,7,202,84,123,235,79,249,166,168,161,74,218,104,144,34,205,237,159,203,247,52,91,90,217,210,87,10,39,57,40,1,227,193,231,4,155,84,168,179,111,5,119,4,229,46,116,208,152,78,29,174,243,189,125,21,246,225,39,47,194,98,226,26,220,252,242,184,1,197,74,12,63,193,67,11,78,58,91,95,81,212,201,91,58,1,161,212,11,9,63,234,166,248,113,29,222,1,230,212,128,38,137,78,215,234,230,46,166,176,255,73,125,176,233,251,68,0,4,186,160,245,145,82,4,42,15,191,182,194,31,210,145,10,45,245,216,218,54,213,6,180,6,82,238,75,195,60,72,40,167,206,111,246,25,79,222,252,3,12,157,15,14,5,231,72,91,94,232,20,117,215,151,4,27,74,53,107,179,219,74,204,113,250,22,254,204,5,162,209,106,11,116,185,141,0,68,255,193,9,16,83,165,172,117,211,13,12,210,205,29,47,214,101,186,9,32,0,145,96,150,210,60,8,98,85,179,11,253,106,58,29,115,11,176,1,173,68,182,5,21,240,115,186,238,240,13,76,164,113,205,6,56,58,172,199,102,40,24,82,138,255,195,4,198,71,217,213,153,19,113,9,28,9,155,37,177,25,125,251,180,247,176,18,170,15,209,219,170,48,138,39,183,94,227,186,169,244,161,111,182,79,72,244,226,251,27,84,244,5,54,180,109,37,180,51,169,205,105,60,145,198,205,96,25,13,45,48,14,241,125,52,246,233,236,7,193,11,86,22,233,185,29,31,166,244,104,8,242,245,143,223,34,94,101,86,79,55,27,207,39,48,193,253,149,255,115,1,89,174,242,90,94,6,0,177,152,241,165,249,212,41,187,2,208,92,51,74,10,177,228,240,145,174,153,103,98,1,244,186,144,53,254,177,176,73,205,11,169,5,174,214,186,253,24,60,17,255,211,1,43,246,206,238,33,252,54,14,109,100,42,51,197,245,129,191,73,11,168,10,104,249,19,110,92,76,66,194,36,245,111,28,87,8,222,108,90,5,164,195,23,226,184,33,82,108,3,20,79,114,115,115,236,247,137,229,245,91,209,224,137,5,26,111,54,101,60,75,99,83,208,94,69,40,177,220,127,20,123,21,60,233,46,224,181,202,134,107,186,253,245,86,138,45,224,255,31,20,111,9,183,31,79,40,137,9,226,114,250,88,79,61,11,34,231,25,57,255,221,88,248,94,65,210,122,47,44,0,40,83,173,239,127,216,14,21,226,10,80,196,22,10,78,14,73,33,84,3,71,51,30,207,172,243,197,177,54,202,155,249,79,90,36,41,177,10,109,25,84,1,61,171,56,9,66,225,233,64,190,11,49,8,196,96,217,21,224,200,87,234,154,228,211,183,191,98,189,108,186,2,25,230,219,248,206,167,120,192,41,94,13,68,92,53,28,7,209,85,45,85,98,238,72,69,74,165,149,187,124,46,46,237,17,251,25,66,60,246,216,36,176,36,72,247,50,110,26,97,114,22,102,181,250,0,146,74,137,199,59,25,37,187,245,53,112,46,60,203,173,0,133,247,205,113,62,15,207,1,166,83,207,4,160,246,54,249,100,246,27,44,255,69,181,198,129,11,177,93,63,243,77,49,41,9,184,76,136,243,176,35,115,9,191,180,255,17,21,77,228,1,24,1,157,175,47,225,199,191,128,254,19,0,169,171,119,45,42,3,255,193,125,11,165,235,26,29,66,94,47,206,166,36,119,84,55,245,65,239,123,182,146,1,14,8,172,186,59,14,156,244,25,4,86,223,188,245,109,252,127,7,215,166,192,247,84,209,157,99,15,81,125,108,238,212,83,106,137,222,181,206,1,48,209,0,54,250,148,7,246,71,130,4,0,252,194,240,189,238,244,32,204,79,196,79,9,56,145,252,241,193,196,95,177,214,127,41,229,0,10,248,145,197,156,85,139,184,147,10,225,72,182,93,1,196,62,251,130,250,93,2,60,249,224,57,232,5,156,165,69,15,221,52,159,223,134,214,82,96,197,250,98,225,146,12,74,57,88,245,185,76,8,231,50,11,19,77,66,27,137,3,165,236,168,254,203,5,201,191,110,169,27,166,72,186,156,85,154,85,8,224,60,0,145,254,120,167,65,252,156,203,178,108,254,178,17,102,28,247,36,218,251,76,178,205,215,248,141,250,115,39,126,178,172,181,200,0,182,5,203,231,139,248,125,98,232,61,107,205,60,51,252,6,61,227,209,73,89,210,159,55,253,63,94,191,239,211,180,255,174,99,153,235,203,201,195,114,26,51,29,189,184,89,34,85,102,45,250,232,116,219,99,184,199,244,251,204,58,66,148,245,252,58,31,220,233,254,71,203,67,235,221,230,86,193,143,88,134,225,212,58,214,0,169,103,113,170,130,64,147,85,241,252,118,74,35,90,250,253,122,101,177,88,248,84,177,181,74,70,54,60,10,255,16,211,239,252,59,58,26,52,198,13,22,56,0,32,64,236,20,71,51,67,180,8,218,75,225,46,132,225,243,233,72,91,112,40,139,67,244,201,115,170,152,57,157,27,83,48,19,53,208,108,39,254,105,244,255,80,174,247,93,51,150,196,119,45,199,193,112,200,179,210,37,0,249,181,204,108,81,70,71,254,75,193,183,253,250,51,219,206,8,251,158,244,215,191,4,253,19,2,39,109,185,31,139,10,201,171,203,4,69,42,133,194,224,34,186,252,24,209,171,229,20,18,251,93,233,246,82,251,182,80,84,186,67,78,185,64,208,213,196,110,248,186,229,250,106,1,238,85,59,215,152,91,25,85,60,178,97,10,219,99,48,232,127,250,162,14,168,53,32,26,148,50,169,245,140,1,72,65,4,6,144,236,9,198,102,214,114,36,41,253,246,179,188,186,137,4,228,61,168,246,240,216,67,43,206,239,210,237,29,9,100,1,242,2,50,230,123,190,165,194,97,245,194,77,255,4,91,247,186,251,117,179,29,169,64,0,249,112,104,99,206,177,165,7,34,15,108,232,137,55,87,194,182,5,243,165,6,179,11,183,177,108,103,92,64,103,32,166,125,43,111,27,130,5,194,18,204,178,15,232,62,56,134,53,217,51,149,85,163,54,76,244,35,234,176,76,231,71,22,242,55,188,5,95,191,110,5,194,59,191,114,27,155,72,199,174,65,10,131,99,14,212,77,249,226,11,234,36,186,247,36,198,170,226,42,59,62,254,155,237,154,48,222,32,255,43,67,58,170,6,37,67,226,194,241,206,184,78,243,222,131,40,189,40,66,192,1,248,180,201,228,214,83,103,80,251,71,86,203,2,74,247,55,53,16,5,235,41,197,14,32,246,8,19,225,10,176,59,71,10,125,40,114,109,174,38,95,206,183,219,224,69,43,247,0,231,131,45,42,241,104,241,149,52,45,224,7,244,151,6,96,213,217,219,57,217,195,103,228,173,182,102,247,10,127,9,192,243,21,242,232,180,231,2,198,105,160,183,40,200,253,98,169,89,76,107,12,214,121,248,222,57,180,70,230,249,68,233}, {205,191,187,232,177,12,225,1,17,236,36,214,118,197,172,0,205,105,8,1,152,2,229,56,243,210,14,204,241,36,99,14,60,245,81,30,6,15,0,42,166,252,245,248,64,1,147,226,14,87,158,103,168,225,49,4,70,104,5,16,165,0,2,247,39,100,217,5,146,226,190,172,2,252,183,36,95,43,41,83,25,17,69,72,246,254,238,216,69,206,235,228,141,14,231,218,58,107,51,81,0,207,151,37,36,212,83,253,245,246,36,255,170,30,45,244,224,195,132,84,59,51,185,208,216,3,47,232,13,93,247,10,191,101,183,231,224,233,10,95,63,15,148,108,9,106,113,171,157,11,204,35,229,101,2,180,127,78,126,255,90,190,248,247,151,110,23,53,161,84,61,207,189,176,96,91,157,182,7,8,26,221,187,230,200,243,10,203,215,3,225,243,252,203,104,27,51,34,247,54,21,85,184,102,73,12,154,54,104,6,143,112,172,247,54,229,160,11,142,250,47,185,248,252,78,238,77,1,114,247,29,253,56,248,236,254,140,45,219,8,148,51,60,27,182,245,140,230,166,60,162,195,162,68,92,216,25,115,105,234,7,244,50,235,134,1,59,7,210,246,122,224,191,247,23,24,178,81,40,215,159,65,129,237,43,75,237,211,147,60,245,61,145,173,182,252,235,73,223,31,59,191,210,175,126,78,212,33,155,210,97,84,157,11,188,201,128,97,11,64,149,244,9,61,84,247,56,6,56,41,234,114,12,178,80,245,29,2,142,32,218,70,45,239,239,245,209,83,254,170,31,9,73,190,150,26,59,224,74,251,202,9,220,8,138,74,78,113,124,68,124,70,44,81,201,56,192,192,215,101,132,5,45,20,117,237,142,6,185,216,168,86,30,0,117,184,15,1,216,2,164,181,62,17,44,19,208,108,175,94,124,111,199,12,9,248,160,186,178,251,195,111,135,248,50,17,129,7,226,67,97,1,168,48,186,214,230,77,56,226,38,251,124,95,183,3,103,103,23,4,223,173,177,6,155,246,164,0,248,51,17,232,173,47,26,203,19,249,228,56,13,229,96,2,109,54,95,44,249,3,212,102,239,2,127,22,235,11,95,251,203,112,155,32,198,47,152,82,170,174,86,255,78,253,55,11,133,32,139,88,189,76,44,97,146,203,177,177,241,33,145,246,185,109,73,11,98,209,179,74,135,88,146,17,137,199,246,245,193,54,113,243,168,10,210,13,253,243,219,188,118,244,97,32,145,248,195,188,163,80,4,218,52,72,11,20,122,11,160,243,165,209,80,251,77,10,240,54,40,67,202,228,42,238,199,229,63,48,66,254,116,182,34,187,212,0,24,45,130,92,76,239,132,247,187,200,218,73,128,48,175,4,93,165,72,184,99,12,180,234,250,251,23,6,88,111,143,5,123,63,42,115,62,108,97,105,58,6,130,210,2,4,3,183,204,30,163,79,237,104,167,8,201,9,82,240,221,80,218,39,9,65,214,248,87,238,41,178,30,115,196,223,217,86,153,8,115,179,147,168,3,3,28,71,23,8,236,252,253,95,142,8,106,8,5,113,163,78,153,37,111,247,196,49,135,165,82,171,29,226,2,66,145,83,58,4,26,175,0,254,3,84,84,60,88,57,174,45,253,98,224,207,145,0,103,36,177,222,109,199,226,252,235,10,79,48,237,255,80,108,242,246,211,60,119,171,117,14,179,103,125,0,43,18,119,45,6,59,18,231,57,16,166,233,240,252,189,214,166,94,121,18,90,26,93,36,15,244,65,191,192,177,114,221,253,253,180,12,227,39,239,252,34,30,23,86,226,74,192,15,222,214,70,246,164,254,140,242,76,175,7,37,131,16,126,233,12,229,168,56,47,79,97,101,31,46,116,4,35,12,255,46,17,42,78,5,160,199,249,101,141,108,65,245,27,82,212,174,101,42,233,25,221,54,196,202,98,167,114,0,203,27,105,233,10,36,28,1,174,250,9,8,74,216,102,52,111,34,82,3,131,233,227,112,63,0,216,11,181,246,117,7,47,87,240,45,191,8,48,30,239,254,187,198,20,225,67,212,106,38,69,0,64,249,163,250,209,203,20,92,86,112,21,109,31,86,229,26,193,220,146,2,80,33,12,221,163,97,75,183,235,107,17,80,212,1,186,23,17,205,55,237,147,247,202,229,124,4,215,85,192,77,26,106,32,51,50,245,234,89,144,167,6,22,170,1,150,187,144,25,218,80,181,67,104,38,18,214,192,52,143,5,43,31,27,211,196,47,120,208,156,53,21,39,13,21,99,76,3,1,175,114,53,245,244,70,105,4,182,46,101,7,179,185,41,95,172,58,61,106,12,227,57,48,188,114,117,192,194,37,88,8,33,60,124,38,69,194,140,232,154,97,196,40,101,245,79,203,30,9,35,86,143,204,143,255,68,213,181,228,80,13,81,238,69,255,211,239,211,250,172,8,164,200,3,252,231,209,24,191,34,249,186,254,124,0,70,97,229,99,33,218,95,101,229,10,84,23,250,247,29,236,7,66,11,71,127,222,227,208,201,171,43,228,207,246,81,245,170,191,172,6,36,115,135,255,250,247,201,44,205,170,45,95,190,205,182,228,24,61,30,188,52,63,170,244,61,3,66,188,94,69,219,37,33,219,209,246,229,255,198,225,184,252,100,102,44,192,121,7,250,202,173,219,200,245,168,38,74,2,193,102,210,193,188,177,9,248,180,27,233,82,65,246,122,249,84,12,130,7,189,254,25,86,49,190,93,181,28,8,195,240,143,191,87,115,79,42,189,93,151,14,144,201,36,54,231,187,85,172,88,168,207,241,225,190,188,242,69,195,28,0,45,165,99,7,159,241,152,255,4,64,50,34,151,6,80,5,79,238,70,255,135,203,67,251,155,28,54,100,4,103,49,175,219,52,99,252,1,5,179,203,151,210,252,52,243,1,214,109,14,40,16,245,203,253,105,179,209,104,46,91,147,184,66,231,15,78,86,37,87,187,14,0,162,101,16,113,162,250,106,83,19,99,243,252,71,95,187,227,187,100,242,244,78,57,217,97,145,17,204,6,90,12,8,8,187,173,204,83,254,229,245,7,100,34,116,179,99,255,176,172,99,246,96,233,21,17,163,113,252,208,40,48,56,247,141,245,46,40,19,250,4,171,214,65,144,93,95,249,201,88,82,74,57,170,19,111,221,7,150,5,104,212,181,248,255,10,219,210,28,112,55,45,123,99,18,30,227,52,152,7,85,77,198,243,128,62,110,171,177,198,139,101,234,232,120,203,14,213,5,101,39,3,231,23,42,25,200,83,40,45,17,38,119,11,174,66,97,205,62,223,94,16,226,11,25,248,215,0,212,10,138,204,34,92,2,112,223,29,15,176,230,187,7,245,145,234,7,167,186,252,241,65,255,6,255,2,234,20,158,199,157,8,33,79,82,95,143,209,173,23,147,9,22,221,44,37,224,229,134,247,154,35,7,191,158,44,87,209,128,216,71,28,234,227,180,19,166,87,226,235,107,103,33,243,190,234,75,100,28,223,90,105,142,83,179,192,223,97,245,55,100,107,128,109,79,210,188,11,33,254,106,12,54,236,21,254,196,9,230,230,34,167,26,12,155,244,62,23,206,11,183,245,17,99,59,199,15,2,250,249,190,37,210,254,84,85,237,1,240,74,57,92,170,173,136,86,252,218,155,37,16,103,31,41,115,11,210,64,135,2,49,1,171,5,126,59,60,193,184,243,156,26,26,223,170,54,206,193,141,7,247,196,49,110,138,179,234,68,235,248,44,181,180,110,218,107,123,99,181,40,43,61,116,255,80,12,117,107,154,104,135,253,138,5,39,237,101,80,106,6,216,59,242,56,132,172,40,200,39,8,162,15,119,181,101,0,88,244,244,247,22,7,21,171,237,58,185,243,181,187,134,187,237,202,194,239,77,247,229,64,145,98,133,13,74,231,124,106,138,254,35,245,70,8,112,79,165,87,144,107,186,193,54,42,127,87,57,65,121,92,30,18,194,203,209,240,203,14,217,48,155,190,202,247,190,40,233,16,13,218,105,81,21,14,176,112,174,20,140,253,102,110,135,167,163,248,153,245,23,188,40,173,87,0,15,44,10,92,198,70,144,245,134,171,122,217,145,111,126,251,247,232,46,255,246,25,48,244,6,210,126,11,55,181,45,181,22,72,138,21,129,198,94,5,231,248,2,29,193,3,87,3,10,253,166,91,165,247,64,244,127,11,186,64,235,254,126,217,192,195,150,31,97,10,183,93,43,206,82,253,81,102,19,10}, } ; static const unsigned char precomputed_core_scale3sntrup953_n[precomputed_core_scale3sntrup953_NUM][crypto_core_INPUTBYTES] = { {250,60,176,161,184,53,31,121,6,251,197,21,203,224,23,62,9,113,240,136,35,104,88,215,253,169,197,101,20,24,92,216,73,15,242,148,164,175,145,165,74,131,53,198,39,214,115,29,234,143,23,150,7,59,53,70,43,239,205,69,19,69,26,48,188,195,203,117,16,48,197,180,205,92,73,122,110,235,160,205,114,210,209,8,67,113,17,83,130,61,56,156,79,80,4,154,141,185,205,249,27,104,122,28,176,212,25,70,133,121,248,148,48,26,155,116,249,178,201,158,90,202,79,10,3,66,23,248,219,141,244,244,113,162,4,8,143,53,207,73,69,227,35,164,204,229,226,221,101,189,242,100,236,1,207,3,13,237,211,188,204,96,61,155,51,15,132,164,236,161,110,139,84,62,177,79,124,53,202,106,13,87,93,49,182,254,24,4,186,53,124,58,0,140,101,151,105,37,136,85,239,231,54,199,57,220,185,240,98,141,16,25,235,216,55,208,137,114,109,151,131,33,94,74,141,19,23,2,144,212,240,90,255,212,23,135,143,166,145,21,248,110,68,138,173,176,242,226,73,240,55,177,57,61,176,133,137,67,203,233,57,204,248,102,112,23,64,215,14,51,172,53,27,136,84,52,240,70,234,89,67,55,20,46,4,60,206,45,140,16,210,76,243,3,116,28,114,57,126,35,189,85,70,182,71,23,78,123,185,178,36,124,253,211,14,111,165,177,242,69,194,137,246,126,157,202,158,29,5,174,48,86,60,88,178,151,144,237,106,78,214,50,185,194,126,248,85,243,193,201,218,194,94,14,82,240,58,144,69,227,1,107,163,224,56,226,202,179,21,7,226,158,142,213,0,151,78,51,94,33,1,94,211,193,102,163,3,186,78,158,58,43,35,60,40,230,8,145,113,206,123,23,139,64,51,60,9,239,209,71,170,221,106,235,76,134,159,82,139,88,104,52,122,151,192,7,73,117,122,244,248,211,96,212,69,184,236,59,72,54,169,45,183,73,73,157,98,52,245,122,63,148,148,68,64,81,163,99,86,115,82,26,221,82,220,104,191,130,251,216,77,142,80,197,135,2,242,47,100,224,90,147,193,50,126,66,67,89,79,35,59,237,11,45,27,41,64,43,82,174,34,42,91,68,156,8,30,0,165,146,54,99,72,8,113,235,106,197,80,246,223,178,24,50,54,146,196,210,171,33,13,236,183,252,135,82,244,187,19,189,68,25,4,189,195,174,204,29,216,1,112,217,246,200,39,17,239,126,117,104,39,132,207,102,86,14,181,82,171,128,18,210,252,57,111,49,75,149,174,133,245,23,225,164,20,102,108,1,249,162,187,188,63,68,206,249,243,177,86,252,113,157,187,25,88,205,56,228,210,46,212,168,234,85,119,173,143,203,72,164,159,34,34,234,67,55,221,36,36,52,122,71,11,73,135,181,51,12,18,121,254,64,44,160,104,247,221,79,79,124,12,85,251,226,38,158,52,0,87,210,65,66,31,46,185,212,209,128,200,112,85,25,24,28,234,71,117,157,177,180,254,6,49,189,234,194,212,150,165,219,7,87,52,130,108,115,168,123,0,153,79,86,196,204,180,243,216,113,36,183,221,61,141,120,158,255,166,131,34,241,98,130,185,89,72,67,129,122,229,89,73,167,194,52,229,157,169,128,52,161,237,162,89,215,55,83,204,170,59,247,185,235,90,89,173,47,56,180,225,149,140,74,122,47,115,77,63,231,39,134,18,113,217,171,23,181,20,11,77,24,208,200,67,62,120,50,114,14,58,172,95,75,236,170,167,231,117,250,72,193,59,10,23,210,91,15,36,234,204,235,36,234,41,14,254,240,1,138,231,21,49,9,36,60,117,59,3,246,192,107,148,84,85,22,95,220,244,190,241,222,227,128,141,226,242,10,69,145,248,163,164,93,234,236,104,239,67,158,67,126,121,87,2,72,13,200,142,73,107,58,151,125,70,159,95,14,197,193,206,215,153,203,157,130,226,103,99,64,94,97,202,219,143,253,124,95,166,11,126,243,194,13,221,252,106,221,117,49,44,19,245,48,42,229,167,198,197,104,194,215,126,43,170,8,127,132,166,177,175,2,151,182,204,84,89,108,83,179,41,135,109,207,252,13,157,209,56,240,72,46,3,212,107,157,200,182,132,122,6,103,73,82,240,98,202,28,205,81,224,151,241,205,154,215,208,199,69,179,210,135,110,231,57,4,207,35,236,23,44,155,66,42,143,8,210,52,58,179,175,20,195,44,238,98,131,0,84,207,150,251,222,99,245,122,113,127,118,137,186,87,185,49,0,66,125,34,108,75,219,58,160,101,179,39,18,96,152,106,27,225,225,24,120,33,242,125,170,131,242,19,80,92,58,65,72,179,32,221,188,164,93,253,247,85,176,87,165,141,12,234,229,186,205,126,57,74,230,19,229,141,221,42,95,118,155,169,214,132,52,29,2,120,151,252,37,167,109,228,188,164,143,118,177,218,137,47,217,148,80,34,250,235,138,139,188,38,97,166,162,139,84,74,92,82,138,233,177,189,243,81,139,101,249,65,178,97,40,139,241,246,138,15,11,128,112,83,141,91,170,38,219,233,251,9,104,22,252,173,208,223,142,179,70,217,79,209,186,102,164,203,91,168,231,107,178,96,133,72,147,251,20,78,7,185,39,177,218,249,172,46,78,223,74,195,136,193,170,109,188,86,64,56,230,131,161,70,34,137,39,18,78,169,33,91,203,207,14,7,44,224,202,163,183,170,101,46,54,85,29,88,120,195,180,104,47,77,125,175,125,230,116,220,171,252,212,38,238,110,117,198,52,244,113,13,145,142,19,4,109,52,252,82,46,205,100,38,128,204,0,164,88,172,31,162,116,52,40,166,173,5,68,110,248,204,150,192,22,246,245,1,176,191,92,83,117,6,67,217,138,240,76,91,252,137,209,194,250,108,185,55,234,40,0,172,148,246,62,237,244,5,0,103,57,12,175,122,220,60,217,154,136,61,58,118,17,155,186,69,5,231,213,202,28,93,200,149,117,131,252,0,82,27,94,36,96,173,153,214,252,175,25,40,52,219,69,151,142,71,240,182,168,166,195,13,216,70,81,43,99,68,228,24,210,130,136,25,186,25,236,130,182,193,73,11,69,148,204,152,133,21,36,136,27,48,2,115,85,205,141,44,19,240,24,113,177,237,15,10,203,48,212,180,247,207,121,34,77,200,101,211,46,61,134,162,194,235,142,229,90,73,219,252,87,27,53,40,78,235,46,184,179,212,168,109,206,138,117,175,2,18,14,186,73,81,130,23,26,47,162,139,172,183,151,106,136,136,93,47,170,104,57,186,58,253,141,8,51,27,204,111,77,41,148,158,110,141,96,166,158,9,69,225,223,194,46,22,255,217,188,53,182,135,207,9,244,130,124,251,29,178,124,108,222,47,221,245,140,50,133,165,51,1,222,78,250,94,33,65,71,203,0,217,88,132,77,252,193,200,161,90,179,196,209,49,224,38,47,8,250,57,67,77,68,25,20,195,191,244,136,226,156,3,12,70,128,151,71,143,250,224,8,194,176,58,240,29,43,211,81,43,192,35,60,51,221,97,190,8,89,139,219,228,251,118,243,218,70,59,192,3,176,57,137,21,77,108,239,192,172,35,73,105,246,179,87,41,153,70,241,25,114,59,223,92,222,75,38,204,34,51,198,180,96,126,61,216,146,237,206,92,151,246,204,43,120,196,39,11,157,228,158,113,214,124,121,201,221,35,114,87,105,113,55,84,40,84,22,183,234,190,232,173,35,230,192,58,162,241,195,22,242,10,133,247,28,18,230,107,21,130,16,80,121,132,122,202,77,212,152,106,218,80,151,236,140,44,8,175,22,178,4,93,28,114,202,136,24,216,126,86,22,133,238,132,79,192,127,86,95,177,35,75,210,68,48,198,137,112,201,201,85,42,168,251,55,105,210,230,156,57,50,158,90,207,100,75,252,172,23,128,200,72,102,42,51,182,0,145,74,250,74,254,173,122,108,57,15,223,121,46,190,100,120,15,85,107,3,73,42,22,188,159,51,172,43,161,122,91,234,115,18,90,145,77,250,129,114,120,104,18,153,219,226,113,164,47,150,63,112,134,80,50,202,187,230,119,252,139,207,124,65,239,35,192,9,174,51,149,232,8,57,80,226,206,29,208,60,243,212,17,239,234,109,183,139,189,233,173,112,180,184,221,52,48,207,149,121,228,247,86,145,10,161,221,69,109,6,67,150,73,62,0,126,138,122,92,5,132,140,57,153,82,202,92,179,216}, {138,144,3,228,46,181,11,69,98,250,72,158,208,42,62,213,51,247,145,163,19,232,223,124,111,177,86,133,208,149,164,162,246,232,186,87,55,90,163,226,252,170,215,252,7,126,47,58,52,125,174,61,41,169,92,204,121,129,115,9,185,191,151,147,165,165,83,145,41,107,92,190,77,175,152,245,226,30,114,188,61,76,222,35,240,179,47,2,179,126,216,250,201,33,209,11,38,110,218,100,150,45,9,203,150,203,9,91,167,190,207,248,22,44,52,201,74,247,194,119,64,245,169,72,49,198,6,83,134,122,5,94,202,125,155,50,56,150,128,222,175,127,189,231,237,75,141,120,34,69,113,159,190,109,172,191,239,3,153,128,183,127,6,59,191,186,196,172,92,35,132,39,231,27,21,211,106,71,37,46,144,132,130,25,29,35,104,144,145,116,219,3,52,143,228,245,39,42,37,230,150,163,156,70,224,194,197,37,168,45,128,69,105,64,242,193,54,60,87,0,53,16,45,205,65,23,49,1,145,172,244,0,208,203,90,107,245,80,188,24,238,205,128,216,29,13,146,118,66,25,71,178,244,222,122,206,144,133,239,40,65,125,237,2,194,206,153,199,39,10,130,255,85,250,19,217,103,210,191,38,137,178,162,57,148,231,84,123,240,11,1,99,77,102,25,237,242,182,148,40,225,65,117,100,159,49,220,125,153,168,75,207,161,37,138,12,128,102,74,125,34,96,149,151,91,4,99,84,133,161,97,63,249,63,169,108,150,246,234,27,77,182,101,139,188,198,154,190,194,172,58,42,162,31,35,191,235,68,0,30,217,132,38,145,170,16,245,160,181,52,171,216,240,134,211,59,208,4,67,199,57,129,169,18,38,186,207,144,199,146,141,91,49,42,169,236,112,111,241,239,64,112,174,182,67,228,4,181,86,1,248,242,14,234,49,142,85,138,39,147,201,112,82,142,123,42,81,178,25,149,246,52,177,64,165,161,150,12,30,250,219,173,251,247,229,181,241,204,79,114,24,226,49,204,130,192,168,13,71,127,107,30,60,219,234,51,201,146,131,110,209,179,192,105,130,218,23,46,111,178,29,171,194,205,113,39,34,78,204,125,61,229,233,105,46,223,65,188,66,8,46,89,216,23,46,103,106,211,111,42,246,185,124,150,106,230,187,74,232,106,205,71,35,123,131,204,112,171,97,106,95,54,219,252,211,146,63,77,125,109,34,117,201,89,126,28,88,186,190,150,182,76,127,101,127,161,231,90,248,214,43,3,214,152,183,77,80,52,219,62,241,137,229,150,165,140,146,2,171,82,181,90,64,106,252,249,3,158,190,193,97,231,105,71,124,149,93,74,114,224,190,213,6,83,163,16,162,130,152,28,211,233,101,23,219,44,96,37,141,224,45,172,42,225,218,67,74,208,121,135,217,92,141,62,213,55,246,211,173,103,255,91,252,106,108,117,76,178,208,186,196,185,185,237,223,106,210,4,3,24,82,133,93,100,28,214,6,85,59,224,47,147,85,218,76,206,225,207,147,14,190,117,146,184,226,67,23,144,72,169,212,197,179,52,54,42,16,104,243,88,17,179,202,175,148,128,86,254,61,209,86,35,252,21,27,184,100,128,223,255,144,51,60,86,19,164,110,104,253,87,130,178,158,215,215,155,226,255,158,176,116,226,226,216,255,68,241,204,241,230,19,84,84,144,107,21,188,29,80,33,34,238,42,68,187,76,140,222,221,242,54,50,214,114,11,239,220,159,51,212,227,102,167,8,214,251,117,212,218,245,61,15,53,165,79,190,35,97,213,166,79,135,112,120,23,241,178,122,100,188,86,13,115,176,165,104,174,191,158,188,211,82,34,184,158,207,173,114,168,212,135,208,195,121,108,81,201,11,60,57,64,27,59,29,69,92,212,174,61,97,2,186,128,216,206,146,238,135,184,210,31,132,43,99,252,207,226,143,31,34,172,61,135,212,153,215,191,46,131,11,37,9,75,36,136,50,60,114,210,129,67,87,89,201,215,116,117,3,60,170,161,80,56,105,174,50,49,251,3,26,145,4,5,141,174,149,90,217,21,208,146,32,226,174,114,87,121,87,132,1,55,15,198,120,159,20,109,47,71,120,122,51,165,67,140,105,44,242,140,77,39,130,12,187,173,170,209,84,185,200,29,217,180,204,178,209,5,237,158,84,56,83,77,162,185,226,194,79,118,55,45,43,160,123,113,151,168,10,86,155,35,156,219,178,8,122,132,167,26,121,64,4,161,152,156,114,219,132,116,184,196,54,208,162,165,240,59,29,158,97,76,234,137,143,167,142,147,102,104,225,38,148,69,21,65,114,197,223,44,220,45,141,89,230,215,31,29,130,112,9,195,116,22,165,1,248,190,105,185,172,42,65,128,70,204,234,149,240,162,44,206,216,171,214,68,90,197,137,207,104,4,102,253,101,124,237,142,129,118,131,225,1,108,14,6,192,181,23,38,126,242,228,219,139,125,141,230,201,148,240,118,145,19,252,129,252,7,85,106,146,174,196,231,53,102,204,86,18,148,71,13,151,176,17,125,173,167,64,114,196,203,96,219,108,220,222,50,78,123,81,136,209,201,13,213,132,245,248,104,125,225,219,132,232,165,137,197,59,11,72,151,143,208,39,204,113,239,233,72,179,112,105,202,42,80,14,182,102,248,19,192,78,229,239,209,86,181,134,178,210,184,63,215,91,147,88,48,7,209,96,175,147,8,17,76,35,11,146,41,122,227,6,138,33,52,198,143,64,164,196,124,102,122,59,155,27,58,67,29,79,124,129,3,242,138,32,142,228,21,123,241,60,159,24,181,57,51,122,97,99,213,183,235,235,41,126,255,134,155,144,73,2,61,33,202,116,214,71,162,20,158,158,45,28,203,19,172,10,197,239,115,163,219,11,178,233,154,19,138,211,205,71,42,88,141,68,126,219,37,67,21,96,97,71,138,107,223,109,105,168,82,125,125,4,15,203,38,71,239,12,172,51,139,209,170,37,170,160,102,121,168,152,107,128,65,0,209,159,148,145,50,224,78,137,174,79,168,158,218,76,165,7,96,162,220,115,92,47,22,44,197,44,56,69,18,29,217,113,144,97,117,104,171,131,161,16,241,65,173,142,77,21,84,194,66,12,140,116,88,199,130,152,40,56,128,76,180,172,198,32,18,103,26,98,228,185,1,249,166,26,160,229,117,34,96,1,145,173,3,132,50,247,88,59,97,117,174,21,32,156,50,111,35,38,59,6,36,80,59,198,46,35,23,191,179,55,45,107,199,228,243,197,128,242,79,195,118,154,119,15,72,194,117,134,251,6,170,213,184,255,125,217,196,190,239,246,32,185,0,148,137,98,5,80,40,129,165,228,31,178,114,65,163,207,174,110,98,75,55,67,137,250,96,160,196,28,100,90,135,161,223,152,97,199,135,41,39,211,73,26,34,114,197,48,15,89,222,34,203,49,94,193,208,247,252,13,108,181,10,190,10,227,215,23,60,167,39,225,203,252,149,90,101,0,213,38,55,199,135,57,2,4,171,108,179,20,23,198,29,116,228,230,193,16,33,65,181,117,102,237,104,226,152,207,158,253,16,229,216,53,105,94,92,29,104,199,94,118,21,214,94,113,122,176,64,148,192,78,199,251,168,170,193,168,200,150,55,214,178,66,128,51,89,24,227,94,32,11,212,70,60,111,38,15,7,56,155,26,61,33,110,55,238,196,29,75,73,159,26,195,153,177,166,220,217,19,131,223,162,206,58,57,207,12,180,254,209,235,1,132,47,79,94,207,205,219,248,135,207,106,55,10,67,142,216,221,193,92,246,180,188,78,59,207,176,29,120,77,83,191,135,12,72,48,143,166,245,162,188,104,174,65,53,253,42,77,162,194,133,141,76,85,221,100,179,157,224,139,59,49,91,102,220,222,248,217,1,147,54,97,104,36,16,88,8,143,234,87,112,241,121,93,91,98,127,166,9,215,139,134,89,144,112,115,14,100,138,49,23,51,13,38,8,255,47,50,98,63,42,105,70,72,156,155,5,155,23,31,77,68,95,83,173,104,6,159,230,154,125,214,91,55,142,37,230,155,105,109,0,5,83,247,252,60,136,181,13,37,94,51,220,233,137,242,218,159,228,138,189,40,191,222,165,97,213,14,213,221,233,99,227,83,225,4,21,119,17,232,61,78,229,176,151,248,78,68,122,187,0,179,159,174,247,216,69,166,178,85,20,152,221,16,96,70,86,159,23,251,85,97,13,215,200,213,174,3,116,190,114,57,87,116,177,29,24,48}, {163,176,179,171,224,98,77,166,127,33,155,17,77,249,2,249,209,115,25,13,123,174,23,29,145,236,27,76,57,46,128,26,111,137,62,164,238,148,139,208,72,7,168,207,182,54,38,189,230,74,66,59,142,108,191,195,135,248,113,41,104,211,136,94,52,162,195,41,129,118,41,194,179,0,223,210,163,153,141,197,123,185,120,90,65,197,34,83,36,13,83,235,202,157,229,237,206,192,181,1,235,189,222,36,143,29,38,227,108,110,5,76,160,149,15,179,181,221,233,166,56,56,121,152,65,229,219,213,97,82,213,93,95,11,121,26,121,159,207,240,45,127,24,67,217,121,110,4,106,170,97,40,134,99,200,20,22,99,224,234,227,106,223,226,167,248,221,185,48,102,76,63,234,25,188,172,124,223,172,84,4,130,241,167,108,164,244,202,238,133,104,166,183,248,251,80,150,103,177,163,194,59,135,172,73,154,87,220,44,68,97,208,122,63,34,98,219,89,7,230,87,39,12,52,65,245,9,185,5,80,70,43,109,201,216,99,92,92,224,170,123,6,26,49,20,196,223,22,59,40,10,255,129,108,67,193,209,185,105,146,182,69,35,146,130,69,151,130,102,251,108,117,163,36,122,186,97,30,132,170,119,127,95,8,15,22,145,213,27,23,178,253,8,38,148,236,133,146,4,102,163,137,250,80,251,247,37,242,74,229,151,94,244,236,48,20,201,98,233,180,81,26,170,242,71,90,139,75,179,3,0,100,46,112,86,155,82,250,219,121,60,70,178,176,245,47,120,118,139,128,29,105,2,71,72,230,234,25,182,123,6,62,48,251,250,197,165,8,180,141,77,172,118,36,75,222,56,164,106,180,228,23,143,146,117,34,114,220,100,140,108,15,101,152,250,23,131,126,227,187,244,254,185,138,190,142,110,89,40,56,193,3,7,113,182,210,46,233,48,124,190,85,158,62,70,11,40,155,207,5,104,103,74,171,181,62,109,106,112,34,176,240,143,194,245,135,66,118,146,50,163,254,89,8,191,53,205,4,200,35,153,107,24,226,165,56,200,61,200,11,34,244,91,235,37,148,21,137,239,120,231,118,46,199,5,107,160,60,18,5,160,34,93,161,20,81,204,98,109,249,58,203,182,39,229,185,58,234,240,163,246,32,84,129,164,235,129,230,123,83,178,84,68,87,73,232,206,3,143,53,47,0,89,93,235,173,157,206,74,49,58,62,156,97,89,60,76,109,223,212,62,3,115,162,200,125,69,147,39,165,99,207,126,97,236,43,171,188,209,3,125,179,124,116,165,249,26,157,228,53,13,72,156,33,121,131,2,250,85,198,247,228,15,107,245,120,27,8,65,172,47,32,6,63,32,100,123,88,180,173,118,191,40,102,146,75,60,253,125,14,123,13,174,235,123,24,27,192,42,125,180,224,246,243,120,45,127,205,5,175,246,83,246,206,15,79,37,137,188,20,41,196,246,230,16,199,238,57,220,125,160,12,252,194,109,157,108,196,101,240,164,2,235,3,95,186,182,53,76,189,207,89,139,250,166,252,152,151,163,39,100,122,178,26,28,146,250,194,254,246,154,247,209,85,134,220,147,38,221,249,19,136,155,157,55,83,137,107,214,179,221,209,254,32,193,50,95,157,238,49,32,128,118,0,15,54,29,26,189,221,125,203,2,81,208,180,77,63,62,255,245,198,72,93,222,8,166,175,173,156,248,6,255,12,188,41,251,195,132,175,62,226,195,3,37,97,139,245,158,215,97,204,41,227,249,89,18,103,10,11,55,215,49,164,159,227,112,152,213,104,179,129,238,14,178,131,190,46,164,82,150,153,148,209,174,66,131,172,75,45,255,41,1,204,14,36,221,39,4,107,78,65,194,185,22,186,39,240,205,151,250,229,111,129,62,255,148,122,27,194,160,170,162,185,56,80,42,104,178,21,150,165,227,131,235,37,178,28,70,190,58,102,0,8,140,208,149,210,126,232,107,109,100,85,165,206,162,71,232,63,71,15,9,166,131,142,197,165,7,13,176,104,47,78,90,25,29,146,228,251,170,221,37,59,118,91,178,123,249,21,40,97,188,16,47,248,210,48,123,165,41,152,144,200,234,3,168,181,217,125,224,100,179,58,48,155,241,67,4,53,130,126,44,215,62,86,198,153,92,245,173,47,59,141,80,210,156,201,97,111,199,164,136,207,252,121,137,156,5,202,129,217,154,139,193,23,205,70,72,177,160,115,20,82,53,191,125,20,43,74,83,130,75,211,19,101,53,52,254,170,115,118,150,143,86,187,202,224,148,111,189,23,39,230,124,8,215,167,220,216,87,13,69,171,207,206,50,95,224,252,37,160,185,175,246,22,66,202,250,57,43,89,40,210,40,158,92,195,118,165,213,33,235,72,125,105,228,250,168,222,66,14,244,33,57,94,8,171,242,220,120,237,0,141,128,255,177,170,246,48,106,23,14,1,104,56,108,97,74,70,75,103,3,125,120,60,207,105,106,36,170,4,126,71,60,223,134,0,109,250,247,53,86,98,33,175,160,9,133,151,129,175,226,75,194,10,176,132,64,253,47,232,204,126,242,205,108,44,13,148,94,214,150,236,250,145,152,109,174,162,255,176,201,10,63,32,214,86,0,84,169,242,82,71,233,189,49,120,217,34,240,26,238,75,14,227,217,210,78,63,194,192,228,93,174,82,238,142,33,122,236,223,68,251,56,203,127,39,190,227,125,75,195,91,50,163,1,6,141,27,11,79,71,132,4,184,140,196,72,66,149,148,179,125,170,160,137,237,115,12,91,27,219,158,128,204,107,239,121,251,158,204,3,188,131,86,74,241,75,247,153,172,86,226,141,133,28,47,43,139,33,122,203,36,107,66,20,0,238,161,59,218,126,246,71,230,211,129,189,136,72,42,180,167,31,235,150,204,249,230,176,74,28,177,190,106,61,51,247,222,171,162,127,95,172,239,236,159,108,126,229,28,140,145,1,196,65,181,210,152,136,203,134,232,34,112,236,114,221,140,184,147,41,8,39,212,70,70,172,229,46,217,75,25,114,225,213,208,163,36,15,194,17,240,143,235,52,53,218,89,188,230,171,115,220,81,65,113,200,235,144,178,128,59,212,240,178,68,133,141,114,208,149,237,137,198,242,170,208,42,142,48,195,29,30,122,232,177,191,203,78,38,254,169,107,127,40,123,149,36,78,52,91,202,255,198,193,76,195,232,184,246,86,198,75,196,47,98,159,197,237,18,211,155,73,117,254,115,79,165,139,33,56,109,63,152,100,240,5,124,189,21,198,30,15,59,228,133,117,27,204,102,94,24,158,196,221,129,13,170,16,175,66,35,77,74,12,196,69,57,106,23,0,227,227,143,164,232,183,170,102,52,49,215,8,117,90,178,44,56,42,178,235,110,92,231,107,75,138,81,176,55,172,169,177,0,250,129,128,189,236,165,86,134,172,78,4,193,234,141,141,190,81,161,27,232,76,68,73,14,150,39,163,167,217,160,127,120,47,139,174,119,128,200,3,63,217,215,187,224,10,246,187,8,231,36,124,63,117,209,160,36,39,51,184,11,54,212,35,69,213,168,35,13,37,26,77,102,201,195,246,158,113,179,5,30,191,249,67,241,22,143,53,63,19,191,99,84,101,222,167,224,150,78,57,114,37,5,99,149,174,22,173,71,89,156,114,165,204,85,185,248,121,68,60,55,74,227,222,158,131,119,104,249,201,167,43,92,58,222,114,133,173,93,64,131,101,41,173,221,55,173,163,98,55,69,112,197,48,227,127,95,100,132,21,222,108,223,40,215,186,209,173,42,115,132,108,193,18,188,195,180,131,14,87,51,24,69,87,112,111,111,224,110,116,207,206,111,196,166,116,240,125,204,58,32,197,157,208,139,68,125,130,130,106,56,124,55,19,188,118,32,0,50,88,182,110,41,109,62,92,91,246,3,59,191,62,253,31,143,161,152,251,27,106,255,156,241,203,109,55,19,66,108,174,27,142,87,164,30,9,142,14,146,213,119,100,151,110,192,44,107,41,141,152,5,79,144,95,63,94,213,112,254,90,122,134,94,129,159,170,196,195,78,230,192,132,98,96,167,69,185,56,97,125,113,90,182,108,192,19,130,39,21,136,60,80,150,141,31,204,244,19,154,110,23,33,72,139,157,116,196,34,237,173,166,240,249,51,148,6,65,38,64,46,128,95,220,127,42,234,11,194,96,45,4,26,243,11,52,58,9,47,214,243,52,203,143,236,211,208,208,177,214,23,63,230,159,55,198,41,117,143,91,127,69}, {2,141,252,239,40,183,75,171,110,70,31,63,229,142,228,170,220,128,107,77,136,171,228,197,100,147,109,230,232,105,14,13,39,244,8,189,239,183,237,192,226,254,148,176,211,162,68,67,71,37,119,213,75,152,206,163,175,213,68,184,74,77,67,5,250,126,6,79,153,152,253,219,86,169,42,191,98,193,80,121,160,184,4,203,82,170,13,64,42,231,12,68,28,13,96,235,171,214,254,205,19,146,202,20,31,233,113,84,148,90,249,7,123,18,252,174,179,227,25,207,86,25,166,146,72,1,120,154,156,124,253,88,130,127,80,154,179,69,155,210,2,184,201,129,240,128,142,219,204,182,49,20,228,212,105,222,194,119,61,162,49,55,168,82,202,215,74,111,120,36,210,60,82,221,13,124,242,137,192,79,113,65,252,153,133,89,193,144,138,9,94,158,103,230,101,17,254,104,234,111,244,121,213,127,176,97,203,111,139,164,114,216,247,244,37,68,224,3,237,245,120,53,187,246,45,71,130,77,57,74,95,84,123,74,145,178,113,23,54,11,201,110,1,188,146,252,151,68,207,113,73,142,35,31,135,234,160,46,54,155,173,166,121,155,130,0,86,181,70,82,145,66,130,5,74,16,211,120,203,148,34,30,62,156,166,118,98,62,30,199,148,199,238,134,165,246,230,32,226,18,124,55,89,50,23,205,137,19,156,232,184,121,242,80,167,229,109,211,70,200,116,4,240,113,9,176,104,87,85,107,59,217,23,51,131,73,95,171,199,189,139,202,34,242,184,73,136,121,189,48,162,96,214,225,31,17,124,66,129,75,238,173,7,80,27,33,7,46,193,201,193,31,81,35,48,27,83,141,138,127,63,164,252,14,58,156,237,249,166,234,37,37,10,0,58,53,24,248,53,9,159,137,87,99,81,185,221,129,210,39,193,130,218,97,240,90,243,53,249,160,46,216,64,245,83,99,62,250,227,30,203,85,37,195,81,63,143,119,123,152,79,177,193,210,42,180,186,42,74,180,8,135,59,2,137,167,140,85,149,25,110,154,124,109,113,59,177,253,57,27,194,238,32,86,188,111,98,108,64,180,137,42,146,94,194,15,249,3,136,75,134,216,118,104,47,24,117,206,161,220,133,247,26,255,189,3,196,189,198,37,44,119,81,211,153,59,78,136,232,104,238,73,128,215,195,3,137,61,126,118,26,123,115,99,150,143,63,90,216,111,142,243,75,251,51,98,255,251,92,225,191,89,184,189,238,159,84,225,206,205,191,149,169,117,70,100,145,251,205,174,74,232,112,254,92,182,61,197,165,30,1,68,33,71,0,239,2,195,22,170,143,52,201,224,137,8,245,193,195,209,215,156,63,74,252,143,139,203,109,24,248,163,50,132,43,53,52,81,79,155,17,161,74,10,181,130,152,249,22,200,251,131,87,44,184,128,190,172,233,61,86,1,20,138,49,189,206,34,60,43,141,173,67,3,217,71,140,120,139,21,240,29,5,160,48,71,118,136,247,131,255,236,224,207,70,165,228,136,68,133,1,1,161,202,93,173,145,92,236,210,237,79,187,181,68,131,206,119,32,106,18,176,217,24,64,132,217,48,114,152,67,30,200,206,209,163,113,135,0,170,238,206,9,199,181,112,39,194,236,211,179,231,200,93,186,105,78,151,226,228,9,76,230,11,178,109,98,162,93,44,147,90,222,113,144,219,20,13,126,213,127,85,166,99,106,23,239,27,25,154,0,99,245,154,99,161,82,63,207,39,192,99,11,17,12,191,24,73,126,55,83,136,57,236,236,92,41,183,142,21,184,246,163,103,74,122,227,203,45,184,93,63,194,252,121,178,151,72,215,220,154,20,110,184,61,240,23,68,37,27,82,205,184,212,162,23,124,1,78,12,66,109,72,22,45,164,243,228,64,42,28,215,107,252,246,120,175,220,100,22,144,187,140,26,255,229,137,47,38,0,134,17,54,240,155,105,161,8,39,177,240,10,129,234,15,111,18,105,198,171,148,69,142,216,40,77,91,166,250,73,39,173,82,37,61,194,149,173,253,188,165,255,252,57,111,237,212,147,187,191,42,77,211,74,206,91,174,59,73,124,95,216,244,129,162,207,228,187,254,235,115,94,93,19,23,236,206,40,44,138,230,214,72,120,137,179,43,16,110,145,208,70,30,176,1,239,231,163,138,207,45,34,75,214,77,25,83,175,59,38,67,218,239,100,123,179,69,54,29,102,139,120,212,30,101,106,25,63,45,111,133,172,166,18,28,62,217,194,59,61,33,26,244,191,156,100,14,119,238,93,210,131,84,175,233,31,54,249,127,194,100,181,164,53,80,125,209,27,172,43,23,238,0,195,129,46,58,141,131,191,200,2,248,198,193,191,42,227,151,154,203,40,217,21,100,175,216,144,10,3,78,122,152,230,133,170,127,233,250,67,93,183,46,71,42,162,4,157,241,168,247,79,159,58,1,84,96,232,27,226,182,253,43,93,231,247,175,40,228,126,30,235,98,127,247,88,9,16,17,245,114,70,154,115,70,117,232,65,180,146,86,134,204,67,69,82,27,167,161,55,247,249,249,131,64,162,235,90,48,23,2,134,252,39,253,230,165,238,245,113,29,225,169,114,161,158,191,171,41,225,183,116,54,106,30,150,136,90,228,178,85,152,213,177,185,127,119,226,230,164,17,230,162,235,133,175,37,21,129,248,216,127,89,56,167,221,22,245,41,188,144,206,107,167,145,245,28,4,195,10,44,93,160,207,206,225,50,52,180,2,84,157,152,55,10,132,178,107,44,210,202,183,67,144,249,196,96,54,218,219,219,47,88,72,94,55,167,72,42,142,161,93,34,132,33,173,72,72,155,247,153,29,83,190,240,249,131,249,216,241,175,178,64,230,193,83,118,188,255,126,153,42,206,220,54,111,52,161,171,1,164,59,240,61,65,111,81,171,223,44,71,192,157,4,134,7,54,222,136,128,167,38,68,53,41,154,242,204,95,191,48,54,71,8,35,42,157,216,73,75,187,206,158,126,81,84,90,125,252,152,214,41,147,4,7,198,224,40,200,184,87,79,30,4,107,250,252,134,49,36,189,153,167,2,185,19,143,51,33,85,163,134,33,82,51,240,244,13,206,216,103,61,165,109,104,82,28,90,167,21,177,168,191,48,223,200,29,210,136,245,48,123,179,203,38,219,158,130,140,181,50,87,139,62,231,82,66,97,92,147,161,45,170,108,22,212,243,188,142,196,155,79,180,204,85,158,109,114,141,219,78,143,198,212,97,69,59,230,109,233,68,127,13,1,58,16,251,101,133,121,165,108,72,106,125,174,39,201,222,230,125,151,183,13,246,3,179,82,157,85,175,80,65,145,163,209,67,216,226,188,24,221,181,139,192,158,238,69,192,132,43,7,232,200,85,2,104,163,59,15,157,143,242,79,248,119,179,210,152,61,124,101,30,182,197,150,81,191,179,153,111,5,203,190,192,140,119,108,48,232,147,234,90,188,97,238,41,100,207,122,9,241,102,213,30,158,253,69,6,127,199,236,11,214,199,206,164,226,226,40,148,197,185,214,109,215,216,61,167,251,30,247,187,97,37,241,244,92,217,96,181,68,201,132,113,166,118,4,87,101,154,174,61,167,72,41,124,143,242,8,254,253,215,20,70,170,9,122,98,248,61,33,0,39,161,49,197,207,103,235,118,191,157,42,162,192,209,3,51,115,64,163,187,85,76,164,23,28,39,56,232,251,33,17,113,151,123,26,173,141,66,250,16,228,168,215,65,222,59,31,12,160,119,137,41,45,139,129,22,212,212,21,166,28,143,247,93,12,20,44,203,213,45,255,46,87,32,156,100,120,187,95,53,28,147,112,63,49,203,143,32,165,35,184,144,137,100,8,181,89,15,245,178,87,26,134,60,113,166,243,250,224,149,139,98,59,169,71,130,159,228,29,200,211,196,12,129,239,193,43,65,247,78,175,175,181,189,34,36,208,29,44,81,56,255,192,194,122,0,30,192,209,247,184,169,59,174,242,134,98,224,109,156,140,219,90,215,21,144,184,194,149,16,206,244,12,125,216,39,15,151,161,15,45,64,218,206,5,70,244,112,54,203,134,10,179,242,22,155,209,47,117,67,244,149,219,145,149,200,130,42,169,16,240,205,76,63,102,16,252,21,147,42,89,208,222,34,52,159,117,27,186,62,143,221,78,77,168,67,103,254,248,10,180,174,169,207,38,36,176,192,166,213,3,43,115,249,84,61,64,83,142,31,104,203,88,42,210,204,145,179,92,8,213,177,88}, } ; static const unsigned char precomputed_core_scale3sntrup953_k[precomputed_core_scale3sntrup953_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, } ; static const unsigned char precomputed_core_scale3sntrup953_c[precomputed_core_scale3sntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, } ; static void test_core_scale3sntrup953_impl(long long impl) { unsigned char *h = test_core_scale3sntrup953_h; unsigned char *n = test_core_scale3sntrup953_n; unsigned char *k = test_core_scale3sntrup953_k; unsigned char *c = test_core_scale3sntrup953_c; unsigned char *h2 = test_core_scale3sntrup953_h2; unsigned char *n2 = test_core_scale3sntrup953_n2; unsigned char *k2 = test_core_scale3sntrup953_k2; unsigned char *c2 = test_core_scale3sntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_scale3sntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_scale3sntrup953(impl); printf("core_scale3sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_scale3sntrup953_implementation(impl),ntruprime_dispatch_core_scale3sntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_scale3sntrup953; printf("core_scale3sntrup953 selected implementation %s compiler %s\n",ntruprime_core_scale3sntrup953_implementation(),ntruprime_core_scale3sntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_scale3sntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_scale3sntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_scale3sntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_scale3sntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_scale3sntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_scale3sntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_scale3sntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_scale3sntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_scale3sntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_scale3sntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_scale3sntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"scale3sntrup953")) return; storage_core_scale3sntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_scale3sntrup953_h = aligned(storage_core_scale3sntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_scale3sntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_scale3sntrup953_n = aligned(storage_core_scale3sntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_scale3sntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_scale3sntrup953_k = aligned(storage_core_scale3sntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_scale3sntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_scale3sntrup953_c = aligned(storage_core_scale3sntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_scale3sntrup953_h2 = callocplus(maxalloc); test_core_scale3sntrup953_h2 = aligned(storage_core_scale3sntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_scale3sntrup953_n2 = callocplus(maxalloc); test_core_scale3sntrup953_n2 = aligned(storage_core_scale3sntrup953_n2,crypto_core_INPUTBYTES); storage_core_scale3sntrup953_k2 = callocplus(maxalloc); test_core_scale3sntrup953_k2 = aligned(storage_core_scale3sntrup953_k2,crypto_core_KEYBYTES); storage_core_scale3sntrup953_c2 = callocplus(maxalloc); test_core_scale3sntrup953_c2 = aligned(storage_core_scale3sntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_scale3sntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_scale3sntrup953();++impl) forked(test_core_scale3sntrup953_impl,impl); ++test_core_scale3sntrup953_h; ++test_core_scale3sntrup953_n; ++test_core_scale3sntrup953_k; ++test_core_scale3sntrup953_c; ++test_core_scale3sntrup953_h2; ++test_core_scale3sntrup953_n2; ++test_core_scale3sntrup953_k2; ++test_core_scale3sntrup953_c2; } free(storage_core_scale3sntrup953_c2); free(storage_core_scale3sntrup953_k2); free(storage_core_scale3sntrup953_n2); free(storage_core_scale3sntrup953_h2); free(storage_core_scale3sntrup953_c); free(storage_core_scale3sntrup953_k); free(storage_core_scale3sntrup953_n); free(storage_core_scale3sntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_weightsntrup1013.c0000644000000000000000000011326214705505543024122 0ustar rootroot/* ----- core/weightsntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_weightsntrup1013_checksums[] = { "225c4959095c19803ffa71189c9e9eab360a246b1649f944e75505d31618f45b", "d88a96a3152511717b19c6e3e8d1192d37c2afc8cf7a3c324ee142363ba68989", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_weightsntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_weightsntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_weightsntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_weightsntrup1013_CONSTBYTES static void *storage_core_weightsntrup1013_h; static unsigned char *test_core_weightsntrup1013_h; static void *storage_core_weightsntrup1013_n; static unsigned char *test_core_weightsntrup1013_n; static void *storage_core_weightsntrup1013_k; static unsigned char *test_core_weightsntrup1013_k; static void *storage_core_weightsntrup1013_c; static unsigned char *test_core_weightsntrup1013_c; static void *storage_core_weightsntrup1013_h2; static unsigned char *test_core_weightsntrup1013_h2; static void *storage_core_weightsntrup1013_n2; static unsigned char *test_core_weightsntrup1013_n2; static void *storage_core_weightsntrup1013_k2; static unsigned char *test_core_weightsntrup1013_k2; static void *storage_core_weightsntrup1013_c2; static unsigned char *test_core_weightsntrup1013_c2; #define precomputed_core_weightsntrup1013_NUM 9 static const unsigned char precomputed_core_weightsntrup1013_h[precomputed_core_weightsntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {255,1}, {233,1}, {253,1}, {232,1}, {0,0}, {245,3}, {191,1}, {192,1}, {193,1}, } ; static const unsigned char precomputed_core_weightsntrup1013_n[precomputed_core_weightsntrup1013_NUM][crypto_core_INPUTBYTES] = { {25,27,143,246,234,88,86,174,8,34,215,79,62,194,244,11,6,136,133,117,201,7,241,211,105,156,118,198,83,65,165,243,21,179,147,64,178,3,114,134,216,46,123,209,252,77,47,171,44,224,192,248,134,178,110,34,81,230,110,145,234,159,104,200,140,156,225,78,106,200,47,91,249,95,188,164,33,134,63,173,103,212,78,71,92,89,61,39,12,110,59,26,107,92,218,254,83,248,130,183,80,134,159,156,90,71,227,243,5,49,185,136,77,75,11,155,226,165,8,47,96,144,132,249,166,74,190,117,223,84,216,64,66,109,73,250,195,27,62,11,87,98,163,137,117,129,201,242,46,214,110,20,221,9,232,112,117,246,184,236,249,18,217,74,61,167,99,164,210,107,64,239,85,39,183,67,48,136,128,117,137,42,118,243,52,197,109,58,13,242,237,116,11,33,168,208,20,169,155,239,217,140,235,140,234,11,88,86,171,175,31,249,10,156,61,52,2,108,7,235,211,244,110,148,24,184,176,46,42,67,99,139,132,105,85,178,50,234,119,189,206,148,250,131,42,183,215,22,193,161,179,86,91,107,18,181,232,47,14,144,126,155,173,115,50,163,161,62,194,20,239,238,227,99,239,96,106,127,236,149,118,136,174,200,10,23,109,191,121,154,213,18,7,234,116,173,29,150,185,242,142,233,17,99,99,23,249,205,126,246,9,145,98,231,153,128,196,28,105,10,91,225,165,103,242,118,139,226,164,163,180,0,19,39,252,64,184,254,60,78,43,215,7,126,153,138,108,137,212,106,236,217,134,31,229,185,74,29,242,147,215,119,56,44,29,75,240,158,192,15,188,24,180,72,177,62,62,109,128,206,51,126,10,107,67,67,172,57,11,40,160,58,10,59,193,56,233,185,98,239,16,148,9,162,100,224,150,158,137,23,62,28,103,33,100,207,206,31,62,197,147,130,31,231,120,77,30,114,185,81,222,45,211,23,134,94,236,175,76,10,148,167,245,121,80,223,217,203,209,202,58,135,203,247,101,196,0,213,197,53,137,0,7,137,195,31,222,228,236,89,22,101,227,168,179,17,243,178,7,210,89,111,47,244,147,104,234,135,158,253,108,141,209,186,122,215,221,135,21,212,126,139,241,200,226,130,50,174,75,247,105,218,24,143,162,137,99,178,38,37,151,184,242,210,134,233,114,135,61,11,43,97,192,87,8,149,205,15,250,1,218,100,67,220,63,123,101,12,77,139,232,156,41,129,75,112,146,92,145,78,71,162,121,153,113,212,39,89,3,149,135,87,244,114,63,45,179,89,159,106,211,97,88,126,7,66,77,65,18,142,7,253,234,147,24,234,129,255,1,164,200,147,171,38,183,33,240,197,15,231,213,226,38,166,46,64,111,11,215,233,231,107,222,201,27,216,247,95,23,117,12,227,153,154,231,53,96,154,255,191,164,212,235,88,72,177,12,228,57,75,70,127,181,192,178,118,204,169,151,83,231,21,5,212,56,83,169,140,216,231,218,154,114,205,217,65,129,58,61,140,154,177,100,105,26,216,24,56,224,234,228,130,175,245,2,247,169,31,234,14,182,188,3,177,210,228,210,87,114,221,53,163,87,80,162,101,163,207,144,140,220,35,174,162,104,230,89,245,153,61,33,94,81,178,10,2,146,252,217,179,112,155,241,200,68,121,104,73,165,49,140,170,94,163,30,112,230,232,125,91,17,173,189,101,50,46,236,225,161,160,108,190,85,233,155,250,14,199,234,226,77,135,142,92,174,233,250,81,166,48,155,171,245,34,84,55,125,252,7,139,162,207,66,185,197,105,42,163,49,244,244,49,130,197,195,3,242,69,236,199,254,154,249,238,23,212,145,222,230,107,196,72,25,54,0,131,59,42,226,146,121,149,139,4,246,215,175,132,183,244,123,97,223,249,22,61,140,43,179,73,176,120,56,208,98,222,214,57,60,98,206,150,3,67,179,88,174,82,27,193,23,79,109,117,120,96,89,235,58,55,14,99,90,178,209,11,136,29,224,9,139,110,213,115,218,211,149,250,196,116,212,71,247,31,42,2,41,5,224,169,115,184,94,190,42,178,173,93,20,94,7,241,136,62,10,164,84,61,255,92,191,69,0,139,82,245,145,130,120,17,207,68,27,157,27,147,210,170,132,196,139,63,20,101,182,55,11,178,94,98,247,65,21,60,63,236,30,241,46,236,8,253,102,159,198,159,104,24,101,166,82,126,68,238,249,188,172,176,126,126,37,201,223,44,130,80,92,214,247,248,219,246,118}, {89,127,42,16,248,28,141,88,128,228,30,92,186,179,101,252,227,227,79,17,253,67,147,106,112,205,152,177,238,251,35,246,136,240,213,179,222,204,105,55,77,33,176,194,83,87,183,105,71,30,67,138,79,248,133,87,29,72,109,31,24,56,191,94,177,82,238,5,126,164,51,230,243,210,243,75,88,158,74,252,254,108,42,162,59,182,254,100,126,196,91,30,63,188,249,106,147,27,87,69,104,255,166,192,49,178,158,143,35,93,19,91,4,54,152,50,225,244,120,81,63,86,27,148,7,99,142,118,94,171,118,77,168,157,94,150,249,129,220,182,49,49,121,14,224,117,109,237,66,231,52,145,220,74,161,184,196,231,126,171,97,32,6,105,140,133,13,118,14,202,30,160,231,104,141,134,74,242,250,97,78,230,87,188,86,243,11,251,165,96,200,16,20,199,68,81,202,11,253,91,35,50,85,218,206,160,203,86,147,32,212,143,150,50,205,231,75,17,117,146,41,159,169,36,205,126,146,161,56,255,154,169,215,76,203,237,70,215,151,70,163,252,188,185,176,175,158,52,15,85,239,250,26,98,143,212,50,193,136,224,188,66,62,18,157,24,60,88,205,24,23,170,201,216,203,201,91,242,45,223,22,231,53,231,190,104,22,148,47,72,180,166,198,2,1,55,158,230,93,90,199,145,187,20,243,185,174,91,140,12,67,234,142,96,183,190,237,190,162,47,203,48,11,73,51,159,19,21,103,50,144,251,182,220,198,57,175,223,59,26,148,233,113,81,51,177,250,125,26,129,231,9,161,230,244,79,111,214,207,111,4,123,190,251,227,250,220,101,18,134,53,88,154,166,200,247,109,47,207,175,193,40,44,86,149,251,174,17,5,159,255,148,173,214,20,164,167,183,248,111,110,252,155,45,151,67,139,36,230,24,199,244,217,78,158,20,165,198,33,127,230,132,52,123,103,167,39,40,60,204,15,191,190,221,146,220,80,79,26,16,224,226,80,195,181,147,1,35,216,220,102,131,202,8,120,33,100,193,76,247,8,251,123,183,237,86,209,235,103,197,139,81,10,5,189,44,10,176,16,11,132,180,123,204,153,5,48,21,13,153,219,229,136,21,245,255,61,117,185,240,186,79,35,132,17,26,177,132,64,143,183,168,192,142,4,180,176,23,114,181,225,234,48,206,74,202,178,15,211,206,55,61,226,26,247,208,48,224,43,43,69,40,32,16,104,195,22,71,21,17,202,249,101,13,115,177,34,159,131,213,246,199,175,242,18,155,137,48,115,187,165,162,128,219,130,18,114,68,107,44,203,190,223,86,127,152,93,217,61,192,68,199,105,237,213,70,101,188,136,153,216,214,218,224,21,241,213,167,14,118,156,69,132,142,245,49,155,74,126,107,86,219,10,171,20,125,75,103,27,225,254,84,125,75,247,252,90,120,3,248,116,196,122,105,200,4,187,194,233,94,73,107,205,218,202,190,181,113,129,151,118,105,106,157,112,4,181,164,71,207,50,165,88,166,50,12,8,171,136,158,220,230,59,250,38,231,56,133,9,7,199,166,15,180,182,92,114,218,184,106,87,144,21,111,162,170,156,123,76,121,105,114,7,169,64,160,114,160,153,60,158,45,40,162,176,97,102,172,61,206,134,20,252,56,29,156,211,153,12,82,218,45,130,50,236,92,92,145,99,185,163,154,233,145,9,229,159,139,144,204,28,82,152,62,127,239,219,165,105,111,210,126,218,56,206,152,194,46,104,235,152,230,196,128,3,175,131,206,224,109,103,113,173,25,54,217,120,116,209,17,121,249,172,208,238,25,91,165,46,187,150,99,138,155,225,60,31,160,119,60,141,138,42,10,198,253,249,131,216,92,86,252,119,192,155,180,56,171,236,84,177,34,22,138,11,210,76,85,138,209,215,210,170,230,23,103,241,239,170,179,45,254,87,16,248,181,224,253,42,38,190,122,190,198,140,160,247,16,12,145,122,59,159,142,43,174,34,96,90,123,194,155,154,40,107,168,108,248,215,183,28,193,198,98,8,98,226,237,138,87,231,16,141,202,25,53,210,198,90,225,169,54,84,229,88,84,139,246,146,250,87,148,151,241,215,96,20,57,225,127,66,139,249,132,115,37,64,125,7,54,28,200,17,82,199,146,184,228,243,117,245,173,172,59,126,127,130,163,219,121,78,192,10,126,88,59,35,135,109,222,129,145,241,158,214,106,241,50,54,39,139,113,242,121,54,245,112,156,209,103,10,245,82,222,162,37,35,95,242,195,179,198,190}, {193,222,129,63,78,17,235,28,181,241,75,96,112,211,80,94,154,201,60,190,29,192,210,21,71,45,170,191,159,185,196,35,107,201,111,233,2,66,125,15,241,49,199,8,30,24,42,135,190,159,122,250,50,22,44,85,39,9,64,66,80,49,160,87,83,12,92,218,247,56,120,68,7,49,83,250,52,230,149,120,158,150,178,38,6,65,221,40,249,197,153,216,176,2,95,58,214,41,105,215,102,46,31,231,163,5,160,138,46,133,200,190,226,249,155,96,97,6,23,3,212,200,107,64,31,241,110,48,240,252,177,12,99,231,174,85,224,239,34,237,189,157,117,80,19,177,74,54,51,194,122,171,153,87,244,31,69,136,11,140,125,141,91,214,190,222,91,124,243,93,212,178,59,76,137,128,121,87,186,142,151,175,176,234,58,160,227,62,155,247,94,60,131,53,132,120,212,15,172,49,214,39,137,218,178,127,132,206,229,29,140,58,231,179,63,24,142,137,189,70,48,215,136,165,53,10,219,159,124,215,81,177,224,225,149,80,232,158,146,76,252,247,144,144,194,122,172,248,94,98,39,55,62,46,247,151,241,42,27,151,103,14,122,251,70,220,177,32,217,67,147,84,184,190,111,141,230,160,143,233,18,188,195,125,19,198,97,95,163,67,136,129,129,172,21,167,239,141,0,54,143,29,94,183,196,192,219,216,128,114,66,147,196,33,108,231,17,137,43,106,166,144,207,50,130,15,251,137,108,1,254,48,10,40,95,26,16,108,50,202,138,36,189,181,110,11,20,250,111,71,70,17,113,150,77,114,171,134,191,241,33,209,180,195,29,238,195,26,20,255,234,24,44,130,55,64,170,89,214,48,139,220,122,77,227,81,24,243,237,43,250,127,184,172,89,169,193,190,27,197,163,124,201,121,221,119,250,82,107,81,82,51,172,164,82,88,36,8,157,218,60,115,234,5,227,118,51,229,106,18,69,107,106,172,77,246,45,45,145,62,250,189,44,181,225,74,29,7,217,98,82,219,33,90,59,44,220,25,69,176,49,178,127,6,27,89,39,186,167,97,32,244,67,70,41,202,8,202,51,101,218,63,14,101,97,60,173,215,211,203,1,188,131,196,106,179,20,70,98,247,115,243,125,241,130,143,52,122,115,168,25,190,74,4,193,112,224,185,172,21,124,116,239,83,39,166,188,0,38,198,90,232,147,175,212,130,50,63,142,253,28,159,61,75,88,131,31,14,109,139,137,50,92,149,41,205,62,152,94,43,137,72,188,168,65,70,51,252,168,179,51,225,91,47,38,216,197,180,96,201,125,219,221,39,112,186,92,129,182,208,54,105,173,100,85,87,172,192,236,178,109,224,68,124,108,52,224,104,83,109,72,218,192,182,162,187,156,71,208,82,97,43,117,166,32,234,195,163,181,138,185,75,227,227,33,106,11,129,27,240,152,91,211,143,27,139,180,129,239,170,147,244,98,66,27,91,105,159,115,244,7,48,153,113,17,189,81,40,35,149,250,22,107,25,161,122,137,201,74,165,171,150,74,97,54,43,120,38,251,92,249,16,84,125,229,46,213,254,61,28,27,141,203,68,120,77,148,100,226,117,224,45,4,116,201,172,148,197,32,54,10,178,1,79,36,184,188,103,135,136,219,20,185,211,196,27,155,41,21,157,212,5,198,201,130,90,140,163,214,192,126,178,176,134,221,1,59,200,61,30,180,119,113,173,55,206,67,52,53,39,105,149,41,23,238,101,156,204,148,27,8,48,146,24,181,136,240,36,29,160,153,37,39,37,37,252,238,161,110,63,84,27,241,135,252,44,43,106,73,135,85,221,81,38,201,30,195,119,9,95,125,104,89,111,153,235,251,167,144,166,61,232,145,93,212,106,207,42,152,222,248,54,142,213,198,80,214,128,195,193,223,172,56,51,24,78,29,253,36,209,29,87,61,68,116,57,147,98,60,207,107,141,169,164,30,99,165,140,172,156,6,121,75,105,83,113,60,146,48,72,50,215,69,73,8,228,215,65,156,168,237,38,188,54,125,224,248,16,86,124,11,150,148,18,98,136,223,85,89,49,111,66,204,224,228,195,138,96,78,151,32,154,211,75,167,71,38,90,161,235,147,216,157,38,214,111,81,219,255,141,234,66,169,200,177,7,12,143,196,243,247,53,176,116,40,75,14,210,182,94,92,221,54,213,193,114,215,96,71,130,94,40,154,181,42,44,133,193,103,142,112,151,30,40,248,139,181,168,150,118,248,94,82,81,149,200,159,143,31,47,171,197,217}, {237,118,63,136,186,160,188,79,178,236,143,89,189,64,49,7,172,153,68,134,33,69,93,225,122,14,220,170,75,51,194,199,196,194,67,104,191,101,25,138,14,121,17,175,198,141,127,167,17,226,71,227,147,196,224,32,48,191,213,129,198,6,246,252,118,112,171,17,212,111,50,221,84,91,66,66,189,76,222,194,244,130,98,164,112,124,226,241,166,125,192,153,16,106,206,77,7,231,168,104,147,149,208,223,160,108,39,229,40,145,90,95,72,5,197,178,17,67,38,123,184,149,65,249,207,191,219,14,83,185,196,11,81,155,233,238,172,139,236,76,101,253,97,254,42,115,18,143,196,42,108,115,16,139,36,175,86,12,182,153,150,12,40,216,98,58,145,25,28,165,68,60,111,124,18,64,132,183,167,237,214,196,103,245,211,125,222,164,108,120,223,105,19,98,111,232,24,71,115,63,139,7,113,160,121,57,101,174,223,30,209,118,147,84,220,236,122,7,36,140,106,112,52,58,233,156,3,102,243,26,13,46,157,183,251,97,64,76,97,39,134,200,115,143,91,23,222,107,182,117,133,126,134,140,61,114,3,156,102,205,115,234,102,27,158,1,181,233,153,221,85,45,255,80,189,228,71,11,199,165,190,185,18,3,251,93,177,36,125,226,61,219,69,118,128,247,243,40,40,55,241,185,54,141,89,218,222,208,216,199,178,85,123,198,126,232,103,107,254,4,218,245,4,157,11,3,172,235,91,232,44,202,211,113,60,110,123,181,192,153,116,212,142,140,60,21,172,78,82,233,46,199,34,96,126,76,190,100,55,124,231,64,142,102,23,70,36,79,227,6,216,186,75,142,41,205,75,175,252,123,122,117,25,183,58,6,85,108,149,138,201,215,118,162,15,201,247,62,4,72,252,52,213,110,197,193,113,182,6,201,121,36,122,211,168,52,191,166,35,81,74,129,233,10,141,242,14,37,136,53,114,31,89,148,125,207,149,195,72,254,172,251,254,63,128,24,221,188,232,92,30,182,183,210,162,92,200,170,4,155,128,101,112,208,247,62,192,1,65,2,39,148,13,255,139,213,213,103,153,143,125,101,96,0,0,221,84,121,161,49,24,233,71,99,108,72,120,199,187,199,33,62,20,89,217,95,49,253,55,238,255,38,222,135,66,9,122,93,137,185,27,92,124,126,79,7,29,245,186,48,111,100,227,84,114,68,88,235,78,216,58,133,44,203,53,55,1,58,49,237,113,119,64,19,119,177,25,180,3,245,211,157,53,78,229,175,21,1,255,13,50,207,92,239,114,177,137,2,4,107,185,207,241,10,196,171,122,40,212,52,251,228,126,21,46,69,35,219,166,77,236,188,192,104,196,44,101,231,60,18,62,187,114,161,224,35,168,150,34,65,138,208,57,178,250,12,142,72,33,209,50,70,125,153,90,135,12,176,200,64,12,133,7,163,109,50,151,64,209,87,32,214,158,26,224,204,72,25,146,168,179,42,118,72,60,34,234,154,219,152,235,73,14,255,107,142,219,97,155,80,132,112,158,240,172,83,155,89,171,19,211,171,144,176,72,23,228,255,85,71,139,175,161,163,47,208,26,5,120,209,158,38,203,160,131,14,84,111,27,149,243,1,190,174,125,58,101,79,193,0,60,15,120,147,69,6,9,208,41,111,182,212,152,21,14,106,237,184,99,190,221,145,158,102,92,41,138,195,218,57,32,246,255,192,163,213,0,26,181,48,220,242,153,129,76,69,148,236,134,103,146,60,110,7,104,115,133,126,20,1,14,246,178,204,58,251,174,187,3,245,38,94,247,111,20,94,62,175,240,254,253,45,209,82,164,2,6,194,38,116,6,27,144,200,240,42,171,161,254,172,147,116,251,224,133,126,211,177,234,128,191,211,63,75,74,210,176,53,98,134,135,95,216,249,87,161,215,28,89,142,97,139,254,30,114,12,169,24,219,243,126,79,141,120,202,101,199,141,120,220,5,70,95,21,82,83,186,12,48,60,8,5,224,139,39,87,223,2,28,65,147,118,56,143,166,64,68,101,108,38,74,15,244,240,150,65,89,223,132,115,38,84,172,247,228,223,241,7,229,88,208,127,59,85,119,215,202,146,241,111,11,127,222,10,125,192,121,190,171,124,57,245,24,81,42,140,176,106,198,168,169,15,206,220,150,186,54,66,5,72,116,56,97,116,43,80,36,224,172,54,160,228,169,216,202,190,119,198,114,196,124,225,232,232,206,157,248,111,119,254,134,122,201,10,218,204,99,141,117,68,83,221,38}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,0,0,0,0,1,255,255,255,255,0,0,1,255,255,0,0,0,0,0,1,1,0,255,0,0,0,255,0,1,0,0,1,0,255,0,255,255,255,255,0,1,0,0,0,0,0,0,255,255,0,1,0,255,0,255,0,255,0,1,0,0,255,0,0,0,255,1,255,0,255,0,0,0,255,0,255,0,255,1,255,0,0,0,0,1,255,0,0,1,1,1,1,0,0,1,255,0,0,0,0,255,255,0,0,0,0,0,255,0,0,0,1,1,255,0,0,0,255,0,0,0,0,0,0,0,0,1,255,255,0,0,0,0,0,0,0,255,1,1,255,1,255,0,0,1,0,0,0,0,255,1,0,1,0,255,0,1,1,0,255,1,1,1,255,255,255,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,255,0,0,0,0,255,0,255,0,1,255,255,0,0,0,255,0,255,255,0,1,0,1,0,1,0,255,0,0,0,0,0,255,0,0,255,0,255,0,1,0,1,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,255,255,0,0,0,1,255,255,0,0,255,0,0,1,1,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,1,0,0,0,0,0,0,255,255,1,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,255,0,0,1,0,0,1,1,0,255,1,1,0,0,0,1,0,1,1,1,255,0,1,0,0,0,0,255,1,0,0,255,255,0,0,1,0,255,0,255,255,1,255,0,0,255,1,0,255,255,255,0,0,0,0,1,0,255,255,1,0,0,0,1,0,0,255,255,1,1,1,255,255,0,0,1,0,0,0,0,1,0,0,0,1,0,255,0,0,255,0,1,1,0,0,255,1,0,255,0,0,0,0,1,255,0,1,0,255,0,0,1,1,0,0,255,0,1,0,255,0,0,0,1,0,1,0,0,255,0,1,0,255,255,1,0,1,255,0,0,255,1,0,255,0,0,1,255,0,0,1,0,0,0,1,0,0,0,1,255,0,1,0,0,255,0,255,255,255,0,0,255,0,0,1,1,0,255,0,255,255,0,0,255,0,255,255,0,255,0,255,0,0,0,0,0,1,255,255,0,0,0,1,255,1,0,255,0,255,0,0,255,0,0,1,255,0,0,255,0,0,1,0,0,1,0,255,1,0,0,1,0,0,255,0,0,0,0,255,1,1,0,1,1,0,0,0,0,1,1,0,255,0,0,0,255,255,0,0,255,0,255,255,0,0,1,0,0,1,1,255,0,255,0,1,0,255,0,1,0,0,1,0,255,0,255,0,255,0,0,1,0,0,0,0,255,0,1,0,1,1,0,1,255,255,0,0,0,255,255,0,0,0,0,0,0,0,255,255,0,255,1,0,1,0,0,0,0,255,0,0,1,0,255,255,1,0,0,0,0,0,255,0,0,255,0,0,0,255,0,1,255,0,0,255,1,1,255,255,0,1,0,0,0,255,0,0,1,0,255,0,255,0,0,0,0,0,0,0,255,1,0,255,1,1,0,0,0,0,0,255,0,0,1,255,1,0,0,0,255,0,0,255,0,1,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,1,0,255,0,0,0,1,0,255,1,255,255,255,255,1,255,0,255,255,255,0,1,255,0,1,1,0,255,0,255,1,0,0,1,1,255,1,0,0,0,0,1,0,255,0,255,0,255,255,255,0,0,0,1,0,255,255,255,1,0,0,255,0,0,255,255,0,1,1,0,0,1,255,255,255,1,255,1,0,255,0,1,0,0,1,0,0,1,0,0,0,1,255,1,0,0,1,0,0,0,0,0,0,0,0,255,1,0,0,255,1,255,255,0,255,255,0,1,255,1,0,0,255,0,0,1,255,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,255,1,0,1,0,0,0,1,255,1,0,1,255,255,0,0,255,0,0,0,0,255,1,255,0,0,0,1,0,0,255,0,0,1,1,255,255,0,255,0,255,255,0,0,255,1,255,1,0,1,0,0,0,255,0,0,0,1,0,0,255,255,1,0,0,255,0,0,0,0,255,1,255,0,255,1,0,0,0,0,0,0,0,0,255,1,0,0,0,255,0,0,0,0,0,1,255,0,0,1,1,255,0,0,0,0,255,1,0,0,0,1,1,0,0,0,0,0,0,0,255,255,1,255,1,255,0,1,0,255,1,1,0,0,0,1,0,1,1,0,0,255,255}, {0,255,0,1,0,255,0,0,0,0,1,0,0,255,255,0,0,0,255,255,255,1,0,0,1,1,1,0,255,0,255,0,0,255,255,0,0,0,0,0,1,255,0,255,1,0,255,0,0,255,255,1,255,1,0,0,0,1,255,255,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,255,0,0,1,0,0,0,1,0,1,0,255,0,255,0,1,255,255,0,0,255,0,0,1,1,1,0,0,255,0,1,1,0,255,0,255,0,0,255,0,1,0,1,0,0,0,1,0,255,1,0,255,1,1,1,0,0,255,0,0,1,1,255,1,255,255,255,1,0,255,0,1,0,0,0,0,0,0,0,255,0,255,1,0,0,255,255,0,0,0,255,1,0,255,0,0,1,255,0,0,0,0,0,0,1,1,1,255,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,255,1,0,0,255,0,0,0,0,255,0,0,1,0,255,0,0,0,1,0,255,0,0,1,0,0,0,1,0,0,0,1,1,0,255,0,255,255,0,0,0,255,0,0,0,0,255,0,255,1,0,0,255,255,0,0,1,0,0,255,255,255,255,0,0,255,1,255,255,255,255,0,255,0,0,0,255,0,0,0,1,255,0,0,0,0,0,0,0,0,0,1,0,255,0,1,1,0,255,0,0,1,255,0,255,255,1,0,0,0,1,255,255,1,1,0,0,255,255,0,1,255,0,1,255,1,1,0,255,0,0,255,255,0,1,0,0,0,1,0,255,255,0,1,0,1,0,0,255,1,0,255,0,1,1,0,1,255,0,0,0,0,255,1,0,0,0,0,1,1,255,255,0,0,0,255,1,255,1,0,1,1,255,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,255,0,1,0,0,255,1,1,0,0,0,255,0,0,255,1,255,0,1,0,0,0,0,0,255,1,0,1,255,0,255,0,0,255,255,0,255,255,0,0,0,255,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,255,0,0,255,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,255,0,0,0,1,0,0,255,0,1,0,0,0,255,0,1,0,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,255,255,1,0,0,0,1,0,0,255,255,1,1,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,1,255,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,255,0,1,255,0,0,0,255,255,0,0,0,1,0,255,255,255,1,0,1,255,1,1,255,255,0,1,1,0,1,1,0,255,0,255,0,255,255,0,0,255,255,0,1,0,0,255,0,1,1,255,1,0,0,255,0,255,255,1,255,255,0,255,1,255,0,0,1,255,0,0,0,255,0,1,0,1,0,0,0,0,255,255,0,0,255,1,255,0,0,1,255,255,0,1,0,255,255,0,255,1,1,1,0,0,0,1,0,255,0,1,0,0,0,1,1,0,1,1,1,0,1,255,0,0,1,255,0,1,0,255,0,0,255,0,0,0,255,0,255,1,255,0,255,0,0,0,0,255,0,1,1,0,255,0,1,0,0,255,0,255,0,0,0,0,0,0,255,0,255,1,255,255,0,0,0,0,0,0,1,255,1,255,0,1,1,1,0,0,0,255,0,255,255,1,255,0,0,0,1,0,0,1,0,0,0,255,255,1,255,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,255,255,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,255,0,0,0,255,0,255,255,0,0,0,0,1,0,255,1,255,255,0,255,0,0,0,0,1,0,1,1,255,0,255,0,255,0,255,0,0,1,1,0,1,0,255,0,0,255,255,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,255,255,255,1,0,255,255,1,1,255,0,1,1,0,1,255,0,0,0,255,255,0,0,255,0,0,0,255,1,0,0,0,0,0,1,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,255,0,1,0,0,255,0,0,0,255,1,255,0,255,255,255,1,1,0,0,0,255,0,0,1,0,0,0,0,0,255,1,0,0,1,255,1,0,0,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,255,0,1,255,0,255,255,255,1,255}, {0,0,0,255,0,0,0,0,255,0,1,0,1,0,255,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,255,0,0,1,1,255,1,0,0,0,0,1,0,1,255,1,0,1,0,0,255,0,255,1,255,0,0,0,1,0,0,0,0,255,255,255,0,1,0,0,255,1,0,255,0,1,255,255,255,1,0,255,255,0,0,255,0,0,255,255,0,1,255,0,0,1,1,0,0,255,0,0,255,0,0,0,0,0,255,255,255,1,0,0,0,0,1,255,1,255,255,255,1,1,255,255,255,1,0,255,255,255,0,0,0,1,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,255,0,255,1,1,0,0,0,0,1,0,0,0,255,255,255,255,0,1,0,0,255,0,0,255,255,255,255,1,255,1,255,0,255,0,0,0,0,1,0,0,0,255,0,0,255,0,0,255,1,0,0,0,255,0,0,0,1,255,255,255,0,0,0,255,1,0,1,1,1,0,255,0,255,0,1,1,0,0,255,255,1,0,0,0,0,0,0,255,0,255,0,0,0,0,1,1,0,0,0,1,0,1,255,255,0,0,255,0,0,0,0,1,0,0,0,255,0,255,0,0,255,0,0,255,0,1,0,0,0,0,0,1,0,0,0,1,255,0,0,255,1,0,255,1,255,0,1,255,255,0,1,255,0,0,0,255,0,0,0,1,0,0,1,1,0,0,255,255,0,1,0,0,255,1,1,0,0,255,1,255,1,0,0,1,0,1,1,255,1,255,0,0,0,255,0,1,255,0,255,1,1,0,1,255,1,0,255,1,0,0,1,1,0,1,0,0,255,255,0,255,0,0,0,1,0,1,0,255,0,255,255,255,1,0,0,1,1,1,0,0,255,0,1,255,0,1,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,255,0,0,255,255,255,1,0,1,0,0,0,0,255,255,0,0,0,1,0,1,1,255,255,0,255,0,255,1,1,1,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,1,1,0,255,255,0,0,0,0,0,255,0,255,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,1,1,255,0,1,0,255,255,255,0,0,255,0,255,1,1,255,1,0,0,1,255,255,1,1,0,0,1,0,0,0,255,0,0,0,0,0,0,0,0,0,255,1,0,1,1,255,0,1,0,0,1,0,1,0,0,0,255,0,255,255,1,1,255,0,0,255,0,0,0,255,255,0,0,255,0,0,255,1,0,0,0,1,255,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,255,255,0,255,0,0,0,0,0,1,0,1,0,0,0,0,255,1,1,255,0,1,0,0,255,0,255,255,255,0,0,255,0,0,0,1,0,1,0,0,0,0,0,0,255,1,1,0,0,1,0,255,0,255,0,1,1,0,255,0,0,0,255,255,0,0,255,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,1,255,0,0,0,1,255,255,0,0,255,0,0,0,1,0,0,1,0,0,255,255,0,0,255,0,1,0,255,255,255,1,1,1,0,0,255,0,0,0,0,255,0,255,255,255,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,255,0,0,0,0,1,1,1,255,1,1,1,0,1,1,255,1,0,0,0,1,0,255,0,1,0,1,255,0,1,1,0,0,1,0,0,0,0,0,255,0,0,0,0,255,0,1,0,255,255,0,0,0,1,255,255,0,0,255,0,0,1,0,255,255,1,0,0,255,255,255,0,0,0,0,255,0,1,255,0,255,0,1,1,1,0,0,0,0,255,255,1,0,1,0,1,0,0,0,0,255,255,1,0,255,0,255,0,1,0,255,0,0,0,0,0,0,1,0,1,255,0,1,0,0,0,1,0,0,0,0,255,0,1,0,1,0,0,1,0,1,0,255,1,0,255,1,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,255,0,0,0,1,0,255,1,0,0,255,0,0,0,0,0,255,1,0,1,0,1,255,1,0,1,255,0,1,0,0,255,0,0,0,1,0,255,0,0,0,0,1,0,255,0,0,0,255,0,255,0,1,0,1,0,1,0,1,0,255,1,0,255,255,0,0,255,0,255,0,1,255,1,0,0,255,0,0,0,1,255,255,0,255,255,0,0,1,1,255,0,255,1,0,0,0,255,0,0,0}, } ; static const unsigned char precomputed_core_weightsntrup1013_k[precomputed_core_weightsntrup1013_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_weightsntrup1013_c[precomputed_core_weightsntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_weightsntrup1013_impl(long long impl) { unsigned char *h = test_core_weightsntrup1013_h; unsigned char *n = test_core_weightsntrup1013_n; unsigned char *k = test_core_weightsntrup1013_k; unsigned char *c = test_core_weightsntrup1013_c; unsigned char *h2 = test_core_weightsntrup1013_h2; unsigned char *n2 = test_core_weightsntrup1013_n2; unsigned char *k2 = test_core_weightsntrup1013_k2; unsigned char *c2 = test_core_weightsntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_weightsntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup1013(impl); printf("core_weightsntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup1013_implementation(impl),ntruprime_dispatch_core_weightsntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup1013; printf("core_weightsntrup1013 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup1013_implementation(),ntruprime_core_weightsntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_weightsntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_weightsntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_weightsntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_weightsntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_weightsntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_weightsntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_weightsntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_weightsntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_weightsntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_weightsntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_weightsntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup1013")) return; storage_core_weightsntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_weightsntrup1013_h = aligned(storage_core_weightsntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_weightsntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_weightsntrup1013_n = aligned(storage_core_weightsntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_weightsntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_weightsntrup1013_k = aligned(storage_core_weightsntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_weightsntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_weightsntrup1013_c = aligned(storage_core_weightsntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_weightsntrup1013_h2 = callocplus(maxalloc); test_core_weightsntrup1013_h2 = aligned(storage_core_weightsntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_weightsntrup1013_n2 = callocplus(maxalloc); test_core_weightsntrup1013_n2 = aligned(storage_core_weightsntrup1013_n2,crypto_core_INPUTBYTES); storage_core_weightsntrup1013_k2 = callocplus(maxalloc); test_core_weightsntrup1013_k2 = aligned(storage_core_weightsntrup1013_k2,crypto_core_KEYBYTES); storage_core_weightsntrup1013_c2 = callocplus(maxalloc); test_core_weightsntrup1013_c2 = aligned(storage_core_weightsntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_weightsntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup1013();++impl) forked(test_core_weightsntrup1013_impl,impl); ++test_core_weightsntrup1013_h; ++test_core_weightsntrup1013_n; ++test_core_weightsntrup1013_k; ++test_core_weightsntrup1013_c; ++test_core_weightsntrup1013_h2; ++test_core_weightsntrup1013_n2; ++test_core_weightsntrup1013_k2; ++test_core_weightsntrup1013_c2; } free(storage_core_weightsntrup1013_c2); free(storage_core_weightsntrup1013_k2); free(storage_core_weightsntrup1013_n2); free(storage_core_weightsntrup1013_h2); free(storage_core_weightsntrup1013_c); free(storage_core_weightsntrup1013_k); free(storage_core_weightsntrup1013_n); free(storage_core_weightsntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_weightsntrup1277.c0000644000000000000000000013060614705505543024137 0ustar rootroot/* ----- core/weightsntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_weightsntrup1277_checksums[] = { "9664b645da2e7b2a53a69270303673141fead5b32cb937a2d1c45f73cbe3cf27", "7139168303d50ca963c29781333800043dc0b4f7f69a14608d4550f8baefe498", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_weightsntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_weightsntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_weightsntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_weightsntrup1277_CONSTBYTES static void *storage_core_weightsntrup1277_h; static unsigned char *test_core_weightsntrup1277_h; static void *storage_core_weightsntrup1277_n; static unsigned char *test_core_weightsntrup1277_n; static void *storage_core_weightsntrup1277_k; static unsigned char *test_core_weightsntrup1277_k; static void *storage_core_weightsntrup1277_c; static unsigned char *test_core_weightsntrup1277_c; static void *storage_core_weightsntrup1277_h2; static unsigned char *test_core_weightsntrup1277_h2; static void *storage_core_weightsntrup1277_n2; static unsigned char *test_core_weightsntrup1277_n2; static void *storage_core_weightsntrup1277_k2; static unsigned char *test_core_weightsntrup1277_k2; static void *storage_core_weightsntrup1277_c2; static unsigned char *test_core_weightsntrup1277_c2; #define precomputed_core_weightsntrup1277_NUM 9 static const unsigned char precomputed_core_weightsntrup1277_h[precomputed_core_weightsntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {131,2}, {118,2}, {115,2}, {140,2}, {0,0}, {253,4}, {235,1}, {236,1}, {237,1}, } ; static const unsigned char precomputed_core_weightsntrup1277_n[precomputed_core_weightsntrup1277_NUM][crypto_core_INPUTBYTES] = { {197,86,12,15,172,69,252,171,135,171,8,242,35,136,23,238,254,14,34,42,142,130,170,204,128,22,178,116,26,214,3,216,166,160,252,238,85,255,92,91,43,9,172,174,107,206,30,122,41,202,10,234,162,197,102,60,54,161,168,234,232,61,224,209,156,156,142,186,146,36,85,11,200,197,142,227,243,19,40,44,34,227,78,118,2,170,160,120,34,233,24,26,43,36,248,60,112,196,213,206,154,104,255,38,199,21,128,171,219,20,25,249,115,20,200,123,102,191,69,100,26,132,217,73,189,25,116,254,56,235,188,101,6,28,137,215,58,172,6,242,80,116,125,225,87,18,71,18,0,108,5,209,114,93,233,92,62,212,187,207,93,24,127,228,44,252,173,173,220,143,244,174,126,157,211,234,178,253,247,176,40,30,156,174,197,229,133,38,65,23,154,74,134,7,14,165,27,148,208,71,140,199,73,63,158,93,40,130,188,82,174,119,200,226,46,237,20,87,68,88,83,19,73,33,55,208,207,166,69,177,26,223,93,79,205,68,151,149,150,90,196,180,137,67,96,6,132,101,209,255,187,209,151,44,227,175,61,224,238,57,35,247,231,201,133,146,140,94,103,205,114,236,238,252,49,117,254,192,83,89,215,81,4,45,53,148,63,231,104,77,70,221,4,241,192,93,153,20,168,249,92,180,31,196,62,67,86,115,147,21,119,193,248,58,209,71,127,94,33,251,70,66,198,2,129,188,69,33,138,242,121,19,159,91,34,62,190,233,216,170,248,110,56,11,72,165,95,15,59,231,24,32,0,160,38,166,112,164,59,173,109,43,7,77,64,2,171,205,72,142,185,195,135,56,83,238,77,17,25,115,148,221,157,147,143,57,75,245,214,140,127,113,65,73,95,50,22,101,24,151,38,159,16,84,236,143,147,71,12,247,15,116,205,71,36,195,80,204,228,163,110,187,28,33,147,97,253,185,45,197,113,212,97,91,4,8,152,150,242,97,150,82,76,27,216,216,195,85,43,224,62,63,195,249,8,234,23,224,216,144,127,217,225,101,218,26,249,224,231,47,97,112,88,25,229,16,56,81,111,87,222,141,131,165,109,143,137,98,159,50,101,102,41,68,57,86,180,191,117,167,41,223,104,228,138,150,192,85,34,161,41,173,50,34,159,5,255,197,238,181,202,191,242,170,174,80,164,97,159,100,30,67,73,25,50,254,61,65,132,255,16,241,171,243,89,49,127,196,178,189,188,191,41,219,86,66,187,126,86,3,104,77,116,139,215,83,211,100,198,51,253,26,213,19,232,147,66,32,49,63,215,218,203,132,131,176,84,215,110,123,2,102,75,96,71,226,86,152,160,30,194,203,131,164,104,192,223,48,228,55,148,127,76,12,195,1,12,109,179,184,105,39,63,201,114,232,119,110,217,220,165,131,182,207,254,94,115,205,224,144,199,196,178,185,238,161,14,208,14,118,113,72,125,87,74,76,44,124,141,174,186,193,253,0,207,161,32,99,151,21,130,11,88,159,252,182,61,66,12,105,131,131,45,196,150,46,187,172,23,193,81,165,119,59,32,82,192,51,147,19,50,24,38,75,190,153,89,90,246,96,188,95,237,109,43,255,248,153,150,152,222,212,103,228,18,193,225,124,10,160,120,192,109,63,90,110,125,169,238,172,193,144,179,110,127,254,223,243,123,36,202,114,6,193,16,174,176,11,84,249,185,76,109,18,118,6,121,125,118,36,124,69,159,133,120,86,135,233,233,217,160,170,86,213,65,70,22,16,214,9,101,30,155,96,40,35,223,172,45,7,34,159,38,172,238,53,173,84,211,134,30,3,5,103,44,101,196,113,245,28,205,242,189,187,114,45,21,142,203,155,105,232,177,175,115,200,159,76,185,120,146,27,156,170,219,207,122,190,31,21,161,199,35,201,149,145,7,252,151,46,50,123,145,219,248,64,107,170,215,110,44,144,254,147,142,49,78,102,81,136,237,187,158,10,33,37,219,162,15,12,80,87,169,237,175,51,248,17,236,121,224,167,224,93,127,230,208,93,239,200,37,231,140,210,29,173,225,174,15,63,85,221,156,177,111,195,201,234,9,1,22,42,128,100,5,96,240,71,90,30,127,230,200,12,234,0,131,32,198,28,124,119,231,114,123,222,132,157,226,110,108,160,116,6,120,239,107,120,195,66,76,173,172,231,169,133,81,220,173,58,41,116,223,141,28,223,252,167,250,221,251,113,145,7,189,54,32,17,61,159,164,71,147,111,185,168,28,159,136,21,186,197,132,63,194,137,134,5,52,244,136,147,17,148,225,120,186,222,103,183,235,124,219,72,93,184,249,14,38,0,31,99,89,101,32,203,121,49,227,42,71,214,144,138,207,45,33,22,43,100,107,182,107,2,67,72,205,30,26,75,177,195,155,106,124,123,149,169,95,191,169,58,36,202,241,250,124,205,198,47,93,244,48,72,170,2,80,15,88,36,177,124,145,173,150,26,105,84,126,129,16,73,210,179,18,216,78,45,238,55,134,8,167,246,20,57,200,231,135,128,145,58,149,176,81,51,143,52,68,62,47,138,46,57,255,1,59,128,10,43,130,123,209,114,192,96,59,251,86,133,178,89,66,249,28,250,247,237,33,77,16,31,55,189,76,191,226,209,230,162,2,1,65,200,28,173,84,174,239,208,248,219,235,13,129,19,104,203,37,240,6,251,233,53,194,114,60,69,111,14,47,119,147,31,249,250,149,184,99,53,242,227,18,138,4,160,232,9,123,119,167,192,206,78,124,169,211,141,150,59,111,234,213,103,189,151,244,232,31,88,201,3,16,117,203,94,73,64,44,140,14,217,61,79,122,68,37,0,61,97,52,129,28,32,64,6,7}, {126,72,138,164,211,92,2,142,175,73,112,55,46,76,230,144,85,210,239,100,102,185,132,86,245,56,203,22,197,245,73,1,225,184,129,197,66,162,221,26,228,140,51,235,34,56,70,54,132,162,184,17,245,111,42,243,70,72,191,92,3,171,105,226,121,249,25,247,69,248,216,176,250,67,8,124,21,105,224,207,174,4,75,33,175,133,4,38,107,169,126,140,167,10,224,184,144,192,114,249,187,53,150,197,128,102,56,16,56,28,32,145,93,179,238,150,110,8,114,182,151,130,128,63,26,29,32,253,141,205,167,116,162,109,103,220,162,34,64,192,151,139,105,237,70,141,56,83,45,76,95,189,110,163,202,125,152,243,111,85,5,44,109,254,136,56,186,99,40,189,245,255,109,109,20,87,125,210,109,119,137,165,249,85,127,0,128,230,13,220,231,134,192,89,10,50,172,242,225,163,85,166,206,4,253,133,116,223,193,82,106,187,96,138,213,14,23,234,98,232,240,126,161,126,108,41,103,17,133,0,65,76,123,1,97,252,8,165,0,203,156,153,254,131,135,89,19,27,17,78,242,73,242,179,56,224,172,95,87,122,131,204,204,218,23,157,126,165,221,150,21,255,99,136,106,248,2,231,73,76,135,112,69,4,18,65,183,50,77,242,15,215,89,187,5,55,246,234,18,133,127,122,177,92,18,133,80,10,207,16,160,42,51,164,20,5,68,88,25,69,56,149,199,35,146,30,134,96,87,66,36,149,142,8,41,62,1,116,74,122,48,133,184,44,179,48,130,166,98,61,163,79,37,107,62,50,157,12,104,246,151,194,155,22,2,141,70,106,52,113,131,109,82,123,107,189,204,24,136,209,17,172,248,122,105,68,185,94,49,134,226,71,194,230,64,115,51,107,232,57,57,143,20,192,199,42,148,238,41,1,48,140,232,44,251,145,122,31,120,205,126,49,96,160,199,119,154,28,117,2,159,238,204,253,0,186,191,71,10,99,197,41,46,251,168,25,169,11,242,14,47,194,134,87,5,232,68,142,15,36,53,184,113,38,163,165,42,142,222,39,243,182,75,40,65,26,137,235,138,223,74,171,142,168,220,14,64,153,26,91,200,48,116,20,151,180,112,54,184,110,164,136,131,66,18,195,177,44,164,129,218,207,26,1,177,130,113,22,67,130,142,227,195,204,17,37,253,126,181,165,188,98,179,189,46,244,157,16,80,135,83,65,138,105,137,53,186,143,39,63,8,212,123,161,79,12,152,82,196,170,33,252,171,175,8,139,251,21,209,56,169,157,194,200,125,210,202,160,79,168,18,98,229,188,185,171,254,104,195,195,83,154,199,135,28,247,29,111,162,152,193,182,177,19,20,26,130,181,167,75,122,8,185,74,44,10,55,232,81,243,68,239,80,3,177,97,16,138,64,235,168,11,92,163,56,124,196,240,36,25,74,83,198,47,41,42,216,177,19,236,34,134,161,48,142,56,46,252,206,10,173,229,229,240,21,233,212,80,203,215,103,176,186,18,41,169,17,144,152,187,145,191,243,158,41,77,10,138,77,166,195,90,236,254,39,104,87,168,209,141,89,167,138,171,207,214,176,30,138,3,210,43,90,157,234,39,181,59,201,147,35,190,207,25,15,50,181,242,119,217,131,211,183,107,100,168,88,250,33,37,34,41,245,167,16,135,239,234,68,21,196,1,189,107,133,227,235,39,15,164,201,159,18,246,180,206,25,71,219,125,40,107,94,147,91,225,49,218,195,106,98,116,28,161,12,42,138,212,234,167,218,99,140,195,105,118,218,45,50,151,247,194,81,188,74,48,169,112,70,227,55,0,60,72,19,156,197,226,249,189,93,237,17,226,187,50,45,239,80,238,230,226,62,42,226,232,2,173,106,114,117,39,144,9,96,219,105,28,218,132,207,30,53,250,192,71,252,59,40,135,107,109,252,223,74,99,224,207,214,145,198,159,220,97,241,166,105,255,135,15,249,119,132,172,79,103,19,134,23,119,78,204,29,80,164,152,160,69,131,29,215,69,89,47,7,151,196,160,80,22,151,106,253,221,214,8,173,186,233,161,68,63,116,6,19,159,145,136,60,40,232,117,134,15,45,86,234,155,199,6,168,57,251,135,28,143,79,67,239,105,45,223,176,105,138,41,50,41,18,197,110,174,17,228,76,94,105,0,205,215,26,244,147,180,181,94,158,245,148,179,136,207,30,171,84,74,1,239,244,248,142,146,111,91,62,30,162,23,34,197,229,166,255,216,9,83,43,66,88,94,165,120,52,200,147,25,195,101,242,39,22,172,123,51,212,245,180,163,169,19,85,169,142,118,81,243,178,17,59,112,48,93,185,71,95,156,64,99,87,224,9,80,0,62,183,245,227,210,91,1,159,155,251,161,224,75,242,3,2,249,81,14,102,210,109,38,201,214,154,1,188,221,128,61,236,145,142,132,40,3,211,215,82,72,175,69,244,200,217,98,16,7,176,148,128,189,253,38,223,147,190,35,60,255,119,205,208,159,60,95,43,223,224,28,184,23,198,87,90,181,17,119,191,126,193,251,8,98,165,82,29,181,111,141,75,43,203,190,100,161,14,17,231,10,89,239,111,159,250,216,120,235,11,140,120,9,102,83,206,68,64,85,64,73,24,33,217,228,35,84,5,132,97,15,46,9,88,217,123,174,218,183,25,16,151,101,171,148,72,250,168,227,69,28,202,206,160,3,166,9,148,211,65,204,98,208,148,122,244,186,110,252,137,46,125,143,96,230,72,16,97,48,52,249,70,78,244,220,148,17,98,173,204,151,134,39,109,179,0,13,87,145,47,75,150,110,91,94,74,162,82,8,31,135,100,132,30,135,242,116,178,237,214,66,86,155,192}, {20,112,56,128,135,81,173,192,116,122,133,193,16,193,69,46,196,148,46,169,222,164,114,0,204,104,161,192,152,80,85,78,216,73,75,189,152,223,9,106,157,171,57,207,116,60,175,240,212,233,113,13,22,84,142,11,198,120,83,179,149,50,59,144,14,110,106,3,26,49,250,225,195,227,156,97,237,152,10,81,138,185,114,128,162,40,101,91,9,185,83,118,68,159,169,156,82,208,151,215,222,146,234,169,250,233,125,36,44,73,71,187,20,52,202,82,160,174,96,9,19,166,19,126,186,135,179,121,222,122,73,131,180,50,193,49,195,229,191,8,206,121,219,174,44,221,1,46,64,93,118,187,82,50,171,115,42,95,82,92,7,54,174,228,245,244,192,160,65,51,163,212,23,235,39,4,94,42,172,152,205,49,143,74,10,32,20,5,86,112,70,254,19,139,193,157,235,93,208,39,31,105,196,139,120,176,187,100,38,4,64,241,255,61,70,245,178,16,128,129,90,26,82,3,153,233,53,26,37,52,201,29,201,73,42,217,168,230,130,95,56,69,41,254,247,215,176,29,48,220,83,135,160,39,227,191,181,123,68,77,47,234,239,79,253,231,202,222,65,8,81,87,200,167,123,228,129,63,31,234,224,205,64,235,139,71,224,240,71,119,115,36,202,4,1,177,25,168,43,9,243,44,58,253,246,211,183,197,54,251,74,234,0,13,129,130,243,23,231,13,112,134,216,116,105,4,148,36,187,222,193,95,91,159,26,35,137,2,1,98,84,206,9,68,138,215,52,37,225,211,11,116,154,237,155,172,82,192,47,254,114,23,151,27,216,133,104,117,80,136,231,5,123,156,21,78,98,107,17,180,21,206,29,147,8,207,187,196,167,208,204,115,144,72,102,246,135,227,242,42,52,191,13,216,233,55,120,20,124,185,64,219,6,231,94,248,110,177,17,177,125,230,85,180,37,105,208,151,32,185,147,83,212,64,70,67,197,148,233,70,204,54,133,148,158,149,237,70,157,215,173,178,239,123,14,106,241,166,230,197,89,168,86,210,208,41,127,206,157,33,151,235,28,220,235,56,242,106,207,8,237,248,252,35,136,38,151,64,180,218,148,85,137,139,30,166,114,211,43,130,171,136,14,153,140,214,192,186,155,99,177,64,228,255,116,184,150,6,87,241,89,206,235,174,28,212,110,226,26,137,78,232,77,230,182,173,191,107,104,100,197,7,9,250,227,237,160,206,230,184,11,78,165,156,246,136,47,177,14,139,220,184,222,242,118,38,95,42,145,97,197,165,214,230,245,183,88,61,215,164,140,1,236,132,163,102,18,69,100,144,143,127,83,253,170,38,69,98,210,107,124,254,101,134,10,172,141,252,232,174,11,148,121,177,105,201,230,50,165,20,204,89,223,139,171,81,128,132,109,35,217,232,232,61,213,127,224,184,184,155,158,181,16,156,192,83,194,250,61,8,235,100,145,218,72,99,24,154,42,100,26,175,148,95,51,113,138,21,44,154,89,107,227,246,88,169,240,81,237,163,232,17,22,247,67,131,25,192,128,168,30,56,92,69,31,236,22,148,81,83,158,33,156,36,84,89,56,153,30,86,46,58,134,31,114,49,103,55,155,89,210,53,93,35,38,33,99,253,45,4,83,191,152,165,90,224,213,63,131,176,24,224,195,96,243,122,143,127,116,107,34,54,88,33,32,248,17,77,53,217,170,118,28,186,115,83,211,252,148,82,39,143,76,145,175,214,238,117,114,89,198,102,129,148,161,209,68,137,160,171,249,71,30,87,200,0,220,154,73,131,221,60,128,254,196,29,202,107,213,141,59,56,207,199,113,37,39,144,66,254,69,5,221,240,185,216,138,67,130,153,228,66,193,137,40,1,39,207,177,52,234,80,229,12,126,226,82,151,143,222,159,122,77,177,170,83,215,248,20,63,205,83,181,85,198,218,59,209,93,21,11,93,56,227,155,47,54,230,212,166,107,211,122,86,141,153,241,175,144,227,36,227,79,104,214,101,211,216,14,133,143,122,136,228,40,171,17,117,182,178,48,190,137,136,230,120,117,123,44,230,200,192,51,11,231,18,236,248,181,185,214,220,199,127,192,7,17,210,99,236,37,169,68,104,114,232,245,113,180,81,117,241,232,6,215,64,119,19,201,75,167,101,202,244,140,196,210,153,187,13,238,194,137,156,208,6,211,196,54,239,233,227,5,102,24,76,91,95,137,149,252,72,10,141,116,173,69,2,134,0,28,224,186,1,163,162,111,10,88,194,222,130,4,175,62,136,100,56,111,243,212,47,146,31,174,235,8,60,254,58,232,158,172,240,65,230,139,13,152,19,248,69,91,172,10,217,28,52,196,87,12,252,163,146,251,83,138,77,238,102,48,85,77,76,70,126,142,164,76,244,107,43,76,230,220,122,85,25,49,189,186,164,141,18,64,129,156,10,26,205,224,85,107,74,84,91,239,106,44,232,216,106,122,158,204,61,197,38,209,33,78,24,131,62,168,24,232,158,168,7,159,45,207,7,201,227,76,136,3,78,191,155,94,211,2,5,85,170,107,246,183,114,188,67,2,9,26,198,174,212,117,208,159,99,167,51,21,52,80,212,43,113,80,42,117,225,98,105,212,129,169,77,249,166,74,115,169,188,245,234,248,99,250,206,188,29,127,95,117,221,232,77,43,113,221,240,183,115,92,99,119,91,183,114,234,104,96,104,239,96,150,150,135,198,157,69,254,129,203,80,247,23,90,145,239,107,116,204,19,253,252,30,204,123,33,40,21,3,123,233,237,247,30,203,23,248,206,198,105,53,14,82,139,34,17,221,141,39,43,5,234,108,214,234,45,62,137,221,240,11,221,244,158,49,157,153,101}, {166,83,103,184,222,216,187,183,12,53,21,28,113,111,28,239,181,126,35,51,245,171,218,254,95,221,164,152,35,212,28,178,179,191,1,6,193,224,105,121,140,140,129,32,194,67,189,49,132,96,5,4,116,121,19,201,76,121,201,46,105,223,243,251,196,129,227,43,11,110,153,166,89,200,242,1,60,205,28,23,184,3,83,246,246,147,147,96,11,11,28,13,13,98,56,199,235,89,55,197,135,204,137,250,254,220,98,98,228,127,246,174,161,29,185,18,154,179,178,233,95,48,59,5,252,33,33,117,238,82,97,196,139,52,174,16,109,243,109,208,105,221,227,216,127,188,179,144,33,188,242,6,249,139,7,112,43,32,113,194,187,172,51,45,44,144,215,223,76,132,244,70,203,24,244,133,178,174,191,146,230,249,123,216,234,233,185,163,89,53,219,74,247,196,33,27,224,149,37,50,5,1,186,240,187,123,83,255,33,228,25,120,225,11,86,12,233,134,204,9,38,127,104,204,120,68,18,120,78,21,39,175,82,77,24,237,17,58,137,118,87,187,253,139,33,55,240,188,59,187,57,255,167,127,226,82,225,33,111,191,21,61,17,26,52,189,69,220,215,148,62,251,104,84,12,176,131,119,107,191,226,225,147,164,246,189,244,164,246,206,84,44,112,118,220,223,20,48,121,3,159,124,37,180,235,60,60,19,47,5,254,156,152,105,136,50,105,21,120,54,96,56,75,79,213,79,53,155,170,143,32,180,100,4,252,151,241,149,107,126,180,205,68,9,208,235,113,16,175,7,121,128,215,141,180,1,126,152,230,138,129,7,113,58,48,125,56,136,201,202,106,32,224,148,26,156,214,93,69,85,186,217,115,4,244,112,160,152,77,202,211,45,63,93,87,213,167,237,252,17,101,255,99,173,191,145,5,131,43,53,86,159,203,59,196,82,172,219,86,147,39,31,92,11,80,32,243,39,6,206,180,232,93,243,238,114,56,9,16,18,224,99,139,240,114,83,36,130,72,50,155,139,46,28,223,13,240,5,216,139,83,177,103,133,110,23,251,169,188,43,92,68,39,25,20,15,120,136,188,230,25,47,187,128,54,32,232,8,124,151,248,125,221,168,118,221,193,174,25,170,134,131,111,56,198,237,47,5,81,186,237,219,21,135,168,236,73,4,30,118,110,118,187,31,173,68,171,107,117,129,119,202,206,210,8,115,244,71,222,115,234,249,90,137,161,166,98,240,199,119,250,12,30,55,130,140,243,248,169,200,175,227,248,220,1,88,204,141,94,182,126,89,233,32,205,64,232,87,155,197,189,36,42,69,36,36,102,128,208,106,167,92,153,168,210,57,85,64,152,215,164,117,14,44,162,241,246,227,180,40,24,117,219,183,86,93,67,60,245,177,254,42,198,39,180,78,36,148,233,16,150,229,159,99,18,163,121,109,226,108,69,164,178,6,55,2,36,8,23,19,244,127,30,156,120,187,96,101,71,179,119,244,245,194,253,193,65,119,80,131,222,54,144,255,193,171,17,9,245,155,79,86,58,165,125,135,2,166,141,115,11,66,207,175,151,251,226,124,73,118,165,216,147,64,70,131,206,170,74,245,232,104,105,154,4,251,68,174,185,126,139,46,32,222,30,239,107,8,12,188,31,116,53,203,237,64,244,56,217,123,100,137,85,139,96,86,51,121,234,89,175,77,63,247,6,51,143,237,65,151,181,228,81,5,208,244,150,252,5,169,210,231,111,150,206,167,183,193,108,109,193,209,46,159,217,221,154,44,214,133,86,220,249,254,60,45,66,64,130,36,111,75,11,244,7,31,94,144,244,152,168,185,110,102,68,74,37,111,242,172,92,115,211,237,153,79,229,52,177,186,164,137,143,140,20,106,145,161,191,174,217,124,103,166,59,65,72,232,80,42,229,44,35,73,128,197,84,168,22,142,215,252,245,124,114,244,95,172,179,147,87,36,176,35,254,178,174,94,43,224,59,179,11,203,160,30,38,39,58,131,47,146,49,42,250,112,149,191,110,243,245,66,246,122,89,103,126,191,185,50,135,119,55,83,164,28,181,151,198,131,41,51,168,191,98,154,179,154,217,123,222,146,237,230,85,156,193,212,16,163,178,146,189,67,17,193,226,124,115,194,211,4,255,156,164,182,185,109,131,111,37,27,9,145,222,222,243,163,94,180,206,87,246,184,144,196,82,192,45,129,71,103,233,105,43,60,80,122,173,182,20,234,240,193,197,8,202,189,172,234,119,141,84,115,205,42,194,35,117,250,211,179,248,152,163,112,215,212,243,59,82,112,41,7,95,149,40,202,169,84,124,186,72,10,242,108,170,116,18,31,158,50,241,239,103,43,16,35,172,61,120,233,119,155,98,37,29,23,55,17,191,144,198,225,164,144,69,121,138,142,6,124,46,140,153,90,182,237,11,38,186,20,55,108,72,122,61,163,236,144,138,24,171,121,26,177,185,56,142,245,112,234,171,156,203,48,241,188,98,148,3,235,57,240,209,182,82,136,247,36,198,169,226,27,14,83,142,14,12,124,16,164,119,105,163,160,100,227,179,188,215,56,239,134,229,45,131,42,38,96,78,130,248,71,77,213,203,0,117,4,199,71,141,126,221,165,161,3,206,7,17,131,165,80,31,51,208,210,166,244,182,30,217,108,55,117,61,247,178,220,12,118,127,73,42,52,136,160,213,139,39,24,15,192,38,63,234,118,28,207,116,119,79,94,133,24,203,223,146,169,29,241,50,98,254,152,173,113,69,143,101,27,60,6,121,191,155,149,145,38,230,207,59,58,67,111,217,135,67,181,3,148,120,31,131,83,200,242,128,79,25,187,124,33,181,144,47,36,198,198,126,25,45,33,212,168,244}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {1,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,255,0,1,255,0,0,0,255,1,1,1,255,255,0,0,0,1,255,0,0,0,0,1,0,1,0,0,0,0,255,0,255,0,255,0,1,0,0,0,0,0,0,0,255,1,0,0,1,1,0,1,1,1,1,0,0,0,255,255,0,255,255,1,0,0,1,255,0,0,0,1,1,0,255,1,1,1,0,1,1,1,0,1,0,0,1,255,0,0,0,0,0,255,255,0,1,255,0,1,255,0,0,255,0,0,0,255,0,1,0,0,0,0,0,0,0,0,255,1,255,255,0,0,255,0,0,1,0,1,0,0,255,0,0,0,255,1,0,1,255,0,0,0,0,0,0,1,0,255,0,1,0,0,0,255,0,255,0,0,255,0,255,0,0,0,1,0,0,0,1,255,0,0,0,1,1,0,1,0,1,0,0,255,0,0,1,255,1,0,0,0,0,255,1,255,0,0,0,0,0,0,255,1,0,1,0,0,255,1,255,255,0,0,1,0,1,0,255,0,0,255,0,1,255,0,0,0,0,0,0,0,0,0,1,0,1,0,255,0,0,1,0,0,1,1,0,0,0,1,255,1,0,1,0,1,0,0,0,0,0,0,0,1,255,0,0,1,255,0,255,1,0,255,255,0,0,255,1,0,0,1,255,0,255,0,255,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,0,0,0,0,1,0,0,0,0,255,0,255,255,1,0,0,0,1,0,0,1,0,0,0,0,255,0,1,0,0,0,0,0,0,1,0,0,0,255,0,255,1,255,0,255,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,0,255,0,1,0,255,1,0,1,0,0,1,0,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,1,0,255,255,0,0,1,0,255,0,255,255,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,255,0,0,1,0,0,0,0,0,0,1,1,255,0,1,255,0,255,1,0,255,0,0,0,0,0,0,0,1,0,0,0,1,0,0,255,0,0,0,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,1,0,255,0,0,0,0,255,0,1,255,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,255,0,1,255,1,0,0,0,0,0,0,255,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,255,255,1,0,0,0,0,255,0,0,0,1,0,0,0,0,0,0,0,0,255,255,0,0,1,255,0,0,0,0,255,1,0,255,0,255,0,255,255,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,255,0,0,1,0,255,0,255,0,1,255,255,0,1,0,0,255,0,0,1,0,1,0,0,255,0,0,1,1,0,0,1,255,0,0,0,1,0,255,0,0,0,255,1,1,0,255,0,1,0,0,255,0,1,0,1,255,1,0,0,0,0,0,1,0,0,0,1,0,255,0,0,0,255,1,0,1,1,0,0,255,0,0,0,255,1,0,255,1,0,255,0,255,0,1,0,255,0,0,255,0,255,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,255,0,255,1,0,1,1,1,255,0,0,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,0,0,255,1,0,0,0,1,0,0,0,255,255,1,0,1,0,0,1,255,255,0,0,0,0,0,0,0,1,0,0,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,255,0,255,255,0,0,0,0,255,0,1,0,255,0,1,1,0,0,0,0,0,0,0,255,1,0,0,255,0,0,1,0,255,255,1,1,255,1,0,0,0,0,0,255,255,0,0,0,1,1,1,0,1,0,1,255,255,0,0,1,0,1,0,0,1,1,0,255,1,255,0,0,1,1,0,0,0,0,255,0,1,255,0,0,0,0,1,0,0,255,0,0,0,0,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,255,255,0,0,255,255,1,1,0,0,1,255,1,0,0,0,1,0,255,0,0,1,255,0,1,0,1,0,1,0,0,1,0,255,255,1,0,1,0,0,0,0,0,255,1,0,255,0,255,1,255,0,1,1,0,0,0,255,0,0,0,255,1,0,255,0,255,0,0,0,0,1,0,1,255,255,255,255,0,1,255,1,1,255,0,0,0,255,1,0,1,1,0,255,255,0,0,0,1,0,0,0,0,255,0,1,255,0,255,255,0,1,255,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,0,255,1,1,0,0,1,0,0,0,0,255,255,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,1,255,255,1,255,0,0,0,255,1,1,0,0,0,255,0,0,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,1,0,255,255,0,1,0,0,0,0,0,1,0,0,255,0,1,0,1,1,1,0,0,0,1,255,0,1,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,1,0,255,255,0,1,255,0,0,0,255,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,255,0,255,0,0,0,0,0,0,255,1,255,0,255,0,0,1,255,0,0,0,0,0,0,0,1,0,1,1,255,0,1,0,0,0,255,0,255}, {255,1,1,0,0,255,0,255,1,1,0,0,0,255,0,0,0,0,255,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,1,0,1,1,255,0,255,0,0,0,0,1,0,1,0,1,1,255,255,1,0,0,0,0,0,0,0,1,0,1,0,1,0,255,0,0,0,0,0,1,255,0,0,0,0,0,1,1,0,255,0,255,0,0,0,0,255,0,0,255,255,0,0,1,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,1,0,1,0,0,255,0,255,0,0,0,0,1,0,255,0,1,0,0,0,0,0,0,255,0,0,0,1,0,0,255,0,0,0,255,255,0,0,0,0,1,0,0,255,1,0,0,0,255,0,255,0,0,0,1,0,1,0,0,0,0,1,0,255,255,0,255,1,0,0,0,0,0,0,0,1,0,0,255,1,255,0,0,255,0,0,0,1,1,255,0,0,1,0,0,0,255,255,0,0,255,0,0,1,255,0,1,0,1,255,0,0,0,0,255,0,0,1,0,0,0,0,0,1,0,0,0,255,0,255,0,0,255,255,0,255,255,1,1,1,1,0,255,0,0,0,255,255,0,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,255,255,1,1,1,0,255,0,1,0,0,0,0,255,0,0,255,0,0,1,1,255,255,0,0,0,0,255,0,255,255,0,255,0,0,255,255,0,255,255,1,1,255,1,0,1,0,255,255,0,0,0,1,255,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,255,255,0,0,1,255,255,0,1,1,1,0,0,1,1,0,1,255,0,0,1,0,0,255,0,0,255,0,1,0,255,1,0,0,255,1,0,0,0,1,0,0,0,1,0,255,0,0,0,0,0,255,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,255,1,0,0,0,255,255,255,255,1,0,0,0,255,0,1,255,255,1,0,0,0,1,0,1,0,0,0,0,255,0,1,0,0,255,1,0,0,0,255,1,0,0,0,0,0,0,0,255,0,0,0,0,0,1,0,255,0,0,0,0,0,0,1,0,255,0,1,255,0,0,0,255,255,0,255,255,0,0,1,0,0,0,0,1,1,1,255,0,0,0,1,1,0,0,0,255,0,255,0,0,255,0,0,0,255,1,255,0,1,1,0,0,0,0,1,1,0,255,0,0,0,1,0,0,255,1,0,0,0,1,1,1,0,1,0,0,255,0,1,0,0,0,0,1,0,255,1,0,1,0,255,0,0,1,255,0,0,0,255,0,255,0,255,255,0,255,255,0,0,1,0,0,255,1,1,0,0,255,0,0,255,1,0,0,1,255,0,0,0,0,0,0,1,0,0,1,0,255,0,0,255,1,0,0,255,255,1,0,255,1,255,0,255,0,0,0,255,255,255,0,1,0,255,1,0,0,0,0,1,0,0,0,0,1,0,0,255,1,255,255,0,0,0,255,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,255,1,255,0,0,255,0,255,1,0,255,1,0,0,0,255,0,1,0,0,255,0,1,0,0,255,0,0,0,0,1,255,1,255,0,0,0,1,1,0,0,0,255,255,255,255,0,0,255,0,0,0,255,1,0,0,1,255,0,0,1,255,0,0,0,0,255,0,255,0,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,0,255,0,1,255,1,0,255,0,1,1,1,0,0,0,0,0,0,0,0,0,0,255,1,0,0,0,0,0,1,255,0,0,1,0,0,255,0,0,1,0,0,0,0,255,255,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,255,1,0,1,1,0,0,255,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,255,255,0,0,0,1,1,0,1,0,0,255,0,0,255,1,255,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,255,255,0,0,1,0,0,0,255,0,0,255,255,1,0,0,255,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,0,255,1,0,0,255,1,255,0,1,0,0,1,0,0,0,0,0,0,0,0,255,0,0,0,0,1,0,0,0,1,0,0,0,0,255,255,0,0,0,0,255,0,255,255,0,0,0,255,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,1,255,0,0,0,255,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,0,0,0,1,1,1,255,1,0,1,0,0,0,0,0,255,255,0,1,0,1,1,255,1,255,0,0,0,255,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,255,1,255,0,0,255,1,0,0,0,0,0,0,0,0,255,255,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,255,255,1,1,0,0,1,1,0,0,0,255,0,0,1,0,0,1,1,255,0,0,0,1,0,0,0,1,0,0,255,0,0,0,1,1,1,0,255,1,0,0,0,0,0,0,0,0,255,0,0,255,1,1,0,0,0,0,0,255,0,255,0,255,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,255,1,255,0,0,255,0,0,255,0,1,0,1,0,0,1,0,255,0,0,255,0,1,255,0,0,0,255,0,1,255,1,1,0,1}, {1,1,0,0,0,1,255,0,0,1,1,255,0,1,1,0,0,0,1,0,0,0,255,1,0,0,0,0,1,0,255,1,255,0,255,255,1,0,0,1,0,1,0,0,0,0,0,255,0,0,0,0,0,0,255,0,255,0,255,255,0,1,0,1,0,0,255,1,1,0,1,255,0,1,255,255,0,1,255,1,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,0,1,0,255,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,255,0,0,0,255,0,255,255,1,1,0,255,0,0,255,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,1,0,1,255,0,1,0,255,0,0,0,255,1,0,0,0,1,0,0,0,255,0,255,255,255,0,0,0,0,1,255,1,255,1,0,0,0,0,1,0,255,255,0,0,0,1,0,0,255,1,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,1,255,0,0,0,1,0,0,0,0,1,255,0,255,0,0,1,0,1,0,0,0,0,1,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,255,1,255,1,255,1,1,0,0,255,0,0,0,0,0,1,0,0,0,1,0,255,0,0,0,1,255,1,1,0,0,0,0,1,0,0,0,255,0,0,1,0,255,0,0,255,0,255,0,0,0,1,0,0,0,0,1,0,1,1,0,255,1,1,0,1,0,0,0,0,0,1,0,0,255,255,0,0,0,255,0,1,1,1,0,1,0,0,255,0,0,255,1,0,0,1,255,255,0,1,255,1,255,255,1,255,0,0,255,0,0,0,1,1,1,0,255,255,1,0,0,0,0,255,255,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,255,0,255,255,0,0,0,1,255,0,255,0,1,0,0,0,0,0,0,0,0,1,1,255,255,255,255,0,0,0,0,1,0,255,0,0,0,1,0,0,0,1,0,1,1,0,1,0,255,1,0,0,1,1,1,0,0,0,0,0,255,0,0,0,0,255,0,1,255,255,0,0,1,1,0,1,0,1,1,0,255,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,255,255,255,255,0,0,0,0,0,1,255,1,0,0,0,255,0,1,0,0,0,1,255,0,255,0,255,0,1,1,0,255,0,1,0,0,255,0,0,0,0,255,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,1,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,255,0,0,0,0,0,1,0,0,0,0,0,255,0,0,255,0,1,0,255,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,1,1,1,255,1,0,0,1,0,0,1,1,0,1,255,0,255,0,1,255,0,0,0,255,255,255,1,255,0,255,255,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,255,0,0,0,255,255,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,255,1,0,1,0,1,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,255,255,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,1,255,0,0,255,0,0,255,0,0,1,0,0,0,0,0,0,0,0,1,0,255,0,0,0,0,0,0,0,255,255,0,0,0,1,1,0,1,0,255,0,1,0,1,0,0,255,255,0,0,1,0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,1,0,1,1,0,0,1,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,1,1,255,0,255,0,255,255,0,0,0,0,1,255,1,255,255,255,0,0,1,1,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,0,255,255,0,255,1,0,1,0,0,255,0,0,0,0,0,0,0,255,0,0,0,1,1,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,255,255,0,255,1,0,1,1,255,0,1,0,0,255,0,1,0,0,1,1,0,0,0,1,0,255,255,1,0,0,255,0,0,0,255,1,0,255,255,255,0,255,0,255,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,255,0,255,0,255,255,255,1,0,0,1,255,1,0,0,0,0,255,0,0,0,255,255,255,0,255,1,1,1,0,0,0,1,1,0,255,0,1,1,255,0,0,255,1,0,0,0,0,0,255,1,255,0,255,0,255,0,0,0,0,0,0,0,0,255,0,255,0,255,1,255,0,255,0,255,0,0,1,0,0,0,255,0,255,0,0,0,0,0,0,0,255,1,1,1,1,0,255,1,255,255,1,0,0,255,0,0,0,0,0,1,0,255,1,0,1,0,1,1,1,1,0,1,1,1,0,255,0,255,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,255,0,0,255,0,0,1,0,0,255,0,0,1,0,1,0,0,255,1,255,0,255,255,255,0,255,0,1,1,0,0,255,0,0,0,0,0,1,255,1,1,1,0,0,1,0,1,255,0,0,0,0,255,255,0,1,255,0,1,1,1,0,255,0,1,0,1,1,1,255,255,0,0,1,1,0,0,0,1,0,1,0,255,0,255,0}, } ; static const unsigned char precomputed_core_weightsntrup1277_k[precomputed_core_weightsntrup1277_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_weightsntrup1277_c[precomputed_core_weightsntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_weightsntrup1277_impl(long long impl) { unsigned char *h = test_core_weightsntrup1277_h; unsigned char *n = test_core_weightsntrup1277_n; unsigned char *k = test_core_weightsntrup1277_k; unsigned char *c = test_core_weightsntrup1277_c; unsigned char *h2 = test_core_weightsntrup1277_h2; unsigned char *n2 = test_core_weightsntrup1277_n2; unsigned char *k2 = test_core_weightsntrup1277_k2; unsigned char *c2 = test_core_weightsntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_weightsntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup1277(impl); printf("core_weightsntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup1277_implementation(impl),ntruprime_dispatch_core_weightsntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup1277; printf("core_weightsntrup1277 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup1277_implementation(),ntruprime_core_weightsntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_weightsntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_weightsntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_weightsntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_weightsntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_weightsntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_weightsntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_weightsntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_weightsntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_weightsntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_weightsntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_weightsntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup1277")) return; storage_core_weightsntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_weightsntrup1277_h = aligned(storage_core_weightsntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_weightsntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_weightsntrup1277_n = aligned(storage_core_weightsntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_weightsntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_weightsntrup1277_k = aligned(storage_core_weightsntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_weightsntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_weightsntrup1277_c = aligned(storage_core_weightsntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_weightsntrup1277_h2 = callocplus(maxalloc); test_core_weightsntrup1277_h2 = aligned(storage_core_weightsntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_weightsntrup1277_n2 = callocplus(maxalloc); test_core_weightsntrup1277_n2 = aligned(storage_core_weightsntrup1277_n2,crypto_core_INPUTBYTES); storage_core_weightsntrup1277_k2 = callocplus(maxalloc); test_core_weightsntrup1277_k2 = aligned(storage_core_weightsntrup1277_k2,crypto_core_KEYBYTES); storage_core_weightsntrup1277_c2 = callocplus(maxalloc); test_core_weightsntrup1277_c2 = aligned(storage_core_weightsntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_weightsntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup1277();++impl) forked(test_core_weightsntrup1277_impl,impl); ++test_core_weightsntrup1277_h; ++test_core_weightsntrup1277_n; ++test_core_weightsntrup1277_k; ++test_core_weightsntrup1277_c; ++test_core_weightsntrup1277_h2; ++test_core_weightsntrup1277_n2; ++test_core_weightsntrup1277_k2; ++test_core_weightsntrup1277_c2; } free(storage_core_weightsntrup1277_c2); free(storage_core_weightsntrup1277_k2); free(storage_core_weightsntrup1277_n2); free(storage_core_weightsntrup1277_h2); free(storage_core_weightsntrup1277_c); free(storage_core_weightsntrup1277_k); free(storage_core_weightsntrup1277_n); free(storage_core_weightsntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_weightsntrup653.c0000644000000000000000000006716214705505543024062 0ustar rootroot/* ----- core/weightsntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_weightsntrup653_checksums[] = { "fbbd83b55763dff9eb34f7e04f545b2217b39a45cf6b291c2a241df017978030", "2509dd9d3711537b4946ebd79de22310103ffa1c7f48d049011a2384ac152f37", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_weightsntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_weightsntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_weightsntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_weightsntrup653_CONSTBYTES static void *storage_core_weightsntrup653_h; static unsigned char *test_core_weightsntrup653_h; static void *storage_core_weightsntrup653_n; static unsigned char *test_core_weightsntrup653_n; static void *storage_core_weightsntrup653_k; static unsigned char *test_core_weightsntrup653_k; static void *storage_core_weightsntrup653_c; static unsigned char *test_core_weightsntrup653_c; static void *storage_core_weightsntrup653_h2; static unsigned char *test_core_weightsntrup653_h2; static void *storage_core_weightsntrup653_n2; static unsigned char *test_core_weightsntrup653_n2; static void *storage_core_weightsntrup653_k2; static unsigned char *test_core_weightsntrup653_k2; static void *storage_core_weightsntrup653_c2; static unsigned char *test_core_weightsntrup653_c2; #define precomputed_core_weightsntrup653_NUM 9 static const unsigned char precomputed_core_weightsntrup653_h[precomputed_core_weightsntrup653_NUM][crypto_core_OUTPUTBYTES] = { {50,1}, {58,1}, {81,1}, {56,1}, {0,0}, {141,2}, {31,1}, {32,1}, {33,1}, } ; static const unsigned char precomputed_core_weightsntrup653_n[precomputed_core_weightsntrup653_NUM][crypto_core_INPUTBYTES] = { {2,25,191,134,80,22,215,57,96,83,181,36,184,221,54,9,147,89,121,52,110,71,232,247,96,143,82,49,88,43,206,92,135,206,197,216,25,177,27,182,76,188,205,53,247,201,192,153,247,52,25,141,195,98,228,148,109,66,130,123,14,23,158,131,144,107,64,150,45,255,230,170,172,16,240,38,246,70,26,244,142,4,157,114,213,54,145,34,165,69,48,202,77,61,13,84,155,79,58,22,159,164,24,40,15,48,199,185,89,200,77,40,108,238,182,243,4,67,79,242,174,215,130,79,198,103,211,121,54,42,126,239,102,22,167,156,95,29,158,15,109,93,109,53,47,192,133,47,145,244,242,234,250,68,118,33,216,165,26,27,5,82,74,63,144,6,29,14,254,142,248,79,174,239,234,46,125,4,53,132,16,216,142,7,239,182,168,104,185,36,192,129,105,2,228,223,157,1,35,186,225,221,220,60,254,131,242,31,240,91,32,152,54,128,96,102,182,27,6,60,10,149,137,38,188,48,176,241,248,41,180,202,132,22,29,12,200,189,221,233,76,161,18,54,100,104,130,47,114,149,126,184,227,252,188,105,147,192,145,130,34,235,135,83,21,95,98,200,33,141,129,166,247,167,151,93,150,83,81,123,33,137,136,98,244,9,177,175,42,210,55,229,65,80,24,160,1,236,220,146,54,48,116,215,38,4,189,217,64,28,71,251,141,238,246,128,240,215,77,178,153,63,206,86,108,82,42,90,246,168,108,247,68,61,47,23,21,86,121,136,122,141,200,103,41,97,90,88,49,243,204,192,80,6,101,162,218,229,244,111,178,57,43,191,3,202,103,88,224,111,134,1,167,184,152,208,96,2,217,232,251,128,218,211,87,64,70,72,97,118,244,203,143,75,219,122,150,58,243,215,16,58,172,103,135,104,39,213,149,207,121,6,185,40,16,24,162,75,91,148,122,16,116,174,73,160,60,206,64,244,66,58,198,214,26,253,120,34,117,153,190,244,8,7,227,114,119,135,136,80,203,163,153,66,23,83,186,106,238,22,129,183,191,10,253,60,17,45,206,26,55,119,107,148,176,125,242,113,200,75,136,159,253,250,183,115,59,162,26,80,212,19,17,189,185,205,44,160,247,114,166,239,29,124,72,54,169,36,172,0,150,32,147,46,12,14,38,30,116,206,142,83,220,57,67,82,192,184,115,43,170,227,180,194,36,189,236,96,72,1,207,15,240,158,5,185,2,173,91,247,105,182,107,6,151,183,87,105,211,20,25,82,99,180,147,56,103,183,252,125,199,37,216,150,225,239,223,38,11,80,2,104,90,114,174,32,246,170,56,211,149,97,162,49,241,227,15,102,248,180,64,113,212,93,225,71,98,55,155,143,106,197,31,109,176,183,109,174,83,48,51,84,29,52,222,175,225,116,133,62,17,42,113,109,146,201,119,3,114,181,192,59,57,101,28,207,169,136,218,123,127,217,30}, {208,201,3,34,64,214,74,123,47,70,184,151,119,136,29,188,169,2,66,29,218,201,122,100,208,1,80,34,226,15,163,244,83,104,43,225,24,185,161,91,213,96,181,155,27,212,135,227,59,222,67,197,209,181,152,51,71,215,116,246,79,110,213,223,174,116,78,127,84,207,198,112,213,39,104,67,201,15,151,173,159,177,90,48,97,129,227,201,167,129,122,40,79,238,185,229,61,64,74,94,67,180,6,23,50,191,121,109,219,130,71,160,165,94,214,17,149,115,232,213,32,14,150,85,35,53,175,109,203,5,240,76,184,108,182,142,62,228,178,21,164,13,5,223,210,18,201,202,225,53,114,249,152,244,74,93,109,244,71,227,244,195,190,253,237,82,191,226,24,164,225,150,162,64,40,4,107,66,246,239,244,79,198,222,140,174,75,213,177,255,48,28,136,222,154,98,166,162,128,130,209,220,244,172,201,124,123,64,188,162,48,42,120,142,83,78,150,140,27,60,186,40,32,52,231,207,36,241,160,140,241,116,166,174,67,60,5,86,223,72,4,230,129,236,63,27,28,163,10,66,251,81,144,203,100,207,33,45,224,15,217,223,207,107,146,126,158,114,199,213,227,222,86,122,16,248,80,166,22,80,19,143,133,41,146,81,154,106,205,123,17,196,113,202,85,235,248,159,112,237,114,133,41,121,206,207,0,12,54,170,149,156,13,20,128,133,242,33,226,50,104,205,17,125,25,210,44,35,93,156,202,252,65,45,180,246,8,105,97,59,0,223,201,128,127,40,198,108,167,210,140,25,155,64,156,35,125,172,124,237,35,196,162,135,114,97,31,55,170,170,124,47,75,82,132,182,1,194,107,117,158,115,224,58,254,167,178,241,229,252,191,188,235,50,122,149,39,18,0,35,110,42,174,50,62,38,38,175,237,204,114,30,198,139,94,82,249,32,231,175,223,204,193,239,26,29,208,37,195,216,203,38,96,0,189,189,193,213,135,66,133,82,108,66,233,163,51,116,253,248,14,73,187,203,94,242,222,109,25,226,138,111,172,100,101,129,252,197,5,138,145,93,218,83,41,93,121,32,19,107,244,93,136,160,151,176,246,111,207,232,52,189,36,250,32,33,43,138,24,50,195,100,60,223,130,95,80,95,242,97,118,15,202,108,31,67,127,198,90,178,79,176,178,199,31,86,35,204,40,216,246,35,121,25,5,142,46,197,161,69,51,134,94,73,149,243,60,83,8,42,64,142,116,71,105,115,249,226,240,101,178,55,133,237,140,112,51,103,253,238,100,39,16,82,102,37,223,93,252,229,76,83,103,134,2,101,211,50,214,239,66,200,147,41,198,13,217,184,251,163,104,112,13,213,94,162,123,217,168,55,46,24,129,196,144,159,21,228,228,4,96,253,169,162,14,186,156,206,59,238,5,119,50,213,156,230,5,212,22,113,69,207,46,31,255,225,127,252,161,140,226,189,110}, {48,14,224,167,129,150,182,199,169,233,105,95,129,107,12,85,26,22,36,65,91,87,17,51,167,202,182,185,65,241,69,113,74,129,20,194,55,151,7,210,121,207,22,229,4,110,254,201,77,209,17,247,51,61,251,254,188,195,63,49,172,57,17,44,145,117,156,238,99,107,211,179,67,11,209,135,157,120,243,2,143,117,201,47,212,120,255,226,125,65,170,96,239,84,122,91,237,212,215,138,251,153,189,168,186,112,170,124,63,94,45,88,165,96,53,61,151,62,134,101,247,79,24,252,242,136,18,178,172,231,53,89,45,185,44,62,163,85,229,183,24,128,216,45,124,121,106,194,66,218,23,36,26,232,87,23,189,27,62,119,56,195,79,138,236,219,36,236,101,99,253,216,122,228,151,222,157,194,222,32,152,10,81,214,172,109,167,134,224,98,7,62,249,35,233,33,167,227,223,214,11,20,182,81,119,18,40,83,33,71,80,126,164,120,112,28,41,37,48,96,11,1,163,128,250,85,186,2,40,49,207,214,97,151,21,130,46,198,57,17,92,192,203,246,234,217,44,231,129,103,145,229,51,230,194,81,83,139,166,48,11,22,239,240,18,0,165,54,187,147,125,120,226,241,45,26,38,93,65,83,237,105,235,190,100,40,1,157,128,27,96,224,255,31,129,93,128,170,168,101,146,191,203,171,241,120,178,162,52,151,75,41,108,29,203,10,250,177,134,216,86,185,101,25,191,93,87,67,101,229,186,131,3,108,206,41,129,37,135,150,66,234,203,1,76,86,49,206,115,245,52,203,190,105,238,204,229,38,191,93,134,152,211,90,120,155,32,63,112,166,239,2,193,29,79,26,18,123,9,68,116,173,161,155,81,62,76,85,50,40,233,219,36,175,129,232,140,17,73,69,120,46,222,216,8,145,123,142,39,208,73,222,206,44,135,177,177,23,124,218,60,32,176,208,162,37,144,12,46,56,183,39,39,246,101,109,182,42,89,196,195,127,188,211,224,102,211,59,78,203,112,26,20,173,193,23,72,163,3,210,219,228,227,239,228,254,227,74,190,29,64,112,138,146,235,32,184,195,93,36,15,44,115,91,131,250,190,104,171,36,69,71,138,251,211,175,0,92,188,94,249,6,1,44,114,6,37,117,110,241,152,245,36,118,204,168,52,52,198,211,36,140,52,21,230,77,16,114,99,45,98,211,241,83,10,145,57,58,25,118,48,27,213,63,5,234,198,19,67,104,35,85,193,169,249,182,236,41,150,183,43,139,115,108,3,164,126,173,4,39,130,79,178,165,240,102,166,107,139,176,168,91,227,145,144,104,181,213,106,28,77,2,54,56,217,69,32,13,163,77,97,58,227,45,67,96,78,112,80,23,86,140,66,188,59,146,135,157,244,122,118,149,35,125,0,179,98,90,254,157,11,98,75,148,170,80,130,121,10,73,124,92,12,8,209,3,66,253,3,61,202,250,66}, {215,30,199,1,146,179,169,243,31,218,96,53,148,186,63,187,108,80,61,98,222,242,142,98,129,68,77,77,94,67,61,2,97,131,173,94,86,200,163,33,125,98,19,110,143,44,112,140,216,217,90,20,185,47,108,73,207,230,68,158,16,12,199,135,118,247,199,191,11,97,14,231,222,5,151,6,57,50,52,5,254,145,171,207,42,29,180,83,93,86,125,197,21,229,183,212,8,19,156,81,217,217,66,23,109,101,40,245,139,193,140,87,248,228,50,230,98,154,220,133,87,36,21,23,132,46,92,106,46,198,242,129,62,140,143,34,150,153,196,75,188,51,213,113,95,63,126,44,100,170,18,98,14,243,208,106,220,100,118,244,101,221,79,196,198,143,63,251,66,44,68,72,137,188,129,76,97,47,146,154,227,185,15,197,245,74,201,87,249,187,244,92,219,38,109,137,227,251,16,233,183,7,109,49,112,172,212,15,2,153,90,57,192,75,138,118,10,214,50,22,148,121,90,70,50,223,226,94,242,169,61,224,135,220,94,77,197,10,236,109,233,94,123,31,54,109,44,12,236,125,59,150,138,2,85,28,42,26,237,104,86,232,19,175,80,92,167,38,112,154,116,159,72,142,176,177,186,74,151,192,190,164,147,250,40,41,37,114,130,241,16,218,217,110,27,157,226,242,4,188,190,18,23,242,63,135,87,29,224,112,216,137,146,91,245,69,250,254,123,49,178,215,237,199,31,51,58,205,112,140,209,25,0,206,6,26,131,200,207,221,81,124,125,167,118,92,187,138,141,231,9,3,224,232,117,80,240,64,77,130,12,94,250,105,116,184,22,204,121,18,85,63,112,70,15,141,84,219,218,96,160,60,188,6,78,215,28,175,192,226,210,114,77,159,238,107,13,44,191,3,104,82,120,233,31,132,92,25,119,77,21,38,83,42,169,197,39,154,51,63,187,173,240,221,177,130,253,221,45,249,42,211,252,233,119,36,176,156,153,241,196,223,209,128,32,51,166,242,52,145,37,162,45,1,62,51,0,235,94,212,130,130,69,140,232,210,122,135,24,207,236,7,217,185,245,56,52,104,95,70,81,87,95,220,103,253,52,100,116,127,205,50,49,250,153,120,117,18,74,96,99,219,119,8,201,116,14,252,176,40,220,11,64,51,116,46,146,213,197,217,55,226,179,203,153,110,100,5,50,71,49,116,33,73,185,236,160,129,21,72,102,151,128,21,252,241,136,193,70,45,183,183,5,168,178,137,120,48,242,40,175,118,29,90,95,217,136,143,130,59,156,210,74,40,137,167,220,169,93,243,226,41,226,150,47,98,99,20,75,85,170,166,76,206,27,181,184,152,6,13,180,141,69,96,65,136,244,116,12,64,108,146,91,166,94,214,121,161,45,193,73,124,216,102,83,85,187,239,194,244,227,245,164,213,250,163,47,208,113,214,182,238,98,237,165,22,215,159,36,81,47,232,42}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {1,0,1,0,0,1,0,255,0,0,0,255,1,0,1,1,0,0,255,1,0,0,0,0,255,0,1,0,255,0,0,1,1,0,255,0,255,0,0,0,255,0,1,1,255,255,0,0,0,1,255,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,255,1,0,0,1,0,0,0,1,0,0,0,255,1,0,0,0,1,0,255,0,0,0,0,1,0,1,0,0,255,0,0,255,255,0,255,0,255,1,0,0,0,1,0,255,0,0,255,0,0,255,0,0,1,255,0,255,255,0,0,0,255,255,0,1,0,0,1,0,1,255,1,1,0,0,0,1,0,0,0,0,0,0,1,255,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,1,255,1,1,0,1,0,1,255,0,255,0,1,1,255,1,0,0,1,0,255,255,0,255,0,255,0,1,0,0,255,255,0,0,1,0,255,1,0,255,1,1,0,0,0,0,1,0,0,0,1,1,0,0,255,0,0,1,0,0,255,0,1,1,0,1,0,0,1,0,0,255,0,255,1,255,1,255,0,255,255,0,0,1,1,0,0,255,255,0,0,1,0,0,0,0,0,0,255,1,0,255,0,0,0,1,1,255,0,0,255,0,0,255,0,0,0,0,1,1,255,0,1,0,0,255,255,0,0,0,0,0,255,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,255,1,255,1,0,0,0,0,1,1,1,0,0,1,0,1,0,1,255,1,0,255,0,0,255,1,0,0,255,0,0,0,0,0,0,0,0,0,255,1,1,0,0,255,0,0,255,1,255,255,0,0,0,0,0,1,0,255,0,0,1,255,1,0,255,1,1,0,0,1,0,0,255,255,0,0,0,0,1,0,0,0,255,0,255,1,0,255,0,0,1,255,255,0,1,0,0,1,0,1,0,0,0,255,1,0,1,0,0,1,0,0,1,255,0,255,0,255,1,1,0,1,1,0,0,0,255,0,0,255,255,0,0,255,0,1,0,255,0,1,1,0,0,0,0,0,0,1,1,0,0,0,255,1,0,0,0,0,0,1,0,0,0,255,1,255,255,1,255,255,0,0,255,0,1,0,255,0,1,1,0,255,0,255,0,255,0,1,255,255,255,255,0,1,0,1,255,0,1,0,0,1,0,255,1,0,0,0,0,0,0,0,255,255,0,0,0,255,0,1,0,0,0,0,1,0,1,1,1,0,0,0,255,1,0,1,255,1,0,1,255,0,1,0,255,0,1,255,255,255,0,0,1,255,255,0,0,0,1,255,0,0,0,1,0,1,0,0,0,1,1,1,0,0,255,1,0,1,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,1,255,1,0,255,0,255,255,0,0,1,255,0,0,0,1,0,0,1,0,255,0,0,0,0,0,0,0,1,0,1,0,255,1,0}, {0,1,255,255,1,1,0,0,0,255,0,0,0,0,0,1,1,0,255,0,0,255,0,255,0,1,0,0,0,0,0,0,1,1,255,1,0,1,255,255,0,1,255,0,0,0,0,255,0,1,1,0,255,0,0,1,255,1,255,0,0,255,1,0,0,0,0,255,1,0,0,1,0,0,0,255,0,1,0,0,1,1,0,0,255,0,0,1,255,255,0,0,0,255,255,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,255,255,0,0,0,0,255,1,255,0,0,0,0,1,0,1,255,0,0,255,1,1,0,0,0,0,255,255,0,1,0,0,0,0,0,1,0,1,1,0,0,0,255,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,255,0,1,0,1,1,0,0,0,1,0,0,0,0,0,255,1,0,1,0,0,1,255,0,0,0,0,0,1,1,255,0,0,0,255,255,0,255,0,1,0,255,0,0,0,255,0,1,1,0,0,0,0,1,0,1,0,0,255,0,255,1,255,0,255,255,1,0,255,1,0,1,0,0,1,0,0,0,0,0,1,1,1,255,0,0,0,1,255,0,0,1,255,255,255,0,255,1,1,1,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,255,0,255,0,255,1,0,255,0,0,0,0,1,0,0,0,0,0,1,255,0,0,1,255,0,1,255,1,255,255,0,0,0,0,0,255,255,255,1,0,0,255,255,255,255,0,255,255,1,0,0,0,0,255,0,1,0,0,255,255,0,0,0,1,1,1,1,0,0,1,255,0,1,255,255,255,255,255,0,1,0,0,0,1,0,1,0,255,1,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0,1,0,1,0,0,0,255,0,1,255,255,1,0,0,0,0,255,0,0,0,0,1,1,255,0,0,0,1,255,255,1,255,255,0,255,0,1,1,255,0,1,255,255,1,1,1,255,1,255,0,0,0,1,255,0,1,1,1,0,1,1,0,0,1,0,1,0,255,0,0,0,0,1,1,1,255,1,0,0,1,0,0,0,1,255,1,0,1,0,255,0,0,255,255,255,0,255,0,0,0,255,0,255,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,255,255,0,255,0,0,0,0,255,0,0,255,0,0,1,255,0,0,1,0,255,1,0,0,0,255,0,0,1,255,0,0,255,255,0,1,255,0,0,0,0,0,255,0,0,1,1,1,255,0,1,0,255,0,0,1,0,0,0,0,0,0,0,1,1,0,0,255,0,0,0,1,1,255,0,0,1,0,255,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,255,1,1,0,0,0,0,0,0,0,1,1,1,1,255,0,0,255,0,255,0,0,1,0,1,0,0,255,0,0,0,0,0,0}, {1,0,0,255,255,0,1,0,1,0,1,0,0,1,1,0,255,0,0,0,0,0,255,0,0,0,255,0,0,255,1,0,0,0,0,255,0,0,0,0,0,255,255,1,1,1,0,0,0,0,0,0,0,0,255,255,1,255,0,0,0,255,1,0,1,255,0,255,0,0,0,0,0,1,255,0,0,0,0,0,1,255,0,0,255,0,0,0,0,255,255,255,255,255,0,0,0,0,1,0,1,0,0,1,1,0,0,255,1,0,255,1,0,1,255,1,1,0,255,0,0,0,255,0,1,0,0,0,1,0,0,0,1,1,255,255,1,1,1,0,255,0,0,0,0,0,1,0,1,255,0,255,1,0,255,0,255,0,1,0,0,0,0,1,255,1,255,1,1,0,0,0,0,0,0,255,1,0,255,0,1,1,0,0,255,1,255,0,255,255,0,1,0,1,1,255,255,255,1,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,1,255,0,255,0,1,0,255,0,1,1,255,0,255,1,255,0,0,0,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,1,255,0,0,0,0,0,0,1,0,0,0,255,0,255,1,1,0,0,0,1,1,255,0,0,255,0,1,255,0,1,255,0,0,0,0,0,0,1,0,0,0,1,0,255,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,255,0,0,0,0,0,1,1,0,1,0,1,255,255,1,255,0,0,1,0,255,1,1,0,0,255,0,0,255,0,0,0,0,1,1,0,255,0,255,0,0,255,1,0,0,255,0,255,0,0,0,1,255,0,1,0,0,0,0,1,255,255,0,0,0,1,0,0,255,1,1,255,1,0,0,0,0,0,0,255,255,0,0,0,1,0,255,1,0,0,0,0,255,0,1,0,1,0,0,0,0,0,0,1,1,0,255,255,255,0,0,0,255,0,0,0,1,255,0,1,0,0,1,0,1,1,255,1,0,0,0,0,0,255,255,0,1,0,255,0,0,0,1,0,0,255,0,255,1,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,1,0,0,255,1,1,0,0,0,255,0,1,0,1,255,0,1,0,1,0,0,0,0,0,255,1,0,255,1,0,1,1,1,0,255,0,0,0,0,255,0,0,0,0,255,255,255,0,0,0,0,255,0,1,0,0,0,1,1,1,0,1,255,0,255,0,1,0,1,0,1,1,0,1,1,0,0,0,0,255,255,1,1,0,1,255,1,1,255,0,0,0,255,0,255,0,0,0,255,255,255,1,0,0,0,1,0,255,255,255,1,255,0,1,255,1,255,1,0,0,0,255,255,1,1,0,1,0,0,0,0,0,255,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,1,0,255,0,1,0,0,0,0,1,255,255,0,255,0}, } ; static const unsigned char precomputed_core_weightsntrup653_k[precomputed_core_weightsntrup653_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_weightsntrup653_c[precomputed_core_weightsntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_weightsntrup653_impl(long long impl) { unsigned char *h = test_core_weightsntrup653_h; unsigned char *n = test_core_weightsntrup653_n; unsigned char *k = test_core_weightsntrup653_k; unsigned char *c = test_core_weightsntrup653_c; unsigned char *h2 = test_core_weightsntrup653_h2; unsigned char *n2 = test_core_weightsntrup653_n2; unsigned char *k2 = test_core_weightsntrup653_k2; unsigned char *c2 = test_core_weightsntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_weightsntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup653(impl); printf("core_weightsntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup653_implementation(impl),ntruprime_dispatch_core_weightsntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup653; printf("core_weightsntrup653 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup653_implementation(),ntruprime_core_weightsntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_weightsntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_weightsntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_weightsntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_weightsntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_weightsntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_weightsntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_weightsntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_weightsntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_weightsntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_weightsntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_weightsntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup653")) return; storage_core_weightsntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_weightsntrup653_h = aligned(storage_core_weightsntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_weightsntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_weightsntrup653_n = aligned(storage_core_weightsntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_weightsntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_weightsntrup653_k = aligned(storage_core_weightsntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_weightsntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_weightsntrup653_c = aligned(storage_core_weightsntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_weightsntrup653_h2 = callocplus(maxalloc); test_core_weightsntrup653_h2 = aligned(storage_core_weightsntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_weightsntrup653_n2 = callocplus(maxalloc); test_core_weightsntrup653_n2 = aligned(storage_core_weightsntrup653_n2,crypto_core_INPUTBYTES); storage_core_weightsntrup653_k2 = callocplus(maxalloc); test_core_weightsntrup653_k2 = aligned(storage_core_weightsntrup653_k2,crypto_core_KEYBYTES); storage_core_weightsntrup653_c2 = callocplus(maxalloc); test_core_weightsntrup653_c2 = aligned(storage_core_weightsntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_weightsntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup653();++impl) forked(test_core_weightsntrup653_impl,impl); ++test_core_weightsntrup653_h; ++test_core_weightsntrup653_n; ++test_core_weightsntrup653_k; ++test_core_weightsntrup653_c; ++test_core_weightsntrup653_h2; ++test_core_weightsntrup653_n2; ++test_core_weightsntrup653_k2; ++test_core_weightsntrup653_c2; } free(storage_core_weightsntrup653_c2); free(storage_core_weightsntrup653_k2); free(storage_core_weightsntrup653_n2); free(storage_core_weightsntrup653_h2); free(storage_core_weightsntrup653_c); free(storage_core_weightsntrup653_k); free(storage_core_weightsntrup653_n); free(storage_core_weightsntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_weightsntrup761.c0000644000000000000000000007460614705505543024063 0ustar rootroot/* ----- core/weightsntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_weightsntrup761_checksums[] = { "1ad9d803dc23de6737da392d9005d9816c2914149e7959ed476913c7a95ddb3f", "39a1e0fceab2d7a7bebdbd9e8e3d2c275658e3fe3bc2a53d84a976500dec99ef", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_weightsntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_weightsntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_weightsntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_weightsntrup761_CONSTBYTES static void *storage_core_weightsntrup761_h; static unsigned char *test_core_weightsntrup761_h; static void *storage_core_weightsntrup761_n; static unsigned char *test_core_weightsntrup761_n; static void *storage_core_weightsntrup761_k; static unsigned char *test_core_weightsntrup761_k; static void *storage_core_weightsntrup761_c; static unsigned char *test_core_weightsntrup761_c; static void *storage_core_weightsntrup761_h2; static unsigned char *test_core_weightsntrup761_h2; static void *storage_core_weightsntrup761_n2; static unsigned char *test_core_weightsntrup761_n2; static void *storage_core_weightsntrup761_k2; static unsigned char *test_core_weightsntrup761_k2; static void *storage_core_weightsntrup761_c2; static unsigned char *test_core_weightsntrup761_c2; #define precomputed_core_weightsntrup761_NUM 9 static const unsigned char precomputed_core_weightsntrup761_h[precomputed_core_weightsntrup761_NUM][crypto_core_OUTPUTBYTES] = { {123,1}, {124,1}, {125,1}, {153,1}, {0,0}, {249,2}, {29,1}, {30,1}, {31,1}, } ; static const unsigned char precomputed_core_weightsntrup761_n[precomputed_core_weightsntrup761_NUM][crypto_core_INPUTBYTES] = { {112,132,62,111,156,73,163,166,62,119,49,140,50,168,237,201,153,246,61,9,147,205,118,106,61,186,111,130,164,25,175,252,24,36,239,99,197,40,146,51,192,241,161,155,175,222,89,12,34,67,97,196,76,180,138,230,250,252,117,30,252,204,190,208,244,35,33,4,101,252,76,60,53,249,251,211,36,144,155,133,18,153,4,45,78,83,217,105,140,58,248,100,152,185,248,116,113,90,192,14,69,84,193,73,228,104,80,1,117,72,3,99,248,106,224,238,206,143,250,49,134,38,78,248,82,174,2,145,248,8,208,41,12,173,133,43,29,0,131,85,61,127,239,212,154,53,156,26,179,174,238,165,214,114,189,174,250,165,139,213,154,16,132,91,155,39,234,103,118,95,65,104,44,133,65,90,20,110,93,215,7,35,220,216,191,62,228,27,48,249,239,131,55,74,113,189,121,196,219,13,176,205,35,27,0,127,177,163,240,50,12,32,202,115,22,176,239,87,31,121,106,205,192,99,115,202,170,33,101,125,20,14,216,152,202,104,194,8,142,174,57,249,101,110,81,86,54,53,44,91,49,11,14,205,90,114,165,237,57,132,108,219,63,223,55,105,31,136,23,198,134,155,176,122,249,114,254,118,240,160,19,221,165,111,109,57,64,243,193,108,98,38,132,104,152,7,53,171,230,31,124,12,250,247,194,121,162,8,217,159,73,114,44,89,211,105,180,235,55,136,233,79,55,243,30,47,198,43,175,150,255,200,194,199,229,26,78,33,234,221,176,21,136,116,224,69,125,163,113,254,114,21,35,214,103,125,178,180,206,144,182,164,84,59,212,19,64,228,127,187,120,215,232,133,105,163,182,161,100,252,143,59,223,47,68,204,13,186,26,6,130,179,16,39,93,104,12,167,203,181,129,244,38,101,29,195,131,184,246,216,62,115,214,78,142,53,199,189,179,127,207,85,224,228,177,4,63,79,44,185,135,89,61,124,117,245,192,53,171,130,223,134,152,40,41,172,172,118,76,237,54,247,28,169,111,189,87,191,52,23,151,92,132,143,192,90,92,156,97,252,152,201,248,18,136,54,62,60,3,133,37,173,217,154,131,98,168,167,131,110,78,160,215,27,200,23,88,234,167,209,7,21,151,14,98,212,254,110,223,142,45,3,202,233,194,246,31,19,78,212,50,248,47,229,202,102,214,229,56,223,69,21,53,29,148,59,47,45,141,8,124,120,102,39,108,52,60,52,71,212,169,160,207,244,188,68,212,215,203,59,154,140,47,23,68,163,11,246,180,246,59,7,8,51,34,252,103,76,98,186,191,216,134,51,178,233,230,181,71,172,35,108,143,92,163,150,91,181,38,25,170,56,59,238,80,70,113,170,150,98,197,154,229,16,6,77,85,17,229,21,19,41,162,90,69,106,246,209,65,118,174,242,80,187,70,83,70,38,226,101,56,111,111,207,76,138,140,175,80,45,9,84,60,208,64,5,28,116,189,210,43,39,147,20,0,132,68,42,2,167,192,21,61,5,124,5,225,132,238,193,137,249,75,6,233,12,84,168,63,170,138,252,20,28,134,231,233,34,70,192,119,177,125,149,121,147,221,123,167,80,233,166,179,172,246,56,242,15,34,75,171,123,11,63,37,14,148,71,20,11,116,178,163,253,189,151,58,105,77,111,39,183,55,45,198,205,129,121,69,138,128,111,51,139,246,249,215,105,133,207,27}, {159,111,88,27,32,195,150,173,58,233,171,70,24,30,51,203,32,71,30,81,196,159,52,32,10,113,120,29,194,134,118,158,139,81,175,125,228,181,5,31,194,220,100,131,209,203,254,29,19,101,14,153,232,45,242,221,69,8,99,9,84,203,33,178,178,36,24,136,74,209,217,217,100,97,123,235,39,54,61,105,58,4,247,98,84,142,239,94,67,108,210,94,200,70,187,204,50,35,221,118,78,71,123,27,78,83,87,139,240,182,22,16,243,188,92,150,155,87,4,149,38,6,200,71,253,75,88,21,186,149,202,137,199,214,241,199,81,2,87,41,137,240,176,137,70,97,99,15,169,24,205,75,16,29,122,94,183,146,198,54,197,151,156,147,118,210,130,240,62,240,150,207,177,109,242,67,183,119,51,5,77,86,28,19,246,128,81,230,137,204,69,36,56,2,49,153,78,23,96,187,29,69,158,194,99,186,173,59,95,145,225,192,119,67,246,107,124,219,203,192,150,133,96,189,168,152,246,6,96,135,185,132,34,84,96,243,174,117,3,137,37,45,234,230,61,105,181,196,131,213,42,24,210,23,90,80,206,5,178,153,8,55,29,122,20,236,194,121,225,225,25,217,119,105,171,174,129,236,251,210,112,155,159,6,102,209,42,17,248,239,233,204,123,172,66,168,161,242,236,236,147,99,238,158,10,55,90,85,126,226,144,110,226,34,188,42,113,6,130,41,136,42,158,250,31,63,181,232,80,210,95,18,238,85,47,116,40,121,74,171,117,20,171,104,107,233,216,78,72,44,131,140,14,98,212,198,243,215,14,103,148,235,67,230,92,148,73,152,12,230,27,213,193,9,210,26,173,159,47,152,170,14,138,64,92,234,45,190,59,30,192,163,74,197,216,138,21,186,167,193,200,56,172,11,128,246,167,183,160,81,50,39,174,211,55,226,239,244,113,142,78,96,17,127,227,149,130,42,43,37,108,24,174,89,248,124,80,102,122,130,211,159,231,93,216,102,61,248,41,186,30,99,68,155,149,193,82,208,202,129,141,65,87,71,86,63,237,38,114,220,171,241,6,143,21,230,237,38,226,14,147,129,26,14,237,148,217,142,153,57,171,124,158,3,131,152,248,200,88,145,60,123,29,158,156,25,168,205,233,53,151,229,138,208,19,241,139,21,75,96,42,203,75,230,122,196,57,86,123,102,44,47,246,244,37,28,30,128,187,31,232,159,164,13,85,122,178,24,141,234,156,172,233,221,163,232,51,51,126,67,1,238,201,241,90,231,5,71,204,226,32,27,123,85,118,121,5,106,62,148,23,17,252,29,213,9,35,100,131,147,134,61,219,145,99,116,73,170,188,80,153,138,178,45,167,57,195,10,82,71,214,7,14,172,60,158,22,232,160,78,105,129,24,231,131,210,138,95,201,171,17,85,214,38,26,102,34,47,227,213,57,241,175,243,17,24,98,144,132,251,103,171,178,176,223,112,78,197,238,244,184,70,0,37,77,98,105,167,222,91,101,87,59,117,217,69,27,54,252,185,103,2,4,195,103,156,18,178,59,165,43,165,255,59,53,88,229,183,189,53,165,51,34,14,52,239,198,223,85,114,222,60,0,158,64,77,220,157,96,203,28,96,195,127,131,17,252,198,9,209,172,176,136,142,157,72,161,69,75,86,230,74,90,83,121,26,177,149,135,150,69,55,65,172,244,251,140,201,55,120,238}, {68,134,165,160,94,100,78,77,18,79,147,165,148,186,170,35,116,112,74,90,233,190,125,112,68,94,110,75,35,144,33,99,57,201,217,63,8,141,149,239,23,208,6,75,212,63,87,187,230,21,87,251,184,37,35,151,57,254,166,234,236,107,35,61,172,92,124,158,105,24,209,61,29,230,116,118,191,117,171,90,141,194,13,114,233,178,235,46,57,87,26,46,48,185,66,110,92,59,77,173,213,251,178,29,47,66,243,95,213,237,168,126,112,7,229,155,78,96,229,75,176,75,159,57,30,29,19,217,192,249,145,154,214,198,173,76,34,159,85,56,120,13,147,114,188,137,200,229,68,147,24,76,255,179,48,12,221,157,121,251,8,205,231,127,133,142,190,46,117,55,57,115,128,59,142,151,39,187,190,203,194,208,246,105,99,64,244,92,121,51,207,62,141,104,57,67,121,35,76,177,15,94,247,250,192,29,199,204,101,111,234,0,209,201,160,223,63,162,79,217,76,169,12,68,88,111,247,149,253,121,25,23,140,86,62,110,250,145,40,203,74,245,213,21,15,47,150,107,4,65,0,82,113,55,233,70,224,228,121,235,159,249,117,115,223,228,55,27,116,225,17,226,16,64,164,160,197,126,67,196,141,206,37,82,106,36,182,137,243,247,50,136,89,114,154,198,50,122,139,191,218,88,176,113,247,182,184,129,114,65,0,90,117,88,124,243,125,45,203,31,116,31,31,192,22,80,148,54,117,32,46,101,132,26,111,16,28,233,85,118,189,91,141,22,90,216,232,128,19,116,89,168,35,218,81,251,211,252,240,55,52,242,24,212,186,249,57,33,123,102,3,40,47,140,128,248,40,222,108,177,60,129,42,77,24,78,217,122,232,19,153,30,18,122,189,237,142,147,194,12,60,15,222,172,171,60,146,85,89,167,51,120,20,237,229,59,200,28,139,137,74,46,199,16,166,29,167,77,128,251,112,171,197,102,133,12,49,85,224,19,235,81,254,95,45,191,59,140,21,76,73,19,118,214,7,139,129,138,162,77,8,250,1,171,116,165,8,149,80,175,83,2,209,42,130,108,144,46,41,98,90,20,114,175,86,221,23,30,62,96,74,68,129,137,180,239,188,194,96,113,24,203,172,97,154,84,93,76,67,154,183,208,125,208,195,98,167,122,36,239,154,242,227,52,137,86,226,175,160,8,128,28,200,133,114,231,104,225,167,216,62,11,107,114,155,113,26,71,128,71,179,91,196,54,52,34,74,53,70,173,80,210,10,241,196,83,146,83,180,219,141,77,184,4,180,182,174,201,222,39,161,111,235,153,231,132,13,247,168,80,220,32,95,196,125,204,21,23,109,235,202,128,155,72,93,103,216,169,74,174,245,151,211,98,188,82,166,161,14,136,200,45,202,80,20,122,175,90,244,254,171,65,59,227,193,242,173,191,160,2,171,22,97,1,46,236,118,118,94,129,227,189,11,127,118,123,159,116,246,3,136,142,254,184,58,113,150,136,92,199,228,23,82,16,91,34,183,77,252,200,107,165,75,156,10,231,207,109,28,89,208,43,203,233,172,34,190,188,98,181,30,198,89,156,158,138,54,84,141,89,217,71,224,210,31,132,27,77,9,255,47,225,146,30,61,235,13,104,9,198,122,219,169,59,233,238,71,158,94,152,127,23,225,59,36,70,246,63,125,181,152,149,229,167,161,154,244,43,141,86,128}, {144,203,64,107,77,132,138,95,63,10,24,4,200,1,106,163,42,72,197,194,239,41,99,158,183,78,79,109,119,7,55,246,228,33,51,191,15,69,189,238,178,43,63,247,94,220,105,132,225,214,24,180,31,177,23,180,31,182,229,95,36,31,164,120,178,68,43,128,145,49,244,73,232,125,181,23,189,91,120,41,33,62,143,19,212,195,144,249,105,107,92,150,59,24,33,229,68,232,85,21,179,169,204,173,66,207,234,83,249,78,214,233,177,34,75,82,117,200,112,93,250,44,178,75,59,132,210,246,153,54,195,37,201,13,135,231,62,195,242,206,27,161,124,45,46,32,154,10,36,228,66,4,230,40,154,161,116,174,133,127,80,74,222,123,72,222,43,197,176,109,177,111,65,255,31,164,13,134,181,252,90,35,31,73,73,143,26,7,4,27,127,44,143,213,166,48,42,164,136,210,107,104,142,208,194,37,133,190,63,148,84,88,16,153,156,91,223,121,5,193,49,195,40,88,3,81,43,27,219,149,104,26,235,77,95,214,119,100,209,29,79,211,107,131,117,214,183,105,220,224,131,162,78,32,128,145,89,141,206,247,129,191,10,86,136,60,9,91,226,213,144,77,69,242,143,33,42,220,21,170,113,48,53,229,69,178,52,233,173,115,97,0,230,110,172,183,124,167,118,79,244,89,92,228,205,154,95,145,207,100,230,124,76,179,105,54,187,159,55,85,158,154,118,194,155,30,34,225,21,224,174,203,33,239,45,131,205,18,210,130,59,146,114,1,175,201,163,140,169,209,179,68,179,99,209,235,143,98,53,243,12,94,47,95,115,208,6,160,147,51,242,228,197,232,104,91,74,196,158,101,113,35,211,72,82,34,214,185,215,43,221,48,107,43,75,73,238,152,123,36,124,40,63,76,232,56,26,255,127,143,243,69,122,138,225,218,53,27,225,213,176,172,239,54,219,194,77,202,146,111,169,152,127,64,232,207,107,19,10,42,217,156,94,5,111,203,90,172,48,94,185,74,79,200,43,233,116,23,98,29,165,193,51,111,123,13,121,81,141,102,153,104,33,108,91,29,203,187,127,180,8,6,149,77,57,188,69,91,19,50,35,158,186,26,233,234,83,107,59,237,143,205,30,41,173,148,172,146,92,199,204,51,57,120,141,106,201,158,0,35,90,231,121,221,36,18,212,95,90,74,188,109,11,221,56,68,123,185,76,199,122,99,36,76,62,107,41,88,148,79,26,143,81,160,195,158,72,182,97,158,119,63,157,210,151,167,10,34,174,177,86,244,141,121,89,200,130,51,62,101,134,127,105,231,185,243,105,168,146,117,195,201,214,145,220,204,76,100,72,215,196,32,220,227,253,118,145,144,144,64,49,33,86,171,230,187,213,196,89,3,98,4,71,85,154,91,140,32,115,165,42,234,55,128,191,21,159,18,146,34,21,19,130,92,211,34,119,65,248,185,155,77,238,120,147,15,10,112,252,101,94,81,225,191,69,41,151,250,81,37,67,207,14,239,40,208,133,174,224,142,234,122,111,42,51,127,57,88,191,95,127,200,13,159,186,81,52,244,60,193,178,31,15,37,157,154,110,3,222,74,192,34,102,234,86,23,89,176,205,167,38,219,241,6,147,53,227,250,232,237,249,69,16,59,215,41,82,215,138,159,155,161,138,80,134,36,52,111,10,24,43,85,4,106,36,53,44,134,139,23,241}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,0,1,255,0,255,0,255,1,255,0,1,0,255,0,1,0,0,0,0,0,0,0,0,1,0,255,1,0,1,0,0,255,0,0,255,0,0,0,0,1,255,0,0,0,0,255,255,0,0,0,1,0,0,255,255,0,0,0,1,0,1,0,0,1,255,1,0,0,0,1,0,0,255,0,0,255,0,0,0,0,0,0,255,0,255,0,1,255,1,0,0,255,0,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,1,255,0,1,1,0,0,1,255,255,0,0,0,0,0,0,0,255,0,1,0,0,0,0,0,255,0,0,0,1,0,0,0,0,255,0,255,0,0,0,0,0,255,1,255,0,0,0,1,1,0,255,0,0,1,0,0,255,0,0,255,0,1,255,0,0,0,255,0,0,0,0,1,1,0,255,1,0,1,255,1,0,255,0,0,1,0,0,0,255,0,0,0,0,0,0,0,0,1,255,255,1,0,0,0,0,0,0,255,1,255,0,0,0,0,0,0,255,0,255,0,1,255,255,0,0,0,0,0,0,0,0,255,0,1,0,1,1,255,0,1,0,1,0,0,0,0,1,1,1,0,255,0,255,1,0,0,0,0,0,0,255,255,1,0,0,0,0,0,255,0,0,1,0,255,1,0,0,0,0,0,0,255,0,1,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,1,0,255,1,0,1,0,0,0,0,0,0,0,1,1,0,255,255,0,0,0,0,0,1,0,255,0,0,1,0,0,255,1,0,0,0,0,0,0,1,1,255,1,255,0,1,0,1,0,255,1,0,1,1,0,0,0,1,0,0,0,255,1,0,0,0,255,1,0,0,0,0,1,1,1,255,0,1,255,0,0,0,0,0,0,0,1,0,255,0,1,0,0,0,0,1,0,0,1,0,0,255,0,0,1,255,0,1,0,255,1,255,255,255,0,255,0,0,0,0,0,0,1,255,0,0,0,0,0,0,0,255,1,255,0,0,255,0,0,1,1,1,0,0,0,1,1,1,255,255,0,255,1,0,0,255,1,0,0,1,0,255,255,255,0,0,0,0,0,255,1,0,0,0,255,1,255,1,1,0,1,255,1,0,1,1,0,0,0,0,0,255,0,1,0,255,0,255,0,0,1,255,1,0,255,255,1,255,0,1,0,1,1,0,0,0,1,1,0,255,1,0,0,0,0,0,0,255,0,0,0,0,1,0,0,255,255,0,255,255,0,0,0,255,255,0,0,0,0,255,255,255,1,1,0,255,255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,255,0,0,0,0,0,0,1,1,1,1,0,0,1,0,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,255,1,0,255,0,0,0,0,1,255,0,0,0,255,0,0,0,255,0,0,0,1,1,255,0,1,1,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,0,0,255,0,0,255,0,1,0,0,255,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,1,1,255,0,255}, {1,0,1,0,1,0,0,0,0,0,255,0,0,0,1,0,0,0,0,0,1,0,0,0,0,255,255,0,0,1,1,1,0,255,255,0,255,0,0,1,1,255,1,1,0,255,0,0,0,255,1,1,0,0,0,1,0,0,0,0,255,255,1,0,0,1,0,255,0,1,1,0,1,0,0,0,1,0,0,0,0,255,1,255,0,0,255,1,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,1,255,0,0,0,255,0,0,0,255,0,0,0,255,255,255,255,1,0,0,0,255,255,255,1,0,1,0,1,1,0,0,0,255,1,0,0,0,0,255,1,0,0,0,0,1,255,1,0,0,0,0,255,1,0,0,0,0,0,1,1,0,0,255,255,255,0,0,1,1,0,0,0,0,0,255,0,1,1,0,0,1,0,0,255,0,0,0,1,1,0,1,255,0,0,255,1,1,0,0,0,0,0,1,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,1,255,1,0,1,255,1,0,0,0,1,0,0,0,0,0,0,1,255,0,1,0,255,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,1,255,0,255,1,1,0,0,1,0,1,0,0,0,0,0,0,1,0,255,255,0,1,1,0,0,0,255,0,0,0,0,1,0,0,0,0,255,0,1,0,0,1,0,255,1,1,0,0,0,0,1,0,0,0,1,0,0,0,255,0,1,1,0,1,0,1,0,0,255,0,0,255,1,255,0,1,0,0,1,1,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,255,255,0,0,255,0,1,1,0,255,0,255,0,0,0,0,0,255,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,255,0,255,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,255,1,0,1,0,0,0,0,0,0,0,0,255,1,0,0,0,1,255,255,255,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,1,1,0,255,255,0,0,0,1,255,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,255,0,255,1,1,0,255,255,0,0,1,0,0,1,0,255,255,1,0,255,1,0,1,255,1,255,255,0,0,0,0,1,255,255,1,0,255,0,0,1,255,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,255,0,0,0,255,0,0,1,255,1,0,1,0,255,0,0,1,1,1,1,0,0,0,0,0,1,0,255,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,255,0,0,255,255,0,1,255,0,0,0,1,0,1,0,0,255,0,0,1,0,1,255,255,0,1,0,0,0,1,0,1,0,0,1,0,0,255,0,0,0,0,0,0,255,0,255,1,255,0,0,1,0,0,0,0,0,0,0,255,1,0,0,0,1,255,0,0,0,255,0,0,0,0,0,0,0,0,1,0,255,0,0,1,1,1,0,1,0,0,0,0,255,0,0,0,0,1,255,255,255,0,0,0,0,0,0,0,0,0,255,0,255,255,0,255,1,255,255,0,0,0,0,0,1,0,0,1,255,255,1,0}, {1,0,0,0,0,0,1,0,1,255,1,0,255,1,1,1,0,0,0,0,255,255,0,1,0,255,255,0,255,0,0,0,255,0,255,1,0,0,255,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,255,0,1,0,0,0,255,1,1,0,0,255,0,0,255,0,255,1,255,0,0,0,1,0,0,255,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,255,0,0,0,1,1,0,255,0,0,0,0,0,1,1,0,1,0,255,0,1,0,0,0,0,1,0,1,1,1,255,255,0,255,0,0,0,0,1,1,0,0,1,0,0,0,255,0,0,0,0,0,1,255,0,0,0,0,0,0,0,0,0,0,255,1,0,1,0,0,255,255,0,255,1,0,0,1,255,0,1,0,0,255,0,0,1,0,255,0,1,1,0,0,0,0,255,0,0,0,0,0,0,255,255,1,0,0,255,0,0,1,1,255,0,0,0,0,1,255,0,0,0,0,0,0,1,255,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,1,255,1,0,1,1,0,0,0,1,255,0,0,0,0,1,255,0,0,0,1,0,255,0,255,255,0,0,0,0,0,0,0,1,0,1,1,0,255,1,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,255,0,1,0,0,255,255,1,0,0,255,0,1,1,255,0,0,0,0,1,1,0,0,0,0,1,255,1,1,0,1,1,0,0,0,1,1,0,0,255,255,255,0,255,0,1,1,1,255,0,255,0,0,0,0,255,1,0,0,0,1,255,0,0,255,255,0,0,0,0,255,1,0,0,0,0,255,0,255,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,255,0,1,0,0,0,0,0,255,0,1,1,255,0,0,1,0,0,0,1,0,1,0,0,255,255,0,0,1,0,1,0,0,0,0,255,255,0,0,0,1,0,0,1,0,0,0,255,1,255,1,1,0,0,0,1,0,255,255,255,1,255,0,255,255,255,0,1,0,255,0,255,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,255,0,0,255,0,0,0,0,255,1,0,0,1,1,0,0,0,0,255,255,0,1,0,0,0,0,0,255,0,0,1,0,255,0,0,0,0,1,0,1,0,0,255,255,0,1,255,255,255,0,1,255,0,1,1,0,255,255,255,0,0,0,0,0,255,255,0,1,0,0,255,1,255,0,0,1,0,1,255,0,0,0,0,0,0,1,1,0,0,1,1,255,0,255,0,0,255,0,0,0,0,0,0,0,255,0,0,0,1,0,0,1,0,255,0,1,255,255,0,0,255,0,0,0,0,0,1,1,0,0,0,1,255,1,0,255,1,1,1,0,0,0,0,0,0,0,1,0,1,1,255,0,0,0,0,0,255,0,0,0,0,0,0,255,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,255,0,1,255,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,255,1,1,255,0,1,0,255,0,0,1,0,0,255,0}, } ; static const unsigned char precomputed_core_weightsntrup761_k[precomputed_core_weightsntrup761_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_weightsntrup761_c[precomputed_core_weightsntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_weightsntrup761_impl(long long impl) { unsigned char *h = test_core_weightsntrup761_h; unsigned char *n = test_core_weightsntrup761_n; unsigned char *k = test_core_weightsntrup761_k; unsigned char *c = test_core_weightsntrup761_c; unsigned char *h2 = test_core_weightsntrup761_h2; unsigned char *n2 = test_core_weightsntrup761_n2; unsigned char *k2 = test_core_weightsntrup761_k2; unsigned char *c2 = test_core_weightsntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_weightsntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup761(impl); printf("core_weightsntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup761_implementation(impl),ntruprime_dispatch_core_weightsntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup761; printf("core_weightsntrup761 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup761_implementation(),ntruprime_core_weightsntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_weightsntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_weightsntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_weightsntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_weightsntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_weightsntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_weightsntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_weightsntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_weightsntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_weightsntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_weightsntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_weightsntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup761")) return; storage_core_weightsntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_weightsntrup761_h = aligned(storage_core_weightsntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_weightsntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_weightsntrup761_n = aligned(storage_core_weightsntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_weightsntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_weightsntrup761_k = aligned(storage_core_weightsntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_weightsntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_weightsntrup761_c = aligned(storage_core_weightsntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_weightsntrup761_h2 = callocplus(maxalloc); test_core_weightsntrup761_h2 = aligned(storage_core_weightsntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_weightsntrup761_n2 = callocplus(maxalloc); test_core_weightsntrup761_n2 = aligned(storage_core_weightsntrup761_n2,crypto_core_INPUTBYTES); storage_core_weightsntrup761_k2 = callocplus(maxalloc); test_core_weightsntrup761_k2 = aligned(storage_core_weightsntrup761_k2,crypto_core_KEYBYTES); storage_core_weightsntrup761_c2 = callocplus(maxalloc); test_core_weightsntrup761_c2 = aligned(storage_core_weightsntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_weightsntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup761();++impl) forked(test_core_weightsntrup761_impl,impl); ++test_core_weightsntrup761_h; ++test_core_weightsntrup761_n; ++test_core_weightsntrup761_k; ++test_core_weightsntrup761_c; ++test_core_weightsntrup761_h2; ++test_core_weightsntrup761_n2; ++test_core_weightsntrup761_k2; ++test_core_weightsntrup761_c2; } free(storage_core_weightsntrup761_c2); free(storage_core_weightsntrup761_k2); free(storage_core_weightsntrup761_n2); free(storage_core_weightsntrup761_h2); free(storage_core_weightsntrup761_c); free(storage_core_weightsntrup761_k); free(storage_core_weightsntrup761_n); free(storage_core_weightsntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_weightsntrup857.c0000644000000000000000000010201314705505543024051 0ustar rootroot/* ----- core/weightsntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_weightsntrup857_checksums[] = { "92a23e9211ac4a5ad98bfab8db60dc8b5976d8e3a95e2e31123ad4672e8c2085", "2e9d660f810c309dffeef79278af6f0f197fd37d507d8d8bc7aa2656cf18ab92", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_weightsntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_weightsntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_weightsntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_weightsntrup857_CONSTBYTES static void *storage_core_weightsntrup857_h; static unsigned char *test_core_weightsntrup857_h; static void *storage_core_weightsntrup857_n; static unsigned char *test_core_weightsntrup857_n; static void *storage_core_weightsntrup857_k; static unsigned char *test_core_weightsntrup857_k; static void *storage_core_weightsntrup857_c; static unsigned char *test_core_weightsntrup857_c; static void *storage_core_weightsntrup857_h2; static unsigned char *test_core_weightsntrup857_h2; static void *storage_core_weightsntrup857_n2; static unsigned char *test_core_weightsntrup857_n2; static void *storage_core_weightsntrup857_k2; static unsigned char *test_core_weightsntrup857_k2; static void *storage_core_weightsntrup857_c2; static unsigned char *test_core_weightsntrup857_c2; #define precomputed_core_weightsntrup857_NUM 9 static const unsigned char precomputed_core_weightsntrup857_h[precomputed_core_weightsntrup857_NUM][crypto_core_OUTPUTBYTES] = { {165,1}, {175,1}, {149,1}, {148,1}, {0,0}, {89,3}, {65,1}, {66,1}, {67,1}, } ; static const unsigned char precomputed_core_weightsntrup857_n[precomputed_core_weightsntrup857_NUM][crypto_core_INPUTBYTES] = { {26,34,72,223,159,62,49,161,227,117,245,47,124,200,255,131,176,12,232,215,55,177,224,24,13,189,66,255,230,151,107,136,13,73,98,42,231,209,98,69,93,161,47,3,197,86,88,47,201,158,246,14,90,17,145,183,79,10,153,204,238,99,217,190,52,199,13,199,123,61,131,149,121,157,37,36,174,47,133,223,206,17,157,5,202,44,133,137,242,132,93,116,52,163,80,184,172,208,62,113,56,169,85,99,127,220,42,239,225,150,242,22,229,137,127,214,104,36,222,111,44,160,110,155,191,49,145,48,217,126,10,21,68,87,69,186,109,233,94,227,174,130,243,203,85,10,32,42,133,9,14,101,14,239,90,158,199,104,55,122,234,183,45,197,150,171,108,226,130,214,133,72,91,59,63,238,13,174,223,1,77,4,106,233,218,152,186,2,5,124,94,179,236,31,188,16,152,160,16,219,77,230,16,134,164,188,166,117,185,185,70,213,174,161,100,209,28,151,234,151,131,76,122,62,156,84,97,179,240,152,253,230,64,181,129,232,59,165,174,251,157,146,29,43,182,107,45,224,243,74,174,125,69,157,17,102,67,230,169,61,229,240,208,187,78,124,24,84,29,40,231,142,30,59,84,44,169,29,230,219,168,46,131,227,146,237,232,132,158,128,226,37,100,204,236,241,239,5,175,20,118,108,75,145,48,206,59,17,162,79,105,38,239,78,147,174,221,89,207,50,26,209,117,78,92,202,155,210,118,70,79,156,22,159,96,147,119,235,71,178,170,105,139,110,7,177,226,214,227,105,250,250,121,129,127,232,109,149,146,201,229,32,128,87,205,135,122,56,185,13,125,148,225,90,188,187,194,20,14,243,24,230,78,122,4,179,98,213,43,150,47,186,144,227,223,228,143,216,96,92,194,221,245,43,231,160,152,205,191,224,226,122,21,149,140,208,105,213,206,176,226,238,245,22,230,62,63,42,24,87,181,254,26,89,188,56,167,197,252,132,242,124,209,31,99,191,161,228,216,72,139,37,236,201,148,15,84,231,178,106,2,90,8,126,102,249,164,237,39,78,208,69,102,61,2,34,8,68,97,38,14,236,167,44,56,161,246,81,116,10,68,74,87,209,223,222,21,160,49,71,191,227,225,185,56,25,142,172,44,192,170,27,220,152,157,151,216,125,74,13,226,18,116,8,40,222,168,155,225,166,76,77,79,209,87,146,64,126,62,109,151,41,184,91,34,21,231,72,78,119,242,91,105,245,161,196,165,19,90,5,17,242,162,238,210,94,51,40,172,130,16,225,50,48,93,193,19,251,77,73,123,74,249,2,167,5,243,217,24,207,222,78,89,20,243,139,68,21,230,14,101,196,180,77,198,184,83,136,209,90,190,225,163,144,217,184,240,117,192,203,98,12,240,215,15,58,131,113,151,233,22,73,238,6,169,206,100,218,170,166,106,145,8,35,180,14,174,67,101,146,10,110,157,177,189,86,130,232,43,87,20,35,161,253,125,118,148,6,191,128,46,11,161,26,78,214,125,151,119,209,22,253,63,131,190,250,154,138,169,1,100,16,184,92,75,44,189,5,106,151,89,249,172,27,171,34,241,66,61,69,226,174,34,179,240,7,183,2,80,191,131,25,196,244,241,157,47,37,243,4,5,200,87,104,144,115,115,19,157,147,231,107,64,15,49,126,103,109,232,205,214,108,158,178,246,19,242,96,25,125,96,57,165,31,102,42,169,94,125,89,211,170,135,48,198,124,76,210,166,254,125,12,27,248,166,23,175,17,217,119,32,5,48,47,133,159,189,250,93,52,184,205,160,16,41,81,51,122,56,212,221,115,194,118,194,81,42,146,183,170,140,63,252,190,133,14,129,110,44,127,223,193,240,157,53,60,168,9,45,193,146,186,109,112,21,66,124,207,21,108,187,195,182,111,174,46,176}, {228,102,209,218,26,136,31,174,26,57,57,200,47,34,242,8,68,101,22,17,26,159,227,173,35,184,224,59,9,210,45,38,90,117,74,152,105,200,72,158,121,232,157,145,12,43,124,172,155,195,227,103,36,41,186,7,183,218,96,239,143,64,75,90,83,138,175,183,136,103,21,58,243,56,212,128,158,132,41,31,72,164,186,206,125,46,198,221,210,87,37,85,142,39,198,33,50,17,31,245,192,17,250,136,13,130,140,109,94,209,218,55,79,213,185,60,37,209,220,138,53,213,205,134,6,5,130,16,167,57,165,1,58,41,111,10,74,117,92,222,149,150,13,241,1,21,247,148,255,29,159,13,184,116,85,226,85,140,97,15,38,224,116,4,28,101,62,250,40,48,27,33,213,88,197,247,41,86,127,148,2,12,118,215,85,144,76,237,40,234,250,224,12,103,53,212,151,59,165,228,16,38,77,128,37,134,61,68,121,133,84,40,231,89,182,102,181,41,125,47,241,236,79,237,236,101,150,57,29,190,142,134,163,14,3,208,76,29,68,196,223,58,203,49,11,101,157,234,188,223,179,50,69,116,126,131,126,170,1,231,12,140,229,138,54,112,14,208,48,152,209,230,53,9,224,13,29,20,37,222,116,194,139,67,146,189,189,94,217,125,48,117,15,176,105,70,229,4,234,76,45,31,140,85,58,245,234,248,83,203,156,69,125,129,1,140,54,226,244,79,90,31,166,10,203,140,95,129,83,13,156,193,215,169,74,52,113,223,86,144,77,221,9,28,152,1,99,202,110,68,167,244,8,118,239,230,122,221,130,253,26,111,163,33,226,24,98,35,253,230,127,56,253,230,148,181,50,67,103,38,203,30,212,185,25,249,112,87,112,217,206,119,31,27,222,254,21,46,229,36,168,223,221,134,118,255,108,41,241,196,24,252,251,151,121,214,18,167,53,139,153,26,197,194,136,247,220,249,43,54,189,238,154,54,23,40,5,159,198,171,12,38,204,137,171,163,211,204,166,120,185,135,245,254,243,60,205,189,97,214,14,11,98,100,4,149,52,22,226,81,102,0,241,80,83,136,20,32,149,186,88,186,92,175,87,154,109,16,18,59,53,75,198,164,69,236,93,168,224,49,11,242,185,234,220,102,155,158,57,85,161,128,221,185,41,74,160,81,187,10,19,92,249,222,97,52,29,106,5,244,105,115,128,245,99,214,200,211,85,168,11,30,102,211,175,71,232,96,133,106,212,77,109,33,34,229,102,105,180,247,222,210,237,116,252,91,217,162,100,34,1,83,102,232,227,155,187,112,73,248,39,232,15,61,170,40,121,88,188,207,224,221,242,249,117,167,18,7,145,149,118,4,195,168,149,183,125,36,138,188,7,208,16,67,132,149,1,233,107,249,246,91,232,5,147,111,201,252,166,219,133,197,86,110,245,203,81,247,67,35,56,219,144,30,162,203,116,4,111,214,8,115,177,38,139,142,242,84,130,25,100,72,166,21,71,173,120,210,170,233,254,140,132,52,100,108,41,49,173,251,53,113,18,73,87,122,206,95,225,223,47,231,127,236,52,65,241,46,154,146,132,63,107,0,247,182,54,31,80,107,183,51,91,254,104,81,156,6,62,200,176,195,34,242,4,154,96,223,28,65,193,89,155,59,172,73,161,77,209,246,86,10,26,103,61,185,6,245,246,209,214,83,172,54,252,140,255,198,56,175,120,192,22,53,189,170,194,162,206,111,132,197,147,129,236,214,176,207,205,126,47,36,117,235,102,80,251,163,33,4,159,232,171,20,107,9,112,82,176,132,29,74,207,54,63,92,199,53,12,112,110,160,230,86,243,105,99,130,24,125,92,91,19,124,135,8,20,47,18,63,71,159,160,208,111,177,88,56,73,95,209,132,179,58,219,75,123,31,27,156,177,171,116,131,185,244,13}, {153,252,60,73,254,33,165,194,5,0,217,210,185,206,129,148,144,187,129,44,98,40,213,202,53,95,174,235,196,179,226,109,194,155,59,184,124,227,117,11,219,113,235,82,233,172,35,245,209,148,168,183,131,22,27,116,49,231,7,120,60,246,183,209,65,225,250,246,36,58,253,175,231,60,18,242,199,208,7,126,178,63,76,190,41,159,60,81,5,108,212,15,71,142,181,152,128,52,165,45,227,165,102,52,148,136,130,63,127,229,104,26,145,58,177,42,222,216,184,97,31,163,225,159,198,156,255,184,140,176,155,2,69,220,50,166,127,220,183,124,39,241,46,221,86,85,187,225,225,205,86,17,103,187,30,248,46,172,99,233,170,49,181,218,53,69,182,93,131,78,62,112,78,30,32,90,122,204,183,226,100,132,254,67,86,56,64,197,167,46,126,221,25,7,207,9,183,237,236,84,12,97,138,218,27,171,100,178,198,32,68,112,67,144,244,50,245,44,92,224,127,106,155,149,185,104,158,204,220,140,67,189,84,214,136,152,13,130,25,70,52,109,149,59,224,135,10,124,92,86,162,193,37,250,5,56,111,136,252,171,55,27,203,81,182,225,74,5,91,80,242,74,204,210,42,149,102,176,249,105,134,164,11,6,135,190,54,238,49,44,204,181,9,233,16,166,132,91,21,199,200,109,121,100,234,188,209,116,194,155,119,144,59,190,122,57,96,135,245,86,225,238,161,35,229,142,251,196,3,130,9,201,160,87,178,68,5,61,239,191,125,170,34,170,5,207,211,149,57,146,26,189,246,12,7,213,22,117,25,63,206,202,94,52,31,179,31,174,255,182,116,153,95,118,84,126,233,2,5,92,22,233,28,120,81,246,164,226,206,191,167,90,200,244,174,32,153,40,204,251,125,230,85,88,10,89,183,242,194,161,162,148,199,2,242,66,195,21,96,193,143,64,230,244,68,239,187,149,64,188,58,131,37,157,66,185,124,38,202,31,216,132,125,192,174,133,234,3,111,98,79,30,115,138,33,182,190,174,166,93,123,254,127,102,130,132,79,253,98,145,198,83,160,6,158,176,117,233,241,29,80,68,42,206,90,223,121,64,183,63,160,1,125,153,204,114,192,222,69,98,254,72,210,181,106,254,182,124,110,65,158,34,139,150,147,226,91,242,110,209,66,103,39,13,87,143,158,60,207,212,9,22,189,23,170,142,20,25,61,101,106,210,58,239,9,55,54,169,176,106,168,99,9,238,165,127,44,79,233,167,65,93,199,128,226,134,71,92,15,196,60,134,216,19,75,173,218,14,239,14,177,132,152,237,102,53,117,141,78,1,77,42,185,143,142,7,126,17,92,186,95,120,150,5,234,236,4,87,92,180,160,40,207,106,55,7,108,246,13,96,160,116,19,225,68,73,75,222,206,84,151,74,15,212,147,89,143,80,247,161,79,163,37,166,116,163,239,133,102,99,140,118,168,212,116,152,120,49,124,27,82,93,82,99,154,102,117,169,111,135,58,243,16,213,108,35,82,46,136,216,4,73,236,15,134,87,102,215,109,167,210,122,223,59,56,157,233,205,39,66,205,39,42,117,47,1,195,177,95,207,138,172,1,160,62,96,197,76,68,172,248,69,55,160,206,225,225,120,177,252,105,0,34,93,175,50,207,20,241,176,140,202,12,83,10,26,50,51,48,81,244,252,193,114,253,160,171,177,228,64,18,118,77,241,85,148,114,113,136,192,75,28,22,237,139,224,4,68,51,84,121,44,179,182,214,54,148,9,89,239,93,182,14,250,177,12,153,155,201,170,35,21,71,127,104,98,95,107,16,60,185,243,225,58,94,5,216,201,104,181,155,1,26,29,56,247,54,249,75,56,107,72,123,32,72,122,245,4,182,1,102,125,203,44,252,175,61,218,88,18,152,126,43,15,29,100,80}, {131,168,23,205,243,142,51,90,231,192,16,160,56,89,54,129,90,176,180,254,42,80,118,226,79,16,190,216,71,17,249,200,178,154,185,101,223,47,24,170,94,215,214,53,131,42,185,101,237,183,132,40,224,150,233,212,2,151,144,44,34,112,72,175,55,252,212,64,195,215,80,132,133,142,122,39,195,93,116,250,197,215,251,232,53,131,75,101,78,51,54,181,220,222,132,56,209,16,138,203,23,179,75,95,72,97,44,165,134,83,112,4,190,25,30,73,151,202,87,233,207,71,22,103,140,14,173,237,204,64,18,30,98,66,17,39,83,110,189,63,248,190,18,252,44,89,5,137,191,109,134,87,132,190,5,164,71,74,46,41,102,222,129,174,129,129,30,238,154,201,125,165,236,29,10,126,181,97,182,210,143,10,136,111,85,115,133,14,227,38,48,62,122,127,67,203,76,31,72,191,120,211,73,141,255,200,100,152,37,128,75,217,158,185,158,219,190,47,5,242,85,120,46,155,33,52,171,76,148,228,158,152,218,72,18,79,246,180,33,232,223,146,65,225,105,103,100,144,128,48,6,216,190,59,8,110,187,13,114,163,240,47,169,233,199,202,89,230,148,65,249,254,23,218,33,208,38,238,84,15,70,134,165,86,112,191,65,172,158,41,233,168,81,107,46,66,94,64,23,129,236,110,222,66,64,192,143,220,34,196,24,202,81,233,211,38,141,44,47,36,100,195,158,151,208,114,73,47,36,63,174,79,103,162,97,236,26,38,6,141,50,57,218,125,59,55,70,72,177,61,36,11,223,137,40,46,4,20,3,10,115,224,255,104,102,123,179,240,115,104,209,131,69,138,101,51,58,58,204,27,35,222,82,122,95,95,165,202,69,220,1,47,86,224,82,21,221,144,234,219,43,107,237,140,153,252,141,98,79,61,32,243,65,24,27,20,155,69,157,175,210,146,117,199,7,228,192,170,169,126,204,34,191,74,51,235,188,57,67,102,242,20,92,239,111,188,158,20,244,127,203,46,137,148,48,175,180,122,118,229,84,242,27,56,184,139,156,158,223,180,121,105,145,232,172,196,19,52,115,211,42,208,131,100,149,194,114,189,128,35,98,83,41,68,143,45,83,157,122,183,216,176,91,105,189,34,187,160,94,42,234,145,229,4,127,179,95,53,147,253,199,86,48,229,20,130,7,128,104,241,12,65,67,124,202,224,159,96,3,251,152,5,68,181,74,215,168,40,42,128,152,141,73,36,197,224,205,148,251,120,63,62,16,255,245,98,147,108,60,243,119,163,158,95,67,114,222,180,42,197,223,96,153,44,168,2,56,228,93,55,193,161,7,158,108,132,131,199,108,41,180,211,251,43,61,226,116,246,64,79,186,176,149,39,125,150,113,210,93,205,182,181,181,10,35,130,88,170,165,108,157,197,105,214,119,44,149,246,162,22,185,215,52,173,250,36,2,8,30,148,124,71,150,224,69,118,114,62,106,125,27,110,167,104,148,7,231,46,177,112,234,10,94,204,239,22,237,25,12,159,174,97,43,234,78,86,51,182,124,194,6,176,119,201,206,53,146,92,94,228,104,27,48,34,134,134,111,63,24,238,233,108,171,68,102,36,35,229,137,110,56,119,67,76,220,94,8,131,192,123,210,121,186,49,211,31,140,179,210,183,230,67,248,97,58,62,20,134,166,93,46,226,82,12,94,230,65,170,129,176,150,94,103,170,9,59,19,55,35,79,137,210,242,99,4,135,155,138,253,239,117,55,14,39,250,56,177,78,111,79,156,225,248,121,76,211,35,185,156,254,57,211,221,152,252,100,55,158,179,231,219,205,150,88,54,187,84,95,175,41,33,195,227,201,103,175,70,195,168,32,32,219,28,243,11,205,83,197,54,14,9,208,136,24,12,18,31,226,162,251,76,146,203,17,136,59,174}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,1,0,0,0,255,1,0,0,0,255,1,0,0,0,0,0,0,255,0,0,0,255,0,1,0,0,1,0,0,0,0,1,255,255,0,0,0,1,1,0,0,255,0,1,0,1,0,1,0,0,0,255,0,0,1,1,0,1,255,0,0,0,0,0,0,255,1,1,255,255,0,1,0,0,0,255,0,0,1,1,255,0,1,0,255,255,0,0,0,0,0,1,0,0,0,0,0,0,255,0,0,255,255,0,255,0,255,0,255,0,255,0,1,1,0,255,1,0,255,0,0,0,255,1,0,0,0,0,0,0,0,0,1,0,0,255,0,0,1,0,1,1,0,0,1,0,0,0,0,255,0,0,0,255,0,0,255,1,1,0,0,0,0,1,0,0,0,0,255,255,1,0,0,0,255,0,255,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,1,0,0,0,0,0,0,0,0,255,0,0,0,0,1,1,0,1,0,1,0,0,0,255,0,0,255,0,255,1,0,0,255,0,255,0,0,0,0,0,1,0,1,0,0,1,0,255,255,255,255,0,1,0,1,1,0,255,0,0,0,0,0,255,0,255,0,255,1,1,1,0,1,0,0,0,0,1,255,0,255,0,1,0,1,0,0,1,0,0,255,255,1,1,1,0,255,0,1,0,1,0,0,1,0,255,0,0,0,1,255,0,1,0,0,0,255,0,1,0,0,0,0,0,0,1,0,1,255,0,0,0,255,1,0,0,0,0,1,0,0,255,255,1,0,255,0,0,1,255,0,0,1,0,0,1,0,1,1,0,1,0,255,0,255,0,0,0,0,0,0,1,0,255,0,0,0,0,0,1,0,0,0,0,1,0,0,0,255,0,255,1,0,0,0,255,0,0,1,0,0,0,1,0,0,0,1,255,1,0,1,1,0,0,0,0,0,255,255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,1,1,0,0,0,0,255,0,255,1,0,1,1,0,0,0,0,0,0,255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,255,0,0,0,0,0,0,255,1,0,0,0,0,255,0,0,0,1,255,1,0,0,255,0,0,255,0,255,255,0,0,0,255,255,1,255,0,0,0,1,1,255,0,1,1,0,0,0,0,0,0,0,1,0,255,0,255,255,255,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,255,0,0,0,0,1,0,0,0,0,0,0,1,0,255,255,0,255,0,0,255,0,255,0,255,0,0,0,0,1,0,1,1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,255,0,0,1,0,1,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,255,255,0,0,0,0,0,1,1,0,1,255,255,0,255,0,1,255,0,0,255,255,1,1,1,0,0,0,0,0,1,0,255,0,0,0,0,255,0,0,0,1,0,255,0,255,255,1,1,0,1,0,0,0,0,0,1,1,0,0,1,255,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,255,1,255,1,0,1,255,0,0,1,0,0,255,255,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,255,1,0,0,0,255,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,255,0,0,255,255,0,1,0,1,0,1,1,255,0,0,0,1,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,255,0,0,0,1,255,255,0,255,0,0,255,0,1,0,0,255,1,0,0,255,0,0,0,1,255,0,255,1,255,255,0,0,0,0,0,0,255,1,0,0,1,0,0,1,255,0,0,255,255,255,0,1,0,0,0,0,1,0}, {1,0,1,1,0,0,0,255,1,0,0,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,1,1,1,0,0,1,255,0,0,0,1,0,1,255,0,0,1,1,0,255,0,0,0,0,0,0,0,1,255,1,255,0,0,0,0,0,1,0,1,255,0,255,255,255,0,0,1,1,0,255,1,255,0,255,0,0,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,1,255,1,255,0,255,0,0,0,1,255,0,1,0,255,255,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,255,0,1,0,0,1,0,0,0,0,255,0,255,0,0,255,0,0,0,0,0,0,255,0,0,1,0,0,1,0,0,0,0,255,255,0,255,1,1,0,1,0,0,255,0,0,0,0,0,0,0,1,0,0,255,255,0,0,1,255,0,0,0,0,1,0,0,0,255,0,0,0,1,0,0,0,0,1,0,255,1,0,0,0,255,0,0,255,0,1,0,1,0,0,1,255,0,255,0,0,1,1,255,255,0,255,0,1,0,0,255,1,0,0,0,1,1,1,0,1,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,1,0,0,255,255,0,0,255,0,0,255,0,255,0,255,255,1,0,255,0,0,0,0,1,0,255,0,0,0,0,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,1,0,0,255,1,0,255,0,0,0,0,0,0,0,0,255,1,0,0,255,0,0,0,1,1,1,1,255,0,0,0,1,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,1,0,0,0,0,0,0,0,0,255,255,0,1,0,0,0,0,0,255,0,1,1,255,0,0,0,0,0,0,0,0,255,1,255,0,0,1,0,255,0,0,0,0,0,255,255,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,1,255,0,0,1,0,0,255,0,255,1,0,255,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,255,0,1,0,255,255,1,0,0,0,0,0,1,1,0,0,0,0,0,0,255,255,1,255,1,255,255,0,0,0,255,0,1,1,255,0,0,0,0,0,255,1,0,255,1,0,1,0,0,255,0,0,0,255,255,0,255,0,255,255,1,1,0,0,0,0,255,0,0,1,255,0,255,0,255,0,0,1,0,1,0,255,1,1,0,1,1,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,255,0,0,255,1,1,1,1,0,1,0,255,0,1,0,0,0,0,0,0,255,1,0,0,0,0,1,255,255,255,1,0,255,0,1,0,0,255,1,0,0,0,0,0,255,0,0,1,0,0,0,0,0,1,0,0,0,1,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,0,0,0,1,0,255,1,0,0,0,0,0,0,1,1,1,1,0,1,0,0,255,0,1,0,0,0,0,1,0,1,1,255,1,255,255,1,1,1,0,0,0,0,0,0,255,1,0,1,255,255,0,255,255,0,0,1,1,1,0,255,0,1,0,0,255,255,1,0,1,1,1,0,0,255,0,0,0,0,0,0,1,1,1,255,0,0,255,0,0,255,1,0,0,0,255,255,0,0,0,0,0,1,0,1,0,0,1,255,255,0,0,255,0,1,255,0,1,0,0,0,1,1,0,0,255,0,0,255,255,1,0,0,0,0,255,0,0,0,255,0,0,0,1,0,0,0,255,0,0,1,255,0,0,0,1,0,0,0,0,0}, {0,0,0,255,0,255,0,255,0,0,0,1,0,0,0,0,255,0,255,0,0,1,0,1,1,255,1,255,0,0,0,1,255,255,0,0,1,0,255,1,0,255,0,1,0,1,0,0,0,0,0,0,255,0,0,1,255,0,0,0,0,0,0,0,1,255,1,0,0,0,0,255,255,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,255,255,0,255,0,0,0,0,0,255,0,0,255,0,1,0,0,0,0,0,0,0,0,1,255,0,1,255,0,0,0,255,0,1,0,0,0,0,255,255,0,0,0,255,0,0,0,1,1,0,255,1,1,0,0,0,0,0,0,0,1,0,255,1,0,1,0,0,0,255,255,255,0,0,0,255,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,255,0,0,1,0,0,1,255,0,0,0,0,0,255,0,255,0,0,1,1,1,255,255,0,1,0,1,255,0,1,0,0,0,0,1,255,0,1,0,0,255,1,0,255,255,1,0,255,0,0,1,1,0,1,0,0,0,0,0,1,0,255,0,255,0,0,255,1,0,0,0,0,0,0,1,1,0,0,0,0,255,0,0,1,0,255,0,0,255,0,0,1,0,255,1,0,255,0,0,0,0,0,0,0,0,0,1,0,0,255,0,255,0,0,1,0,0,255,0,0,0,1,0,0,255,0,0,0,0,0,255,0,1,0,0,255,0,255,0,0,0,0,1,0,1,0,0,1,0,255,0,0,0,0,0,0,0,255,1,255,0,0,0,0,1,255,0,0,0,0,255,0,0,0,1,0,0,255,1,0,1,0,255,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,255,0,1,1,255,0,0,1,0,0,0,0,0,255,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,255,0,255,255,0,0,0,255,255,0,255,0,0,255,0,1,0,0,0,1,255,0,0,0,255,255,1,1,0,0,0,255,1,0,0,0,0,0,0,255,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,255,1,255,0,1,0,1,1,255,0,0,0,0,255,0,255,255,1,1,0,0,0,1,0,1,0,1,1,255,0,0,0,1,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,255,0,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,255,255,0,1,255,0,0,0,0,0,0,1,1,0,0,255,0,255,0,0,0,0,255,255,0,1,1,0,0,0,0,255,0,0,0,255,0,0,0,255,1,0,0,255,0,0,255,1,255,0,0,255,0,0,0,0,0,1,255,0,255,1,255,0,0,1,1,1,1,255,0,0,0,1,0,1,1,255,0,0,0,0,0,0,0,255,0,0,255,0,0,1,255,0,0,0,0,0,255,0,0,0,0,1,0,1,1,1,0,0,255,0,0,0,0,0,255,0,0,255,0,255,0,0,0,0,0,255,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,255,0,255,0,0,0,0,1,1,1,0,0,0,0,255,0,0,0,0,1,1,255,1,0,255,0,0,0,0,1,0,255,0,0,255,0,255,255,0,0,255,0,1,1,1,0,0,1,0,0,0,0,0,255,255,0,0,1,0,255,0,255,0,0,0,1,1,1,0,0,1,0,255,255,255,255,0,1,255,255,0,0,255,0,0,255,0,1,0,255,255,0,0,0,0,255,0,0,0,1,1,0,1,255,1,0,1,1,0,1,0,255,0,1,255,0,1,255,0,255,1,255,255,0,0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,255,0,255,255,0,1,0,1,1,1,255,255,0}, } ; static const unsigned char precomputed_core_weightsntrup857_k[precomputed_core_weightsntrup857_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_weightsntrup857_c[precomputed_core_weightsntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_weightsntrup857_impl(long long impl) { unsigned char *h = test_core_weightsntrup857_h; unsigned char *n = test_core_weightsntrup857_n; unsigned char *k = test_core_weightsntrup857_k; unsigned char *c = test_core_weightsntrup857_c; unsigned char *h2 = test_core_weightsntrup857_h2; unsigned char *n2 = test_core_weightsntrup857_n2; unsigned char *k2 = test_core_weightsntrup857_k2; unsigned char *c2 = test_core_weightsntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_weightsntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup857(impl); printf("core_weightsntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup857_implementation(impl),ntruprime_dispatch_core_weightsntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup857; printf("core_weightsntrup857 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup857_implementation(),ntruprime_core_weightsntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_weightsntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_weightsntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_weightsntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_weightsntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_weightsntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_weightsntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_weightsntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_weightsntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_weightsntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_weightsntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_weightsntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup857")) return; storage_core_weightsntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_weightsntrup857_h = aligned(storage_core_weightsntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_weightsntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_weightsntrup857_n = aligned(storage_core_weightsntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_weightsntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_weightsntrup857_k = aligned(storage_core_weightsntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_weightsntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_weightsntrup857_c = aligned(storage_core_weightsntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_weightsntrup857_h2 = callocplus(maxalloc); test_core_weightsntrup857_h2 = aligned(storage_core_weightsntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_weightsntrup857_n2 = callocplus(maxalloc); test_core_weightsntrup857_n2 = aligned(storage_core_weightsntrup857_n2,crypto_core_INPUTBYTES); storage_core_weightsntrup857_k2 = callocplus(maxalloc); test_core_weightsntrup857_k2 = aligned(storage_core_weightsntrup857_k2,crypto_core_KEYBYTES); storage_core_weightsntrup857_c2 = callocplus(maxalloc); test_core_weightsntrup857_c2 = aligned(storage_core_weightsntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_weightsntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup857();++impl) forked(test_core_weightsntrup857_impl,impl); ++test_core_weightsntrup857_h; ++test_core_weightsntrup857_n; ++test_core_weightsntrup857_k; ++test_core_weightsntrup857_c; ++test_core_weightsntrup857_h2; ++test_core_weightsntrup857_n2; ++test_core_weightsntrup857_k2; ++test_core_weightsntrup857_c2; } free(storage_core_weightsntrup857_c2); free(storage_core_weightsntrup857_k2); free(storage_core_weightsntrup857_n2); free(storage_core_weightsntrup857_h2); free(storage_core_weightsntrup857_c); free(storage_core_weightsntrup857_k); free(storage_core_weightsntrup857_n); free(storage_core_weightsntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_weightsntrup953.c0000644000000000000000000010735714705505543024066 0ustar rootroot/* ----- core/weightsntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_weightsntrup953_checksums[] = { "d20b5285cc8d7080674b79f3627faf649cece975b77eef738f289750b08759dc", "9d82958147e40c73e91ac145ffb54aa8e62426d5e7dfd1c65d01bbbebcbb5249", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_weightsntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_weightsntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_weightsntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_weightsntrup953_CONSTBYTES static void *storage_core_weightsntrup953_h; static unsigned char *test_core_weightsntrup953_h; static void *storage_core_weightsntrup953_n; static unsigned char *test_core_weightsntrup953_n; static void *storage_core_weightsntrup953_k; static unsigned char *test_core_weightsntrup953_k; static void *storage_core_weightsntrup953_c; static unsigned char *test_core_weightsntrup953_c; static void *storage_core_weightsntrup953_h2; static unsigned char *test_core_weightsntrup953_h2; static void *storage_core_weightsntrup953_n2; static unsigned char *test_core_weightsntrup953_n2; static void *storage_core_weightsntrup953_k2; static unsigned char *test_core_weightsntrup953_k2; static void *storage_core_weightsntrup953_c2; static unsigned char *test_core_weightsntrup953_c2; #define precomputed_core_weightsntrup953_NUM 9 static const unsigned char precomputed_core_weightsntrup953_h[precomputed_core_weightsntrup953_NUM][crypto_core_OUTPUTBYTES] = { {227,1}, {193,1}, {241,1}, {242,1}, {0,0}, {185,3}, {139,1}, {140,1}, {141,1}, } ; static const unsigned char precomputed_core_weightsntrup953_n[precomputed_core_weightsntrup953_NUM][crypto_core_INPUTBYTES] = { {249,204,130,119,235,59,90,248,201,175,136,65,118,11,33,192,236,81,168,210,127,216,14,176,33,152,69,129,216,34,154,69,104,31,125,54,104,208,43,209,70,46,183,59,205,221,99,206,191,168,169,243,4,57,178,31,255,218,125,21,234,108,12,93,43,80,246,69,109,106,141,215,42,64,103,207,81,198,56,183,70,191,141,79,179,36,191,223,21,177,25,27,145,204,255,199,197,94,158,230,222,237,211,21,178,51,199,252,215,147,111,37,173,15,248,110,43,128,70,40,219,84,33,235,7,214,85,126,224,176,218,198,18,116,247,49,127,245,67,108,219,2,245,56,101,216,229,105,162,1,155,240,67,127,54,178,139,74,113,119,84,21,223,57,173,252,162,245,175,219,127,150,99,94,218,255,199,235,45,20,139,89,31,151,175,8,22,24,68,94,178,175,220,223,187,177,138,84,146,183,195,206,218,81,138,80,243,102,163,204,136,130,4,147,10,85,184,24,169,0,19,227,5,174,68,48,71,250,150,51,34,47,201,98,10,11,39,169,203,234,170,105,101,82,244,27,80,221,39,70,165,190,101,240,39,252,63,20,69,83,103,233,153,44,86,6,33,19,13,75,89,119,201,190,185,67,23,95,68,174,34,222,234,170,204,174,12,162,52,206,232,254,56,176,205,48,162,51,85,13,17,141,244,156,212,154,223,92,182,218,51,25,160,1,120,252,16,120,196,139,83,131,228,21,56,158,242,28,79,205,66,219,39,157,160,182,169,125,238,56,73,211,180,136,35,33,9,86,138,213,142,115,16,95,199,238,130,184,10,214,136,83,73,30,54,12,245,90,168,36,12,120,136,10,253,71,159,98,139,101,87,115,40,205,212,222,208,178,103,235,217,169,130,246,4,246,79,249,27,201,139,240,72,127,134,144,99,128,244,1,42,12,243,27,97,75,117,210,18,21,99,239,155,129,122,109,207,109,149,12,105,148,114,0,151,30,36,163,216,45,180,211,64,246,56,22,186,170,167,113,125,226,184,58,101,70,121,33,249,39,48,127,25,54,216,148,128,55,136,40,55,208,16,243,122,178,143,52,252,154,57,180,134,236,81,118,222,129,212,209,173,41,95,231,136,105,196,179,138,107,187,10,141,119,234,58,166,41,23,27,37,36,131,21,141,125,166,249,89,136,250,162,29,82,21,50,86,214,229,160,181,41,109,51,110,208,206,20,197,87,130,49,101,59,80,79,119,37,219,171,122,202,59,194,253,82,65,134,195,193,151,37,175,171,248,8,124,179,122,53,186,246,149,149,225,143,75,193,250,98,26,201,148,194,165,229,188,231,154,83,103,82,184,197,219,64,7,230,197,100,241,253,100,98,119,129,27,135,31,189,201,128,195,111,130,159,202,1,37,30,166,50,130,104,119,165,198,174,5,155,11,225,231,183,29,225,210,253,116,14,91,29,81,44,44,58,84,53,249,133,233,164,22,135,79,156,124,141,103,212,120,26,46,81,173,101,54,11,27,96,15,123,145,5,156,203,62,136,139,67,99,77,81,167,250,44,107,234,50,89,204,187,136,99,95,3,95,158,27,188,244,158,53,132,238,102,4,187,209,195,156,43,25,190,40,26,30,206,9,158,22,21,19,51,43,158,10,64,121,96,122,119,249,140,94,242,178,54,193,33,200,68,255,145,172,84,131,88,180,63,159,81,233,213,242,31,198,239,154,17,68,13,221,160,192,130,168,37,138,249,28,57,110,146,28,189,47,106,20,241,48,199,136,234,159,233,44,204,208,225,120,160,246,119,255,168,26,234,247,45,46,152,117,233,58,59,231,215,166,246,78,24,52,74,169,130,63,197,1,239,111,132,194,70,177,83,202,12,220,57,102,193,68,90,197,52,152,158,224,224,14,245,113,61,175,46,132,112,61,172,97,215,231,14,169,143,144,41,30,211,228,19,124,118,171,45,216,21,96,134,252,49,245,128,212,169,219,149,110,93,125,158,236,220,141,62,180,99,62,139,168,142,79,204,67,194,104,248,205,15,186,231,138,149,244,237,57,84,7,121,132,70,254,6,104,99,252,233,16,182,151,104,221,111,98,145,152,128,134,162,62,107,71,40,35,1,254,206,53,24,194,30,222,77,9,66,207,84,75,38,23,227,15}, {136,115,132,155,212,255,122,106,203,143,212,149,98,33,44,18,41,196,34,184,68,221,123,66,219,234,22,10,220,161,157,231,176,11,233,102,186,163,183,179,88,80,169,34,67,195,38,87,2,230,22,153,50,216,59,90,63,164,221,71,11,93,54,130,186,176,26,1,67,108,246,129,165,145,96,183,183,150,159,95,90,116,52,168,128,110,226,1,181,60,227,197,134,167,156,19,124,166,162,154,37,9,72,106,49,134,106,221,249,27,197,160,82,29,50,226,179,143,227,88,104,43,246,59,96,12,132,182,7,70,160,71,27,53,91,128,23,59,130,132,205,253,127,74,237,174,4,30,184,40,167,136,240,83,140,243,154,16,229,98,17,187,220,64,177,133,243,161,4,209,172,115,35,93,221,183,133,156,211,58,75,76,220,210,87,160,149,14,251,9,2,199,19,133,130,139,64,198,86,96,212,102,200,231,224,215,38,150,209,0,140,51,33,130,161,198,80,50,180,53,53,233,39,92,80,75,158,84,255,114,119,159,232,236,179,111,131,219,2,1,246,176,208,123,159,97,142,239,11,63,206,138,241,30,125,90,18,9,238,61,141,176,214,26,118,136,194,44,15,59,227,145,101,191,77,234,7,178,165,43,49,68,42,141,222,9,154,66,242,148,170,203,9,176,43,196,13,176,69,242,235,150,220,131,224,3,192,152,123,30,207,6,82,184,137,205,133,234,176,25,33,72,158,69,235,28,149,178,219,120,166,162,189,94,207,184,155,132,229,108,203,207,31,189,120,93,126,130,190,123,54,78,61,232,53,163,170,162,185,57,142,174,84,5,196,118,213,253,112,176,175,74,184,99,97,173,87,253,52,151,250,32,8,247,83,100,80,196,139,210,40,218,126,148,68,202,112,49,161,229,238,174,36,221,2,161,128,62,78,111,178,91,240,23,128,144,29,204,222,24,57,58,222,245,94,244,163,247,29,72,87,116,222,198,204,109,142,18,192,113,14,50,210,251,72,107,190,210,127,70,2,100,28,194,247,159,134,21,76,19,87,142,177,74,194,71,221,76,182,75,248,73,225,190,173,14,54,24,115,240,198,235,248,232,198,220,47,88,78,106,213,220,113,219,93,67,159,252,16,244,128,188,88,132,193,75,80,142,12,44,194,154,50,192,88,15,107,105,139,58,232,215,120,201,254,190,60,1,126,23,44,60,61,19,88,90,78,253,85,83,160,217,54,43,138,223,127,63,224,237,99,154,194,166,75,128,7,40,97,116,133,184,217,191,101,241,58,240,68,123,226,15,79,127,75,35,69,157,125,139,173,137,229,153,177,183,223,58,30,78,118,195,231,18,243,143,166,159,135,1,75,137,162,227,156,188,104,135,25,251,148,205,148,198,179,24,26,169,81,96,231,227,209,124,82,84,27,32,59,99,60,143,125,221,36,196,192,216,165,133,54,128,219,116,88,154,57,170,70,69,242,204,216,168,44,101,30,105,112,157,177,214,229,41,193,216,216,246,77,184,139,91,255,211,42,203,198,47,162,195,224,213,3,234,99,156,162,21,205,210,2,36,89,254,97,95,148,121,4,121,214,141,108,46,210,252,32,164,199,169,135,60,1,150,236,0,123,70,71,148,60,80,45,121,44,3,217,213,118,108,215,11,52,201,71,17,24,239,87,33,233,212,67,42,100,183,79,51,0,139,4,180,244,121,137,72,92,203,92,173,137,20,41,48,14,55,77,66,243,208,185,242,7,116,255,116,219,77,104,238,233,130,151,224,32,108,185,176,122,124,195,22,53,15,192,232,108,249,48,78,227,206,221,120,25,94,69,129,138,186,187,56,243,2,47,98,187,54,128,117,92,80,22,129,134,102,172,254,87,71,103,46,113,236,231,51,67,212,149,198,211,188,225,242,221,121,134,120,41,7,158,59,138,147,249,70,30,89,198,120,116,202,101,127,142,248,15,42,135,41,181,231,121,73,132,204,111,182,38,62,214,123,141,166,166,27,155,149,140,67,231,180,176,214,5,112,132,211,115,250,199,41,99,174,255,81,106,203,142,117,154,116,254,224,178,12,222,223,136,202,130,18,107,173,10,30,158,227,131,51,142,87,29,166,231,170,83,42,74,222,166,143,3,68,91,153,212,20,44,59,255,152,250}, {57,125,246,174,115,214,232,173,248,188,171,242,216,59,197,195,112,77,137,182,49,218,190,130,241,104,110,253,157,160,155,67,232,12,13,27,25,168,194,151,113,145,15,220,226,184,58,60,75,135,205,109,196,189,194,119,130,162,61,78,146,48,14,116,230,200,107,176,139,131,187,26,179,106,105,38,124,168,203,170,147,63,33,204,160,113,83,131,42,252,140,4,220,222,75,163,103,122,177,200,60,145,177,66,115,220,84,234,149,150,137,168,6,21,54,34,239,219,17,117,166,123,178,67,102,72,63,219,119,106,55,93,209,230,134,222,125,209,135,130,231,127,35,253,80,118,165,137,213,151,139,107,225,3,198,185,81,13,37,77,139,49,6,157,20,236,235,245,56,103,204,134,29,212,187,203,114,207,220,49,69,150,143,46,253,217,35,226,128,198,29,81,200,102,15,218,81,40,250,88,92,70,27,250,99,27,65,227,25,33,112,74,211,143,69,57,39,179,223,87,156,135,192,175,245,106,235,102,39,217,129,196,31,226,9,16,194,234,46,94,163,20,156,90,108,233,9,110,180,135,197,150,25,93,139,46,216,186,252,53,151,94,81,60,179,111,202,246,205,23,104,207,154,230,219,43,91,130,173,29,91,22,199,30,117,84,64,40,192,27,183,235,70,22,117,52,204,89,6,72,142,80,113,230,252,21,162,242,239,12,44,15,2,10,20,93,8,163,215,159,120,241,80,95,99,129,48,224,77,225,97,19,252,55,191,207,230,128,203,76,125,21,230,62,181,167,9,95,53,181,188,76,128,82,15,181,177,232,120,61,202,232,50,228,143,35,121,153,71,253,66,116,238,129,132,1,14,187,123,184,214,130,109,44,41,68,138,18,13,3,120,42,36,199,108,226,138,129,29,138,170,13,68,174,118,86,171,189,202,153,127,33,24,150,94,43,5,41,109,139,68,96,218,129,150,29,111,221,21,46,111,117,100,203,163,193,240,56,181,169,215,75,234,155,177,226,128,242,95,206,9,214,212,231,38,252,0,16,181,153,18,100,215,60,67,233,120,125,56,224,135,65,228,25,134,78,77,157,24,180,58,73,164,227,251,17,195,191,225,73,9,100,31,51,123,214,136,131,11,254,91,25,145,83,136,109,185,251,105,112,178,246,82,181,100,108,131,4,94,105,13,243,144,34,15,95,124,184,205,89,162,115,226,67,44,183,90,143,230,1,114,105,3,161,195,91,239,101,154,251,109,100,211,210,250,32,233,138,246,172,81,69,39,124,124,234,202,184,232,71,254,174,49,77,150,205,100,108,31,172,247,203,13,21,165,82,23,117,140,123,125,187,191,242,250,186,47,9,59,169,65,42,198,202,253,26,117,213,241,48,109,179,129,112,244,44,202,44,227,97,20,60,176,250,217,152,37,118,90,255,23,52,32,146,94,95,88,238,104,172,195,225,221,97,5,53,51,191,45,175,189,165,83,137,235,197,81,238,171,57,58,85,107,219,143,34,252,230,179,147,180,89,55,95,212,53,13,163,169,192,202,40,38,64,72,16,251,18,117,143,88,71,132,87,80,109,101,28,190,29,153,29,106,222,55,221,184,134,180,97,71,142,21,6,121,62,58,60,144,237,11,35,141,93,34,66,89,163,67,196,214,238,161,37,100,184,149,94,9,140,91,180,110,33,190,37,219,26,108,103,72,98,224,121,183,235,107,58,10,87,198,103,52,11,7,89,174,68,14,157,112,76,76,47,231,91,67,74,76,95,177,107,200,44,79,254,46,249,189,175,8,28,49,45,142,87,32,190,114,198,63,169,72,43,71,7,92,19,17,249,155,238,15,216,111,175,59,214,167,188,174,110,248,190,70,212,2,20,150,154,150,170,55,27,112,246,169,51,133,108,137,34,59,56,85,115,48,121,225,100,66,104,43,132,246,70,221,190,44,209,81,32,223,75,47,70,157,47,136,37,233,47,210,232,226,105,222,98,201,97,108,41,211,99,17,116,96,13,82,28,80,14,38,97,248,7,150,219,156,123,169,62,254,114,198,88,164,199,161,155,37,135,187,173,144,222,56,237,177,42,120,101,0,145,254,214,128,35,69,228,177,63,190,76,202,246,103,129,125,110,122,121,174,173,220,81,67,51,222,244,7,29,174}, {112,78,205,251,34,248,118,243,198,22,202,94,151,49,153,145,8,84,20,191,29,102,39,70,179,250,239,124,129,138,29,214,171,242,40,113,96,68,4,234,147,22,187,70,139,233,38,20,208,76,248,191,187,227,221,189,65,14,200,173,139,153,19,118,132,205,153,225,76,119,157,16,139,28,241,7,188,233,89,160,133,189,55,44,245,253,219,35,216,141,206,65,70,148,188,44,157,60,43,238,212,153,195,8,163,241,23,135,11,195,170,228,141,31,51,169,196,152,21,132,92,122,82,137,21,178,100,52,67,71,187,198,122,177,70,140,201,1,222,81,124,206,147,38,77,162,125,113,138,231,147,115,79,182,82,84,107,243,208,63,236,1,57,130,7,239,10,219,132,14,191,103,121,169,90,209,102,99,30,193,42,197,146,83,23,194,197,82,1,15,69,247,82,214,94,240,228,129,87,4,200,86,128,114,68,19,132,111,228,87,187,76,152,144,8,8,194,236,182,85,184,187,75,145,248,187,20,231,15,243,162,75,36,7,144,82,173,245,172,111,199,253,96,95,252,143,226,171,228,254,50,126,253,189,190,188,84,81,216,40,224,213,129,159,159,131,71,209,104,116,92,93,207,222,77,210,203,190,252,34,160,236,239,105,45,147,174,137,128,119,176,44,121,52,226,14,67,13,45,231,186,86,36,250,151,89,113,108,32,50,106,8,125,103,56,4,112,8,213,205,110,3,49,238,77,97,139,80,60,212,130,64,201,174,219,244,4,130,150,116,195,183,175,79,53,205,134,35,10,56,230,135,94,125,33,30,217,108,235,184,230,32,134,207,126,28,26,128,215,178,211,204,201,198,85,99,188,250,123,187,53,204,172,137,206,34,249,66,44,173,41,65,35,46,50,219,20,233,4,39,37,181,23,93,39,174,53,162,38,15,75,97,208,113,18,187,227,251,106,197,229,42,223,242,175,238,234,191,195,30,206,191,93,225,16,213,135,67,229,53,70,70,139,84,212,70,180,142,81,131,38,118,126,223,88,27,247,46,191,156,188,179,210,17,123,80,252,254,90,167,154,193,156,31,63,223,86,26,194,89,100,7,245,133,231,29,33,146,217,184,231,156,138,24,79,117,97,181,105,156,38,206,52,103,162,158,0,142,59,63,79,146,254,224,23,90,48,248,90,183,50,29,9,18,211,175,233,156,113,34,65,255,190,28,21,136,234,116,78,217,224,51,168,204,18,65,76,116,103,194,236,24,192,18,42,3,220,32,239,57,157,130,18,59,194,73,111,55,237,47,167,156,204,174,113,14,16,6,122,253,133,205,8,251,152,206,245,57,58,15,153,242,43,180,99,41,50,126,187,29,202,91,158,198,2,202,230,30,136,193,69,108,148,246,160,211,147,173,192,101,84,16,235,149,189,80,183,155,251,91,6,120,246,63,94,169,41,69,251,251,224,31,233,241,80,107,49,183,135,168,185,219,17,200,89,61,32,38,98,87,70,117,184,252,166,18,192,238,15,59,182,35,195,75,162,104,231,113,145,235,193,233,235,87,138,249,227,161,203,1,13,35,147,46,249,16,41,222,65,145,197,54,33,175,164,235,116,60,254,66,42,34,129,21,177,254,229,163,129,161,118,136,143,153,146,93,50,249,89,63,247,119,191,96,229,49,236,106,111,57,62,46,72,94,221,59,127,14,139,158,63,206,236,83,176,6,252,13,162,199,251,180,154,16,220,129,69,129,5,190,39,231,223,236,193,97,164,147,235,200,238,119,175,145,36,133,180,68,233,90,170,31,56,138,59,146,54,5,68,98,106,1,16,151,177,218,51,119,205,6,29,75,253,11,62,163,100,163,180,237,119,161,160,181,90,1,199,25,94,145,207,154,29,182,38,218,225,28,240,62,175,40,44,86,114,62,37,86,110,93,226,224,31,80,107,189,3,128,149,202,74,134,72,171,38,148,25,34,227,46,72,196,119,217,96,139,217,21,194,2,29,209,171,172,121,159,21,111,193,62,81,207,147,113,235,238,223,2,145,140,101,18,119,159,53,87,15,184,14,45,129,151,137,57,99,77,27,151,60,8,162,201,87,180,193,19,218,126,235,255,121,236,17,253,83,167,15,35,243,38,3,57,251,165,150,11,47,112,126,134,144,4,167}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,0,1,255,0,0,0,1,0,255,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,255,1,0,255,0,0,0,255,255,0,0,0,0,0,0,0,1,0,0,0,255,0,1,0,0,255,0,0,255,255,0,255,0,0,255,0,0,1,0,0,1,0,1,1,1,0,0,0,255,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,255,1,0,1,0,255,0,0,1,0,0,0,0,1,0,255,255,0,0,1,0,0,0,0,0,1,255,1,0,255,0,0,255,0,0,1,0,0,0,0,1,255,1,1,0,255,0,255,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,1,1,255,0,255,0,255,1,0,1,0,0,0,0,255,0,0,0,255,0,1,0,0,0,0,0,255,0,255,1,255,0,255,255,0,0,255,1,0,0,0,0,0,1,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,255,0,255,255,255,255,255,0,1,1,255,255,0,1,255,1,0,1,255,0,255,0,0,0,0,255,0,0,1,0,255,1,0,0,0,0,1,255,1,0,0,0,0,0,0,0,0,255,1,0,1,1,1,1,1,0,0,0,0,255,1,1,1,0,255,255,0,255,1,0,1,1,0,0,0,255,0,0,0,1,0,0,0,1,1,0,255,0,0,0,0,0,1,0,0,0,1,255,0,255,255,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,255,1,0,0,0,0,1,0,1,0,0,0,1,0,0,255,0,255,0,0,255,1,0,1,0,0,0,255,255,255,0,1,0,1,0,1,0,1,0,0,0,1,1,1,255,0,0,0,255,0,1,0,0,1,1,1,0,255,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,255,0,0,0,255,0,0,0,1,255,1,0,0,255,0,0,0,0,0,0,1,1,255,0,0,1,0,0,255,0,0,0,0,0,0,1,255,0,255,1,255,255,1,0,0,255,1,0,0,0,1,1,0,255,0,0,0,0,255,0,1,0,255,0,0,0,255,0,0,255,255,255,0,255,0,0,0,0,0,0,255,0,0,0,0,1,0,1,0,1,1,255,255,0,0,255,0,255,0,0,0,0,0,0,255,0,0,1,0,0,1,0,1,0,0,1,0,255,0,1,0,0,0,255,0,0,255,0,255,0,1,0,0,0,255,1,0,0,0,0,255,0,0,0,255,0,1,0,1,0,0,255,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,255,0,255,0,255,255,1,1,255,255,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,255,255,1,1,0,0,1,1,0,1,0,0,0,0,1,255,255,255,255,255,1,255,0,0,255,0,0,0,255,1,0,1,0,0,1,1,0,0,0,1,0,0,0,255,0,255,255,1,0,0,1,0,0,0,0,0,0,255,0,255,255,1,1,0,0,1,0,0,0,0,255,1,255,1,255,255,0,255,255,0,255,1,0,0,0,255,0,0,0,0,255,0,0,0,1,255,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,1,0,255,0,0,255,255,0,255,255,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,1,1,1,255,1,255,0,0,1,1,0,0,0,255,1,0,0,0,0,255,1,1,1,0,0,255,1,255,255,0,255,0,255,255,1,1,1,0,0,0,1,0,1,1,0,255,0,255,1,0,0,0,0,255,1,1,0,1,255,1,255,0,255,0,1,0,0,0,0,1,0,0,0,0,255,0,255,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,255,0,255,0,0,0,1,0,0,255,1,255,0,0,0,0,255,0,0,255,0,0,255,0,1,0,1,0,0,255,255,1,1,1,255,255,1,0,255,0,0,255,0,0,0,0,0,0,0,255,0,1,0,0,1,0,0,0,0,255,0,255,1,1,255,0,0,0,1,0,0,1,1,0,255,0,0,0,0,0,0,0,0,255,1,0,255,1,0,255,1,1,1,0,1,1,1,0,1,0,1,0,0,0}, {0,1,255,0,0,0,1,255,0,0,0,0,0,1,1,0,0,1,0,0,255,255,255,1,0,0,255,0,0,0,1,1,0,1,0,0,255,255,0,0,255,0,0,0,0,255,255,255,0,255,0,1,0,255,1,0,0,1,1,1,0,255,0,0,255,1,0,255,1,0,0,0,0,255,0,0,0,1,0,255,0,255,0,0,0,255,1,0,0,0,1,1,0,0,255,1,1,0,1,0,255,255,1,0,1,1,0,255,0,255,0,255,0,0,0,0,255,255,0,0,0,0,1,255,0,0,0,1,0,0,255,255,0,255,0,0,255,0,255,0,1,0,0,0,1,0,0,0,1,0,1,0,0,255,1,1,1,0,0,255,0,255,1,0,0,0,0,0,0,1,0,1,255,0,0,1,0,255,0,1,0,1,0,0,0,255,0,0,0,1,0,0,0,0,0,1,0,255,0,0,0,0,0,255,0,0,255,255,255,0,0,0,0,255,0,1,1,1,255,0,1,1,255,0,0,1,0,1,255,255,255,0,0,1,1,0,0,255,0,255,0,1,0,0,0,0,0,255,1,0,1,255,0,0,1,0,255,0,1,0,1,0,0,0,255,0,1,255,0,0,255,0,0,0,0,255,1,0,255,0,1,255,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,0,1,0,255,255,255,1,0,0,0,0,0,0,255,0,1,0,1,0,0,1,1,1,255,0,0,255,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,255,0,0,255,255,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,255,1,1,255,1,0,1,0,0,0,1,0,255,0,0,1,255,0,0,255,0,0,0,0,0,0,0,1,255,1,0,0,0,1,0,255,0,0,0,1,255,255,1,0,255,255,0,255,0,0,255,0,255,255,0,1,1,0,0,0,0,255,255,0,0,1,0,255,0,0,0,1,0,255,0,255,0,1,255,0,255,0,0,0,0,255,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,255,0,0,1,0,255,1,1,0,0,255,1,255,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,255,0,255,255,255,0,0,0,0,0,0,255,0,0,0,0,255,0,1,0,255,255,255,0,1,0,0,255,0,1,0,0,0,1,255,255,0,0,0,0,0,0,255,1,1,1,0,0,0,1,1,1,0,1,255,255,1,0,0,1,0,255,0,0,1,0,255,1,0,0,255,1,0,0,255,0,0,1,0,0,255,1,0,1,0,1,255,0,0,255,0,0,0,0,1,0,1,0,0,0,255,0,255,0,255,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,255,0,1,0,255,0,0,1,0,0,0,0,0,0,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,255,0,1,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,1,255,0,0,0,0,0,255,255,0,255,0,0,255,0,0,255,0,0,0,0,0,1,255,1,255,1,0,255,0,1,255,255,0,0,1,255,0,255,0,1,0,0,255,255,255,0,0,1,1,0,255,1,0,1,0,0,0,0,0,0,255,0,0,0,0,255,255,255,1,1,0,0,1,255,0,255,0,255,255,0,1,0,0,255,255,1,255,255,0,255,1,255,255,0,0,0,0,0,0,0,0,0,0,1,255,0,255,0,1,1,0,1,255,0,255,0,0,0,0,0,0,0,255,1,0,1,1,0,255,255,0,255,1,255,1,0,0,1,255,0,255,0,1,0,1,0,0,0,0,0,255,1,0,1,0,1,0,255,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,1,255,1,255,255,0,0,255,0,0,1,0,0,0,255,255,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,255,0,1,0,1,0,255,0,0,1,255,0,0,0,0,255,0,255,0,0,0,255,0,0,255,255,0,1,0,0,0,0,1}, {0,0,255,0,255,255,1,0,0,0,0,1,0,0,255,1,255,1,255,0,255,1,0,1,0,255,0,1,0,255,1,0,1,255,0,1,0,255,1,1,1,0,0,0,0,0,0,1,0,0,255,0,0,1,1,0,0,0,1,0,0,255,1,255,0,0,255,0,255,255,0,0,255,1,255,0,0,1,1,0,0,255,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,255,0,1,255,0,0,1,0,0,0,0,0,1,255,0,1,1,0,255,0,0,255,0,0,1,0,1,255,1,0,0,0,0,255,0,0,255,1,0,0,1,0,0,255,0,0,1,0,1,255,0,1,0,0,1,0,0,0,1,255,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,255,0,0,1,0,0,1,1,0,255,1,0,0,0,255,0,1,0,0,0,0,255,0,0,255,255,0,255,255,255,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,255,0,0,1,0,0,0,0,1,0,255,255,255,255,0,0,0,255,255,0,0,0,255,0,0,0,0,1,1,0,0,255,1,0,0,255,0,0,255,0,0,0,1,255,0,0,0,1,1,0,255,0,1,1,255,255,1,255,0,0,0,1,0,255,255,0,0,255,1,0,0,255,1,0,255,1,0,0,0,1,1,0,0,0,255,0,1,0,0,0,0,0,0,1,1,0,255,255,0,0,255,0,1,1,0,255,255,255,0,0,0,255,0,255,255,0,0,255,0,255,0,0,255,0,255,1,1,255,1,1,0,0,255,0,0,0,255,1,255,0,0,0,1,0,0,0,255,0,0,255,0,1,1,255,0,255,255,255,255,0,0,255,0,0,255,0,255,0,0,1,255,0,255,0,0,0,0,0,0,1,0,0,1,0,0,255,0,255,0,0,255,1,0,0,0,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,1,0,0,1,0,255,255,0,0,0,0,1,1,255,0,255,0,0,255,1,0,1,0,0,0,255,0,0,0,0,0,1,0,0,255,0,0,0,255,0,0,0,255,0,255,255,0,0,1,1,1,255,0,255,255,0,255,0,255,1,0,1,255,255,0,0,1,0,1,0,1,0,1,1,0,0,0,255,0,1,255,255,0,255,255,0,1,0,0,255,1,0,0,1,0,255,0,0,1,0,255,0,1,255,0,0,255,1,0,0,0,1,0,255,0,255,0,1,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,255,255,0,0,0,1,0,0,255,255,0,0,255,0,0,0,0,0,0,255,1,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,1,255,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,255,0,0,255,0,1,0,255,0,0,0,1,255,1,0,255,0,0,0,0,0,0,0,0,0,255,0,255,1,0,0,1,0,255,0,1,0,255,0,0,0,0,255,255,1,0,255,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,255,255,1,255,0,0,0,0,0,0,0,1,255,0,0,1,0,0,255,0,0,0,0,0,0,0,0,255,1,0,0,0,0,0,255,0,0,1,0,0,0,1,0,1,0,255,0,0,255,255,0,1,0,1,0,0,0,0,0,1,0,0,255,0,0,255,1,0,255,0,1,1,255,0,0,1,0,255,0,0,0,0,1,255,255,0,0,255,255,1,0,0,1,0,0,1,0,0,255,1,1,0,1,0,0,0,0,255,1,0,255,1,0,255,1,0,0,255,255,0,0,255,0,0,1,0,1,0,0,255,1,0,1,0,1,0,0,0,255,1,0,0,255,0,255,0,1,255,255,1,0,0,0,0,0,0,255,255,0,255,0,0,255,255,0,255,0,255,0,0,0,0,0,1,255,0,0,0,1,0,0,1,0,0,255,1,1,1,0,1,0,1,0,0,1,1,255,0,1,0,1,0,255,1,0,0,255,255,1,0,1,0,255,0,0,0,0,255,0,0,1,255,255,0,1,0,0,1,1,0,255,1,0,0,255,1,0,0,1,1,0,255,255,1,0,0,1,0,0,0,255,0,0,1,1,0,1}, } ; static const unsigned char precomputed_core_weightsntrup953_k[precomputed_core_weightsntrup953_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_weightsntrup953_c[precomputed_core_weightsntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_weightsntrup953_impl(long long impl) { unsigned char *h = test_core_weightsntrup953_h; unsigned char *n = test_core_weightsntrup953_n; unsigned char *k = test_core_weightsntrup953_k; unsigned char *c = test_core_weightsntrup953_c; unsigned char *h2 = test_core_weightsntrup953_h2; unsigned char *n2 = test_core_weightsntrup953_n2; unsigned char *k2 = test_core_weightsntrup953_k2; unsigned char *c2 = test_core_weightsntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_weightsntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_weightsntrup953(impl); printf("core_weightsntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_weightsntrup953_implementation(impl),ntruprime_dispatch_core_weightsntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_weightsntrup953; printf("core_weightsntrup953 selected implementation %s compiler %s\n",ntruprime_core_weightsntrup953_implementation(),ntruprime_core_weightsntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } checksum_expected(core_weightsntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_weightsntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_weightsntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_weightsntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_weightsntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_weightsntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_weightsntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_weightsntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_weightsntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_weightsntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_weightsntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"weightsntrup953")) return; storage_core_weightsntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_weightsntrup953_h = aligned(storage_core_weightsntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_weightsntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_weightsntrup953_n = aligned(storage_core_weightsntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_weightsntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_weightsntrup953_k = aligned(storage_core_weightsntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_weightsntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_weightsntrup953_c = aligned(storage_core_weightsntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_weightsntrup953_h2 = callocplus(maxalloc); test_core_weightsntrup953_h2 = aligned(storage_core_weightsntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_weightsntrup953_n2 = callocplus(maxalloc); test_core_weightsntrup953_n2 = aligned(storage_core_weightsntrup953_n2,crypto_core_INPUTBYTES); storage_core_weightsntrup953_k2 = callocplus(maxalloc); test_core_weightsntrup953_k2 = aligned(storage_core_weightsntrup953_k2,crypto_core_KEYBYTES); storage_core_weightsntrup953_c2 = callocplus(maxalloc); test_core_weightsntrup953_c2 = aligned(storage_core_weightsntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_weightsntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_weightsntrup953();++impl) forked(test_core_weightsntrup953_impl,impl); ++test_core_weightsntrup953_h; ++test_core_weightsntrup953_n; ++test_core_weightsntrup953_k; ++test_core_weightsntrup953_c; ++test_core_weightsntrup953_h2; ++test_core_weightsntrup953_n2; ++test_core_weightsntrup953_k2; ++test_core_weightsntrup953_c2; } free(storage_core_weightsntrup953_c2); free(storage_core_weightsntrup953_k2); free(storage_core_weightsntrup953_n2); free(storage_core_weightsntrup953_h2); free(storage_core_weightsntrup953_c); free(storage_core_weightsntrup953_k); free(storage_core_weightsntrup953_n); free(storage_core_weightsntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_wforcesntrup1013.c0000644000000000000000000016173514705505543024130 0ustar rootroot/* ----- core/wforcesntrup1013, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_wforcesntrup1013_checksums[] = { "d4e33f5219277f77ca64411ebcc9ee0c3d5274f5b9ebb9301d5602b2f110d767", "336f49eebed9c310480fd766968fdd1ad7bc3f0ba9779486e86244a77f3da07e", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_wforcesntrup1013_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_wforcesntrup1013_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_wforcesntrup1013_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_wforcesntrup1013_CONSTBYTES static void *storage_core_wforcesntrup1013_h; static unsigned char *test_core_wforcesntrup1013_h; static void *storage_core_wforcesntrup1013_n; static unsigned char *test_core_wforcesntrup1013_n; static void *storage_core_wforcesntrup1013_k; static unsigned char *test_core_wforcesntrup1013_k; static void *storage_core_wforcesntrup1013_c; static unsigned char *test_core_wforcesntrup1013_c; static void *storage_core_wforcesntrup1013_h2; static unsigned char *test_core_wforcesntrup1013_h2; static void *storage_core_wforcesntrup1013_n2; static unsigned char *test_core_wforcesntrup1013_n2; static void *storage_core_wforcesntrup1013_k2; static unsigned char *test_core_wforcesntrup1013_k2; static void *storage_core_wforcesntrup1013_c2; static unsigned char *test_core_wforcesntrup1013_c2; #define precomputed_core_wforcesntrup1013_NUM 9 static const unsigned char precomputed_core_wforcesntrup1013_h[precomputed_core_wforcesntrup1013_NUM][crypto_core_OUTPUTBYTES] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,255,0,1,0,255,0,0,0,0,1,0,0,255,255,0,0,0,255,255,255,1,0,0,1,1,1,0,255,0,255,0,0,255,255,0,0,0,0,0,1,255,0,255,1,0,255,0,0,255,255,1,255,1,0,0,0,1,255,255,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,255,0,0,1,0,0,0,1,0,1,0,255,0,255,0,1,255,255,0,0,255,0,0,1,1,1,0,0,255,0,1,1,0,255,0,255,0,0,255,0,1,0,1,0,0,0,1,0,255,1,0,255,1,1,1,0,0,255,0,0,1,1,255,1,255,255,255,1,0,255,0,1,0,0,0,0,0,0,0,255,0,255,1,0,0,255,255,0,0,0,255,1,0,255,0,0,1,255,0,0,0,0,0,0,1,1,1,255,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,255,1,0,0,255,0,0,0,0,255,0,0,1,0,255,0,0,0,1,0,255,0,0,1,0,0,0,1,0,0,0,1,1,0,255,0,255,255,0,0,0,255,0,0,0,0,255,0,255,1,0,0,255,255,0,0,1,0,0,255,255,255,255,0,0,255,1,255,255,255,255,0,255,0,0,0,255,0,0,0,1,255,0,0,0,0,0,0,0,0,0,1,0,255,0,1,1,0,255,0,0,1,255,0,255,255,1,0,0,0,1,255,255,1,1,0,0,255,255,0,1,255,0,1,255,1,1,0,255,0,0,255,255,0,1,0,0,0,1,0,255,255,0,1,0,1,0,0,255,1,0,255,0,1,1,0,1,255,0,0,0,0,255,1,0,0,0,0,1,1,255,255,0,0,0,255,1,255,1,0,1,1,255,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,255,0,1,0,0,255,1,1,0,0,0,255,0,0,255,1,255,0,1,0,0,0,0,0,255,1,0,1,255,0,255,0,0,255,255,0,255,255,0,0,0,255,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,255,0,0,255,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,255,0,0,0,1,0,0,255,0,1,0,0,0,255,0,1,0,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,255,255,1,0,0,0,1,0,0,255,255,1,1,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,1,255,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,255,0,1,255,0,0,0,255,255,0,0,0,1,0,255,255,255,1,0,1,255,1,1,255,255,0,1,1,0,1,1,0,255,0,255,0,255,255,0,0,255,255,0,1,0,0,255,0,1,1,255,1,0,0,255,0,255,255,1,255,255,0,255,1,255,0,0,1,255,0,0,0,255,0,1,0,1,0,0,0,0,255,255,0,0,255,1,255,0,0,1,255,255,0,1,0,255,255,0,255,1,1,1,0,0,0,1,0,255,0,1,0,0,0,1,1,0,1,1,1,0,1,255,0,0,1,255,0,1,0,255,0,0,255,0,0,0,255,0,255,1,255,0,255,0,0,0,0,255,0,1,1,0,255,0,1,0,0,255,0,255,0,0,0,0,0,0,255,0,255,1,255,255,0,0,0,0,0,0,1,255,1,255,0,1,1,1,0,0,0,255,0,255,255,1,255,0,0,0,1,0,0,1,0,0,0,255,255,1,255,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,255,255,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,255,0,0,0,255,0,255,255,0,0,0,0,1,0,255,1,255,255,0,255,0,0,0,0,1,0,1,1,255,0,255,0,255,0,255,0,0,1,1,0,1,0,255,0,0,255,255,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,255,255,255,1,0,255,255,1,1,255,0,1,1,0,1,255,0,0,0,255,255,0,0,255,0,0,0,255,1,0,0,0,0,0,1,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,255,0,1,0,0,255,0,0,0,255,1,255,0,255,255,255,1,1,0,0,0,255,0,0,1,0,0,0,0,0,255,1,0,0,1,255,1,0,0,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,255,0,1,255,0,255,255,255,1,255}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup1013_n[precomputed_core_wforcesntrup1013_NUM][crypto_core_INPUTBYTES] = { {25,27,143,246,234,88,86,174,8,34,215,79,62,194,244,11,6,136,133,117,201,7,241,211,105,156,118,198,83,65,165,243,21,179,147,64,178,3,114,134,216,46,123,209,252,77,47,171,44,224,192,248,134,178,110,34,81,230,110,145,234,159,104,200,140,156,225,78,106,200,47,91,249,95,188,164,33,134,63,173,103,212,78,71,92,89,61,39,12,110,59,26,107,92,218,254,83,248,130,183,80,134,159,156,90,71,227,243,5,49,185,136,77,75,11,155,226,165,8,47,96,144,132,249,166,74,190,117,223,84,216,64,66,109,73,250,195,27,62,11,87,98,163,137,117,129,201,242,46,214,110,20,221,9,232,112,117,246,184,236,249,18,217,74,61,167,99,164,210,107,64,239,85,39,183,67,48,136,128,117,137,42,118,243,52,197,109,58,13,242,237,116,11,33,168,208,20,169,155,239,217,140,235,140,234,11,88,86,171,175,31,249,10,156,61,52,2,108,7,235,211,244,110,148,24,184,176,46,42,67,99,139,132,105,85,178,50,234,119,189,206,148,250,131,42,183,215,22,193,161,179,86,91,107,18,181,232,47,14,144,126,155,173,115,50,163,161,62,194,20,239,238,227,99,239,96,106,127,236,149,118,136,174,200,10,23,109,191,121,154,213,18,7,234,116,173,29,150,185,242,142,233,17,99,99,23,249,205,126,246,9,145,98,231,153,128,196,28,105,10,91,225,165,103,242,118,139,226,164,163,180,0,19,39,252,64,184,254,60,78,43,215,7,126,153,138,108,137,212,106,236,217,134,31,229,185,74,29,242,147,215,119,56,44,29,75,240,158,192,15,188,24,180,72,177,62,62,109,128,206,51,126,10,107,67,67,172,57,11,40,160,58,10,59,193,56,233,185,98,239,16,148,9,162,100,224,150,158,137,23,62,28,103,33,100,207,206,31,62,197,147,130,31,231,120,77,30,114,185,81,222,45,211,23,134,94,236,175,76,10,148,167,245,121,80,223,217,203,209,202,58,135,203,247,101,196,0,213,197,53,137,0,7,137,195,31,222,228,236,89,22,101,227,168,179,17,243,178,7,210,89,111,47,244,147,104,234,135,158,253,108,141,209,186,122,215,221,135,21,212,126,139,241,200,226,130,50,174,75,247,105,218,24,143,162,137,99,178,38,37,151,184,242,210,134,233,114,135,61,11,43,97,192,87,8,149,205,15,250,1,218,100,67,220,63,123,101,12,77,139,232,156,41,129,75,112,146,92,145,78,71,162,121,153,113,212,39,89,3,149,135,87,244,114,63,45,179,89,159,106,211,97,88,126,7,66,77,65,18,142,7,253,234,147,24,234,129,255,1,164,200,147,171,38,183,33,240,197,15,231,213,226,38,166,46,64,111,11,215,233,231,107,222,201,27,216,247,95,23,117,12,227,153,154,231,53,96,154,255,191,164,212,235,88,72,177,12,228,57,75,70,127,181,192,178,118,204,169,151,83,231,21,5,212,56,83,169,140,216,231,218,154,114,205,217,65,129,58,61,140,154,177,100,105,26,216,24,56,224,234,228,130,175,245,2,247,169,31,234,14,182,188,3,177,210,228,210,87,114,221,53,163,87,80,162,101,163,207,144,140,220,35,174,162,104,230,89,245,153,61,33,94,81,178,10,2,146,252,217,179,112,155,241,200,68,121,104,73,165,49,140,170,94,163,30,112,230,232,125,91,17,173,189,101,50,46,236,225,161,160,108,190,85,233,155,250,14,199,234,226,77,135,142,92,174,233,250,81,166,48,155,171,245,34,84,55,125,252,7,139,162,207,66,185,197,105,42,163,49,244,244,49,130,197,195,3,242,69,236,199,254,154,249,238,23,212,145,222,230,107,196,72,25,54,0,131,59,42,226,146,121,149,139,4,246,215,175,132,183,244,123,97,223,249,22,61,140,43,179,73,176,120,56,208,98,222,214,57,60,98,206,150,3,67,179,88,174,82,27,193,23,79,109,117,120,96,89,235,58,55,14,99,90,178,209,11,136,29,224,9,139,110,213,115,218,211,149,250,196,116,212,71,247,31,42,2,41,5,224,169,115,184,94,190,42,178,173,93,20,94,7,241,136,62,10,164,84,61,255,92,191,69,0,139,82,245,145,130,120,17,207,68,27,157,27,147,210,170,132,196,139,63,20,101,182,55,11,178,94,98,247,65,21,60,63,236,30,241,46,236,8,253,102,159,198,159,104,24,101,166,82,126,68,238,249,188,172,176,126,126,37,201,223,44,130,80,92,214,247,248,219,246,118}, {89,127,42,16,248,28,141,88,128,228,30,92,186,179,101,252,227,227,79,17,253,67,147,106,112,205,152,177,238,251,35,246,136,240,213,179,222,204,105,55,77,33,176,194,83,87,183,105,71,30,67,138,79,248,133,87,29,72,109,31,24,56,191,94,177,82,238,5,126,164,51,230,243,210,243,75,88,158,74,252,254,108,42,162,59,182,254,100,126,196,91,30,63,188,249,106,147,27,87,69,104,255,166,192,49,178,158,143,35,93,19,91,4,54,152,50,225,244,120,81,63,86,27,148,7,99,142,118,94,171,118,77,168,157,94,150,249,129,220,182,49,49,121,14,224,117,109,237,66,231,52,145,220,74,161,184,196,231,126,171,97,32,6,105,140,133,13,118,14,202,30,160,231,104,141,134,74,242,250,97,78,230,87,188,86,243,11,251,165,96,200,16,20,199,68,81,202,11,253,91,35,50,85,218,206,160,203,86,147,32,212,143,150,50,205,231,75,17,117,146,41,159,169,36,205,126,146,161,56,255,154,169,215,76,203,237,70,215,151,70,163,252,188,185,176,175,158,52,15,85,239,250,26,98,143,212,50,193,136,224,188,66,62,18,157,24,60,88,205,24,23,170,201,216,203,201,91,242,45,223,22,231,53,231,190,104,22,148,47,72,180,166,198,2,1,55,158,230,93,90,199,145,187,20,243,185,174,91,140,12,67,234,142,96,183,190,237,190,162,47,203,48,11,73,51,159,19,21,103,50,144,251,182,220,198,57,175,223,59,26,148,233,113,81,51,177,250,125,26,129,231,9,161,230,244,79,111,214,207,111,4,123,190,251,227,250,220,101,18,134,53,88,154,166,200,247,109,47,207,175,193,40,44,86,149,251,174,17,5,159,255,148,173,214,20,164,167,183,248,111,110,252,155,45,151,67,139,36,230,24,199,244,217,78,158,20,165,198,33,127,230,132,52,123,103,167,39,40,60,204,15,191,190,221,146,220,80,79,26,16,224,226,80,195,181,147,1,35,216,220,102,131,202,8,120,33,100,193,76,247,8,251,123,183,237,86,209,235,103,197,139,81,10,5,189,44,10,176,16,11,132,180,123,204,153,5,48,21,13,153,219,229,136,21,245,255,61,117,185,240,186,79,35,132,17,26,177,132,64,143,183,168,192,142,4,180,176,23,114,181,225,234,48,206,74,202,178,15,211,206,55,61,226,26,247,208,48,224,43,43,69,40,32,16,104,195,22,71,21,17,202,249,101,13,115,177,34,159,131,213,246,199,175,242,18,155,137,48,115,187,165,162,128,219,130,18,114,68,107,44,203,190,223,86,127,152,93,217,61,192,68,199,105,237,213,70,101,188,136,153,216,214,218,224,21,241,213,167,14,118,156,69,132,142,245,49,155,74,126,107,86,219,10,171,20,125,75,103,27,225,254,84,125,75,247,252,90,120,3,248,116,196,122,105,200,4,187,194,233,94,73,107,205,218,202,190,181,113,129,151,118,105,106,157,112,4,181,164,71,207,50,165,88,166,50,12,8,171,136,158,220,230,59,250,38,231,56,133,9,7,199,166,15,180,182,92,114,218,184,106,87,144,21,111,162,170,156,123,76,121,105,114,7,169,64,160,114,160,153,60,158,45,40,162,176,97,102,172,61,206,134,20,252,56,29,156,211,153,12,82,218,45,130,50,236,92,92,145,99,185,163,154,233,145,9,229,159,139,144,204,28,82,152,62,127,239,219,165,105,111,210,126,218,56,206,152,194,46,104,235,152,230,196,128,3,175,131,206,224,109,103,113,173,25,54,217,120,116,209,17,121,249,172,208,238,25,91,165,46,187,150,99,138,155,225,60,31,160,119,60,141,138,42,10,198,253,249,131,216,92,86,252,119,192,155,180,56,171,236,84,177,34,22,138,11,210,76,85,138,209,215,210,170,230,23,103,241,239,170,179,45,254,87,16,248,181,224,253,42,38,190,122,190,198,140,160,247,16,12,145,122,59,159,142,43,174,34,96,90,123,194,155,154,40,107,168,108,248,215,183,28,193,198,98,8,98,226,237,138,87,231,16,141,202,25,53,210,198,90,225,169,54,84,229,88,84,139,246,146,250,87,148,151,241,215,96,20,57,225,127,66,139,249,132,115,37,64,125,7,54,28,200,17,82,199,146,184,228,243,117,245,173,172,59,126,127,130,163,219,121,78,192,10,126,88,59,35,135,109,222,129,145,241,158,214,106,241,50,54,39,139,113,242,121,54,245,112,156,209,103,10,245,82,222,162,37,35,95,242,195,179,198,190}, {193,222,129,63,78,17,235,28,181,241,75,96,112,211,80,94,154,201,60,190,29,192,210,21,71,45,170,191,159,185,196,35,107,201,111,233,2,66,125,15,241,49,199,8,30,24,42,135,190,159,122,250,50,22,44,85,39,9,64,66,80,49,160,87,83,12,92,218,247,56,120,68,7,49,83,250,52,230,149,120,158,150,178,38,6,65,221,40,249,197,153,216,176,2,95,58,214,41,105,215,102,46,31,231,163,5,160,138,46,133,200,190,226,249,155,96,97,6,23,3,212,200,107,64,31,241,110,48,240,252,177,12,99,231,174,85,224,239,34,237,189,157,117,80,19,177,74,54,51,194,122,171,153,87,244,31,69,136,11,140,125,141,91,214,190,222,91,124,243,93,212,178,59,76,137,128,121,87,186,142,151,175,176,234,58,160,227,62,155,247,94,60,131,53,132,120,212,15,172,49,214,39,137,218,178,127,132,206,229,29,140,58,231,179,63,24,142,137,189,70,48,215,136,165,53,10,219,159,124,215,81,177,224,225,149,80,232,158,146,76,252,247,144,144,194,122,172,248,94,98,39,55,62,46,247,151,241,42,27,151,103,14,122,251,70,220,177,32,217,67,147,84,184,190,111,141,230,160,143,233,18,188,195,125,19,198,97,95,163,67,136,129,129,172,21,167,239,141,0,54,143,29,94,183,196,192,219,216,128,114,66,147,196,33,108,231,17,137,43,106,166,144,207,50,130,15,251,137,108,1,254,48,10,40,95,26,16,108,50,202,138,36,189,181,110,11,20,250,111,71,70,17,113,150,77,114,171,134,191,241,33,209,180,195,29,238,195,26,20,255,234,24,44,130,55,64,170,89,214,48,139,220,122,77,227,81,24,243,237,43,250,127,184,172,89,169,193,190,27,197,163,124,201,121,221,119,250,82,107,81,82,51,172,164,82,88,36,8,157,218,60,115,234,5,227,118,51,229,106,18,69,107,106,172,77,246,45,45,145,62,250,189,44,181,225,74,29,7,217,98,82,219,33,90,59,44,220,25,69,176,49,178,127,6,27,89,39,186,167,97,32,244,67,70,41,202,8,202,51,101,218,63,14,101,97,60,173,215,211,203,1,188,131,196,106,179,20,70,98,247,115,243,125,241,130,143,52,122,115,168,25,190,74,4,193,112,224,185,172,21,124,116,239,83,39,166,188,0,38,198,90,232,147,175,212,130,50,63,142,253,28,159,61,75,88,131,31,14,109,139,137,50,92,149,41,205,62,152,94,43,137,72,188,168,65,70,51,252,168,179,51,225,91,47,38,216,197,180,96,201,125,219,221,39,112,186,92,129,182,208,54,105,173,100,85,87,172,192,236,178,109,224,68,124,108,52,224,104,83,109,72,218,192,182,162,187,156,71,208,82,97,43,117,166,32,234,195,163,181,138,185,75,227,227,33,106,11,129,27,240,152,91,211,143,27,139,180,129,239,170,147,244,98,66,27,91,105,159,115,244,7,48,153,113,17,189,81,40,35,149,250,22,107,25,161,122,137,201,74,165,171,150,74,97,54,43,120,38,251,92,249,16,84,125,229,46,213,254,61,28,27,141,203,68,120,77,148,100,226,117,224,45,4,116,201,172,148,197,32,54,10,178,1,79,36,184,188,103,135,136,219,20,185,211,196,27,155,41,21,157,212,5,198,201,130,90,140,163,214,192,126,178,176,134,221,1,59,200,61,30,180,119,113,173,55,206,67,52,53,39,105,149,41,23,238,101,156,204,148,27,8,48,146,24,181,136,240,36,29,160,153,37,39,37,37,252,238,161,110,63,84,27,241,135,252,44,43,106,73,135,85,221,81,38,201,30,195,119,9,95,125,104,89,111,153,235,251,167,144,166,61,232,145,93,212,106,207,42,152,222,248,54,142,213,198,80,214,128,195,193,223,172,56,51,24,78,29,253,36,209,29,87,61,68,116,57,147,98,60,207,107,141,169,164,30,99,165,140,172,156,6,121,75,105,83,113,60,146,48,72,50,215,69,73,8,228,215,65,156,168,237,38,188,54,125,224,248,16,86,124,11,150,148,18,98,136,223,85,89,49,111,66,204,224,228,195,138,96,78,151,32,154,211,75,167,71,38,90,161,235,147,216,157,38,214,111,81,219,255,141,234,66,169,200,177,7,12,143,196,243,247,53,176,116,40,75,14,210,182,94,92,221,54,213,193,114,215,96,71,130,94,40,154,181,42,44,133,193,103,142,112,151,30,40,248,139,181,168,150,118,248,94,82,81,149,200,159,143,31,47,171,197,217}, {237,118,63,136,186,160,188,79,178,236,143,89,189,64,49,7,172,153,68,134,33,69,93,225,122,14,220,170,75,51,194,199,196,194,67,104,191,101,25,138,14,121,17,175,198,141,127,167,17,226,71,227,147,196,224,32,48,191,213,129,198,6,246,252,118,112,171,17,212,111,50,221,84,91,66,66,189,76,222,194,244,130,98,164,112,124,226,241,166,125,192,153,16,106,206,77,7,231,168,104,147,149,208,223,160,108,39,229,40,145,90,95,72,5,197,178,17,67,38,123,184,149,65,249,207,191,219,14,83,185,196,11,81,155,233,238,172,139,236,76,101,253,97,254,42,115,18,143,196,42,108,115,16,139,36,175,86,12,182,153,150,12,40,216,98,58,145,25,28,165,68,60,111,124,18,64,132,183,167,237,214,196,103,245,211,125,222,164,108,120,223,105,19,98,111,232,24,71,115,63,139,7,113,160,121,57,101,174,223,30,209,118,147,84,220,236,122,7,36,140,106,112,52,58,233,156,3,102,243,26,13,46,157,183,251,97,64,76,97,39,134,200,115,143,91,23,222,107,182,117,133,126,134,140,61,114,3,156,102,205,115,234,102,27,158,1,181,233,153,221,85,45,255,80,189,228,71,11,199,165,190,185,18,3,251,93,177,36,125,226,61,219,69,118,128,247,243,40,40,55,241,185,54,141,89,218,222,208,216,199,178,85,123,198,126,232,103,107,254,4,218,245,4,157,11,3,172,235,91,232,44,202,211,113,60,110,123,181,192,153,116,212,142,140,60,21,172,78,82,233,46,199,34,96,126,76,190,100,55,124,231,64,142,102,23,70,36,79,227,6,216,186,75,142,41,205,75,175,252,123,122,117,25,183,58,6,85,108,149,138,201,215,118,162,15,201,247,62,4,72,252,52,213,110,197,193,113,182,6,201,121,36,122,211,168,52,191,166,35,81,74,129,233,10,141,242,14,37,136,53,114,31,89,148,125,207,149,195,72,254,172,251,254,63,128,24,221,188,232,92,30,182,183,210,162,92,200,170,4,155,128,101,112,208,247,62,192,1,65,2,39,148,13,255,139,213,213,103,153,143,125,101,96,0,0,221,84,121,161,49,24,233,71,99,108,72,120,199,187,199,33,62,20,89,217,95,49,253,55,238,255,38,222,135,66,9,122,93,137,185,27,92,124,126,79,7,29,245,186,48,111,100,227,84,114,68,88,235,78,216,58,133,44,203,53,55,1,58,49,237,113,119,64,19,119,177,25,180,3,245,211,157,53,78,229,175,21,1,255,13,50,207,92,239,114,177,137,2,4,107,185,207,241,10,196,171,122,40,212,52,251,228,126,21,46,69,35,219,166,77,236,188,192,104,196,44,101,231,60,18,62,187,114,161,224,35,168,150,34,65,138,208,57,178,250,12,142,72,33,209,50,70,125,153,90,135,12,176,200,64,12,133,7,163,109,50,151,64,209,87,32,214,158,26,224,204,72,25,146,168,179,42,118,72,60,34,234,154,219,152,235,73,14,255,107,142,219,97,155,80,132,112,158,240,172,83,155,89,171,19,211,171,144,176,72,23,228,255,85,71,139,175,161,163,47,208,26,5,120,209,158,38,203,160,131,14,84,111,27,149,243,1,190,174,125,58,101,79,193,0,60,15,120,147,69,6,9,208,41,111,182,212,152,21,14,106,237,184,99,190,221,145,158,102,92,41,138,195,218,57,32,246,255,192,163,213,0,26,181,48,220,242,153,129,76,69,148,236,134,103,146,60,110,7,104,115,133,126,20,1,14,246,178,204,58,251,174,187,3,245,38,94,247,111,20,94,62,175,240,254,253,45,209,82,164,2,6,194,38,116,6,27,144,200,240,42,171,161,254,172,147,116,251,224,133,126,211,177,234,128,191,211,63,75,74,210,176,53,98,134,135,95,216,249,87,161,215,28,89,142,97,139,254,30,114,12,169,24,219,243,126,79,141,120,202,101,199,141,120,220,5,70,95,21,82,83,186,12,48,60,8,5,224,139,39,87,223,2,28,65,147,118,56,143,166,64,68,101,108,38,74,15,244,240,150,65,89,223,132,115,38,84,172,247,228,223,241,7,229,88,208,127,59,85,119,215,202,146,241,111,11,127,222,10,125,192,121,190,171,124,57,245,24,81,42,140,176,106,198,168,169,15,206,220,150,186,54,66,5,72,116,56,97,116,43,80,36,224,172,54,160,228,169,216,202,190,119,198,114,196,124,225,232,232,206,157,248,111,119,254,134,122,201,10,218,204,99,141,117,68,83,221,38}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,0,0,0,0,1,255,255,255,255,0,0,1,255,255,0,0,0,0,0,1,1,0,255,0,0,0,255,0,1,0,0,1,0,255,0,255,255,255,255,0,1,0,0,0,0,0,0,255,255,0,1,0,255,0,255,0,255,0,1,0,0,255,0,0,0,255,1,255,0,255,0,0,0,255,0,255,0,255,1,255,0,0,0,0,1,255,0,0,1,1,1,1,0,0,1,255,0,0,0,0,255,255,0,0,0,0,0,255,0,0,0,1,1,255,0,0,0,255,0,0,0,0,0,0,0,0,1,255,255,0,0,0,0,0,0,0,255,1,1,255,1,255,0,0,1,0,0,0,0,255,1,0,1,0,255,0,1,1,0,255,1,1,1,255,255,255,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,0,255,0,0,0,0,255,0,255,0,1,255,255,0,0,0,255,0,255,255,0,1,0,1,0,1,0,255,0,0,0,0,0,255,0,0,255,0,255,0,1,0,1,255,255,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,255,255,0,0,0,1,255,255,0,0,255,0,0,1,1,1,0,0,0,0,0,255,255,0,0,0,0,0,0,0,1,0,0,0,0,0,0,255,255,1,0,0,0,255,255,0,1,0,0,0,0,0,0,0,0,0,0,255,0,0,1,0,0,1,1,0,255,1,1,0,0,0,1,0,1,1,1,255,0,1,0,0,0,0,255,1,0,0,255,255,0,0,1,0,255,0,255,255,1,255,0,0,255,1,0,255,255,255,0,0,0,0,1,0,255,255,1,0,0,0,1,0,0,255,255,1,1,1,255,255,0,0,1,0,0,0,0,1,0,0,0,1,0,255,0,0,255,0,1,1,0,0,255,1,0,255,0,0,0,0,1,255,0,1,0,255,0,0,1,1,0,0,255,0,1,0,255,0,0,0,1,0,1,0,0,255,0,1,0,255,255,1,0,1,255,0,0,255,1,0,255,0,0,1,255,0,0,1,0,0,0,1,0,0,0,1,255,0,1,0,0,255,0,255,255,255,0,0,255,0,0,1,1,0,255,0,255,255,0,0,255,0,255,255,0,255,0,255,0,0,0,0,0,1,255,255,0,0,0,1,255,1,0,255,0,255,0,0,255,0,0,1,255,0,0,255,0,0,1,0,0,1,0,255,1,0,0,1,0,0,255,0,0,0,0,255,1,1,0,1,1,0,0,0,0,1,1,0,255,0,0,0,255,255,0,0,255,0,255,255,0,0,1,0,0,1,1,255,0,255,0,1,0,255,0,1,0,0,1,0,255,0,255,0,255,0,0,1,0,0,0,0,255,0,1,0,1,1,0,1,255,255,0,0,0,255,255,0,0,0,0,0,0,0,255,255,0,255,1,0,1,0,0,0,0,255,0,0,1,0,255,255,1,0,0,0,0,0,255,0,0,255,0,0,0,255,0,1,255,0,0,255,1,1,255,255,0,1,0,0,0,255,0,0,1,0,255,0,255,0,0,0,0,0,0,0,255,1,0,255,1,1,0,0,0,0,0,255,0,0,1,255,1,0,0,0,255,0,0,255,0,1,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,1,0,255,0,0,0,1,0,255,1,255,255,255,255,1,255,0,255,255,255,0,1,255,0,1,1,0,255,0,255,1,0,0,1,1,255,1,0,0,0,0,1,0,255,0,255,0,255,255,255,0,0,0,1,0,255,255,255,1,0,0,255,0,0,255,255,0,1,1,0,0,1,255,255,255,1,255,1,0,255,0,1,0,0,1,0,0,1,0,0,0,1,255,1,0,0,1,0,0,0,0,0,0,0,0,255,1,0,0,255,1,255,255,0,255,255,0,1,255,1,0,0,255,0,0,1,255,0,0,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,255,1,0,1,0,0,0,1,255,1,0,1,255,255,0,0,255,0,0,0,0,255,1,255,0,0,0,1,0,0,255,0,0,1,1,255,255,0,255,0,255,255,0,0,255,1,255,1,0,1,0,0,0,255,0,0,0,1,0,0,255,255,1,0,0,255,0,0,0,0,255,1,255,0,255,1,0,0,0,0,0,0,0,0,255,1,0,0,0,255,0,0,0,0,0,1,255,0,0,1,1,255,0,0,0,0,255,1,0,0,0,1,1,0,0,0,0,0,0,0,255,255,1,255,1,255,0,1,0,255,1,1,0,0,0,1,0,1,1,0,0,255,255}, {0,255,0,1,0,255,0,0,0,0,1,0,0,255,255,0,0,0,255,255,255,1,0,0,1,1,1,0,255,0,255,0,0,255,255,0,0,0,0,0,1,255,0,255,1,0,255,0,0,255,255,1,255,1,0,0,0,1,255,255,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,255,0,0,1,0,0,0,1,0,1,0,255,0,255,0,1,255,255,0,0,255,0,0,1,1,1,0,0,255,0,1,1,0,255,0,255,0,0,255,0,1,0,1,0,0,0,1,0,255,1,0,255,1,1,1,0,0,255,0,0,1,1,255,1,255,255,255,1,0,255,0,1,0,0,0,0,0,0,0,255,0,255,1,0,0,255,255,0,0,0,255,1,0,255,0,0,1,255,0,0,0,0,0,0,1,1,1,255,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,255,1,0,0,255,0,0,0,0,255,0,0,1,0,255,0,0,0,1,0,255,0,0,1,0,0,0,1,0,0,0,1,1,0,255,0,255,255,0,0,0,255,0,0,0,0,255,0,255,1,0,0,255,255,0,0,1,0,0,255,255,255,255,0,0,255,1,255,255,255,255,0,255,0,0,0,255,0,0,0,1,255,0,0,0,0,0,0,0,0,0,1,0,255,0,1,1,0,255,0,0,1,255,0,255,255,1,0,0,0,1,255,255,1,1,0,0,255,255,0,1,255,0,1,255,1,1,0,255,0,0,255,255,0,1,0,0,0,1,0,255,255,0,1,0,1,0,0,255,1,0,255,0,1,1,0,1,255,0,0,0,0,255,1,0,0,0,0,1,1,255,255,0,0,0,255,1,255,1,0,1,1,255,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,255,0,1,0,0,255,1,1,0,0,0,255,0,0,255,1,255,0,1,0,0,0,0,0,255,1,0,1,255,0,255,0,0,255,255,0,255,255,0,0,0,255,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,255,0,0,255,1,0,0,0,0,0,255,255,0,0,0,0,1,0,0,255,0,0,0,1,0,0,255,0,1,0,0,0,255,0,1,0,255,255,255,0,0,255,255,0,0,1,0,0,0,0,0,0,255,255,1,0,0,0,1,0,0,255,255,1,1,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,255,1,255,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,255,0,1,255,0,0,0,255,255,0,0,0,1,0,255,255,255,1,0,1,255,1,1,255,255,0,1,1,0,1,1,0,255,0,255,0,255,255,0,0,255,255,0,1,0,0,255,0,1,1,255,1,0,0,255,0,255,255,1,255,255,0,255,1,255,0,0,1,255,0,0,0,255,0,1,0,1,0,0,0,0,255,255,0,0,255,1,255,0,0,1,255,255,0,1,0,255,255,0,255,1,1,1,0,0,0,1,0,255,0,1,0,0,0,1,1,0,1,1,1,0,1,255,0,0,1,255,0,1,0,255,0,0,255,0,0,0,255,0,255,1,255,0,255,0,0,0,0,255,0,1,1,0,255,0,1,0,0,255,0,255,0,0,0,0,0,0,255,0,255,1,255,255,0,0,0,0,0,0,1,255,1,255,0,1,1,1,0,0,0,255,0,255,255,1,255,0,0,0,1,0,0,1,0,0,0,255,255,1,255,1,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,255,255,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,255,0,0,0,255,0,255,255,0,0,0,0,1,0,255,1,255,255,0,255,0,0,0,0,1,0,1,1,255,0,255,0,255,0,255,0,0,1,1,0,1,0,255,0,0,255,255,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,255,255,255,1,0,255,255,1,1,255,0,1,1,0,1,255,0,0,0,255,255,0,0,255,0,0,0,255,1,0,0,0,0,0,1,255,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,255,0,1,0,0,255,0,0,0,255,1,255,0,255,255,255,1,1,0,0,0,255,0,0,1,0,0,0,0,0,255,1,0,0,1,255,1,0,0,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,1,255,0,1,255,0,255,255,255,1,255}, {0,0,0,255,0,0,0,0,255,0,1,0,1,0,255,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,255,0,0,1,1,255,1,0,0,0,0,1,0,1,255,1,0,1,0,0,255,0,255,1,255,0,0,0,1,0,0,0,0,255,255,255,0,1,0,0,255,1,0,255,0,1,255,255,255,1,0,255,255,0,0,255,0,0,255,255,0,1,255,0,0,1,1,0,0,255,0,0,255,0,0,0,0,0,255,255,255,1,0,0,0,0,1,255,1,255,255,255,1,1,255,255,255,1,0,255,255,255,0,0,0,1,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,255,0,255,1,1,0,0,0,0,1,0,0,0,255,255,255,255,0,1,0,0,255,0,0,255,255,255,255,1,255,1,255,0,255,0,0,0,0,1,0,0,0,255,0,0,255,0,0,255,1,0,0,0,255,0,0,0,1,255,255,255,0,0,0,255,1,0,1,1,1,0,255,0,255,0,1,1,0,0,255,255,1,0,0,0,0,0,0,255,0,255,0,0,0,0,1,1,0,0,0,1,0,1,255,255,0,0,255,0,0,0,0,1,0,0,0,255,0,255,0,0,255,0,0,255,0,1,0,0,0,0,0,1,0,0,0,1,255,0,0,255,1,0,255,1,255,0,1,255,255,0,1,255,0,0,0,255,0,0,0,1,0,0,1,1,0,0,255,255,0,1,0,0,255,1,1,0,0,255,1,255,1,0,0,1,0,1,1,255,1,255,0,0,0,255,0,1,255,0,255,1,1,0,1,255,1,0,255,1,0,0,1,1,0,1,0,0,255,255,0,255,0,0,0,1,0,1,0,255,0,255,255,255,1,0,0,1,1,1,0,0,255,0,1,255,0,1,255,255,0,0,1,0,1,0,0,0,0,0,0,0,1,255,0,0,255,255,255,1,0,1,0,0,0,0,255,255,0,0,0,1,0,1,1,255,255,0,255,0,255,1,1,1,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,1,1,0,255,255,0,0,0,0,0,255,0,255,0,0,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,1,1,255,0,1,0,255,255,255,0,0,255,0,255,1,1,255,1,0,0,1,255,255,1,1,0,0,1,0,0,0,255,0,0,0,0,0,0,0,0,0,255,1,0,1,1,255,0,1,0,0,1,0,1,0,0,0,255,0,255,255,1,1,255,0,0,255,0,0,0,255,255,0,0,255,0,0,255,1,0,0,0,1,255,1,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,255,255,0,255,0,0,0,0,0,1,0,1,0,0,0,0,255,1,1,255,0,1,0,0,255,0,255,255,255,0,0,255,0,0,0,1,0,1,0,0,0,0,0,0,255,1,1,0,0,1,0,255,0,255,0,1,1,0,255,0,0,0,255,255,0,0,255,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,1,255,0,0,0,1,255,255,0,0,255,0,0,0,1,0,0,1,0,0,255,255,0,0,255,0,1,0,255,255,255,1,1,1,0,0,255,0,0,0,0,255,0,255,255,255,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,255,0,0,0,0,1,1,1,255,1,1,1,0,1,1,255,1,0,0,0,1,0,255,0,1,0,1,255,0,1,1,0,0,1,0,0,0,0,0,255,0,0,0,0,255,0,1,0,255,255,0,0,0,1,255,255,0,0,255,0,0,1,0,255,255,1,0,0,255,255,255,0,0,0,0,255,0,1,255,0,255,0,1,1,1,0,0,0,0,255,255,1,0,1,0,1,0,0,0,0,255,255,1,0,255,0,255,0,1,0,255,0,0,0,0,0,0,1,0,1,255,0,1,0,0,0,1,0,0,0,0,255,0,1,0,1,0,0,1,0,1,0,255,1,0,255,1,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,255,0,0,0,1,0,255,1,0,0,255,0,0,0,0,0,255,1,0,1,0,1,255,1,0,1,255,0,1,0,0,255,0,0,0,1,0,255,0,0,0,0,1,0,255,0,0,0,255,0,255,0,1,0,1,0,1,0,1,0,255,1,0,255,255,0,0,255,0,255,0,1,255,1,0,0,255,0,0,0,1,255,255,0,255,255,0,0,1,1,255,0,255,1,0,0,0,255,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup1013_k[precomputed_core_wforcesntrup1013_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_wforcesntrup1013_c[precomputed_core_wforcesntrup1013_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_wforcesntrup1013_impl(long long impl) { unsigned char *h = test_core_wforcesntrup1013_h; unsigned char *n = test_core_wforcesntrup1013_n; unsigned char *k = test_core_wforcesntrup1013_k; unsigned char *c = test_core_wforcesntrup1013_c; unsigned char *h2 = test_core_wforcesntrup1013_h2; unsigned char *n2 = test_core_wforcesntrup1013_n2; unsigned char *k2 = test_core_wforcesntrup1013_k2; unsigned char *c2 = test_core_wforcesntrup1013_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup1013(impl); printf("core_wforcesntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup1013_implementation(impl),ntruprime_dispatch_core_wforcesntrup1013_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup1013; printf("core_wforcesntrup1013 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup1013_implementation(),ntruprime_core_wforcesntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } { long long weight,i,direction; for (weight = 0;weight <= nlen;++weight) { for (direction = 0;direction < 2;++direction) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); for (i = 0;i < nlen;++i) { n[i] &= ~1; if (direction) { if (nlen-1-i < weight) n[i] += 1; } else { if (i < weight) n[i] += 1; } n2[i] = n[i]; } crypto_core(h,n,k,c); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); crypto_core(h2,n2,k2,c2); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic"); } } } checksum_expected(core_wforcesntrup1013_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_wforcesntrup1013_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_wforcesntrup1013_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_wforcesntrup1013_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_wforcesntrup1013_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_wforcesntrup1013_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_wforcesntrup1013_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_wforcesntrup1013_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_wforcesntrup1013_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_wforcesntrup1013_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_wforcesntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup1013")) return; storage_core_wforcesntrup1013_h = callocplus(crypto_core_OUTPUTBYTES); test_core_wforcesntrup1013_h = aligned(storage_core_wforcesntrup1013_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_wforcesntrup1013_n = callocplus(crypto_core_INPUTBYTES); test_core_wforcesntrup1013_n = aligned(storage_core_wforcesntrup1013_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_wforcesntrup1013_k = callocplus(crypto_core_KEYBYTES); test_core_wforcesntrup1013_k = aligned(storage_core_wforcesntrup1013_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_wforcesntrup1013_c = callocplus(crypto_core_CONSTBYTES); test_core_wforcesntrup1013_c = aligned(storage_core_wforcesntrup1013_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_wforcesntrup1013_h2 = callocplus(maxalloc); test_core_wforcesntrup1013_h2 = aligned(storage_core_wforcesntrup1013_h2,crypto_core_OUTPUTBYTES); storage_core_wforcesntrup1013_n2 = callocplus(maxalloc); test_core_wforcesntrup1013_n2 = aligned(storage_core_wforcesntrup1013_n2,crypto_core_INPUTBYTES); storage_core_wforcesntrup1013_k2 = callocplus(maxalloc); test_core_wforcesntrup1013_k2 = aligned(storage_core_wforcesntrup1013_k2,crypto_core_KEYBYTES); storage_core_wforcesntrup1013_c2 = callocplus(maxalloc); test_core_wforcesntrup1013_c2 = aligned(storage_core_wforcesntrup1013_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_wforcesntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup1013();++impl) forked(test_core_wforcesntrup1013_impl,impl); ++test_core_wforcesntrup1013_h; ++test_core_wforcesntrup1013_n; ++test_core_wforcesntrup1013_k; ++test_core_wforcesntrup1013_c; ++test_core_wforcesntrup1013_h2; ++test_core_wforcesntrup1013_n2; ++test_core_wforcesntrup1013_k2; ++test_core_wforcesntrup1013_c2; } free(storage_core_wforcesntrup1013_c2); free(storage_core_wforcesntrup1013_k2); free(storage_core_wforcesntrup1013_n2); free(storage_core_wforcesntrup1013_h2); free(storage_core_wforcesntrup1013_c); free(storage_core_wforcesntrup1013_k); free(storage_core_wforcesntrup1013_n); free(storage_core_wforcesntrup1013_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_wforcesntrup1277.c0000644000000000000000000021050714705505543024134 0ustar rootroot/* ----- core/wforcesntrup1277, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_wforcesntrup1277_checksums[] = { "85ee647fbe8423f5655b8b98cd0258f8aac032a58e7ba63881c6476ac31574c9", "21ca0241b12b7bbd8478b9026d8b2b71e1e18b1d4d247103555f3bdab7958397", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_wforcesntrup1277_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_wforcesntrup1277_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_wforcesntrup1277_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_wforcesntrup1277_CONSTBYTES static void *storage_core_wforcesntrup1277_h; static unsigned char *test_core_wforcesntrup1277_h; static void *storage_core_wforcesntrup1277_n; static unsigned char *test_core_wforcesntrup1277_n; static void *storage_core_wforcesntrup1277_k; static unsigned char *test_core_wforcesntrup1277_k; static void *storage_core_wforcesntrup1277_c; static unsigned char *test_core_wforcesntrup1277_c; static void *storage_core_wforcesntrup1277_h2; static unsigned char *test_core_wforcesntrup1277_h2; static void *storage_core_wforcesntrup1277_n2; static unsigned char *test_core_wforcesntrup1277_n2; static void *storage_core_wforcesntrup1277_k2; static unsigned char *test_core_wforcesntrup1277_k2; static void *storage_core_wforcesntrup1277_c2; static unsigned char *test_core_wforcesntrup1277_c2; #define precomputed_core_wforcesntrup1277_NUM 9 static const unsigned char precomputed_core_wforcesntrup1277_h[precomputed_core_wforcesntrup1277_NUM][crypto_core_OUTPUTBYTES] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,1,1,0,0,255,0,255,1,1,0,0,0,255,0,0,0,0,255,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,1,0,1,1,255,0,255,0,0,0,0,1,0,1,0,1,1,255,255,1,0,0,0,0,0,0,0,1,0,1,0,1,0,255,0,0,0,0,0,1,255,0,0,0,0,0,1,1,0,255,0,255,0,0,0,0,255,0,0,255,255,0,0,1,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,1,0,1,0,0,255,0,255,0,0,0,0,1,0,255,0,1,0,0,0,0,0,0,255,0,0,0,1,0,0,255,0,0,0,255,255,0,0,0,0,1,0,0,255,1,0,0,0,255,0,255,0,0,0,1,0,1,0,0,0,0,1,0,255,255,0,255,1,0,0,0,0,0,0,0,1,0,0,255,1,255,0,0,255,0,0,0,1,1,255,0,0,1,0,0,0,255,255,0,0,255,0,0,1,255,0,1,0,1,255,0,0,0,0,255,0,0,1,0,0,0,0,0,1,0,0,0,255,0,255,0,0,255,255,0,255,255,1,1,1,1,0,255,0,0,0,255,255,0,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,255,255,1,1,1,0,255,0,1,0,0,0,0,255,0,0,255,0,0,1,1,255,255,0,0,0,0,255,0,255,255,0,255,0,0,255,255,0,255,255,1,1,255,1,0,1,0,255,255,0,0,0,1,255,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,255,255,0,0,1,255,255,0,1,1,1,0,0,1,1,0,1,255,0,0,1,0,0,255,0,0,255,0,1,0,255,1,0,0,255,1,0,0,0,1,0,0,0,1,0,255,0,0,0,0,0,255,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,255,1,0,0,0,255,255,255,255,1,0,0,0,255,0,1,255,255,1,0,0,0,1,0,1,0,0,0,0,255,0,1,0,0,255,1,0,0,0,255,1,0,0,0,0,0,0,0,255,0,0,0,0,0,1,0,255,0,0,0,0,0,0,1,0,255,0,1,255,0,0,0,255,255,0,255,255,0,0,1,0,0,0,0,1,1,1,255,0,0,0,1,1,0,0,0,255,0,255,0,0,255,0,0,0,255,1,255,0,1,1,0,0,0,0,1,1,0,255,0,0,0,1,0,0,255,1,0,0,0,1,1,1,0,1,0,0,255,0,1,0,0,0,0,1,0,255,1,0,1,0,255,0,0,1,255,0,0,0,255,0,255,0,255,255,0,255,255,0,0,1,0,0,255,1,1,0,0,255,0,0,255,1,0,0,1,255,0,0,0,0,0,0,1,0,0,1,0,255,0,0,255,1,0,0,255,255,1,0,255,1,255,0,255,0,0,0,255,255,255,0,1,0,255,1,0,0,0,0,1,0,0,0,0,1,0,0,255,1,255,255,0,0,0,255,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,255,1,255,0,0,255,0,255,1,0,255,1,0,0,0,255,0,1,0,0,255,0,1,0,0,255,0,0,0,0,1,255,1,255,0,0,0,1,1,0,0,0,255,255,255,255,0,0,255,0,0,0,255,1,0,0,1,255,0,0,1,255,0,0,0,0,255,0,255,0,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,0,255,0,1,255,1,0,255,0,1,1,1,0,0,0,0,0,0,0,0,0,0,255,1,0,0,0,0,0,1,255,0,0,1,0,0,255,0,0,1,0,0,0,0,255,255,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,255,1,0,1,1,0,0,255,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,255,255,0,0,0,1,1,0,1,0,0,255,0,0,255,1,255,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,255,255,0,0,1,0,0,0,255,0,0,255,255,1,0,0,255,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,0,255,1,0,0,255,1,255,0,1,0,0,1,0,0,0,0,0,0,0,0,255,0,0,0,0,1,0,0,0,1,0,0,0,0,255,255,0,0,0,0,255,0,255,255,0,0,0,255,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,1,255,0,0,0,255,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,0,0,0,1,1,1,255,1,0,1,0,0,0,0,0,255,255,0,1,0,1,1,255,1,255,0,0,0,255,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,255,1,255,0,0,255,1,0,0,0,0,0,0,0,0,255,255,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,255,255,1,1,0,0,1,1,0,0,0,255,0,0,1,0,0,1,1,255,0,0,0,1,0,0,0,1,0,0,255,0,0,0,1,1,1,0,255,1,0,0,0,0,0,0,0,0,255,0,0,255,1,1,0,0,0,0,0,255,0,255,0,255,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,255,1,255,0,0,255,0,0,255,0,1,0,1,0,0,1,0,255,0,0,255,0,1,255,0,0,0,255,0,1,255,1,1,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup1277_n[precomputed_core_wforcesntrup1277_NUM][crypto_core_INPUTBYTES] = { {197,86,12,15,172,69,252,171,135,171,8,242,35,136,23,238,254,14,34,42,142,130,170,204,128,22,178,116,26,214,3,216,166,160,252,238,85,255,92,91,43,9,172,174,107,206,30,122,41,202,10,234,162,197,102,60,54,161,168,234,232,61,224,209,156,156,142,186,146,36,85,11,200,197,142,227,243,19,40,44,34,227,78,118,2,170,160,120,34,233,24,26,43,36,248,60,112,196,213,206,154,104,255,38,199,21,128,171,219,20,25,249,115,20,200,123,102,191,69,100,26,132,217,73,189,25,116,254,56,235,188,101,6,28,137,215,58,172,6,242,80,116,125,225,87,18,71,18,0,108,5,209,114,93,233,92,62,212,187,207,93,24,127,228,44,252,173,173,220,143,244,174,126,157,211,234,178,253,247,176,40,30,156,174,197,229,133,38,65,23,154,74,134,7,14,165,27,148,208,71,140,199,73,63,158,93,40,130,188,82,174,119,200,226,46,237,20,87,68,88,83,19,73,33,55,208,207,166,69,177,26,223,93,79,205,68,151,149,150,90,196,180,137,67,96,6,132,101,209,255,187,209,151,44,227,175,61,224,238,57,35,247,231,201,133,146,140,94,103,205,114,236,238,252,49,117,254,192,83,89,215,81,4,45,53,148,63,231,104,77,70,221,4,241,192,93,153,20,168,249,92,180,31,196,62,67,86,115,147,21,119,193,248,58,209,71,127,94,33,251,70,66,198,2,129,188,69,33,138,242,121,19,159,91,34,62,190,233,216,170,248,110,56,11,72,165,95,15,59,231,24,32,0,160,38,166,112,164,59,173,109,43,7,77,64,2,171,205,72,142,185,195,135,56,83,238,77,17,25,115,148,221,157,147,143,57,75,245,214,140,127,113,65,73,95,50,22,101,24,151,38,159,16,84,236,143,147,71,12,247,15,116,205,71,36,195,80,204,228,163,110,187,28,33,147,97,253,185,45,197,113,212,97,91,4,8,152,150,242,97,150,82,76,27,216,216,195,85,43,224,62,63,195,249,8,234,23,224,216,144,127,217,225,101,218,26,249,224,231,47,97,112,88,25,229,16,56,81,111,87,222,141,131,165,109,143,137,98,159,50,101,102,41,68,57,86,180,191,117,167,41,223,104,228,138,150,192,85,34,161,41,173,50,34,159,5,255,197,238,181,202,191,242,170,174,80,164,97,159,100,30,67,73,25,50,254,61,65,132,255,16,241,171,243,89,49,127,196,178,189,188,191,41,219,86,66,187,126,86,3,104,77,116,139,215,83,211,100,198,51,253,26,213,19,232,147,66,32,49,63,215,218,203,132,131,176,84,215,110,123,2,102,75,96,71,226,86,152,160,30,194,203,131,164,104,192,223,48,228,55,148,127,76,12,195,1,12,109,179,184,105,39,63,201,114,232,119,110,217,220,165,131,182,207,254,94,115,205,224,144,199,196,178,185,238,161,14,208,14,118,113,72,125,87,74,76,44,124,141,174,186,193,253,0,207,161,32,99,151,21,130,11,88,159,252,182,61,66,12,105,131,131,45,196,150,46,187,172,23,193,81,165,119,59,32,82,192,51,147,19,50,24,38,75,190,153,89,90,246,96,188,95,237,109,43,255,248,153,150,152,222,212,103,228,18,193,225,124,10,160,120,192,109,63,90,110,125,169,238,172,193,144,179,110,127,254,223,243,123,36,202,114,6,193,16,174,176,11,84,249,185,76,109,18,118,6,121,125,118,36,124,69,159,133,120,86,135,233,233,217,160,170,86,213,65,70,22,16,214,9,101,30,155,96,40,35,223,172,45,7,34,159,38,172,238,53,173,84,211,134,30,3,5,103,44,101,196,113,245,28,205,242,189,187,114,45,21,142,203,155,105,232,177,175,115,200,159,76,185,120,146,27,156,170,219,207,122,190,31,21,161,199,35,201,149,145,7,252,151,46,50,123,145,219,248,64,107,170,215,110,44,144,254,147,142,49,78,102,81,136,237,187,158,10,33,37,219,162,15,12,80,87,169,237,175,51,248,17,236,121,224,167,224,93,127,230,208,93,239,200,37,231,140,210,29,173,225,174,15,63,85,221,156,177,111,195,201,234,9,1,22,42,128,100,5,96,240,71,90,30,127,230,200,12,234,0,131,32,198,28,124,119,231,114,123,222,132,157,226,110,108,160,116,6,120,239,107,120,195,66,76,173,172,231,169,133,81,220,173,58,41,116,223,141,28,223,252,167,250,221,251,113,145,7,189,54,32,17,61,159,164,71,147,111,185,168,28,159,136,21,186,197,132,63,194,137,134,5,52,244,136,147,17,148,225,120,186,222,103,183,235,124,219,72,93,184,249,14,38,0,31,99,89,101,32,203,121,49,227,42,71,214,144,138,207,45,33,22,43,100,107,182,107,2,67,72,205,30,26,75,177,195,155,106,124,123,149,169,95,191,169,58,36,202,241,250,124,205,198,47,93,244,48,72,170,2,80,15,88,36,177,124,145,173,150,26,105,84,126,129,16,73,210,179,18,216,78,45,238,55,134,8,167,246,20,57,200,231,135,128,145,58,149,176,81,51,143,52,68,62,47,138,46,57,255,1,59,128,10,43,130,123,209,114,192,96,59,251,86,133,178,89,66,249,28,250,247,237,33,77,16,31,55,189,76,191,226,209,230,162,2,1,65,200,28,173,84,174,239,208,248,219,235,13,129,19,104,203,37,240,6,251,233,53,194,114,60,69,111,14,47,119,147,31,249,250,149,184,99,53,242,227,18,138,4,160,232,9,123,119,167,192,206,78,124,169,211,141,150,59,111,234,213,103,189,151,244,232,31,88,201,3,16,117,203,94,73,64,44,140,14,217,61,79,122,68,37,0,61,97,52,129,28,32,64,6,7}, {126,72,138,164,211,92,2,142,175,73,112,55,46,76,230,144,85,210,239,100,102,185,132,86,245,56,203,22,197,245,73,1,225,184,129,197,66,162,221,26,228,140,51,235,34,56,70,54,132,162,184,17,245,111,42,243,70,72,191,92,3,171,105,226,121,249,25,247,69,248,216,176,250,67,8,124,21,105,224,207,174,4,75,33,175,133,4,38,107,169,126,140,167,10,224,184,144,192,114,249,187,53,150,197,128,102,56,16,56,28,32,145,93,179,238,150,110,8,114,182,151,130,128,63,26,29,32,253,141,205,167,116,162,109,103,220,162,34,64,192,151,139,105,237,70,141,56,83,45,76,95,189,110,163,202,125,152,243,111,85,5,44,109,254,136,56,186,99,40,189,245,255,109,109,20,87,125,210,109,119,137,165,249,85,127,0,128,230,13,220,231,134,192,89,10,50,172,242,225,163,85,166,206,4,253,133,116,223,193,82,106,187,96,138,213,14,23,234,98,232,240,126,161,126,108,41,103,17,133,0,65,76,123,1,97,252,8,165,0,203,156,153,254,131,135,89,19,27,17,78,242,73,242,179,56,224,172,95,87,122,131,204,204,218,23,157,126,165,221,150,21,255,99,136,106,248,2,231,73,76,135,112,69,4,18,65,183,50,77,242,15,215,89,187,5,55,246,234,18,133,127,122,177,92,18,133,80,10,207,16,160,42,51,164,20,5,68,88,25,69,56,149,199,35,146,30,134,96,87,66,36,149,142,8,41,62,1,116,74,122,48,133,184,44,179,48,130,166,98,61,163,79,37,107,62,50,157,12,104,246,151,194,155,22,2,141,70,106,52,113,131,109,82,123,107,189,204,24,136,209,17,172,248,122,105,68,185,94,49,134,226,71,194,230,64,115,51,107,232,57,57,143,20,192,199,42,148,238,41,1,48,140,232,44,251,145,122,31,120,205,126,49,96,160,199,119,154,28,117,2,159,238,204,253,0,186,191,71,10,99,197,41,46,251,168,25,169,11,242,14,47,194,134,87,5,232,68,142,15,36,53,184,113,38,163,165,42,142,222,39,243,182,75,40,65,26,137,235,138,223,74,171,142,168,220,14,64,153,26,91,200,48,116,20,151,180,112,54,184,110,164,136,131,66,18,195,177,44,164,129,218,207,26,1,177,130,113,22,67,130,142,227,195,204,17,37,253,126,181,165,188,98,179,189,46,244,157,16,80,135,83,65,138,105,137,53,186,143,39,63,8,212,123,161,79,12,152,82,196,170,33,252,171,175,8,139,251,21,209,56,169,157,194,200,125,210,202,160,79,168,18,98,229,188,185,171,254,104,195,195,83,154,199,135,28,247,29,111,162,152,193,182,177,19,20,26,130,181,167,75,122,8,185,74,44,10,55,232,81,243,68,239,80,3,177,97,16,138,64,235,168,11,92,163,56,124,196,240,36,25,74,83,198,47,41,42,216,177,19,236,34,134,161,48,142,56,46,252,206,10,173,229,229,240,21,233,212,80,203,215,103,176,186,18,41,169,17,144,152,187,145,191,243,158,41,77,10,138,77,166,195,90,236,254,39,104,87,168,209,141,89,167,138,171,207,214,176,30,138,3,210,43,90,157,234,39,181,59,201,147,35,190,207,25,15,50,181,242,119,217,131,211,183,107,100,168,88,250,33,37,34,41,245,167,16,135,239,234,68,21,196,1,189,107,133,227,235,39,15,164,201,159,18,246,180,206,25,71,219,125,40,107,94,147,91,225,49,218,195,106,98,116,28,161,12,42,138,212,234,167,218,99,140,195,105,118,218,45,50,151,247,194,81,188,74,48,169,112,70,227,55,0,60,72,19,156,197,226,249,189,93,237,17,226,187,50,45,239,80,238,230,226,62,42,226,232,2,173,106,114,117,39,144,9,96,219,105,28,218,132,207,30,53,250,192,71,252,59,40,135,107,109,252,223,74,99,224,207,214,145,198,159,220,97,241,166,105,255,135,15,249,119,132,172,79,103,19,134,23,119,78,204,29,80,164,152,160,69,131,29,215,69,89,47,7,151,196,160,80,22,151,106,253,221,214,8,173,186,233,161,68,63,116,6,19,159,145,136,60,40,232,117,134,15,45,86,234,155,199,6,168,57,251,135,28,143,79,67,239,105,45,223,176,105,138,41,50,41,18,197,110,174,17,228,76,94,105,0,205,215,26,244,147,180,181,94,158,245,148,179,136,207,30,171,84,74,1,239,244,248,142,146,111,91,62,30,162,23,34,197,229,166,255,216,9,83,43,66,88,94,165,120,52,200,147,25,195,101,242,39,22,172,123,51,212,245,180,163,169,19,85,169,142,118,81,243,178,17,59,112,48,93,185,71,95,156,64,99,87,224,9,80,0,62,183,245,227,210,91,1,159,155,251,161,224,75,242,3,2,249,81,14,102,210,109,38,201,214,154,1,188,221,128,61,236,145,142,132,40,3,211,215,82,72,175,69,244,200,217,98,16,7,176,148,128,189,253,38,223,147,190,35,60,255,119,205,208,159,60,95,43,223,224,28,184,23,198,87,90,181,17,119,191,126,193,251,8,98,165,82,29,181,111,141,75,43,203,190,100,161,14,17,231,10,89,239,111,159,250,216,120,235,11,140,120,9,102,83,206,68,64,85,64,73,24,33,217,228,35,84,5,132,97,15,46,9,88,217,123,174,218,183,25,16,151,101,171,148,72,250,168,227,69,28,202,206,160,3,166,9,148,211,65,204,98,208,148,122,244,186,110,252,137,46,125,143,96,230,72,16,97,48,52,249,70,78,244,220,148,17,98,173,204,151,134,39,109,179,0,13,87,145,47,75,150,110,91,94,74,162,82,8,31,135,100,132,30,135,242,116,178,237,214,66,86,155,192}, {20,112,56,128,135,81,173,192,116,122,133,193,16,193,69,46,196,148,46,169,222,164,114,0,204,104,161,192,152,80,85,78,216,73,75,189,152,223,9,106,157,171,57,207,116,60,175,240,212,233,113,13,22,84,142,11,198,120,83,179,149,50,59,144,14,110,106,3,26,49,250,225,195,227,156,97,237,152,10,81,138,185,114,128,162,40,101,91,9,185,83,118,68,159,169,156,82,208,151,215,222,146,234,169,250,233,125,36,44,73,71,187,20,52,202,82,160,174,96,9,19,166,19,126,186,135,179,121,222,122,73,131,180,50,193,49,195,229,191,8,206,121,219,174,44,221,1,46,64,93,118,187,82,50,171,115,42,95,82,92,7,54,174,228,245,244,192,160,65,51,163,212,23,235,39,4,94,42,172,152,205,49,143,74,10,32,20,5,86,112,70,254,19,139,193,157,235,93,208,39,31,105,196,139,120,176,187,100,38,4,64,241,255,61,70,245,178,16,128,129,90,26,82,3,153,233,53,26,37,52,201,29,201,73,42,217,168,230,130,95,56,69,41,254,247,215,176,29,48,220,83,135,160,39,227,191,181,123,68,77,47,234,239,79,253,231,202,222,65,8,81,87,200,167,123,228,129,63,31,234,224,205,64,235,139,71,224,240,71,119,115,36,202,4,1,177,25,168,43,9,243,44,58,253,246,211,183,197,54,251,74,234,0,13,129,130,243,23,231,13,112,134,216,116,105,4,148,36,187,222,193,95,91,159,26,35,137,2,1,98,84,206,9,68,138,215,52,37,225,211,11,116,154,237,155,172,82,192,47,254,114,23,151,27,216,133,104,117,80,136,231,5,123,156,21,78,98,107,17,180,21,206,29,147,8,207,187,196,167,208,204,115,144,72,102,246,135,227,242,42,52,191,13,216,233,55,120,20,124,185,64,219,6,231,94,248,110,177,17,177,125,230,85,180,37,105,208,151,32,185,147,83,212,64,70,67,197,148,233,70,204,54,133,148,158,149,237,70,157,215,173,178,239,123,14,106,241,166,230,197,89,168,86,210,208,41,127,206,157,33,151,235,28,220,235,56,242,106,207,8,237,248,252,35,136,38,151,64,180,218,148,85,137,139,30,166,114,211,43,130,171,136,14,153,140,214,192,186,155,99,177,64,228,255,116,184,150,6,87,241,89,206,235,174,28,212,110,226,26,137,78,232,77,230,182,173,191,107,104,100,197,7,9,250,227,237,160,206,230,184,11,78,165,156,246,136,47,177,14,139,220,184,222,242,118,38,95,42,145,97,197,165,214,230,245,183,88,61,215,164,140,1,236,132,163,102,18,69,100,144,143,127,83,253,170,38,69,98,210,107,124,254,101,134,10,172,141,252,232,174,11,148,121,177,105,201,230,50,165,20,204,89,223,139,171,81,128,132,109,35,217,232,232,61,213,127,224,184,184,155,158,181,16,156,192,83,194,250,61,8,235,100,145,218,72,99,24,154,42,100,26,175,148,95,51,113,138,21,44,154,89,107,227,246,88,169,240,81,237,163,232,17,22,247,67,131,25,192,128,168,30,56,92,69,31,236,22,148,81,83,158,33,156,36,84,89,56,153,30,86,46,58,134,31,114,49,103,55,155,89,210,53,93,35,38,33,99,253,45,4,83,191,152,165,90,224,213,63,131,176,24,224,195,96,243,122,143,127,116,107,34,54,88,33,32,248,17,77,53,217,170,118,28,186,115,83,211,252,148,82,39,143,76,145,175,214,238,117,114,89,198,102,129,148,161,209,68,137,160,171,249,71,30,87,200,0,220,154,73,131,221,60,128,254,196,29,202,107,213,141,59,56,207,199,113,37,39,144,66,254,69,5,221,240,185,216,138,67,130,153,228,66,193,137,40,1,39,207,177,52,234,80,229,12,126,226,82,151,143,222,159,122,77,177,170,83,215,248,20,63,205,83,181,85,198,218,59,209,93,21,11,93,56,227,155,47,54,230,212,166,107,211,122,86,141,153,241,175,144,227,36,227,79,104,214,101,211,216,14,133,143,122,136,228,40,171,17,117,182,178,48,190,137,136,230,120,117,123,44,230,200,192,51,11,231,18,236,248,181,185,214,220,199,127,192,7,17,210,99,236,37,169,68,104,114,232,245,113,180,81,117,241,232,6,215,64,119,19,201,75,167,101,202,244,140,196,210,153,187,13,238,194,137,156,208,6,211,196,54,239,233,227,5,102,24,76,91,95,137,149,252,72,10,141,116,173,69,2,134,0,28,224,186,1,163,162,111,10,88,194,222,130,4,175,62,136,100,56,111,243,212,47,146,31,174,235,8,60,254,58,232,158,172,240,65,230,139,13,152,19,248,69,91,172,10,217,28,52,196,87,12,252,163,146,251,83,138,77,238,102,48,85,77,76,70,126,142,164,76,244,107,43,76,230,220,122,85,25,49,189,186,164,141,18,64,129,156,10,26,205,224,85,107,74,84,91,239,106,44,232,216,106,122,158,204,61,197,38,209,33,78,24,131,62,168,24,232,158,168,7,159,45,207,7,201,227,76,136,3,78,191,155,94,211,2,5,85,170,107,246,183,114,188,67,2,9,26,198,174,212,117,208,159,99,167,51,21,52,80,212,43,113,80,42,117,225,98,105,212,129,169,77,249,166,74,115,169,188,245,234,248,99,250,206,188,29,127,95,117,221,232,77,43,113,221,240,183,115,92,99,119,91,183,114,234,104,96,104,239,96,150,150,135,198,157,69,254,129,203,80,247,23,90,145,239,107,116,204,19,253,252,30,204,123,33,40,21,3,123,233,237,247,30,203,23,248,206,198,105,53,14,82,139,34,17,221,141,39,43,5,234,108,214,234,45,62,137,221,240,11,221,244,158,49,157,153,101}, {166,83,103,184,222,216,187,183,12,53,21,28,113,111,28,239,181,126,35,51,245,171,218,254,95,221,164,152,35,212,28,178,179,191,1,6,193,224,105,121,140,140,129,32,194,67,189,49,132,96,5,4,116,121,19,201,76,121,201,46,105,223,243,251,196,129,227,43,11,110,153,166,89,200,242,1,60,205,28,23,184,3,83,246,246,147,147,96,11,11,28,13,13,98,56,199,235,89,55,197,135,204,137,250,254,220,98,98,228,127,246,174,161,29,185,18,154,179,178,233,95,48,59,5,252,33,33,117,238,82,97,196,139,52,174,16,109,243,109,208,105,221,227,216,127,188,179,144,33,188,242,6,249,139,7,112,43,32,113,194,187,172,51,45,44,144,215,223,76,132,244,70,203,24,244,133,178,174,191,146,230,249,123,216,234,233,185,163,89,53,219,74,247,196,33,27,224,149,37,50,5,1,186,240,187,123,83,255,33,228,25,120,225,11,86,12,233,134,204,9,38,127,104,204,120,68,18,120,78,21,39,175,82,77,24,237,17,58,137,118,87,187,253,139,33,55,240,188,59,187,57,255,167,127,226,82,225,33,111,191,21,61,17,26,52,189,69,220,215,148,62,251,104,84,12,176,131,119,107,191,226,225,147,164,246,189,244,164,246,206,84,44,112,118,220,223,20,48,121,3,159,124,37,180,235,60,60,19,47,5,254,156,152,105,136,50,105,21,120,54,96,56,75,79,213,79,53,155,170,143,32,180,100,4,252,151,241,149,107,126,180,205,68,9,208,235,113,16,175,7,121,128,215,141,180,1,126,152,230,138,129,7,113,58,48,125,56,136,201,202,106,32,224,148,26,156,214,93,69,85,186,217,115,4,244,112,160,152,77,202,211,45,63,93,87,213,167,237,252,17,101,255,99,173,191,145,5,131,43,53,86,159,203,59,196,82,172,219,86,147,39,31,92,11,80,32,243,39,6,206,180,232,93,243,238,114,56,9,16,18,224,99,139,240,114,83,36,130,72,50,155,139,46,28,223,13,240,5,216,139,83,177,103,133,110,23,251,169,188,43,92,68,39,25,20,15,120,136,188,230,25,47,187,128,54,32,232,8,124,151,248,125,221,168,118,221,193,174,25,170,134,131,111,56,198,237,47,5,81,186,237,219,21,135,168,236,73,4,30,118,110,118,187,31,173,68,171,107,117,129,119,202,206,210,8,115,244,71,222,115,234,249,90,137,161,166,98,240,199,119,250,12,30,55,130,140,243,248,169,200,175,227,248,220,1,88,204,141,94,182,126,89,233,32,205,64,232,87,155,197,189,36,42,69,36,36,102,128,208,106,167,92,153,168,210,57,85,64,152,215,164,117,14,44,162,241,246,227,180,40,24,117,219,183,86,93,67,60,245,177,254,42,198,39,180,78,36,148,233,16,150,229,159,99,18,163,121,109,226,108,69,164,178,6,55,2,36,8,23,19,244,127,30,156,120,187,96,101,71,179,119,244,245,194,253,193,65,119,80,131,222,54,144,255,193,171,17,9,245,155,79,86,58,165,125,135,2,166,141,115,11,66,207,175,151,251,226,124,73,118,165,216,147,64,70,131,206,170,74,245,232,104,105,154,4,251,68,174,185,126,139,46,32,222,30,239,107,8,12,188,31,116,53,203,237,64,244,56,217,123,100,137,85,139,96,86,51,121,234,89,175,77,63,247,6,51,143,237,65,151,181,228,81,5,208,244,150,252,5,169,210,231,111,150,206,167,183,193,108,109,193,209,46,159,217,221,154,44,214,133,86,220,249,254,60,45,66,64,130,36,111,75,11,244,7,31,94,144,244,152,168,185,110,102,68,74,37,111,242,172,92,115,211,237,153,79,229,52,177,186,164,137,143,140,20,106,145,161,191,174,217,124,103,166,59,65,72,232,80,42,229,44,35,73,128,197,84,168,22,142,215,252,245,124,114,244,95,172,179,147,87,36,176,35,254,178,174,94,43,224,59,179,11,203,160,30,38,39,58,131,47,146,49,42,250,112,149,191,110,243,245,66,246,122,89,103,126,191,185,50,135,119,55,83,164,28,181,151,198,131,41,51,168,191,98,154,179,154,217,123,222,146,237,230,85,156,193,212,16,163,178,146,189,67,17,193,226,124,115,194,211,4,255,156,164,182,185,109,131,111,37,27,9,145,222,222,243,163,94,180,206,87,246,184,144,196,82,192,45,129,71,103,233,105,43,60,80,122,173,182,20,234,240,193,197,8,202,189,172,234,119,141,84,115,205,42,194,35,117,250,211,179,248,152,163,112,215,212,243,59,82,112,41,7,95,149,40,202,169,84,124,186,72,10,242,108,170,116,18,31,158,50,241,239,103,43,16,35,172,61,120,233,119,155,98,37,29,23,55,17,191,144,198,225,164,144,69,121,138,142,6,124,46,140,153,90,182,237,11,38,186,20,55,108,72,122,61,163,236,144,138,24,171,121,26,177,185,56,142,245,112,234,171,156,203,48,241,188,98,148,3,235,57,240,209,182,82,136,247,36,198,169,226,27,14,83,142,14,12,124,16,164,119,105,163,160,100,227,179,188,215,56,239,134,229,45,131,42,38,96,78,130,248,71,77,213,203,0,117,4,199,71,141,126,221,165,161,3,206,7,17,131,165,80,31,51,208,210,166,244,182,30,217,108,55,117,61,247,178,220,12,118,127,73,42,52,136,160,213,139,39,24,15,192,38,63,234,118,28,207,116,119,79,94,133,24,203,223,146,169,29,241,50,98,254,152,173,113,69,143,101,27,60,6,121,191,155,149,145,38,230,207,59,58,67,111,217,135,67,181,3,148,120,31,131,83,200,242,128,79,25,187,124,33,181,144,47,36,198,198,126,25,45,33,212,168,244}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {1,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,255,0,1,255,0,0,0,255,1,1,1,255,255,0,0,0,1,255,0,0,0,0,1,0,1,0,0,0,0,255,0,255,0,255,0,1,0,0,0,0,0,0,0,255,1,0,0,1,1,0,1,1,1,1,0,0,0,255,255,0,255,255,1,0,0,1,255,0,0,0,1,1,0,255,1,1,1,0,1,1,1,0,1,0,0,1,255,0,0,0,0,0,255,255,0,1,255,0,1,255,0,0,255,0,0,0,255,0,1,0,0,0,0,0,0,0,0,255,1,255,255,0,0,255,0,0,1,0,1,0,0,255,0,0,0,255,1,0,1,255,0,0,0,0,0,0,1,0,255,0,1,0,0,0,255,0,255,0,0,255,0,255,0,0,0,1,0,0,0,1,255,0,0,0,1,1,0,1,0,1,0,0,255,0,0,1,255,1,0,0,0,0,255,1,255,0,0,0,0,0,0,255,1,0,1,0,0,255,1,255,255,0,0,1,0,1,0,255,0,0,255,0,1,255,0,0,0,0,0,0,0,0,0,1,0,1,0,255,0,0,1,0,0,1,1,0,0,0,1,255,1,0,1,0,1,0,0,0,0,0,0,0,1,255,0,0,1,255,0,255,1,0,255,255,0,0,255,1,0,0,1,255,0,255,0,255,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,0,0,0,0,1,0,0,0,0,255,0,255,255,1,0,0,0,1,0,0,1,0,0,0,0,255,0,1,0,0,0,0,0,0,1,0,0,0,255,0,255,1,255,0,255,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,0,255,0,1,0,255,1,0,1,0,0,1,0,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,1,0,255,255,0,0,1,0,255,0,255,255,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,255,0,0,1,0,0,0,0,0,0,1,1,255,0,1,255,0,255,1,0,255,0,0,0,0,0,0,0,1,0,0,0,1,0,0,255,0,0,0,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,1,0,255,0,0,0,0,255,0,1,255,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,1,255,0,1,255,1,0,0,0,0,0,0,255,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,255,255,1,0,0,0,0,255,0,0,0,1,0,0,0,0,0,0,0,0,255,255,0,0,1,255,0,0,0,0,255,1,0,255,0,255,0,255,255,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,255,0,0,1,0,255,0,255,0,1,255,255,0,1,0,0,255,0,0,1,0,1,0,0,255,0,0,1,1,0,0,1,255,0,0,0,1,0,255,0,0,0,255,1,1,0,255,0,1,0,0,255,0,1,0,1,255,1,0,0,0,0,0,1,0,0,0,1,0,255,0,0,0,255,1,0,1,1,0,0,255,0,0,0,255,1,0,255,1,0,255,0,255,0,1,0,255,0,0,255,0,255,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,255,0,255,1,0,1,1,1,255,0,0,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,0,0,255,1,0,0,0,1,0,0,0,255,255,1,0,1,0,0,1,255,255,0,0,0,0,0,0,0,1,0,0,255,0,0,0,0,0,0,0,0,255,255,0,0,0,0,0,255,0,255,255,0,0,0,0,255,0,1,0,255,0,1,1,0,0,0,0,0,0,0,255,1,0,0,255,0,0,1,0,255,255,1,1,255,1,0,0,0,0,0,255,255,0,0,0,1,1,1,0,1,0,1,255,255,0,0,1,0,1,0,0,1,1,0,255,1,255,0,0,1,1,0,0,0,0,255,0,1,255,0,0,0,0,1,0,0,255,0,0,0,0,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,255,255,0,0,255,255,1,1,0,0,1,255,1,0,0,0,1,0,255,0,0,1,255,0,1,0,1,0,1,0,0,1,0,255,255,1,0,1,0,0,0,0,0,255,1,0,255,0,255,1,255,0,1,1,0,0,0,255,0,0,0,255,1,0,255,0,255,0,0,0,0,1,0,1,255,255,255,255,0,1,255,1,1,255,0,0,0,255,1,0,1,1,0,255,255,0,0,0,1,0,0,0,0,255,0,1,255,0,255,255,0,1,255,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,255,0,255,1,1,0,0,1,0,0,0,0,255,255,0,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,1,255,255,1,255,0,0,0,255,1,1,0,0,0,255,0,0,255,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,1,0,255,255,0,1,0,0,0,0,0,1,0,0,255,0,1,0,1,1,1,0,0,0,1,255,0,1,255,255,0,0,0,0,0,0,0,0,0,0,0,0,255,1,0,255,255,0,1,255,0,0,0,255,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,255,0,255,0,0,0,0,0,0,255,1,255,0,255,0,0,1,255,0,0,0,0,0,0,0,1,0,1,1,255,0,1,0,0,0,255,0,255}, {255,1,1,0,0,255,0,255,1,1,0,0,0,255,0,0,0,0,255,0,1,0,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,255,255,0,0,255,1,0,1,1,255,0,255,0,0,0,0,1,0,1,0,1,1,255,255,1,0,0,0,0,0,0,0,1,0,1,0,1,0,255,0,0,0,0,0,1,255,0,0,0,0,0,1,1,0,255,0,255,0,0,0,0,255,0,0,255,255,0,0,1,0,0,0,0,255,255,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,1,0,1,0,0,255,0,255,0,0,0,0,1,0,255,0,1,0,0,0,0,0,0,255,0,0,0,1,0,0,255,0,0,0,255,255,0,0,0,0,1,0,0,255,1,0,0,0,255,0,255,0,0,0,1,0,1,0,0,0,0,1,0,255,255,0,255,1,0,0,0,0,0,0,0,1,0,0,255,1,255,0,0,255,0,0,0,1,1,255,0,0,1,0,0,0,255,255,0,0,255,0,0,1,255,0,1,0,1,255,0,0,0,0,255,0,0,1,0,0,0,0,0,1,0,0,0,255,0,255,0,0,255,255,0,255,255,1,1,1,1,0,255,0,0,0,255,255,0,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,255,255,1,1,1,0,255,0,1,0,0,0,0,255,0,0,255,0,0,1,1,255,255,0,0,0,0,255,0,255,255,0,255,0,0,255,255,0,255,255,1,1,255,1,0,1,0,255,255,0,0,0,1,255,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,255,255,0,0,1,255,255,0,1,1,1,0,0,1,1,0,1,255,0,0,1,0,0,255,0,0,255,0,1,0,255,1,0,0,255,1,0,0,0,1,0,0,0,1,0,255,0,0,0,0,0,255,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,255,1,0,0,0,255,255,255,255,1,0,0,0,255,0,1,255,255,1,0,0,0,1,0,1,0,0,0,0,255,0,1,0,0,255,1,0,0,0,255,1,0,0,0,0,0,0,0,255,0,0,0,0,0,1,0,255,0,0,0,0,0,0,1,0,255,0,1,255,0,0,0,255,255,0,255,255,0,0,1,0,0,0,0,1,1,1,255,0,0,0,1,1,0,0,0,255,0,255,0,0,255,0,0,0,255,1,255,0,1,1,0,0,0,0,1,1,0,255,0,0,0,1,0,0,255,1,0,0,0,1,1,1,0,1,0,0,255,0,1,0,0,0,0,1,0,255,1,0,1,0,255,0,0,1,255,0,0,0,255,0,255,0,255,255,0,255,255,0,0,1,0,0,255,1,1,0,0,255,0,0,255,1,0,0,1,255,0,0,0,0,0,0,1,0,0,1,0,255,0,0,255,1,0,0,255,255,1,0,255,1,255,0,255,0,0,0,255,255,255,0,1,0,255,1,0,0,0,0,1,0,0,0,0,1,0,0,255,1,255,255,0,0,0,255,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,255,1,255,0,0,255,0,255,1,0,255,1,0,0,0,255,0,1,0,0,255,0,1,0,0,255,0,0,0,0,1,255,1,255,0,0,0,1,1,0,0,0,255,255,255,255,0,0,255,0,0,0,255,1,0,0,1,255,0,0,1,255,0,0,0,0,255,0,255,0,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,0,255,0,1,255,1,0,255,0,1,1,1,0,0,0,0,0,0,0,0,0,0,255,1,0,0,0,0,0,1,255,0,0,1,0,0,255,0,0,1,0,0,0,0,255,255,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,255,1,0,1,1,0,0,255,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,255,255,0,0,0,1,1,0,1,0,0,255,0,0,255,1,255,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,255,255,0,0,1,0,0,0,255,0,0,255,255,1,0,0,255,255,255,0,0,0,0,1,0,0,255,255,0,0,0,0,0,255,1,0,0,255,1,255,0,1,0,0,1,0,0,0,0,0,0,0,0,255,0,0,0,0,1,0,0,0,1,0,0,0,0,255,255,0,0,0,0,255,0,255,255,0,0,0,255,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,255,0,0,0,0,255,0,0,255,0,0,0,255,0,255,0,0,0,0,0,0,0,0,0,0,1,255,0,0,0,255,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,0,0,0,1,1,1,255,1,0,1,0,0,0,0,0,255,255,0,1,0,1,1,255,1,255,0,0,0,255,0,1,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,255,1,255,0,0,255,1,0,0,0,0,0,0,0,0,255,255,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,255,255,1,1,0,0,1,1,0,0,0,255,0,0,1,0,0,1,1,255,0,0,0,1,0,0,0,1,0,0,255,0,0,0,1,1,1,0,255,1,0,0,0,0,0,0,0,0,255,0,0,255,1,1,0,0,0,0,0,255,0,255,0,255,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,255,1,255,0,0,255,0,0,255,0,1,0,1,0,0,1,0,255,0,0,255,0,1,255,0,0,0,255,0,1,255,1,1,0,1}, {1,1,0,0,0,1,255,0,0,1,1,255,0,1,1,0,0,0,1,0,0,0,255,1,0,0,0,0,1,0,255,1,255,0,255,255,1,0,0,1,0,1,0,0,0,0,0,255,0,0,0,0,0,0,255,0,255,0,255,255,0,1,0,1,0,0,255,1,1,0,1,255,0,1,255,255,0,1,255,1,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,0,1,0,255,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,0,0,255,0,0,0,255,0,255,255,1,1,0,255,0,0,255,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,1,0,1,255,0,1,0,255,0,0,0,255,1,0,0,0,1,0,0,0,255,0,255,255,255,0,0,0,0,1,255,1,255,1,0,0,0,0,1,0,255,255,0,0,0,1,0,0,255,1,0,0,0,255,0,0,0,0,0,0,0,255,0,0,0,0,1,255,0,0,0,1,0,0,0,0,1,255,0,255,0,0,1,0,1,0,0,0,0,1,0,255,0,0,0,0,0,0,0,255,0,0,0,255,0,255,1,255,1,255,1,1,0,0,255,0,0,0,0,0,1,0,0,0,1,0,255,0,0,0,1,255,1,1,0,0,0,0,1,0,0,0,255,0,0,1,0,255,0,0,255,0,255,0,0,0,1,0,0,0,0,1,0,1,1,0,255,1,1,0,1,0,0,0,0,0,1,0,0,255,255,0,0,0,255,0,1,1,1,0,1,0,0,255,0,0,255,1,0,0,1,255,255,0,1,255,1,255,255,1,255,0,0,255,0,0,0,1,1,1,0,255,255,1,0,0,0,0,255,255,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,255,0,255,255,0,0,0,1,255,0,255,0,1,0,0,0,0,0,0,0,0,1,1,255,255,255,255,0,0,0,0,1,0,255,0,0,0,1,0,0,0,1,0,1,1,0,1,0,255,1,0,0,1,1,1,0,0,0,0,0,255,0,0,0,0,255,0,1,255,255,0,0,1,1,0,1,0,1,1,0,255,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,255,255,255,255,0,0,0,0,0,1,255,1,0,0,0,255,0,1,0,0,0,1,255,0,255,0,255,0,1,1,0,255,0,1,0,0,255,0,0,0,0,255,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,1,255,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,255,0,0,0,0,0,1,0,0,0,0,0,255,0,0,255,0,1,0,255,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,255,1,1,1,255,1,0,0,1,0,0,1,1,0,1,255,0,255,0,1,255,0,0,0,255,255,255,1,255,0,255,255,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,255,0,0,0,255,255,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,255,1,0,1,0,1,0,0,0,0,0,0,0,0,255,0,255,0,0,0,0,0,0,0,0,255,255,0,255,255,0,0,255,255,0,0,255,255,0,0,255,255,1,255,0,0,255,0,0,255,0,0,1,0,0,0,0,0,0,0,0,1,0,255,0,0,0,0,0,0,0,255,255,0,0,0,1,1,0,1,0,255,0,1,0,1,0,0,255,255,0,0,1,0,0,0,0,255,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,255,0,1,0,1,1,0,0,1,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,1,1,255,0,255,0,255,255,0,0,0,0,1,255,1,255,255,255,0,0,1,1,0,0,0,255,0,255,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,255,0,255,255,0,255,1,0,1,0,0,255,0,0,0,0,0,0,0,255,0,0,0,1,1,0,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,0,0,255,255,0,255,1,0,1,1,255,0,1,0,0,255,0,1,0,0,1,1,0,0,0,1,0,255,255,1,0,0,255,0,0,0,255,1,0,255,255,255,0,255,0,255,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,255,0,255,0,255,255,255,1,0,0,1,255,1,0,0,0,0,255,0,0,0,255,255,255,0,255,1,1,1,0,0,0,1,1,0,255,0,1,1,255,0,0,255,1,0,0,0,0,0,255,1,255,0,255,0,255,0,0,0,0,0,0,0,0,255,0,255,0,255,1,255,0,255,0,255,0,0,1,0,0,0,255,0,255,0,0,0,0,0,0,0,255,1,1,1,1,0,255,1,255,255,1,0,0,255,0,0,0,0,0,1,0,255,1,0,1,0,1,1,1,1,0,1,1,1,0,255,0,255,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,255,0,0,255,0,0,1,0,0,255,0,0,1,0,1,0,0,255,1,255,0,255,255,255,0,255,0,1,1,0,0,255,0,0,0,0,0,1,255,1,1,1,0,0,1,0,1,255,0,0,0,0,255,255,0,1,255,0,1,1,1,0,255,0,1,0,1,1,1,255,255,0,0,1,1,0,0,0,1,0,1,0,255,0,255,0}, } ; static const unsigned char precomputed_core_wforcesntrup1277_k[precomputed_core_wforcesntrup1277_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_wforcesntrup1277_c[precomputed_core_wforcesntrup1277_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_wforcesntrup1277_impl(long long impl) { unsigned char *h = test_core_wforcesntrup1277_h; unsigned char *n = test_core_wforcesntrup1277_n; unsigned char *k = test_core_wforcesntrup1277_k; unsigned char *c = test_core_wforcesntrup1277_c; unsigned char *h2 = test_core_wforcesntrup1277_h2; unsigned char *n2 = test_core_wforcesntrup1277_n2; unsigned char *k2 = test_core_wforcesntrup1277_k2; unsigned char *c2 = test_core_wforcesntrup1277_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup1277(impl); printf("core_wforcesntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup1277_implementation(impl),ntruprime_dispatch_core_wforcesntrup1277_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup1277; printf("core_wforcesntrup1277 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup1277_implementation(),ntruprime_core_wforcesntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } { long long weight,i,direction; for (weight = 0;weight <= nlen;++weight) { for (direction = 0;direction < 2;++direction) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); for (i = 0;i < nlen;++i) { n[i] &= ~1; if (direction) { if (nlen-1-i < weight) n[i] += 1; } else { if (i < weight) n[i] += 1; } n2[i] = n[i]; } crypto_core(h,n,k,c); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); crypto_core(h2,n2,k2,c2); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic"); } } } checksum_expected(core_wforcesntrup1277_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_wforcesntrup1277_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_wforcesntrup1277_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_wforcesntrup1277_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_wforcesntrup1277_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_wforcesntrup1277_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_wforcesntrup1277_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_wforcesntrup1277_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_wforcesntrup1277_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_wforcesntrup1277_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_wforcesntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup1277")) return; storage_core_wforcesntrup1277_h = callocplus(crypto_core_OUTPUTBYTES); test_core_wforcesntrup1277_h = aligned(storage_core_wforcesntrup1277_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_wforcesntrup1277_n = callocplus(crypto_core_INPUTBYTES); test_core_wforcesntrup1277_n = aligned(storage_core_wforcesntrup1277_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_wforcesntrup1277_k = callocplus(crypto_core_KEYBYTES); test_core_wforcesntrup1277_k = aligned(storage_core_wforcesntrup1277_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_wforcesntrup1277_c = callocplus(crypto_core_CONSTBYTES); test_core_wforcesntrup1277_c = aligned(storage_core_wforcesntrup1277_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_wforcesntrup1277_h2 = callocplus(maxalloc); test_core_wforcesntrup1277_h2 = aligned(storage_core_wforcesntrup1277_h2,crypto_core_OUTPUTBYTES); storage_core_wforcesntrup1277_n2 = callocplus(maxalloc); test_core_wforcesntrup1277_n2 = aligned(storage_core_wforcesntrup1277_n2,crypto_core_INPUTBYTES); storage_core_wforcesntrup1277_k2 = callocplus(maxalloc); test_core_wforcesntrup1277_k2 = aligned(storage_core_wforcesntrup1277_k2,crypto_core_KEYBYTES); storage_core_wforcesntrup1277_c2 = callocplus(maxalloc); test_core_wforcesntrup1277_c2 = aligned(storage_core_wforcesntrup1277_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_wforcesntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup1277();++impl) forked(test_core_wforcesntrup1277_impl,impl); ++test_core_wforcesntrup1277_h; ++test_core_wforcesntrup1277_n; ++test_core_wforcesntrup1277_k; ++test_core_wforcesntrup1277_c; ++test_core_wforcesntrup1277_h2; ++test_core_wforcesntrup1277_n2; ++test_core_wforcesntrup1277_k2; ++test_core_wforcesntrup1277_c2; } free(storage_core_wforcesntrup1277_c2); free(storage_core_wforcesntrup1277_k2); free(storage_core_wforcesntrup1277_n2); free(storage_core_wforcesntrup1277_h2); free(storage_core_wforcesntrup1277_c); free(storage_core_wforcesntrup1277_k); free(storage_core_wforcesntrup1277_n); free(storage_core_wforcesntrup1277_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_wforcesntrup653.c0000644000000000000000000012060214705505543024045 0ustar rootroot/* ----- core/wforcesntrup653, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_wforcesntrup653_checksums[] = { "bf79e9b0d221c345938d5d5000d8dc2a01372e2dd582072aaea523187ecc1130", "055650b83895d732c194cf68e2d0401841f233e7dd66aa3f22643b8db997d334", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_wforcesntrup653_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_wforcesntrup653_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_wforcesntrup653_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_wforcesntrup653_CONSTBYTES static void *storage_core_wforcesntrup653_h; static unsigned char *test_core_wforcesntrup653_h; static void *storage_core_wforcesntrup653_n; static unsigned char *test_core_wforcesntrup653_n; static void *storage_core_wforcesntrup653_k; static unsigned char *test_core_wforcesntrup653_k; static void *storage_core_wforcesntrup653_c; static unsigned char *test_core_wforcesntrup653_c; static void *storage_core_wforcesntrup653_h2; static unsigned char *test_core_wforcesntrup653_h2; static void *storage_core_wforcesntrup653_n2; static unsigned char *test_core_wforcesntrup653_n2; static void *storage_core_wforcesntrup653_k2; static unsigned char *test_core_wforcesntrup653_k2; static void *storage_core_wforcesntrup653_c2; static unsigned char *test_core_wforcesntrup653_c2; #define precomputed_core_wforcesntrup653_NUM 9 static const unsigned char precomputed_core_wforcesntrup653_h[precomputed_core_wforcesntrup653_NUM][crypto_core_OUTPUTBYTES] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,1,255,255,1,1,0,0,0,255,0,0,0,0,0,1,1,0,255,0,0,255,0,255,0,1,0,0,0,0,0,0,1,1,255,1,0,1,255,255,0,1,255,0,0,0,0,255,0,1,1,0,255,0,0,1,255,1,255,0,0,255,1,0,0,0,0,255,1,0,0,1,0,0,0,255,0,1,0,0,1,1,0,0,255,0,0,1,255,255,0,0,0,255,255,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,255,255,0,0,0,0,255,1,255,0,0,0,0,1,0,1,255,0,0,255,1,1,0,0,0,0,255,255,0,1,0,0,0,0,0,1,0,1,1,0,0,0,255,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,255,0,1,0,1,1,0,0,0,1,0,0,0,0,0,255,1,0,1,0,0,1,255,0,0,0,0,0,1,1,255,0,0,0,255,255,0,255,0,1,0,255,0,0,0,255,0,1,1,0,0,0,0,1,0,1,0,0,255,0,255,1,255,0,255,255,1,0,255,1,0,1,0,0,1,0,0,0,0,0,1,1,1,255,0,0,0,1,255,0,0,1,255,255,255,0,255,1,1,1,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,255,0,255,0,255,1,0,255,0,0,0,0,1,0,0,0,0,0,1,255,0,0,1,255,0,1,255,1,255,255,0,0,0,0,0,255,255,255,1,0,0,255,255,255,255,0,255,255,1,0,0,0,0,255,0,1,0,0,255,255,0,0,0,1,1,1,1,0,0,1,255,0,1,255,255,255,255,255,0,1,0,0,0,1,0,1,0,255,1,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0,1,0,1,0,0,0,255,0,1,255,255,1,0,0,0,0,255,0,0,0,0,1,1,255,0,0,0,1,255,255,1,255,255,0,255,0,1,1,255,0,1,255,255,1,1,1,255,1,255,0,0,0,1,255,0,1,1,1,0,1,1,0,0,1,0,1,0,255,0,0,0,0,1,1,1,255,1,0,0,1,0,0,0,1,255,1,0,1,0,255,0,0,255,255,255,0,255,0,0,0,255,0,255,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,255,255,0,255,0,0,0,0,255,0,0,255,0,0,1,255,0,0,1,0,255,1,0,0,0,255,0,0,1,255,0,0,255,255,0,1,255,0,0,0,0,0,255,0,0,1,1,1,255,0,1,0,255,0,0,1,0,0,0,0,0,0,0,1,1,0,0,255,0,0,0,1,1,255,0,0,1,0,255,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,255,1,1,0,0,0,0,0,0,0,1,1,1,1,255,0,0,255,0,255,0,0,1,0,1,0,0,255,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup653_n[precomputed_core_wforcesntrup653_NUM][crypto_core_INPUTBYTES] = { {2,25,191,134,80,22,215,57,96,83,181,36,184,221,54,9,147,89,121,52,110,71,232,247,96,143,82,49,88,43,206,92,135,206,197,216,25,177,27,182,76,188,205,53,247,201,192,153,247,52,25,141,195,98,228,148,109,66,130,123,14,23,158,131,144,107,64,150,45,255,230,170,172,16,240,38,246,70,26,244,142,4,157,114,213,54,145,34,165,69,48,202,77,61,13,84,155,79,58,22,159,164,24,40,15,48,199,185,89,200,77,40,108,238,182,243,4,67,79,242,174,215,130,79,198,103,211,121,54,42,126,239,102,22,167,156,95,29,158,15,109,93,109,53,47,192,133,47,145,244,242,234,250,68,118,33,216,165,26,27,5,82,74,63,144,6,29,14,254,142,248,79,174,239,234,46,125,4,53,132,16,216,142,7,239,182,168,104,185,36,192,129,105,2,228,223,157,1,35,186,225,221,220,60,254,131,242,31,240,91,32,152,54,128,96,102,182,27,6,60,10,149,137,38,188,48,176,241,248,41,180,202,132,22,29,12,200,189,221,233,76,161,18,54,100,104,130,47,114,149,126,184,227,252,188,105,147,192,145,130,34,235,135,83,21,95,98,200,33,141,129,166,247,167,151,93,150,83,81,123,33,137,136,98,244,9,177,175,42,210,55,229,65,80,24,160,1,236,220,146,54,48,116,215,38,4,189,217,64,28,71,251,141,238,246,128,240,215,77,178,153,63,206,86,108,82,42,90,246,168,108,247,68,61,47,23,21,86,121,136,122,141,200,103,41,97,90,88,49,243,204,192,80,6,101,162,218,229,244,111,178,57,43,191,3,202,103,88,224,111,134,1,167,184,152,208,96,2,217,232,251,128,218,211,87,64,70,72,97,118,244,203,143,75,219,122,150,58,243,215,16,58,172,103,135,104,39,213,149,207,121,6,185,40,16,24,162,75,91,148,122,16,116,174,73,160,60,206,64,244,66,58,198,214,26,253,120,34,117,153,190,244,8,7,227,114,119,135,136,80,203,163,153,66,23,83,186,106,238,22,129,183,191,10,253,60,17,45,206,26,55,119,107,148,176,125,242,113,200,75,136,159,253,250,183,115,59,162,26,80,212,19,17,189,185,205,44,160,247,114,166,239,29,124,72,54,169,36,172,0,150,32,147,46,12,14,38,30,116,206,142,83,220,57,67,82,192,184,115,43,170,227,180,194,36,189,236,96,72,1,207,15,240,158,5,185,2,173,91,247,105,182,107,6,151,183,87,105,211,20,25,82,99,180,147,56,103,183,252,125,199,37,216,150,225,239,223,38,11,80,2,104,90,114,174,32,246,170,56,211,149,97,162,49,241,227,15,102,248,180,64,113,212,93,225,71,98,55,155,143,106,197,31,109,176,183,109,174,83,48,51,84,29,52,222,175,225,116,133,62,17,42,113,109,146,201,119,3,114,181,192,59,57,101,28,207,169,136,218,123,127,217,30}, {208,201,3,34,64,214,74,123,47,70,184,151,119,136,29,188,169,2,66,29,218,201,122,100,208,1,80,34,226,15,163,244,83,104,43,225,24,185,161,91,213,96,181,155,27,212,135,227,59,222,67,197,209,181,152,51,71,215,116,246,79,110,213,223,174,116,78,127,84,207,198,112,213,39,104,67,201,15,151,173,159,177,90,48,97,129,227,201,167,129,122,40,79,238,185,229,61,64,74,94,67,180,6,23,50,191,121,109,219,130,71,160,165,94,214,17,149,115,232,213,32,14,150,85,35,53,175,109,203,5,240,76,184,108,182,142,62,228,178,21,164,13,5,223,210,18,201,202,225,53,114,249,152,244,74,93,109,244,71,227,244,195,190,253,237,82,191,226,24,164,225,150,162,64,40,4,107,66,246,239,244,79,198,222,140,174,75,213,177,255,48,28,136,222,154,98,166,162,128,130,209,220,244,172,201,124,123,64,188,162,48,42,120,142,83,78,150,140,27,60,186,40,32,52,231,207,36,241,160,140,241,116,166,174,67,60,5,86,223,72,4,230,129,236,63,27,28,163,10,66,251,81,144,203,100,207,33,45,224,15,217,223,207,107,146,126,158,114,199,213,227,222,86,122,16,248,80,166,22,80,19,143,133,41,146,81,154,106,205,123,17,196,113,202,85,235,248,159,112,237,114,133,41,121,206,207,0,12,54,170,149,156,13,20,128,133,242,33,226,50,104,205,17,125,25,210,44,35,93,156,202,252,65,45,180,246,8,105,97,59,0,223,201,128,127,40,198,108,167,210,140,25,155,64,156,35,125,172,124,237,35,196,162,135,114,97,31,55,170,170,124,47,75,82,132,182,1,194,107,117,158,115,224,58,254,167,178,241,229,252,191,188,235,50,122,149,39,18,0,35,110,42,174,50,62,38,38,175,237,204,114,30,198,139,94,82,249,32,231,175,223,204,193,239,26,29,208,37,195,216,203,38,96,0,189,189,193,213,135,66,133,82,108,66,233,163,51,116,253,248,14,73,187,203,94,242,222,109,25,226,138,111,172,100,101,129,252,197,5,138,145,93,218,83,41,93,121,32,19,107,244,93,136,160,151,176,246,111,207,232,52,189,36,250,32,33,43,138,24,50,195,100,60,223,130,95,80,95,242,97,118,15,202,108,31,67,127,198,90,178,79,176,178,199,31,86,35,204,40,216,246,35,121,25,5,142,46,197,161,69,51,134,94,73,149,243,60,83,8,42,64,142,116,71,105,115,249,226,240,101,178,55,133,237,140,112,51,103,253,238,100,39,16,82,102,37,223,93,252,229,76,83,103,134,2,101,211,50,214,239,66,200,147,41,198,13,217,184,251,163,104,112,13,213,94,162,123,217,168,55,46,24,129,196,144,159,21,228,228,4,96,253,169,162,14,186,156,206,59,238,5,119,50,213,156,230,5,212,22,113,69,207,46,31,255,225,127,252,161,140,226,189,110}, {48,14,224,167,129,150,182,199,169,233,105,95,129,107,12,85,26,22,36,65,91,87,17,51,167,202,182,185,65,241,69,113,74,129,20,194,55,151,7,210,121,207,22,229,4,110,254,201,77,209,17,247,51,61,251,254,188,195,63,49,172,57,17,44,145,117,156,238,99,107,211,179,67,11,209,135,157,120,243,2,143,117,201,47,212,120,255,226,125,65,170,96,239,84,122,91,237,212,215,138,251,153,189,168,186,112,170,124,63,94,45,88,165,96,53,61,151,62,134,101,247,79,24,252,242,136,18,178,172,231,53,89,45,185,44,62,163,85,229,183,24,128,216,45,124,121,106,194,66,218,23,36,26,232,87,23,189,27,62,119,56,195,79,138,236,219,36,236,101,99,253,216,122,228,151,222,157,194,222,32,152,10,81,214,172,109,167,134,224,98,7,62,249,35,233,33,167,227,223,214,11,20,182,81,119,18,40,83,33,71,80,126,164,120,112,28,41,37,48,96,11,1,163,128,250,85,186,2,40,49,207,214,97,151,21,130,46,198,57,17,92,192,203,246,234,217,44,231,129,103,145,229,51,230,194,81,83,139,166,48,11,22,239,240,18,0,165,54,187,147,125,120,226,241,45,26,38,93,65,83,237,105,235,190,100,40,1,157,128,27,96,224,255,31,129,93,128,170,168,101,146,191,203,171,241,120,178,162,52,151,75,41,108,29,203,10,250,177,134,216,86,185,101,25,191,93,87,67,101,229,186,131,3,108,206,41,129,37,135,150,66,234,203,1,76,86,49,206,115,245,52,203,190,105,238,204,229,38,191,93,134,152,211,90,120,155,32,63,112,166,239,2,193,29,79,26,18,123,9,68,116,173,161,155,81,62,76,85,50,40,233,219,36,175,129,232,140,17,73,69,120,46,222,216,8,145,123,142,39,208,73,222,206,44,135,177,177,23,124,218,60,32,176,208,162,37,144,12,46,56,183,39,39,246,101,109,182,42,89,196,195,127,188,211,224,102,211,59,78,203,112,26,20,173,193,23,72,163,3,210,219,228,227,239,228,254,227,74,190,29,64,112,138,146,235,32,184,195,93,36,15,44,115,91,131,250,190,104,171,36,69,71,138,251,211,175,0,92,188,94,249,6,1,44,114,6,37,117,110,241,152,245,36,118,204,168,52,52,198,211,36,140,52,21,230,77,16,114,99,45,98,211,241,83,10,145,57,58,25,118,48,27,213,63,5,234,198,19,67,104,35,85,193,169,249,182,236,41,150,183,43,139,115,108,3,164,126,173,4,39,130,79,178,165,240,102,166,107,139,176,168,91,227,145,144,104,181,213,106,28,77,2,54,56,217,69,32,13,163,77,97,58,227,45,67,96,78,112,80,23,86,140,66,188,59,146,135,157,244,122,118,149,35,125,0,179,98,90,254,157,11,98,75,148,170,80,130,121,10,73,124,92,12,8,209,3,66,253,3,61,202,250,66}, {215,30,199,1,146,179,169,243,31,218,96,53,148,186,63,187,108,80,61,98,222,242,142,98,129,68,77,77,94,67,61,2,97,131,173,94,86,200,163,33,125,98,19,110,143,44,112,140,216,217,90,20,185,47,108,73,207,230,68,158,16,12,199,135,118,247,199,191,11,97,14,231,222,5,151,6,57,50,52,5,254,145,171,207,42,29,180,83,93,86,125,197,21,229,183,212,8,19,156,81,217,217,66,23,109,101,40,245,139,193,140,87,248,228,50,230,98,154,220,133,87,36,21,23,132,46,92,106,46,198,242,129,62,140,143,34,150,153,196,75,188,51,213,113,95,63,126,44,100,170,18,98,14,243,208,106,220,100,118,244,101,221,79,196,198,143,63,251,66,44,68,72,137,188,129,76,97,47,146,154,227,185,15,197,245,74,201,87,249,187,244,92,219,38,109,137,227,251,16,233,183,7,109,49,112,172,212,15,2,153,90,57,192,75,138,118,10,214,50,22,148,121,90,70,50,223,226,94,242,169,61,224,135,220,94,77,197,10,236,109,233,94,123,31,54,109,44,12,236,125,59,150,138,2,85,28,42,26,237,104,86,232,19,175,80,92,167,38,112,154,116,159,72,142,176,177,186,74,151,192,190,164,147,250,40,41,37,114,130,241,16,218,217,110,27,157,226,242,4,188,190,18,23,242,63,135,87,29,224,112,216,137,146,91,245,69,250,254,123,49,178,215,237,199,31,51,58,205,112,140,209,25,0,206,6,26,131,200,207,221,81,124,125,167,118,92,187,138,141,231,9,3,224,232,117,80,240,64,77,130,12,94,250,105,116,184,22,204,121,18,85,63,112,70,15,141,84,219,218,96,160,60,188,6,78,215,28,175,192,226,210,114,77,159,238,107,13,44,191,3,104,82,120,233,31,132,92,25,119,77,21,38,83,42,169,197,39,154,51,63,187,173,240,221,177,130,253,221,45,249,42,211,252,233,119,36,176,156,153,241,196,223,209,128,32,51,166,242,52,145,37,162,45,1,62,51,0,235,94,212,130,130,69,140,232,210,122,135,24,207,236,7,217,185,245,56,52,104,95,70,81,87,95,220,103,253,52,100,116,127,205,50,49,250,153,120,117,18,74,96,99,219,119,8,201,116,14,252,176,40,220,11,64,51,116,46,146,213,197,217,55,226,179,203,153,110,100,5,50,71,49,116,33,73,185,236,160,129,21,72,102,151,128,21,252,241,136,193,70,45,183,183,5,168,178,137,120,48,242,40,175,118,29,90,95,217,136,143,130,59,156,210,74,40,137,167,220,169,93,243,226,41,226,150,47,98,99,20,75,85,170,166,76,206,27,181,184,152,6,13,180,141,69,96,65,136,244,116,12,64,108,146,91,166,94,214,121,161,45,193,73,124,216,102,83,85,187,239,194,244,227,245,164,213,250,163,47,208,113,214,182,238,98,237,165,22,215,159,36,81,47,232,42}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {1,0,1,0,0,1,0,255,0,0,0,255,1,0,1,1,0,0,255,1,0,0,0,0,255,0,1,0,255,0,0,1,1,0,255,0,255,0,0,0,255,0,1,1,255,255,0,0,0,1,255,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,255,255,1,0,0,1,0,0,0,1,0,0,0,255,1,0,0,0,1,0,255,0,0,0,0,1,0,1,0,0,255,0,0,255,255,0,255,0,255,1,0,0,0,1,0,255,0,0,255,0,0,255,0,0,1,255,0,255,255,0,0,0,255,255,0,1,0,0,1,0,1,255,1,1,0,0,0,1,0,0,0,0,0,0,1,255,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,1,255,1,1,0,1,0,1,255,0,255,0,1,1,255,1,0,0,1,0,255,255,0,255,0,255,0,1,0,0,255,255,0,0,1,0,255,1,0,255,1,1,0,0,0,0,1,0,0,0,1,1,0,0,255,0,0,1,0,0,255,0,1,1,0,1,0,0,1,0,0,255,0,255,1,255,1,255,0,255,255,0,0,1,1,0,0,255,255,0,0,1,0,0,0,0,0,0,255,1,0,255,0,0,0,1,1,255,0,0,255,0,0,255,0,0,0,0,1,1,255,0,1,0,0,255,255,0,0,0,0,0,255,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,255,1,255,1,0,0,0,0,1,1,1,0,0,1,0,1,0,1,255,1,0,255,0,0,255,1,0,0,255,0,0,0,0,0,0,0,0,0,255,1,1,0,0,255,0,0,255,1,255,255,0,0,0,0,0,1,0,255,0,0,1,255,1,0,255,1,1,0,0,1,0,0,255,255,0,0,0,0,1,0,0,0,255,0,255,1,0,255,0,0,1,255,255,0,1,0,0,1,0,1,0,0,0,255,1,0,1,0,0,1,0,0,1,255,0,255,0,255,1,1,0,1,1,0,0,0,255,0,0,255,255,0,0,255,0,1,0,255,0,1,1,0,0,0,0,0,0,1,1,0,0,0,255,1,0,0,0,0,0,1,0,0,0,255,1,255,255,1,255,255,0,0,255,0,1,0,255,0,1,1,0,255,0,255,0,255,0,1,255,255,255,255,0,1,0,1,255,0,1,0,0,1,0,255,1,0,0,0,0,0,0,0,255,255,0,0,0,255,0,1,0,0,0,0,1,0,1,1,1,0,0,0,255,1,0,1,255,1,0,1,255,0,1,0,255,0,1,255,255,255,0,0,1,255,255,0,0,0,1,255,0,0,0,1,0,1,0,0,0,1,1,1,0,0,255,1,0,1,0,255,0,0,0,0,0,0,255,0,255,0,0,0,0,0,255,0,1,255,1,0,255,0,255,255,0,0,1,255,0,0,0,1,0,0,1,0,255,0,0,0,0,0,0,0,1,0,1,0,255,1,0}, {0,1,255,255,1,1,0,0,0,255,0,0,0,0,0,1,1,0,255,0,0,255,0,255,0,1,0,0,0,0,0,0,1,1,255,1,0,1,255,255,0,1,255,0,0,0,0,255,0,1,1,0,255,0,0,1,255,1,255,0,0,255,1,0,0,0,0,255,1,0,0,1,0,0,0,255,0,1,0,0,1,1,0,0,255,0,0,1,255,255,0,0,0,255,255,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,255,255,0,0,0,0,255,1,255,0,0,0,0,1,0,1,255,0,0,255,1,1,0,0,0,0,255,255,0,1,0,0,0,0,0,1,0,1,1,0,0,0,255,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,255,0,1,0,1,1,0,0,0,1,0,0,0,0,0,255,1,0,1,0,0,1,255,0,0,0,0,0,1,1,255,0,0,0,255,255,0,255,0,1,0,255,0,0,0,255,0,1,1,0,0,0,0,1,0,1,0,0,255,0,255,1,255,0,255,255,1,0,255,1,0,1,0,0,1,0,0,0,0,0,1,1,1,255,0,0,0,1,255,0,0,1,255,255,255,0,255,1,1,1,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,255,0,255,0,255,1,0,255,0,0,0,0,1,0,0,0,0,0,1,255,0,0,1,255,0,1,255,1,255,255,0,0,0,0,0,255,255,255,1,0,0,255,255,255,255,0,255,255,1,0,0,0,0,255,0,1,0,0,255,255,0,0,0,1,1,1,1,0,0,1,255,0,1,255,255,255,255,255,0,1,0,0,0,1,0,1,0,255,1,255,0,0,0,0,0,0,0,0,255,0,0,255,0,0,1,0,1,0,0,0,255,0,1,255,255,1,0,0,0,0,255,0,0,0,0,1,1,255,0,0,0,1,255,255,1,255,255,0,255,0,1,1,255,0,1,255,255,1,1,1,255,1,255,0,0,0,1,255,0,1,1,1,0,1,1,0,0,1,0,1,0,255,0,0,0,0,1,1,1,255,1,0,0,1,0,0,0,1,255,1,0,1,0,255,0,0,255,255,255,0,255,0,0,0,255,0,255,0,1,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,255,255,0,255,0,0,0,0,255,0,0,255,0,0,1,255,0,0,1,0,255,1,0,0,0,255,0,0,1,255,0,0,255,255,0,1,255,0,0,0,0,0,255,0,0,1,1,1,255,0,1,0,255,0,0,1,0,0,0,0,0,0,0,1,1,0,0,255,0,0,0,1,1,255,0,0,1,0,255,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,255,1,1,0,0,0,0,0,0,0,1,1,1,1,255,0,0,255,0,255,0,0,1,0,1,0,0,255,0,0,0,0,0,0}, {1,0,0,255,255,0,1,0,1,0,1,0,0,1,1,0,255,0,0,0,0,0,255,0,0,0,255,0,0,255,1,0,0,0,0,255,0,0,0,0,0,255,255,1,1,1,0,0,0,0,0,0,0,0,255,255,1,255,0,0,0,255,1,0,1,255,0,255,0,0,0,0,0,1,255,0,0,0,0,0,1,255,0,0,255,0,0,0,0,255,255,255,255,255,0,0,0,0,1,0,1,0,0,1,1,0,0,255,1,0,255,1,0,1,255,1,1,0,255,0,0,0,255,0,1,0,0,0,1,0,0,0,1,1,255,255,1,1,1,0,255,0,0,0,0,0,1,0,1,255,0,255,1,0,255,0,255,0,1,0,0,0,0,1,255,1,255,1,1,0,0,0,0,0,0,255,1,0,255,0,1,1,0,0,255,1,255,0,255,255,0,1,0,1,1,255,255,255,1,0,0,0,0,0,0,255,0,0,0,255,0,0,0,0,0,0,1,255,0,255,0,1,0,255,0,1,1,255,0,255,1,255,0,0,0,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,255,255,0,0,1,255,0,0,0,0,0,0,1,0,0,0,255,0,255,1,1,0,0,0,1,1,255,0,0,255,0,1,255,0,1,255,0,0,0,0,0,0,1,0,0,0,1,0,255,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,255,0,0,0,0,0,1,1,0,1,0,1,255,255,1,255,0,0,1,0,255,1,1,0,0,255,0,0,255,0,0,0,0,1,1,0,255,0,255,0,0,255,1,0,0,255,0,255,0,0,0,1,255,0,1,0,0,0,0,1,255,255,0,0,0,1,0,0,255,1,1,255,1,0,0,0,0,0,0,255,255,0,0,0,1,0,255,1,0,0,0,0,255,0,1,0,1,0,0,0,0,0,0,1,1,0,255,255,255,0,0,0,255,0,0,0,1,255,0,1,0,0,1,0,1,1,255,1,0,0,0,0,0,255,255,0,1,0,255,0,0,0,1,0,0,255,0,255,1,1,0,0,0,0,0,0,0,0,0,255,255,255,255,0,1,0,0,255,1,1,0,0,0,255,0,1,0,1,255,0,1,0,1,0,0,0,0,0,255,1,0,255,1,0,1,1,1,0,255,0,0,0,0,255,0,0,0,0,255,255,255,0,0,0,0,255,0,1,0,0,0,1,1,1,0,1,255,0,255,0,1,0,1,0,1,1,0,1,1,0,0,0,0,255,255,1,1,0,1,255,1,1,255,0,0,0,255,0,255,0,0,0,255,255,255,1,0,0,0,1,0,255,255,255,1,255,0,1,255,1,255,1,0,0,0,255,255,1,1,0,1,0,0,0,0,0,255,0,0,1,1,1,0,1,1,0,0,0,0,0,0,1,1,0,255,0,1,0,0,0,0,1,255,255,0,255,0}, } ; static const unsigned char precomputed_core_wforcesntrup653_k[precomputed_core_wforcesntrup653_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_wforcesntrup653_c[precomputed_core_wforcesntrup653_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_wforcesntrup653_impl(long long impl) { unsigned char *h = test_core_wforcesntrup653_h; unsigned char *n = test_core_wforcesntrup653_n; unsigned char *k = test_core_wforcesntrup653_k; unsigned char *c = test_core_wforcesntrup653_c; unsigned char *h2 = test_core_wforcesntrup653_h2; unsigned char *n2 = test_core_wforcesntrup653_n2; unsigned char *k2 = test_core_wforcesntrup653_k2; unsigned char *c2 = test_core_wforcesntrup653_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup653(impl); printf("core_wforcesntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup653_implementation(impl),ntruprime_dispatch_core_wforcesntrup653_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup653; printf("core_wforcesntrup653 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup653_implementation(),ntruprime_core_wforcesntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } { long long weight,i,direction; for (weight = 0;weight <= nlen;++weight) { for (direction = 0;direction < 2;++direction) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); for (i = 0;i < nlen;++i) { n[i] &= ~1; if (direction) { if (nlen-1-i < weight) n[i] += 1; } else { if (i < weight) n[i] += 1; } n2[i] = n[i]; } crypto_core(h,n,k,c); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); crypto_core(h2,n2,k2,c2); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic"); } } } checksum_expected(core_wforcesntrup653_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_wforcesntrup653_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_wforcesntrup653_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_wforcesntrup653_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_wforcesntrup653_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_wforcesntrup653_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_wforcesntrup653_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_wforcesntrup653_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_wforcesntrup653_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_wforcesntrup653_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_wforcesntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup653")) return; storage_core_wforcesntrup653_h = callocplus(crypto_core_OUTPUTBYTES); test_core_wforcesntrup653_h = aligned(storage_core_wforcesntrup653_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_wforcesntrup653_n = callocplus(crypto_core_INPUTBYTES); test_core_wforcesntrup653_n = aligned(storage_core_wforcesntrup653_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_wforcesntrup653_k = callocplus(crypto_core_KEYBYTES); test_core_wforcesntrup653_k = aligned(storage_core_wforcesntrup653_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_wforcesntrup653_c = callocplus(crypto_core_CONSTBYTES); test_core_wforcesntrup653_c = aligned(storage_core_wforcesntrup653_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_wforcesntrup653_h2 = callocplus(maxalloc); test_core_wforcesntrup653_h2 = aligned(storage_core_wforcesntrup653_h2,crypto_core_OUTPUTBYTES); storage_core_wforcesntrup653_n2 = callocplus(maxalloc); test_core_wforcesntrup653_n2 = aligned(storage_core_wforcesntrup653_n2,crypto_core_INPUTBYTES); storage_core_wforcesntrup653_k2 = callocplus(maxalloc); test_core_wforcesntrup653_k2 = aligned(storage_core_wforcesntrup653_k2,crypto_core_KEYBYTES); storage_core_wforcesntrup653_c2 = callocplus(maxalloc); test_core_wforcesntrup653_c2 = aligned(storage_core_wforcesntrup653_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_wforcesntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup653();++impl) forked(test_core_wforcesntrup653_impl,impl); ++test_core_wforcesntrup653_h; ++test_core_wforcesntrup653_n; ++test_core_wforcesntrup653_k; ++test_core_wforcesntrup653_c; ++test_core_wforcesntrup653_h2; ++test_core_wforcesntrup653_n2; ++test_core_wforcesntrup653_k2; ++test_core_wforcesntrup653_c2; } free(storage_core_wforcesntrup653_c2); free(storage_core_wforcesntrup653_k2); free(storage_core_wforcesntrup653_n2); free(storage_core_wforcesntrup653_h2); free(storage_core_wforcesntrup653_c); free(storage_core_wforcesntrup653_k); free(storage_core_wforcesntrup653_n); free(storage_core_wforcesntrup653_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_wforcesntrup761.c0000644000000000000000000013203614705505543024051 0ustar rootroot/* ----- core/wforcesntrup761, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_wforcesntrup761_checksums[] = { "0b92df5bfe9577b28e57102af63b96169a0b22bcff2c4ae8ecd5030228a2e7f7", "87aa3f938b26783a0e83c5dab497ffdc4e77e2ae74c457996253a6ee0a7c2d61", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_wforcesntrup761_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_wforcesntrup761_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_wforcesntrup761_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_wforcesntrup761_CONSTBYTES static void *storage_core_wforcesntrup761_h; static unsigned char *test_core_wforcesntrup761_h; static void *storage_core_wforcesntrup761_n; static unsigned char *test_core_wforcesntrup761_n; static void *storage_core_wforcesntrup761_k; static unsigned char *test_core_wforcesntrup761_k; static void *storage_core_wforcesntrup761_c; static unsigned char *test_core_wforcesntrup761_c; static void *storage_core_wforcesntrup761_h2; static unsigned char *test_core_wforcesntrup761_h2; static void *storage_core_wforcesntrup761_n2; static unsigned char *test_core_wforcesntrup761_n2; static void *storage_core_wforcesntrup761_k2; static unsigned char *test_core_wforcesntrup761_k2; static void *storage_core_wforcesntrup761_c2; static unsigned char *test_core_wforcesntrup761_c2; #define precomputed_core_wforcesntrup761_NUM 9 static const unsigned char precomputed_core_wforcesntrup761_h[precomputed_core_wforcesntrup761_NUM][crypto_core_OUTPUTBYTES] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,1,0,1,0,0,0,0,0,255,0,0,0,1,0,0,0,0,0,1,0,0,0,0,255,255,0,0,1,1,1,0,255,255,0,255,0,0,1,1,255,1,1,0,255,0,0,0,255,1,1,0,0,0,1,0,0,0,0,255,255,1,0,0,1,0,255,0,1,1,0,1,0,0,0,1,0,0,0,0,255,1,255,0,0,255,1,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,1,255,0,0,0,255,0,0,0,255,0,0,0,255,255,255,255,1,0,0,0,255,255,255,1,0,1,0,1,1,0,0,0,255,1,0,0,0,0,255,1,0,0,0,0,1,255,1,0,0,0,0,255,1,0,0,0,0,0,1,1,0,0,255,255,255,0,0,1,1,0,0,0,0,0,255,0,1,1,0,0,1,0,0,255,0,0,0,1,1,0,1,255,0,0,255,1,1,0,0,0,0,0,1,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,1,255,1,0,1,255,1,0,0,0,1,0,0,0,0,0,0,1,255,0,1,0,255,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,1,255,0,255,1,1,0,0,1,0,1,0,0,0,0,0,0,1,0,255,255,0,1,1,0,0,0,255,0,0,0,0,1,0,0,0,0,255,0,1,0,0,1,0,255,1,1,0,0,0,0,1,0,0,0,1,0,0,0,255,0,1,1,0,1,0,1,0,0,255,0,0,255,1,255,0,1,0,0,1,1,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,255,255,0,0,255,0,1,1,0,255,0,255,0,0,0,0,0,255,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,255,0,255,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,255,1,0,1,0,0,0,0,0,0,0,0,255,1,0,0,0,1,255,255,255,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,1,1,0,255,255,0,0,0,1,255,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,255,0,255,1,1,0,255,255,0,0,1,0,0,1,0,255,255,1,0,255,1,0,1,255,1,255,255,0,0,0,0,1,255,255,1,0,255,0,0,1,255,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,255,0,0,0,255,0,0,1,255,1,0,1,0,255,0,0,1,1,1,1,0,0,0,0,0,1,0,255,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,255,0,0,255,255,0,1,255,0,0,0,1,0,1,0,0,255,0,0,1,0,1,255,255,0,1,0,0,0,1,0,1,0,0,1,0,0,255,0,0,0,0,0,0,255,0,255,1,255,0,0,1,0,0,0,0,0,0,0,255,1,0,0,0,1,255,0,0,0,255,0,0,0,0,0,0,0,0,1,0,255,0,0,1,1,1,0,1,0,0,0,0,255,0,0,0,0,1,255,255,255,0,0,0,0,0,0,0,0,0,255,0,255,255,0,255,1,255,255,0,0,0,0,0,1,0,0,1,255,255,1,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup761_n[precomputed_core_wforcesntrup761_NUM][crypto_core_INPUTBYTES] = { {112,132,62,111,156,73,163,166,62,119,49,140,50,168,237,201,153,246,61,9,147,205,118,106,61,186,111,130,164,25,175,252,24,36,239,99,197,40,146,51,192,241,161,155,175,222,89,12,34,67,97,196,76,180,138,230,250,252,117,30,252,204,190,208,244,35,33,4,101,252,76,60,53,249,251,211,36,144,155,133,18,153,4,45,78,83,217,105,140,58,248,100,152,185,248,116,113,90,192,14,69,84,193,73,228,104,80,1,117,72,3,99,248,106,224,238,206,143,250,49,134,38,78,248,82,174,2,145,248,8,208,41,12,173,133,43,29,0,131,85,61,127,239,212,154,53,156,26,179,174,238,165,214,114,189,174,250,165,139,213,154,16,132,91,155,39,234,103,118,95,65,104,44,133,65,90,20,110,93,215,7,35,220,216,191,62,228,27,48,249,239,131,55,74,113,189,121,196,219,13,176,205,35,27,0,127,177,163,240,50,12,32,202,115,22,176,239,87,31,121,106,205,192,99,115,202,170,33,101,125,20,14,216,152,202,104,194,8,142,174,57,249,101,110,81,86,54,53,44,91,49,11,14,205,90,114,165,237,57,132,108,219,63,223,55,105,31,136,23,198,134,155,176,122,249,114,254,118,240,160,19,221,165,111,109,57,64,243,193,108,98,38,132,104,152,7,53,171,230,31,124,12,250,247,194,121,162,8,217,159,73,114,44,89,211,105,180,235,55,136,233,79,55,243,30,47,198,43,175,150,255,200,194,199,229,26,78,33,234,221,176,21,136,116,224,69,125,163,113,254,114,21,35,214,103,125,178,180,206,144,182,164,84,59,212,19,64,228,127,187,120,215,232,133,105,163,182,161,100,252,143,59,223,47,68,204,13,186,26,6,130,179,16,39,93,104,12,167,203,181,129,244,38,101,29,195,131,184,246,216,62,115,214,78,142,53,199,189,179,127,207,85,224,228,177,4,63,79,44,185,135,89,61,124,117,245,192,53,171,130,223,134,152,40,41,172,172,118,76,237,54,247,28,169,111,189,87,191,52,23,151,92,132,143,192,90,92,156,97,252,152,201,248,18,136,54,62,60,3,133,37,173,217,154,131,98,168,167,131,110,78,160,215,27,200,23,88,234,167,209,7,21,151,14,98,212,254,110,223,142,45,3,202,233,194,246,31,19,78,212,50,248,47,229,202,102,214,229,56,223,69,21,53,29,148,59,47,45,141,8,124,120,102,39,108,52,60,52,71,212,169,160,207,244,188,68,212,215,203,59,154,140,47,23,68,163,11,246,180,246,59,7,8,51,34,252,103,76,98,186,191,216,134,51,178,233,230,181,71,172,35,108,143,92,163,150,91,181,38,25,170,56,59,238,80,70,113,170,150,98,197,154,229,16,6,77,85,17,229,21,19,41,162,90,69,106,246,209,65,118,174,242,80,187,70,83,70,38,226,101,56,111,111,207,76,138,140,175,80,45,9,84,60,208,64,5,28,116,189,210,43,39,147,20,0,132,68,42,2,167,192,21,61,5,124,5,225,132,238,193,137,249,75,6,233,12,84,168,63,170,138,252,20,28,134,231,233,34,70,192,119,177,125,149,121,147,221,123,167,80,233,166,179,172,246,56,242,15,34,75,171,123,11,63,37,14,148,71,20,11,116,178,163,253,189,151,58,105,77,111,39,183,55,45,198,205,129,121,69,138,128,111,51,139,246,249,215,105,133,207,27}, {159,111,88,27,32,195,150,173,58,233,171,70,24,30,51,203,32,71,30,81,196,159,52,32,10,113,120,29,194,134,118,158,139,81,175,125,228,181,5,31,194,220,100,131,209,203,254,29,19,101,14,153,232,45,242,221,69,8,99,9,84,203,33,178,178,36,24,136,74,209,217,217,100,97,123,235,39,54,61,105,58,4,247,98,84,142,239,94,67,108,210,94,200,70,187,204,50,35,221,118,78,71,123,27,78,83,87,139,240,182,22,16,243,188,92,150,155,87,4,149,38,6,200,71,253,75,88,21,186,149,202,137,199,214,241,199,81,2,87,41,137,240,176,137,70,97,99,15,169,24,205,75,16,29,122,94,183,146,198,54,197,151,156,147,118,210,130,240,62,240,150,207,177,109,242,67,183,119,51,5,77,86,28,19,246,128,81,230,137,204,69,36,56,2,49,153,78,23,96,187,29,69,158,194,99,186,173,59,95,145,225,192,119,67,246,107,124,219,203,192,150,133,96,189,168,152,246,6,96,135,185,132,34,84,96,243,174,117,3,137,37,45,234,230,61,105,181,196,131,213,42,24,210,23,90,80,206,5,178,153,8,55,29,122,20,236,194,121,225,225,25,217,119,105,171,174,129,236,251,210,112,155,159,6,102,209,42,17,248,239,233,204,123,172,66,168,161,242,236,236,147,99,238,158,10,55,90,85,126,226,144,110,226,34,188,42,113,6,130,41,136,42,158,250,31,63,181,232,80,210,95,18,238,85,47,116,40,121,74,171,117,20,171,104,107,233,216,78,72,44,131,140,14,98,212,198,243,215,14,103,148,235,67,230,92,148,73,152,12,230,27,213,193,9,210,26,173,159,47,152,170,14,138,64,92,234,45,190,59,30,192,163,74,197,216,138,21,186,167,193,200,56,172,11,128,246,167,183,160,81,50,39,174,211,55,226,239,244,113,142,78,96,17,127,227,149,130,42,43,37,108,24,174,89,248,124,80,102,122,130,211,159,231,93,216,102,61,248,41,186,30,99,68,155,149,193,82,208,202,129,141,65,87,71,86,63,237,38,114,220,171,241,6,143,21,230,237,38,226,14,147,129,26,14,237,148,217,142,153,57,171,124,158,3,131,152,248,200,88,145,60,123,29,158,156,25,168,205,233,53,151,229,138,208,19,241,139,21,75,96,42,203,75,230,122,196,57,86,123,102,44,47,246,244,37,28,30,128,187,31,232,159,164,13,85,122,178,24,141,234,156,172,233,221,163,232,51,51,126,67,1,238,201,241,90,231,5,71,204,226,32,27,123,85,118,121,5,106,62,148,23,17,252,29,213,9,35,100,131,147,134,61,219,145,99,116,73,170,188,80,153,138,178,45,167,57,195,10,82,71,214,7,14,172,60,158,22,232,160,78,105,129,24,231,131,210,138,95,201,171,17,85,214,38,26,102,34,47,227,213,57,241,175,243,17,24,98,144,132,251,103,171,178,176,223,112,78,197,238,244,184,70,0,37,77,98,105,167,222,91,101,87,59,117,217,69,27,54,252,185,103,2,4,195,103,156,18,178,59,165,43,165,255,59,53,88,229,183,189,53,165,51,34,14,52,239,198,223,85,114,222,60,0,158,64,77,220,157,96,203,28,96,195,127,131,17,252,198,9,209,172,176,136,142,157,72,161,69,75,86,230,74,90,83,121,26,177,149,135,150,69,55,65,172,244,251,140,201,55,120,238}, {68,134,165,160,94,100,78,77,18,79,147,165,148,186,170,35,116,112,74,90,233,190,125,112,68,94,110,75,35,144,33,99,57,201,217,63,8,141,149,239,23,208,6,75,212,63,87,187,230,21,87,251,184,37,35,151,57,254,166,234,236,107,35,61,172,92,124,158,105,24,209,61,29,230,116,118,191,117,171,90,141,194,13,114,233,178,235,46,57,87,26,46,48,185,66,110,92,59,77,173,213,251,178,29,47,66,243,95,213,237,168,126,112,7,229,155,78,96,229,75,176,75,159,57,30,29,19,217,192,249,145,154,214,198,173,76,34,159,85,56,120,13,147,114,188,137,200,229,68,147,24,76,255,179,48,12,221,157,121,251,8,205,231,127,133,142,190,46,117,55,57,115,128,59,142,151,39,187,190,203,194,208,246,105,99,64,244,92,121,51,207,62,141,104,57,67,121,35,76,177,15,94,247,250,192,29,199,204,101,111,234,0,209,201,160,223,63,162,79,217,76,169,12,68,88,111,247,149,253,121,25,23,140,86,62,110,250,145,40,203,74,245,213,21,15,47,150,107,4,65,0,82,113,55,233,70,224,228,121,235,159,249,117,115,223,228,55,27,116,225,17,226,16,64,164,160,197,126,67,196,141,206,37,82,106,36,182,137,243,247,50,136,89,114,154,198,50,122,139,191,218,88,176,113,247,182,184,129,114,65,0,90,117,88,124,243,125,45,203,31,116,31,31,192,22,80,148,54,117,32,46,101,132,26,111,16,28,233,85,118,189,91,141,22,90,216,232,128,19,116,89,168,35,218,81,251,211,252,240,55,52,242,24,212,186,249,57,33,123,102,3,40,47,140,128,248,40,222,108,177,60,129,42,77,24,78,217,122,232,19,153,30,18,122,189,237,142,147,194,12,60,15,222,172,171,60,146,85,89,167,51,120,20,237,229,59,200,28,139,137,74,46,199,16,166,29,167,77,128,251,112,171,197,102,133,12,49,85,224,19,235,81,254,95,45,191,59,140,21,76,73,19,118,214,7,139,129,138,162,77,8,250,1,171,116,165,8,149,80,175,83,2,209,42,130,108,144,46,41,98,90,20,114,175,86,221,23,30,62,96,74,68,129,137,180,239,188,194,96,113,24,203,172,97,154,84,93,76,67,154,183,208,125,208,195,98,167,122,36,239,154,242,227,52,137,86,226,175,160,8,128,28,200,133,114,231,104,225,167,216,62,11,107,114,155,113,26,71,128,71,179,91,196,54,52,34,74,53,70,173,80,210,10,241,196,83,146,83,180,219,141,77,184,4,180,182,174,201,222,39,161,111,235,153,231,132,13,247,168,80,220,32,95,196,125,204,21,23,109,235,202,128,155,72,93,103,216,169,74,174,245,151,211,98,188,82,166,161,14,136,200,45,202,80,20,122,175,90,244,254,171,65,59,227,193,242,173,191,160,2,171,22,97,1,46,236,118,118,94,129,227,189,11,127,118,123,159,116,246,3,136,142,254,184,58,113,150,136,92,199,228,23,82,16,91,34,183,77,252,200,107,165,75,156,10,231,207,109,28,89,208,43,203,233,172,34,190,188,98,181,30,198,89,156,158,138,54,84,141,89,217,71,224,210,31,132,27,77,9,255,47,225,146,30,61,235,13,104,9,198,122,219,169,59,233,238,71,158,94,152,127,23,225,59,36,70,246,63,125,181,152,149,229,167,161,154,244,43,141,86,128}, {144,203,64,107,77,132,138,95,63,10,24,4,200,1,106,163,42,72,197,194,239,41,99,158,183,78,79,109,119,7,55,246,228,33,51,191,15,69,189,238,178,43,63,247,94,220,105,132,225,214,24,180,31,177,23,180,31,182,229,95,36,31,164,120,178,68,43,128,145,49,244,73,232,125,181,23,189,91,120,41,33,62,143,19,212,195,144,249,105,107,92,150,59,24,33,229,68,232,85,21,179,169,204,173,66,207,234,83,249,78,214,233,177,34,75,82,117,200,112,93,250,44,178,75,59,132,210,246,153,54,195,37,201,13,135,231,62,195,242,206,27,161,124,45,46,32,154,10,36,228,66,4,230,40,154,161,116,174,133,127,80,74,222,123,72,222,43,197,176,109,177,111,65,255,31,164,13,134,181,252,90,35,31,73,73,143,26,7,4,27,127,44,143,213,166,48,42,164,136,210,107,104,142,208,194,37,133,190,63,148,84,88,16,153,156,91,223,121,5,193,49,195,40,88,3,81,43,27,219,149,104,26,235,77,95,214,119,100,209,29,79,211,107,131,117,214,183,105,220,224,131,162,78,32,128,145,89,141,206,247,129,191,10,86,136,60,9,91,226,213,144,77,69,242,143,33,42,220,21,170,113,48,53,229,69,178,52,233,173,115,97,0,230,110,172,183,124,167,118,79,244,89,92,228,205,154,95,145,207,100,230,124,76,179,105,54,187,159,55,85,158,154,118,194,155,30,34,225,21,224,174,203,33,239,45,131,205,18,210,130,59,146,114,1,175,201,163,140,169,209,179,68,179,99,209,235,143,98,53,243,12,94,47,95,115,208,6,160,147,51,242,228,197,232,104,91,74,196,158,101,113,35,211,72,82,34,214,185,215,43,221,48,107,43,75,73,238,152,123,36,124,40,63,76,232,56,26,255,127,143,243,69,122,138,225,218,53,27,225,213,176,172,239,54,219,194,77,202,146,111,169,152,127,64,232,207,107,19,10,42,217,156,94,5,111,203,90,172,48,94,185,74,79,200,43,233,116,23,98,29,165,193,51,111,123,13,121,81,141,102,153,104,33,108,91,29,203,187,127,180,8,6,149,77,57,188,69,91,19,50,35,158,186,26,233,234,83,107,59,237,143,205,30,41,173,148,172,146,92,199,204,51,57,120,141,106,201,158,0,35,90,231,121,221,36,18,212,95,90,74,188,109,11,221,56,68,123,185,76,199,122,99,36,76,62,107,41,88,148,79,26,143,81,160,195,158,72,182,97,158,119,63,157,210,151,167,10,34,174,177,86,244,141,121,89,200,130,51,62,101,134,127,105,231,185,243,105,168,146,117,195,201,214,145,220,204,76,100,72,215,196,32,220,227,253,118,145,144,144,64,49,33,86,171,230,187,213,196,89,3,98,4,71,85,154,91,140,32,115,165,42,234,55,128,191,21,159,18,146,34,21,19,130,92,211,34,119,65,248,185,155,77,238,120,147,15,10,112,252,101,94,81,225,191,69,41,151,250,81,37,67,207,14,239,40,208,133,174,224,142,234,122,111,42,51,127,57,88,191,95,127,200,13,159,186,81,52,244,60,193,178,31,15,37,157,154,110,3,222,74,192,34,102,234,86,23,89,176,205,167,38,219,241,6,147,53,227,250,232,237,249,69,16,59,215,41,82,215,138,159,155,161,138,80,134,36,52,111,10,24,43,85,4,106,36,53,44,134,139,23,241}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,0,1,255,0,255,0,255,1,255,0,1,0,255,0,1,0,0,0,0,0,0,0,0,1,0,255,1,0,1,0,0,255,0,0,255,0,0,0,0,1,255,0,0,0,0,255,255,0,0,0,1,0,0,255,255,0,0,0,1,0,1,0,0,1,255,1,0,0,0,1,0,0,255,0,0,255,0,0,0,0,0,0,255,0,255,0,1,255,1,0,0,255,0,255,0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,1,255,0,1,1,0,0,1,255,255,0,0,0,0,0,0,0,255,0,1,0,0,0,0,0,255,0,0,0,1,0,0,0,0,255,0,255,0,0,0,0,0,255,1,255,0,0,0,1,1,0,255,0,0,1,0,0,255,0,0,255,0,1,255,0,0,0,255,0,0,0,0,1,1,0,255,1,0,1,255,1,0,255,0,0,1,0,0,0,255,0,0,0,0,0,0,0,0,1,255,255,1,0,0,0,0,0,0,255,1,255,0,0,0,0,0,0,255,0,255,0,1,255,255,0,0,0,0,0,0,0,0,255,0,1,0,1,1,255,0,1,0,1,0,0,0,0,1,1,1,0,255,0,255,1,0,0,0,0,0,0,255,255,1,0,0,0,0,0,255,0,0,1,0,255,1,0,0,0,0,0,0,255,0,1,0,0,0,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,1,0,255,1,0,1,0,0,0,0,0,0,0,1,1,0,255,255,0,0,0,0,0,1,0,255,0,0,1,0,0,255,1,0,0,0,0,0,0,1,1,255,1,255,0,1,0,1,0,255,1,0,1,1,0,0,0,1,0,0,0,255,1,0,0,0,255,1,0,0,0,0,1,1,1,255,0,1,255,0,0,0,0,0,0,0,1,0,255,0,1,0,0,0,0,1,0,0,1,0,0,255,0,0,1,255,0,1,0,255,1,255,255,255,0,255,0,0,0,0,0,0,1,255,0,0,0,0,0,0,0,255,1,255,0,0,255,0,0,1,1,1,0,0,0,1,1,1,255,255,0,255,1,0,0,255,1,0,0,1,0,255,255,255,0,0,0,0,0,255,1,0,0,0,255,1,255,1,1,0,1,255,1,0,1,1,0,0,0,0,0,255,0,1,0,255,0,255,0,0,1,255,1,0,255,255,1,255,0,1,0,1,1,0,0,0,1,1,0,255,1,0,0,0,0,0,0,255,0,0,0,0,1,0,0,255,255,0,255,255,0,0,0,255,255,0,0,0,0,255,255,255,1,1,0,255,255,255,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,255,0,0,0,0,0,0,1,1,1,1,0,0,1,0,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,0,255,1,0,255,0,0,0,0,1,255,0,0,0,255,0,0,0,255,0,0,0,1,1,255,0,1,1,0,0,0,1,0,0,255,255,0,0,0,0,1,0,0,0,0,255,0,0,255,0,1,0,0,255,0,1,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,1,1,255,0,255}, {1,0,1,0,1,0,0,0,0,0,255,0,0,0,1,0,0,0,0,0,1,0,0,0,0,255,255,0,0,1,1,1,0,255,255,0,255,0,0,1,1,255,1,1,0,255,0,0,0,255,1,1,0,0,0,1,0,0,0,0,255,255,1,0,0,1,0,255,0,1,1,0,1,0,0,0,1,0,0,0,0,255,1,255,0,0,255,1,0,255,0,0,0,0,0,0,0,0,0,0,0,255,0,1,255,0,0,0,255,0,0,0,255,0,0,0,255,255,255,255,1,0,0,0,255,255,255,1,0,1,0,1,1,0,0,0,255,1,0,0,0,0,255,1,0,0,0,0,1,255,1,0,0,0,0,255,1,0,0,0,0,0,1,1,0,0,255,255,255,0,0,1,1,0,0,0,0,0,255,0,1,1,0,0,1,0,0,255,0,0,0,1,1,0,1,255,0,0,255,1,1,0,0,0,0,0,1,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,1,255,1,0,1,255,1,0,0,0,1,0,0,0,0,0,0,1,255,0,1,0,255,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,0,1,255,0,255,1,1,0,0,1,0,1,0,0,0,0,0,0,1,0,255,255,0,1,1,0,0,0,255,0,0,0,0,1,0,0,0,0,255,0,1,0,0,1,0,255,1,1,0,0,0,0,1,0,0,0,1,0,0,0,255,0,1,1,0,1,0,1,0,0,255,0,0,255,1,255,0,1,0,0,1,1,0,255,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,255,255,0,0,255,0,1,1,0,255,0,255,0,0,0,0,0,255,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,255,0,255,0,1,0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,255,1,0,1,0,0,0,0,0,0,0,0,255,1,0,0,0,1,255,255,255,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,255,255,0,1,1,0,255,255,0,0,0,1,255,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,255,0,255,1,1,0,255,255,0,0,1,0,0,1,0,255,255,1,0,255,1,0,1,255,1,255,255,0,0,0,0,1,255,255,1,0,255,0,0,1,255,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,255,0,0,0,255,0,0,1,255,1,0,1,0,255,0,0,1,1,1,1,0,0,0,0,0,1,0,255,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,255,0,0,255,255,0,1,255,0,0,0,1,0,1,0,0,255,0,0,1,0,1,255,255,0,1,0,0,0,1,0,1,0,0,1,0,0,255,0,0,0,0,0,0,255,0,255,1,255,0,0,1,0,0,0,0,0,0,0,255,1,0,0,0,1,255,0,0,0,255,0,0,0,0,0,0,0,0,1,0,255,0,0,1,1,1,0,1,0,0,0,0,255,0,0,0,0,1,255,255,255,0,0,0,0,0,0,0,0,0,255,0,255,255,0,255,1,255,255,0,0,0,0,0,1,0,0,1,255,255,1,0}, {1,0,0,0,0,0,1,0,1,255,1,0,255,1,1,1,0,0,0,0,255,255,0,1,0,255,255,0,255,0,0,0,255,0,255,1,0,0,255,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,255,0,1,0,0,0,255,1,1,0,0,255,0,0,255,0,255,1,255,0,0,0,1,0,0,255,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,255,0,0,0,1,1,0,255,0,0,0,0,0,1,1,0,1,0,255,0,1,0,0,0,0,1,0,1,1,1,255,255,0,255,0,0,0,0,1,1,0,0,1,0,0,0,255,0,0,0,0,0,1,255,0,0,0,0,0,0,0,0,0,0,255,1,0,1,0,0,255,255,0,255,1,0,0,1,255,0,1,0,0,255,0,0,1,0,255,0,1,1,0,0,0,0,255,0,0,0,0,0,0,255,255,1,0,0,255,0,0,1,1,255,0,0,0,0,1,255,0,0,0,0,0,0,1,255,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,255,0,0,0,255,0,255,0,0,0,1,255,1,0,1,1,0,0,0,1,255,0,0,0,0,1,255,0,0,0,1,0,255,0,255,255,0,0,0,0,0,0,0,1,0,1,1,0,255,1,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0,0,255,255,0,1,0,0,255,255,1,0,0,255,0,1,1,255,0,0,0,0,1,1,0,0,0,0,1,255,1,1,0,1,1,0,0,0,1,1,0,0,255,255,255,0,255,0,1,1,1,255,0,255,0,0,0,0,255,1,0,0,0,1,255,0,0,255,255,0,0,0,0,255,1,0,0,0,0,255,0,255,0,1,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,255,0,1,0,0,0,0,0,255,0,1,1,255,0,0,1,0,0,0,1,0,1,0,0,255,255,0,0,1,0,1,0,0,0,0,255,255,0,0,0,1,0,0,1,0,0,0,255,1,255,1,1,0,0,0,1,0,255,255,255,1,255,0,255,255,255,0,1,0,255,0,255,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,255,0,0,255,0,0,0,0,255,1,0,0,1,1,0,0,0,0,255,255,0,1,0,0,0,0,0,255,0,0,1,0,255,0,0,0,0,1,0,1,0,0,255,255,0,1,255,255,255,0,1,255,0,1,1,0,255,255,255,0,0,0,0,0,255,255,0,1,0,0,255,1,255,0,0,1,0,1,255,0,0,0,0,0,0,1,1,0,0,1,1,255,0,255,0,0,255,0,0,0,0,0,0,0,255,0,0,0,1,0,0,1,0,255,0,1,255,255,0,0,255,0,0,0,0,0,1,1,0,0,0,1,255,1,0,255,1,1,1,0,0,0,0,0,0,0,1,0,1,1,255,0,0,0,0,0,255,0,0,0,0,0,0,255,1,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,255,0,1,255,0,0,0,0,0,255,0,0,0,0,0,0,0,1,0,0,255,1,1,255,0,1,0,255,0,0,1,0,0,255,0}, } ; static const unsigned char precomputed_core_wforcesntrup761_k[precomputed_core_wforcesntrup761_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_wforcesntrup761_c[precomputed_core_wforcesntrup761_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_wforcesntrup761_impl(long long impl) { unsigned char *h = test_core_wforcesntrup761_h; unsigned char *n = test_core_wforcesntrup761_n; unsigned char *k = test_core_wforcesntrup761_k; unsigned char *c = test_core_wforcesntrup761_c; unsigned char *h2 = test_core_wforcesntrup761_h2; unsigned char *n2 = test_core_wforcesntrup761_n2; unsigned char *k2 = test_core_wforcesntrup761_k2; unsigned char *c2 = test_core_wforcesntrup761_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup761(impl); printf("core_wforcesntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup761_implementation(impl),ntruprime_dispatch_core_wforcesntrup761_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup761; printf("core_wforcesntrup761 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup761_implementation(),ntruprime_core_wforcesntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } { long long weight,i,direction; for (weight = 0;weight <= nlen;++weight) { for (direction = 0;direction < 2;++direction) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); for (i = 0;i < nlen;++i) { n[i] &= ~1; if (direction) { if (nlen-1-i < weight) n[i] += 1; } else { if (i < weight) n[i] += 1; } n2[i] = n[i]; } crypto_core(h,n,k,c); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); crypto_core(h2,n2,k2,c2); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic"); } } } checksum_expected(core_wforcesntrup761_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_wforcesntrup761_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_wforcesntrup761_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_wforcesntrup761_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_wforcesntrup761_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_wforcesntrup761_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_wforcesntrup761_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_wforcesntrup761_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_wforcesntrup761_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_wforcesntrup761_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_wforcesntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup761")) return; storage_core_wforcesntrup761_h = callocplus(crypto_core_OUTPUTBYTES); test_core_wforcesntrup761_h = aligned(storage_core_wforcesntrup761_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_wforcesntrup761_n = callocplus(crypto_core_INPUTBYTES); test_core_wforcesntrup761_n = aligned(storage_core_wforcesntrup761_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_wforcesntrup761_k = callocplus(crypto_core_KEYBYTES); test_core_wforcesntrup761_k = aligned(storage_core_wforcesntrup761_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_wforcesntrup761_c = callocplus(crypto_core_CONSTBYTES); test_core_wforcesntrup761_c = aligned(storage_core_wforcesntrup761_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_wforcesntrup761_h2 = callocplus(maxalloc); test_core_wforcesntrup761_h2 = aligned(storage_core_wforcesntrup761_h2,crypto_core_OUTPUTBYTES); storage_core_wforcesntrup761_n2 = callocplus(maxalloc); test_core_wforcesntrup761_n2 = aligned(storage_core_wforcesntrup761_n2,crypto_core_INPUTBYTES); storage_core_wforcesntrup761_k2 = callocplus(maxalloc); test_core_wforcesntrup761_k2 = aligned(storage_core_wforcesntrup761_k2,crypto_core_KEYBYTES); storage_core_wforcesntrup761_c2 = callocplus(maxalloc); test_core_wforcesntrup761_c2 = aligned(storage_core_wforcesntrup761_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_wforcesntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup761();++impl) forked(test_core_wforcesntrup761_impl,impl); ++test_core_wforcesntrup761_h; ++test_core_wforcesntrup761_n; ++test_core_wforcesntrup761_k; ++test_core_wforcesntrup761_c; ++test_core_wforcesntrup761_h2; ++test_core_wforcesntrup761_n2; ++test_core_wforcesntrup761_k2; ++test_core_wforcesntrup761_c2; } free(storage_core_wforcesntrup761_c2); free(storage_core_wforcesntrup761_k2); free(storage_core_wforcesntrup761_n2); free(storage_core_wforcesntrup761_h2); free(storage_core_wforcesntrup761_c); free(storage_core_wforcesntrup761_k); free(storage_core_wforcesntrup761_n); free(storage_core_wforcesntrup761_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_wforcesntrup857.c0000644000000000000000000014264214705505543024063 0ustar rootroot/* ----- core/wforcesntrup857, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_wforcesntrup857_checksums[] = { "66150d04c4c22721674661ef22298ea0bce48f8c8e8c374b3506e58ac8ad8d77", "787fb6635b1daf842448b74e478cca9b74fc6a985d93cad2b1095f0bcf904300", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_wforcesntrup857_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_wforcesntrup857_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_wforcesntrup857_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_wforcesntrup857_CONSTBYTES static void *storage_core_wforcesntrup857_h; static unsigned char *test_core_wforcesntrup857_h; static void *storage_core_wforcesntrup857_n; static unsigned char *test_core_wforcesntrup857_n; static void *storage_core_wforcesntrup857_k; static unsigned char *test_core_wforcesntrup857_k; static void *storage_core_wforcesntrup857_c; static unsigned char *test_core_wforcesntrup857_c; static void *storage_core_wforcesntrup857_h2; static unsigned char *test_core_wforcesntrup857_h2; static void *storage_core_wforcesntrup857_n2; static unsigned char *test_core_wforcesntrup857_n2; static void *storage_core_wforcesntrup857_k2; static unsigned char *test_core_wforcesntrup857_k2; static void *storage_core_wforcesntrup857_c2; static unsigned char *test_core_wforcesntrup857_c2; #define precomputed_core_wforcesntrup857_NUM 9 static const unsigned char precomputed_core_wforcesntrup857_h[precomputed_core_wforcesntrup857_NUM][crypto_core_OUTPUTBYTES] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,1,1,0,0,0,255,1,0,0,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,1,1,1,0,0,1,255,0,0,0,1,0,1,255,0,0,1,1,0,255,0,0,0,0,0,0,0,1,255,1,255,0,0,0,0,0,1,0,1,255,0,255,255,255,0,0,1,1,0,255,1,255,0,255,0,0,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,1,255,1,255,0,255,0,0,0,1,255,0,1,0,255,255,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,255,0,1,0,0,1,0,0,0,0,255,0,255,0,0,255,0,0,0,0,0,0,255,0,0,1,0,0,1,0,0,0,0,255,255,0,255,1,1,0,1,0,0,255,0,0,0,0,0,0,0,1,0,0,255,255,0,0,1,255,0,0,0,0,1,0,0,0,255,0,0,0,1,0,0,0,0,1,0,255,1,0,0,0,255,0,0,255,0,1,0,1,0,0,1,255,0,255,0,0,1,1,255,255,0,255,0,1,0,0,255,1,0,0,0,1,1,1,0,1,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,1,0,0,255,255,0,0,255,0,0,255,0,255,0,255,255,1,0,255,0,0,0,0,1,0,255,0,0,0,0,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,1,0,0,255,1,0,255,0,0,0,0,0,0,0,0,255,1,0,0,255,0,0,0,1,1,1,1,255,0,0,0,1,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,1,0,0,0,0,0,0,0,0,255,255,0,1,0,0,0,0,0,255,0,1,1,255,0,0,0,0,0,0,0,0,255,1,255,0,0,1,0,255,0,0,0,0,0,255,255,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,1,255,0,0,1,0,0,255,0,255,1,0,255,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,255,0,1,0,255,255,1,0,0,0,0,0,1,1,0,0,0,0,0,0,255,255,1,255,1,255,255,0,0,0,255,0,1,1,255,0,0,0,0,0,255,1,0,255,1,0,1,0,0,255,0,0,0,255,255,0,255,0,255,255,1,1,0,0,0,0,255,0,0,1,255,0,255,0,255,0,0,1,0,1,0,255,1,1,0,1,1,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,255,0,0,255,1,1,1,1,0,1,0,255,0,1,0,0,0,0,0,0,255,1,0,0,0,0,1,255,255,255,1,0,255,0,1,0,0,255,1,0,0,0,0,0,255,0,0,1,0,0,0,0,0,1,0,0,0,1,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,0,0,0,1,0,255,1,0,0,0,0,0,0,1,1,1,1,0,1,0,0,255,0,1,0,0,0,0,1,0,1,1,255,1,255,255,1,1,1,0,0,0,0,0,0,255,1,0,1,255,255,0,255,255,0,0,1,1,1,0,255,0,1,0,0,255,255,1,0,1,1,1,0,0,255,0,0,0,0,0,0,1,1,1,255,0,0,255,0,0,255,1,0,0,0,255,255,0,0,0,0,0,1,0,1,0,0,1,255,255,0,0,255,0,1,255,0,1,0,0,0,1,1,0,0,255,0,0,255,255,1,0,0,0,0,255,0,0,0,255,0,0,0,1,0,0,0,255,0,0,1,255,0,0,0,1,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup857_n[precomputed_core_wforcesntrup857_NUM][crypto_core_INPUTBYTES] = { {26,34,72,223,159,62,49,161,227,117,245,47,124,200,255,131,176,12,232,215,55,177,224,24,13,189,66,255,230,151,107,136,13,73,98,42,231,209,98,69,93,161,47,3,197,86,88,47,201,158,246,14,90,17,145,183,79,10,153,204,238,99,217,190,52,199,13,199,123,61,131,149,121,157,37,36,174,47,133,223,206,17,157,5,202,44,133,137,242,132,93,116,52,163,80,184,172,208,62,113,56,169,85,99,127,220,42,239,225,150,242,22,229,137,127,214,104,36,222,111,44,160,110,155,191,49,145,48,217,126,10,21,68,87,69,186,109,233,94,227,174,130,243,203,85,10,32,42,133,9,14,101,14,239,90,158,199,104,55,122,234,183,45,197,150,171,108,226,130,214,133,72,91,59,63,238,13,174,223,1,77,4,106,233,218,152,186,2,5,124,94,179,236,31,188,16,152,160,16,219,77,230,16,134,164,188,166,117,185,185,70,213,174,161,100,209,28,151,234,151,131,76,122,62,156,84,97,179,240,152,253,230,64,181,129,232,59,165,174,251,157,146,29,43,182,107,45,224,243,74,174,125,69,157,17,102,67,230,169,61,229,240,208,187,78,124,24,84,29,40,231,142,30,59,84,44,169,29,230,219,168,46,131,227,146,237,232,132,158,128,226,37,100,204,236,241,239,5,175,20,118,108,75,145,48,206,59,17,162,79,105,38,239,78,147,174,221,89,207,50,26,209,117,78,92,202,155,210,118,70,79,156,22,159,96,147,119,235,71,178,170,105,139,110,7,177,226,214,227,105,250,250,121,129,127,232,109,149,146,201,229,32,128,87,205,135,122,56,185,13,125,148,225,90,188,187,194,20,14,243,24,230,78,122,4,179,98,213,43,150,47,186,144,227,223,228,143,216,96,92,194,221,245,43,231,160,152,205,191,224,226,122,21,149,140,208,105,213,206,176,226,238,245,22,230,62,63,42,24,87,181,254,26,89,188,56,167,197,252,132,242,124,209,31,99,191,161,228,216,72,139,37,236,201,148,15,84,231,178,106,2,90,8,126,102,249,164,237,39,78,208,69,102,61,2,34,8,68,97,38,14,236,167,44,56,161,246,81,116,10,68,74,87,209,223,222,21,160,49,71,191,227,225,185,56,25,142,172,44,192,170,27,220,152,157,151,216,125,74,13,226,18,116,8,40,222,168,155,225,166,76,77,79,209,87,146,64,126,62,109,151,41,184,91,34,21,231,72,78,119,242,91,105,245,161,196,165,19,90,5,17,242,162,238,210,94,51,40,172,130,16,225,50,48,93,193,19,251,77,73,123,74,249,2,167,5,243,217,24,207,222,78,89,20,243,139,68,21,230,14,101,196,180,77,198,184,83,136,209,90,190,225,163,144,217,184,240,117,192,203,98,12,240,215,15,58,131,113,151,233,22,73,238,6,169,206,100,218,170,166,106,145,8,35,180,14,174,67,101,146,10,110,157,177,189,86,130,232,43,87,20,35,161,253,125,118,148,6,191,128,46,11,161,26,78,214,125,151,119,209,22,253,63,131,190,250,154,138,169,1,100,16,184,92,75,44,189,5,106,151,89,249,172,27,171,34,241,66,61,69,226,174,34,179,240,7,183,2,80,191,131,25,196,244,241,157,47,37,243,4,5,200,87,104,144,115,115,19,157,147,231,107,64,15,49,126,103,109,232,205,214,108,158,178,246,19,242,96,25,125,96,57,165,31,102,42,169,94,125,89,211,170,135,48,198,124,76,210,166,254,125,12,27,248,166,23,175,17,217,119,32,5,48,47,133,159,189,250,93,52,184,205,160,16,41,81,51,122,56,212,221,115,194,118,194,81,42,146,183,170,140,63,252,190,133,14,129,110,44,127,223,193,240,157,53,60,168,9,45,193,146,186,109,112,21,66,124,207,21,108,187,195,182,111,174,46,176}, {228,102,209,218,26,136,31,174,26,57,57,200,47,34,242,8,68,101,22,17,26,159,227,173,35,184,224,59,9,210,45,38,90,117,74,152,105,200,72,158,121,232,157,145,12,43,124,172,155,195,227,103,36,41,186,7,183,218,96,239,143,64,75,90,83,138,175,183,136,103,21,58,243,56,212,128,158,132,41,31,72,164,186,206,125,46,198,221,210,87,37,85,142,39,198,33,50,17,31,245,192,17,250,136,13,130,140,109,94,209,218,55,79,213,185,60,37,209,220,138,53,213,205,134,6,5,130,16,167,57,165,1,58,41,111,10,74,117,92,222,149,150,13,241,1,21,247,148,255,29,159,13,184,116,85,226,85,140,97,15,38,224,116,4,28,101,62,250,40,48,27,33,213,88,197,247,41,86,127,148,2,12,118,215,85,144,76,237,40,234,250,224,12,103,53,212,151,59,165,228,16,38,77,128,37,134,61,68,121,133,84,40,231,89,182,102,181,41,125,47,241,236,79,237,236,101,150,57,29,190,142,134,163,14,3,208,76,29,68,196,223,58,203,49,11,101,157,234,188,223,179,50,69,116,126,131,126,170,1,231,12,140,229,138,54,112,14,208,48,152,209,230,53,9,224,13,29,20,37,222,116,194,139,67,146,189,189,94,217,125,48,117,15,176,105,70,229,4,234,76,45,31,140,85,58,245,234,248,83,203,156,69,125,129,1,140,54,226,244,79,90,31,166,10,203,140,95,129,83,13,156,193,215,169,74,52,113,223,86,144,77,221,9,28,152,1,99,202,110,68,167,244,8,118,239,230,122,221,130,253,26,111,163,33,226,24,98,35,253,230,127,56,253,230,148,181,50,67,103,38,203,30,212,185,25,249,112,87,112,217,206,119,31,27,222,254,21,46,229,36,168,223,221,134,118,255,108,41,241,196,24,252,251,151,121,214,18,167,53,139,153,26,197,194,136,247,220,249,43,54,189,238,154,54,23,40,5,159,198,171,12,38,204,137,171,163,211,204,166,120,185,135,245,254,243,60,205,189,97,214,14,11,98,100,4,149,52,22,226,81,102,0,241,80,83,136,20,32,149,186,88,186,92,175,87,154,109,16,18,59,53,75,198,164,69,236,93,168,224,49,11,242,185,234,220,102,155,158,57,85,161,128,221,185,41,74,160,81,187,10,19,92,249,222,97,52,29,106,5,244,105,115,128,245,99,214,200,211,85,168,11,30,102,211,175,71,232,96,133,106,212,77,109,33,34,229,102,105,180,247,222,210,237,116,252,91,217,162,100,34,1,83,102,232,227,155,187,112,73,248,39,232,15,61,170,40,121,88,188,207,224,221,242,249,117,167,18,7,145,149,118,4,195,168,149,183,125,36,138,188,7,208,16,67,132,149,1,233,107,249,246,91,232,5,147,111,201,252,166,219,133,197,86,110,245,203,81,247,67,35,56,219,144,30,162,203,116,4,111,214,8,115,177,38,139,142,242,84,130,25,100,72,166,21,71,173,120,210,170,233,254,140,132,52,100,108,41,49,173,251,53,113,18,73,87,122,206,95,225,223,47,231,127,236,52,65,241,46,154,146,132,63,107,0,247,182,54,31,80,107,183,51,91,254,104,81,156,6,62,200,176,195,34,242,4,154,96,223,28,65,193,89,155,59,172,73,161,77,209,246,86,10,26,103,61,185,6,245,246,209,214,83,172,54,252,140,255,198,56,175,120,192,22,53,189,170,194,162,206,111,132,197,147,129,236,214,176,207,205,126,47,36,117,235,102,80,251,163,33,4,159,232,171,20,107,9,112,82,176,132,29,74,207,54,63,92,199,53,12,112,110,160,230,86,243,105,99,130,24,125,92,91,19,124,135,8,20,47,18,63,71,159,160,208,111,177,88,56,73,95,209,132,179,58,219,75,123,31,27,156,177,171,116,131,185,244,13}, {153,252,60,73,254,33,165,194,5,0,217,210,185,206,129,148,144,187,129,44,98,40,213,202,53,95,174,235,196,179,226,109,194,155,59,184,124,227,117,11,219,113,235,82,233,172,35,245,209,148,168,183,131,22,27,116,49,231,7,120,60,246,183,209,65,225,250,246,36,58,253,175,231,60,18,242,199,208,7,126,178,63,76,190,41,159,60,81,5,108,212,15,71,142,181,152,128,52,165,45,227,165,102,52,148,136,130,63,127,229,104,26,145,58,177,42,222,216,184,97,31,163,225,159,198,156,255,184,140,176,155,2,69,220,50,166,127,220,183,124,39,241,46,221,86,85,187,225,225,205,86,17,103,187,30,248,46,172,99,233,170,49,181,218,53,69,182,93,131,78,62,112,78,30,32,90,122,204,183,226,100,132,254,67,86,56,64,197,167,46,126,221,25,7,207,9,183,237,236,84,12,97,138,218,27,171,100,178,198,32,68,112,67,144,244,50,245,44,92,224,127,106,155,149,185,104,158,204,220,140,67,189,84,214,136,152,13,130,25,70,52,109,149,59,224,135,10,124,92,86,162,193,37,250,5,56,111,136,252,171,55,27,203,81,182,225,74,5,91,80,242,74,204,210,42,149,102,176,249,105,134,164,11,6,135,190,54,238,49,44,204,181,9,233,16,166,132,91,21,199,200,109,121,100,234,188,209,116,194,155,119,144,59,190,122,57,96,135,245,86,225,238,161,35,229,142,251,196,3,130,9,201,160,87,178,68,5,61,239,191,125,170,34,170,5,207,211,149,57,146,26,189,246,12,7,213,22,117,25,63,206,202,94,52,31,179,31,174,255,182,116,153,95,118,84,126,233,2,5,92,22,233,28,120,81,246,164,226,206,191,167,90,200,244,174,32,153,40,204,251,125,230,85,88,10,89,183,242,194,161,162,148,199,2,242,66,195,21,96,193,143,64,230,244,68,239,187,149,64,188,58,131,37,157,66,185,124,38,202,31,216,132,125,192,174,133,234,3,111,98,79,30,115,138,33,182,190,174,166,93,123,254,127,102,130,132,79,253,98,145,198,83,160,6,158,176,117,233,241,29,80,68,42,206,90,223,121,64,183,63,160,1,125,153,204,114,192,222,69,98,254,72,210,181,106,254,182,124,110,65,158,34,139,150,147,226,91,242,110,209,66,103,39,13,87,143,158,60,207,212,9,22,189,23,170,142,20,25,61,101,106,210,58,239,9,55,54,169,176,106,168,99,9,238,165,127,44,79,233,167,65,93,199,128,226,134,71,92,15,196,60,134,216,19,75,173,218,14,239,14,177,132,152,237,102,53,117,141,78,1,77,42,185,143,142,7,126,17,92,186,95,120,150,5,234,236,4,87,92,180,160,40,207,106,55,7,108,246,13,96,160,116,19,225,68,73,75,222,206,84,151,74,15,212,147,89,143,80,247,161,79,163,37,166,116,163,239,133,102,99,140,118,168,212,116,152,120,49,124,27,82,93,82,99,154,102,117,169,111,135,58,243,16,213,108,35,82,46,136,216,4,73,236,15,134,87,102,215,109,167,210,122,223,59,56,157,233,205,39,66,205,39,42,117,47,1,195,177,95,207,138,172,1,160,62,96,197,76,68,172,248,69,55,160,206,225,225,120,177,252,105,0,34,93,175,50,207,20,241,176,140,202,12,83,10,26,50,51,48,81,244,252,193,114,253,160,171,177,228,64,18,118,77,241,85,148,114,113,136,192,75,28,22,237,139,224,4,68,51,84,121,44,179,182,214,54,148,9,89,239,93,182,14,250,177,12,153,155,201,170,35,21,71,127,104,98,95,107,16,60,185,243,225,58,94,5,216,201,104,181,155,1,26,29,56,247,54,249,75,56,107,72,123,32,72,122,245,4,182,1,102,125,203,44,252,175,61,218,88,18,152,126,43,15,29,100,80}, {131,168,23,205,243,142,51,90,231,192,16,160,56,89,54,129,90,176,180,254,42,80,118,226,79,16,190,216,71,17,249,200,178,154,185,101,223,47,24,170,94,215,214,53,131,42,185,101,237,183,132,40,224,150,233,212,2,151,144,44,34,112,72,175,55,252,212,64,195,215,80,132,133,142,122,39,195,93,116,250,197,215,251,232,53,131,75,101,78,51,54,181,220,222,132,56,209,16,138,203,23,179,75,95,72,97,44,165,134,83,112,4,190,25,30,73,151,202,87,233,207,71,22,103,140,14,173,237,204,64,18,30,98,66,17,39,83,110,189,63,248,190,18,252,44,89,5,137,191,109,134,87,132,190,5,164,71,74,46,41,102,222,129,174,129,129,30,238,154,201,125,165,236,29,10,126,181,97,182,210,143,10,136,111,85,115,133,14,227,38,48,62,122,127,67,203,76,31,72,191,120,211,73,141,255,200,100,152,37,128,75,217,158,185,158,219,190,47,5,242,85,120,46,155,33,52,171,76,148,228,158,152,218,72,18,79,246,180,33,232,223,146,65,225,105,103,100,144,128,48,6,216,190,59,8,110,187,13,114,163,240,47,169,233,199,202,89,230,148,65,249,254,23,218,33,208,38,238,84,15,70,134,165,86,112,191,65,172,158,41,233,168,81,107,46,66,94,64,23,129,236,110,222,66,64,192,143,220,34,196,24,202,81,233,211,38,141,44,47,36,100,195,158,151,208,114,73,47,36,63,174,79,103,162,97,236,26,38,6,141,50,57,218,125,59,55,70,72,177,61,36,11,223,137,40,46,4,20,3,10,115,224,255,104,102,123,179,240,115,104,209,131,69,138,101,51,58,58,204,27,35,222,82,122,95,95,165,202,69,220,1,47,86,224,82,21,221,144,234,219,43,107,237,140,153,252,141,98,79,61,32,243,65,24,27,20,155,69,157,175,210,146,117,199,7,228,192,170,169,126,204,34,191,74,51,235,188,57,67,102,242,20,92,239,111,188,158,20,244,127,203,46,137,148,48,175,180,122,118,229,84,242,27,56,184,139,156,158,223,180,121,105,145,232,172,196,19,52,115,211,42,208,131,100,149,194,114,189,128,35,98,83,41,68,143,45,83,157,122,183,216,176,91,105,189,34,187,160,94,42,234,145,229,4,127,179,95,53,147,253,199,86,48,229,20,130,7,128,104,241,12,65,67,124,202,224,159,96,3,251,152,5,68,181,74,215,168,40,42,128,152,141,73,36,197,224,205,148,251,120,63,62,16,255,245,98,147,108,60,243,119,163,158,95,67,114,222,180,42,197,223,96,153,44,168,2,56,228,93,55,193,161,7,158,108,132,131,199,108,41,180,211,251,43,61,226,116,246,64,79,186,176,149,39,125,150,113,210,93,205,182,181,181,10,35,130,88,170,165,108,157,197,105,214,119,44,149,246,162,22,185,215,52,173,250,36,2,8,30,148,124,71,150,224,69,118,114,62,106,125,27,110,167,104,148,7,231,46,177,112,234,10,94,204,239,22,237,25,12,159,174,97,43,234,78,86,51,182,124,194,6,176,119,201,206,53,146,92,94,228,104,27,48,34,134,134,111,63,24,238,233,108,171,68,102,36,35,229,137,110,56,119,67,76,220,94,8,131,192,123,210,121,186,49,211,31,140,179,210,183,230,67,248,97,58,62,20,134,166,93,46,226,82,12,94,230,65,170,129,176,150,94,103,170,9,59,19,55,35,79,137,210,242,99,4,135,155,138,253,239,117,55,14,39,250,56,177,78,111,79,156,225,248,121,76,211,35,185,156,254,57,211,221,152,252,100,55,158,179,231,219,205,150,88,54,187,84,95,175,41,33,195,227,201,103,175,70,195,168,32,32,219,28,243,11,205,83,197,54,14,9,208,136,24,12,18,31,226,162,251,76,146,203,17,136,59,174}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,1,0,0,0,255,1,0,0,0,255,1,0,0,0,0,0,0,255,0,0,0,255,0,1,0,0,1,0,0,0,0,1,255,255,0,0,0,1,1,0,0,255,0,1,0,1,0,1,0,0,0,255,0,0,1,1,0,1,255,0,0,0,0,0,0,255,1,1,255,255,0,1,0,0,0,255,0,0,1,1,255,0,1,0,255,255,0,0,0,0,0,1,0,0,0,0,0,0,255,0,0,255,255,0,255,0,255,0,255,0,255,0,1,1,0,255,1,0,255,0,0,0,255,1,0,0,0,0,0,0,0,0,1,0,0,255,0,0,1,0,1,1,0,0,1,0,0,0,0,255,0,0,0,255,0,0,255,1,1,0,0,0,0,1,0,0,0,0,255,255,1,0,0,0,255,0,255,0,0,0,0,0,0,0,1,0,0,0,0,255,0,0,1,0,0,0,0,0,0,0,0,255,0,0,0,0,1,1,0,1,0,1,0,0,0,255,0,0,255,0,255,1,0,0,255,0,255,0,0,0,0,0,1,0,1,0,0,1,0,255,255,255,255,0,1,0,1,1,0,255,0,0,0,0,0,255,0,255,0,255,1,1,1,0,1,0,0,0,0,1,255,0,255,0,1,0,1,0,0,1,0,0,255,255,1,1,1,0,255,0,1,0,1,0,0,1,0,255,0,0,0,1,255,0,1,0,0,0,255,0,1,0,0,0,0,0,0,1,0,1,255,0,0,0,255,1,0,0,0,0,1,0,0,255,255,1,0,255,0,0,1,255,0,0,1,0,0,1,0,1,1,0,1,0,255,0,255,0,0,0,0,0,0,1,0,255,0,0,0,0,0,1,0,0,0,0,1,0,0,0,255,0,255,1,0,0,0,255,0,0,1,0,0,0,1,0,0,0,1,255,1,0,1,1,0,0,0,0,0,255,255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,0,1,1,0,0,0,0,255,0,255,1,0,1,1,0,0,0,0,0,0,255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,255,0,0,0,0,0,0,255,1,0,0,0,0,255,0,0,0,1,255,1,0,0,255,0,0,255,0,255,255,0,0,0,255,255,1,255,0,0,0,1,1,255,0,1,1,0,0,0,0,0,0,0,1,0,255,0,255,255,255,1,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,255,0,0,0,0,1,0,0,0,0,0,0,1,0,255,255,0,255,0,0,255,0,255,0,255,0,0,0,0,1,0,1,1,1,1,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,255,0,0,1,0,1,0,0,0,0,0,255,0,0,0,255,0,0,0,255,0,0,255,0,255,255,0,0,0,0,0,1,1,0,1,255,255,0,255,0,1,255,0,0,255,255,1,1,1,0,0,0,0,0,1,0,255,0,0,0,0,255,0,0,0,1,0,255,0,255,255,1,1,0,1,0,0,0,0,0,1,1,0,0,1,255,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,0,255,1,255,1,0,1,255,0,0,1,0,0,255,255,0,255,0,255,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,255,1,0,0,0,255,1,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,255,0,0,255,255,0,1,0,1,0,1,1,255,0,0,0,1,255,255,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,255,0,0,0,1,255,255,0,255,0,0,255,0,1,0,0,255,1,0,0,255,0,0,0,1,255,0,255,1,255,255,0,0,0,0,0,0,255,1,0,0,1,0,0,1,255,0,0,255,255,255,0,1,0,0,0,0,1,0}, {1,0,1,1,0,0,0,255,1,0,0,255,255,0,0,0,0,0,0,0,255,0,0,0,0,0,255,0,255,0,0,0,0,1,1,1,0,0,1,255,0,0,0,1,0,1,255,0,0,1,1,0,255,0,0,0,0,0,0,0,1,255,1,255,0,0,0,0,0,1,0,1,255,0,255,255,255,0,0,1,1,0,255,1,255,0,255,0,0,0,0,0,1,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,1,255,1,255,0,255,0,0,0,1,255,0,1,0,255,255,1,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,255,0,1,0,0,1,0,0,0,0,255,0,255,0,0,255,0,0,0,0,0,0,255,0,0,1,0,0,1,0,0,0,0,255,255,0,255,1,1,0,1,0,0,255,0,0,0,0,0,0,0,1,0,0,255,255,0,0,1,255,0,0,0,0,1,0,0,0,255,0,0,0,1,0,0,0,0,1,0,255,1,0,0,0,255,0,0,255,0,1,0,1,0,0,1,255,0,255,0,0,1,1,255,255,0,255,0,1,0,0,255,1,0,0,0,1,1,1,0,1,0,255,0,0,0,255,0,255,0,0,0,0,0,0,255,0,0,0,255,0,0,255,0,0,0,0,0,0,0,0,0,255,0,0,0,0,1,0,0,255,255,0,0,255,0,0,255,0,255,0,255,255,1,0,255,0,0,0,0,1,0,255,0,0,0,0,255,0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0,255,0,0,255,0,0,255,1,0,0,255,1,0,255,0,0,0,0,0,0,0,0,255,1,0,0,255,0,0,0,1,1,1,1,255,0,0,0,1,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,255,0,1,0,0,0,0,0,0,0,0,255,255,0,1,0,0,0,0,0,255,0,1,1,255,0,0,0,0,0,0,0,0,255,1,255,0,0,1,0,255,0,0,0,0,0,255,255,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,1,255,0,0,1,0,0,255,0,255,1,0,255,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,255,0,1,0,255,255,1,0,0,0,0,0,1,1,0,0,0,0,0,0,255,255,1,255,1,255,255,0,0,0,255,0,1,1,255,0,0,0,0,0,255,1,0,255,1,0,1,0,0,255,0,0,0,255,255,0,255,0,255,255,1,1,0,0,0,0,255,0,0,1,255,0,255,0,255,0,0,1,0,1,0,255,1,1,0,1,1,255,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,255,0,0,255,1,1,1,1,0,1,0,255,0,1,0,0,0,0,0,0,255,1,0,0,0,0,1,255,255,255,1,0,255,0,1,0,0,255,1,0,0,0,0,0,255,0,0,1,0,0,0,0,0,1,0,0,0,1,255,0,255,0,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,1,0,0,0,1,0,255,1,0,0,0,0,0,0,1,1,1,1,0,1,0,0,255,0,1,0,0,0,0,1,0,1,1,255,1,255,255,1,1,1,0,0,0,0,0,0,255,1,0,1,255,255,0,255,255,0,0,1,1,1,0,255,0,1,0,0,255,255,1,0,1,1,1,0,0,255,0,0,0,0,0,0,1,1,1,255,0,0,255,0,0,255,1,0,0,0,255,255,0,0,0,0,0,1,0,1,0,0,1,255,255,0,0,255,0,1,255,0,1,0,0,0,1,1,0,0,255,0,0,255,255,1,0,0,0,0,255,0,0,0,255,0,0,0,1,0,0,0,255,0,0,1,255,0,0,0,1,0,0,0,0,0}, {0,0,0,255,0,255,0,255,0,0,0,1,0,0,0,0,255,0,255,0,0,1,0,1,1,255,1,255,0,0,0,1,255,255,0,0,1,0,255,1,0,255,0,1,0,1,0,0,0,0,0,0,255,0,0,1,255,0,0,0,0,0,0,0,1,255,1,0,0,0,0,255,255,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,255,255,0,255,0,0,0,0,0,255,0,0,255,0,1,0,0,0,0,0,0,0,0,1,255,0,1,255,0,0,0,255,0,1,0,0,0,0,255,255,0,0,0,255,0,0,0,1,1,0,255,1,1,0,0,0,0,0,0,0,1,0,255,1,0,1,0,0,0,255,255,255,0,0,0,255,1,0,0,0,0,0,1,0,1,0,0,0,255,255,0,255,0,0,1,0,0,1,255,0,0,0,0,0,255,0,255,0,0,1,1,1,255,255,0,1,0,1,255,0,1,0,0,0,0,1,255,0,1,0,0,255,1,0,255,255,1,0,255,0,0,1,1,0,1,0,0,0,0,0,1,0,255,0,255,0,0,255,1,0,0,0,0,0,0,1,1,0,0,0,0,255,0,0,1,0,255,0,0,255,0,0,1,0,255,1,0,255,0,0,0,0,0,0,0,0,0,1,0,0,255,0,255,0,0,1,0,0,255,0,0,0,1,0,0,255,0,0,0,0,0,255,0,1,0,0,255,0,255,0,0,0,0,1,0,1,0,0,1,0,255,0,0,0,0,0,0,0,255,1,255,0,0,0,0,1,255,0,0,0,0,255,0,0,0,1,0,0,255,1,0,1,0,255,0,255,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,255,0,1,1,255,0,0,1,0,0,0,0,0,255,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,255,0,255,255,0,0,0,255,255,0,255,0,0,255,0,1,0,0,0,1,255,0,0,0,255,255,1,1,0,0,0,255,1,0,0,0,0,0,0,255,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,255,1,255,0,1,0,1,1,255,0,0,0,0,255,0,255,255,1,1,0,0,0,1,0,1,0,1,1,255,0,0,0,1,0,0,1,0,255,0,255,0,0,0,255,0,0,0,0,0,0,0,0,255,0,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,255,255,0,1,255,0,0,0,0,0,0,1,1,0,0,255,0,255,0,0,0,0,255,255,0,1,1,0,0,0,0,255,0,0,0,255,0,0,0,255,1,0,0,255,0,0,255,1,255,0,0,255,0,0,0,0,0,1,255,0,255,1,255,0,0,1,1,1,1,255,0,0,0,1,0,1,1,255,0,0,0,0,0,0,0,255,0,0,255,0,0,1,255,0,0,0,0,0,255,0,0,0,0,1,0,1,1,1,0,0,255,0,0,0,0,0,255,0,0,255,0,255,0,0,0,0,0,255,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,255,0,255,0,0,0,0,1,1,1,0,0,0,0,255,0,0,0,0,1,1,255,1,0,255,0,0,0,0,1,0,255,0,0,255,0,255,255,0,0,255,0,1,1,1,0,0,1,0,0,0,0,0,255,255,0,0,1,0,255,0,255,0,0,0,1,1,1,0,0,1,0,255,255,255,255,0,1,255,255,0,0,255,0,0,255,0,1,0,255,255,0,0,0,0,255,0,0,0,1,1,0,1,255,1,0,1,1,0,1,0,255,0,1,255,0,1,255,0,255,1,255,255,0,0,0,0,255,0,0,0,255,0,0,0,0,0,255,0,0,255,0,0,255,0,0,255,0,255,0,255,255,0,1,0,1,1,1,255,255,0}, } ; static const unsigned char precomputed_core_wforcesntrup857_k[precomputed_core_wforcesntrup857_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_wforcesntrup857_c[precomputed_core_wforcesntrup857_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_wforcesntrup857_impl(long long impl) { unsigned char *h = test_core_wforcesntrup857_h; unsigned char *n = test_core_wforcesntrup857_n; unsigned char *k = test_core_wforcesntrup857_k; unsigned char *c = test_core_wforcesntrup857_c; unsigned char *h2 = test_core_wforcesntrup857_h2; unsigned char *n2 = test_core_wforcesntrup857_n2; unsigned char *k2 = test_core_wforcesntrup857_k2; unsigned char *c2 = test_core_wforcesntrup857_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup857(impl); printf("core_wforcesntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup857_implementation(impl),ntruprime_dispatch_core_wforcesntrup857_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup857; printf("core_wforcesntrup857 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup857_implementation(),ntruprime_core_wforcesntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } { long long weight,i,direction; for (weight = 0;weight <= nlen;++weight) { for (direction = 0;direction < 2;++direction) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); for (i = 0;i < nlen;++i) { n[i] &= ~1; if (direction) { if (nlen-1-i < weight) n[i] += 1; } else { if (i < weight) n[i] += 1; } n2[i] = n[i]; } crypto_core(h,n,k,c); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); crypto_core(h2,n2,k2,c2); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic"); } } } checksum_expected(core_wforcesntrup857_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_wforcesntrup857_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_wforcesntrup857_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_wforcesntrup857_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_wforcesntrup857_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_wforcesntrup857_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_wforcesntrup857_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_wforcesntrup857_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_wforcesntrup857_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_wforcesntrup857_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_wforcesntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup857")) return; storage_core_wforcesntrup857_h = callocplus(crypto_core_OUTPUTBYTES); test_core_wforcesntrup857_h = aligned(storage_core_wforcesntrup857_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_wforcesntrup857_n = callocplus(crypto_core_INPUTBYTES); test_core_wforcesntrup857_n = aligned(storage_core_wforcesntrup857_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_wforcesntrup857_k = callocplus(crypto_core_KEYBYTES); test_core_wforcesntrup857_k = aligned(storage_core_wforcesntrup857_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_wforcesntrup857_c = callocplus(crypto_core_CONSTBYTES); test_core_wforcesntrup857_c = aligned(storage_core_wforcesntrup857_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_wforcesntrup857_h2 = callocplus(maxalloc); test_core_wforcesntrup857_h2 = aligned(storage_core_wforcesntrup857_h2,crypto_core_OUTPUTBYTES); storage_core_wforcesntrup857_n2 = callocplus(maxalloc); test_core_wforcesntrup857_n2 = aligned(storage_core_wforcesntrup857_n2,crypto_core_INPUTBYTES); storage_core_wforcesntrup857_k2 = callocplus(maxalloc); test_core_wforcesntrup857_k2 = aligned(storage_core_wforcesntrup857_k2,crypto_core_KEYBYTES); storage_core_wforcesntrup857_c2 = callocplus(maxalloc); test_core_wforcesntrup857_c2 = aligned(storage_core_wforcesntrup857_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_wforcesntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup857();++impl) forked(test_core_wforcesntrup857_impl,impl); ++test_core_wforcesntrup857_h; ++test_core_wforcesntrup857_n; ++test_core_wforcesntrup857_k; ++test_core_wforcesntrup857_c; ++test_core_wforcesntrup857_h2; ++test_core_wforcesntrup857_n2; ++test_core_wforcesntrup857_k2; ++test_core_wforcesntrup857_c2; } free(storage_core_wforcesntrup857_c2); free(storage_core_wforcesntrup857_k2); free(storage_core_wforcesntrup857_n2); free(storage_core_wforcesntrup857_h2); free(storage_core_wforcesntrup857_c); free(storage_core_wforcesntrup857_k); free(storage_core_wforcesntrup857_n); free(storage_core_wforcesntrup857_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_core_wforcesntrup953.c0000644000000000000000000015362014705505543024056 0ustar rootroot/* ----- core/wforcesntrup953, derived from supercop/crypto_core/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *core_wforcesntrup953_checksums[] = { "ccfc516d2d46a821fcebf8b326f81f90c54b1c6bdd795357022e77590a30c0ef", "22397d2cdd1652713cd69cc70fa941ccff3877d4ed5012fbce791261f740252b", } ; static void (*crypto_core)(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); #define crypto_core_OUTPUTBYTES ntruprime_core_wforcesntrup953_OUTPUTBYTES #define crypto_core_INPUTBYTES ntruprime_core_wforcesntrup953_INPUTBYTES #define crypto_core_KEYBYTES ntruprime_core_wforcesntrup953_KEYBYTES #define crypto_core_CONSTBYTES ntruprime_core_wforcesntrup953_CONSTBYTES static void *storage_core_wforcesntrup953_h; static unsigned char *test_core_wforcesntrup953_h; static void *storage_core_wforcesntrup953_n; static unsigned char *test_core_wforcesntrup953_n; static void *storage_core_wforcesntrup953_k; static unsigned char *test_core_wforcesntrup953_k; static void *storage_core_wforcesntrup953_c; static unsigned char *test_core_wforcesntrup953_c; static void *storage_core_wforcesntrup953_h2; static unsigned char *test_core_wforcesntrup953_h2; static void *storage_core_wforcesntrup953_n2; static unsigned char *test_core_wforcesntrup953_n2; static void *storage_core_wforcesntrup953_k2; static unsigned char *test_core_wforcesntrup953_k2; static void *storage_core_wforcesntrup953_c2; static unsigned char *test_core_wforcesntrup953_c2; #define precomputed_core_wforcesntrup953_NUM 9 static const unsigned char precomputed_core_wforcesntrup953_h[precomputed_core_wforcesntrup953_NUM][crypto_core_OUTPUTBYTES] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,1,255,0,0,0,1,255,0,0,0,0,0,1,1,0,0,1,0,0,255,255,255,1,0,0,255,0,0,0,1,1,0,1,0,0,255,255,0,0,255,0,0,0,0,255,255,255,0,255,0,1,0,255,1,0,0,1,1,1,0,255,0,0,255,1,0,255,1,0,0,0,0,255,0,0,0,1,0,255,0,255,0,0,0,255,1,0,0,0,1,1,0,0,255,1,1,0,1,0,255,255,1,0,1,1,0,255,0,255,0,255,0,0,0,0,255,255,0,0,0,0,1,255,0,0,0,1,0,0,255,255,0,255,0,0,255,0,255,0,1,0,0,0,1,0,0,0,1,0,1,0,0,255,1,1,1,0,0,255,0,255,1,0,0,0,0,0,0,1,0,1,255,0,0,1,0,255,0,1,0,1,0,0,0,255,0,0,0,1,0,0,0,0,0,1,0,255,0,0,0,0,0,255,0,0,255,255,255,0,0,0,0,255,0,1,1,1,255,0,1,1,255,0,0,1,0,1,255,255,255,0,0,1,1,0,0,255,0,255,0,1,0,0,0,0,0,255,1,0,1,255,0,0,1,0,255,0,1,0,1,0,0,0,255,0,1,255,0,0,255,0,0,0,0,255,1,0,255,0,1,255,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,0,1,0,255,255,255,1,0,0,0,0,0,0,255,0,1,0,1,0,0,1,1,1,255,0,0,255,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,255,0,0,255,255,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,255,1,1,255,1,0,1,0,0,0,1,0,255,0,0,1,255,0,0,255,0,0,0,0,0,0,0,1,255,1,0,0,0,1,0,255,0,0,0,1,255,255,1,0,255,255,0,255,0,0,255,0,255,255,0,1,1,0,0,0,0,255,255,0,0,1,0,255,0,0,0,1,0,255,0,255,0,1,255,0,255,0,0,0,0,255,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,255,0,0,1,0,255,1,1,0,0,255,1,255,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,255,0,255,255,255,0,0,0,0,0,0,255,0,0,0,0,255,0,1,0,255,255,255,0,1,0,0,255,0,1,0,0,0,1,255,255,0,0,0,0,0,0,255,1,1,1,0,0,0,1,1,1,0,1,255,255,1,0,0,1,0,255,0,0,1,0,255,1,0,0,255,1,0,0,255,0,0,1,0,0,255,1,0,1,0,1,255,0,0,255,0,0,0,0,1,0,1,0,0,0,255,0,255,0,255,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,255,0,1,0,255,0,0,1,0,0,0,0,0,0,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,255,0,1,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,1,255,0,0,0,0,0,255,255,0,255,0,0,255,0,0,255,0,0,0,0,0,1,255,1,255,1,0,255,0,1,255,255,0,0,1,255,0,255,0,1,0,0,255,255,255,0,0,1,1,0,255,1,0,1,0,0,0,0,0,0,255,0,0,0,0,255,255,255,1,1,0,0,1,255,0,255,0,255,255,0,1,0,0,255,255,1,255,255,0,255,1,255,255,0,0,0,0,0,0,0,0,0,0,1,255,0,255,0,1,1,0,1,255,0,255,0,0,0,0,0,0,0,255,1,0,1,1,0,255,255,0,255,1,255,1,0,0,1,255,0,255,0,1,0,1,0,0,0,0,0,255,1,0,1,0,1,0,255,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,1,255,1,255,255,0,0,255,0,0,1,0,0,0,255,255,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,255,0,1,0,1,0,255,0,0,1,255,0,0,0,0,255,0,255,0,0,0,255,0,0,255,255,0,1,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, } ; static const unsigned char precomputed_core_wforcesntrup953_n[precomputed_core_wforcesntrup953_NUM][crypto_core_INPUTBYTES] = { {249,204,130,119,235,59,90,248,201,175,136,65,118,11,33,192,236,81,168,210,127,216,14,176,33,152,69,129,216,34,154,69,104,31,125,54,104,208,43,209,70,46,183,59,205,221,99,206,191,168,169,243,4,57,178,31,255,218,125,21,234,108,12,93,43,80,246,69,109,106,141,215,42,64,103,207,81,198,56,183,70,191,141,79,179,36,191,223,21,177,25,27,145,204,255,199,197,94,158,230,222,237,211,21,178,51,199,252,215,147,111,37,173,15,248,110,43,128,70,40,219,84,33,235,7,214,85,126,224,176,218,198,18,116,247,49,127,245,67,108,219,2,245,56,101,216,229,105,162,1,155,240,67,127,54,178,139,74,113,119,84,21,223,57,173,252,162,245,175,219,127,150,99,94,218,255,199,235,45,20,139,89,31,151,175,8,22,24,68,94,178,175,220,223,187,177,138,84,146,183,195,206,218,81,138,80,243,102,163,204,136,130,4,147,10,85,184,24,169,0,19,227,5,174,68,48,71,250,150,51,34,47,201,98,10,11,39,169,203,234,170,105,101,82,244,27,80,221,39,70,165,190,101,240,39,252,63,20,69,83,103,233,153,44,86,6,33,19,13,75,89,119,201,190,185,67,23,95,68,174,34,222,234,170,204,174,12,162,52,206,232,254,56,176,205,48,162,51,85,13,17,141,244,156,212,154,223,92,182,218,51,25,160,1,120,252,16,120,196,139,83,131,228,21,56,158,242,28,79,205,66,219,39,157,160,182,169,125,238,56,73,211,180,136,35,33,9,86,138,213,142,115,16,95,199,238,130,184,10,214,136,83,73,30,54,12,245,90,168,36,12,120,136,10,253,71,159,98,139,101,87,115,40,205,212,222,208,178,103,235,217,169,130,246,4,246,79,249,27,201,139,240,72,127,134,144,99,128,244,1,42,12,243,27,97,75,117,210,18,21,99,239,155,129,122,109,207,109,149,12,105,148,114,0,151,30,36,163,216,45,180,211,64,246,56,22,186,170,167,113,125,226,184,58,101,70,121,33,249,39,48,127,25,54,216,148,128,55,136,40,55,208,16,243,122,178,143,52,252,154,57,180,134,236,81,118,222,129,212,209,173,41,95,231,136,105,196,179,138,107,187,10,141,119,234,58,166,41,23,27,37,36,131,21,141,125,166,249,89,136,250,162,29,82,21,50,86,214,229,160,181,41,109,51,110,208,206,20,197,87,130,49,101,59,80,79,119,37,219,171,122,202,59,194,253,82,65,134,195,193,151,37,175,171,248,8,124,179,122,53,186,246,149,149,225,143,75,193,250,98,26,201,148,194,165,229,188,231,154,83,103,82,184,197,219,64,7,230,197,100,241,253,100,98,119,129,27,135,31,189,201,128,195,111,130,159,202,1,37,30,166,50,130,104,119,165,198,174,5,155,11,225,231,183,29,225,210,253,116,14,91,29,81,44,44,58,84,53,249,133,233,164,22,135,79,156,124,141,103,212,120,26,46,81,173,101,54,11,27,96,15,123,145,5,156,203,62,136,139,67,99,77,81,167,250,44,107,234,50,89,204,187,136,99,95,3,95,158,27,188,244,158,53,132,238,102,4,187,209,195,156,43,25,190,40,26,30,206,9,158,22,21,19,51,43,158,10,64,121,96,122,119,249,140,94,242,178,54,193,33,200,68,255,145,172,84,131,88,180,63,159,81,233,213,242,31,198,239,154,17,68,13,221,160,192,130,168,37,138,249,28,57,110,146,28,189,47,106,20,241,48,199,136,234,159,233,44,204,208,225,120,160,246,119,255,168,26,234,247,45,46,152,117,233,58,59,231,215,166,246,78,24,52,74,169,130,63,197,1,239,111,132,194,70,177,83,202,12,220,57,102,193,68,90,197,52,152,158,224,224,14,245,113,61,175,46,132,112,61,172,97,215,231,14,169,143,144,41,30,211,228,19,124,118,171,45,216,21,96,134,252,49,245,128,212,169,219,149,110,93,125,158,236,220,141,62,180,99,62,139,168,142,79,204,67,194,104,248,205,15,186,231,138,149,244,237,57,84,7,121,132,70,254,6,104,99,252,233,16,182,151,104,221,111,98,145,152,128,134,162,62,107,71,40,35,1,254,206,53,24,194,30,222,77,9,66,207,84,75,38,23,227,15}, {136,115,132,155,212,255,122,106,203,143,212,149,98,33,44,18,41,196,34,184,68,221,123,66,219,234,22,10,220,161,157,231,176,11,233,102,186,163,183,179,88,80,169,34,67,195,38,87,2,230,22,153,50,216,59,90,63,164,221,71,11,93,54,130,186,176,26,1,67,108,246,129,165,145,96,183,183,150,159,95,90,116,52,168,128,110,226,1,181,60,227,197,134,167,156,19,124,166,162,154,37,9,72,106,49,134,106,221,249,27,197,160,82,29,50,226,179,143,227,88,104,43,246,59,96,12,132,182,7,70,160,71,27,53,91,128,23,59,130,132,205,253,127,74,237,174,4,30,184,40,167,136,240,83,140,243,154,16,229,98,17,187,220,64,177,133,243,161,4,209,172,115,35,93,221,183,133,156,211,58,75,76,220,210,87,160,149,14,251,9,2,199,19,133,130,139,64,198,86,96,212,102,200,231,224,215,38,150,209,0,140,51,33,130,161,198,80,50,180,53,53,233,39,92,80,75,158,84,255,114,119,159,232,236,179,111,131,219,2,1,246,176,208,123,159,97,142,239,11,63,206,138,241,30,125,90,18,9,238,61,141,176,214,26,118,136,194,44,15,59,227,145,101,191,77,234,7,178,165,43,49,68,42,141,222,9,154,66,242,148,170,203,9,176,43,196,13,176,69,242,235,150,220,131,224,3,192,152,123,30,207,6,82,184,137,205,133,234,176,25,33,72,158,69,235,28,149,178,219,120,166,162,189,94,207,184,155,132,229,108,203,207,31,189,120,93,126,130,190,123,54,78,61,232,53,163,170,162,185,57,142,174,84,5,196,118,213,253,112,176,175,74,184,99,97,173,87,253,52,151,250,32,8,247,83,100,80,196,139,210,40,218,126,148,68,202,112,49,161,229,238,174,36,221,2,161,128,62,78,111,178,91,240,23,128,144,29,204,222,24,57,58,222,245,94,244,163,247,29,72,87,116,222,198,204,109,142,18,192,113,14,50,210,251,72,107,190,210,127,70,2,100,28,194,247,159,134,21,76,19,87,142,177,74,194,71,221,76,182,75,248,73,225,190,173,14,54,24,115,240,198,235,248,232,198,220,47,88,78,106,213,220,113,219,93,67,159,252,16,244,128,188,88,132,193,75,80,142,12,44,194,154,50,192,88,15,107,105,139,58,232,215,120,201,254,190,60,1,126,23,44,60,61,19,88,90,78,253,85,83,160,217,54,43,138,223,127,63,224,237,99,154,194,166,75,128,7,40,97,116,133,184,217,191,101,241,58,240,68,123,226,15,79,127,75,35,69,157,125,139,173,137,229,153,177,183,223,58,30,78,118,195,231,18,243,143,166,159,135,1,75,137,162,227,156,188,104,135,25,251,148,205,148,198,179,24,26,169,81,96,231,227,209,124,82,84,27,32,59,99,60,143,125,221,36,196,192,216,165,133,54,128,219,116,88,154,57,170,70,69,242,204,216,168,44,101,30,105,112,157,177,214,229,41,193,216,216,246,77,184,139,91,255,211,42,203,198,47,162,195,224,213,3,234,99,156,162,21,205,210,2,36,89,254,97,95,148,121,4,121,214,141,108,46,210,252,32,164,199,169,135,60,1,150,236,0,123,70,71,148,60,80,45,121,44,3,217,213,118,108,215,11,52,201,71,17,24,239,87,33,233,212,67,42,100,183,79,51,0,139,4,180,244,121,137,72,92,203,92,173,137,20,41,48,14,55,77,66,243,208,185,242,7,116,255,116,219,77,104,238,233,130,151,224,32,108,185,176,122,124,195,22,53,15,192,232,108,249,48,78,227,206,221,120,25,94,69,129,138,186,187,56,243,2,47,98,187,54,128,117,92,80,22,129,134,102,172,254,87,71,103,46,113,236,231,51,67,212,149,198,211,188,225,242,221,121,134,120,41,7,158,59,138,147,249,70,30,89,198,120,116,202,101,127,142,248,15,42,135,41,181,231,121,73,132,204,111,182,38,62,214,123,141,166,166,27,155,149,140,67,231,180,176,214,5,112,132,211,115,250,199,41,99,174,255,81,106,203,142,117,154,116,254,224,178,12,222,223,136,202,130,18,107,173,10,30,158,227,131,51,142,87,29,166,231,170,83,42,74,222,166,143,3,68,91,153,212,20,44,59,255,152,250}, {57,125,246,174,115,214,232,173,248,188,171,242,216,59,197,195,112,77,137,182,49,218,190,130,241,104,110,253,157,160,155,67,232,12,13,27,25,168,194,151,113,145,15,220,226,184,58,60,75,135,205,109,196,189,194,119,130,162,61,78,146,48,14,116,230,200,107,176,139,131,187,26,179,106,105,38,124,168,203,170,147,63,33,204,160,113,83,131,42,252,140,4,220,222,75,163,103,122,177,200,60,145,177,66,115,220,84,234,149,150,137,168,6,21,54,34,239,219,17,117,166,123,178,67,102,72,63,219,119,106,55,93,209,230,134,222,125,209,135,130,231,127,35,253,80,118,165,137,213,151,139,107,225,3,198,185,81,13,37,77,139,49,6,157,20,236,235,245,56,103,204,134,29,212,187,203,114,207,220,49,69,150,143,46,253,217,35,226,128,198,29,81,200,102,15,218,81,40,250,88,92,70,27,250,99,27,65,227,25,33,112,74,211,143,69,57,39,179,223,87,156,135,192,175,245,106,235,102,39,217,129,196,31,226,9,16,194,234,46,94,163,20,156,90,108,233,9,110,180,135,197,150,25,93,139,46,216,186,252,53,151,94,81,60,179,111,202,246,205,23,104,207,154,230,219,43,91,130,173,29,91,22,199,30,117,84,64,40,192,27,183,235,70,22,117,52,204,89,6,72,142,80,113,230,252,21,162,242,239,12,44,15,2,10,20,93,8,163,215,159,120,241,80,95,99,129,48,224,77,225,97,19,252,55,191,207,230,128,203,76,125,21,230,62,181,167,9,95,53,181,188,76,128,82,15,181,177,232,120,61,202,232,50,228,143,35,121,153,71,253,66,116,238,129,132,1,14,187,123,184,214,130,109,44,41,68,138,18,13,3,120,42,36,199,108,226,138,129,29,138,170,13,68,174,118,86,171,189,202,153,127,33,24,150,94,43,5,41,109,139,68,96,218,129,150,29,111,221,21,46,111,117,100,203,163,193,240,56,181,169,215,75,234,155,177,226,128,242,95,206,9,214,212,231,38,252,0,16,181,153,18,100,215,60,67,233,120,125,56,224,135,65,228,25,134,78,77,157,24,180,58,73,164,227,251,17,195,191,225,73,9,100,31,51,123,214,136,131,11,254,91,25,145,83,136,109,185,251,105,112,178,246,82,181,100,108,131,4,94,105,13,243,144,34,15,95,124,184,205,89,162,115,226,67,44,183,90,143,230,1,114,105,3,161,195,91,239,101,154,251,109,100,211,210,250,32,233,138,246,172,81,69,39,124,124,234,202,184,232,71,254,174,49,77,150,205,100,108,31,172,247,203,13,21,165,82,23,117,140,123,125,187,191,242,250,186,47,9,59,169,65,42,198,202,253,26,117,213,241,48,109,179,129,112,244,44,202,44,227,97,20,60,176,250,217,152,37,118,90,255,23,52,32,146,94,95,88,238,104,172,195,225,221,97,5,53,51,191,45,175,189,165,83,137,235,197,81,238,171,57,58,85,107,219,143,34,252,230,179,147,180,89,55,95,212,53,13,163,169,192,202,40,38,64,72,16,251,18,117,143,88,71,132,87,80,109,101,28,190,29,153,29,106,222,55,221,184,134,180,97,71,142,21,6,121,62,58,60,144,237,11,35,141,93,34,66,89,163,67,196,214,238,161,37,100,184,149,94,9,140,91,180,110,33,190,37,219,26,108,103,72,98,224,121,183,235,107,58,10,87,198,103,52,11,7,89,174,68,14,157,112,76,76,47,231,91,67,74,76,95,177,107,200,44,79,254,46,249,189,175,8,28,49,45,142,87,32,190,114,198,63,169,72,43,71,7,92,19,17,249,155,238,15,216,111,175,59,214,167,188,174,110,248,190,70,212,2,20,150,154,150,170,55,27,112,246,169,51,133,108,137,34,59,56,85,115,48,121,225,100,66,104,43,132,246,70,221,190,44,209,81,32,223,75,47,70,157,47,136,37,233,47,210,232,226,105,222,98,201,97,108,41,211,99,17,116,96,13,82,28,80,14,38,97,248,7,150,219,156,123,169,62,254,114,198,88,164,199,161,155,37,135,187,173,144,222,56,237,177,42,120,101,0,145,254,214,128,35,69,228,177,63,190,76,202,246,103,129,125,110,122,121,174,173,220,81,67,51,222,244,7,29,174}, {112,78,205,251,34,248,118,243,198,22,202,94,151,49,153,145,8,84,20,191,29,102,39,70,179,250,239,124,129,138,29,214,171,242,40,113,96,68,4,234,147,22,187,70,139,233,38,20,208,76,248,191,187,227,221,189,65,14,200,173,139,153,19,118,132,205,153,225,76,119,157,16,139,28,241,7,188,233,89,160,133,189,55,44,245,253,219,35,216,141,206,65,70,148,188,44,157,60,43,238,212,153,195,8,163,241,23,135,11,195,170,228,141,31,51,169,196,152,21,132,92,122,82,137,21,178,100,52,67,71,187,198,122,177,70,140,201,1,222,81,124,206,147,38,77,162,125,113,138,231,147,115,79,182,82,84,107,243,208,63,236,1,57,130,7,239,10,219,132,14,191,103,121,169,90,209,102,99,30,193,42,197,146,83,23,194,197,82,1,15,69,247,82,214,94,240,228,129,87,4,200,86,128,114,68,19,132,111,228,87,187,76,152,144,8,8,194,236,182,85,184,187,75,145,248,187,20,231,15,243,162,75,36,7,144,82,173,245,172,111,199,253,96,95,252,143,226,171,228,254,50,126,253,189,190,188,84,81,216,40,224,213,129,159,159,131,71,209,104,116,92,93,207,222,77,210,203,190,252,34,160,236,239,105,45,147,174,137,128,119,176,44,121,52,226,14,67,13,45,231,186,86,36,250,151,89,113,108,32,50,106,8,125,103,56,4,112,8,213,205,110,3,49,238,77,97,139,80,60,212,130,64,201,174,219,244,4,130,150,116,195,183,175,79,53,205,134,35,10,56,230,135,94,125,33,30,217,108,235,184,230,32,134,207,126,28,26,128,215,178,211,204,201,198,85,99,188,250,123,187,53,204,172,137,206,34,249,66,44,173,41,65,35,46,50,219,20,233,4,39,37,181,23,93,39,174,53,162,38,15,75,97,208,113,18,187,227,251,106,197,229,42,223,242,175,238,234,191,195,30,206,191,93,225,16,213,135,67,229,53,70,70,139,84,212,70,180,142,81,131,38,118,126,223,88,27,247,46,191,156,188,179,210,17,123,80,252,254,90,167,154,193,156,31,63,223,86,26,194,89,100,7,245,133,231,29,33,146,217,184,231,156,138,24,79,117,97,181,105,156,38,206,52,103,162,158,0,142,59,63,79,146,254,224,23,90,48,248,90,183,50,29,9,18,211,175,233,156,113,34,65,255,190,28,21,136,234,116,78,217,224,51,168,204,18,65,76,116,103,194,236,24,192,18,42,3,220,32,239,57,157,130,18,59,194,73,111,55,237,47,167,156,204,174,113,14,16,6,122,253,133,205,8,251,152,206,245,57,58,15,153,242,43,180,99,41,50,126,187,29,202,91,158,198,2,202,230,30,136,193,69,108,148,246,160,211,147,173,192,101,84,16,235,149,189,80,183,155,251,91,6,120,246,63,94,169,41,69,251,251,224,31,233,241,80,107,49,183,135,168,185,219,17,200,89,61,32,38,98,87,70,117,184,252,166,18,192,238,15,59,182,35,195,75,162,104,231,113,145,235,193,233,235,87,138,249,227,161,203,1,13,35,147,46,249,16,41,222,65,145,197,54,33,175,164,235,116,60,254,66,42,34,129,21,177,254,229,163,129,161,118,136,143,153,146,93,50,249,89,63,247,119,191,96,229,49,236,106,111,57,62,46,72,94,221,59,127,14,139,158,63,206,236,83,176,6,252,13,162,199,251,180,154,16,220,129,69,129,5,190,39,231,223,236,193,97,164,147,235,200,238,119,175,145,36,133,180,68,233,90,170,31,56,138,59,146,54,5,68,98,106,1,16,151,177,218,51,119,205,6,29,75,253,11,62,163,100,163,180,237,119,161,160,181,90,1,199,25,94,145,207,154,29,182,38,218,225,28,240,62,175,40,44,86,114,62,37,86,110,93,226,224,31,80,107,189,3,128,149,202,74,134,72,171,38,148,25,34,227,46,72,196,119,217,96,139,217,21,194,2,29,209,171,172,121,159,21,111,193,62,81,207,147,113,235,238,223,2,145,140,101,18,119,159,53,87,15,184,14,45,129,151,137,57,99,77,27,151,60,8,162,201,87,180,193,19,218,126,235,255,121,236,17,253,83,167,15,35,243,38,3,57,251,165,150,11,47,112,126,134,144,4,167}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}, {0,0,1,255,0,0,0,1,0,255,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,255,1,0,255,0,0,0,255,255,0,0,0,0,0,0,0,1,0,0,0,255,0,1,0,0,255,0,0,255,255,0,255,0,0,255,0,0,1,0,0,1,0,1,1,1,0,0,0,255,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,255,1,0,1,0,255,0,0,1,0,0,0,0,1,0,255,255,0,0,1,0,0,0,0,0,1,255,1,0,255,0,0,255,0,0,1,0,0,0,0,1,255,1,1,0,255,0,255,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,1,1,255,0,255,0,255,1,0,1,0,0,0,0,255,0,0,0,255,0,1,0,0,0,0,0,255,0,255,1,255,0,255,255,0,0,255,1,0,0,0,0,0,1,255,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,255,0,255,255,255,255,255,0,1,1,255,255,0,1,255,1,0,1,255,0,255,0,0,0,0,255,0,0,1,0,255,1,0,0,0,0,1,255,1,0,0,0,0,0,0,0,0,255,1,0,1,1,1,1,1,0,0,0,0,255,1,1,1,0,255,255,0,255,1,0,1,1,0,0,0,255,0,0,0,1,0,0,0,1,1,0,255,0,0,0,0,0,1,0,0,0,1,255,0,255,255,0,0,0,0,0,255,255,0,0,1,0,0,0,0,0,0,255,1,0,0,0,0,1,0,1,0,0,0,1,0,0,255,0,255,0,0,255,1,0,1,0,0,0,255,255,255,0,1,0,1,0,1,0,1,0,0,0,1,1,1,255,0,0,0,255,0,1,0,0,1,1,1,0,255,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,255,0,0,0,255,0,0,0,1,255,1,0,0,255,0,0,0,0,0,0,1,1,255,0,0,1,0,0,255,0,0,0,0,0,0,1,255,0,255,1,255,255,1,0,0,255,1,0,0,0,1,1,0,255,0,0,0,0,255,0,1,0,255,0,0,0,255,0,0,255,255,255,0,255,0,0,0,0,0,0,255,0,0,0,0,1,0,1,0,1,1,255,255,0,0,255,0,255,0,0,0,0,0,0,255,0,0,1,0,0,1,0,1,0,0,1,0,255,0,1,0,0,0,255,0,0,255,0,255,0,1,0,0,0,255,1,0,0,0,0,255,0,0,0,255,0,1,0,1,0,0,255,0,1,0,255,255,0,0,1,0,0,0,0,0,0,0,0,0,0,0,255,255,255,0,255,0,255,0,255,255,1,1,255,255,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,255,255,1,1,0,0,1,1,0,1,0,0,0,0,1,255,255,255,255,255,1,255,0,0,255,0,0,0,255,1,0,1,0,0,1,1,0,0,0,1,0,0,0,255,0,255,255,1,0,0,1,0,0,0,0,0,0,255,0,255,255,1,1,0,0,1,0,0,0,0,255,1,255,1,255,255,0,255,255,0,255,1,0,0,0,255,0,0,0,0,255,0,0,0,1,255,255,0,0,0,255,0,0,0,0,0,0,0,255,0,0,1,0,255,0,0,255,255,0,255,255,0,0,0,0,0,0,255,0,0,255,0,0,0,0,0,1,1,1,255,1,255,0,0,1,1,0,0,0,255,1,0,0,0,0,255,1,1,1,0,0,255,1,255,255,0,255,0,255,255,1,1,1,0,0,0,1,0,1,1,0,255,0,255,1,0,0,0,0,255,1,1,0,1,255,1,255,0,255,0,1,0,0,0,0,1,0,0,0,0,255,0,255,0,0,1,0,0,0,1,0,0,0,0,0,1,1,1,0,255,0,255,0,0,0,1,0,0,255,1,255,0,0,0,0,255,0,0,255,0,0,255,0,1,0,1,0,0,255,255,1,1,1,255,255,1,0,255,0,0,255,0,0,0,0,0,0,0,255,0,1,0,0,1,0,0,0,0,255,0,255,1,1,255,0,0,0,1,0,0,1,1,0,255,0,0,0,0,0,0,0,0,255,1,0,255,1,0,255,1,1,1,0,1,1,1,0,1,0,1,0,0,0}, {0,1,255,0,0,0,1,255,0,0,0,0,0,1,1,0,0,1,0,0,255,255,255,1,0,0,255,0,0,0,1,1,0,1,0,0,255,255,0,0,255,0,0,0,0,255,255,255,0,255,0,1,0,255,1,0,0,1,1,1,0,255,0,0,255,1,0,255,1,0,0,0,0,255,0,0,0,1,0,255,0,255,0,0,0,255,1,0,0,0,1,1,0,0,255,1,1,0,1,0,255,255,1,0,1,1,0,255,0,255,0,255,0,0,0,0,255,255,0,0,0,0,1,255,0,0,0,1,0,0,255,255,0,255,0,0,255,0,255,0,1,0,0,0,1,0,0,0,1,0,1,0,0,255,1,1,1,0,0,255,0,255,1,0,0,0,0,0,0,1,0,1,255,0,0,1,0,255,0,1,0,1,0,0,0,255,0,0,0,1,0,0,0,0,0,1,0,255,0,0,0,0,0,255,0,0,255,255,255,0,0,0,0,255,0,1,1,1,255,0,1,1,255,0,0,1,0,1,255,255,255,0,0,1,1,0,0,255,0,255,0,1,0,0,0,0,0,255,1,0,1,255,0,0,1,0,255,0,1,0,1,0,0,0,255,0,1,255,0,0,255,0,0,0,0,255,1,0,255,0,1,255,0,0,0,0,0,1,0,0,0,1,0,0,0,255,255,0,1,0,255,255,255,1,0,0,0,0,0,0,255,0,1,0,1,0,0,1,1,1,255,0,0,255,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,255,0,0,255,255,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,255,1,1,255,1,0,1,0,0,0,1,0,255,0,0,1,255,0,0,255,0,0,0,0,0,0,0,1,255,1,0,0,0,1,0,255,0,0,0,1,255,255,1,0,255,255,0,255,0,0,255,0,255,255,0,1,1,0,0,0,0,255,255,0,0,1,0,255,0,0,0,1,0,255,0,255,0,1,255,0,255,0,0,0,0,255,0,0,0,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,255,0,0,1,0,255,1,1,0,0,255,1,255,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,255,0,255,255,255,0,0,0,0,0,0,255,0,0,0,0,255,0,1,0,255,255,255,0,1,0,0,255,0,1,0,0,0,1,255,255,0,0,0,0,0,0,255,1,1,1,0,0,0,1,1,1,0,1,255,255,1,0,0,1,0,255,0,0,1,0,255,1,0,0,255,1,0,0,255,0,0,1,0,0,255,1,0,1,0,1,255,0,0,255,0,0,0,0,1,0,1,0,0,0,255,0,255,0,255,1,0,0,0,255,255,0,0,0,0,0,0,255,255,0,0,0,0,0,1,0,1,0,1,1,0,0,0,0,0,255,0,1,0,255,0,0,1,0,0,0,0,0,0,255,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,255,0,1,0,0,0,0,255,0,0,0,0,255,0,0,0,0,0,0,255,255,0,0,0,0,1,255,0,0,0,0,0,255,255,0,255,0,0,255,0,0,255,0,0,0,0,0,1,255,1,255,1,0,255,0,1,255,255,0,0,1,255,0,255,0,1,0,0,255,255,255,0,0,1,1,0,255,1,0,1,0,0,0,0,0,0,255,0,0,0,0,255,255,255,1,1,0,0,1,255,0,255,0,255,255,0,1,0,0,255,255,1,255,255,0,255,1,255,255,0,0,0,0,0,0,0,0,0,0,1,255,0,255,0,1,1,0,1,255,0,255,0,0,0,0,0,0,0,255,1,0,1,1,0,255,255,0,255,1,255,1,0,0,1,255,0,255,0,1,0,1,0,0,0,0,0,255,1,0,1,0,1,0,255,1,1,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,1,255,1,255,255,0,0,255,0,0,1,0,0,0,255,255,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,255,0,1,0,1,0,255,0,0,1,255,0,0,0,0,255,0,255,0,0,0,255,0,0,255,255,0,1,0,0,0,0,1}, {0,0,255,0,255,255,1,0,0,0,0,1,0,0,255,1,255,1,255,0,255,1,0,1,0,255,0,1,0,255,1,0,1,255,0,1,0,255,1,1,1,0,0,0,0,0,0,1,0,0,255,0,0,1,1,0,0,0,1,0,0,255,1,255,0,0,255,0,255,255,0,0,255,1,255,0,0,1,1,0,0,255,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,255,0,1,255,0,0,1,0,0,0,0,0,1,255,0,1,1,0,255,0,0,255,0,0,1,0,1,255,1,0,0,0,0,255,0,0,255,1,0,0,1,0,0,255,0,0,1,0,1,255,0,1,0,0,1,0,0,0,1,255,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,255,0,0,1,0,0,1,1,0,255,1,0,0,0,255,0,1,0,0,0,0,255,0,0,255,255,0,255,255,255,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,255,0,0,1,0,0,0,0,1,0,255,255,255,255,0,0,0,255,255,0,0,0,255,0,0,0,0,1,1,0,0,255,1,0,0,255,0,0,255,0,0,0,1,255,0,0,0,1,1,0,255,0,1,1,255,255,1,255,0,0,0,1,0,255,255,0,0,255,1,0,0,255,1,0,255,1,0,0,0,1,1,0,0,0,255,0,1,0,0,0,0,0,0,1,1,0,255,255,0,0,255,0,1,1,0,255,255,255,0,0,0,255,0,255,255,0,0,255,0,255,0,0,255,0,255,1,1,255,1,1,0,0,255,0,0,0,255,1,255,0,0,0,1,0,0,0,255,0,0,255,0,1,1,255,0,255,255,255,255,0,0,255,0,0,255,0,255,0,0,1,255,0,255,0,0,0,0,0,0,1,0,0,1,0,0,255,0,255,0,0,255,1,0,0,0,0,1,0,0,255,0,0,0,0,1,0,0,255,0,0,1,0,0,1,0,255,255,0,0,0,0,1,1,255,0,255,0,0,255,1,0,1,0,0,0,255,0,0,0,0,0,1,0,0,255,0,0,0,255,0,0,0,255,0,255,255,0,0,1,1,1,255,0,255,255,0,255,0,255,1,0,1,255,255,0,0,1,0,1,0,1,0,1,1,0,0,0,255,0,1,255,255,0,255,255,0,1,0,0,255,1,0,0,1,0,255,0,0,1,0,255,0,1,255,0,0,255,1,0,0,0,1,0,255,0,255,0,1,0,255,255,0,0,0,0,255,0,0,0,0,0,0,0,255,255,0,0,0,1,0,0,255,255,0,0,255,0,0,0,0,0,0,255,1,255,0,0,0,0,0,0,0,0,255,0,0,0,0,0,0,0,0,0,0,0,0,1,255,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,1,0,255,0,0,255,0,1,0,255,0,0,0,1,255,1,0,255,0,0,0,0,0,0,0,0,0,255,0,255,1,0,0,1,0,255,0,1,0,255,0,0,0,0,255,255,1,0,255,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,255,255,1,255,0,0,0,0,0,0,0,1,255,0,0,1,0,0,255,0,0,0,0,0,0,0,0,255,1,0,0,0,0,0,255,0,0,1,0,0,0,1,0,1,0,255,0,0,255,255,0,1,0,1,0,0,0,0,0,1,0,0,255,0,0,255,1,0,255,0,1,1,255,0,0,1,0,255,0,0,0,0,1,255,255,0,0,255,255,1,0,0,1,0,0,1,0,0,255,1,1,0,1,0,0,0,0,255,1,0,255,1,0,255,1,0,0,255,255,0,0,255,0,0,1,0,1,0,0,255,1,0,1,0,1,0,0,0,255,1,0,0,255,0,255,0,1,255,255,1,0,0,0,0,0,0,255,255,0,255,0,0,255,255,0,255,0,255,0,0,0,0,0,1,255,0,0,0,1,0,0,1,0,0,255,1,1,1,0,1,0,1,0,0,1,1,255,0,1,0,1,0,255,1,0,0,255,255,1,0,1,0,255,0,0,0,0,255,0,0,1,255,255,0,1,0,0,1,1,0,255,1,0,0,255,1,0,0,1,1,0,255,255,1,0,0,1,0,0,0,255,0,0,1,1,0,1}, } ; static const unsigned char precomputed_core_wforcesntrup953_k[precomputed_core_wforcesntrup953_NUM][crypto_core_KEYBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static const unsigned char precomputed_core_wforcesntrup953_c[precomputed_core_wforcesntrup953_NUM][crypto_core_CONSTBYTES] = { {}, {}, {}, {}, {}, {}, {}, {}, {}, } ; static void test_core_wforcesntrup953_impl(long long impl) { unsigned char *h = test_core_wforcesntrup953_h; unsigned char *n = test_core_wforcesntrup953_n; unsigned char *k = test_core_wforcesntrup953_k; unsigned char *c = test_core_wforcesntrup953_c; unsigned char *h2 = test_core_wforcesntrup953_h2; unsigned char *n2 = test_core_wforcesntrup953_n2; unsigned char *k2 = test_core_wforcesntrup953_k2; unsigned char *c2 = test_core_wforcesntrup953_c2; long long hlen = crypto_core_OUTPUTBYTES; long long nlen = crypto_core_INPUTBYTES; long long klen = crypto_core_KEYBYTES; long long clen = crypto_core_CONSTBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_core_wforcesntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_core = ntruprime_dispatch_core_wforcesntrup953(impl); printf("core_wforcesntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_core_wforcesntrup953_implementation(impl),ntruprime_dispatch_core_wforcesntrup953_compiler(impl)); } else { crypto_core = ntruprime_core_wforcesntrup953; printf("core_wforcesntrup953 selected implementation %s compiler %s\n",ntruprime_core_wforcesntrup953_implementation(),ntruprime_core_wforcesntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 512; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); secret(n,nlen); secret(k,klen); secret(c,clen); crypto_core(h,n,k,c); public(n,nlen); public(k,klen); public(c,clen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k2,klen); secret(c2,clen); crypto_core(h2,n2,k2,c2); public(n2,nlen); public(k2,klen); public(c2,clen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); secret(n2,nlen); secret(k,klen); secret(c,clen); crypto_core(n2,n2,k,c); public(n2,hlen); public(k,klen); public(c,clen); if (memcmp(n2,h,hlen) != 0) fail("failure: crypto_core does not handle n=h overlap\n"); memcpy(n2,n,nlen); secret(n,nlen); secret(k2,klen); secret(c,clen); crypto_core(k2,n,k2,c); public(k2,hlen); public(n,nlen); public(c,clen); if (memcmp(k2,h,hlen) != 0) fail("failure: crypto_core does not handle k=h overlap\n"); memcpy(k2,k,klen); secret(n,nlen); secret(k,klen); secret(c2,clen); crypto_core(c2,n,k,c2); public(c2,hlen); public(n,nlen); public(k,klen); if (memcmp(c2,h,hlen) != 0) fail("failure: crypto_core does not handle c=h overlap\n"); memcpy(c2,c,clen); } { long long weight,i,direction; for (weight = 0;weight <= nlen;++weight) { for (direction = 0;direction < 2;++direction) { output_prepare(h2,h,hlen); input_prepare(n2,n,nlen); input_prepare(k2,k,klen); input_prepare(c2,c,clen); for (i = 0;i < nlen;++i) { n[i] &= ~1; if (direction) { if (nlen-1-i < weight) n[i] += 1; } else { if (i < weight) n[i] += 1; } n2[i] = n[i]; } crypto_core(h,n,k,c); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_core"); input_compare(n2,n,nlen,"crypto_core"); input_compare(k2,k,klen,"crypto_core"); input_compare(c2,c,clen,"crypto_core"); double_canary(h2,h,hlen); double_canary(n2,n,nlen); double_canary(k2,k,klen); double_canary(c2,c,clen); crypto_core(h2,n2,k2,c2); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_core is nondeterministic"); } } } checksum_expected(core_wforcesntrup953_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_core_wforcesntrup953_NUM;++precomp) { output_prepare(h2,h,crypto_core_OUTPUTBYTES); input_prepare(n2,n,crypto_core_INPUTBYTES); memcpy(n,precomputed_core_wforcesntrup953_n[precomp],crypto_core_INPUTBYTES); memcpy(n2,precomputed_core_wforcesntrup953_n[precomp],crypto_core_INPUTBYTES); input_prepare(k2,k,crypto_core_KEYBYTES); memcpy(k,precomputed_core_wforcesntrup953_k[precomp],crypto_core_KEYBYTES); memcpy(k2,precomputed_core_wforcesntrup953_k[precomp],crypto_core_KEYBYTES); input_prepare(c2,c,crypto_core_CONSTBYTES); memcpy(c,precomputed_core_wforcesntrup953_c[precomp],crypto_core_CONSTBYTES); memcpy(c2,precomputed_core_wforcesntrup953_c[precomp],crypto_core_CONSTBYTES); crypto_core(h,n,k,c); if (memcmp(h,precomputed_core_wforcesntrup953_h[precomp],crypto_core_OUTPUTBYTES)) { fail("failure: crypto_core fails precomputed test vectors\n"); printf("expected h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",((unsigned char *) precomputed_core_wforcesntrup953_h[precomp])[pos]); printf("\n"); printf("received h: "); for (long long pos = 0;pos < crypto_core_OUTPUTBYTES;++pos) printf("%02x",h[pos]); printf("\n"); } output_compare(h2,h,crypto_core_OUTPUTBYTES,"crypto_core"); input_compare(n2,n,crypto_core_INPUTBYTES,"crypto_core"); input_compare(k2,k,crypto_core_KEYBYTES,"crypto_core"); input_compare(c2,c,crypto_core_CONSTBYTES,"crypto_core"); } } void test_core_wforcesntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"core")) return; if (targetp && strcmp(targetp,"wforcesntrup953")) return; storage_core_wforcesntrup953_h = callocplus(crypto_core_OUTPUTBYTES); test_core_wforcesntrup953_h = aligned(storage_core_wforcesntrup953_h,crypto_core_OUTPUTBYTES); if (crypto_core_OUTPUTBYTES > maxalloc) maxalloc = crypto_core_OUTPUTBYTES; storage_core_wforcesntrup953_n = callocplus(crypto_core_INPUTBYTES); test_core_wforcesntrup953_n = aligned(storage_core_wforcesntrup953_n,crypto_core_INPUTBYTES); if (crypto_core_INPUTBYTES > maxalloc) maxalloc = crypto_core_INPUTBYTES; storage_core_wforcesntrup953_k = callocplus(crypto_core_KEYBYTES); test_core_wforcesntrup953_k = aligned(storage_core_wforcesntrup953_k,crypto_core_KEYBYTES); if (crypto_core_KEYBYTES > maxalloc) maxalloc = crypto_core_KEYBYTES; storage_core_wforcesntrup953_c = callocplus(crypto_core_CONSTBYTES); test_core_wforcesntrup953_c = aligned(storage_core_wforcesntrup953_c,crypto_core_CONSTBYTES); if (crypto_core_CONSTBYTES > maxalloc) maxalloc = crypto_core_CONSTBYTES; storage_core_wforcesntrup953_h2 = callocplus(maxalloc); test_core_wforcesntrup953_h2 = aligned(storage_core_wforcesntrup953_h2,crypto_core_OUTPUTBYTES); storage_core_wforcesntrup953_n2 = callocplus(maxalloc); test_core_wforcesntrup953_n2 = aligned(storage_core_wforcesntrup953_n2,crypto_core_INPUTBYTES); storage_core_wforcesntrup953_k2 = callocplus(maxalloc); test_core_wforcesntrup953_k2 = aligned(storage_core_wforcesntrup953_k2,crypto_core_KEYBYTES); storage_core_wforcesntrup953_c2 = callocplus(maxalloc); test_core_wforcesntrup953_c2 = aligned(storage_core_wforcesntrup953_c2,crypto_core_CONSTBYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("core_wforcesntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_core_wforcesntrup953();++impl) forked(test_core_wforcesntrup953_impl,impl); ++test_core_wforcesntrup953_h; ++test_core_wforcesntrup953_n; ++test_core_wforcesntrup953_k; ++test_core_wforcesntrup953_c; ++test_core_wforcesntrup953_h2; ++test_core_wforcesntrup953_n2; ++test_core_wforcesntrup953_k2; ++test_core_wforcesntrup953_c2; } free(storage_core_wforcesntrup953_c2); free(storage_core_wforcesntrup953_k2); free(storage_core_wforcesntrup953_n2); free(storage_core_wforcesntrup953_h2); free(storage_core_wforcesntrup953_c); free(storage_core_wforcesntrup953_k); free(storage_core_wforcesntrup953_n); free(storage_core_wforcesntrup953_h); } #undef crypto_core_OUTPUTBYTES #undef crypto_core_INPUTBYTES #undef crypto_core_KEYBYTES #undef crypto_core_CONSTBYTES libntruprime-20241021/command/ntruprime-test_decode_1013x2393.c0000644000000000000000000013445314705505543022447 0ustar rootroot/* ----- decode/1013x2393, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1013x2393_checksums[] = { "d14764f92d14444286cd940b7309cbc94dfbfa944288e2a1f126057a1e1b6d0d", "fe36c2ad2261b9693e2ad9ab3499e3dd2514bd6bf8ebf023f044d23f14345dd9", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1013x2393_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1013x2393_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1013x2393_ITEMBYTES static void *storage_decode_1013x2393_x; static unsigned char *test_decode_1013x2393_x; static void *storage_decode_1013x2393_s; static unsigned char *test_decode_1013x2393_s; static void *storage_decode_1013x2393_x2; static unsigned char *test_decode_1013x2393_x2; static void *storage_decode_1013x2393_s2; static unsigned char *test_decode_1013x2393_s2; #define precomputed_decode_1013x2393_NUM 4 static const int16_t precomputed_decode_1013x2393_x[precomputed_decode_1013x2393_NUM][crypto_decode_ITEMS] = { {-681,2484,3399,-2958,1698,3171,-3354,-3495,3345,2688,3498,3366,-2523,-1959,-2628,1992,1848,1704,-1569,-522,2160,-1485,3408,-3495,456,-2082,2076,-3579,1731,285,-318,825,2862,-3351,-543,954,-3117,-126,210,1395,-546,3096,-3405,-1449,1878,-2091,-2235,768,3036,2580,-2184,2490,-2721,-3273,-831,-723,-1698,-303,-876,-1830,474,3399,-804,-948,1176,-2523,-1602,-2802,-2343,-2787,-2916,3285,-3264,-264,-3132,1293,-1821,-2559,-2502,-864,3252,1677,1995,-480,45,-3018,2679,735,-2400,-2736,-1533,1266,3255,1287,1605,-1800,-1650,-1065,2766,-1203,2937,3027,3315,3198,3291,-417,1293,-852,3300,-921,-810,3093,3438,1209,3222,12,-996,2049,2838,2283,3192,-1848,1311,180,573,714,-2871,2424,-2373,2355,-2157,-2100,1626,1683,3351,3333,-3288,-660,-1590,-3024,3552,1983,3195,1995,-1662,3411,3231,858,-1662,2673,-522,-42,3462,2259,-2841,-135,-2880,-1137,-615,-2466,2295,663,-2097,1506,-2568,-2601,-1527,-288,552,-411,876,-3249,-1446,2163,-1131,-3288,2031,3540,3477,-3126,-2571,-1116,1368,-3081,-2154,1896,-3402,1125,2901,2577,-1638,-150,-2409,888,-3288,-3552,-3045,-1737,3,1491,582,-2706,546,1509,-681,3519,-3492,60,-147,-3318,-564,-1011,1158,-3561,2433,891,1887,-288,1854,2556,3150,-1482,2334,1758,-240,2031,-1482,-2148,552,2982,1713,831,1062,2862,3060,1080,-345,1977,-2421,3150,378,2808,18,-2646,-3015,-783,2013,2052,-2895,660,2985,-1743,159,-2157,1866,2787,969,3207,1344,-456,-3219,2571,1212,-336,237,1863,-1140,-792,3342,-2166,2277,1197,-1695,-2661,2979,2592,3351,2145,-1728,378,-2736,330,1206,-2178,-3444,-1122,-1584,1152,-3321,3513,1011,-18,-1848,39,1098,174,-2373,456,-651,2016,-597,-3171,33,-2970,-366,2226,-1275,-1749,819,1392,-3057,3528,870,-1695,1035,-3222,2163,-108,1053,-1596,267,1770,-114,2178,2034,3573,-753,-2808,951,3495,1638,1215,-3504,1935,-2622,-2916,-3516,-1998,1893,3168,2898,1728,2304,1941,3066,666,2325,-1092,213,303,387,3459,-237,1944,237,123,-3018,-3204,-483,465,3174,-3255,-2295,3057,-867,1767,-2379,-141,-1986,-1968,1689,-3039,288,450,-156,2658,-2487,-3225,-60,2682,-207,-2202,-2964,2613,822,2376,2226,2283,2172,702,3405,1863,2109,1290,-1863,33,-285,3357,1698,-753,-1815,543,-3288,1002,2772,-1014,2973,-1536,-2601,-3420,-1200,1386,696,3573,3501,-3393,-2622,-2415,1638,2178,-333,-366,-3369,2118,753,3435,984,3219,2433,-252,-1476,-735,-387,-2544,2481,-987,-3525,2748,-1323,-3549,-1716,2205,-3237,399,-2154,-2685,84,687,-597,-594,609,2028,1281,1617,1005,-3066,1302,-3288,-3147,-663,-2715,-1419,2763,-948,507,309,-3378,-816,-603,825,-2532,1767,2721,2163,-816,306,3531,1401,-2190,-732,15,2574,3417,-1935,-1338,-2460,-1161,2346,-39,3126,2403,-429,849,738,2751,813,1608,-1209,-216,3147,-609,2271,-1410,-1551,1914,2481,3507,-2367,-102,-1749,3501,-471,-1203,3165,-942,549,2169,-2346,3471,-1581,2601,1614,534,-1671,651,-2220,-1608,-2043,-462,-3357,-2505,-804,-1452,-966,3222,1812,3210,690,-1794,1419,2649,633,1713,3321,-765,-2154,-1230,2349,1239,2007,-1107,-1446,-732,2802,-1047,1368,-1248,1467,1659,-1224,-2172,615,2304,2373,-855,-3585,-573,-858,3300,-648,-2271,456,1776,3555,1149,-3108,-1932,570,-1407,-3459,-2670,2751,2322,834,-2781,-1761,2202,2412,-2964,-1134,-654,-696,-1329,3096,2082,3474,510,-2445,-2919,1203,1482,-531,3051,-2415,831,-873,2346,1641,-411,-2331,2973,-1956,2001,-1590,3237,363,453,-708,-564,3270,-549,-2262,-3039,-1725,1035,297,3018,-1941,2688,-3087,-876,-372,2805,822,1674,3555,-1647,-3348,1317,2028,2712,-1941,3333,2160,462,504,645,636,438,-84,-2889,2325,1899,-2580,3174,-2793,21,-177,666,-2244,1143,2475,-1125,2817,-2787,90,3582,3144,2886,-120,1593,-3339,-1005,2292,-3342,540,1524,897,1050,2967,-3162,2001,246,1380,3192,-2148,-2595,-3417,-2940,-3156,1017,1194,-3327,2700,-1581,2985,1446,1920,-1728,-1863,-3138,-2913,-1524,-3357,1305,-1107,-2925,-2904,2961,-18,-1338,2322,2106,-585,1293,-1680,-894,-2688,243,-774,-3276,-336,84,72,729,-834,45,2121,255,2391,-30,2283,1782,3549,-846,-3585,-2298,-2643,-3588,-2130,2205,-891,-3423,-2376,360,2310,-3279,-1572,1557,1185,-1269,-999,-546,1701,3021,-1056,1119,-2655,2508,-3204,-2970,24,3414,1245,702,-3555,-366,-2709,-2334,2562,1113,708,3039,2166,2766,-471,984,-3453,-1623,-165,1704,-513,1122,-558,48,2364,699,-3345,-1533,-3111,120,-1680,2130,2985,2145,1065,-3459,3147,1866,2895,-1194,270,-1275,1263,2754,972,-2766,-3123,-957,1485,2460,3465,-1140,2283,414,-1833,-3252,1926,2952,-3174,426,3108,3435,-366,1827,3051,3276,1278,-2547,3009,2850,-1656,1164,1701,-1047,-1170,-2064,1356,-2547,519,-2388,249,-2892,1047,-336,2250,-2457,-1419,-420,-42,-3192,-93,1569,-1863,285,-1476,-1212,-3213,3099,2472,-3054,1995,3297,-2772,-1962,3189,-2019,1089,-1002,1074,393,1038,-3339,2598,1257,-2502,-1881,-264,1911,2325,204,426,-1059,-2643,159,-330,45,-270,-420,-693,-3030,714,2460,2208,-3117,1590,-2415,-1377,1128,-2718,1599,1377,-1314,2235,-3063,2070,-2274,-2481,-3303,2814,-2088,996,1476,3270,-3303,282,2949,-816,201,-1263,-1560,156,690,2433,2733,-531,-1920,-3051,-1047,-1302,1434,1245,3063,3270,453,2235,-2817,192,1371,-1638,2814,-1092,3501,-3,-240,-2286,-1239,-3051,1416,-1605,-2010,3045,1311,759,-2499,2568,294,3105,978,-1176,1734,-1104,468,162,1899,999,2964,1134,2796,-192,12,-3360,-2202,-129,2988,-1776,-2400,-1554,3312,-3528,3180,-2058,-3450,1950,426,-3024,-3432,3195,429,-741,1803,-1338,1881,-3234,-2451,861,3453,2403,2124,3093,-876,-1050,3351,3219,3210,-51,2412,-2862,1395,1683,-2400,627,-840}, {-807,2496,3138,762,387,270,1326,-3165,-1002,1407,1005,3453,-2640,-561,1029,-1995,1128,-1956,-3183,3123,-1395,1656,2994,-723,-1416,2445,1899,1296,-630,-1260,-1359,-756,2544,987,351,-348,3501,-2058,-111,-3066,111,1122,-2187,2124,-2475,372,615,-2031,-3357,2481,-1518,-1956,-3294,168,-582,2559,1611,159,-2679,2358,-636,597,-546,-3537,1389,-2100,1767,3144,297,1314,-12,-2229,594,-2454,1584,-3135,3192,1929,-3177,258,-1269,-2739,2088,453,-552,2301,-3492,1179,-1839,1668,-966,1776,-2673,-441,2439,2487,-3558,-2445,-3162,-348,-3225,3078,-1884,-1353,-2838,3303,-3279,969,2628,1647,-717,-1464,1827,-2367,1341,345,-267,2745,1302,-1899,-810,213,1701,-3309,-3267,-3060,2556,-2448,3567,-2625,900,-3120,2232,1434,1308,360,2631,3,-45,3312,2751,-2883,-2796,3525,654,2835,2952,1767,2487,3069,-2838,-3048,1563,1167,-2541,699,3489,-1956,-1227,-2520,-2184,-1233,909,1704,2793,1152,1557,1128,-2907,351,-2349,1830,369,2496,3027,-2073,1068,1272,-2952,3489,-1848,-1470,-2034,-915,-147,-3330,252,1920,-1554,522,1947,1830,-2139,2112,-345,1149,3069,339,204,1821,-3579,-618,-2373,2817,-3534,1191,1563,-3075,-546,2913,3300,2607,-804,1362,-756,708,627,720,2082,-321,-2115,204,-1863,-2505,-2034,-1839,924,-1068,-3537,3267,3285,-1242,861,315,921,-1182,2460,-1578,1728,2751,555,2184,1335,612,-6,2703,-2865,627,1278,144,3039,-2388,2274,-2229,1782,2304,-3330,153,-699,3312,2142,-3384,-960,1875,-387,-933,-1266,1968,-237,1881,-2406,-2832,-2529,-2355,-3522,-1209,-108,906,-1323,2844,-2607,-1440,3273,-954,-1116,-2547,-2322,2106,2280,-2181,3042,2658,-690,969,1383,-1656,-2238,-1050,2955,2445,-564,-2724,-3408,1896,648,-804,-2664,-1467,-732,-2010,2064,258,858,-1212,-2496,-675,-963,1605,114,1629,-1668,-189,-3474,2565,-813,-951,1230,-1275,-1968,-3528,-2898,2028,-411,-2040,207,228,1533,1494,876,-477,-18,3030,-2385,1968,3000,2991,-3165,594,-2736,-723,-2262,-543,3459,3390,453,-2832,3024,-246,-2004,84,1962,1710,3459,-906,2688,2016,-3177,537,-126,2676,2013,-3144,-2274,-1323,708,1347,2544,3168,-1803,72,-2610,-978,2163,1650,-1323,-2850,-3066,2442,2991,2727,-2589,-2607,3360,-2409,-915,1563,2094,-1137,1797,1926,1110,-1968,3513,1914,-2634,-1815,-612,2337,-2517,3114,837,-2409,-1170,-2553,2919,-987,-2013,1662,-588,-63,2775,879,-687,1839,-3234,1119,-690,-2169,-2844,2172,-3225,3429,-1401,-834,-3135,792,1461,1203,-2988,1356,1950,939,243,-2670,-738,-2712,-1446,-2193,2886,342,1464,2208,3255,2232,2943,-3015,-699,1857,-3345,-1032,3054,2196,-2019,183,-2739,-2538,-1335,3438,-1200,3063,2424,3054,-2625,2988,1326,-2652,-2865,2388,-2949,1851,1890,2475,-2607,2682,-771,396,1539,-1104,1515,489,-3234,-72,-657,444,3384,-2220,168,2490,-777,-2175,-3330,-3462,-1569,18,-1134,-783,564,3252,-2892,-1800,399,1359,3474,-1083,1125,1059,1521,-3447,-1842,417,3102,-570,-3387,-777,2157,594,2082,-687,1776,-3177,-216,-2937,681,-2073,2187,-3423,-2226,-1506,-1569,-2334,3249,-453,1041,1389,-1011,2175,-2625,3171,-1422,3441,909,786,714,2700,255,-1845,1605,1110,-2526,3321,1800,-2442,225,1425,-2478,2319,1173,-1530,-2544,1326,-2874,-2748,-3204,-963,1017,2589,-477,-1278,1362,2649,-1068,-1158,-1647,-546,2745,-2025,1752,1986,-2073,714,3411,-3483,3054,-2565,2541,1353,-837,1992,2754,642,1680,1704,2166,3315,984,3249,2733,918,3315,246,2916,1788,72,-1359,2097,588,279,1044,2103,2649,372,162,390,291,1107,381,66,1317,-504,1704,-1413,3162,687,-2739,-2601,-486,-1227,-1758,-2586,1839,-3105,-1917,2070,3540,3465,-783,-1353,915,2130,2493,-408,1650,-2343,-228,-1923,249,-2628,2217,3339,-2868,3261,-3528,2469,255,-3447,1923,-2718,-2817,-2463,-1080,1086,3294,1671,1605,-2625,1533,-2196,2562,-294,2895,3381,-519,1407,-1902,-1038,-1629,276,1833,-1512,1380,-1878,-2355,1671,2295,-1101,-570,1011,201,-2430,1272,2280,-1926,312,576,1998,-1479,399,2103,-1368,-777,-2361,-1500,-2061,-1098,-3516,2796,-2610,-3222,543,-1773,-2634,-2346,921,3177,1098,1098,-333,1986,1365,3351,-141,2643,39,-3093,-804,-297,24,-2295,1257,513,-2772,-2718,-2697,-1557,-2823,-2067,2886,-420,-1116,-2004,-2403,-3189,1383,3477,-2757,-327,-156,678,-375,1980,2544,1884,870,-1794,-2244,-1635,549,1044,1596,-2169,-3456,-162,1836,-3510,-3570,1809,606,-2853,2820,2616,3339,600,1455,507,2019,-681,2748,1797,2232,-3315,-516,180,-3075,2745,2505,2208,1674,-402,-489,723,-1764,-3039,999,-2580,-1788,-222,-774,-2229,-1560,2250,3510,-1644,120,585,783,2457,2532,1980,0,1461,-2436,1047,3555,-1575,-465,-3312,-1890,1263,2868,606,-1128,2979,-57,1683,171,-1524,-564,3153,1539,1737,-2211,3045,1428,819,-603,-1662,-3231,1359,3420,1254,1956,2121,-1740,-3552,339,-1860,-3411,-729,279,3051,3348,-2925,-3366,1773,2130,-3465,1221,-1743,489,-2781,1425,-765,1641,-942,6,-1410,2640,114,1605,-579,-1758,627,-1047,1509,1821,-2364,-159,-2697,-1689,-3135,2526,-2442,-1506,-2313,3057,2739,618,-447,-1911,1002,714,-1842,-6,2952,-687,1020,2193,1389,1737,-1563,-2097,-1434,2340,960,2961,1284,2949,2901,27,-2349,-2229,960,-1908,3060,3141,-2037,-2376,981,2253,2043,366,1026,261,618,-1242,-1527,-2370,2757,2322,1104,-3324,3186,3264,3474,2301,-2391,-2982,471,3255,-1914,-408,2124,63,1962,1167,501,3243,3237,-153,2709,276,-3351,-177,1914,1962,3204,-3267,696,-1614,3066,-1857,-3351,2364,3492,-1320,-1245,-81,2322,-3213,-3480,1920,114,3531,-2568,2334,3150,-2703,1371,-3426,3585,-2919,3102,-2601,-2877,-1962,-2490,-2076,-2157,-498,-930,1173,696,-2898,-3303,2673,2928,2772,-1140,3243,3378,1614,1569,2145}, {2595,-291,528,-1740,2688,99,696,1359,-2607,-3120,180,3207,2202,-1497,594,-2619,2595,3399,-2043,-63,2145,528,-2652,-1512,831,-1674,-3570,-1017,-2235,2655,-1287,-135,3552,-3312,-2676,2511,1971,-729,1128,1671,2289,-1254,3489,-3228,2022,1698,-636,2952,1239,915,-414,-2052,3399,-2973,-1023,1683,561,-1602,3156,-1452,3273,1884,-960,270,-705,2637,3177,1020,1239,-1386,-1656,-3546,-1026,-2025,-1290,1974,-3,2493,2148,2322,2130,2544,-1125,180,12,-1032,-384,171,-2808,621,-1344,1857,1035,-609,708,-2421,-2181,2352,789,402,-552,-744,2265,-2697,-366,1431,1227,-132,96,2700,-2634,498,1701,909,2715,-3171,1491,147,3012,-1416,-1791,-2571,2085,-2991,-2097,3258,345,-3168,-2043,-738,-2226,-576,2694,-348,729,3348,-2502,2835,423,318,-2130,-936,-3420,-357,1974,-1080,1812,2427,-2340,-1107,-969,2223,-2088,1026,-207,-2115,1923,-1971,-2079,-3276,-3501,-756,3558,2193,-255,396,-2073,-1287,480,1326,-1317,1752,1911,-2415,-1482,-330,-2904,-2790,819,-1722,-2793,1434,954,963,-720,-2373,2826,-2628,582,-3096,2283,3573,1575,-2385,3285,-213,2532,-372,-1020,3288,1626,-243,-2250,1887,18,1872,-27,1599,660,-573,-2061,-771,-2928,2142,-2139,2328,501,-36,-3369,-3375,-2577,-2655,-207,-2163,2541,2517,-1485,465,-276,-309,-3177,2520,2670,1266,-3060,1917,-1518,-2988,-558,-354,-2907,-3204,-1158,318,-2841,-1509,2793,-843,435,705,-2406,-897,-2784,3411,-393,2229,453,405,-2430,1617,-321,1959,753,-972,-2445,3270,-1314,3564,135,-3414,2139,-615,816,-198,-2367,-159,810,1392,789,-2760,-354,426,-3156,2121,-405,207,2460,2532,-1629,-2250,1104,3441,-1872,-648,495,-954,1920,-2775,363,-3519,-933,-255,723,3543,3489,1110,-954,-1023,249,-3351,-1704,-1425,-39,-1080,-1107,-2226,1974,-744,-1563,-2952,-1671,2331,3426,1545,-1251,2256,-2721,2031,2190,2787,-636,-2937,-1017,2781,-180,3069,1917,129,1455,-1746,3465,-984,-2817,-1137,960,2073,-2433,309,39,-2208,888,663,1725,-1140,-3390,-3147,-888,-975,618,927,3120,-180,1143,-1434,3216,-36,-453,1575,-2550,3264,-492,-2064,1308,504,2751,1728,591,-1713,3534,-2700,-2550,-1551,2262,-849,-345,3405,441,2667,1602,2643,-3246,-468,3138,3489,-1956,-3252,-528,-309,-1185,1821,1437,1197,-543,2154,-258,-1509,3162,87,1119,-297,699,-2304,2364,-570,-1527,2709,2574,-990,2559,3081,1566,1515,2478,2958,-2310,1107,1269,1815,-3129,-3090,-3468,2514,3399,1746,2190,-429,-126,-1491,1911,816,2025,1866,-411,450,924,-246,2082,1572,3516,291,-240,-2607,-2484,3021,345,-2868,267,1830,843,-711,-2346,-447,1446,669,3243,-1140,2175,-3117,2418,-3321,-2019,3153,-1977,-3558,1017,-1725,2100,-1632,-549,2799,-1557,912,1326,2046,183,-1542,3225,903,687,2151,-2598,-183,-2139,-504,489,-3027,-1215,-1209,2511,-2163,-1872,-3138,3330,-525,-2046,-2343,1368,-846,1158,2988,-600,-2520,-132,2277,81,-810,-1374,2445,-522,1026,2304,939,2130,-2226,-2388,615,3339,3105,-1734,-2853,45,3549,-2814,1029,-1770,-306,1101,2133,2496,-402,1671,-2538,2145,-3201,828,-1833,978,2064,-849,-2064,-3396,2892,3432,3093,-2634,2649,927,1569,2772,1839,-2910,2610,630,-3033,-2229,-645,-42,-2844,-2733,-1119,2178,3312,1575,2670,-588,3357,-39,-3375,2346,2520,15,1944,2709,-285,-2655,2208,-3399,-987,-3402,3576,2337,2955,2679,2523,1032,1827,1152,1278,-2895,-1221,-2835,2064,189,-75,-1572,-654,2277,1350,1134,-1659,555,3474,1377,495,516,2730,2889,3456,-2394,-2619,2640,144,1458,-3441,-3354,108,-2340,975,252,-2094,-285,-900,-3195,150,-2793,60,2847,-2154,-2283,-999,600,2025,-2895,2403,-2886,1479,-2937,-2667,-333,1065,-2352,2397,-1692,1341,1398,-963,2418,-144,3012,2061,-2976,2337,276,1368,309,-2466,-60,1248,3459,-216,504,861,-1458,-435,3456,3333,-969,2379,2112,-1320,1332,-1443,2709,2712,2817,2448,3456,735,-2082,-2961,2358,-2163,462,-960,90,1224,-3150,-1461,1923,-2703,840,990,1446,-3360,-1392,-3399,1224,-2151,-2940,-3399,-1752,2964,-2310,3375,2544,-2772,-720,1338,684,1683,-3240,-333,-1494,-3483,1161,1737,57,-3078,969,-885,1035,-2982,870,1131,-3171,-78,-1554,-1203,-663,261,2091,1134,-216,-2529,-2622,-474,-2370,990,-3525,2226,-537,2553,-1137,843,-3219,-1098,-2547,1731,-3585,1911,507,-858,1185,-1929,-2043,-3027,402,669,-1017,1617,2736,-1119,-3237,2256,-2139,-1395,-2991,-2844,2664,-1896,3393,3165,-1881,-3588,-1710,480,-1953,2343,-2913,180,2190,-2460,-192,3270,810,-3366,714,-564,3492,1476,1821,-264,2982,-1632,-2049,-762,2910,-417,1533,2058,-978,789,1650,-60,1278,1746,1929,-3312,-1746,2208,3285,1821,-1569,1530,1014,-3432,1617,3579,1458,2418,-1860,-579,2679,-1152,2412,1740,2586,-939,3300,165,705,264,-720,1284,-1644,1065,156,-3402,-1554,-1572,741,777,2334,1221,1776,3324,2208,-1071,1218,648,-1365,3465,-711,-1704,2652,-2751,2202,-762,1413,-3564,3531,1902,-2574,-579,1824,-2019,-123,-3279,2148,2901,1299,-825,339,1194,30,-1623,-1137,-51,-3081,-144,1590,1023,-2388,-2817,-453,549,-3054,1206,54,675,-1209,-696,2976,3468,2124,306,1005,-2232,3168,-15,-3495,-12,996,-2805,2748,-2754,3096,-3351,-987,-1176,-1056,-2865,-624,3237,2214,2868,-126,1614,3159,834,-792,1032,354,-3525,123,-114,-1944,-693,3423,-2442,-2352,2466,696,834,39,2526,390,-3375,-3381,-765,474,-15,1776,1545,2406,-1938,-2211,2664,-1737,-2493,492,828,-81,60,603,1059,1533,942,-1227,-2946,1662,-75,1293,-3447,-2304,1269,-3300,-2454,-792,-3126,-381,2022,-939,2703,651,-2301,1683,561,-1623,-120,954,2409,-2049,1902,3408,1782,-3588,-498,-84,-2760,2250,3546,318,-2118,2898,2106,1503,1413,-468,321,21,-1311,3177}, {1761,-786,366,1182,3357,-933,3459,-402,-1800,447,3060,3351,489,114,978,-2808,1971,-792,3564,1086,3174,2172,2595,-318,2013,2652,-927,2583,3390,3423,3408,321,-2982,-6,387,-1512,1842,3135,-1506,-2568,3177,-381,1845,1221,-2142,633,-2253,381,1491,-3423,3129,1284,-1887,-1914,1848,2010,-2787,2646,-1578,2703,1668,-1899,-2496,-459,-2397,1722,-594,-1818,2175,-3387,-1806,930,2931,2724,2154,2202,-1059,1980,888,-366,2007,-1488,-450,-3003,2685,66,2211,-489,921,2037,-318,1092,-2148,24,-3273,2721,-963,846,-2409,-2313,-2376,2346,-2910,435,-36,2826,-1890,3435,1773,1122,-3279,2793,918,-2193,1416,2745,2469,-1827,1350,-1332,-1497,2478,-2781,-1470,2697,2499,-1377,-1686,1869,-2187,-2274,-1119,-2736,2373,3135,171,615,-2634,249,-1533,-1623,-39,-2043,2286,-822,2517,-216,2298,201,-3066,-3336,3216,282,-735,1515,564,1332,-522,2628,2193,-519,-888,2685,2772,-1842,-1614,-36,417,549,3090,2136,2433,-1479,-3030,-3117,-1710,-2142,495,378,1179,2616,3243,1305,-1455,-1749,-1758,42,861,3396,3438,1410,-2772,948,1857,1236,1626,-3012,3024,-1485,2712,-2274,-2511,2742,-3435,-9,-48,-1479,1524,2310,2598,1602,1269,1629,-396,1647,-2808,3135,2838,132,1614,1935,3552,1185,1461,3426,-3036,-3105,2448,2859,-3234,2412,-1236,357,-3018,648,-2865,-3495,141,-1131,2103,1089,2427,-3519,-2922,-2610,1821,-2289,672,-2256,-288,1602,-1416,-732,2472,-3411,705,-792,-12,-3057,-2085,-2715,-693,2709,573,-1803,-1605,510,2457,1284,528,984,-1524,1569,-309,2253,-906,-3066,3423,144,2883,1044,-3198,345,2715,-3516,2340,-885,2283,1131,-3369,2163,3345,-3228,-1611,-1017,-3543,3234,-1047,-3399,3330,3009,366,-615,-3063,2883,-951,-2508,-6,-669,-732,2244,-2958,2562,2151,2448,1425,738,3453,-1005,-2649,-2721,3213,2421,3144,-3165,2724,1317,1440,3435,861,-2535,3078,-825,-3588,3315,-3507,3270,2754,-729,-1731,-1794,-1296,3099,372,-3546,-597,-2253,108,3201,-2121,1563,1683,-3420,2022,2910,-3090,-2844,-2424,-1902,-2619,-678,-984,1941,2337,3285,1725,699,-294,618,-1881,-1542,-1689,-1110,2238,-267,-1161,1428,999,-1845,-390,-588,-459,3363,2109,-2979,1611,579,2421,1938,1890,-2085,-564,3327,-1317,-483,45,-2292,-2040,2781,675,-957,2943,-1347,3018,9,411,-3234,387,-525,-159,-1854,-3399,-699,-2940,2601,-786,1824,669,978,1050,-2346,-2958,-2022,1512,-2805,1236,2652,3321,1251,600,-414,-3306,-3471,-1206,2745,-1110,-1863,2049,837,-1845,-1839,-2637,2727,1491,585,3375,1605,786,-756,2565,2001,2895,711,1275,-690,-1095,-657,2814,18,-3258,-402,-1290,-1452,3237,2499,90,-2478,-3150,-2700,579,1593,-2397,3507,702,876,1311,1737,-2721,-1938,-123,2340,-996,2220,981,1755,3063,-2520,474,-444,1875,-3333,555,-2862,2523,-1551,-3090,1944,-612,-3003,-657,-294,1716,1452,-1560,2421,2844,-1761,249,3108,-621,2313,-648,3153,-1704,1080,-135,-2289,-2121,549,384,-1374,84,3288,-2247,618,2025,1797,480,1260,2136,741,1155,3060,-2043,-1056,-1350,-2145,-3573,1950,-3300,-1266,-2751,2106,2070,-1692,498,-1704,-1815,-2196,2682,-3480,-1056,-936,282,-2469,789,-3573,1977,-87,-3357,-3126,1086,-2961,-2205,-1539,-222,-3561,-645,-192,-222,-636,-336,-1290,-180,-1080,-453,876,1353,-237,-1737,-393,-2481,2661,-3384,1464,3258,-1314,159,498,1830,-2103,3438,1662,-552,-1101,1629,-2085,-246,-192,-1155,3285,123,-2289,-3459,-3177,1857,2685,-2259,2220,-3372,1770,-1479,-3510,-243,1167,1953,-96,807,-2151,666,1731,-2658,2955,-987,-1179,1614,3429,2142,1113,1152,2532,348,3312,333,-1413,2919,2682,-366,420,2010,-1467,-663,-702,6,-2160,21,2871,63,69,-3354,-2280,-2688,-504,2670,2538,-2001,2928,-147,-1101,3273,-2616,-2370,-3207,1824,-246,3309,-2037,-369,-2850,-2670,423,2223,-744,-2127,-678,-1410,336,636,-1761,-2964,-1740,1128,-1461,45,-2703,201,2814,3576,1497,-1893,144,-1392,243,3144,3243,-1710,-576,-1263,2757,-1563,1062,-198,-1314,2691,3261,3090,1269,-18,-2838,-3564,2532,-2913,2526,882,-270,1452,846,2856,-897,3291,2994,1818,12,717,-3525,2913,-3318,-3504,-3231,3453,-3315,-447,-1851,2577,-1047,-1542,1170,2469,-3000,-2343,-489,1911,288,2877,3171,-2187,597,-1665,-273,267,-3282,1443,-75,-1998,-2712,-2835,-186,-2814,-2859,516,-318,-1908,1359,2961,-2979,-444,-2754,1251,-2877,1968,2508,-3159,-936,-585,-3369,-1521,-714,-159,954,-3111,3024,2715,1800,1140,-1002,-192,3150,-96,-726,-3564,-3558,3045,1734,2259,873,-2901,1776,-1887,3060,3231,1098,-2196,-1350,-1152,-1533,1569,-114,3498,-3432,1212,-1467,3159,1320,36,-1074,927,-3561,-2955,-3342,1500,1281,-684,2601,1665,-2793,1152,-2121,405,-87,-912,-2244,1413,1314,87,-270,-3255,-2214,-537,174,2346,3474,-1698,-2502,-1107,435,-1800,2928,3201,-1821,1068,-2274,2079,1083,-2409,2580,2505,1875,-1476,-1422,1020,-1158,-810,-1617,-1650,771,2385,2058,-1533,2592,882,-3423,-72,3078,-1326,1341,2442,678,1347,-2823,-60,-2745,-3588,78,-162,1845,-1389,2772,-3528,2511,-1185,3420,-2946,636,-1233,-2835,2592,-2997,1257,3396,249,177,1896,54,-2727,2208,1686,2898,-2502,3423,489,3564,-2427,-2145,-3459,2838,3012,1614,-1218,3504,2568,-468,1341,3309,1536,-879,-1212,2208,330,1695,1005,3315,-225,144,-873,-741,1053,876,354,2781,-3318,-1911,1428,-2307,-579,-3099,-1680,-2355,-3459,993,-1677,-1830,-1887,-384,138,15,-2694,-2976,1197,-462,-615,1044,2514,3420,783,3231,-486,-1515,-477,-2946,912,1542,2400,1128,-969,-2478,-3552,-2925,-1371,438,-1626,2508,-2571,912,-2766,-3183,879,-3072,-2649,399,-1581,-846,2457,-705,-2562,-3462,-1257,1470,1767,732,3372,-816,-1626,-819,1746,-564,-2256,-330,1563,-1752,-819,1932,-2607,2232}, } ; static const unsigned char precomputed_decode_1013x2393_s[precomputed_decode_1013x2393_NUM][crypto_decode_STRBYTES] = { {113,235,27,180,39,75,21,34,83,108,24,173,42,213,228,235,88,112,239,83,49,160,227,42,202,89,107,35,192,42,169,186,221,234,81,76,207,35,103,171,138,94,30,9,153,63,143,6,104,27,46,252,162,214,154,226,37,254,66,105,251,15,144,37,159,252,172,147,114,193,91,168,160,117,59,105,140,136,22,41,11,30,113,219,201,244,34,166,72,96,47,23,218,94,247,201,231,183,169,15,20,140,99,161,110,161,107,83,9,127,217,84,13,108,14,218,159,159,187,125,120,54,9,227,245,97,163,45,74,87,77,30,159,46,20,70,180,163,246,223,229,215,210,252,151,50,27,38,17,55,236,44,195,51,32,8,245,213,229,171,74,197,67,2,181,4,27,45,143,176,25,38,63,2,247,169,89,201,189,168,203,23,53,50,98,193,105,93,226,17,244,218,61,124,129,209,54,136,66,214,164,193,13,15,98,132,224,102,197,77,147,97,64,187,228,139,141,49,22,207,212,170,60,25,133,104,158,137,194,252,0,208,132,135,156,217,32,192,91,4,94,222,220,123,206,36,227,172,47,181,94,125,182,111,223,158,96,186,96,37,56,247,28,155,172,93,52,11,208,87,38,69,228,74,185,64,104,208,6,72,38,177,164,47,246,3,232,179,64,110,179,121,149,39,16,208,57,58,63,57,56,23,85,138,244,199,32,101,217,162,85,157,45,16,111,122,197,98,227,68,239,59,184,50,45,48,21,130,186,59,103,124,37,57,34,47,90,90,15,66,126,188,103,83,164,207,243,104,220,96,210,202,113,89,8,48,62,173,186,88,101,22,190,226,28,49,8,246,210,185,126,181,254,42,74,10,128,108,50,85,5,227,107,122,226,156,239,124,166,62,204,97,181,102,222,20,32,140,107,136,8,74,78,222,146,92,87,2,193,12,134,141,111,46,212,104,49,72,0,53,159,59,135,115,132,128,201,223,111,162,95,188,39,185,82,176,85,30,105,221,195,132,126,135,131,255,49,13,219,116,71,96,134,96,121,96,34,173,138,154,126,103,53,42,240,115,130,189,74,186,241,46,172,7,222,104,108,194,202,196,199,4,174,39,166,189,211,60,173,188,226,122,25,173,68,153,117,251,225,253,218,83,229,205,121,229,188,229,167,102,114,249,174,52,221,93,109,37,198,118,229,88,133,90,13,172,159,208,215,211,9,228,162,236,166,194,156,26,147,243,70,104,142,30,219,119,21,70,170,31,117,21,58,202,163,85,217,137,201,204,233,41,119,149,232,12,75,62,172,209,91,58,193,247,203,221,2,158,202,148,203,40,36,218,198,61,218,14,50,223,246,54,133,93,196,251,203,238,20,81,221,59,148,79,98,17,177,172,206,80,171,229,209,88,192,31,3,19,174,124,159,39,156,173,60,79,119,20,59,33,56,40,97,181,159,247,87,238,51,97,17,20,31,255,122,211,3,111,78,171,36,249,245,75,239,181,252,136,74,97,198,209,116,248,69,197,122,249,82,62,154,14,197,148,178,62,103,157,171,206,61,7,182,124,180,143,28,22,232,66,41,58,7,137,84,3,218,16,83,1,207,55,117,210,226,56,33,84,61,124,208,241,107,148,119,63,206,247,23,69,68,149,236,144,197,138,82,129,226,202,255,121,17,229,220,109,49,130,246,190,22,219,171,192,162,206,7,138,210,30,12,134,225,99,7,218,64,97,112,180,98,247,49,220,90,205,15,183,84,220,247,79,111,17,125,248,153,170,60,172,61,116,68,231,124,118,190,250,244,208,240,61,41,8,174,169,168,249,99,239,52,248,44,14,178,136,245,169,80,194,55,224,141,120,151,97,110,29,126,18,50,133,135,64,106,213,214,66,218,76,70,140,27,102,133,113,236,46,76,254,55,181,9,107,198,18,212,103,14,45,137,138,158,5,203,185,141,147,249,202,175,244,135,247,121,126,10,239,160,193,69,83,49,75,41,62,109,119,100,255,26,224,206,131,111,172,61,103,157,64,68,93,140,147,171,6,192,234,246,156,32,117,195,226,93,222,255,122,69,236,44,205,86,127,217,26,191,197,94,81,132,148,81,78,126,61,103,139,57,214,157,217,103,129,16,229,13,3,111,194,150,105,174,171,62,221,74,140,81,41,185,189,34,239,207,238,173,123,118,97,202,66,218,169,182,219,190,129,220,93,28,203,167,27,140,22,66,195,240,195,30,168,244,103,150,226,65,143,40,172,195,105,37,86,14,40,112,244,171,88,166,231,222,226,189,21,242,221,82,46,1,79,49,25,236,13,56,103,210,171,106,241,193,71,35,0,159,210,100,37,112,165,120,122,18,107,22,42,126,25,2,98,141,74,120,14,243,158,229,47,247,169,131,112,6,121,142,241,154,70,158,5,218,198,107,214,216,243,220,121,78,170,149,32,3,184,226,85,50,42,19,97,135,71,30,48,209,120,214,98,247,135,17,246,6,47,67,94,67,118,187,14,196,31,99,20,36,224,176,137,91,136,218,178,98,40,222,49,133,98,244,205,70,247,68,237,139,222,199,52,110,179,107,64,97,80,180,15,153,92,66,103,39,24,26,155,148,147,209,125,45,114,243,62,123,56,202,55,110,120,201,194,53,5,151,252,171,196,143,70,69,114,12,52,146,25,233,83,132,68,247,236,36,227,245,238,123,197,158,97,140,194,135,115,48,236,227,97,7,61,80,239,219,87,170,21,89,197,56,194,208,185,54,146,53,223,59,30,152,178,56,167,46,211,219,127,220,153,146,1,195,8,184,143,131,113,138,254,252,7,187,30,133,220,203,198,150,181,31,184,228,57,86,69,89,187,152,210,182,226,148,218,14,97,200,78,48,125,40,26,64,49,118,46,113,144,45,189,121,51,96,111,98,139,13,93,3,180,230,160,144,243,202,85,241,202,242,190,63,211,94,47,92,88,237,82,4,249,243,108,143,57,201,18,17,255,226,255,188,106,217,240,194,79,9,14,11,234,50,75,134,123,77,52,98,174,24,44,204,165,212,81,120,23,179,170,197,231,158,152,54,200,236,103,146,77,1,186,138,73,78,255,106,157,43,51,16,226,155,192,142,21,231,179,186,233,108,62,198,184,109,48,31,234,187,215,226,85,216,112,238,38,119,236,108,21,62,171,41,116,169,46,242,115,194,170,71,210,255,49,128,15,104,189,142,34,223,182,158,245,117,235,255}, {171,16,220,250,67,250,107,44,55,207,238,184,5,217,158,105,68,227,60,175,143,214,149,231,247,112,33,121,162,89,23,123,41,183,153,116,137,168,5,95,163,88,195,135,91,52,232,248,156,222,210,223,166,183,67,213,254,161,61,96,211,243,223,162,235,34,29,247,33,175,37,143,220,210,59,138,43,47,59,208,104,88,175,54,103,177,141,5,95,251,6,77,226,78,218,248,127,233,6,112,247,34,57,54,139,224,126,119,193,191,225,221,140,227,50,229,58,25,25,149,25,71,56,108,155,109,28,232,234,193,20,184,142,39,228,19,62,189,57,0,244,156,83,148,219,50,21,54,92,14,142,147,190,230,42,47,87,230,215,2,189,171,31,111,155,185,55,109,92,242,123,243,51,18,46,121,68,45,243,35,182,201,201,138,97,40,76,15,240,8,19,249,111,98,44,172,192,212,195,218,49,38,212,246,227,42,40,69,85,36,225,111,66,67,136,77,185,116,251,202,91,41,192,48,181,75,232,177,118,111,209,150,24,135,177,78,206,126,133,46,73,70,33,37,179,150,102,78,210,114,177,163,31,146,202,189,221,136,95,255,26,131,129,129,216,84,226,162,36,149,38,53,68,3,199,244,82,183,83,76,51,38,45,24,219,174,128,79,177,39,116,14,221,122,93,138,224,229,168,118,16,136,192,191,36,232,255,209,150,56,14,215,34,241,255,117,54,56,101,132,101,97,49,228,52,28,81,45,16,189,182,91,135,219,41,119,153,225,85,227,148,145,109,161,253,27,47,231,31,224,153,17,211,247,223,56,230,181,152,179,48,131,251,173,152,61,144,53,106,66,191,110,49,147,125,22,232,66,119,142,188,197,127,200,121,254,120,101,98,229,252,241,173,98,104,181,111,220,1,36,218,189,217,0,181,149,127,33,15,148,100,95,23,156,228,176,115,232,103,235,242,102,176,17,239,74,55,73,120,28,164,104,255,135,43,80,200,86,184,45,211,32,95,49,58,173,115,253,220,221,64,146,93,223,232,1,194,73,133,28,238,110,12,232,201,200,37,135,221,246,138,223,81,11,222,106,121,189,34,52,191,210,225,81,91,129,137,66,28,166,234,203,17,23,156,175,62,255,104,54,240,136,131,230,65,39,16,70,28,196,122,59,125,134,168,149,254,189,101,193,116,196,4,55,29,238,145,86,157,7,213,240,32,118,164,9,12,89,243,69,52,49,202,153,52,40,134,69,97,144,189,66,74,142,254,59,49,53,9,25,210,249,230,8,251,230,177,18,210,208,70,58,179,243,210,52,191,33,57,240,226,150,13,9,96,14,230,222,131,94,72,80,51,124,146,43,57,238,116,132,32,112,115,12,67,61,105,224,75,179,120,119,19,38,87,219,209,101,48,241,186,169,179,59,16,85,45,184,72,109,15,43,244,90,195,194,37,73,55,15,70,87,102,201,62,45,190,209,37,11,38,197,255,230,210,181,247,168,117,204,223,195,60,206,212,19,123,99,27,136,156,201,164,59,180,85,130,220,147,236,186,99,227,139,87,219,63,0,108,122,29,4,154,161,251,190,20,36,182,40,62,66,160,179,173,178,178,73,165,57,145,107,139,80,232,179,176,117,182,28,44,31,214,92,36,15,47,220,148,123,146,219,22,11,1,18,139,193,142,240,226,151,134,185,66,132,142,151,200,74,200,220,52,4,252,177,214,240,111,201,28,162,180,219,19,199,43,102,49,76,50,179,26,250,117,176,163,247,76,139,89,2,30,222,46,105,75,147,55,90,168,224,146,21,155,147,16,206,158,124,255,176,201,74,106,250,39,142,46,17,134,178,107,207,56,153,56,205,199,120,161,107,148,137,13,96,95,13,110,20,57,241,110,44,21,36,31,16,196,214,118,189,61,170,21,117,192,54,62,248,207,131,133,211,93,13,140,204,102,211,221,26,141,64,179,134,18,123,212,215,172,98,113,59,20,135,30,23,118,166,215,79,250,12,227,236,184,220,248,133,196,250,119,135,220,10,121,64,25,224,240,69,142,158,199,25,74,155,154,172,143,57,196,98,31,85,126,3,74,25,209,92,152,236,128,233,15,158,40,145,216,45,109,54,229,24,225,59,110,35,90,115,78,253,98,153,43,104,231,104,20,138,235,145,12,203,208,26,52,169,127,231,11,252,82,178,223,36,172,255,184,228,56,52,121,135,115,243,1,81,46,22,121,115,140,10,212,92,117,78,37,110,174,168,92,95,205,108,12,94,167,42,237,120,67,87,248,211,39,210,101,203,170,127,116,240,171,25,145,239,31,146,241,239,17,212,109,1,170,116,133,64,162,144,23,170,181,97,251,122,118,33,182,228,3,87,11,83,230,12,217,126,92,136,7,1,11,210,139,229,157,135,28,89,23,233,28,171,37,1,39,142,206,94,253,50,53,165,168,121,47,127,26,244,241,195,182,147,121,155,228,151,153,9,224,139,245,50,0,212,108,69,64,0,196,26,50,211,32,118,158,52,91,66,33,202,47,188,145,41,217,212,127,146,191,39,106,62,68,113,24,210,105,186,225,56,97,70,234,127,158,81,84,230,237,238,193,106,182,69,196,59,197,110,107,143,36,69,27,162,108,81,224,111,70,51,64,37,120,80,66,242,36,166,242,35,6,87,219,160,15,232,197,10,36,193,118,93,81,18,150,87,127,138,156,191,103,207,226,227,126,198,58,15,41,244,144,166,59,95,221,77,38,30,175,6,59,67,11,149,88,57,72,178,178,189,162,243,209,163,80,178,3,185,61,120,78,8,216,70,63,100,55,38,68,16,101,162,230,235,219,39,50,127,128,82,223,25,178,162,192,198,252,228,100,229,109,57,64,126,165,127,126,229,102,124,167,3,141,19,105,235,18,73,33,152,167,18,14,219,43,171,100,2,129,129,173,167,71,38,241,184,196,54,163,28,113,134,135,70,108,63,214,242,95,232,239,28,139,180,126,17,12,125,78,79,42,18,134,201,200,255,53,51,173,102,44,208,142,147,244,187,41,216,138,20,167,183,148,8,154,59,223,157,245,74,15,27,95,182,25,76,105,10,51,208,73,119,82,74,21,154,133,254,150,108,202,39,157,145,24,76,7,193,146,168,192,234,89,181,133,100,227,232,156,169,24,57,113,60,32,50,47,234,49,21,2,204,140,234,203,134,222,80,221,203,78,92,206,254,71,123,147}, {32,41,132,131,113,232,221,59,131,179,89,185,219,122,189,208,190,18,130,233,115,32,204,69,143,81,247,74,60,254,38,10,72,101,249,60,142,211,149,8,33,112,239,106,224,93,188,157,30,213,34,182,94,133,44,43,141,49,80,8,15,163,130,248,36,200,207,30,119,211,98,133,119,9,140,181,94,8,90,246,14,170,221,223,228,32,201,196,199,59,235,72,62,72,213,57,49,78,21,150,136,161,224,223,211,26,197,22,124,141,192,188,6,195,136,27,114,124,76,120,50,99,146,75,75,85,203,33,73,178,210,170,166,119,103,113,191,46,223,143,58,73,165,83,226,141,21,61,35,52,210,189,166,42,26,242,144,181,31,206,77,120,61,102,7,130,160,3,194,212,201,1,24,78,76,170,94,183,251,187,3,33,79,106,137,205,154,183,114,2,128,48,34,171,16,29,168,44,44,180,109,189,55,165,110,121,188,38,237,183,112,75,226,190,119,3,243,64,248,151,112,92,138,92,118,86,108,87,77,237,93,88,168,28,163,1,58,80,184,96,99,173,208,141,230,78,106,113,188,69,99,194,33,49,68,209,254,158,177,91,18,136,207,220,59,122,198,15,3,35,252,54,150,72,246,189,214,162,167,25,96,223,39,125,238,52,24,133,155,75,171,147,240,202,143,20,99,236,36,220,180,148,254,208,165,55,173,59,118,231,29,86,67,139,17,151,210,164,87,192,108,13,249,130,71,36,74,101,75,159,73,240,108,136,227,10,234,68,7,114,243,186,10,214,243,236,28,112,165,208,117,195,155,210,93,94,83,209,179,249,172,131,199,61,124,68,102,219,102,103,164,144,148,212,77,188,186,215,46,216,105,204,7,94,156,33,28,39,215,221,2,250,225,43,16,25,249,236,244,216,14,68,97,231,67,82,171,195,130,20,97,166,126,195,106,167,24,167,216,51,19,35,124,180,191,38,116,201,79,16,74,69,59,245,155,122,133,138,133,161,89,105,21,42,42,179,90,213,197,63,11,245,83,114,143,200,227,246,44,10,157,60,225,214,149,212,22,195,195,71,58,14,132,192,228,178,20,214,30,193,33,200,76,153,3,236,80,178,162,223,225,114,71,139,82,217,200,247,20,96,98,124,247,80,73,41,54,102,62,16,168,3,43,103,181,212,5,113,176,44,73,33,72,155,161,41,164,127,151,244,206,226,13,51,180,244,22,168,34,207,135,206,80,189,33,98,238,208,45,144,48,223,95,90,5,235,128,202,49,22,36,113,207,198,210,211,214,18,60,14,30,3,239,49,187,139,78,156,142,95,197,89,248,59,227,140,170,168,114,50,244,170,86,105,137,238,18,64,52,208,247,203,6,199,162,184,225,33,177,128,199,249,160,184,130,235,187,196,217,204,152,116,155,208,158,252,105,139,34,52,205,187,177,127,201,103,143,124,186,132,235,86,44,236,27,173,148,54,116,166,47,218,171,0,177,249,238,242,59,202,107,30,92,87,25,173,4,225,241,19,231,43,41,99,55,70,230,163,64,162,251,33,71,182,211,127,37,167,159,163,225,95,210,1,110,150,15,228,188,204,74,190,250,204,195,79,203,131,191,77,172,193,147,193,140,246,150,248,101,45,169,158,229,73,70,214,217,57,44,236,63,102,171,117,77,185,9,10,218,220,155,128,29,232,32,232,28,186,215,195,160,194,174,241,9,79,192,190,66,238,179,63,120,55,6,214,133,213,136,93,91,21,177,33,6,179,255,14,56,160,170,58,57,2,222,133,114,50,137,221,62,194,42,125,116,185,10,212,16,172,63,124,58,215,127,103,239,160,245,190,161,73,170,247,120,242,43,99,18,142,198,222,187,77,18,236,84,66,148,32,243,161,117,174,64,225,5,70,227,182,251,231,84,80,191,164,110,72,70,140,122,38,1,144,252,39,59,170,38,149,60,219,19,242,31,56,8,109,60,178,123,219,5,161,223,31,82,199,115,2,142,167,71,57,109,239,20,16,197,235,23,38,233,99,128,94,64,90,195,231,61,54,60,234,178,108,31,135,219,133,135,134,181,141,230,46,43,235,231,94,21,208,199,21,182,155,88,85,59,219,8,63,111,201,107,77,161,62,239,251,46,177,6,216,63,111,221,156,106,92,89,130,211,128,4,29,79,26,78,86,16,197,81,107,250,148,161,41,121,211,241,200,178,189,135,31,202,205,46,163,75,76,124,149,170,175,172,134,115,56,225,3,55,212,106,101,22,156,132,24,84,220,112,233,76,86,44,229,15,152,146,187,184,34,117,114,69,237,127,163,243,157,124,11,38,90,136,41,11,38,155,31,130,167,227,235,72,17,173,143,46,175,52,207,66,32,118,98,182,136,208,118,50,236,19,72,217,38,86,99,230,187,88,253,20,227,155,19,226,40,3,117,108,42,116,250,152,90,187,178,65,33,104,3,8,0,9,254,97,163,30,212,88,145,245,97,125,63,108,70,149,47,217,209,195,80,134,255,53,181,118,131,50,148,80,142,119,233,17,72,144,31,26,127,247,167,201,219,149,8,167,109,150,113,157,209,52,91,103,173,223,251,119,82,152,69,85,16,245,75,153,185,27,187,254,143,50,244,174,204,98,55,116,25,143,47,93,187,148,243,141,107,68,176,248,137,137,129,61,112,6,97,122,114,223,233,73,79,90,188,44,124,127,244,200,122,45,148,141,212,133,230,129,14,79,202,105,183,49,152,3,144,144,48,252,136,83,122,41,22,29,204,118,126,208,100,230,224,122,159,108,219,209,237,169,15,130,18,111,60,249,205,16,110,117,207,219,194,122,39,30,48,85,151,183,174,197,82,191,29,218,113,110,21,55,127,25,77,225,146,223,251,228,87,226,239,116,119,27,220,190,110,130,123,121,254,199,193,105,19,169,212,100,94,20,145,92,193,142,120,209,73,19,58,200,158,173,176,133,250,181,97,183,177,74,100,231,248,115,8,92,245,200,13,224,3,166,206,204,131,175,142,32,36,192,119,251,74,6,225,20,118,255,115,248,161,184,110,167,7,72,122,232,110,48,222,72,191,225,38,208,150,204,74,229,143,124,168,5,179,103,137,238,213,80,96,45,59,49,102,169,100,196,58,84,18,235,215,227,51,226,225,11,130,206,11,222,115,222,147,155,152,245,43,2,190,122,160,158,144,61,150,134,70,252,158,65,209,17,140,58,11,98}, {173,33,236,19,184,89,99,208,237,30,201,125,81,20,86,132,65,15,246,236,78,36,255,212,107,250,152,31,143,94,27,157,228,153,193,73,43,219,234,108,116,17,94,143,9,98,176,80,188,8,87,85,53,98,206,41,121,225,167,148,147,149,7,23,231,162,4,143,204,121,228,255,245,219,116,128,139,200,54,61,165,150,225,34,157,129,174,191,186,124,154,250,116,248,136,202,65,251,74,134,62,59,23,248,234,21,19,125,205,90,222,170,135,0,107,27,246,118,222,123,175,215,127,200,148,30,75,41,118,20,213,14,231,142,94,201,7,162,36,8,214,52,185,128,21,82,126,168,109,95,208,208,169,190,205,143,182,87,7,101,227,224,51,113,8,9,191,195,69,77,51,80,105,205,63,220,11,180,151,10,177,44,142,252,119,72,77,43,78,141,18,245,231,75,130,124,252,122,209,176,133,29,249,228,229,26,39,59,140,82,157,36,179,224,53,133,111,63,174,85,157,238,82,122,26,193,29,120,107,87,96,168,49,245,77,210,66,99,180,71,36,60,69,27,25,215,93,219,40,44,118,118,252,197,186,64,12,138,222,75,160,61,102,173,32,37,221,152,84,31,36,37,180,239,105,172,39,86,193,199,58,197,140,188,16,39,226,120,134,176,236,105,147,16,129,240,89,246,241,51,205,40,182,103,4,33,130,154,197,198,154,178,19,226,203,11,149,184,46,113,68,200,247,247,5,212,15,57,184,47,221,35,153,3,96,5,224,57,236,157,242,231,157,59,171,103,13,254,216,227,138,46,86,72,44,24,220,43,125,205,142,181,210,36,166,179,79,29,75,204,187,31,96,236,148,142,25,219,223,238,131,25,64,96,72,72,200,40,4,180,101,208,46,173,14,60,20,217,80,235,70,129,117,106,28,177,27,98,92,192,41,79,219,230,197,34,95,215,108,121,160,172,14,21,13,184,199,31,161,255,208,114,49,254,105,49,126,158,192,60,124,149,206,217,88,197,165,67,187,231,144,239,38,54,173,91,183,239,240,8,116,252,179,20,39,204,52,86,13,185,196,133,99,64,137,166,104,148,177,46,24,148,11,164,182,250,30,114,45,130,114,109,31,98,93,18,20,64,108,173,242,146,148,181,51,81,8,182,141,37,99,208,27,247,59,13,178,220,175,93,106,180,91,91,241,86,111,138,164,177,72,192,179,214,166,64,158,48,150,136,5,51,24,229,250,189,235,150,106,82,144,209,238,29,176,71,236,187,84,212,64,228,22,214,189,250,22,210,126,252,180,152,238,125,145,43,103,41,222,139,114,125,199,131,238,89,47,158,48,247,37,134,170,250,208,130,63,175,95,161,0,52,164,147,136,70,46,53,152,168,97,178,189,182,80,119,221,130,217,200,179,88,240,176,249,83,41,199,107,183,24,240,95,194,230,53,140,63,242,39,186,156,64,194,23,239,130,120,225,221,0,246,58,47,227,88,63,234,84,133,106,212,171,223,157,246,14,48,88,45,162,191,3,204,48,134,156,110,177,154,236,104,200,58,62,31,138,58,12,168,88,191,33,245,135,228,91,80,238,173,232,72,155,111,205,80,9,122,179,172,49,63,248,111,98,92,138,116,174,189,12,213,147,106,116,32,22,6,106,179,90,59,178,11,105,234,29,191,11,40,74,242,63,181,40,22,76,109,14,240,107,60,213,94,103,43,32,112,139,244,242,118,96,188,35,69,219,230,201,160,167,64,117,144,210,40,29,192,49,212,9,192,236,146,234,88,114,137,115,175,181,187,131,49,108,98,27,187,225,7,106,247,54,169,76,199,176,67,116,108,164,33,92,34,127,247,100,180,242,237,223,94,206,247,85,178,164,155,171,150,75,224,67,193,233,17,91,36,144,62,56,10,237,51,113,200,59,170,221,173,111,251,182,95,31,49,221,187,210,24,24,211,39,153,220,184,127,10,14,112,171,203,208,144,53,107,115,22,215,241,10,98,204,183,232,202,60,195,106,71,134,217,105,175,39,57,60,249,191,188,107,196,133,127,186,56,76,64,152,168,219,42,212,147,54,93,108,223,160,246,67,2,199,102,223,238,150,183,36,238,182,247,125,16,136,128,162,0,149,81,119,15,94,161,191,57,142,147,108,72,105,182,246,93,75,230,79,62,153,51,42,75,169,60,91,202,56,224,82,198,154,232,165,230,143,210,200,252,156,230,203,104,30,7,48,95,125,110,198,114,25,151,167,128,75,95,39,52,48,188,250,228,189,239,76,58,43,182,71,182,223,247,18,0,81,4,226,226,83,223,3,99,215,58,74,137,107,155,248,199,28,141,129,243,68,112,93,167,198,135,201,87,97,241,97,122,99,103,50,122,146,84,152,16,233,146,225,216,230,179,234,209,37,201,19,40,118,141,30,186,6,210,73,3,88,97,27,21,176,247,103,42,36,230,226,156,254,44,104,221,125,130,42,101,14,130,157,88,132,145,212,11,223,152,124,219,199,8,215,61,187,129,207,231,153,96,51,155,154,55,108,113,3,32,218,7,109,68,100,126,252,254,7,13,242,51,44,44,30,67,198,48,172,148,93,246,136,71,105,246,39,201,184,177,208,9,12,93,11,156,204,93,5,45,154,116,125,184,55,142,23,207,171,171,114,144,49,170,123,62,193,217,217,40,68,95,156,40,217,134,174,94,225,205,37,122,241,229,121,197,107,153,188,180,251,56,225,178,89,54,7,114,136,161,106,211,191,81,185,192,204,16,167,49,24,59,153,35,96,38,51,236,239,32,133,51,138,216,248,98,129,230,140,30,55,68,120,142,47,176,29,54,194,47,182,108,2,111,254,239,236,47,23,174,233,64,203,133,122,73,245,33,135,231,104,133,90,153,83,178,139,126,64,125,219,252,75,146,0,157,14,160,233,54,231,59,19,193,217,106,112,176,50,202,121,251,230,25,102,138,125,59,158,234,124,94,189,15,61,127,215,175,187,116,142,22,117,93,233,37,48,33,52,235,95,161,66,72,48,35,120,21,71,28,96,214,169,112,41,190,113,58,69,201,115,86,112,163,70,198,224,79,198,181,160,198,53,116,80,236,155,14,90,234,54,135,185,83,253,64,95,166,169,32,32,198,48,237,62,220,63,80,213,190,11,59,157,27,79,242,250,123,122,94,90,219,232,156,67,13,8,20,56,203,179,210,223,39,24,75,194,126,78}, } ; static void test_decode_1013x2393_impl(long long impl) { unsigned char *x = test_decode_1013x2393_x; unsigned char *s = test_decode_1013x2393_s; unsigned char *x2 = test_decode_1013x2393_x2; unsigned char *s2 = test_decode_1013x2393_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1013x2393_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013x2393(impl); printf("decode_1013x2393 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013x2393_implementation(impl),ntruprime_dispatch_decode_1013x2393_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013x2393; printf("decode_1013x2393 selected implementation %s compiler %s\n",ntruprime_decode_1013x2393_implementation(),ntruprime_decode_1013x2393_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1013x2393_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1013x2393_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1013x2393_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1013x2393_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1013x2393_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1013x2393_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1013x2393(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013x2393")) return; storage_decode_1013x2393_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1013x2393_x = aligned(storage_decode_1013x2393_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1013x2393_s = callocplus(crypto_decode_STRBYTES); test_decode_1013x2393_s = aligned(storage_decode_1013x2393_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1013x2393_x2 = callocplus(maxalloc); test_decode_1013x2393_x2 = aligned(storage_decode_1013x2393_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1013x2393_s2 = callocplus(maxalloc); test_decode_1013x2393_s2 = aligned(storage_decode_1013x2393_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1013x2393 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013x2393();++impl) forked(test_decode_1013x2393_impl,impl); ++test_decode_1013x2393_x; ++test_decode_1013x2393_s; ++test_decode_1013x2393_x2; ++test_decode_1013x2393_s2; } free(storage_decode_1013x2393_s2); free(storage_decode_1013x2393_x2); free(storage_decode_1013x2393_s); free(storage_decode_1013x2393_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1013x3.c0000644000000000000000000004451114705505543022204 0ustar rootroot/* ----- decode/1013x3, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1013x3_checksums[] = { "bc9fe48234596542962f8de47a4ef3ac45a2dc7d7a6e5a7e74ec9de0ca296c38", "e7e3dae8e40abaf6707c25588855e328d51070ee697ec212aa4f1a4883f8f5de", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1013x3_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1013x3_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1013x3_ITEMBYTES static void *storage_decode_1013x3_x; static unsigned char *test_decode_1013x3_x; static void *storage_decode_1013x3_s; static unsigned char *test_decode_1013x3_s; static void *storage_decode_1013x3_x2; static unsigned char *test_decode_1013x3_x2; static void *storage_decode_1013x3_s2; static unsigned char *test_decode_1013x3_s2; #define precomputed_decode_1013x3_NUM 4 static const unsigned char precomputed_decode_1013x3_x[precomputed_decode_1013x3_NUM][crypto_decode_ITEMS] = { {0,2,-1,2,2,1,2,1,0,2,1,2,-1,-1,-1,0,-1,-1,0,-1,2,0,1,-1,2,2,-1,2,-1,2,1,2,2,2,0,1,2,1,-1,1,-1,2,0,0,1,1,2,2,2,2,0,-1,1,-1,2,0,-1,0,0,1,0,0,2,0,-1,0,0,0,0,2,1,-1,0,1,1,2,1,2,2,2,2,-1,0,1,-1,1,-1,0,-1,-1,1,-1,-1,1,0,1,-1,-1,0,-1,2,0,-1,0,0,1,1,1,2,0,1,0,1,0,-1,2,2,1,2,1,2,2,0,1,-1,1,-1,2,0,0,2,-1,-1,2,2,0,0,0,2,1,-1,1,2,2,2,-1,-1,0,0,0,2,-1,1,0,1,1,0,-1,2,0,-1,2,0,-1,1,0,0,0,-1,-1,2,0,2,1,2,-1,0,1,0,0,-1,0,0,1,0,0,-1,0,1,-1,0,0,-1,0,1,2,-1,1,-1,2,2,2,2,0,2,2,-1,-1,2,1,2,1,0,1,2,-1,2,0,0,0,1,2,2,0,0,2,-1,-1,2,1,-1,2,0,1,1,2,-1,0,-1,2,2,0,1,2,-1,-1,1,-1,-1,2,0,0,1,0,0,0,1,0,-1,-1,2,2,-1,0,0,0,1,2,2,2,0,0,-1,2,0,1,2,-1,1,0,1,0,0,1,-1,1,1,1,0,1,0,2,-1,2,2,1,1,1,2,1,2,1,-1,0,0,0,-1,2,2,0,1,1,-1,2,2,-1,0,0,1,0,-1,-1,-1,2,0,2,0,0,2,0,1,1,-1,-1,-1,1,1,-1,0,2,1,2,2,0,2,-1,0,0,-1,0,1,-1,-1,-1,2,2,-1,-1,1,-1,1,-1,0,-1,2,1,2,-1,0,0,1,1,-1,2,0,1,0,0,-1,0,-1,0,2,1,1,2,2,2,1,-1,0,0,0,2,-1,-1,1,-1,2,0,2,0,2,-1,-1,1,2,1,2,-1,1,1,-1,0,2,2,2,-1,-1,1,0,1,0,0,0,2,2,2,0,-1,-1,2,1,2,1,2,-1,0,-1,-1,0,-1,0,-1,-1,-1,2,1,2,0,1,2,1,0,-1,2,-1,1,0,1,1,-1,-1,-1,1,0,2,2,0,1,1,0,0,0,1,2,2,0,1,-1,2,2,-1,1,0,1,1,-1,1,0,1,-1,-1,1,0,0,2,0,1,0,2,0,0,-1,1,0,2,-1,0,2,0,0,-1,2,2,1,2,2,1,2,0,2,-1,0,0,-1,-1,2,-1,-1,2,2,0,-1,1,1,1,0,-1,1,0,2,-1,1,0,0,0,1,0,2,2,2,-1,0,2,1,1,0,2,-1,0,0,2,2,0,1,-1,0,2,1,1,1,0,-1,0,0,2,1,-1,1,2,1,0,2,-1,0,1,2,1,1,1,2,-1,-1,-1,0,-1,-1,-1,2,1,1,2,-1,0,2,-1,2,2,0,2,1,2,2,1,-1,2,-1,2,0,-1,2,2,0,1,-1,1,-1,-1,0,2,-1,1,0,1,0,-1,0,2,1,-1,2,2,2,-1,2,2,-1,-1,2,-1,-1,-1,-1,2,0,1,1,2,-1,1,2,-1,2,1,1,0,1,1,-1,1,-1,1,0,2,1,-1,-1,-1,0,-1,-1,2,0,2,-1,1,-1,-1,1,-1,2,1,-1,-1,1,2,1,1,-1,0,1,1,2,1,2,-1,-1,-1,1,2,1,1,-1,0,-1,2,1,-1,0,2,-1,-1,2,1,0,0,0,-1,0,0,1,0,0,1,0,1,1,1,0,-1,1,0,-1,2,-1,1,2,1,-1,2,2,0,-1,2,0,-1,-1,2,2,0,0,0,0,2,2,2,1,-1,2,2,2,2,2,0,1,1,-1,0,-1,1,2,0,-1,1,1,1,0,2,0,2,2,0,2,1,0,0,1,0,2,0,1,0,-1,2,1,2,2,0,2,-1,0,0,-1,0,2,-1,0,-1,0,0,1,-1,1,0,2,1,2,2,1,-1,-1,-1,2,-1,0,0,2,0,1,0,-1,-1,2,1,2,1,-1,2,1,1,0,-1,0,2,2,-1,0,-1,1,0,0,-1,-1,0,2,0,0,-1,-1,-1,0,-1,0,2,-1,0,2,0,0,2,0,2,1,0,1,2,-1,0,2,2,-1,1,0,-1,0,0,-1,0,1,2,1,2,2,2,1,-1,-1,-1,1,0,-1,2,-1,2,0,-1,0,2,0,1,0,2,1,1,-1,0,-1,0,1,0,0,2,0,-1,2,2,0,1,0,2,2,2,2,2,1,2,-1,-1,-1,1,2,1,0,1,2,0,-1,-1,-1,0,2,0,2,2,-1,-1,0,0,2,-1,0,0,1,2,2,2,1,0,0,2,0,0,0,-1,2,0,2,1,2,-1,0,1,1,0,-1,0,0,2,-1,0,0,1,-1,1,-1,2,1,0,1,2,2,0}, {0,-1,2,2,0,-1,0,0,-1,-1,1,0,2,1,1,1,2,0,-1,-1,1,0,0,2,-1,2,-1,0,2,-1,-1,-1,-1,1,0,-1,0,1,0,1,2,-1,-1,-1,0,2,-1,-1,2,0,1,0,1,0,1,0,-1,2,-1,-1,0,1,-1,2,0,2,1,0,1,1,0,-1,-1,1,-1,0,2,0,2,2,2,0,1,1,-1,1,-1,2,1,0,-1,0,2,1,2,2,2,-1,-1,0,0,0,2,2,2,2,1,0,0,0,2,0,-1,0,0,-1,0,-1,0,1,1,1,0,-1,0,0,-1,0,0,2,1,-1,2,2,0,1,0,-1,-1,0,2,2,1,-1,1,0,-1,2,2,0,-1,0,0,1,1,0,2,-1,0,0,2,0,1,2,-1,1,1,2,2,-1,-1,-1,0,2,-1,2,0,-1,2,0,-1,0,-1,2,0,0,-1,1,0,-1,2,1,-1,0,2,-1,1,2,1,2,-1,-1,-1,1,-1,1,-1,0,-1,0,-1,0,-1,-1,2,-1,0,1,-1,0,-1,-1,0,-1,-1,0,0,0,0,1,1,2,1,1,0,0,2,0,0,2,-1,1,2,2,-1,1,2,0,0,-1,-1,0,1,-1,-1,-1,1,1,0,-1,0,2,2,1,-1,-1,-1,2,2,2,-1,1,1,0,0,1,0,0,1,2,1,2,2,-1,1,-1,-1,-1,2,-1,0,0,2,-1,-1,2,1,1,0,2,1,0,-1,1,2,0,2,2,1,1,2,0,-1,1,0,2,0,-1,-1,0,1,0,2,0,1,-1,2,-1,2,2,0,0,2,-1,2,-1,-1,0,2,-1,2,-1,-1,-1,0,-1,2,1,2,2,2,0,1,-1,2,1,1,-1,-1,-1,-1,2,1,2,1,-1,0,1,0,2,1,1,1,-1,-1,0,1,1,-1,0,-1,1,-1,2,2,2,2,-1,1,0,1,0,1,2,1,-1,1,1,-1,2,-1,2,2,2,1,2,0,2,-1,1,1,1,-1,2,0,-1,0,1,1,0,-1,2,1,0,2,0,0,0,-1,-1,2,-1,2,0,0,1,-1,0,0,2,0,2,1,2,0,0,-1,0,0,1,1,2,2,-1,2,0,2,-1,0,-1,0,-1,1,1,-1,-1,1,2,-1,1,0,-1,1,1,-1,2,1,-1,-1,2,2,2,1,-1,2,1,2,1,1,2,2,1,1,-1,1,-1,2,-1,1,0,-1,0,0,0,-1,0,2,0,0,1,0,-1,-1,1,2,-1,0,1,-1,1,2,2,2,2,0,2,2,0,-1,-1,0,1,-1,-1,-1,-1,0,0,2,2,0,1,1,1,1,1,-1,0,0,-1,1,0,2,-1,1,1,2,1,1,1,0,-1,-1,1,1,-1,1,-1,1,-1,1,0,-1,-1,0,2,0,2,0,2,1,1,2,0,-1,2,2,1,-1,0,0,-1,-1,2,2,2,0,2,2,0,2,2,-1,2,-1,-1,2,1,1,1,2,1,1,0,1,0,2,0,0,0,-1,2,1,1,2,2,0,1,0,2,0,-1,-1,1,1,-1,-1,0,0,-1,-1,-1,-1,0,1,0,2,2,-1,0,-1,2,1,2,2,1,0,0,2,2,2,1,-1,0,-1,-1,1,0,1,-1,-1,0,1,2,1,-1,2,2,0,2,-1,1,1,-1,-1,2,2,-1,0,1,0,0,1,2,1,-1,2,1,1,-1,-1,1,2,1,0,2,2,1,-1,1,2,2,2,0,-1,2,2,2,0,0,2,1,0,0,2,1,1,1,1,1,-1,1,1,0,2,-1,-1,2,-1,1,2,0,1,2,2,2,2,-1,0,-1,-1,0,1,2,-1,0,0,0,1,0,1,1,-1,-1,0,-1,0,0,-1,0,1,0,-1,0,-1,2,0,0,0,1,-1,-1,2,2,-1,0,0,0,0,-1,1,1,0,2,2,-1,2,-1,2,-1,1,2,1,0,1,1,0,1,-1,-1,1,1,2,1,-1,0,0,1,1,2,2,-1,-1,1,1,2,1,2,-1,2,0,-1,2,-1,2,0,2,2,0,-1,0,1,1,0,1,-1,2,1,0,1,1,0,-1,1,0,1,0,0,-1,1,-1,2,1,2,0,-1,1,2,-1,0,2,-1,2,1,2,-1,2,2,2,2,0,2,1,0,-1,1,1,0,-1,2,-1,-1,1,0,1,-1,-1,1,0,-1,1,0,0,1,-1,-1,1,-1,-1,-1,-1,1,0,2,-1,0,0,-1,1,1,0,2,2,2,-1,2,-1,2,-1,-1,0,1,2,0,1,2,2,-1,0,2,0,-1,2,-1,2,1,0,1,2,2,2,2,0,2,0,1,0,0,-1,2,0,2,0,1,-1,-1,0,-1,-1,1,0,-1,2,-1,2,2,-1,1,2,0,1,-1,-1,0,0,0,-1,0,-1,2,0,0,-1,0,-1,1,-1,-1,2,1,-1,1,-1,1,2,-1,-1,0,-1,1,-1,2,2}, {-1,1,2,-1,-1,-1,2,0,0,-1,-1,0,1,-1,1,-1,0,-1,-1,2,1,-1,2,0,0,2,0,0,-1,2,1,1,-1,0,0,2,0,2,2,1,1,1,0,2,0,1,2,-1,0,2,2,1,2,0,2,1,0,-1,0,-1,-1,0,1,2,2,2,1,0,1,1,2,-1,1,2,2,2,-1,-1,2,1,2,1,-1,1,-1,0,1,0,0,2,0,2,2,2,0,0,-1,2,2,-1,-1,-1,2,-1,0,2,1,1,-1,-1,1,-1,-1,1,1,0,2,-1,2,1,-1,1,0,-1,1,2,0,0,2,2,2,0,2,0,2,-1,1,1,1,1,-1,1,0,1,0,0,1,-1,1,1,2,2,1,-1,-1,2,2,-1,-1,-1,1,1,1,-1,0,-1,1,2,2,-1,-1,-1,2,0,0,0,1,-1,2,0,-1,1,-1,0,1,1,-1,-1,0,-1,1,-1,0,0,2,0,-1,-1,2,-1,0,-1,0,-1,-1,2,0,-1,-1,0,-1,1,1,-1,0,2,1,1,0,-1,2,1,-1,2,0,-1,2,0,1,-1,0,-1,1,2,2,2,1,2,-1,0,-1,-1,1,-1,2,2,1,0,1,-1,1,2,2,2,1,1,2,-1,0,-1,1,-1,2,2,0,2,0,-1,-1,1,0,1,2,1,0,1,2,2,-1,2,0,0,0,1,2,2,0,2,0,-1,2,2,2,0,0,2,2,0,2,-1,2,2,0,-1,0,2,2,0,1,1,-1,0,-1,1,1,2,1,0,1,-1,1,2,2,0,2,-1,0,0,-1,0,1,-1,-1,-1,-1,0,-1,2,-1,2,0,0,1,2,1,1,1,1,2,0,1,-1,-1,1,0,0,-1,1,-1,1,2,2,-1,2,0,0,-1,1,0,0,-1,2,-1,-1,0,0,1,-1,2,1,0,2,2,2,2,1,1,0,1,-1,0,-1,1,2,-1,2,2,0,1,2,-1,0,-1,2,-1,2,0,0,2,0,-1,1,-1,2,-1,1,-1,2,-1,2,2,0,-1,1,-1,1,-1,2,-1,-1,-1,0,0,2,-1,-1,0,0,-1,2,1,1,1,1,2,-1,1,1,0,1,1,2,2,-1,2,1,0,2,2,-1,2,0,-1,2,2,1,0,-1,1,0,2,2,-1,2,0,-1,0,-1,-1,2,1,0,0,0,-1,-1,2,-1,1,1,0,0,1,-1,-1,1,1,-1,1,-1,1,2,1,0,2,2,2,2,-1,-1,2,2,1,-1,1,2,1,-1,2,1,-1,1,2,0,0,1,-1,1,-1,-1,1,-1,2,2,-1,2,2,0,0,-1,-1,0,1,-1,2,2,1,-1,0,2,0,1,0,1,0,-1,2,2,-1,1,0,1,1,2,0,0,-1,1,0,2,2,0,2,2,0,1,-1,-1,2,-1,0,0,-1,1,2,2,-1,2,-1,2,-1,0,2,-1,1,-1,-1,0,2,0,2,0,2,-1,-1,-1,-1,1,-1,1,-1,-1,1,0,1,1,0,0,-1,-1,1,2,2,1,1,-1,2,0,1,0,-1,1,1,-1,0,1,2,1,0,0,-1,0,0,1,1,2,0,-1,0,2,0,-1,0,0,-1,-1,-1,1,2,-1,-1,1,2,0,1,2,-1,2,1,2,2,2,2,2,-1,0,2,1,1,1,-1,-1,1,2,-1,0,2,-1,-1,-1,-1,1,-1,1,2,1,2,0,0,1,0,0,0,0,2,1,2,2,2,2,0,0,-1,1,1,-1,2,-1,0,1,0,2,2,-1,0,-1,2,1,1,2,-1,1,2,-1,2,2,-1,2,-1,-1,-1,1,2,0,-1,1,-1,2,2,2,2,0,0,2,2,2,2,2,2,2,0,0,0,0,2,-1,0,2,1,2,-1,0,-1,2,1,-1,2,0,-1,2,2,1,-1,0,2,0,-1,1,-1,0,1,-1,2,2,1,-1,-1,2,1,0,0,2,0,1,1,-1,2,0,0,2,1,1,1,2,0,2,2,-1,-1,0,2,2,0,1,2,1,2,0,2,2,2,0,2,0,1,1,0,2,-1,1,2,1,1,-1,2,0,-1,2,0,0,-1,2,0,1,2,2,-1,-1,2,2,2,-1,2,1,0,1,1,1,-1,1,2,2,1,0,2,-1,1,1,-1,-1,2,2,2,0,2,0,-1,2,-1,0,-1,0,1,0,0,2,0,1,1,-1,1,1,-1,0,0,2,1,2,-1,-1,0,2,0,-1,1,0,-1,0,2,0,2,0,-1,1,2,1,-1,2,2,0,-1,2,-1,2,0,2,2,-1,2,-1,2,-1,-1,-1,-1,1,2,1,0,0,2,2,1,0,0,2,-1,2,-1,-1,2,2,1,-1,2,2,2,-1,-1,2,0,1,2,2,2,1,-1,0,-1,0,2,2,-1,-1,1,0,0,1,0,0,1,0,-1,2,2,2,1,-1,1,2,2,-1,2,2,-1,-1,1,-1,1,2,0,2,-1}, {2,1,0,2,-1,2,1,0,2,2,0,1,1,0,-1,2,1,-1,-1,0,0,2,2,1,1,-1,-1,0,1,0,-1,1,-1,-1,-1,1,0,-1,1,-1,0,-1,-1,-1,1,-1,-1,2,0,2,2,2,0,0,1,0,2,2,1,2,1,0,0,1,1,0,2,1,0,-1,2,0,2,0,2,-1,-1,-1,2,2,1,-1,1,-1,-1,2,1,-1,2,-1,2,2,1,0,1,0,0,2,-1,-1,-1,0,0,2,1,0,-1,1,0,2,0,2,2,2,1,0,2,2,2,-1,2,1,1,1,-1,0,2,-1,2,1,-1,2,0,-1,-1,0,-1,-1,2,1,1,2,-1,0,0,-1,1,2,2,2,-1,1,0,2,0,0,0,-1,-1,2,-1,0,-1,0,0,0,-1,-1,2,1,-1,-1,2,-1,-1,0,1,1,0,2,2,2,0,2,2,-1,2,-1,1,-1,0,0,0,2,-1,1,0,2,2,-1,2,2,-1,0,-1,0,2,2,0,-1,-1,2,1,-1,-1,1,-1,2,1,1,-1,-1,2,2,0,2,-1,2,1,0,0,0,0,2,0,-1,2,0,2,2,-1,1,-1,0,-1,2,1,2,0,2,1,1,1,2,2,2,1,2,2,0,1,0,2,1,0,1,-1,1,0,0,2,2,0,0,-1,1,1,-1,-1,-1,-1,2,0,0,-1,0,-1,0,-1,-1,-1,1,-1,0,2,0,-1,0,0,0,1,-1,-1,1,0,2,2,2,1,-1,1,2,-1,-1,0,0,0,-1,1,1,0,0,1,2,-1,-1,0,2,1,0,1,1,1,0,0,1,0,-1,1,1,-1,-1,0,-1,-1,-1,2,1,1,-1,1,1,0,-1,2,1,1,-1,0,1,-1,1,-1,1,0,1,2,-1,1,-1,0,-1,-1,0,0,-1,1,-1,-1,2,1,-1,2,-1,0,-1,-1,1,1,2,1,-1,2,2,0,2,2,1,0,1,2,-1,-1,2,2,-1,1,1,-1,0,2,1,1,0,-1,1,1,2,1,-1,2,-1,2,1,1,2,2,0,0,-1,-1,0,2,0,0,0,1,2,1,0,0,0,2,-1,2,-1,-1,2,-1,0,1,-1,2,2,0,2,0,-1,2,-1,-1,0,2,1,0,-1,-1,0,2,2,1,2,1,1,2,2,2,1,1,0,1,2,1,-1,0,-1,2,0,1,0,1,0,1,2,1,0,1,2,-1,1,1,1,2,-1,1,2,0,0,2,-1,0,2,-1,2,2,2,0,2,2,-1,-1,1,2,1,1,1,-1,-1,0,-1,-1,-1,-1,1,-1,0,1,2,2,1,-1,2,1,2,2,2,-1,2,2,0,0,0,0,0,-1,1,1,0,2,0,0,1,-1,-1,1,1,-1,2,0,0,2,-1,-1,1,2,2,1,2,-1,2,1,-1,2,1,2,0,2,1,1,1,1,-1,0,2,-1,2,-1,2,-1,1,1,0,-1,0,0,-1,2,2,1,2,-1,1,1,-1,1,1,1,2,2,0,2,0,-1,-1,0,0,2,-1,-1,2,-1,-1,-1,-1,-1,2,2,0,0,1,1,0,1,0,-1,2,2,1,1,2,2,0,-1,2,2,-1,2,2,2,1,0,1,0,0,1,-1,0,1,-1,0,1,2,2,-1,0,2,-1,1,2,-1,0,2,1,1,1,1,1,0,0,1,-1,2,1,2,-1,1,2,1,2,1,0,0,-1,0,1,1,2,2,1,1,1,2,-1,1,-1,2,1,1,-1,1,-1,2,0,2,1,1,0,1,0,1,-1,-1,-1,-1,-1,0,0,0,-1,0,-1,2,-1,1,-1,1,0,1,2,0,2,2,2,0,2,1,0,1,0,1,0,-1,-1,-1,1,-1,-1,2,0,0,-1,0,-1,-1,-1,-1,1,2,-1,2,-1,-1,2,0,2,1,0,-1,-1,2,0,1,0,2,-1,1,2,2,2,0,2,2,2,2,0,-1,1,1,1,-1,-1,1,0,2,-1,1,-1,2,2,1,2,-1,-1,2,0,0,0,0,0,-1,2,-1,-1,1,-1,2,0,-1,0,0,2,1,-1,1,2,0,-1,1,-1,-1,2,0,0,-1,1,2,-1,2,-1,0,0,-1,-1,1,2,1,1,1,0,0,2,1,2,0,1,1,0,-1,-1,-1,1,0,0,0,1,1,1,1,-1,-1,0,-1,1,2,2,0,2,0,1,2,1,-1,1,1,1,1,-1,-1,0,-1,2,-1,0,0,0,1,0,1,1,1,1,1,-1,1,2,0,-1,-1,2,2,2,-1,1,-1,-1,2,2,0,2,1,1,2,0,0,-1,-1,0,0,2,-1,1,1,2,2,-1,-1,0,-1,0,1,1,2,2,1,0,-1,1,0,0,-1,1,1,1,2,1,-1,-1,1,2,1,0,-1,1,2,2,0,1,2,-1,-1,1,2,1,0,0,1,-1,2,2,-1,0,0,0,2,2,1,0,1,2,0,-1,2,1}, } ; static const unsigned char precomputed_decode_1013x3_s[precomputed_decode_1013x3_NUM][crypto_decode_STRBYTES] = { {205,187,237,64,16,39,207,236,159,139,92,250,31,114,148,117,84,45,233,254,147,72,32,152,16,71,169,103,198,187,159,200,53,124,181,248,67,53,166,113,28,86,112,59,89,148,69,82,228,200,127,15,187,57,87,126,13,203,233,196,231,32,92,86,6,79,229,95,156,99,150,168,217,188,186,75,197,167,60,101,192,93,167,128,210,126,83,36,240,32,18,59,165,156,69,180,254,82,13,114,55,184,163,244,131,89,253,193,238,4,17,176,231,198,152,2,246,105,229,39,143,41,38,88,103,23,54,93,188,239,77,193,240,161,134,141,149,253,180,54,245,73,171,81,139,219,228,234,64,192,58,205,183,47,115,124,34,52,102,180,252,60,12,112,58,206,154,34,182,64,112,35,200,130,43,233,14,184,18,75,195,86,148,101,106,24,227,242,113,240,85,191,252,159,18,30,106,247,109,217,25,251,77,209,68,137,237,11,76,157,193,46,107,244,132,5,93,64,52,93,183,57,61,70,145,251,11,24,115,116,182,18,89,199,103,255,59,224,230,1,221,67,77,249,91,87,220,78,26,53,37,178,249,161}, {241,81,96,171,7,214,76,3,24,153,3,13,103,102,12,201,109,26,72,247,167,200,70,251,67,245,111,117,20,145,26,69,45,159,65,47,198,71,105,83,231,232,3,205,113,196,133,177,52,238,128,72,68,48,73,16,84,233,90,215,248,120,65,2,26,189,192,143,150,229,62,2,83,195,218,134,247,122,216,65,118,50,95,51,52,3,177,127,178,2,236,146,173,66,74,200,63,102,46,202,252,222,168,28,105,108,87,48,151,212,237,69,233,115,19,161,224,24,202,194,47,187,190,34,99,84,116,25,56,137,255,125,144,0,245,169,74,97,163,171,129,34,98,208,221,122,188,20,252,125,207,176,186,102,87,172,159,29,40,20,64,246,196,190,245,75,96,66,46,223,40,60,89,46,43,184,189,248,199,95,91,171,138,54,140,231,63,65,78,101,10,81,100,196,149,240,84,161,61,51,110,154,160,75,233,131,238,28,115,31,105,178,105,152,133,236,225,52,59,255,109,104,12,38,24,150,32,128,77,161,253,204,144,231,211,49,155,255,157,197,157,16,24,243,120,66,69,92,132,176,136,67,200,119}, {56,112,65,34,193,114,93,172,212,189,218,57,189,183,17,228,111,58,254,176,139,100,221,95,60,48,173,32,104,179,24,94,127,55,170,152,37,250,194,3,42,225,3,87,114,72,10,33,117,48,17,28,132,210,26,203,113,18,254,78,32,111,226,175,19,242,29,152,155,207,149,223,241,215,55,31,125,74,232,38,126,83,36,64,204,229,170,39,88,136,207,133,197,80,178,253,107,18,206,231,196,92,135,140,204,135,200,64,13,197,170,163,233,179,61,199,27,246,28,193,86,48,90,130,34,110,255,240,226,178,120,137,32,207,23,36,47,157,25,143,233,133,125,159,48,133,207,76,35,116,55,128,8,166,5,190,114,134,146,91,148,30,29,5,56,120,206,254,79,171,224,52,128,184,151,85,251,95,40,147,61,177,142,243,12,120,200,127,253,255,85,211,78,44,199,75,135,36,47,108,157,114,173,222,67,159,123,127,167,141,43,199,197,249,240,179,169,248,54,10,127,199,68,214,41,74,237,208,97,116,135,203,199,220,51,3,184,245,214,12,47,63,156,191,68,15,150,101,252,226,243,32,222,128}, {219,108,159,198,66,189,66,134,128,33,1,194,253,101,239,150,182,113,55,240,34,44,243,102,13,212,134,221,111,63,171,52,203,65,176,78,225,143,93,193,68,5,11,67,218,223,51,82,141,61,79,244,193,130,172,240,205,86,29,247,72,236,173,254,126,182,137,245,133,2,92,68,128,116,84,130,253,226,80,161,229,208,166,150,161,16,176,162,177,146,136,57,18,20,194,50,129,46,223,155,195,163,180,134,46,179,126,65,87,110,53,195,36,223,49,180,65,239,250,107,46,113,102,110,142,58,94,211,252,61,184,10,1,72,190,236,207,87,133,118,9,202,53,248,206,178,183,42,205,140,70,241,142,162,126,7,53,12,192,151,102,188,126,60,191,89,146,228,211,56,173,106,201,142,187,69,250,234,200,138,220,154,9,64,69,140,152,247,183,153,1,194,69,0,206,112,27,156,141,127,255,161,130,141,188,195,85,49,200,81,139,135,112,225,76,129,171,181,167,1,86,170,16,126,231,162,10,49,149,169,138,7,63,194,183,94,80,163,15,145,190,97,161,46,184,225,231,224,150,60,213,155,199,38}, } ; static void test_decode_1013x3_impl(long long impl) { unsigned char *x = test_decode_1013x3_x; unsigned char *s = test_decode_1013x3_s; unsigned char *x2 = test_decode_1013x3_x2; unsigned char *s2 = test_decode_1013x3_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1013x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013x3(impl); printf("decode_1013x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013x3_implementation(impl),ntruprime_dispatch_decode_1013x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013x3; printf("decode_1013x3 selected implementation %s compiler %s\n",ntruprime_decode_1013x3_implementation(),ntruprime_decode_1013x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1013x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1013x3_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1013x3_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1013x3_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1013x3_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1013x3_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1013x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013x3")) return; storage_decode_1013x3_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1013x3_x = aligned(storage_decode_1013x3_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1013x3_s = callocplus(crypto_decode_STRBYTES); test_decode_1013x3_s = aligned(storage_decode_1013x3_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1013x3_x2 = callocplus(maxalloc); test_decode_1013x3_x2 = aligned(storage_decode_1013x3_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1013x3_s2 = callocplus(maxalloc); test_decode_1013x3_s2 = aligned(storage_decode_1013x3_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1013x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013x3();++impl) forked(test_decode_1013x3_impl,impl); ++test_decode_1013x3_x; ++test_decode_1013x3_s; ++test_decode_1013x3_x2; ++test_decode_1013x3_s2; } free(storage_decode_1013x3_s2); free(storage_decode_1013x3_x2); free(storage_decode_1013x3_s); free(storage_decode_1013x3_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1013x7177.c0000644000000000000000000014220214705505543022443 0ustar rootroot/* ----- decode/1013x7177, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1013x7177_checksums[] = { "4fd0bd0a87df97ccb7d348b0ab91826cf1dfea84d6853817d4e75dae12cb3b44", "2a15b4ce79e1c074b085bd7abf71de7083fba0503d4ac06d10498fe965a26a10", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1013x7177_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1013x7177_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1013x7177_ITEMBYTES static void *storage_decode_1013x7177_x; static unsigned char *test_decode_1013x7177_x; static void *storage_decode_1013x7177_s; static unsigned char *test_decode_1013x7177_s; static void *storage_decode_1013x7177_x2; static unsigned char *test_decode_1013x7177_x2; static void *storage_decode_1013x7177_s2; static unsigned char *test_decode_1013x7177_s2; #define precomputed_decode_1013x7177_NUM 4 static const int16_t precomputed_decode_1013x7177_x[precomputed_decode_1013x7177_NUM][crypto_decode_ITEMS] = { {2825,-1005,-840,3147,-935,2079,-449,-3403,-2963,-3256,2296,192,3122,1233,-172,-595,-54,90,-1076,-2726,-3220,1945,970,-2268,-1716,-3416,950,-2251,-2188,2407,-1123,-368,-1433,-3363,3478,369,-305,1947,-172,1560,-507,189,165,863,2652,-1064,-225,2448,730,-1191,-1867,-1559,3344,2457,2153,-2200,1064,-552,1268,-3443,2187,-2092,-438,-3163,28,-3478,1884,-2699,-562,-1313,2904,1227,1046,1909,2442,2411,1439,-681,-2883,-1358,-2762,2660,-3570,-52,-1786,2005,-246,376,-3422,3158,-1133,543,3015,-2637,-3168,1712,1778,-2705,2795,-3235,2976,-2977,-1484,3156,-1494,-1081,-1695,-1949,2833,-2172,2983,-2130,-1493,-2288,2520,-894,1129,1849,-700,-2498,2559,2212,-3501,-1185,2682,886,-255,-748,-3552,1277,-467,-3241,-1876,2214,2324,3420,-221,2583,2351,2096,-1398,1250,-497,-244,-3272,-675,1049,-3507,-2542,998,-3402,667,2203,2697,-1131,2976,1396,185,2980,-1107,-2397,-3500,2730,-1572,2090,-1890,-505,2469,-3159,-1678,2465,-1320,-2842,-1898,-1071,-2383,-589,-1079,2750,-688,2962,1609,-606,-1580,1167,-1498,-610,228,2584,-1301,-795,-1517,1346,-2747,2304,2733,-3397,2706,-1376,1982,-2643,75,-2593,-3466,-2455,234,1958,470,1306,3028,-702,-3416,2328,-2144,369,833,-2613,-2984,612,-616,2293,-2015,-52,-2133,3374,1517,-238,-1350,-1377,-2509,326,-2623,1847,-2162,2306,-3521,3016,-636,1598,-1676,3394,-3427,-3564,1601,191,-1115,-2351,-876,-3549,-1781,3542,1022,1453,2320,-1680,1556,133,-454,-1220,226,-2013,3483,987,-2267,-3422,-1951,2714,-2716,-3485,453,2393,3448,3426,668,1859,1272,437,1870,1676,1594,-2016,2422,811,1477,2908,-1118,1746,2707,567,-1222,3518,-2613,-1122,-1394,3063,-1954,-2423,1758,2233,-1799,1687,-1337,-2612,2003,3113,-2448,1678,1021,1023,855,-2312,2049,1056,1876,-972,824,1074,3170,-1810,-2463,3570,-2378,-3136,-296,-3212,-1321,1999,-661,1069,-1899,-577,-326,-2825,-3301,3182,388,1915,2745,-3483,-1414,3469,-3119,-465,636,3189,3057,-1960,221,-985,2912,-1543,-231,-747,2845,43,1532,2559,3302,21,769,614,1048,2021,-1520,-27,2191,-3124,2288,1982,-955,948,646,1519,-588,-3520,267,-3162,3299,3281,-1114,-484,-2330,-466,-2353,2296,-363,-2186,1552,-2815,2285,-1901,-557,-2751,-2579,3118,-701,2658,1547,-1276,-1055,1916,2713,3295,905,-1900,1177,1186,-2387,1858,1500,-1808,-1111,680,558,1601,2809,2611,-1138,753,-684,-3214,1894,2431,1726,1089,-1857,-485,748,-1468,-1972,-2351,476,-3024,-2081,-245,-1423,-2265,1264,2742,1217,-1009,2086,1061,-1975,-190,2935,-2549,-1581,-734,-1876,-3513,-218,3094,684,3487,-2588,-666,-2786,706,-2362,-1804,1908,2262,1351,3310,-1316,1598,508,-3343,-1927,1167,1552,-3168,1206,243,-2567,-239,-759,279,714,1605,2347,3187,332,-799,-2162,1980,-1265,-1593,-3138,2143,-1646,2074,3254,-3283,-3185,-1174,1876,-1157,-2439,-91,382,2500,-400,-240,864,-2258,-2401,1235,2375,378,-3319,-2127,-549,-3467,1802,1684,-683,-1974,-1810,-2092,-2202,-657,-2491,2034,-1206,415,1400,2384,585,-573,3285,-2605,2057,-3153,1876,1994,-3561,2721,1152,1795,415,-468,-2042,2850,-1282,-2971,1005,-1062,2567,-792,3509,2509,2171,-620,-498,1945,-2608,231,-1986,-2748,-1302,-723,1476,-191,2814,-3432,1945,-2501,-3081,-691,876,-440,-64,1553,-363,1688,-746,-3346,-1353,-3400,1895,-2878,-263,2213,486,171,1627,-1762,2059,-1456,535,-581,2527,-2750,3201,136,-2444,647,2657,-3127,460,-1135,3537,-603,1007,-369,-16,-2700,1616,3386,1337,-1058,2733,967,3245,2334,-2301,-2823,-2199,2907,2216,2473,2807,3395,1325,2393,-531,2006,-1108,459,-1541,1835,1736,-469,-1771,-167,2627,-553,523,-3144,-665,1285,1422,-1531,501,-1391,307,553,-310,-1925,-2107,-2894,-2920,58,-2169,-3328,-2944,3240,-52,-1705,1241,-310,2049,2098,210,3374,-2590,1437,2952,-799,925,-1435,-1250,437,1840,-387,899,-1574,162,3006,3076,-518,557,-48,1317,-2503,3317,-2785,-1505,876,2927,-3181,-906,-1549,-1782,2871,1576,2779,-845,2433,-286,-1818,-2344,444,-2335,-3282,2000,3570,-2501,-3536,3278,2715,-2069,2614,-1664,1428,-1387,-3019,1889,574,-3014,1209,2465,2674,3388,-1182,96,-400,-2531,1723,-3132,-3519,-168,-511,-2345,1231,-2794,-1655,-2106,-1641,115,1012,68,-231,3424,-2436,1527,-3523,3574,2343,1336,3189,-1761,3352,1373,-1159,0,-2837,-1215,3584,-1415,-661,804,679,-3289,-1032,-971,881,3523,3568,2443,-2927,-138,1568,3105,-2331,2804,-2693,-3108,1330,1435,-1267,883,-2345,1767,1329,-735,-2210,-932,13,424,-2390,-2999,1632,190,2532,2615,904,1514,-788,-3066,738,-2367,360,-1006,-2502,3463,-730,-1386,644,1059,2340,-1937,-1859,2184,-3301,-3260,1747,-2004,-1486,-675,-3205,3201,321,1438,-2567,-893,-243,2675,-313,-106,2758,646,704,1433,-3156,838,-1701,2524,201,-2775,-776,-148,573,2030,431,3064,1797,3105,-776,1679,2826,-2641,-1655,-2311,251,412,-3286,3480,-3433,349,-970,-2870,824,1697,-233,1031,-3563,-2861,-2461,-2169,1794,-1074,-3139,-3023,2565,3458,2991,-1670,539,-1876,3040,-3586,-2634,2428,-1612,138,2171,-251,-1481,1850,-3307,2952,-2119,282,2484,-146,-1421,-2770,-2495,-1409,2733,-1570,2761,-3487,-2425,504,3004,2571,-985,-230,288,3062,1062,-1742,-2810,3192,-307,-2520,1626,3523,-1002,-2358,-2453,-2552,-2762,-1606,879,3062,-1298,-1907,1645,1276,3435,-842,-2421,-823,-2919,-1418,892,-2886,-3042,-920,-987,-2611,-751,3363,1923,213,-1286,-783,3480,-3388,-2009,-2138,2938,-3361,2441,-1236,-1430,2055,3393,638,2044,-1714,-1358,-2706,997,2339,-3308,3299,-2999,-3513,-3334,-506,2526,-2936,-3223,-2441,742,-766,742,-1883,1534,-804,-2715,2730,1016,-668,-2062,174,2354,-700,-2528,2485,-2329,1927,1775,-1953,-1394,3020,2725,523,-2198,995,2047,-1115,-2870,3214,210,1694,840}, {198,2637,2851,-1595,-281,-1616,-1301,-959,165,-317,2556,-857,327,-572,-3265,-2837,1721,2855,785,-2028,-279,1423,475,2303,1259,-2244,1140,-523,2006,-2136,-501,1968,-816,3457,3434,3108,-1935,940,-702,-2814,2465,-1451,3071,-3067,-877,-2800,-1897,-3008,-1383,-2872,2188,2284,241,-2246,2092,1472,931,2527,2971,-2846,-2489,2548,3233,-1496,2406,-3296,2359,1099,3299,-2640,24,424,-3074,-1009,229,-3313,-1395,2666,38,3045,-2424,1757,1562,-2553,2511,1719,1648,2970,107,2076,1847,390,-828,-2867,-3365,2428,-3131,-1570,-736,-1753,731,-2304,-2419,-3365,718,539,1247,1287,-2056,1158,-3473,-2544,-2559,-1810,1613,2055,3082,1735,-643,3057,-3512,-377,2096,-412,2824,2550,3557,-3206,3546,1348,713,3583,1924,-3101,-939,-187,1515,-2370,3204,-3360,174,667,-927,874,2834,579,-1652,-1911,-2225,575,2423,-2592,-1361,-3201,-2067,2566,1035,1030,-3003,-3457,-507,-1214,1908,2455,-2510,203,1158,-2529,1884,-2742,1693,741,1484,1918,-859,-266,-1098,2711,3113,506,33,-344,-1381,-71,-3210,2843,-2869,359,-927,1274,972,75,-720,2637,-2461,199,-1110,3507,573,1459,1463,-1845,3293,2940,-2112,2057,-547,-2114,-385,238,-1960,2222,-1913,238,3494,2087,-931,510,123,805,2953,2762,-2849,-2037,-3211,2719,-3545,935,-2663,3533,-1348,-3502,-1030,2758,1937,1216,777,232,1865,79,103,-3428,249,-3047,3161,1245,-3497,-900,1552,-1945,869,-1772,-2908,2655,-953,-586,2039,-3312,827,3179,-1341,-2509,3021,-3499,751,-3203,134,-832,-2079,303,619,-1576,-2299,2018,-2098,-491,1626,-656,3398,-772,10,-2831,3021,-3322,673,2171,1839,2389,-2200,983,-2440,1240,43,1077,3381,2860,3026,-1507,-1468,-1868,-3575,-2165,-559,2994,-2081,1702,1823,-3045,-2505,1991,156,996,933,758,-1195,-2120,2248,2240,-1263,949,-87,1938,1163,1274,-569,3001,443,-2976,-303,1472,-2678,-635,2683,-1623,726,908,-1435,982,1220,2965,-1271,2545,3351,429,2368,-2590,2626,1439,-1739,-3468,-2551,1817,2711,-3375,-3390,1621,-3121,-2799,3029,322,1914,688,1899,-1333,3533,550,-2779,-1529,1892,1836,1988,-2653,111,1529,2749,-2910,-3171,-2721,-2843,1842,1898,2090,-2934,2860,935,3524,-3553,-1992,-315,-3563,1610,-3003,-226,-2306,-1043,-1311,3424,1210,-975,2982,-813,465,3000,2592,1651,706,1187,-2676,-949,-312,-2448,3448,-905,-2130,2796,858,1484,-2009,-712,649,3376,3067,-1835,-429,195,-2394,-1982,-2480,-63,-2690,2237,-1417,2689,-516,-2419,388,-1275,-2237,1538,3096,-367,-2985,1735,-1483,-1897,1294,1423,2270,104,-1816,-3066,1044,1939,2654,1072,2764,-3513,3312,-2891,2234,-616,2614,-2390,-2249,-2790,-2602,2570,2252,-333,-198,-1429,2820,3165,710,67,545,2440,3509,3234,3444,795,968,-3026,-2062,-525,306,-1413,2839,1796,-2932,1440,2829,1763,425,-1418,-3350,-2779,-1305,157,-25,-695,-292,-2846,-1623,2782,-2261,-735,2921,19,1318,-1422,-1870,1964,2776,562,906,2806,349,2632,477,1047,1031,-1631,-2353,-3309,-1058,-1602,-1507,2468,3368,-1771,1520,-2853,2982,1947,1421,2327,-2693,-3149,642,125,-2404,712,-2640,-1314,-2825,1543,339,-457,442,3135,-2586,-14,-823,3405,-2665,3410,2057,1882,2964,-16,-258,-364,498,1826,2170,-3406,-2403,12,1906,2615,-1049,-3416,1935,196,2215,552,-1313,-1622,-2642,-1310,-2924,-1857,-1505,-2584,-1272,-3484,1121,1269,1804,-2838,2803,994,2131,2520,-461,-549,-2061,287,430,-1717,-209,3321,2080,2163,1227,3343,-1010,3333,-169,-761,-338,-597,-1219,-542,3211,1595,3400,3249,-1396,-713,-3208,1418,-685,2157,2977,-1257,-1870,-840,2846,-3016,-3200,1800,2241,-2944,-766,-3494,-1577,2880,2155,3031,-740,-239,-1406,230,-2029,-2069,2577,279,841,-165,2443,-2829,-2932,-957,-2838,1823,2277,-1752,1133,198,1725,-2666,3379,-3270,2130,-3564,509,-1524,-25,-1940,-980,2869,1290,-2797,1368,-2284,378,-3345,-138,-2676,2942,-2663,-3033,-2858,-284,3000,-1820,212,-920,2298,-2358,-3107,1349,-1868,-3435,1329,-2560,2796,-1732,-2351,1131,-592,-3438,-3575,-443,-2802,-3376,-2517,-2298,-1460,2200,3110,3418,1563,-33,2388,808,-2835,2683,-1322,1476,2360,-199,-1316,-2543,-591,-3052,-807,19,-3342,-380,-1562,-1227,3182,3268,899,2455,-1144,129,-1419,-692,-2868,1032,-2103,2163,-2667,3215,3493,316,-3411,-3484,-3338,-1729,-478,-584,2251,946,-1654,1008,1792,2777,-1629,-935,1935,-1016,1768,1937,-73,-2463,1279,-1368,2772,3462,1845,-3571,-3533,-3119,1714,191,-2290,1433,-2455,2563,421,-745,3022,1112,-2584,1797,2137,-2968,1125,715,1971,-128,-3148,93,47,-162,1543,554,-310,1368,1925,2487,3341,516,-20,-3266,3101,-1109,1860,-1335,3237,-2584,-3132,-2833,233,84,-1537,-3006,2248,2508,726,-245,1859,200,1816,-738,-3378,3214,933,-2429,-2947,998,-2591,-29,-2828,2432,820,1536,1650,2555,-2705,-3165,-2052,-2919,3236,2912,1563,-2397,-2719,-690,-410,-730,3214,-1271,-3409,-1559,2437,1430,-781,-1364,-2064,1444,2709,2946,-1777,-998,-2580,-918,1083,-389,110,-1623,813,376,-2847,1854,-1905,-2987,1786,-1732,-550,-130,1224,3442,1395,3556,1372,-2892,1303,-1767,-3319,632,595,-1460,3569,947,-1586,601,2055,2527,1491,271,-3464,2539,-826,2150,-2964,-2803,-1889,-3394,2319,16,-953,581,1218,-2162,-3170,-3,-58,2035,1674,35,-3488,-1922,3391,1320,-110,979,3244,1502,-2959,516,-3292,-2832,2367,-2677,-1312,530,1676,-3229,-2518,3308,-1069,-2253,-3103,-1040,-218,-365,3141,-2638,-1167,2446,2618,1377,-870,-1683,-2798,-674,-453,-1648,-2621,-1285,-2926,-2908,-1085,2584,-253,2391,2824,-2285,1755,3280,2654,2323,2812,-2716,1592,-190,-234,704,2195,3587,2617,-1896,3463,2947,-269,-2197,3073,3461,1269,-329,2595,-1538,-871,-2729,-1355,-2376,2822,-2013,21,-9,68,-1297,-2457,-1426,2264,-512,1528}, {-2236,-1961,-273,3367,-2265,3383,-783,-1200,-2220,2659,2859,-356,-1766,-2320,-1337,3108,-2533,2701,3192,961,3275,2856,-2408,-662,-2375,294,-613,-880,-947,177,8,-1694,-1619,-2178,-813,-2284,-28,3472,-1169,905,1404,-3323,-2115,1348,-787,-391,-623,1269,105,-314,989,-1910,3084,-2276,2844,-848,1613,-1957,1097,657,295,-1346,-3248,1220,1861,2365,2829,-1490,-195,-376,-1062,1161,2068,-1387,-920,-494,-559,1675,111,969,-781,-640,3513,858,1009,-855,-2941,-2452,2577,-2062,-98,-1280,1719,3127,2485,337,-3383,2384,-1819,-2286,-106,1559,93,-2530,-2308,-1082,-1712,-3363,-1132,-1961,1205,2270,-2476,-2115,2829,-3424,-2653,3413,-308,2637,44,-2773,-1523,-1162,-1356,-1593,-176,652,-2279,-1340,-745,217,2706,-2719,2040,671,-1821,1136,2925,201,-3427,-2536,-2139,-247,2565,2600,-3100,-2280,3489,-1384,-497,2282,471,-3121,-1851,-1089,949,-3139,-1242,2367,-144,2495,2704,639,-494,2950,2308,830,-1630,2787,901,-82,-1916,1060,3562,441,731,-2357,2146,-2178,1498,999,2393,-886,3263,-1065,983,3106,1984,-143,629,1630,1952,1220,406,617,-1708,2350,-3578,2901,-1271,2099,-1768,2877,2182,2105,131,541,1848,-789,-929,-698,779,911,-1096,3028,722,-2605,3324,-819,538,2710,-959,-2290,-15,1141,-2738,1020,-396,-3167,-80,2252,-3446,2355,-308,-421,3171,-488,322,-1131,2531,-2591,-1584,336,3322,492,-15,-3287,2948,-568,-2654,-2860,-386,-3377,1063,418,1837,807,-123,3268,-1445,2801,278,-527,2717,465,2701,3581,295,-1469,1839,-2460,2106,-1446,2313,-1091,2747,-295,3226,3228,-1017,-1698,49,-185,-2515,-108,1773,-2985,368,-1902,-1170,-2980,421,-101,1513,3019,746,2619,381,2143,-1997,811,2029,1513,1452,1165,755,-3192,-2866,-1402,-690,379,-590,3334,1837,3284,-1843,-2512,910,512,-1285,-1590,2072,1489,2581,1947,-484,-765,2335,-3307,-2828,-988,1361,2358,2428,1963,-2691,2594,-1165,-946,-2149,-2099,1402,2764,1606,1493,1030,2200,1072,3109,1014,-2421,2371,-2797,-294,2817,1184,2361,-123,960,1565,-713,-1605,332,-2578,-300,-716,3054,-2999,159,2080,2999,451,-215,-402,-3081,1739,1326,-3169,-125,217,993,2192,2588,783,2917,2548,2289,-1929,2867,439,-2241,257,-22,1352,588,-1751,3366,1518,-2334,-3303,2390,-73,1853,1470,-2533,-2904,32,81,-3202,-2283,-245,2264,-1803,3453,-1135,2221,2547,-507,-783,-1644,-2511,1693,-409,-3164,-655,-159,1749,934,116,234,-3133,-2400,1597,-2445,1943,-2870,-97,-2737,457,-1431,-3540,-2780,2630,347,3143,-2836,-2153,1131,96,-1322,2721,-589,2010,1182,-3314,2811,-3265,-1223,2156,-383,-2018,-2255,2851,2929,2480,1913,-1239,1908,255,3046,2864,49,-2673,-688,-3403,-2303,-1959,-1312,1006,-2013,-315,2644,1732,-283,-3505,2472,3217,1644,6,3472,931,-1673,-2261,2799,1299,2007,2241,-2568,1264,395,-889,113,-518,2822,-2831,-3253,-240,3007,1254,1218,1577,-2446,2021,-1121,1688,-2460,-596,2589,174,3335,-3394,793,2378,2059,598,2087,-422,-3437,337,-1860,-1096,-3512,-1710,32,2608,-1776,-2916,-1742,-320,578,-111,1916,-3532,421,313,2255,2218,1117,3516,3253,812,-1266,673,2120,-1667,-3072,2863,-1147,2867,2349,-3266,-1346,-1222,825,2270,-2059,-3008,-2250,-174,3295,-2696,19,76,2378,-3561,-360,1981,-1349,-430,-1830,-348,2397,-2326,1144,-3358,-2949,2620,519,-240,2624,1875,-1794,936,-2247,1008,-2587,-3167,3487,-3259,-331,-187,-348,-3558,2363,2586,-3096,1307,-1414,-2361,1597,-2844,-1593,283,-921,2206,3289,-3452,2880,3379,-121,1715,2627,2433,-10,393,-520,-2277,-3137,604,2278,-2115,428,1612,-1714,217,1018,1089,2926,-2364,-1809,356,-1365,513,1750,3433,2509,-1404,-781,-2436,-943,2767,-275,-276,-142,-2584,-3432,-2033,1743,3023,-479,72,-1269,-804,-2336,2128,-661,-2731,1063,-1523,-6,1581,-1320,-3370,1859,-3383,407,2314,496,330,3450,-1299,1224,-866,-3234,218,-1609,-1063,-1841,2836,2380,-243,822,-1072,-1690,-1620,-2216,1820,-3036,3353,-171,-3531,813,2949,-875,3275,-3203,232,-1625,3426,-795,-3254,2121,-3144,2244,-2097,-142,1516,1802,3050,-557,1718,-821,-385,80,684,-2873,2563,1539,-2987,1351,-2410,-2050,-629,2750,1205,758,-3559,135,1454,150,3036,-119,-388,793,-2418,868,-215,760,-3066,-1542,-3465,3438,547,2483,2493,2959,-670,2122,3128,-992,-715,644,-2447,32,-3522,1941,-464,2319,-3205,1067,3419,-1149,3573,-3321,576,-1073,-2975,728,-3021,-381,562,1578,2767,598,3435,1311,-1364,-3531,752,-2144,-2953,-2945,192,1615,1397,3105,-3479,-2425,358,265,-2990,-2134,-1862,-1421,-2575,-2584,-987,1526,-1153,-607,-2477,-600,1813,1973,-2482,2649,775,-1967,1896,3200,3218,-871,2214,1343,2285,-598,-2511,-2715,-1545,2652,-2156,517,-720,2054,-1247,-3491,349,-1819,3069,-1092,-2467,-3374,1760,1802,2680,1715,-1394,1685,-2081,192,-3525,-576,-2726,1212,-805,-1207,-1978,325,-2405,-3287,3583,-1230,-3281,1954,-277,2912,-2609,-2945,-2750,-3432,-1228,-151,-3246,2428,3149,-1007,2403,-1921,-1720,-1440,999,920,121,-92,864,687,3080,971,-322,-1643,-704,2283,-2069,-1129,2114,-1793,-1100,-1257,3067,-960,-283,-805,3168,78,-577,3413,-1812,-2170,2402,647,-2569,3374,-494,34,1331,-71,-1062,-279,-389,-1619,-391,-2579,-1728,-705,821,-389,700,810,1704,-3283,3228,-3090,-871,-2305,-2161,-2940,2495,138,-1207,-1204,-3152,-16,-3383,180,102,2932,2867,-2055,-353,-3000,122,-1290,-1702,-3319,-1742,-1857,-2337,2210,2191,342,3140,-1113,1440,2364,784,1962,-1928,3442,1880,3042,-2861,192,674,2339,-2304,2327,-3053,1494,1482,426,-1623,-1508,3482,-1038,-3404,-1430,-1631,-525,-2337,948,1275,373,-1514,1220,-2023,2219,-2440,-373,2873,-181,2690,2455,-35,1145,2423,-805,3517,587,2848,1803,-412,-1655}, {-1517,3255,2663,-2564,1591,516,-2438,1390,578,-3534,2957,-2598,-2761,1453,-1810,-3135,1131,-482,-2120,1509,-2809,3405,3160,158,-1746,1713,-3290,-3405,3093,1087,2159,2639,-2872,-241,2293,-2315,-833,-3319,-797,3021,-2962,-542,282,-597,-3166,-187,2595,-1066,-2006,118,-1641,1382,-1363,2560,726,-1951,-937,-2087,-1524,-1323,-866,1357,-3243,1769,-2819,-3568,-1911,195,-2300,-2318,3051,2070,1098,3142,1240,-2023,680,340,-2435,-2985,-2750,-891,384,2761,-1696,1578,1417,441,-312,3191,2625,-2007,284,775,934,-1903,2630,-1388,2597,-120,-1639,2324,-2484,-345,-224,-2629,-2506,2978,565,421,-1721,2005,1847,2192,977,2872,-534,-3318,-764,812,535,2743,157,-1840,-834,-3104,2592,2024,3268,1206,-1025,3301,2882,-946,-2191,113,1374,162,1882,-2875,1174,-2807,2802,-534,-441,-2021,1322,575,372,-1026,2369,2742,-1067,3239,-1172,-48,-781,-751,-409,-348,1561,-1171,-2224,575,2874,1580,-1990,280,-1509,1614,2066,-2375,2051,-1619,-1786,2245,-1310,-1001,13,548,-1934,-1252,-274,-330,-2103,1009,-813,-2832,-549,-2058,-55,-277,2441,-1993,-1246,-2319,-581,-1788,1940,-2012,1783,-1025,526,3539,-2120,-1991,-2714,-3344,478,-385,-2299,1403,563,648,-1806,3441,-1094,622,-2576,2578,-1601,-1275,-1174,-2956,-1667,-1343,333,-1637,-734,-2294,3218,2912,1778,85,1105,-2030,-744,-466,718,-2073,-2943,3085,-855,-1873,-2212,-3362,1857,-1671,556,2280,-2246,2577,3284,1947,-3536,-1248,53,-2169,573,803,-2673,-264,-2049,2548,-225,-2126,618,-309,-940,-3522,-1085,-3475,-2733,-2352,-1409,3304,-2066,-394,-2201,805,1433,-2083,-1284,-777,-1239,2024,2402,-447,-782,-2450,684,1697,-2298,-2786,1125,2599,-1709,1407,-1791,2779,1566,-845,2147,615,-1869,-850,673,-2998,-2767,-3516,1094,-2835,-3490,426,-1802,-2159,-812,-2972,161,-2157,3567,8,-1489,-2890,2258,2942,-2499,1450,-2531,2811,-1772,-1218,2813,-1064,-3182,-3563,-2908,3126,884,-2752,2033,-2472,-2545,3504,1338,-2405,-1113,2023,-944,1807,-242,-950,-1400,-1250,-95,-995,15,-1552,-3143,895,-2113,673,3351,469,1764,3322,-339,613,-3161,1513,-2942,-1434,-1106,1990,-566,-1913,-3133,3007,2895,-2934,-569,-2459,1233,-1846,2029,1298,-1208,-435,1336,-820,2901,-1086,-1661,2340,3536,-903,2632,-3166,3265,976,2179,3174,-1474,1852,-3377,1974,2120,-1958,1153,157,1634,-1333,-2142,-1868,-374,-1308,1059,457,-1760,-3205,-942,2243,2047,-2094,1716,2808,-2263,1055,3510,-1002,-2685,-3110,-2685,1618,2353,-149,-2554,-632,2927,-3450,-1947,-2145,-3058,-3370,2992,-2897,-2132,2211,384,881,2016,176,1092,3189,50,3262,1232,-508,-2079,502,-497,1642,1344,-812,1327,2817,-664,359,2497,-1441,2048,3202,2139,1085,-2641,158,-652,-1,-2128,-389,-3437,-2866,-1533,-662,-3574,3139,1391,-2973,2289,2622,2459,3155,-3176,1006,-683,-322,2957,3259,1768,971,-3495,3009,1324,-2706,-1058,-2771,462,-1085,3152,-3027,-599,730,792,-3447,2049,-820,-3277,-3143,2671,138,3479,743,382,2340,1081,-1041,1294,-2905,1362,-1311,-503,2237,-1357,-1569,1843,-600,-1971,-2425,-2301,2198,3570,1457,-2296,-245,-2476,-2242,-3164,1775,-3221,-1778,461,2642,-1482,535,2927,-2947,-1985,-135,3349,3476,-917,-2280,193,-2762,1543,486,1363,2740,-2695,-943,2962,-748,-2747,-498,-3459,2276,-1194,2792,-2816,-676,-1650,52,568,-2177,-2506,1260,-2960,522,-1445,-3016,3550,1616,912,-2260,-1966,-422,2346,-2538,2847,-123,2566,1948,3098,-209,3342,2836,-255,-2166,-1493,-1566,-3111,-99,-2531,-640,-3021,527,1553,-3326,2972,-523,1094,-67,-1849,-136,-2832,-1167,2048,3410,2258,-58,2120,969,-699,1460,-3283,-583,-2347,1995,1651,3334,2200,-2104,3087,3169,808,2186,778,1594,764,2834,-1739,1766,-385,276,2792,2186,-510,506,-2117,-2920,-77,2326,-569,-82,-2476,-919,-1595,-2412,-2691,1156,-1817,-1034,2070,1057,-1184,3082,876,-2879,1755,2256,2317,386,264,-823,-573,1147,-1279,196,2795,1954,-216,-1681,664,-2955,-3443,-3554,-2036,-3157,3457,-3044,1367,1838,-2124,-314,-183,1636,-194,358,-3560,-2459,1213,2030,-662,-133,-3000,1836,20,1426,-1820,3058,-150,1840,-1532,2392,1461,270,1202,-374,1301,-2059,2927,-2345,-2702,-2886,1418,3432,-822,-2764,1223,786,2520,-2023,1516,-2677,2994,2234,-1009,3216,3556,-2886,-616,1979,-1349,-1982,-2497,2601,2128,-567,-3057,-2936,-3196,130,2702,2885,2554,149,-2623,3543,-3252,-906,-364,-3422,2088,-395,2281,351,2259,-2945,-1795,-2845,1981,-321,3374,-931,2603,569,2027,2379,3424,-1841,3570,2957,3138,622,2202,-357,-2059,2108,-2205,-2427,2341,3146,3024,599,-2488,430,-2652,-1605,2438,-1192,2867,-2317,575,81,-867,1962,601,-602,-35,-1665,3313,1010,1126,1317,1627,-149,3440,2827,-2052,-316,1918,-2301,-1352,-3345,-3116,-3179,-2841,2052,-1463,660,-2889,1674,-2281,10,3082,2319,1004,-1939,660,2278,-43,1942,1443,-1788,284,1119,2105,-1455,1439,-1371,-1640,-2697,1674,-2676,1396,1267,-2328,-338,-3129,718,-1265,-2772,-2705,-746,2968,-1795,-2169,624,2265,-1852,-1325,-2957,-687,-824,-122,-1044,255,2988,-2572,-3520,-2977,2232,-2907,231,-813,-1147,-1049,-1152,2939,-962,-720,-1210,-398,1463,-3355,3186,-316,-1923,660,-2450,-1018,-671,3513,3512,1289,-812,2916,-689,1801,2058,-2509,-641,-2148,-132,558,3455,-2057,-3022,-2232,3280,257,2574,318,-2289,2328,-1714,1057,652,-691,1996,-939,-1854,-1355,515,2110,649,-3278,7,-3222,-2601,1991,-607,14,3236,-1811,-429,-438,-2935,878,1275,3460,-2503,-2970,-3217,1768,1202,-2831,3546,-3286,-203,-1831,2785,-3271,-3541,-1440,2015,2252,-251,-1187,-2254,-537,-2044,3412,-836,3346,1011,2106,89,-2415,3080,2037,2795,2953,-1767,-720,-431,-763,-1964,-994,-465,609,2876,2100,366,-1471,1020,1834,-3334,-2824,267,1556,-3256,1406}, } ; static const unsigned char precomputed_decode_1013x7177_s[precomputed_decode_1013x7177_NUM][crypto_decode_STRBYTES] = { {220,247,131,155,152,165,196,78,29,94,224,11,179,15,145,210,28,215,30,112,245,239,54,160,92,221,187,124,59,140,213,170,84,172,183,114,106,51,84,210,210,172,36,127,28,129,87,17,35,145,14,58,153,27,57,23,232,140,17,244,39,235,63,151,254,25,161,112,205,47,163,102,91,15,117,14,214,109,39,57,226,62,98,60,171,135,106,40,208,197,210,110,58,63,248,107,1,200,88,193,31,3,80,149,81,148,4,133,221,42,237,196,227,101,146,30,146,125,154,105,235,67,210,40,200,13,221,16,45,199,100,12,170,106,120,141,26,218,7,143,164,218,163,65,165,3,246,240,80,61,81,250,148,95,93,224,29,68,225,204,191,167,142,223,224,9,252,92,211,44,97,119,84,22,50,0,236,207,182,174,75,60,62,242,13,244,202,241,131,140,184,215,215,44,61,81,5,70,118,4,120,40,45,96,203,146,84,124,182,155,82,225,224,57,226,54,11,41,228,136,70,90,247,100,171,42,196,35,146,50,55,189,93,63,97,109,148,97,122,119,239,188,133,66,180,225,45,4,174,227,236,245,101,19,76,92,183,68,86,183,190,98,80,188,51,70,70,151,120,138,185,158,6,49,35,80,155,199,190,146,110,49,64,191,54,152,37,118,105,43,9,226,196,78,109,11,127,120,162,1,190,151,95,76,65,242,155,210,54,162,41,87,60,114,84,53,204,39,127,58,128,158,128,133,43,69,186,160,146,9,113,70,18,113,58,134,36,160,215,20,14,120,179,160,22,208,69,40,175,222,2,170,66,137,47,194,61,162,70,51,102,195,157,142,20,237,100,128,83,110,146,190,107,157,203,43,201,55,207,9,90,208,157,75,93,68,46,234,126,45,38,245,190,130,177,67,237,112,21,110,5,31,216,36,29,218,223,152,38,72,9,74,110,26,42,161,89,102,13,23,48,90,85,10,32,163,143,228,24,1,181,19,47,11,44,37,191,95,167,77,141,105,222,182,153,102,158,206,86,135,197,14,74,240,203,158,156,223,224,83,48,232,125,248,210,234,66,164,90,231,71,247,46,2,220,222,138,220,89,46,240,8,71,100,7,53,107,123,157,79,169,194,168,94,92,35,134,105,228,221,59,209,220,55,152,153,237,2,122,24,243,132,140,212,247,69,185,54,208,188,146,206,4,46,180,241,255,78,9,22,104,185,76,54,203,97,193,10,73,47,194,117,138,90,56,162,226,255,65,22,109,64,72,198,58,112,17,104,61,127,166,91,57,157,87,38,33,239,18,138,65,232,48,248,118,65,134,80,133,195,127,117,171,35,227,61,6,42,169,113,71,141,186,182,243,125,196,86,24,248,29,80,18,80,52,65,39,58,108,234,99,116,27,68,4,94,97,8,210,31,107,181,128,108,0,36,214,222,10,173,198,59,91,32,16,8,220,171,98,64,127,28,43,187,202,211,132,149,107,11,144,54,50,42,33,116,168,135,252,86,32,221,251,94,188,3,72,102,141,73,142,69,155,18,141,126,64,110,180,179,10,228,183,249,69,54,254,50,94,32,123,138,225,183,117,207,199,158,78,125,155,179,166,66,205,71,166,245,45,38,150,233,6,114,222,203,249,28,198,206,112,236,138,243,182,13,234,122,157,205,199,4,129,136,184,43,189,6,167,83,202,141,128,114,161,243,83,44,11,84,71,84,180,46,133,101,161,247,92,226,105,20,215,5,46,207,253,161,116,207,251,147,223,211,113,11,161,5,95,148,205,39,64,170,30,117,130,131,194,226,29,107,99,133,54,209,251,101,234,204,74,53,211,199,50,210,33,48,148,48,231,247,51,229,173,33,167,236,135,140,159,10,44,124,247,119,188,38,64,237,53,95,164,197,73,237,74,181,63,94,98,23,236,195,195,77,143,137,86,12,39,216,89,206,114,224,159,27,170,9,4,39,120,171,9,215,126,227,168,157,74,106,104,101,158,225,191,183,33,37,79,140,246,81,58,215,182,18,208,135,105,143,5,55,203,213,186,8,57,157,224,164,163,23,90,40,103,36,71,150,57,200,238,80,16,59,102,129,93,2,93,210,88,189,219,120,232,16,61,83,11,32,113,191,249,211,196,209,231,166,46,242,238,47,130,8,116,67,40,87,155,55,164,2,37,209,121,245,61,170,209,2,215,231,226,79,184,159,72,38,55,55,240,56,88,133,206,126,192,157,32,28,219,200,226,245,135,233,164,216,56,2,190,92,165,21,206,250,110,34,226,176,48,77,141,234,244,232,240,233,136,128,236,212,64,14,46,125,86,80,138,244,219,142,162,70,90,223,222,7,140,102,226,232,170,48,12,39,168,201,76,177,249,200,192,105,95,205,207,168,44,171,129,88,65,1,92,159,54,222,4,149,123,218,24,166,28,218,105,216,26,245,1,240,53,29,169,38,97,222,58,51,134,128,119,134,17,254,236,72,76,138,212,120,211,181,113,175,41,149,32,124,223,174,174,244,0,7,229,201,166,172,74,63,59,254,104,68,17,251,79,15,205,48,173,125,195,81,120,57,219,83,180,120,25,5,32,60,11,151,200,226,7,104,169,118,129,152,72,68,58,185,238,71,135,83,95,240,228,32,219,131,147,117,31,76,61,179,150,207,69,76,200,179,203,47,124,114,74,136,196,191,179,65,6,255,77,249,127,69,106,15,202,82,247,6,187,181,95,246,246,190,192,60,114,3,100,136,58,0,74,227,147,98,169,36,77,125,228,119,105,238,201,151,93,45,34,43,196,53,93,199,255,66,67,138,187,120,139,112,12,32,118,179,200,44,216,212,237,54,50,42,230,141,141,186,17,73,198,55,254,241,119,241,140,233,90,59,19,234,91,26,230,141,190,28,204,48,73,197,49,211,163,39,168,218,39,180,159,33,120,214,251,60,136,241,57,60,210,222,119,31,163,141,183,123,1,110,247,106,215,53,149,247,24,65,62,190,188,150,253,78,223,242,165,176,158,214,200,55,105,90,30,85,58,223,247,154,67,190,56,187,220,21,5,179,57,234,48,41,62,33,155,20,16,199,203,110,194,149,76,42,134,226,101,129,231,22,53,135,233,164,86,166,146,40,223,205,100,227,38,4,153,24,78,79,192,215,23,144,135,171,91,44,251,7,199,202,188,169,45,30,252,206,203,221,137,16,253,192,58,212,29,249,70,216,79,83,181,21,61,163,91,21,253,9,62,122,138,84,219,2,245,136,112,155,150,132,81,55,105,48,248,37,201,192,180,163,111,7,71,184,15,139,88,9,93,149,251,116,93,102,180,222,48,98,87,30,133,159,16,35,47,153,184,184,106,101,193,216,233,152,142,190,213,175,67,42,243,212,3,125,155,251,87,202,137,209,1,216,3,192,206,235,17,78,227,89,31,72,19,70,170,188,83,12,152,153,33,142,129,231,240,200,41,244,22,25,13,98,216,214,118,146,181,4,36,4,8,82,99,68,34,33,137,6,94,45,209,235,253,72,144,149,196,237,174,150,250,61,255,56,33,195,226,207,207,9,176,221,204,52,251,69,43,111,203,98,27,35,105,245,119,77,107,43,70,177,1,249,190,170,15,48,251,153,139,55,223,225,137,225,125,58,67,243,116,10,170,142,22,216,165,49,68,133,17,183,99,71,186,158,167}, {163,197,56,91,63,2,92,241,168,69,3,44,83,89,170,63,64,171,237,231,24,209,250,50,47,66,57,186,230,24,99,127,129,142,214,102,165,229,124,206,198,30,84,40,75,86,255,138,201,113,0,37,35,6,20,56,162,188,181,91,3,252,49,52,174,17,2,96,59,236,40,107,173,112,148,44,111,236,91,115,117,92,129,108,102,70,2,67,143,85,21,185,33,0,95,212,187,0,167,255,3,174,104,112,233,5,70,242,214,196,39,85,135,186,180,14,49,9,30,193,47,165,220,229,214,72,87,241,102,169,232,96,167,106,234,125,193,118,140,18,73,8,67,175,149,111,133,174,174,235,127,42,78,106,75,246,105,204,228,90,127,7,235,221,125,45,197,11,30,187,210,40,98,13,115,215,45,219,27,114,49,80,68,48,145,71,146,65,83,125,151,54,13,194,138,189,29,7,176,197,2,245,97,0,57,56,179,119,5,11,158,74,13,5,45,151,115,210,240,36,203,128,106,221,52,179,46,83,246,217,198,115,24,1,121,46,89,103,56,170,11,148,2,78,70,96,219,94,215,1,65,241,35,178,213,203,175,79,38,35,182,50,242,216,124,58,110,223,176,34,43,103,31,242,179,46,114,43,74,126,171,244,43,59,28,191,84,163,31,154,56,190,48,238,233,61,255,254,192,100,20,214,59,219,221,87,58,140,94,252,200,15,115,2,245,204,176,83,150,228,243,55,125,133,112,159,67,21,185,46,95,103,148,73,234,110,19,129,41,181,170,172,84,4,90,98,1,157,113,43,18,238,24,108,231,115,144,105,79,75,210,91,182,8,75,69,140,127,24,20,167,122,88,110,151,88,28,244,207,169,12,229,62,37,179,235,63,200,170,201,223,36,52,114,254,101,18,140,47,137,84,229,0,227,109,83,183,242,123,205,208,139,189,181,62,253,83,255,49,12,43,233,232,249,193,208,58,93,87,101,20,215,133,132,89,112,136,252,2,15,200,21,204,154,61,170,133,153,184,28,226,68,9,169,132,177,223,162,103,151,166,61,193,167,200,253,94,165,229,75,183,201,123,201,148,171,13,77,222,49,75,1,216,31,221,124,114,222,24,236,61,209,252,141,216,24,108,7,228,63,45,255,251,51,137,107,250,219,145,82,220,44,108,5,52,54,99,63,53,67,126,232,16,71,9,18,235,236,52,220,173,106,217,129,184,161,146,26,109,62,33,184,32,226,181,151,26,34,233,97,125,213,43,219,196,47,203,77,182,155,6,187,62,132,148,167,95,198,54,183,126,37,215,214,203,142,39,52,240,160,62,192,254,35,88,165,245,177,137,144,157,231,245,94,203,137,142,69,101,20,26,18,65,210,190,99,181,109,60,135,77,245,248,122,237,158,235,89,197,39,151,168,157,253,62,9,129,45,238,164,224,127,249,109,186,13,17,59,43,7,251,253,203,1,185,201,172,42,208,22,102,133,7,218,165,44,84,95,37,9,147,229,137,252,68,50,33,172,83,57,32,162,183,76,83,193,134,88,61,210,34,33,32,203,2,215,228,183,164,60,60,202,114,171,25,200,89,167,48,90,188,206,250,120,158,106,134,58,137,73,204,227,120,88,26,101,228,129,104,195,226,154,97,58,157,121,141,190,172,13,190,81,235,150,122,235,250,217,57,24,73,46,60,245,252,211,196,6,233,164,89,100,85,150,194,5,53,158,34,89,201,32,236,144,255,191,41,35,72,65,15,49,178,40,210,241,180,92,145,237,151,225,172,160,156,103,14,207,61,189,41,252,176,77,91,255,33,31,165,62,169,173,10,203,28,95,89,139,66,81,72,149,125,208,245,13,83,176,5,48,121,196,28,173,97,42,115,234,78,49,244,231,104,254,187,59,4,197,156,70,92,53,109,208,82,86,133,73,44,239,254,129,71,97,228,8,7,216,8,52,243,159,39,153,220,22,79,166,33,170,206,105,182,102,135,63,141,44,55,250,180,215,62,86,112,189,242,241,159,110,216,75,32,127,105,37,39,27,100,191,23,199,6,193,130,175,227,251,132,108,9,250,117,69,199,197,220,152,232,60,171,155,121,215,237,215,246,114,207,151,37,50,162,133,189,114,188,203,74,219,170,1,47,101,158,54,198,60,121,11,121,2,175,35,151,213,203,210,151,169,136,33,115,128,190,56,126,122,195,242,58,211,219,202,83,54,49,108,168,151,178,51,254,19,214,214,185,99,74,197,222,97,214,13,140,249,57,152,208,28,85,195,105,148,236,255,211,242,109,200,0,243,253,6,108,14,181,126,33,95,141,215,236,196,132,135,79,185,50,69,54,184,59,193,2,147,237,60,62,11,54,101,197,130,78,93,71,34,166,113,124,245,126,199,176,225,49,117,32,70,197,217,4,188,91,77,146,153,128,173,179,212,55,189,160,187,56,24,84,34,59,233,92,114,20,162,27,59,105,174,28,94,197,135,224,111,94,143,25,155,43,110,50,151,126,100,34,17,70,130,14,155,67,204,138,203,76,26,4,12,230,11,110,40,104,137,189,235,89,189,158,45,177,24,163,139,102,134,161,81,81,249,119,11,71,87,240,191,143,99,72,212,218,136,229,2,55,80,51,116,126,151,10,227,108,83,221,115,7,180,56,22,5,32,77,11,220,217,242,144,50,52,3,251,144,60,182,36,246,15,89,29,64,134,57,190,51,191,215,113,237,78,29,163,145,22,61,119,91,3,107,241,225,43,49,178,150,37,138,136,202,219,113,80,235,63,153,59,109,163,124,136,135,140,102,67,201,212,194,110,201,192,198,88,65,191,72,129,55,233,208,191,39,48,159,110,53,128,19,123,12,124,156,27,140,155,127,77,85,176,3,63,201,23,147,157,28,156,175,233,248,95,173,255,45,65,67,50,109,50,188,166,253,86,81,42,187,32,26,213,64,147,98,250,166,84,46,55,33,180,152,255,111,39,135,180,77,122,79,164,54,214,32,177,103,37,77,238,44,235,16,130,243,143,220,5,10,85,235,76,115,185,214,51,46,195,175,35,172,249,222,13,216,114,109,80,128,161,112,140,245,81,58,43,97,43,68,85,254,229,35,68,210,40,211,62,147,229,179,2,155,200,85,127,53,34,146,57,4,180,93,84,92,75,96,140,183,189,23,85,169,136,101,209,38,97,174,23,234,5,202,38,37,158,199,251,246,25,47,249,217,142,213,223,45,157,94,52,80,27,65,201,73,132,183,137,216,134,226,89,227,151,155,117,170,241,146,201,216,86,38,251,82,62,246,217,115,126,59,140,49,139,175,138,115,231,228,124,118,210,116,206,47,181,147,81,72,237,112,18,144,3,19,13,88,91,3,166,69,245,183,12,184,249,178,1,168,249,218,46,118,139,239,234,154,132,104,0,21,158,49,193,72,118,169,126,85,80,118,94,79,119,109,14,235,132,244,94,72,30,81,81,222,196,14,117,40,40,69,25,245,112,205,241,80,235,114,140,109,111,205,228,218,34,140,8,127,2,71,131,161,49,232,166,106,174,62,253,189,237,170,56,174,39,248,33,53,92,33,211,99,194,188,189,250,48,30,167,38,233,67,91,206,68,164,116,225,185,42,149,203,231,96,200,51,40,226,135,137,192,75,250,153,89,36,20,207,70,159,28,43,120,209}, {123,50,118,181,62,110,233,142,247,36,207,10,178,227,51,84,56,189,105,70,91,205,122,115,55,37,211,154,174,90,162,120,67,113,175,216,28,54,104,19,209,24,73,147,86,39,86,242,135,153,223,212,48,200,116,41,168,177,138,243,253,149,92,138,146,2,211,218,45,206,211,28,121,31,50,223,220,104,168,26,155,226,11,0,10,94,119,106,187,53,198,206,206,116,182,237,193,2,175,156,141,182,147,235,26,117,61,171,203,54,171,152,33,84,213,14,200,181,169,195,215,78,91,181,219,130,100,98,37,52,224,188,35,67,183,127,251,92,166,10,157,53,30,231,149,193,228,63,33,121,113,226,70,52,164,178,130,61,133,46,79,55,47,1,240,9,90,234,197,43,203,4,240,9,147,85,38,224,248,127,33,105,91,254,118,103,49,37,225,90,235,127,172,158,111,143,26,80,43,160,252,212,101,6,175,138,176,59,163,155,253,135,58,195,84,146,101,183,89,88,136,197,231,47,54,240,82,165,69,39,4,155,125,213,39,224,99,151,167,33,244,70,200,193,110,234,138,4,180,211,62,189,237,39,1,199,180,99,145,222,252,180,183,70,30,243,154,48,170,29,219,156,140,169,214,138,132,184,62,138,125,4,216,185,137,30,36,30,186,178,210,158,64,238,52,160,37,207,252,172,222,196,70,181,201,150,227,110,172,103,201,122,16,23,201,166,165,220,182,17,61,215,153,20,176,62,95,51,4,221,96,190,95,60,167,254,215,4,89,94,248,21,206,178,235,130,134,237,165,121,1,223,22,183,11,122,201,143,109,29,52,237,143,81,138,23,186,108,8,90,183,113,92,114,69,146,145,57,98,63,234,187,180,111,196,113,149,178,106,237,22,147,99,148,28,102,167,147,8,104,71,171,4,233,217,156,240,113,231,83,160,30,157,145,190,189,96,242,166,58,117,249,100,56,197,52,6,133,226,179,237,226,237,214,234,186,137,81,136,253,29,74,194,245,2,48,99,41,243,131,167,242,133,24,68,20,90,120,45,19,183,251,148,43,201,158,18,84,147,240,190,172,96,66,213,77,74,106,102,34,56,117,96,179,212,35,233,82,202,170,115,254,34,90,194,72,200,110,144,94,114,162,99,66,167,255,3,167,253,91,91,180,167,69,31,211,152,173,99,20,221,89,219,106,57,129,121,205,148,214,92,238,82,170,248,151,180,158,26,234,131,214,120,55,206,68,241,234,33,12,105,245,223,170,213,117,207,120,120,240,131,90,240,35,47,151,93,138,64,229,63,202,231,78,65,12,101,236,197,223,198,216,191,75,146,66,191,220,191,181,83,92,14,118,209,86,182,30,52,35,74,128,182,85,77,56,3,18,161,103,105,142,226,243,29,142,165,255,51,18,250,203,244,119,239,5,19,158,35,21,179,102,128,134,23,185,107,66,122,36,155,241,220,36,175,247,153,68,119,51,192,253,97,193,194,0,71,75,62,17,209,220,239,234,216,253,144,229,196,54,183,31,134,232,124,136,25,103,178,33,247,199,126,42,48,207,128,140,171,136,233,104,174,153,154,140,124,67,45,34,90,75,2,243,224,159,205,87,65,38,167,158,233,181,51,95,230,0,108,6,97,30,106,207,132,228,10,159,40,229,181,20,9,18,67,253,255,61,205,55,122,119,13,126,63,50,253,115,86,59,81,128,209,240,128,9,41,168,106,146,37,171,165,4,118,72,109,51,138,8,134,108,72,65,111,3,96,43,203,40,109,134,153,7,65,43,83,161,205,72,247,143,103,247,148,255,250,9,69,39,19,140,92,10,20,248,93,219,149,189,180,182,141,133,155,52,192,229,33,151,202,113,151,110,188,61,139,253,60,191,184,234,221,36,87,116,202,38,242,12,41,205,218,172,106,129,217,89,148,29,251,244,18,114,151,216,231,89,224,156,72,81,1,168,13,174,207,79,249,199,148,115,115,129,89,224,180,32,47,152,167,93,1,64,44,154,31,75,161,188,253,220,86,112,17,122,123,126,18,215,117,250,99,232,45,204,201,153,32,0,94,168,248,239,21,191,139,174,100,97,22,36,85,181,68,226,63,163,58,155,209,112,119,141,46,75,99,44,67,206,164,200,41,129,114,40,103,0,184,75,186,76,72,147,243,41,190,6,209,245,226,219,111,170,244,224,10,224,178,235,117,183,154,204,75,180,234,173,24,78,195,64,174,72,110,48,59,89,242,11,175,160,99,48,205,117,11,207,180,155,5,146,132,48,208,89,168,32,147,226,183,228,52,85,144,20,180,65,121,42,150,157,21,180,68,167,82,241,166,239,181,86,128,227,95,9,138,73,194,196,229,224,251,122,54,35,51,29,179,21,101,9,40,194,186,255,90,180,158,159,102,118,54,55,106,212,185,173,117,28,222,61,151,16,216,227,157,73,237,142,28,220,247,33,92,83,189,29,14,115,214,7,242,24,22,57,247,129,174,203,160,143,100,134,76,79,192,125,254,24,168,155,100,75,230,155,53,237,81,7,193,146,213,235,23,129,93,61,170,72,204,16,82,107,69,47,212,199,14,204,248,63,255,30,205,121,99,232,81,220,150,102,89,239,71,199,163,22,215,122,77,182,170,84,56,59,180,154,194,29,121,108,65,206,92,38,146,240,251,174,163,176,238,8,123,49,192,76,83,136,166,77,225,37,83,28,211,113,114,35,152,237,4,19,24,32,159,182,23,181,239,108,139,102,140,209,13,143,189,215,58,241,156,142,17,190,194,99,240,127,247,232,130,59,139,134,64,95,237,94,38,176,164,220,183,33,226,187,74,238,2,249,140,152,228,170,64,67,32,241,233,51,9,70,38,153,166,123,238,57,78,68,122,210,188,76,26,241,238,131,130,247,213,50,133,142,14,54,162,64,21,234,125,141,24,123,128,224,186,170,79,17,165,130,193,166,184,215,237,147,106,119,164,26,101,196,59,107,239,214,37,25,75,130,122,103,208,115,130,2,3,215,245,177,102,30,136,33,208,113,51,76,26,145,212,77,14,52,191,109,158,9,120,66,109,164,69,179,75,3,134,204,192,62,154,165,209,5,85,153,90,82,160,199,12,31,220,172,126,209,198,21,232,27,233,174,68,232,138,208,9,84,246,233,168,4,57,224,179,114,183,33,130,242,240,229,49,119,95,195,171,122,178,78,19,42,180,1,194,68,160,216,70,117,59,164,33,0,133,3,112,235,5,5,150,97,73,108,93,73,227,148,46,224,75,204,48,88,79,100,178,157,125,204,42,173,174,13,183,106,193,115,219,78,222,244,32,186,190,244,237,59,166,37,124,142,63,249,93,60,214,153,45,174,42,170,163,16,151,32,166,182,164,95,159,158,22,52,183,234,122,78,247,5,120,241,138,38,225,6,149,63,41,231,249,15,23,194,55,146,223,119,187,144,26,102,196,142,4,144,128,220,248,2,127,62,120,155,219,51,30,12,94,65,12,79,235,209,11,109,93,73,61,68,244,58,254,186,161,137,146,95,128,101,245,121,204,152,73,213,119,18,107,68,238,211,217,223,47,78,244,190,127,150,178,215,87,188,208,144,13,127,54,191,199,176,252,105,144,242,107,136,241,218,133,180,194,201,138,220,188,18,3,127,203,158,138,211,218,217,138,142,156}, {170,108,107,60,131,132,128,43,44,250,95,132,116,16,223,162,161,55,237,52,228,212,14,86,143,141,153,11,116,18,94,5,119,140,186,127,56,128,64,207,136,149,69,156,55,117,209,72,120,224,85,78,213,80,103,86,32,107,177,19,123,148,174,169,181,51,140,79,174,25,217,184,232,22,225,117,196,58,180,13,23,94,185,90,2,197,50,77,31,111,218,59,131,220,231,152,162,5,21,226,117,119,83,42,219,18,16,19,42,25,236,135,111,16,241,132,108,157,184,229,174,98,21,124,198,11,112,173,82,27,52,120,40,110,146,83,56,191,111,42,15,154,84,140,98,167,137,249,138,161,207,77,220,173,228,181,180,186,83,222,22,197,175,235,238,14,58,158,1,183,187,236,64,183,27,208,217,87,121,255,150,216,124,215,106,115,107,213,169,153,52,166,160,195,195,1,7,43,0,173,22,195,161,142,225,233,254,187,125,212,128,152,35,245,19,202,192,21,186,68,20,85,166,63,110,226,232,183,164,192,26,239,23,82,27,177,222,240,21,250,30,201,248,218,82,197,170,4,124,174,251,41,111,65,120,66,28,116,160,238,111,8,187,253,137,40,181,39,170,68,192,105,203,94,207,202,60,206,220,27,134,228,211,223,121,158,211,17,248,170,125,214,60,217,236,159,242,10,220,74,145,120,42,94,249,222,99,173,189,229,195,136,128,149,55,133,128,128,244,196,95,234,189,120,104,52,95,189,24,201,106,146,189,129,119,190,178,70,220,158,49,77,103,173,213,160,238,130,255,219,208,241,190,18,206,4,167,5,88,243,144,167,188,101,214,207,98,28,0,161,64,230,204,229,177,122,162,61,81,184,124,175,19,216,183,41,37,84,140,52,79,25,239,55,57,38,34,79,57,235,65,156,130,199,93,28,154,151,46,50,173,7,30,98,182,188,92,12,155,248,85,155,137,178,148,133,104,124,164,78,85,92,141,34,28,180,246,187,77,54,36,13,188,225,255,197,143,21,161,120,56,74,137,60,8,55,28,95,175,237,241,203,220,20,96,128,47,74,64,55,186,172,168,214,101,63,147,221,43,90,249,17,229,118,141,176,18,109,71,41,174,136,30,27,43,182,72,238,51,89,74,116,50,170,155,130,209,43,13,138,123,235,17,130,85,55,220,188,113,35,222,103,234,63,200,255,21,223,99,111,214,244,178,35,67,78,52,99,113,168,83,153,147,30,170,107,51,82,17,57,215,82,45,141,252,75,168,43,113,179,107,72,207,131,69,59,207,17,122,172,110,29,235,103,169,46,166,185,100,233,138,167,215,149,170,238,242,26,123,172,214,2,68,128,164,189,24,20,244,142,170,90,233,36,234,156,3,199,69,119,134,24,197,219,226,166,75,197,97,193,19,170,39,16,17,36,10,116,240,170,129,34,193,220,214,22,32,109,209,31,200,154,160,19,42,100,60,143,198,90,115,91,91,52,234,107,244,99,59,45,161,181,13,255,45,78,33,209,73,138,181,184,103,197,226,123,93,182,83,18,199,74,65,220,62,150,13,110,197,3,55,228,221,98,195,185,55,57,165,174,29,74,210,144,245,36,252,47,205,163,67,80,229,104,252,0,94,38,142,216,66,124,68,234,91,147,180,11,218,132,38,57,36,228,90,218,198,71,145,20,225,122,247,215,100,174,71,41,150,252,83,179,53,233,216,201,137,236,255,104,62,44,35,248,95,87,120,242,154,183,110,58,109,194,104,117,114,129,32,101,156,220,155,20,84,86,182,139,207,108,15,222,72,38,53,236,57,206,56,42,231,139,7,161,142,9,95,45,198,123,230,73,64,221,191,213,87,17,124,165,155,164,219,58,70,177,251,160,8,89,193,6,71,165,57,204,51,169,165,61,185,67,153,11,185,253,233,167,210,118,67,168,239,50,155,136,58,173,148,221,239,154,158,244,39,194,46,239,45,145,195,101,93,63,165,116,159,73,229,51,6,35,129,188,250,166,51,54,92,118,255,94,236,60,168,92,143,207,209,173,206,118,9,50,15,215,81,99,154,176,151,124,89,165,165,20,83,147,139,99,210,191,32,127,205,91,225,1,192,38,167,223,237,80,254,80,53,103,161,143,79,239,248,92,55,23,153,179,33,24,152,138,250,93,0,250,67,143,105,160,173,237,117,163,82,165,195,69,47,180,234,242,228,38,95,161,33,136,71,32,51,34,24,124,197,192,131,195,1,63,96,26,146,133,49,198,33,228,237,11,165,243,58,25,69,170,28,230,131,46,196,111,205,19,157,154,144,209,172,244,52,243,75,220,213,55,20,81,30,17,231,82,5,55,16,205,151,125,247,191,47,239,35,97,17,155,22,209,169,210,33,26,6,244,129,179,227,7,187,27,116,221,240,130,194,225,67,215,239,139,134,239,0,220,248,94,91,154,222,223,139,47,58,150,32,241,37,132,171,203,175,59,225,137,242,56,69,10,173,142,248,83,10,76,180,64,208,215,89,115,53,68,186,229,248,62,157,244,116,195,170,81,60,241,225,162,191,156,29,41,211,36,207,150,140,17,3,146,157,109,93,224,124,74,195,219,1,228,217,186,175,212,227,120,255,118,22,98,182,82,229,25,98,165,185,230,170,21,229,152,74,175,170,86,243,23,226,117,36,165,80,77,239,34,255,123,85,126,156,185,62,67,78,102,55,76,8,161,223,30,73,72,95,113,105,171,248,219,177,23,159,93,21,250,204,63,11,185,212,80,50,27,244,46,12,251,237,87,9,25,255,41,129,182,209,104,56,230,177,234,105,177,214,95,84,248,198,79,114,88,45,175,70,246,116,31,177,211,59,0,9,189,53,222,46,20,180,155,154,136,121,113,43,38,190,77,64,183,91,216,89,205,10,183,133,255,250,74,219,196,61,111,72,181,102,67,113,149,219,95,194,213,103,39,24,14,232,89,42,128,81,205,246,139,116,187,251,121,7,50,215,144,107,229,174,249,186,178,14,88,240,198,87,31,122,75,252,211,145,132,20,159,63,178,166,206,102,31,69,12,200,17,170,22,115,87,36,43,201,94,122,241,7,209,113,157,54,173,48,51,126,218,234,182,191,189,202,96,236,31,118,189,19,68,167,54,173,168,122,157,246,231,98,154,33,194,109,12,3,254,119,206,40,236,114,226,108,19,167,127,121,91,123,78,228,214,159,105,236,80,209,230,128,178,205,210,60,125,143,13,101,54,156,25,106,158,231,94,87,203,142,112,144,13,81,198,226,214,220,95,56,117,234,57,25,7,74,32,197,28,239,184,7,173,116,27,151,9,180,130,201,232,4,251,172,53,118,154,67,135,53,110,37,184,142,169,116,105,69,14,143,219,17,52,237,119,32,94,51,223,210,214,227,212,42,77,94,9,91,201,10,58,45,80,177,76,29,76,244,189,218,190,107,138,18,40,218,224,193,71,54,43,209,254,193,80,75,50,7,69,189,156,98,103,176,127,223,217,184,246,97,252,132,130,12,52,8,65,43,193,194,174,87,4,237,79,172,143,110,200,116,101,93,38,135,54,176,121,214,94,1,120,177,5,145,97,47,154,121,119,157,74,118,123,122,229,1,88,203,75,64,139,81,94,189,220,7,101,168,0,28,82,248,33,217,55,6,97,161,158,64,196,107}, } ; static void test_decode_1013x7177_impl(long long impl) { unsigned char *x = test_decode_1013x7177_x; unsigned char *s = test_decode_1013x7177_s; unsigned char *x2 = test_decode_1013x7177_x2; unsigned char *s2 = test_decode_1013x7177_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1013x7177_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013x7177(impl); printf("decode_1013x7177 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013x7177_implementation(impl),ntruprime_dispatch_decode_1013x7177_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013x7177; printf("decode_1013x7177 selected implementation %s compiler %s\n",ntruprime_decode_1013x7177_implementation(),ntruprime_decode_1013x7177_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1013x7177_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1013x7177_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1013x7177_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1013x7177_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1013x7177_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1013x7177_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1013x7177(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013x7177")) return; storage_decode_1013x7177_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1013x7177_x = aligned(storage_decode_1013x7177_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1013x7177_s = callocplus(crypto_decode_STRBYTES); test_decode_1013x7177_s = aligned(storage_decode_1013x7177_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1013x7177_x2 = callocplus(maxalloc); test_decode_1013x7177_x2 = aligned(storage_decode_1013x7177_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1013x7177_s2 = callocplus(maxalloc); test_decode_1013x7177_s2 = aligned(storage_decode_1013x7177_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1013x7177 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013x7177();++impl) forked(test_decode_1013x7177_impl,impl); ++test_decode_1013x7177_x; ++test_decode_1013x7177_s; ++test_decode_1013x7177_x2; ++test_decode_1013x7177_s2; } free(storage_decode_1013x7177_s2); free(storage_decode_1013x7177_x2); free(storage_decode_1013x7177_s); free(storage_decode_1013x7177_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1013xint16.c0000644000000000000000000016266614705505543023017 0ustar rootroot/* ----- decode/1013xint16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1013xint16_checksums[] = { "5938f68c9c3c3631517ca16dcadd1e96b2553bd6b494161c901c1db455e21173", "fe23340654861a9e08289b59a9901d646fd8b2cd98b628e8f34889763b7c2a91", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1013xint16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1013xint16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1013xint16_ITEMBYTES static void *storage_decode_1013xint16_x; static unsigned char *test_decode_1013xint16_x; static void *storage_decode_1013xint16_s; static unsigned char *test_decode_1013xint16_s; static void *storage_decode_1013xint16_x2; static unsigned char *test_decode_1013xint16_x2; static void *storage_decode_1013xint16_s2; static unsigned char *test_decode_1013xint16_s2; #define precomputed_decode_1013xint16_NUM 4 static const uint16_t precomputed_decode_1013xint16_x[precomputed_decode_1013xint16_NUM][crypto_decode_ITEMS] = { {31782,20057,2688,22103,38817,5759,26006,60032,37514,53695,28892,22904,58001,39580,28324,6016,4813,17208,20868,19387,17492,53713,22928,5118,22942,35620,58727,43130,1790,51387,4252,22161,60500,49775,15951,50327,49507,14045,26171,22175,3779,7934,57934,57267,6348,25308,8175,58620,44070,54061,6476,6525,40224,22118,1731,21643,6211,25074,31456,54210,13085,33969,55357,33643,52274,47055,15387,58483,61132,4592,55808,37985,39875,11960,55375,16353,55992,33102,28972,4504,8089,21727,47363,64178,49238,27584,9870,21006,19990,24661,36914,13110,33599,28508,62851,2816,31249,18560,57355,15895,30299,36062,60098,41799,22175,28894,28085,49434,40436,44723,33880,56134,57782,44646,49133,41267,6060,54030,23301,41418,62683,26157,16739,46363,44494,55573,21966,14551,39961,388,698,44172,7511,53536,47219,54799,8102,5507,25782,3793,30391,17565,47274,51436,44910,37128,33419,32198,37571,62147,3113,26252,5383,35366,47057,59897,39098,22918,50222,28174,28726,53287,54254,6885,64530,7147,45541,25017,52549,9178,20664,59560,17739,39972,24533,58616,58685,21656,22252,21848,13503,44220,34440,34546,32505,12145,49130,45100,44634,33728,16391,59344,51148,31164,36675,48484,49445,58591,4706,49963,38549,21785,18606,48420,53313,45262,31709,49624,57390,25611,34238,46054,16078,28025,52116,52564,31400,7604,22851,45012,33708,58692,13835,13238,49177,28016,6549,13301,63879,23101,14585,3116,9655,13318,23044,31151,20461,462,47837,8526,59721,10626,35978,18309,27761,60507,64319,5005,58895,15710,37076,43859,38575,18994,48340,13406,44792,33363,11278,22018,62200,20553,29968,31495,63916,49039,12298,21096,2768,43327,31432,1477,60991,22205,47439,31325,38406,22977,23950,48910,34601,18142,60384,38958,63672,13593,38751,43614,23854,33540,62526,24869,17343,31626,30266,35795,55898,27547,54914,37882,11641,34793,54788,42925,42671,31540,47795,14516,37743,572,29986,56830,13740,19631,23907,61804,4859,26369,61823,12127,28973,54673,25626,55414,44932,18619,50789,5625,36598,7061,37447,26062,51328,15704,32861,21361,22225,10552,45626,53285,57895,7612,38169,25961,58924,41337,5512,2799,17720,51820,25583,48355,42527,25860,31608,25723,16256,28071,34561,54102,43897,5640,27799,16652,12312,41230,8460,9437,2795,53497,22013,42222,19968,23527,41178,49228,11930,56656,36810,23954,38223,36623,6222,11158,30866,30979,46382,22322,11544,27627,1769,21203,35390,17648,13658,53772,15812,44219,11299,26972,7727,3300,17668,35621,46817,43823,61789,21078,1975,53244,4672,52139,37248,32977,35975,50544,21579,26975,50657,27634,62465,20112,8502,63161,8040,39532,9850,3610,12900,52000,31961,37499,36947,63905,51856,42714,22662,54509,29313,16622,37662,11414,62931,28242,7709,15397,28646,15968,34462,1598,61018,60817,28363,13870,35000,51504,55168,42588,10791,52824,32829,51799,35175,40037,12949,29779,24652,53997,65248,65079,44870,26656,27001,8018,1234,52063,19153,39443,7207,16013,22251,47651,64483,26776,52753,36739,56667,41708,2268,900,57121,50017,11712,59539,6427,14710,33850,30178,50747,52740,49080,47101,43889,30308,62929,64053,40728,3165,6003,838,47360,53771,28360,59922,21140,2141,34023,55424,51476,2776,46184,18914,29142,64231,18522,42995,57107,9560,18041,30188,45926,21571,12963,55949,12952,52042,20346,7865,46844,64998,56645,64165,13716,4776,22135,32602,52351,12526,14684,18047,40603,2416,62116,51188,45104,53575,50265,11365,5393,11204,13821,57092,15132,34288,14792,11393,15055,27946,52491,41973,4920,13704,17545,39800,2165,10844,17677,38385,44553,55134,22364,15123,2955,36751,50912,30068,9228,26805,42333,12140,45909,3128,28581,45098,34384,17143,12477,58250,42800,24445,32540,8293,42337,39361,39591,12137,22390,21983,27390,6757,25327,51977,3216,7113,19291,49505,18108,21016,1045,11151,28388,42354,58971,44786,18819,26959,57719,47548,45972,39490,47122,21832,43241,23368,47750,19831,47429,49765,6672,14009,44698,20824,52189,50243,22332,44057,62899,30805,4753,12325,6714,1563,35064,14659,22472,51574,33700,30360,59585,3640,41835,30217,63119,17394,62329,22225,20604,59313,39320,25668,13308,8843,46963,28191,29836,64991,48989,61541,11077,63614,31771,39742,30892,9350,52066,43889,1600,48829,28635,52398,64570,55576,51447,26902,42043,2676,4049,9497,24700,41942,9672,9345,24445,47631,21262,47210,60775,60467,33381,20114,15826,30762,22060,9623,10327,31622,30883,22600,22204,16088,9229,16036,42671,35481,36183,51091,44003,23799,22801,61898,13065,54365,38042,31810,36398,44021,13606,24779,14072,28492,48362,11515,10535,23753,22971,43091,4877,63122,59855,33080,59652,52499,34089,60159,10359,46630,21783,46869,29056,56585,47969,50562,64903,32416,31240,45695,29245,45734,16314,35507,47488,27637,14275,63708,62716,56959,29452,55000,30422,33955,5906,23411,24628,4244,56265,14940,42314,28104,12505,33547,43686,41834,14405,60176,9530,8269,46879,32191,39327,28241,16349,1125,13636,16859,18247,35721,31889,39380,52499,24832,34887,18189,13133,19294,15206,18357,17459,57982,32571,48357,29369,63654,31595,61281,14307,41687,19988,36740,1744,47769,59554,35987,58387,44354,61681,21213,5187,19750,60029,61524,31421,41266,18097,53805,12509,49924,30827,23038,7423,33308,8116,36184,15244,14254,46193,19463,62203,54016,42139,3993,43380,21564,12889,39166,22887,57209,8380,10440,16500,44256,42334,50171,3656,23483,53583,49231,51416,49761,34480,48502,26653,35300,7068,4690,64987,10985,52061,9883,44590,55979,45526,12881,49141,33450,17682,47465,28883,49981,62356,17566,14635,15668,4332,7504,39063,45912,36165,17636,36349,11758,62471,28365,41909,57064,59998,13005,52013,8828,63622,2710,6769,56913,51155,41952,240,49882,20394,54829,42633,51801,9716,15630,53581,57661,55149,63966,1710,60010,13357,52897,58757,13709,13292,45263,22332,57521,40479,8212,5903,49121,12332,52621,8773,37071,40966,42450,64912,25592,17389,11084,11184,38327,51814,15888,62911,61523,58981,99,3483,28421,11818,22031,54556,60538,55612,62886,40202,11891,36984,29118,33136,24075,19742,28887,14934,35930,12316,56583,14599,9915,38903,2612,49896,55030,33109,31954,43445,15441,58838,55450,12978,9421,38448,19222,4101,50939,46260,15288,17910,34551,44995,4913,25629}, {29341,22869,52969,31763,31265,44258,19916,27404,4588,23066,38464,33178,23433,62030,12685,27325,18724,14442,23887,37618,945,45490,137,31039,43526,18302,12287,3173,36344,12911,143,47144,7497,63245,20163,1604,31451,44759,25420,14889,22506,7766,1361,17718,54919,27265,61133,62731,3152,6765,38113,2827,395,34362,53618,6275,8936,36706,26871,38041,20952,57237,11429,27280,21897,32902,51317,18684,52209,20637,57823,56480,8867,63572,40169,41038,12159,34832,24904,4566,25459,2535,34015,36460,65171,9871,53696,8803,15923,12677,34084,48454,1017,48986,35392,39183,44226,601,17609,20295,20128,64967,43156,51693,48157,6091,16522,20513,46631,28779,43193,24030,37992,14616,15175,21345,55032,12606,58070,58739,52297,49465,58940,20920,60451,31583,9831,26596,49708,22622,28264,2870,13968,64116,25018,47687,42077,9007,6710,47879,16827,60312,40920,43697,27731,16636,32425,42464,12183,61904,32632,62191,34462,45261,35044,18404,1620,58044,57628,62836,34859,60604,62557,19420,29831,51667,37078,21846,2910,12207,11297,12696,42092,26998,32527,55930,28160,58648,17984,42033,22283,335,41171,40312,44133,11528,63858,44191,49093,12184,50172,4770,33122,29925,12718,37935,9981,50422,43133,48424,46708,1251,47193,58797,30050,36352,23052,9627,3848,8710,6198,57755,27370,62916,58630,38657,49566,42698,21902,63996,9724,19666,60533,60911,55946,60648,25902,50743,56542,28431,53378,62251,3557,18958,30337,15873,2450,59895,53029,36803,47031,4549,61934,12369,42589,53552,9250,12439,39317,29171,37044,62481,59629,18031,53450,3920,12264,45662,53361,34941,52579,31035,56155,35510,6026,27495,53816,61699,47657,6061,12840,34818,41859,42501,47553,869,52413,25200,39669,24842,16190,54336,6376,31500,60618,44551,144,58631,50529,6830,45884,1330,40627,8096,50141,46677,42933,50492,59705,36308,2210,11115,18438,8495,482,28005,25883,40822,52353,39023,42066,34335,65462,46219,31279,32875,20700,18498,24460,62462,15608,16206,32754,39901,63592,14705,7941,43544,64874,20988,49922,56889,32216,40469,2655,44357,53857,5321,52009,52875,24754,45901,2967,25904,47733,51593,19534,21170,44829,10506,47945,50264,46767,11294,53732,29150,2914,37114,37387,37474,47260,11871,3373,54216,41668,47910,55861,42617,65054,26031,26527,7485,12440,4674,9560,65324,63697,46837,53272,48903,37836,33184,24285,31666,29939,49860,28409,24474,37353,51114,6957,29321,18258,21058,2194,5348,17953,39840,30167,39283,35755,49926,54797,48721,39384,13154,37099,28612,56630,21462,6588,9900,57103,31476,35655,41638,2192,28160,51880,24369,1123,18687,3124,44027,25667,52245,42184,48347,59026,50731,14408,10011,2695,21162,44717,50558,56586,32675,36817,65336,17620,33254,7645,40139,60157,49524,39890,15476,39396,17691,15498,30009,6739,31916,1411,59193,48235,27298,41830,36206,63181,28463,23765,44534,27472,21914,18228,62800,1812,12309,44046,10738,1482,10456,44876,56390,18230,11951,14680,55088,31305,50357,54830,21827,4418,49645,42502,65201,167,29505,20447,50922,14984,3308,57473,20073,45091,10527,53019,33274,53375,12535,65463,32368,26634,56630,64726,9950,55621,15537,20364,24274,4895,8171,29085,4949,11321,55881,61924,43960,47952,20896,20932,29126,64766,38523,27305,62026,2258,40794,24014,27307,26368,18165,44172,34691,22315,59556,27248,17214,3603,2803,16322,45688,61872,37903,60696,36791,61619,8319,36938,19049,23125,26565,54601,59853,51741,8072,44063,59835,22109,32997,42942,40470,19048,24041,60160,25867,16922,24981,4288,16453,44146,55724,60456,6533,40074,55883,20104,49008,42909,63981,38853,47080,13139,6221,23005,46789,4361,37998,53185,32332,39840,8179,38256,42256,25905,19074,65489,53541,33071,35884,50995,20771,41206,25507,22584,31228,54273,59493,22475,28979,36772,61454,53128,38264,24809,46759,15311,4922,57274,25508,46500,46671,28848,53273,51645,337,20033,24858,34933,44768,61080,26084,7342,27728,57137,44217,35816,62931,19584,8234,10064,54219,17898,12073,32612,61446,26865,26751,65143,22753,41722,59518,16332,64700,190,32629,10085,24049,27582,33948,20785,17503,57945,29702,34287,60695,46616,35586,38956,46687,29587,8627,34784,52475,62708,39046,50055,64941,53751,45211,21664,51154,1355,24623,3710,26936,11138,45227,35884,32097,44107,38535,9831,37875,39209,52580,7037,37535,11432,46514,8221,44968,56249,9753,41675,350,27369,55297,30817,57044,3334,37618,51608,27593,56420,6437,26362,26677,63570,14429,33718,19816,7929,19221,3283,51517,25995,27295,4347,26014,8527,12705,19316,52997,35588,54869,64099,46518,14059,29026,3703,38210,4231,40246,54353,7010,60965,56670,191,46508,47651,32204,30476,32924,13923,27356,59350,45095,4742,21935,43492,37229,6772,65505,20300,6298,20157,58205,23856,50401,52306,28542,8940,7250,42074,10965,48722,35877,59344,60004,8995,8072,56706,49410,59998,59946,51388,50862,29059,22538,29361,29271,43716,22848,62181,10906,31783,710,29379,54972,11553,61199,61563,13021,47789,31088,39251,11651,49000,23101,27197,18021,44413,45432,29713,17946,37385,42737,27353,39255,24436,27573,24701,49597,43682,27495,22189,46623,9696,36788,26164,20700,17666,55587,34657,37988,7869,28605,47072,24143,54176,10558,51136,38519,30244,27880,46829,6723,36576,11265,34507,30700,38684,29687,1201,62980,43510,48066,50723,8013,50367,63611,40823,64976,36479,6393,22126,17056,33410,60221,27466,56888,10793,40648,9242,51799,56322,64325,41318,6921,61292,61603,62101,56987,4422,24996,26850,15061,14815,44542,37305,15844,63898,26014,35148,2609,65380,35592,25811,48388,36393,32506,61383,51648,48013,31305,34740,39663,1403,64389,22974,14575,20409,23013,39603,13464,11437,76,49641,44781,58055,60968,50132,46661,12764,30971,48580,42182,48420,2706,57569,21372,18966,63201,26696,58485,63547,11208,25280,5864,14326,57794,62018,54598,59984,20352,2234,27235,29992,30816,65134,20541,60588,47312,15712,19930,21703,47704,8462,19806,54260,54201,44693,40778,9079,2491,22601,45336,59836,23435,7888,38153,20504,19764,48345,56820,58724,50799,51529,2307,40979,5566,29858,20332,38748,45416,14790,36177,37179,56129,41271,59091,24765,46522,55904,11841,15985,59746,12826,25350,55574,53272,43631,17028,37456,35471,53158,39956,31411,28713,36284}, {55954,45007,33599,15653,41406,988,34966,15802,40157,36816,6283,13988,15022,3653,14620,36437,58730,14954,9912,52107,46510,10895,50691,20083,20634,12379,42135,30469,46206,27970,7933,62429,33877,22444,50643,3261,64760,42155,43470,28115,29940,14822,28692,1253,29555,62195,62775,51254,6428,29879,4617,15892,2831,11088,47837,52663,15881,47129,63118,64743,45363,48941,65098,38327,17293,20061,22131,236,28346,54087,44909,60373,24435,23343,10801,43932,52885,43476,23848,47876,30874,11680,45554,43646,51487,36574,39717,46041,16188,15283,51128,59336,38261,7650,46934,64190,957,39462,27893,23243,32084,25676,38451,38917,61383,51540,26546,18603,2237,39010,40066,62868,50442,44205,59506,61081,54121,3544,50886,39412,10248,35322,43924,52975,54623,38566,49768,34441,60636,8457,30295,41222,10675,55011,32632,41456,8538,19011,33507,32410,62865,43708,1598,26586,14701,17183,1526,32182,55453,57552,19271,13205,52391,22767,1655,21935,64199,13296,60759,36113,12389,503,39904,10341,47295,56625,43709,18973,35465,54395,15082,18482,6415,58690,36277,52137,14531,59254,50173,21918,15778,43932,57972,3590,63023,9792,61105,59485,6019,30844,51261,26104,46853,29933,3264,54198,55965,55926,53345,9555,35835,53813,16052,32497,29520,4859,2497,45060,875,48680,23603,62464,1582,49961,10000,9957,62636,52926,2400,55424,47119,49088,4215,15962,46334,5368,6523,11733,15306,29982,58105,38133,5808,44526,58052,58811,45686,63253,54796,44003,46442,63773,26827,45582,7464,10664,57812,26175,38238,30549,11067,35831,62322,32496,8305,31121,56974,20841,48676,39399,29200,2289,31325,47540,17967,14697,11667,11131,10583,62727,46893,61822,38602,60106,28583,40126,59362,25611,47566,10059,42677,43046,52819,21147,35150,28810,64480,25750,18971,26548,6982,26793,5380,64399,63339,62900,15138,62426,42978,23215,34190,63157,6547,62249,21713,40448,46405,32813,53709,45912,61109,6428,35648,33552,62479,19560,53532,22095,65154,43034,59001,7982,24404,17621,53575,9674,33747,34735,35188,22830,4746,30212,1734,30465,24065,24740,30179,25360,16794,62900,4664,15890,39494,61725,27043,19538,28435,63427,37873,5753,55778,28842,53006,57030,10190,60465,22417,58748,38694,2929,41832,62485,36016,20661,34512,39543,41952,11238,5042,32056,19176,56303,30881,40770,55701,22217,36378,15394,11220,40139,12682,16372,40155,61374,34058,5380,15576,44076,27116,22922,10012,57004,54254,5808,63120,14227,65439,47310,22189,32682,64260,51759,60687,31105,30170,10229,5480,25112,48431,53834,58863,30564,682,37846,28370,15426,13542,34505,25706,41754,8042,18061,14650,59720,2959,43169,59197,12441,49513,10988,4852,36092,29427,27485,52404,23270,46143,3316,48759,7758,13305,18826,28899,65149,60150,64482,60194,55187,17018,3311,58266,44606,21125,49850,48985,43138,40500,13304,23165,41041,59070,19769,37570,43680,12065,55709,44813,12972,57330,32059,50698,1258,25878,56126,51711,1983,97,31771,6585,54874,48135,28762,24267,22966,41733,56596,64487,59087,55317,57810,42569,64521,2081,22007,10280,7483,17544,58041,56833,54995,40791,55627,56432,3907,15477,44320,51017,37955,32779,28038,8447,46427,12803,34567,16855,40942,33624,59084,24585,4215,56807,45139,9930,13813,56339,31609,44713,35898,37195,375,19862,19535,57581,25183,38135,41777,40137,61260,3140,2637,36561,26039,15413,62443,30236,15479,14861,40179,8892,38907,11976,20222,32423,60626,16623,50074,63606,42448,29971,59629,59331,16775,59178,48894,33616,63771,1751,36559,56347,26613,15025,6870,46710,49158,17005,43970,27626,27148,51939,19909,17741,65269,15793,11007,59544,52909,18410,39805,31528,65053,96,35765,54182,63634,48099,61424,12101,26325,22196,39042,18744,45313,59549,52645,6926,63593,10327,839,52985,17192,17655,58564,12591,3896,3264,21345,22851,4096,56635,46770,11460,11479,38017,63620,63528,39426,51304,49000,56251,29932,23456,43056,53232,36102,10771,22745,39420,49129,42389,41995,46697,63546,41213,49118,61015,21255,56037,34122,19289,25232,30835,38545,50015,52517,33527,47831,13583,2759,53199,51786,59283,46554,17769,63870,16324,14346,27217,7430,32676,51553,34381,2784,61810,49284,16184,846,57790,52746,26712,25003,12775,1786,20940,41767,2461,14207,58126,38465,3650,59868,12007,9950,51432,25537,62722,33183,32604,39239,33806,62592,9781,19207,6202,45076,45625,64728,60422,33268,58149,30270,60075,40706,22635,44224,18826,16512,65390,18595,64349,3899,61847,21852,8231,35312,19419,46255,16111,33897,29432,3824,42158,13398,11886,40050,30563,3073,29674,65362,1974,50207,15969,53928,34266,26186,11561,50316,46172,30312,21770,51506,13523,8893,45770,46808,54484,29309,36028,61851,38025,9999,48515,40838,61211,21399,51260,64282,36936,42666,27210,32667,33548,52391,27191,5375,58134,4212,43040,15484,19610,53266,46767,36633,44081,48064,15920,26830,60604,19194,25708,13542,23750,43647,22954,16988,7288,48775,9531,1322,17679,43857,58950,33598,6181,30611,3296,54449,62805,24457,62398,6124,38305,18620,23914,53178,56495,38389,56958,39404,45487,60430,7831,33531,40538,13784,18037,56825,22886,1848,20106,32428,45920,22304,20940,12113,10985,57146,49082,54550,52221,30901,6770,64673,65325,52141,36009,48400,69,1130,61177,36777,24638,34306,39705,54249,24681,58246,41824,51527,5965,8087,45249,58836,56646,11972,25653,27824,10629,27220,5324,2281,469,17437,46612,22873,46976,26237,37933,46692,224,41833,7222,31540,59297,27589,36945,30546,27903,15097,25004,32101,39602,16906,29043,31919,45748,29901,49583,54500,27484,60342,3596,36938,23916,4905,21639,56557,55862,6118,49567,17243,53790,11603,46394,35442,51254,31013,29147,14427,26679,39255,13580,62724,61920,36656,56909,51391,8967,65088,42042,21371,7547,24353,7091,27991,7674,737,8128,12472,605,52444,55366,62272,55457,6518,46980,9069,24178,17170,9887,24127,60070,43231,46705,64172,5480,56444,37634,28407,34530,24087,39470,7897,53898,45417,37192,52800,31189,28533,57578,37428,12268,26441,55655,15599,63426,15365,33756,23949,20575,39103,11727,21307,17947,65199,50135,58311,58197,15812,37847,8909,54,22199,47591,9513,32618,41342,41012,19939,33492,38140,60510,64247,52642,12482,12884,63298,32919,37421,34705,63462,65179,59565,2416}, {18625,25845,19217,15363,14683,46841,55537,65061,46977,25890,15199,36998,38278,29894,57959,17061,9577,28089,56332,24133,63493,64312,52019,11486,51202,63710,61319,42052,48579,6393,59705,2416,16874,45444,55451,23637,1757,39740,31292,3481,8880,61404,4106,63676,37459,21263,21754,57177,47976,18377,37093,41097,2803,5225,16325,39163,59933,30456,31160,4588,17354,35810,38809,43591,40976,52721,33166,59378,16262,59146,34303,46363,47863,30325,18380,29970,65115,11784,751,25837,51442,55252,41555,943,3579,32220,52835,28221,19167,28192,43939,63780,41729,41127,11274,20390,65434,24452,46665,41203,20487,51332,55789,48545,22082,41185,47191,186,32759,32387,18913,9693,44339,55506,3966,51935,18670,58737,18425,23355,42220,39422,57799,37066,43292,43712,4100,23590,16538,40549,39396,32136,29930,22240,61003,58585,38033,39740,29569,9987,21103,22852,13926,13570,46316,7509,32438,10342,55688,58972,52906,61836,49535,27688,32893,8871,16463,4506,3026,2400,61541,20930,6129,21714,63874,15299,63730,17850,34207,42289,47033,2359,32832,14659,4961,44699,53596,14239,11017,33705,56184,23817,47628,56020,12347,54999,51556,916,51050,64877,26039,34007,28740,16709,2882,57971,2730,42064,39095,45115,10484,40999,61018,57778,16298,4923,50346,56722,18755,61969,41350,47565,31972,27250,54611,39384,18709,61194,43769,23262,51047,1409,63374,15506,11936,6412,40750,42078,28557,1086,38271,15622,49272,25605,22386,29798,65424,39203,16013,15751,44609,38636,16757,20261,462,31124,18959,63905,33100,53385,5454,57729,9254,31373,33383,53338,59462,34904,2744,48620,27055,1329,21922,11733,8798,31283,49771,57461,26583,14193,27005,56234,11052,32473,477,28007,40391,55018,2820,8620,26180,42465,17647,8575,31365,35660,6715,3031,54625,61530,32342,60106,45965,5613,2448,34127,20668,10991,39069,60108,14753,47915,3268,20985,6820,32966,15863,60520,52502,3919,22512,16610,49808,15228,10895,53732,33993,12108,63576,37427,18671,39755,9465,9619,37810,45023,53141,9282,48020,64223,59915,20742,23037,35175,727,21698,41271,49768,25127,57716,31127,64973,38287,62194,4039,18311,49138,17736,20561,41921,32927,17582,59215,37101,12178,21524,33212,26178,9161,6089,650,31488,28941,59592,26495,61075,7289,15293,38045,54169,18561,48958,63399,9062,20278,6793,9697,7351,32905,47882,2322,58554,36087,50699,8068,64711,39991,18637,15937,7311,12111,36489,24213,59666,38641,28042,53726,23704,53965,5726,43072,62665,40505,22824,52871,51244,54188,64082,18079,43624,11588,34883,45239,30129,11950,23167,51895,50260,60178,63270,11944,54613,58924,35017,2082,18875,30276,63314,14461,50016,11955,28719,38002,43870,43231,3125,60257,55475,45676,27848,17208,36586,31396,3507,24052,28467,32463,44414,3046,19987,20967,33510,21685,54713,23030,40215,43054,52730,30855,15700,16294,19526,11957,45957,52753,613,46290,340,5083,39047,37540,21260,15595,29795,56126,34344,38159,24305,4995,20613,19663,13812,47289,7353,26731,16828,53098,25518,24667,19921,38661,51111,6725,30722,57060,50017,46779,5969,35482,61811,52199,55239,32011,40206,61201,55646,23907,10173,44083,21706,59308,55452,26920,5492,2078,19924,38509,51817,14438,14952,6238,35236,62023,17133,42804,63864,55383,53955,23038,5474,44579,29255,10865,20390,1557,58340,35575,50510,25382,44972,7254,7710,59229,30971,50237,113,28765,51699,31650,41260,52251,10880,10982,4854,63890,33424,38339,34384,12150,41717,14758,46575,63914,64721,18927,11949,31761,28505,65398,56382,7556,49899,47714,38296,60082,31790,37998,12935,49077,59302,32268,17302,34691,8903,37550,44910,38629,17280,31681,37299,38817,63831,16034,11307,3157,56665,54159,10155,39021,46346,62588,24250,56969,2981,47459,12742,49351,65467,38683,24594,2307,38140,43781,49411,3441,43328,38922,11586,30985,45583,64247,1312,64269,27693,39349,8807,37342,58392,17812,59180,24708,22405,65070,32984,38474,7044,58514,49333,54667,7816,45904,20022,21754,19352,54166,1831,737,60427,15195,38255,25871,63036,29381,58178,54628,19240,51790,27627,8780,5843,12317,61557,57684,18903,1853,65241,40213,63011,62416,43953,6622,2124,15319,17050,29147,50273,52743,38182,47081,16954,54409,47395,28303,23738,57375,11318,18805,34534,55600,5641,11192,11441,42485,55118,23811,39420,41696,45908,1019,47930,60201,40709,40163,18257,61583,2779,6505,46527,58045,13603,41810,8294,39262,65433,7683,3837,14146,5428,18644,18392,49369,38442,22924,41160,29274,1224,37802,46538,33573,2796,14836,19042,7281,20107,29182,32934,51585,57954,21589,54378,60036,425,61206,45407,36783,156,63704,11570,10011,62413,40556,47525,7228,23374,50051,11399,21535,7250,26583,1758,9436,53104,35054,25004,11932,11132,3673,11069,19828,59599,35186,31,63978,20245,27868,17925,47877,4231,42194,38735,2020,54498,35009,60352,848,61471,32346,33918,55770,48136,63461,22855,13326,31237,50082,29579,54407,36779,7681,49258,47185,14600,50900,60830,29227,38419,37093,20338,61957,45019,26984,7667,15704,30663,61001,2381,51189,5481,8459,61006,16624,36450,17025,42706,47541,8121,43901,1475,37799,38755,61497,39045,13009,923,27911,28521,1914,10462,8816,12437,44714,43665,10893,2680,57220,47015,13339,3734,20009,32472,357,41719,34256,34479,32206,7000,64024,36121,16997,18298,62984,18136,24421,38264,58233,33162,56679,57977,12408,32842,31958,39224,45524,64473,64845,47563,8349,16666,18356,24903,50506,54843,8882,47465,7686,61882,20811,37592,27947,42996,31160,45900,21586,48419,40082,58670,49595,8777,48252,57623,24675,4612,114,64487,10164,28710,31953,36017,6278,15922,30975,43411,40658,53211,62485,8704,65422,41016,39873,21358,30524,20569,45091,16397,18474,59618,17559,978,20383,5764,48001,38800,41741,22749,51571,31104,7844,15280,41020,49766,10302,43522,12791,53550,41551,56624,18805,57735,51394,24943,25731,63825,13417,30120,62247,43153,64152,17597,18219,1989,39391,15045,45360,2689,15095,38740,20338,41432,3540,6087,43903,1376,41835,27876,42937,64955,36960,54074,61080,50468,24345,61188,53892,38161,9008,57963,53959,39900,44075,35943,57871,64031,14407,21270,8673,42544,35527,63047,43059,37113,529,42846,2003,266,54287,26985,53569,39881,55538,63786,62094,12409,61660}, } ; static const unsigned char precomputed_decode_1013xint16_s[precomputed_decode_1013xint16_NUM][crypto_decode_STRBYTES] = { {38,124,89,78,128,10,87,86,161,151,127,22,150,101,128,234,138,146,191,209,220,112,120,89,145,226,156,154,164,110,128,23,205,18,56,67,132,81,187,75,84,68,209,209,144,89,254,19,158,89,36,139,103,229,122,168,254,6,187,200,156,16,145,86,84,236,111,194,79,62,151,196,99,193,221,54,59,102,159,86,195,14,254,30,78,226,179,223,204,24,220,98,239,31,252,228,38,172,45,211,76,25,125,25,32,157,102,86,195,6,139,84,67,24,242,97,224,122,194,211,29,51,177,132,61,216,107,131,50,204,207,183,27,60,115,228,204,238,240,17,0,218,97,148,195,155,184,46,79,216,225,63,184,218,78,129,44,113,152,17,153,31,223,84,3,185,178,250,86,192,192,107,142,38,14,82,22,78,85,96,50,144,54,51,63,131,92,111,131,245,0,11,17,122,128,72,11,224,23,62,91,118,222,140,194,234,71,163,159,86,222,112,181,109,26,193,244,157,179,174,88,132,70,219,182,225,102,174,237,191,51,161,172,23,14,211,5,91,202,161,219,244,45,102,99,65,27,181,206,173,21,217,206,85,215,56,25,156,132,1,186,2,140,172,87,29,32,209,115,184,15,214,166,31,131,21,182,100,209,14,183,118,157,68,170,184,236,200,110,175,8,145,139,130,198,125,195,146,195,242,41,12,140,102,7,21,38,138,209,183,249,233,186,152,134,89,46,196,14,110,54,112,39,208,238,211,229,26,18,252,235,27,229,177,185,97,69,205,218,35,184,80,168,232,75,69,36,156,213,95,248,228,61,229,152,84,236,86,88,85,191,52,188,172,136,134,242,134,249,126,113,47,234,191,44,176,90,174,192,131,7,64,208,231,204,199,188,121,67,143,100,189,37,193,223,228,98,18,43,195,149,150,25,85,174,72,36,189,65,208,206,176,221,123,216,193,46,224,11,100,190,133,230,179,206,62,121,109,148,203,84,205,168,122,180,29,67,89,212,175,172,131,68,229,11,54,182,51,25,192,112,109,149,25,245,51,135,249,61,90,249,56,44,12,183,37,6,52,4,90,175,121,237,79,206,1,221,186,78,33,73,233,130,41,138,140,133,71,113,108,91,236,63,251,141,19,15,230,94,61,212,144,83,171,175,150,50,74,212,188,94,52,248,174,83,130,14,44,2,86,248,242,73,80,16,117,7,123,172,249,143,191,10,48,104,82,208,10,63,169,200,122,197,5,63,238,189,86,79,185,93,122,6,150,193,89,142,93,14,191,41,135,222,70,224,235,46,152,184,248,25,53,95,151,94,170,46,93,4,131,62,244,37,97,191,67,138,123,58,118,211,139,90,218,155,107,130,214,250,147,121,45,233,135,4,214,173,167,175,166,52,123,179,186,180,56,111,147,60,2,34,117,254,221,172,53,175,76,99,93,108,241,251,18,1,103,127,241,95,47,45,113,145,213,26,100,118,216,132,175,187,72,101,198,249,21,246,142,149,27,71,146,206,101,128,200,88,61,93,128,113,83,209,86,56,41,58,178,37,208,39,226,188,29,25,149,105,101,44,230,121,161,136,21,239,10,56,69,108,202,239,99,227,188,31,166,4,101,120,123,123,100,128,63,167,109,1,135,86,211,121,171,8,22,151,108,12,65,24,48,14,161,12,33,221,36,235,10,249,208,253,85,238,164,0,78,231,91,218,160,76,192,154,46,80,221,202,143,146,93,79,149,15,143,78,24,150,43,146,120,3,121,46,181,50,87,24,45,235,107,233,6,211,82,62,138,240,68,90,53,12,210,196,61,187,172,35,44,92,105,47,30,228,12,4,69,37,139,225,182,47,171,93,241,86,82,183,7,252,207,64,18,171,203,128,145,209,128,135,140,112,197,75,84,95,105,225,197,242,107,1,244,144,78,54,33,185,246,104,31,108,154,122,38,26,14,100,50,32,203,217,124,123,146,83,144,161,249,144,202,218,166,134,88,237,212,129,114,238,64,30,147,150,44,211,245,82,110,29,30,37,60,230,111,96,62,158,134,62,6,90,238,145,237,203,110,46,54,184,136,48,201,128,215,92,166,39,42,88,206,61,128,87,202,103,137,101,156,149,50,83,116,76,96,237,210,224,254,55,254,70,175,32,104,121,105,82,31,210,4,95,203,209,74,19,154,39,28,141,62,235,86,35,186,227,251,152,104,17,206,131,143,91,221,236,162,220,8,132,3,33,223,97,195,192,45,147,232,27,25,118,57,58,132,226,117,59,198,4,206,184,191,253,183,113,171,100,118,209,245,53,250,24,159,93,12,115,23,70,3,0,185,11,210,200,110,18,234,148,82,93,8,231,132,128,216,20,201,216,10,104,180,226,73,214,113,231,250,90,72,243,167,19,223,88,37,121,70,236,117,102,179,67,84,163,50,141,218,152,50,74,203,122,79,185,30,252,182,230,253,69,221,165,250,148,53,168,18,119,86,90,127,127,204,238,48,92,57,127,70,155,158,112,9,164,242,244,199,48,176,71,209,89,196,101,44,17,21,196,43,253,53,4,223,28,59,240,133,200,57,129,44,207,58,42,109,11,205,245,163,56,19,136,53,137,68,120,155,117,8,92,42,13,69,241,149,9,174,94,215,92,87,19,59,139,11,143,143,224,198,116,117,12,36,181,104,93,165,108,47,85,179,56,12,165,111,42,176,80,134,247,66,189,48,138,227,48,167,125,95,28,127,101,32,97,165,193,153,167,154,105,47,118,87,223,85,254,106,101,26,239,98,9,203,144,12,201,27,91,75,97,193,188,70,24,82,21,4,143,43,228,110,114,165,91,230,242,174,131,73,79,105,119,225,188,185,148,179,66,154,18,184,72,85,233,168,72,91,134,186,119,77,69,185,101,194,16,26,185,54,154,174,88,81,221,203,67,196,60,87,25,172,179,245,85,120,145,18,37,48,58,26,27,6,248,136,67,57,200,87,118,201,164,131,152,118,193,232,56,14,107,163,9,118,143,246,242,67,121,243,209,86,124,80,177,231,152,153,68,100,252,51,139,34,115,183,31,110,140,116,223,253,93,191,101,240,69,43,126,248,27,124,62,155,172,120,134,36,98,203,113,171,64,6,189,190,219,111,174,204,58,252,24,217,247,200,22,105,59,164,116,10,209,15,25,37,124,96,214,163,200,37,129,36,125,95,15,186,14,83,106,184,103,237,51,236,101,130,146,78,210,61,42,120,44,86,151,37,87,40,134,123,163,120,72,88,188,86,216,62,13,36,164,62,175,166,153,138,87,141,147,199,227,171,247,92,17,89,202,241,9,51,93,212,154,148,66,124,46,142,245,171,38,53,203,96,248,54,76,111,234,188,251,44,39,41,201,92,187,89,83,168,13,19,146,246,207,233,56,129,4,233,19,205,41,133,255,234,119,40,38,182,23,85,21,183,128,113,9,221,97,187,130,197,135,253,160,126,8,122,127,178,61,114,166,178,186,63,179,138,128,185,245,107,195,55,220,248,252,244,127,222,12,115,216,214,214,118,163,132,18,23,115,91,52,96,148,16,201,219,92,58,74,165,200,109,217,48,11,131,166,170,106,163,69,56,16,235,58,37,77,32,31,183,191,125,159,153,81,110,221,63,101,4,68,53,219,65,71,71,137,139,145,124,212,153,19,205,0,97,71,136,13,71,77,51,94,75,102,59,181,71,51,68,126,226,59,127,229,188,185,114,166,248,107,123,97,239,227,55,215,162,20,78,132,143,208,6,153,186,162,232,147,140,19,228,66,173,241,240,221,82,67,20,38,77,125,234,84,240,189,122,50,161,177,70,45,210,221,48,4,195,107,120,254,89,255,28,28,130,180,31,88,141,140,59,174,55,113,180,7,76,251,242,0,211,155,164,153,15,116,169,60,84,89,50,254,152,103,89,121,223,188,32,200,40,116,64,224,172,94,165,251,195,72,14,187,91,79,209,79,192,216,200,97,194,176,134,118,189,29,104,228,137,156,27,82,18,219,253,233,42,93,203,155,38,46,174,171,218,214,177,81,50,245,191,170,130,18,69,105,185,211,112,61,195,148,243,158,68,43,57,52,61,236,16,80,29,151,152,88,179,69,141,228,68,253,141,238,45,7,244,205,110,181,163,232,222,94,234,205,50,45,203,124,34,134,248,150,10,113,26,81,222,211,199,224,163,240,0,218,194,170,79,45,214,137,166,89,202,244,37,14,61,77,209,61,225,109,215,222,249,174,6,106,234,45,52,161,206,133,229,141,53,236,51,207,176,60,87,177,224,31,158,20,32,15,23,225,191,44,48,141,205,69,34,207,144,6,160,210,165,144,253,248,99,237,67,76,43,176,43,183,149,102,202,16,62,191,245,83,240,101,230,99,0,155,13,5,111,42,46,15,86,28,213,122,236,60,217,166,245,10,157,115,46,120,144,190,113,112,129,11,94,30,77,215,112,86,58,90,140,28,48,7,221,7,57,187,38,247,151,52,10,232,194,246,214,85,129,210,124,181,169,81,60,214,229,154,216,178,50,205,36,48,150,22,75,5,16,251,198,180,180,184,59,246,69,247,134,195,175,49,19,29,100}, {157,114,85,89,233,206,19,124,33,122,226,172,204,77,12,107,236,17,26,90,64,150,154,129,137,91,78,242,141,49,189,106,36,73,106,56,79,93,242,146,177,3,178,177,137,0,63,121,6,170,126,71,255,47,101,12,248,141,111,50,143,0,40,184,73,29,13,247,195,78,68,6,219,122,215,174,76,99,41,58,234,87,86,30,81,5,54,69,135,214,129,106,205,238,11,245,80,12,109,26,225,148,11,11,139,1,58,134,114,209,131,24,232,34,98,143,247,104,153,148,216,81,149,223,165,44,144,106,137,85,134,128,117,200,252,72,241,203,157,80,223,225,160,220,163,34,84,248,233,156,78,160,127,47,16,136,72,97,214,17,115,99,231,9,223,132,108,142,147,254,143,38,192,209,99,34,51,62,133,49,36,133,70,189,249,3,90,191,64,138,15,153,194,172,89,2,201,68,71,79,160,78,199,253,148,168,237,201,29,188,203,23,138,64,33,80,39,182,107,112,185,168,222,93,104,148,24,57,71,59,97,83,248,214,62,49,214,226,115,229,73,204,57,193,60,230,184,81,35,236,95,123,103,38,228,103,44,194,94,88,104,110,54,11,144,54,116,250,186,97,71,186,93,164,47,35,54,26,7,187,187,65,152,235,216,159,177,170,83,108,252,64,169,126,224,165,151,47,208,241,120,127,239,242,158,134,205,176,228,136,228,71,84,6,188,226,28,225,116,245,43,136,188,236,93,244,220,75,135,116,211,201,214,144,86,85,94,11,175,47,33,44,152,49,108,164,118,105,15,127,122,218,0,110,24,229,64,70,49,164,11,87,79,1,211,160,120,157,101,172,8,45,114,249,159,172,197,191,152,47,252,195,162,18,98,129,229,116,174,49,47,148,253,38,246,196,125,168,40,189,116,182,227,4,89,184,173,229,98,117,0,142,12,90,155,37,8,15,6,34,54,24,155,225,234,106,196,245,6,229,1,151,158,193,202,166,142,85,252,249,252,37,210,76,117,236,239,237,138,218,232,236,46,101,55,198,222,220,15,111,130,208,43,243,229,13,14,74,129,118,1,62,146,9,247,233,37,207,195,143,183,183,197,17,238,241,81,48,93,166,48,209,34,36,151,48,149,153,243,113,180,144,17,244,237,232,111,70,202,208,80,15,232,47,94,178,113,208,125,136,99,205,59,121,91,219,182,138,138,23,103,107,56,210,3,241,41,186,173,23,40,50,2,136,131,163,5,166,193,185,101,3,189,204,112,98,245,154,10,97,62,63,64,212,232,24,12,123,202,236,7,174,144,0,7,229,97,197,174,26,60,179,50,5,179,158,160,31,221,195,85,182,181,167,60,197,57,233,212,141,162,8,107,43,6,72,47,33,226,1,101,109,27,101,118,159,129,204,111,152,82,164,31,134,182,255,139,180,47,122,107,128,220,80,66,72,140,95,254,243,248,60,78,63,242,127,221,155,104,248,113,57,5,31,24,170,106,253,252,81,2,195,57,222,216,125,21,158,95,10,69,173,97,210,201,20,41,203,139,206,178,96,77,179,151,11,48,101,117,186,137,201,78,76,178,82,29,175,10,41,73,187,88,196,175,182,30,44,228,209,222,113,98,11,250,144,11,146,98,146,156,184,95,46,45,13,200,211,196,162,38,187,53,218,121,166,30,254,175,101,159,103,61,29,152,48,66,18,88,37,44,255,209,248,245,182,24,208,7,191,204,147,160,129,221,94,178,123,243,116,196,194,249,110,154,95,233,145,170,199,45,27,137,114,82,71,66,82,146,8,228,20,33,70,160,155,215,117,115,153,171,139,6,195,13,214,81,190,216,153,98,51,235,144,196,111,54,221,214,83,188,25,172,38,15,223,244,122,71,139,166,162,144,8,0,110,168,202,49,95,99,4,255,72,52,12,251,171,67,100,21,204,200,164,219,188,146,230,43,198,72,56,27,39,135,10,170,82,173,174,126,197,10,221,163,127,209,143,56,255,212,68,230,129,221,29,203,156,253,234,116,193,210,155,116,60,228,153,27,69,138,60,57,117,83,26,172,124,131,5,57,231,107,188,162,106,102,163,110,141,205,246,47,111,213,92,246,173,80,107,154,85,52,71,80,245,20,7,21,48,14,172,242,41,202,5,216,40,76,175,70,220,54,71,175,46,88,57,48,215,73,122,181,196,46,214,67,85,66,17,237,193,6,166,177,254,167,0,65,115,223,79,234,198,136,58,236,12,129,224,105,78,35,176,31,41,27,207,250,129,127,208,247,48,183,255,112,126,10,104,54,221,214,252,222,38,69,217,177,60,140,79,210,94,31,19,235,31,157,113,85,19,57,44,73,218,228,241,184,171,80,187,160,81,196,81,198,113,254,252,123,150,169,106,74,242,210,8,90,159,206,93,171,106,0,103,245,70,140,172,131,135,43,87,164,232,112,106,62,67,19,14,243,10,194,63,120,178,176,241,15,148,24,237,183,143,179,240,127,32,74,144,105,74,85,90,197,103,73,213,205,233,29,202,136,31,31,172,187,233,93,86,229,128,190,167,22,158,104,74,233,93,0,235,11,101,26,66,149,97,192,16,69,64,114,172,172,217,40,236,133,25,138,156,75,218,136,78,112,191,157,167,237,249,197,151,232,183,83,51,77,24,221,89,197,182,9,17,110,148,193,207,76,126,160,155,243,31,112,149,16,165,49,101,130,74,209,255,37,209,47,129,44,140,51,199,35,81,246,160,163,99,56,88,252,121,1,212,101,232,203,87,51,113,164,143,14,240,136,207,120,149,233,96,167,182,207,59,58,19,186,223,164,99,164,181,79,182,176,112,25,208,189,201,81,1,65,78,26,97,117,136,224,174,152,238,228,101,174,28,80,108,49,223,185,172,232,139,211,245,128,76,42,32,80,39,203,211,234,69,41,47,100,127,6,240,241,104,127,104,119,254,225,88,250,162,126,232,204,63,188,252,190,0,117,127,101,39,241,93,190,107,156,132,49,81,95,68,89,226,6,116,239,133,23,237,24,182,2,139,44,152,95,182,147,115,179,33,224,135,251,204,244,244,134,152,135,195,173,253,247,209,155,176,160,84,210,199,75,5,47,96,126,14,56,105,130,43,171,176,44,140,97,125,75,172,135,150,103,38,243,147,41,153,100,205,125,27,159,146,168,44,178,181,29,32,168,175,185,219,25,38,203,162,94,1,233,106,1,216,97,120,212,222,6,13,242,146,152,201,201,107,100,220,37,25,250,102,53,104,82,248,93,56,182,131,104,77,249,30,21,75,211,12,61,201,139,101,159,106,251,16,158,101,79,33,161,49,116,75,5,207,4,139,85,214,99,250,182,181,235,54,98,113,119,14,66,149,135,16,54,157,81,212,98,27,37,238,94,221,191,0,172,181,35,186,204,125,12,119,156,128,99,54,220,106,214,231,39,176,134,18,175,85,228,169,109,145,116,26,225,255,76,79,154,24,189,78,93,227,48,93,225,196,82,204,126,111,236,34,82,28,90,164,213,42,82,190,37,140,208,231,100,234,35,35,136,31,130,221,2,193,94,234,42,234,188,200,174,198,131,113,10,88,177,114,87,114,196,170,64,89,229,242,154,42,39,124,198,2,195,114,188,214,33,45,15,239,123,240,221,50,173,186,112,121,83,153,131,45,104,191,61,90,61,106,101,70,125,173,120,177,17,116,26,70,9,146,241,166,217,106,87,153,116,95,181,107,125,96,189,193,162,170,103,107,173,86,31,182,224,37,180,143,52,102,220,80,2,69,35,217,97,135,100,148,189,30,189,111,224,183,79,94,160,211,62,41,192,199,119,150,36,118,232,108,237,182,67,26,224,142,1,44,203,134,236,119,28,151,247,115,177,4,4,246,246,169,194,187,35,198,77,31,191,196,123,248,119,159,208,253,127,142,249,24,110,86,160,66,130,130,61,235,74,107,56,222,41,42,200,158,26,36,87,202,2,220,69,251,102,161,9,27,108,239,163,240,149,242,155,222,70,17,164,97,226,104,213,58,223,57,254,173,185,145,228,61,154,249,158,101,76,137,49,10,100,255,8,139,211,100,4,189,41,142,250,126,199,239,192,201,141,187,73,122,180,135,239,154,123,5,133,251,190,89,239,56,185,79,229,89,179,154,152,52,173,44,76,0,233,193,237,174,199,226,40,238,212,195,69,182,220,49,251,120,196,189,198,164,36,189,146,10,225,224,124,83,22,74,225,246,72,104,117,228,59,248,200,43,192,98,232,22,246,55,194,225,66,242,70,213,80,234,128,79,186,8,99,106,40,117,96,120,110,254,61,80,172,236,208,184,96,61,218,77,199,84,88,186,14,33,94,77,244,211,185,211,149,174,74,159,119,35,187,9,73,88,24,177,188,233,139,91,208,30,9,149,24,80,52,77,217,188,244,221,100,229,111,198,73,201,3,9,19,160,190,21,162,116,108,79,92,151,104,177,198,57,81,141,59,145,65,219,55,161,211,230,189,96,186,181,96,218,65,46,113,62,98,233,26,50,6,99,22,217,24,208,111,170,132,66,80,146,143,138,166,207,20,156,179,122,41,112,188,141}, {146,218,207,175,63,131,37,61,190,161,220,3,150,136,186,61,221,156,208,143,139,24,164,54,174,58,69,14,28,57,85,142,106,229,106,58,184,38,139,203,174,181,143,42,3,198,115,78,154,80,91,48,151,164,5,119,126,180,66,109,253,30,221,243,85,132,172,87,211,197,189,12,248,252,171,164,206,169,211,109,244,116,230,57,20,112,229,4,115,115,243,242,55,245,54,200,28,25,183,116,9,18,20,62,15,11,80,43,221,186,183,205,9,62,25,184,142,246,231,252,51,177,45,191,74,254,183,149,141,67,93,78,115,86,236,0,186,110,71,211,109,175,213,235,115,95,47,91,49,42,156,171,149,206,212,169,40,93,4,187,154,120,160,45,242,177,126,170,31,201,222,142,37,155,217,179,60,63,179,59,184,199,200,231,117,149,226,29,86,183,190,250,189,3,38,154,245,108,203,90,84,125,76,100,51,150,5,152,199,239,84,201,178,103,171,72,189,8,98,152,130,156,148,245,10,197,173,172,114,232,153,238,105,211,216,13,198,198,244,153,8,40,250,137,148,171,239,206,95,213,166,150,104,194,137,134,220,236,9,33,87,118,6,161,179,41,227,214,120,127,240,161,90,33,67,74,227,130,154,126,145,245,188,170,62,6,218,103,109,57,31,67,246,5,182,125,157,216,208,224,71,75,149,51,167,204,239,88,119,6,175,85,199,250,240,51,87,237,17,141,101,48,247,1,224,155,101,40,191,184,49,221,189,170,29,74,137,138,123,212,234,58,50,72,15,25,66,229,181,141,169,203,195,56,118,231,253,195,158,85,162,61,156,171,116,226,6,14,47,246,64,38,177,238,93,232,131,23,124,120,61,200,248,101,5,183,237,116,192,12,182,211,157,218,118,218,97,208,83,37,251,139,53,210,180,62,241,126,80,115,251,18,193,9,4,176,107,3,40,190,51,92,0,244,46,6,41,195,16,39,229,38,172,244,190,206,96,9,128,216,15,184,192,191,119,16,90,62,254,180,248,20,123,25,213,45,202,59,30,117,249,226,245,148,176,22,238,173,196,226,187,229,118,178,21,247,12,214,227,171,106,181,29,249,203,104,14,178,40,29,168,41,212,225,63,102,94,149,85,119,59,43,247,139,114,243,240,126,113,32,145,121,142,222,105,81,36,190,231,153,16,114,241,8,93,122,180,185,47,70,105,57,147,45,123,43,87,41,7,245,45,183,126,241,202,150,202,234,167,111,190,156,226,231,11,100,206,185,75,39,181,166,38,168,83,206,155,82,78,137,138,112,224,251,150,100,27,74,180,103,70,27,169,104,4,21,143,251,107,247,180,245,34,59,218,243,226,167,175,90,142,133,181,246,147,25,41,243,209,84,0,158,69,181,45,128,205,209,88,179,181,238,28,25,64,139,16,131,15,244,104,76,28,209,79,86,130,254,26,168,121,230,46,31,84,95,213,68,71,209,202,37,211,131,175,135,116,137,46,89,138,18,4,118,198,6,1,119,1,94,164,96,227,117,16,99,154,65,180,245,56,18,18,62,70,154,29,241,163,105,82,76,19,111,195,247,241,147,121,22,226,217,170,112,14,207,198,222,206,39,49,236,145,87,124,229,38,151,113,11,104,163,21,244,176,140,181,80,208,134,119,154,224,163,230,43,178,19,56,125,232,74,239,219,161,120,66,159,149,217,201,86,26,142,34,60,212,43,203,156,138,49,244,63,219,156,190,239,10,133,4,21,216,60,44,172,236,105,138,89,28,39,172,222,238,211,176,22,144,246,147,55,159,255,206,184,173,86,170,127,4,251,47,202,15,237,129,121,218,117,245,39,104,21,24,98,47,189,74,210,239,229,100,119,170,2,214,147,210,110,66,60,230,52,201,134,106,100,26,163,106,31,141,70,58,57,72,233,143,11,161,168,61,231,153,48,105,193,236,42,244,18,252,140,243,114,93,107,180,204,230,90,63,180,244,12,119,190,78,30,249,51,138,73,227,112,125,254,246,234,226,251,34,235,147,215,122,66,239,12,154,227,62,174,133,82,186,194,89,191,130,168,52,158,248,51,125,90,81,160,190,230,57,77,194,146,160,170,33,47,157,217,13,175,172,50,242,223,59,125,10,198,234,4,22,101,62,219,255,201,191,7,97,0,27,124,185,25,90,214,7,188,90,112,203,94,182,89,5,163,20,221,231,251,207,230,21,216,210,225,73,166,9,252,33,8,247,85,40,40,59,29,136,68,185,226,1,222,211,214,87,159,75,217,112,220,67,15,117,60,32,173,73,199,67,148,11,128,134,109,255,32,91,181,3,50,7,135,215,65,238,159,88,131,204,230,9,96,119,16,231,221,83,176,202,38,245,53,19,220,121,123,169,174,58,140,75,145,119,1,150,77,79,76,237,224,95,98,247,148,49,163,201,156,76,239,68,12,77,10,209,142,183,101,53,60,235,243,28,118,119,60,13,58,243,156,188,34,251,151,200,46,254,78,167,126,210,236,239,64,154,195,118,248,208,165,19,117,237,232,195,231,135,65,42,231,254,190,80,131,27,249,215,6,207,142,27,220,245,103,177,58,214,26,118,182,6,192,109,66,194,171,234,107,12,106,227,202,197,77,77,69,245,254,177,61,255,42,152,232,173,206,234,71,125,155,40,123,29,254,96,0,181,139,166,211,146,248,227,187,240,239,69,47,213,102,180,86,130,152,56,73,1,177,157,232,165,205,14,27,105,248,87,40,71,3,249,206,40,67,247,68,196,228,47,49,56,15,192,12,97,83,67,89,0,16,59,221,178,182,196,44,215,44,129,148,132,248,40,248,2,154,104,200,104,191,187,219,236,116,160,91,48,168,240,207,6,141,19,42,217,88,252,153,233,191,149,165,11,164,105,182,58,248,253,160,222,191,87,238,7,83,229,218,74,133,89,75,144,98,115,120,145,150,95,195,37,205,247,130,215,186,15,53,199,10,207,207,74,202,147,231,218,181,105,69,126,249,196,63,10,56,81,106,6,29,164,127,97,201,77,134,224,10,114,241,132,192,56,63,78,3,190,225,10,206,88,104,171,97,231,49,250,6,204,81,39,163,157,9,127,55,14,227,65,150,66,14,220,233,231,46,222,38,232,200,193,99,2,245,159,129,92,127,71,153,14,132,128,244,53,38,7,75,58,24,20,176,57,178,216,252,6,236,244,129,37,227,62,118,171,234,2,159,107,88,192,172,138,73,128,64,110,255,163,72,93,251,59,15,151,241,92,85,39,32,240,137,219,75,175,180,239,62,105,132,248,114,240,14,174,164,86,52,110,46,114,156,99,119,1,12,234,115,82,255,182,7,31,196,97,62,168,210,218,133,74,102,41,45,140,196,92,180,104,118,10,85,50,201,211,52,189,34,202,178,216,182,212,212,125,114,188,140,155,241,137,148,15,39,131,189,134,159,27,239,151,83,60,200,26,251,72,144,170,166,74,106,155,127,12,131,167,204,55,106,255,20,22,227,116,16,32,168,124,60,154,76,18,208,175,182,25,143,49,172,192,187,48,62,206,104,188,236,250,74,108,100,230,52,198,92,127,170,170,89,92,66,120,28,135,190,59,37,42,5,15,69,81,171,70,230,62,131,37,24,147,119,224,12,177,212,85,245,137,95,190,243,236,23,161,149,188,72,106,93,186,207,175,220,245,149,126,222,236,153,175,177,14,236,151,30,251,130,90,158,216,53,117,70,249,221,102,89,56,7,138,78,172,126,96,179,32,87,204,81,81,47,233,42,58,223,186,191,22,213,253,203,181,120,114,26,161,252,45,255,173,203,169,140,16,189,69,0,106,4,249,238,169,143,62,96,2,134,25,155,233,211,105,96,134,227,96,163,71,201,77,23,151,31,193,176,212,229,70,221,196,46,53,100,176,108,133,41,84,106,204,20,233,8,213,1,29,68,20,182,89,89,128,183,125,102,45,148,100,182,224,0,105,163,54,28,52,123,161,231,197,107,81,144,82,119,255,108,249,58,172,97,101,125,178,154,10,66,115,113,175,124,180,178,205,116,175,193,228,212,92,107,182,235,12,14,74,144,108,93,41,19,135,84,237,220,54,218,230,23,159,193,91,67,30,210,83,45,58,181,114,138,54,200,37,121,219,113,91,56,55,104,87,153,12,53,4,245,224,241,48,143,77,222,191,200,7,35,64,254,58,164,123,83,123,29,33,95,179,27,87,109,250,29,225,2,192,31,184,48,93,2,220,204,70,216,64,243,161,216,118,25,132,183,109,35,114,94,18,67,159,38,63,94,166,234,223,168,113,182,172,250,104,21,124,220,2,147,247,110,226,134,23,94,46,154,217,30,138,210,105,177,72,145,64,206,213,121,117,111,234,224,52,146,236,47,73,103,103,217,239,60,194,247,5,60,220,131,141,93,95,80,191,152,207,45,59,83,27,70,175,254,215,195,199,227,85,227,196,61,215,147,205,34,54,0,183,86,231,185,41,37,106,127,126,161,52,160,227,77,212,130,252,148,94,236,247,250,162,205,194,48,84,50,66,247,151,128,45,146,145,135,230,247,155,254,173,232,112,9}, {193,72,245,100,17,75,3,60,91,57,249,182,241,216,37,254,129,183,34,101,95,59,134,144,134,149,198,116,103,226,165,66,105,37,185,109,12,220,69,94,5,248,56,251,51,203,222,44,2,200,222,248,135,239,68,164,195,189,249,24,57,233,112,9,234,65,132,177,155,216,85,92,221,6,60,155,60,122,153,13,176,34,220,239,10,16,188,248,83,146,15,83,250,84,89,223,104,187,201,71,229,144,137,160,243,10,105,20,197,63,251,152,29,234,248,118,184,121,236,17,202,67,226,139,153,151,71,170,16,160,241,205,142,129,242,231,134,63,10,231,255,133,27,181,247,186,117,118,204,71,18,117,91,254,8,46,239,2,237,100,242,200,212,215,83,162,175,3,251,13,220,125,99,206,61,110,223,74,32,110,163,171,36,249,1,163,167,160,10,44,166,79,154,255,132,95,73,182,243,160,7,80,132,200,237,217,161,189,66,86,225,160,87,184,186,0,247,127,131,126,225,73,221,37,51,173,210,216,126,15,223,202,238,72,113,229,249,71,59,91,236,164,254,153,199,225,202,144,28,169,192,170,4,16,38,92,154,64,101,158,228,153,136,125,234,116,224,86,75,238,217,228,145,148,60,155,129,115,3,39,111,82,68,89,102,54,2,53,236,180,85,29,182,126,102,40,136,217,92,230,170,206,140,241,127,193,40,108,125,128,167,34,79,64,154,17,210,11,96,9,101,240,194,81,241,23,210,84,130,249,195,59,242,248,186,69,159,133,49,165,185,183,55,9,64,128,67,57,97,19,155,174,92,209,159,55,9,43,169,131,120,219,9,93,12,186,212,218,59,48,215,214,100,201,148,3,106,199,109,253,183,101,215,132,68,112,69,65,66,11,115,226,170,10,80,164,183,152,59,176,244,40,39,160,90,238,178,225,170,63,59,19,170,196,146,221,67,73,17,242,134,161,205,185,228,124,114,106,83,213,216,153,21,73,10,239,249,170,222,90,103,199,129,5,142,247,146,60,160,46,12,25,46,159,94,164,141,111,62,4,127,149,6,61,120,192,5,100,114,87,102,116,144,255,35,153,141,62,135,61,65,174,236,150,117,65,37,79,206,1,148,121,15,74,161,249,76,129,137,208,78,21,129,225,38,36,141,122,103,130,90,208,70,232,88,136,184,10,236,189,175,105,49,5,162,85,213,45,94,34,51,122,107,194,117,224,215,103,113,55,125,105,170,219,44,43,217,126,221,1,103,109,199,157,234,214,4,11,172,33,68,102,225,165,239,68,127,33,133,122,76,139,59,26,215,11,97,213,90,240,86,126,202,234,141,179,237,21,144,9,79,133,188,80,239,42,157,152,204,234,161,57,43,187,196,12,249,81,164,26,198,128,247,61,104,236,22,205,79,15,240,87,226,64,144,194,124,59,143,42,228,209,201,132,76,47,88,248,51,146,239,72,75,155,249,36,147,37,178,147,223,175,149,207,66,36,148,187,223,250,11,234,6,81,253,89,103,137,215,2,194,84,55,161,104,194,39,98,116,225,151,121,205,253,143,149,242,242,199,15,135,71,242,191,72,69,81,80,193,163,159,128,174,68,79,231,237,144,146,47,20,84,188,129,66,102,201,35,201,23,138,2,0,123,13,113,200,232,127,103,147,238,121,28,189,59,157,148,153,211,129,72,62,191,167,247,102,35,54,79,137,26,225,37,183,28,137,128,10,187,18,9,186,228,247,140,11,198,132,31,199,252,55,156,205,72,65,62,143,28,79,47,137,142,149,94,18,233,241,150,138,109,222,209,152,92,205,210,94,22,64,168,201,244,57,158,40,89,135,206,44,200,172,211,82,250,159,70,104,170,68,45,67,136,183,176,177,117,174,46,127,90,183,202,84,196,18,235,38,247,168,46,85,213,44,230,201,136,34,8,187,73,68,118,82,247,125,56,96,195,179,46,47,112,114,148,94,171,223,168,53,12,97,235,179,216,108,178,200,108,56,67,234,142,164,122,179,13,244,93,51,111,207,126,126,173,230,11,19,78,231,81,230,130,181,84,185,213,246,89,23,157,46,168,250,205,135,120,84,61,166,63,70,76,181,46,133,179,17,206,101,2,210,180,84,1,219,19,135,152,164,146,12,83,235,60,99,116,62,219,40,134,15,149,241,94,131,19,133,80,207,76,244,53,185,184,185,28,107,104,188,65,106,207,174,99,91,96,209,77,5,151,167,199,69,26,2,120,228,222,97,195,187,182,81,23,154,138,115,241,231,203,199,215,11,125,14,157,17,239,94,217,99,93,189,39,51,172,202,84,172,231,156,216,40,105,116,21,30,8,212,77,109,150,105,202,102,56,104,58,94,24,164,137,71,242,237,66,52,167,120,249,87,216,195,210,254,89,98,21,35,174,71,114,113,42,166,79,21,6,228,227,247,138,78,197,38,99,172,175,86,28,30,30,93,231,251,120,61,196,113,0,93,112,243,201,162,123,44,161,27,204,128,42,230,42,246,18,146,249,144,130,195,149,80,134,118,47,245,162,166,57,239,181,170,249,209,252,239,73,173,46,17,124,89,111,118,255,62,220,132,29,235,194,98,186,152,149,178,234,46,124,110,148,135,50,181,191,166,231,12,126,150,67,131,135,199,34,174,146,110,175,229,150,128,67,193,123,179,145,161,151,87,249,162,62,43,44,85,12,89,221,143,211,171,39,109,152,10,181,124,244,186,94,137,222,165,11,99,185,198,49,199,192,187,255,27,151,18,96,3,9,252,148,5,171,3,193,113,13,64,169,10,152,66,45,9,121,15,178,247,250,32,5,13,251,45,108,181,153,103,34,222,145,24,228,148,69,44,231,132,96,133,87,46,254,216,128,74,150,132,27,146,228,181,192,139,213,136,30,80,179,54,78,250,84,152,75,150,211,39,7,225,2,11,236,91,59,111,149,15,101,60,246,197,114,66,227,100,213,40,75,78,202,235,107,76,34,211,22,29,48,117,240,84,225,215,73,61,7,217,254,21,157,35,246,208,243,177,171,222,25,76,8,215,59,154,66,219,113,97,196,7,206,38,149,233,183,58,66,137,212,35,185,143,110,186,92,31,224,54,44,117,73,230,134,48,217,9,22,184,43,177,44,245,165,78,215,3,93,252,153,224,162,84,179,251,3,58,187,41,235,5,159,227,156,81,71,143,240,219,10,105,25,191,181,189,226,35,53,82,163,102,32,94,153,153,255,3,30,253,14,66,55,52,21,212,72,216,71,217,192,42,150,140,89,200,160,90,114,200,4,170,147,202,181,37,131,236,10,244,57,98,74,113,28,139,78,254,113,166,128,129,201,98,226,85,84,106,212,132,234,169,1,22,239,95,177,175,143,156,0,216,248,50,45,27,39,205,243,108,158,165,185,60,28,78,91,131,195,135,44,31,84,82,28,215,103,222,6,220,36,112,207,238,136,172,97,156,46,124,43,89,14,61,43,116,77,207,232,114,137,31,0,234,249,21,79,220,108,5,70,5,187,135,16,210,164,79,151,228,7,226,212,193,136,192,235,80,3,31,240,90,126,126,132,218,217,8,188,229,247,71,89,14,52,5,122,162,195,139,115,135,212,171,143,1,30,106,192,81,184,8,57,212,198,158,237,43,114,19,150,229,144,114,79,5,242,219,175,104,105,243,29,88,61,199,119,73,238,77,9,245,199,105,21,11,33,78,238,240,64,98,142,129,66,210,166,181,185,185,31,125,171,195,5,167,147,99,151,57,240,133,152,209,50,155,3,7,109,105,111,122,7,222,40,112,34,149,48,170,174,145,170,141,42,120,10,132,223,167,183,27,52,150,14,41,78,216,126,101,1,247,162,208,133,175,134,206,125,88,27,24,250,25,141,101,66,122,71,8,246,216,70,101,95,120,149,121,227,138,129,103,221,121,226,120,48,74,128,214,124,56,153,212,177,217,251,77,253,203,185,157,32,26,65,180,71,71,97,74,197,59,214,178,34,105,185,6,30,186,241,75,81,216,146,43,109,244,167,184,121,76,179,82,84,35,189,146,156,46,229,187,193,73,34,124,188,23,225,99,96,4,18,114,0,231,251,180,39,38,112,209,124,177,140,134,24,50,62,255,120,147,169,210,158,219,207,21,244,0,34,142,255,56,160,193,155,110,83,60,119,89,80,35,176,13,64,42,72,226,232,151,68,210,3,159,79,132,22,129,187,144,151,13,163,221,88,115,201,128,121,164,30,176,59,60,160,102,194,62,40,2,170,247,49,46,209,79,162,48,221,117,73,135,225,194,200,111,97,131,100,81,249,105,52,168,117,39,243,145,168,152,250,189,68,43,71,197,7,223,153,197,58,48,177,129,10,247,58,84,151,114,79,216,161,212,13,199,23,127,171,96,5,107,163,228,108,185,167,187,253,96,144,58,211,152,238,36,197,25,95,4,239,132,210,17,149,48,35,107,226,199,210,220,155,43,172,103,140,15,226,31,250,71,56,22,83,225,33,48,166,199,138,71,246,51,168,249,144,17,2,94,167,211,7,10,1,15,212,105,105,65,209,201,155,242,216,42,249,142,242,121,48,220,240}, } ; static void test_decode_1013xint16_impl(long long impl) { unsigned char *x = test_decode_1013xint16_x; unsigned char *s = test_decode_1013xint16_s; unsigned char *x2 = test_decode_1013xint16_x2; unsigned char *s2 = test_decode_1013xint16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1013xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013xint16(impl); printf("decode_1013xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013xint16_implementation(impl),ntruprime_dispatch_decode_1013xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013xint16; printf("decode_1013xint16 selected implementation %s compiler %s\n",ntruprime_decode_1013xint16_implementation(),ntruprime_decode_1013xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1013xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1013xint16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1013xint16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1013xint16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1013xint16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1013xint16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1013xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013xint16")) return; storage_decode_1013xint16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1013xint16_x = aligned(storage_decode_1013xint16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1013xint16_s = callocplus(crypto_decode_STRBYTES); test_decode_1013xint16_s = aligned(storage_decode_1013xint16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1013xint16_x2 = callocplus(maxalloc); test_decode_1013xint16_x2 = aligned(storage_decode_1013xint16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1013xint16_s2 = callocplus(maxalloc); test_decode_1013xint16_s2 = aligned(storage_decode_1013xint16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1013xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013xint16();++impl) forked(test_decode_1013xint16_impl,impl); ++test_decode_1013xint16_x; ++test_decode_1013xint16_s; ++test_decode_1013xint16_x2; ++test_decode_1013xint16_s2; } free(storage_decode_1013xint16_s2); free(storage_decode_1013xint16_x2); free(storage_decode_1013xint16_s); free(storage_decode_1013xint16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1013xint32.c0000644000000000000000000032174614705505543023011 0ustar rootroot/* ----- decode/1013xint32, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1013xint32_checksums[] = { "1fbebd6317d03a06d94d96738bdeb71726b30ac841c8fb4dfbfaa5fcc73bbe9e", "ea9a0742c8a6d873850602d2d3cc30e7b645c79d06dd7a1948461c6a90c41029", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1013xint32_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1013xint32_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1013xint32_ITEMBYTES static void *storage_decode_1013xint32_x; static unsigned char *test_decode_1013xint32_x; static void *storage_decode_1013xint32_s; static unsigned char *test_decode_1013xint32_s; static void *storage_decode_1013xint32_x2; static unsigned char *test_decode_1013xint32_x2; static void *storage_decode_1013xint32_s2; static unsigned char *test_decode_1013xint32_s2; #define precomputed_decode_1013xint32_NUM 4 static const uint32_t precomputed_decode_1013xint32_x[precomputed_decode_1013xint32_NUM][crypto_decode_ITEMS] = { {3683207802,2347603561,158388801,1285801271,3782153938,3109810645,4257535385,234767729,503197654,2641183464,1361613230,1565406653,365321112,3237115988,509245037,3604445691,723259694,1357199679,1189523200,1037046178,3909856737,496549305,264813580,1766598188,3085089764,1653241277,3766059543,1713130718,3828068319,2140806324,2989798307,1738716830,215092808,1344999697,125857182,1364555036,2421728207,920198848,537472905,4238355504,737116119,4119892919,3972669685,2008323810,28593997,1776711156,3955477203,1018881011,4285492276,3877632797,3810332679,357050588,181237281,3088742314,271031553,3544421168,2825632309,1180620873,452405774,2103255292,2866537713,462648951,1601287448,1062151087,116045661,2481940510,3404986297,1951267562,1133685996,2756527209,4080859219,3530023717,2508798220,3442421455,3659300817,77382851,2041827395,308028322,3418037494,519374615,2459905548,3244021406,725225803,2579303292,3100007622,3882177155,2291878623,2817015586,1513710072,1107949483,2796883089,4042997556,2687907637,3550639726,3037100934,2267285276,1820165270,4175191281,2567240866,2552823577,3836842829,1924662423,4197047452,3033948836,2856971800,1763008928,681991858,2715093294,496674245,620091476,2069738487,1727146971,3079269457,322039565,433440646,511977476,1359801008,1343918899,4230318559,3761617992,3143443282,1729544036,4137870734,58328382,1916906673,3662957678,2373953367,2289389481,4230941915,302698469,3692051054,1498415351,3202648136,4215293018,1936016169,1210498334,550206621,3941157291,2012060352,3486002786,3579536364,3659900399,2224807493,332121838,2862206822,3543567742,2785653637,1365253855,1838532012,3771648588,2255695747,3622365093,864628972,823304149,1663632621,978996590,3027400000,1874761128,2636209610,1783129606,88865470,441722366,3762181157,1239048006,2765263714,3364722863,1284754723,3802149788,2893565246,1621140913,2877122378,2532478151,2606600408,407290391,816393269,3208652347,2033563933,2892864074,4149899373,3076705347,753368213,2384502016,3305047980,345762720,1016486480,1647427265,3501703256,3258541039,987899581,2038187766,3037048119,720142015,4037148040,429080686,1097134659,2712555914,3169238279,3692799183,2526494136,3137697904,2420921470,3797193067,2382390143,700427767,2117331025,3941174563,1446559059,1919106763,2367290685,2216586377,3946366980,33686852,1825960486,3518609319,692186056,3548553588,55910872,1073061415,2520856045,1694189272,1515809885,4143253598,1675172902,189315061,2522233786,151493771,2180688950,2761663766,3782975881,3250951460,2701119026,3105155897,334231351,1777261553,3182205685,1039206643,2306211606,1916472816,2092038430,2918224184,195152779,2620621370,4035621882,980204790,2511466716,1888891366,600423952,2579153905,1205287187,1564884444,4121273031,1265585615,457497345,2329028373,3273130469,296558932,3624271066,2739902008,1785187740,3741374019,2250065834,1959082938,2050928820,725763637,3032478068,4167593166,138099077,3693183088,3339697161,948451379,2478079195,3137509251,501322765,131392469,811192793,692712157,2674164556,167601758,1903805581,3601041073,1644174472,1470408422,501170279,2705271918,1104399449,880920445,1649131652,3365573381,3039832159,758723912,2304486236,1601632351,1304991851,4238741827,1609950348,2494955330,4268156971,384439993,1581049037,2099038618,1549899082,4059681389,585730311,406326636,3851415667,1551646414,4074449118,4202685014,988317188,3305499028,714738019,502058178,1757358191,2787370081,2478256663,995764956,3032604551,2021487073,3666466649,1225465291,3754094055,3291223666,3264631074,4040424413,3167920538,595708073,3097219098,3225451670,2904793189,1009805681,991271175,2294657878,1281858270,977983100,1622867398,3675447512,1649235808,3080322507,3373333348,4101540789,2920257718,3537384103,1757599870,1406755633,3498032542,641105744,1884024267,2748075350,1948259485,2979328043,650533144,3340235738,1824125344,1842990680,3695113894,4230835692,3493461963,3574186680,3584046065,761941867,2277166130,3833835061,2165630287,2941138029,2410166684,284075741,1908457888,4140543419,3312803370,3743200955,3106619810,2450274850,850593113,1439255401,4105202770,855364958,3460022406,4116601829,3347164730,2079400557,2393749919,1477104644,3321831259,972975751,2478666207,2516770746,3784950611,3881302852,822270046,1657534084,938261123,1888640964,1421243657,782777150,3710922011,3525405056,2774281972,3276451950,666779887,3946670729,2877526709,647971796,2608629108,24154386,4160879937,316395685,964169058,2189443987,1211874284,848638557,1606943477,4234970785,459875644,1777850566,446075274,511049072,442240423,3227768723,836626960,3242255788,2037775083,3131942402,4292018640,4001681452,138440376,1182245738,3729796520,1702999918,539923119,1840902124,80561764,3314664527,4235243965,3528823839,1549869184,1907239998,674313886,2854267227,1173135256,1742193675,2304250394,3700935196,2486136533,2125848756,274322966,2494277462,2017671954,174342820,934854012,672921174,4253182442,2354003410,2120912217,1492694134,1138608356,2732616058,2675611914,132743824,2930298498,2040778226,2413975103,348744792,3324592989,2079295191,1796267721,1674799161,1761090950,2573098401,3912010070,3255792911,1208986686,2862521920,776249239,1603834082,3250910409,1717949536,2203166485,168097428,1286186050,2934708004,221057875,285074963,502471747,797592994,688285191,1190995826,188197894,1470100122,2161294789,1102281868,3024280741,2754369187,4293429144,2368795251,1951653321,550811831,2507037762,3284974875,3098183134,1368147232,3389156917,1264562854,630229982,2784443266,2730860012,3474265997,3350508735,3769498211,4060996291,4249203660,2389246588,1839791834,492591397,3732068254,382063996,1437934192,1273785741,2246104655,2698707294,3019062137,4191501119,3032882736,3256724991,3155070193,867171051,193082669,956695144,3372426665,133487640,4050341009,2643301662,464600735,4026408287,2087485927,3818300682,160080195,1630884698,930630237,284322425,207650052,2658587092,1631675083,2197293072,3153731687,462710700,55759638,692139827,269161000,333544356,3620238058,3038025245,3406991823,3710193960,2681686795,2950637306,1873910172,1677869399,36028864,3972818262,1340684768,3218332833,3701715887,3379843311,958806254,30141402,3102136476,1590654664,3449604073,1448792376,2765233483,471432598,3847936617,1740938537,1814786309,1736659199,1490890592,1278831843,9686003,4188446508,3066427460,1773324483,522658032,2585884867,1397839630,207638341,1986349220,3026565293,1708022867,409549997,3950024400,1159520367,3232756939,4054531770,3260492262,1142959316,1363593543,1326136733,1291948417,672460489,3003734845,162310240,2907146887,2498392365,1149141831,330263121,2543784699,1453429624,994972195,1194556344,2609179091,4206684674,3438398439,3424964746,3787116872,1832026268,2977496982,1880850666,2403663622,2482797015,14152141,1093909812,3040040187,1218876170,3761600558,3308238390,2028509894,1746084342,2736005933,1343816499,3360794494,2644815314,177147617,2307210004,1630968589,3965220365,1681238579,258845337,3014260015,3963264833,1089876645,275169469,845383564,1262456749,191936671,3526257162,3666420743,4019475357,1960353777,2091722130,3060520856,629268271,3055755857,782959563,960820921,3116553731,228278655,634394397,3293734838,767138077,359272564,2698466774,180849271,95368662,2774269014,2235008889,3707248078,753469847,1268386631,3161785652,3061189034,526199470,2886770623,1145307807,3081404540,3014049140,2256672937,1248367299,88245688,3741397643,1446625837,3196276040,3220657073,3962813992,2447227860,1545103883,2376621969,298718398,1556406524,4213537727,3795679310,3355855253,1621685773,4218135429,2791839956,3561888849,666257638,583362493,2459226404,423440334,570712167,2245001373,4224270745,2549769606,1322204393,682624927,959281280,987371061,3208957322,595891309,2966152477,95805182,2259744063,1611370211,3794933149,3934589703,3523121062,2219460401,1024320719,3282867574,2686008777,2624681648,3247267326,1482384459,362017794,2996597318,2347264349,3808878695,3269398496,2783201816,1789609945,367237423,3564025494,29692267,181405972,1561242091,1914081092,1767615290,2453807868,2923935652,2200087004,3212901758,105786371,1159461731,1089978467,3712829537,3339141438,2257408520,1611850466,901241321,2994764783,1677050537,3989985073,374108229,209213480,3286038915,1076065462,1597180836,1225057876,3947502092,955870560,391294115,373345725,826560527,3689755575,4011043886,1800584929,1529896290,3515344964,1923605746,375078607,3082216337,412599778,865556582,3498761415,4214169577,2338141816,4205313122,1606096328,396623730,1201044104,4077556189,2447419459,273910585,3287975793,2451379520,3785991456,3882950439,1978078776,419929187,1908134748,2028397309,2028139748,1861764198,3713659834,1447972404,160963117,3513677920,4177553491,1290678287,3113230236,330247797,4073427329,2702092072,401642097,2951655147,523999344,3491382287,462020288,1365200980,2004234143,695638571,602913666,883784272,631909334,3931885835,1327505839,988899902,345822108,481419308,3131946039,3108388738,3382911281,898557381,2791164856,1332635967,2907529939,3345837349,1816204725,3235608015,1826945071,742703021,1806958630,4263984292,794668831,245898873,1738656777,1933630357,2542541041,275198005,2596899171,3491741647,921633828,4223647036,106662119,773831386,164555913,456211087,407713816,2351502971,1137472678,1540907859,147554015,3359735155,1338892084,1185089472,1735049723,653742243,2660325707,3056341036,1385058617,1523530869,484746333,290585933,3698114694,1375013284,710565249,535376450,1678853259,3433802895,3912935587,683309327,4209503159,2773150813,471455326,3872129605,240138560,3025651452,3203982902,221625989,4242524887,3175443477,2068932300,659077415,2436124146,947538409,3319402759,1562168783,961616074,3109759348,3900226712,1345343813,1605019654,1135704842,1493997244,910876970,2428280557,2645975652,1839856588,1449802316,3805875575,582843212,1164061435,1701716295,2987890733,1489685427,3743897722,2820288034,1916875978,1931365902,3650812564,4108960244,2193931304,4161890964,3493304644,2871157646,82283372,3487217661,910756506,790258106,2641503215,3467500719,1402088434,3065262611,577900626,1836765333,2474264166,474997880,2840258665,2640795557,1576239979,465341798,390950975,2665498427,2014441882,810656392,3630461828,1627825871,4253338589,510207744,541119797,271773166,3392229003,2818161272,2649912276,2906258873,1094650425,2910502938,371718350,1790330428,607599387,102574338,1357872716,517203474,2998630782,3242589547,3696748473,2034869565,2548294280,912004760,1123259166,86077434,4221789495,4126357485,793853075,85186390,824487624,155413849,2533919799,2696711241,3455636878,1570177211,4002153620,2279635505,3213078950,1816777055,2455811734,1954645214,3060422771,2584577294,969325005,851720272,1185666466,3169437906,3234921963,3864877494,4246715790,1835158227,1556178731,2057983089,4107048333,3079574869,1229356411,1197968690,3964619960,3215100877,995184454,869403849,2458507507,1248699713,4268916484,2025398405,4194477406,1750312754,4004349081,2186548871,2202048719,120900015,3457046132,2760252347,959146939,2117690732,3396241955,1108884107}, {1432643529,2300825991,2898248508,3419693306,3708983887,587256126,69349686,1288714420,517920074,1519021011,3275398702,2611006201,2350449694,1058276636,3971916119,2419618251,651458163,3298770582,2195779955,816920594,1102081653,335355497,557227592,4038660023,2076967362,732723981,1951004516,3889557113,1893265240,3209968217,1374849549,1964517937,4051229032,402688493,3328571011,3729247198,3620774886,3073034449,3742350929,651990888,1151029786,3330438765,3875753213,835931468,4121862258,3071957746,4032030309,3727277971,1184801391,3513686103,2426623654,2434880803,2249383946,722693285,2471332606,511913741,3837622344,1716129454,502641582,389796015,2987845671,2304466548,2305335502,609342808,1384309983,3318908661,2301733532,703145891,3884008591,512145365,1587963112,3372879535,3559282714,3290318908,3950183551,162913148,2595991014,3640924100,3289684837,175562981,2798779452,2336709421,530959052,2711103261,1131380099,598172310,3765497736,1196025290,1735081758,2138035305,2820495125,817443353,859608090,3198233986,1911690164,16716460,2853508314,37818453,3136014338,111584796,4213268289,2711287827,627476468,1397583600,180754811,4124037954,559624035,1270960329,1038232112,427985027,3499957643,3959655784,4226436604,3673419919,4235694116,581177050,19554514,1201357913,4266957019,1646661923,1158124798,3485974881,3197080660,2014273268,2403848315,340309880,937054571,4008576117,2752414390,3916857314,1759958775,15470782,925616377,349964168,2265926817,975058713,534591980,790190886,3899322660,4247459490,3024474701,945861291,743379983,1374393188,3138326685,3703966952,2243890121,1141466518,1782034241,3835769099,1819222780,2527949165,1003357418,4162217419,2266226225,1721151398,939486063,1794104021,1150305904,481281387,3279734902,2349091962,3517261179,2867968114,1189321568,3310194474,432142972,1209054054,3530481554,1166033036,4093757205,1231632416,3236660957,1789945761,2363064437,2551325321,1590833321,2132059027,2646030598,1774218534,2796204682,129728583,2584386116,2633076664,435703208,3908647830,4219517448,1301439089,4178673606,252830520,3117837970,2396637452,4157128821,2761564894,221208148,721171432,3140216624,1380599992,460317769,596186776,1694043735,2260559946,459559552,3207624811,3783350001,1155066886,161247262,3796596625,1994366748,3619897648,1818872420,2894329289,821799999,1670185909,1026522367,3226784852,1141247869,834653731,3675284250,294049523,2444460464,813954753,445596864,667096792,2819207670,694793486,1849122342,2737441574,2556467929,2552100599,2428737462,1130865608,554481632,2146462639,3092194279,3625734707,101660996,2227458304,3303288669,1394183596,753487828,1288056119,3909358244,1990501073,1498693525,2336649821,2785939844,574199783,2386338048,289683330,1481854137,268373978,1822598684,1824633638,4012566502,1357744589,3758315991,533137837,809921320,1494303516,4198956257,2579734477,1156874056,1180896946,436139800,3761490179,2247588810,46381518,1047298549,1677095829,966586786,1748736945,2101231877,3385619098,4233647220,3234710175,2781372496,2637478514,649865573,59129060,4166480455,1373928084,2163826096,813050362,4138095386,3454085358,1212131121,2488235580,1612110468,4273616361,2350439093,1795268950,1525293582,2889734246,843710141,1043711356,462455905,39642432,944410426,2621395122,2767665700,4116768060,473048129,285606244,1707057289,1747972371,699067334,1202703396,1890609271,4062565840,1392264362,2086055302,2461805061,719558086,614565336,2231510805,412986861,3036668645,3244305560,3832464737,1139597479,2123218195,2395737711,1737020274,1535407371,2642359054,3425141212,964857077,3945987883,2154783301,2369091301,2649454789,2112602581,2002652980,1736798335,1591196681,1983688729,1488806268,17585950,448082216,4018216341,2722216260,2229166233,310330603,3414727006,2317107801,1869399147,1393154431,2950475171,2354745032,1795326943,1542721174,3069970398,20218703,3692311832,2465833851,517458672,3544096043,3369108128,1865744116,2555356077,2477617342,1180651973,1645772840,2238937241,1435018474,1774606592,1298200465,3954504301,2286025262,200075391,233242130,3605641472,2583987292,837391585,737887725,2152168710,2839420474,2184295934,1725225072,2486675769,2472790456,3348595059,1446947881,799787388,1822182580,1504948252,3052980014,1793655157,1191896004,1393182583,4089471121,3306179310,1050868548,354803034,2896998127,2753633968,3026809693,2425545967,4291137334,1691052523,1836419731,3247972715,3326192509,1082535785,2064447139,3994234404,2774162916,3859039499,2659709791,2126420380,491353137,3773035817,2205590729,4004281238,2024339820,425753846,3960298855,1417241146,247841978,1747298613,3698521423,422907527,78818900,3764403659,1749619665,4239143551,535032191,2419858701,3262903725,4253588399,262890020,1876212545,3780187964,766179887,4249098947,1096541320,816851590,2295797051,1445502145,2671300259,2805008285,1871869927,2268179126,3911556500,3419464656,1024333506,141098647,3016457387,2947290997,3328054430,509760891,2675753011,4133940856,953525974,1376487509,2617660520,3352318504,3078052464,2474085721,2020383499,3783641395,3662891579,1752838991,1201955992,1181281035,2688985570,3145070348,2632852569,4272071794,1954899366,2708208951,1072609461,3892981994,96114701,593285195,3039959216,3630185975,956901145,374540180,3804649824,3699039007,3009306616,1446890897,2949938501,3635595140,3007194275,333673730,2708321773,2801009480,2118916316,345840125,378832503,3758589759,2667063588,2001209654,337007619,3235276854,635781994,3150191352,3599074828,2645345925,981000928,3098878949,3362742294,648555476,1484321588,3778311817,2739962413,3612145738,627143888,2423597535,3886762067,804267914,3573647749,567788827,669205966,1284167975,3956947118,3898520303,2966689185,2240804685,2343249807,3711144739,3933795908,1427025808,1324096382,3088503118,2529095065,2881415429,3094743862,2866654614,202526809,3302277400,4283292772,2603121007,816586679,1436397213,2331840764,1582100787,1055769379,3796970054,563160103,3104999667,1813188715,3989854512,500504755,870099545,2192212039,4273847953,1294039182,1763155355,2224602312,19021913,3148129115,2124204124,3842162527,1346993949,1433643937,1940726998,720268863,3357120248,1676414203,4022482579,800813471,719465131,3098109332,2186711502,420654891,1795366326,3236835874,121570333,1607767207,1423272452,2024676508,1796985505,2516003497,2890899821,528068363,387796616,3262658160,4118798208,328380,427107074,1010194638,37075944,1117725589,762455913,1130568865,1336095631,2006372664,3422514581,3259302764,3810022251,3601214576,2458303682,3968219707,3720116242,2210074729,4269890940,3144538273,1192221456,571375500,517927297,1282061357,611207534,251251453,933918608,2459067181,1159262803,1354027441,3519473254,2258471600,2119025355,3285428356,4096272975,4044639197,4110398419,3475549305,1389141845,914593692,1483055197,3300196340,3147870201,1439820883,515621677,3706475664,3982370601,3407274581,3432470772,1395737323,3860787245,1363416440,1498696381,3672743808,891496969,2001939920,4081982838,3457941538,1251481941,987210760,1262576017,1432511453,3501988556,3156018084,666845964,1370243380,2718000217,1294669867,3467717564,1852062701,2863523172,1192560604,1063808464,3989268380,445014726,2088594321,4125787637,181397054,2770398212,494071864,3771808185,1793254103,1203082972,1578997481,3999034388,2790623177,3447645802,50701167,1053471540,2159892459,864619056,3856294375,2087640871,4051157913,996491910,1127949692,1814237847,2934242385,4061812867,141342564,290394215,202328453,2409660938,3472467032,2749092536,2003330922,3337583607,1358341188,402365011,1596036291,745196368,1442112107,1760605216,2005508386,662982475,3947949956,1641701705,3342763232,3285527679,1222325646,998262270,100709595,22942214,900276832,3634741337,4268292819,1979726517,2025385654,870943973,1280280107,1178645688,1240403994,3438736439,4121539097,3565811234,2439698568,2891053556,2665141939,3717881870,313674211,975176189,1126250379,135333764,3898938688,1719698087,255576456,1448836933,3926986923,2164746888,3902758453,4182617612,251846260,3996294085,3970287631,203391441,108730430,71818770,3392288095,1545655312,2251131183,4096352581,165042941,1094342729,3975373359,2519555170,2169719526,3257141980,1663504589,1809602100,2280296210,125952621,1715221365,998050047,1126147191,617699434,3528657876,2383741983,1774943058,645476413,4263117985,758507688,1087489354,2075920229,6556905,892420091,298522882,863336693,801438616,206386759,1338211325,3628672130,1903261579,1121625487,3913030843,3572456115,1395890627,3391796181,1635091279,3647848237,3484617505,620697468,601886757,1084163712,3295617842,2160995296,2089435744,736848273,1080643015,2650808625,737811816,3810646202,255060997,3206904149,2801446237,2198625904,265412020,4126264687,1115076529,2872327212,1387899040,2804756720,1798368953,1371383133,1711671470,1595135827,867469756,3264756234,1574985799,3071326931,1459363424,3609669131,1583664959,3494176508,3050114796,3083483240,2544875972,417813899,3575806928,2492059859,1878983635,3916025990,3179573106,3522656839,2610485209,1280802108,2618616706,2442064815,4055367128,2386087870,4043280710,2083045924,4087602392,989711456,2809433720,131740238,225521871,1119671248,227251108,2998790584,3407079052,280049522,3533451062,2819892185,59087798,4057012038,3235085922,4092129475,3799252069,1243203877,1395943054,213652084,3287852208,1207192906,3825041834,974803406,3334134726,2605010045,3947452624,3197213570,1490957899,1520756182,133301408,483566278,1225969467,1442102115,3601861535,2391260019,1219480328,1063742093,1010195766,1253303014,757102747,2531605374,1542585761,4098891849,965048848,167760100,1165258100,3111684910,300525720,492238044,3479865573,2372759868,2405082994,1055584999,2595452957,1064755718,720078520,3635309723,2372379629,2273659809,3401735261,2082910020,3171784574,3917134271,3820742072,2608626863,2120876480,3231520891,1294091783,1899888276,1573315711,204609799,4168530457,3599566201,1901514250,3992505334,1374193500,1587484130,3621066047,2049300651,3089276963,833853787,1600602494,2154154315,399294853,2643754732,1235631128,3372068517,603621273,748229165,2332180406,2945203337,1347469733,2231423813,1191848785,2393304228,146245199,3233021037,1386874860,497678804,4034654439,383966370,32623695,1776463932,4048131962,2618614377,384695443,2541130777,3021682657,895412180,570300311,2493410758,4143297035,3063446979,2950496344,2506695890,1792933801,766214309,3960690462,1113125225,3714718755,769965352,2421439729,3088550988,3237957972,4245420536,2649282247,2706914245,4160591993,1516382592,2481012253,1012821073,915311820,3211872688,3981117621,2713850512,770447065,3455514692,454094182,2209518075,2170817255,2585069167,1815236215,4070735673,2105797595,3478565405,2963444887,1591290928,4051599451,2740811401,4038333901,265709895,1981381296,896655973,1294024404,237310635,3898571497,3733743135,2865734601,1439052201,3285196965,1863682976,2576063241,433468877,1194489176,3539158423,964177813,415586709,2209803575,2001019887,3973110774,2690247626,2943824663,2212426291,2260451615,3632801732,1309478950,1699597208,1717579549,129227975,3492237906}, {1585905481,3814713380,42223809,2639264575,3636649518,2987316586,1274058999,1298579448,2836782615,1390519563,1492536338,1235188023,495240223,2339028295,3850877731,3585260147,4030601484,149124635,1898281737,3567394678,3019199393,766668454,3381599098,48271524,1024596153,3167002861,2197538683,1455655168,874592589,696270483,561529933,3694078475,1776764192,77096925,2188580937,2523757220,868990597,3834443400,4291408234,3152600005,3525057394,2186260404,3421868046,1912114128,791545493,4231280352,3418594584,594437157,2173589575,3357034144,1723441490,3113758354,2322328584,2234385104,1260507730,1129803282,1210207485,4094980765,2653032605,1203720434,512062026,852219885,3640877777,312643093,224410508,470676113,1723175040,2154216973,2557814594,3704412481,2991329202,1715414791,1660955236,2765357974,4053583579,1677613721,1466818827,761341064,234987661,3407682633,1538173465,3680160918,880021284,3522114153,2512785953,1238471906,121130213,1494391244,2394426689,3596391678,3751799940,1629809751,2847750469,1286837609,2185455238,2216720230,612764650,2793802075,978270584,4239841176,2692969683,1536387320,2554030342,4016595440,3026755394,2078308023,419508198,2743374384,275411099,1530833245,2750957440,3795323694,50903409,3187709939,3952743484,605840152,3493491595,3667039418,1412721742,3882985696,2232697097,2975768835,3646926111,3306211492,1091092456,784354316,2402895933,2447437470,795728700,2880073346,1764584917,2749927874,2357508866,401140490,2299748482,1014871541,646712406,1096664153,4188697835,1101996995,72425403,3561822575,1434651514,1475189627,2754138108,3538648592,1310178395,3393193456,360576842,2060000158,2393158257,162962557,2220279063,613492847,296185726,3424329077,1161666565,1791528075,2779946334,836478989,1424408706,2067875682,2384566356,445988271,1064385255,3236299662,656906310,3400163428,2818430608,2568140552,3442550037,2920142998,1439763144,448414981,3622251720,57107715,3537834660,144192534,2454214250,2232368133,1463288284,1570845169,2687932438,2647055839,2252186002,1548794895,3268201719,401506511,3196418054,1503499302,4078810603,149069892,784075106,3961995268,1979607171,3337045596,3066184892,3311095897,4085424869,1790149370,1060686216,3818939450,2028385922,254477097,2141378117,3841501416,3486106143,2796541382,1613969284,1385517569,4289811233,294504054,2005267867,1683832394,4112717383,3306321297,2386358165,4031378288,1334782720,2356088789,1230280012,201263383,3793618057,107897897,2125273269,1654618474,574986876,1259138218,724122544,30789716,76365600,1254882417,3567547582,99897931,1561207989,594213333,602635175,4050435016,2939232320,2505472636,3863151461,2707986887,568123123,187572432,806048357,3653578962,2154218745,2048862214,2881464194,4006524628,368230061,2266834932,1974126336,200853363,1555644837,522142300,1335434930,301410839,4124130001,2117435325,4146551897,2443323978,428646590,3864745404,2724737667,2596718945,1955182479,1849453349,3826188381,1925244654,444707180,2199522291,4219138878,2382609783,1048752916,1131631420,3999131080,1389885653,3395840816,3640530514,1082753702,2030449640,33729731,3565617302,1423044054,1780331317,3053842758,585207011,2789168260,2365944877,3003393054,425043021,419544832,1172749268,501383651,1233642780,3961071626,1822192966,2357559391,1161406155,514907367,38003953,1345244902,839841343,1939661909,2495690281,2725719903,3293121472,1462482707,4077486034,3088136072,4127712847,1729261727,3223065619,3387930866,12111127,2445187609,544550317,2999785290,1796114548,2305494266,1410789909,40314854,48041558,3376071010,1422891115,2710366669,3902090292,2752116747,2884808816,3772495908,2310145096,3608211761,2975485889,828932493,1905096924,109758346,927367656,1436175043,1610426443,2031085762,852766359,1304223416,630375358,770893123,485670464,2012391262,850710979,4066873171,869982446,586577031,3726409928,743492968,2612541411,2010536542,1895304384,3422845560,2488274373,3639611689,999975599,1849100719,399476212,1820793632,181678781,1635191658,895509729,1670258238,4199683537,1939379285,1574461545,1681711123,2269207088,3571490373,616090400,1548720633,1395655126,3509513678,2919968941,4126326793,1259469911,347805534,4089401097,1227683753,1756592497,1879696716,4209739101,587316712,3435846829,3653288831,3677626672,4195748540,968598932,443531974,1324732056,4165400744,1005453871,945693171,2149457768,494535133,154888972,2228965569,460199831,440135820,345668502,21848478,1686956937,4098021825,86657903,1840489641,1129991134,382105117,3857572803,3972454071,4008017248,1182509924,2260914460,743271691,3706718768,964147793,3075785800,2435725629,2126059286,1296346937,4139422045,980306196,646479520,3721145641,783861443,3856942427,2615447836,2237210801,876365696,2674069323,2254675994,1237493037,2492644677,669410540,1335638418,3708010650,2458383351,688557695,2373493291,948717191,3333565136,2888364966,1103222149,37331407,2347920757,133164744,1322774794,3427758805,2445925758,2818953857,4115045321,2478316274,2531788120,2697208604,2080057254,3431488920,3187778857,2906133332,559834039,1073210020,834750413,2605104033,181665998,3005453566,4002113319,360698365,502389692,2722061116,1346587704,3769192819,3843236796,2762061720,1522775095,1438732169,4227800603,896241984,3155366706,3571780748,778589156,4222932565,3445321753,2934969819,3797944675,1511896413,3729640108,163962016,2346210776,1213151310,4058038083,2071755451,573264894,3814385575,2064494069,2085817344,1108522534,3461149167,1251867693,1244898925,530787081,1953199091,3857211819,1486720304,2150941770,1513177544,4143222321,2172504563,449551073,277311804,620758920,2566830636,2580023947,1281022208,680983239,141476498,3607539010,75821614,4220775128,388157491,936963708,3869431806,532019500,3697545479,4138858598,3137409531,2406138914,569574908,2402899039,4281951656,676247262,648634933,3122736700,3650679991,2733025505,1254069437,1456466040,3240653355,152741504,3787095921,209676543,3431960327,3800179285,3406581810,1761763086,1761815631,2579363899,2005673927,1933154648,4002230719,1616590159,2913244493,3186918379,1493541325,68230371,1143924054,316163948,3343915729,3087481700,684150072,2231981840,1647109681,2846340719,3096278488,407377410,3048161594,1737686957,4132080154,802498592,999111388,2878647827,1744663823,21819601,1691983666,2490912645,3022155154,3608305223,2235796032,673380379,1156646643,2728260675,863839941,1614365567,115004437,891106823,1547680045,2412571635,3110591774,2518396904,3287735677,2866823720,503878166,3278881933,1022229826,4129515300,252429459,3481368194,3152249677,1163108575,3621974914,266850740,3161420664,2708109210,2694560361,3270401188,3576890402,3809355169,3960811655,2909001427,28675493,3575466768,3100181200,2184484688,4137561312,3886089834,1853714183,2784781233,2295569742,585348870,2494360063,4208880068,602466948,3636718056,955447677,3345878427,4243299698,3443296740,62223556,204312061,4292440538,660806988,4128349582,796400781,2629367493,1302844523,412272327,2682796157,1526984260,2380949429,3694064678,3890759864,426669230,1066324324,175768705,95488651,1655417883,311477076,440998548,2342128972,2031862354,1672505939,107324783,2494396143,1329536323,3615302736,2817037708,2793845953,1926124746,1677692810,3848566594,3210403543,1603964759,695081481,1281640213,4203551889,574416199,163780132,444139711,347383527,3744794840,1871580992,1991024286,3196193953,1297749126,1075535196,2228129529,4125704690,3261095560,3133920637,3332329067,2851449028,534103208,4163448893,2098382652,3454756777,210728179,3483818996,3624231601,105409721,1236681984,1466726363,1157462015,3088916846,3094798644,2907937745,2378077656,3985216975,67353640,2289355121,2612439638,235491282,2890242119,2716347910,3668585139,2654119566,3537318480,4085283272,288997641,3896098242,2428444978,1240156737,219137897,751775767,3318484984,3692376736,1854146082,514208736,3138211192,2033574641,3293104078,3974995649,2708927840,2805974154,195304079,73494206,2393340205,776858646,959088224,2048995920,1978635864,2511326984,2918607014,2482353460,3941444091,1966370665,3661374563,838065858,1972853365,3681936970,4075018738,2174821546,3349245650,3627213398,2543433398,3282822305,892016211,2551660041,3041335960,771239629,2319254264,3627675869,1247329384,4254877166,2695702273,1032404407,2581024437,4026645095,1227423371,2128614254,1916202338,2193151623,3034044414,2022977307,2615187876,4117688119,2918003412,806160444,3497288206,635941427,2294339240,1737682843,3357923805,718331217,2399513102,2053428809,1606315974,2515698643,1602876020,1670662961,591988618,3294127964,2166503963,2648305165,2473257241,2304720840,1987890429,2280237564,997827492,4080760905,38740109,72576398,969883909,1603422042,195896963,83947419,1221413256,4294403598,3841470480,21712300,2134575539,1299260765,204357231,1373436325,1528702974,3385776593,1193944761,1934857034,4218303581,3194297584,578585530,447890946,981134794,729498602,1449357280,726051664,2678569933,2102027766,1642334530,274067209,2823375206,1580429719,134539648,683921904,903611332,3461100557,3499508499,2631225768,1063612096,1108369816,2702280377,472320440,3695300595,2766371234,3901034275,2540851892,2272915185,2573214949,2676858164,1396873612,3590312391,129483877,601832031,1629289989,722789610,1006323561,1135766732,3165958947,2811288210,457157053,873945555,1669876768,1757314126,529261130,2255882420,721293136,2547109481,2311081933,3292129996,10346659,966273403,2729321144,2200971180,3744019751,3756130710,3880989167,1959131716,2969504262,2067248155,3552073697,3843755547,557307918,3744928767,297645049,2016574619,4215155814,4083846119,3651553577,2576723169,651291061,2608614691,1408719415,1331494640,327901238,984208545,3720289819,713694234,1636442568,2346782578,1537168781,221267147,3918280446,1769974266,2584753475,2113890085,382279641,3732982796,926333162,3641786049,2089469758,1588766473,1546184242,402075196,1714820449,1414164814,3894662008,1300085101,3836771002,2803928393,3735668121,2238397290,3781531778,3103911293,209625264,1645203991,3374776838,3042932011,2882156770,3635106483,1644700862,2268275736,514732316,2988157432,2115127233,2552519396,1541300613,2879059172,2145594087,2160522689,2758607944,660855529,4282181065,1302330155,3460060634,1975885334,2321605434,3841110175,795065762,2403730561,3394253398,1998122913,1980749565,32100643,1259447967,2413205579,3683506041,2410758305,3979293991,3311019078,2568109126,2514718310,2028101843,60569389,2261094166,4063587819,2126268268,3525471424,916879618,2028961902,166306568,2122872786,15399743,1424970761,3007991624,3584439467,608147596,3974945661,1122615577,3325960329,3689568564,3322917340,3610383478,1215768993,3779505440,2744259293,2148732096,2265345378,2340846864,4180796913,2457120484,1628029934,980868081,2174044456,4081042475,1586404079,487729679,3055501254,190117575,2900316223,1978436271,1012582655,1313571951,3093321945,3267843745,485137692,3899432827,1672019519,1874484883,127489178,3746156388,3389917781,2765229216,840287702,4257005746,2383411241,3683637025,3641459453,288570242,4144214199,1372867291,622604020,2991945077,1674965042}, {84940587,1743056002,1714035564,3742561236,253894427,756319949,1182287383,801179326,2867701346,58739408,469355830,694903749,2458549361,271391639,1523033221,1941284831,4214317188,2811075442,1048727631,340290267,2938917908,3907681806,2722010815,281614329,3724071389,2860558197,264960981,2626258306,2680065695,1331783491,981575872,2750167601,130665608,3259143990,3378620200,2398788603,1522238514,2084157098,2276619673,2850194195,1884180814,2388461031,949092780,1734701777,1721824735,1308214014,2686044375,2129131792,4127747069,1725152858,495445410,1004093999,2827057297,1740182094,3038234261,4254225197,3694551204,164547194,3971486226,940145192,3512050201,3761538577,1963744565,1706862866,3200334152,3124659762,3041648606,607709090,1405608692,1493304771,180740043,3812647597,1438738563,2798446416,3932597599,721066395,3546856548,3224696834,333727294,2141895372,316992711,2476582933,2042588261,2432002503,1755794490,2939919017,616557521,1474668306,919495026,795085678,853204660,901646232,150960176,1608525986,2049694128,3089632232,3285448711,393363755,2563668689,4022417279,3950438680,1007256149,1752060138,3361304323,1444697156,3568436982,1499999793,1325956911,2442396853,4186731853,62471118,2820160933,3948907064,3959560463,3891009173,3413323019,3566698345,2337102335,1196408421,3510114589,267804802,4008641858,4079782370,2714240341,3913905056,2002030193,2924152470,596307300,3576000063,2288557065,1873514489,2691699357,1617880167,4225714217,1056139098,273224406,4165553767,253381179,2039496417,1618325178,517493225,336049494,1256261104,3742755160,673924255,1078529609,1630067479,3101761666,659438744,162102822,2001721216,3302256416,3175762143,3686984151,2622299696,926371454,928592862,3540135711,2187149718,3958072120,1210577411,1957420153,3544571998,3545923792,3633624526,520741786,1044469626,3839662078,551814721,952996649,1029240013,2831882181,4081058135,2810670727,814928035,208846429,2962285348,2933605085,569222472,4032301377,1778138149,2108397396,3914174666,1509502479,2937769140,2181560065,1168773351,3149497461,1374578814,3294449568,3421747753,2554481352,2748421879,2618185512,186937453,3479789059,1238157286,3771864012,1563166248,1249150279,3358283914,520113981,348882980,765260656,3746712962,550073153,2750338908,2716882872,2407696273,1993479417,2010096620,1346121982,909422626,1001284471,3971784703,3720872466,4041722929,389744602,49540910,3034298494,521755529,1805724558,2509543374,3214194014,2122833621,1559351623,4000009052,784773379,1231536837,2970357109,390430478,25032201,1168261372,3912313852,1401858662,2851427066,2948557959,2507757935,476300715,1964149387,502266665,2710971136,4209376562,711668731,112104455,208243742,1068724162,3648677292,1466576180,2521179975,3349352437,1145334939,2919414640,97889749,3603783473,610099043,2762266581,2718688730,2553550067,1836432526,81133053,1627233204,2513527571,236671954,2602268353,2382657803,4147040849,1693245331,1915637342,168230931,3131564836,3964482527,3786618138,771387697,4109279290,2258692400,3114899319,315784199,429490053,4293885449,3484474194,4237711220,2122636739,1654440458,2209643118,1171145087,3194768515,91450032,4174839736,3000359415,3182545810,3840187712,1070910898,323450573,3422174583,507003980,3623359029,270099291,3441191802,2314009708,3362000704,3114084091,628286023,3435192976,3481866301,657967619,1307870342,2503648922,2942361875,3055609765,4024416442,2051772386,2943136387,2280348148,4079895505,2129614373,883824969,1594993648,4055346477,543981638,2325308262,170555749,3671276393,3585369019,2339910486,1446183539,1479520999,2961045756,3581960932,3791201490,2726309814,2445430258,4268029751,1285792525,2782972048,4173311618,3344263754,403169384,3331640143,2258352610,2868954534,1217038683,3943880375,81378554,3078108814,3501973708,3459982121,2793476350,2437374564,1153843269,627499807,1711750388,878361882,2424852969,2063397281,616430771,1960845954,1975396671,1083672861,2746514031,2726859801,2241935834,1019226152,833271499,2611717272,2689818809,155501762,3199958989,1399963053,1825337559,2313605402,3389214337,3361341642,167354717,3550458358,3187009567,3311634995,3110341804,2334708583,4121665977,1510562998,392606078,2766782202,2790807208,362956073,2233476957,1133019705,2981550185,2146954547,2627722666,1353577862,2637829069,957820791,1126751182,3080362506,3809473168,1218499797,787787713,1606538879,1914836898,1192702130,1355167694,4168533879,844140018,2898381740,2132860380,931711031,3875886626,1997879438,1688146901,288457466,2848692783,1859521174,1802988550,3452325891,2100843124,4292112979,3943729661,2381155540,3728252999,2524044304,3319673312,2777754198,3676035831,1823213760,2521612986,1590258061,1520583186,939568897,485478310,2150932025,4169961026,1466276661,21538370,3509943241,2796795830,2769988101,1265618499,675407406,451098208,3002761089,3051733180,3934999192,2698605893,3920785156,1206594549,1559035837,187059977,1572256844,1808429610,1905623120,42137027,2571603881,2979191784,3325284367,594562659,1007305669,212046623,2056151669,753178044,824616076,1674034093,555027341,31066237,2819740752,2388400870,4123118292,4119873258,1724564678,2142829442,747945709,343310482,2032422711,4149824231,2681638583,3474094119,3774782067,4244048885,3711216073,3802756830,1329449195,4022467115,3788922564,2263999791,3283944023,4015541158,1851038549,1835708641,3844601565,313439301,1354237894,2679114417,2886883477,1231220201,1865553025,441503479,942039137,350483556,435670284,1922776892,2947184635,3227224180,4218745384,581657342,4266526553,1624422062,1167634690,3027817503,3148254096,3987846360,2425659934,1311195818,1640219189,639679323,4247969330,2965844096,2500881227,4195831413,1382188369,3527679656,4083923084,2220107653,525868133,1416269342,2144053946,3111609327,754492223,2890354043,2444522978,1555082920,1795707598,2343070047,1901099204,211656060,355189676,3199289099,265383958,1553889541,180326465,4115557249,3293558832,1303414579,1712593891,1144524831,3455993807,2457839794,2417804605,3682081721,3006593631,2491971685,3593656930,3374526984,413615125,1178301956,3752904996,2269596141,2757477772,402074081,3366107575,3771516128,1995504783,3030739544,1603436571,1677458437,3726087761,136693151,3679440400,3244872459,2040134863,3012487923,1583780804,2643314515,500842201,4127874964,978678818,1882124684,1182637721,3904221948,806299632,186830287,600108355,720147559,4284577377,2398512293,1983965031,2599523042,2624616069,372385077,281978695,234699098,1646804209,2154708068,2320005034,2068933092,3431191276,3108206279,3597302321,1315566055,2422341142,3412951593,258232691,4043082517,4235355790,84391174,3751169951,3624800981,2723125083,3615448691,2720047203,3515658561,3370962788,2039582345,2596818194,1353185899,2575838825,2359636183,3435837203,3125197470,3209721037,2794853518,927014343,3381913013,1384046914,405116148,3037862123,1218377569,2583318754,4274649937,2991925424,3096804299,2243531025,501397022,785704286,3836479828,935392363,1086389481,1870117776,2111233601,2467544137,2612027963,2578011530,771305988,4171373213,1049586840,3834478350,3569203940,766521504,3248908430,3563493585,2396205804,3854834723,4080070474,346557891,1086357248,323560192,1139826752,482968351,451316833,2028708072,3456464816,886393236,1925529304,3466918072,3056533384,1099626342,2164269857,1090612105,3412683008,303339110,3766025658,2830722105,1024972868,2010366848,70504119,2242388562,705142073,4021209099,3673941921,3833716675,4134792218,3865282258,2963189837,1674446466,2793320925,1573707715,242139265,3602735569,3750219111,858215973,2061726804,3913531845,3091871028,22438811,3585463936,2462941705,1318283750,860326223,4207231832,3910274004,4183899427,3056790696,2887891361,216379398,1297232219,3013086942,3132423670,609695634,2179776452,3505082607,4171229514,206653034,607461807,3679330991,1384407598,1680034148,1224703838,990130746,3919176358,4276930248,2722758306,3422956529,274315873,3772028278,360376357,2777806809,4023842095,2358428883,3697941905,3667308621,1918881882,3343985055,576808164,613445610,2248692242,2066012617,166800743,4179628277,4226153413,1771549052,2754301214,3326157290,3644057615,872213682,2156025126,810872150,2024455112,680421731,1032938652,1137393763,2837971500,1604219432,3026693777,707837735,3486231661,2558527593,1626545304,462187035,1530461153,2548274685,3863003462,87356188,3783581047,1049065115,606170761,29080594,631795860,734792164,3392149695,2130613330,1044808790,3715630415,45534310,1030939104,426207454,2380855301,877021592,4202311139,2181218397,1002550934,2171545806,4243522108,2163655997,4146589549,2716537182,3769351184,1003800437,1898155199,2326163378,501121912,146774151,2861982381,541171881,2783374996,1962520873,3253504561,432373625,3136765559,1146544708,1297226348,420217555,632044027,3425853737,1516809026,2299551944,3091586062,2026083021,2098840435,2815692259,3391997496,3315017061,11620429,3602151070,879047178,3825530903,2487732025,395030861,966863622,896004673,246308757,719356007,3546483579,4262955139,2421177290,3561399244,3808740694,3647948725,869967629,3656354840,1036060583,2210315568,1533576979,3904559037,19153124,1465267236,1927464257,2487524493,2217903391,2748103134,1726485587,3471130513,2668136778,36079918,3036028386,1598228561,649108897,3998138738,319716528,1185693710,2812497516,4196472812,3791144109,3584755661,3201551602,4129601996,605823627,3372249844,890537252,1262234577,710512297,1318236205,3473445236,1108797163,4290651809,2759871094,1504926738,2588401689,975322197,685946918,1347541306,1052472613,1769650802,659696826,2578469910,2485733846,162506862,3824197084,102576543,1193285075,2255250235,2375252588,537736302,3704023405,1910984065,3423154395,3357044390,1462919572,3722217983,2858501089,3231600642,1649459451,3500251595,1911717458,1915873149,3068224398,695852834,3548539651,2634156808,3958366774,3384687279,2200184080,2992450597,532540800,1849618812,3278241270,3522274356,3226153549,1661076016,4289404462,1158825600,156868445,2085338143,1462242222,2662271725,3676069026,217498880,1948392313,1048426156,1680620698,265273965,2671070106,629062588,300514990,3719502543,3358510600,800358782,1832166695,4181081021,402302275,495287173,2376122986,1555017040,1633882515,95411817,1667702964,1910285419,1632403629,2287818243,3630394080,1387926771,2663632573,3870776129,2595251677,392678420,2210126511,4079199701,870109275,1875401108,544509420,527841475,76288606,4179934835,3558425263,2831142557,2741082410,3922317285,134646871,993397053,659747167,1473960942,128311428,1428622975,916926704,3701264118,4019295417,4268207515,2062521595,1565409476,883232103,3581643044,1190390993,503998696,3392528607,2539044185,363093104,1407218391,1775877010,230193239,3387879861,3746343713,1482595949,631321090,1479193820,1309110408,3264473652,2521404065,1507698953,2338670235,3868408198,2999158714,1697897315,2804018326,1970539412,2832040383,327125578,134252466,4086456046,2964017573,2059619969,1937050509,2543904950,1998357256,2049347085,1224317484,653951829,1031094397,448150525,1001918240,1478094778,2856708514,3960013812,2824330936,3338936638,1446718968}, } ; static const unsigned char precomputed_decode_1013xint32_s[precomputed_decode_1013xint32_NUM][crypto_decode_STRBYTES] = { {122,74,137,219,105,150,237,139,65,210,112,9,55,197,163,76,210,22,111,225,213,241,91,185,153,213,196,253,113,69,254,13,214,47,254,29,232,66,109,157,174,145,40,81,189,53,78,93,152,91,198,21,84,120,242,192,109,118,90,30,251,121,215,214,46,17,28,43,63,57,229,80,0,175,230,70,162,17,208,61,225,173,11,233,185,189,152,29,12,188,200,15,44,38,76,105,228,187,226,183,189,117,138,98,23,130,121,224,222,76,28,102,223,175,43,228,180,28,154,127,163,179,52,178,158,182,162,103,72,14,210,12,17,17,43,80,158,109,128,7,28,117,85,81,207,163,88,144,192,30,217,54,137,47,9,32,48,44,160,252,215,127,239,43,183,147,144,245,245,32,202,236,226,150,180,119,77,79,180,1,244,117,230,105,211,202,195,235,243,227,186,60,52,108,111,255,29,251,31,231,7,16,29,227,220,40,72,21,33,118,205,10,170,119,26,184,1,157,39,16,48,147,67,211,53,186,107,168,73,216,94,70,14,42,247,26,252,32,93,125,241,228,219,170,119,118,147,27,24,181,113,95,175,35,79,63,93,183,234,6,30,104,239,147,185,247,243,202,234,250,77,116,236,172,146,67,105,68,77,164,83,248,60,243,37,227,103,210,12,57,137,149,207,46,47,205,209,127,28,218,195,196,156,4,67,208,179,121,162,35,92,18,246,28,187,203,23,7,245,30,12,46,159,146,158,214,91,193,75,17,58,43,124,11,189,153,198,92,198,184,131,82,101,231,223,74,155,136,34,63,232,167,248,97,57,90,171,247,9,66,145,12,181,166,52,63,251,240,53,55,54,160,110,118,162,211,134,123,6,181,28,7,36,135,150,132,125,108,241,92,220,248,162,252,4,153,25,255,40,152,77,147,177,228,151,4,184,114,156,220,41,250,164,98,214,180,24,238,73,170,160,97,21,105,178,94,166,40,46,9,213,161,197,165,154,29,84,216,245,36,247,179,93,123,219,43,242,102,81,236,137,183,13,239,49,19,134,199,213,25,4,40,132,30,176,234,12,81,51,147,26,80,223,137,37,252,72,188,53,224,82,35,93,187,100,191,22,103,142,229,162,246,62,5,122,3,177,172,65,114,110,76,84,218,87,167,127,141,169,79,117,136,219,12,47,252,229,207,10,18,110,58,16,220,247,0,80,89,72,136,228,190,90,68,64,251,41,67,101,115,30,189,38,72,157,124,203,32,171,73,233,234,192,154,237,119,98,46,200,207,236,99,91,213,239,165,37,218,69,222,155,132,238,198,203,19,102,207,153,170,126,141,54,211,133,179,9,166,223,30,96,81,172,197,149,109,76,202,206,224,131,47,115,134,165,231,232,215,236,48,137,51,213,159,18,49,237,4,41,99,110,77,90,58,64,117,114,180,168,149,190,111,202,93,33,157,6,102,72,106,190,250,75,5,254,37,84,26,37,84,62,224,70,95,218,73,98,147,210,164,175,152,141,200,35,205,147,76,156,51,160,226,62,77,120,172,177,165,160,96,74,103,125,171,199,140,242,150,216,144,93,155,23,194,70,24,53,44,169,48,59,38,64,191,29,185,53,121,74,154,109,172,109,112,90,247,67,204,98,183,149,124,231,44,0,157,32,142,172,7,255,196,160,235,155,20,80,90,150,60,193,190,49,98,88,192,183,208,239,99,57,194,189,38,226,58,246,70,124,121,55,173,5,181,191,126,236,42,136,253,161,240,110,64,147,25,67,242,100,65,138,81,174,161,7,189,230,188,207,164,27,220,184,61,151,150,112,120,5,187,126,84,76,144,107,145,84,226,127,99,0,142,247,173,191,41,81,232,51,126,35,141,233,234,83,189,56,86,203,62,99,114,61,253,25,141,137,108,30,132,4,200,56,235,68,5,2,2,38,242,213,108,167,183,185,209,200,235,65,41,116,161,130,211,216,33,85,3,39,158,245,63,237,53,65,150,216,70,251,100,93,108,89,90,94,8,245,246,38,28,217,99,245,183,72,11,186,59,86,150,139,156,7,9,54,172,250,129,22,165,155,164,137,161,123,225,36,149,197,193,50,206,255,160,57,235,20,185,55,247,235,19,241,219,238,105,245,154,172,189,243,8,241,61,22,255,117,137,240,13,59,114,30,249,177,124,56,145,240,173,139,203,161,11,58,130,51,156,250,179,138,240,246,188,108,58,220,240,177,149,230,49,150,112,16,190,201,35,241,195,186,153,19,57,215,71,220,61,70,93,199,162,165,245,207,77,111,75,1,219,68,27,21,39,210,138,229,1,24,195,84,33,173,17,218,252,5,216,56,150,79,163,156,205,103,106,67,214,0,223,170,71,29,134,186,59,197,116,180,176,62,122,53,70,66,43,116,241,191,180,206,108,104,248,133,57,59,8,112,128,33,220,9,188,15,199,51,56,136,56,219,124,180,147,131,151,2,187,13,148,225,29,213,227,212,7,217,209,89,48,221,242,73,41,76,131,100,159,94,102,253,9,141,196,121,113,177,134,163,214,136,28,0,98,230,166,164,87,103,64,223,29,110,44,63,161,89,204,211,65,125,199,129,52,132,192,75,98,5,147,154,200,95,40,48,181,72,53,57,45,92,171,91,137,95,248,118,95,107,152,200,77,67,17,166,252,140,228,245,95,66,255,181,148,43,232,102,254,185,22,234,22,205,228,60,94,154,201,28,125,74,149,97,92,109,210,249,241,7,137,233,34,108,13,56,24,115,240,143,229,206,62,124,92,222,40,219,242,86,226,127,250,4,134,232,58,148,233,5,197,99,9,154,42,194,204,236,29,111,40,191,104,97,228,35,166,23,50,183,147,220,42,90,59,135,223,193,180,225,113,125,120,89,215,137,218,203,29,11,73,231,237,194,223,114,22,44,196,34,81,150,194,221,251,211,240,154,161,210,188,169,200,129,35,26,208,155,184,150,124,64,192,101,160,35,173,113,105,48,60,7,153,21,59,86,179,197,136,222,154,103,76,124,214,74,58,198,253,186,96,216,224,18,219,96,87,77,98,203,253,153,183,100,251,16,201,181,139,120,244,182,152,15,174,167,50,216,210,126,216,194,104,49,99,217,83,158,189,127,208,80,127,54,38,203,237,75,112,86,77,204,163,157,20,32,116,43,240,148,177,24,89,198,38,218,243,23,199,160,241,185,108,88,206,217,109,166,246,62,220,236,109,45,252,203,255,57,208,184,194,9,213,241,51,160,213,107,79,106,45,50,204,186,135,53,174,131,228,79,229,20,129,109,52,78,175,156,57,168,143,221,166,238,16,160,193,192,113,187,173,203,246,42,94,117,197,187,182,28,223,162,65,43,185,34,58,12,146,89,5,179,50,105,75,201,85,82,108,176,244,94,213,251,50,134,192,59,206,229,91,94,245,58,174,129,199,109,34,241,123,159,185,173,142,4,212,10,88,91,31,255,197,135,110,254,57,223,113,189,147,186,223,2,150,83,195,153,225,68,251,87,231,94,216,2,49,132,246,203,98,131,186,236,55,196,95,146,112,9,117,182,84,62,59,168,46,27,45,48,221,128,105,33,210,244,46,92,165,110,176,74,195,239,64,190,39,137,106,61,235,181,146,131,171,212,67,159,38,116,133,124,155,18,145,112,1,65,253,1,248,165,208,219,18,98,13,120,57,147,67,128,130,236,187,59,72,93,50,149,50,245,2,200,95,161,134,108,252,60,37,105,27,198,216,247,105,138,145,150,26,112,253,117,30,167,13,92,26,147,215,99,192,16,234,221,49,172,229,64,193,235,250,117,121,2,166,173,186,208,1,211,255,44,208,132,238,184,110,64,8,106,163,119,70,168,45,80,222,110,183,129,101,175,146,46,32,236,239,185,109,100,70,205,4,79,196,145,197,189,177,112,252,31,148,85,210,128,32,97,92,62,44,174,113,158,54,49,40,91,169,32,170,152,159,236,69,11,196,215,103,26,18,88,137,28,202,151,220,213,110,47,148,180,224,181,126,22,214,89,16,86,167,171,148,18,59,67,120,164,66,100,10,124,189,184,55,86,246,27,40,234,105,130,253,210,61,79,140,89,141,106,126,118,180,248,88,228,200,221,67,122,105,224,162,10,153,122,159,144,130,233,7,130,206,168,174,242,205,163,121,63,86,226,143,88,108,201,20,93,67,41,198,215,134,239,123,201,222,16,107,57,104,211,99,134,29,248,104,161,93,94,153,86,137,44,233,15,117,15,194,62,172,15,72,64,158,158,170,151,159,68,46,226,144,152,95,201,244,196,193,96,212,101,102,21,167,81,131,148,246,4,10,66,164,169,76,36,23,236,174,83,19,45,13,19,230,253,16,67,28,243,29,162,77,138,47,7,102,6,41,114,39,253,70,6,172,55,11,154,242,159,87,197,189,210,128,140,124,179,65,165,220,66,180,163,86,44,164,152,135,232,255,115,242,48,141,201,221,83,116,183,184,212,32,66,92,110,149,27,189,204,195,222,133,170,184,32,69,140,81,53,110,2,202,166,178,95,75,222,139,144,37,130,59,247,165,236,157,197,162,141,23,21,207,191,180,180,199,99,250,173,224,195,226,13,242,204,179,69,253,124,2,105,142,218,254,168,109,37,89,92,29,158,215,114,222,124,213,197,22,112,34,181,85,141,109,236,75,79,214,224,133,94,1,219,160,121,59,243,179,63,59,213,249,48,30,198,180,255,173,29,194,241,140,14,188,235,250,175,51,45,53,130,11,104,2,6,57,169,37,3,201,24,220,244,7,145,76,107,241,30,149,141,157,159,62,177,27,95,29,254,239,231,129,108,124,10,165,150,227,67,161,138,9,90,83,53,97,93,74,120,55,121,106,242,16,4,125,96,12,212,209,118,158,203,98,65,97,16,8,248,130,103,32,250,187,172,103,148,27,22,211,82,3,51,55,65,41,40,18,11,16,164,123,225,19,234,114,200,215,29,150,20,181,207,145,18,203,40,17,37,221,11,75,215,159,250,38,223,175,156,153,177,111,87,65,2,100,192,193,37,2,86,101,204,236,224,57,233,79,161,220,211,191,175,179,163,220,239,80,116,201,238,56,38,57,218,235,203,1,156,216,230,184,200,118,207,94,233,199,156,205,56,209,90,86,75,29,210,164,150,125,25,28,105,218,90,229,41,157,196,103,5,113,43,108,255,80,131,103,96,47,221,88,227,108,57,76,243,203,147,0,44,159,166,249,68,248,197,182,195,200,178,105,240,32,39,31,195,120,33,154,14,87,81,83,69,79,96,12,164,72,101,118,173,184,101,180,83,92,206,101,173,60,105,24,208,150,112,235,111,224,28,69,203,244,175,192,186,62,171,241,230,41,87,194,212,44,32,68,71,201,70,81,157,61,11,79,129,145,1,77,201,238,20,40,61,91,9,179,96,168,172,9,135,138,71,173,45,113,234,148,71,131,126,68,81,106,175,19,251,18,159,151,120,147,161,86,35,18,78,59,184,123,51,71,211,233,132,155,2,234,188,250,231,203,241,204,138,208,36,204,72,209,186,225,156,128,50,109,150,255,120,177,234,128,27,112,6,255,68,143,215,121,252,147,205,241,215,0,52,189,51,65,251,84,51,181,10,147,166,72,46,120,53,224,54,182,47,197,198,154,232,120,246,33,19,104,45,35,20,163,51,3,25,80,126,167,81,200,210,173,164,157,225,14,143,10,20,59,133,137,13,155,54,97,13,118,88,236,51,170,53,100,153,170,109,15,47,245,169,179,65,159,58,236,165,50,246,64,189,192,102,16,140,135,99,50,173,143,63,75,159,184,112,11,10,106,46,210,7,36,137,218,157,83,148,239,241,159,216,116,146,37,173,124,152,215,107,182,47,223,129,37,81,34,35,182,203,3,171,46,185,246,68,57,3,214,194,185,127,65,155,13,29,23,208,37,182,103,82,196,29,153,185,45,116,16,106,21,214,85,215,160,119,138,199,10,214,53,175,5,86,252,91,165,121,135,55,133,206,29,248,220,151,9,233,44,71,11,154,75,52,5,117,188,170,9,118,182,174,42,93,31,191,159,16,172,159,2,68,68,124,128,170,183,116,189,166,179,169,24,130,134,195,146,104,74,184,133,66,5,139,50,1,223,45,194,57,86,72,77,131,190,177,83,247,191,40,190,51,236,212,187,221,145,11,106,24,92,145,95,168,141,190,20,206,17,252,224,196,92,191,123,37,251,78,120,61,226,149,73,6,200,13,246,168,96,133,163,107,251,212,24,104,166,81,28,78,212,230,72,182,39,189,103,197,34,36,209,148,146,206,47,61,25,103,96,4,34,157,0,208,133,153,65,201,251,134,101,250,151,233,60,207,78,159,7,176,40,128,120,45,57,53,22,218,58,138,205,68,191,109,148,132,35,29,229,203,176,254,222,181,5,63,245,176,134,227,142,11,96,157,21,50,226,7,19,133,234,166,143,254,209,49,71,74,132,207,228,13,61,118,149,172,195,201,61,25,160,176,118,113,156,254,93,141,193,75,100,91,88,2,244,147,21,70,114,156,178,93,105,232,139,103,224,6,227,224,15,223,194,24,74,228,165,217,71,171,106,47,153,227,21,150,182,110,212,107,17,197,1,20,9,208,10,235,169,14,93,68,143,22,114,58,171,91,105,252,34,66,146,164,183,71,174,220,169,34,131,126,253,128,191,3,44,78,6,99,251,27,69,99,192,247,64,97,72,77,221,62,65,7,199,8,82,141,134,226,226,18,96,233,217,183,53,239,123,128,178,169,194,245,99,49,87,210,237,69,112,76,22,40,88,120,12,131,249,220,195,182,116,35,64,164,11,51,95,84,230,4,73,12,26,74,235,96,109,249,56,163,172,82,23,189,205,64,22,15,80,68,49,183,51,237,219,46,172,19,239,225,190,82,107,98,93,48,91,68,232,135,209,242,228,167,114,207,62,91,22,145,227,182,183,226,197,151,24,102,88,151,51,199,220,138,208,233,31,47,251,120,54,93,139,98,252,167,250,200,21,187,95,114,255,163,23,136,122,150,71,221,145,10,243,67,168,224,145,57,139,83,16,113,135,250,195,64,21,29,146,32,165,169,225,39,31,113,231,56,22,231,117,99,156,7,25,92,211,187,113,253,226,230,120,228,244,226,120,102,68,248,110,186,243,89,221,52,78,78,86,45,26,152,9,96,120,110,209,83,104,0,249,15,48,238,76,156,31,144,185,117,46,175,19,129,145,203,242,40,167,14,161,113,146,240,23,235,174,238,175,112,152,59,31,15,68,26,208,192,222,137,27,84,80,95,81,159,47,118,119,43,154,118,41,130,187,239,35,80,122,173,52,214,43,170,37,11,209,91,234,175,33,32,79,62,106,241,58,156,211,156,20,44,224,177,28,55,180,173,186,130,63,70,185,49,33,163,201,197,229,142,53,184,203,93,166,63,105,110,79,211,98,77,173,37,109,109,199,181,21,65,108,207,117,219,192,47,248,228,108,173,191,68,44,38,0,180,107,164,60,39,254,31,175,93,47,121,30,168,14,9,204,161,103,149,219,64,115,241,24,140,151,53,48,103,16,99,137,201,154,207,191,31,208,36,4,239,54,60,189,191,251,231,136,91,6,218,186,31,46,137,236,206,9,143,58,49,27,24,56,77,24,123,22,41,140,166,116,204,67,83,99,216,91,223,126,203,8,115,125,65,200,52,223,205,79,192,7,163,70,251,193,106,103,163,80,247,38,75,89,145,158,44,16,44,182,57,81,142,82,117,60,207,90,93,164,228,28,77,253,81,17,134,192,108,220,164,9,245,81,129,93,90,42,66,50,233,31,139,68,17,100,143,172,171,204,163,168,58,233,15,121,186,40,183,235,231,250,93,236,74,165,94,214,25,28,69,2,204,230,64,57,80,14,252,198,87,180,54,230,248,190,133,190,53,13,215,202,223,252,21,108,69,189,204,102,81,123,39,185,72,39,242,77,52,145,233,73,122,56,7,17,218,197,207,205,28,93,202,24,81,57,116,41,91,185,152,188,120,232,69,81,48,80,6,168,170,95,10,123,177,67,188,150,12,89,42,225,74,54,237,158,188,144,100,98,182,157,204,251,169,109,76,58,106,86,119,13,217,226,76,123,189,34,251,42,98,69,71,33,110,101,45,152,23,178,179,203,202,88,122,88,39,223,34,46,26,168,202,52,65,114,14,78,30,115,148,250,154,217,244,193,233,244,40,188,196,130,148,106,17,248,68,153,55,208,142,99,34,171,108,139,231,4,253,183,218,207,154,10,73,54,186,97,26,47,239,35,114,157,175,220,173,206,242,43,146,83,19,50,180,182,82,16,114,34,149,208,122,109,102,70,122,147,120,228,79,28,105,232,74,169,165,87,103,157,107,131,243,93,102,141,188,27,63,112,77,23,59,71,224,158,154,241,17,120,136,162,81,48,132,115,100,216,207,166,6,97,221,203,132,253,0,39,105,30,53,213,64,32,238,237,50,16,139,78,49,202,120,186,249,167,212,115,242,157,185,253,57,173,57,10,63,65,26,192,122,173,206,248,39,22,60,70,182,106,27,59,55,36,2,41,29,6,76,126,239,80,18,230,211,30,126,121,187,178,107,253,69,193,185,231,87,220,61,165,73,121,136,226,227,151,152,22,92,54,30,147,243,66,250,111,33,5,55,101,163,251,237,55,243,245,147,60,81,47,86,215,19,5,200,174,36,49,89,109,67,9,55,140,8,151,73,140,188,160,142,213,248,205,187,0,151,93,148,4,140,238,49,122,224,135,166,177,131,191,95,209,73,108,150,182,96,146,222,132,129,116,115,88,106,182,14,133,13,154,205,185,198,57,80,56,196,50,162,213,171,70,210,200,233,188,235,253,208,192,182,89,93,230,142,189,31,253,211,74,98,109,43,103,193,92,113,84,170,122,141,149,204,244,85,149,142,183,123,125,70,73,50,141,103,71,184,76,79,236,205,139,162,191,70,79,81,59,201,12,210,51,243,216,137,146,65,165,109,74,4,127,114,254,133,32,185,120,94,165,2,250,50,167,83,104,153,132,173,238,135,22,84,130,207,152,64,131,175,201,52,7,116,86,14,206,187,27,134,164,187,107,43,57,108,101,57,126,35,138,110,202,139,58,24,66}, {201,103,100,85,135,209,35,137,60,195,191,172,250,96,212,203,79,154,18,221,62,209,0,35,54,49,34,4,180,56,208,76,74,213,222,30,211,107,138,90,46,158,58,195,249,202,160,155,30,4,25,140,28,5,20,63,87,161,190,236,203,113,56,144,115,118,212,38,150,62,159,196,115,241,224,130,18,56,177,48,117,110,176,65,105,30,253,19,72,158,54,33,183,15,185,240,194,1,204,123,13,123,172,43,100,247,73,116,121,238,213,231,88,239,216,112,89,58,84,191,13,138,242,81,49,42,24,117,104,217,120,241,237,137,0,24,131,246,101,198,222,203,71,222,230,163,208,215,209,200,42,183,81,190,15,223,104,151,220,38,26,82,155,68,109,118,130,198,253,76,3,231,76,77,211,49,114,160,174,245,242,90,26,183,101,230,83,240,147,191,41,222,111,162,158,70,87,152,110,209,166,86,163,144,35,85,33,145,10,224,18,134,165,108,19,43,254,138,77,147,13,47,131,30,72,120,189,228,174,14,74,102,174,179,245,29,175,208,59,23,39,232,22,178,116,94,91,137,206,160,104,137,88,213,81,36,223,228,130,82,245,134,210,197,156,170,49,137,163,39,233,41,143,68,129,231,213,183,134,30,232,100,166,94,175,14,10,201,26,88,38,212,60,72,30,196,127,4,115,235,124,219,181,9,230,173,187,154,196,23,4,217,101,155,20,196,229,224,118,10,60,252,209,166,45,91,71,139,204,202,165,31,29,39,152,161,131,125,111,67,150,98,167,35,136,239,112,224,202,229,73,71,30,63,107,103,105,212,111,127,21,87,29,168,25,50,185,48,26,148,60,51,130,45,161,190,180,19,242,113,172,18,255,0,218,20,21,170,85,16,65,2,2,200,235,186,28,166,166,6,65,95,33,251,19,248,154,161,244,135,102,37,240,110,77,83,123,25,198,10,66,211,207,245,99,47,91,33,201,80,193,75,48,42,226,61,131,136,130,25,139,29,157,208,104,141,3,236,252,77,234,251,143,240,243,218,36,144,119,252,218,14,164,34,210,96,42,1,89,68,155,71,219,152,84,254,35,17,38,98,254,148,7,69,97,193,199,207,84,148,143,190,244,94,15,120,123,208,71,143,120,183,72,20,107,81,218,55,117,4,238,238,182,130,14,164,226,127,118,233,247,214,230,104,190,16,236,0,249,200,43,55,136,7,220,20,161,76,15,135,25,55,30,58,236,57,221,31,38,91,25,47,36,241,106,232,162,22,43,253,77,210,69,180,171,178,96,56,15,20,79,44,100,147,235,81,157,16,15,187,232,12,198,220,201,11,191,133,150,101,9,68,65,175,55,106,11,49,161,228,252,34,111,108,109,113,173,150,234,4,206,59,203,101,22,248,49,222,19,135,166,175,150,102,111,107,255,55,213,218,239,106,112,70,144,68,107,197,175,28,118,200,124,195,122,76,4,140,123,37,165,209,114,184,241,170,96,155,227,70,42,143,77,197,124,250,193,25,102,179,16,72,146,223,110,210,140,64,128,69,21,199,1,244,32,56,105,73,221,134,235,192,161,103,176,106,117,128,217,140,137,34,18,152,169,48,210,94,147,163,20,127,6,57,183,157,38,109,192,105,138,178,170,166,71,128,187,7,68,154,10,154,184,143,241,156,168,77,248,25,150,59,249,232,8,186,128,251,113,98,146,77,198,127,17,249,56,227,17,15,146,110,214,185,12,201,217,142,117,192,200,247,222,34,154,164,84,94,47,13,232,51,252,42,48,231,43,187,184,72,74,82,73,228,111,27,152,22,137,35,87,14,249,100,74,104,189,134,128,82,100,27,107,120,48,191,241,86,129,225,6,236,216,68,30,112,156,9,145,119,75,226,28,159,223,118,48,65,195,215,100,202,105,108,201,245,131,172,63,172,251,48,181,3,141,99,255,124,47,61,84,212,84,192,125,15,6,68,35,206,191,49,26,99,16,219,243,214,134,17,176,129,179,145,193,246,131,48,192,68,143,26,216,22,195,39,246,177,9,168,14,181,105,41,38,94,55,110,38,11,42,163,217,154,96,152,247,246,29,152,182,151,195,144,200,163,103,67,224,183,12,33,175,107,240,127,231,35,79,184,51,82,28,216,68,57,15,6,0,81,196,132,93,47,228,196,172,141,25,83,212,79,233,44,55,45,198,76,164,18,4,233,209,162,164,118,149,63,84,89,93,114,70,139,132,17,14,166,231,151,57,34,0,161,60,142,130,55,68,17,185,76,83,88,218,15,255,15,28,166,162,108,38,179,193,108,230,231,42,239,205,137,237,80,215,89,3,224,173,9,199,31,40,107,70,48,28,67,17,89,225,252,70,250,205,159,195,153,72,127,244,68,178,14,99,70,24,247,254,25,3,201,51,224,202,123,247,133,206,185,195,2,245,129,108,62,149,115,246,99,162,241,156,57,177,155,59,104,5,65,62,125,154,114,204,201,116,84,88,252,159,194,205,192,80,96,200,165,114,186,52,157,101,41,188,38,228,60,134,3,71,114,87,248,148,122,228,81,176,93,249,128,250,41,118,48,26,83,166,246,238,40,225,205,49,167,63,72,60,118,79,148,132,218,22,96,233,53,186,254,181,218,24,140,86,161,1,107,14,34,234,90,102,216,61,172,189,254,73,50,124,197,53,62,97,132,144,27,64,229,92,2,58,143,74,56,178,80,63,156,36,58,247,164,60,229,96,245,65,36,50,28,100,1,6,17,137,160,191,101,19,241,47,104,198,235,170,41,36,204,175,71,119,104,176,112,208,213,37,242,170,68,252,82,134,173,86,124,5,42,188,146,198,149,227,42,216,133,161,36,21,39,2,133,237,173,157,24,229,226,255,180,152,44,96,193,97,197,110,228,167,224,236,67,19,189,141,126,111,14,204,142,114,211,136,103,11,117,132,91,14,51,127,157,220,129,39,204,245,140,130,57,43,255,50,235,69,98,111,128,229,118,53,141,197,120,235,157,213,193,235,125,52,15,94,119,127,112,133,103,9,188,215,94,25,176,60,118,124,97,189,88,30,87,12,1,40,49,181,26,149,29,129,239,68,185,65,162,153,96,222,132,235,68,127,18,94,153,136,203,89,66,28,138,107,196,108,111,127,217,9,83,163,173,220,175,200,142,90,140,223,131,2,107,150,14,244,91,222,7,252,182,79,131,52,1,24,53,20,220,123,163,249,146,240,202,215,30,43,157,62,211,160,130,208,200,244,254,52,111,173,163,79,152,190,112,173,147,197,81,95,70,40,128,24,98,153,120,115,133,234,164,136,85,0,89,198,105,145,247,96,77,109,242,180,235,46,250,65,136,127,232,236,11,18,254,230,13,0,185,233,214,92,132,4,154,225,148,233,49,237,69,251,43,6,125,71,128,58,30,62,169,254,181,49,130,112,216,212,102,57,169,55,148,184,201,99,147,115,129,151,199,41,172,62,86,124,201,171,47,180,76,156,108,28,176,179,89,46,199,248,181,117,1,233,106,196,227,10,71,119,71,10,83,145,96,192,243,238,74,16,197,68,251,162,62,90,221,37,21,239,174,172,172,176,30,33,164,93,115,105,180,239,228,146,144,54,143,197,255,235,105,203,100,147,138,117,109,107,33,152,193,125,171,65,198,105,47,134,64,163,246,12,123,36,46,19,238,228,93,90,165,11,69,4,230,95,243,135,158,156,153,190,126,49,116,73,29,41,245,227,224,201,164,118,131,150,123,172,238,108,249,168,120,246,124,96,25,103,93,13,236,58,98,121,84,186,196,197,14,53,169,37,104,79,245,114,220,135,14,53,25,84,174,178,4,203,61,96,224,209,19,73,104,127,50,172,252,127,241,227,31,13,29,60,144,173,245,123,194,175,155,136,253,36,98,171,15,65,187,212,111,60,23,81,225,47,250,170,45,195,26,68,253,136,228,91,65,134,42,176,48,59,21,215,136,193,156,40,86,163,206,56,159,157,7,49,167,231,119,146,111,182,170,49,135,148,157,37,233,208,227,208,203,194,22,14,61,151,254,104,8,171,124,203,179,117,23,172,175,158,20,94,198,123,85,98,30,51,192,124,159,120,238,102,246,214,166,213,56,85,136,11,82,104,84,6,156,40,82,208,199,112,90,119,183,89,141,119,147,11,155,108,120,51,201,133,225,59,74,83,218,79,51,122,104,152,100,164,71,11,235,104,70,226,169,70,160,12,247,117,187,89,36,238,156,114,164,162,254,166,101,133,116,55,253,107,161,181,184,238,63,234,48,10,232,13,152,186,5,75,208,92,35,176,24,50,181,247,61,96,216,25,39,9,57,148,7,83,22,96,89,198,226,31,219,122,220,248,95,94,179,145,205,61,86,69,125,212,175,132,199,178,216,163,36,62,179,2,117,227,19,237,181,109,161,72,3,244,166,220,24,76,126,253,25,157,20,119,134,148,22,63,135,7,224,36,41,248,158,54,9,72,119,3,84,22,20,54,104,214,192,106,67,229,37,248,26,196,187,12,134,133,214,133,198,172,157,224,226,120,58,229,35,181,184,22,96,111,200,212,43,168,38,52,243,120,88,137,118,52,225,45,130,80,163,74,248,76,215,208,116,97,37,223,41,117,144,83,72,171,231,138,39,240,47,133,137,1,213,27,197,215,33,206,69,227,39,39,217,138,76,174,56,218,235,239,178,94,232,161,21,212,176,77,247,143,133,143,39,171,139,35,147,51,221,68,246,120,234,144,175,14,85,126,27,236,78,78,209,22,184,153,237,190,150,5,233,190,171,54,11,118,184,150,173,221,170,89,80,18,12,24,193,212,196,100,220,77,255,111,121,40,155,183,31,172,48,157,174,157,85,252,16,253,138,51,241,76,94,35,195,237,62,70,42,81,226,39,36,145,33,243,136,18,185,107,16,19,108,48,89,208,237,179,24,213,29,89,170,220,51,71,128,170,130,145,190,189,254,142,120,33,77,155,157,23,105,200,188,152,132,89,64,34,1,91,163,164,187,92,200,156,126,95,191,2,229,29,127,73,80,161,171,115,85,214,36,173,115,63,110,238,42,248,150,25,200,251,12,236,99,147,54,194,239,159,113,187,47,171,42,226,42,148,101,169,184,206,145,86,130,43,175,18,25,182,29,3,107,34,50,238,192,29,4,63,7,167,148,212,95,4,106,213,84,156,28,174,120,161,210,27,107,169,42,247,149,109,161,79,172,11,175,121,31,136,78,29,23,112,54,120,194,128,223,127,245,188,2,5,0,2,35,117,25,206,88,54,60,232,187,53,2,149,35,159,66,105,39,114,45,161,28,99,67,143,51,163,79,56,209,150,119,149,109,255,203,108,3,69,194,107,83,24,227,112,44,166,214,194,188,134,146,59,58,134,236,18,120,188,221,105,16,187,131,124,93,129,254,161,216,109,187,16,219,15,71,140,127,14,34,129,241,222,30,45,180,106,76,110,73,110,36,253,202,249,14,144,119,170,55,45,99,146,146,83,242,24,69,177,209,180,80,102,230,198,209,176,138,157,134,203,194,77,126,132,168,211,195,79,42,40,244,221,75,20,241,211,179,255,244,121,172,40,207,85,159,204,82,156,151,131,54,93,160,101,88,244,255,180,196,249,175,160,187,83,236,209,85,45,195,187,30,144,84,236,220,41,39,94,237,85,226,22,203,244,88,151,204,235,66,49,83,45,240,30,230,120,21,68,81,189,74,84,89,128,159,233,218,9,42,35,53,208,45,83,119,118,29,78,243,34,0,28,206,85,25,152,74,8,164,215,58,145,97,65,75,221,99,98,85,204,26,188,208,164,3,29,188,12,67,191,39,52,65,172,81,89,100,1,162,43,24,43,77,188,43,177,206,237,59,100,110,100,229,173,170,220,7,21,71,208,109,104,63,156,103,199,237,198,98,134,26,145,107,125,124,245,133,234,245,62,230,207,10,4,236,32,165,56,240,114,29,185,57,209,224,215,226,226,106,220,150,181,71,233,150,29,94,20,108,92,238,201,135,85,166,106,230,126,205,111,163,5,3,52,179,202,62,235,87,189,128,48,10,137,51,231,97,218,229,39,223,110,124,153,195,119,241,134,66,101,59,124,37,59,67,151,18,35,108,81,252,228,174,131,88,26,242,100,183,108,8,103,16,79,17,133,73,15,12,10,130,160,143,88,164,249,206,184,210,219,163,106,103,104,119,247,123,239,198,68,164,246,80,83,154,251,23,195,148,33,95,80,203,106,44,107,226,244,85,32,180,240,104,34,161,137,119,75,79,132,39,132,239,80,235,73,97,218,97,224,132,62,199,127,44,213,195,142,53,219,72,254,69,128,59,219,180,0,6,6,18,94,1,96,34,169,53,89,192,165,216,211,250,104,254,181,58,0,118,182,238,184,120,229,140,233,51,43,134,79,76,184,180,64,70,26,16,239,73,55,244,246,204,25,178,169,245,34,246,137,212,136,216,106,145,244,249,81,172,179,214,218,158,14,96,154,221,227,73,178,18,253,1,32,58,139,55,33,67,132,7,17,8,64,21,101,232,167,130,128,102,136,201,59,15,69,127,91,86,171,16,17,234,136,106,7,129,53,94,159,232,12,174,77,249,116,222,2,15,197,155,50,238,15,200,165,236,209,129,31,12,62,24,123,6,18,222,71,4,95,53,50,202,16,212,32,92,47,137,45,134,69,97,41,244,253,90,214,9,73,88,58,65,47,98,243,236,98,92,45,150,230,74,83,129,220,10,36,194,205,16,39,99,52,86,220,107,18,143,234,135,109,226,129,7,117,51,60,102,255,8,125,59,119,164,31,67,106,88,209,36,212,11,83,210,31,4,21,142,82,123,203,105,61,48,121,38,161,4,26,254,168,232,53,45,74,197,209,64,101,7,188,123,233,12,100,0,251,63,49,53,2,25,203,17,245,120,117,51,152,251,196,47,71,54,77,12,253,123,195,79,130,36,73,216,139,119,113,113,143,165,218,66,187,28,60,233,179,90,239,212,195,153,51,83,213,179,42,202,79,131,117,97,45,191,109,217,33,11,179,207,124,23,255,36,37,16,224,35,128,6,159,64,50,35,111,196,224,43,206,128,96,66,138,124,145,105,235,43,199,77,105,64,49,33,0,158,104,29,250,43,186,216,33,227,5,236,51,15,85,121,37,191,93,173,250,166,112,94,12,131,180,221,209,15,111,205,241,245,177,183,118,66,44,60,52,171,160,168,185,82,240,48,45,167,185,238,48,107,93,165,189,81,174,8,6,102,83,215,19,95,188,137,180,51,10,58,152,194,71,96,224,93,211,186,16,183,96,30,252,86,11,46,39,215,63,207,100,94,252,230,68,208,236,14,205,181,104,56,202,183,196,185,175,151,139,85,231,24,208,123,34,213,211,208,137,148,211,3,255,111,134,208,105,233,114,111,132,189,71,122,247,209,217,215,152,155,60,125,87,76,130,235,20,156,175,243,142,145,216,253,183,241,190,207,56,142,70,145,255,240,36,194,40,124,216,220,163,243,96,204,253,58,120,142,116,167,78,50,218,7,207,48,113,13,208,211,188,66,164,147,139,13,184,233,189,178,140,230,19,203,114,55,177,16,54,47,156,210,217,35,20,168,182,155,133,3,70,23,209,241,98,126,211,192,195,240,232,243,101,252,115,226,37,201,25,74,142,102,52,83,116,18,188,12,176,164,248,195,74,77,244,71,170,129,253,227,206,81,26,58,198,219,186,198,125,76,69,155,208,88,73,235,130,155,145,190,75,54,222,88,214,229,164,90,160,4,242,7,198,162,210,28,59,207,18,73,99,187,244,85,159,11,176,214,115,187,135,142,8,203,175,72,141,106,103,63,54,93,54,60,230,226,179,74,155,120,32,45,126,59,229,150,161,253,241,91,73,32,80,244,16,122,133,57,228,208,255,9,116,109,116,69,46,139,120,185,152,168,233,17,220,244,86,29,229,136,106,207,60,113,109,141,114,167,90,143,231,242,234,62,29,120,179,154,6,226,118,63,184,134,235,42,155,108,174,216,237,163,103,141,161,75,133,135,93,92,194,202,68,175,38,124,126,151,13,189,191,185,122,233,184,229,187,227,175,124,124,155,192,1,106,126,123,24,157,192,7,70,34,77,148,254,61,113,127,228,198,93,7,25,50,12,25,186,118,248,121,5,141,214,10,206,86,113,246,203,248,237,92,135,232,81,226,21,159,94,63,21,213,215,171,216,37,122,35,160,34,184,91,153,179,49,126,65,103,95,75,201,101,128,133,193,204,23,236,126,148,157,24,60,166,73,165,174,253,200,153,135,250,35,45,18,153,44,182,63,2,139,137,60,140,175,165,193,80,80,69,211,0,133,81,43,10,71,164,236,166,142,79,134,183,8,109,252,179,192,236,7,170,82,212,249,169,29,231,240,123,240,162,220,226,22,79,204,241,1,60,176,226,105,122,151,73,241,105,226,20,156,147,252,237,22,25,148,118,151,225,55,27,180,212,231,94,53,151,23,254,33,198,109,158,148,11,178,245,246,195,125,152,182,88,0,221,175,210,36,105,149,169,255,221,106,165,128,171,45,30,87,19,236,105,241,88,66,35,28,106,221,40,189,228,45,241,60,84,144,76,140,23,184,84,81,255,192,248,249,11,253,199,214,232,157,197,59,88,161,121,152,253,247,128,41,98,90,29,62,225,147,81,108,94,60,204,140,142,54,176,73,113,191,181,8,75,237,144,18,194,161,217,22,236,45,68,248,246,205,102,237,16,27,251,145,178,131,231,10,100,129,111,6,21,154,119,78,50,108,57,127,162,242,219,235,131,125,29,178,86,207,151,148,162,176,48,44,217,94,91,128,126,241,137,118,93,163,205,21,180,240,71,105,214,15,176,122,25,118,101,226,113,53,212,62,33,77,171,18,37,14,233,122,95,232,31,102,140,222,201,163,207,170,169,49,198,85,165,32,208,195,160,139,21,111,9,155,139,153,205,53,214,25,88,117,50,71,151,69,243,210,149,47,120,57,149,89,197,24,55,237,182,131,239,35,69,119,246,219,208,236,202,235,89,160,23,51,119,175,51,242,222,131,31,193,187,134,196,39,136,216,38,16,13,78,152,203,77,101,29,47,96,102,199,220,179,7,82,82,39,208}, {73,255,134,94,36,232,95,227,193,72,132,2,63,251,79,157,46,222,194,216,106,213,14,178,247,152,240,75,248,191,102,77,23,222,21,169,11,165,225,82,18,76,246,88,55,121,159,73,31,196,132,29,71,189,106,139,35,187,135,229,115,186,178,213,12,25,62,240,27,118,227,8,9,123,37,113,118,31,162,212,161,83,245,179,166,110,178,45,122,27,143,201,164,144,224,2,185,24,18,61,237,160,196,188,123,199,251,130,0,137,195,86,77,57,33,52,147,62,128,41,77,68,120,33,11,42,47,220,32,69,231,105,221,103,152,4,73,24,115,130,164,122,109,150,133,190,203,51,136,246,140,228,106,177,201,255,197,219,232,187,114,27,28,210,180,175,79,130,14,144,245,203,208,139,248,113,149,6,46,47,224,54,52,252,24,157,195,203,37,100,110,35,71,88,142,129,160,70,24,200,82,161,185,102,146,46,152,185,8,236,107,138,208,2,46,133,82,210,33,75,18,110,87,67,253,76,34,72,157,114,20,244,157,16,34,158,242,80,191,71,74,114,133,30,237,215,203,50,209,98,3,217,21,142,162,18,140,59,96,13,145,242,13,28,128,144,181,102,13,190,102,128,66,39,117,152,65,217,204,220,178,15,76,178,7,39,63,102,100,42,0,99,150,3,212,164,219,198,156,241,153,90,254,99,11,225,109,87,136,36,97,45,141,160,1,14,73,28,29,203,25,170,174,91,150,204,90,219,36,15,116,52,105,50,239,209,33,18,198,149,226,148,209,73,229,76,56,7,204,153,18,89,65,13,184,142,254,148,92,214,132,236,159,223,87,236,36,97,69,57,189,169,105,149,179,76,134,102,67,130,102,119,32,132,234,11,134,36,91,9,134,166,120,57,79,58,152,215,182,252,211,116,131,160,248,104,147,91,6,105,59,152,240,97,104,239,66,159,104,180,183,118,224,123,230,47,1,25,48,146,132,163,155,112,106,16,93,169,62,91,128,71,248,163,46,11,56,226,113,185,8,3,243,151,0,190,60,20,154,235,24,99,28,36,139,115,58,208,186,148,146,218,78,108,52,84,224,168,113,231,9,65,20,133,3,161,94,177,31,173,95,217,164,200,16,197,232,191,8,65,12,76,192,46,61,72,57,143,158,238,224,145,60,219,109,47,130,110,170,171,213,109,45,105,194,145,232,163,2,187,132,140,10,235,232,23,130,96,19,137,245,181,125,60,86,12,140,38,89,196,93,65,235,116,170,249,195,35,175,65,187,31,81,4,111,25,77,212,122,11,131,85,123,155,237,87,252,207,40,164,16,126,235,210,91,188,23,78,240,5,64,202,74,247,125,21,158,27,201,122,113,178,164,142,125,156,182,9,23,197,86,132,111,40,145,36,126,111,167,17,117,29,27,204,5,160,61,69,139,140,200,106,94,157,178,165,13,168,219,49,130,192,230,84,98,71,65,123,84,152,33,142,175,61,149,26,231,58,113,63,142,3,230,192,70,152,39,39,100,96,170,202,144,214,253,167,8,183,18,153,21,37,49,205,150,216,13,174,200,10,209,85,5,69,186,26,200,44,231,215,3,101,103,3,164,18,223,210,22,52,152,8,106,86,72,146,5,60,15,133,220,1,56,87,241,49,161,93,22,152,54,160,223,221,198,157,146,161,61,134,15,188,80,92,247,204,204,194,207,128,238,23,6,120,133,190,38,148,157,89,235,181,29,243,68,160,226,8,98,9,188,46,4,64,39,236,131,104,254,117,92,70,231,198,188,68,194,182,89,80,91,197,229,162,130,243,250,130,179,106,136,201,56,63,58,100,160,227,130,182,230,120,41,3,43,15,69,214,162,127,232,168,248,228,31,194,201,207,198,213,175,166,132,55,51,96,1,82,149,82,33,83,177,255,118,198,141,17,155,245,133,119,74,62,93,100,71,22,35,245,145,117,18,197,149,239,60,142,112,243,73,240,0,43,143,79,213,15,111,140,76,149,84,73,23,9,255,11,137,4,30,226,41,100,110,6,181,24,173,126,106,121,159,98,124,154,69,34,170,236,12,75,176,59,41,43,84,208,213,1,32,63,141,4,113,252,203,74,190,116,164,212,75,82,244,5,181,36,14,93,213,249,106,35,167,123,235,35,200,187,108,241,64,32,49,175,124,122,86,149,101,3,67,230,199,153,104,161,243,222,220,33,208,32,46,11,101,82,11,48,210,48,197,217,249,196,102,128,6,40,31,122,130,167,191,171,212,182,206,238,173,190,242,21,244,39,29,135,0,199,170,117,115,199,248,11,165,65,185,92,92,66,31,31,178,30,153,79,23,42,247,17,209,58,209,245,189,127,53,126,89,92,39,247,74,42,162,145,190,160,140,25,188,85,91,230,131,50,104,162,97,201,198,154,143,183,137,116,37,107,60,110,93,0,15,228,238,230,192,114,108,177,129,26,243,11,26,131,62,243,122,251,119,189,3,142,20,179,130,62,60,83,115,67,200,229,93,238,213,248,215,82,48,107,104,202,82,22,254,216,166,130,137,64,232,51,6,121,195,172,2,2,150,0,135,212,214,237,209,84,53,179,29,106,70,241,5,182,227,140,225,34,132,84,63,166,45,116,5,141,30,36,4,179,77,164,85,25,0,191,1,25,212,187,230,69,227,129,226,29,28,229,135,73,10,40,25,236,70,117,156,108,95,128,133,140,203,166,57,69,231,220,176,30,241,228,67,2,230,206,46,80,63,246,14,50,85,228,156,115,41,54,193,148,95,47,119,162,192,11,73,196,19,183,43,87,210,127,9,243,136,55,17,184,79,230,7,246,159,112,18,103,19,20,28,192,242,184,239,201,23,205,184,0,25,154,190,145,173,45,117,32,74,23,205,178,116,136,14,107,250,12,107,137,21,242,22,84,230,39,103,2,86,14,221,2,98,193,58,201,107,152,207,84,205,233,140,161,52,44,149,232,11,248,9,164,112,176,242,171,36,184,219,224,72,4,178,137,49,241,16,215,193,79,90,177,141,129,104,49,220,120,141,113,138,199,138,6,232,129,70,55,195,74,154,85,75,40,253,95,194,232,15,121,151,46,212,50,184,222,188,77,190,195,146,37,67,229,242,45,64,190,242,28,94,167,242,119,195,209,180,50,83,143,103,242,238,224,218,51,135,116,246,34,200,128,28,222,104,205,80,44,227,55,184,155,94,90,214,119,192,12,248,112,120,122,4,204,197,13,80,148,41,17,240,216,175,106,154,59,175,9,55,110,244,133,207,23,32,27,135,108,189,50,212,10,106,11,119,97,225,100,96,53,62,30,142,99,209,21,82,250,85,148,152,115,105,96,216,93,19,224,60,100,48,90,65,135,69,158,224,212,32,203,184,36,249,153,79,92,214,1,48,83,206,237,46,209,173,48,11,174,9,192,242,245,87,252,17,75,94,23,187,20,9,79,191,243,169,247,44,73,113,121,179,104,76,229,9,112,93,133,235,250,232,189,1,35,173,220,202,204,127,195,192,217,48,33,52,219,188,10,22,250,148,165,187,57,198,194,111,26,152,206,245,78,168,248,70,248,47,2,238,59,243,33,94,56,104,31,30,128,221,1,122,29,12,107,59,9,193,80,219,132,151,23,110,27,140,240,59,26,150,123,154,20,158,97,77,1,137,235,140,100,193,217,66,244,111,75,42,5,169,164,179,109,222,75,90,67,29,118,198,22,195,227,237,229,183,214,198,236,96,125,229,238,100,171,123,70,28,209,194,134,11,109,77,44,48,10,240,220,81,186,119,57,72,196,84,183,61,57,46,145,22,23,185,126,57,175,68,77,93,145,186,246,20,73,110,58,160,126,136,38,41,45,204,221,195,198,184,46,91,69,228,229,28,145,228,155,177,32,89,133,128,71,60,52,75,15,99,159,26,160,99,134,45,165,194,73,69,189,146,148,236,100,230,39,146,57,156,79,154,192,3,221,247,243,135,146,127,142,10,41,43,162,120,141,135,70,140,56,208,42,178,198,166,243,40,172,133,213,193,65,207,161,57,2,117,109,242,139,200,238,239,7,10,241,215,78,213,114,79,204,126,221,201,145,129,210,5,168,201,155,70,245,242,26,184,147,88,5,232,150,28,35,196,160,166,39,251,123,152,93,136,204,41,165,1,190,84,19,56,173,183,99,94,33,164,226,247,63,205,71,193,49,161,187,70,155,206,0,212,10,254,148,35,179,39,103,139,238,253,209,127,21,188,219,241,29,60,91,63,162,56,76,67,80,115,81,169,224,188,35,19,229,152,183,161,164,55,180,195,90,137,79,193,85,27,30,255,251,64,145,107,53,50,19,19,188,140,12,229,212,228,83,104,46,85,214,180,251,25,112,91,205,219,21,240,174,99,9,96,226,93,181,29,90,172,202,77,222,160,220,197,9,216,85,216,139,78,56,79,72,67,191,224,241,187,122,124,123,254,83,43,34,167,231,90,227,245,173,13,123,0,12,83,124,38,182,18,66,239,241,76,206,45,252,157,74,109,166,51,74,9,43,163,31,243,115,107,116,171,97,232,229,48,141,157,88,74,196,52,128,200,65,49,90,49,142,244,246,243,201,125,129,225,154,203,26,60,113,135,16,136,7,0,37,44,186,254,152,139,10,200,153,0,217,90,76,199,250,150,40,146,194,110,8,66,173,6,215,46,242,132,4,216,234,147,251,51,208,34,23,124,238,216,55,254,215,162,230,44,249,181,31,7,17,100,220,102,248,177,246,251,17,1,187,34,196,106,143,252,5,243,33,95,84,57,143,168,101,57,255,222,182,78,40,53,98,169,38,60,46,33,186,183,244,152,217,225,168,230,162,189,148,191,74,120,232,207,86,43,114,40,193,128,166,26,9,113,127,186,225,255,104,127,12,7,143,143,204,85,34,130,226,50,80,12,203,14,95,2,105,79,44,3,105,59,248,189,153,199,39,140,119,88,153,57,115,191,49,141,238,79,53,91,96,77,149,164,173,235,131,244,189,205,161,5,89,227,28,17,4,86,229,46,68,108,71,216,18,209,26,80,199,100,59,7,184,56,77,199,40,16,87,9,133,49,230,44,98,111,182,167,169,216,117,141,184,2,22,72,24,58,65,175,181,173,255,146,103,26,138,74,246,32,40,213,47,220,58,141,59,19,174,148,171,15,117,253,103,209,240,76,1,50,159,217,100,133,79,120,148,146,109,34,180,71,94,18,215,64,138,67,133,27,248,34,40,243,6,241,68,67,244,157,162,197,38,125,51,127,67,57,96,21,212,218,6,7,54,29,53,45,185,63,92,243,235,204,143,30,221,103,185,232,175,27,150,125,221,246,195,40,66,224,170,22,146,8,30,141,196,111,195,66,253,237,60,36,103,35,246,147,196,11,15,130,118,129,207,77,131,227,187,223,160,83,69,130,243,226,215,180,209,231,15,120,115,111,188,154,119,106,161,105,186,155,160,164,92,238,194,34,4,51,213,161,37,14,227,135,48,21,236,211,214,99,173,165,141,181,1,16,75,29,213,208,2,201,184,80,151,52,130,224,44,158,246,106,6,161,231,7,111,125,110,177,99,252,165,78,157,211,136,6,183,227,34,255,233,172,148,196,105,222,250,132,234,232,35,232,233,195,216,125,249,242,56,155,13,110,199,114,157,235,252,228,137,60,205,196,116,181,3,253,141,45,12,218,113,217,255,76,29,99,39,142,157,17,246,141,28,120,47,197,246,184,156,107,212,167,77,199,198,146,24,125,56,232,159,68,238,3,91,181,103,234,141,38,244,46,220,184,72,232,231,174,116,110,25,100,209,142,63,129,4,122,10,139,10,177,5,27,172,171,98,84,195,144,18,148,26,73,26,76,13,154,139,82,194,27,121,83,106,176,99,111,165,101,6,239,118,173,148,67,29,63,79,80,36,125,215,140,149,232,167,193,180,134,166,202,84,206,114,138,143,255,99,66,119,100,229,215,222,90,191,87,143,154,95,9,26,110,41,21,71,100,76,145,28,141,250,71,229,60,34,36,22,195,9,191,8,121,26,231,166,180,20,216,8,53,223,64,15,142,111,158,158,172,118,161,12,130,190,134,20,90,77,92,93,27,64,249,142,206,132,242,65,233,245,136,94,96,194,125,213,203,186,107,78,159,198,196,168,245,169,168,196,213,31,61,48,41,248,60,199,18,125,169,103,235,205,243,116,143,12,244,219,166,207,177,98,5,216,185,108,72,6,0,69,182,73,219,119,108,87,255,119,253,68,110,33,29,184,52,225,118,184,209,155,83,173,216,149,190,141,207,149,137,237,40,188,3,4,113,201,116,136,86,170,182,155,210,79,9,14,71,152,69,172,6,46,232,161,179,42,170,218,142,166,50,158,80,50,215,210,200,121,128,243,9,193,57,17,194,189,57,232,50,33,191,144,65,74,235,73,105,199,15,13,23,48,207,44,248,15,204,197,160,50,21,220,34,6,132,110,224,51,166,30,120,77,13,187,241,226,53,121,206,199,72,196,193,158,237,236,96,245,118,161,138,196,63,167,143,26,164,11,190,110,97,4,45,121,167,142,22,236,77,46,96,134,42,57,80,50,33,122,88,150,239,117,8,207,175,149,166,104,246,173,52,181,245,147,251,169,237,234,105,111,52,117,99,36,60,218,194,222,243,49,117,90,151,117,74,230,117,219,242,217,227,242,170,36,161,129,210,110,161,199,86,226,50,216,182,182,153,151,161,228,171,195,83,22,43,53,9,62,23,152,152,26,71,181,205,46,248,45,248,2,61,138,221,240,57,216,104,188,88,74,238,69,156,253,1,39,173,160,183,61,137,61,181,78,215,153,103,186,1,240,139,254,40,73,110,19,224,126,98,237,54,114,135,214,184,130,254,215,215,180,27,47,148,120,164,153,224,155,55,239,110,245,212,50,237,173,60,8,13,48,14,98,116,208,51,178,231,37,168,214,192,136,155,239,146,103,221,217,37,200,81,221,208,42,14,170,5,143,73,214,100,122,198,111,190,95,211,131,242,149,116,242,137,95,49,75,148,99,138,7,73,35,92,103,88,196,27,58,34,129,13,238,217,157,25,233,106,147,200,63,95,137,253,204,124,118,252,169,233,135,164,163,121,59,73,120,59,243,141,32,79,2,142,109,83,4,5,65,207,57,90,71,146,95,131,38,173,11,155,239,0,5,136,73,205,72,14,102,247,255,16,48,248,228,172,77,75,1,179,9,59,127,93,37,113,77,111,62,46,12,165,249,220,81,254,39,30,91,209,217,206,201,185,38,42,71,74,147,83,115,93,52,110,251,240,28,101,190,186,131,124,34,2,70,178,26,202,237,122,58,234,67,123,43,224,111,99,86,80,171,70,43,205,187,167,159,246,101,74,125,66,9,228,97,9,239,85,16,102,73,73,168,151,113,51,94,128,233,4,8,240,209,195,40,196,3,220,53,13,52,76,206,19,67,150,208,168,81,213,156,192,110,101,63,152,97,16,66,185,134,17,161,184,9,39,28,243,207,65,220,162,121,227,164,35,15,133,232,180,82,114,151,241,238,121,135,229,36,96,153,52,157,141,159,140,153,66,83,199,209,255,213,101,196,183,7,95,58,223,35,5,254,28,97,234,228,20,43,105,71,251,59,204,108,178,67,35,179,180,188,146,218,144,167,189,169,63,27,211,89,23,52,32,76,136,99,78,124,190,104,74,226,139,31,180,8,118,134,80,15,254,42,105,206,209,151,205,79,192,137,204,234,57,196,163,224,157,0,123,41,152,57,184,34,174,162,172,39,48,131,39,53,41,223,150,1,226,223,239,49,83,231,68,250,197,116,6,10,255,176,27,180,55,123,225,87,184,211,27,14,27,229,14,216,55,33,255,19,55,223,249,179,189,17,155,124,50,120,102,44,62,251,231,139,106,243,41,73,166,217,225,172,149,153,181,233,209,38,35,77,124,155,55,90,247,83,240,254,92,79,54,96,139,19,161,212,169,58,27,30,191,221,26,28,138,42,200,33,138,97,114,15,225,139,141,85,159,91,203,68,48,13,254,54,140,233,250,169,127,105,67,53,16,154,37,103,255,125,217,31,201,22,12,204,128,222,234,184,54,55,193,62,17,217,62,199,138,124,9,167,178,94,50,230,40,92,60,46,247,23,97,21,54,102,78,113,74,84,120,211,35,232,109,185,125,77,186,122,176,228,73,141,32,167,153,197,169,222,106,59,107,133,130,152,101,225,125,237,1,185,176,160,126,12,23,210,15,98,6,2,39,201,43,117,95,181,226,56,202,171,179,82,171,216,190,36,8,98,24,36,51,135,28,49,174,30,248,169,27,178,193,71,18,126,228,90,36,152,133,97,222,91,228,244,154,171,231,42,227,127,193,245,198,128,72,4,109,164,233,218,99,39,201,229,60,255,43,251,159,77,218,85,60,206,22,158,197,117,58,227,96,138,159,176,242,228,162,189,99,47,129,4,70,143,86,50,80,202,161,239,24,119,253,214,15,118,35,209,233,1,159,166,17,75,75,152,214,143,121,215,141,219,161,64,177,143,39,53,47,237,70,36,90,197,70,60,18,153,102,142,227,149,211,96,226,120,45,55,156,3,22,143,197,134,235,109,53,242,108,71,188,126,192,108,34,210,2,121,166,54,110,128,239,120,8,163,233,9,210,119,136,126,63,251,234,0,9,84,239,84,72,79,74,179,171,52,166,213,140,152,63,36,125,219,236,236,25,193,233,66,137,32,62,198,52,89,234,219,220,177,15,198,118,20,50,215,161,41,119,72,32,173,70,225,221,18,146,163,192,12,19,128,98,109,6,135,16,125,134,139,241,229,49,249,228,174,116,146,238,195,9,97,241,219,118,58,40,73,149,129,43,196,63,243,239,154,142,94,15,42,18,29,198,63,31,182,199,246,84,11,63,80,223,172,175,138,236,117,255,200,90,60,111,132,75,78,217,88,96,184,161,86,199,194,28,157,234,28,123,159,108,232,63,254,168,99,147,94,186,111,154,84,153,7,100,207,73,223,85,10,14,202,160,12,210,164,214,197,21,50,178,192,188,253,41,248,15,142,33,215,143,219,253,66,12,217,130,59,51,17,183,176,3,247,219,74,212,81,244,46,28,37,117,117,85,178,50,240,213,99}, {43,23,16,5,130,236,228,103,108,27,42,102,212,243,18,223,27,31,34,15,205,134,20,45,23,70,120,70,190,6,193,47,98,166,237,170,208,74,128,3,54,205,249,27,197,99,107,41,113,124,138,146,151,27,45,16,133,164,199,90,223,167,181,115,132,96,49,251,114,155,141,167,79,80,130,62,219,106,72,20,20,84,44,175,14,126,234,232,191,150,62,162,249,23,201,16,221,209,248,221,117,167,128,170,213,251,202,15,130,133,137,156,159,142,190,159,67,103,97,79,192,168,129,58,49,58,236,163,136,204,201,7,54,151,66,194,40,167,97,201,251,155,250,142,50,132,187,90,170,182,57,124,153,117,178,135,19,131,226,169,78,81,78,112,231,5,93,142,172,1,146,56,209,114,101,103,223,245,160,102,254,194,249,77,215,200,25,160,16,249,231,126,253,107,8,246,90,190,211,102,162,229,135,29,47,66,217,59,145,120,129,168,78,18,185,103,149,198,23,181,45,83,146,253,164,96,54,220,122,202,206,9,18,18,184,236,40,122,9,56,25,162,85,209,17,134,52,224,53,93,12,117,18,169,188,101,72,57,193,190,50,134,62,186,222,223,75,181,162,231,56,36,244,226,199,83,195,5,2,89,203,223,197,10,173,98,64,227,131,104,193,85,80,231,204,166,95,173,102,234,155,153,250,42,100,188,104,211,2,248,52,192,62,70,228,19,204,186,170,127,199,236,228,18,21,168,157,147,101,108,191,121,199,105,245,144,58,76,167,104,169,154,59,175,209,235,191,36,18,167,229,87,114,97,206,54,110,11,100,47,180,222,218,50,152,7,190,53,48,120,255,8,162,40,224,95,176,217,43,122,232,11,40,184,7,248,211,195,43,65,114,23,209,122,206,152,127,55,193,239,24,233,118,235,85,130,9,60,234,80,110,104,3,111,89,200,68,84,28,86,246,6,178,212,49,46,104,89,47,127,8,79,181,4,148,145,77,117,140,249,206,59,185,3,165,61,24,168,56,138,95,235,15,25,2,236,149,22,236,231,11,45,115,203,105,127,151,212,255,89,77,139,101,190,79,71,29,25,56,209,130,96,246,15,66,5,239,238,226,137,44,243,85,5,200,161,160,115,73,233,113,142,84,119,150,6,75,174,100,237,138,35,63,110,37,213,9,156,104,136,249,143,171,111,157,18,112,160,103,228,110,96,41,72,223,251,90,103,243,62,214,18,73,16,103,78,73,248,59,74,26,15,225,62,144,121,186,174,117,96,233,81,216,30,86,181,7,20,240,5,225,74,88,233,21,223,159,68,43,40,73,14,73,64,23,219,40,97,130,32,225,184,152,60,78,39,38,126,169,9,128,215,79,119,32,111,212,196,223,72,74,189,215,233,194,219,48,30,77,156,126,78,55,55,222,51,89,55,31,47,2,211,150,65,93,130,56,99,235,235,3,242,39,72,121,220,171,116,94,224,69,211,208,128,90,211,206,181,148,216,154,227,9,31,122,87,65,62,254,151,220,228,65,6,228,32,41,147,205,56,205,244,88,61,197,23,203,168,87,1,64,243,135,110,135,167,163,208,146,48,93,190,114,12,36,227,144,176,221,66,219,174,72,165,237,33,65,9,88,240,37,60,252,105,84,151,171,125,202,144,77,233,15,46,249,89,180,204,26,175,1,247,7,130,231,16,170,69,117,132,185,187,126,104,238,81,160,79,93,196,41,186,243,203,200,74,66,152,247,150,209,163,40,87,14,156,109,112,36,11,3,94,105,207,230,199,204,73,204,19,210,224,40,6,44,93,71,133,116,74,138,88,43,200,61,79,0,31,36,136,203,20,112,243,156,45,130,77,82,223,65,115,201,32,92,215,238,163,184,87,240,161,145,135,130,143,249,20,210,118,236,163,207,119,254,48,60,80,34,176,52,54,119,99,174,59,255,159,188,236,18,2,200,221,49,204,231,240,218,7,59,23,46,239,243,2,126,184,219,180,137,91,25,31,142,43,161,107,206,151,148,149,94,181,148,191,213,222,135,126,71,209,241,92,92,75,107,238,3,177,198,46,197,194,103,73,117,13,12,177,14,127,69,23,9,246,125,1,252,64,162,69,252,43,49,233,102,170,142,83,250,82,245,169,135,108,191,175,111,89,121,149,171,197,99,28,139,138,18,117,41,251,239,29,0,35,150,161,50,253,229,250,251,51,107,42,7,148,174,6,30,140,105,12,194,111,179,63,172,101,122,217,52,45,106,87,71,39,70,150,245,15,163,199,155,108,68,68,112,187,2,174,213,173,213,5,49,95,205,214,99,95,93,36,213,215,164,164,218,229,11,162,243,20,52,152,142,188,117,109,253,253,213,4,180,155,253,96,19,99,209,149,210,83,27,14,193,118,27,155,11,121,4,142,81,210,46,247,147,223,236,100,94,78,46,114,19,0,7,10,36,227,167,186,223,51,77,236,26,53,179,225,49,113,250,45,58,160,238,244,48,233,160,134,119,151,169,185,7,124,210,18,133,127,153,25,9,126,239,255,82,219,176,207,116,87,150,252,195,221,132,126,10,194,156,98,110,122,180,131,127,65,206,69,131,76,108,190,176,106,115,5,184,255,214,248,247,217,213,178,146,203,177,189,64,157,228,228,178,205,212,63,205,118,71,19,119,61,250,203,76,68,56,30,53,18,248,215,91,99,25,16,122,107,28,205,108,252,236,137,64,15,100,200,251,38,157,185,71,226,114,37,144,226,192,204,61,16,137,207,3,202,55,39,134,132,244,77,154,166,58,149,19,225,96,175,165,231,32,182,186,184,223,239,226,143,75,122,131,178,108,175,244,89,235,135,209,67,46,243,37,86,239,126,73,25,174,52,240,171,17,95,45,173,183,241,70,128,108,32,102,99,153,138,101,121,42,10,105,59,211,218,187,99,180,213,86,51,120,139,115,2,51,86,231,178,47,88,252,248,125,176,228,98,128,213,210,36,249,225,182,47,128,162,242,77,194,145,55,247,100,254,13,163,163,76,144,200,224,165,130,174,191,248,74,106,85,199,104,224,7,24,79,203,148,198,226,185,155,134,166,197,0,171,91,137,138,72,183,214,18,235,250,188,217,4,142,54,120,183,204,224,187,208,41,35,59,206,254,16,129,166,100,98,71,145,69,64,198,68,31,227,102,37,244,60,7,102,26,189,90,52,233,81,136,144,161,241,252,122,179,252,189,36,130,34,224,116,63,41,190,117,29,137,151,64,111,122,180,163,25,148,136,162,218,57,161,133,40,40,192,60,203,182,170,49,152,164,171,155,185,96,83,160,194,196,68,9,205,127,187,190,173,189,113,83,215,112,204,108,26,209,230,137,129,78,3,202,202,0,90,200,93,161,249,9,246,177,159,211,31,232,245,189,51,138,99,197,172,12,100,185,103,211,40,139,185,161,171,245,182,92,9,90,126,177,102,23,250,190,233,164,168,86,88,166,41,69,162,21,93,39,32,133,57,130,136,67,105,216,182,177,51,237,247,127,170,221,159,156,134,245,173,80,205,19,58,157,119,47,23,57,206,219,40,67,10,154,154,183,144,242,15,227,213,212,160,72,193,175,244,46,127,214,193,95,162,23,34,114,178,48,23,71,206,55,198,80,119,199,118,248,242,141,80,50,172,203,193,172,220,221,32,127,55,200,136,55,34,86,5,231,142,56,21,119,213,19,159,100,250,130,49,17,47,154,203,169,150,10,214,110,6,108,119,107,3,80,198,205,116,82,56,125,83,114,212,255,253,137,16,235,212,140,237,141,71,160,56,222,16,220,113,150,224,49,222,197,86,42,145,165,247,218,27,219,192,8,172,108,186,194,76,150,141,105,201,94,18,66,162,90,1,175,0,56,166,207,239,28,57,158,52,128,66,142,140,248,53,155,101,87,66,166,72,1,201,123,53,209,182,183,179,166,5,170,26,165,67,206,111,75,46,230,65,40,96,54,227,26,129,127,250,178,188,192,229,181,152,82,139,234,69,117,217,160,4,111,178,233,245,43,235,71,189,255,236,92,9,79,38,11,76,188,182,93,42,114,202,107,80,128,149,113,195,245,130,2,169,143,71,153,232,219,146,177,15,208,51,198,99,78,112,35,197,67,10,60,31,147,163,12,117,98,142,122,188,149,228,44,140,164,38,49,173,187,199,99,141,11,21,33,125,8,218,1,80,212,17,168,230,26,92,142,212,202,193,245,234,70,144,245,198,196,202,102,130,251,184,127,237,190,148,44,146,128,118,20,55,79,36,121,231,74,89,247,183,142,214,159,39,120,18,207,115,154,254,224,245,11,247,252,201,169,52,221,222,118,169,226,235,200,61,79,43,250,193,239,196,94,214,225,47,229,241,134,87,2,189,195,166,75,88,239,85,155,84,110,225,176,106,109,221,246,39,229,69,180,174,18,198,7,184,80,177,10,176,159,149,88,18,172,233,237,98,73,129,20,50,111,247,206,80,26,97,96,38,56,100,244,227,20,12,205,247,25,60,63,155,114,251,119,170,175,116,136,91,192,40,242,116,251,254,98,171,34,89,7,78,254,174,182,210,96,2,177,152,69,31,212,120,180,144,139,166,187,216,180,177,237,30,162,148,144,170,66,39,78,53,194,195,97,91,187,32,38,50,222,50,253,128,48,199,176,75,107,16,149,117,78,23,250,81,133,98,82,168,30,68,210,140,184,107,243,133,39,84,132,101,28,88,31,30,142,106,84,186,170,203,127,239,99,119,185,63,163,248,44,123,77,71,172,226,117,180,145,168,174,176,92,206,82,8,107,95,105,168,139,196,120,80,113,124,157,157,12,172,195,43,21,11,71,177,190,22,112,209,15,5,121,158,92,65,144,191,10,129,107,78,245,48,184,79,196,51,135,176,77,227,27,20,102,31,16,56,68,207,71,254,205,178,168,127,146,61,197,28,144,185,27,120,219,95,250,52,179,101,120,136,148,98,218,50,214,8,50,35,201,21,68,167,24,4,118,59,70,36,201,176,223,237,73,71,135,140,197,91,164,225,41,247,23,183,185,162,200,224,196,204,224,143,252,240,118,88,106,165,180,27,128,146,95,5,252,251,99,81,150,23,222,159,197,37,8,16,206,79,219,11,211,104,193,207,252,153,121,243,234,142,179,196,147,102,94,83,199,141,157,217,62,218,29,148,95,10,246,34,116,85,58,140,241,46,112,153,158,125,70,252,178,181,232,240,39,15,48,207,205,34,11,67,237,196,35,103,148,236,42,97,118,97,255,165,100,246,142,103,231,64,118,226,146,241,154,133,118,112,156,53,37,50,22,71,167,206,16,90,57,253,13,241,60,40,98,100,60,110,128,170,119,72,138,228,105,81,123,236,210,131,204,199,118,67,185,49,122,106,214,231,241,105,78,22,254,97,144,41,130,109,203,115,81,100,15,21,139,252,240,142,102,114,252,6,181,7,5,159,79,150,223,213,18,14,216,91,151,79,162,115,94,127,215,99,160,32,162,65,177,140,209,100,207,236,200,137,142,145,121,18,77,200,154,107,250,167,80,105,46,136,153,215,48,165,140,19,183,202,204,158,186,70,186,205,116,80,191,142,20,150,166,199,29,65,55,181,229,147,201,66,225,126,82,244,148,37,24,235,24,18,181,97,247,158,72,226,80,250,153,81,251,201,254,176,40,85,178,203,123,149,184,17,145,185,133,30,182,226,29,94,229,212,46,84,9,172,228,107,244,192,55,233,252,192,64,144,187,119,111,65,222,214,125,73,188,19,147,59,98,176,155,138,85,169,153,4,50,249,45,157,26,162,248,152,108,143,62,14,127,141,228,228,186,189,212,160,48,176,45,142,104,166,193,209,152,102,212,236,50,211,142,35,28,196,229,74,239,48,243,195,13,168,20,0,127,192,64,0,35,73,19,64,96,240,67,31,131,201,28,97,140,230,26,232,160,235,120,176,119,5,206,148,73,213,52,216,62,197,114,184,248,164,206,136,255,46,182,102,247,138,65,33,35,0,129,137,107,1,65,0,105,105,203,102,150,20,18,186,253,120,224,57,100,185,168,68,216,23,61,128,195,211,119,183,206,51,4,82,34,168,133,57,157,7,42,11,200,174,239,161,231,251,218,195,223,129,228,26,236,115,246,210,134,99,230,77,176,158,176,130,6,206,99,221,177,126,166,195,223,204,93,129,192,110,14,209,97,189,214,103,205,135,223,37,86,39,51,84,116,227,122,197,193,67,233,52,53,74,184,155,99,86,1,128,214,181,213,9,130,205,146,230,105,147,78,79,137,71,51,88,67,197,250,212,11,18,233,35,61,97,249,168,236,50,182,161,185,33,172,6,176,229,12,91,49,82,77,222,14,152,179,246,253,180,186,146,55,87,36,196,191,236,129,239,80,235,208,74,233,159,248,106,70,81,12,175,33,53,36,175,34,78,219,46,98,132,82,100,73,35,100,94,127,255,72,58,50,4,59,166,226,153,233,200,198,236,254,162,254,73,162,241,43,6,204,97,186,89,16,118,149,212,224,37,232,122,21,217,247,145,165,47,245,214,239,211,196,146,140,145,29,106,220,77,176,150,218,90,208,95,114,159,41,81,199,228,100,97,34,234,111,144,36,18,82,8,134,201,217,36,123,103,45,241,9,245,16,32,249,197,251,229,251,124,177,151,105,30,77,43,164,234,33,65,198,15,232,51,217,178,236,252,51,38,85,130,128,86,237,84,48,200,187,170,120,99,105,142,40,156,100,145,61,99,64,203,67,44,2,40,169,40,114,158,95,145,174,103,180,39,191,48,42,109,172,203,207,105,8,128,152,152,28,243,96,27,106,140,27,225,251,56,91,253,149,227,151,70,193,64,230,28,243,52,5,119,221,132,225,155,118,135,62,137,110,33,36,18,188,187,1,148,112,168,37,228,9,204,43,191,24,48,202,82,148,254,126,86,132,70,62,79,5,120,221,102,204,182,2,224,225,114,61,222,104,103,25,5,248,232,141,152,73,70,52,227,45,122,250,93,192,2,130,150,182,193,59,206,40,111,129,60,2,239,252,61,197,246,128,109,239,39,247,94,17,235,161,16,188,171,224,117,199,212,59,191,140,35,113,178,111,166,138,120,131,222,29,135,152,191,8,173,98,150,170,169,160,65,32,148,238,230,165,41,177,249,116,49,138,236,193,121,127,197,25,119,62,247,186,68,226,86,68,108,26,82,77,211,2,12,25,251,57,172,37,41,97,50,204,66,171,104,90,200,96,16,137,14,220,69,184,205,146,195,120,115,195,25,125,227,13,212,167,56,198,45,202,101,37,151,197,77,80,177,0,158,118,180,214,10,50,101,52,23,248,4,228,57,199,71,148,77,177,139,23,6,43,161,57,65,242,103,53,149,95,174,14,103,128,224,42,123,11,99,211,131,136,23,254,202,59,80,144,204,163,70,212,86,197,4,227,181,71,111,217,13,167,218,51,24,140,239,217,167,7,193,61,48,189,190,131,19,135,104,91,189,215,186,232,228,64,36,1,36,52,86,87,65,197,226,114,141,156,68,148,31,133,50,132,222,185,204,163,83,20,232,102,145,63,229,206,74,137,8,159,46,137,38,2,226,29,246,180,81,8,67,95,161,157,176,38,114,193,78,238,176,124,14,19,14,64,172,70,108,78,163,167,236,23,33,250,173,68,248,225,205,7,171,213,242,204,211,190,204,185,36,246,139,34,28,36,244,114,0,201,36,133,20,53,209,43,60,75,169,142,89,42,45,176,146,78,116,145,8,207,235,230,22,66,161,38,190,255,118,74,128,164,18,92,179,89,25,224,71,154,85,60,34,58,38,184,226,40,58,217,81,80,37,117,187,62,114,186,122,105,186,44,82,39,22,84,176,153,214,73,41,148,110,168,175,9,220,157,240,227,159,49,29,6,211,21,32,71,59,99,108,134,108,122,147,141,110,52,13,32,109,233,198,220,129,77,231,113,219,48,9,204,166,110,24,200,148,97,50,87,255,137,220,221,225,67,97,170,2,80,158,192,251,192,80,98,203,153,161,208,82,126,242,113,125,231,49,114,142,99,225,182,34,223,121,41,3,107,130,211,8,11,2,157,54,226,239,235,175,58,190,201,16,37,36,131,37,44,93,178,128,237,189,31,124,241,62,110,246,253,101,195,52,164,241,209,77,50,75,192,48,2,2,99,46,30,171,255,128,70,18,69,93,159,89,9,31,188,75,124,174,11,40,87,237,10,175,158,162,92,28,219,0,197,246,12,121,27,34,116,172,182,125,62,154,60,44,100,109,194,207,15,154,75,53,159,188,187,126,37,174,126,233,17,207,26,179,221,8,206,46,200,126,129,180,47,39,165,52,109,189,59,54,249,67,165,250,23,133,123,133,29,106,194,160,141,80,173,175,92,147,17,99,97,105,222,175,5,180,32,103,99,107,164,220,113,173,128,76,97,3,86,93,136,224,106,99,216,243,20,186,82,189,206,195,158,65,91,183,230,221,101,176,154,20,204,103,23,175,218,187,131,213,165,35,243,91,208,220,51,148,89,200,111,236,141,116,32,195,56,118,31,94,18,140,4,115,190,36,249,175,66,25,212,157,206,191,168,42,153,97,163,229,207,201,233,87,140,6,8,61,9,54,59,95,241,82,39,238,219,218,87,132,224,165,7,127,14,39,85,240,48,167,54,246,206,156,220,185,148,145,239,155,173,103,254,251,148,239,122,196,64,78,93,103,13,165,52,36,137,123,213,209,236,243,70,232,104,10,30,223,224,53,202,89,189,86,151,112,92,164,21,215,114,224,83,146,187,217,105,87,120,184,13,181,241,238,201,33,171,76,223,109,158,94,88,2,50,161,37,220,180,42,88,136,112,7,78,52,234,147,194,161,146,73,150,9,169,221,89,155,70,101,139,134,57,147,230,186,135,195,178,99,219,51,101,150,236,33,167,148,11,116,117,191,129,205,168,74,138,127,19,178,135,0,8,238,94,146,243,165,81,171,176,129,78,195,122,141,11,117,115,182,232,160,151,8,131,28,119,13,142,38,122,44,154,249,72,85,131,250,38,125,64,117,61,253,59,182,26,32,15,184,59,186,239,25,88,162,233,69,170,244,3,9,236,184,222,87,168,62,33,4,199,248,45,59,86}, } ; static void test_decode_1013xint32_impl(long long impl) { unsigned char *x = test_decode_1013xint32_x; unsigned char *s = test_decode_1013xint32_s; unsigned char *x2 = test_decode_1013xint32_x2; unsigned char *s2 = test_decode_1013xint32_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1013xint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1013xint32(impl); printf("decode_1013xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1013xint32_implementation(impl),ntruprime_dispatch_decode_1013xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_1013xint32; printf("decode_1013xint32 selected implementation %s compiler %s\n",ntruprime_decode_1013xint32_implementation(),ntruprime_decode_1013xint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1013xint32_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1013xint32_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1013xint32_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1013xint32_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1013xint32_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1013xint32_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1013xint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1013xint32")) return; storage_decode_1013xint32_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1013xint32_x = aligned(storage_decode_1013xint32_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1013xint32_s = callocplus(crypto_decode_STRBYTES); test_decode_1013xint32_s = aligned(storage_decode_1013xint32_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1013xint32_x2 = callocplus(maxalloc); test_decode_1013xint32_x2 = aligned(storage_decode_1013xint32_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1013xint32_s2 = callocplus(maxalloc); test_decode_1013xint32_s2 = aligned(storage_decode_1013xint32_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1013xint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1013xint32();++impl) forked(test_decode_1013xint32_impl,impl); ++test_decode_1013xint32_x; ++test_decode_1013xint32_s; ++test_decode_1013xint32_x2; ++test_decode_1013xint32_s2; } free(storage_decode_1013xint32_s2); free(storage_decode_1013xint32_x2); free(storage_decode_1013xint32_s); free(storage_decode_1013xint32_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1277x2627.c0000644000000000000000000016237514705505543022467 0ustar rootroot/* ----- decode/1277x2627, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1277x2627_checksums[] = { "74f598a5f9e175e6ac4b6bfe3c14389c99096b4e82684948c1ca634c24a8e72f", "06734904e6447b510c757eb71f6124fc13a4edc76b6c3d88be4d858f2f945a8a", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1277x2627_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1277x2627_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1277x2627_ITEMBYTES static void *storage_decode_1277x2627_x; static unsigned char *test_decode_1277x2627_x; static void *storage_decode_1277x2627_s; static unsigned char *test_decode_1277x2627_s; static void *storage_decode_1277x2627_x2; static unsigned char *test_decode_1277x2627_x2; static void *storage_decode_1277x2627_s2; static unsigned char *test_decode_1277x2627_s2; #define precomputed_decode_1277x2627_NUM 4 static const int16_t precomputed_decode_1277x2627_x[precomputed_decode_1277x2627_NUM][crypto_decode_ITEMS] = { {-3060,1875,3414,3285,2664,-2316,1848,-1647,-1368,-21,-3414,-3009,3750,-183,1851,1281,87,-216,-3837,-3444,2139,-621,-510,1536,-3315,-2919,-2748,3810,1809,237,-3150,-2019,-189,-3120,2766,2886,204,2487,1029,273,-3744,-399,-795,-3885,-2766,-2337,999,1359,-3438,1668,471,2241,1890,-1569,3324,3135,1530,-2037,933,2784,2808,-711,-1059,-1695,1290,2745,3753,243,246,3894,1995,-1485,936,1740,-3108,2307,3648,-2349,3708,2706,-1824,-1752,2649,3822,2793,-1161,-3069,2340,150,3072,327,3630,882,-2034,1146,2649,-930,1344,-3306,-2538,-1935,-3180,189,-1419,1923,3000,1644,-138,2868,2658,3468,2889,975,-2649,2661,-2925,696,3633,-3864,3504,-1356,-1197,-993,165,-2766,-1203,-1374,-2616,3012,-381,951,-3924,-960,-453,294,2586,-2064,1860,879,2772,-3726,-936,-615,-3912,570,2736,552,-2643,-1854,1659,2712,2421,-3159,2058,2085,-1989,3771,198,-2049,327,-2514,246,342,-663,96,528,3420,-2022,2781,1674,-1491,2688,-2520,681,-2151,-2346,-135,1008,-2313,-2877,1989,1332,132,3786,3363,-1548,480,1422,-3531,-3849,-3720,-486,-2187,1242,-3255,-2520,1338,3219,-3492,-1563,3879,852,1923,2850,-249,-3198,3303,-3693,2769,15,129,-1671,345,-870,2778,1581,2448,2952,-3555,-417,3861,24,-3564,-1986,480,-603,-2091,-2766,-2157,828,-2853,2919,-2817,-2790,-3411,-2484,-369,2715,3513,-306,-2352,-198,228,-2727,2652,-1155,384,1020,-2604,2010,-2076,-3690,3765,2589,-2388,3414,-390,3588,2214,-2463,2958,1212,1896,-564,966,-1431,2340,3651,1740,-3066,3153,-2052,-495,-1971,1053,-3270,-2352,-1857,3,-3939,-1965,-1236,2361,-684,645,-2253,-2838,-246,-222,570,1095,-3579,1677,3405,-3768,-2547,993,3033,-3216,480,1698,3405,-2463,-1437,-468,-189,-3861,2601,2454,1947,-1662,1899,3528,2619,-1404,321,-1035,114,-2619,-2853,-462,3507,-486,-468,513,-3876,-2406,1719,825,-3375,-3027,2061,2199,3570,2547,-732,-3291,1218,1131,-504,3675,1218,3741,-3144,3801,3702,2844,-3408,-2379,-1545,-1200,-3366,-1083,1053,3789,1266,-1053,-2964,180,2241,-1113,867,3237,993,3318,1443,-3744,-156,-3219,-2220,-2610,1608,-1311,-981,-2847,2721,1305,-933,2928,-531,3453,303,-69,912,3888,1371,966,660,2421,2199,-1551,3849,546,-1623,1326,-1902,2112,657,3876,-2919,2769,-2025,-2172,966,1743,1848,-3189,-3018,417,873,-1956,-2769,-309,1239,774,1818,3450,-324,3447,2346,-3852,1458,-3189,129,3873,-714,-2907,-3591,1251,-48,-3456,-747,-366,-126,3234,-1845,3825,414,3507,159,-2940,-3360,3438,141,-396,-1554,492,1710,-3351,-3822,-2085,1122,2523,1488,648,-3879,1362,2397,1482,3765,-1332,3456,3282,-3351,927,-3492,1143,-777,3936,2313,2385,1707,102,1074,3243,-2391,-3615,186,-2964,-2103,1317,1389,-1755,-3567,444,-3267,1962,1866,801,1029,3042,-864,-210,-1506,3021,141,-3558,2457,2817,1818,1242,3525,-2865,-228,2190,3831,663,-1464,3810,-2166,-951,-42,2889,-2979,-798,-3093,3663,-522,-2868,-1581,3210,-807,-1842,-2028,3312,-3162,-2223,714,-3867,-3594,-2793,-2106,3087,3003,-1026,855,-552,2328,48,-3186,750,2385,2058,1812,-1668,1782,3195,-945,-2508,726,2736,-831,-1008,-2871,1524,-2142,270,498,2280,2967,654,-1689,591,3180,-2229,3408,-1839,1866,-192,3912,330,2799,3888,-2553,-2253,-192,-2388,-1059,165,-1659,-3219,3756,-1488,-3879,-2847,2307,3807,-147,1332,3084,783,-3654,3183,2076,-3249,2304,-933,-54,3360,459,840,3045,-1518,-663,-372,-297,-750,3879,1824,3162,-1704,-2052,3882,1953,-354,2754,-2559,-1398,378,-1191,-3681,-1353,-1284,-2847,855,3765,3423,-3237,-1161,-567,2967,2367,-1737,-591,171,1797,27,1206,-2718,-2484,963,783,972,2748,2868,-2211,684,-3759,-711,2925,-1110,-1560,-2391,-1041,3735,-3426,2493,2547,-1113,-2745,3375,2004,-1440,-2148,3159,-3318,2742,-1362,-1128,2460,2073,2886,12,1383,-3210,-2916,1239,-3234,1551,2058,2259,-1473,1308,-3234,-3183,1416,-3555,1572,-507,-930,-756,984,2286,582,-1236,-270,-411,1260,-2895,-2955,2685,-3846,3549,1791,3144,1002,1449,-1002,-2757,3231,-3069,2592,3441,-2640,-282,2118,144,2949,-3741,-3729,84,-2316,-2358,3387,-2817,2388,-2526,1920,-987,1635,3225,132,1098,2166,-1038,630,-876,3450,2652,909,2538,3795,1005,948,-3612,-2679,-3468,1074,-465,1254,-930,3531,567,111,1017,834,-1077,-2427,-2292,2715,1779,-2598,-696,1275,2658,-1974,1449,1623,-1113,3066,-1878,63,1176,-708,1344,621,-1386,2673,1047,-3582,-1206,2139,-2691,2316,1812,3039,-3861,-492,1389,-3126,-504,1743,-2532,3159,576,-1230,-2409,-1026,-2247,-3522,903,3075,-2253,-1335,1209,-3327,-3591,1305,1122,3783,3387,-3813,2121,-3294,2859,-2049,-246,654,-2727,2742,3171,-1404,-228,1635,-1671,-2865,-1926,-3729,834,3324,-3186,1827,-291,-3933,1512,-3183,177,-2199,1491,2841,-51,627,-3186,381,-3663,-3528,-3171,-1509,-2844,-195,-3579,3321,-180,-375,-3180,1041,-3150,-1017,2715,1044,1497,-3171,-1305,-3132,1431,2016,2703,1197,444,1707,-2325,1770,-1413,-1776,2163,600,3939,-3429,-3237,1743,885,525,-645,-1056,-2262,-1101,-3732,-3927,-3156,66,-3642,186,3555,1953,-1017,-168,-3576,-1842,3462,-375,-2022,105,-1404,2304,-1719,-1029,330,-2064,-2043,2370,-2247,-2121,-3729,168,2616,894,3552,2367,-2688,3018,1956,2385,-3702,3027,1272,918,-2538,-3258,-3051,-1830,2163,-375,1356,-2808,-3408,-1443,675,-2013,1467,-1479,468,207,-2616,579,750,-1263,-2199,-2601,2988,-3888,-3507,-2859,-756,3222,-2484,-3555,3756,2334,-3114,-342,-3186,-1191,-2739,-789,-3021,2427,-450,1104,-2589,-1284,1881,342,-2577,-3393,501,-1188,2577,-3108,2976,-951,-1452,-2823,3249,-1758,3015,333,-2580,-894,-1437,1410,873,-3585,3624,-2115,2520,3459,-3759,-2070,2283,675,-3720,-2580,2547,2883,3333,-1440,-2484,-3825,-111,-1539,297,3519,60,1050,3303,-213,-675,2148,-387,-447,-2091,3582,-2871,1203,3723,78,3528,-1740,294,1281,-2268,1140,-645,-1935,906,-2247,-1593,-966,-1731,2985,-2439,-2049,-1722,-1986,-2079,1998,2199,2793,-486,-2952,2037,-1668,-3834,1362,2772,1200,1560,3177,1584,-1422,-2007,2946,-3237,-153,2223,-2550,3375,663,-3186,-693,-813,-3228,3582,1590,3459,-792,-321,1194,-729,3819,2403,-3786,-2502,2796,-2514,3252,-1728,-3102,3030,-96,-411,2202,2619,510,-1056,2967,-456,-372,1887,3561,-1146,2673,-1917,-2004,1284,-330,-3927,1815,-1338,930,-1422,66,-1569,2502,867,-3561,-1689,3762,-2919,2610,-516,-3183,1770,3486,-2901,3867,-1656,-3555,2661,624,-2685,1374,3624,2385,-2064,-2097,3849,360,2850,-1788,-2886,921,723,-2556,3561,171,1869,3807,2136,-1587,2085,-114,231,-1716,-3057,3681,-2934,-2829,-786,3015,-3471,1389,2967,-531,-786,1050,-3135,-3897,2505,921,3789,-2256,3186,3210,-3594,681,-165,3867,-1215,708,1578,-63,3039,-3156,-3624,2451,-2901,1374,-903,957,-1890,1962,-3540,2778,-267,3252,-270,786,-729,1221,-462,447,2331,1371,3255,747,1713,-1281,-759,1782,-600,-3174,-981,-1767,-2433,1209,-102,981,1416,-1170,-2070,-2133,3204,-2574,-3477,1527,3183,-276,2118,-2058,-3540,2922,-3402,-2454,2313,1299,117,798,-729,-3135,3123,-630,-2928,-1110,87,-741,3006,2274,-2376,-2928,-3198,369,-3321,738,1713,2883,-297,510,1200,789,3657,3018,-2916,-1248,-1191,-135,-3261,-1911,2622,-2580,3153,-342,-33,-426,3591,1878,-2103}, {2667,-1563,1647,-1521,1923,-1008,-2529,-1014,2061,-429,-2913,-1311,-3243,-204,-3333,2988,-1578,-1707,-1578,-2832,-1647,-2604,-1014,-2901,-2766,2082,-2316,138,-408,2040,1401,1497,-1494,-1749,1395,-3150,1731,1584,2964,-774,-2616,-3873,495,3060,2679,-789,2040,-1791,3414,3249,-267,-1494,1395,2988,-2574,-462,-2115,-2094,-2142,2724,1827,-762,2865,948,1416,-2262,2301,-654,507,-3039,-3525,1824,-2247,2160,2211,-2172,3240,-2643,3537,666,3105,-1293,-696,348,2046,-2718,-708,48,-1188,-3516,-1200,555,1737,-2193,3345,-2106,-3633,2439,243,819,-3135,-2817,-675,3390,-2808,-3012,2520,3618,-3297,-60,1872,-2820,-2922,3834,3696,-3702,-2277,-2442,3723,-3411,-312,-2571,1524,69,3,-3123,750,-747,-1068,-3369,-3453,-3750,-1608,1254,-1188,-696,-1638,-3849,-3420,3627,906,-1089,-1002,1317,-2955,87,-2235,-378,-2055,2172,-3468,186,-1776,1914,3852,-1029,-2679,3900,1365,543,3096,3120,-2217,3879,-2541,-885,1473,-396,-2439,3165,-198,558,753,-3900,3303,-978,-3543,-1485,-2010,3921,2127,480,-2163,-165,2748,-1548,-3450,3762,-2949,1905,2178,-1095,1497,-390,-222,-1029,-2895,-3213,-2484,3669,-2760,-1863,-3024,-2346,-3642,-2583,2052,-2697,3612,-1269,-345,2775,-738,666,912,2715,234,1188,3861,0,-3486,2040,-2310,2502,-2625,3009,597,2469,2226,1953,2109,2520,2079,-2556,-3387,-3402,-534,-3213,783,-3732,-3786,453,-2847,-123,1278,-3906,660,-3012,2295,3000,2658,-3579,-3033,-3621,-3096,2625,1641,-2772,3378,255,-2502,3621,3060,-1803,2025,-1116,-3705,2256,-3150,975,-3432,-819,630,-3138,-966,2208,-813,-1302,573,3552,972,-3126,-3603,3249,-3393,1971,681,2661,-3168,-1131,3582,1059,-3396,-2640,2853,-1455,3798,240,3360,3324,1866,1116,1023,2448,2682,909,3354,669,-1515,-2307,-1479,-3876,864,3144,1869,885,1797,-462,2055,1425,447,-3549,-2574,-1323,2040,1146,-2220,2934,507,-573,1140,-2442,-2112,-1266,2058,1641,510,-1614,222,-2913,2076,2787,-3933,1848,1914,-78,-3477,-651,2208,117,558,-2829,3477,-3084,621,-105,-1491,3792,2946,-1032,-333,-831,2589,-1209,2577,-3570,2355,591,-3330,879,-3429,-129,-2706,3765,-3816,1182,-954,1191,1098,-3813,1668,864,2019,-1593,1143,1032,1437,-189,-3627,-3216,3399,-3606,-3234,-2691,1710,-393,-156,255,-1704,-2064,153,3789,2409,27,2478,1410,-3834,1653,2838,-1122,1647,-48,-1038,1452,-2427,2775,-948,1506,-828,2553,1818,984,-2439,141,-2616,-918,2889,3120,1800,-432,1707,-606,-2304,-2223,3183,-2169,-3867,-3609,3330,771,-1329,-2952,585,-1821,3189,3558,-294,1224,-2802,2775,708,-1020,-1962,3750,144,-1395,-654,-1077,-1584,600,-1689,-2778,-1305,-831,3039,-3936,-2355,-945,-942,1944,522,366,63,-96,-3609,-3633,-3615,2787,-2076,1050,888,1608,687,2100,-705,690,-2853,2691,-1338,-1149,2406,2067,-3906,888,3861,1803,1797,1536,-387,3114,1965,2607,2817,3567,1227,-3612,-2364,2760,-1281,-546,-1479,201,-1710,-114,1650,-3603,-2916,177,2868,672,-81,3057,-231,-2766,-1524,-2874,648,-1230,-132,3849,-1530,2739,2316,339,-2967,1917,1623,651,-1389,-3885,24,-795,6,-3909,-2499,3120,-558,-2703,1515,1884,654,-63,1785,-1293,-2229,-3864,-3474,-1986,-1734,-3099,3579,-1593,-2046,2880,942,-246,279,-186,1893,-3396,-486,-714,-2391,-111,1536,-2712,-2127,-3300,-3807,3318,-2856,1812,-1713,1020,-2709,-2769,1359,-222,1071,2817,-2364,1500,2757,-99,2811,3081,3111,408,3888,1050,-1242,816,3543,207,750,-1404,591,-2208,-18,-324,564,3162,1773,1794,-1425,2742,3894,-3741,-1377,3627,1224,3516,2583,3648,3216,3237,-1809,1077,231,1461,2616,-3036,3834,2421,-525,2805,720,-1497,2103,-1953,2886,1788,-2946,3579,-2145,1611,-3834,-1707,3237,-324,-102,189,2601,-1419,3372,2604,2925,3624,-3000,3102,-2214,564,-2229,2394,-1875,-612,-54,-942,-1194,-681,-3795,-1704,-570,1638,1056,-1470,813,-1086,-1095,-813,-1956,-780,-1509,-3111,-816,-1380,2949,3642,-1908,-2370,2583,-2949,2247,3204,2820,-2886,3081,1878,-3780,6,-1977,2538,-1389,3423,-3267,-837,-891,-153,-3009,3600,1731,-2874,-2835,1965,3489,3666,3345,-3600,-2829,1647,3735,204,-3414,1218,-1149,-1743,3897,-2280,-3159,-1008,3585,-2526,-2526,222,1851,1998,2703,-1368,1770,-1137,-876,-1158,-3021,-1056,2430,2247,135,-597,-1518,-2427,-3018,441,381,-438,300,-171,2343,699,1092,-453,-1923,1095,1002,3066,-2847,270,-93,2571,-837,-2265,-1491,-1944,-2991,-3564,-2211,-1914,3000,-2088,-930,402,3006,-2898,-3351,1794,732,612,-1782,1191,-1551,3303,-831,405,-3321,681,-663,1623,1653,1479,1587,3516,-516,-3303,-2403,-3051,1635,-2994,-897,-3690,1953,3771,3,-2445,-3195,-369,1686,3192,1617,-2985,1014,2796,1002,-1197,1602,3360,3738,3843,3849,984,-3297,2553,1146,-1098,285,-2907,-3468,309,-2517,-1563,-381,849,3906,2487,-18,-2637,-3552,3870,3018,3423,3585,3363,3813,2133,1656,675,876,2226,-1353,-3576,948,-390,219,273,531,1215,-3249,1578,2286,3171,1428,3708,-3765,-3219,3048,-3486,-1653,3075,3477,-237,-1767,-2811,-363,1488,-1707,-402,1389,39,-15,2769,-1656,-342,3573,2739,-1041,2496,-36,2796,663,78,-678,-3198,885,870,3531,-2973,-1884,-3921,2325,1737,3819,-3342,1026,2694,3084,2706,-2361,-1800,753,3216,3129,2985,2157,2544,1413,-189,-1533,1635,1029,1146,1062,-1158,1392,1341,495,2577,-3162,3492,159,-1788,1290,681,2475,1218,-2025,-1842,3468,3846,579,-2163,-1527,-153,-1176,-2919,2970,-2814,2586,-840,-2733,-2874,-660,2955,2913,-894,-846,2658,-573,2496,1098,-2205,3201,3561,-2790,2427,1185,-1863,3243,-510,2475,-3879,-810,936,3600,2364,-2961,-339,-2094,-1095,2331,-1902,1104,576,-3081,1317,2001,3906,-2133,504,2718,1053,-2070,3813,-24,3717,-1287,3177,2001,1038,-129,3639,-1884,-3909,-3150,-3480,2256,-132,2349,768,-3318,2547,834,-3825,-1731,-1734,-1593,3576,-1926,2286,-150,909,1566,1230,1854,-2682,-2154,-2370,1551,495,3477,3759,2712,-663,-2244,2406,-2139,1713,1335,3150,1413,-261,1392,-2028,1335,-648,-1632,-1188,-2139,189,-2784,3243,-555,2508,2292,-177,-3750,-2277,-2415,-816,-513,801,120,2346,-732,2520,-639,-3006,2667,-177,1758,60,-2334,2298,-3417,2208,-1686,729,-1335,2028,-45,-3930,-2298,-2139,-2376,1002,-1395,-1668,3204,-3489,3714,420,3618,1800,-1437,-543,-2898,1383,552,1134,-3318,537,-738,-1488,-1476,45,2646,-2151,108,-3627,702,2241,-2835,-3849,-3000,-816,963,-3906,2010,3327,-369,2736,1311,291,2118,3555,2706,3150,-1890,-1692,-2343,3204,-939,-3111,-2127,-2541,-3888,-471,-1227,12,-249,2358,-3090,2010,1764,3309,2619,2712,1686,-1809,882,-3330,2082,-33,321,-2691,3387,-1635,1041,-309,2079,2187,-651,-2985,1731,-3741,-711,1428,3015,2535,1977,1563,1242,3900,942,-3264,1512,2670,2799,300,-2172,2034,-2040,561,-3498,-3894,-1155,2463,1419,3252,-2268,-1620,741,2265,384,2520,558,-2634,2169,-2631,981,954,-3171,-3834,735,3687,3621,906,-2934,2232,729,-2505,2970,3501,-153,2580,-2100,1128,84,-846,471,2634,3618,-2625,3312,687,2679,675,-1575,2436,-372,1830,894,-3888,936,-2799,609,-3252,2625,2457,-2049,2823,-519,-12,-1377,-3759,1680,3762,-2646,2142,1653,3042,-1581,1203,405,-3240,1389,-2208,-1155,-2583,96,-3477,1683,2289,-126,-1326,2007,2517,-3264,-2649,-1455}, {360,1566,564,2598,3609,3720,-1137,-1074,-774,-429,2385,1398,2097,-405,1131,-1806,-1398,-3048,-1074,-864,-3552,462,-510,3255,1821,1455,2541,-378,-3585,-1308,-1137,-1374,-741,480,2838,3378,3138,2256,777,2517,2634,-3711,2967,3270,468,1125,-693,702,3813,-3894,2487,2076,-3825,-3729,-900,-3876,3213,-669,489,-57,2667,15,-1179,-1191,-1656,-1959,-1266,-2298,2430,-1638,-1629,1917,-165,-1140,339,-678,1260,768,-2784,-2925,-2823,-831,2142,3366,2457,1197,-2013,3153,-1857,2154,3939,-2061,744,-213,27,3615,1458,1047,-246,3573,-1701,945,-3258,3417,1575,-1368,3540,-3177,-321,-1689,2874,699,1665,-1332,1455,-1308,948,-45,-1641,-1632,3714,3903,-2100,3009,3033,-2019,2820,2688,3324,-600,3657,-2394,3567,-168,-1320,2397,-2715,2532,-24,-3177,-2523,-1998,2385,-3402,-3099,303,2985,-2664,2361,2382,2460,723,1161,-2412,1308,-2823,2043,3114,-2820,-1038,-2511,-3120,-90,-141,-615,1737,-204,1272,2721,-1542,-126,3231,-1407,201,-1932,-180,1323,3138,933,-3180,2214,2325,-2700,132,-2907,1959,-105,1407,-1287,1341,588,-3768,-3741,-1932,-1458,543,1143,1275,-792,1992,2685,1833,1671,-1467,-2466,294,1200,261,-1560,1596,3297,-3567,273,-783,-2763,-1941,-699,1368,2907,2511,-723,3558,2340,-330,-3576,2451,2220,-1266,-795,1908,-1842,2109,1641,2106,-2295,-2967,27,3663,-846,402,-3075,2841,1683,-2352,-2097,2754,2886,3447,2214,3531,-2607,-1686,-639,1443,-3060,2124,1041,-3174,-825,-3915,-1752,-3750,-1251,3474,-2913,-756,-726,-3924,2259,765,-1122,249,-3477,-2685,1056,-1875,3198,1221,-750,2106,-2328,-3561,-1101,-1713,3393,3408,2994,-948,885,-1923,-1419,-2217,-915,2142,-1302,3519,-2097,-1149,-555,-81,-3108,-3063,-585,3495,-3249,723,2898,3054,-3471,-3552,-3528,141,3510,-1767,978,-3798,1881,-1902,-1731,-1731,-2034,-81,1080,1374,-1725,1602,96,2463,1209,-3894,-1590,1602,-159,1875,2106,-2043,1932,-366,3114,2790,357,1701,-2316,-1476,-2664,1008,1290,-3930,-3738,-975,-2772,3726,1797,-288,648,1179,-3375,2271,1179,-378,-246,1122,-3186,-1497,-3492,-789,1506,-2313,-831,-549,-573,1122,-2193,-1662,-1641,-453,-3165,615,156,2811,57,-1509,-144,3702,-1695,2463,1386,3363,-1941,-1452,2841,1215,-1464,-1878,-1983,1662,-1269,2400,3123,1050,726,2589,480,708,-3474,3186,1758,3717,1995,2586,2241,-2670,-2820,3810,3453,-1131,-1878,-1782,2448,615,2571,-141,876,2283,243,3891,3126,996,228,-3756,1464,3810,-3825,1302,-66,-3603,1689,-1269,3270,2763,252,3270,2436,2505,3771,-2718,-357,-1824,-3594,579,39,558,2130,3696,-303,-489,2982,-3834,-1416,1026,-2235,645,93,-3342,2664,-1575,111,-690,-1359,-1614,-3894,-570,264,-2199,-3624,-3561,-561,-2742,1011,-1230,915,-1305,-840,-3069,162,600,1776,-2160,1068,2865,-3105,-438,-3039,-3861,1230,2490,-1407,-2934,-438,-3702,3555,525,-2133,-3420,-891,2838,2001,-3111,-3192,3648,-2940,-2979,87,3015,3075,324,-2847,-879,-2103,1821,-141,2352,-2511,2019,-2484,1464,-489,3828,1623,-3351,3567,-405,1683,3144,582,2958,-2268,2628,1095,1752,663,3234,-1785,-942,-1584,-1308,2937,2814,-780,2868,-996,-1173,816,1605,-3156,-2814,-2832,-327,2454,1035,-891,-1281,3759,3255,-2910,2484,1233,1599,-696,-3186,3201,2535,-3015,273,-1680,-522,-2316,-3582,2517,-2208,3900,2682,1911,-2187,2196,21,3018,987,-1905,-150,-3003,-3690,1908,-2043,1368,-2811,-3096,828,-3417,-2349,-1209,1989,1488,-171,1590,2166,1134,2904,-2652,1491,-912,-96,-3222,792,1617,1800,-1566,-3747,3273,-2508,-1179,-228,582,-237,-3156,348,1560,1749,1599,3102,-276,2997,2574,-963,3375,-3618,-2529,-129,-2931,2619,2070,426,-717,2139,-885,978,3111,-357,1125,-711,-906,-2781,-2181,-3075,318,-1944,-2415,1047,1071,-1473,2856,-1176,-3015,837,-1992,1671,3477,-1896,2160,441,2232,2730,702,-2754,-660,-2958,135,1989,2394,-3678,3189,1101,2538,2415,-3228,-2781,-837,-210,-3351,1104,-3084,3195,-2412,-1431,501,3465,1941,-945,-3276,-1677,3198,-492,-3507,-945,597,48,3132,-2229,2451,2595,2505,2889,18,-2994,-1866,-852,1392,600,273,-948,378,2943,2664,-3900,-675,963,-2601,588,63,-1647,2232,3102,1476,-2106,1020,207,-885,-1335,-1539,3693,1536,-1290,2766,1503,-1332,-1137,-573,336,-459,1260,-1515,-3609,1017,-30,-1188,324,2313,2973,45,-1809,-3891,-2523,-1242,-135,-2079,-2493,2208,-1416,-2085,-2721,2247,561,696,-2232,2385,-2406,-2334,-3201,2895,-3186,3363,-3129,1368,-3519,-45,-147,699,-312,813,-27,-2946,-1338,3837,-105,3411,-1143,1128,-2505,3279,1743,2574,-3693,3885,2901,2622,-1353,-2919,-3315,-87,2184,-1587,2442,-3885,2493,2118,-705,-3303,-2256,3516,-1116,1152,831,-1875,-3921,-2706,-861,-3531,-3033,909,-2934,-3198,-159,-3729,-3495,1881,180,-2091,-1494,-213,2010,-3900,2256,2367,495,3783,3768,-3087,-2655,-3609,-1185,-822,-687,-2217,672,2625,-1506,-1566,-2424,-2010,2748,2637,2586,2727,3207,2004,1548,1587,-30,-2499,-417,-1941,-2490,-633,312,1035,-2277,-3207,-2355,-3111,-3939,-750,75,-2589,1575,-672,-981,3159,-2832,3906,-1791,-1158,-1347,2505,-3318,3162,-633,-348,1755,690,1716,33,3279,-3918,1368,-1119,-1143,561,441,-3450,-3495,2001,2154,711,-2463,-3468,-3876,-534,1239,54,-3219,906,-3558,1383,1968,3216,1530,1164,-3027,-870,-2409,1401,-465,3585,252,1635,-1587,1368,2310,534,-3630,318,1860,-816,-3204,-2229,-717,708,-351,-1137,-2232,-2223,1749,-288,744,-975,-2316,-903,-3756,867,-1413,-729,3153,-318,1773,1407,2004,1413,3567,1245,2946,-2475,-1161,-2130,-1728,2853,804,-1437,-915,1059,-2652,2595,-2619,-2328,828,3669,-729,2025,-1995,1941,-381,3342,-1173,-165,-3834,-2892,-2955,2991,3741,1275,1878,24,-1692,105,-780,-432,3861,2076,-2277,-402,-1137,327,2268,3426,849,-3588,3222,3738,3237,-2370,1953,-375,1713,3936,-927,870,3075,-1665,-921,2517,1845,-1791,-3597,3837,3534,3057,216,-2574,2217,2877,3177,816,-3315,2328,-2295,435,1341,-1761,3645,-3420,1932,-30,-2793,642,-618,3462,2349,-3927,291,168,-474,3243,-3303,-3207,-3462,-534,720,-1962,363,2274,2151,-3405,-501,546,-1500,-630,-819,1938,-3417,-309,1911,-2913,2739,-1911,3888,1242,3153,1452,1041,1587,735,2175,-1509,-3558,-2745,3351,2175,1281,2274,-3759,-3045,-3321,-3606,1134,3417,-2817,2838,-258,-3414,-318,375,2769,-3420,1242,-3810,-1911,1524,2922,-1743,-3288,-3888,-1290,483,-1257,3048,-18,-534,-129,63,1092,-1437,2904,486,1050,-2475,219,93,3075,1200,312,3774,-582,-330,3912,525,3651,2910,3411,-3075,-468,2136,45,-1227,2334,1179,-948,3666,-3306,-3651,-2046,3054,930,-861,3294,-3291,-249,750,-1392,2637,-567,-1554,3120,2463,2124,3396,3582,2967,-1104,924,-891,1092,3732,-2625,876,3252,3681,720,2655,2958,3621,-3339,-702,3243,-765,-1059,456,-2475,-1917,615,2349,-2679,2148,-3924,435,-3516,3609,603,-3042,-3264,3888,-2154,2295,-528,2664,-2250,-2340,-3213,183,-3924,-3126,-2634,-1410,-2466,63,-1929,-3576,1032,1065,357,-1065,-3897,2649,-474,-432,459,1149,-459,-2352,2712,-2496,-2841,-987,-3813,-72,2481,-2496,-1569,300,2661,-3291,3687,1695,-3282,372,1086,2034,-2496,2388,3792,-585,1806,1158,1743,561,963,-2271,573,642,2313,-3099,-381,3261,3606,2364,1683,-582,54,-1617}, {-3717,1191,477,966,15,-3903,-1083,-1914,1467,-3828,3222,-1035,-213,-807,-1905,828,-3618,207,651,-2811,-2922,1056,-1455,-1665,1233,-3444,-354,3861,-1320,-3240,-3363,-3897,-1659,2472,474,-309,1803,3255,3252,1800,-3540,1575,-1971,-3714,2430,-3726,1551,522,-3063,-333,-378,75,210,1230,1329,-741,-3489,-1392,-15,-1227,-3393,-1260,-2163,-2286,723,3609,942,3198,-1056,3666,1866,-3207,-453,2589,-3282,2250,3240,-1881,2460,-1590,3378,1620,3009,39,-2637,1494,1068,-498,3603,-2358,-1881,3771,-2418,1911,-2817,-2202,231,2730,-2829,-876,-678,1248,-3336,-2688,2919,-3051,3201,-3930,-3183,2376,-876,-3135,-174,-3903,-1281,1998,-3735,2034,-603,-2208,-3429,3552,-2205,2457,540,765,1947,-3894,-1482,-2100,-3396,-3768,-3870,-1110,-672,-1854,-177,3798,-3423,267,3789,1335,-3243,-2502,-3006,3390,-483,1455,3540,-405,231,-3009,-3528,-3033,1080,-3456,-1842,-2718,3039,-3336,2655,-441,-3858,-2856,2433,1035,-1518,507,3429,2067,-1626,-1704,-3456,-1992,-2142,-3549,1629,3558,-1329,9,2118,-897,-2475,2145,303,1923,1917,2436,-1866,762,831,-2130,-2313,-2565,-3783,-3534,-1986,-2853,-2706,-2235,3669,2310,2712,1839,543,2832,-2301,-3924,3177,-486,-180,-2271,-564,2592,-3861,897,-2961,3582,2889,-3318,-3312,369,3831,-2802,-3498,-1548,2763,-879,-57,3117,-3711,1110,453,-1569,-3231,-3285,-2307,-945,336,2397,2394,3786,1401,-2940,3669,-3024,2769,-897,1605,-555,2739,-600,1134,-147,-1083,-3912,-333,3492,-2073,-831,2529,-3540,-2847,-3429,3927,-3822,1917,-2754,-2880,-1821,-3099,1017,-1467,-2802,-3834,2547,-3084,-1140,3135,-2529,-2760,3303,2397,-822,2667,-729,-1062,2529,-1095,201,-957,1035,-1263,-2388,-2271,-3375,3591,-1284,3156,-1545,-1914,435,1365,-864,-741,-3321,3339,-1635,2124,-3801,3444,1131,-2952,-3429,1806,2229,-198,2640,2937,3687,-858,-174,1749,-1398,1920,-3888,1203,1725,165,3513,2631,-1683,-2541,-2787,1815,-3933,2907,-3264,-27,-132,-1644,336,3066,-3159,-750,3603,-3783,2388,-243,1860,-207,-1950,-402,1911,-1461,-207,-870,-102,-2835,1128,-2823,2937,-3135,2382,-1323,-2166,747,-873,2880,-1953,2385,3372,-1206,-327,3546,-3027,-486,-1626,-2526,3741,-3732,2667,1083,678,192,3855,3120,-3237,882,3474,-3624,2802,1890,2598,1650,3573,3477,-474,3819,3033,2949,-1758,75,3732,-1779,-3648,-1044,1128,-2721,1056,1146,-924,2019,1953,1893,-3201,-477,2808,-1179,3432,3033,78,-1581,1338,-1200,2196,-3930,-2949,-1062,-3048,3900,-594,-1899,3246,-3888,-1884,2505,3186,-3561,-114,933,-249,1737,-3651,3477,2532,150,1362,-3072,-3531,597,-2091,-2328,2205,2364,345,3327,498,-3789,-3372,-3612,3849,-2232,2664,147,2271,-3318,-444,2550,3627,-546,2997,1731,1971,2412,3315,3279,3531,-183,1272,3765,-738,-1281,-2439,-2469,2358,600,396,69,900,630,2808,-1128,-3117,1860,2391,2952,1128,-2247,3015,-2298,-3015,660,2322,849,2835,-2367,-1029,3864,-966,-3084,3504,-1710,3009,-1737,-987,2046,1068,867,-3537,-843,-2661,-1977,996,-2625,-1044,-2799,-969,1614,-3915,-1866,1698,837,1899,3009,-1950,1008,-2592,-735,-1797,-216,1623,-3777,3222,1545,2373,-396,-2397,-1065,-1080,-2205,2541,1212,-225,-327,-348,1830,-2838,1896,3063,-3579,2991,336,1641,-369,-3408,102,1686,3168,-2310,-2826,-2721,-3375,2610,-1122,522,2148,3555,3018,2742,-3120,-855,2991,-2031,780,2208,2784,2376,-1242,-657,783,201,-2199,-2085,945,2868,-183,-2082,-3606,-630,-3555,3792,453,1755,660,1125,-1485,3282,2889,39,-1392,-123,1389,2868,-342,-2349,1158,3399,3591,2094,-2115,783,348,3936,1719,-1203,-2562,-2019,2082,1176,-1689,2184,-3804,-1719,3354,3831,3777,-3669,-549,1911,-1722,1482,3882,2388,-3072,3024,-591,-2712,-3642,-2595,-1293,-1770,-672,-1059,-618,-972,3468,-3447,951,1584,3324,-2349,-3558,-2793,900,-480,3264,2643,-1134,3573,-600,666,1845,-2130,3570,-528,-3684,2493,3621,-3114,444,-957,-825,2793,-1704,3177,1623,3384,1917,2745,3480,-2961,540,1194,-1248,-195,1986,-1446,-228,-3921,-1863,2010,-2754,-3366,1746,2040,3411,2616,-2637,2481,-1938,1005,-2109,165,-1509,-3909,-2769,-2724,537,3141,-1311,-1164,-2049,-1986,531,-723,450,-2649,1566,2967,-294,-306,-2427,-1563,-3042,309,2388,-1089,831,-954,-3420,-1659,-2256,441,-2037,2931,-138,3387,-1644,318,-381,390,-3606,3897,2112,1569,687,3006,3546,3594,3012,-3000,2334,1884,-3675,462,-3912,1752,2661,2805,-2778,3360,2820,-2058,-1893,-2400,-708,-2577,-1896,-3705,-654,3273,2883,-45,3657,2802,894,3699,-3396,1686,2199,-3135,-1680,2445,1089,3087,-2415,3450,3177,-3123,-1863,27,-741,1494,-3150,1914,-702,2019,-2634,-2499,-846,-2646,1929,210,-1971,2769,-693,-2418,1329,3681,2085,1374,2055,99,-3543,-2970,-588,-2595,3105,3048,114,-858,-537,-2094,168,-3645,1524,198,-1551,-2757,-2784,-1938,3516,-1284,-780,-900,-738,-2226,-2205,-3597,-117,-1527,-1977,321,-54,-633,207,2220,273,-567,2277,1308,3555,-1419,-2799,-2145,675,-1821,1026,336,2232,2400,3531,3045,-2337,3651,-2607,-2199,-2088,-3303,-249,135,-2502,-1113,-1368,1749,1065,-2187,1158,1407,-1431,3414,3759,1212,-60,3036,1623,3933,-3237,-828,1782,-3705,-1443,141,2874,-2685,3069,-3465,-2253,-2412,3411,1416,1629,3351,-2775,-3027,2685,3081,558,2610,-3183,2367,-3216,2988,1350,-2688,-3465,-2091,-2844,753,1818,2982,711,3729,2442,-3531,-1152,1485,-2454,-2088,-2202,1452,3522,153,-3669,3165,-1221,-2061,3870,3474,-1923,-99,-603,156,-3630,-3252,54,1905,2553,-402,-807,2061,-756,2985,-1923,-2172,1521,-1368,-360,-942,2919,-2103,-207,435,-2706,-510,2970,1254,2913,183,-6,-3180,1911,-3360,1938,-1230,-2286,-2103,3258,696,-3330,-387,1599,3552,1989,-1638,2784,3855,-1998,-2598,-2349,-222,3549,1722,-9,2730,1338,234,-3597,-2217,-228,-780,2724,1983,-2577,2568,-3894,423,-2595,-3294,1809,-2064,2784,1323,-3591,-1341,-2565,-1464,-2337,-1611,2892,3639,-141,-2418,-2511,-3612,372,-2862,-3429,1848,459,3330,3618,108,2166,-2907,-591,1281,-1173,-1404,-1776,-369,-2634,1791,1995,348,2253,165,3378,-3849,1839,-3420,969,3222,2586,-2286,3930,3567,540,864,264,1584,-3570,834,-1497,954,-3231,3321,-1821,-1650,546,-1614,843,-1368,2361,3582,-3174,-3417,-1980,3003,-3000,1011,-3687,-2286,2766,-2964,2352,159,-2601,252,2970,2115,-1962,-3258,-2358,-3213,1488,-1296,-2538,1212,1425,594,-648,978,-1257,2046,-2670,-3816,2463,2481,-1563,3765,2607,3246,-3651,-723,-1566,-2073,1737,2988,-3111,-2820,-282,-2295,-3081,2148,-3399,2520,-3165,1923,-1437,-3060,-1902,2274,-1074,3549,1845,1260,-3864,-894,-87,-1656,2388,-3876,-1905,1581,195,-3843,3462,1896,-3132,-2124,-1734,-3807,18,390,3465,-2331,-267,741,1464,3348,-489,-2331,-1482,-432,2664,3693,-1227,3030,-405,2145,2241,738,-2535,3819,1167,-681,1986,-414,204,3762,-840,-459,1215,2097,-1803,-2169,3153,2007,-3078,-2052,3897,-156,2211,-3612,-2790,1692,3606,2658,3843,-675,345,2022,1788,432,390,-3309,-2055,-144,3930,-1767,1029,-2580,2652,3075,873,3810,582,3897,-741,-753,1944,1992,-381,408,-375,492,-3735,219,3117,-1206,1860,-1887,2010,-2457,1530,2823,1926,-42,1287,-6,-3819,567,-1038,-3,3045,1806,2451,2547,2694,3699,-3378,213,42,-3609,1236,-828,699,-3726,2463,-3267,1446,-1926,-1305,1458,2871}, } ; static const unsigned char precomputed_decode_1277x2627_s[precomputed_decode_1277x2627_NUM][crypto_decode_STRBYTES] = { {91,176,203,143,48,184,125,167,39,93,209,109,175,57,238,198,9,196,81,157,96,93,26,44,204,161,146,139,204,211,135,168,85,246,36,58,255,225,236,77,21,77,206,188,73,105,160,208,206,235,226,152,89,178,151,142,13,113,219,218,101,42,132,255,235,85,218,234,204,174,208,209,200,231,251,117,151,72,170,211,140,59,165,187,30,39,233,230,246,178,223,39,120,122,91,13,206,154,12,185,211,38,56,177,253,190,222,208,98,46,81,69,240,66,14,149,157,50,108,115,147,166,222,217,55,144,194,176,115,147,54,135,255,151,192,52,88,126,189,177,66,32,56,174,50,54,233,86,21,207,129,3,49,34,246,21,243,80,160,2,244,236,95,203,244,180,210,166,109,8,83,143,229,188,77,75,135,30,196,50,143,117,58,61,25,252,114,167,98,52,134,35,69,60,175,246,85,171,221,191,37,14,231,189,115,235,228,82,174,221,40,83,81,7,79,202,124,27,194,15,227,253,222,24,201,152,189,174,49,180,180,163,179,91,159,113,36,237,165,148,110,254,41,55,117,59,64,72,186,126,38,86,136,67,126,65,70,151,199,192,90,220,8,32,47,137,83,114,142,177,219,63,44,80,221,246,179,211,34,5,97,32,43,134,14,141,156,89,52,68,246,213,0,40,169,153,168,46,116,12,7,40,50,112,171,31,166,98,209,173,69,4,215,169,241,238,93,43,118,132,29,130,78,101,75,221,153,155,104,143,160,44,19,93,57,226,189,232,69,236,207,241,91,169,173,34,40,33,226,254,142,171,56,183,37,150,209,10,129,152,244,58,156,239,249,242,72,140,231,248,166,31,122,137,112,254,18,49,65,146,178,183,61,214,111,253,154,121,194,11,136,18,227,247,144,62,213,112,41,171,182,155,54,140,65,90,83,79,120,81,167,164,116,52,96,242,254,86,235,3,242,28,222,91,133,33,180,167,53,4,25,167,76,247,5,4,221,51,52,203,208,189,139,141,174,226,150,128,249,144,239,161,221,139,53,211,167,175,39,247,136,210,179,228,85,255,120,70,173,147,202,120,152,0,102,184,73,30,113,137,168,55,76,251,85,0,28,152,148,103,90,31,28,135,0,141,123,118,9,245,231,193,37,151,213,217,233,23,196,186,221,21,164,220,229,81,255,177,27,131,139,226,114,139,58,107,41,46,49,156,103,127,196,202,5,18,36,193,226,20,207,133,134,223,14,116,124,10,214,86,213,143,253,72,226,9,144,78,147,78,69,22,245,36,45,45,41,147,204,235,97,13,27,143,21,19,69,125,64,124,63,210,109,208,82,118,230,180,140,221,3,213,5,104,137,107,215,236,47,205,129,87,243,200,95,174,49,122,254,232,136,57,51,196,144,114,121,245,91,189,240,141,185,154,86,246,212,106,202,17,32,75,242,190,194,169,3,196,134,114,84,30,196,95,157,31,185,109,4,187,58,205,214,186,191,228,54,178,216,247,253,113,128,241,107,85,132,119,232,131,61,57,111,33,50,172,63,114,83,40,52,251,86,114,39,142,71,163,249,56,160,203,132,112,154,9,39,124,52,39,189,70,162,153,70,14,61,69,12,207,229,68,239,100,44,243,57,14,148,206,212,180,45,229,109,139,250,74,30,126,123,110,40,153,96,16,154,190,133,207,37,95,199,82,89,214,242,251,143,103,153,211,48,35,217,204,162,55,163,234,111,242,23,175,4,74,62,88,203,156,209,123,136,50,177,244,39,92,163,203,205,57,79,149,63,68,209,14,221,227,43,240,15,217,54,56,31,238,149,148,52,190,94,205,24,52,240,17,65,52,136,184,41,166,188,73,128,99,109,70,105,232,27,127,166,92,241,208,214,17,1,12,70,25,13,33,40,69,142,158,102,7,219,185,55,126,254,120,13,8,212,1,209,163,113,139,241,11,97,157,20,74,213,203,129,152,182,168,67,118,39,74,253,233,237,173,192,218,156,236,184,171,205,137,197,237,81,41,106,132,64,30,198,195,201,102,106,5,143,168,75,11,240,109,194,228,34,19,221,78,206,76,145,224,42,156,227,75,142,246,97,135,5,20,130,236,60,27,37,47,222,166,144,35,113,90,8,194,166,229,111,107,223,95,143,199,254,226,120,183,200,110,222,178,101,35,70,219,224,16,183,184,94,24,144,16,126,102,97,123,13,59,104,77,199,199,251,34,173,245,153,236,161,45,190,29,106,177,231,123,38,193,249,104,207,225,73,249,160,174,216,40,152,47,123,109,215,135,92,22,38,172,114,174,124,210,71,89,68,173,137,128,250,181,107,182,144,107,231,196,68,223,30,203,235,161,107,188,236,134,214,66,68,27,93,86,74,251,154,52,231,95,152,212,16,179,245,27,198,168,41,1,52,151,51,151,0,135,41,96,25,132,36,234,45,22,131,154,252,172,155,19,110,255,50,23,230,49,86,98,85,18,171,122,59,74,184,173,226,61,119,92,113,221,166,63,254,225,40,18,172,134,255,18,60,19,195,232,169,130,105,30,48,61,88,78,121,36,171,0,35,255,141,137,35,159,47,123,126,198,91,241,185,128,82,244,82,135,25,117,137,35,93,185,234,209,37,214,197,238,108,49,78,146,88,173,182,144,96,248,227,134,244,142,127,187,232,81,243,26,83,209,101,127,223,97,219,254,20,111,120,219,130,192,31,26,252,38,86,246,41,159,104,251,44,166,62,139,61,117,22,61,86,9,18,203,55,194,138,6,253,35,98,70,116,9,213,250,252,41,18,173,64,216,26,5,137,80,82,194,223,63,30,206,60,192,16,13,60,132,203,144,211,126,130,46,223,118,41,51,209,254,24,246,112,215,206,25,26,49,9,25,143,245,71,195,241,245,188,143,133,55,215,238,44,111,83,190,10,193,7,140,191,120,29,0,111,232,51,183,10,120,104,244,159,130,120,53,249,37,111,55,211,117,56,92,185,133,151,62,62,228,25,68,237,177,192,53,204,189,178,128,118,156,205,113,149,209,217,235,26,127,231,98,118,164,114,87,124,238,123,159,96,11,79,199,231,21,71,143,134,119,192,138,184,144,182,243,54,18,170,198,208,50,232,193,119,99,202,9,8,217,51,53,98,91,119,105,223,115,176,46,205,78,71,160,59,232,172,235,225,152,173,4,70,28,155,130,228,233,39,154,188,206,234,28,4,80,4,232,106,137,19,140,170,240,43,87,88,218,1,81,84,77,236,19,101,111,121,155,64,143,200,105,45,113,190,217,106,228,107,96,92,113,241,63,191,22,146,142,6,10,16,28,220,203,219,103,251,221,220,74,201,204,38,113,1,146,25,182,139,163,142,253,48,146,75,128,8,170,115,142,35,39,196,34,235,103,195,34,98,187,16,155,230,118,126,175,86,95,181,227,221,116,221,144,116,67,153,137,113,126,165,238,212,218,140,250,206,249,13,4,227,127,82,174,97,6,113,216,73,128,72,8,21,152,212,130,19,53,31,150,20,118,152,150,176,219,201,173,33,36,48,84,199,133,177,99,192,231,144,148,229,201,213,192,166,208,228,200,67,76,101,38,59,166,158,168,215,129,121,242,232,116,32,13,166,95,101,75,172,63,245,53,18,40,136,55,203,220,65,74,181,118,47,72,167,93,252,82,42,126,253,71,252,12,110,254,19,63,241,241,251,12,122,65,205,75,69,199,169,70,180,165,231,123,234,119,81,56,190,60,59,88,231,56,57,93,121,72,175,248,201,67,229,128,186,206,87,150,166,110,161,173,205,202,177,162,5,71,180,63,49,140,213,163,32,131,225,96,147,201,229,121,72,112,8,27,106,33,159,10,56,39,41,160,103,214,39,89,67,14,44,60,253,27,3,110,73,176,139,149,36,16,218,220,165,177,223,246,184,72,41,87,158,125,75,104,31,98,59,14,116,121,208,67,75,0,157,104,88,156,185,101,196,153,205,170,10,208,180,83,39,143,46,136,210,189,9,191,85,121,218,117,247,63,58,200,113,56,244,136,49,67,143,82,68,78,34,184,162,33,3,59,225,153,96,183,245,48,84,189,60,249,173,206,99,159,74,157,43,149,133,29,29}, {226,199,56,86,85,49,3,23,6,238,154,30,191,232,25,143,203,213,166,205,115,217,93,226,204,116,202,123,52,232,48,169,61,70,199,145,53,211,26,83,123,227,93,138,108,31,45,187,167,20,21,176,65,149,28,119,85,169,158,9,171,122,51,85,70,111,181,236,78,12,77,1,71,128,41,164,105,90,121,145,2,100,56,76,80,88,8,74,124,170,159,15,182,91,101,135,208,56,136,152,238,254,161,241,88,100,174,1,61,213,48,251,112,221,158,52,195,2,10,24,17,76,197,148,82,236,147,172,119,161,31,135,18,102,128,88,217,54,187,24,241,26,91,62,130,204,225,150,147,169,122,30,110,55,3,236,131,191,234,233,252,90,72,120,64,208,35,94,180,237,48,27,131,139,191,153,154,202,55,8,105,19,142,111,76,251,120,230,30,23,19,8,177,114,181,230,178,180,157,169,165,190,42,74,175,30,39,160,195,182,104,186,232,139,207,238,182,134,203,171,50,228,8,18,218,215,240,164,11,194,91,85,125,130,145,45,197,183,53,202,91,175,84,254,53,197,220,104,121,191,255,215,236,64,189,181,19,159,105,19,103,5,117,147,11,192,193,198,185,169,217,176,212,185,34,38,31,64,99,29,82,227,132,11,76,248,204,53,249,133,209,209,8,92,140,57,166,224,32,21,142,146,169,93,143,207,127,155,136,209,179,218,44,170,104,124,205,124,194,179,188,59,255,245,102,249,214,215,112,255,54,7,146,185,155,150,160,22,237,186,155,230,221,82,116,158,114,239,217,57,177,218,63,118,106,64,163,79,146,224,214,139,170,130,173,246,100,143,29,97,12,233,179,241,234,108,109,143,141,181,80,52,108,96,73,114,38,34,123,169,155,124,203,173,181,104,207,14,124,16,132,71,66,6,0,129,251,183,148,172,185,4,22,12,178,183,234,196,105,194,250,206,228,133,70,95,183,90,108,227,31,144,213,239,176,175,226,104,93,248,129,51,170,82,81,53,42,1,53,183,180,6,92,191,65,3,245,65,12,169,55,134,146,138,226,96,66,3,34,159,96,139,121,94,32,23,50,223,170,171,52,36,221,182,11,222,208,151,201,74,57,72,38,127,22,195,27,47,237,65,194,126,158,83,65,101,120,132,119,89,96,84,152,30,151,132,105,0,32,165,90,127,41,177,14,62,78,56,97,20,185,61,91,49,36,64,172,91,8,188,113,7,74,185,179,83,59,136,25,213,31,208,74,98,197,2,252,24,39,60,116,98,90,31,136,94,231,42,247,72,216,27,248,39,44,108,27,140,69,247,32,217,133,69,172,163,43,177,234,75,140,174,184,87,54,213,105,30,110,179,86,140,112,111,66,229,233,38,122,82,90,231,149,161,31,72,121,175,100,27,24,163,97,104,89,235,94,8,134,44,80,25,247,4,202,32,27,167,32,145,130,142,41,117,132,42,219,210,183,86,31,45,92,180,84,118,187,22,122,21,22,45,183,160,239,118,132,16,205,139,43,221,236,136,230,3,21,37,106,200,44,56,102,19,80,53,85,84,134,249,220,66,53,121,170,26,157,194,94,182,155,141,148,97,126,115,66,154,233,188,75,66,128,228,33,167,15,145,196,164,109,101,148,232,54,91,239,52,183,42,17,235,216,154,123,91,241,98,225,119,154,44,181,134,245,175,220,172,15,55,79,135,13,205,61,94,204,0,171,154,202,69,140,159,157,62,240,0,20,98,59,171,243,3,233,16,132,196,160,4,220,241,233,154,28,213,89,142,230,198,4,15,218,187,126,85,242,107,145,163,241,131,120,223,179,167,175,87,74,12,120,251,106,180,110,79,118,198,2,4,165,169,250,141,229,4,159,209,50,191,120,252,136,207,53,195,34,193,86,254,209,230,177,106,194,87,81,103,210,154,208,43,207,173,26,102,9,221,250,113,222,76,116,227,51,184,97,8,28,52,10,159,158,22,224,186,158,128,60,21,27,136,121,69,250,45,80,166,198,18,94,68,41,255,164,2,111,178,228,234,209,71,0,242,63,64,84,223,47,4,32,167,218,210,169,150,79,160,64,141,131,167,30,34,104,125,21,248,32,47,145,147,58,22,74,75,253,194,219,193,63,240,111,7,206,14,210,192,110,153,149,164,36,17,218,112,123,60,179,33,145,184,140,41,197,255,213,49,152,63,221,16,200,195,127,218,150,213,94,39,176,65,86,27,131,2,223,63,116,90,166,59,33,218,245,95,43,188,183,150,1,81,64,24,237,135,16,70,212,182,18,35,48,230,211,236,165,170,41,140,61,121,169,108,176,47,223,203,28,24,52,211,52,249,248,69,58,229,117,206,190,201,108,135,79,191,214,43,168,143,249,255,0,197,120,42,15,248,215,40,79,76,61,53,111,188,250,89,150,255,168,81,177,123,204,76,74,118,52,88,241,34,43,98,243,189,100,113,43,15,22,7,111,91,143,12,62,72,130,184,134,99,165,29,106,206,75,207,254,195,197,62,143,236,125,48,47,153,74,53,172,187,204,196,161,29,249,52,220,139,169,41,24,193,178,8,59,115,36,20,82,176,157,86,55,206,39,40,24,126,189,223,197,230,37,125,104,41,153,56,108,178,138,210,42,135,68,226,130,195,168,172,107,186,216,137,178,139,158,196,62,11,170,85,149,172,98,209,13,35,9,232,34,142,81,28,124,254,84,235,28,83,180,117,16,130,69,103,41,104,96,235,133,198,170,117,46,47,15,114,165,31,112,182,18,89,43,217,121,152,3,217,36,175,59,49,238,25,190,180,205,65,219,51,136,126,96,92,11,125,10,107,38,237,48,66,77,78,168,183,163,92,243,39,236,33,143,49,166,62,236,238,246,74,107,61,243,128,176,106,85,49,72,31,85,209,74,53,64,206,194,158,220,123,195,136,133,7,25,52,75,84,250,85,77,166,252,21,199,74,27,210,39,129,162,32,38,46,14,221,118,245,67,33,247,31,85,229,17,222,24,140,246,109,204,230,82,42,236,200,147,67,165,99,202,122,2,203,5,191,149,99,54,179,174,78,189,83,176,222,13,163,201,193,85,85,1,39,108,93,70,90,154,81,142,3,165,24,245,221,184,166,236,171,92,122,189,40,39,115,2,200,153,83,239,182,126,218,37,73,81,106,74,102,159,4,171,171,182,114,77,106,74,19,45,94,193,56,193,150,72,162,193,255,45,139,193,188,244,158,8,168,29,137,169,36,100,225,178,214,225,2,208,119,116,174,8,94,194,188,61,212,157,167,192,175,35,230,175,41,216,254,234,143,202,176,253,215,70,149,144,129,116,161,57,163,126,152,185,145,200,36,242,68,113,85,207,219,143,208,250,120,31,52,68,39,26,154,78,84,207,17,238,193,236,74,42,100,213,51,78,157,190,221,225,108,164,180,234,146,58,213,52,121,118,71,140,253,157,86,52,82,199,181,210,10,2,189,79,200,115,135,27,64,172,144,2,220,148,74,158,39,185,198,47,61,47,61,136,123,165,21,88,85,48,112,36,84,12,24,29,250,6,161,29,134,236,55,35,92,197,178,27,163,3,87,13,51,200,138,225,164,74,35,208,252,187,21,35,207,90,206,150,237,11,195,185,214,176,97,171,167,186,51,230,129,107,55,25,151,250,88,113,168,104,75,89,49,78,112,64,66,105,202,2,248,121,155,198,163,86,151,31,200,60,51,162,50,168,103,228,120,165,58,78,186,42,132,213,65,135,133,55,244,240,168,57,89,42,231,223,43,177,43,198,211,40,2,57,251,14,226,110,135,55,240,176,165,102,42,30,56,158,108,166,181,226,133,41,112,178,71,124,147,213,156,50,127,22,219,207,238,243,203,199,155,126,23,244,2,57,239,149,212,212,103,128,81,204,191,231,115,150,239,43,55,95,186,148,212,31,57,10,236,50,40,13,198,210,36,226,5,87,56,61,86,36,255,155,110,255,127,113,24,101,248,86,229,157,208,140,75,221,114,245,2,128,143,186,211,8,50,69,197,89,174,204,200,150,220,145,130,237,160,86,164,215,205,3,42,48,236,224,222,30,92,236,167,88,7,96,25,181,50,95}, {218,147,38,94,255,95,151,75,85,234,213,87,42,64,175,134,10,235,254,25,114,206,17,36,18,26,25,157,253,39,107,73,173,15,40,205,170,207,92,73,115,20,231,91,133,175,27,7,142,241,29,103,120,206,116,219,150,186,110,228,140,221,84,187,181,119,164,240,8,199,226,65,25,107,15,152,104,235,247,141,152,136,52,163,100,168,54,197,67,108,24,34,39,207,44,244,1,166,39,100,254,68,159,74,121,97,55,56,0,21,125,1,187,220,141,46,19,14,65,214,25,210,137,216,148,176,240,148,192,166,173,174,193,108,41,172,31,120,147,51,45,241,21,53,42,175,63,18,165,125,11,83,219,109,49,240,23,69,138,196,79,243,89,196,128,219,120,165,201,15,121,210,120,84,140,60,63,150,143,42,123,186,196,102,226,207,96,115,20,144,208,78,89,209,61,230,124,177,132,67,44,40,246,14,52,145,25,37,248,247,224,1,208,48,214,179,51,237,156,55,57,48,6,65,239,97,54,191,47,36,91,210,161,204,240,254,92,152,188,4,156,152,197,59,75,112,61,185,177,215,73,28,210,237,20,4,57,63,175,163,86,137,53,16,5,137,7,133,114,226,7,249,0,194,145,154,115,251,132,201,19,15,228,193,127,52,246,255,40,246,130,5,113,68,17,170,204,73,250,144,129,181,232,88,156,75,248,120,95,44,121,132,47,15,180,232,73,63,128,131,13,143,10,4,71,12,195,143,161,160,116,12,34,180,71,93,90,197,56,242,160,97,252,234,60,27,33,115,215,154,54,108,251,207,119,104,126,250,83,155,84,164,5,162,99,23,241,192,202,79,231,163,235,110,28,151,76,218,51,54,50,125,138,29,110,141,245,151,145,61,118,230,6,141,45,217,125,182,111,178,147,63,40,29,48,52,83,83,247,54,193,252,122,139,152,142,220,212,155,225,208,199,19,41,136,164,186,249,100,119,14,145,95,7,91,130,66,180,17,150,94,88,121,34,143,90,45,71,153,94,127,27,250,11,182,29,44,112,110,90,32,66,85,255,213,158,183,110,49,20,248,3,69,69,99,13,211,2,199,56,28,56,239,163,82,171,164,204,25,240,131,200,250,11,152,237,249,112,60,47,50,175,161,241,49,145,248,23,220,96,13,213,232,239,9,255,96,228,228,248,197,19,162,157,64,51,21,204,138,226,20,66,61,171,148,45,20,193,9,17,195,221,67,14,152,42,21,68,244,247,35,249,217,25,42,9,141,68,65,126,218,135,160,41,174,211,222,5,234,19,22,138,168,72,10,171,66,199,107,41,210,129,118,112,117,241,205,218,51,163,241,84,5,93,81,25,248,178,100,63,182,56,201,95,204,153,150,117,99,143,52,93,170,55,231,181,215,147,59,40,87,153,217,124,4,73,97,7,119,27,221,177,27,204,135,83,56,234,110,161,160,90,112,58,239,182,172,229,52,40,249,124,170,141,150,173,246,160,168,249,228,243,220,209,243,247,227,85,13,142,214,35,108,219,218,31,118,58,4,133,248,96,193,238,243,121,91,215,183,98,123,83,201,132,180,243,218,8,51,58,2,24,194,1,187,75,99,226,88,86,16,68,152,165,2,66,236,172,107,252,1,250,0,142,230,131,173,126,42,165,74,28,246,132,39,108,38,207,240,252,58,108,125,191,215,115,85,35,23,124,242,107,121,65,124,249,36,99,2,123,152,235,95,215,146,84,28,190,172,72,162,40,244,212,249,131,121,222,151,24,44,220,141,163,226,175,117,124,120,75,52,194,154,68,126,101,179,47,24,245,241,81,232,110,37,150,196,87,47,213,189,69,50,241,5,62,167,125,252,193,195,194,66,64,33,34,146,27,253,115,187,130,2,239,235,16,181,173,215,129,128,198,8,71,105,4,32,41,176,204,195,119,129,158,205,138,66,65,226,91,205,55,24,132,108,88,55,66,34,17,3,95,41,209,120,59,36,43,157,78,85,166,204,174,79,138,209,211,155,189,191,165,145,84,169,53,107,25,94,149,222,118,2,233,152,95,248,139,95,239,73,113,210,190,28,216,41,52,3,164,140,29,65,244,110,28,53,54,121,117,6,114,107,9,114,116,18,134,200,38,114,129,48,214,80,15,17,247,145,210,116,2,76,151,115,179,235,117,160,198,226,198,7,87,109,111,202,81,101,5,66,32,62,141,159,104,18,107,201,56,170,171,248,179,242,237,92,1,14,146,201,254,19,108,53,39,6,167,67,192,48,11,219,58,9,61,211,60,13,117,13,245,75,3,46,175,7,236,15,188,184,137,5,73,41,190,64,86,0,81,162,148,17,228,151,141,211,66,172,29,161,92,149,255,82,146,118,88,220,114,17,85,176,101,51,14,10,133,162,81,214,136,145,96,226,68,225,125,97,103,160,240,158,156,127,180,49,1,20,47,236,59,119,151,115,201,121,145,244,122,244,127,169,244,224,186,209,10,58,242,219,115,87,80,175,142,152,8,17,169,3,248,0,192,59,1,131,96,76,175,57,25,9,95,40,132,24,126,211,116,242,40,55,150,42,229,117,179,106,20,56,61,169,175,99,141,242,148,128,48,200,65,169,106,90,161,243,217,136,114,221,38,243,177,223,171,1,225,117,226,179,147,204,9,69,80,240,253,223,60,159,152,156,27,95,74,71,48,48,14,197,250,98,127,113,149,236,219,28,222,60,59,153,172,18,186,14,6,234,227,177,155,242,153,107,181,173,56,232,112,204,177,144,224,36,108,76,109,104,147,221,84,63,200,56,134,76,224,171,173,214,178,29,205,163,172,77,53,34,230,167,206,254,41,170,79,176,84,143,199,85,242,130,133,204,75,99,143,126,139,153,217,171,38,184,94,151,56,208,7,173,169,186,249,93,34,159,101,97,220,57,62,52,181,115,244,19,31,239,201,94,78,46,234,32,45,132,179,28,45,150,132,66,47,8,187,146,232,194,65,94,157,220,118,20,161,151,94,83,184,114,156,203,78,204,101,32,75,243,69,132,175,52,87,78,148,39,157,252,24,71,36,36,96,91,169,9,140,96,168,213,141,232,140,120,82,115,229,83,59,112,83,131,156,95,248,15,21,187,26,52,17,242,80,66,114,156,189,156,144,129,199,209,48,9,255,121,75,210,253,71,41,188,106,12,34,2,87,149,38,171,89,47,210,16,180,167,144,206,139,66,29,222,50,243,119,31,193,98,17,108,238,201,50,175,171,192,109,189,107,42,39,72,109,5,22,79,53,205,207,204,223,197,188,78,30,159,141,194,206,96,167,211,157,180,184,26,16,160,86,29,153,50,228,233,83,57,93,175,43,132,220,5,236,99,71,100,180,70,20,2,138,101,112,176,217,219,59,48,15,74,185,133,0,47,100,53,185,152,13,55,197,25,8,32,26,210,3,26,246,238,222,106,88,131,221,18,183,177,149,183,236,33,246,201,160,26,142,212,35,212,124,68,201,6,204,241,187,194,172,65,180,116,211,15,23,89,15,3,140,162,161,173,38,138,207,9,188,249,229,34,173,14,0,244,23,42,219,249,103,134,203,140,18,86,151,143,183,25,204,19,66,22,138,149,201,103,99,71,39,72,31,109,127,20,195,12,51,60,174,132,152,165,12,212,219,90,46,0,158,132,44,29,208,148,39,228,100,240,105,30,108,234,157,254,139,87,124,47,12,173,58,110,9,243,204,91,236,139,107,34,108,207,249,13,209,18,149,111,126,233,41,167,67,245,25,53,124,155,221,123,190,183,233,10,189,166,125,120,104,33,46,48,79,92,31,101,229,202,146,189,21,127,81,59,149,159,136,164,249,121,89,9,213,44,173,33,188,128,133,156,28,45,167,66,237,97,189,218,147,126,29,255,33,237,79,146,19,121,49,126,236,210,80,105,183,126,249,114,182,189,155,69,157,159,157,251,233,54,47,154,67,122,154,45,123,149,52,39,234,9,240,23,61,64,97,174,201,27,195,146,44,152,149,161,200,47,3,55,68,8,80,167,103,119,0,63,97,128,65,91,136,82,170,111,114,177,93,227,225,122,104,57,183,17,107,112,183,19,72,43,202,173,109,4}, {212,139,169,143,74,128,97,18,185,130,171,214,22,222,133,180,29,102,98,24,22,191,158,101,235,163,35,61,100,90,243,221,67,172,109,134,20,39,8,184,143,173,49,4,224,224,83,162,186,47,209,166,88,22,218,193,201,8,180,65,109,204,133,24,142,224,252,98,54,161,107,207,10,62,200,178,227,136,66,107,126,80,22,48,171,153,182,0,191,41,76,7,85,44,255,54,59,33,169,238,194,82,236,183,102,230,158,117,231,97,33,194,148,205,103,87,89,207,91,37,45,24,62,120,53,224,32,239,162,149,160,73,228,204,38,224,223,101,154,51,42,130,69,52,152,238,18,23,11,66,144,114,147,27,172,122,64,83,177,23,192,197,150,120,58,126,5,107,142,73,254,223,124,4,93,56,73,51,210,195,69,173,172,76,236,88,199,53,208,210,7,50,252,93,137,105,73,133,67,198,17,137,187,60,137,126,250,130,129,44,105,78,40,72,254,157,103,127,17,85,165,144,79,59,42,243,174,235,158,76,197,118,122,176,250,189,82,3,81,174,44,64,27,96,187,67,30,174,112,62,253,165,107,177,19,96,249,78,146,137,59,93,234,209,115,154,1,221,39,78,116,57,105,52,249,169,76,103,56,224,83,197,45,174,164,236,3,112,224,84,208,121,203,188,96,139,109,131,23,6,57,116,43,29,20,70,122,210,239,223,235,199,199,209,147,113,210,236,62,238,120,82,21,251,20,182,210,180,116,151,94,45,82,102,4,28,205,13,55,227,240,33,43,117,29,202,43,138,183,128,97,152,245,46,206,224,188,72,123,181,80,225,125,118,21,180,148,253,35,146,11,184,171,70,79,57,72,236,215,159,147,68,83,183,83,41,111,106,252,18,126,18,224,95,159,102,241,85,86,50,61,45,113,132,51,230,208,183,89,191,166,79,198,193,250,227,29,43,163,128,133,181,111,133,200,252,97,58,122,235,6,188,121,3,88,117,249,59,47,28,66,84,132,224,47,128,200,217,185,116,32,183,25,26,241,69,139,82,169,147,217,15,68,60,20,255,182,179,129,32,131,177,248,254,27,245,20,217,127,165,73,207,82,14,67,37,24,242,95,173,142,44,95,255,199,155,4,189,222,236,191,90,50,174,50,137,234,227,134,195,112,116,11,217,102,116,154,238,84,101,134,23,21,243,69,176,150,176,83,89,120,84,134,7,145,156,244,5,10,163,19,86,239,174,204,93,35,159,41,55,146,151,183,166,251,255,144,189,115,150,10,153,93,148,249,28,252,45,94,205,181,71,17,130,216,158,179,41,232,77,29,54,122,135,104,40,172,105,213,221,82,87,2,200,51,250,229,212,28,55,243,76,118,26,197,175,39,127,238,47,57,0,199,250,101,67,205,18,31,166,82,26,152,62,14,150,75,169,18,96,25,211,217,169,89,219,154,165,196,46,208,113,38,148,148,10,103,105,163,245,171,254,129,127,42,169,145,156,49,210,43,72,121,80,16,62,151,251,255,98,22,140,89,51,90,157,117,241,209,15,219,221,90,247,181,23,25,224,188,86,251,26,162,155,33,10,52,87,103,66,177,127,136,169,2,235,109,159,198,201,235,17,106,216,200,105,133,61,124,159,131,23,215,26,98,254,65,66,165,77,176,143,64,193,195,195,223,28,159,232,149,119,77,136,208,205,17,232,94,228,75,220,11,180,101,160,231,209,236,176,248,148,42,214,73,206,132,10,240,36,70,136,230,42,237,146,7,55,19,35,115,97,152,16,249,27,161,20,110,41,34,198,225,79,126,231,153,188,116,240,178,0,35,156,164,53,253,159,83,63,212,74,153,119,196,163,235,86,160,215,89,5,20,252,13,243,157,249,183,100,16,48,99,171,255,242,6,78,58,206,18,190,84,131,60,159,156,231,24,148,102,63,50,238,121,49,181,80,168,19,215,35,154,181,254,249,200,82,106,37,12,187,2,91,60,108,136,65,229,129,56,116,105,196,145,3,92,111,5,117,189,66,101,221,140,55,254,53,81,146,221,39,48,135,69,202,122,94,105,105,189,150,58,111,20,49,12,213,48,135,30,67,64,143,6,190,214,177,193,178,72,129,2,123,231,123,209,124,106,189,146,10,179,182,26,236,96,27,224,22,160,81,151,187,86,46,7,27,5,75,132,47,49,136,199,158,103,97,30,16,26,145,114,118,192,210,8,108,134,28,86,41,33,196,252,57,83,138,186,247,171,118,185,30,117,198,179,44,132,237,87,172,157,173,235,32,236,200,172,2,108,58,79,41,113,243,153,72,5,160,15,21,207,87,26,183,181,19,46,29,255,73,163,87,99,96,146,105,133,83,223,37,230,28,251,209,192,195,193,226,67,182,149,145,185,79,24,222,97,61,205,246,29,181,180,30,17,85,216,50,76,209,224,198,11,100,72,2,115,152,172,22,133,96,85,134,137,250,43,196,15,37,137,22,202,15,179,201,93,1,37,237,252,27,101,181,164,87,50,213,113,152,62,183,159,251,98,166,106,208,48,243,87,9,240,248,225,241,179,149,179,244,47,252,37,86,47,78,104,84,241,193,172,6,251,16,23,127,190,175,47,134,188,223,54,196,194,77,174,0,100,65,99,198,208,220,236,133,16,141,192,100,198,128,38,223,105,2,129,33,94,79,17,134,162,170,224,142,60,33,58,235,161,131,74,173,50,169,246,123,190,55,59,150,137,102,190,62,88,47,226,166,157,171,200,110,153,112,135,183,187,15,7,47,123,192,73,144,127,185,28,150,20,71,221,25,51,57,2,143,157,141,145,114,9,213,9,97,156,25,235,147,66,53,39,155,73,204,40,178,249,22,243,122,249,109,36,152,159,222,246,2,160,236,67,32,38,202,217,4,101,139,194,236,149,184,71,149,166,51,38,224,86,8,239,35,12,105,139,135,221,171,101,78,211,169,118,251,216,7,167,99,237,65,8,36,186,146,130,95,116,254,120,238,140,57,5,197,198,13,144,99,159,205,47,113,185,4,237,164,65,247,247,69,239,154,178,47,51,192,179,27,144,215,126,145,84,16,43,159,145,150,80,217,60,114,223,4,228,119,130,213,222,153,127,46,61,77,242,255,146,99,95,138,226,45,119,228,37,252,129,27,178,89,66,25,106,82,140,110,195,154,10,236,82,63,171,98,22,1,42,54,100,119,231,155,180,84,41,45,234,130,190,12,156,228,139,67,3,40,70,37,246,191,31,54,100,219,89,83,12,82,12,222,230,141,5,66,155,90,85,194,217,41,166,12,57,49,152,27,148,68,141,165,50,61,118,64,232,233,240,123,114,194,47,176,149,49,65,229,170,135,146,21,106,9,40,187,4,73,180,204,147,99,235,126,144,20,51,243,255,242,52,193,133,14,108,14,54,129,72,192,156,220,128,138,180,253,8,202,203,4,128,166,88,212,219,235,199,135,62,113,112,227,124,195,89,73,111,254,144,130,38,204,189,240,179,61,144,34,78,94,119,31,99,11,78,133,196,172,38,105,198,44,206,209,206,106,204,188,60,203,129,210,226,198,213,198,18,173,224,44,179,72,55,192,206,233,76,100,24,43,110,248,162,77,106,223,197,154,61,153,138,33,52,238,84,248,167,80,60,17,89,59,167,87,97,130,71,23,226,146,104,217,208,218,226,193,115,243,101,141,214,39,134,145,63,87,251,108,7,181,54,178,54,44,31,30,52,94,147,178,176,190,19,228,138,33,0,12,255,144,206,163,71,13,144,254,186,115,30,0,39,187,10,198,31,17,152,113,234,196,42,2,69,158,99,43,2,5,238,30,245,51,151,104,146,32,127,83,125,92,176,93,161,28,225,174,68,178,116,86,47,129,244,243,249,164,57,42,70,196,32,36,97,34,61,238,245,171,185,83,20,204,221,68,99,183,32,116,170,58,50,110,233,34,224,245,212,15,105,27,218,236,75,54,238,30,34,154,238,116,113,177,49,24,13,175,187,0,135,105,45,211,119,210,96,126,205,165,198,33,192,222,115,207,132,60,217,80,151,29,93,49,129,105,168,193,35,82,201,106,118,208,3,249,186,62,133,177,163,133,48,115,250}, } ; static void test_decode_1277x2627_impl(long long impl) { unsigned char *x = test_decode_1277x2627_x; unsigned char *s = test_decode_1277x2627_s; unsigned char *x2 = test_decode_1277x2627_x2; unsigned char *s2 = test_decode_1277x2627_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1277x2627_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277x2627(impl); printf("decode_1277x2627 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277x2627_implementation(impl),ntruprime_dispatch_decode_1277x2627_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277x2627; printf("decode_1277x2627 selected implementation %s compiler %s\n",ntruprime_decode_1277x2627_implementation(),ntruprime_decode_1277x2627_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1277x2627_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1277x2627_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1277x2627_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1277x2627_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1277x2627_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1277x2627_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1277x2627(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277x2627")) return; storage_decode_1277x2627_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1277x2627_x = aligned(storage_decode_1277x2627_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1277x2627_s = callocplus(crypto_decode_STRBYTES); test_decode_1277x2627_s = aligned(storage_decode_1277x2627_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1277x2627_x2 = callocplus(maxalloc); test_decode_1277x2627_x2 = aligned(storage_decode_1277x2627_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1277x2627_s2 = callocplus(maxalloc); test_decode_1277x2627_s2 = aligned(storage_decode_1277x2627_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1277x2627 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277x2627();++impl) forked(test_decode_1277x2627_impl,impl); ++test_decode_1277x2627_x; ++test_decode_1277x2627_s; ++test_decode_1277x2627_x2; ++test_decode_1277x2627_s2; } free(storage_decode_1277x2627_s2); free(storage_decode_1277x2627_x2); free(storage_decode_1277x2627_s); free(storage_decode_1277x2627_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1277x3.c0000644000000000000000000005274014705505543022223 0ustar rootroot/* ----- decode/1277x3, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1277x3_checksums[] = { "cd7ac8c305a343e1ae8e70c486d539bae09546ea02182801780b53de3618c53f", "dfba5b6a88e496f1d34cb5f11e59ddb2c26255c22edb9c4a9246d96bb5b687c8", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1277x3_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1277x3_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1277x3_ITEMBYTES static void *storage_decode_1277x3_x; static unsigned char *test_decode_1277x3_x; static void *storage_decode_1277x3_s; static unsigned char *test_decode_1277x3_s; static void *storage_decode_1277x3_x2; static unsigned char *test_decode_1277x3_x2; static void *storage_decode_1277x3_s2; static unsigned char *test_decode_1277x3_s2; #define precomputed_decode_1277x3_NUM 4 static const unsigned char precomputed_decode_1277x3_x[precomputed_decode_1277x3_NUM][crypto_decode_ITEMS] = { {2,0,2,0,2,2,2,2,-1,0,-1,-1,2,2,1,1,0,2,0,2,0,-1,1,1,1,0,0,-1,2,1,2,1,2,1,1,-1,-1,2,0,-1,-1,0,2,0,1,0,2,0,-1,2,0,-1,1,-1,0,2,0,1,2,1,1,0,2,1,2,-1,2,-1,0,2,0,0,0,2,0,1,2,1,2,1,2,0,1,1,0,2,1,2,-1,0,0,0,1,0,0,-1,0,0,0,-1,2,0,0,1,1,-1,-1,2,1,2,2,-1,0,2,2,-1,1,2,0,-1,0,-1,1,0,-1,-1,2,-1,0,2,2,-1,2,0,-1,-1,0,-1,2,0,1,2,0,2,-1,-1,1,-1,1,-1,2,2,-1,1,2,2,-1,1,2,2,2,2,2,1,1,0,0,1,0,0,1,-1,2,0,-1,1,2,-1,1,2,1,0,1,0,2,1,0,2,2,1,-1,1,0,-1,-1,2,1,-1,1,0,2,-1,2,0,0,-1,2,1,1,-1,1,1,1,-1,0,0,0,-1,0,1,-1,1,0,2,1,2,-1,-1,1,-1,-1,1,2,-1,0,0,2,1,2,-1,2,0,-1,2,2,2,0,0,2,0,0,-1,0,1,0,-1,1,0,1,0,-1,2,1,-1,1,2,0,2,-1,0,2,0,1,-1,-1,1,-1,-1,-1,-1,2,0,-1,-1,1,1,0,2,0,0,1,-1,0,0,2,1,-1,1,0,2,2,1,0,-1,2,-1,-1,-1,-1,-1,2,-1,1,1,0,2,0,1,0,1,-1,2,2,-1,-1,2,1,2,1,0,0,1,2,2,0,1,-1,2,1,0,-1,2,0,2,2,0,-1,-1,0,2,-1,1,-1,0,0,1,1,2,2,-1,1,0,1,2,-1,1,0,0,-1,-1,0,2,0,-1,-1,-1,0,1,0,0,-1,1,2,1,-1,1,0,1,1,1,1,0,2,0,1,2,-1,2,2,2,2,1,2,2,0,1,1,2,2,0,0,0,0,0,1,0,-1,1,2,2,-1,0,-1,-1,0,-1,0,1,1,1,1,1,2,0,1,0,1,2,-1,1,2,0,-1,-1,1,2,-1,-1,0,2,2,-1,-1,-1,-1,2,2,1,0,-1,-1,1,0,2,1,1,0,1,1,2,1,1,1,2,1,2,2,0,-1,-1,2,1,0,-1,2,2,-1,-1,1,2,1,-1,1,1,0,-1,1,1,0,0,0,0,0,1,1,-1,1,2,1,-1,0,1,-1,0,1,-1,-1,2,0,-1,2,1,1,2,0,0,0,1,-1,-1,2,0,-1,-1,0,1,1,2,1,0,0,1,-1,1,-1,0,-1,2,-1,0,0,2,1,2,0,2,1,1,2,0,0,1,1,-1,-1,-1,2,0,-1,2,0,1,0,0,2,-1,-1,2,1,0,1,-1,1,2,1,0,0,2,2,1,-1,-1,0,1,-1,0,0,2,2,0,-1,2,0,-1,2,1,0,2,0,1,2,-1,2,-1,0,-1,1,2,1,2,2,1,2,-1,-1,0,-1,-1,2,2,1,1,-1,1,1,-1,1,2,-1,2,1,0,-1,1,2,1,1,-1,2,-1,1,0,1,2,1,-1,0,1,2,2,1,-1,0,0,1,2,0,0,0,-1,-1,-1,1,1,-1,2,2,1,1,1,0,-1,-1,0,1,0,2,2,0,-1,2,-1,0,0,2,1,0,0,0,0,1,2,2,1,0,2,1,1,1,2,1,0,2,0,2,0,2,1,1,2,0,-1,-1,1,1,-1,1,1,0,-1,-1,0,2,-1,2,1,1,2,1,0,-1,2,1,2,2,0,2,1,2,2,1,2,2,2,2,2,0,-1,1,2,2,2,2,0,2,2,0,0,1,0,-1,0,-1,2,0,-1,-1,1,0,1,1,-1,1,2,0,1,-1,2,2,1,2,2,2,0,1,0,1,0,1,1,2,1,0,0,0,0,-1,-1,2,1,-1,-1,0,0,0,0,0,2,-1,2,2,-1,0,2,-1,2,2,2,0,-1,0,1,-1,-1,2,0,1,0,2,0,2,1,2,-1,-1,0,-1,0,2,1,-1,0,0,1,1,1,2,2,-1,-1,1,1,2,2,2,0,0,0,2,1,-1,0,1,1,2,0,1,0,-1,2,0,2,2,0,0,2,1,1,1,1,-1,-1,1,0,-1,1,1,1,0,1,0,0,0,1,0,-1,-1,0,-1,-1,2,-1,-1,0,0,2,1,2,0,2,2,1,1,1,0,1,2,-1,0,2,1,1,1,0,-1,2,-1,-1,2,2,0,-1,2,-1,0,1,0,0,-1,-1,0,-1,0,0,0,1,-1,2,-1,-1,-1,0,1,-1,-1,0,0,0,-1,0,-1,1,0,0,1,2,2,-1,1,-1,-1,-1,2,-1,-1,0,0,0,-1,-1,0,-1,1,0,0,-1,-1,1,-1,2,-1,1,0,1,-1,0,1,1,2,0,-1,2,1,0,2,-1,2,2,-1,1,1,2,2,0,-1,1,-1,-1,1,2,2,0,-1,2,0,-1,2,1,2,0,-1,1,0,0,2,-1,-1,2,2,1,1,-1,-1,1,-1,0,1,2,-1,-1,1,2,2,0,0,1,2,2,-1,1,2,-1,1,2,1,-1,-1,0,0,-1,-1,-1,-1,2,2,2,1,2,2,0,1,1,2,1,2,1,1,-1,0,0,1,-1,2,1,-1,2,0,-1,0,-1,0,2,1,1,-1,1,-1,0,2,2,-1,0,2,2,1,-1,1,-1,-1,2,-1,-1,2,0,0,0,2,1,0,1,0,0,2,-1,-1,-1,1,0,1,1,0,1,1,-1,1,2,0,2,-1,-1,2,1,2,1,1,1,-1,2,-1,2,2,-1,0,-1,2,1,-1,1,0,2,2,2,0,0,-1,0,1,-1,0,2,1,2,0,-1,2,0,-1,-1,1,2,0,2,2,2,0,-1,1,-1,2,1,0,-1,2,2,2,-1,1,2,1,0,2,1,1,-1,-1,2,2,1,0,2,1,-1,1,2,0,1,0,1,2,1,2,1,1,-1,0,-1,-1,2,-1,2,2,1,-1,0,1,0,1,-1,2,1,-1,0,1,0,1,0,-1,1,-1,1,1,0,2,2,2,0,-1}, {2,-1,1,-1,-1,0,0,2,2,0,0,2,-1,0,-1,2,1,1,0,0,2,1,1,1,-1,0,-1,0,0,-1,0,-1,0,2,-1,0,1,2,-1,1,1,-1,-1,1,-1,2,2,2,2,0,2,1,2,-1,1,-1,-1,-1,2,1,-1,0,2,1,1,0,-1,0,0,1,1,-1,1,1,1,2,1,1,-1,0,1,2,1,1,-1,-1,-1,-1,-1,-1,1,1,1,0,1,-1,1,1,0,0,1,0,1,1,0,2,-1,0,1,1,0,2,0,-1,-1,1,-1,2,-1,1,-1,0,0,-1,0,0,1,0,2,1,0,0,1,-1,1,0,2,2,0,0,1,2,0,2,2,1,2,0,2,0,0,-1,0,-1,0,-1,-1,2,1,1,-1,0,1,1,-1,0,-1,-1,-1,1,1,2,-1,0,2,2,1,1,0,2,0,0,2,1,1,1,2,1,2,-1,1,1,2,-1,1,1,0,1,-1,-1,1,-1,0,0,1,2,2,-1,1,1,-1,0,0,0,0,-1,1,2,-1,2,2,2,-1,0,1,0,-1,2,1,0,-1,-1,0,-1,0,-1,0,0,2,0,-1,-1,1,0,-1,2,2,2,0,2,1,-1,-1,1,1,-1,0,2,1,2,2,0,2,1,0,2,0,2,0,0,-1,1,2,2,-1,2,0,1,1,1,2,0,1,-1,2,0,1,1,1,2,-1,0,-1,1,-1,0,1,-1,-1,2,2,1,2,1,-1,0,2,1,-1,2,1,2,2,2,1,0,2,-1,0,1,2,-1,0,-1,0,0,2,0,0,-1,2,2,-1,1,2,-1,1,2,1,2,0,-1,1,-1,1,1,1,-1,0,0,0,-1,1,2,0,0,-1,0,2,1,2,2,1,0,2,0,-1,1,-1,1,2,-1,-1,0,0,-1,-1,0,2,-1,0,1,0,0,0,2,0,0,2,0,1,1,2,1,0,2,0,1,0,-1,1,1,1,1,1,0,1,2,0,1,2,2,1,1,2,2,-1,-1,0,0,0,-1,0,1,0,0,2,2,1,2,0,1,1,2,2,1,1,-1,-1,2,0,-1,2,-1,2,0,2,1,-1,2,2,-1,0,2,1,1,0,2,2,-1,1,0,2,-1,1,0,-1,0,2,-1,2,1,-1,1,-1,2,2,1,0,-1,2,-1,0,2,0,0,0,1,0,2,2,0,0,1,-1,0,2,1,-1,-1,2,2,1,0,0,1,2,1,-1,-1,0,-1,2,2,-1,-1,0,0,0,-1,1,2,2,1,0,0,-1,2,1,1,2,1,-1,1,2,0,0,0,-1,1,-1,-1,1,1,0,-1,1,2,1,-1,-1,-1,2,0,0,0,0,2,-1,1,-1,0,1,1,1,1,-1,2,-1,1,2,1,2,-1,0,-1,0,-1,1,0,2,-1,1,-1,2,1,-1,2,-1,1,-1,2,2,0,1,-1,1,1,2,2,2,-1,2,1,0,1,0,1,0,1,2,1,0,-1,-1,0,2,2,0,1,2,0,2,1,2,0,1,-1,0,-1,-1,-1,-1,0,1,0,-1,0,1,-1,1,0,1,0,-1,-1,-1,0,2,1,0,0,2,1,0,2,0,0,1,-1,-1,0,-1,2,2,2,-1,0,-1,0,1,-1,2,1,2,-1,1,1,0,2,0,0,-1,2,0,2,-1,0,-1,2,0,2,1,0,1,1,2,0,2,-1,0,2,0,2,-1,2,2,2,2,0,1,2,0,1,0,-1,1,-1,0,1,2,2,2,-1,2,0,1,0,2,0,2,-1,1,-1,-1,1,2,-1,1,0,1,-1,-1,1,1,1,2,1,0,2,2,0,0,-1,2,1,1,0,-1,1,-1,1,2,0,0,-1,1,-1,0,1,1,2,1,-1,1,0,-1,0,-1,0,2,0,2,1,1,1,2,0,1,0,1,1,-1,-1,-1,1,2,2,1,1,-1,-1,0,-1,2,0,-1,0,1,2,-1,2,2,0,2,0,2,0,0,1,0,0,-1,-1,1,0,0,2,-1,-1,1,0,1,1,2,-1,1,1,0,-1,0,-1,0,1,2,-1,-1,1,0,-1,2,-1,2,-1,2,1,2,0,-1,-1,0,0,0,-1,1,-1,0,-1,2,-1,1,-1,-1,1,-1,1,-1,2,-1,1,-1,1,2,0,0,0,1,1,-1,2,2,2,2,-1,1,0,1,1,0,-1,0,1,-1,0,-1,0,2,2,2,1,2,1,1,0,0,0,0,1,-1,0,1,1,-1,2,2,-1,0,-1,0,1,1,2,1,0,1,2,0,1,0,0,1,0,0,2,1,2,0,0,0,-1,1,2,2,1,1,1,-1,0,0,2,1,1,-1,1,2,-1,2,2,1,2,0,2,2,1,1,1,0,-1,-1,0,1,0,1,1,-1,1,2,0,-1,1,2,0,2,2,2,1,1,0,0,1,2,-1,-1,0,1,0,-1,2,0,0,-1,-1,1,1,2,0,2,2,0,-1,0,0,1,1,1,-1,2,-1,-1,-1,2,-1,2,1,1,0,0,2,0,2,2,0,-1,1,1,2,2,0,0,2,2,2,0,1,2,2,-1,-1,1,0,2,-1,0,1,-1,0,2,0,2,2,-1,1,1,1,-1,2,2,1,1,2,1,2,1,0,1,1,1,1,0,2,2,-1,1,0,2,0,-1,0,1,2,0,-1,-1,0,1,1,2,2,0,2,2,2,1,-1,1,0,-1,2,2,-1,2,1,1,-1,1,2,-1,1,-1,1,2,-1,0,1,-1,2,1,1,2,1,-1,-1,2,0,1,2,-1,2,0,-1,2,0,-1,-1,2,-1,-1,1,0,0,-1,-1,2,2,2,1,0,2,-1,2,2,1,2,-1,2,1,2,2,2,1,0,-1,-1,0,1,2,0,2,2,-1,1,2,2,-1,1,0,0,0,1,0,2,1,1,2,1,-1,0,2,1,-1,2,-1,2,1,-1,-1,-1,0,0,2,-1,2,0,1,-1,1,-1,-1,0,1,-1,0,1,1,2,0,1,2,-1,1,-1,-1,2,0,1,0,1,0,-1,0,2,2,1,1,0,1,0,1,-1,-1,2,2,-1,-1,2,1,0,-1,1,2,-1,1,1,0,2,2,0}, {0,2,-1,1,0,0,1,2,2,-1,1,-1,0,2,2,-1,0,1,2,-1,1,0,2,0,1,2,-1,0,1,2,1,1,2,0,1,2,1,0,2,2,0,1,1,-1,2,0,2,2,1,0,2,1,-1,-1,-1,0,2,-1,-1,0,0,2,-1,0,-1,-1,2,-1,0,2,2,2,2,0,1,0,0,1,2,-1,0,-1,1,1,0,1,2,2,0,0,-1,2,0,-1,2,1,-1,2,2,-1,0,-1,1,1,-1,1,2,0,0,1,0,0,2,0,1,0,0,-1,1,1,1,2,0,-1,-1,1,-1,1,-1,2,1,-1,2,-1,2,0,1,2,0,-1,0,0,-1,-1,0,-1,1,0,0,-1,-1,0,1,-1,0,1,-1,1,2,2,2,1,-1,0,0,-1,1,0,-1,2,1,0,2,-1,2,2,2,0,2,1,1,1,1,0,2,2,0,-1,1,2,0,1,2,1,0,0,2,0,0,1,0,1,1,1,-1,-1,0,0,1,2,1,2,0,2,2,2,2,-1,-1,-1,0,1,-1,0,-1,-1,0,-1,-1,1,0,-1,0,0,-1,0,1,0,1,-1,1,2,2,2,0,0,1,2,-1,-1,2,-1,2,2,-1,2,1,-1,-1,1,-1,2,0,-1,1,2,2,2,-1,1,1,-1,2,1,1,2,0,-1,1,-1,2,0,2,0,1,-1,0,2,1,-1,0,1,0,-1,2,2,2,0,-1,-1,1,0,1,-1,2,0,1,-1,1,0,0,2,2,1,-1,0,2,0,1,-1,-1,2,2,0,-1,2,-1,1,1,0,1,2,2,-1,0,1,0,1,1,-1,2,1,-1,0,-1,1,2,2,0,-1,0,1,0,2,1,0,0,-1,1,2,1,1,2,2,2,0,0,1,-1,1,-1,2,1,0,-1,-1,-1,2,-1,2,2,-1,0,1,1,2,0,-1,1,2,0,2,-1,0,2,1,1,-1,-1,0,0,-1,1,1,1,0,0,0,-1,2,2,0,2,2,1,-1,2,1,-1,-1,1,0,2,2,-1,1,1,2,-1,2,1,0,2,2,2,2,1,1,-1,0,-1,1,1,-1,1,-1,2,0,2,0,1,-1,1,0,2,1,2,2,0,0,0,2,0,0,1,2,-1,1,-1,0,0,0,1,0,-1,2,0,1,2,-1,1,0,1,1,-1,-1,-1,-1,-1,0,2,2,2,-1,-1,1,2,2,2,1,2,1,0,2,2,-1,2,-1,1,2,2,0,1,1,1,-1,-1,0,1,1,2,1,-1,0,1,-1,2,1,-1,0,1,1,0,1,0,-1,2,1,-1,2,0,-1,0,-1,-1,1,2,-1,-1,1,-1,2,-1,1,0,-1,2,1,2,2,2,0,-1,2,-1,0,-1,2,0,1,-1,1,-1,0,0,2,-1,1,1,1,1,2,2,0,-1,2,1,2,-1,1,2,-1,-1,0,-1,-1,-1,0,0,2,-1,2,1,1,0,1,1,-1,1,-1,-1,2,0,1,2,2,0,1,1,0,1,0,-1,1,1,-1,-1,2,-1,1,0,2,0,-1,1,0,-1,2,1,0,0,-1,1,1,1,2,0,0,1,0,0,0,2,1,1,-1,1,2,-1,2,1,2,-1,1,1,0,0,2,0,0,1,0,0,0,0,1,-1,-1,2,2,0,-1,-1,0,2,2,1,2,0,0,2,-1,1,-1,1,1,2,1,-1,-1,-1,2,0,0,2,0,0,1,0,0,0,-1,0,1,-1,2,0,0,-1,2,1,1,-1,2,1,-1,2,2,-1,1,1,0,-1,-1,1,-1,-1,-1,2,0,-1,2,1,1,-1,1,2,-1,-1,2,-1,1,2,1,2,-1,-1,0,2,0,-1,1,0,2,-1,1,0,-1,1,0,-1,0,-1,0,2,0,0,0,0,1,1,2,0,-1,0,1,0,-1,2,2,2,2,2,0,1,2,2,0,1,2,2,0,1,0,1,-1,-1,-1,0,2,0,0,0,1,-1,1,0,0,0,-1,-1,0,-1,0,1,2,0,1,-1,0,1,1,1,0,-1,-1,1,-1,2,0,2,-1,-1,2,0,-1,0,0,-1,1,0,0,2,0,-1,0,2,1,2,1,2,2,-1,-1,0,0,0,-1,-1,-1,-1,1,0,0,2,1,0,0,-1,-1,2,2,-1,0,2,0,1,-1,1,0,2,0,0,1,-1,0,1,2,1,2,2,0,1,2,-1,-1,2,-1,0,2,1,1,0,1,-1,0,2,-1,1,1,-1,1,0,2,2,2,2,0,0,-1,1,1,-1,0,2,-1,2,2,-1,1,0,1,-1,0,2,1,0,-1,-1,2,-1,0,0,0,-1,1,1,-1,1,0,-1,0,1,2,2,0,-1,2,-1,1,1,1,0,1,1,0,1,0,-1,2,2,1,0,1,0,2,1,0,-1,1,2,-1,2,0,2,1,-1,2,-1,0,1,0,1,0,1,-1,0,0,0,1,2,1,-1,0,-1,1,1,-1,-1,-1,0,2,0,2,2,-1,1,2,2,1,1,-1,0,0,-1,0,2,1,2,-1,2,1,0,1,1,-1,2,1,-1,0,2,0,2,0,2,-1,2,1,0,2,1,0,0,1,0,0,0,1,2,2,-1,2,2,2,0,-1,2,-1,-1,-1,-1,0,0,2,-1,0,-1,1,-1,2,1,-1,0,1,1,-1,2,-1,1,1,0,2,1,0,-1,1,1,1,0,-1,0,2,1,0,2,0,1,1,-1,2,-1,1,2,0,1,1,0,1,0,0,-1,0,-1,0,2,1,-1,-1,1,2,-1,2,-1,1,2,1,2,2,-1,1,0,2,-1,0,1,2,0,-1,-1,0,0,2,2,2,2,-1,-1,-1,0,0,-1,-1,2,0,0,1,2,1,1,1,0,2,2,-1,1,0,1,1,-1,1,0,0,0,1,0,0,2,1,-1,0,2,1,0,1,1,-1,0,0,0,-1,2,1,1,2,2,1,-1,1,1,2,0,-1,2,1,1,-1,2,0,-1,-1,-1,0,2,-1,1,0,1,2,2,1,-1,-1,0,1,0,1,2,-1,2,1,1,2,2,1,-1,1,0,1,2,1,1,0,0,0,1,-1,1,0,1,-1,0,-1,-1,2,1,0,0}, {-1,0,0,0,0,-1,-1,0,0,2,0,-1,2,-1,2,-1,0,0,2,0,2,-1,-1,-1,-1,-1,1,2,1,0,2,2,2,-1,0,1,2,1,1,1,1,1,2,-1,2,2,-1,2,2,1,2,1,2,0,0,1,2,0,-1,0,2,2,1,0,2,0,-1,1,1,-1,0,0,-1,2,-1,1,1,1,-1,2,2,1,2,2,1,-1,2,-1,2,2,0,-1,-1,1,-1,1,1,-1,2,0,1,-1,1,0,2,2,0,1,-1,2,2,-1,-1,-1,-1,1,-1,1,1,-1,1,2,-1,2,0,-1,0,0,1,0,-1,-1,-1,-1,1,0,-1,0,2,1,0,1,0,1,2,0,1,0,2,0,-1,0,0,1,-1,-1,1,-1,1,0,0,2,2,2,1,1,1,2,2,2,1,0,0,-1,2,1,1,1,0,-1,-1,2,2,2,0,0,0,0,0,-1,0,1,0,1,-1,0,-1,2,1,0,-1,0,0,1,-1,-1,0,-1,0,2,1,1,-1,2,1,-1,1,-1,1,-1,0,-1,2,1,1,0,0,1,-1,0,-1,1,0,0,1,2,-1,2,1,1,0,-1,1,0,1,2,1,1,-1,2,2,0,-1,1,2,0,-1,2,2,1,-1,0,0,0,1,1,-1,-1,2,0,0,-1,0,2,-1,-1,0,2,-1,2,1,1,0,2,0,-1,1,-1,0,-1,0,2,2,2,1,0,-1,-1,-1,2,-1,-1,2,2,0,2,-1,2,2,1,-1,0,0,1,-1,0,2,1,2,-1,0,2,2,1,2,0,0,1,1,0,1,-1,1,0,0,0,-1,1,2,1,2,2,1,-1,2,0,1,0,-1,-1,-1,-1,-1,2,0,1,-1,-1,0,2,-1,0,-1,1,-1,-1,2,-1,1,-1,0,2,0,0,-1,2,-1,0,0,-1,-1,2,1,-1,-1,0,0,2,2,2,0,-1,1,1,0,2,0,0,-1,2,0,0,2,0,1,2,0,0,2,1,2,1,2,0,2,2,0,-1,1,-1,1,2,-1,1,-1,1,2,0,-1,-1,-1,0,1,1,2,1,0,-1,0,0,1,1,2,0,0,0,-1,0,2,0,0,2,1,2,2,2,1,2,2,1,2,2,1,2,0,0,0,-1,-1,2,1,0,2,2,-1,2,-1,0,-1,0,-1,0,2,0,0,0,1,2,2,-1,2,-1,-1,1,2,2,2,1,1,0,-1,1,2,-1,1,1,1,2,2,0,1,0,0,2,-1,0,0,-1,2,2,1,0,0,0,0,2,0,0,1,-1,-1,-1,0,0,0,0,1,2,0,1,1,2,-1,-1,0,1,0,2,1,1,2,-1,2,-1,-1,1,2,-1,2,-1,0,1,1,2,1,2,-1,2,0,2,2,2,0,2,1,-1,0,2,0,-1,-1,-1,0,-1,-1,0,1,2,0,1,-1,1,0,0,-1,2,1,2,-1,0,-1,2,2,-1,1,-1,0,1,-1,2,2,0,2,1,0,2,-1,1,0,1,-1,-1,0,1,-1,-1,-1,-1,1,-1,0,0,-1,1,-1,1,1,2,1,0,2,1,1,-1,0,-1,1,2,0,1,-1,1,2,0,-1,1,0,2,2,0,1,1,2,0,2,1,-1,2,-1,1,-1,1,2,1,2,2,2,-1,1,0,1,1,2,-1,-1,-1,1,-1,0,2,1,2,2,-1,1,-1,0,0,-1,2,0,-1,-1,-1,0,1,1,0,2,1,1,0,1,0,-1,0,2,1,0,-1,1,1,2,-1,0,-1,-1,2,1,-1,2,2,2,0,0,-1,1,1,1,1,1,0,2,2,-1,-1,-1,2,-1,-1,2,0,2,2,-1,-1,1,0,1,0,2,2,2,2,-1,1,1,2,0,2,2,1,1,0,0,2,1,-1,1,0,1,0,2,2,-1,0,0,2,2,0,0,1,-1,1,2,2,2,1,0,0,-1,0,-1,0,2,0,0,-1,0,0,1,-1,0,1,2,1,0,0,1,0,2,2,0,-1,1,-1,-1,1,0,0,1,0,2,2,1,1,0,2,2,1,-1,2,-1,2,2,1,2,0,2,-1,0,0,2,2,2,-1,-1,2,-1,2,-1,-1,1,1,2,0,2,2,1,1,1,-1,-1,0,-1,2,-1,1,2,2,2,0,1,2,2,0,1,-1,1,2,-1,0,-1,-1,1,0,0,2,2,0,2,0,2,1,-1,1,1,2,0,2,1,2,0,0,-1,1,2,0,0,1,2,0,-1,2,0,0,0,0,2,2,1,2,2,0,2,0,2,2,0,2,1,2,2,0,0,-1,2,0,1,2,0,2,0,0,1,-1,0,1,2,1,1,2,2,1,2,-1,2,2,2,2,2,0,-1,1,0,0,-1,1,2,2,2,0,0,-1,1,-1,1,-1,0,1,-1,-1,2,1,1,1,-1,2,1,0,0,1,2,1,2,-1,1,1,0,-1,2,-1,2,-1,0,0,1,1,2,-1,1,2,-1,1,0,0,2,-1,-1,-1,-1,0,2,2,-1,1,0,-1,0,2,0,-1,0,-1,1,2,2,2,0,1,1,0,-1,0,0,2,0,2,-1,2,1,0,-1,1,-1,0,0,2,2,0,2,1,1,-1,1,2,0,-1,-1,-1,-1,2,2,1,2,0,1,1,0,-1,-1,-1,2,-1,0,1,2,1,-1,2,-1,2,-1,1,-1,2,-1,-1,1,0,-1,1,2,-1,2,2,0,1,-1,2,-1,0,-1,2,-1,0,-1,1,2,-1,2,0,0,1,0,2,0,2,0,2,1,0,0,1,1,2,2,1,1,2,-1,0,0,2,1,1,0,-1,0,2,-1,-1,2,2,1,0,2,2,-1,-1,0,-1,2,1,1,1,1,-1,2,-1,0,1,2,-1,2,0,0,0,-1,2,-1,-1,-1,-1,0,1,-1,2,2,2,1,2,1,0,-1,0,2,-1,-1,-1,-1,1,1,0,0,-1,0,0,2,0,-1,2,0,0,2,-1,-1,2,-1,-1,-1,0,0,0,-1,2,-1,1,1,0,1,-1,-1,0,2,2,0,-1,2,-1,2,2,1,2,1,2,-1,0,2,1,1,1,0,1,-1,0,0,1,0,-1,-1,0,1,1,1,-1,1}, } ; static const unsigned char precomputed_decode_1277x3_s[precomputed_decode_1277x3_NUM][crypto_decode_STRBYTES] = { {119,255,4,175,221,161,22,187,43,28,116,118,28,210,185,182,51,93,157,187,167,237,84,22,21,151,194,62,61,30,97,48,61,7,113,222,32,242,248,248,191,150,37,135,227,102,219,139,193,98,115,177,162,82,145,216,14,130,83,59,199,95,23,25,102,44,222,116,130,0,7,218,37,181,216,27,3,48,218,153,60,236,150,159,108,220,7,141,148,62,230,88,208,1,89,184,152,106,231,252,251,233,87,101,248,4,145,170,103,142,7,14,61,192,27,216,154,174,238,7,27,15,46,26,90,149,226,146,36,28,235,149,112,144,110,137,196,212,222,122,41,112,156,53,108,226,214,11,73,125,28,219,57,19,238,59,4,175,40,206,134,43,99,46,249,82,94,1,202,171,65,246,49,181,85,190,173,110,119,235,129,162,65,179,110,236,183,239,255,225,127,95,70,28,152,226,201,251,103,166,91,5,11,85,205,211,252,145,112,118,59,68,75,169,15,250,87,75,122,198,125,173,10,134,154,149,65,48,212,222,171,57,173,198,240,49,89,16,149,12,36,84,132,229,35,48,84,16,22,200,152,164,199,54,143,126,8,126,28,123,88,195,43,72,14,126,249,56,46,20,192,239,167,187,82,178,28,209,138,244,244,34,12,87,155,53,96,154,226,13,187,202,60,177,216,95,36,237,113,224,253,33,27,63,110,43,188,45,158,185,43,193,188,100,178,100,134,104,127,76}, {35,212,215,196,90,171,68,17,77,142,130,252,183,35,176,180,70,41,234,74,174,0,160,38,90,166,77,218,129,140,20,101,91,98,95,222,123,23,17,172,164,4,232,244,218,181,186,163,163,9,82,62,74,21,206,79,198,6,17,117,96,252,45,40,237,183,221,133,207,169,39,167,78,72,194,187,180,236,111,147,19,117,241,56,238,33,42,21,94,180,111,135,56,20,52,89,93,167,219,25,170,230,249,250,80,145,245,158,190,194,49,183,60,173,61,54,70,179,200,27,211,149,125,73,11,111,185,16,15,21,190,197,186,120,133,160,225,2,87,141,164,202,184,19,97,35,203,200,39,250,179,153,185,65,159,183,39,1,100,36,102,64,91,219,37,196,79,36,59,218,197,77,220,166,55,221,252,231,25,146,63,103,55,130,99,130,186,125,177,134,120,33,233,98,68,183,122,166,128,175,16,71,206,119,151,5,214,96,58,26,145,131,49,179,7,21,18,35,136,140,120,165,252,99,26,73,244,187,86,73,202,19,233,230,89,214,94,225,171,212,138,243,222,171,65,166,120,120,191,150,67,198,5,122,31,165,50,48,107,221,135,126,253,249,96,147,116,143,202,235,110,170,61,118,228,65,250,253,98,60,43,142,56,201,186,112,206,113,48,88,240,219,188,179,191,65,222,227,99,101,235,210,50,11,212,156,8,73,122,142,112,102,244,154,9,15,27,142,246,33}, {141,229,35,61,57,118,78,174,231,246,41,247,182,64,67,77,48,253,103,57,161,249,197,177,60,161,120,89,103,161,30,136,44,115,30,5,97,65,146,248,75,97,108,243,183,106,31,158,91,151,169,80,238,253,3,73,16,24,69,38,254,229,48,207,130,28,254,40,235,33,119,210,146,241,7,38,39,214,75,39,124,140,230,147,41,75,248,145,109,225,250,151,200,6,204,147,30,222,180,66,161,86,124,47,11,246,232,108,255,74,40,114,39,182,95,93,142,84,198,57,166,0,244,131,191,219,51,126,42,164,75,178,164,25,203,17,56,200,24,251,199,196,137,212,168,126,236,56,4,212,172,41,194,249,105,134,194,216,97,108,161,94,86,43,206,142,214,101,149,240,65,239,53,162,11,92,151,21,201,197,202,242,104,32,112,172,56,140,59,116,216,24,70,116,149,30,25,255,231,231,103,2,93,137,21,68,158,164,6,114,195,81,88,71,187,15,21,128,181,5,79,39,118,73,238,231,48,173,73,163,216,127,161,52,143,73,27,76,133,98,228,199,168,105,198,155,109,56,183,76,102,82,185,132,2,221,227,43,69,59,155,178,116,55,219,150,149,207,31,3,212,132,44,41,163,109,168,209,118,202,120,154,69,180,224,140,251,216,228,65,253,3,5,151,171,61,166,88,89,75,155,82,177,190,232,177,114,64,99,190,144,57,235,139,185,86,98,18,108,101}, {84,65,29,51,117,3,224,246,147,171,58,207,187,151,71,111,135,82,140,202,251,50,31,136,114,98,159,60,128,40,206,81,6,96,180,153,103,71,9,98,253,234,111,177,26,252,85,145,73,108,148,16,173,44,34,177,150,132,229,172,97,174,124,120,188,84,10,23,13,205,218,33,209,111,192,240,205,75,73,59,189,151,38,86,184,47,103,0,156,208,132,48,210,197,20,44,212,31,218,197,117,94,187,247,33,142,120,64,186,81,122,69,215,254,190,239,21,108,207,68,116,229,51,248,107,56,234,103,77,241,86,93,2,85,158,14,217,58,131,51,233,206,253,45,29,16,228,137,197,78,60,146,124,219,152,144,0,82,136,110,43,225,137,135,125,122,203,136,251,99,58,32,237,35,197,1,105,107,70,27,58,193,242,23,170,246,192,112,15,102,255,232,189,214,98,246,212,151,248,91,68,23,37,185,101,31,130,101,175,189,204,123,83,63,204,160,247,42,196,248,231,39,78,96,125,183,232,237,133,151,199,85,239,119,223,126,113,222,37,185,190,243,127,88,248,23,34,9,171,108,185,163,49,83,58,142,53,64,143,209,17,254,105,212,205,134,212,183,226,1,188,167,1,147,203,140,12,134,243,201,196,132,115,217,221,150,190,78,173,209,240,246,16,171,50,57,87,12,144,252,110,52,128,22,117,92,195,64,197,104,66,31,243,238,180,154,148,65,42,250}, } ; static void test_decode_1277x3_impl(long long impl) { unsigned char *x = test_decode_1277x3_x; unsigned char *s = test_decode_1277x3_s; unsigned char *x2 = test_decode_1277x3_x2; unsigned char *s2 = test_decode_1277x3_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1277x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277x3(impl); printf("decode_1277x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277x3_implementation(impl),ntruprime_dispatch_decode_1277x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277x3; printf("decode_1277x3 selected implementation %s compiler %s\n",ntruprime_decode_1277x3_implementation(),ntruprime_decode_1277x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1277x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1277x3_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1277x3_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1277x3_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1277x3_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1277x3_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1277x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277x3")) return; storage_decode_1277x3_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1277x3_x = aligned(storage_decode_1277x3_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1277x3_s = callocplus(crypto_decode_STRBYTES); test_decode_1277x3_s = aligned(storage_decode_1277x3_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1277x3_x2 = callocplus(maxalloc); test_decode_1277x3_x2 = aligned(storage_decode_1277x3_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1277x3_s2 = callocplus(maxalloc); test_decode_1277x3_s2 = aligned(storage_decode_1277x3_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1277x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277x3();++impl) forked(test_decode_1277x3_impl,impl); ++test_decode_1277x3_x; ++test_decode_1277x3_s; ++test_decode_1277x3_x2; ++test_decode_1277x3_s2; } free(storage_decode_1277x3_s2); free(storage_decode_1277x3_x2); free(storage_decode_1277x3_s); free(storage_decode_1277x3_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1277x7879.c0000644000000000000000000017170714705505543022504 0ustar rootroot/* ----- decode/1277x7879, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1277x7879_checksums[] = { "ef434ea80eacf64891b1b1669b5890e42744786121d3f9553adfd77f99964487", "65e3512604821bd72c2c8ebf3dddde91ce916265e81b1d9e24d6b96c0f9ed4a1", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1277x7879_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1277x7879_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1277x7879_ITEMBYTES static void *storage_decode_1277x7879_x; static unsigned char *test_decode_1277x7879_x; static void *storage_decode_1277x7879_s; static unsigned char *test_decode_1277x7879_s; static void *storage_decode_1277x7879_x2; static unsigned char *test_decode_1277x7879_x2; static void *storage_decode_1277x7879_s2; static unsigned char *test_decode_1277x7879_s2; #define precomputed_decode_1277x7879_NUM 4 static const int16_t precomputed_decode_1277x7879_x[precomputed_decode_1277x7879_NUM][crypto_decode_ITEMS] = { {-3183,-554,-1740,33,2706,957,-3539,-3758,1720,-3170,317,695,-3682,-3092,-645,786,3488,2118,1950,-799,-3563,2272,3750,-826,-1004,-3863,-3624,409,2872,-3815,3037,3242,-197,-3628,-2389,33,1590,-1093,1964,835,-1412,2077,-999,-2335,-3137,-1698,-349,3001,858,1976,-1363,-190,-2915,-2738,-2247,1710,1131,-3622,-3255,519,1468,-1503,-1561,-2055,3132,-2454,1158,1202,-835,2902,-358,137,2712,-1058,3092,2584,-1307,-1368,1801,-921,2282,-332,-2919,-3887,2790,-115,-3358,591,2778,2291,546,2294,-1834,554,933,-102,-2180,1003,-430,-248,-2499,-819,-2237,3560,-3123,-537,159,-1543,3637,3918,333,-2975,-3345,-1264,3316,3757,1928,-293,3897,1267,-1812,-1662,3103,949,-1443,-3577,-3780,3030,134,72,-1776,1056,2256,-3913,-2121,-1012,-751,1473,-2765,-3040,2708,2301,3619,-364,2993,-3291,553,-1329,3627,2870,602,1151,1353,-1555,-3272,136,-118,151,-1970,-563,2773,-691,-1067,-257,-199,-2906,1485,519,-1504,-295,2854,3627,489,2776,2556,-1350,804,-433,-1776,-2764,-2724,3867,1909,3014,3555,898,997,2281,1525,664,1073,-944,965,-274,312,-2573,-2055,-1261,126,502,426,2760,2765,-3936,-262,-3767,-1163,1250,2482,3928,1825,3097,-2052,660,3087,3119,2003,1432,-1781,164,343,-1315,-1226,-3714,2173,764,-221,-80,-3607,-697,-695,-1116,1929,2955,1511,2073,-1315,1007,1936,146,-1373,372,1132,2121,1859,-2409,-3385,-3169,1274,2762,2842,1874,3699,1240,-1961,-952,-2689,-1775,3137,978,-2620,-1487,3539,2691,-939,637,-1035,3183,1564,60,-1574,1563,404,-3737,1555,-3913,-701,139,2654,1448,-3505,3170,541,-2239,-2451,-1001,-3072,638,2219,1730,-1015,1783,-2139,3776,-1192,-3838,2294,-2187,-2396,3437,1420,2595,-3802,-169,-1411,2982,-3581,-699,-2966,-292,257,1701,1622,-1874,532,-2342,2329,867,-3908,-1265,-3650,-2991,-2278,2705,-3240,1175,-2958,-654,1669,-321,-852,516,2220,2657,-2926,717,-1858,1551,118,1104,-50,-477,-946,-3194,1177,-2232,3769,-3749,-954,3474,277,-1512,-328,3084,1635,1560,-51,1869,3075,-1862,3381,-673,231,2053,-3872,2676,1933,2358,-2317,-1940,877,2489,-2829,-2575,3807,918,-2321,-3770,2894,3777,-1065,-1604,1954,-893,-1900,3932,1497,-1010,-249,-2928,3621,2125,-2188,1555,-3147,141,-489,-2721,-2692,1935,1610,-435,-2451,-2564,1625,-860,-114,-1372,-1368,-1337,-1236,-12,2810,1005,-845,-1862,1925,795,3634,-869,-603,796,-1580,1057,3777,-27,647,-519,-1123,1791,-2250,-3623,-1383,-3748,3083,-633,-2059,-3321,2772,1159,3787,-3054,2333,3748,-2144,179,3272,2748,1507,-2064,1268,2787,373,-2220,1219,2395,3322,-3444,1704,-1782,-189,394,3556,2918,-3149,-2929,-3130,3883,-2677,-1907,350,781,1649,3172,-1444,-2044,-2079,-2669,2263,2712,-617,-1948,-3656,2850,-3110,-3263,-2748,1067,154,72,-3744,-2318,-1558,1100,-1598,-3566,480,2183,3469,-32,-1133,3546,3707,3695,3687,1782,507,3043,-3706,2870,-2703,3742,1077,1964,1746,-3152,-673,563,-2261,244,-1853,2265,2151,1002,616,3724,-1659,1913,1656,3580,-950,919,-2304,-2452,-1590,-2224,2545,348,-2958,-508,1601,2575,845,-3810,-330,1022,510,-3550,185,-3604,-1692,-1804,-944,-2749,173,-1282,3855,1872,-663,-82,-2058,3136,-3700,-3839,-2669,-2691,-3369,2596,2737,-354,-2098,-947,-852,-57,3837,-3223,-3062,-1975,-155,-1567,-2207,3868,1547,-106,3617,1623,2028,3823,582,-3140,1039,1710,2277,-1421,-1020,2814,3274,-3401,-1200,475,-218,690,3755,2878,-2526,-3045,-2705,2372,-3381,-31,2746,3804,-3000,-2239,925,-1181,-840,-3476,-498,3197,1467,3430,-3135,2578,-3766,-2214,-1769,-3475,-3229,652,580,2308,-1843,827,-3371,-1964,1832,899,2369,3270,-375,-1229,1931,-1932,172,1286,3055,-3884,-3408,1480,-60,-66,402,1211,-3226,3752,-419,-2620,2467,-3029,96,-2842,-195,259,17,3644,-1542,1987,2299,1123,1279,177,1619,2582,482,-601,1003,2570,-3829,-515,-373,178,2140,2668,-3441,-1175,1461,1957,-147,-1873,3700,-1241,292,616,-3215,3519,-2070,1990,1712,1633,-1899,2298,3589,-3052,2511,-1953,-5,-3217,-2443,756,1936,2563,1233,-2296,-2033,1129,942,2242,418,-448,-3124,2710,216,-2552,-1646,2444,-1100,-3378,-1676,2131,251,3839,-302,-584,2593,-3923,-1504,1019,-3137,2147,116,683,-2640,982,2679,-3333,-3506,1733,478,3234,-3136,1210,1991,-3588,-1902,-909,-2495,905,-187,2304,-73,3151,-3172,-3646,-1251,1584,3514,93,3490,-3725,1237,239,3715,-2925,3848,1650,1095,2677,2752,1925,2117,-2806,-816,-726,1017,-2066,-1628,-3010,-1212,-2476,-2505,2320,1761,-2523,436,-2247,-2896,-47,1577,3357,697,2268,295,1066,-1057,-1628,-317,-399,595,-91,2834,1918,3633,-1005,-290,1916,-2858,2906,-452,-2798,-2014,-1705,2087,-3664,1899,-1940,-2432,185,-3203,1553,2053,3006,1920,-2976,-2898,-589,-546,3260,-3247,-1563,-1987,-45,-3631,-1441,1229,2285,-285,2873,142,-1785,-1044,2206,1203,2763,-2800,2337,-1404,790,-2290,-3443,-217,-599,-1747,2243,-51,-211,-1698,2702,3506,-1310,2547,894,-464,2947,-1648,1998,-2632,625,1342,-2808,3271,-314,-1349,2898,-3084,-1416,2890,2237,-989,-280,-3763,3140,3355,2131,210,3341,618,1481,-2631,-1642,-319,-2111,2713,1231,-149,-3778,3432,-1545,2282,-299,-2941,-2371,-1302,1493,1183,916,3493,-1728,2117,3530,3533,-2271,1919,691,255,3714,-3126,-3011,3619,-1470,1129,3053,-72,3327,-1562,3747,1352,-293,2536,2805,-1562,1222,-3932,1541,2196,2072,354,-1937,-1023,2705,-3913,-1295,3894,-3303,-3074,-660,2258,-107,2599,2115,-844,-1802,-3462,1793,3264,-1635,-1579,-189,-3513,292,-413,114,-1502,914,-3539,-2326,-1835,3210,-1140,-1497,-408,586,3358,-2524,-1080,-1311,696,-2921,1151,-3911,-1111,1960,2051,2384,-40,-856,1616,-2900,659,-3324,-1219,2786,-3472,-3428,-1522,-722,-2210,-2058,-1632,3619,612,3456,-1719,-2762,3609,-3206,-2018,2997,1918,-2992,3563,2746,-3043,269,3114,-3518,-1129,2132,1003,-2778,-3144,3508,-852,3696,-2033,-3938,876,-3404,-1365,3292,1831,2874,3931,-494,-704,-3871,2200,-2582,-3839,872,779,-3577,1382,916,-2928,-2322,-3341,-3908,-1106,-1040,-2839,-2916,-461,3267,1904,2497,-1442,3689,-820,2725,-2025,3140,140,1420,-889,1279,1850,-3844,3729,1822,-1455,-2066,413,1581,-1210,2881,-2255,-1194,-3550,-3147,-3175,906,-663,-1471,3662,1395,1384,822,140,1753,-3686,1452,-2085,2269,3871,3605,266,277,3733,-2879,-2867,-3532,2162,2510,3154,-2239,2728,1897,-1751,-3198,-32,854,-3841,3520,3479,3004,-3563,-1273,1171,843,-2040,312,-642,1845,3396,-1313,-2963,3161,-887,-600,963,1329,-3259,-2753,-1747,3200,3494,-3488,2726,1501,-2856,2237,-1935,24,-387,1216,-1574,-1455,-3112,-1443,1122,-189,1633,-606,-357,-3419,221,2448,-1893,-3935,1967,-490,1549,-912,1470,-1777,-1984,-1333,2254,1879,3873,1311,-1680,3713,1387,-2254,3610,2546,1181,1729,3069,964,1177,129,-1847,3080,3320,-530,-519,2883,2587,-1103,2662,-2037,910,-1280,-2757,2489,770,-132,-2117,-2395,-1341,2930,2105,3766,-3644,514,3938,2207,-3150,2629,-3555,3126,-2689,-469,1964,3060,1245,-656,-1638,186,-3762,1092,2230,-3001,1004,2602,3765,58,1840,-3880,2382,545,-3775,-1659,234,-1191,-2094,1328,274,-669,-1507,368,1472,2036,2420,-762,-3574,-3624,2705,813,-179,2036,290,-3858,2287,786,-745,-3306,-665,-2699,2848,1027,-259,2983,-3227}, {-2999,1576,-721,-2218,855,891,1993,-3902,-466,-1007,-2828,1142,-727,-1880,-475,1268,1698,-398,502,578,-3391,1398,-3535,-2656,55,2781,3119,3319,2214,3434,2353,-900,941,-3166,-1098,-3933,2439,768,-3269,-3907,-2173,2098,757,2510,3491,1585,-958,3508,3352,3280,-412,-3705,2755,2695,1979,-865,532,1013,2389,2880,3081,-732,-1323,1836,2262,-1325,2508,3460,-2565,-182,1286,486,-2792,-1639,3279,-2017,-3767,-2681,1020,-2291,3593,1126,-1350,1908,1490,-2995,-608,3496,3515,-2967,-3102,-901,-2903,925,-2954,249,850,-527,735,2784,618,2844,-348,2600,3696,-809,3636,3427,210,-291,-1652,-1233,-413,-2719,3739,167,3005,-2862,482,-37,156,726,-3735,-3903,-1949,2689,-3896,-1600,-1676,3640,3805,-3088,1018,1826,-1945,2870,-2507,3838,-3775,3658,451,2870,-1864,1022,1204,-1186,-2332,756,-1541,-905,909,-3488,1999,3079,-2045,2273,-3156,2669,-603,-3295,-2547,1842,-197,2025,-585,-101,1710,740,2485,-3421,-2917,-2673,1346,-3779,-2157,-671,-532,-1350,-3741,-3434,3839,-1872,3278,-506,-1066,-1223,2,-2051,2228,-1261,1747,3170,-2838,-2080,963,-2239,-2707,3379,-2473,-3185,1635,518,2471,2792,-1872,3764,3381,-3152,2621,2918,3665,-2937,2467,-3270,-3298,-1385,2992,1656,3845,1344,2667,-815,3096,-3312,-1484,-457,-899,-3389,-3905,-2686,1573,-3502,3079,438,-1199,-1643,3104,-1525,-2153,-2197,-2964,3442,-2670,2912,-2808,-2417,-891,-3503,2355,2577,-2921,-1060,-2584,-3168,-459,-2573,1263,-149,-1315,-673,1123,-707,-1445,-3234,-2641,-2450,-3924,1727,-1669,127,-531,360,-1561,3424,985,-1355,2057,760,3868,-1734,3465,2706,-3163,389,-2090,-622,2235,-1261,-2062,2349,3520,1516,133,3364,-1594,1366,-3475,392,-1323,908,-1092,-394,3282,-3712,303,3769,1423,-3929,1502,1475,472,2092,490,-2030,93,3066,-2518,-3275,2382,589,1119,-618,-1852,-3369,-2207,2277,2729,1034,2291,3415,-1110,-2870,-2204,-1440,-3450,2065,3923,-2571,2130,3217,-3337,1067,1,-3671,642,-1890,1326,-1833,-3782,469,-2698,1286,-2501,-2577,1219,1045,656,-2425,60,-1823,-3918,3164,-468,874,-611,3795,3207,-78,3528,3249,-2332,-2763,2743,-2254,-2824,-2032,1158,1704,-2091,-1418,-1127,-2526,3682,3236,-266,-1535,-1909,2551,-62,-3173,-2353,-2859,-3573,-1028,969,-2904,-1217,2624,1514,-763,-2545,-1921,-1567,-2663,-2320,-3915,-3622,-941,-1488,1276,1407,-75,-14,1763,-2944,1959,1746,-2518,-1532,369,-2249,3618,-3083,2648,-2026,938,-1625,-318,-3901,2311,-1402,-3087,-3455,-2889,355,719,746,2042,751,3151,3472,-2880,2622,-2695,2159,-3704,507,278,1730,2830,266,1752,3678,3013,-3067,2628,2039,435,3105,574,-2789,-89,-2508,2368,1855,-2819,-1106,933,-309,-615,-3366,-1519,-2406,-2133,-1416,-1148,1360,3493,-1093,2447,-1596,-881,2430,-2617,-2154,3899,-497,-2759,2105,-2898,292,89,2386,2322,-2096,2299,-1380,1325,-1487,1183,-3371,2766,-1227,223,-1621,-899,3877,3858,-3245,3744,-3660,-1461,-266,3899,-3120,-3105,3559,806,-2135,3264,-813,1757,2779,-928,1563,-933,-1534,-2379,589,508,-259,2304,696,1756,2748,-1847,-2353,-1188,-176,-1611,-596,-2884,-710,-3167,-3214,213,3931,2769,1130,3833,2811,-81,-1520,-3501,1935,-1247,-3889,-1226,2986,3527,395,-1029,213,3362,3634,2135,-2474,502,-1030,699,3478,-626,1765,2897,-2325,3423,717,-1645,3532,2825,-1696,-1582,3668,1995,150,-2308,2557,-1563,-1134,156,3838,-2129,2185,-545,1019,-1962,-1441,-2460,3422,-709,2519,-2983,1987,-495,-504,1492,-3619,-3218,-2539,-3281,-917,2788,2987,-2667,1618,2131,-2278,-2794,-3685,3479,-3264,-1501,824,-515,1754,-1707,-578,1115,-3224,1267,953,3222,-466,1741,473,-695,1774,1174,-1179,-1854,-2018,-2343,1600,-1405,-184,-3035,-3040,-3709,3138,-2949,-1377,3551,-1422,1905,-383,561,2403,-2679,-315,3841,3868,-3179,3194,3633,-3097,-2605,3736,2486,677,2902,-1530,3552,-3863,-3666,3591,393,-1735,-1490,-3571,-2325,341,3320,-3854,345,2185,820,1589,-3344,-2314,3659,-282,-608,2149,-2310,-2484,3439,462,3224,-3781,2032,3731,-3013,2066,196,377,777,1091,2272,-3268,-588,361,3859,-57,-3661,662,333,-570,-2493,-333,-1605,-458,452,719,3231,-3847,-3700,-228,568,1613,97,2920,-2863,2006,-1191,-3299,-935,633,-2084,184,-512,-2128,3422,2539,-1710,-754,-3493,200,-1346,-2265,1267,-3697,1774,513,3762,1527,-1797,-2196,2669,-2543,1906,3549,960,3310,2246,821,2395,1016,1823,-2012,3526,-3202,-2296,-173,410,-1278,-2022,-914,3297,1153,277,-3776,317,2889,-2150,1558,-3865,-3072,-2305,-374,1080,3551,922,-217,-2893,463,2488,-1792,3862,-744,-3377,1441,-2171,-281,2584,-1385,1958,2271,-1338,-2101,3255,-2043,3073,-1479,2749,-2356,1062,1862,-2254,-457,368,1907,-2796,2889,106,523,2777,-2806,3468,-3293,-3432,-2408,2666,-3284,2985,1903,-3252,1870,2531,1789,-1992,162,2750,-1337,217,2440,2650,1722,3308,-579,2634,494,2137,3243,-256,-2766,-2958,1065,1907,1097,2186,3769,1590,-1283,-2799,-3182,-419,-537,1565,-3726,-3915,-2044,3468,3583,587,1420,387,2241,-3732,-1738,-1362,3478,2656,-1692,3836,-120,735,822,-3236,-252,-192,-929,-3895,-3913,3461,472,-1540,-3762,1283,1336,1789,2377,-821,-3579,-1715,-3097,-938,2324,3404,2694,-480,-3064,-1490,-2407,-3747,-1537,-2220,-1011,2123,-391,-2480,-1498,218,2361,1570,-3280,2262,-542,-1949,2779,-2525,1386,-2051,-3745,-1149,-2750,3105,-3038,-2086,3755,-3649,-2010,3879,-505,-3106,1986,-1867,-3664,1395,1040,-3758,-629,1920,-875,-211,-3288,2825,-2798,2712,421,2238,-3059,1939,-191,-1489,1106,1060,745,3013,-104,-3120,1259,-3342,-3395,-2723,1138,3262,-2654,-2469,-1155,-562,2799,-2636,3841,517,318,-139,1110,-1274,-888,124,-875,-1559,-3291,1681,2288,-1388,3222,1258,-3284,-3919,-3806,1193,-1515,3656,2067,-2808,-645,-272,-1848,-2884,-366,3483,1748,-1202,403,-2557,-3087,805,-1326,-3322,3070,-3150,-1490,651,-1033,-1066,2140,-3469,3157,3047,1459,2507,2718,1514,1785,2977,447,-488,254,-3290,105,-1413,1994,-3196,-3318,123,-2003,693,-3234,3887,3820,1221,-2170,-3784,-3655,-963,-1155,-532,-794,-1850,2696,418,1132,2789,-2245,-3309,3572,2907,2446,2204,2736,-1654,651,-2918,-1743,294,809,-2449,2210,1503,1039,-133,2190,2801,1993,100,1465,-2505,-56,-1452,2520,-3903,2219,-2510,-2201,159,-3732,1760,-64,-258,692,534,-529,-199,2367,-601,-3304,-801,1801,727,-1419,-1921,-3573,1579,708,-385,3177,-128,-3051,-2246,397,-3346,444,725,-2859,3380,-3611,-2518,-2502,2459,1077,618,-1446,99,-1165,438,-2760,-1579,-3834,-3398,1137,-371,556,2065,2178,1075,-2643,-2614,-2212,-1982,1434,1228,-3882,-2896,3825,2492,-1008,-2680,1966,2946,2904,-848,-2719,-80,150,1647,-446,832,-1953,884,3005,-1060,-1153,1652,2277,-1498,2413,-486,-1118,2795,-2483,912,2884,-1049,-3807,-3508,1051,3839,2775,-3652,2127,907,318,508,617,-1584,-3579,-2795,801,-1278,-2197,-918,-2290,1155,-1620,208,3476,1848,1084,2444,-518,1125,3131,-791,3835,3792,3073,-2612,3094,-3597,-1045,-2827,1674,745,3136,-1222,3618,-902,1784,-3114,2891,1580,-3791,3855,-2722,942,-427,-3401,365,2388,-190,1165,3090,-2458,777,2680,3334,-1512,3305,3749,1442,-2900,1888,617,3399,-304,869,3249,1635,3397,1443,3790,3014,1650,-505,-2943,-2800,1786,3313,281,1526,-3357,3051,1751,-3506,3747,2106}, {1603,1983,-1054,3054,-3083,-3016,1958,-2136,2578,1178,-2124,-3769,3350,613,-1919,-1456,3842,754,3853,-1837,-2503,-102,894,-2705,-898,2455,-999,-60,370,1229,2969,2150,-3904,3903,2944,-3615,-1008,-3635,-3507,-3752,2523,-2007,1591,-3718,-907,1981,-3326,340,-2381,-3709,-704,319,3858,2852,1764,-3261,-1165,-184,-3166,-3503,-3657,-463,733,3596,-3786,1640,879,-2679,890,-1265,3493,-1078,2228,1298,-715,2788,-901,3493,1737,-966,2011,-2442,3280,1885,-1037,-1476,-490,-2082,-2292,-3666,1074,880,2339,-3153,714,-3914,707,334,-1951,-1059,-471,-1825,-2253,2066,1464,-1435,-2713,-3677,3765,754,-1021,-3930,2033,-2233,3896,-1329,3549,-540,3441,-1232,-1685,716,2662,-1252,2756,-2197,3761,636,603,-3841,-3179,2760,-1050,477,-1512,-3131,-2436,-1916,-1312,3592,3406,-3097,3157,-3022,-3147,-2149,2245,279,1481,-1976,890,-2373,3572,-3856,-1052,-2892,-1823,1865,1143,3698,-1813,324,-1789,-1761,-3611,-3808,2324,2301,-3498,-2856,2727,-2435,-1701,-1607,1731,2126,1401,-323,-827,3786,-2919,-3488,-1973,2643,410,-3873,-564,3658,-1308,2495,-298,635,-884,1567,-158,1902,-821,2394,2133,1405,985,684,1362,1386,3725,-3260,-211,-3846,2142,2626,-1485,1167,-1699,-3937,490,2838,-407,1471,-1889,3687,-3529,-3600,2261,-2078,84,-3244,2257,1081,2835,1491,-3857,794,1904,2522,-2964,3152,1280,-3206,-2503,156,149,-1402,-1533,105,1454,1532,-1721,-2118,-1955,-3490,2491,2077,-3547,1824,2635,-3930,1736,-1878,442,1366,2589,-2179,3067,1708,3088,2877,-1424,1399,3825,-654,-2914,-2222,3571,-1486,3675,3735,-3123,3692,976,160,585,932,804,-679,-2674,-426,1329,2988,-3639,-3744,2807,-1704,2115,-1216,1582,2993,-200,1487,1080,325,-2960,721,-3891,188,-1057,-3076,683,3424,2969,-1967,1618,2991,-1207,-1939,441,2747,289,3670,-740,3522,1776,-1926,-2785,564,2568,885,2039,-3485,-3080,-3935,754,-3101,-3912,-1908,-2642,1540,1301,-2941,-3374,-832,3735,-3335,2525,690,2174,3788,-2036,1416,-2013,-937,-3152,-858,-2549,-3643,3129,-6,-1421,769,1860,-2739,1559,3789,-593,-3286,1630,3546,2134,-694,2356,-864,-3082,2151,2153,-2365,1267,-239,696,29,2765,1335,-3076,-2943,610,1523,196,-1188,802,-1679,-2512,409,3398,-90,741,-46,1051,-126,10,-2847,-1885,-3903,-2806,-828,-3548,776,2672,1088,-2044,348,-1076,-926,-842,-2823,410,-1383,-1516,-3925,-1794,-3359,3356,1400,-1454,-2438,-3508,-3747,2618,-590,1434,1640,-2639,-2284,-2717,2178,-2386,988,-1987,-898,1046,-439,1073,5,-1559,492,-1333,-2072,-993,-3610,1217,-3911,3727,3262,3463,1920,-2255,2624,2972,-1686,-3773,810,-143,-2595,1397,2894,-1812,1737,788,3310,-2360,-2072,-2663,-359,-2135,-342,1687,-1172,1719,454,-2667,-3666,3334,-1826,-501,-1296,-953,1233,-408,-641,1633,-3739,-1890,-3726,-647,3695,-1811,3711,3526,2353,544,2670,2696,3548,-3619,3541,3691,-2568,-3061,613,2252,3485,3730,1574,-2780,-3313,2736,-1190,289,-2998,3550,-2477,-1195,-94,1181,-1125,-1353,1794,-3368,-3581,-1652,387,3548,-1949,2451,-539,-1093,-3421,467,-265,-246,-1611,2039,1176,1283,-3041,-1077,-3167,-1671,406,2856,1863,1612,2449,3472,3227,818,-255,1960,3148,-812,-3386,-3169,1089,-2812,2488,2208,860,2410,2766,-1582,-3332,197,-1368,1836,3594,-3206,393,3398,1322,1407,3544,2679,-334,-957,-173,2179,607,-1220,3856,3901,-1367,-2433,-2693,1214,59,-1866,808,-2437,-62,-2670,-2757,-2568,-1415,-1407,2212,-1716,-1300,-2592,-2690,3096,-9,-2413,3566,1066,-2956,-2681,-3450,-201,2825,3626,3148,-345,-726,-65,-3283,-1392,-3869,1580,-604,-469,1608,983,-3529,594,1751,163,-997,-3033,3052,2375,-2827,-3433,-2495,582,-2614,1722,-2167,-3456,-2920,3293,1001,3752,2088,-2975,2055,1885,3472,-2300,1207,-3471,470,522,-2866,-1002,3611,-2365,237,-2341,-223,1500,-152,-787,-1302,-491,3009,2560,2683,2340,-1578,3114,2064,2988,3912,1241,3376,470,127,-1566,2108,3563,3688,-2672,1552,3429,-3264,-303,-307,1829,-3241,2077,-1912,-2002,-3047,-2586,3736,3057,-3429,2179,-3137,-554,2461,-247,3260,2885,1632,3083,1961,-3499,-668,-964,1609,3043,-1272,-1460,3156,2385,2563,1672,-1824,-3853,-2839,-118,339,-1463,2979,-525,2982,3181,53,893,-1752,2457,-3337,-3362,-1499,3413,1229,-3365,-3765,1174,530,-2857,-2681,3894,3458,-193,3656,3374,-552,1116,1430,-3166,3765,-2689,1505,794,-3831,-1948,1404,2998,1509,-3446,-303,-932,-368,2274,3795,3159,2035,-384,2394,-2716,3377,377,3890,1622,-1626,3273,-3548,740,-2388,3343,-1881,-3414,-826,455,1171,-860,-371,1230,1510,-1871,2845,2556,-1121,3046,804,41,2701,-1648,2060,3295,-1845,2841,865,1068,-182,973,-624,2608,2176,-3886,3838,-3386,623,-2414,-1624,1425,3694,-487,-113,473,3086,-28,2213,973,1797,2142,-2114,3642,-1035,-2271,2074,2802,481,-2887,3611,3281,-2262,3892,2195,1246,-2451,929,3569,-1786,1383,-3641,3307,38,917,1838,2126,-1511,-1386,3625,3373,-3210,3002,-3076,54,-736,-56,-3541,982,-2511,693,-951,146,3370,-1731,-1014,-250,3285,-1423,2637,3788,2186,-3310,-298,2311,2611,-1967,3323,346,571,1371,531,1179,2099,-3762,-299,-3286,-2713,-3334,-1648,360,-3183,-461,1128,3369,1326,-1092,-655,-2609,-502,3423,1154,373,2245,-3079,3904,3149,-884,-3246,-585,-664,-2250,-178,-3149,-2598,1616,1633,1981,-2268,-1293,-3122,-1915,459,2187,3611,3191,-1063,803,-3865,3569,-1058,-2114,3183,3014,-1339,-289,-871,3044,62,2084,-1562,-492,2626,-581,-482,-3224,-2135,-1838,2421,-3907,-1222,-3855,278,-734,340,387,1092,-1434,2406,2513,-1789,-1718,-2784,-705,-3787,-441,-772,3199,3634,-3592,-2747,2672,-3370,586,459,1347,-3118,2888,-526,-3684,1363,-757,-1679,-2973,-3459,3781,-3208,2270,-1353,-1579,3058,-3008,-2687,-854,-1770,-1453,-3170,-522,-1713,3358,3064,1753,2608,1832,3909,2278,-3702,1025,-2555,2478,-1520,1056,-2163,1066,-1129,-3570,2946,-3827,815,-3288,-1115,-402,-2568,2831,-916,2915,-3106,404,-439,-3119,1689,3327,711,-1367,1375,-2576,3669,-2305,-335,2543,3187,3922,-3546,-1131,941,3196,-2321,-105,-3435,202,-937,-386,276,1740,1112,3283,-2452,3905,462,-812,2703,3823,2179,-2474,-3272,-2685,605,-1264,-1570,-1186,-3182,3284,-3568,-2189,501,1163,1242,-1475,-3487,-1657,-920,-3453,378,-2322,3515,-478,2734,-1396,-1751,717,-417,995,3215,-1726,-3742,-1878,-347,-1941,2349,-285,1687,-1751,27,-2631,-2552,-2293,-1092,1085,36,3368,171,-1612,-798,2990,-2803,-1859,-3649,1605,1908,3610,976,-2173,-649,-1947,3142,2881,2388,3871,2227,1946,-1350,1896,1081,-2440,1239,671,1305,376,-1685,-1282,3494,3030,1539,3494,3729,-631,1344,744,2496,1200,2983,-123,504,939,3091,2895,276,-2459,1472,724,-2601,585,2716,-255,2710,455,2426,1441,2011,2338,-3900,1401,2575,2769,-2454,-229,-1895,-2753,-2167,2469,-2572,-3457,2961,982,-2962,-1209,1556,-2792,-1163,-2396,3612,-3061,308,2707,-2471,2401,1176,-1317,-1326,1122,3170,-2288,1123,3166,-779,-3642,-847,-1599,2031,3868,-552,3495,3331,-1804,-1080,1711,-76,2711,-3653,-443,633,-3822,-2409,-2578,-3083,-1946,-3450,1541,487,-3741,1243,-2888,-3031,1400,3494,1050,3759,-59,-3415,-1163,3022,969,2497,-2529,101,-1581,-1270,-601,-1057,3559,-741,1440,1428,-1762,-2047,-51,1842,3576,-1428,3769,-1436,3021,421,-2210}, {2429,-2530,3067,627,-893,3514,-394,274,3624,-1910,1865,291,3595,-898,1453,-542,-235,-191,-1756,-3305,2467,-301,2465,-716,196,710,-1186,-1889,2551,-425,314,-960,-2683,-3304,-1818,2248,-1390,-737,1077,2320,-2782,-3071,3917,-549,3514,-511,430,-2715,3710,-3763,-1505,1020,-2766,2820,-3370,-653,1713,-1682,1296,1188,2920,-3904,503,-981,812,-2711,1953,-3034,-145,-721,-769,3519,1755,-3579,-992,2288,3051,-242,-170,-900,878,3671,-1101,-3525,696,-2998,1970,3104,-2278,-2702,2427,-3921,3917,117,-708,-3545,2165,-2458,-382,-3224,3283,2556,-3546,-1224,1643,-614,2941,-827,2666,-2433,1294,3649,-1831,3250,3717,1023,-2734,-1313,-2197,340,547,-3417,-2173,2322,-1853,54,3056,-959,3680,-3462,-1674,1683,3844,-875,2668,-3251,-623,-3541,750,-1346,-3925,-2115,-7,357,3062,-1446,3537,3098,-2030,2596,-276,-2494,2659,2338,3939,-1607,3544,2556,3774,-844,2456,2745,865,210,2943,-3249,-1716,-3603,-3930,-3048,-924,-3388,-2933,-839,3199,-3836,-1042,1483,-1703,-1745,2296,1985,-3169,3754,1994,2984,3655,-1141,-1175,385,833,-3822,-3695,-3388,2943,-3645,435,-1087,2174,-3772,-1821,336,3524,2906,1114,1563,-2353,2601,-503,756,1692,-2839,3909,-1747,-1910,-2367,-1615,1394,-2317,1412,29,-525,2949,-375,-2141,-1957,-3435,2829,-1537,3222,-1643,3141,-2236,3006,-2723,-2894,-2208,-2185,1601,-264,777,1011,1244,-2936,2066,2954,3781,192,-3452,-3426,-2435,-2759,3676,2800,1410,-2737,1002,1377,-2911,3012,1308,2820,3004,-2349,-834,-2017,-2805,-3504,-3313,2704,-3532,-2339,-927,-663,1892,2584,2249,465,608,1436,-1461,-2594,3929,-363,555,-3721,3862,-2191,942,-931,-3874,-808,-907,-775,1636,-3495,-2210,1262,-2513,2276,-3157,-2167,-1436,-3440,3736,-587,-1846,2470,-2701,-2913,3266,-1727,110,-1372,-3660,1480,-660,53,-915,-3817,-239,3111,591,-3731,751,1600,3551,-3913,3925,2125,-360,2668,3838,-2889,-1233,131,-953,-725,1247,2967,-3741,2623,1239,1963,-1942,2057,2030,1875,3327,-792,1349,-1171,-397,-3904,-1617,3562,-3048,2316,1586,65,968,3638,-3821,-3609,-2046,-2412,3838,779,-2536,-2965,-501,3836,-1738,-1938,2971,273,-2699,329,131,-1041,-824,-2358,-1243,213,1198,-2088,-931,3266,2826,62,2404,-1849,666,3007,1435,1632,-3706,1719,-2477,3235,-1917,-1086,-2428,-2877,-971,-2570,-2687,3853,418,-1797,-1922,-613,2049,-248,-794,798,-2698,252,1660,-2223,-1732,1866,-2579,1893,-1585,3770,2010,1279,3166,2241,1170,3777,644,-40,-3601,-2219,-197,-3927,-1174,572,-3421,-2484,-3741,-2139,1274,2148,759,-654,3191,-1213,-2910,1659,-1495,1939,-2861,-3661,1423,-441,319,2638,-2333,-1323,2650,-3733,217,-1165,-2476,1340,2294,3107,-3615,3472,-2965,2617,-2378,-3697,3647,3780,-1416,3002,3589,-2641,-1602,-329,1302,-321,3152,-3229,-2294,-3214,2658,2259,27,1188,-3410,-3922,-305,-1871,-2756,-3002,2499,-1962,1082,2825,-2328,-1106,-956,-2625,916,768,3854,-1368,-382,-2782,3003,3163,-1024,-3270,371,-3875,-1756,2761,2073,-2971,-2697,2699,-3179,1298,2543,80,-1470,1927,-1923,1285,760,-3324,1068,1951,2181,1335,763,3543,-649,2401,-525,-2762,3289,-2654,2564,119,-1796,-330,1250,-484,499,3839,3539,-3590,-3290,3919,-1308,1908,2509,-283,1747,2629,1144,3880,-3357,-3475,-2720,967,1349,-1011,1859,1931,3780,-86,3587,-425,-223,-1221,624,-3142,-354,-1636,-1724,1292,-1258,3070,-2240,1207,-3822,373,3083,2914,-3718,3345,-1261,-1153,3715,1063,-985,-1144,3372,1752,297,948,-2213,385,2592,-253,-644,2306,245,-1064,1459,644,-3464,-1448,3421,-777,-3634,-501,1905,2391,26,2376,3378,-2291,-2300,2998,-1878,-558,-3480,-1863,-1277,2406,1656,732,-2672,3225,3172,520,420,352,-1787,-3887,-2300,-1376,-425,-2259,3539,-388,2242,3524,3168,3713,-1973,-1982,-2515,-3754,3420,-2830,-3908,582,-104,-2395,-3768,2133,-2961,-846,3350,3053,866,-3760,-2336,2673,-1926,3822,2180,3136,-3081,-854,2877,-1332,-1696,3686,-3748,-995,2657,-2364,595,1034,-2899,279,2553,-3593,-565,-2998,1988,196,-1839,-1154,3582,-2134,-3699,-3938,-3386,-3915,-3230,-3266,-2024,-960,-2197,-3547,-2432,-2121,2906,-2154,-569,-2586,-374,1795,-1611,-971,-481,-2243,-1375,349,975,-3295,-466,-877,-3037,-2599,-261,2572,1225,-497,2880,1434,2432,-1989,-1946,1842,3733,2826,-2630,-3394,-2110,-1335,2928,1981,3910,3784,-3082,1908,-1937,-1253,-2424,3680,3098,-3277,-1279,-2705,-2342,-1472,-3831,-715,1090,-70,-3551,-3536,1636,-976,-2762,-1457,-3933,-851,1803,-3008,-2321,-2941,1063,-3705,2347,-3502,1649,-3515,-2950,-3681,3467,-1764,-222,1575,-3029,-1780,325,-303,-243,1116,717,-3244,2554,-220,2215,-1451,3023,2177,1024,-500,-3354,-477,2502,-269,-3102,722,-3474,-2433,-3423,3709,-3188,-852,-1693,3592,-2073,-3550,-493,974,-1703,-1686,-1086,2781,-2059,3914,-1605,2330,101,-2863,1866,1655,-722,-2123,3586,-3434,-3487,-1616,-3265,2380,1609,3873,3221,1575,3384,-2046,-750,-2361,-1978,2695,1746,298,3470,907,-1727,3368,-2502,-1881,-2326,-2018,475,710,-338,458,1720,1761,2631,3145,2911,3505,2039,-1105,-1369,-1989,-1004,-551,-3866,1165,-911,-2597,372,-3291,1112,3064,-2599,-507,3817,654,942,3271,2781,-3198,-1594,3237,550,-1654,2721,-1609,897,-1665,-3852,2157,3287,-3078,-457,447,-2846,2562,2904,2943,2720,-2627,-1119,3134,350,3686,2631,-1487,-3638,3005,2635,186,3891,-2765,-3685,706,3233,-1026,1302,-2067,-1404,-286,-710,-2269,-3729,3143,3650,466,3357,3178,-1760,1464,699,2905,2855,-1024,-3308,2251,2522,1935,967,2835,2685,-951,140,-2591,-1990,1151,-1300,158,463,2867,2044,-3619,3818,3531,827,1400,-2722,-2929,-1586,2863,3364,3463,-2899,3285,3176,-2293,1794,1883,-2243,-1117,1009,-2939,3102,2219,-990,-1787,1336,1175,-57,1239,1442,-3674,1858,2577,-1142,-2158,-266,2203,2597,-3179,2354,-929,-2706,-3337,1921,-3739,2467,2850,-3379,1000,64,3388,-3824,-3469,-856,95,1330,-1114,881,1959,-2141,850,2113,1155,-3013,2581,-2432,3071,-629,49,-744,606,-3906,134,-2518,-565,104,-3428,-441,-2719,1776,-3736,-838,-2594,-3495,-3744,-939,2747,2566,-1222,-96,-815,-3149,-39,-3143,2551,1165,275,-444,-3073,-1304,1515,-2244,1742,1485,3195,3781,-2645,-691,817,3788,-586,2755,-1714,1524,-1188,2355,2452,1196,2737,2140,460,3369,202,2955,3679,3560,3074,2080,588,-256,-3914,-479,-3243,3839,-120,-2157,416,-1449,3035,-1973,-1459,-66,3709,-1103,208,-2755,2841,1805,1438,92,-684,2396,-518,-2446,1060,1749,2513,1829,2581,-2919,896,1019,1892,-3595,-924,2521,2169,-1150,624,1666,-483,-2807,-3022,-2636,-3472,-2469,-1877,615,-3703,599,-1470,-3352,-3275,1973,-1494,-1425,-383,788,-807,3106,-37,-2065,-3469,-1320,-3252,-784,3884,3152,1725,2027,-106,1908,-2834,-2807,2575,871,1507,3708,91,1240,2621,3559,3596,-1542,-1874,125,2348,1157,-3766,3566,3270,-1325,-769,-368,-3495,-385,596,731,-3697,-1126,1361,2257,2530,-1280,-900,359,2056,1577,-2035,3190,104,1119,-1342,3798,1104,-3773,-1753,-3296,3342,-3283,2116,-3442,3381,1312,-1562,3120,3005,2122,-2569,-1979,-2639,-1927,2665,-621,1924,-733,189,1789,-289,1092,290,-2010,-1946,2696,3732,35,-3710,2425,-2824,-1963,-2134,-307,721,816,-2683,1785,-2844,-889,-93,3137,-775,-3174,2400,-68,-3379,-3268,177,-584,3265,-518,2309,958,-3587,757}, } ; static const unsigned char precomputed_decode_1277x7879_s[precomputed_decode_1277x7879_NUM][crypto_decode_STRBYTES] = { {67,248,51,144,213,183,67,196,226,137,214,46,106,213,209,27,98,79,221,151,141,183,232,95,139,46,31,189,255,2,91,111,95,114,170,141,235,61,25,10,95,78,88,226,41,111,202,104,186,50,83,194,151,103,211,43,57,48,18,248,187,242,206,137,250,163,60,38,239,127,113,22,130,119,20,84,213,34,114,236,46,190,104,68,217,214,163,159,23,25,180,108,212,50,179,95,129,44,226,204,240,30,243,149,182,3,134,30,47,183,12,246,183,155,199,90,29,109,118,1,82,200,42,195,38,143,238,215,214,71,72,141,105,56,99,236,112,179,107,25,151,76,135,234,204,2,106,218,125,184,107,2,220,177,72,236,67,198,1,232,8,151,102,181,155,63,150,10,39,34,235,183,41,95,234,91,229,147,212,75,177,124,183,1,73,163,92,222,117,121,185,37,31,178,117,74,22,253,16,250,122,114,133,118,17,188,123,226,114,230,232,251,96,240,240,165,83,208,223,79,122,136,128,23,185,129,75,0,114,197,29,113,238,233,174,222,254,170,102,52,39,83,131,162,252,7,184,148,88,179,48,247,179,193,167,35,14,47,215,63,51,207,0,51,216,48,150,71,24,220,47,130,253,89,172,53,168,82,78,191,213,173,252,114,166,61,74,71,209,164,98,247,61,142,62,47,65,186,183,203,25,160,31,63,223,27,254,135,198,120,156,32,240,88,226,16,102,228,189,122,13,250,41,203,17,214,104,243,86,14,32,165,107,23,69,199,191,15,254,89,91,70,208,156,233,76,206,245,28,68,21,217,100,99,99,50,0,82,241,207,102,195,34,114,100,72,223,35,63,90,148,223,162,0,209,11,177,87,173,192,83,196,207,74,112,80,19,56,79,154,88,39,145,137,168,134,72,124,253,54,125,89,169,84,45,65,98,172,177,220,48,41,141,125,161,192,218,58,7,52,193,79,211,172,28,111,110,60,46,237,61,4,117,0,84,145,190,83,29,1,33,132,241,65,29,28,68,12,203,128,193,180,25,187,216,147,38,159,198,104,225,252,134,125,52,112,139,103,126,80,209,133,133,255,208,220,126,182,87,180,171,106,126,52,185,72,9,220,234,71,214,226,86,216,24,225,41,20,5,212,97,235,28,232,249,234,200,120,216,155,155,117,65,194,250,179,92,76,47,236,202,230,165,30,148,88,236,149,180,12,3,24,76,204,82,56,205,127,230,128,66,57,247,148,128,124,196,213,133,86,104,182,189,28,119,127,151,189,3,193,14,157,171,6,22,15,43,172,219,26,1,189,181,193,244,50,33,34,164,58,125,157,253,230,26,205,13,69,194,32,169,56,162,209,206,234,99,202,229,181,220,146,53,175,119,128,163,192,10,216,22,255,39,101,234,166,4,182,145,248,93,3,23,131,152,99,42,209,143,245,184,27,2,5,121,115,85,187,131,202,134,220,15,97,174,59,19,184,128,128,206,175,71,56,86,167,17,161,104,128,130,242,234,193,13,184,231,123,72,171,238,235,197,16,11,96,9,157,14,166,65,4,168,105,134,78,80,236,206,112,29,123,84,175,66,164,44,214,111,249,67,222,233,192,0,221,156,220,121,121,61,201,97,155,6,83,212,45,186,196,190,97,104,208,190,108,46,125,81,203,140,42,50,104,244,5,149,27,12,178,185,188,98,164,236,244,201,234,36,111,174,11,3,74,79,79,24,99,157,157,120,114,194,60,197,9,93,219,95,215,246,95,32,6,254,12,146,122,123,24,99,78,206,83,83,65,46,185,232,237,255,128,252,82,91,124,127,237,12,61,21,77,37,201,179,225,242,165,238,176,92,65,78,218,154,247,36,243,146,58,27,156,79,39,183,106,167,211,12,72,15,12,120,221,43,196,90,139,172,169,154,46,2,83,96,90,138,5,87,6,22,210,216,209,15,139,246,147,1,168,222,154,26,66,32,65,24,113,184,46,61,36,93,234,10,206,231,184,206,13,9,236,209,2,148,86,141,155,211,241,129,17,248,222,69,75,1,175,171,44,32,211,218,168,245,105,193,237,213,181,198,134,213,24,3,196,189,237,163,11,204,165,252,185,101,35,141,148,201,242,252,174,73,155,243,19,221,106,179,227,40,131,223,211,148,194,3,193,16,208,102,223,253,148,74,58,253,202,148,239,70,247,153,33,35,27,66,224,155,172,89,82,248,123,107,237,115,131,53,161,70,17,114,58,7,254,113,117,166,113,153,62,139,68,200,181,92,255,7,2,67,140,12,113,40,204,240,42,45,176,60,32,155,137,71,61,41,231,6,241,217,207,144,234,208,184,59,236,205,167,252,81,20,245,57,38,176,100,7,97,149,44,177,74,127,57,214,60,49,102,212,151,202,196,234,106,111,188,150,146,133,1,32,99,207,217,85,27,103,56,75,24,184,87,24,96,118,130,59,186,171,55,240,179,37,248,99,10,45,57,55,127,72,195,11,100,186,119,147,96,166,33,254,96,202,22,181,237,244,141,145,242,236,106,49,125,159,186,143,30,18,75,151,192,19,212,222,133,56,253,232,25,9,109,245,209,244,154,121,121,50,106,150,152,5,80,158,85,201,30,27,133,113,122,21,207,41,172,123,23,207,234,167,202,54,146,37,239,26,131,33,190,117,0,191,1,101,85,199,142,146,75,15,253,161,168,144,196,252,129,177,144,56,38,89,226,82,244,102,56,10,14,75,196,230,191,98,209,190,195,86,167,185,219,11,107,170,92,83,4,173,164,111,99,68,50,176,137,69,198,136,245,130,217,63,221,234,117,35,167,112,46,77,46,252,28,113,112,122,63,95,50,133,215,196,107,118,12,74,224,228,103,81,101,124,205,69,39,137,38,178,32,205,34,38,63,250,16,0,197,236,226,17,219,137,238,211,117,47,252,82,12,58,190,154,189,233,75,145,64,206,251,25,140,165,222,205,175,194,207,122,146,98,130,242,175,78,92,218,211,201,122,129,73,8,5,37,32,213,104,41,55,117,225,228,142,230,104,237,218,144,138,6,164,52,214,198,25,181,15,202,149,196,110,248,245,137,110,223,37,172,52,69,23,16,206,200,95,192,68,224,112,50,13,28,250,169,2,24,102,173,25,210,104,59,78,26,63,1,226,87,104,105,160,242,100,175,229,74,77,164,71,155,46,221,21,145,229,40,138,179,155,172,40,219,70,194,138,27,74,80,26,160,204,106,232,8,99,189,136,203,2,123,51,225,45,185,172,127,27,66,227,47,184,4,10,55,28,200,35,44,117,102,88,249,131,215,27,69,251,80,183,28,154,26,158,240,232,17,250,207,240,237,111,102,119,126,233,206,172,138,64,252,176,27,197,196,200,235,77,180,253,216,192,143,196,171,231,19,21,155,127,223,229,121,113,184,164,200,25,62,20,146,2,84,248,116,125,104,251,95,168,3,135,32,132,12,106,160,109,181,55,198,215,149,68,75,164,126,175,179,99,201,125,96,155,13,59,151,220,44,16,83,63,119,81,64,66,138,51,73,81,82,70,24,26,2,138,24,60,181,163,134,205,165,41,165,15,221,81,179,9,245,150,28,146,3,26,205,221,130,19,105,16,85,23,80,96,178,243,83,122,50,168,236,240,127,163,181,199,236,208,96,243,226,55,1,131,153,217,204,215,255,27,74,203,14,68,160,227,61,130,147,14,113,93,94,21,224,88,8,33,144,50,209,40,152,70,96,87,112,144,80,120,139,76,79,144,88,197,46,11,64,134,106,208,49,66,156,193,13,83,153,113,195,238,80,157,22,99,196,17,234,23,138,69,94,96,236,188,178,47,171,179,17,190,48,89,135,40,43,44,175,112,162,227,165,31,4,42,147,197,142,132,137,85,63,195,217,140,31,160,82,177,180,124,165,227,232,109,33,88,202,0,1,60,189,243,41,93,119,159,188,66,40,108,109,219,187,150,146,53,25,94,238,165,76,92,118,122,249,49,34,243,184,135,145,248,225,13,51,1,12,173,73,214,116,18,148,23,94,107,253,209,230,242,28,203,81,184,152,114,53,119,18,222,91,164,139,235,152,227,200,31,180,229,156,170,199,28,112,228,85,82,24,73,68,142,201,36,60,101,91,3,56,253,53,126,137,58,182,218,17,198,75,157,88,225,98,81,210,60,163,59,179,239,229,233,131,140,89,137,149,97,102,13,84,81,147,137,212,228,5,130,74,71,170,117,55,114,43,147,144,74,204,52,178,13,168,64,79,157,84,222,155,243,43,25,171,40,117,198,254,229,205,193,59,6,224,79,163,49,77,13,94,13,141,45,135,189,143,207,154,3,49,180,137,66,2,204,155,240,10,6,137,115,17,56,89,224,125,85,249,116,9,65,38,239,155,236,106,162,220,238,22,95,209,2,95,30,40,73,39,176,212,28,189,173,50,226,217,135,116,161,11,243,215,210,28,98,76,204,240,177,143,103,125,138,229,173,46,112,134,195,150,5,163,115,145,14,180,2,92,100,43,58,134,216,84,131,41,139,183,33,246,74,106,23,1,116,218,127,96,23,90,231,39,181,46,196,146,19,20,219,88,112,12,207,189,253,62,184,76,137,185,178,2,119,68,1,33,209,100,202,48,210,121,250,34,186,199,110,147,176,238,225,254,12,144,245,84,174,229,132,78,72,1}, {185,12,97,244,76,193,239,137,189,140,6,224,25,151,41,15,152,204,156,30,211,164,233,64,90,247,136,177,100,129,237,116,243,1,195,195,223,253,126,219,185,209,111,101,18,59,134,90,32,2,173,47,12,171,172,168,223,106,109,231,93,170,97,85,51,92,192,162,217,179,40,18,95,136,64,46,146,62,111,52,171,12,62,253,5,147,144,234,178,248,215,64,12,201,93,131,1,71,87,86,134,140,20,51,233,106,129,175,245,163,109,92,34,186,196,193,83,150,119,46,78,232,200,84,2,224,96,52,84,54,197,109,192,42,185,162,255,0,31,88,21,172,130,118,30,14,232,121,212,203,133,75,152,210,66,220,191,115,164,121,67,9,178,18,140,120,66,157,194,95,28,56,5,81,82,235,218,79,85,183,39,159,208,214,125,146,5,11,209,13,89,194,98,131,162,116,106,209,216,171,101,236,87,83,244,29,93,186,223,121,154,148,17,135,215,15,80,194,29,67,58,174,224,124,77,168,106,43,37,164,59,159,217,83,124,19,5,84,28,117,98,99,138,172,137,255,212,118,194,121,243,35,160,182,114,71,116,186,14,177,38,164,197,203,137,8,125,48,140,221,29,229,223,62,228,187,41,6,138,54,95,0,96,87,172,207,216,13,69,255,140,239,217,14,248,210,125,178,1,196,206,60,170,102,86,192,184,72,203,249,100,35,64,147,11,59,181,217,129,120,81,87,61,143,188,86,199,249,236,56,8,144,92,119,21,213,30,150,97,106,188,217,184,71,172,104,167,69,37,243,120,48,92,196,110,70,217,22,123,116,142,243,234,176,250,220,61,75,183,72,111,104,237,173,192,72,118,128,231,28,95,235,54,185,21,19,228,72,151,38,186,221,71,250,185,129,87,18,37,234,32,162,40,113,251,232,183,111,108,1,138,160,191,147,169,24,208,236,51,246,253,142,181,237,148,92,205,93,140,102,53,120,26,62,164,17,152,33,176,117,40,110,165,168,127,88,109,13,252,225,74,66,217,233,57,134,116,243,171,173,68,225,76,70,66,189,73,198,18,174,105,243,223,37,108,149,235,149,60,203,69,174,135,8,203,87,182,234,211,62,171,83,168,209,69,252,239,229,34,211,79,28,230,105,46,132,123,129,11,177,89,235,43,95,129,71,201,147,65,0,246,215,211,24,48,122,13,150,137,180,85,157,20,191,83,156,171,194,91,240,40,227,185,220,93,46,42,149,81,117,92,237,237,177,142,187,33,43,179,178,0,235,155,209,43,91,232,239,175,164,80,106,52,240,28,29,106,221,35,79,246,102,121,134,210,37,88,192,46,92,95,185,58,34,45,194,115,217,147,111,94,8,82,36,44,253,183,175,246,32,255,202,214,7,47,216,140,174,84,211,205,29,59,184,69,109,211,169,165,229,171,255,225,236,240,18,224,202,139,181,37,232,109,187,99,189,77,170,55,33,80,132,161,160,240,15,58,148,228,101,71,125,233,113,68,100,106,142,215,133,126,162,131,210,222,236,83,118,18,12,117,197,121,10,77,61,29,158,155,124,158,133,19,240,237,8,78,59,35,220,200,113,198,55,208,10,187,201,128,225,134,146,68,123,201,170,51,229,104,168,234,244,192,19,37,188,252,231,12,79,55,119,93,119,164,41,213,21,16,18,26,255,1,20,35,171,210,205,100,233,233,215,183,233,108,154,127,119,7,187,117,23,48,178,74,146,105,206,102,128,14,138,97,233,144,130,173,252,44,241,3,173,87,47,255,250,145,117,106,117,237,133,164,207,47,191,114,230,89,157,92,163,231,70,249,255,33,204,100,235,36,10,124,24,174,67,124,170,159,219,87,129,7,105,18,126,54,132,163,246,86,26,227,112,219,174,27,240,221,41,172,61,206,176,214,64,134,89,155,72,117,140,3,229,40,245,230,231,231,114,11,214,140,24,53,51,202,195,125,227,48,135,164,63,185,43,13,251,208,217,142,253,160,198,57,252,18,151,28,137,246,85,114,168,20,124,251,207,59,185,110,244,56,98,25,206,128,230,190,244,34,113,60,27,163,179,178,215,1,118,244,206,255,104,226,132,47,76,104,25,109,16,140,109,65,224,240,201,124,251,207,240,241,50,205,49,109,71,38,214,99,113,232,61,127,52,146,160,175,176,170,176,34,155,166,19,100,222,160,133,97,218,96,51,124,207,183,191,247,9,51,193,60,214,137,234,88,121,68,132,12,46,52,171,84,201,212,233,27,106,217,253,101,35,163,16,99,233,68,222,103,91,206,35,64,55,12,91,212,55,180,246,147,221,169,114,25,153,62,254,216,11,220,174,120,142,191,245,224,22,94,191,190,106,255,91,56,232,63,226,103,121,102,169,124,202,73,165,40,50,206,234,199,241,88,196,9,43,42,162,78,208,153,209,19,241,202,52,83,90,4,166,61,103,221,172,210,123,108,14,55,109,225,228,88,180,228,40,138,154,38,213,150,176,104,103,201,69,130,13,134,166,208,102,213,88,65,72,131,141,231,91,167,202,153,239,227,215,15,55,243,239,167,128,69,67,35,191,244,10,100,9,187,228,127,229,11,81,2,78,134,71,254,100,109,71,32,104,20,213,128,183,137,246,55,162,90,164,227,222,25,59,3,55,199,143,251,58,167,161,149,58,45,141,141,209,172,45,83,155,180,178,122,179,113,50,176,138,7,253,41,57,59,114,180,154,116,217,104,119,213,221,178,146,3,146,237,164,83,57,182,187,1,55,174,193,80,60,170,69,215,158,50,7,248,212,238,187,17,185,53,174,180,40,169,213,6,229,132,100,174,254,87,212,79,32,84,62,94,12,29,75,188,9,166,203,190,76,184,116,195,13,100,46,91,12,111,20,72,31,117,201,71,26,93,81,193,228,20,145,47,121,78,211,128,207,249,85,24,244,186,215,188,58,54,69,0,176,71,221,155,66,219,100,211,62,219,245,30,179,103,168,226,186,79,183,235,182,152,44,28,51,10,38,30,22,35,70,87,172,103,148,135,184,109,137,191,246,127,82,64,166,82,78,237,207,95,175,116,32,84,217,218,161,207,78,189,225,132,206,178,193,145,16,141,249,134,34,179,49,46,184,38,167,62,223,67,152,29,7,37,198,218,119,101,201,59,210,205,148,228,182,65,111,254,34,52,229,110,40,118,46,171,50,80,250,1,158,5,121,183,111,40,128,60,129,139,4,111,45,5,33,216,33,226,46,127,104,71,34,3,51,112,6,192,142,132,40,209,111,129,227,191,102,213,141,39,128,153,30,143,228,225,201,81,178,185,137,5,194,45,43,216,251,77,197,20,36,28,184,78,65,239,132,232,145,0,132,94,254,62,236,107,202,192,92,208,65,70,249,51,50,144,87,239,228,107,245,70,39,198,251,173,21,100,215,122,117,78,198,40,200,200,0,203,216,92,232,174,1,66,202,185,51,219,118,195,216,156,22,21,43,247,138,170,139,81,213,251,155,117,205,165,89,211,134,7,247,157,189,207,161,38,143,1,19,255,131,139,164,115,67,159,90,18,213,187,158,127,174,115,97,234,143,177,160,141,183,204,103,136,33,55,51,92,36,236,141,69,192,172,61,164,28,203,164,177,10,88,184,200,210,164,83,72,38,53,192,225,8,27,49,155,209,21,166,224,46,99,6,115,216,204,173,120,175,148,112,190,185,193,86,119,36,3,158,217,134,235,163,251,237,87,1,137,226,98,237,137,181,188,162,120,48,174,87,241,242,147,160,113,208,243,224,241,240,143,54,26,57,122,26,174,85,114,158,59,61,112,44,6,251,166,223,180,26,108,84,209,103,27,241,97,221,41,235,144,211,189,33,119,235,159,38,84,153,34,104,191,57,92,8,37,100,236,162,37,23,249,205,72,196,21,98,253,57,233,116,190,170,136,147,36,170,255,116,56,196,177,153,164,253,197,6,189,226,95,255,132,141,152,227,195,126,140,229,57,15,3,178,157,5,255,182,149,79,91,85,176,59,84,161,51,193,105,84,117,160,181,199,199,193,241,152,125,34,21,225,104,51,118,134,142,101,143,191,246,208,74,131,79,250,143,79,81,68,210,63,69,168,19,241,113,160,213,166,142,155,233,33,252,223,179,150,95,253,197,172,153,251,38,21,220,222,127,178,82,63,13,92,75,143,235,85,149,222,93,1,220,225,105,230,135,179,200,203,57,129,156,231,43,99,33,118,93,226,227,39,114,74,25,115,58,192,35,7,209,12,65,182,254,3,129,85,73,148,252,149,97,11,180,57,139,15,202,157,222,218,203,41,142,135,5,155,231,140,70,105,110,52,200,220,248,192,29,72,22,92,146,79,170,94,183,47,142,9,146,30,108,120,163,97,125,90,113,96,242,252,123,9,156,76,217,93,215,4,30,124,10,84,214,157,176,47,12,25,73,42,6,185,37,7,213,174,18,228,194,59,154,172,28,126,155,22,184,233,94,17,110,246,97,38,171,135,133,87,191,9,15,91,149,133,178,115,56,46,44,139,135,175,241,55,15,176,236,127,246,153,160,151,200,111,37,195,170,234,0,123,212,30,16,172,142,89,138,94,240,67,32,243,60,168,201,167,251,194,183,94,74,243,145,47,197,54,196,208,2,29,181,240,180,18,218,148,223,235,241}, {20,13,60,197,213,250,150,218,32,73,61,119,241,94,9,140,120,84,106,212,71,82,31,110,55,194,205,100,37,98,59,38,17,204,191,14,195,151,13,125,18,95,101,167,184,197,166,114,224,172,145,246,102,143,81,153,195,123,241,109,38,231,137,245,102,187,70,142,123,141,3,19,10,181,201,203,22,141,55,131,237,16,115,75,239,39,0,79,166,216,154,111,132,151,156,19,189,201,132,70,218,52,137,248,147,31,116,132,43,84,101,32,122,49,121,231,113,193,25,143,87,173,130,36,73,136,109,36,236,217,101,100,9,244,147,45,112,60,112,114,55,87,139,90,138,54,254,50,25,21,47,88,220,23,40,235,248,207,109,58,31,140,116,225,29,193,23,75,150,53,42,235,130,101,189,62,188,207,35,199,145,60,40,88,75,0,170,100,181,143,203,245,253,255,60,73,25,109,216,145,229,222,16,70,193,191,219,60,4,93,180,230,255,132,92,211,58,119,8,220,31,195,219,212,248,157,120,158,112,235,125,5,62,219,244,133,46,52,213,86,23,18,250,56,234,211,53,246,199,2,158,93,93,219,173,46,70,222,236,218,160,177,7,3,211,141,73,203,231,13,180,112,41,6,20,183,25,113,136,223,29,174,171,0,192,93,61,223,193,114,183,205,91,118,29,122,121,100,51,182,63,66,73,42,27,204,163,71,232,47,179,60,92,125,110,226,83,217,66,10,30,25,227,98,83,15,68,172,119,126,191,209,228,44,34,186,66,16,106,139,126,187,147,157,106,16,28,212,28,241,18,108,134,155,231,242,146,13,119,91,202,44,173,142,44,246,52,56,236,200,95,45,86,83,130,232,155,30,230,41,155,193,159,187,160,204,81,199,119,193,168,218,123,26,129,125,73,88,2,92,190,8,180,220,136,119,224,109,82,71,157,55,225,91,89,184,61,195,188,252,128,126,239,22,240,186,202,207,149,253,201,109,10,94,135,161,45,220,108,61,181,191,123,127,65,153,232,113,153,217,95,129,73,14,90,248,65,242,148,163,111,146,131,108,110,147,120,123,224,107,39,121,227,190,249,58,47,215,240,36,243,205,22,216,121,141,60,33,148,163,26,215,254,190,53,144,250,160,228,55,200,71,139,241,230,69,47,163,116,233,37,71,254,152,255,49,187,225,155,77,114,99,157,72,133,12,185,31,41,92,238,219,200,81,44,197,21,240,119,9,116,10,74,219,107,104,177,164,91,19,101,163,81,250,20,30,22,136,126,127,100,178,124,12,228,50,14,3,181,40,74,188,81,210,68,156,191,183,45,130,32,207,180,161,4,48,244,85,116,210,243,187,38,188,161,33,199,31,95,119,85,137,24,78,42,46,113,150,237,77,174,65,9,207,142,64,150,36,165,85,18,237,93,116,0,8,123,239,240,93,203,36,248,194,243,127,18,201,118,156,164,93,145,31,0,132,84,4,24,181,42,163,165,17,157,178,35,19,132,17,107,188,86,20,218,198,12,95,43,20,116,94,245,56,214,241,242,207,252,251,129,132,231,229,222,7,27,16,88,43,125,67,132,181,30,1,45,201,245,68,102,189,198,107,84,131,57,124,133,140,61,223,194,109,105,66,83,12,115,190,240,6,254,202,0,92,106,63,103,96,86,191,85,31,248,10,237,0,242,120,249,90,8,110,128,237,236,91,32,66,156,106,143,40,110,79,78,143,173,55,190,132,113,14,32,99,17,22,89,36,164,93,63,232,148,83,206,110,211,147,175,76,184,41,29,30,240,137,56,136,236,67,100,105,151,1,240,45,148,161,237,227,58,84,28,89,60,66,4,220,216,168,10,194,21,158,8,69,156,251,103,120,130,87,107,192,154,7,19,164,127,173,8,174,104,128,5,63,175,238,49,126,14,181,207,185,209,146,241,248,80,183,111,221,204,37,81,222,40,63,11,248,124,49,100,124,78,17,240,224,221,160,60,230,31,41,237,144,12,141,4,152,57,18,224,182,159,116,130,46,73,69,80,117,232,95,45,95,211,143,21,193,192,224,142,38,159,172,170,91,178,242,59,36,205,123,172,124,115,68,162,92,231,200,48,48,129,59,15,249,17,252,109,67,170,198,224,200,126,223,12,248,219,122,95,67,65,176,38,231,110,31,70,221,186,82,101,170,31,229,29,168,43,166,99,252,198,124,183,233,8,220,126,148,130,228,202,82,131,205,181,144,243,79,34,130,111,208,217,200,190,109,121,110,58,193,230,184,101,0,119,254,75,62,223,136,28,208,125,125,183,171,62,10,129,49,35,155,132,150,60,119,118,235,19,152,227,231,116,191,238,139,195,133,142,225,91,138,77,64,171,217,24,162,8,39,218,232,91,175,238,79,172,208,52,94,104,188,157,161,194,166,195,249,98,204,140,86,31,226,187,57,85,147,28,166,54,54,38,81,250,217,52,13,156,182,62,210,89,245,252,96,183,253,177,3,163,44,188,78,195,22,254,127,100,40,200,183,69,224,190,255,156,111,126,215,73,197,135,77,145,247,109,59,186,168,33,174,142,229,201,8,34,4,92,144,39,86,229,194,156,107,136,89,15,157,241,138,102,134,253,12,96,170,131,177,181,253,161,49,128,182,217,68,165,54,200,63,51,217,253,141,77,238,229,40,243,108,245,74,54,106,214,200,122,56,143,162,98,203,22,14,169,113,142,141,176,136,43,172,99,194,192,213,207,154,26,151,225,10,113,47,232,191,93,153,41,4,181,188,226,197,92,81,84,36,196,192,243,130,76,124,172,183,203,241,185,238,232,209,238,49,248,0,239,45,218,180,123,143,124,14,239,235,40,214,250,185,241,233,88,137,60,151,4,83,61,127,3,19,68,255,205,9,104,72,104,78,119,171,100,221,168,29,26,156,48,47,103,36,83,245,202,33,149,129,228,244,60,122,73,242,249,232,225,28,75,137,15,70,71,189,83,28,238,49,132,103,18,172,50,98,252,9,45,97,43,13,25,11,154,244,79,160,24,72,233,217,146,104,219,63,231,99,111,133,233,166,135,251,140,240,171,161,140,70,86,60,80,156,188,56,189,144,3,118,121,187,33,237,165,183,214,226,220,83,110,120,162,231,249,224,170,146,244,236,148,67,97,237,110,189,231,110,140,184,225,108,221,39,234,211,83,82,190,135,198,203,207,82,131,28,30,100,202,242,184,122,137,104,247,172,237,21,226,154,199,118,126,222,188,238,217,33,1,41,99,34,20,3,198,131,170,89,24,221,143,155,136,196,47,126,20,197,25,155,121,206,78,192,167,201,168,171,189,157,178,14,89,121,5,37,247,239,10,155,26,18,175,155,151,156,5,232,173,5,207,253,234,235,219,62,194,94,104,133,98,87,9,234,237,24,250,34,173,119,167,248,61,162,31,80,184,164,225,127,52,98,36,10,66,26,132,170,9,25,138,102,24,166,95,142,201,183,163,187,244,199,6,100,178,92,198,166,234,56,24,240,102,86,104,115,136,139,84,30,53,25,110,11,179,145,179,2,37,21,5,58,2,32,3,155,55,185,136,133,9,190,47,214,88,249,150,184,209,46,32,81,233,200,229,90,33,91,157,9,232,51,51,26,109,31,95,123,87,223,28,253,66,234,148,158,80,221,7,150,74,61,159,165,15,6,69,234,146,209,37,180,98,9,219,149,94,180,67,231,201,175,168,53,248,160,32,126,139,147,59,71,184,1,64,84,5,200,168,87,94,144,117,12,198,108,247,238,210,211,34,43,74,76,127,24,83,121,45,58,218,133,144,66,84,93,124,69,176,133,134,204,29,136,42,188,187,90,212,212,77,158,81,8,151,128,221,141,24,28,154,120,184,118,113,183,200,152,99,82,219,248,55,21,187,17,13,188,171,11,43,62,130,169,77,40,254,184,214,130,168,66,133,103,103,121,69,205,34,36,170,102,67,83,147,86,189,95,99,189,223,217,212,233,194,153,186,197,51,28,18,54,184,64,70,240,231,55,157,222,61,115,104,47,57,8,101,135,213,214,19,32,163,41,100,191,53,11,209,7,60,190,13,134,73,160,195,98,82,239,64,217,238,21,122,118,90,43,241,108,10,149,31,49,98,118,168,214,13,114,1,108,191,184,165,96,124,1,245,129,19,8,121,130,147,197,90,248,122,144,163,16,74,41,138,51,111,149,226,172,175,206,129,179,108,42,252,14,94,181,180,111,6,198,254,195,216,154,231,38,21,106,134,239,221,35,238,253,51,57,201,126,198,59,244,153,71,18,251,235,8,207,197,18,221,194,210,88,135,2,52,243,125,219,64,198,218,140,168,185,42,82,55,175,44,143,185,148,131,228,21,249,29,14,247,14,50,255,15,4,83,245,82,228,50,17,231,224,63,194,51,102,161,133,87,143,229,94,161,135,52,25,236,7,61,107,177,41,39,226,1,89,34,176,167,73,73,156,97,85,233,184,177,120,35,15,241,174,12,177,94,201,158,36,187,190,184,181,39,175,123,196,192,87,182,13,192,214,120,232,184,143,111,159,114,104,168,118,173,18,231,119,2,61,74,248,120,55,38,88,29,226,105,149,141,123,128,28,104,85,129,78,36,211,242,90,178,79,247,38,166,123,190,237,34,241,199,24,58,94,159,177,70,92,233,13,198,143,34,14,32}, {39,126,184,12,113,19,204,142,198,12,214,162,85,183,179,123,244,167,93,65,0,121,101,148,6,252,79,128,240,144,82,54,133,92,182,219,3,255,253,142,65,95,226,173,217,61,137,56,177,70,91,58,166,156,147,16,139,110,228,119,0,80,188,176,35,181,131,228,80,240,208,173,22,94,8,174,37,147,18,107,103,250,232,208,150,51,234,211,16,190,220,66,152,191,229,106,23,37,178,3,15,247,6,106,121,212,248,61,123,40,237,86,143,82,22,171,3,186,15,119,76,211,217,191,21,22,207,95,142,118,19,239,47,124,159,208,86,230,248,207,238,73,212,138,68,211,95,33,102,177,146,199,41,191,138,123,20,248,2,54,191,172,247,225,64,15,223,109,166,30,24,74,178,181,243,125,19,230,58,206,87,77,29,229,186,102,172,128,8,228,151,35,69,63,108,115,18,242,178,43,107,253,18,12,175,140,6,74,13,129,19,85,152,166,233,5,167,48,231,87,90,129,92,149,184,79,8,175,241,245,144,56,78,251,19,167,57,230,97,232,70,46,236,169,176,203,93,195,174,174,36,227,68,78,67,151,169,47,85,177,144,172,25,67,47,30,147,80,87,168,87,93,88,230,100,79,152,143,252,69,53,189,132,10,4,71,69,69,81,181,30,108,92,111,235,118,184,79,195,54,130,12,172,7,163,27,44,140,100,94,161,11,66,173,132,127,247,251,166,182,186,162,98,19,7,254,120,61,136,40,228,95,151,90,92,90,12,114,152,88,180,233,28,164,193,228,203,18,175,116,88,220,11,67,237,213,196,3,17,118,26,3,252,172,102,156,227,85,157,30,71,203,16,154,42,125,140,34,164,120,38,31,16,54,238,156,131,66,148,30,109,93,107,37,147,217,31,59,96,130,169,7,113,179,199,161,244,205,23,150,83,229,145,214,144,140,178,224,203,99,26,239,200,42,189,215,107,107,189,23,241,185,196,210,90,202,242,127,102,95,15,239,254,103,14,226,237,1,228,214,151,7,198,182,80,112,24,160,57,199,206,135,223,221,150,144,80,175,131,49,41,252,18,52,55,30,243,31,102,131,102,42,87,11,231,12,157,119,0,48,191,63,239,114,72,13,190,173,254,170,245,199,145,69,130,158,21,5,236,247,254,54,72,39,208,239,110,121,150,194,187,136,244,119,220,16,235,159,119,71,139,69,184,20,108,2,29,50,158,39,116,150,54,69,69,142,31,153,221,247,206,235,254,115,132,43,129,18,231,186,104,253,40,163,206,183,232,27,246,202,105,214,184,24,168,205,66,87,252,148,86,211,94,227,58,238,240,236,224,176,217,178,93,104,145,0,9,183,36,252,44,122,55,18,108,78,109,153,250,223,205,62,98,217,53,181,167,17,56,124,182,66,179,85,106,27,106,70,165,61,214,4,64,130,143,151,165,220,212,166,215,77,244,47,156,242,212,72,188,40,170,7,143,7,118,83,255,15,241,78,95,67,210,112,126,136,51,175,179,0,37,222,169,183,234,151,15,242,212,22,156,173,117,231,41,135,2,190,63,241,21,116,113,241,230,30,82,178,169,46,120,55,27,219,124,30,183,31,209,228,236,235,48,45,134,39,25,151,76,180,233,182,55,107,64,220,226,243,68,143,206,127,203,45,42,29,167,213,202,227,78,17,181,136,156,11,179,110,196,138,89,23,179,212,22,156,122,246,196,243,128,2,23,178,162,101,242,157,148,154,48,57,201,116,12,79,247,105,118,64,35,4,28,2,112,53,65,162,108,15,107,8,167,153,203,248,215,147,20,51,233,201,113,160,78,54,18,54,110,101,172,134,115,57,3,82,120,96,127,16,36,123,152,36,243,112,173,203,141,182,23,230,229,242,211,37,73,184,52,108,35,159,57,96,244,211,137,73,171,180,72,70,62,6,30,178,27,195,143,152,208,121,243,183,177,130,99,113,148,249,29,253,12,174,247,92,94,196,78,13,88,206,220,121,27,93,217,159,6,99,143,248,120,1,20,161,163,78,183,227,67,48,97,195,196,199,58,57,146,118,7,227,133,159,8,91,200,151,105,124,227,213,43,99,0,198,182,227,13,215,57,6,48,67,193,113,107,82,169,35,138,55,199,210,248,109,216,179,219,190,128,154,66,226,127,142,57,50,91,75,228,120,148,84,203,31,75,248,22,153,204,79,31,144,15,49,219,242,223,113,175,204,109,2,152,131,77,255,23,8,74,76,172,76,99,114,93,196,241,231,64,148,4,241,209,119,96,41,203,120,80,120,99,248,199,100,92,34,105,76,125,203,60,241,205,129,217,7,148,182,154,39,185,199,110,131,230,223,17,203,250,128,130,119,64,172,79,168,4,127,6,186,32,126,164,191,81,115,10,221,116,191,111,163,186,226,18,68,170,179,213,42,237,189,182,4,194,194,10,176,188,213,158,58,189,153,208,209,151,114,155,177,72,245,135,245,188,248,206,62,140,88,210,15,140,186,15,65,75,154,236,122,126,47,65,136,185,156,4,35,55,136,0,100,10,98,198,5,164,197,208,242,113,76,15,26,9,123,64,109,234,159,101,148,63,67,28,42,160,236,62,113,253,230,115,214,179,9,14,142,27,157,183,56,172,136,68,162,124,143,147,14,221,232,206,239,10,40,52,208,145,158,155,191,147,0,148,76,9,233,99,224,48,207,100,38,23,111,35,69,92,42,233,58,215,210,188,102,247,206,156,253,166,44,133,76,94,104,236,207,90,92,97,247,25,12,66,218,115,241,163,204,52,82,112,253,135,236,102,85,174,231,10,129,200,162,236,86,137,151,153,37,211,8,156,76,235,18,141,187,148,109,40,127,146,28,111,98,43,218,23,37,53,54,193,100,173,72,36,77,50,209,38,94,184,64,148,248,37,232,47,160,131,130,27,96,6,73,252,243,42,68,135,245,112,163,254,152,213,24,219,171,3,181,210,156,75,115,211,228,119,120,128,223,222,102,173,61,4,235,157,138,146,184,38,230,179,252,97,106,155,120,119,30,201,73,249,194,201,192,173,5,251,131,240,183,227,181,33,82,26,152,76,234,136,36,251,99,45,184,177,154,198,93,167,192,163,196,141,207,207,157,122,179,172,25,142,151,123,246,28,26,21,23,120,8,196,119,43,208,184,145,108,121,79,60,181,98,151,124,140,75,213,91,11,234,106,5,91,20,135,18,164,210,102,67,153,104,131,130,99,224,165,46,170,110,61,59,60,95,212,154,51,182,12,30,122,73,69,209,157,201,217,66,114,82,22,32,39,164,114,14,91,85,71,38,32,180,119,128,6,208,172,255,125,71,187,251,67,180,116,115,225,38,231,165,232,104,51,51,33,53,26,62,180,159,220,155,197,250,16,113,242,193,243,137,69,76,2,229,146,87,71,171,78,80,154,62,20,142,149,249,232,24,200,186,58,135,222,9,216,17,60,215,143,23,199,173,229,76,179,242,68,26,203,85,151,19,232,132,79,60,15,67,86,254,114,47,147,41,130,240,206,167,180,98,60,224,128,156,231,244,234,3,70,105,1,173,32,70,150,151,212,146,48,128,230,55,83,153,179,254,22,214,119,180,150,50,8,49,212,42,27,77,76,122,56,222,132,56,110,33,209,1,135,84,217,32,96,53,212,113,240,178,9,121,34,202,96,144,101,227,126,139,242,3,245,31,106,112,115,194,219,30,5,64,27,79,130,13,1,97,4,41,126,87,135,50,185,160,21,39,65,174,76,167,166,68,147,57,253,67,208,78,224,123,203,20,17,159,214,97,239,80,160,191,129,33,115,18,6,12,237,230,38,125,177,170,244,38,50,146,15,173,136,95,127,97,174,197,221,114,198,186,166,43,244,7,159,4,81,128,103,237,112,180,240,128,211,157,97,141,254,233,74,224,172,177,247,115,239,203,197,85,122,94,152,106,153,11,252,36,136,123,114,236,80,90,9,29,95,79,186,63,66,212,203,238,172,156,84,152,219,142,124,63,97,226,252,47,148,70,35,172,18,160,184,229,162,195,206,62,28,233,197,65,93,10,144,247,199,243,174,202,196,152,90,53,55,115,154,43,192,13,190,204,173,101,221,81,14,254,64,158,59,232,140,14,182,172,195,148,237,210,56,229,65,178,45,80,177,34,104,66,222,194,151,231,92,232,191,50,182,227,60,226,113,40,240,136,117,239,198,90,243,23,139,90,186,128,190,59,95,105,202,159,84,128,58,13,112,39,147,7,194,99,66,35,74,25,107,164,35,20,34,29,147,98,255,77,101,48,178,18,145,139,251,134,30,101,112,51,222,134,149,49,183,254,252,217,76,36,209,94,7,129,49,48,230,228,14,52,197,41,174,89,137,15,123,112,105,99,1,250,129,220,170,141,137,100,89,36,230,17,152,107,255,90,30,17,11,244,18,65,132,118,106,180,20,27,70,184,118,57,220,227,39,123,132,215,51,14,27,235,131,22,3,36,70,192,81,48,192,206,250,172,249,9,245,211,25,91,188,132,148,136,63,226,64,186,38,15,222,214,20,127,82,179,177,133,148,164,83,239,113,219,31,15,79,159,151,240,235,96,99,43,114,131,180,130,255,172,41,100,180,203,86,198,17,128,35,242,215,176,54,122,172,246,196,105,188,238,28,181,78,204,181}, } ; static void test_decode_1277x7879_impl(long long impl) { unsigned char *x = test_decode_1277x7879_x; unsigned char *s = test_decode_1277x7879_s; unsigned char *x2 = test_decode_1277x7879_x2; unsigned char *s2 = test_decode_1277x7879_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1277x7879_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277x7879(impl); printf("decode_1277x7879 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277x7879_implementation(impl),ntruprime_dispatch_decode_1277x7879_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277x7879; printf("decode_1277x7879 selected implementation %s compiler %s\n",ntruprime_decode_1277x7879_implementation(),ntruprime_decode_1277x7879_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1277x7879_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1277x7879_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1277x7879_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1277x7879_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1277x7879_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1277x7879_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1277x7879(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277x7879")) return; storage_decode_1277x7879_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1277x7879_x = aligned(storage_decode_1277x7879_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1277x7879_s = callocplus(crypto_decode_STRBYTES); test_decode_1277x7879_s = aligned(storage_decode_1277x7879_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1277x7879_x2 = callocplus(maxalloc); test_decode_1277x7879_x2 = aligned(storage_decode_1277x7879_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1277x7879_s2 = callocplus(maxalloc); test_decode_1277x7879_s2 = aligned(storage_decode_1277x7879_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1277x7879 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277x7879();++impl) forked(test_decode_1277x7879_impl,impl); ++test_decode_1277x7879_x; ++test_decode_1277x7879_s; ++test_decode_1277x7879_x2; ++test_decode_1277x7879_s2; } free(storage_decode_1277x7879_s2); free(storage_decode_1277x7879_x2); free(storage_decode_1277x7879_s); free(storage_decode_1277x7879_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1277xint16.c0000644000000000000000000021555214705505543023024 0ustar rootroot/* ----- decode/1277xint16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1277xint16_checksums[] = { "d5348da2ff27262d66e755b86943578667e0356e52efc69e5f8ff7135cd8c5b2", "7076c2a55d93f7846a8a8a1fcadea82529d82a42e8bf6ef033d8b4974c8d8e7d", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1277xint16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1277xint16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1277xint16_ITEMBYTES static void *storage_decode_1277xint16_x; static unsigned char *test_decode_1277xint16_x; static void *storage_decode_1277xint16_s; static unsigned char *test_decode_1277xint16_s; static void *storage_decode_1277xint16_x2; static unsigned char *test_decode_1277xint16_x2; static void *storage_decode_1277xint16_s2; static unsigned char *test_decode_1277xint16_s2; #define precomputed_decode_1277xint16_NUM 4 static const uint16_t precomputed_decode_1277xint16_x[precomputed_decode_1277xint16_NUM][crypto_decode_ITEMS] = { {61881,37663,42761,36921,36945,56679,32896,15324,29500,40039,30645,17462,38727,21201,51869,11100,51219,38051,56668,46883,13381,50340,37135,52861,21427,7895,52658,11554,37135,35236,7769,40452,8773,44328,16906,41484,31974,21162,21270,28695,44802,44396,13240,42514,37358,4726,55270,21421,40110,31681,40614,39183,56966,13495,12368,53501,61435,23501,55104,61955,51979,37297,1956,58325,17995,63377,59022,21543,11928,25489,28603,56987,43577,37004,60573,244,57178,28966,19938,52121,30494,11796,15994,55342,57010,18478,39795,44524,17559,54824,12445,4180,27892,60798,48015,56250,7194,50618,14981,48461,8657,44225,34445,34253,41062,39236,39388,24271,31701,30203,6646,3616,26485,35125,51726,34516,54799,5172,17993,13789,40775,36230,62511,48976,22257,53969,46731,3657,58532,29764,2613,53212,14605,28074,17448,31897,39591,24288,4385,48210,56892,36480,34991,38325,849,44904,12384,31738,11573,24461,31036,49578,16766,21347,34645,49659,53964,37946,11438,30841,26347,13389,34925,2568,30918,57452,38095,65130,16364,20068,52864,15385,18524,60645,38361,16644,5132,64996,21493,59221,9646,449,25510,34384,50489,62504,33704,42336,21829,45265,19305,17322,23542,1176,44507,55212,43631,3640,43646,25073,28089,6236,54439,54089,16403,31870,63667,27623,2646,41997,9784,41257,41990,61447,52652,3440,38267,60228,51233,3759,39352,19250,19291,8675,5186,15840,2884,19681,42157,59660,15620,12143,11901,29899,65056,46265,26963,22890,11073,45957,60857,44678,13301,19798,19721,30411,4863,46483,11165,20449,23952,8837,40577,19623,55261,35803,38803,1443,7004,18445,36055,16353,46493,42626,14318,49521,40613,799,52619,48113,29523,40538,43013,19903,12023,5986,26066,25332,63368,17649,56871,50057,19065,30540,34857,21921,34721,42903,55339,64818,52653,55451,476,5927,2032,55659,18217,26529,60315,64548,17931,30992,33043,5954,6648,58760,51250,9088,26239,48097,7212,42180,35915,23204,57821,58690,38362,43822,56303,25300,5176,21445,15077,25719,12980,14008,22110,29639,42425,44542,22223,11437,4666,60710,218,5059,32698,62600,15694,40798,62122,34296,17843,32135,28035,58330,54281,50504,18452,38866,58224,41788,7843,13845,9900,30520,15295,42136,54290,21643,59779,35158,38341,2123,11015,3733,30638,60789,22165,9005,16662,35317,39712,60753,13491,32480,47672,56064,20689,27725,9467,40529,18532,20421,64780,45802,27372,719,51565,41961,36025,53472,27339,26711,34484,39045,29415,22410,17657,3366,6895,31761,3617,49884,43160,33684,45359,45820,5455,52691,49441,20430,41397,24552,4748,29387,39757,54914,52952,20511,61192,12504,16818,49125,5244,43211,56465,4750,34242,25792,23847,53887,1173,59869,16752,54896,61964,35966,64707,48094,16211,24322,52321,36698,44707,8249,2059,26277,3799,37352,42535,26549,19996,52617,64549,19208,51661,53320,62434,2004,10679,1401,9921,18917,14301,55016,16665,44218,10209,49590,5669,46128,41023,201,9028,33306,40782,45103,2329,50478,40800,12416,18410,48519,62229,9231,54135,11499,23259,8155,30697,9343,44391,57822,894,42945,54651,52561,8651,63529,59177,55117,46789,62502,55402,59323,40835,37893,52782,23647,7096,42332,13590,34987,58322,47174,7359,64487,31387,18409,34929,9338,57569,4560,26457,40672,53409,54208,3473,27668,8742,2193,32836,25136,1041,8166,10314,45158,60239,30764,60798,28618,27612,50644,13006,30126,36690,7181,54161,41473,33204,20883,22773,7938,8202,64245,25843,29699,44774,19460,52599,41161,4708,28488,37271,56706,20972,47343,42163,59627,31671,59323,51860,12142,17058,22006,64339,15342,16398,58839,58650,55246,48514,14450,37320,29301,51335,31615,23395,62362,57014,50976,59741,13168,25102,4908,28821,46998,56383,24802,57922,62137,5964,48931,55232,41321,21582,33877,59471,54442,51153,49236,11528,49610,1125,27982,38765,19460,4711,59941,31212,43253,34529,39691,37939,61789,21331,24726,12670,52833,29463,42191,58079,29031,52555,46838,16595,32746,33428,59941,58713,59134,36861,24613,12390,9382,60607,48270,30396,32828,58735,6274,36366,52963,7552,51566,20638,64225,13930,57005,11332,27174,19294,63869,62511,48458,65164,60635,28965,46309,2500,34549,50399,26749,12941,27869,3170,24709,38248,39601,41620,27059,19085,20786,35137,15196,22179,60168,13909,63535,33238,27912,17769,27759,51619,59314,51749,44824,50161,8181,51106,21070,13900,49141,62669,50320,55133,12961,50505,58667,61652,19622,56648,19638,30959,1028,17519,41561,12749,56133,8118,56297,29690,58562,15487,15931,31282,39844,33134,56674,35326,22308,38419,10369,2791,37501,1760,48477,30221,29553,36467,8019,60675,33416,49445,41152,5004,8286,45334,12187,35775,53167,32545,18804,12638,16465,7228,38486,26061,59506,36428,19148,2078,8089,1316,55955,36214,43267,60701,50140,41941,17782,30594,45578,22281,59095,12305,44631,24989,15281,63087,30110,25828,20042,18161,47,37326,37367,28381,46096,40954,63092,34503,64978,63361,63037,41449,11223,62439,45745,65434,56941,30736,15967,36972,44776,14366,4081,50195,51634,63662,14673,56210,32996,61937,20399,27010,52607,52730,14171,31276,18508,7229,28303,36629,34795,18935,4223,41439,11556,1152,57641,33790,51840,14280,53620,24225,24892,61942,57583,20693,24340,56930,51566,33593,47153,13125,18420,15607,19454,59434,1835,51161,23753,59147,45137,41820,22256,23910,21561,20510,23620,17386,33752,12975,34106,8001,33804,64506,32083,50136,40730,49334,29270,8039,10452,25040,52903,31208,43807,2333,49969,5278,28028,45916,43202,4711,29721,30470,29789,41475,41553,61759,38697,56664,2236,52602,37010,33569,63221,42749,59617,46932,15716,13174,25034,6533,9812,30544,24890,3686,9696,54981,27558,10818,7041,14066,6359,2106,3249,26490,61212,59633,5866,30702,45053,37800,58057,60315,11108,46325,448,54950,39067,12711,16382,20597,3220,48626,58703,15245,37169,53768,26864,46515,23983,62287,9079,18792,42704,4568,42674,13691,18306,51013,29466,39838,46037,15050,15322,35822,36130,31362,30342,42511,11309,13660,25622,60154,28182,58658,39681,12676,56596,32185,49030,36415,48501,58500,6567,32436,13674,56107,58987,8431,52108,23256,16948,37488,13548,42720,37541,51702,28967,15141,18231,42566,838,29330,31279,6453,65398,56932,3272,25969,64383,15042,19145,5736,64043,38443,33462,59842,28919,21896,30973,21010,55819,56678,14010,54613,6667,16424,39674,25405,43547,32103,48132,45281,52472,14634,51157,1926,59922,33217,39328,57925,35324,23190,46822,36412,6113,40134,46203,10295,58043,10940,42672,16971,51107,31027,127,4341,10317,45625,8563,11726,63773,19279,59238,36574,35601,33999,21076,54854,45629,56688,60252,766,45376,40855,39566,64607,65010,15786,21007,13693,39518,16754,31913,14955,61379,58582,33738,21914,32161,63136,12047,34266,64388,24515,16310,40779,42457,55273,991,64011,61064,62121,231,47035,2347,12918,56665,50058,16071,24838,41999,3197,25737,21357,22540,27933,29033,12095,35230,57916,39627,62751,18872,53764,17663,60984,2134,7071,53273,43469,3837,61860,54629,39684,9553,41726,3092,2890,11502,31238,5089,49416,13089,15854,2593,19138,17904,20797,14131,6066,43201,1601,17599,38170,57154,57066,24847,58004,57580,50032,598,36317,7694,25234,60521,21760,19687,43295,24695,50101,54657,62646,41914,25794,64649,27640,32616,62052,58462,55504,35397,19864,5786,30027,13594,14368,30471,59135,5189,1140,23935,26220,11364,3979,50153,1175,42706,34651,20341,4601,55556,28655,52203,4534,17349,62535,43738,40459,52245,45047,28572,11517,40824,18201,37099,4789,15051,48100,64815,47691,9791,27804,42986,12714,41858,11388,32649,19941,12290,7291,61956,59281,34796,60272,21459,955,46067,56909,61584,48219,6652,23560,29118,18109,40630,24534,32055,1848,20756,1172,47134,50546,36847,9398,60967,49035,30270,10036,9095,6854,32763,888,56641,41840,63649,57768,35266,16441,400,25024,49123,16820,19525,31610,34462,34923,29086,53397,22229,32769}, {19936,1047,10869,23899,4084,27966,38459,33067,4753,53327,7604,48629,47236,34207,36178,37483,49945,39496,64773,14760,47566,40533,27404,65407,31921,54846,24482,48865,9285,47081,63495,65360,13849,50067,62106,45266,41781,47549,49439,41892,22800,32009,15760,12344,60325,50632,19699,4263,4515,19710,2881,25138,48362,2663,45298,332,51222,4250,56667,37020,35151,25896,2340,7375,18761,53319,31609,5987,50021,43582,9708,31357,13289,18787,2576,11738,44146,25817,10204,57040,40804,12400,21111,54481,50817,52882,37425,18688,27723,35791,16767,12571,58729,13044,51324,61518,139,26764,36645,44796,37932,43266,41479,33839,18,37641,61969,39741,2530,48347,2939,55496,45163,11888,32754,47745,7501,35187,65238,22305,56317,55964,36981,4993,63871,3109,49469,51115,38374,11772,48045,3901,59799,4438,8902,56076,61554,14705,65165,35913,9480,48899,9837,45923,58215,51484,4934,27002,24509,12740,49942,14188,52635,58123,40200,6325,13480,22645,35316,15763,18633,60589,11756,16206,52893,53574,7461,27906,42350,27291,4267,23602,49922,41253,32357,55522,61318,61489,47397,51993,41977,63664,993,35484,24446,50169,30281,65282,20175,46863,20510,30636,3097,32189,56418,27443,5916,7435,61370,17228,57592,50207,52507,13519,40913,34312,32119,26305,26111,7174,24057,29144,42215,32643,20644,36875,20917,43139,52826,4664,45909,5520,50184,16075,26534,42518,17121,25865,47184,5583,57728,32261,55692,12822,59367,52993,19065,49890,11900,8519,60831,53000,47107,34244,53498,44625,23660,21700,29234,58199,30762,38064,63716,16304,18172,37605,51252,40480,45212,31208,19900,42638,23503,9209,61228,54707,620,20643,41897,33077,41405,51708,40724,16565,35231,44019,10044,59599,46295,13381,38665,38332,50765,58636,6553,61330,2581,3491,39711,58261,60734,55647,63693,52049,19579,37023,27217,48330,49257,58919,64330,56553,51439,33981,3540,51531,12617,23255,33768,18501,59617,59514,12982,62834,29977,41905,23596,37046,9066,57490,11789,8144,55315,36437,27141,5909,61182,60232,6305,10098,47864,7081,53340,49771,60484,44056,41052,49887,3570,50690,7953,52482,65454,35384,37030,28196,46943,36114,59628,65489,63679,54735,60627,29003,12814,9493,55620,54574,6274,8174,46099,40951,47845,29160,35901,10592,2283,61583,5263,64715,16237,25713,49646,22115,39816,5904,27020,26863,59100,48664,42616,18312,26423,43839,63690,792,52530,1213,47334,7615,49954,34890,1022,43437,38527,28744,39147,31096,38914,59413,38347,29945,40811,27647,40047,16692,59309,61615,15881,51512,15701,13090,42537,7210,40048,9290,40282,38925,20867,13794,16299,28036,47721,26830,50722,4280,6223,21203,50432,35226,18698,61460,30516,58720,17171,35019,6025,22079,43578,29558,40664,51126,15667,27580,24026,7198,25153,22601,54931,42432,5339,49666,5216,1931,22462,48271,54750,26502,34761,8264,6417,4860,17649,23815,59741,11731,55666,18630,48697,4009,14039,61891,39094,63553,43543,5716,36888,44594,18412,17253,131,41552,50932,5283,63318,40195,52075,48408,34799,37799,61399,39739,53790,8567,53394,51336,65362,1623,52931,27280,473,40656,28994,63752,12445,11153,46845,30481,64546,36905,33919,61928,28660,47413,12637,44351,27981,5185,61707,33,31907,64489,24680,45186,47707,53374,45652,39006,8829,51843,1173,46316,28493,12425,51407,22188,42154,32029,12940,23390,33027,29769,29203,55003,21463,9908,48852,52652,4977,3241,41352,38378,6307,31673,37442,53685,15330,14001,38926,7145,25530,47537,18823,40990,13097,18714,47211,45222,16807,23218,6089,3903,48710,11473,17362,64774,21181,15898,51820,18772,37296,58865,12783,31955,8902,63152,23276,17292,46142,56184,49806,10958,10683,32495,15654,3236,60973,18077,64069,48650,60891,6081,31302,65134,24861,63214,23955,47892,37852,23929,49702,27321,62463,8468,34560,52329,6221,63902,7878,58207,52352,25845,472,43120,31719,41370,54806,31297,22120,20445,20587,22402,58787,5966,24694,8359,45898,49589,17388,37176,51798,51140,42842,28322,10335,60676,36397,48449,60067,25490,64362,31361,65511,42823,47502,41501,65387,19407,46388,57179,22428,31000,63167,53377,6975,53952,34405,62138,11136,7504,17445,32398,24023,42330,19951,51603,14502,41270,60538,54133,11290,54160,48758,24830,16826,42908,6331,6413,8911,7003,20336,9460,9383,13699,39676,63008,7337,21294,15957,10826,13005,16621,2897,21022,64190,11941,11690,195,61167,32134,7830,49632,62952,34180,48597,32702,53459,7473,41390,52366,9165,55677,52799,37713,5181,17698,63396,5651,61768,45239,25995,17396,50873,33070,18852,53527,61247,61173,41519,63048,39522,38117,19086,34404,60520,14848,7109,15908,7497,38298,25654,39746,51094,27118,28303,52691,10302,19979,35814,57412,17389,37849,39978,65172,42621,12636,14981,63940,8324,4422,13609,10325,8786,14803,24743,28608,33195,10280,32889,27415,24105,23134,32448,5068,28936,48911,11318,7369,16678,20070,35214,33345,52344,56073,45036,10259,53942,12892,43727,24489,14648,2932,39554,40477,61284,10735,17965,39990,27444,8114,27558,23702,4565,36790,54397,60442,59469,34895,58463,26848,27034,32695,60351,4258,52198,31930,8230,41202,55493,15754,43802,21007,25502,7290,219,63389,62300,8312,5296,34977,26052,12992,53963,44882,26251,29952,51864,1703,33088,4454,562,16376,5113,55313,61724,18227,26414,18114,35354,51368,46910,27023,8761,36642,17864,29823,4409,45831,6478,24591,31323,13754,35066,55573,18202,61522,64962,40658,2063,30207,59795,20020,6327,52302,2342,16340,10730,23277,37743,33611,52584,5208,18921,52524,49833,46230,4447,5707,63932,26277,48119,55931,30763,52281,33558,9590,20496,22230,41225,6045,56628,41477,55414,53686,26933,44423,65054,14073,10185,42667,48966,1796,26652,3880,14021,6612,2425,29091,57055,5345,46888,33527,1452,21894,21798,1344,39907,64553,44511,38057,50658,2081,39583,51400,48845,6942,12280,42168,54214,58531,16823,22874,35045,63457,38303,24585,49181,63536,13826,867,22002,14039,16894,6273,7573,41329,55485,47405,38275,40627,29429,7695,28317,58603,55612,64551,32879,56248,58854,41740,8996,41816,19098,45926,42597,56659,1369,15436,15054,47435,23129,50198,43460,27156,26564,28771,53483,6913,24254,51431,4708,44418,60929,50985,35220,49826,62638,24281,22260,15433,23149,37942,48041,54088,56120,18489,38502,12016,40631,47618,39982,11693,6103,38547,42358,65320,31997,55641,57717,61962,11908,65446,26700,61565,4013,37112,3135,50947,9358,45792,51142,27158,40128,34952,38736,41795,32373,39903,33934,22626,27891,13837,7953,33198,3223,38008,52071,61834,14017,65366,2402,47137,8303,21864,48733,6954,52290,23762,39499,57540,52045,11188,26106,36961,1673,23300,19620,38377,39665,31743,51126,61971,21255,42547,53129,11346,9756,14982,31,4537,43346,55612,3263,23074,29256,63317,16695,1046,37840,31637,51207,28608,4126,14780,26299,15472,16201,7584,56691,35737,6473,13933,13796,49472,7224,38302,57483,51173,57594,30241,23104,17384,15268,47127,41426,34035,21234,39620,1211,7698,2706,44118,26499,37351,47145,61570,12568,56417,1850,1590,6875,59205,4674,55120,33343,44235,42546,45563,47584,51090,17357,57593,1142,54207,43864,21932,41003,34044,12111,50317,60218,43753,63956,14138,54649,11007,13366,40587,3692,22883,35520,27913,10124,19077,55229,55733,37147,40637,38889,25048,31149,35948,48594,57533,38658,31428,64429,8000,13193,49030,26160,58243,47213,64300,38149,48034,43525,35874,27023,57730,42872,30686,20661,11187,22477,7173,61517,24083,62492,20565,3831,61510,26374,4319,11972,30594,32049,21105,45864,47956,30298,53226,56570,8231,20259,65101,13164,45452,64548,54648,64729,24708,36391,38011,28527,17992,15994,37158,28579,44638,56560,5478,20865,46170,26544,56708,56729,11562,26829,65361,8298,20034,47730,6486,57226,40755,46191,20404,26297,32676,61129,59578,39385,62885,62367,24365,61429,60289,13083,16591,38579,5558,18849,13505,37015,16933,1334}, {34196,34530,7543,25672,3408,49153,63466,33716,1826,41848,19407,14819,11232,36614,12131,31278,48035,48132,4840,13801,10,26104,39459,50130,57738,25642,64678,27489,47087,42763,18336,38452,31830,8048,4367,18282,58449,62607,15538,60561,23147,3606,8879,3159,26435,15334,30473,13635,34510,19311,11835,54527,19777,53384,32873,30198,57864,48990,62438,63918,57757,23527,47400,51523,26307,57900,57866,53779,10369,3595,16679,35894,51783,46475,60541,59794,53201,36440,25743,18390,1245,43107,561,21324,24586,10275,570,56122,16780,8627,49163,33131,31887,64660,58173,58716,44681,30418,480,8920,64539,53624,17066,7837,22826,24798,17754,36215,21375,56187,64467,39151,45626,57391,47546,33760,1371,38650,19193,31944,17918,61523,18745,14582,40414,19924,45749,34873,892,5028,3872,58825,16626,49187,30768,51645,60041,42915,49217,21973,2470,49840,31205,41323,36714,54283,61049,6252,50949,38022,43160,30690,37393,27196,29793,64511,62880,29819,39613,55363,59054,50974,13174,8195,48967,34207,41313,3668,25211,34309,57421,29883,36805,20713,15254,10995,20515,61821,56144,42111,5561,20303,27364,20421,50631,61467,60948,57626,8683,8415,11301,62216,34943,34663,28356,21846,2560,59007,32569,59721,56634,47228,50962,15984,38780,22936,6583,21315,56281,18713,51976,24512,18236,16092,48597,22677,34651,65479,16718,65126,10615,9939,3387,35589,15717,35644,49533,15089,14226,44087,54415,44439,8496,10670,64283,20817,6572,44033,29920,59869,150,1629,46951,57103,34859,34099,54798,23149,6275,48030,30071,17108,51524,54331,39969,59887,14676,29739,8110,43003,35045,38203,53877,52740,60544,21327,54686,47592,62504,30569,11981,2276,38671,35137,21254,35112,11890,40386,39958,11897,60829,9427,29260,19696,25697,24140,3846,21593,11401,60203,50515,13530,16965,55159,19900,57757,21829,11700,26684,60678,37060,64257,41630,22446,42982,24900,47286,36407,26272,38658,34802,36288,7931,1196,6971,21675,47465,27696,58477,3012,61625,44212,47017,19012,39763,56042,10417,15448,29223,20853,53365,37887,46485,54903,41682,35048,923,27173,42142,34015,42759,54568,40444,45698,16395,4902,17679,3826,62475,38769,61335,47515,1500,1489,42240,55694,60055,46943,14099,40487,48289,42139,15353,41910,13258,65114,35407,14903,5084,41217,30119,2175,32716,15888,52223,54178,29347,60477,54929,2894,17524,4976,154,56490,52196,52427,49533,12416,28151,33902,19690,36414,50935,35645,56436,53413,9606,3515,2755,8016,33192,65123,11441,43798,49062,62924,56855,12667,11711,45402,4882,42834,29769,42947,5787,42386,9723,33160,9508,6800,15556,7843,22748,35695,31963,51009,39807,47153,51208,29072,51344,5176,16340,2021,53459,39165,21829,35506,7482,56970,24791,45606,40645,930,38763,13684,57628,63332,44714,32897,55711,48828,19169,10031,54529,1910,26383,10730,2390,59827,58305,46784,24331,51535,26520,14559,14926,56701,43276,51766,3520,11463,59239,788,63574,16889,28965,3042,59540,32875,37867,29017,841,10475,48896,7590,42120,40590,57189,30995,20643,51671,13256,46554,2860,64470,29691,35936,53008,14948,42615,18875,3722,5853,40974,24105,57617,34571,8254,26829,22417,23012,17368,34275,27677,32417,39125,53451,28166,50077,35573,5846,56363,26295,3545,30438,19173,29518,22292,4835,38460,24266,30079,12027,62464,35994,24918,20796,10224,63471,13134,46887,50902,12405,22369,47029,64282,24861,41266,38559,9073,33505,30556,19590,41741,52701,51782,16418,45704,49928,55532,53456,48574,30437,61509,41362,44740,50779,55617,14087,31852,43441,29146,32013,20111,36760,22246,63391,23338,39805,17436,61278,64444,39251,38276,25168,42998,29390,12989,44062,52032,35779,14897,3821,62423,38650,24822,54384,38557,7769,7443,37603,15429,29231,55520,21919,2956,19912,13660,34641,13234,63386,36139,852,43365,13947,49721,27526,60139,27081,1498,28941,33488,38499,28427,5009,10702,9987,51358,7087,64516,35595,51739,30141,20054,20274,32850,46419,28070,44868,19996,11291,788,2662,44939,63163,29111,36963,34177,43209,34541,44769,62140,43992,36173,47788,43699,27597,60153,43722,8070,48698,27690,52161,50686,29315,52179,36254,51391,56415,5186,47805,47332,41635,15775,43280,19926,52299,8426,7670,13497,13613,26794,20918,3579,38365,44470,11391,27935,36617,49184,54574,419,52041,58514,42012,33030,44146,10756,13372,7597,4029,34893,62620,48204,44658,21591,21299,88,38142,65501,1576,16536,5350,6150,28116,61402,29234,28134,61028,23828,41190,4125,34372,14398,53272,25263,13567,64876,60921,33149,60422,56376,40619,51320,36587,27098,38645,29725,19802,54220,24058,21170,33071,21636,33599,62119,23973,8226,56979,56032,10773,51563,15010,11348,53137,41315,6595,5084,55152,46583,17655,63762,38628,11691,36685,61793,23268,12638,3596,41166,8088,55018,62918,51479,41667,64483,31644,63654,17880,35440,2052,16176,45511,63357,13135,50579,61627,25008,36463,52224,46548,15567,52959,40771,24812,25315,50808,33518,36937,7395,2587,32156,3012,51622,13268,30463,37765,32955,35040,45424,26017,19838,53175,19986,56525,25479,12445,34832,47637,14287,56919,40606,21154,29647,9106,14473,11143,39838,29122,45488,14536,38229,46566,48902,31238,59891,21536,34957,17248,10570,59166,23467,43752,50664,36077,6407,4706,22161,2420,20365,55115,3188,22674,31938,59315,56451,14792,53405,26638,45013,16738,62008,48624,57907,40910,9947,36531,49208,15163,33068,27980,13514,58342,37207,52532,27119,26465,35189,42112,52593,29006,36577,15005,63630,18995,64072,52390,142,25112,65408,17358,48902,3370,59780,63203,52532,6048,9780,30749,46953,3025,14982,36752,24977,14756,1649,47228,26180,39709,27940,17338,14385,14667,56904,47014,33460,17163,33105,37108,9785,30201,40613,42385,2037,30271,8159,11877,38026,51660,38494,5231,18543,58244,38434,15448,13311,42091,39888,54416,27703,5370,34370,24333,45236,37233,26733,37117,20911,12194,41111,3518,28985,19895,5518,51110,30493,55680,49156,50559,30847,30487,46203,6989,35497,29910,28195,37845,37594,27582,62541,3795,2760,33724,5225,36310,5465,12671,46081,14674,5999,46681,13427,46560,41380,65009,53267,57384,44232,16472,52945,18455,46106,43823,26175,33167,41421,34551,15768,19518,28728,6248,7966,65497,3004,17778,17403,60142,25282,61265,48954,13229,29118,2152,54266,18244,2527,28231,44583,61167,55321,16257,27139,1534,20810,2929,64812,47166,64097,38645,28517,38153,51076,5816,7714,2005,40313,54749,26662,6965,61932,57733,19296,31230,6141,8928,26869,19924,18561,62018,44632,41260,22116,37682,30030,19621,2067,27897,20145,24002,27602,47703,5393,8669,18262,31524,27474,58644,64411,60064,58419,23971,58157,24715,54580,46911,24819,7066,20290,11993,10422,44703,31016,13375,4401,18988,45491,11844,2604,57627,3730,22229,34497,56752,30233,22428,36153,25550,18637,44066,60259,18326,25327,21781,47697,50196,65166,14545,31679,58823,3206,56402,40385,22207,60404,46304,58540,26802,39711,18872,29471,32805,54313,36523,10185,19196,28138,37434,21295,56804,61269,55772,59099,24728,53446,24977,35231,23235,60004,28885,7936,45220,15560,13155,56459,22286,23755,53583,61463,40542,33328,20650,27634,19863,919,63466,2419,45471,65022,5958,36543,24558,42568,32124,41440,914,1863,49569,12489,27632,48370,40115,49649,47707,54251,63047,33371,7821,15464,50823,26395,52825,54732,23820,14322,4789,61002,59409,727,44240,14188,61328,9937,33274,37477,6323,41111,35266,30138,45791,22300,8387,11439,55561,35533,34569,8083,33158,10959,3486,33286,29008,42698,29762,5821,16990,64692,59179,21672,60701,48690,24638,65162,6589,35721,36186,13291,49669,11410,36115,55140,7722,6694,58045,63361,32466,44408,24424,16837,63504,21760,14388,59564,32582,13911,64798,18027,63490,33023,64193,19779,59815,53854,14475,2251,40601,33909,54654,16487,59923,32692,14162,34814,9253,60158,15355,4996,62471,47660,6707,64273,50196,59400,23392,56518,2983,13606}, {52153,35934,58653,59239,15275,19160,53672,11302,62556,36756,24006,54771,27963,36082,12236,15504,19341,61200,57396,21509,62562,32587,55148,9137,39376,1469,17044,26306,12088,53663,48298,3070,49634,45964,3084,56402,51540,33054,49663,59674,46101,49845,12786,52032,6300,10210,24059,12690,46738,10077,26036,46408,5997,16334,33307,34635,32799,47165,2203,1352,19910,46331,63002,38192,54459,26864,27226,12999,61315,24395,65141,61153,7880,12527,8469,39577,23886,62349,7274,59878,43567,49556,11616,62530,36563,6255,3697,52655,7200,17722,54616,52415,45855,60327,31480,58028,3850,23053,32007,51330,582,61221,29653,20278,43461,32657,32442,8600,8329,64631,34786,51721,16683,54324,15262,62296,27250,25270,9358,6469,38963,43574,5499,28201,24424,2038,43027,6521,50754,29475,20102,51270,28418,10892,50918,55258,39200,41632,46676,38396,62879,6073,1196,21850,45627,13269,54083,21777,64856,38052,53920,27438,20484,63636,14995,13904,3801,42092,4324,59841,1399,46137,16103,35621,14377,53106,56143,56268,55127,15512,62106,6552,54808,63691,4021,21136,30797,4551,64762,30010,47695,17601,41279,37490,35862,44406,46049,59616,19531,7989,61696,28724,14891,20446,24172,50238,5474,52819,3953,52884,32814,9533,21950,43977,36811,29396,5449,605,27855,12247,40171,10301,38114,57662,18706,59587,52866,17956,7213,8408,42122,42556,10413,52327,43944,63556,3917,22882,20568,21084,1367,61466,63232,1235,11457,11197,42843,37045,39735,2839,48401,44974,5656,16623,45319,31667,14040,22090,34111,48422,51163,47498,12513,21892,5819,15516,26570,2692,56272,42039,41026,55513,36533,32019,62403,21236,12085,63020,41742,43255,17684,11959,15874,45153,5941,41027,59839,37082,11525,55732,4934,6038,44808,30668,57822,51775,45569,349,50163,31805,19975,31181,49329,50259,36445,3885,28593,16005,34648,6111,22086,46126,41796,19105,62607,45508,42315,27722,51178,32039,2469,2351,6894,49375,9800,23246,58336,3814,52483,42372,5610,13694,28887,46239,60771,46366,43498,57453,22242,35917,55145,11244,24814,59530,60668,55695,50946,29848,9724,16212,19390,45365,44970,10188,33957,20579,53019,13776,43030,48432,55589,48362,1633,53029,52651,30999,19216,2600,14721,33206,12674,2045,2541,28338,29381,10212,25902,26239,52520,24316,43704,14319,26022,47398,11432,334,59702,8406,42955,23938,22004,13788,24819,9408,28153,33879,35446,45454,10905,51573,58398,24654,8141,20598,22009,7726,27419,56988,45785,42087,29065,52381,14481,52019,49515,29690,55674,21102,52431,10470,59904,11067,8123,36746,59962,54211,16851,12691,47954,49437,5112,38266,15948,28178,36760,33320,53754,63470,27647,13833,12551,58148,63499,39641,55010,28472,54515,24002,32329,62527,7194,44580,59194,26489,33812,5646,45086,5328,29148,22719,39665,28514,48717,1213,5849,56260,28858,1877,32278,59537,4406,63396,4810,17002,33728,48696,40966,9872,23911,25136,51425,15695,30459,15956,38300,41359,60624,21495,50968,506,24501,54137,22492,22776,31988,1464,21997,54624,49995,33157,18822,65222,59930,433,24779,47928,17820,11813,690,38184,20383,63344,26107,63947,6690,22919,60340,29271,12944,43635,40684,12392,55977,39531,22449,3222,63170,17834,52268,54421,53927,34717,1005,7800,7866,61641,11671,11133,51270,43457,5183,34399,62301,33611,36776,31095,14767,28059,30739,37700,20414,38682,36410,6110,64845,17339,19469,57904,62767,46259,29418,21179,12184,53987,24391,2705,34110,7610,1417,48764,39902,11629,31034,30693,4707,40973,13532,25260,45701,27683,11695,47989,50212,44111,53023,65099,34632,45475,44208,32349,52945,4633,5623,53467,21782,24091,15837,41926,38395,28144,13240,19713,28469,46057,14561,38548,57496,32409,14215,41659,6712,61398,41001,26727,22107,13853,16073,30244,39483,42763,35570,31315,50578,11275,56828,53534,60365,55110,64577,28800,58078,22726,37201,36716,40449,56892,13857,58442,6766,12216,51023,62845,19368,29919,32697,31803,63881,58948,22731,22311,6992,56643,30796,15561,33459,17511,65217,44397,58871,27723,37798,331,25724,63427,58200,53273,46850,38250,41847,15667,37364,31527,59291,35831,9614,53641,60947,33903,19577,18544,46772,43882,28002,37756,15324,3201,56348,34943,46391,57839,24362,40812,25582,8461,24871,39316,52156,40258,13187,65269,24621,60979,51488,5448,2436,58372,41837,14486,33077,52309,32158,47050,44164,22757,49584,43188,60541,36826,20226,42240,60855,16216,62589,59272,44870,34747,58517,30598,58870,21044,46172,51811,37219,62736,63439,49103,49207,63913,16947,30524,11061,25480,55012,19746,51422,32161,17171,3722,8700,26484,6605,29851,16796,41760,32516,20320,41731,31742,5031,15146,54114,43813,32318,36920,9041,26259,49065,48603,62121,22465,21558,39799,46845,8486,33447,27623,53016,19895,18092,51321,3960,22599,15474,39670,39625,41926,62607,52948,32902,22491,57145,52006,39945,32234,61896,27111,5209,46321,51855,9621,51256,35261,25717,4201,15743,55590,26834,43289,16741,16677,47985,44462,44380,10677,54711,16086,36799,40016,38407,22490,18060,7708,52153,30556,36771,31548,16832,56658,48386,24163,48873,54239,45133,26326,43173,31470,27135,53230,31593,49983,48082,15985,25471,52819,24773,61633,15564,10604,27256,10538,46226,3945,52532,44590,42878,21494,44717,2537,48734,18682,56956,2700,19337,40621,35281,6979,10590,63973,58377,13419,2621,46288,42626,38646,28442,48968,42425,29918,11223,42943,20596,56789,57263,7245,33404,17421,8594,14560,55180,19741,41443,29054,64700,48087,29989,28607,63936,28379,17450,65190,33118,40882,28968,45012,2866,42997,6469,62817,51470,16570,18941,25059,40958,9247,19218,29902,16759,45075,60717,2038,22533,4010,7377,28392,27414,22770,38301,3985,4212,40018,24612,58282,44095,47408,296,54826,32836,29044,8109,59351,37461,60718,64570,11765,17406,36834,23730,22311,13595,24892,32872,2879,40689,59919,11661,44896,20435,36281,6383,49066,41711,14169,19090,24428,38016,42398,27362,21800,56042,51190,45727,61782,29531,35105,2762,28510,4909,59361,38113,26790,14546,56366,64150,14995,21848,16645,12522,59743,9693,47828,6636,2067,15288,58562,42433,58349,7928,40560,41351,29066,62431,29412,60418,41806,50896,60812,30074,37756,53121,59453,11015,43582,47152,50005,54799,19989,44249,31370,26265,34202,57338,39292,29986,25068,33023,21708,41771,60128,31611,5258,18573,42193,17990,10669,51757,58982,12481,29333,30793,53848,43868,54385,46232,62706,60621,59753,45042,55469,53721,27580,46509,32935,53816,20656,39610,28656,30165,7565,58847,27862,19914,35960,56122,13402,60120,20613,51361,7469,40482,9568,31026,39299,17294,9996,26517,4226,11003,3505,40480,9122,3781,11730,47278,16857,15830,39092,44358,25646,62055,31428,11677,56263,18214,1738,27532,58743,40832,25977,29008,21707,28360,62681,50025,57335,2398,47420,31394,28548,49910,46400,30089,61218,19601,18989,23840,38506,51467,8012,30545,52128,39140,2106,21865,792,3184,24928,18478,2281,9829,8068,31618,7342,53605,55264,59955,22586,63251,35017,24544,51336,44076,38889,32757,12246,183,27667,5302,64087,34574,43769,52366,28773,59010,3892,43271,63307,41607,20328,6294,22302,52000,5703,50287,31413,21057,56260,36026,12309,63978,26693,15772,24739,10359,44928,10395,5203,49516,14509,10400,15591,55871,58596,14464,21483,13411,21953,4309,24244,19436,49451,37295,3175,54073,2716,41074,51734,58470,28491,31562,27739,34215,27003,35280,39551,42922,3251,22467,7057,5956,27289,47350,62860,1770,30433,4711,22797,2176,12885,39481,36560,37927,45908,7469,39173,46567,60848,32194,1464,54914,33180,2058,50031,20767,32932,1545,40658,7594,22388,33132,51717,40489,63733,6356,51722,18378,15336,3748,41889,11964,36532,55947,14657,19392,33204,30149,12042,26470,23270,35105,8026,48351,60872,64650,7221,49992,50809,46388,41089,18429,57302,33265,64671,8027,4878,42203,30200,14815,16713,25956,47798,37379,32617,39548,65282,21739,27701,53373}, } ; static const unsigned char precomputed_decode_1277xint16_s[precomputed_decode_1277xint16_NUM][crypto_decode_STRBYTES] = { {185,241,31,147,9,167,57,144,81,144,103,221,128,128,220,59,60,115,103,156,181,119,54,68,71,151,209,82,157,202,92,43,19,200,163,148,92,221,35,183,69,52,164,196,15,145,125,206,179,83,215,30,178,205,34,45,15,145,164,137,89,30,4,158,69,34,40,173,10,66,12,162,230,124,170,82,22,83,23,112,2,175,108,173,184,51,18,166,238,145,118,18,230,215,173,83,174,156,193,123,166,158,15,153,134,222,183,52,80,48,253,208,251,239,205,91,64,215,3,242,11,203,177,145,164,7,213,227,75,70,145,247,142,230,39,84,152,46,145,99,187,111,155,222,57,170,140,144,157,236,244,0,90,223,38,113,226,77,153,203,30,119,20,46,122,62,46,216,178,222,46,72,115,155,236,173,151,68,40,214,157,48,84,16,244,108,126,237,143,187,186,219,26,28,186,197,133,58,77,189,209,33,193,172,141,134,205,133,102,160,68,153,220,153,207,94,213,123,251,117,246,25,32,14,117,103,53,137,14,202,212,134,15,214,52,20,73,70,221,53,71,159,134,141,47,244,80,191,241,86,209,210,139,182,73,14,164,228,68,116,53,10,220,207,13,57,170,109,40,68,153,124,167,154,224,94,33,17,82,188,60,222,128,142,175,136,181,149,81,3,104,175,96,48,250,123,53,45,141,95,60,121,170,193,126,65,99,83,85,135,251,193,204,210,58,148,174,44,121,120,235,102,77,52,109,136,8,10,198,120,108,224,207,148,106,254,236,63,100,78,128,206,25,60,92,72,229,236,217,149,4,65,12,20,228,253,245,83,85,231,174,37,193,1,166,99,80,134,57,197,40,244,168,131,96,165,69,85,209,176,105,75,170,67,246,91,152,4,219,173,172,215,111,170,56,14,126,170,241,97,185,109,92,24,167,212,73,211,19,64,126,124,179,248,231,107,86,10,13,164,56,38,41,161,6,164,7,240,172,205,112,13,123,149,68,235,33,200,175,14,184,153,50,75,91,75,227,33,66,20,224,61,68,11,225,76,173,164,12,233,4,61,111,47,125,46,203,116,32,254,185,180,83,105,106,89,65,43,133,179,185,237,134,174,245,51,86,77,9,77,203,118,255,18,147,181,157,43,225,79,144,93,133,34,129,158,167,76,221,215,219,139,147,151,163,5,92,27,13,72,215,140,225,63,157,181,130,166,238,55,113,193,165,158,31,3,139,205,241,187,83,115,90,158,5,168,191,77,247,46,98,23,210,101,244,98,136,247,241,68,39,222,137,195,121,74,76,119,41,136,161,85,161,135,151,167,43,216,50,253,173,205,155,216,220,1,39,23,240,7,107,217,41,71,161,103,155,235,36,252,11,70,16,121,19,129,66,23,248,25,136,229,50,200,128,35,127,102,225,187,44,28,196,164,75,140,164,90,221,225,66,229,218,149,46,171,239,219,212,98,56,20,197,83,229,58,119,100,180,50,184,54,94,86,199,115,185,165,254,173,207,86,173,44,58,18,38,237,218,0,195,19,186,127,136,244,78,61,94,159,170,242,248,133,179,69,135,125,131,109,218,227,9,212,72,197,20,72,210,151,112,227,60,163,163,30,21,54,172,38,56,119,191,59,152,164,18,212,139,84,131,233,86,137,197,149,75,8,7,43,149,14,174,119,117,237,149,86,45,35,22,65,245,137,32,155,81,237,179,52,224,126,56,186,0,219,209,80,77,108,251,36,81,158,100,72,197,79,12,253,234,178,236,106,207,2,109,201,233,163,185,140,224,208,203,106,87,104,180,134,133,152,231,114,138,87,249,68,38,13,239,26,17,124,33,14,220,194,152,168,148,131,47,177,252,178,79,21,211,205,33,193,206,79,181,161,232,95,140,18,203,114,77,155,130,214,216,206,31,80,8,239,216,48,178,65,229,191,124,20,203,168,145,220,142,18,194,133,192,100,39,93,127,210,149,4,221,233,112,65,112,214,12,242,126,140,195,252,222,187,83,63,2,95,97,204,90,143,163,174,57,32,11,8,165,102,215,14,232,145,39,166,181,103,28,78,137,205,37,252,8,75,205,201,72,208,226,243,212,7,183,41,121,5,193,38,229,73,221,55,232,214,25,65,186,172,225,39,182,193,37,22,48,180,63,160,201,0,68,35,26,130,78,159,47,176,25,9,46,197,96,159,128,48,234,71,135,189,21,243,15,36,119,211,235,44,219,90,219,31,233,119,127,36,103,173,222,225,126,3,193,167,123,213,81,205,203,33,41,248,41,231,77,215,197,182,38,244,106,216,187,231,131,159,5,148,46,206,95,92,184,27,92,165,22,53,171,136,210,227,70,184,191,28,231,251,155,122,233,71,113,136,122,36,225,224,208,17,89,103,224,158,161,208,192,211,145,13,20,108,38,34,145,8,68,128,48,98,17,4,230,31,74,40,102,176,79,235,44,120,126,237,202,111,220,107,212,197,206,50,174,117,82,143,13,28,145,211,1,162,180,129,147,81,245,88,2,31,10,32,245,250,243,100,3,116,230,174,4,76,119,205,201,160,100,18,72,111,151,145,130,221,236,81,239,184,179,164,235,232,183,123,187,231,148,202,110,47,162,66,246,85,83,251,238,59,14,64,215,229,26,229,206,215,130,189,114,56,200,145,117,114,135,200,127,123,99,91,154,243,182,222,32,199,93,233,112,51,14,98,44,19,149,112,150,183,63,220,226,96,66,226,185,242,76,23,35,191,192,215,105,161,78,84,85,132,79,232,170,212,209,199,84,192,8,45,202,193,101,4,78,109,109,151,4,76,103,18,37,234,236,121,245,168,225,134,11,155,51,148,93,241,83,83,150,96,126,49,97,206,23,115,207,164,223,226,103,113,75,205,246,182,211,64,234,127,148,130,37,234,89,229,254,230,253,143,37,96,102,48,166,36,191,236,142,188,188,118,60,128,111,229,130,24,14,142,227,206,128,29,110,201,158,80,225,250,106,54,173,222,68,44,38,106,94,75,125,249,47,244,74,189,140,254,219,236,37,113,229,180,196,9,245,134,223,196,125,104,141,50,221,108,98,12,133,96,104,149,177,154,148,162,179,105,141,74,50,81,65,137,92,59,163,86,8,235,85,54,47,248,214,129,8,109,105,69,111,108,163,201,178,231,37,202,24,175,241,195,245,31,162,199,78,82,76,54,245,191,205,244,144,196,93,215,161,50,73,197,43,229,212,240,166,76,72,221,182,76,239,120,4,4,111,68,89,162,205,49,69,219,182,31,233,219,250,115,194,228,127,60,59,62,50,122,164,155,110,129,98,221,254,137,36,87,19,150,129,40,231,10,125,146,224,6,93,189,13,118,113,115,115,142,83,31,3,237,136,130,37,193,192,160,140,19,94,32,22,177,155,47,191,139,175,207,33,127,116,73,94,49,81,64,60,28,86,150,205,101,114,232,76,142,204,74,30,8,153,31,36,5,147,218,118,141,3,169,29,237,220,195,213,163,118,69,130,119,10,178,9,87,215,230,17,48,87,174,157,97,177,59,111,246,158,117,228,100,74,78,241,70,47,0,206,145,247,145,221,110,16,180,250,159,116,246,199,134,210,253,129,247,61,246,233,161,215,43,231,243,177,178,154,255,109,222,16,120,95,62,108,144,232,174,30,56,241,15,19,196,178,201,174,248,81,57,146,219,228,128,241,241,175,79,130,105,127,205,250,205,91,55,44,122,76,72,61,28,143,110,21,143,235,135,247,73,127,16,223,161,36,45,128,4,41,225,254,131,128,202,200,55,116,209,161,94,60,97,246,241,239,224,213,80,20,95,98,222,110,201,57,131,49,184,69,51,244,71,247,60,254,75,42,232,43,7,217,199,201,92,11,231,81,176,92,163,240,86,102,93,57,84,30,80,68,92,234,67,216,131,175,50,58,133,65,31,12,132,250,251,83,125,216,195,26,159,182,192,86,114,103,31,212,40,208,97,167,206,232,121,31,171,29,9,49,195,158,20,124,109,92,179,194,168,103,18,25,116,6,119,93,116,3,162,81,162,63,241,41,151,88,221,188,8,122,205,146,144,33,131,245,246,253,166,225,232,84,183,100,61,118,51,202,97,133,25,84,38,80,119,58,97,102,14,224,37,197,214,166,107,66,42,129,27,242,54,215,24,58,8,177,12,122,103,28,239,241,232,234,22,238,119,253,175,168,147,201,226,155,235,100,43,245,180,192,1,166,214,155,152,167,49,254,63,117,80,148,12,242,189,79,229,141,59,49,145,8,210,240,104,179,181,175,93,79,243,119,35,104,73,208,166,216,17,178,166,123,53,130,71,69,199,26,115,158,155,213,179,202,58,218,59,238,139,34,141,130,122,134,118,15,166,45,44,92,53,22,100,250,234,22,110,34,229,1,155,132,49,20,221,185,125,134,191,63,142,117,189,132,228,167,25,180,126,106,53,43,219,107,230,239,32,140,203,216,90,52,66,112,146,236,52,224,166,165,146,246,201,39,113,37,59,55,71,70,166,70,3,146,114,47,122,53,25,118,255,100,222,200,12,113,101,127,251,194,58,201,74,104,22,43,250,43,150,182,130,194,233,247,112,136,85,253,120,18,82,11,218,102,221,186,54,85,213,11,26,40,64,250,154,61,99,27,170,103,125,4,188,225,176,248,204,42,57,213,199,134,7,18,234,193,129,160,153,69,226,252,137,150,90,230,182,60,142,225,23,198,156,123,180,55,40,187,226,188,42,176,166,75,66,163,199,51,121,127,0,245,16,77,40,57,178,115,33,206,45,29,249,79,75,102,231,222,142,17,139,207,132,84,82,70,214,61,178,112,221,92,235,254,2,64,177,151,159,142,154,95,252,242,253,170,61,15,82,125,53,94,154,114,65,169,124,107,58,195,239,214,228,202,131,154,85,161,125,160,246,15,47,218,133,132,251,195,95,182,63,75,159,217,165,233,215,223,3,11,250,136,238,169,242,231,0,187,183,43,9,118,50,89,221,138,195,199,62,6,97,15,164,125,12,137,100,109,83,12,88,29,109,105,113,63,47,158,137,60,226,203,154,31,245,184,73,4,210,255,68,56,238,86,8,159,27,25,208,205,169,253,14,164,241,101,213,4,155,81,37,254,162,20,12,74,11,238,44,6,122,225,19,8,193,33,51,238,61,33,10,194,74,240,69,61,81,51,55,178,23,193,168,65,6,191,68,26,149,66,223,234,222,15,97,148,226,236,224,112,195,86,2,221,141,14,30,146,98,105,236,0,85,231,76,31,169,119,96,181,195,129,213,182,244,186,163,194,100,137,252,248,107,104,127,100,242,94,228,208,216,69,138,152,77,154,22,75,117,26,53,32,56,7,119,255,230,69,20,116,4,127,93,108,102,100,44,139,15,233,195,151,4,210,166,91,135,117,79,249,17,4,217,239,111,235,203,182,17,197,67,71,244,218,170,11,158,21,204,247,175,156,111,253,44,120,159,25,71,235,144,181,18,203,58,228,187,47,253,75,186,63,38,156,108,234,167,170,49,130,163,124,44,137,127,229,77,2,48,123,28,4,242,145,231,236,135,112,235,211,83,187,3,243,179,77,222,144,240,91,188,252,25,8,92,190,113,189,70,182,158,214,95,55,125,56,7,20,81,148,4,30,184,114,197,239,143,182,36,39,238,139,191,62,118,52,39,135,35,198,26,251,127,120,3,65,221,112,163,161,248,168,225,194,137,57,64,144,1,192,97,227,191,180,65,69,76,122,123,158,134,107,136,158,113,149,208,213,86,1,128}, {224,77,23,4,117,42,91,93,244,15,62,109,59,150,43,129,145,18,79,208,180,29,245,189,132,184,159,133,82,141,107,146,25,195,72,154,5,253,168,57,206,185,85,158,12,107,127,255,177,124,62,214,162,95,225,190,69,36,233,183,7,248,80,255,25,54,147,195,154,242,210,176,53,163,189,185,31,193,164,163,16,89,9,125,144,61,56,48,165,235,200,197,243,76,167,16,163,17,254,76,65,11,50,98,234,188,103,10,242,176,76,1,22,200,154,16,91,221,156,144,79,137,40,101,36,9,207,28,73,73,71,208,121,123,99,23,101,195,62,170,236,37,125,122,233,51,99,73,16,10,218,45,114,172,217,100,220,39,208,222,100,159,112,48,119,82,209,212,129,198,146,206,49,146,0,73,75,108,207,139,127,65,27,49,105,229,244,50,124,200,78,240,139,0,140,104,37,143,252,174,44,148,2,169,7,162,47,132,18,0,9,147,17,242,61,155,226,9,219,188,123,11,200,216,107,176,112,46,242,127,129,186,77,29,115,137,214,254,33,87,253,219,156,218,117,144,129,19,127,249,37,12,61,193,171,199,230,149,252,45,173,187,61,15,151,233,86,17,198,34,12,219,114,240,113,57,141,254,73,140,8,37,3,191,109,38,99,179,103,227,28,201,70,19,122,105,189,95,196,49,22,195,108,55,155,205,11,227,8,157,181,24,168,52,117,88,244,137,147,61,201,72,173,236,236,45,78,63,157,206,70,209,37,29,2,109,110,165,155,106,171,16,50,92,2,195,37,161,101,126,226,216,134,239,49,240,37,185,25,203,249,163,176,248,225,3,156,138,126,95,249,195,73,118,2,255,207,78,15,183,30,80,172,119,25,12,189,125,98,220,51,107,28,23,11,29,186,239,76,67,248,224,31,196,27,205,207,52,209,159,8,134,119,125,193,102,255,101,6,28,249,93,216,113,231,164,131,127,164,80,11,144,181,81,131,168,90,206,56,18,85,179,144,21,8,196,203,62,166,103,22,166,225,66,9,101,80,184,207,21,128,225,5,126,140,217,22,50,231,231,1,207,121,74,226,194,124,46,71,33,159,237,8,207,3,184,196,133,250,208,81,174,108,92,196,84,50,114,87,227,42,120,176,148,228,248,176,63,252,70,229,146,52,200,32,158,156,176,232,121,188,77,142,166,207,91,249,35,44,239,179,213,108,2,163,80,169,163,53,129,189,161,252,201,20,159,181,64,159,137,243,171,60,39,207,232,215,180,69,52,9,151,188,149,77,198,12,229,153,25,146,239,21,10,163,13,31,155,149,227,62,237,95,217,205,248,81,203,123,76,159,144,81,106,202,188,105,192,39,230,74,251,233,220,239,200,189,132,212,13,75,201,73,49,215,90,232,131,69,72,225,232,122,232,182,50,114,245,25,117,177,163,44,92,182,144,106,35,146,224,13,46,208,31,19,216,85,142,5,106,21,23,254,238,72,235,161,24,114,39,248,186,169,27,92,208,107,194,68,236,24,172,92,160,223,194,242,13,2,198,17,31,2,205,174,255,56,138,166,144,36,110,95,183,18,141,236,232,209,255,191,248,207,213,211,236,75,113,14,50,21,37,68,217,46,213,130,24,238,31,19,180,247,159,229,186,232,113,61,140,96,41,235,8,143,240,143,20,203,252,109,63,113,100,238,193,99,86,136,155,16,23,140,105,239,104,220,230,24,190,120,166,136,71,55,103,63,171,202,248,24,3,50,205,189,4,230,184,191,29,34,195,74,136,254,3,173,169,127,150,72,112,235,152,120,121,2,152,21,232,203,149,249,116,107,159,255,107,111,156,52,65,173,231,175,240,9,62,56,201,85,61,34,51,41,166,42,28,112,156,74,36,90,157,13,152,131,81,226,53,171,63,132,109,105,186,206,104,34,198,184,16,79,24,211,82,0,197,154,137,10,73,20,240,52,119,96,229,19,67,203,136,137,23,63,86,58,170,118,115,216,158,182,199,51,61,188,107,218,93,30,28,65,98,73,88,147,214,192,165,219,20,2,194,96,20,139,7,190,87,143,188,222,213,134,103,201,135,72,32,17,25,252,18,241,68,7,93,93,233,211,45,114,217,198,72,57,190,169,15,215,54,195,241,182,152,65,248,23,170,84,22,24,144,50,174,236,71,101,67,131,0,80,162,244,198,163,20,86,247,3,157,107,203,24,189,239,135,167,147,215,239,59,155,30,210,119,33,146,208,136,200,82,255,87,6,195,206,144,106,217,1,208,158,66,113,8,249,157,48,145,43,253,182,17,119,34,252,41,144,127,132,232,241,244,111,53,185,93,49,63,173,77,109,65,20,11,241,33,0,163,124,233,251,104,96,130,176,91,186,126,208,84,178,94,152,125,34,131,202,149,4,236,180,77,111,137,48,207,200,172,86,170,164,29,125,140,50,94,91,3,129,73,116,19,114,219,214,215,83,180,38,212,190,172,205,113,19,169,12,136,161,234,149,163,24,185,123,66,146,181,209,226,59,177,54,14,152,233,27,186,99,177,185,135,73,30,160,41,51,26,73,107,184,166,176,167,65,178,90,201,23,63,15,70,190,209,44,210,67,6,253,189,82,26,62,108,202,84,73,176,145,241,229,239,49,211,124,198,34,176,246,236,90,140,67,62,180,120,219,142,194,206,42,187,41,239,126,38,61,164,12,45,238,157,70,69,250,10,190,219,237,193,23,70,122,110,254,29,97,238,246,147,93,20,187,220,147,121,93,38,194,185,106,255,243,20,33,0,135,105,204,77,24,158,249,198,30,95,227,128,204,245,100,216,1,112,168,231,123,154,161,22,214,65,122,104,86,221,79,107,80,130,87,163,229,78,23,118,96,167,32,74,179,181,193,236,67,56,145,86,202,196,199,90,167,162,110,95,40,4,237,45,142,65,189,163,234,146,99,106,251,129,122,231,255,71,167,142,185,29,162,107,255,207,75,52,181,91,223,156,87,24,121,191,246,129,208,63,27,192,210,101,134,186,242,128,43,80,29,37,68,142,126,215,93,90,165,239,77,147,201,166,56,54,161,122,236,117,211,26,44,144,211,118,190,254,96,186,65,156,167,187,24,13,25,207,34,91,27,112,79,244,36,167,36,131,53,252,154,32,246,169,28,46,83,85,62,74,42,205,50,237,64,81,11,30,82,190,250,165,46,170,45,195,0,239,238,134,125,150,30,224,193,232,245,132,133,213,189,190,127,211,208,49,29,174,161,142,204,205,35,125,217,63,206,81,147,61,20,34,69,164,247,19,22,72,241,183,176,139,101,244,67,185,198,46,129,164,73,23,209,63,239,245,238,47,162,72,246,98,154,229,148,142,74,100,134,104,236,0,58,197,27,36,62,73,29,154,149,54,100,66,155,150,199,238,105,143,110,211,205,62,40,11,78,230,139,68,224,237,67,217,147,42,156,148,254,125,166,92,49,133,58,196,249,132,32,70,17,41,53,85,40,82,34,211,57,167,96,192,111,171,129,40,40,121,128,23,107,41,94,94,90,192,126,204,19,8,113,15,191,54,44,201,28,38,65,102,78,142,137,65,130,120,204,9,219,236,175,19,40,182,210,92,50,207,170,169,95,56,57,116,11,130,154,29,158,100,239,239,41,45,70,54,156,52,107,178,31,166,107,150,92,213,17,182,143,125,212,26,236,77,232,79,136,95,228,224,104,154,105,183,127,191,235,162,16,230,203,186,124,38,32,242,160,197,216,138,61,26,171,15,82,158,99,122,28,219,0,157,247,92,243,120,32,176,20,161,136,196,101,192,50,203,210,82,175,139,102,0,117,152,202,167,6,64,129,102,17,50,2,248,63,249,19,17,216,28,241,51,71,46,103,194,70,26,138,168,200,62,183,143,105,57,34,34,143,200,69,127,116,57,17,7,179,78,25,15,96,91,122,186,53,250,136,21,217,26,71,82,240,194,253,210,158,15,8,255,117,147,233,52,78,183,24,78,204,38,9,212,63,234,41,237,90,111,147,75,131,104,205,88,20,233,73,44,205,169,194,150,180,95,17,75,22,188,249,165,102,247,187,123,218,43,120,57,204,22,131,118,37,16,80,214,86,9,161,157,23,52,221,5,162,118,216,182,209,53,105,135,173,30,254,249,54,201,39,171,166,70,191,4,7,28,104,40,15,197,54,212,25,121,9,163,113,223,222,225,20,40,183,247,130,172,5,134,85,38,85,64,5,227,155,41,252,223,173,169,148,226,197,33,8,159,154,200,200,205,190,30,27,248,47,184,164,198,211,163,228,183,65,90,89,229,136,225,247,159,149,9,96,29,192,48,248,2,54,99,3,242,85,215,54,254,65,129,24,149,29,113,161,189,216,45,185,131,149,179,158,245,114,15,30,157,110,235,228,60,217,39,252,111,128,184,219,230,229,12,163,36,35,88,163,154,74,102,179,101,166,83,221,89,5,76,60,206,58,75,185,89,90,22,196,196,169,20,106,196,103,99,112,235,208,1,27,190,94,231,200,100,18,130,173,1,238,41,199,148,137,162,194,174,244,217,94,244,86,73,60,109,90,54,148,169,187,72,211,56,219,57,72,102,150,240,46,183,158,2,186,46,156,173,45,215,23,147,150,118,165,40,255,253,124,89,217,117,225,10,242,132,46,166,255,76,104,125,240,173,15,248,144,63,12,3,199,142,36,224,178,198,199,22,106,192,156,136,136,80,151,67,163,117,126,223,155,142,132,98,88,243,108,13,54,17,31,174,129,151,12,120,148,103,203,138,241,193,54,86,255,98,9,33,184,111,32,104,85,93,190,42,27,66,204,210,92,75,154,196,224,77,203,180,43,250,101,97,144,137,6,4,91,164,76,233,149,241,154,255,123,182,199,19,242,7,83,51,166,137,207,82,44,28,38,134,58,31,0,185,17,82,169,60,217,191,12,34,90,72,114,85,247,55,65,22,4,208,147,149,123,7,200,192,111,30,16,188,57,187,102,112,60,73,63,160,29,115,221,153,139,73,25,109,54,228,53,64,193,56,28,158,149,139,224,229,199,250,224,33,118,64,90,232,67,164,59,23,184,210,161,243,132,242,82,196,154,187,4,18,30,146,10,86,172,131,103,231,145,41,184,130,240,24,49,97,220,58,7,54,6,219,26,69,231,66,18,80,215,63,130,203,172,50,166,251,177,224,185,146,199,205,67,249,224,118,4,191,211,88,171,172,85,43,160,252,132,79,47,141,196,58,235,233,170,212,249,58,55,121,213,255,42,54,52,139,158,108,14,99,89,192,138,9,109,140,39,133,74,189,215,181,217,27,145,189,158,233,151,216,97,173,121,108,140,210,189,189,224,2,151,196,122,173,251,64,31,137,51,134,191,48,102,131,227,109,184,44,251,5,149,162,187,5,170,34,140,143,105,130,225,120,167,222,119,181,80,179,43,205,87,5,28,77,240,19,94,28,244,85,80,247,14,70,240,6,103,223,16,196,46,130,119,49,125,113,82,40,179,84,187,90,118,234,207,250,220,39,32,35,79,77,254,108,51,140,177,36,252,120,213,217,252,132,96,39,142,123,148,111,111,72,70,122,62,38,145,163,111,94,174,240,220,102,21,129,81,90,180,176,103,132,221,153,221,42,45,205,104,81,255,106,32,66,78,114,186,86,25,138,223,51,159,111,180,180,79,185,102,164,127,201,238,186,232,217,153,165,245,159,243,45,95,245,239,129,235,27,51,207,64,179,150,182,21,161,73,193,52,151,144,37,66,54,5}, {148,133,226,134,119,29,72,100,80,13,1,192,234,247,180,131,34,7,120,163,207,75,227,57,224,43,6,143,99,47,46,122,163,187,4,188,232,18,233,53,10,0,248,101,35,154,210,195,138,225,42,100,166,252,97,107,239,183,11,167,160,71,52,150,86,124,112,31,15,17,106,71,81,228,143,244,178,60,145,236,107,90,22,14,175,34,87,12,67,103,230,59,9,119,67,53,206,134,111,75,59,46,255,212,65,77,136,208,105,128,246,117,8,226,94,191,230,243,174,249,157,225,231,91,40,185,67,201,195,102,44,226,10,226,19,210,129,40,11,14,39,65,54,140,71,202,139,181,125,236,146,233,209,207,88,142,143,100,214,71,221,4,99,168,49,2,76,83,10,96,35,40,58,2,58,219,140,65,179,33,11,192,107,129,143,124,148,252,61,227,92,229,137,174,210,118,224,1,216,34,27,252,120,209,170,66,157,30,42,89,222,96,90,69,119,141,127,83,123,219,211,251,239,152,58,178,47,224,186,185,224,131,91,5,250,150,249,74,200,124,254,69,83,240,57,73,246,56,222,157,212,77,181,178,57,136,124,3,164,19,32,15,201,229,242,64,35,192,48,120,189,201,137,234,163,167,65,192,213,85,166,9,176,194,229,121,107,161,106,143,11,212,121,238,108,24,5,199,134,148,152,168,226,119,17,146,60,106,97,116,255,251,160,245,123,116,189,154,67,216,174,230,30,199,118,51,3,32,71,191,159,133,97,161,84,14,123,98,5,134,77,224,187,116,197,143,233,80,150,59,243,42,35,80,125,241,80,219,127,164,185,21,79,79,228,106,197,79,199,197,27,240,20,238,26,225,235,33,223,32,37,44,8,243,127,136,103,135,196,110,86,85,0,10,127,230,57,127,73,233,58,221,124,184,18,199,112,62,124,151,152,89,183,25,67,83,217,219,25,73,8,203,192,95,60,71,220,62,213,189,149,88,91,135,199,255,78,65,102,254,119,41,211,38,59,13,5,139,101,61,60,139,125,193,241,58,146,55,55,172,143,212,151,173,48,33,174,41,27,251,81,81,172,25,1,172,224,116,221,233,150,0,93,6,103,183,15,223,43,136,51,133,14,214,109,90,131,24,158,187,119,117,212,66,68,201,59,212,33,156,239,233,84,57,43,116,174,31,251,167,229,136,59,149,117,210,4,206,128,236,79,83,158,213,232,185,40,244,105,119,205,46,228,8,15,151,65,137,6,83,40,137,114,46,194,157,22,156,121,46,157,237,211,36,76,114,240,76,97,100,76,94,6,15,89,84,137,44,43,235,83,197,218,52,69,66,119,215,188,77,157,225,69,85,180,45,60,104,6,237,196,144,1,251,158,162,174,87,230,167,68,97,182,184,55,142,160,102,2,151,242,135,192,141,251,30,172,4,59,27,171,84,105,185,48,108,109,228,196,11,185,240,180,172,169,183,68,74,83,155,234,218,177,40,88,60,39,114,117,81,117,208,255,147,149,181,119,214,210,162,232,136,155,3,37,106,158,164,223,132,7,167,40,213,252,157,130,178,11,64,38,19,15,69,242,14,11,244,113,151,151,239,155,185,220,5,209,5,0,165,142,217,151,234,95,183,19,55,39,158,161,188,155,164,249,59,182,163,202,51,90,254,79,138,55,58,220,19,1,161,167,117,127,8,204,127,16,62,255,203,162,211,163,114,61,236,145,214,78,11,116,68,112,19,154,0,170,220,228,203,203,204,125,193,128,48,247,109,110,132,234,76,62,142,247,198,61,139,116,220,165,208,134,37,187,13,195,10,80,31,168,129,99,254,177,44,22,171,166,191,204,245,23,222,123,49,191,45,90,177,18,19,82,167,73,116,195,167,155,22,146,165,251,37,136,129,36,37,144,26,196,60,163,30,220,88,111,139,219,124,65,199,127,155,49,184,8,200,144,113,144,200,56,20,212,63,229,7,211,208,253,152,69,85,178,138,58,29,138,222,215,96,38,178,197,158,162,3,107,151,116,53,28,225,100,247,170,174,129,128,159,217,188,190,225,74,47,39,1,213,118,7,15,103,234,41,86,9,179,233,193,227,192,182,11,95,79,201,152,103,223,56,78,58,125,221,12,169,54,202,192,13,199,44,103,231,20,3,86,248,249,65,37,113,226,11,148,232,107,128,235,147,89,113,73,3,235,40,0,191,166,29,136,164,142,158,101,223,19,121,163,80,215,201,200,51,218,181,44,11,214,251,251,115,96,140,16,207,100,58,119,166,187,73,138,14,221,22,14,160,41,94,17,225,11,135,62,32,205,104,145,87,228,89,216,67,227,133,29,108,161,126,213,152,203,208,6,110,157,195,245,138,214,22,43,220,183,102,217,13,230,118,229,74,78,115,20,87,227,18,60,150,202,94,127,117,251,46,0,244,154,140,86,97,60,81,240,39,239,247,78,51,39,183,214,198,117,48,97,87,181,183,26,251,29,97,50,161,159,150,113,35,225,130,92,119,134,76,13,163,221,205,70,202,34,64,136,178,8,195,236,216,208,208,190,189,229,118,69,240,146,161,196,174,91,198,65,217,7,55,108,124,177,169,218,113,13,125,143,78,152,143,230,86,159,247,42,91,125,155,28,68,94,239,188,251,83,153,132,149,80,98,246,167,206,114,189,50,30,172,64,203,195,139,49,58,237,14,215,243,250,150,246,96,112,212,157,150,89,30,19,29,227,146,69,60,47,114,224,216,159,85,140,11,200,77,92,53,81,135,178,51,154,247,43,141,84,3,101,169,123,54,57,194,134,107,235,234,201,105,218,5,13,113,208,130,99,150,11,111,145,19,206,41,3,39,158,200,175,27,4,252,11,139,27,202,189,117,86,78,50,79,82,128,83,181,166,109,68,175,28,78,27,44,20,3,102,10,139,175,187,246,183,113,99,144,129,133,201,168,237,134,225,174,188,242,216,171,77,141,172,186,179,170,205,107,249,234,202,170,134,31,58,190,42,108,193,203,254,197,131,114,211,203,158,141,191,200,95,220,66,20,189,186,228,184,163,162,159,61,16,169,214,77,75,204,234,32,246,29,185,52,45,53,170,104,182,81,251,13,221,149,182,173,127,44,31,109,9,143,32,192,46,213,163,1,73,203,146,228,28,164,6,129,114,172,4,42,60,52,173,29,189,15,77,136,156,244,76,188,114,174,87,84,51,83,88,0,254,148,221,255,40,6,152,64,230,20,6,24,212,109,218,239,50,114,230,109,100,238,20,93,230,160,29,16,68,134,62,56,24,208,175,98,255,52,108,253,249,237,125,129,6,236,56,220,171,158,120,200,235,142,218,105,245,150,29,116,90,77,204,211,250,93,178,82,47,129,132,84,63,131,167,242,165,93,34,32,147,222,224,218,21,42,107,201,162,58,84,44,145,207,99,161,195,25,220,19,112,215,247,181,247,68,18,249,228,150,171,45,77,143,97,241,228,90,94,49,12,14,206,160,152,31,234,214,198,245,23,201,195,162,227,251,156,123,166,248,216,69,112,138,4,8,48,63,199,177,125,247,79,51,147,197,187,240,176,97,111,142,0,204,212,181,207,60,223,206,67,159,236,96,227,98,120,198,238,130,73,144,227,28,27,10,156,125,196,11,166,201,212,51,255,118,133,147,187,128,224,136,112,177,161,101,126,77,183,207,18,78,205,220,135,99,157,48,16,136,21,186,207,55,87,222,158,158,162,82,207,115,146,35,137,56,135,43,158,155,194,113,176,177,200,56,85,149,230,181,6,191,6,122,243,233,32,84,141,136,96,67,74,41,30,231,171,91,232,170,232,197,237,140,7,25,98,18,145,86,116,9,141,79,75,215,116,12,146,88,194,124,179,231,131,220,200,57,157,208,14,104,213,175,98,65,56,242,240,189,51,226,206,159,219,38,179,142,56,192,59,59,44,129,76,109,202,52,230,227,87,145,52,205,239,105,97,103,117,137,128,164,113,205,78,113,225,142,157,58,142,248,51,74,72,250,166,204,142,0,24,98,128,255,206,67,6,191,42,13,132,233,227,246,52,205,160,23,52,38,29,120,105,183,209,11,134,58,144,143,145,97,164,57,113,6,124,184,68,102,29,155,36,109,186,67,49,56,75,57,72,222,166,183,180,130,11,67,81,129,244,144,57,38,249,117,165,158,145,165,245,7,63,118,223,31,101,46,138,148,204,201,94,150,111,20,111,72,132,227,34,150,88,60,255,51,107,164,208,155,144,212,55,108,250,20,66,134,13,95,180,176,113,145,109,104,253,144,175,81,162,47,151,160,190,13,57,113,183,77,142,21,166,199,29,119,128,217,4,192,127,197,127,120,23,119,123,180,77,27,169,138,214,116,35,110,213,147,218,146,190,107,77,244,211,14,200,10,188,131,105,20,214,141,89,21,127,49,1,180,82,57,111,23,89,182,115,52,224,181,164,161,241,253,19,208,40,224,200,172,88,64,209,206,23,72,26,180,47,171,63,102,143,129,205,161,247,134,152,61,62,76,56,112,104,24,30,31,217,255,188,11,114,69,251,67,238,234,194,98,81,239,58,191,173,51,190,113,104,8,250,211,68,71,223,9,71,110,39,174,239,238,25,216,129,63,3,106,254,5,74,81,113,11,44,253,62,184,97,250,245,150,101,111,9,149,132,199,184,22,34,30,213,7,121,157,221,213,38,104,53,27,236,241,133,225,96,75,254,121,253,23,224,34,245,104,212,77,129,72,66,242,88,174,44,161,100,86,50,147,78,117,165,76,19,8,249,108,177,78,194,93,210,107,87,186,17,21,221,33,86,71,36,123,82,107,20,229,155,251,160,234,51,228,163,93,45,227,139,96,52,213,63,183,243,96,154,27,66,79,217,46,182,40,159,174,40,121,63,52,49,17,44,74,179,177,68,46,44,10,27,225,146,14,213,86,193,134,176,221,25,118,156,87,57,141,206,99,205,72,34,172,99,235,150,71,239,98,21,85,81,186,20,196,142,254,209,56,191,123,199,229,134,12,82,220,193,157,191,86,244,235,224,180,172,228,178,104,31,155,184,73,31,115,37,128,41,212,171,142,201,39,252,74,234,109,58,146,47,83,228,221,85,239,220,217,219,230,152,96,198,208,145,97,159,137,195,90,100,234,213,112,0,31,164,176,200,60,99,51,139,220,14,87,203,92,79,209,23,240,94,158,48,130,170,80,242,107,151,77,151,3,234,247,115,9,159,177,254,253,70,23,191,142,238,95,72,166,124,125,224,161,146,3,71,7,161,193,201,48,240,107,242,188,179,156,241,193,91,186,235,211,71,246,91,130,141,30,104,60,135,198,27,103,89,206,204,213,12,93,242,55,181,18,74,238,17,232,215,2,208,172,108,55,144,239,209,38,250,129,101,146,179,24,151,160,194,137,186,117,223,178,28,87,195,32,175,44,9,217,205,138,9,135,147,31,134,129,207,42,158,13,6,130,80,113,202,166,66,116,189,22,94,66,180,252,43,231,168,84,29,237,50,190,62,96,138,254,189,25,137,139,90,141,235,51,5,194,146,44,19,141,100,215,42,30,38,26,189,226,129,247,210,126,120,173,104,95,197,65,16,248,0,85,52,56,172,232,70,127,87,54,30,253,107,70,2,248,255,128,193,250,67,77,167,233,94,210,139,56,203,8,153,158,117,132,126,213,103,64,19,234,180,127,82,55,254,135,37,36,254,234,251,59,132,19,7,244,44,186,51,26,17,251,20,196,8,232,96,91,198,220,167,11,38,53}, {185,203,94,140,29,229,103,231,171,59,216,74,168,209,38,44,92,244,148,143,198,93,243,213,59,109,242,140,204,47,144,60,141,75,16,239,52,224,5,84,98,244,75,127,108,215,177,35,208,153,189,5,148,66,194,102,56,47,159,209,170,188,254,11,226,193,140,179,12,12,82,220,84,201,30,129,255,193,26,233,21,180,181,194,242,49,64,203,156,24,226,39,251,93,146,49,146,182,93,39,180,101,72,181,109,23,206,63,27,130,75,135,31,128,61,184,155,8,72,5,198,77,251,180,26,246,48,149,187,212,240,104,90,106,199,50,131,239,75,95,117,254,225,238,200,30,239,48,21,33,153,154,78,93,141,243,106,28,230,233,47,170,148,193,96,45,66,244,211,142,111,24,113,14,175,205,32,28,58,69,88,213,191,204,31,179,167,235,248,122,172,226,10,15,13,90,7,125,130,200,70,2,37,239,213,115,54,79,197,169,145,127,186,126,152,33,137,32,119,252,226,135,9,202,43,65,52,212,158,59,88,243,114,106,182,98,142,36,69,25,51,152,54,170,123,21,41,110,104,95,246,7,19,168,121,25,66,198,35,115,134,78,70,200,2,111,140,42,230,198,218,215,32,153,160,162,84,182,252,149,159,245,185,23,172,4,90,85,59,178,213,51,67,211,17,85,88,253,164,148,160,210,46,107,4,80,148,248,147,58,80,54,217,14,108,164,228,16,193,233,119,5,57,180,231,62,37,139,41,56,114,207,79,219,204,219,87,215,152,60,154,242,152,25,24,214,203,248,181,15,144,82,77,120,199,17,250,252,58,117,79,186,193,68,63,161,114,146,22,140,118,173,225,179,224,232,75,76,53,31,0,241,52,112,43,58,222,79,108,94,62,196,98,21,83,206,113,15,148,206,46,128,61,37,190,85,201,171,203,143,212,114,73,21,93,2,207,108,215,47,235,156,61,40,226,148,62,225,18,73,195,232,130,206,36,70,45,28,216,32,138,164,60,166,173,40,103,204,168,171,68,248,77,15,98,89,88,80,92,82,87,5,26,240,0,247,211,4,193,44,189,43,91,167,181,144,55,155,23,11,17,189,174,175,24,22,239,64,7,177,179,123,216,54,74,86,63,133,38,189,219,199,138,185,225,48,132,85,187,22,156,60,202,103,132,10,208,219,55,164,66,160,217,216,181,142,19,125,195,243,244,82,53,47,44,246,14,163,247,168,20,69,183,46,2,62,97,176,53,23,67,160,191,233,218,144,5,45,180,217,70,19,150,23,8,175,204,119,222,225,63,202,1,178,93,1,243,195,61,124,7,78,205,121,177,192,83,196,93,142,45,15,177,111,133,62,88,135,223,23,70,86,46,180,68,163,161,74,143,244,196,177,75,165,74,108,234,199,39,125,165,9,47,9,238,26,223,192,72,38,206,90,224,227,230,14,3,205,132,165,234,21,126,53,215,112,159,180,99,237,30,181,234,169,109,224,226,86,77,140,105,215,236,43,238,96,138,232,252,236,143,217,2,199,152,116,252,37,84,63,190,75,53,177,170,175,204,39,165,132,99,80,27,207,208,53,22,168,48,189,37,217,234,188,97,6,37,207,171,205,23,121,16,75,40,10,129,57,182,129,130,49,253,7,237,9,178,110,197,114,228,39,46,101,127,102,40,205,252,94,184,170,239,55,166,101,38,185,168,44,78,1,54,233,214,32,203,167,130,93,244,85,220,53,243,96,192,36,249,109,87,132,118,138,142,177,153,42,117,201,30,228,78,96,205,31,118,80,249,85,46,30,27,107,156,222,217,178,103,164,137,113,157,204,145,56,51,203,107,193,250,115,122,217,110,82,207,204,230,40,0,234,59,43,187,31,138,143,58,234,195,211,211,65,147,49,82,187,29,193,248,19,122,149,76,62,18,110,152,143,40,130,250,209,238,247,255,107,9,54,7,49,36,227,11,248,217,154,226,214,56,111,243,212,194,93,73,126,63,244,26,28,36,174,58,231,121,103,20,132,14,22,30,176,208,20,220,113,191,88,241,154,98,111,77,190,189,4,217,22,196,219,186,112,85,7,22,126,145,232,54,17,164,247,202,18,106,66,192,131,56,190,6,160,144,38,103,93,48,98,225,200,79,61,251,118,84,62,156,149,143,161,208,236,247,83,24,199,250,1,181,95,121,211,220,87,248,88,244,124,184,5,237,85,96,213,75,195,133,129,134,73,198,254,26,234,177,1,203,96,56,187,156,69,37,46,178,2,40,149,159,79,112,247,251,101,203,249,34,26,135,89,180,235,87,114,144,50,115,170,236,158,104,48,169,218,107,154,177,87,150,12,194,246,170,69,44,204,149,212,167,210,157,135,237,3,120,30,186,30,201,240,151,45,125,43,70,200,193,169,63,20,95,134,93,243,75,131,168,143,119,121,175,57,155,109,19,120,68,147,190,79,26,151,58,142,222,23,77,253,187,67,13,76,48,226,47,245,179,180,234,114,187,82,152,47,227,210,71,95,145,10,62,133,186,29,137,5,124,190,222,155,109,45,58,121,229,119,99,18,13,160,220,52,172,98,133,178,35,108,175,45,117,187,36,196,79,172,31,207,75,254,72,135,163,177,176,172,93,126,209,206,25,18,247,21,219,208,22,85,27,94,221,61,198,163,251,149,240,109,184,51,1,77,53,111,233,179,225,56,148,150,152,224,153,126,135,55,187,162,56,26,214,239,41,160,103,104,91,86,29,54,201,62,36,118,59,154,11,167,242,138,83,122,146,197,11,44,252,221,30,209,205,235,70,215,65,252,128,112,222,226,198,88,81,145,108,143,1,158,60,222,33,54,74,228,110,26,184,47,79,199,125,245,168,75,223,116,185,127,59,124,137,249,68,230,203,88,39,87,80,27,67,221,76,120,201,60,179,130,103,68,193,254,109,173,247,229,75,108,166,147,75,1,124,100,195,247,88,227,25,208,2,183,106,149,119,163,51,61,244,145,39,123,155,231,247,139,142,37,137,209,19,238,111,132,121,76,112,72,180,182,106,171,98,109,124,147,220,59,129,12,28,220,127,136,55,181,239,225,42,95,108,159,238,99,13,33,39,97,148,153,188,203,66,157,131,51,245,254,45,96,51,238,32,201,72,21,132,9,4,228,109,163,150,56,53,129,85,204,158,125,202,183,132,172,229,88,176,193,180,168,125,236,218,143,2,79,0,165,183,237,88,63,125,244,136,231,70,175,187,135,149,228,134,119,246,229,52,82,92,180,99,202,99,145,16,245,207,247,207,191,55,192,169,249,51,66,60,119,53,43,136,99,228,214,34,77,222,200,161,125,19,67,138,14,252,33,116,103,205,25,155,116,156,65,32,163,4,127,96,79,3,163,254,123,167,19,42,59,98,211,37,171,62,126,56,144,81,35,147,102,169,191,219,189,169,242,193,87,54,84,119,155,253,182,38,33,167,130,231,107,24,207,183,77,172,70,121,200,120,15,71,88,114,60,246,154,201,154,198,163,143,244,212,206,134,128,219,87,57,223,38,203,9,156,234,125,200,241,231,105,89,20,241,180,143,202,149,37,56,200,189,137,117,100,105,16,127,61,38,217,210,104,25,169,101,65,37,65,113,187,174,173,92,173,181,41,183,213,214,62,191,143,80,156,7,150,218,87,140,70,28,30,185,203,92,119,163,143,60,123,192,65,82,221,2,189,99,94,233,190,223,211,77,176,214,102,165,168,238,122,255,105,238,207,105,123,63,195,210,187,113,62,127,99,83,206,197,96,193,240,204,60,108,41,120,106,42,41,146,180,105,15,52,205,46,174,126,167,246,83,173,174,233,9,94,190,250,72,124,222,140,10,137,75,173,158,209,137,67,27,94,41,229,249,9,228,107,52,61,10,208,180,130,166,246,150,26,111,72,191,185,165,222,116,215,43,191,167,116,80,213,221,175,223,77,28,124,130,13,68,146,33,224,56,140,215,29,77,227,161,126,113,188,252,215,187,37,117,191,111,192,249,219,110,42,68,166,254,94,129,178,159,40,113,212,175,50,11,245,167,69,25,97,245,14,201,186,64,253,73,227,97,254,159,31,36,18,75,206,116,119,65,19,176,45,237,246,7,5,88,170,15,209,28,232,110,22,107,242,88,157,149,145,15,116,16,82,156,36,96,170,227,63,172,48,185,40,1,42,214,68,128,116,113,173,31,215,231,85,146,46,237,58,252,245,45,254,67,226,143,178,92,39,87,27,53,60,97,104,128,63,11,241,158,15,234,141,45,96,175,211,79,185,141,239,24,170,191,239,162,89,55,146,74,108,95,128,148,158,165,226,106,40,85,234,218,246,199,159,178,86,241,91,115,33,137,202,10,94,111,45,19,225,231,225,148,166,104,210,56,46,220,150,250,147,58,88,85,5,65,234,48,95,233,221,37,212,186,236,25,19,8,184,59,194,228,193,165,237,227,248,30,112,158,135,161,138,113,223,243,228,114,2,236,78,163,208,198,140,237,122,117,124,147,129,207,61,232,7,43,62,170,48,184,85,195,15,214,21,78,217,172,138,122,153,102,154,133,250,223,124,153,34,117,236,97,255,128,204,84,43,163,224,234,123,123,138,20,141,72,209,164,70,70,173,41,45,202,102,230,193,48,149,114,73,120,88,210,92,171,113,212,152,180,242,244,205,236,105,233,242,175,173,216,217,209,188,107,173,181,167,128,56,210,176,80,186,154,240,111,213,117,141,29,223,229,214,108,202,77,120,140,58,219,90,52,216,234,133,80,161,200,45,29,34,158,96,37,50,121,131,153,142,67,12,39,149,103,130,16,251,42,177,13,32,158,162,35,197,14,210,45,174,184,217,65,214,61,180,152,70,173,46,100,103,242,196,122,157,45,199,219,38,71,202,6,140,107,119,229,128,159,121,101,80,113,203,84,200,110,217,244,105,195,247,223,94,9,60,185,162,122,132,111,246,194,64,181,137,117,34,239,145,76,45,74,32,93,106,150,11,201,76,31,81,119,160,203,228,152,58,8,105,85,24,3,112,12,96,97,46,72,233,8,101,38,132,31,130,123,174,28,101,209,224,215,51,234,58,88,19,247,201,136,224,95,136,200,44,172,233,151,245,127,214,47,183,0,19,108,182,20,87,250,14,135,249,170,142,204,101,112,130,230,52,15,7,169,75,247,135,162,104,79,150,24,30,87,32,203,71,22,111,196,181,122,65,82,196,219,186,140,21,48,234,249,69,104,156,61,163,96,119,40,128,175,155,40,83,20,108,193,173,56,160,40,231,60,63,218,228,228,128,56,235,83,99,52,193,85,213,16,180,94,236,75,43,193,175,145,103,12,57,211,156,10,114,160,22,202,102,228,75,111,74,123,91,108,167,133,123,105,208,137,127,154,170,167,179,12,195,87,145,27,68,23,153,106,246,184,140,245,234,6,225,118,103,18,13,89,128,8,85,50,57,154,208,142,39,148,84,179,45,29,5,153,231,181,176,237,194,125,184,5,130,214,156,129,10,8,111,195,31,81,164,128,9,6,210,158,170,29,116,87,108,129,5,202,41,158,245,248,212,24,10,202,202,71,232,59,164,14,161,163,188,46,180,142,139,218,65,57,192,75,180,129,197,117,10,47,102,103,230,90,33,137,90,31,223,188,200,237,138,252,53,28,72,195,121,198,52,181,129,160,253,71,214,223,241,129,159,252,91,31,14,19,219,164,248,117,223,57,73,65,100,101,182,186,3,146,105,127,124,154,2,255,235,84,53,108,125,208}, } ; static void test_decode_1277xint16_impl(long long impl) { unsigned char *x = test_decode_1277xint16_x; unsigned char *s = test_decode_1277xint16_s; unsigned char *x2 = test_decode_1277xint16_x2; unsigned char *s2 = test_decode_1277xint16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1277xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277xint16(impl); printf("decode_1277xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277xint16_implementation(impl),ntruprime_dispatch_decode_1277xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277xint16; printf("decode_1277xint16 selected implementation %s compiler %s\n",ntruprime_decode_1277xint16_implementation(),ntruprime_decode_1277xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1277xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1277xint16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1277xint16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1277xint16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1277xint16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1277xint16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1277xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277xint16")) return; storage_decode_1277xint16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1277xint16_x = aligned(storage_decode_1277xint16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1277xint16_s = callocplus(crypto_decode_STRBYTES); test_decode_1277xint16_s = aligned(storage_decode_1277xint16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1277xint16_x2 = callocplus(maxalloc); test_decode_1277xint16_x2 = aligned(storage_decode_1277xint16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1277xint16_s2 = callocplus(maxalloc); test_decode_1277xint16_s2 = aligned(storage_decode_1277xint16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1277xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277xint16();++impl) forked(test_decode_1277xint16_impl,impl); ++test_decode_1277xint16_x; ++test_decode_1277xint16_s; ++test_decode_1277xint16_x2; ++test_decode_1277xint16_s2; } free(storage_decode_1277xint16_s2); free(storage_decode_1277xint16_x2); free(storage_decode_1277xint16_s); free(storage_decode_1277xint16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_1277xint32.c0000644000000000000000000040552514705505543023023 0ustar rootroot/* ----- decode/1277xint32, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_1277xint32_checksums[] = { "e151ed1b6c9d21ee74522212ddb88623dcbab6e220dced357339f547a99080d9", "42e71d92e37a5470c27cc2bcc7814c0b447cff5451d1e361fd7f9f0ba8338d90", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_1277xint32_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_1277xint32_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_1277xint32_ITEMBYTES static void *storage_decode_1277xint32_x; static unsigned char *test_decode_1277xint32_x; static void *storage_decode_1277xint32_s; static unsigned char *test_decode_1277xint32_s; static void *storage_decode_1277xint32_x2; static unsigned char *test_decode_1277xint32_x2; static void *storage_decode_1277xint32_s2; static unsigned char *test_decode_1277xint32_s2; #define precomputed_decode_1277xint32_NUM 4 static const uint32_t precomputed_decode_1277xint32_x[precomputed_decode_1277xint32_NUM][crypto_decode_ITEMS] = { {3796181728,2379962077,1510737036,2163096092,3170633802,2847583424,2718607256,407072877,1432015619,1715206242,3338219547,1455041877,494367388,222290056,2031243301,2057030730,4131591166,2242611847,2718905622,988368962,3736480167,2863524122,3956121500,2297597554,3017814766,1413704968,2565765630,3078365102,1529434725,1517019883,2450882780,1820283357,895772849,236673545,121132236,1172603939,2705042420,239236381,3978421828,2346258987,3533246235,3749066498,1437201949,642179825,742720551,2726311903,2163996421,1202429082,317695462,3904780434,3433199145,3320122527,2228814935,4242918265,1753015241,3467794773,3764509826,242147741,2708971686,1262434654,2490964389,2911683316,3660033934,491246538,1290385515,3804115594,2473650873,2030776674,1816350153,3979007473,3485374697,692346302,3555432828,2179258162,3524623813,3324194892,2172072896,2901940503,627776698,524662905,368455935,2966961451,210748881,3314944371,2293535128,1339025604,3949259321,3849167592,1901294368,742719704,2522772147,2617184951,1037429418,3475725634,3757492260,4059610162,2050928723,1684815317,1828984842,3583722770,48030020,2049168717,3372702655,102525265,1111519223,3129322795,2900778249,1846478483,991982844,1277380858,3961589038,2770934774,317247148,1590645074,1640385395,1430456724,2879869536,342149558,1679945682,1851334714,2402089844,1872251915,3355661554,330215045,1338623377,1898385664,164027628,3329848436,1909158438,2470315809,1016227546,3129410220,2642245658,2733462473,463379173,1230070750,3460769658,3662389938,2185591800,2755480957,822212969,3904811449,349748731,2795158708,878594131,1132586355,632181337,4171530775,2022027776,1845367366,240855157,3442946109,32798736,1438637194,2242169023,3207827881,4274747263,2631146032,714247336,753604202,1472904274,954696125,4179227970,4006223409,2424588471,1683680634,1162581631,3678942342,382453084,1728971337,1078957331,3500438703,822158058,3410797043,1719657880,3472062776,337978183,3801220943,2843577931,3057945497,3190287532,1077495532,2217372927,989534523,4263283289,20821988,2852431557,3898634612,156202805,3198146974,3454255864,3295286397,2978657464,2143010468,2223353346,287278704,3911781624,250610133,3562970867,1610694543,2590268391,712702233,3252863626,3987771028,1159401048,3813037532,3744388445,1459907056,1157727393,3483580994,829393799,2461206259,1448767911,177102527,2887992320,3930245756,3950999427,69856397,364886818,2880666516,1144253133,1104411145,2110370066,1134576485,2568013379,3565944111,2188077321,2741060727,3044800514,2512668465,2981666348,3675094870,3970731468,3287723691,2069225859,3388105852,29635721,3024240714,558832492,287287914,4077344859,259926355,964728501,2113878818,2287874352,3804718597,1452098536,2173483396,668797148,2778517824,1688069893,4098309938,3209811533,52392537,1670448344,2446911289,2155632889,2349415765,1489062481,1997351543,2947007400,600237520,2687509140,3038723614,1167993514,1371031347,3545237683,1023807490,949570719,2046212932,1312047869,851274919,4143678149,1536595296,2170954602,704246975,862836601,1328304752,4083651735,3136269533,2268505859,3959165222,2358380543,2325562282,1940572234,1136081102,1843039277,1406940339,1118020999,2206091678,3878535248,4163666141,3889509485,3974152318,3145693589,1295561899,3509632400,211940493,1902419788,2996945896,2228811751,3932366203,4056748636,2041788698,149588572,4147079975,637747378,555690736,3440851927,1973495749,39548808,4069682427,1382688064,1774235686,501541671,1829734698,2181315139,3983644998,3800854538,2972932304,1167198940,3092320687,2620631796,3583211515,612732611,3389453503,949625079,478426408,389381071,1721148601,1202899345,1296415473,1577525376,1838453280,2664518039,3387731284,1728708348,3909846121,3842432047,4255381525,1436634656,1092473985,1409669602,1166491358,989895028,1195332399,3707124679,2636848752,481565644,588995546,665537683,3571889151,2334549367,248532371,1972438996,1920076287,567854454,2352692675,3418957578,715082511,1475536396,1068441126,2517331145,488237500,537578746,3042387394,1231546165,563023900,528159353,120648947,1053818735,73912505,4285303520,1276775713,3111048505,397595135,2045110741,755909106,3355785090,260031279,2142083220,2638540516,298245214,162426678,3143500614,4235143648,4130612585,2416318600,1515588245,2511286587,3274201490,1521548877,1740346114,1591527326,517095293,1956515356,2512927572,685230153,758473070,2886130228,240878471,4119039427,370577633,1714755179,2247734735,2871872751,1333329126,589639507,1319345138,3970431050,2900653305,1819339113,3633068788,4181474448,227974365,825591922,3798152305,1187079635,1022761733,1137614675,1248598108,3634500197,3047153582,3820189274,3068593600,3461780102,3965459903,3596300159,1155668751,2866096608,2322434073,3525696009,3696023456,2859982979,1239353111,1374620773,186085393,3507772380,3779707023,4105436847,2464474171,3377547055,3807640410,2473951457,409308060,1435563362,3619772018,444055760,3531536924,2599641974,3060166580,1682597208,2867321673,1889020973,1672196320,1809197201,3335095742,397342031,712807698,824359219,1863046,2011683368,2876345244,1220107793,3734756894,762753964,3931740005,4174155366,3815410342,2385838627,3411143325,3807269722,3936735395,1715674072,241000525,2350470398,587410016,2135834166,1997305000,3044584665,1399612845,1777497965,4238630024,2057687694,2435113974,333018472,4021699615,3290660791,4135921111,1391775990,463472949,3697516526,1964954465,52354920,400657274,1482860869,3423506069,2309341932,2230466389,2080448339,4047691985,2258163663,2772315883,1724612565,1597079572,385307018,666136745,86767371,1835145309,4016170587,1850040348,2595915025,4292927272,298210090,2428530982,3140595043,988613309,3315597969,1007524601,2334630536,3336535236,2942792977,1691321501,3981297034,3735634554,4139444313,678243303,315185762,2407315028,332447629,935455470,4218512743,2857527317,2513067940,1689388618,2919601523,3148272153,3466552877,3281500472,1982329284,2499162348,3979695137,1091308173,3086149400,2934911167,1865854269,3308517850,4293420220,1655355215,4222968150,1466522894,1532510213,2940916367,1614515744,418181543,613471406,356100159,160858176,1933510635,2136651198,2171897754,4153847953,3694657657,706739982,2161733671,2297566001,2285322889,4281548205,3103585436,3871980314,1568544572,423882106,476216988,2045019117,1639001817,3134871392,4223004488,2885436145,334696377,1850484562,2644053884,3237209768,2495183766,361154197,3920530952,631315479,1959315420,3607030508,1172773289,38654692,2220789050,3983226129,2128154713,2335735934,939083573,590471143,4143426611,2905596083,1045229603,3644425977,3805637159,3814720267,666692374,2985386150,1746806632,203668857,304703841,2781960890,4165280897,3722701073,2035812120,3957079890,3688315154,2674681814,1472220419,702937993,1131423887,432289239,2915541765,2738442873,81501883,1893650004,1744933114,1697556203,815062064,3807877437,3850263873,564000244,708110089,732240910,3543577464,4423835,341684088,3612910421,3386489277,4015751881,3807656987,3070061237,558590155,1377594340,3946497290,706790054,4190717644,3397640367,1919216944,379441306,2350567185,2198276062,764232885,3285701528,2655895826,1615067379,2188476538,53511848,3113368991,1230898923,2684079062,3504666519,2917359866,3242730759,4092451084,4134053630,673378750,3806515430,725203063,3603328740,1077577315,4178753559,2796258385,2259562925,4288317305,1767147276,3169718059,4007519494,266563989,2811323281,3157963598,2600396086,3422788334,1319504619,3510301667,83293557,2857115369,2846249929,459459675,1414545242,1724979766,2482758883,1642295507,3269033971,2372053609,3503771479,2406335069,223269677,3865638009,1955078470,2930481650,301662893,1608139120,3238107855,2914479250,599634449,2718749721,302523232,2310105997,895765888,1226278062,1515154908,3753314565,186889219,459519534,2897794960,671700247,1171754439,1110775680,4059567784,1210436050,3462242112,3091722140,3246783180,3307566875,687517838,3818562299,1118016850,1318762694,799416896,3220616827,3500143717,3842961841,3357808836,3164846681,324101734,2166199046,3160306583,1113679291,4134830744,1215891100,1948068007,2376181997,637312848,1834745685,3806937559,4025500216,1421056033,4187247201,1860905769,2562019853,951247139,1512643634,429900788,4166195049,2995734782,3690987960,3187891449,417293638,2010156035,30257122,2563326692,3650833059,2448573126,4012624872,944689275,2126314326,2734476327,3283276396,3106133441,3065852581,3805098381,921677484,119177458,3161344740,2067805039,1086061978,1641928830,1495095509,533810714,2844856476,760164377,1081284647,4017036330,919742892,4036169196,3797998379,2918868103,3552330147,2618109571,122827640,2376267018,4101016501,909646946,399462027,1363439091,962893011,2167825651,3983750244,2959662231,2764366890,1481303802,3123152919,1852311339,30315426,1630009719,233032131,1098836892,2951993338,2756961849,4209553507,4207022309,2533985725,3904995361,863449817,3049536861,3656965218,3303088244,361664294,21488095,553668124,4203252226,3606691978,3371728461,3930849654,2047963898,4024558487,3065140819,3877267054,3457176514,882904260,2737014726,2210178571,1042483732,1735069764,3172839624,2986888337,2770431852,3739614081,1738819977,2356879713,3332016102,1961457547,2877750221,3942033447,2769675064,2823840765,138907331,263059405,2697274080,4034106082,3789562436,3052372955,161694430,2371698878,4150774756,1966795802,2349374577,1295401247,3314428521,450048887,3353545783,3596012727,2667501099,3413103263,1035123115,746545782,1806673559,3623109928,2986976337,4224275098,315352462,697539956,170969636,2252564235,2858573140,611294068,3837156775,396366878,2517635804,1267160913,2086083400,895090606,2373012889,4290671111,634916553,2725018930,98813022,4036163822,260232303,834414095,409797123,3012641125,1178659431,2693200425,2671089873,887759748,1938312610,1374426230,2539859902,3108809664,3083845057,3198792463,2589767994,4053841962,972159365,27493707,2030585709,811812763,296256229,2994355724,512398408,2631253096,23666802,371017017,2454022945,2211991875,979350400,741179003,2752907237,313637276,1105265098,365332163,3812769570,2555949432,3295012473,3170084688,4251659598,2151362325,3188622389,2465903453,3959471922,3736773874,2959364614,270679059,3287959631,3838042635,3107714290,2515410503,3122169757,916795284,2125170453,3393643477,1658069443,3681874577,2716796959,3549112632,1218633896,2006424673,1760207737,2006139465,2440634155,3965061863,1516187993,3458881150,1726412635,502342434,4018264376,3131409451,3161051100,4196072270,2450532846,1957781732,2822693272,2730434769,749146764,731808104,1493789240,3926928613,2249340699,3934179962,1690050797,2751092479,252167718,401899554,2996430176,3998417385,983112053,4211221347,419220576,3489721925,3182695336,949907486,3502732674,2871166250,4220952362,440037904,1228180825,477077570,2065401649,1978003498,2455086158,1790226739,3914721006,2973905292,3503386844,3621188236,1373800204,3457174990,2790944352,2613778901,912011375,713883011,2693615841,3763979435,430882289,3751731466,2350131365,2167199778,3288513102,894039342,1595084926,4226478802,3392562840,57553006,1541192478,3210976602,2903581626,2000860309,548204707,1518037850,4233249403,4063510248,4039369266,3110676560,1290586877,762588404,2340616495,1743273901,1602155412,754376023,2413581934,1610501396,1731794203,3094735218,3511731713,1450763049,2938686608,3380236488,3958791234,762741621,2493441861,2670218783,2251966151,833232787,3831746750,572146722,4101524522,3167319642,2438843941,4043907025,2092726757,4114174524,4246801039,34050357,4152434274,932708441,2110906752,2202077018,1176981174,2119949746,3141671238,104832488,2900553158,2211338310,903320589,723272696,40357205,1063084489,332847387,2613989278,1839974366,1700880254,3607082870,723214650,1044182110,2152449168,206687923,1870981256,4048149084,798588419,2341461108,896919825,1234780519,2576265867,646557686,1782032305,123288757,2257341958,2133003296,1851454482,3755094379,2163887570,1880658372,2953524309,547178393,2168321757,1875815715,3373096048,3046222686,4210134332,426426009,3739606837,1561389331,223252857,2282837875,4119414357,519521293,4076454388,3303450793,3229932265,1146195011,788759229,3883857336,4151545691,1863115363,3230882918,3916726384,130386061,3949316714,342291090,1038327869,3536277308,383069726,2558934952,1678554832,4000975442,2052603333,3983374528,3363719109,1309149482,4168798031,3364118278,975686372,1373764684,2703188280,1826292212,3061858802,3787226083,1606751872,3718535646,1474885102,3548683503,3879933708,221484526,1913306366,3006668787,3575551822,1090917717,3349021418,2963010505,3823725364,577757118,3203286751,154185704,1153998885,3735612230,2990411713,2778732005,931653674,4018888011,4207887706,1982926310,2507094509,933240759,3808391947,2841201977,410742802,105521223,3754933645,2926200396,2192075233,200939584,899007772,118845190,268048374,4150574012,1497187229,2583623689,2880881331,1086723818,3640258913,3763018076,3787023427,3526337260,1250249529,2430951229,513747717,3814351124,2903973294,212451079,3014543007,4268081837,1948957569,401596076,615741968,2412692136,1740086729,912648237,129362371,2567430420,3329463722,2504534626,2226461789,2390582397,3066335861,322091055,723328850,2120212840,3169749988,1889152569,2501546849,2166615372,3223313833,1255093836,1783800777,2680611297,3651487796,918497456,1298026203,1275461648,2837481441,2766001285,2126922686,3711130753,1789792989,4268583901,1944773270,1428901580,1583832336,4214094432,523411245,736293599,492188177,3967031047,2814747612,2531921191,1637570664,987210756,2418587078,2802820232,3550529358,617158945,2174452804,380786035,3118572611,3399256056,1567513787,3267332154,3634565356,3715273185,3082952580,37706409,1226663945,2976801234,2075238341,695161817,1701772057,2490365396,2795333729,3329944004,3034081999,3815986183,229983065,2529818125,4069712306,1574114011,201687434,3947706908,3510020855,3401195930,3633475795,1030070469,1091711950,2949636033,3533121477,319500986,637848769,2070226210,3228941553,3130224083}, {3430971708,2519854573,1038518366,2518441110,1013841342,1711621881,81671653,2484598601,4145905352,1374705893,4268066808,1173285422,3338256203,1639898259,3898735101,3375246113,428245053,603653470,1773126887,980601149,3933507144,3865694790,82505921,213277082,890667932,2787179773,3161989275,3892814296,2386282630,3933276364,3294027711,2252048759,2047831329,3854581595,3087264436,4084252343,3565607446,3865273870,280466331,1984600782,1132961170,1260617478,1029646700,3622363676,3896760198,683090286,154028568,519611923,1417447803,2153625398,1618393999,4195274559,1485647939,1038679576,2307592100,3609337747,43140781,2203968620,305517139,2495879412,386167386,3663343390,970754773,2526389664,3073807020,3541899748,817866868,3089313052,3183731315,1855774229,3706766405,2851228910,1671049797,155512786,2898748573,2481831244,1415623448,721513222,1016499051,926501061,1143441854,3113884192,676276121,1799596254,2112082689,132916471,1311543279,1768618722,1607973304,1497906444,3068941710,3178649411,1536622945,953261620,306630483,1418486908,4229471872,4019103993,3915954437,2830210122,41797204,1982053628,3454337999,493642596,2282912038,1317714593,165240170,919187169,4235360848,657721554,3148742920,389216591,127545550,47698338,4151662174,3819642014,617824127,540572713,670230448,1637027083,1632803343,166976458,2477002813,2398067059,4099498641,2712059117,3584453990,1022073522,1715480966,2911234287,2506137080,2992909224,126620305,1018325455,4068541223,1996857854,3651256858,2582168430,2101341232,2724507491,3980973389,1943537903,805339847,102010605,2384383906,1614715585,3337656274,2825311873,4080031183,2619008727,1631883283,4099755393,1919922176,2114745573,3208917944,4250893817,1453419674,2582007505,3539763560,1549674364,1869080824,270072495,4146813228,817002479,4092480354,910681237,3845799960,1981061254,3637029813,3240945954,412039052,1338098809,3877020900,353913327,2908922267,1165810826,3714366330,2915219567,3935066835,3335659635,1806369080,1368466719,3380299184,3562816309,2015975759,3639457733,4169936938,3605496362,916207222,3560299068,1067321205,2817322344,3955785195,913916848,3582293904,1610366826,1874613281,959697327,3416192159,299230370,1665593796,3162013844,679621731,1326055979,521999820,2149173739,3049615225,3985288103,3927750359,3246816059,4229759824,2431697091,2539226029,2711446606,2465987517,2526540155,262365949,3552670494,1288294050,2373415670,4069350530,2153295962,4113319208,2944514369,1580177917,2192768720,1707000668,1486714757,2552024281,3717717395,2117577815,1105849800,995890463,1444392917,1349567926,2191534615,2807288418,132495662,2797430980,2177761729,3739760335,3963956502,3943307164,3662892429,2389625092,2519347512,2764443773,2127252649,3863690837,368831688,3674748804,1658877957,1256041091,962140037,3960218318,2258229533,4213891843,2613957643,216276907,2308047560,4109256753,2455677429,2328444060,706495005,1112500502,1436211680,3732878181,2363458406,2026608126,167439818,4012361755,3668385344,4229465008,2361048022,4269004116,2209267425,3400065789,1190528721,568160224,4015090882,2063501474,1294071020,2041817754,1557909853,3038205483,4234143358,3643770282,925037062,2987218042,3016416541,298849447,3127755621,2902171998,3920889591,147352533,2950995775,3354625222,2443094540,3251567413,3786488201,3315793908,3107975753,582539559,1354254292,407728262,3946576355,1568434632,2334418950,3638820909,2386016309,1852427057,1917184257,2741002682,4275118621,1553098493,764626429,2744127338,1851922934,3565558756,372862576,2954804192,1428854912,3392156382,914517616,2997313505,1613785482,3137830135,977868026,595942170,2863098249,3313084407,2628181572,1816209224,842702779,2432461071,1672922657,3728503699,451500216,3854404432,3824362232,2835050645,2582884324,2139023832,2550050243,435140000,1040418807,3789971418,423391309,3578105312,229717847,3936782882,4024624667,446073680,70710304,1524484575,3238889819,300608658,1185145333,1844294352,2796325249,158498678,2111898675,2316780350,336982436,1098024143,2256560990,3032978373,3295588939,2139651771,139113658,556093165,3190640255,176755289,512229105,3730956092,2574350344,4079517055,191878501,1169368448,3948329613,2622010308,308118464,3449416459,159916867,877136564,2723920078,754928269,1400317587,830607524,2556097465,3303384315,2097709619,4187390029,3727658080,2460931020,2267151639,958515056,3658725434,2942427285,3238797111,2431642154,2370255421,4132725038,2663627881,412300720,1642773269,2871933903,1475267797,194742965,1144611787,1357790982,711141522,202834173,3309354486,2954632893,3202314422,1978011226,3552461449,2739721111,551140614,4258529099,979234867,1886748952,3290018526,3616680644,327904855,1262210793,1937051822,3535561077,1526548074,4012951009,2646683085,3140410452,906922034,717376693,270735612,2990649635,3138966746,520318805,3131176154,3704804429,4246146029,971337078,3002020325,1520076572,3023756707,846812528,865823932,3841749283,1028759663,1490948867,1805964129,3388078647,3761491210,2973547381,4093977622,83625712,1547141187,2647127320,492012236,2545901226,2576598301,808911313,1589438567,3458255853,1545281865,188998665,690273498,2756352422,3896854510,221450855,1921675502,2863969380,3264446652,927248933,3254089484,801395441,4126532443,1845222537,1144141875,3526905097,614954290,2302273396,1081972285,3872688080,1141758753,1234361777,2442003790,832944551,1586553750,1050161851,1474242275,3789248595,388656446,1888863296,2942779517,3858945961,1818660524,2913927686,15626296,2652457317,3418620685,950166257,399430563,2663152132,927836424,3757381680,920555584,2835967736,3308615961,2137327957,112394493,1087129912,4235077745,3515460558,3342074238,1556453661,3669958474,1134092033,343447556,699260862,685269144,3237126571,2384772294,670652131,3412786559,2756798957,298949087,1537001510,2144542505,566802147,4260424638,2867297806,1673534782,1079021423,3182489980,1734700531,3864387324,1557839269,2919923514,3694383688,422423998,1612280837,1554941106,2244020981,1968751610,4268568299,40470598,355060425,1653283883,4182854203,1861676857,983316906,1989460923,1474018113,3107291730,2983774243,2848193209,43152255,1439225410,2762921481,2589443398,3167598292,3290472214,1158487723,549156674,3443797764,1696220883,840884052,2856436563,2739474447,1479911563,3109902243,505999423,2639561457,310102826,4003612600,1462544814,2835370998,2058944179,2948162175,535943439,3161889855,3898414477,189833036,1535371621,3910736245,1827953693,807041080,3665578011,2288117653,1179443451,906550240,2482301837,2836791148,1842665906,1659852338,3478747546,150490546,3426697033,3090195150,1567626479,2753492301,2506467814,2097927817,1110054117,2234182863,1270300910,3535679847,1478852600,3323805205,1846805041,2652183765,2763441258,1760783268,2010406105,1986050615,2856317835,398381366,3587655169,1000393164,3650441133,3366463583,740796976,463467295,3547788049,2214167552,51867948,1492068651,1173041505,3076253609,230472487,2302672855,903273183,1226990359,1533993450,2034799571,103376288,2078839085,915845718,4047181946,423943666,4287831361,2723117666,3958446342,682465521,1083465463,878704466,1973532121,641983078,1558422863,9138711,1933884585,3610743841,4241298287,210487035,244393784,2100878953,1973683499,931309395,453504975,3578618614,1943290408,2605009162,626615765,2830277254,1741321616,4111382417,2359571410,1503428682,512496978,3791026338,119385904,291971935,147601267,3107759700,287773430,2368751073,2091179716,1864117103,3896503558,4154440233,2935288458,3987248469,398993808,1886685027,3700954322,2808511635,1449478728,3600398207,1509403586,2735216882,2827285701,1959074862,944744273,3812921745,1295925714,571948870,2061615223,2650138431,292543294,1404519503,391114539,864905770,825528577,754933703,1817615555,2690691178,380780449,1453534837,1538576122,1879232593,3929465799,18995997,2468873962,1567904187,1668467269,26613637,1447197605,2471187823,2137632906,3514472444,1119625799,424171153,713323420,1623353937,1368848846,863694781,1538027597,3404215087,189838488,3225239373,2080582066,1974829568,2735464009,1601770306,2467382409,1729744387,2602607864,3446095168,258766864,1405258027,281842121,2497770173,1821486272,485661200,2626136691,1811654673,3722771059,95035830,1352510841,420982156,190355595,660579364,3841708412,4011972289,1430877551,3903840044,3567924786,3769524672,2479135836,3294440421,518675782,2661151059,1144584834,2578986937,3473894740,2409991301,3025072243,1756517133,2366901847,1840375168,1523470255,2519252050,2176010588,2043680343,1322818388,564658672,545084893,2810436410,1330578101,4114704648,367006887,1116085977,2102854224,2103402110,3466516879,4018092925,52344709,1344330813,554508353,4103650629,1108663664,3076175138,1321989543,2417807896,549640904,3920113317,3253331542,2913420847,3171480782,185529576,1437653779,670262310,1886876992,3696276206,1160449613,2838316455,3270366040,3541213181,4214929768,1085528211,3488649875,408469870,2483267514,449387201,44258337,3108615393,3676098076,1396227723,1314050888,3415721661,3904674696,54096283,2348471275,1899200701,3189997780,1937370650,405175869,2556214651,3282208315,3517363289,4103304515,231422638,1181536226,3797681802,1581608043,3419314040,1751744841,3948101029,3471899064,1678839680,1104739322,684894220,3324481717,259414057,1609694255,3946725110,1892300534,4287744980,2898797357,2035521409,3285983798,875777369,2357794557,534774755,3129558221,2440918887,754354756,3367591601,1450229964,2865602963,2724335228,388924497,1000770558,1299189604,1603179376,4149319952,3780358322,608998118,2783393042,2849183528,589138127,1086602159,1971774046,3913061717,1997030457,4011066652,770987872,4176253073,85626452,2893558652,2653963145,1398021252,181013250,96277043,1342232621,666315751,4071250259,4114325872,441390171,1880234352,1745424045,158737675,2984084971,1330658091,430197710,2392791329,3021528963,68726523,1287424984,2885324799,1393412451,955931901,1639258062,4158788154,1744219677,2451052382,2777669773,109053403,719839567,609330380,2934790175,1226574336,3717091618,2368953133,974040608,17825171,2165764796,1437467722,2026658351,905038622,2620820180,2223084065,1483142887,3903947598,1446316363,31333745,2942983109,3581656170,3046503852,2649785670,3050677493,2358978198,4095104313,4179063454,3164836025,592136296,1181804009,2878067491,1395072439,2077461609,2166658597,114894022,1842943406,1437137779,1876756792,3730163940,4114525035,569067684,1033499432,3631235945,3770737294,2476592229,3270023272,4238758162,944015213,153745215,165612263,1174575197,597926207,2613320801,1358238980,3237032501,3751224824,3672996696,1870568208,2869740335,2984814848,3571623108,3205187525,3496390539,1339408570,667243384,34913585,1058924003,3283149923,3325550942,3628912598,2711131678,1581342742,36776924,2282554442,3846108247,76283772,1790149465,946673728,1912335795,3323248494,3758823039,3049796606,3600061090,171779895,3833785642,1655800088,1702114342,3470947076,778442803,1616417370,3000309219,3813109118,3322593170,487151647,3720861527,1024624530,1588437802,4069002049,4044430637,1647061280,441759878,1336773959,1955140912,3275681061,735646709,1325485933,2216334174,3203019434,2075374014,136480455,1026439488,1003384027,466949944,3511017089,1671777027,3706105519,1481060150,926980244,1410853881,1500058783,2565924758,3031285454,546143155,2006961631,4072666335,1425979152,2639209888,3204196625,1672486952,1183821371,1446560723,3329293514,1143434730,3569247423,1493831361,190987442,1850154799,2126476436,2957170923,4278569760,1167478137,3961056002,1074422070,3086293287,3932172619,116719152,3241124145,962901101,2762934292,4126747631,1709410533,2545241130,929042903,425248727,3116327511,4244026783,1211091525,1210757030,1758615479,3359816347,2624140011,3742018609,3987284242,3586982141,1874836594,2668354279,2136681567,1522316681,2089899348,2814329990,1796419369,3625079451,4083216258,3301299959,2509937345,2767561774,3080274028,1407721573,3559100148,253207824,1353972944,3749751492,1325986927,193051874,3951789635,2340963352,737176844,2634173671,499457989,3830486966,35973163,2543463632,1541427221,804214228,4148132532,743813712,317104021,3585978830,3537754374,213278203,2301441882,3776514175,900421948,983767885,1464374547,207788460,3376726115,1933169421,2297232031,2101491274,2848419750,3861284507,2858542108,646558480,2830713945,3540548857,442609347,1979142271,190010918,3163658432,3343882114,226448581,1558764617,3790032208,2142522487,4103901480,1507933699,3618564438,2171369197,1949066657,3642569808,1443257011,117244617,2540689788,946760713,1595206580,1126922217,135654864,2920641572,2235619422,1619517028,1612201041,981369603,2579365193,3655439435,3930307783,686049493,1188415508,52566662,680625364,3385377408,310004870,1408912738,3315933865,415607526,4147609554,365187163,55976774,673193143,720966496,3838477447,1814307643,3548598957,3969220369,4270102542,1753100320,3396827774,3090999798,3507942126,1771241739,138682118,3364616194,3102638750,1748375766,1597897375,1960347260,1687894734,2418949616,2967259763,386202663,1666877969,2728642691,2713067750,2832726200,1585546768,1524489650,3017120570,1045056747,1374496769,4080022261,2385084165,362925037,4204937575,134050597,2422308981,3106436201,2043571392,1925399466,1963854883,1622859331,3369058089,212746578,2111111690,4288736498,3427940774,1373804991,2007232485,1020230362,2011824058,1301435658,1167306909,2254316657,1366461329,3703348571,3877041521,178086957,3829743491,1491014230,2831267781,131857958,2415799598,780820301,3063209800,1372843965,3911720632,651304127,1262488402,1537951468,2871014669,1708882297,1705750426,1109585020,3207638245,624923327,4175522467,2576369291,3152934724,2219340855,2677593858,3697016266,4208569586,4153807029,292155887,2199610989,1920460554,437646854,614239335,1628920849,4076242204,598300616,3585564767,3097839535,988726156,406768519,3260058612,4191496560,3405950448,2563821072,2429928867,3603389670,406627883,1316985033,3479977856,4255864357,1361280516,2338363466,432926371,3382294743}, {1480138674,347268812,362067483,989417034,1669174106,3049791451,1560934511,1915385187,880978516,340734446,2047750291,4111950362,2050670572,598129817,932001588,2748648747,1916863205,3689176989,2847746793,3843661662,2234099119,3366537087,322729273,1654151484,3994999572,2924904640,845959576,590268872,2496590091,1523612689,1323322757,2903384267,2708623673,3125623592,457726763,3731724389,663289408,827326740,1829105454,2041008192,1545938109,1936485635,4185387054,2097995735,4010832292,633993755,1710224260,2385713956,3909373866,947845745,4119592341,2131005751,1586481026,1138871692,3585731213,264428076,2123293623,2099305899,308598554,46017327,1436352084,3525266733,2296427102,2739850411,1425787749,1942365492,1399408931,2056277835,3959932878,1470955690,3518552542,3520779848,675001369,1749389516,4167800602,3818330855,3397543646,1138949035,3670336962,2935050115,2363569699,738701115,678309054,269649758,1652397258,1728197508,3280709078,1969711033,682188642,2998163278,1546997219,1739644603,1144977324,1714725589,2701033521,1494997304,1447114965,3759136261,3871709527,1585030696,3227449220,3041976263,4033952839,282811217,1381692648,2234578937,1968866241,2514400537,3735199595,3493642865,963550647,2745368418,662693453,1613456771,3497039091,382187994,4258157360,2653158275,2276489491,2075403466,1949225794,685043503,4004899997,2898362200,1559588308,2868519639,1466165772,3659475173,4053115827,3509725674,2124680672,2681312705,2629358706,3808520735,613127485,2331750056,2356260547,2859609073,3560061907,2847213647,3845213177,2140358372,3244662739,2667245840,1654844302,3593171146,1548605497,3110633939,1826472263,2392058061,3293162845,3339504762,3204090937,894251600,3324000284,1805959427,42245057,1942688605,2562560263,3313275931,4111072637,1415017404,2203753134,996586780,2083249757,72634198,1235173325,2276868745,3738132147,2003203415,2333333242,495003490,76640,647109821,3623267447,1761821759,3330515057,3514020081,1530952671,3751447757,1177790950,932777133,3875106448,96501375,4036329000,2498236232,3419200599,2147700787,1734608639,1178355201,1738119805,892429288,1900955375,485930658,2566178353,3777241731,2967433037,2148063899,3316895621,2039563510,1289340165,4090255965,886853381,3164259679,1956375188,2495391619,3168095589,4240362964,1322663933,4217697861,563081400,1421773204,2577984242,4171903838,1448398187,3227051349,2062898857,2749660055,3314905014,721453389,1433363703,3514916098,3157398105,1028322109,2544306439,2177710411,4034022909,359716163,224692362,3359760499,238644029,520565102,110158306,1213654198,3836842086,1327827055,4165969489,1745377987,3781244444,2855465502,1099913156,2172767174,2125053064,4246242052,2683175416,4141875452,2846798155,2264305583,1217342669,2249614359,2073916154,3896053994,4021260931,2310458403,3678946989,591173327,1616075042,3711376489,315251256,797917505,2885670733,184980594,999546232,3645452733,131852621,3638053247,3723173601,1432714967,575943567,1998032686,1912733601,2381857839,2188386848,2608387914,269140899,272490902,1530653972,857911686,3456463911,2788078602,4137704030,1853042304,4064911628,2135057972,134421295,3161229376,768114218,3279371610,3796630984,1314767986,1350837222,3468268964,4051836832,2560138870,2072545869,2325522871,346602379,1920838815,1273721927,317634774,1645640851,587221605,3635944382,3334491650,3922557951,3981495888,479767277,3766059135,1975980872,2935181652,2137847700,1981808616,3796344673,3360856050,1475256584,1533760774,3531550446,3663388817,1870940252,1257231280,4070049134,686374766,2318585290,3219394517,1729974545,2139667260,3027177957,3403177467,404582185,1418369429,3991549462,3709581380,1738951548,3578472064,2583313284,12772384,3745687939,2944169815,1995507376,1454449075,2423550252,4188131216,1612586097,1986955962,2898165722,1890426725,1758189559,2035154338,896960897,2410132217,591839241,2161374157,4014599131,3485227733,2342861154,2946840850,3595209427,1975699656,3986221214,3608989390,1522631855,4160748307,2418165341,4255775670,1687500758,357816612,667057840,3108161805,1188793609,343863290,418882019,3346436217,2216753162,195805613,518954407,3627277126,2705126679,4277330130,2514220425,1099871612,3965313232,1156250023,1085218627,3098551161,3797433017,2812801045,2027851245,3863949598,2110022103,1427405113,1814484513,600960946,15901017,862267533,175947978,2147077360,940587789,2225139168,994443646,223260188,249593879,4293251126,1921385963,3274911440,1262283025,1138990022,2595987588,1863589200,1709860745,1954900419,1964982671,3211239401,1557156768,1000893296,773130305,3390955353,1349804552,831024977,1373318343,1980179719,3318582898,650230420,3888734653,1848398605,125899173,179529707,2211567268,4204313827,3641355396,3747352155,2473398111,2022924782,1269733603,3936953785,1405895752,1599138942,2862136579,2616029096,230842950,143905574,2049947567,2940043388,820797900,2873174401,1650257220,110680680,3918650472,4195450033,2046304911,2244479868,304317813,2041722704,1182689083,3179868588,2477123305,283043727,3623453258,2235760167,515749121,358712587,478048191,3401276194,2517125123,1207156579,3231208818,1628128904,2739222651,1930556493,1123603412,866327796,2591328915,2194753308,2335582164,1370559180,3604720294,1067406419,517100580,457422276,3409683274,3123581123,2358146700,3923940411,3494700749,2760882246,544516876,123377826,476756668,2765840025,3263725953,1500405284,3424768029,548090601,4181973060,4270913057,701485029,3821435327,315071934,1330622867,3295727010,888281906,2802757219,3308356433,1043354525,2413631586,2931448830,37198712,969496420,1864050943,2880446503,1576002770,3742807000,3185844186,637552951,4053163014,383742242,1289717333,4260326938,3227445340,1680189949,1929408527,3981097434,2752133352,193150147,2779636754,1672518872,2337765682,849954292,3297248163,4100435480,1688607206,1234812252,1692333734,864204098,3963485381,1368567351,2661610365,3769142121,2366491768,3696711190,145926569,977705186,3965936650,1394044244,252108377,1854493216,1293184290,2139899507,2400967516,3147249724,2372881253,3278440370,2423931423,1459359693,1093652182,376789518,2753342460,1468985281,3106130379,5783100,437568097,1064977867,132927723,3747224937,1042295953,3022912037,1563853374,2552042675,1994470395,928449850,3045751941,12578588,2985262233,761174230,3630394321,1590626364,2460945383,2449362862,898796601,2463354002,2721433432,3005119853,969303434,3841769689,3651974002,1275987032,890530371,1886192343,3001567866,2463112279,345786752,1187558355,1256258945,1333380621,2391272816,3828398909,3269467685,4293843591,3963856920,1674509818,3337556804,1498534357,3497862998,85630666,1074911655,1791488179,422368354,469498587,4092646487,2617302640,1674019977,3312838753,3678631109,4241621872,3123199014,3065288923,91402446,2471542686,3049491186,1105566468,414553438,4148154100,2322680307,1721507972,2856735518,2950584096,1066442198,2166300812,3450821757,3727127670,2177918574,3612357918,4188344823,1234244430,210127284,2844051525,1235434856,2554760000,2736218413,621312756,4291796547,1187942412,1602537351,4046959831,2230330210,4122910104,4224616656,1924604130,2339932609,295659062,3924640108,12619868,2060619921,4075386547,2704569756,3740724455,1026527703,4276438577,2262726475,624355493,3857294171,2448750003,2376333082,4026055784,3536877646,1806248238,1672031262,3058299120,1076290384,2098487620,859332432,3736147131,3004382717,1772758847,2645293004,2314978917,1476178265,105988821,2970917526,1092238271,3376980743,2198039142,1654432964,807534921,717465095,8654454,3317654855,1470588976,1011489786,506447031,312327350,3719701306,614616342,2628917985,2392988314,3825915398,3897716677,1671322279,4239977488,3413510214,747827556,2915741938,4167493919,1322459003,3284822524,3212786922,2275694922,3630738991,1208825694,964058868,1331183717,3674210822,3182493452,2112174887,2456087707,2360977867,341830770,4070616111,1142001509,3364512739,1025681745,1922603861,319512946,3855522636,2502914965,3870885149,538386295,1302007920,1619176873,1584251513,349790465,835357692,553094657,2799229844,3666297969,479310578,2489540513,1678667528,2806788064,2048636189,130877592,3178710252,2553286542,746481855,623444079,3063144231,2824424787,3665415635,2761892306,1733902538,1180367342,1359505310,1166874216,2084082434,1010002288,2485704588,2448004883,3781345118,544291167,878111988,2411147615,2386312531,2942583606,945096199,2079750842,2224511615,816361726,3014138725,3643838703,247392099,1048930020,3427394831,4281523244,761640885,919860524,182151474,3843327087,2924130019,4194001330,3379870261,4237813314,1400162244,3456945025,120585442,2838893500,4206397233,4068731384,485896638,3794894664,99349938,36560822,3000366114,2452963182,2472946798,2577367931,147626675,4250750245,561764967,3618349754,1475437731,2495143462,1805377722,754710550,3514361329,352406187,4009889862,3788144432,1915308586,907917335,2511595111,2778052829,3773004837,279471141,4039114541,3991013255,2104328117,224592111,3736508587,2172986974,1526612914,489100041,97054173,1176111876,1578727853,124062001,4210562807,645771797,1256331348,3735061864,811075282,3571699485,870612686,1514310950,3570914893,1588097180,3431269822,1843313318,4288084235,1297798705,2731768518,897897004,1505777708,487359802,4292045224,1356209752,2103630661,14711295,3198302183,1392873832,1399374453,2060881839,2138782607,1686456941,217439397,218409723,201233547,88264749,1074443550,1596077845,3611077517,613551078,512908356,641524843,1940114314,297659994,2059352948,4075626549,2709203742,3550675250,553113441,3753686806,4059408700,1626204333,3383765607,3897276788,85024919,1235737384,2128161281,580386525,4148061755,1983252533,2568609633,1950895610,1392010652,2160314823,4012999964,1321408353,2778067830,4136152004,3866124611,3119261487,2646033016,601249811,695113708,1279929591,958230240,2869439129,3110984849,3791568838,352282882,2348701369,1072153556,2901822006,2824274956,742608258,3051510940,994289446,457848302,1052196197,1614913445,1659159229,3278577718,1184482017,2437645755,2922608473,3383837898,620383339,3994711782,2270662795,2883335464,448082903,2487750676,1741387876,3441319547,1874924230,1693375234,4094761580,3968525905,3600489144,4062976298,1903763678,1927097376,2523216310,275928957,1862256569,2338335547,53940260,2765816345,1444646580,66235010,4089182937,2162416079,3242317176,671309010,2596739008,2450015464,2099994366,2881426049,3422141186,671304849,2398109,3455166289,484015694,3438902533,2094873428,2374290879,840739681,4270672696,2208929149,126317559,1052104387,3034893503,232552617,3838900580,95920068,621559689,1660568414,2383892172,2652203713,740266886,1153495354,3321771127,2701779256,912467266,694935341,1235828539,1858346939,2044801812,466362892,2625634337,322853674,3477750004,670639252,991990911,2877891066,3329034081,1859170156,1829480758,638178738,864182849,3994317672,1845290101,2498416137,281914739,4077983403,4032964554,2556543134,1587141083,3101038148,3670823518,375054631,3237298430,2919256230,1761043876,117299628,1668449624,1424167195,2327557675,1653414924,4163160963,3495222604,3290993362,3789201961,2872594403,1246149373,2086722005,100156955,3819273041,1348813092,3320823874,1320931708,1924030198,1292204518,2652316062,4163206379,1710659679,1385398535,229955407,3335889652,2071576477,507208240,1036344604,609710555,1684649288,1510196713,2209533344,2202924661,1543502252,3727138458,312290215,1940521874,678104486,2311606058,973486710,3041049647,698746812,2471052050,4133236960,2420293235,387465308,4052434922,1881610420,2871009099,2294189142,4246032285,16042862,3498626197,3386311475,703552895,3596764392,1944589924,3434163274,282338347,1010138758,3729918297,2838832317,3336303638,760095364,4224686242,3597061523,3205755386,4243664412,941094130,1385156649,4165251036,936607607,3866943064,3963344300,3042855772,2738964411,2225263502,3334913933,888519811,83778824,3077906340,3071718908,3742700307,1691699758,1799702897,2864250181,2287910672,1600667957,3188654440,2897793386,3243768144,2715820006,2610479879,3605982265,2328352359,3183284817,279701595,2914043637,2691606130,1485968487,3223467002,3864606498,3828328699,3268960261,3290059107,2077103266,4198987194,4080410063,3410526682,2095174409,3383744121,1444578353,3537138648,295377318,203917145,3437432088,390049958,4250919193,309149941,1073889829,3761999553,2475309577,3361761023,1867790645,3913161853,1696728419,3532900826,3489529941,1528814874,2977858678,786530173,1901638867,3930267812,1991326205,2896618385,230558563,2512975327,801174772,119336125,2268382295,2340724535,2626420735,2143058736,3345677472,3670642497,1821301976,3487836145,1773992352,3469198596,3525292911,2254003691,4201252913,4262379921,1641768473,976672921,2637050270,109624782,858898884,4248427266,474670240,974247267,539298157,1735625642,2988356566,226163700,428337253,3499494136,1288963272,2362814755,889451334,519977651,787646452,3910335067,1511255390,1835558664,2645196937,1496301781,3485814832,4119634423,3968061419,863933590,2329992372,1580465881,1016918205,167924518,201937934,2474374958,937921730,3598314427,2683230240,2103829527,1066811023,286709848,3751864765,3439329511,1217334516,2594408887,1947521196,3855931834,1651561317,1499012901,1599921738,40378508,709180713,2017032586,2418214788,2712433920,1160939146,4205522203,4238265764,892075782,183293489,3395947541,3755127920,2000239710,2645993340,3137773534,1115013421,4226000207,456697390,3434608226,1246651759,577428578,968257093,3537292764,3041747314,4140116489,3421261317,1678006819,3733103695,491560467,1319786215,647313692,2480493614,1826475497,2714976303,2199619443,426982940,1863866723,1459226410,111404117,2345631576,2381870259,4178998184,133935781,1889141977,3551259221,3735056842,2735700289,109631480,844288405,308314916,840217309,379467627,4172989671,943636583,247601033,4273221791,4193879140,2118751921,3671312309,3189604343,4211005008,1699141471,3918456638,465215170,3910994166,847893275,2606598799,474997864,1449775254,1327330194,1503478424,2777965743}, {3233531611,4048831167,2987791068,3987118525,2994463678,3474976535,2127741371,1018081595,3233881563,370747183,1374243894,3170930689,3643702237,130792918,148294446,3144174243,2143746109,3200709991,313928865,3660112722,3676377510,281364994,1578415407,1439512263,1919954363,4018223849,1491805827,994001196,4060283352,2456936490,196114376,521665488,1566668279,894968639,768432373,987270686,2003139446,909568388,53089237,4049247713,3776571925,3657867938,966980624,2756924879,1968166236,969334446,2016931889,123722754,3365693725,1498335791,2283445003,2756454298,3317879242,460902273,112285920,4103815786,407802295,598613900,1784562550,616771536,1463664770,1338630436,2419755623,1365822951,4285443385,468471363,696070246,16450824,3507017581,2077297149,515689186,1487244503,940460287,1401370349,4039557976,174761985,185756487,3900837283,2425516780,798644227,4251161845,2812749926,482926711,1880490459,521414487,2861537639,3721740406,359273626,620705711,2971288914,1952648312,968163325,1181470657,2028951836,2545875041,1947303729,3666715932,2292588468,1424165086,3045421658,1631451127,2739397775,1579118637,2417416747,3187888096,496163235,1294567525,2672154271,1996004198,150911226,709400605,2129726250,1513505569,3445765349,1389397368,1010169604,876372344,304575193,234220916,3098342888,2049589822,861767998,87073658,1304060793,2343097670,1421514403,2604199825,972801358,3404350627,3217417013,2280378639,411155941,1182404736,896643718,3176925715,3241936704,3215776554,1218970468,1085133749,2114706409,2690202676,358214403,1541526501,3137256364,1752794930,4221038699,4236383391,2967249843,2730912434,628286893,929060550,2263324171,1405193271,2453859510,3601486914,4140420203,2832048386,2089199211,3391539355,50658265,3906785098,1960617942,945627084,2733968599,3398981923,2176299883,525964166,1928516683,2018506959,1349831070,1570748095,2395245630,916217380,2559394676,809072532,560013621,1150504060,3033429186,182920609,670253072,4133253286,2506767439,3838058465,2177900413,2782897869,539723356,725933284,1654789792,2916821413,2059583275,757269188,3044926683,2403347708,108693490,1995298329,1214645533,1834551308,1809943315,1014851263,658960503,3024520476,2896740789,2131201439,837985857,340684247,76287384,2902461232,303065216,2479423507,2077117714,4206119547,760311448,1801934915,1125127036,3690085203,3346131036,457158568,742505855,996819054,3216327244,1460705215,2867465854,274100264,861056412,3002233974,2113035995,2496145754,4035167984,3270399734,4153983691,2224582185,3003781925,1748680572,3245646874,512981521,871740282,1863332385,1554106820,236666973,2555548158,950571856,1677055928,901044090,3269282146,582413936,187497022,754560592,4054077874,354239223,3760078034,3092937880,3349776486,2318515863,2287824591,2149196087,1729932502,549759099,3634898937,2638825563,1512662631,968034020,1546090060,3891240585,4170570760,1424814063,1351974072,1458799566,2943051228,3302633065,3455069191,3680307035,379483354,2252584776,217522408,1760106120,648793819,4112572659,3692712333,529784159,540882399,464430699,1399671760,285389787,2674610325,3360294127,2695773202,2962196415,494727328,3929978965,1980933008,3953677663,955259206,2648107856,2135281355,1527568190,675524121,466367249,2108083217,542721289,3972282810,165748122,178979644,1118870540,310887276,3559855506,1247864797,2245046799,4056639359,1965946719,555051037,1666448456,1109243297,340027747,932515807,4056606201,2663574147,3487189852,2559720623,2324331548,3625983541,20588039,2303717422,20681409,1748157074,1281032861,1827803748,2723373586,3015191811,2408993697,378908358,3003731332,217907837,2898900806,1194873514,2508724091,4094553373,3036640610,3070880094,1900218745,2493423358,2567245169,678026759,2062399606,3119711043,1534932201,671559011,662585099,2563186267,3485556584,1943305122,778697660,997482985,3401800863,1123131402,212863348,1713419035,3270978330,2181076865,2119622454,3035057147,341413787,3006746516,2168275966,3566191901,2734064041,672014950,2455873237,3102278225,3745295255,1063035528,601602424,1802957960,195324236,439621425,2214675482,722274700,3349813996,3641454593,1851806856,633181735,2222135573,2093271546,1442291269,1603786080,2776544227,298266304,3731789337,72092108,3331718642,2403874349,328603214,789667919,472817674,53522059,3905806955,2471465635,2349378193,1990733779,3739272163,2540071874,2978173768,1482522246,358063783,1990229924,2747441810,4255719120,4219258367,2553870145,314347885,3201681504,1938485666,2610804750,264067583,13293586,287914877,2660706497,3904659415,676935197,812838627,1644107135,2105096089,2337184598,768444585,2576605856,2345782468,2019975826,1871354155,16301271,1095884491,89673422,2836102186,1802185850,953440857,588262573,2966527338,1599317801,3805854098,3346178228,1367091699,509394232,1469322045,180204893,206949082,4259684576,3183493887,1071516507,3751163543,3504598046,2505127087,3519861882,2927271903,2776634811,1647400607,2019132086,1434333675,3319854244,2833805120,3803554003,2364983092,618947957,3823467444,1890563441,286620269,4024864295,1622265916,2904034277,2497517088,176782992,1475701066,2403100570,2986410348,470686660,4024501550,3365980630,920294020,2607029543,3716598564,411489863,376131750,1498159960,501647685,1723370864,1248390759,3107377770,2900698312,1400517009,1835470877,4027263164,1820512898,1096220364,3693042131,3806223829,3924215679,2566720440,1319310393,3105503181,1714500834,2075428519,396417543,2191745844,422371104,72388106,1347381190,461490359,1807462739,3825528551,2472281406,2131619577,567174270,1800030912,2406937897,1455068917,228429431,1189944279,1035607215,2252790337,1772446631,2800837065,1596255605,3396496145,1952504374,3324344597,1840920589,1750549903,1146669425,3581404864,422989147,1972950671,3686269893,312091513,1641553324,731455732,7687278,441610344,4149536418,3618150828,811586497,4031488139,4157599414,2341844951,349687001,3191262338,2727622686,4122819674,1816111805,1121865967,3925802068,2378250858,1428989618,3507931905,430486343,3265396472,4164616146,1918196039,2330947398,1983870520,3768656486,693503908,1320107012,1041166264,2047109459,3736321683,247465310,3723175505,3134012288,2528862431,959469407,3286691267,1144071729,1605318674,1188286466,3423249646,240367818,1983903119,1153093314,4119635122,888645672,3398884602,3721017663,3110820290,1962285712,2100143238,896152966,4221821465,2261682598,2552355194,1173920974,3835974396,521908329,3440389834,26926489,2116312159,440589136,1758565634,1713460633,1386791638,1098127479,3137178516,2606744616,3312319130,2779286436,1544031325,2731130236,2016505885,2087910344,1397271392,3119646728,601285759,2841871905,257940855,2418962707,3566326360,3111469665,4134335694,2444957855,846508425,1548528669,2595610033,3515150812,1200113957,121280273,1730286959,4181797690,3206136361,3373138570,4052363473,3195372108,1141982770,3954313496,3805102302,4292753373,1697961621,3354478998,1534124459,2048818744,2946330253,3320152846,3363625549,669583172,2404562500,2736153337,3440264253,910194706,1824991199,2299758379,488503536,2447527227,4103602754,4190822085,1924062877,2826838752,2081352080,2122032882,2810259890,573436656,2706352504,2726672860,868223697,3667054982,2159458032,1571521227,2245542885,91227304,1275863346,2962091212,1875527237,1294809279,3253780389,2555780726,2621431482,1773117975,2202166552,693664363,3017800597,134055758,2568118906,2671543300,1321777175,3978607963,3091921370,3027735371,71718211,1631150366,91475724,3949057020,3030883308,3980080881,2190253840,706263574,2383801007,44637833,3600591978,1535714647,278274549,3430494908,895816154,630252233,2395142377,3437154414,184743122,634904878,1029764396,417773386,268452775,3294869190,2199980194,900862637,3810419365,641313785,2749325830,2953586066,3893056888,912070186,169842233,862992233,949318364,109424662,3533734578,468240858,3195059010,1155789582,4139875335,2589957337,2802549604,3616628063,168733077,807383721,3740753657,2226292800,2376827768,345832159,351168978,2199292370,583200228,737958647,3667027384,274555168,3546134361,1052884183,570792712,400727142,3404853386,628417629,2025548985,2804212935,370458313,287452955,3389009489,3111242135,3679679901,43743222,727763724,2079368700,1755614485,3555768171,3536092241,2226750784,738702326,2496079183,171475035,3978174865,3268458738,2723919450,4008606193,2272336742,2441177,4074301436,683674655,3064956662,3879165143,601735926,3792306541,742831213,1819891045,3078342984,2186218758,3583164671,2017099336,1428990650,1237450206,1916043496,749804595,547176280,3754790505,3345147519,2748425201,3445391997,1917190520,3821274834,2979498088,1234532397,2692019867,529045835,259243480,3843717143,936234361,3364681324,578069706,577797724,408246025,4273145219,1548724394,155947287,1381494640,2474554321,3891565000,44072379,1137074995,1622203568,1904176710,1406088034,3805731959,3226046433,2800700219,1087211769,3507241127,3908963270,2051466956,3667026636,2376976342,2510674166,1017353392,1002225045,3524131972,2086047004,2834120293,2833051433,2805552577,644441947,1167634244,1990897768,144065926,3673019464,2254166315,4039023844,2308118942,483384829,3282752238,3128487507,3111319665,2418499173,2938043946,1159221370,1238871089,1640731772,654364835,799113474,2895513963,2506859055,2245212471,3699247007,2263155996,2178495707,1392704430,2443114952,2041880196,1242765176,3658369997,791599237,2814553101,3590736666,506439966,2165789947,2950404679,3880670763,1495757633,1855431672,72700982,312102961,1218764557,424727682,3895324666,2846620766,2025675617,499406139,4024325948,3182791939,1134462035,10676425,2162008469,1068585081,1039330472,1621420575,2142522168,462077132,183885964,820742610,4058593292,711339058,386841029,2419396124,3920064316,2874676608,1533007506,51762520,3526020535,2914557141,2936929955,2363439298,3299678528,1809077169,1072845034,3662684507,4280332245,4065900491,311765946,3317953810,1991045297,15165093,2221894215,1230699829,4233612028,1184734460,2432642872,3735506298,1414833804,6726838,3624416819,2687275791,911674554,2676538391,4077703532,960035364,1428646786,2261181854,523581359,3668539057,2203355684,3038417412,3703270295,4042335953,603271964,1178658191,2173853294,3280859621,560071624,10534440,2847711077,78089525,4228159454,2906636398,330616100,754380093,1486373161,554620746,2400617761,4135069678,2430691096,2873413901,2522516561,1310996280,3514375355,3306672896,1847574309,608362527,2015272204,1129428663,1938190852,3235003548,3980191412,2812956455,4251805270,1534678675,2976787586,2951773381,211546653,383114966,1343656651,4005139141,1910524174,348526471,26593140,1706052637,2690069336,427565708,4132544229,1139380439,1345333109,3914287513,2194191400,3170589671,343377865,197829082,3436616972,1621554462,1687929627,3646552825,3550464761,1631367676,3800559220,4167733725,1247386052,2031857235,860707369,3753763404,1165884267,3328549543,3614641148,2802271877,4097423143,841036050,852514160,3556224717,3307383162,2116747961,4085845391,4117405442,3948624812,2781545769,3048475640,2334397842,2246616491,930299848,9835698,3768979414,3089397988,873960235,34327700,579724625,4237131427,4188490280,812312217,2619922356,3773103468,1995664402,3660380188,2680263091,3844771303,51710849,3090285978,1934256108,416750873,3480610731,1489649262,3936980894,2784282799,2811882618,2166319679,3423032368,3089018015,2370619161,44162547,3602271237,2686636272,758664497,437766747,2665029633,3585091362,1169676498,3827802478,152939306,1421413212,2272519425,3933352898,1646113091,2489865009,3334175911,2718308058,2297738876,1212431654,1433902310,2048042739,2362604591,3286873862,3005637512,4135133169,3369509162,3239211423,3048279099,2983808466,2621306751,3340989310,2497891942,1778806746,3123299150,3142694635,2452850302,2030017461,2048132365,999770425,4027108293,1842173842,3743306036,1369074415,3806906463,3794877971,1399558616,1836037967,3425257720,1200252099,3562285477,1914185129,715940491,3993486617,1289625429,4064427152,2289962801,3915446706,1518359061,4000807075,2134379628,1796062693,844561183,1280620538,3956760364,428149682,1150298335,1802733113,590402995,3193641620,1083324243,4049036061,2582751733,3467192861,4158362782,225858745,1970528591,2025889562,3010139452,3614872725,2431616469,1588184450,1265390203,2257756035,2908098200,2184054575,1299452302,1696932635,2805532021,1952573456,4262710199,3287449154,565339969,819931358,1680855593,3286315020,3720884096,1172989599,1756086175,1519200953,4130664651,971775114,2401059509,302368628,332864611,1604001033,586887007,917151868,287474617,2259212298,1138659790,3949773511,819611691,918064666,2994917534,1809018198,1435322657,2842718410,2909980728,3969527973,917160228,3371874603,3919315640,310644927,3492332537,3723173882,3990070898,2490108512,245284545,93420402,3285832727,2847796052,2434563349,4737641,61234701,4035128148,3454604629,3640052980,3783387437,1403751819,3634149668,2495860323,1297059293,1763415037,759783468,4215344516,1535546972,2881418788,2286852940,1712919137,12813897,3839000956,2217301276,3299276318,1135691170,348536729,2067370838,4242506879,4035203740,607939744,327095906,389397608,174573402,584234068,1344652049,1465565127,2463525788,3357911865,1569299621,3965484242,3341840391,1354256372,136019983,2633616419,3488387215,1717072142,2310794463,2189911281,650264694,3823737792,1596518358,1440918112,3790452134,1914909315,1996855632,750350850,459716046,3039448535,1442348291,1788353616,3669144680,1960512879,1813355756,3370605348,2224714029,2200864436,3947751360,727343414,810592400,1893505526,2741981247,575606299,1838457933,2229498176,2737260632,3649792584,3865454405,1811564861,299774109,2261465652,905276232,860140727,85732324,3454935992,4288074892,1663668131,3535407212,3392057682,174719699,2706613362,167508262,2062627692,3936150868,1680423316,463408428,4063854140,3319687663,428552670,2145020290,3139265329,138478238,2583082607,3670811155,414306301,2546001802,2992324604,3396728609}, } ; static const unsigned char precomputed_decode_1277xint32_s[precomputed_decode_1277xint32_NUM][crypto_decode_STRBYTES] = { {224,34,69,226,221,86,219,141,140,4,12,90,28,58,238,128,74,8,252,188,192,172,186,169,152,167,10,162,109,112,67,24,3,211,90,85,98,248,59,102,27,48,249,198,85,45,186,86,156,114,119,29,136,224,63,13,37,80,18,121,74,204,155,122,254,19,67,246,135,138,171,133,22,53,15,162,66,80,233,58,167,41,182,222,26,233,173,170,156,159,205,235,114,142,242,136,238,50,224,179,8,109,67,84,254,121,238,152,174,31,124,183,101,82,41,91,235,226,107,90,220,128,21,146,221,81,127,108,177,104,100,53,9,90,27,14,204,84,56,7,35,132,228,69,244,171,59,161,29,117,66,14,68,230,33,237,43,18,217,139,27,15,153,210,2,55,118,223,29,246,169,85,241,226,70,38,39,4,69,44,223,55,128,162,5,247,251,128,154,156,171,71,230,165,239,18,146,56,190,232,41,118,162,204,159,12,229,197,87,4,217,132,121,203,229,252,201,227,124,104,85,89,178,206,130,220,97,224,157,225,110,14,166,160,119,161,94,57,63,75,165,25,121,148,244,194,140,173,142,175,39,218,202,211,71,29,107,184,233,76,138,50,190,226,185,234,112,147,98,49,11,121,201,77,67,108,241,213,42,237,233,152,190,207,190,93,68,41,124,153,235,211,50,215,228,129,197,125,21,210,76,48,35,198,192,51,119,129,23,25,248,172,186,28,107,37,121,184,69,31,255,48,246,21,43,61,216,176,209,197,143,12,115,9,150,197,152,145,180,136,196,232,207,79,57,234,100,235,232,162,109,229,32,115,83,113,216,0,69,44,179,114,94,150,183,18,255,155,170,234,213,61,66,93,43,207,36,200,246,223,50,188,248,241,83,176,62,122,213,61,108,100,10,24,4,109,18,69,155,213,68,225,220,2,77,213,35,122,191,91,7,201,81,105,28,6,247,111,64,66,43,173,133,186,9,93,230,172,147,6,15,110,252,116,32,59,250,72,35,76,46,13,33,236,246,27,41,165,172,206,232,18,82,81,207,94,115,75,198,97,148,9,67,85,96,82,167,171,182,201,100,20,210,239,33,100,58,32,89,110,116,251,44,143,11,76,152,111,242,84,3,200,133,174,174,19,145,197,201,79,0,17,39,113,236,220,198,9,116,116,121,198,38,114,203,113,33,7,62,147,218,102,146,60,172,2,135,186,26,120,125,157,201,83,237,162,229,154,158,27,222,99,81,73,122,39,71,206,178,162,75,218,248,123,69,130,125,77,61,164,105,249,1,49,185,177,190,232,251,189,216,20,180,188,154,166,83,72,94,52,115,229,129,67,89,82,174,37,23,130,164,248,0,178,133,120,70,18,254,109,117,40,91,14,61,48,55,205,16,120,244,1,138,220,191,85,191,200,164,133,169,145,51,191,127,119,203,254,48,26,212,156,168,140,146,42,106,22,235,44,82,188,202,87,189,129,231,56,66,245,25,249,49,30,202,238,183,72,132,144,122,237,90,100,127,150,75,69,134,52,72,219,92,197,203,22,73,2,14,103,19,149,79,64,175,116,164,208,234,34,1,49,243,161,76,203,152,229,127,102,56,121,243,206,71,35,37,20,79,7,146,226,75,142,125,169,153,139,68,182,172,236,39,190,236,70,57,64,255,108,42,132,59,25,251,58,89,138,28,254,228,183,61,1,197,166,4,170,116,113,96,232,53,119,79,9,158,217,159,190,248,194,227,205,125,20,106,196,184,180,138,177,164,190,187,127,2,174,133,132,112,134,31,17,248,12,41,233,213,1,240,14,243,158,94,212,143,63,1,96,231,91,100,154,25,249,122,42,138,194,226,193,148,142,176,237,88,14,27,69,220,85,70,227,93,213,46,223,240,105,4,87,161,132,1,69,66,58,163,207,135,139,111,49,243,6,179,146,167,113,90,86,191,94,142,10,0,68,35,172,124,202,66,234,131,119,127,235,141,236,41,4,34,187,191,21,148,123,179,171,205,234,51,68,9,250,211,65,18,177,201,125,101,67,160,67,67,198,16,153,47,253,139,212,9,105,107,130,119,68,97,163,2,248,123,181,49,71,196,149,44,158,184,177,86,127,13,219,204,141,172,236,171,174,246,195,131,225,85,123,124,100,242,201,137,52,196,1,74,64,66,180,108,27,79,33,106,170,31,17,91,88,7,243,83,41,126,15,181,150,128,57,34,59,255,125,48,49,94,136,5,102,199,226,232,67,141,86,132,185,140,129,220,8,221,39,64,209,156,165,5,231,157,100,50,63,71,244,77,214,81,191,89,114,31,3,216,4,145,99,57,231,216,145,249,88,124,128,85,61,9,140,81,74,193,88,119,42,13,119,168,195,167,175,208,229,198,35,148,34,48,160,30,62,31,181,170,42,158,69,51,71,184,81,179,8,80,211,2,16,6,61,159,76,153,56,68,187,246,121,253,66,52,78,167,108,189,50,197,130,251,246,96,149,150,91,106,35,102,129,191,244,249,41,121,215,109,51,112,82,44,79,151,148,103,243,221,172,239,186,3,167,54,135,38,17,252,235,255,7,146,140,170,67,157,138,74,200,170,115,206,56,183,67,45,140,218,109,179,52,220,83,135,165,163,66,158,73,126,131,80,192,45,231,221,128,44,248,109,52,213,231,126,192,224,236,149,121,127,187,171,180,56,77,144,189,48,209,141,244,161,12,76,159,100,113,232,195,161,178,231,247,216,132,123,37,99,234,92,18,205,241,26,57,179,121,92,138,234,8,39,107,47,247,178,64,3,38,240,42,31,33,215,59,23,205,197,39,161,117,136,119,91,2,251,108,146,242,64,37,106,82,38,176,192,105,39,235,228,29,42,137,15,109,67,58,4,130,70,153,113,237,10,112,140,226,208,88,51,177,220,10,146,69,175,17,81,184,244,170,51,156,251,119,147,213,195,142,133,36,191,244,6,202,247,32,154,56,40,53,132,28,207,123,53,23,185,164,150,102,145,201,178,71,241,186,69,77,128,32,7,94,32,146,148,109,151,81,209,158,84,173,236,201,252,254,9,103,105,132,11,233,47,220,6,229,21,248,163,253,32,78,161,85,129,212,29,65,226,217,5,84,222,62,135,69,116,153,0,59,47,83,63,71,199,59,246,220,112,30,43,157,204,27,180,28,218,91,27,35,147,76,171,39,255,179,230,212,119,101,38,139,147,77,208,14,212,7,145,117,255,9,114,114,118,197,216,33,195,61,59,140,10,39,201,203,15,75,159,42,12,230,242,87,38,30,175,63,201,108,11,150,188,233,25,29,250,204,10,32,194,37,87,181,53,231,103,73,28,16,143,33,121,18,123,31,243,244,48,7,111,255,207,62,185,208,103,4,224,138,108,255,33,13,26,76,57,213,110,185,255,209,178,23,213,233,229,121,242,65,14,45,130,55,5,200,47,195,127,15,148,152,173,127,228,238,68,157,94,220,198,17,54,111,174,9,70,3,94,187,224,41,111,252,105,37,52,246,136,24,6,144,149,10,86,90,59,49,175,149,146,89,40,195,77,254,176,90,2,147,187,103,158,199,220,94,125,63,210,30,28,14,158,116,84,59,200,149,73,200,215,40,110,97,53,45,52,218,6,172,135,131,91,14,195,141,131,245,225,144,22,22,107,22,53,102,207,181,249,133,239,76,45,171,230,252,120,79,83,47,37,35,242,155,163,78,74,248,167,236,249,116,228,172,105,233,112,108,244,58,140,216,144,60,60,249,221,156,150,13,114,136,53,49,113,52,99,226,211,101,193,70,5,27,246,60,83,159,206,67,92,24,108,74,101,18,162,216,174,223,159,181,90,118,179,227,192,5,231,182,134,146,86,206,191,29,92,236,127,47,91,214,15,27,226,68,224,41,213,170,25,136,109,138,9,218,37,210,160,215,76,220,131,224,119,170,23,7,223,73,101,12,239,81,17,112,23,11,220,91,20,209,143,192,73,225,175,254,179,244,59,228,228,146,47,71,81,201,90,251,243,226,225,128,117,147,156,139,101,24,98,245,144,85,114,86,193,215,208,192,119,26,28,250,126,210,118,99,243,154,180,111,102,182,88,101,74,100,73,219,231,170,45,44,152,112,224,176,171,99,145,40,214,107,190,133,201,198,79,245,174,23,18,149,124,42,51,185,34,49,134,109,28,0,40,218,231,119,156,139,113,171,17,94,185,72,30,222,155,222,172,179,118,45,101,151,89,234,102,142,204,248,166,138,106,227,35,2,53,142,157,234,81,203,90,83,238,226,163,208,165,234,216,27,67,102,77,96,93,14,254,84,25,140,96,42,3,35,54,62,78,127,168,116,12,119,217,172,120,181,173,101,108,83,109,119,242,105,136,92,164,252,142,210,165,122,246,227,36,145,104,117,217,19,31,68,182,239,183,127,35,196,215,37,133,246,246,208,244,82,53,9,160,27,238,159,99,220,97,211,30,117,104,223,30,3,122,139,225,23,69,169,98,88,149,142,14,204,236,194,165,137,85,55,242,132,83,31,1,124,209,224,66,241,207,215,152,134,235,46,62,165,213,127,203,102,20,128,49,95,138,81,247,22,169,112,180,39,11,247,43,5,93,24,98,109,91,230,97,239,28,96,69,110,17,133,186,154,40,223,224,255,42,83,198,17,38,113,192,144,99,173,49,187,189,10,237,58,145,2,160,197,249,154,13,60,136,162,39,139,196,124,223,198,17,117,103,175,157,132,207,100,138,197,77,237,122,66,169,222,89,232,186,246,231,43,109,40,98,90,201,18,84,182,124,143,141,191,208,19,238,234,193,55,103,101,113,251,21,104,82,170,164,95,202,149,74,6,178,100,115,149,5,174,25,210,166,187,45,102,159,206,56,185,151,195,196,241,39,118,236,48,246,148,33,84,53,237,141,10,12,65,24,231,242,183,191,48,239,174,61,173,54,111,218,249,51,197,188,100,232,255,79,183,170,98,86,97,181,251,14,93,105,87,5,64,88,91,143,210,74,175,32,142,59,96,167,241,236,24,174,212,144,36,63,168,57,21,64,128,150,9,235,7,63,115,190,181,90,127,154,135,116,129,145,176,150,247,121,0,56,220,14,255,31,42,39,112,217,128,49,19,242,136,137,66,55,136,173,61,51,255,156,244,252,184,26,187,201,230,60,23,126,93,122,237,67,25,156,126,98,28,237,131,228,121,217,46,177,97,96,87,218,186,72,239,181,251,241,66,252,171,185,15,243,19,82,39,76,110,124,15,153,157,168,230,243,192,150,123,185,148,149,198,134,21,8,142,174,233,23,28,161,37,220,199,200,116,236,234,254,214,169,25,231,69,228,210,77,2,58,141,94,132,17,53,107,237,89,16,217,126,126,128,56,139,53,71,249,55,231,223,49,35,51,172,247,246,179,224,47,173,35,240,76,62,249,134,57,217,39,106,213,226,11,3,96,227,22,235,188,39,166,96,241,177,104,39,30,104,121,189,35,12,97,105,41,18,186,90,209,165,129,36,69,248,17,233,227,221,24,7,88,121,82,63,220,235,18,57,215,219,214,103,108,159,3,77,192,87,137,251,229,41,143,40,112,67,215,53,196,25,5,163,199,173,121,82,57,163,187,158,219,4,84,206,222,112,250,144,1,104,235,166,46,101,48,220,148,48,61,153,247,226,65,93,126,229,244,245,157,33,9,231,52,42,14,28,165,43,120,179,54,211,155,128,67,0,120,175,93,20,85,163,88,215,189,185,217,201,201,130,91,239,27,60,244,226,181,106,253,182,203,104,75,33,228,107,28,82,10,197,58,235,166,194,32,42,204,70,201,249,175,224,131,202,48,237,100,114,154,208,157,22,17,207,26,140,222,7,7,131,181,68,141,45,152,211,215,195,18,193,77,158,243,248,67,96,122,128,113,130,168,134,48,3,159,61,146,185,235,6,94,73,214,203,251,159,151,247,228,208,250,96,227,173,7,37,72,193,12,217,237,243,254,166,104,246,190,241,34,40,230,208,226,226,119,184,57,43,228,110,198,214,99,134,58,64,23,184,18,249,81,132,171,166,173,49,174,134,121,135,154,255,12,135,84,105,43,15,238,188,6,229,221,238,149,113,227,15,145,99,145,167,78,179,58,188,54,229,254,154,238,154,3,204,235,10,166,78,227,243,58,209,117,245,246,4,233,30,76,170,201,83,166,169,91,204,98,27,90,63,80,84,54,26,209,102,227,228,251,147,211,112,227,97,243,127,217,194,105,170,98,141,87,79,215,208,93,194,109,143,45,211,78,13,121,244,104,230,70,33,136,116,242,153,171,174,173,2,251,17,112,65,218,95,207,154,1,193,146,108,183,173,17,178,189,35,25,212,12,162,96,35,8,18,141,107,177,137,128,77,100,53,174,132,23,73,220,109,79,90,5,9,183,223,3,180,35,11,46,182,99,27,144,215,184,172,23,85,9,40,199,141,215,69,128,23,53,66,168,22,248,241,210,201,37,72,64,159,93,206,156,239,71,184,204,250,133,193,27,119,37,197,142,176,250,40,251,162,154,227,82,149,163,66,198,184,154,78,64,34,166,47,123,182,246,191,101,244,159,208,177,241,14,229,196,24,36,200,89,186,163,188,102,102,81,19,6,147,29,129,151,115,94,188,187,101,97,66,152,130,116,246,156,6,121,72,167,40,29,116,237,168,161,141,80,159,252,37,85,255,91,109,215,65,233,226,56,66,240,239,33,152,179,84,97,82,148,249,41,43,235,110,13,82,181,152,35,225,178,56,50,28,41,90,244,195,159,25,105,23,83,248,254,72,143,178,184,1,0,220,249,92,3,190,70,101,223,24,3,140,208,119,226,175,205,1,228,66,201,152,163,74,155,217,198,66,242,145,232,203,43,239,123,208,78,56,86,251,188,126,39,204,252,162,108,210,178,195,193,213,35,185,165,50,189,182,141,49,205,226,172,174,239,54,242,128,26,7,228,74,110,188,111,51,64,123,154,253,187,64,126,216,221,97,213,88,29,89,26,78,209,31,156,16,145,169,25,48,79,45,39,24,115,64,42,28,111,239,172,41,210,54,236,13,147,240,43,219,96,226,135,100,250,173,163,65,188,211,131,46,13,156,120,51,82,7,10,245,162,141,181,139,112,244,98,28,56,54,139,78,207,23,243,109,68,81,211,148,100,57,243,100,54,129,100,52,115,237,151,220,104,176,42,228,196,164,250,230,74,88,23,136,39,186,43,7,104,110,162,147,206,1,119,249,39,97,195,201,227,13,156,235,126,65,250,215,243,175,57,230,83,164,99,176,232,250,229,16,194,250,189,141,9,151,33,128,193,232,217,50,119,51,93,61,196,181,98,220,248,217,116,32,225,196,38,143,142,21,223,225,71,1,28,78,0,33,2,138,136,250,138,192,249,214,77,126,248,200,118,1,76,234,250,114,17,122,151,227,225,239,83,86,178,182,110,102,26,231,194,83,16,206,196,12,160,52,198,135,35,163,11,166,188,131,20,10,35,62,68,16,107,103,200,176,29,189,145,76,8,178,108,111,33,165,129,251,229,222,137,73,164,103,97,33,123,140,230,135,154,198,139,119,233,116,205,251,134,171,39,168,246,234,56,227,21,165,253,99,80,168,195,142,71,8,205,247,173,15,224,34,197,160,226,146,115,240,68,34,224,225,219,131,239,181,222,66,163,9,190,64,93,141,228,203,103,247,26,236,58,117,113,156,8,140,31,65,54,77,105,42,142,197,119,51,211,26,55,12,227,199,183,204,86,214,43,214,254,158,159,210,111,203,171,185,178,61,118,98,127,44,151,166,175,107,40,69,244,215,81,164,9,178,154,82,201,251,142,229,203,18,116,157,147,41,36,202,48,10,11,103,67,134,84,93,98,170,116,155,111,36,167,93,182,228,30,20,160,23,220,18,16,150,81,87,135,75,72,27,87,124,174,255,89,53,153,77,113,141,7,114,190,255,201,14,216,37,50,125,108,162,94,196,227,5,238,248,146,240,111,212,130,15,15,38,188,49,3,2,109,24,101,65,145,179,103,234,64,70,41,250,134,160,209,152,53,159,132,35,234,52,162,77,136,115,118,20,236,81,190,47,99,151,192,171,76,185,193,189,207,183,15,179,169,190,58,185,92,154,42,184,160,241,133,249,241,57,75,133,163,1,109,71,8,121,155,71,99,48,229,130,168,17,12,62,122,178,72,148,138,30,104,188,213,156,114,32,105,1,57,69,29,22,33,107,69,146,67,81,216,131,128,179,95,58,123,126,45,44,229,7,22,164,156,185,177,18,202,1,225,65,195,134,198,21,34,63,66,227,120,177,88,152,121,230,101,196,80,167,243,188,78,45,107,253,21,47,59,128,53,132,14,190,93,179,250,146,50,191,0,236,242,164,186,222,6,82,100,176,19,60,34,16,79,72,250,195,11,226,195,228,242,244,59,185,71,30,238,149,157,135,24,186,148,47,165,54,21,135,171,126,213,227,70,202,195,33,212,98,145,242,116,219,31,8,239,161,56,41,139,211,168,224,162,72,97,156,151,119,121,163,234,104,73,66,147,119,43,31,121,145,231,10,86,236,89,49,95,90,126,86,42,206,91,247,230,102,34,35,241,29,56,217,129,239,43,132,165,186,220,207,105,188,78,251,26,250,238,41,16,146,228,96,177,116,152,225,62,168,209,32,191,162,140,18,167,44,104,129,158,43,56,106,9,89,229,44,16,234,27,55,18,134,122,210,126,234,237,32,188,100,255,86,250,163,38,198,7,15,34,128,244,23,96,229,153,178,233,1,83,238,117,25,153,58,99,35,2,251,96,204,252,24,69,238,0,208,168,19,180,189,30,112,158,56,130,117,199,208,42,133,34,171,42,159,150,251,16,114,58,26,89,141,52,73,66,160,111,28,49,135,27,123,42,240,229,117,78,164,85,146,51,177,180,106,238,230,85,233,140,49,66,177,220,112,209,208,140,242,214,215,12,135,226,81,206,77,16,206,96,110,90,166,213,25,203,155,111,48,92,54,131,253,140,42,225,80,141,160,171,196,89,224,241,189,174,25,10,225,158,223,165,40,20,140,34,216,44,129,78,186,2,196,46,245,73,53,126,16,19,95,210,242,234,251,152,102,54,202,110,48,110,3,30,187,220,91,90,157,99,191,186,35,17,173,149,180,66,119,163,240,172,32,90,107,123,90,123,66,82,252,232,62,52,242,50,226,195,240,80,40,105,185,253,202,236,76,244,44,116,45,47,249,130,139,173,63,232,103,148,243,126,95,87,221,246,44,110,86,220,143,20,77,254,95,27,21,57,103,114,233,117,184,1,198,80,209,41,227,120,86,144,204,40,175,200,80,122,201,66,92,246,235,117,131,118,45,69,231,158,148,31,78,40,159,199,70,58,134,147,31,170,49,190,208,99,228,34,68,26,34,42,76,120,244,90,118,201,188,37,206,93,145,209,31,9,241,229,121,188,124,60,82,57,245,143,10,33,253,53,145,7,2,98,30,129,247,89,0,152,55,128,225,209,125,90,7,65,131,182,78,39,70,178,221,91,126,70,25,66,187,232,157,63,6,198,237,226,172,70,88,206,131,13,148,215,53,248,67,28,43,85,205,103,2,201,97,93,63,27,217,214,19,158,79,206,155,222,199,171,109,126,95,97,101,118,183,255,214,58,97,27,43,94,244,60,62,144,196,75,128,179,206,81,12,136,232,132,111,92,218,73,241,3,126,153,47,116,220,143,139,17,233,117,53,103,65,153,73,139,178,142,153,246,175,137,38,177,167,55,106,181,60,89,7,6,78,140,134,32,12,35,127,18,244,90,110,107,49,210,223,210,77,250,128,196,145,24,112,85,52,11,176,153,71,157,32,221,246,61,129,35,173,206,111,112,92,13,201,94,171,145,181,60,141,241,250,153,190,106,25,53,223,229,222,19,233,16,93,121,145,78,13,115,87,17,136,85,70,137,245,13,68,247,30,244,193,249,242,169,168,230,196,233,218,132,192,67,140,81,68,189,130,3,47,184,245,126,231,91,143,115,247,99,226,12,111,102,92,147,192,112,128,116,233,141,136,197,7,106,202,101,235,146,242,102,20,61,160,227,61,60,79,199,210,30,46,213,22,168,63,134,152,208,182,12,100,82,10,122,238,197,61,88,122,192,120,109,237,197,71,126,200,42,9,8,78,79,207,122,248,6,95,132,200,228,202,39,58,76,252,225,81,56,97,31,161,244,1,219,108,242,65,128,182,227,123,188,225,128,22,197,95,222,89,164,221,238,245,232,87,239,156,132,211,12,23,67,231,238,149,51,13,254,188,10,114,243,31,54,179,78,151,30,213,85,21,6,65,234,2,158,199,201,243,155,176,52,107,233,227,190,223,111,34,223,70,238,190,232,175,48,9,37,160,200,68,70,235,168,222,193,15,62,178,229,21,160,165,42,232,135,55,75,93,139,239,90,69,207,250,230,13,49,118,237,57,111,149,183,31,160,55,11,115,255,226,57,77,89,169,18,112,123,24,71,32,74,6,141,189,207,223,76,70,106,174,225,105,168,130,64,24,250,11,28,197,149,53,6,111,21,7,246,23,250,15,188,187,100,247,157,67,61,89,9,248,254,153,179,194,182,171,234,22,198,64,97,241,249,216,92,25,75,224,67,100,185,225,236,162,47,210,57,75,133,74,61,95,229,144,5,43,159,30,20,97,90,227,174,29,23,173,7,191,169,12,159,70,174,179,173,194,101,254,129,187,42,116,172,222,239,23,16,122,179,36,168,194,206,143,201,157,183,103,45,232,101,54,195,233,181,7,20,225,7,153,170,149,115,198,98,42,72,149,93,28,181,132,125,100,125,142,117,146,196,182,47,184,50,19,82,31,29,43,104,225,95,126,228,139,238,188,57,46,154,112,97,147,26,149,76,237,35,129,169,221,31,192,76,54,207,74,201,163,82,106,225,225,198,159,52,72,165,217,176,40,191,54,219,78,94,77,16,0,6,76,225,135,32,169,133,212,221,164,190,67,198,126,129,92,51,221,221,18,174,106,221,107,109,254,150,226,234,115,204,78,43,85,16,93,103,94,96,250,45,251,45,159,50,31,223,242,226,43,17,50,86,29,7,23,116,236,220,163,197,167,39,13,234,150,104,88,155,97,4,164,215,58,198,181,40,144,136,164,15,167,78,199,160,211,33,25,201,36,68,132,155,129,115,85,178,22,67,164,225,185,248,135,156,202,187,92,110,93,58,136,191,194,236,16,163,216,225,145,114,221,132,31,194,183,169,90,63,2,9,104,29,73,210,97,110,177,197,159,177,123,217,83,111,41,25,251,110,101,212,245,111,148,97,104,157,166,196,233,122,198,207,106,216,180,7,84,115,227,89,67,181,13,13,246,201,150,178,225,146,242,219,18,211,93,138,129,5,12,28,58,77,235,247,170,54,209,154,33,186,202,211,112,146,216,197,160,101,61,206,51,18,65,193,223,207,175,197,39,151,210,186,50,11,19,193,204,4,38,34,37,101,123,241,188,117,192,211,109,147,186}, {60,121,128,204,237,237,49,150,94,136,230,61,150,92,28,150,190,253,109,60,249,70,5,102,229,53,222,4,73,247,23,148,200,126,29,247,229,88,240,81,248,135,101,254,46,234,238,69,75,191,249,198,147,220,190,97,253,249,97,232,33,43,46,201,61,128,134,25,94,5,251,35,231,196,175,105,61,201,114,58,72,142,116,234,70,210,105,230,193,240,234,4,154,89,182,12,156,131,22,53,253,252,32,166,155,32,120,188,216,161,7,232,134,200,59,142,204,8,113,234,191,223,86,196,119,137,59,134,33,109,15,122,91,63,192,229,180,234,3,184,183,190,112,243,22,218,134,212,14,102,99,230,155,147,183,16,206,154,74,118,146,157,135,67,6,127,35,75,108,41,95,61,28,226,232,215,134,215,67,232,110,33,183,40,24,74,46,9,19,166,248,30,123,137,124,84,54,183,93,128,143,187,118,96,63,207,14,250,67,48,141,88,24,254,232,61,164,15,139,137,147,31,34,215,173,70,146,2,108,228,93,131,83,210,53,18,244,24,196,148,90,114,4,23,30,47,90,218,213,138,220,57,160,165,149,150,172,146,54,183,228,25,29,211,116,168,191,48,28,45,35,184,115,226,195,189,21,222,156,110,69,196,240,220,238,76,242,169,69,50,154,99,210,239,68,9,157,100,199,172,76,189,237,147,24,179,96,84,6,107,1,43,107,139,150,60,197,72,57,55,190,137,39,68,32,26,154,185,153,39,79,40,222,168,67,107,1,211,227,125,247,36,236,7,239,143,44,78,226,250,106,105,184,185,215,95,12,61,72,89,142,85,236,182,67,87,118,189,97,1,151,91,52,158,209,56,83,207,70,18,124,100,140,84,128,158,24,252,249,168,142,239,5,185,104,233,74,148,177,168,84,198,125,2,252,188,35,118,207,3,229,205,100,99,108,29,38,121,18,136,161,186,138,78,106,93,217,9,225,174,201,54,80,122,114,252,210,8,52,39,8,1,174,187,79,249,50,23,206,48,154,7,162,209,215,2,94,86,117,247,158,28,171,227,127,63,211,36,41,124,56,32,176,231,242,39,11,13,147,97,15,154,82,97,202,219,243,9,61,16,164,147,115,153,239,142,145,98,89,244,237,188,166,161,102,109,166,213,178,154,235,60,134,41,64,102,239,232,133,173,248,157,96,149,168,43,100,178,145,18,140,7,207,105,178,60,39,3,129,242,254,161,5,119,26,194,161,217,110,195,232,153,48,236,63,125,99,175,100,162,77,213,72,237,239,8,216,115,199,130,0,48,237,142,20,6,162,207,30,142,193,154,62,96,210,151,240,198,129,214,102,168,207,85,48,243,215,230,26,156,19,144,68,97,129,77,93,244,0,176,111,114,229,116,12,126,184,51,68,191,249,125,95,253,154,108,161,86,209,78,230,153,104,129,252,210,124,39,94,92,248,232,103,111,175,250,24,16,44,89,43,247,239,119,178,48,98,75,238,243,149,228,71,54,24,64,58,229,134,152,20,118,181,171,200,216,34,233,44,193,140,55,143,24,121,196,193,79,228,164,22,231,239,73,24,21,155,161,98,173,138,220,124,69,122,187,100,221,111,184,194,173,211,90,140,234,115,32,210,198,56,1,171,107,31,37,145,81,176,69,123,201,53,67,92,212,79,89,41,120,197,183,237,216,42,48,140,248,42,130,231,214,118,54,156,54,60,218,53,212,117,7,158,63,104,237,236,167,235,125,200,235,176,67,121,54,144,119,133,213,106,63,252,95,33,84,188,111,175,209,51,57,159,244,158,203,162,228,213,17,196,241,70,99,148,128,120,188,99,52,130,40,43,2,10,79,204,21,29,31,235,201,25,128,121,111,197,181,167,171,138,237,215,182,28,234,59,123,134,193,80,3,29,252,195,192,240,144,173,131,89,151,78,100,157,161,189,251,251,146,123,241,151,150,253,98,163,15,30,115,193,211,162,206,201,76,246,114,119,141,130,92,141,242,90,176,88,128,40,69,44,245,65,185,129,175,253,153,47,94,208,254,178,130,92,195,190,101,133,119,157,88,217,204,28,152,147,221,151,221,87,172,55,126,200,237,233,65,31,21,92,59,213,175,23,86,182,197,112,80,23,42,160,130,98,210,83,167,46,185,229,7,196,104,189,166,193,1,206,129,207,54,232,222,22,45,69,236,156,23,10,235,141,77,83,218,4,201,110,142,56,49,42,150,125,16,198,164,169,76,203,126,85,62,75,230,200,236,251,21,132,55,8,219,5,120,224,98,131,170,221,74,133,23,89,57,206,34,12,236,29,217,153,134,3,227,42,251,11,212,205,155,171,31,228,12,200,2,146,137,49,72,238,244,245,169,94,146,156,60,201,138,29,66,28,42,22,105,79,66,224,217,154,85,101,51,127,222,102,131,223,140,254,149,203,120,202,237,250,9,27,200,39,239,64,30,167,218,176,131,24,252,214,187,186,140,84,213,115,254,225,190,174,131,253,226,168,202,209,6,246,70,224,111,221,33,194,108,81,239,162,136,254,122,236,244,33,77,154,170,179,121,93,209,219,92,43,86,23,181,126,230,95,252,170,133,47,217,6,242,34,55,122,84,13,178,29,221,202,179,167,20,208,17,101,195,109,186,94,161,251,172,247,6,180,233,213,107,200,8,63,159,228,175,198,132,243,199,12,170,158,145,53,251,206,193,137,57,177,225,244,255,162,197,73,242,63,185,39,217,184,34,212,71,184,80,134,112,77,24,227,249,59,235,200,105,124,93,6,104,36,139,45,0,228,216,53,184,55,142,49,203,105,110,1,233,69,114,186,97,96,163,29,34,209,254,253,102,146,92,253,69,147,45,106,15,144,163,246,25,98,110,228,27,134,212,112,110,57,22,224,187,30,176,128,152,42,85,222,50,48,202,112,110,130,54,225,95,167,178,138,105,48,96,247,124,7,187,250,20,73,58,26,91,133,35,137,105,167,170,247,167,121,197,68,222,166,156,72,39,65,108,187,159,58,50,15,105,252,144,33,198,182,99,147,115,60,222,184,88,233,26,80,139,189,229,248,34,243,227,149,112,251,168,228,175,243,153,216,233,126,127,195,173,254,151,160,181,239,25,247,135,3,62,218,95,230,225,77,112,60,25,224,141,69,213,87,55,177,13,34,138,166,234,27,230,226,239,80,139,150,26,32,244,54,4,223,201,221,90,91,137,13,193,146,236,234,17,245,225,163,70,208,178,237,109,129,137,172,166,118,127,114,9,51,4,225,125,62,67,23,138,164,241,21,20,207,132,114,65,94,99,128,134,197,147,199,180,75,178,110,196,187,126,136,127,186,180,74,8,237,78,37,33,127,78,45,190,89,18,137,10,241,254,135,30,60,223,97,222,8,120,113,153,127,125,40,243,101,213,111,11,128,37,179,69,141,186,86,235,196,179,72,156,192,131,93,18,11,235,153,205,67,35,136,9,180,10,72,52,206,184,91,162,141,74,255,44,147,38,119,83,164,16,130,49,185,243,90,152,251,164,229,196,51,130,8,125,77,128,150,249,96,140,47,222,204,211,174,146,23,253,33,135,112,199,33,57,58,184,19,218,149,224,97,175,55,31,12,193,42,234,239,144,61,58,71,141,46,97,84,246,105,188,195,158,176,53,147,24,21,187,234,97,207,59,46,171,213,204,238,87,181,138,155,11,203,99,57,68,6,63,238,80,146,40,99,42,253,0,23,12,246,189,64,197,189,30,28,176,182,112,223,190,90,14,230,117,137,66,190,211,151,211,76,163,6,189,217,32,75,255,211,253,51,240,93,58,24,129,117,112,222,178,25,196,196,42,146,215,87,110,139,19,233,206,59,75,174,16,117,115,117,97,188,210,106,70,253,90,225,197,48,239,205,45,193,157,84,220,46,187,50,136,14,54,181,76,194,42,252,24,35,16,35,177,65,178,218,212,24,187,85,111,3,31,218,244,161,186,77,212,210,220,237,11,23,253,118,109,229,57,229,49,239,178,28,135,154,90,163,221,58,180,112,85,121,50,188,108,155,51,35,113,252,228,111,160,81,61,3,19,222,88,97,211,164,107,55,250,241,201,10,205,51,224,117,187,60,177,22,36,5,244,240,6,252,4,67,128,55,92,24,245,199,157,204,130,83,29,170,94,191,151,29,197,147,153,209,1,55,48,103,232,188,94,237,203,32,206,73,33,27,92,9,228,67,11,218,188,36,41,166,153,74,164,238,71,69,232,103,18,51,13,238,112,138,114,100,180,180,170,188,128,147,194,37,178,68,55,12,119,245,193,241,82,196,47,91,227,245,245,137,220,251,109,51,56,50,68,9,77,56,210,50,117,167,36,116,231,57,137,61,150,125,64,208,135,212,230,33,219,13,68,177,221,146,73,78,5,142,145,167,185,165,49,150,227,144,94,187,50,152,62,227,38,223,87,83,88,219,225,62,109,42,23,64,196,149,112,125,64,103,175,169,215,2,230,172,142,102,108,6,2,175,173,56,112,238,0,101,73,25,158,13,3,196,203,241,98,162,56,163,211,206,23,4,122,188,158,8,169,77,55,48,24,245,223,64,144,222,54,248,110,9,169,25,121,53,197,85,9,101,127,253,0,179,6,56,73,204,64,113,40,110,252,206,171,137,209,126,1,52,199,29,153,197,92,74,31,191,218,1,223,152,67,4,152,120,20,190,223,173,41,152,96,216,40,171,161,242,192,198,188,36,142,227,86,249,39,127,253,106,203,237,105,81,164,223,153,209,17,38,200,156,91,41,31,211,127,227,182,200,33,190,235,240,253,14,126,231,170,62,29,192,99,111,143,80,64,124,241,176,189,243,109,101,103,252,222,85,230,165,189,218,92,58,127,10,174,72,210,51,220,190,173,45,25,5,116,25,96,178,132,174,92,245,10,193,133,250,195,88,117,235,46,109,254,70,136,105,2,201,202,41,21,43,28,139,98,59,74,81,249,57,239,246,110,170,57,156,58,187,195,148,118,65,187,219,87,82,130,53,185,35,200,216,177,185,250,195,169,127,115,146,2,66,214,200,85,9,214,174,164,70,197,87,154,212,182,205,188,22,159,32,196,171,30,13,69,66,119,187,32,4,47,68,205,211,70,26,101,84,223,30,50,83,195,65,170,15,16,73,163,139,168,53,88,163,87,93,185,63,240,40,30,241,130,84,157,42,203,123,18,184,71,162,238,174,169,44,87,246,83,0,169,179,254,184,122,127,98,185,175,15,217,241,31,63,156,118,188,141,21,93,232,76,159,80,11,101,233,131,91,117,25,25,233,29,92,244,108,56,120,26,48,27,72,124,218,149,231,97,136,251,224,76,70,224,219,8,54,141,235,244,147,108,255,21,169,178,217,212,109,50,86,239,98,154,121,89,207,178,77,248,8,73,63,63,204,206,162,48,184,239,20,112,93,77,245,30,164,230,169,101,149,137,214,11,125,229,20,42,66,207,236,42,133,238,64,183,75,103,49,190,210,248,127,37,88,21,62,29,198,49,2,20,110,213,28,21,158,106,196,182,164,164,107,243,104,217,92,212,119,55,186,96,118,139,243,63,170,54,209,190,23,1,70,215,213,204,201,160,59,173,79,149,217,95,40,168,200,48,170,39,44,31,243,159,27,17,243,118,211,0,132,249,131,44,113,23,3,43,41,239,88,97,49,235,69,169,231,91,183,39,187,188,13,215,255,63,137,223,218,214,53,23,99,34,73,234,225,110,91,211,147,72,121,160,101,41,6,45,145,232,123,86,178,150,54,122,24,59,241,242,221,68,25,65,29,147,255,98,122,79,162,6,25,241,235,241,152,173,40,247,94,148,64,82,247,95,52,217,181,161,117,102,226,67,38,79,165,227,92,23,114,139,0,169,188,68,115,33,148,55,215,111,19,205,252,251,198,139,12,56,39,145,14,105,222,56,125,43,5,164,117,83,167,130,55,207,239,7,27,246,98,77,213,40,66,212,115,10,73,69,155,213,101,89,37,134,154,178,168,144,117,202,103,145,183,14,245,210,51,164,140,74,128,156,89,82,21,140,30,162,120,246,225,48,175,29,7,95,35,103,17,115,55,204,8,84,166,60,185,246,18,39,17,225,69,48,141,196,222,164,124,111,43,28,111,6,237,63,232,41,186,159,247,138,242,244,174,85,149,168,237,144,41,200,23,99,135,116,112,210,20,152,220,147,124,102,167,72,74,101,86,127,183,153,214,194,171,247,89,242,24,8,163,197,244,132,168,46,28,197,116,81,167,79,56,145,145,68,227,210,65,62,77,70,63,23,34,119,192,225,122,63,231,245,157,62,219,111,17,79,68,183,83,43,239,79,23,42,106,141,51,1,145,52,49,199,95,255,44,195,156,86,108,106,176,96,160,161,63,178,22,117,46,163,86,250,206,180,91,81,208,2,112,199,227,54,234,29,219,33,1,234,6,40,147,187,81,116,93,69,202,114,99,133,23,150,1,165,123,66,86,111,85,75,147,138,176,105,127,252,151,122,209,71,34,188,66,145,86,72,25,156,115,132,42,81,106,194,96,206,249,150,81,189,239,122,51,77,112,172,91,47,51,232,202,152,180,80,11,77,63,61,192,178,41,3,124,0,130,181,117,73,222,11,163,66,19,121,95,137,68,17,147,3,206,25,103,248,164,32,155,64,61,103,205,16,120,108,15,43,137,194,83,201,145,204,16,189,242,224,148,192,172,145,108,16,154,242,28,115,170,135,156,17,168,251,107,115,250,228,221,182,33,170,5,121,173,157,80,140,173,23,25,139,152,88,11,36,164,95,39,124,209,251,228,193,214,33,239,111,117,73,85,44,223,175,232,50,54,170,212,192,97,174,224,92,156,196,147,229,43,93,196,70,93,234,30,83,241,157,158,130,250,56,68,185,55,184,153,84,109,15,207,133,140,165,143,115,240,78,180,13,83,178,104,87,14,20,141,128,229,177,109,175,79,206,90,82,188,40,150,92,73,179,129,87,22,208,121,84,155,216,78,240,1,168,33,221,85,125,32,58,219,131,167,181,2,79,79,8,105,65,245,167,20,224,21,217,30,134,66,80,2,87,125,126,94,95,125,143,217,158,206,125,59,127,239,133,183,30,3,61,220,32,80,65,32,13,33,69,189,152,244,112,221,20,66,34,181,90,183,167,245,203,78,24,210,28,144,200,218,194,32,165,46,168,233,86,230,233,193,47,70,167,173,206,244,8,189,232,244,14,11,19,219,176,85,38,100,243,39,64,117,119,112,238,178,80,220,77,14,43,69,167,69,45,169,88,211,237,194,253,159,18,211,104,185,58,251,147,216,179,64,147,146,240,207,110,193,88,24,186,167,3,148,193,26,201,26,33,84,163,2,225,180,73,185,28,206,28,219,139,190,56,83,72,211,82,78,189,198,151,203,136,155,188,232,155,113,57,3,235,211,250,139,189,128,51,113,212,128,35,190,26,238,121,115,61,126,38,24,123,189,92,152,59,134,162,195,89,180,166,209,67,117,147,244,174,58,203,13,226,207,108,70,138,6,92,226,107,108,69,94,120,151,206,203,73,129,105,104,165,61,83,235,184,249,240,206,128,15,17,100,250,251,216,65,12,168,210,40,181,144,39,198,41,88,118,15,47,252,241,95,246,62,62,235,246,54,202,112,212,203,145,255,45,35,200,172,129,151,83,121,54,34,220,195,89,77,51,52,253,22,137,140,227,3,224,31,205,68,137,186,103,119,125,145,68,138,246,44,177,94,185,200,204,192,112,86,147,161,205,170,124,14,98,162,81,132,46,23,254,139,166,59,100,15,112,77,112,147,142,95,16,153,81,247,178,176,83,225,230,146,76,36,18,53,231,165,40,23,211,169,207,136,29,35,175,59,196,64,94,226,134,117,85,149,60,233,57,68,8,119,28,5,20,239,96,87,244,45,145,144,236,248,84,142,26,5,124,51,120,172,137,67,48,158,132,28,84,83,2,11,202,10,51,18,189,5,45,216,0,80,231,43,183,39,83,89,170,242,112,161,59,245,91,20,79,26,112,25,18,112,173,14,9,104,11,37,118,9,235,133,221,177,43,59,80,79,206,75,164,25,33,25,159,142,131,223,24,180,251,174,24,4,216,139,188,76,255,143,250,171,99,201,13,83,253,92,250,56,206,23,181,97,58,18,226,247,29,174,246,103,94,23,24,146,141,224,143,165,219,5,128,6,79,225,231,42,204,164,81,36,31,88,237,174,0,10,28,73,34,81,142,221,45,91,51,141,32,174,14,58,147,253,15,1,188,242,22,129,74,4,174,85,47,90,204,120,30,203,241,53,212,138,54,156,33,146,129,132,231,246,102,88,78,131,177,232,75,9,53,86,113,29,222,1,197,91,106,175,106,188,123,213,172,245,149,181,70,133,240,157,245,164,213,181,150,38,155,140,57,85,22,244,158,114,23,249,185,144,163,188,104,72,75,35,233,229,112,70,35,211,139,171,183,29,39,83,105,140,211,123,37,150,36,129,198,36,217,6,174,21,217,109,115,251,168,85,56,9,221,111,228,200,85,222,107,171,62,245,164,72,235,33,40,243,153,61,105,67,112,216,142,226,192,224,101,204,157,147,104,152,232,194,18,81,166,252,109,135,68,56,63,247,41,9,231,10,223,9,93,152,2,70,63,161,163,35,97,28,196,155,4,21,245,80,53,50,241,192,248,37,151,223,88,123,237,218,16,155,126,111,47,195,12,171,0,169,232,177,196,164,226,212,197,71,11,191,139,175,102,208,186,192,213,79,120,83,197,39,49,189,20,2,227,229,29,63,99,228,176,195,94,225,55,198,214,207,76,216,30,150,152,161,22,96,65,94,220,43,49,2,74,4,13,136,87,244,62,229,124,255,139,4,89,131,179,106,64,24,109,56,179,237,251,113,110,191,20,198,127,22,11,224,254,51,200,181,162,146,148,214,55,39,61,10,42,237,130,228,24,129,177,98,38,52,116,101,4,115,226,206,51,24,102,46,90,146,88,96,227,21,213,178,126,109,71,227,146,191,10,198,31,88,9,29,87,215,199,221,146,135,18,61,42,163,173,94,65,11,136,242,45,29,17,241,32,41,44,98,134,184,84,26,71,141,173,79,48,21,137,116,37,237,62,195,245,19,217,43,109,79,1,79,94,147,26,132,170,50,234,190,190,177,179,123,199,134,34,8,64,57,46,61,219,108,206,59,56,23,213,27,129,222,69,209,3,75,165,99,175,174,230,220,54,47,71,88,148,152,64,55,249,235,23,84,159,20,105,89,150,231,240,152,206,190,173,180,179,123,141,32,223,205,159,119,223,244,191,242,16,183,254,84,160,37,79,157,17,41,252,190,40,32,176,99,59,174,143,70,211,195,56,86,202,252,112,198,234,109,39,68,191,100,190,212,193,14,10,89,178,60,98,11,47,31,71,110,148,116,191,126,235,216,66,176,32,203,5,255,121,77,150,69,2,235,24,236,54,97,10,64,39,25,245,183,75,49,96,234,48,254,244,6,49,161,47,193,109,180,100,57,20,8,175,164,239,43,249,245,229,136,227,101,42,76,181,151,215,17,96,55,215,199,88,25,87,98,191,185,159,181,246,252,69,202,47,72,166,175,42,72,183,87,210,104,155,186,66,200,235,50,105,156,49,172,10,223,18,33,169,237,253,0,205,213,114,188,191,111,231,218,11,159,95,44,91,127,137,181,188,90,84,85,145,124,134,68,191,167,41,47,19,107,155,82,18,216,130,239,96,243,247,214,197,196,193,154,154,149,46,164,245,164,108,64,153,183,101,32,232,83,244,142,35,212,16,165,23,15,208,252,179,80,196,170,128,223,111,244,8,79,226,188,129,11,67,134,139,235,24,68,136,139,12,109,240,43,231,76,2,157,197,31,197,29,182,151,80,228,43,232,36,2,208,44,154,151,21,80,224,91,212,85,239,47,180,122,63,247,80,178,85,44,149,159,230,18,206,177,189,213,6,217,221,210,251,93,182,12,90,55,45,137,127,8,25,225,60,89,171,53,77,27,163,58,19,149,72,87,172,153,98,12,99,192,68,201,13,211,57,115,159,250,236,136,74,54,66,125,166,111,199,169,155,134,38,230,28,228,97,170,16,179,137,38,89,68,185,168,249,124,8,211,195,174,97,26,127,80,247,117,38,86,83,11,192,152,145,188,130,151,79,199,197,84,127,13,73,220,232,92,80,77,231,225,119,76,180,127,40,145,156,244,3,62,225,89,86,233,174,215,237,118,108,129,161,101,44,116,80,52,29,217,179,90,6,86,201,2,253,6,124,217,111,151,9,108,110,56,180,235,20,95,233,119,43,67,208,237,21,8,36,116,21,174,94,216,64,133,100,222,135,96,81,60,24,96,3,131,126,58,73,253,189,153,75,148,225,217,199,188,67,234,213,72,228,40,20,200,213,70,134,26,34,3,212,132,145,40,128,194,200,201,134,76,122,18,98,77,250,83,169,34,165,197,230,170,197,24,210,127,55,247,91,80,196,21,70,35,86,3,183,28,32,40,96,19,249,42,135,132,202,228,59,35,36,108,173,82,131,211,17,127,149,236,14,152,132,254,32,48,126,104,126,122,119,202,246,233,60,184,238,242,22,209,11,1,147,105,6,31,68,8,2,248,139,200,158,130,238,184,214,24,54,104,159,250,61,95,124,134,216,116,206,58,155,100,240,61,46,144,115,202,220,176,39,252,4,23,17,138,90,99,131,200,163,162,230,32,182,161,184,248,215,168,16,134,129,94,178,221,221,90,58,155,213,179,235,76,74,62,1,40,237,81,245,50,48,243,5,127,41,142,237,203,161,21,103,65,162,250,37,115,253,7,117,128,97,144,105,116,40,185,192,108,206,121,170,67,195,114,35,12,14,117,67,222,186,96,41,191,207,200,82,65,174,12,10,2,213,125,242,236,160,255,166,57,82,204,191,153,226,81,229,239,163,119,218,122,207,60,186,255,233,119,10,85,146,77,157,176,147,69,113,36,94,134,145,139,114,81,91,157,188,220,113,245,22,231,45,100,157,10,131,63,69,228,86,18,223,88,197,183,193,168,38,254,219,7,46,45,254,143,77,95,138,46,72,223,148,182,189,239,211,81,184,30,40,233,191,28,210,38,82,11,64,75,236,70,171,91,13,53,32,171,121,121,219,101,154,175,171,101,124,236,34,66,229,172,48,191,191,146,63,37,163,106,225,248,139,70,144,153,68,247,237,187,55,116,72,132,2,215,152,159,202,253,91,220,242,172,217,250,181,16,150,247,239,241,105,17,109,102,27,131,10,231,119,114,6,246,21,26,103,140,156,36,17,92,23,97,28,133,246,242,200,87,169,35,95,96,183,213,175,71,165,184,140,195,238,58,135,203,62,24,244,139,80,194,112,41,213,249,240,173,2,203,16,206,208,152,163,197,213,144,230,92,199,214,43,166,60,24,201,152,127,78,128,63,108,207,37,86,171,253,4,126,35,81,74,152,96,139,163,238,205,25,215,184,153,201}, {178,31,57,88,204,230,178,20,27,182,148,21,74,78,249,58,90,147,125,99,219,31,200,181,111,248,9,93,99,117,42,114,84,170,130,52,238,49,79,20,147,48,14,122,26,98,23,245,236,191,58,122,153,188,166,35,52,55,141,55,43,13,213,163,229,2,65,114,157,95,228,219,233,42,189,169,94,159,25,229,175,165,41,133,127,71,169,200,57,117,60,19,60,89,152,98,20,219,30,238,192,128,86,174,152,81,108,50,200,201,46,35,11,241,206,148,17,124,208,90,133,77,224,78,203,32,14,173,57,81,114,161,40,59,77,186,43,91,72,27,101,152,109,222,64,254,136,39,20,1,80,49,46,239,5,109,64,80,167,121,189,36,37,92,3,109,108,115,46,240,119,249,215,223,12,125,164,113,16,239,27,250,201,37,132,243,239,101,36,27,51,142,170,79,4,233,113,250,126,56,149,253,139,245,55,145,4,127,130,199,143,94,140,205,225,67,141,234,185,213,44,218,194,15,183,227,142,126,171,221,32,125,26,215,100,18,47,43,190,2,84,254,156,85,45,77,31,210,94,178,224,136,171,204,78,163,101,203,251,84,52,37,198,115,35,73,105,83,75,79,144,122,206,199,7,236,170,0,173,87,222,217,184,209,72,214,218,209,25,180,59,40,204,144,69,104,26,151,107,248,231,26,151,227,222,102,130,202,171,251,226,67,194,229,196,218,131,79,241,174,35,54,225,140,59,175,7,44,190,44,110,40,94,135,18,16,202,148,125,98,132,51,2,103,214,165,139,195,185,103,103,117,98,95,169,40,78,87,180,178,227,77,53,92,187,222,176,103,172,247,62,68,213,162,52,102,49,128,254,160,56,217,27,89,213,56,65,86,5,222,15,224,87,153,197,230,40,166,121,94,132,247,94,192,199,223,80,181,71,60,113,240,81,91,219,16,232,244,90,82,249,247,48,133,193,131,90,117,25,181,222,149,107,159,162,222,113,194,60,208,183,157,110,57,98,255,162,163,77,230,127,39,131,101,43,96,243,148,112,208,218,185,199,22,48,83,206,253,131,251,35,158,19,121,176,135,202,36,180,123,66,211,46,116,47,239,212,40,157,236,181,238,88,127,193,172,212,109,245,92,215,34,250,170,12,234,99,87,229,40,31,218,179,163,149,241,234,41,50,209,224,13,164,126,193,149,209,159,114,212,184,156,31,106,1,227,61,149,139,36,168,174,251,138,195,174,113,140,241,43,114,170,211,59,50,212,79,8,181,169,249,75,49,229,228,70,147,127,211,159,101,193,16,241,250,158,142,235,162,98,202,112,43,214,57,216,77,92,211,129,104,185,71,193,221,108,205,232,147,142,93,173,73,196,122,204,12,199,57,140,250,190,80,50,77,53,28,56,32,198,3,193,164,107,193,155,132,2,93,19,203,115,7,145,189,152,27,148,124,197,125,253,9,245,188,115,87,84,174,154,90,131,28,181,102,59,93,222,43,124,86,79,84,4,205,63,159,73,137,66,182,135,179,94,207,222,87,117,102,119,250,214,19,139,98,39,129,29,96,43,1,0,189,28,146,38,119,172,246,215,63,68,3,105,113,160,131,198,241,176,115,209,223,123,64,91,205,140,154,223,230,169,51,70,173,12,153,55,144,110,249,230,127,126,192,5,40,126,149,240,72,15,232,148,87,220,204,203,51,80,3,128,255,6,100,103,1,70,60,70,125,154,153,103,232,99,49,53,239,70,78,113,162,182,246,28,49,198,244,152,131,34,36,225,77,111,223,176,155,218,8,128,133,207,179,197,246,68,145,121,5,197,217,76,93,90,204,243,5,79,220,52,95,197,154,188,148,234,155,116,131,167,188,148,101,77,213,188,212,205,190,252,253,63,214,78,69,246,100,251,184,240,143,33,148,137,190,84,242,234,168,153,94,51,170,248,107,205,84,86,85,229,88,192,169,86,245,122,151,123,228,163,182,111,149,197,77,129,0,43,247,100,111,85,2,93,129,209,89,18,50,188,61,243,74,61,7,9,167,151,75,57,205,129,253,77,114,240,67,213,112,21,138,136,100,13,115,224,65,200,61,107,57,14,110,49,7,31,226,225,144,6,182,228,86,72,102,144,177,228,111,8,37,79,81,166,79,248,195,90,8,104,28,54,97,225,30,242,50,170,196,87,143,65,198,203,129,129,136,188,169,126,4,131,24,253,248,1,238,159,252,0,224,246,75,177,174,169,175,143,246,134,205,44,143,72,23,100,22,134,250,114,157,123,234,16,57,232,131,146,175,239,35,204,182,137,173,70,72,219,207,150,60,35,34,89,83,96,105,28,55,221,56,90,202,18,65,65,143,47,77,215,255,171,114,148,6,11,120,221,147,59,189,49,73,217,77,233,219,7,127,73,216,216,225,30,235,221,215,126,101,85,143,51,84,34,46,143,23,119,161,255,1,114,47,68,248,141,32,34,112,130,74,215,120,155,163,195,10,16,150,225,61,16,20,237,59,91,134,177,34,51,39,116,5,206,10,180,46,166,94,90,160,246,128,46,115,110,12,161,73,242,52,102,66,127,47,27,3,8,64,136,108,188,42,126,200,45,90,61,119,195,200,253,75,226,114,196,93,78,230,35,132,80,164,149,185,206,160,31,130,241,118,158,152,152,77,138,136,123,183,169,156,138,139,187,168,20,159,172,125,114,71,116,235,75,214,184,238,18,147,124,22,98,101,74,0,35,190,27,184,216,2,78,192,198,255,123,205,233,80,206,80,237,237,170,152,28,127,128,121,224,72,19,199,117,84,81,243,174,148,247,108,127,232,255,31,118,97,159,71,226,242,151,82,200,8,161,238,87,6,85,107,91,238,46,127,210,145,224,90,218,92,72,132,111,176,211,239,74,110,5,152,242,110,63,233,40,202,205,50,138,213,15,228,191,17,81,29,103,60,187,136,127,229,17,111,180,251,93,216,202,41,111,29,24,149,153,138,84,22,54,234,237,68,184,27,221,124,75,166,103,128,38,75,213,132,59,250,153,32,228,194,0,131,169,66,223,87,119,124,175,176,6,241,118,179,33,177,86,44,113,116,144,144,207,161,249,113,28,30,96,186,138,110,118,218,127,190,172,101,159,173,112,247,215,203,104,162,253,77,121,129,137,118,53,249,178,167,143,9,192,70,35,205,243,211,128,219,235,73,239,213,90,188,207,98,57,165,139,18,57,165,175,211,138,74,214,200,200,194,117,158,232,152,237,206,206,28,215,175,132,193,90,19,251,255,247,93,70,34,144,182,251,169,253,214,55,149,100,36,217,83,21,176,126,194,39,13,201,66,185,9,141,219,70,250,239,126,20,227,161,247,24,121,144,118,199,10,248,32,132,173,193,171,11,167,157,238,30,70,219,51,216,23,245,60,161,210,224,242,254,137,245,219,149,124,181,142,65,208,224,89,236,167,249,234,68,67,31,175,64,121,35,176,184,185,58,88,226,21,240,167,167,237,141,222,120,30,49,79,230,215,97,196,125,57,121,20,85,33,214,38,108,178,239,209,35,89,161,242,0,141,40,101,51,202,192,124,10,240,204,249,127,13,59,16,56,224,237,160,132,126,1,70,59,28,174,78,13,23,128,224,14,54,208,229,255,235,5,134,114,208,46,51,195,17,233,60,75,198,155,227,67,132,160,187,154,80,29,20,111,137,103,234,101,195,105,133,116,143,65,31,117,233,159,103,191,160,83,208,92,112,107,168,59,65,8,21,46,89,223,29,202,8,98,116,80,81,111,136,49,199,44,219,81,7,37,7,118,114,142,205,197,148,186,193,38,189,97,201,231,13,83,44,110,165,17,129,7,235,103,179,10,164,214,209,131,227,188,152,250,132,172,10,217,91,14,92,223,95,15,109,147,238,97,147,120,227,152,174,75,185,37,169,234,72,68,204,83,126,236,80,95,3,189,152,170,168,111,237,155,70,98,194,13,38,211,147,8,175,183,47,122,124,128,61,175,204,97,236,48,129,41,65,171,68,237,92,98,104,218,152,6,104,220,145,233,177,124,17,250,143,34,248,121,124,11,200,133,117,133,35,18,80,55,178,121,59,103,126,70,172,241,136,189,233,230,165,147,143,231,222,16,74,130,249,215,39,254,66,133,1,181,189,30,11,133,97,21,191,111,126,28,34,91,187,202,3,72,8,150,99,191,243,71,114,85,152,192,136,70,11,97,123,56,69,163,77,244,17,115,212,211,248,66,244,28,163,51,147,138,116,154,28,71,209,130,212,39,54,139,204,18,177,81,166,170,219,214,83,84,159,63,36,84,210,30,196,181,67,27,74,163,59,203,195,16,46,186,140,118,142,140,59,148,226,233,205,230,76,208,70,184,143,164,12,171,116,32,162,152,90,7,188,186,106,28,153,94,219,164,129,129,136,194,36,94,110,89,29,208,33,204,233,50,171,32,68,216,67,249,33,246,144,254,229,207,207,41,191,121,198,227,190,157,199,18,147,177,79,79,162,205,112,196,50,27,242,52,99,174,14,167,81,131,49,197,157,83,48,62,98,24,221,143,254,91,186,174,120,155,55,2,100,87,201,57,255,40,27,111,39,32,176,171,210,228,239,93,216,179,22,223,218,31,228,189,55,73,0,38,6,92,150,241,34,113,223,22,85,134,223,76,26,110,239,253,92,232,94,192,253,169,37,100,15,112,0,115,218,185,74,237,232,56,10,164,195,60,131,11,18,228,173,165,216,156,176,99,50,121,87,139,244,69,169,50,163,3,136,196,24,174,103,244,230,25,166,100,92,189,153,73,166,246,222,100,66,181,130,51,197,252,61,236,55,174,146,81,125,243,164,158,105,139,168,224,120,204,13,141,22,86,87,220,169,169,178,8,226,152,70,58,10,100,99,236,84,109,23,83,89,222,6,15,32,82,137,110,34,109,20,77,115,70,140,127,92,219,27,143,60,56,151,187,101,75,111,141,178,7,105,195,31,66,122,144,205,15,252,86,214,206,47,65,14,90,117,22,252,171,28,164,193,239,142,87,203,201,35,185,60,62,88,0,97,194,20,26,203,69,122,63,235,80,236,7,105,29,90,223,145,44,32,62,37,250,45,180,62,130,54,93,179,20,29,152,251,51,225,118,58,5,87,55,133,124,138,181,28,239,191,0,153,124,239,177,214,152,94,45,209,107,99,216,60,8,207,94,231,11,175,146,174,79,254,145,57,140,146,53,146,204,211,146,88,199,53,162,109,125,30,179,138,101,198,57,217,192,252,228,114,179,172,217,88,4,14,76,67,106,20,53,215,2,109,112,122,74,232,178,87,28,208,146,128,73,156,20,211,179,200,70,129,253,224,74,13,198,121,79,112,237,135,142,61,187,48,228,37,30,224,194,135,218,238,255,24,168,67,236,250,253,206,99,68,19,239,198,213,209,81,89,86,39,125,208,202,158,26,5,167,217,17,64,179,240,199,106,98,212,44,25,219,250,251,27,87,212,240,243,112,222,0,156,137,132,199,99,97,232,117,197,197,116,67,219,112,3,210,252,38,60,40,186,219,152,180,182,206,176,114,5,158,191,80,147,242,138,195,181,4,155,229,65,94,149,181,24,244,206,63,247,243,73,113,138,132,32,156,102,30,83,70,170,32,87,222,175,214,157,144,63,140,32,31,129,125,92,175,205,118,116,39,222,110,102,208,129,30,53,80,215,247,17,165,249,78,19,145,73,180,73,134,12,69,200,132,169,104,61,163,73,64,139,70,152,45,97,23,163,244,122,8,37,67,158,207,255,12,144,206,70,135,199,132,95,215,180,55,241,98,35,240,132,152,157,190,245,208,136,206,251,226,32,183,114,193,137,120,139,54,102,159,17,108,65,237,233,92,144,192,0,145,144,210,122,179,118,233,242,156,117,52,161,231,236,246,222,215,145,47,61,49,70,229,254,75,119,222,134,165,232,54,37,91,163,233,229,179,245,244,145,26,247,163,141,104,188,248,239,78,120,208,210,46,41,169,107,30,44,169,99,240,240,73,182,80,227,38,64,68,97,20,125,80,95,56,51,187,20,177,222,253,61,19,179,63,39,170,105,204,247,171,157,101,198,251,137,89,177,252,87,213,66,81,6,150,154,20,177,191,59,26,65,7,163,72,201,102,106,3,131,196,164,156,98,73,1,34,48,7,166,195,42,118,14,132,0,71,101,191,197,48,104,167,87,250,27,74,60,183,196,47,30,182,188,157,18,58,35,182,221,22,77,162,36,225,26,178,156,154,26,162,142,6,214,10,228,197,111,82,232,167,90,158,99,16,236,184,252,70,8,118,203,100,241,146,44,242,176,202,173,31,233,102,248,123,31,211,78,252,105,202,195,234,60,127,191,74,89,164,135,47,174,104,216,94,55,13,72,244,94,118,57,101,64,88,79,6,2,0,219,12,255,176,189,39,59,229,125,155,236,100,146,203,169,185,140,114,236,95,20,47,172,160,242,101,143,17,68,227,99,138,200,81,169,34,61,85,155,152,114,114,97,11,19,76,155,206,229,149,115,47,149,29,5,185,230,119,31,23,32,112,16,155,77,169,173,130,96,121,194,109,94,1,97,217,20,252,139,202,49,1,142,247,32,148,219,216,166,113,68,135,218,242,178,145,28,161,95,99,148,8,111,14,100,224,47,76,167,29,181,27,122,152,8,205,7,236,68,119,189,142,15,48,152,191,104,126,44,111,0,41,37,39,223,147,182,83,77,89,168,211,205,121,218,210,33,159,164,202,64,89,103,238,249,90,70,158,103,8,81,104,22,141,69,2,147,56,124,112,105,51,60,140,215,40,148,19,151,233,145,94,191,98,225,95,57,113,32,244,236,86,52,95,49,183,143,83,61,60,142,54,67,100,175,7,6,85,56,186,122,246,123,127,90,151,132,254,176,168,48,101,27,168,179,239,144,48,217,99,231,190,14,228,102,133,62,15,229,73,204,44,220,50,255,181,183,101,45,44,245,211,54,50,105,219,10,111,132,20,229,227,174,74,174,178,97,251,249,53,186,116,201,66,230,151,252,196,199,116,83,129,203,12,206,226,252,47,7,188,19,54,169,49,135,184,250,248,233,131,242,190,49,246,28,72,127,49,226,178,245,235,5,182,223,45,2,34,244,213,178,110,63,53,146,110,44,102,147,123,131,159,153,179,154,204,8,37,77,93,253,103,218,123,33,186,162,171,215,163,100,241,87,38,222,184,148,186,224,155,107,22,248,251,44,241,229,120,209,171,74,1,21,70,16,2,239,48,127,202,225,42,74,41,114,23,184,29,54,103,230,179,149,221,184,149,165,37,124,227,224,37,100,168,16,45,255,191,240,135,7,226,237,181,127,109,125,239,0,99,13,171,152,182,222,94,38,133,129,178,67,254,90,9,19,39,29,221,237,200,5,4,11,26,70,173,121,25,94,49,9,101,7,247,22,248,250,21,178,125,38,84,24,226,74,104,133,160,222,210,6,88,48,29,207,227,212,206,126,228,51,38,141,66,90,77,214,215,212,156,112,168,94,190,5,133,204,166,186,222,109,11,249,150,255,49,214,90,77,198,122,211,162,44,210,132,53,44,88,192,89,58,133,12,29,168,105,211,255,88,30,214,80,69,219,98,125,255,121,224,0,231,55,162,190,104,145,5,83,117,194,104,83,175,143,214,122,143,59,123,127,109,74,133,100,165,220,245,12,251,170,4,13,139,148,254,11,45,208,66,5,30,181,10,64,21,55,34,95,141,171,60,215,230,11,146,36,68,92,146,30,107,228,60,38,138,203,163,115,90,238,189,17,116,59,191,122,53,32,237,242,30,43,123,161,50,1,163,211,97,215,247,32,22,183,188,223,60,169,245,241,173,232,237,96,103,42,176,201,116,185,75,232,151,96,17,5,40,219,167,73,1,42,217,126,221,254,151,34,59,102,62,247,53,8,54,118,97,223,25,153,250,77,72,116,156,101,248,82,199,201,195,128,28,133,49,239,97,23,195,78,118,243,149,165,196,171,136,246,67,97,112,230,47,39,236,185,120,66,183,157,19,88,214,35,236,151,110,41,247,44,74,76,224,110,29,57,153,42,8,171,145,220,109,185,198,191,254,225,2,105,255,20,185,86,254,139,212,195,231,63,54,74,246,172,12,4,87,168,130,77,67,44,156,92,226,181,38,167,67,59,238,53,74,27,101,61,183,62,165,159,65,96,189,194,228,98,54,32,107,195,225,194,153,70,187,133,75,145,89,119,51,174,202,68,177,201,107,76,250,36,230,118,26,238,139,144,87,135,40,53,220,171,215,51,181,26,20,16,72,148,100,120,203,103,123,94,30,205,198,18,193,111,2,219,238,100,108,26,17,244,81,230,138,236,184,26,155,214,42,25,44,242,222,32,121,113,32,44,221,114,182,57,101,150,125,87,114,16,185,199,255,110,59,43,96,139,36,16,55,3,25,2,219,164,180,142,27,86,130,170,242,3,217,250,187,243,207,217,227,128,120,213,65,193,210,92,3,40,192,23,199,154,232,68,8,146,254,94,43,125,129,18,191,171,2,187,249,203,145,76,3,40,157,151,36,0,81,167,241,205,78,126,217,28,5,125,249,204,84,59,221,124,191,205,132,141,97,171,28,50,56,75,141,254,125,149,169,131,247,115,135,7,195,214,181,62,191,204,228,180,169,120,220,13,100,249,208,228,196,159,183,5,137,63,12,37,94,67,250,98,204,78,23,142,193,106,21,158,134,147,31,44,58,241,192,68,119,52,254,197,56,225,9,161,66,37,99,54,45,223,107,41,59,63,169,73,187,31,196,110,20,51,225,121,12,34,204,27,33,0,128,156,42,91,62,19,244,64,74,207,148,36,249,39,127,148,32,59,250,33,137,171,97,7,109,198,108,175,208,110,54,169,11,109,178,213,9,38,65,98,130,51,104,115,20,238,117,228,252,109,9,206,234,148,115,173,205,16,171,22,17,243,202,39,98,240,158,192,97,152,219,217,153,94,68,22,214,184,94,82,204,218,39,225,90,22,254,64,245,192,166,80,0,174,164,101,247,104,172,217,253,6,88,133,114,99,27,17,227,84,43,182,187,138,12,28,141,98,131,203,36,248,76,221,84,208,210,146,40,196,41,162,218,225,227,79,56,171,253,186,70,74,213,217,96,124,27,70,248,5,81,123,165,227,36,65,101,80,66,192,239,197,124,209,187,78,246,94,174,114,230,121,5,77,158,33,23,158,235,124,37,248,95,152,246,101,7,129,147,82,79,215,180,13,244,162,213,198,157,191,121,123,48,98,59,30,28,93,197,61,219,113,87,36,72,181,105,100,233,197,3,90,160,205,178,131,117,246,77,131,172,249,255,91,154,158,39,222,167,43,157,18,146,3,170,115,166,13,107,40,42,79,200,137,118,58,6,58,47,188,66,181,188,7,166,41,18,67,73,147,224,48,92,246,115,190,66,144,92,64,24,23,234,63,139,241,180,24,39,112,75,31,32,171,86,140,190,136,157,79,21,253,110,203,244,0,149,204,136,208,51,3,215,201,127,93,239,41,232,68,98,214,100,22,232,115,74,44,177,204,43,36,212,16,134,126,53,60,89,9,82,222,189,36,53,169,22,244,219,198,132,34,78,45,162,152,207,251,147,205,102,214,250,241,19,191,28,46,241,252,242,244,23,56,41,208,143,82,220,175,68,248,119,127,211,55,88,222,124,230,172,213,59,236,92,75,94,181,187,71,65,163,142,211,162,132,141,191,198,198,131,188,245,52,8,93,254,4,164,31,117,183,252,181,22,183,19,19,21,223,46,74,213,100,113,73,69,107,69,253,184,170,16,191,94,136,53,65,104,95,104,1,15,190,106,209,184,172,80,249,87,193,230,31,224,161,7,195,152,155,57,236,238,214,103,214,199,138,81,18,189,189,91,232,171,16,245,198,176,173,114,166,110,160,103,20,146,88,250,51,34,192,34,55,89,230,251,168,47,228,5,96,216,194,99,81,26,196,162,20,206,123,186,117,71,250,207,29,54,243,218,129,72,203,9,211,225,124,121,214,175,201,49,132,26,86,216,115,212,210,166,25,155,17,89,135,39,12,24,13,227,204,166,176,63,23,25,225,95,253,245,64,109,18,37,66,2,64,193,142,59,224,9,58,138,147,255,102,96,200,53,57,84,111,125,28,62,233,99,5,34,101,218,201,147,210,85,0,254,207,26,221,31,91,118,132,126,177,125,127,225,46,211,180,88,113,164,32,67,234,253,57,177,118,145,227,166,172,99,11,190,13,223,245,200,149,244,244,192,47,189,236,28,7,87,196,52,135,55,159,132,139,255,255,139,156,48,123,188,127,160,252,106,199,65,143,201,218,216,220,142,108,241,39,228,207,160,249,188,105,4,197,199,206,111,179,31,210,235,93,89,134,49,8,106,250,145,193,14,254,25,102,219,97,153,216,54,58,158,49,46,157,206,189,136,6,196,193,49,51,2,219,57,253,160,228,74,28,99,213,17,58,109,9,37,32,170,139,115,103,214,179,30,178,244,251,122,13,101,232,135,25,248,10,150,208,200,4,212,76,35,177,213,140,70,243,3,53,179,58,254,30,244,135,242,46,91,250,18,233,94,237,19,90,8,103,104,109,137,128,170,157,213,192,47,89,48,80,197,207,247,161,140,245,235,207,131,236,150,148,126,51,180,220,224,138,217,254,51,94,189,240,156,60,38,83,2,10,14,84,9,12,46,247,123,147,194,140,231,55,187,235,121,214,32,216,238,159,23,228,101,125,143,62,150,63,88,216,22,17,189,233,160,223,231,0,0,205,244,12,143,72,183,137,163,154,172,208,20,116,186,217,212,229,101,211,112,98,37,31,89,89,74,222,92,95,140,32,104,2,41,61,69,42,138,121,57,120,132,7,35,144,0,117,172,161,138,134,50,69,27,45,171,250,164,205,158,252,6,255,43,53,49,214,236,10,21,12,106,202,112,180,210,223,94,60,57,119,124,167,182,157,222,159,6,187,45,193,117,66,79,165,227,251,46,166,56,27,98,246,183,204,111,101,78,74,98,220,106,34,69,110,182,57,220,205,214,210,114,97,77,181,9,42,197,246,5,78,236,203,35,90,4,100,79,164,130,222,19,158,76,29,231,86,170,78,28,57,149,38,46,84,217,147,233,205,221,108,47,64,211,161,115,135,27,131,28,62,115,25,99,89,24,111,42,7,250,86,85,228,163,6,88,127,207,139,179,116,248,141,168,115,22,249,165,178,251,7,217,4,154,112,85,234,171,211,202,113,160,222,65,121,15,163,248,215,136,6,149,209,82,50,36,131,96,18,221,178,20,50,107,55,158,22,231,196,186,248,103,192,62,56,137,23,194,14,159,48,180,254,100,132,249,249,177,150,73,126,181,199,211,218,247,127,29,190,80,214,254,250,95,215,70,101,62,231,142,233,194,158,186,27,246,8,29,233,27,211,137,50,143,138,93,155,104,228,79,28,150,208,105,86,146,115,29,79,152,66,157,89,175,100,148,165}, {219,198,187,192,191,66,84,241,220,18,22,178,189,153,166,237,190,227,123,178,23,239,31,207,187,193,210,126,59,177,174,60,219,29,193,192,47,39,25,22,54,76,233,81,1,144,0,189,221,123,46,217,214,189,203,7,46,203,214,8,163,74,104,187,61,248,198,127,103,245,198,190,161,44,182,18,82,227,40,218,166,17,33,219,2,74,197,16,47,181,20,94,199,54,205,85,187,45,112,114,233,58,129,239,131,38,235,88,44,65,63,59,216,1,3,242,42,224,113,146,200,119,176,11,208,251,23,31,247,117,97,93,63,35,88,53,245,88,205,45,30,142,216,58,118,123,101,119,132,233,54,54,213,19,42,3,225,157,90,241,21,234,25,225,162,162,6,218,16,244,162,57,207,85,83,164,92,213,79,117,174,222,198,57,49,240,55,120,2,220,95,7,29,105,156,200,47,202,78,89,11,155,26,136,154,39,76,164,202,209,194,197,129,207,120,27,224,88,177,6,106,66,155,244,183,145,78,24,140,31,174,35,118,67,94,106,208,47,195,36,130,192,61,87,36,225,201,79,103,138,58,144,231,205,104,81,57,173,110,255,67,78,236,27,102,48,125,41,8,5,251,0,109,215,8,209,253,9,209,123,226,202,188,30,215,140,165,88,255,72,14,56,237,54,135,83,88,195,198,240,1,168,106,10,71,107,18,11,163,13,130,232,236,114,146,144,3,88,154,47,245,148,99,253,102,40,167,167,119,224,200,28,219,1,22,112,87,39,20,31,103,153,143,170,118,64,213,221,154,20,106,21,175,55,255,36,82,69,26,177,120,12,99,116,253,255,180,57,193,207,107,70,28,89,239,120,97,248,190,151,49,127,17,116,28,165,141,218,180,31,166,136,222,8,227,84,90,114,133,181,247,247,61,97,143,228,71,163,45,112,31,94,43,218,22,144,224,79,3,190,163,217,146,29,101,136,41,77,159,214,69,159,102,155,248,118,250,184,254,8,29,152,72,42,42,11,241,126,33,67,54,90,229,52,98,205,120,133,208,82,4,247,53,60,120,97,60,52,217,114,39,18,116,237,245,13,232,245,172,184,62,66,42,122,62,137,93,51,122,163,48,5,121,99,186,77,70,213,168,139,163,150,186,84,145,239,56,155,78,197,251,57,163,68,234,202,53,227,197,191,15,209,235,135,229,189,129,24,128,16,122,70,134,178,113,53,19,10,92,189,64,7,60,193,42,219,172,191,100,3,168,72,181,211,173,64,233,219,11,126,52,60,89,160,3,235,89,21,229,211,225,91,172,187,254,186,50,135,121,104,107,240,151,251,159,20,130,252,179,163,220,176,178,106,198,162,173,229,114,37,198,86,96,55,11,150,231,134,55,140,193,83,182,236,66,146,66,84,170,214,107,204,201,246,2,161,205,168,107,166,134,124,155,200,38,202,217,251,4,3,74,207,220,232,214,167,220,116,204,31,93,56,215,12,245,162,35,89,152,202,107,179,183,129,134,147,89,31,75,212,242,114,207,248,79,120,158,201,116,80,191,182,159,93,62,140,196,142,36,94,156,54,116,67,141,152,148,119,57,48,53,33,97,33,124,76,147,68,194,116,206,180,161,37,231,10,16,64,243,39,166,112,92,246,79,60,106,149,225,31,196,228,125,31,208,129,205,166,223,165,92,134,43,32,228,220,68,43,160,22,162,98,165,41,219,173,43,191,194,122,196,2,35,45,219,228,125,181,252,44,64,143,242,135,122,6,25,214,237,118,29,5,102,72,12,8,89,109,19,139,225,107,191,102,125,60,119,240,70,39,28,133,70,180,181,193,168,172,159,141,7,127,65,166,242,49,215,109,78,20,152,13,140,4,48,11,0,173,128,104,16,18,19,0,201,147,18,77,206,123,123,74,180,250,152,110,81,45,67,88,103,107,124,19,16,67,83,59,242,219,92,232,113,199,168,175,63,27,127,189,65,44,110,64,106,59,76,66,181,191,191,151,16,87,126,14,234,170,40,112,86,16,156,173,82,51,118,116,242,178,219,94,242,125,90,41,200,148,240,198,131,240,246,86,238,194,203,194,152,247,41,110,152,132,37,19,10,179,124,191,58,104,26,164,116,193,17,122,147,30,122,179,245,51,33,50,16,111,196,201,161,92,93,64,27,14,254,145,82,152,80,147,168,56,184,215,245,99,122,215,180,53,98,73,221,194,112,238,182,34,62,250,44,11,80,174,249,44,178,81,164,241,247,66,29,21,210,60,30,224,152,124,90,184,102,136,169,199,151,190,49,138,207,110,93,136,55,33,26,128,214,172,28,103,123,168,196,32,249,39,168,216,91,72,73,157,103,102,41,90,228,6,179,57,76,118,39,92,137,158,239,231,8,220,149,248,239,239,236,84,184,124,149,80,206,131,243,86,220,101,107,175,105,46,218,196,7,44,240,205,91,7,93,219,218,116,158,22,72,183,67,134,232,32,247,12,136,22,233,104,219,206,171,38,243,224,32,245,141,81,26,220,95,221,147,31,223,53,61,32,107,166,174,27,208,75,109,83,219,179,2,17,149,80,107,159,239,4,74,200,18,60,174,160,191,135,143,176,160,240,124,29,85,184,62,234,144,163,18,118,95,85,168,235,70,25,240,56,80,235,214,157,203,206,69,127,62,215,12,91,25,174,67,40,17,51,204,27,17,204,166,125,9,69,89,32,186,57,196,236,154,29,225,9,60,3,171,10,12,156,176,66,108,195,135,18,146,21,47,212,221,231,96,74,15,178,208,133,127,103,203,241,95,247,45,117,29,104,21,33,72,252,83,99,161,181,29,66,99,105,68,20,223,15,149,55,249,229,202,241,131,234,194,158,92,75,218,207,175,60,146,152,28,124,138,138,53,30,32,216,7,38,58,1,46,240,79,137,193,146,59,1,146,194,50,104,157,2,91,76,100,18,242,108,18,98,83,162,3,45,184,179,161,83,150,143,198,174,149,22,132,77,9,179,125,2,253,12,70,183,201,172,170,82,56,71,123,23,136,149,29,237,13,244,98,117,255,180,94,233,9,183,121,9,67,113,254,158,158,148,113,13,5,153,7,222,105,40,118,184,237,122,67,3,243,185,233,52,125,91,99,45,7,40,11,63,126,39,91,30,199,152,104,95,193,207,162,123,212,115,188,251,105,46,233,97,116,59,159,92,195,202,10,160,241,66,116,9,176,12,27,179,32,102,26,43,247,194,129,151,0,130,54,223,86,126,251,75,231,180,155,143,89,20,148,79,55,179,254,67,61,129,29,197,143,212,169,129,246,162,102,34,14,40,213,166,97,146,81,2,233,184,151,171,60,223,136,162,92,63,120,185,219,35,136,244,118,107,76,105,164,11,49,23,52,26,26,68,1,132,140,9,13,43,236,26,170,199,1,48,12,217,136,84,96,110,39,150,189,37,21,25,115,132,250,201,196,124,69,158,247,85,96,213,151,95,227,179,126,165,192,46,199,17,25,150,110,222,204,9,76,4,242,253,149,198,45,54,72,143,78,22,150,19,79,96,17,47,10,160,46,28,139,174,48,3,107,226,205,232,163,146,79,147,145,170,8,140,211,47,168,118,227,195,224,222,194,107,102,151,72,83,131,177,134,126,93,88,167,158,87,21,164,127,160,118,146,162,194,163,208,30,169,253,255,197,124,251,65,247,56,152,109,145,188,18,96,200,213,190,162,241,138,115,14,184,157,155,255,89,189,15,18,216,202,0,125,59,41,17,193,40,151,158,215,95,188,232,29,54,89,40,227,238,114,48,127,21,255,97,153,55,121,125,86,155,78,139,169,136,205,45,160,226,147,153,196,204,209,139,146,98,102,120,43,153,138,111,215,188,248,0,203,222,81,65,206,78,88,5,42,124,11,169,122,44,107,107,89,90,212,56,173,44,16,35,106,157,209,176,41,167,83,95,146,185,216,226,180,160,114,199,243,41,124,81,56,189,92,30,61,19,148,87,93,181,189,10,218,202,85,12,224,160,229,253,255,66,192,189,91,11,222,63,151,54,150,223,30,236,227,208,175,52,81,149,122,212,204,209,223,159,122,174,187,21,128,165,159,86,49,98,182,130,89,120,235,49,126,85,164,244,224,197,64,111,232,168,211,160,181,226,52,199,246,140,117,101,228,36,180,123,229,227,113,181,175,112,109,122,21,17,39,142,230,239,60,208,177,96,229,11,24,173,32,22,221,148,144,126,137,10,74,105,245,87,154,103,60,143,108,1,1,178,196,27,14,28,46,5,225,239,214,201,160,200,132,146,218,54,39,29,100,155,36,203,134,221,71,214,134,24,166,80,107,22,88,27,76,89,69,137,230,29,112,141,184,102,103,238,104,74,106,210,54,185,200,36,229,172,145,49,122,83,29,16,103,109,188,40,11,240,130,210,130,108,204,254,86,65,211,89,31,220,213,93,222,226,127,199,230,233,184,11,253,152,57,20,163,78,205,55,26,185,226,52,49,102,167,134,180,123,7,218,160,23,52,99,163,130,32,223,44,25,10,142,80,4,198,103,79,80,183,200,129,27,83,177,187,107,231,238,4,228,62,5,92,147,249,238,13,127,126,100,206,33,192,74,74,107,41,245,118,143,245,150,186,86,119,142,157,13,215,27,237,70,175,28,186,61,65,218,70,134,167,99,165,105,201,97,241,166,117,237,36,95,17,107,114,202,54,218,96,116,21,121,37,198,13,56,186,109,143,69,87,104,113,201,88,68,192,230,119,213,91,77,54,25,143,214,152,117,197,3,184,219,121,35,154,18,172,29,216,97,244,32,153,43,110,76,117,0,104,112,82,26,162,230,84,247,172,153,168,215,193,211,95,48,139,160,75,240,182,238,207,247,215,183,149,139,217,204,215,20,130,204,54,190,30,56,148,162,90,60,189,245,189,170,63,108,239,80,222,66,84,252,254,233,106,58,193,141,178,166,44,85,1,203,22,209,71,179,168,25,248,254,161,194,210,255,58,248,71,89,85,114,70,111,239,138,56,118,63,118,102,34,161,224,164,7,86,41,4,60,175,78,184,239,14,62,83,105,4,122,147,190,179,222,94,5,192,14,81,38,235,221,128,59,205,186,223,96,187,150,95,87,48,57,195,237,230,195,49,38,49,68,18,56,175,95,2,208,211,70,238,164,10,204,202,184,83,14,143,245,63,118,194,206,186,68,178,164,140,245,40,168,247,52,250,220,150,202,63,57,202,221,194,89,107,185,144,26,246,116,134,164,45,125,134,53,106,53,25,226,163,251,166,137,206,134,122,217,33,152,206,156,248,69,252,82,164,228,105,176,27,31,202,46,16,205,153,221,154,1,95,92,36,126,80,219,66,26,2,149,209,104,153,85,33,102,214,194,168,82,119,24,116,65,148,139,253,186,40,196,95,155,154,250,109,197,164,139,168,165,93,12,8,92,124,189,201,162,29,112,49,120,200,251,114,124,96,171,72,83,8,8,242,185,127,228,214,35,33,134,99,169,119,221,95,15,19,113,46,144,88,210,145,212,97,66,117,185,206,244,108,246,159,24,187,145,137,177,116,50,29,172,76,92,177,221,181,154,220,241,132,209,37,73,136,71,17,151,58,7,111,21,34,103,58,43,65,249,41,194,25,191,138,2,14,201,209,40,138,241,76,130,117,190,50,70,17,68,24,9,178,235,222,64,205,226,221,55,222,255,149,214,52,101,150,73,241,199,171,225,112,91,56,126,30,122,141,110,157,175,14,131,229,197,77,218,124,200,68,7,233,39,68,182,82,143,249,98,22,163,61,68,14,205,18,120,64,54,223,39,199,108,43,135,19,137,240,248,29,29,59,77,226,145,66,2,152,244,197,222,202,249,157,222,174,114,224,34,126,168,144,233,14,124,242,166,123,126,178,41,129,167,240,242,45,34,120,169,79,161,220,185,133,162,209,10,192,51,134,209,146,218,240,182,182,128,203,130,171,93,229,67,216,133,168,4,112,5,50,33,12,76,204,236,141,176,69,70,202,111,191,56,45,77,165,191,240,193,118,30,86,152,186,222,63,156,23,162,175,105,24,101,66,131,107,122,88,41,149,251,223,179,78,135,253,7,122,98,18,153,4,132,60,159,23,184,200,78,91,189,36,237,218,249,74,184,75,147,119,180,67,85,70,4,30,97,57,97,12,207,115,5,252,211,97,235,236,155,167,180,241,54,59,237,16,159,140,130,22,186,24,42,175,234,21,142,137,30,169,2,106,172,156,214,87,37,137,91,245,33,150,16,188,50,121,204,218,17,101,53,201,226,144,37,233,248,194,142,110,208,222,204,210,244,2,11,46,225,215,37,44,245,96,61,74,183,230,24,167,67,0,16,198,182,99,196,162,8,33,131,173,18,178,53,165,98,30,227,249,171,57,38,6,98,223,163,146,37,12,176,120,85,11,232,42,22,93,54,57,150,31,10,105,55,112,51,220,114,149,56,22,176,133,6,178,130,160,210,218,201,232,27,66,187,112,190,14,243,227,68,7,124,193,246,217,156,95,154,100,131,11,167,95,93,145,215,149,169,14,10,169,178,31,48,249,94,247,222,64,136,178,132,120,131,171,141,223,250,156,20,210,105,238,20,210,137,22,131,228,237,194,34,247,90,252,43,184,101,146,218,32,97,93,16,89,183,93,211,215,188,193,62,8,155,5,34,102,156,226,23,138,240,241,202,93,228,116,37,185,108,187,120,199,228,36,167,201,190,20,22,27,47,34,17,81,46,0,202,151,201,113,185,157,117,83,219,246,119,155,2,12,203,96,43,252,165,240,123,21,141,164,104,107,183,240,211,81,124,196,210,64,133,185,132,246,179,7,44,79,37,199,148,91,128,56,10,145,33,30,237,242,184,208,194,90,182,91,162,241,121,238,238,102,27,113,135,217,63,37,0,252,231,216,242,31,12,192,40,246,134,175,182,215,92,55,231,246,194,221,35,109,1,10,226,109,180,70,44,101,85,121,108,72,201,123,183,6,13,79,130,255,192,146,213,72,126,58,120,186,170,44,85,222,253,193,73,232,128,52,114,51,28,177,44,88,63,157,32,105,142,205,223,127,230,98,199,241,163,209,163,125,130,92,205,120,1,70,114,210,6,196,227,104,136,151,177,45,120,149,73,155,246,116,160,75,153,136,31,216,189,115,15,23,120,26,229,121,205,205,55,108,246,140,200,202,164,116,34,92,126,112,34,9,87,85,24,131,5,179,254,170,168,79,92,23,145,75,9,112,239,87,82,209,179,126,147,200,145,244,231,187,125,160,2,51,99,198,67,176,220,176,96,70,110,127,113,98,51,207,83,119,220,214,226,225,143,73,192,59,75,239,166,249,136,205,64,167,64,12,209,198,11,254,232,204,230,70,122,204,98,146,218,214,199,173,141,246,216,165,149,176,148,163,60,149,189,188,59,132,252,13,210,28,141,86,124,101,62,237,168,41,239,220,168,193,85,57,167,91,103,105,38,68,175,152,69,104,176,170,118,134,69,150,8,72,212,237,218,43,217,91,134,228,156,190,240,158,25,147,137,253,221,207,28,238,210,170,195,83,238,120,186,113,248,114,185,101,94,39,144,42,254,30,175,122,80,24,69,49,172,215,73,124,148,203,97,163,208,0,39,2,129,161,47,107,9,150,172,47,162,107,149,55,57,211,133,159,7,126,220,28,5,229,134,219,52,217,129,174,251,2,83,200,249,158,145,132,158,180,121,120,23,19,74,205,75,14,218,133,216,46,47,13,172,194,167,26,75,6,214,30,169,47,30,251,84,23,129,71,154,219,175,43,86,78,231,65,115,39,89,248,163,151,110,54,84,85,4,49,80,154,18,13,223,164,72,130,212,80,25,250,239,45,232,94,252,171,169,97,91,189,120,59,85,196,29,60,87,222,239,3,141,181,189,83,132,158,67,201,232,162,0,149,161,221,128,121,80,177,63,168,236,242,61,31,234,164,96,56,75,180,127,204,188,138,27,140,224,245,10,210,137,235,48,12,56,233,241,50,44,102,42,197,185,14,23,28,14,53,144,60,111,167,233,128,21,88,171,146,214,95,91,88,213,21,3,183,205,42,210,213,156,184,173,163,254,13,175,194,56,223,140,64,25,173,196,177,83,212,107,234,80,242,63,91,33,80,218,213,175,32,255,203,183,88,242,186,43,149,18,18,245,195,197,177,240,172,118,165,102,231,0,71,106,111,132,53,253,90,73,252,202,87,252,252,156,157,70,56,47,255,144,122,77,167,222,140,166,84,84,182,164,102,0,51,54,8,216,15,147,44,160,186,12,87,54,23,188,136,159,108,209,12,243,36,250,56,57,130,107,39,85,158,229,198,134,175,55,53,31,177,118,169,218,36,138,84,131,4,146,26,181,151,107,187,220,209,38,241,240,28,51,245,35,143,229,64,70,110,94,146,129,229,241,141,195,200,3,98,33,40,190,160,0,101,159,188,169,53,141,167,4,222,151,4,252,110,192,63,173,36,205,180,19,61,237,246,44,41,65,152,88,74,215,14,33,33,133,22,143,238,39,120,246,24,103,225,144,13,209,68,171,81,140,90,150,56,55,36,78,187,28,121,209,0,211,23,197,37,191,31,110,31,224,66,36,12,157,30,120,183,182,81,67,4,114,134,115,156,60,210,192,180,230,60,237,39,79,170,167,86,102,109,253,147,86,121,91,130,44,110,177,197,124,240,175,29,242,155,12,214,222,213,22,203,146,22,80,197,146,185,238,14,73,224,113,135,23,198,20,116,199,149,1,29,76,176,101,88,51,87,160,140,34,124,25,229,158,81,246,215,144,233,67,117,39,48,80,153,73,79,233,40,180,200,130,231,91,251,188,201,135,119,20,218,161,202,11,12,157,214,204,30,245,166,96,27,195,155,100,249,250,89,217,249,202,159,211,252,177,60,97,116,238,135,226,221,145,106,248,196,153,89,74,83,174,27,121,41,90,77,51,76,226,189,223,107,251,125,69,167,162,101,198,252,11,115,215,133,70,7,167,39,183,57,244,18,49,33,50,112,85,208,50,205,174,247,211,122,169,34,197,185,2,43,126,143,13,137,243,2,159,106,245,172,59,91,235,41,5,203,165,248,11,180,181,146,21,36,139,171,165,232,133,200,63,115,55,178,20,150,0,214,15,166,224,228,120,36,184,43,147,23,52,148,204,11,2,81,229,141,34,163,126,141,252,40,74,167,249,153,230,106,48,180,215,40,156,108,253,228,224,18,108,243,118,28,248,44,218,179,145,193,159,231,141,42,229,129,11,21,3,154,5,50,184,236,103,74,115,25,29,215,24,171,231,117,207,110,62,202,88,158,143,169,234,175,200,244,165,122,236,153,167,63,106,31,129,48,84,7,204,159,172,30,184,25,199,76,141,243,221,161,2,5,76,182,214,240,208,34,160,49,77,56,45,91,202,23,26,1,32,217,158,34,39,176,213,210,216,183,69,110,161,39,228,42,171,29,9,92,11,185,84,1,229,115,135,194,51,114,234,67,177,29,98,49,83,104,148,167,124,187,198,218,22,6,162,124,182,244,136,38,61,68,72,230,156,119,85,243,166,18,122,47,124,210,140,6,183,233,195,136,99,38,179,241,31,121,246,42,161,214,200,159,113,18,193,59,12,177,181,210,77,217,177,127,247,61,156,126,115,35,199,102,206,226,148,218,111,6,106,78,195,41,186,235,182,81,187,126,134,51,146,181,155,255,120,13,5,20,122,57,73,151,59,197,203,8,240,146,87,205,109,52,81,30,223,239,106,154,81,95,200,232,226,19,62,49,226,216,145,107,83,79,183,111,109,248,72,41,204,195,100,138,71,165,41,84,212,169,37,24,114,139,98,172,42,25,197,7,238,85,31,222,76,144,60,66,242,49,15,126,136,178,249,96,233,21,82,128,90,163,120,119,238,108,12,56,127,229,189,13,107,31,251,86,50,250,183,84,76,44,95,215,235,178,11,133,25,223,40,144,68,57,134,115,107,179,213,48,35,148,26,91,190,83,55,146,64,29,99,87,241,245,169,241,153,29,42,169,206,158,148,219,247,185,84,118,13,79,225,115,117,26,159,192,120,60,21,107,179,149,148,118,215,213,133,239,144,130,197,169,94,123,82,108,75,131,159,146,134,152,14,86,173,47,7,46,130,142,17,116,77,27,35,37,101,117,5,57,167,16,232,97,116,183,203,19,254,66,126,242,195,65,103,178,33,222,40,223,48,41,210,47,100,12,48,225,195,128,47,200,221,159,102,234,69,159,191,171,104,185,42,141,90,203,240,52,246,138,28,236,57,181,66,29,143,116,199,5,18,99,28,215,19,9,29,155,95,95,47,251,34,124,160,170,54,185,131,34,17,10,216,168,134,206,145,222,67,199,194,108,235,43,72,218,48,26,142,184,54,158,208,130,178,86,109,211,107,33,73,141,85,202,112,112,169,56,200,114,173,165,48,154,236,36,193,170,54,43,185,250,200,184,2,156,233,191,16,132,18,249,195,40,208,250,31,235,221,114,166,211,237,96,10,108,148,193,190,158,14,114,123,145,5,23,212,217,195,84,235,189,169,21,125,28,145,105,74,72,0,13,94,166,3,84,43,131,240,85,21,233,205,244,204,246,216,45,233,129,225,139,141,171,83,36,185,156,216,99,206,195,148,221,141,79,77,253,147,27,105,44,96,73,45,132,13,65,251,92,150,134,91,36,246,190,171,76,155,78,136,97,18,25,102,73,134,195,0,124,129,210,228,28,85,41,132,30,246,166,196,162,69,177,67,153,63,198,20,86,147,57,123,127,132,223,252,156,82,132,240,160,108,60,36,98,22,127,19,104,188,53,23,90,199,103,10,84,180,210,34,17,195,37,80,199,191,90,87,156,107,214,146,57,171,37,200,165,156,137,93,210,124,92,236,7,112,48,199,244,79,184,80,15,128,27,8,35,204,249,156,143,144,236,207,14,113,88,102,223,236,187,137,241,100,135,130,118,64,194,38,192,155,233,227,214,239,40,95,96,170,226,85,166,181,237,225,131,50,35,114,80,153,5,119,2,114,185,44,206,181,102,27,215,77,42,181,3,125,248,85,80,28,152,106,104,180,178,218,111,13,219,116,236,156,21,108,36,91,231,200,45,113,154,132,180,134,46,131,192,231,77,235,54,97,90,43,144,168,80,48,246,153,220,112,63,80,111,163,27,14,79,34,77,164,148,109,64,113,227,132,88,72,39,163,72,106,139,217,69,39,102,230,61,73,250,107,157,48,222,17,52,58,203,134,72,107,245,53,183,180,68,51,228,43,28,5,184,35,238,205,140,212,150,255,163,143,41,99,108,8,186,210,82,177,46,202,211,2,106,10,114,164,83,161,38,249,251,9,108,51,241,122,84,229,156,234,148,57,41,100,44,13,159,27,60,126,57,242,239,105,222,197,222,49,139,25,130,105,218,127,49,99,29,187,158,2,65,8,111,182,246,153,19,34,204,218,253,207,177,24,138,231,192,151,252,63,91,178,33,247,117,202}, } ; static void test_decode_1277xint32_impl(long long impl) { unsigned char *x = test_decode_1277xint32_x; unsigned char *s = test_decode_1277xint32_s; unsigned char *x2 = test_decode_1277xint32_x2; unsigned char *s2 = test_decode_1277xint32_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_1277xint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_1277xint32(impl); printf("decode_1277xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_1277xint32_implementation(impl),ntruprime_dispatch_decode_1277xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_1277xint32; printf("decode_1277xint32 selected implementation %s compiler %s\n",ntruprime_decode_1277xint32_implementation(),ntruprime_decode_1277xint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_1277xint32_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_1277xint32_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_1277xint32_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_1277xint32_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_1277xint32_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_1277xint32_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_1277xint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"1277xint32")) return; storage_decode_1277xint32_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_1277xint32_x = aligned(storage_decode_1277xint32_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_1277xint32_s = callocplus(crypto_decode_STRBYTES); test_decode_1277xint32_s = aligned(storage_decode_1277xint32_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_1277xint32_x2 = callocplus(maxalloc); test_decode_1277xint32_x2 = aligned(storage_decode_1277xint32_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_1277xint32_s2 = callocplus(maxalloc); test_decode_1277xint32_s2 = aligned(storage_decode_1277xint32_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_1277xint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_1277xint32();++impl) forked(test_decode_1277xint32_impl,impl); ++test_decode_1277xint32_x; ++test_decode_1277xint32_s; ++test_decode_1277xint32_x2; ++test_decode_1277xint32_s2; } free(storage_decode_1277xint32_s2); free(storage_decode_1277xint32_x2); free(storage_decode_1277xint32_s); free(storage_decode_1277xint32_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_653x1541.c0000644000000000000000000007535414705505543022376 0ustar rootroot/* ----- decode/653x1541, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_653x1541_checksums[] = { "2173daf6ce1c01f7ed73da595704d4f9bb8bf3daefeca1b87d877bfed38357c8", "f70df1d328c5e9ed7779316472068293f57418ac0d14490ca9faf459cd8860d9", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_653x1541_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_653x1541_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_653x1541_ITEMBYTES static void *storage_decode_653x1541_x; static unsigned char *test_decode_653x1541_x; static void *storage_decode_653x1541_s; static unsigned char *test_decode_653x1541_s; static void *storage_decode_653x1541_x2; static unsigned char *test_decode_653x1541_x2; static void *storage_decode_653x1541_s2; static unsigned char *test_decode_653x1541_s2; #define precomputed_decode_653x1541_NUM 4 static const int16_t precomputed_decode_653x1541_x[precomputed_decode_653x1541_NUM][crypto_decode_ITEMS] = { {531,-1284,69,60,-1893,-222,-2262,2085,2127,-501,138,-1176,-879,-1134,2118,2115,-2010,1281,-1746,1539,75,1431,1425,906,507,-1887,2244,-1158,-1590,-2031,2244,207,1884,594,600,-387,-60,-351,-1857,1506,-1152,1539,528,192,2292,396,-492,-1371,471,1881,900,-1389,-1329,-933,720,1959,2172,1668,-255,1332,-2265,-1170,-1881,1149,957,-132,-135,1434,1944,-438,-2199,-1104,696,-1038,-30,-723,36,1623,-1500,-867,-2304,-705,-1248,585,-1542,-1563,258,840,1860,1836,-1935,-453,474,534,-1572,-237,-1404,0,-1221,-2070,-720,186,1038,-600,-1719,807,-1110,819,-1416,1875,-1620,-1356,741,-2172,231,1875,-1485,-1992,1581,462,963,123,1668,2097,-2016,-1773,2205,1803,-1677,2064,393,612,-714,789,-42,1323,63,-1026,-1608,534,1287,-1116,264,-1827,387,-984,-1251,-807,873,-1080,-72,819,24,-2226,75,132,-1359,1242,1533,885,45,-1098,-1155,1779,-261,1872,-912,1440,-867,-1959,648,441,444,993,-2076,-1650,954,-96,-1002,-1269,-858,438,-369,1053,-1692,270,2067,-1110,1689,1935,990,306,2193,1422,-1305,1104,1020,1920,2217,2142,2022,-1497,-642,-1248,1968,93,486,321,375,-870,1530,2109,-828,633,-696,-363,-1932,-2298,-1503,936,-2103,-636,1086,1380,-2058,576,2064,288,348,900,15,-1134,402,-1911,1599,1971,915,720,2163,-2310,-288,2142,-1263,963,-1833,-1413,729,-1329,-1860,717,1638,-978,-2139,1047,-1749,-1386,2118,-1725,1242,-1551,-447,-576,-156,1185,-78,597,-1476,-918,-1620,-1698,-1665,1830,39,-2229,1542,1362,-1677,-1644,1485,222,1746,-2289,879,-1065,-960,1719,474,360,345,642,-204,-840,54,2001,2190,1341,1074,-771,555,-1335,99,852,-1728,-1461,1551,2142,-1986,-195,-120,2208,1659,-897,-516,-2220,-1344,1017,1527,-753,108,2145,963,-1752,-213,1689,-1347,753,1761,78,1470,1872,1590,-201,-552,156,765,1578,-987,-729,-1284,519,1674,1137,1590,-1545,-411,75,-447,-1170,1662,-330,-162,-132,177,906,-1017,-1857,-2139,-1473,-492,1989,-1521,129,-1905,-2241,213,-390,237,873,900,1032,1338,-1857,-1077,1602,-2112,-1623,867,594,-1302,1428,111,1857,-1167,2253,2187,-195,-978,495,1956,1086,-552,-306,-1848,474,483,228,1203,-864,783,-1044,303,-1071,780,-1563,-1248,-804,675,774,-1791,-2193,960,1185,-1647,-1584,-1776,318,-1956,339,-432,486,1845,1278,1620,2115,1653,1257,222,1437,-2304,-999,66,-318,1065,1557,1407,2277,363,1752,708,93,456,2076,1065,-768,-1557,1569,150,810,-1932,1227,-1785,66,-948,573,1878,165,339,1278,48,1974,-6,1431,-585,780,831,-573,681,2184,-900,1203,-1152,-213,1506,-798,-2247,750,2223,543,-243,1881,174,-174,1839,-492,-828,1554,-1791,2010,792,-1269,1629,-2001,-1380,765,-1287,1095,-1248,1779,111,-1911,555,2238,-1338,159,-1740,1284,-2277,18,-1470,-1575,2043,-606,1524,1917,-969,1218,-477,-663,699,1590,1068,-2085,-1209,1431,1725,2199,2160,1428,-1677,1569,-27,-813,1233,-810,1284,-468,1689,1515,-2253,930,951,-480,-960,243,1575,-534,-1755,-1680,-1515,-2274,-531,1125,831,2226,531,-1902,-1791,1533,-960,177,-564,1953,144,1965,-930,-1422,-2235,1500,-921,-2103,-738,-51,1311,-1758,795,1620,-1134,1302,-2118,936,2172,975,-1098,-1095,744,-894,252,1386,2001,1932,-1200,1110,-1989,-1761,-1371,1701,228,-1566,-2292,-963,1590,75,1257,-2244,-1830,1953,1869,-381,1497,-2163,-1845,1029,-1338,-1485,-1380,-1095,-1053,1374,-342,-1440,915,-1488,-279,-1566,-528,1755,177,684,1707,612,-366,801,2019,465,-1497,-1638,-2076,1503,-1866,1785,1614,2232,36,-429,-1671,15,-1557,1413,-1932,1179,-1524,492,1626}, {1446,336,-990,2184,-261,1848,-1659,-2298,-306,1446,1995,2238,-447,408,-435,876,-1248,-1953,-2046,444,861,759,102,1908,-1857,-1530,-822,213,3,-975,-969,423,-264,1596,-1491,-1392,705,-75,-342,1023,-276,2271,2259,1674,-864,1617,1725,132,213,-1371,-1242,597,-2277,-990,69,-564,816,381,-90,-561,-786,-1704,2250,2220,-27,213,2115,-576,1962,-2211,-735,1572,-399,369,-1860,-1416,-123,-1047,-1746,609,1299,2274,2037,-1719,1734,2298,1041,1524,-1005,1785,-2259,549,-2094,-2184,810,1824,1191,1473,615,-1263,1389,-138,1923,1281,15,-228,-696,534,-1644,-1521,1416,570,2235,-123,-546,-1263,-1275,-837,1236,-1407,-486,-1167,1419,-894,-696,753,774,411,891,-1524,2049,1815,1890,1917,-327,-90,1191,0,-1185,-1998,2106,-1209,-2094,-1692,-2196,-2082,1386,-1968,-2064,-762,105,-2043,-1917,-1788,870,588,948,180,1050,-69,-1752,1635,-2247,1056,-1749,-237,-318,-177,435,-2199,1830,735,315,1911,-1317,-2205,-1653,2211,1155,-1317,-1248,810,1620,-1101,-846,-1482,-942,1263,2268,-843,-438,-2310,-357,-801,-1482,-345,1215,636,-753,1620,1290,-201,-2277,-1344,-2259,-657,-1935,-693,888,-1347,-1656,-378,2034,-312,174,1050,-297,2070,-201,-996,-732,-489,1458,1263,-84,-1422,747,-1452,-2280,-1368,1830,444,294,-1296,-612,-2181,-1755,657,-2034,-285,855,-261,99,-699,345,1740,672,-2079,-42,9,711,-2004,1521,-1791,-1890,2265,-75,1149,-1857,1731,-876,-2256,-1581,-1356,-2025,-393,-2010,-906,-1092,1599,-111,1944,2238,2238,1032,759,1017,-1803,117,1752,222,669,-714,54,-453,1629,2025,-2088,-2136,-417,-615,-639,-132,-105,-210,-1842,-711,-1338,-1791,-420,1158,-1554,-882,1992,1137,180,1488,-144,396,1797,-2037,-948,1362,-1416,-654,-1932,1674,1866,-657,1473,-213,-1155,-924,552,357,-282,2211,1407,-1932,798,-300,1728,-147,-642,1890,660,414,60,-630,660,2076,1911,-1431,-966,-1098,-1020,747,486,-1701,2199,102,1320,909,-1731,-1512,-1059,1674,-168,-1926,-858,1014,-1734,831,1674,225,-1371,-645,-639,2121,-1947,1332,792,-1242,2232,-42,-2166,201,-1569,-354,603,999,327,363,273,-1026,-1059,2274,-1473,1014,1977,-1107,-690,-1737,531,-39,-936,-1605,351,-1062,471,1656,375,912,-189,2292,930,-1365,-1977,-1806,-558,-567,-351,102,2256,150,-1896,-51,1317,366,1299,2166,-18,-495,564,1134,1059,-1371,-414,1389,1776,-1296,-489,681,1869,69,-1290,-1629,-1452,-2199,648,1368,-1428,-1473,1023,-1080,-747,2190,444,738,-1554,-744,1236,-1047,1182,2193,-1320,1608,-2112,-2277,-1104,1734,72,-2010,1980,-2115,-249,864,2235,-18,654,1662,-1911,-1155,1500,-2280,1029,1554,-1791,1206,-426,105,1782,-537,-1875,-1446,-1152,-1047,693,-1644,-2148,-2244,-1128,-348,984,-966,513,1911,1302,879,1953,1806,-966,345,-1734,-309,-1971,-918,-2280,-846,-852,534,-1467,-1485,1098,-2085,-348,-453,-1827,-303,1188,2223,-1380,-1950,-927,1239,-639,144,876,795,-675,-576,-1503,768,2232,-1590,-33,84,-1335,1323,-189,2232,-840,-591,951,-1020,-2037,1842,-564,1335,1398,2139,246,-744,54,-1800,-294,-405,-255,1968,-138,612,774,-1884,2274,1431,27,-1443,-2148,336,-2181,-48,-2232,2181,1680,1644,-579,801,-1488,534,-930,-822,-1224,753,1098,-1641,-1122,-1632,-2139,369,1515,-1887,-1032,627,-1458,-1677,405,1641,-1248,-1572,1614,-48,918,1398,2286,1926,-888,-708,948,-987,2256,1782,-486,-591,-906,1428,-966,-2148,-906,651,-1251,1701,966,-192,1482,282,1647,-138,522,1260,2232,87,-1881,-150,1959,-1257,414,984,360,1701,-126,375,-231,561,-1002,-834,-1518,-1272,963,-384,1560,-813,-1293,324}, {1596,1497,-855,1494,1320,-930,333,-624,639,1410,12,2025,-1764,885,1083,300,-201,396,-24,936,1977,-711,2307,1485,1650,228,399,-375,-1755,1056,315,897,-2241,273,1563,1977,1479,-2274,-1731,180,-996,912,900,-1464,-1242,462,1245,858,1878,-2019,1245,-1374,-114,1935,-2151,1749,276,-2232,972,-1176,-1140,-333,-6,-531,300,-606,1074,-1377,-750,933,765,1746,-1809,1227,1047,-2244,-1002,-1083,-2085,-1191,-2025,840,1992,456,771,-177,2157,759,471,1089,-1263,210,87,726,-678,222,468,-732,534,-1722,411,498,-729,-1557,-1878,1977,-1677,819,-1389,-1875,1947,-1182,-978,-2214,-1014,1305,1098,-759,1173,306,852,744,633,-216,750,-1887,1125,-18,1980,522,-2274,1791,-1710,-1563,-588,2094,-135,-501,450,-1518,1251,-1038,1659,-1677,60,2037,-1053,-2187,-1656,1431,510,-2214,2019,-153,1383,768,1500,-2136,2022,927,954,-531,279,2193,-2238,1914,1329,-687,234,1920,153,-576,963,2229,-984,369,-444,822,-1782,1863,-1323,-1056,1311,-1806,-438,477,261,153,-456,-1185,-1716,1317,-1593,-2163,-384,894,-1176,-501,-678,102,1689,-150,1626,147,1554,-342,2169,-2094,774,1071,-1245,-1161,2241,1896,-243,1350,-399,45,447,-1011,1038,801,-903,-390,345,609,1131,-486,-813,-780,-2076,2031,-1062,273,1317,1959,-558,-1293,342,276,984,-2211,1002,1722,-120,1341,2118,1044,-1605,-984,-1644,2226,-1191,573,-1341,-1674,-945,-1308,-1644,1536,-693,936,1368,-15,123,-1491,-1977,-27,99,1722,1515,69,-174,579,1494,-1524,-1737,1188,1488,1494,-717,63,-459,1539,-693,-660,-1512,-1872,-2247,2031,-1188,-1200,-2082,2157,-438,-81,-2280,-1941,-2289,-339,-690,-2115,-1215,-282,-1653,1452,1758,-1593,1152,2052,-858,-1233,180,495,675,861,-414,1209,33,0,2112,351,-2268,-1320,-978,-1137,-126,2094,1053,-1563,-951,1560,1401,1932,-279,1188,402,1428,1755,-1182,774,1482,-1053,-723,2109,1611,1392,588,-1977,-987,-315,-2133,-2259,1614,405,-2121,1845,-753,-1377,1131,-2178,528,-225,-1098,972,-162,-279,1281,864,1434,2154,-138,-1866,-810,-1830,-2058,-2178,-1806,915,-1404,798,-1356,-816,-963,-1185,-1689,2256,615,-450,2256,1314,2253,1110,-1530,1659,402,-627,1392,153,-1983,-1092,1080,858,888,54,-900,909,-630,2298,1695,-1956,-1158,2253,1749,-318,1566,-501,-1692,-765,-1173,-384,-354,-1644,1383,987,1005,2250,-1683,1503,264,2199,-1392,1206,555,-219,324,1164,-366,-1791,-687,1983,-120,-1485,1536,1800,561,1587,-57,-906,540,1224,-2046,468,66,-945,-2307,-753,1656,2124,-1809,-438,-687,-1404,1683,633,2253,-1359,-2145,129,1200,-630,-267,-1860,-66,1953,1569,-1653,882,-1731,297,828,1407,-2067,-171,-747,-1005,-1383,-2235,-417,-1791,-552,-2034,-1083,1140,-213,-1467,-45,-1698,1044,-261,-240,-1449,1545,-864,-1185,219,609,492,-1182,-1941,-2184,1644,-1956,570,3,-921,-1605,-1158,645,-1581,-615,1518,525,-1392,-1038,-141,2166,1668,1533,-825,-2085,-738,-1515,-1740,507,-1794,48,1191,-1605,-1074,-1728,885,45,-456,-1572,930,402,351,444,-588,1263,-1281,1650,1041,1830,792,1995,2238,-357,-3,123,-636,-6,-198,-585,300,-1110,1635,513,-2136,135,-192,1086,345,2022,318,363,1428,-783,-1458,1404,-618,1728,504,471,2064,2175,423,-246,-1260,-2238,2205,1155,999,-2235,408,-2019,351,-1629,2160,1728,-1197,513,-342,1701,426,-1329,-327,1686,-2289,2217,2247,-1095,-1206,2004,-741,1062,1053,-318,1239,-684,-615,-18,-228,1164,-2019,-30,1350,-924,969,-780,351,2157,867,1467,-588,2163,-1002,-2262,1059,510,1299,-1764,1458,-1143,1287,-564,-1353,-2304,1491,1995,-549,-867}, {435,1842,480,1929,-2277,-297,-1374,-597,-1020,270,-2103,-702,1206,-1431,1401,-1896,636,-1404,1914,864,-891,-2292,-600,-849,-1212,-309,2064,1119,1467,-1710,-2199,-1377,177,1674,-1338,-2127,-1344,1416,783,2280,-1809,-1377,1287,2016,-2067,783,-1614,-1182,1644,6,-2190,750,93,1902,228,2199,-984,-855,18,-387,606,-582,2268,-741,1119,-207,2283,-633,2004,2310,-1221,-1884,-2157,663,-1590,1995,-1485,-741,-111,-87,357,1749,-1692,-453,1470,522,-1227,2124,-1914,204,1839,-69,-2052,1338,978,168,-15,1386,720,-237,204,-1197,-1533,-1587,1932,258,1473,897,-759,171,-522,186,1140,-1299,-99,1578,-1437,2217,1995,-795,2019,585,-1764,2145,21,-492,-1464,1590,-999,-1938,1128,2100,957,2310,1641,291,-1014,-924,639,1503,-2289,-2271,1893,-1101,1971,924,-1209,486,-2289,1215,1224,-102,1161,798,450,1518,-1773,-1251,153,-1368,-39,-390,1515,-1092,1221,1467,-1461,63,1515,-1656,1311,1626,-1845,-1617,-1680,-144,-876,-1767,96,-1107,600,1467,-1512,-960,-450,666,-1743,2223,-159,-1224,1698,1476,-1125,-1962,1272,-114,-768,1194,657,546,1428,2190,-2139,1971,-2010,-1659,912,-342,1227,-1878,-627,-330,1557,1551,2187,-1029,39,1929,-750,1806,795,1332,-1050,-2163,2310,1170,-1416,549,975,2247,1311,-321,-657,-1011,-2268,2058,1911,-2007,-1320,1122,-945,2133,711,-48,354,1461,-24,306,822,-420,468,-207,-633,1920,-840,-1824,2112,285,1362,1944,2022,-1308,-192,1467,1407,1779,657,-1017,-966,483,1986,-864,-1629,-1932,1326,1065,366,414,99,-732,6,-1194,159,2289,2241,1539,156,-1320,810,-1863,1479,-2229,1179,-2292,1296,2235,888,-996,1110,-1917,1593,555,-354,-2232,-762,-1899,261,-414,633,-1527,765,-801,-1224,-1962,-678,1416,2211,690,1104,-2310,1254,1563,2103,-2067,-915,1920,936,-774,561,-345,-423,510,-603,1542,-351,-1245,-174,-1686,1395,438,-1239,-2181,-1584,831,408,-1230,-804,-1080,-1860,1314,1755,-81,-66,-1755,1485,-231,2055,1881,330,1017,1389,-1689,-1722,-1590,-477,474,-807,1548,-2124,627,1668,525,-1260,2145,-33,1332,-1290,-1335,-801,-2241,720,-1659,2028,1290,297,-561,1308,2253,639,-300,-978,-564,-882,1311,1488,1752,1359,-1986,1062,678,-261,1608,1053,1905,-399,-213,1440,-2163,1230,-591,2010,891,-2166,-972,465,-1026,789,771,1671,69,1239,-1197,-891,-1884,438,1233,-1398,-1347,1572,1656,-966,-1869,1029,-672,-1767,945,2214,-603,657,-1554,-1842,-924,837,-1689,-1752,-1356,-849,-1356,-1524,1794,-1257,1026,-396,-957,1980,693,-105,441,1782,1884,264,-132,-1254,-942,-195,1782,2280,-864,-228,-618,-867,1029,-2253,645,1203,-1692,894,-1581,1857,-1899,1254,-1209,687,-939,1020,-2187,2301,-432,-1164,-948,2208,804,1491,-1350,-180,438,-1740,-237,-2268,1101,-1209,-300,1287,-2163,-702,1278,-261,381,-393,1119,1716,-1212,618,-1962,-2205,1935,1182,1923,636,12,-423,180,1743,36,1956,81,-861,615,633,624,-1524,-1950,396,-1302,1218,2052,-27,777,-1761,-168,1332,2052,1845,2091,1401,2178,27,-1977,-1251,-1626,228,-714,681,1761,-762,-1197,-1824,-2103,-1938,-981,1335,510,-2121,657,1482,1116,-210,2142,-1311,-423,-2286,1941,711,1326,-720,-369,1218,-1464,-1521,-447,-270,2304,-1914,1275,-2151,-288,1305,1098,1965,-663,-2088,1167,1980,-39,2019,558,-816,1746,897,369,-39,45,1710,-1713,546,1956,-939,1707,1578,-1329,2292,1476,-78,-1530,624,1002,612,-1395,1713,-933,-2163,420,462,381,600,690,-207,-405,-1509,-1032,2040,1569,-1062,-795,-2019,1425,630,891,1389,423,456,-1662,-1317,-888,570,-1764,1644,-267,-981,-1305,-1329,-468,-1986}, } ; static const unsigned char precomputed_decode_653x1541_s[precomputed_decode_653x1541_NUM][crypto_decode_STRBYTES] = { {97,135,35,173,142,146,133,147,197,203,118,205,108,110,193,81,94,79,175,111,145,252,156,123,232,45,62,189,188,99,123,20,111,53,186,255,50,77,169,115,117,59,221,218,108,148,36,117,56,251,82,126,16,239,105,28,223,142,37,29,26,223,225,168,77,139,65,155,115,110,117,127,37,42,39,73,150,1,93,206,245,32,229,60,42,195,23,154,170,123,200,108,154,131,216,84,41,137,224,225,239,22,55,197,223,197,23,199,146,47,43,114,30,156,92,175,33,246,237,211,158,172,118,88,75,208,20,191,147,145,183,143,213,38,226,203,150,236,41,109,107,66,253,2,173,80,37,161,109,20,185,73,3,49,68,94,236,235,34,39,229,196,50,217,38,207,88,81,4,193,161,15,0,217,16,250,45,162,172,91,232,250,201,10,240,179,19,187,11,166,72,50,160,255,170,86,186,41,253,69,120,227,48,247,112,3,151,206,181,166,197,237,98,177,139,16,146,180,237,147,40,111,60,132,133,39,139,145,207,246,91,93,102,39,181,41,208,1,122,250,36,61,22,205,209,36,59,128,1,192,87,87,36,51,225,195,131,183,28,79,221,202,156,40,20,184,97,172,28,43,41,97,159,211,69,174,159,91,178,243,7,7,148,231,40,193,79,161,12,98,57,125,50,102,59,182,254,86,38,203,155,19,97,0,234,88,163,31,159,58,141,125,201,187,65,201,180,111,33,61,174,77,248,56,53,68,204,141,136,77,1,133,29,158,100,88,234,35,109,255,240,182,6,199,226,243,15,39,161,14,40,74,161,8,9,229,216,146,197,219,24,123,99,45,230,16,254,124,130,20,90,144,142,245,246,76,17,82,154,236,29,53,168,18,2,13,41,107,239,251,11,128,216,81,242,229,252,160,77,29,77,38,246,12,107,48,216,164,23,122,201,210,99,133,96,235,241,149,50,167,251,184,189,233,237,90,165,246,117,197,23,201,71,74,66,24,79,178,249,185,254,115,238,138,244,204,239,223,236,44,155,9,22,140,118,44,36,17,141,152,51,236,65,141,226,212,93,44,2,1,142,246,164,224,28,127,211,78,46,230,36,40,122,7,239,214,213,36,207,254,40,194,31,235,31,169,253,25,33,24,78,241,14,234,115,94,0,156,173,153,194,87,5,47,32,230,157,90,226,225,62,149,26,116,137,41,159,167,2,107,240,76,38,114,255,125,203,140,23,192,102,67,107,144,142,33,150,172,195,174,217,11,25,195,224,52,39,11,42,7,119,234,234,50,145,182,50,43,183,31,25,129,72,88,101,203,88,140,47,81,163,181,46,88,108,74,142,170,230,167,174,162,106,205,17,95,80,99,32,251,255,226,111,127,98,159,29,210,99,20,255,209,37,192,62,16,240,90,236,62,152,160,58,102,174,129,91,119,254,204,167,109,163,71,101,141,176,166,240,223,192,246,54,11,216,71,155,203,108,162,52,19,97,52,169,61,248,61,32,118,147,55,20,39,208,118,77,4,78,89,189,78,251,227,253,3,203,99,89,202,62,192,175,71,186,153,145,48,91,23,188,179,124,247,23,88,170,35,103,69,174,161,44,245,12,84,205,98,1,93,3,113,251,198,139,221,18,50,31,226,48,56,114,185,108,16,47,219,134,253,152,53,120,92,117,62,150,228,13,101,231,57,9,199,225,227,96,130,193,149,38,190,243,252,208,23,117,183,163,204,49,246,10,163,141,141,249,228,63,35,50,127,113,154,32,104,127,149,155,165,233,13,149,114,201,117,140,126,51,61,98,84,122,254,6,228,84,234,178,132,42,81,117,15,200,209,10,101,73,113,113,125,57,129,92,117,23,142,114,158,177,155,217,92,19,3,81,136,100,183,188,71,250,128,152,89,225,223,236,197,109,18,215,52,209,175,19,59,231,5,165,123,72,73,193,186,132,171,23,6,13,192,245,59,39}, {30,250,189,237,16,55,31,47,181,70,28,154,171,93,180,138,24,11,122,67,121,227,115,39,102,81,163,119,151,71,238,110,102,13,53,83,238,104,18,189,139,130,68,83,92,174,26,250,48,160,245,228,149,158,1,154,40,29,240,127,209,19,11,187,73,136,253,9,153,127,235,78,162,10,102,226,233,2,116,247,105,255,58,123,76,55,230,250,74,250,178,253,76,11,131,112,94,223,197,157,107,85,212,4,111,110,170,28,35,77,233,43,174,145,44,82,254,13,10,139,118,160,211,99,13,237,94,85,110,230,56,41,218,136,9,143,136,85,162,155,177,120,16,23,141,22,49,200,105,251,112,222,179,12,67,57,154,158,96,200,64,112,173,22,186,232,173,206,250,134,49,229,250,47,38,198,246,47,34,244,20,7,106,12,34,240,246,228,24,131,122,76,209,107,61,29,62,231,62,187,165,1,22,102,16,6,222,230,142,251,192,19,107,145,107,45,26,189,121,103,136,202,199,202,228,32,97,79,100,229,198,82,172,185,72,197,79,199,105,216,201,36,170,50,236,200,0,33,3,232,28,53,208,2,102,49,67,17,144,99,245,121,128,240,176,131,148,195,119,138,124,120,117,198,227,111,110,202,220,182,226,102,22,47,73,116,211,107,103,176,2,45,155,255,100,223,95,128,15,130,246,192,198,76,115,52,97,158,90,192,141,114,35,68,56,234,155,27,172,113,8,65,20,169,180,146,148,161,81,134,50,169,31,85,139,63,92,129,197,220,114,121,199,1,162,19,237,113,142,115,129,221,194,85,243,57,236,119,50,102,63,221,123,8,134,33,189,187,48,178,226,22,63,162,3,243,12,175,112,16,43,164,69,194,68,28,29,231,191,105,159,99,43,11,134,211,30,144,112,210,84,52,166,186,204,19,9,12,146,52,249,157,95,255,12,175,123,19,54,31,255,83,97,51,110,138,86,102,45,102,97,215,227,218,42,179,181,147,1,54,81,249,38,250,101,59,234,254,8,59,53,105,130,127,27,215,189,20,67,210,23,185,245,103,178,30,1,198,89,246,69,250,132,69,48,207,6,19,75,252,109,255,30,156,200,209,192,33,112,162,100,67,49,74,251,226,192,231,211,187,118,131,224,118,236,106,78,46,206,242,226,158,241,84,13,179,105,48,80,143,130,120,176,163,181,26,36,28,212,204,229,202,73,14,140,138,161,180,21,185,246,130,2,45,237,40,142,192,48,254,201,121,8,22,249,109,208,149,254,121,15,11,29,102,190,169,148,252,51,49,60,162,238,39,78,103,185,26,112,201,82,251,212,104,196,224,138,216,236,76,21,131,82,232,187,14,24,135,9,150,106,220,98,170,188,171,229,31,4,56,233,130,9,116,249,106,215,142,11,151,242,16,217,56,146,164,177,23,73,173,24,241,156,98,17,70,65,123,168,221,65,77,39,4,72,22,131,18,63,195,233,44,98,62,42,220,203,152,25,223,73,24,74,24,161,204,75,60,98,150,121,209,56,59,202,247,102,8,216,67,208,130,141,221,121,254,172,253,132,100,171,15,109,147,229,8,27,96,227,183,6,114,215,216,97,196,178,142,99,26,47,194,197,211,131,198,15,186,177,87,92,46,50,110,24,102,247,244,194,55,88,128,214,189,174,148,113,59,187,22,236,8,186,29,219,151,245,114,1,131,221,120,14,195,2,177,241,85,207,171,197,100,157,199,39,45,68,59,35,138,222,187,96,110,159,88,125,254,129,217,127,3,82,123,235,122,103,81,97,127,144,149,3,240,103,202,136,49,33,63,15,112,73,54,198,224,25,209,104,42,219,19,123,83,132,239,244,135,234,88,140,224,26,145,21,214,158,86,243,76,25,185,109,107,78,177,195,31,114,9,55,232,7,73,113,52,128,159,109,25,243,51,145,84,194,174,76,107,211,56,59,19,187,234,66}, {223,169,182,107,15,63,131,105,93,28,254,184,174,32,163,76,232,244,43,247,176,176,112,65,89,185,127,162,224,168,101,149,126,123,37,105,174,205,177,148,225,156,230,204,192,197,227,156,228,136,211,246,121,50,8,227,92,57,137,145,0,119,189,101,6,191,165,234,156,192,235,74,99,112,53,76,174,217,24,183,213,176,152,78,218,127,208,43,210,219,115,255,149,98,189,99,228,94,65,212,69,31,216,61,7,222,79,133,210,12,157,85,118,91,233,145,113,132,231,74,239,144,159,154,141,102,58,103,77,232,61,187,128,76,99,120,151,18,133,182,134,120,217,228,88,176,97,243,113,220,97,161,89,247,232,231,129,136,97,23,21,128,95,132,62,247,115,107,222,163,180,248,72,176,12,192,157,196,140,158,166,155,66,6,130,244,88,68,116,25,66,183,130,253,38,109,136,211,75,86,168,242,66,33,19,246,94,212,97,106,62,233,224,5,185,217,59,223,46,62,217,29,11,190,98,82,22,204,217,9,1,45,138,80,7,125,50,206,163,186,73,62,136,178,216,22,15,56,239,181,77,111,238,11,223,232,54,14,107,152,33,171,199,186,172,135,191,7,221,247,143,35,14,219,204,90,249,150,55,144,17,192,61,63,207,249,181,192,209,137,218,148,25,162,134,125,14,203,180,253,129,125,9,48,87,144,197,213,73,179,39,138,107,204,39,81,128,33,87,255,43,62,240,129,193,18,229,192,167,89,117,202,224,253,220,117,65,180,223,41,112,112,228,78,193,54,147,226,112,133,191,106,216,245,170,155,164,178,98,156,131,165,33,92,144,212,87,112,66,121,164,243,192,122,68,130,77,30,197,245,214,15,125,253,221,163,237,85,35,152,204,206,201,23,136,105,203,133,45,61,7,220,129,225,54,30,139,111,36,190,220,6,212,72,175,87,176,183,39,20,9,71,138,89,180,83,222,164,12,52,254,135,103,255,97,136,188,166,244,191,109,255,82,54,34,253,112,193,115,125,59,123,227,218,173,106,176,135,255,125,31,122,157,7,44,43,84,151,99,122,234,132,21,117,14,185,87,35,84,97,94,45,229,58,189,164,27,54,94,63,93,88,61,254,187,41,169,248,80,213,112,147,199,49,142,125,56,162,98,102,251,184,84,172,25,238,206,203,137,132,116,202,207,239,13,102,87,228,67,203,21,66,109,73,217,48,1,253,47,7,76,136,68,126,86,27,61,152,191,160,150,173,78,16,254,59,20,86,227,34,183,160,83,129,120,147,218,171,55,106,143,184,178,230,85,133,52,99,101,120,46,249,97,7,90,142,164,73,40,172,50,131,11,24,99,42,42,28,76,74,131,238,137,218,38,175,114,63,240,198,140,230,121,54,2,81,206,251,57,34,212,98,77,1,0,178,110,118,211,121,56,24,245,91,167,103,79,193,182,224,94,38,96,225,209,208,242,105,44,46,17,21,214,57,198,36,168,120,10,84,9,45,226,73,19,26,176,201,178,201,185,154,57,255,159,136,136,246,68,211,166,57,11,240,220,80,114,189,77,175,112,165,63,45,5,219,248,208,215,189,95,92,230,129,115,93,38,68,109,43,55,150,41,12,220,32,9,25,68,93,188,111,24,143,16,77,142,245,75,110,119,225,78,215,126,245,246,139,93,140,147,246,189,138,99,39,70,240,32,31,85,50,55,77,142,37,163,91,255,252,148,13,17,80,192,149,38,100,45,244,16,125,189,221,123,24,18,177,234,247,47,213,223,128,135,190,224,254,178,138,186,25,107,89,1,73,113,15,233,14,182,131,186,89,19,228,165,150,135,164,203,154,120,49,46,60,94,1,75,145,201,114,0,109,220,134,163,201,132,39,216,101,15,0,244,55,199,162,161,43,133,69,211,157,102,76,205,14,227,252,145,229,94,184,49,61,115,69,102,132,81,56,17,239,206}, {155,59,38,95,122,189,77,135,188,42,247,189,117,5,211,56,45,117,132,233,186,217,116,64,58,20,141,169,51,141,12,45,40,230,178,49,142,247,74,86,230,229,92,71,226,254,22,106,13,113,133,184,62,206,44,148,19,49,156,120,124,183,223,126,33,48,85,20,182,170,72,88,161,163,250,250,193,132,152,87,117,233,48,142,61,87,30,236,103,247,97,212,204,64,223,222,207,246,210,117,42,24,161,2,107,21,44,50,168,212,193,153,172,199,242,170,156,126,120,162,180,169,5,2,98,79,185,20,167,122,42,89,118,72,239,2,89,181,56,105,72,40,252,168,249,118,169,73,184,3,188,14,177,177,238,212,174,98,107,114,219,84,91,58,136,209,77,124,216,183,60,101,146,248,46,206,137,122,248,25,220,116,131,19,93,163,95,173,173,106,47,22,200,107,237,26,111,100,227,216,45,210,36,215,205,119,230,249,24,172,222,159,165,117,224,159,3,230,1,201,162,36,240,29,190,23,77,35,200,162,136,72,101,100,186,158,80,153,235,26,207,212,35,59,92,40,51,170,61,67,133,164,116,48,210,100,20,198,27,244,171,141,31,238,239,94,22,254,18,169,36,16,13,54,213,178,102,67,251,35,27,144,62,184,150,181,155,181,26,40,178,219,95,229,74,237,95,79,90,158,74,31,126,240,115,164,252,98,195,52,247,33,82,36,93,235,125,178,171,156,210,141,78,115,70,69,23,160,253,186,236,188,223,57,235,77,6,47,126,208,200,2,237,54,126,68,140,76,182,147,56,57,120,53,106,151,25,133,130,27,51,80,147,217,192,207,169,143,113,166,53,56,72,126,242,104,123,110,113,142,62,69,125,187,13,45,181,116,12,223,109,52,2,161,172,130,145,31,93,94,42,196,84,207,94,255,95,150,81,52,11,152,1,57,243,3,31,151,189,174,178,255,141,69,198,201,32,26,7,151,146,178,24,196,112,97,23,3,81,54,170,167,124,162,112,231,26,21,6,145,23,217,246,109,72,247,73,42,31,227,148,150,143,49,122,172,85,188,33,172,79,167,60,142,69,75,92,152,93,234,97,20,153,144,6,223,216,231,127,248,22,68,226,231,188,31,231,58,203,136,49,219,108,39,89,148,51,145,215,38,142,247,194,232,1,217,167,83,96,180,241,54,146,127,1,52,209,210,177,99,41,249,3,29,172,114,181,52,97,188,56,138,18,141,151,55,183,252,6,64,118,215,176,195,230,251,103,199,196,160,254,157,149,47,128,131,223,224,65,60,228,84,231,217,12,223,1,99,83,203,2,169,47,164,16,16,78,22,121,1,73,111,78,126,87,128,169,235,21,31,14,181,123,128,30,137,156,196,234,231,24,99,219,156,149,77,33,90,43,150,46,139,82,110,131,141,31,93,60,54,31,35,116,58,191,218,212,232,244,138,193,121,143,221,202,244,37,5,51,246,207,92,64,116,164,0,100,77,135,94,239,148,69,253,135,185,142,247,11,235,96,181,222,12,52,205,38,254,138,37,54,52,49,169,58,5,63,108,141,92,20,132,45,61,133,111,209,92,121,241,240,68,65,7,182,171,42,174,253,47,131,58,113,13,92,108,93,249,244,100,137,78,42,229,69,222,65,52,46,255,121,52,156,99,202,130,137,106,188,156,45,228,225,199,7,40,72,218,110,61,215,31,67,118,117,98,113,91,22,193,202,171,3,15,190,33,111,89,14,246,43,187,219,6,167,222,199,143,222,26,240,105,112,250,105,47,161,21,234,45,9,127,244,237,197,113,127,22,179,54,25,164,37,74,235,145,176,200,126,221,100,186,53,110,238,68,82,166,57,165,129,77,225,50,165,37,97,71,183,123,104,143,131,204,95,169,62,158,24,116,182,79,9,69,43,202,56,202,155,7,112,154,34,151,44,37,55,36,167,170,81,72,56,152,102}, } ; static void test_decode_653x1541_impl(long long impl) { unsigned char *x = test_decode_653x1541_x; unsigned char *s = test_decode_653x1541_s; unsigned char *x2 = test_decode_653x1541_x2; unsigned char *s2 = test_decode_653x1541_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_653x1541_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653x1541(impl); printf("decode_653x1541 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653x1541_implementation(impl),ntruprime_dispatch_decode_653x1541_compiler(impl)); } else { crypto_decode = ntruprime_decode_653x1541; printf("decode_653x1541 selected implementation %s compiler %s\n",ntruprime_decode_653x1541_implementation(),ntruprime_decode_653x1541_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_653x1541_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_653x1541_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_653x1541_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_653x1541_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_653x1541_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_653x1541_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_653x1541(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653x1541")) return; storage_decode_653x1541_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_653x1541_x = aligned(storage_decode_653x1541_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_653x1541_s = callocplus(crypto_decode_STRBYTES); test_decode_653x1541_s = aligned(storage_decode_653x1541_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_653x1541_x2 = callocplus(maxalloc); test_decode_653x1541_x2 = aligned(storage_decode_653x1541_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_653x1541_s2 = callocplus(maxalloc); test_decode_653x1541_s2 = aligned(storage_decode_653x1541_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_653x1541 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_653x1541();++impl) forked(test_decode_653x1541_impl,impl); ++test_decode_653x1541_x; ++test_decode_653x1541_s; ++test_decode_653x1541_x2; ++test_decode_653x1541_s2; } free(storage_decode_653x1541_s2); free(storage_decode_653x1541_x2); free(storage_decode_653x1541_s); free(storage_decode_653x1541_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_653x3.c0000644000000000000000000003344614705505543022142 0ustar rootroot/* ----- decode/653x3, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_653x3_checksums[] = { "b27ae3aea1c26f6a5fca8c98570889925a1fd8bf554105caf49b73b438463cd7", "6bf0b30b8a6d4c2e788ae00f91d1ecc21ee766073911c6cf22c87d6be78065c0", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_653x3_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_653x3_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_653x3_ITEMBYTES static void *storage_decode_653x3_x; static unsigned char *test_decode_653x3_x; static void *storage_decode_653x3_s; static unsigned char *test_decode_653x3_s; static void *storage_decode_653x3_x2; static unsigned char *test_decode_653x3_x2; static void *storage_decode_653x3_s2; static unsigned char *test_decode_653x3_s2; #define precomputed_decode_653x3_NUM 4 static const unsigned char precomputed_decode_653x3_x[precomputed_decode_653x3_NUM][crypto_decode_ITEMS] = { {0,-1,0,-1,-1,-1,-1,2,2,-1,1,1,1,0,1,1,-1,2,2,0,2,2,0,-1,-1,0,2,-1,0,-1,0,0,2,-1,-1,1,-1,1,1,2,-1,0,0,2,2,2,0,2,0,2,2,0,-1,0,0,0,1,1,0,0,0,1,0,2,-1,1,0,-1,-1,2,0,0,2,1,2,-1,1,2,0,-1,0,-1,-1,2,1,0,-1,2,-1,2,-1,-1,0,2,1,2,2,-1,0,2,2,-1,-1,-1,1,-1,1,2,-1,1,-1,-1,2,-1,2,1,1,-1,0,2,0,1,2,1,1,-1,1,2,1,0,-1,-1,2,1,1,2,-1,2,2,0,2,2,0,1,0,1,1,2,0,2,2,1,0,1,-1,1,2,1,1,2,1,2,1,2,-1,1,1,1,0,0,0,-1,0,0,2,0,0,1,1,0,2,2,-1,-1,2,1,-1,2,2,-1,0,1,-1,2,1,1,2,1,-1,-1,1,1,2,-1,-1,-1,1,1,0,2,-1,2,1,2,0,0,0,-1,2,1,2,-1,0,1,-1,-1,1,-1,1,0,0,0,1,2,2,1,1,2,2,-1,0,2,2,-1,-1,-1,0,0,1,1,1,0,2,0,-1,1,-1,0,0,-1,-1,1,0,1,1,-1,-1,0,2,-1,0,0,0,1,-1,2,1,-1,2,2,-1,-1,1,2,2,1,1,2,2,-1,-1,0,1,1,0,1,-1,-1,-1,-1,2,2,1,1,0,1,2,2,-1,2,1,-1,0,0,-1,2,-1,2,0,-1,1,2,2,0,2,-1,-1,1,1,2,2,2,1,0,2,1,0,1,-1,2,1,1,1,1,-1,2,-1,-1,1,2,0,1,1,1,1,2,2,-1,2,1,1,2,2,-1,2,0,2,0,2,1,-1,0,0,2,1,2,0,2,-1,-1,0,0,0,2,2,2,0,1,2,0,1,1,-1,1,2,2,2,2,0,2,-1,-1,0,0,1,2,1,0,-1,2,0,1,1,0,0,2,2,2,1,2,1,1,1,-1,0,0,2,2,0,1,-1,0,2,2,-1,2,-1,2,-1,-1,2,0,1,0,2,-1,0,2,1,2,2,0,2,0,1,0,2,2,0,0,0,2,-1,-1,-1,1,-1,2,-1,2,0,2,2,1,1,-1,1,2,-1,1,-1,-1,2,2,1,2,2,0,1,-1,-1,1,0,0,2,-1,1,-1,-1,0,1,1,-1,0,0,-1,-1,-1,2,2,-1,2,0,1,0,2,1,1,2,2,1,2,-1,2,-1,2,0,-1,1,2,0,0,2,0,0,1,-1,1,2,0,2,2,0,0,2,0,2,1,2,1,-1,0,0,0,2,1,2,0,0,0,1,0,0,1,-1,2,1,2,0,-1,0,2,-1,2,-1,2,0,-1,1,0,2,1,0,1,0,0,-1,1,-1,0,1,-1,1,-1,1,2,1,-1,0,2,-1,0,2,1,0,1,0,0,0,0,1,2,0,1,1,-1,2,2,2,0,-1,-1,2,1,2,-1,1,0,-1,0,-1,-1,1,1,0,-1,2,2,-1,0,1,1,0,-1,-1,1,-1,1,-1,0,2,0,-1}, {0,0,0,2,-1,0,0,0,0,0,-1,0,-1,2,1,1,0,-1,1,0,1,0,2,0,1,1,1,0,2,0,1,2,1,0,2,2,1,2,2,2,-1,0,2,0,0,2,-1,2,1,-1,1,-1,1,2,0,0,1,2,2,-1,2,0,0,0,0,1,0,2,1,1,0,2,1,1,-1,2,1,0,1,2,2,-1,0,2,2,0,2,0,-1,1,0,2,-1,2,2,0,0,-1,2,1,1,-1,2,2,1,2,1,1,-1,-1,2,1,-1,2,2,-1,0,1,2,-1,2,0,2,0,1,2,1,1,0,1,-1,0,2,0,-1,0,-1,-1,-1,1,2,-1,-1,-1,-1,0,2,1,2,2,0,1,2,0,-1,2,-1,-1,-1,2,2,1,0,2,-1,0,2,-1,2,1,-1,2,-1,2,1,-1,2,2,1,2,2,-1,-1,-1,-1,1,0,0,-1,2,-1,0,2,1,2,-1,2,-1,0,0,-1,-1,1,2,-1,2,1,-1,-1,-1,1,-1,2,2,0,1,-1,-1,1,2,1,1,-1,2,2,0,2,1,-1,1,-1,-1,2,-1,-1,-1,0,-1,0,0,-1,0,1,0,2,-1,1,2,0,2,1,1,2,1,1,-1,2,1,2,0,1,-1,1,0,2,0,-1,1,2,-1,1,1,0,-1,0,2,2,-1,-1,1,2,-1,2,2,2,0,-1,2,0,-1,1,0,0,-1,-1,1,1,0,0,1,-1,1,2,0,0,2,0,0,-1,2,-1,-1,-1,0,0,2,1,2,-1,0,2,-1,2,0,2,-1,1,1,-1,1,2,1,2,1,2,0,2,0,0,2,2,1,1,-1,1,0,1,1,2,-1,1,1,1,1,0,-1,1,-1,1,2,0,2,1,0,2,0,0,0,1,2,2,1,0,-1,-1,0,1,-1,2,1,1,-1,-1,0,2,0,2,-1,0,0,0,-1,0,-1,-1,0,2,0,2,2,2,1,2,-1,0,1,0,2,1,0,0,-1,0,1,2,-1,1,2,1,2,2,-1,2,2,1,1,2,1,0,0,0,2,2,1,1,1,-1,1,1,1,-1,-1,1,1,1,0,0,0,2,1,-1,2,2,0,0,-1,2,-1,2,0,1,1,1,0,-1,-1,1,2,0,2,2,0,-1,1,-1,0,2,0,2,0,0,0,-1,0,2,2,0,0,2,2,-1,-1,-1,2,1,1,1,1,-1,-1,-1,-1,2,-1,-1,0,-1,0,0,1,-1,1,2,-1,2,2,2,2,1,-1,1,1,2,0,0,2,-1,-1,1,1,1,1,0,1,0,0,2,-1,0,2,0,2,-1,-1,-1,-1,2,2,0,1,-1,2,2,0,-1,0,2,-1,2,-1,2,2,2,1,1,-1,2,2,1,0,-1,2,2,1,0,0,2,1,1,1,-1,2,2,0,1,2,0,1,0,1,-1,2,1,0,2,0,2,1,2,-1,0,2,2,2,2,-1,-1,0,0,1,-1,1,1,1,0,-1,0,-1,2,2,-1,0,1,2,2,1,0,0,2,0,2,0,-1,1,2,1,-1,1,-1,0,-1,2,-1,2,1,2,-1,1,2,0,1,2,1}, {0,0,2,0,1,0,0,2,-1,1,-1,2,0,1,-1,2,0,-1,-1,0,0,2,2,2,-1,-1,2,0,-1,2,1,0,1,-1,-1,-1,-1,0,0,-1,2,1,0,-1,-1,-1,0,0,2,-1,2,1,1,2,1,-1,-1,-1,1,0,0,1,1,-1,-1,0,-1,-1,1,-1,1,-1,0,-1,2,1,2,0,-1,1,1,-1,1,-1,0,1,-1,2,1,0,1,1,0,0,1,1,2,-1,2,1,1,2,2,1,0,0,2,0,-1,2,2,2,1,2,0,1,1,1,-1,1,2,0,1,0,-1,0,0,0,-1,1,2,0,0,-1,2,1,-1,1,0,0,1,1,2,2,2,2,2,1,2,-1,0,2,-1,1,1,0,0,2,0,-1,1,0,-1,1,0,0,0,2,-1,-1,0,-1,0,2,-1,-1,-1,-1,0,1,-1,0,0,1,0,0,1,-1,1,1,1,0,2,0,2,2,0,2,1,1,-1,-1,0,2,0,-1,0,2,1,-1,0,1,2,2,-1,1,-1,0,-1,2,-1,2,2,-1,0,1,2,1,-1,-1,1,1,2,1,1,-1,-1,0,1,1,1,1,0,1,0,0,0,2,2,2,0,2,2,1,1,-1,2,-1,1,2,1,1,0,1,0,1,1,0,0,1,2,-1,0,1,0,2,-1,0,0,2,2,1,2,0,0,-1,2,1,0,1,0,1,0,0,1,0,-1,0,-1,-1,0,2,-1,2,2,1,0,0,-1,0,-1,2,2,-1,1,2,-1,0,0,-1,-1,1,2,-1,0,-1,1,1,2,2,1,1,1,1,2,0,-1,-1,-1,1,-1,2,2,0,1,-1,2,-1,2,1,2,-1,-1,-1,2,1,0,1,2,-1,0,1,-1,1,-1,2,1,0,2,0,-1,0,0,-1,0,1,2,2,2,1,2,-1,2,1,0,0,1,1,2,-1,0,2,1,0,1,-1,0,2,2,-1,-1,2,0,1,1,-1,2,0,2,0,-1,2,0,1,1,1,-1,0,1,0,0,1,-1,2,0,-1,1,-1,-1,0,2,-1,2,0,-1,-1,1,1,-1,1,0,1,2,1,2,0,1,1,2,-1,1,1,0,2,-1,2,2,0,0,0,0,2,-1,2,2,2,1,-1,1,2,1,0,2,-1,0,1,-1,2,-1,1,2,2,-1,0,1,0,0,-1,2,2,1,2,0,1,0,1,1,-1,0,-1,-1,2,1,0,2,1,-1,1,2,2,1,2,0,-1,-1,1,1,-1,-1,2,1,1,0,2,2,-1,2,1,1,-1,0,1,0,2,-1,0,-1,-1,0,2,2,-1,0,2,0,1,2,1,2,0,2,1,0,0,0,0,1,-1,2,-1,-1,0,2,2,-1,2,0,2,2,1,1,0,-1,-1,1,1,2,1,-1,-1,-1,2,0,-1,1,-1,0,0,2,1,0,2,-1,-1,2,0,0,2,1,0,-1,2,2,1,0,1,0,0,1,0,2,-1,0,-1,2,-1,0,-1,1,0,2,-1,-1,2,-1,1,1,-1,0,0,-1,1,0,1,2,2,2,0,0,0,2,-1,-1,1,1,-1,1,0,2,-1,2,-1,2}, {1,-1,2,1,2,1,-1,0,-1,2,2,1,0,0,-1,0,1,2,0,-1,0,1,0,-1,2,1,1,1,0,1,0,0,0,0,1,-1,1,-1,-1,0,0,2,-1,2,1,-1,0,0,-1,0,0,2,2,2,-1,-1,0,-1,2,1,2,0,-1,0,1,1,-1,2,1,0,-1,0,-1,0,0,2,1,2,2,2,0,0,2,-1,-1,2,-1,-1,0,-1,-1,0,2,2,0,2,1,-1,-1,-1,2,1,2,0,0,1,1,2,1,0,0,1,-1,1,0,0,0,0,-1,-1,-1,-1,-1,0,-1,-1,-1,1,-1,1,0,0,2,0,-1,2,0,0,1,2,2,-1,1,-1,-1,1,-1,1,-1,2,0,-1,1,0,2,2,0,2,1,1,1,-1,1,1,-1,1,1,2,-1,2,2,1,1,0,2,2,2,0,0,1,0,-1,0,0,-1,0,1,2,-1,1,1,2,2,1,-1,1,0,2,2,2,1,2,2,2,0,2,0,2,-1,1,1,0,1,0,0,1,0,0,0,0,-1,0,2,2,-1,1,2,0,0,2,1,0,-1,2,0,0,0,-1,2,0,1,2,0,1,1,0,-1,0,2,1,0,0,0,2,0,0,-1,1,-1,2,0,2,2,-1,1,2,1,-1,0,2,-1,-1,-1,2,2,2,-1,2,1,1,0,-1,2,-1,1,-1,0,1,1,1,2,1,2,-1,-1,2,2,-1,-1,2,1,1,1,1,2,1,1,1,-1,0,2,0,-1,0,2,-1,2,0,2,0,2,-1,-1,2,2,2,2,2,1,1,0,1,-1,1,1,-1,-1,2,2,2,-1,2,1,1,1,1,-1,-1,1,-1,1,1,-1,1,1,2,-1,2,1,1,-1,2,0,-1,1,-1,2,2,-1,2,2,1,0,-1,-1,1,2,1,1,-1,0,0,-1,-1,-1,2,-1,-1,2,-1,-1,-1,0,0,1,1,2,1,1,1,0,-1,0,2,1,2,1,0,1,1,1,1,2,-1,2,-1,1,2,0,-1,1,1,0,0,1,1,0,0,0,-1,2,2,0,-1,2,0,0,1,2,-1,-1,2,1,0,2,1,-1,2,2,-1,2,0,1,-1,2,-1,1,0,2,1,1,-1,-1,-1,0,-1,0,2,1,-1,0,2,-1,-1,0,1,0,-1,2,-1,-1,-1,1,0,2,2,-1,2,1,1,-1,1,1,-1,2,2,-1,0,2,2,0,-1,0,2,0,0,-1,-1,2,1,-1,0,2,1,-1,-1,2,2,1,-1,-1,-1,1,-1,0,0,1,1,2,1,-1,1,0,1,1,-1,-1,0,0,-1,-1,2,2,2,0,1,2,1,1,2,1,1,0,2,1,2,1,1,1,0,0,-1,0,1,1,2,2,0,1,-1,-1,2,2,-1,2,0,2,-1,0,0,2,0,1,1,1,-1,0,1,1,0,2,0,-1,1,0,2,2,0,2,1,0,1,1,2,0,0,2,1,2,0,0,0,-1,-1,0,2,2,1,1,0,1,1,-1,1,-1,2,-1,0,-1,2,-1,0,-1,0,0,-1,2,2,0,0,-1,0,-1,1,-1,2,1,0,2,1,0,2,1}, } ; static const unsigned char precomputed_decode_653x3_s[precomputed_decode_653x3_NUM][crypto_decode_STRBYTES] = { {17,192,163,166,124,31,52,81,131,232,212,223,125,84,90,217,24,92,59,30,193,198,12,237,211,3,226,8,179,210,185,226,6,235,124,159,233,189,137,235,238,168,21,117,105,15,203,147,172,11,58,160,205,94,177,147,32,86,190,62,61,80,106,135,20,152,66,83,201,242,224,235,67,154,0,175,249,44,197,28,126,131,254,182,201,170,12,158,234,179,62,119,75,237,13,213,159,167,248,223,80,110,156,214,239,42,245,73,207,12,103,211,126,103,95,13,200,220,43,142,240,126,130,53,66,74,1,207,217,250,206,28,94,151,120,95,183,75,181,87,150,236,209,204,97,155,133,36,226,210,180,89,229,41,127,176,99,4,26,79,26,136,116,104}, {213,84,69,172,97,118,106,231,246,254,116,205,34,94,62,87,217,218,202,230,211,119,216,124,177,242,174,176,60,57,119,174,73,71,128,3,180,159,199,192,219,52,203,44,239,3,88,76,59,83,224,44,32,159,224,202,183,8,3,81,100,227,173,43,123,98,135,163,209,131,243,199,97,129,150,120,93,12,212,78,115,163,184,123,215,43,166,163,26,226,109,87,190,65,178,66,55,21,65,247,59,217,22,57,238,243,186,213,171,168,160,86,203,23,115,106,224,125,72,119,69,95,15,172,10,48,68,137,243,47,122,13,170,89,211,13,240,201,71,51,191,242,198,91,171,124,158,201,118,59,253,67,137,26,241,228,91,119,184,72,204,142,231,254}, {117,214,200,201,65,253,112,108,2,20,27,80,179,46,96,41,4,34,177,135,34,201,166,165,179,190,117,252,158,138,103,84,120,177,88,250,191,211,104,29,134,213,16,13,144,148,37,106,247,173,208,209,146,143,196,60,185,160,43,164,154,213,223,43,227,154,105,57,217,212,123,177,153,101,4,205,91,196,227,20,56,161,175,122,128,124,50,59,176,57,137,108,71,145,191,179,165,211,38,61,156,114,199,169,100,201,33,52,7,138,185,167,163,205,87,205,47,110,147,140,79,22,239,153,18,108,139,239,129,194,218,179,146,77,208,211,185,183,85,50,244,220,107,160,11,28,82,219,112,109,188,89,54,49,97,195,40,133,249,87,131,98,51,107}, {178,75,188,69,30,25,171,89,37,66,205,82,212,15,177,71,202,70,212,254,53,12,65,223,2,123,233,150,88,5,64,128,88,199,229,35,136,28,246,173,162,232,188,246,151,81,228,232,139,253,254,221,104,150,85,244,120,109,92,113,158,70,91,93,200,61,46,13,252,172,49,146,186,195,195,170,171,116,52,119,195,255,154,40,252,172,10,162,232,172,28,242,188,129,43,5,12,3,165,171,209,110,170,51,30,90,90,241,113,57,108,203,115,50,182,2,209,210,144,49,96,207,138,242,244,209,5,75,11,47,32,165,139,41,20,252,185,174,237,106,145,126,194,115,83,167,146,118,216,183,233,181,87,208,107,138,76,76,20,95,132,108,219,222}, } ; static void test_decode_653x3_impl(long long impl) { unsigned char *x = test_decode_653x3_x; unsigned char *s = test_decode_653x3_s; unsigned char *x2 = test_decode_653x3_x2; unsigned char *s2 = test_decode_653x3_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_653x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653x3(impl); printf("decode_653x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653x3_implementation(impl),ntruprime_dispatch_decode_653x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_653x3; printf("decode_653x3 selected implementation %s compiler %s\n",ntruprime_decode_653x3_implementation(),ntruprime_decode_653x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_653x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_653x3_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_653x3_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_653x3_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_653x3_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_653x3_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_653x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653x3")) return; storage_decode_653x3_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_653x3_x = aligned(storage_decode_653x3_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_653x3_s = callocplus(crypto_decode_STRBYTES); test_decode_653x3_s = aligned(storage_decode_653x3_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_653x3_x2 = callocplus(maxalloc); test_decode_653x3_x2 = aligned(storage_decode_653x3_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_653x3_s2 = callocplus(maxalloc); test_decode_653x3_s2 = aligned(storage_decode_653x3_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_653x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_653x3();++impl) forked(test_decode_653x3_impl,impl); ++test_decode_653x3_x; ++test_decode_653x3_s; ++test_decode_653x3_x2; ++test_decode_653x3_s2; } free(storage_decode_653x3_s2); free(storage_decode_653x3_x2); free(storage_decode_653x3_s); free(storage_decode_653x3_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_653x4621.c0000644000000000000000000010127314705505543022366 0ustar rootroot/* ----- decode/653x4621, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_653x4621_checksums[] = { "8c4b6e117d8f9958d52355a14318bfe558207ead06003ef2387d4efee125675c", "3cf98a091d5f8a7de0f454731fbb8eee5d09052d746697e3be6fb56bdca4152c", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_653x4621_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_653x4621_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_653x4621_ITEMBYTES static void *storage_decode_653x4621_x; static unsigned char *test_decode_653x4621_x; static void *storage_decode_653x4621_s; static unsigned char *test_decode_653x4621_s; static void *storage_decode_653x4621_x2; static unsigned char *test_decode_653x4621_x2; static void *storage_decode_653x4621_s2; static unsigned char *test_decode_653x4621_s2; #define precomputed_decode_653x4621_NUM 4 static const int16_t precomputed_decode_653x4621_x[precomputed_decode_653x4621_NUM][crypto_decode_ITEMS] = { {-690,-971,-2016,828,-347,-97,1902,1074,-2150,-975,1948,1570,-128,1334,1762,-2061,-540,-1222,-643,891,-1039,-2007,-1475,-8,726,-1712,419,-568,263,1926,-621,-1322,-463,1079,745,222,1166,-1751,-494,2160,-750,-1468,-126,-171,1456,2039,173,-50,-757,-861,775,1488,1907,835,-1378,-2055,-76,-2135,-1914,397,-730,821,-852,8,-1789,-471,640,168,-2187,1620,-945,-1434,242,-983,-1672,1239,-211,134,2176,-2185,214,-1251,-2103,-1608,-1585,-1745,-503,-1680,-1171,-1246,-622,-1026,-1330,-1482,-2147,24,-69,-642,-1609,2264,96,888,-69,1611,1152,184,1910,234,1675,-454,-786,-1791,-1116,-98,-407,-314,-2184,-1644,1751,-1757,-1276,-383,1545,-1908,-1325,-287,797,281,748,-402,-1558,1065,1423,1107,1366,-936,636,729,2124,-1013,-1017,188,-966,-1342,1997,-1481,-1310,-152,-1191,-144,2135,2168,-801,524,1400,620,25,1025,-783,1917,1167,-509,-1214,-829,-776,1808,1634,-1680,-635,-2258,370,-1787,-118,-1914,658,175,-867,-356,2012,232,-419,-460,147,-1260,1384,22,1806,1729,2023,433,1978,120,-213,258,134,1126,-1681,-1287,-2253,-507,-343,-181,2131,-1217,2205,1989,1226,1292,567,-1453,2243,-595,2027,1882,-1010,-1198,-2242,684,-1172,1847,-610,2224,1674,1223,-696,-171,-311,-1374,-337,-6,1589,-1973,1672,-737,1930,2129,-1123,1802,-2185,-839,650,-2029,804,2068,817,1922,-291,-1760,-1888,315,1417,-155,-2310,-1521,944,-1992,777,-486,577,-1965,2158,1164,-470,1175,88,1628,-556,1388,5,2247,162,1928,1171,-2080,1670,2127,171,1924,-1305,-883,-643,-2264,2081,1225,-1924,554,1088,1027,1657,407,52,-1021,-406,-1112,-2194,-1473,1902,1646,-367,-449,1298,1090,-2180,982,37,2224,1939,-60,-255,1288,734,-1585,-796,-2026,-2197,-236,-2222,2159,822,-940,-2232,-205,-266,-898,-737,-1424,-1840,778,-1274,1921,-1505,-1720,2114,-1176,107,771,-1977,-1802,2292,2270,-1256,2,-2224,1563,1998,1239,40,-136,-1514,1604,-1596,675,-1789,1378,1406,-2086,1598,187,419,-1000,1529,1398,2157,-30,290,2089,-2196,1291,2222,-705,1955,-1366,-870,-2041,-2075,1785,1715,1636,-698,21,929,703,819,-2259,-1086,-1978,-993,-2307,-1556,-124,1765,1073,-29,-1001,501,1794,-725,-1970,1523,509,2045,-1259,942,435,-748,2126,953,-573,899,-55,-848,-1283,1507,1635,-2299,-1601,824,877,1975,1661,721,1735,-1960,-2137,-1802,-333,1300,-1406,-1264,1445,1094,-455,-1956,1863,2239,1682,-371,2298,-788,-995,-1843,-1439,-1706,-592,696,-2200,703,967,-1007,-1482,635,1456,646,-980,562,-2223,904,1602,-1783,-786,2085,381,-1051,-1891,-1738,1639,908,-1624,758,505,-1461,952,-1442,-628,-2078,174,-1346,-2060,854,-2216,-1642,-1414,-614,-1592,1128,301,-754,2147,2302,-1913,-614,-1775,1600,-1512,-656,-586,2098,1280,-2230,-2194,-1182,-1679,853,371,-602,-2118,1123,1749,-2109,2049,-2086,2244,1176,1322,222,2257,-1394,338,-2014,1993,-2293,-1236,788,1125,412,-2157,1111,-1981,1856,-2305,-2142,1639,1349,1141,-448,-2201,-851,-619,1773,491,1218,475,1985,-1676,-1279,193,2197,1534,139,1635,2245,-2166,-1616,1434,475,1136,-84,-1010,-155,1122,1188,2279,1525,-2070,1209,1960,-1632,611,-1538,1771,-1650,1864,-2007,138,-99,-450,-1193,1714,366,1839,959,940,-34,1328,-1711,2272,-2272,-1756,-163,-518,-1616,-1780,1771,-2084,1816,-1685,-1122,2285,-1380,-397,1196,2145,1471,-1310,268,-1322,124,-1898,1757,741,-2255,-2132,464,177,-1889,-2060,-1575,2261,-437,2307,-2256,462,767,-743,1982,-642,-2038,1658,1972,563,1591,964,809,-718,-38,-2239,-1806,-967,60,2051,-1863,-1504,2000,-539,-2304,-2184,698,-442,-415,1753,1119,917,-1043}, {-919,-42,-413,-764,157,-1768,1828,-1751,-2208,-769,1848,1587,-698,-2254,-2079,-1189,-240,1863,509,-1015,1159,-2310,-1113,61,1277,2261,1715,227,1489,-1625,1104,-2308,-152,-1424,2278,2095,342,678,-521,787,-905,1485,1517,707,-1535,522,1487,903,2270,446,-1981,-344,1727,-592,-1719,2294,2067,141,-67,254,-135,343,-1617,-223,766,-1993,883,-89,-1128,-2229,1670,-1298,-1127,819,-1095,-1852,786,267,-432,-1068,-135,-603,1705,1722,-584,-642,-717,-269,1267,-589,-1773,1682,-1582,-1854,-1266,-1497,-2035,-330,1175,-322,-1084,-287,1222,303,1358,1505,-23,-1461,-1098,-31,2031,389,-1521,-1387,-2080,535,-1533,-1787,1215,93,510,544,1655,2058,-804,-1255,349,-794,1801,-779,-399,-1447,-483,-1208,-60,1756,-973,-953,991,-387,-1340,43,640,-853,1743,-1205,-1932,1772,1860,-1891,113,1145,98,2299,-1023,101,11,-336,-1733,948,-1421,-1490,-1432,470,-1625,-1669,-502,-1431,-538,-120,-757,1498,-1263,-1092,438,1410,-1623,689,-1236,1585,-2067,-2296,1429,-1790,443,-1309,-1796,366,1667,-1717,1607,9,1002,-1367,-1161,-655,1484,994,-1590,-2140,546,2026,1216,827,-915,-852,-1096,-1320,782,260,525,-720,417,922,1330,-2059,-899,-342,-235,-2248,728,1587,1085,1516,1814,962,1583,1013,-1439,-987,2025,694,1637,-639,-2225,268,-1799,2115,-320,-1085,1363,784,1710,-1454,1106,-1728,565,-2023,-2168,-1715,280,541,822,196,2013,496,1163,-1422,2243,496,-891,-1655,-918,-79,1838,-479,-698,1310,40,-265,1000,1345,1035,503,2069,-1919,-119,147,832,1287,-473,1037,162,-83,-1493,-2246,-230,-2088,1286,-1075,2190,-1333,-442,-413,1979,1996,-2106,-1581,-597,2136,1314,2177,-1605,-892,-1261,573,1551,-697,340,-784,1758,1619,-1383,289,584,-2200,-1655,-1049,646,1740,-241,-810,907,2277,-1885,-303,-1809,-167,-413,86,1092,-680,-705,2131,-1791,-417,1398,-513,-1674,-699,-1311,1667,839,807,204,1983,584,-1076,-930,1247,-1283,-287,-2147,-1213,-1629,2040,1801,-627,-645,458,-754,-1168,841,1725,2057,1993,-1737,195,760,381,-1701,1142,-726,-1929,-356,-1326,-2020,1882,-1384,-854,569,-288,-1101,593,-1145,-1170,-1075,-1186,2226,539,-1247,328,1821,-1014,-1831,-2263,1242,543,2205,-1888,1706,-433,-1742,-1630,-588,-458,-189,1362,1741,1505,1351,-790,875,961,-2279,-830,650,-1694,-791,-2301,1276,-1327,1561,-1161,-1251,-1553,-1728,2101,138,367,-446,344,-2090,587,-1694,150,267,-1061,2141,2007,-736,2198,-1313,-119,-735,-218,106,448,-1914,798,-1602,1447,1335,233,-2166,-1462,-1052,-330,1699,507,-54,1477,967,1092,-1389,1239,-1730,-692,-1225,1560,-1974,-2075,2192,-1878,757,483,1877,1661,-2055,237,183,2216,467,-1026,-1588,660,-2139,-1227,-1855,-831,1324,-694,989,-639,2251,382,2137,-1176,-1868,-562,-1273,139,1302,1140,-889,-1576,828,-724,1001,1814,1405,532,-207,-1539,2075,-1737,-58,-326,2145,-1506,-1478,2148,139,-397,-1969,2010,1636,115,720,-2236,1726,1583,477,-2028,-1868,-264,1632,-1063,1935,-593,1078,1883,906,2251,1921,1111,-1907,-507,-789,1291,1586,-1415,1704,-175,287,353,126,614,-1479,70,1392,2075,911,-124,1917,1377,-1053,-309,-1751,514,-1678,-199,864,634,-2191,73,1259,-1242,-443,-1872,1664,1749,-1701,-1818,578,-1838,564,-1402,380,-1318,-967,720,257,-1512,-531,144,2045,1165,-1099,1545,2099,-1917,-396,-1203,1546,-247,833,524,-1908,229,-809,-77,-2001,-1771,1610,1160,-1977,-1644,2013,-178,786,-1003,1492,1358,-700,-441,-1461,-1432,-975,1413,-607,-1236,-312,-1029,-718,131,-1825,-8,-510,1685,372,506,1032,2230,-2073,-2258,1193,590,-2285,-975,-1085,-1821,-821}, {-1096,-1034,968,-629,1503,1194,621,1545,-2186,1949,-1940,1261,1943,2308,2234,1180,-1658,-312,-1555,-2259,734,1916,-696,-118,-1121,1610,905,-911,-1609,1439,1786,-1780,-714,-12,124,2031,158,1820,-755,-32,-1689,-2122,1431,-128,1002,-831,987,-2113,1690,-966,1049,-944,2205,953,837,-2027,1412,2024,1827,-1589,-2189,1363,-231,560,-1776,1042,-579,705,1268,-366,-1755,-1469,1160,-1134,-592,2187,1909,-1591,214,-205,-1207,-512,-810,1641,-1928,1839,362,-255,-1209,203,2017,827,78,-1677,492,-270,1832,782,1177,-1071,1439,-1307,-64,769,-1145,1689,-1891,-171,-42,-213,2136,1896,-585,1166,473,857,-525,1816,2096,-1318,-253,1545,1860,-1639,2150,2025,-1381,843,-322,-1026,1321,-585,1701,726,1293,300,588,-1420,575,558,1154,406,1075,-1839,-2059,497,16,1909,59,2284,616,-1661,617,1847,173,-87,-1518,-744,850,52,-914,-334,-2027,-2244,-2213,-110,-1654,-1570,1410,-861,-1023,800,-1562,252,-1834,-2310,-1739,-248,-1594,1630,1107,836,-317,306,-2022,-1860,-921,-193,-115,1146,-1066,1416,-1835,-2009,-1816,4,-2223,-784,-469,304,-1160,-589,-737,-558,-1205,1668,-537,861,-438,1963,-698,499,-448,378,1217,-2038,153,-2181,1293,-1000,326,-239,2125,-1702,2069,27,185,1453,-542,380,-781,-1738,112,598,161,1034,-623,-640,-910,-941,450,-1894,428,-1311,-1182,1720,-1889,909,92,-1454,376,-2302,380,-832,-2007,1817,-1467,-302,1471,-935,2194,-536,956,-312,-153,-354,-2202,1848,-1403,924,-286,479,-2033,2096,2279,1901,500,891,-1806,-1744,2231,2072,1622,2183,404,855,-1390,-2090,-1793,-238,-454,228,-1452,-1337,140,-536,-2270,-347,1996,-526,264,1445,1133,1204,1182,-1661,-1274,-2177,-279,837,1492,-173,49,-1675,-1059,1790,-114,2236,-354,-91,1821,2214,-245,165,-1359,-535,1208,1092,319,-107,2260,1915,1519,2207,-1056,-2257,-2213,505,-1891,-1404,1405,552,-1890,1364,-1608,459,-2090,1957,1563,691,-1,1344,-1845,-190,-1117,1505,2255,-1922,55,1993,-2204,2225,863,1150,-184,1613,2134,890,-1246,-586,2152,487,-35,-2018,1239,-1943,-725,-1179,-1534,-2117,132,-872,679,79,2103,64,-2267,-1372,-1955,709,25,-2153,-484,213,-334,2193,1204,-2064,1806,1990,-1447,1737,-839,-1280,-806,-71,1605,-562,-1184,526,1784,1957,508,-220,611,-242,-862,984,-1437,472,-527,-1304,-1961,-159,-350,-303,1908,942,172,-1177,1557,-1584,173,-1765,-912,-2233,-2004,-1039,-1325,-1018,889,391,2209,-9,2001,487,-533,-644,1081,-1700,458,581,-1022,83,-1571,-933,-2058,-133,1102,2240,835,-580,1797,1316,1576,-1233,-798,-1245,544,1577,-242,157,1662,-1364,-2265,-130,-219,759,2215,1679,-348,-346,-1242,-392,-2185,569,-769,-2158,279,-373,1529,586,820,-159,926,-1248,-1087,-1351,964,1018,-2099,697,-1980,-1798,1356,842,761,1706,1215,-1193,1757,1176,-1250,849,1548,2094,-775,1971,-87,-1078,-2117,230,1978,1566,645,1787,-1909,405,-1002,-1765,1341,330,-944,-2224,1377,-260,-1706,-1073,-1781,-1851,-1228,-1581,-1019,1213,-580,609,-1734,2159,74,-440,287,1094,754,1179,349,1217,-811,-2014,1755,-1254,1711,-1068,2013,-2008,-987,-1510,1844,344,-1120,-2000,-1443,1826,-1688,324,1291,-995,1460,50,1593,-1064,1159,-208,1735,-1977,-793,-282,-1174,1019,445,2111,2281,303,80,1605,1592,2211,-1541,538,1135,-1838,779,-1214,-1071,-1540,577,173,-1356,-1970,285,2230,-885,354,-1390,836,-1417,1405,583,-1046,498,148,-2090,-1030,195,-1679,-642,264,1108,-1090,-966,965,2158,-1485,-533,-1257,-738,792,-1172,-1659,716,-1408,-389,-383,-1642,-886,912,-1157,401,633,-2051,-1013,2049,-954,-333}, {-1153,-1319,-935,-119,-1063,-374,1434,1893,-948,933,1362,-1647,-2254,2031,577,-905,1516,520,-2289,1298,-2221,1151,-2080,-1649,-683,-1522,1093,-341,-250,2067,1293,2171,-2184,-176,-2310,1955,-2011,-1077,-1786,-432,157,690,2196,-415,1120,1031,838,-1849,-1776,1186,2049,-261,-1914,-1775,592,-1042,-1951,-272,-1851,1305,821,-790,-2134,-562,413,813,1117,216,1321,797,320,63,556,1346,1477,1756,-1363,-1722,1551,1383,-101,235,1398,857,1320,958,1799,212,-150,-230,1304,1700,-1171,309,-2085,-1961,1931,751,-384,616,2182,-259,572,1903,-1153,1761,2303,313,-2085,461,-1272,-340,568,266,1159,-1232,-2255,-1351,-2033,2254,-836,-1083,1906,569,-956,-1409,1779,-1065,733,1297,348,430,1365,504,-996,-1275,-1110,-777,100,273,541,-823,984,313,-818,-2034,-1146,-1946,1178,1150,-239,605,1069,336,-192,-1438,-1391,-2233,917,-337,673,2252,988,754,-1837,966,809,-1215,-690,1317,-934,1308,2154,-606,-119,1600,-1557,-1259,-513,125,970,1928,2303,1476,-1344,150,782,-2144,-1276,-510,2102,1571,-2151,333,2041,1809,-2194,619,-1322,-1213,2300,684,-1648,-979,821,-452,1763,2104,-1406,1853,-1118,2269,-1905,2146,-1645,-412,-1522,-707,14,-1851,39,-1961,-800,799,-1815,540,546,-1011,2305,-20,-2098,-1556,754,-1350,-2264,1951,1805,-400,2253,-1304,-791,1195,-996,-1615,-1314,1602,1300,-1322,391,-263,-1286,315,-1331,1291,1105,-204,1917,-1657,388,164,2299,-1383,179,1661,839,1526,-500,-64,-473,626,1827,-979,-2206,-1034,-2274,-1506,1675,-1497,-623,-960,-1391,2038,-1925,1571,640,853,587,1623,-128,-566,-16,1644,-1704,-530,2102,1361,-1479,-528,983,1495,-1746,1641,-1706,-80,-429,1847,-1322,369,1174,-2109,-1389,-1045,-292,1127,1088,1506,982,511,456,-1427,1677,-2031,1161,-721,446,775,-2111,-2302,-710,-2176,2,-224,547,-425,-897,-1696,1652,-2223,-1592,-1331,-1393,1221,1354,-1151,-548,-856,-981,295,1183,-103,1206,348,-1300,1869,239,-1975,-1665,611,575,2088,-1145,646,100,1807,-640,-1546,69,1905,1701,148,670,-1122,-46,-288,1369,1848,131,1909,-972,-2130,-2137,-1074,1340,70,1101,-1002,-2176,1343,-1323,-120,-79,265,-1741,-55,2152,-316,134,-1003,1158,-1203,177,1524,-257,-1643,-894,-745,-532,-1523,723,-1329,1617,1025,1479,-805,-1304,-1963,-2187,-1095,-2158,1546,1794,-1366,-358,-791,1985,-1707,-1508,-869,-365,98,315,-282,837,2226,-1990,523,90,752,-1480,-686,1920,-750,1330,-98,9,-1953,977,1364,781,-2238,1354,-2115,-472,-1674,-891,1431,-565,1672,1256,-1481,480,-207,-1199,-545,1723,1882,1172,-854,1561,1843,-1078,-657,-853,-1158,561,854,-1493,1550,2017,795,-1556,-2279,1987,217,695,-1691,-142,950,-771,1382,914,-260,-1278,-1281,2025,-1802,-1152,1906,-1160,-2101,-2245,1867,1054,1494,1078,-877,-293,-1470,835,1108,145,318,-2217,2247,1608,116,1460,2166,1384,-1978,703,-300,-698,-1778,-185,-2115,787,-145,-2293,-1372,1598,1351,-2200,1420,-315,-1766,1039,144,-390,-1688,1769,1991,-1955,-1199,1760,2169,-903,842,2079,1146,157,-1449,-105,-229,1332,-869,-2277,-1475,651,-1058,421,-679,-1970,-353,518,1397,212,-2103,1699,2293,719,-2160,-955,-501,534,958,-55,6,426,-987,2044,1589,699,1659,-1252,-2170,2067,-51,196,1153,-261,2264,2154,1857,472,1280,-837,1944,-2114,-567,1736,-1474,1139,506,-1181,1963,1424,743,-1202,213,-1891,1943,-2300,-874,-2264,711,979,-363,-1169,1770,1448,1549,1442,1721,-2298,-1328,-848,113,-1553,-823,-1053,-752,333,-1030,1235,2169,-1663,-434,-991,1371,1359,963,-275,-1245,-618,-2151,-598,1536,2035,-337,371,186,986}, } ; static const unsigned char precomputed_decode_653x4621_s[precomputed_decode_653x4621_NUM][crypto_decode_STRBYTES] = { {83,112,128,68,12,18,76,172,107,34,170,165,146,249,141,158,42,190,16,187,90,98,41,84,58,54,31,223,41,185,197,176,80,253,131,148,247,119,22,54,218,100,39,219,143,181,119,100,166,49,235,216,46,210,151,254,157,95,3,225,43,203,104,119,108,173,92,197,13,28,209,201,91,155,183,64,79,92,223,225,163,181,117,128,134,217,13,115,123,10,204,143,224,101,41,147,117,165,3,135,204,135,222,129,44,232,172,113,209,237,79,158,254,252,203,196,80,246,242,13,229,227,121,103,148,168,182,189,214,148,83,252,26,254,34,240,213,83,47,133,231,39,104,70,236,132,126,45,93,190,195,208,207,217,72,167,122,48,158,18,10,11,125,113,28,99,102,123,47,177,7,235,172,244,201,67,221,204,248,77,85,121,235,18,218,124,47,219,56,122,38,104,153,26,8,80,104,36,200,33,204,37,218,34,242,49,186,8,194,120,224,254,209,165,140,109,78,28,139,33,226,184,249,44,237,216,87,7,181,124,88,210,111,249,251,15,115,245,48,185,213,219,124,190,31,115,209,207,243,24,254,1,17,162,220,120,175,168,204,94,222,5,41,194,88,181,164,198,116,90,222,220,71,69,221,234,179,148,100,162,217,68,170,82,242,242,187,88,120,163,175,236,70,128,245,4,88,1,24,64,192,202,174,31,105,187,219,182,189,186,181,42,86,12,195,61,73,29,206,165,51,109,176,151,35,127,166,190,231,88,27,157,222,6,230,71,25,211,142,2,134,9,3,23,13,79,148,83,222,253,95,124,81,13,228,217,17,32,47,105,75,131,59,213,139,55,79,233,53,61,153,160,73,253,222,190,27,76,171,98,168,127,208,164,164,109,76,59,244,37,182,153,98,85,99,107,117,255,32,212,98,44,25,154,94,207,244,134,12,13,221,111,62,57,12,254,21,196,100,16,64,67,39,52,97,104,2,204,197,200,127,217,75,63,125,140,147,241,185,190,14,108,154,37,84,205,46,28,35,103,191,150,22,211,163,45,54,227,115,119,210,207,50,144,197,116,104,107,239,136,247,4,206,156,12,39,118,164,34,173,28,48,22,167,5,40,105,74,45,16,203,191,204,83,2,150,134,51,52,46,115,130,128,22,108,144,136,65,36,92,34,28,14,38,207,15,12,186,171,105,155,186,137,64,103,212,18,64,135,106,49,115,138,99,207,182,146,65,48,144,53,109,249,196,34,129,207,28,230,51,27,57,214,0,223,5,182,178,179,6,179,160,43,251,149,34,251,248,65,196,138,82,127,157,23,47,181,192,37,151,207,53,162,141,5,23,72,16,99,99,160,97,107,255,219,33,251,3,199,230,237,45,141,145,62,180,110,22,210,48,65,141,33,103,87,162,254,80,198,147,250,116,152,137,120,173,144,202,159,164,127,233,7,77,123,10,43,180,183,136,173,214,197,240,108,226,156,194,186,131,68,151,204,176,4,166,210,97,134,8,154,73,63,172,104,131,0,110,21,195,185,220,176,47,231,18,129,89,161,90,227,216,47,82,84,48,184,72,202,186,27,103,239,42,219,245,123,190,76,131,225,2,164,163,12,123,241,85,162,236,4,75,75,142,73,59,16,243,45,189,96,130,25,11,91,118,233,95,115,239,0,123,166,148,96,166,117,73,208,127,30,216,197,100,125,210,238,166,23,174,98,59,16,148,79,124,112,101,197,148,252,108,83,49,176,1,85,171,54,170,80,181,235,148,58,78,45,218,65,249,12,148,119,84,4,221,85,204,202,210,122,135,163,59,131,126,243,229,237,156,23,232,94,51,31,85,32,215,191,174,206,80,32,218,48,121,28,222,59,131,159,20,242,158,126,62,18,154,164,82,36,14,212,97,135,36,237,164,170,116,226,25,53,116,15,40,66,31,204,141,189,83,167,106,154,254,181,27,67,52,172,20,81,96,240,118,188,101,16,38,90,81,169,94,63,63,111,11,12,219,84,2,251,121,182,213,215,52,146,24,122,208,31,131,102,94,2,161,51,244,173,99,43,73,212,29,116,253,5,0,123,143,201,227,113,158,138,192,135,18,207,148,86,19,249,126,140,178,46,52,92,10,233,195,134,215,169,190,64,99,129,33,118,41,186,94,100,43,150,154,243,232,53,216,86,225,81,16,8,225,217,191,11,224,4,3,1,111,95,192,128,250,150,43,28,163,183,15,93,239,192,95,215,179,252,136,119,158,131,189,67,201,10,110}, {155,240,235,9,41,65,141,122,167,168,35,216,36,249,212,11,255,69,198,90,54,226,20,51,34,92,142,242,160,91,112,49,108,129,157,171,24,186,66,102,52,156,40,202,215,178,254,155,216,101,31,161,3,51,27,164,144,227,247,210,56,25,176,42,29,102,66,167,187,186,240,106,132,165,1,80,245,192,104,154,46,101,111,92,114,163,222,239,94,103,209,124,0,42,93,87,159,157,145,58,133,169,125,76,15,14,12,230,119,182,4,96,244,23,95,155,152,227,204,125,242,71,77,13,117,105,95,239,206,3,74,225,25,187,68,187,34,180,140,164,71,237,131,199,242,249,196,212,145,155,234,166,117,5,118,5,79,57,179,187,29,213,154,8,58,53,179,1,34,114,113,135,241,229,164,87,250,120,253,167,169,253,3,185,150,159,230,177,166,223,16,147,211,138,136,182,154,6,114,255,88,199,19,63,125,211,4,211,150,66,209,39,199,238,247,192,115,201,65,103,195,211,141,211,68,198,244,93,150,76,123,225,70,226,63,199,180,4,251,103,119,55,44,107,230,22,206,71,197,244,229,16,126,191,97,235,169,170,71,236,206,52,187,84,47,43,32,70,7,59,137,196,234,101,246,162,84,71,239,172,36,7,191,16,113,134,102,175,195,34,49,245,161,201,107,175,209,103,119,132,3,112,195,254,128,76,254,202,216,163,105,25,154,69,228,204,152,236,54,157,65,204,128,123,148,133,200,28,21,249,16,252,202,41,40,124,189,195,75,154,220,111,150,212,211,189,248,13,5,212,190,168,88,90,143,187,134,187,17,51,18,140,54,143,146,121,114,163,165,202,173,105,137,227,154,105,2,150,142,173,237,157,36,182,113,102,231,69,101,244,29,6,243,113,66,82,193,56,17,211,1,105,192,244,198,156,193,242,142,15,125,59,140,176,71,91,216,122,100,168,237,93,120,19,148,100,69,8,129,203,14,42,249,69,84,119,126,27,156,118,18,227,40,129,99,136,126,129,96,39,141,235,96,93,160,203,118,161,182,176,31,15,143,237,210,65,110,24,195,228,63,147,134,135,208,251,2,16,86,152,147,43,13,148,164,109,170,93,226,74,66,0,190,223,133,226,245,6,126,66,106,178,78,81,211,198,204,224,91,214,213,114,94,101,58,120,140,237,59,194,162,89,182,236,181,156,143,12,152,67,117,143,53,237,160,69,185,252,198,33,41,180,45,166,64,72,34,35,206,238,171,42,25,154,96,207,0,54,27,212,35,63,151,47,190,9,134,28,151,33,171,219,230,161,122,7,45,92,137,233,165,67,93,179,64,83,86,17,226,252,29,171,141,78,145,15,122,23,126,214,46,199,177,21,211,133,49,224,129,8,66,121,148,2,134,187,31,247,39,101,119,52,30,177,51,207,231,235,70,136,49,193,219,90,45,36,203,82,231,183,122,153,154,43,145,171,243,136,228,33,158,127,109,208,88,157,8,239,238,48,2,110,3,147,126,17,228,237,190,111,156,127,32,143,79,182,211,222,47,148,241,90,1,70,212,129,73,137,199,143,193,41,209,33,226,249,191,216,174,187,250,235,159,68,85,137,162,160,226,15,243,188,66,161,31,142,28,28,59,214,40,219,218,30,239,95,201,78,177,41,161,70,187,215,212,151,100,250,248,206,249,200,248,79,47,248,11,86,234,164,45,183,94,14,79,86,43,107,63,222,26,120,89,159,11,213,175,101,38,112,182,10,219,153,148,35,242,30,141,210,38,219,222,242,241,115,109,237,171,55,184,120,81,146,63,191,127,106,161,131,134,15,111,251,161,222,50,232,49,136,98,120,70,203,170,43,221,149,227,75,15,208,197,6,137,42,102,242,140,94,233,204,236,141,89,89,117,125,79,83,26,79,101,74,166,237,224,251,165,99,168,150,238,48,233,155,209,240,143,133,9,150,3,132,36,220,169,96,76,189,37,49,156,178,25,19,49,92,237,147,235,188,58,66,14,69,125,166,177,28,131,136,191,78,155,120,203,188,90,57,95,227,193,64,78,123,67,185,46,87,248,98,136,21,231,15,146,9,29,176,138,241,118,55,253,59,22,190,48,59,46,208,21,39,127,108,116,82,245,168,250,139,107,191,187,8,156,140,167,158,156,55,23,8,97,121,4,16,123,236,149,226,194,138,169,144,14,248,175,154,105,227,229,220,87,195,67,108,239,52,239,7,178,37,160,28,145,115,193,81,187,73,60,27}, {138,253,43,148,213,32,54,221,195,78,201,204,31,175,250,38,2,228,138,155,126,6,158,149,181,107,154,177,30,91,234,110,238,14,243,31,94,63,193,165,249,67,107,233,11,86,226,240,224,211,125,94,86,37,170,0,160,166,198,230,254,252,221,101,78,92,222,157,178,32,224,78,70,249,19,29,254,194,193,118,157,203,127,156,47,142,203,240,234,53,52,66,121,171,138,226,50,21,138,106,148,199,33,35,160,253,66,212,89,229,244,162,65,31,178,89,127,244,150,3,204,217,93,96,143,187,190,85,248,144,200,175,215,33,157,22,132,204,233,68,116,143,36,67,134,237,85,133,139,246,99,206,136,40,150,200,158,110,74,152,204,89,117,168,25,32,36,48,29,58,245,78,6,169,133,214,241,102,224,210,27,225,161,124,250,187,238,74,19,184,18,190,36,59,112,43,213,153,239,87,227,93,29,143,83,130,244,157,77,82,241,22,198,143,151,59,44,34,153,108,119,17,51,240,200,217,214,94,130,179,5,91,34,21,119,211,101,199,253,140,232,95,109,123,14,45,28,251,218,100,230,154,144,65,194,0,67,153,152,2,174,39,56,238,193,243,146,47,197,11,137,175,211,172,196,253,135,191,182,234,67,12,133,221,83,53,196,134,61,27,34,252,195,158,168,31,215,105,106,219,189,206,229,211,153,208,205,100,190,237,95,189,118,207,23,29,110,147,83,126,223,13,192,139,218,43,128,238,36,96,103,250,86,142,151,193,84,125,165,227,217,219,54,16,91,65,139,223,134,169,147,174,121,125,100,4,137,109,192,113,181,196,25,4,133,165,220,179,180,147,119,73,183,159,128,238,160,197,213,158,144,110,254,126,203,117,205,35,178,224,24,27,65,237,99,138,56,102,112,66,226,94,13,166,147,229,15,80,106,252,173,238,36,105,109,220,238,72,175,44,13,246,152,172,147,139,158,93,59,237,249,63,96,119,95,115,189,159,117,29,168,127,128,80,224,72,139,127,57,16,159,227,141,192,208,26,137,129,98,224,35,8,45,188,223,255,253,29,137,30,91,251,142,195,225,182,4,110,62,86,102,131,146,65,176,0,189,189,122,158,15,66,117,183,146,238,122,163,202,181,134,7,74,27,98,78,239,55,126,208,233,220,143,194,182,150,100,225,63,231,189,25,148,93,152,237,112,113,201,114,83,52,180,21,129,154,45,59,96,95,63,107,242,109,253,216,49,31,70,228,1,15,37,15,126,187,227,228,129,133,199,162,57,92,203,109,0,51,100,224,107,165,48,188,216,198,146,118,133,234,75,68,182,138,233,4,125,191,68,197,160,80,37,22,211,214,161,211,109,85,185,83,241,79,94,31,254,252,175,40,217,220,90,215,36,246,125,43,202,91,220,65,212,135,58,133,78,19,143,241,89,61,106,70,170,191,129,235,160,165,92,231,236,106,35,89,10,142,224,116,227,173,157,17,206,137,94,70,224,38,78,227,227,246,158,94,221,62,228,171,0,170,130,132,31,70,164,156,29,131,239,70,233,229,112,38,122,197,251,145,205,210,163,211,72,146,79,45,221,151,167,187,27,18,81,239,49,14,26,173,15,181,65,232,96,250,19,197,167,124,38,139,157,249,62,114,184,146,163,225,50,232,211,215,209,16,0,155,203,25,35,245,247,154,87,234,221,85,179,214,95,235,205,63,207,57,128,144,43,65,132,59,10,195,173,46,25,52,205,96,24,174,116,135,80,211,63,172,64,76,162,177,89,90,2,102,23,3,239,35,198,80,21,90,167,225,112,222,139,135,8,206,17,249,98,59,167,98,57,194,230,103,223,235,85,214,128,36,125,6,194,186,128,238,20,98,218,239,96,92,28,122,65,186,167,69,215,65,125,15,189,253,53,50,108,89,223,188,181,186,115,67,127,107,208,222,154,145,126,247,151,91,208,20,52,124,30,250,196,134,239,130,184,127,131,204,196,234,105,75,220,77,169,209,252,219,146,143,10,214,101,15,220,174,21,223,25,142,56,245,150,38,204,116,67,178,27,143,91,25,135,208,124,221,210,3,198,178,48,158,127,195,119,32,196,174,63,25,187,8,206,246,222,139,97,106,100,255,37,109,89,215,218,123,79,88,195,59,57,1,91,195,31,105,38,87,191,11,214,253,35,76,217,171,234,48,196,115,121,26,24,20,235,56,77,101,50,187,2,83,81,108,85,240,253,245,88,244,155,14,26,100,95,36}, {216,228,162,130,47,135,15,106,1,176,3,206,169,22,160,28,168,154,77,103,26,10,119,156,95,150,72,227,81,168,160,3,220,120,149,186,200,241,106,109,251,145,213,175,15,161,181,141,158,131,20,139,183,186,186,115,229,180,94,231,107,57,116,65,58,63,169,41,246,33,199,92,218,212,69,193,143,121,158,116,222,123,79,93,34,124,31,228,16,178,192,205,114,175,154,156,2,230,28,88,179,175,51,27,64,17,56,5,152,99,24,236,14,174,75,16,234,158,217,208,17,138,171,16,11,141,50,217,14,97,134,61,65,121,177,255,137,28,149,42,166,228,17,0,216,123,8,175,84,5,30,146,145,159,142,132,128,113,204,42,81,183,122,24,53,0,202,65,131,196,26,33,248,55,29,187,80,30,172,184,6,224,71,6,178,120,130,192,114,239,81,184,214,92,42,128,49,135,145,93,12,46,45,220,149,14,15,76,239,140,47,227,221,51,251,214,123,10,99,102,230,164,199,61,169,246,31,163,81,138,30,43,184,188,143,114,17,189,233,0,236,41,109,6,140,218,70,184,128,96,77,27,176,236,73,140,172,27,44,124,20,111,96,9,25,135,32,101,69,12,192,233,52,249,248,176,218,98,37,55,99,152,150,168,37,18,10,93,22,1,192,213,194,132,167,233,189,169,22,88,215,152,154,63,114,36,231,233,209,57,214,53,107,96,14,31,29,246,165,77,190,187,64,24,109,145,47,145,14,121,246,30,226,244,179,80,229,49,133,10,228,252,43,199,184,140,122,179,184,171,182,120,41,174,248,168,218,248,155,38,169,114,123,84,82,229,86,61,125,96,248,207,134,155,133,61,200,133,94,182,113,39,30,223,191,71,7,148,17,111,122,153,188,2,176,170,235,49,195,27,105,96,228,15,1,95,233,132,170,55,178,54,58,45,141,123,46,172,104,228,248,159,195,34,102,149,79,158,225,209,61,9,163,226,29,195,222,240,182,133,190,15,140,6,48,53,105,27,187,31,55,206,122,223,132,205,7,205,7,130,177,83,248,119,161,164,138,183,4,228,193,146,49,64,227,35,53,47,148,0,133,50,28,63,44,177,4,230,127,89,178,152,73,146,187,226,158,74,27,193,94,134,80,70,1,24,137,66,219,13,11,87,198,81,128,30,6,170,74,119,215,197,80,137,52,200,10,180,179,35,45,51,216,1,107,99,179,21,22,227,88,84,206,87,89,225,143,69,165,192,92,191,74,196,103,169,136,224,37,83,126,11,181,254,75,109,93,162,104,159,115,159,40,147,16,121,107,86,223,83,1,253,78,231,62,227,208,89,165,55,71,140,11,227,44,45,199,249,71,231,66,2,121,156,102,79,159,83,115,234,156,227,246,64,151,3,184,85,165,179,165,40,91,73,234,61,193,222,120,220,7,224,83,75,76,223,203,73,20,146,138,214,8,32,175,60,254,53,42,47,57,9,97,120,120,68,59,136,243,156,158,110,49,171,86,123,3,13,136,133,53,65,173,76,174,72,43,198,181,127,125,9,216,9,196,118,48,254,233,2,104,7,81,245,185,170,12,44,175,36,6,220,65,141,49,152,49,250,170,31,75,240,93,241,38,117,194,209,66,61,169,51,216,157,127,9,197,4,141,100,128,186,179,217,59,70,228,30,112,189,112,145,28,107,95,172,113,1,162,24,231,176,232,120,135,250,111,132,200,195,169,3,22,235,147,22,244,124,11,220,75,242,174,201,100,218,253,110,135,135,3,133,171,157,206,107,111,131,239,91,48,74,233,217,0,99,17,92,131,0,83,135,95,247,115,163,3,184,193,54,124,86,104,37,171,100,155,36,143,126,74,88,100,3,77,92,199,71,236,1,98,118,200,223,238,84,5,250,142,178,247,219,233,244,190,63,12,93,42,231,252,2,245,144,183,142,27,87,169,254,178,138,48,167,146,252,235,89,64,62,103,112,10,3,124,194,56,210,203,155,207,232,183,59,129,238,46,247,170,195,60,221,174,184,209,0,224,93,253,254,184,167,28,159,141,78,133,200,30,140,1,154,223,139,124,148,92,168,149,125,6,156,213,126,170,196,201,249,135,181,24,22,13,50,182,13,230,97,65,156,217,96,181,39,221,178,118,122,99,249,226,164,240,142,1,50,107,74,217,28,226,69,44,191,219,55,202,8,19,38,62,185,202,27,9,244,194,3,33,186,12,170,3,69,251,210,161,183,21,253,195,144,35,147}, } ; static void test_decode_653x4621_impl(long long impl) { unsigned char *x = test_decode_653x4621_x; unsigned char *s = test_decode_653x4621_s; unsigned char *x2 = test_decode_653x4621_x2; unsigned char *s2 = test_decode_653x4621_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_653x4621_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653x4621(impl); printf("decode_653x4621 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653x4621_implementation(impl),ntruprime_dispatch_decode_653x4621_compiler(impl)); } else { crypto_decode = ntruprime_decode_653x4621; printf("decode_653x4621 selected implementation %s compiler %s\n",ntruprime_decode_653x4621_implementation(),ntruprime_decode_653x4621_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_653x4621_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_653x4621_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_653x4621_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_653x4621_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_653x4621_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_653x4621_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_653x4621(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653x4621")) return; storage_decode_653x4621_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_653x4621_x = aligned(storage_decode_653x4621_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_653x4621_s = callocplus(crypto_decode_STRBYTES); test_decode_653x4621_s = aligned(storage_decode_653x4621_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_653x4621_x2 = callocplus(maxalloc); test_decode_653x4621_x2 = aligned(storage_decode_653x4621_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_653x4621_s2 = callocplus(maxalloc); test_decode_653x4621_s2 = aligned(storage_decode_653x4621_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_653x4621 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_653x4621();++impl) forked(test_decode_653x4621_impl,impl); ++test_decode_653x4621_x; ++test_decode_653x4621_s; ++test_decode_653x4621_x2; ++test_decode_653x4621_s2; } free(storage_decode_653x4621_s2); free(storage_decode_653x4621_x2); free(storage_decode_653x4621_s); free(storage_decode_653x4621_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_653xint16.c0000644000000000000000000011610414705505543022732 0ustar rootroot/* ----- decode/653xint16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_653xint16_checksums[] = { "17a6405c12d612963247bbf6aa8ed3cfe97cb9d2c4cbc5fed58415acee973cc8", "95a98a488011bfe4be2945e897c1e74d3ab4caae7a3985c5a91df7a40fa12bb0", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_653xint16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_653xint16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_653xint16_ITEMBYTES static void *storage_decode_653xint16_x; static unsigned char *test_decode_653xint16_x; static void *storage_decode_653xint16_s; static unsigned char *test_decode_653xint16_s; static void *storage_decode_653xint16_x2; static unsigned char *test_decode_653xint16_x2; static void *storage_decode_653xint16_s2; static unsigned char *test_decode_653xint16_s2; #define precomputed_decode_653xint16_NUM 4 static const uint16_t precomputed_decode_653xint16_x[precomputed_decode_653xint16_NUM][crypto_decode_ITEMS] = { {59256,39130,17441,36682,25750,1596,8031,53815,37381,12187,30533,20236,8387,35602,42654,38410,18517,16585,61038,55465,47000,43146,6295,12938,35023,43913,56971,33616,37863,50562,63361,33816,44228,58815,54470,32186,2461,1868,17287,47307,45530,37362,15996,34403,7576,22834,54487,11749,40045,28674,17168,16999,17989,21214,25309,12521,34576,28675,52596,34754,5383,24280,27450,19770,64514,6208,11169,33131,64288,4698,25463,54991,15145,60005,41119,33287,58764,5627,33179,47695,20153,25105,53169,7403,18822,11927,4078,49943,50360,38913,10940,43863,63832,13716,19821,16899,31249,29802,56457,12820,28501,36274,12632,43112,28721,17831,6643,50871,1614,56673,28206,53753,44763,36449,52277,57139,56768,26060,59787,11880,47602,46927,37823,34747,18715,5729,23281,24269,3640,32866,25163,60513,41861,24526,63148,11982,5441,14958,16707,3017,53598,17936,56909,58587,2707,5253,35787,13077,53462,2441,3636,14047,497,16037,55811,51248,50596,33475,59421,58137,55926,51923,14966,39240,24177,7924,32448,10178,13393,39045,40455,20075,59481,19761,20191,17220,50079,15499,34179,58419,57147,24686,26043,42030,2577,399,6547,3858,24266,6118,19295,54076,43033,20793,27743,36621,28155,5584,61197,24051,51917,7164,1931,33951,25842,60584,30374,49848,33635,19870,34365,39357,20190,9774,48750,48622,32219,7203,44241,52661,26443,11534,24096,55404,46859,63299,52108,24631,9221,62494,46135,7859,60911,46793,5494,38067,30799,49510,30941,26180,48298,23241,6107,9107,29746,61634,58249,11548,40733,47753,50152,24177,2666,4198,19106,44811,43018,21172,60859,5039,49495,25146,35389,55785,6831,61896,31652,1250,53934,2812,48336,62038,56526,50360,14846,56382,50082,18707,41045,3829,39268,58096,11720,44092,37151,3745,14995,62749,49593,17952,1573,54657,55681,16575,29404,3937,30172,665,36046,44330,18250,38705,8930,51544,13657,29706,13813,27323,38750,30940,4797,57913,33297,49344,57649,4297,34042,29285,40011,26468,29567,28667,37560,29161,33791,43088,21665,40254,36744,46002,16065,45931,46766,42016,37847,4000,18237,62026,37221,17943,55542,12578,51126,41589,756,37488,5429,50597,55898,6428,63924,51,36535,22754,13794,16201,27535,12433,3818,23715,43734,23539,38302,39548,38431,16268,45418,10969,40679,34148,21254,34160,55283,34915,3269,62782,18922,9731,19676,10969,13097,45135,20326,63381,40447,22643,13472,36785,34163,960,64438,36794,3126,45817,46115,9005,49568,59584,22920,34826,9776,47155,62675,48974,45511,52777,38499,51485,13231,22842,62031,14726,49288,29332,35399,58266,16361,41596,14323,26084,9976,49425,65004,4959,2113,28960,3498,51821,35020,28303,51475,7356,60485,5724,22648,36195,52215,23749,10610,48664,21525,12022,29805,7281,8827,45985,49192,37451,59487,10357,21900,12056,63075,11153,28311,49626,35175,9090,63665,11227,60690,6489,52162,12805,29396,38619,55619,65388,41896,7847,38878,33412,57125,36180,13689,26686,29957,52600,62000,60269,18513,29241,20087,64133,23836,43472,47994,23086,2479,53211,4012,55499,7336,637,28379,20439,63545,36224,8197,27790,29552,45593,21307,12523,43641,42532,63589,19598,64642,41063,39751,34676,30211,60037,64869,45380,39426,25497,25885,33319,50150,15953,62938,4773,62311,52174,43029,13976,21136,33124,54769,19079,61014,39177,5439,4228,34605,32905,15215,45252,28204,13103,44003,39147,28057,20420,64662,17994,4188,63829,29797,23714,28587,25043,1981,139,29645,14390,41680,41173,59201,36361,26559,43797,43861,56232,33008,55729,34300,49153,15344,17541,20905,37048,35905,50880,15829,39045,26845,46716,40156,2184,21560,13028,6724,64458,29477,23186,63366,16468,11825,1938,46087,36929,27518,15713,52470,37896,10092,60833,4061,46098,47077,37212,54166,32543,40667,51484,23250,10013,41614,62615,14563,60195,54841,63861,41050,53349,6036,47815,39819,40616,57694,16066,14871,36872,36125,64788,19151,23595,54831,23131,50216,62395,12877,33324,2497,10774,5957,27661,64300,25746,36426,36703,17927,60949,31532,41216,21484,31658,24505,53448,19929}, {13706,16393,55350,51153,22918,49466,59823,36112,39403,57721,9993,50643,25366,5071,12294,10348,41516,25911,32087,43106,8393,35644,54393,28634,19504,24040,5034,19124,7809,22619,55859,10428,36,4912,61225,15339,21180,54083,30374,3267,54137,31373,46793,64408,57787,47695,25725,50671,44479,25438,57707,59956,51341,10542,33328,17046,12662,58836,19584,25286,23162,27311,41494,53420,59242,53923,16030,22170,37363,16347,9233,3750,3228,2465,59058,28442,28756,28709,40976,30362,14120,19450,57629,22904,38166,50104,49,10086,52487,23154,24170,3430,47214,46238,37675,5616,35952,27002,16567,7490,19563,44743,10942,32882,63601,50513,17551,61171,6326,1553,58154,44644,64133,64335,15759,10170,21704,43024,32616,28985,57088,25646,9258,59732,7482,60805,63465,53348,10085,3381,50800,30856,40703,2335,17964,6819,40115,13997,18735,14451,22454,61848,11451,23914,54706,377,44589,59252,37863,20766,36730,50980,57874,55518,39693,2059,23509,56882,36581,912,21542,45935,55169,43007,60098,39508,29161,46798,56924,25807,29261,40189,64197,29784,9168,63815,13174,42415,33043,51194,30334,32184,14194,31750,20347,42443,29228,45295,41207,6046,23791,33328,15944,16459,34141,49964,17777,41332,42189,25453,41721,20155,5165,13186,57112,9566,63275,64668,52311,20143,60769,58355,6170,18874,64951,48072,55234,16695,41488,61459,41889,13217,38879,63620,38676,52662,14406,31964,53586,42365,9384,23851,61820,33958,54700,23688,15925,56275,46793,14071,46052,16281,22199,64214,7200,26026,52314,46357,43077,15949,20628,62813,64583,21939,32932,26283,53889,30169,57924,49038,18137,37230,473,60067,30200,30376,55731,10153,40179,60368,56306,44203,9955,35255,65504,22445,55728,31003,31124,53220,54974,23577,42609,38872,14627,14380,62004,61877,9540,52414,50517,26334,47416,16156,17980,28100,29524,37165,14,15479,5534,33898,28437,51478,43286,51685,53773,1386,5910,29129,5312,20954,47443,43909,58554,50425,6328,28875,16197,5042,6853,41669,61534,52866,55052,23923,48373,18456,16238,9318,35500,49580,27918,8153,44610,9383,42168,7264,56796,5887,45211,62086,53606,14053,31296,9,48729,15001,34921,57395,43381,34924,51563,26994,42614,60404,38165,7588,20678,3356,46474,58903,21645,58844,10656,64849,65528,47081,43330,10975,30333,50882,24738,40014,22543,2242,31375,12912,53531,53724,11790,19830,54401,27670,25993,61792,32618,17337,3122,24847,24381,31576,6557,33110,57540,37077,43976,42453,25009,363,7541,40470,33206,31603,11145,20870,47775,52854,8035,41340,18645,35862,54610,5280,42083,64654,46091,3479,56457,23951,37616,823,34967,59000,61957,19106,43459,2315,24468,19604,7683,9991,43438,60465,1110,11840,9317,46285,7996,47055,63241,26595,12056,2615,39318,18222,65188,59313,13174,62889,39026,31711,62898,24056,63592,18679,34286,27215,21454,44182,61467,33005,4368,47538,21333,65490,19046,51404,33127,19397,60822,49481,41974,15905,63806,41840,12057,19606,64190,18227,26711,58479,6107,17073,11886,52269,35672,51119,25751,19261,13000,61698,62385,1199,37866,541,21632,40616,4847,18604,11058,36710,4121,56031,50448,41578,15005,12525,64766,6808,4449,21646,57907,11076,49328,1186,27313,52767,27325,4804,55431,39210,63520,63896,6103,59141,16184,53258,43228,24039,34274,38585,27201,56011,61553,48716,679,15879,32169,63593,20014,50405,2012,61389,18850,5640,38184,3722,12930,26135,49213,57071,50892,28336,7533,11143,4472,63279,24245,42786,59630,20038,51500,18010,8386,47704,35460,34323,28796,8651,16770,5562,31549,13348,53308,1673,10572,35816,30559,26873,48380,63877,63725,52863,45243,18439,35259,29084,53559,28315,44938,17034,19918,34224,31924,15723,39636,24285,62563,26091,30194,16753,37764,51827,53086,13021,3731,42788,40764,31842,44692,34101,5477,38107,24261,59540,53268,64674,21143,51934,33407,20995,20339,59754,5265,31717,21045,64469,5650,41724,7038,40046,53423,7804,3093,61561,61482,25634,7162,22481,53326,50140,41162,61088,39880,11834,39301,39065,46877,24610,30819,59139,7627}, {14073,4277,12076,64503,49087,36876,64498,30798,63330,19910,579,37049,64934,11967,19088,45896,39819,26243,37283,3214,11940,12842,15206,50951,48242,36635,12674,28072,36662,17445,20969,22067,4530,22746,54682,24494,33141,184,49065,39760,23936,36422,20670,61291,42819,34510,53156,8133,23283,26802,61166,39293,37940,13806,57004,26243,45870,7566,57070,7856,52787,38679,63199,28132,36882,62156,38303,28606,39682,15316,27918,63133,29339,19885,53399,14303,46932,22961,13583,27572,36367,41025,30438,878,1071,10536,10693,25835,45401,7077,34667,61106,27364,3897,29303,13044,32346,41369,40501,3330,57712,58061,12888,17989,58957,61588,30541,61626,2581,14768,26207,56580,54319,15246,21540,53547,34699,20426,44211,59684,53509,62192,4993,57746,879,50197,43447,22800,47867,10138,56235,48454,10114,45265,599,59247,616,987,23471,46575,45932,53825,25218,9857,40437,22458,43287,57135,60572,6329,59431,54876,62158,51049,59502,59155,31624,27693,18102,30119,64095,58166,17358,46693,36008,29285,30181,38880,34264,27214,47941,14178,19446,12599,55774,18361,13720,2772,10875,10545,20077,10596,30176,39348,7787,59375,42075,1841,51227,33306,3861,12463,38127,4671,6552,58394,24234,17368,237,35277,38085,14586,51970,18605,28327,55032,53984,15569,20644,51817,50934,19914,51801,10745,62175,9799,51724,10821,28281,11794,47329,41173,45859,39768,7315,33886,7410,54305,1497,45244,50698,27224,7070,28737,385,2000,21536,48066,7900,23087,2855,27981,46888,56130,44541,9745,44310,57759,29183,51855,43881,49595,33009,6231,2053,40616,30511,65116,30385,3380,26145,161,38098,26672,7759,21354,62697,33895,13227,53301,52153,50244,29721,62224,22647,64779,18170,49122,60167,29899,38123,46560,37229,1259,4666,19047,15715,58283,48805,26070,19995,54006,30642,37083,1234,47576,54837,30108,12143,32127,17861,42912,13904,9827,59629,41425,57329,5876,9013,53826,3736,34460,60690,8723,2489,16489,8028,44446,49114,64671,27417,6650,52340,40785,55286,10195,22978,925,31144,16453,34434,30368,54463,21671,59649,46898,17378,9582,64932,57864,57198,53820,16421,44349,47337,21875,25436,4867,6511,55829,26110,36948,16426,6076,35830,51673,62099,12119,23693,7347,34884,6366,35351,46262,58351,29523,17585,39969,34609,12883,35096,53072,61094,32548,39356,7614,2930,54024,20917,32416,43242,53172,60718,3785,9594,55591,19496,63307,45592,58493,57888,58168,19516,48642,51925,44134,32800,39163,52987,13613,21098,2748,59623,39976,23466,60043,11019,58772,7509,20815,40133,6356,63462,64880,12116,18768,21866,18829,13724,54113,44892,23396,13706,60413,31076,46619,41743,62854,38640,1840,24975,51416,19814,61247,26514,18327,2696,29327,40909,3606,36221,2498,53680,41984,28687,15038,42564,29762,33928,8472,20379,9073,20845,1859,63232,7953,10677,56678,40465,27299,45382,11748,756,57583,63422,21049,45347,35805,40249,39159,54280,33898,54915,45030,50526,36884,60701,20234,12769,59282,65044,2774,29726,28461,40809,16340,49093,46226,43459,63513,27573,2143,46361,7445,1940,5932,65462,42323,47940,23091,40863,14597,14384,48795,1139,36430,40833,65076,36279,42469,40554,51651,13619,12165,19515,50493,15346,16115,40865,33987,64171,29020,24977,36435,55193,10631,42902,60518,6955,55832,54057,45918,58152,51560,15528,36160,9550,58188,24039,44238,38226,47170,14459,28081,47684,2478,37584,14856,37677,55801,24641,6328,13115,18440,17407,30576,5201,14972,60786,23168,49525,57794,23497,5067,1832,64242,49085,13349,10740,61120,21562,61736,17997,16054,53633,57962,26500,61846,9217,20366,48073,15876,11611,11266,15391,64921,26777,52947,49302,23096,35563,54128,37050,10122,20375,65333,3332,14922,65091,32916,7992,11488,59204,28809,38359,35852,34229,7190,3395,44491,19974,15032,726,33723,26750,64548,50686,10621,20648,22785,11860,25252,64860,34659,24650,58049,8527,55124,58213,12722,22942,28890,46989,14086,36392,44225,39426,12848,35447,15797,56243,37482,29713,5179,13309,21724,32022,29176,61675,13107,24486,64425,34969}, {4726,62202,4546,29903,47211,55270,54325,59389,58756,63029,36829,8170,39823,36547,37017,30710,30626,2079,41852,11385,9286,13399,13183,39226,59368,42255,61497,58968,64588,32322,57400,65380,37662,32800,17544,1976,42279,26672,33427,52428,51613,50270,14879,10161,62965,13643,40428,46129,12852,47612,46391,56143,16262,34909,58851,16529,22796,9759,53726,30933,51830,20201,22632,39254,6674,27593,36734,60901,6316,12163,11344,57107,53903,24446,5178,42357,33569,3195,32078,13417,62786,55201,18968,48892,11965,15682,52084,22051,24696,9894,8791,40907,65208,21059,1540,25299,15989,57417,35013,52015,47112,25319,61531,13693,58284,6530,23295,9815,21920,16646,13310,62004,27099,40236,38225,6349,20609,340,32947,34689,29470,31097,59281,26677,13738,42555,52926,42519,22287,47027,56883,57568,45232,18850,32119,30991,41,37662,36775,43632,40570,46917,57663,48048,8437,5073,60814,51583,61999,436,43100,39749,15925,55837,17058,29233,18300,62404,54095,61416,30969,51461,37764,38938,31986,2195,62409,15881,42650,33089,34628,35918,31781,16258,1753,7911,56425,6881,49703,38162,605,62132,41073,37873,3810,28162,44684,57965,11815,9688,48535,36266,54976,34902,64487,26237,5965,59977,22771,43885,858,62834,34377,50657,1871,32560,4626,33803,54756,7468,43762,24073,51068,14737,12988,24389,62211,35844,12476,31595,34066,18496,44817,10577,64739,2561,50580,28746,6022,26032,65085,8779,9717,44304,61244,18048,28025,23586,42552,15388,9599,51550,19819,60340,15303,43031,8645,15768,15832,41862,62847,4444,46775,63355,52253,62880,52230,35259,36178,64798,30168,57410,18603,15542,33635,65140,62694,36068,1890,58596,32878,49810,32949,40467,62201,63728,33174,26505,10299,15877,43563,17337,50051,23359,42425,42469,32801,48754,21117,19071,14814,34493,4329,58918,9072,18920,1657,43504,17471,479,63743,9912,45243,62944,6203,29277,49970,40366,31982,23265,46424,30568,2799,41936,271,42287,38206,14139,62660,60028,6711,16541,39253,35265,32282,48673,37494,4995,12422,57366,5476,629,42401,4689,78,12104,44250,54413,3264,33744,47438,11169,38668,16338,46368,8454,17587,27908,1256,15644,29910,27597,4631,39222,59192,60295,31382,29249,44130,43349,38452,12941,15259,61067,39600,55048,62398,13213,10293,14070,2128,62895,29007,55251,38386,34603,53551,24062,29513,1658,25302,8198,56235,52646,6816,26387,34947,35353,46432,21894,34854,54921,12679,5562,19464,18857,10573,18970,60587,28909,55622,45441,18588,17760,59964,15884,9337,54119,23122,14227,3275,48279,22442,54704,14552,46831,18095,46193,22059,27245,63584,55170,26469,40036,59665,15219,47334,1387,39393,59378,34892,19312,23615,3594,38061,30009,21796,40508,51888,6217,56015,52049,21381,33989,28377,60338,56477,26866,35436,23699,16210,27314,10493,47150,49050,13344,5259,51326,33749,7280,19106,20073,7649,15528,24405,62,12332,39652,49328,34827,25427,40215,30774,63702,54133,38248,8887,5668,3182,29137,27574,47091,39761,27355,23098,30195,22121,2202,17808,19305,12046,3750,9686,14396,11141,12831,20311,9467,7978,49678,23400,46813,4984,24057,38375,15340,8099,40800,55215,17351,37476,15559,53195,6564,29310,2030,15952,60088,65196,25692,36426,20733,44582,16049,22324,2017,50120,49381,43623,62045,24197,64539,33798,62944,4500,16002,12760,59363,42960,3946,4227,47457,59927,5600,24149,58245,4219,33918,47675,49616,29356,28945,4677,5910,40962,47569,51561,9140,46830,18791,4405,7093,28879,13431,45253,18755,37036,16385,21416,50043,49933,4805,441,64024,43350,2760,39936,50061,53797,41795,13956,17014,4987,45201,24103,20579,23734,28999,62105,47129,10606,27851,59816,34357,51947,4317,16491,43201,38066,8149,14228,3789,25762,63105,55327,12911,33769,9229,56336,62497,63558,22058,26786,4820,5518,43908,21354,32692,31142,17192,10265,23120,42484,53258,15881,44293,26149,43532,46381,13444,57480,52752,8385,50255,33148,54269,51106,58713,21504,52873,48409,16679,50938,2071,60600,26096,34627,65137,53824,28169,35937,58424,43338}, } ; static const unsigned char precomputed_decode_653xint16_s[precomputed_decode_653xint16_NUM][crypto_decode_STRBYTES] = { {120,231,218,152,33,68,74,143,150,100,60,6,95,31,55,210,5,146,155,47,69,119,12,79,195,32,18,139,158,166,10,150,85,72,201,64,110,238,169,216,152,183,138,168,151,24,138,50,207,136,137,171,139,222,80,131,231,147,130,197,129,247,24,132,196,172,191,229,198,212,186,125,157,9,76,7,135,67,203,184,218,177,242,145,124,62,99,134,152,29,50,89,215,212,229,45,109,156,2,112,16,67,103,66,69,70,222,82,221,98,233,48,16,135,3,112,116,205,194,135,7,21,216,94,58,107,58,77,2,252,64,24,161,43,107,129,32,251,90,18,119,99,207,214,41,59,101,234,159,160,7,130,140,229,251,21,155,129,79,186,185,78,17,98,177,207,235,28,134,73,151,46,238,15,23,195,184,196,1,152,188,42,87,171,88,249,148,53,109,77,3,66,17,122,106,116,137,220,20,50,85,111,178,141,88,49,104,168,49,112,167,69,243,25,183,198,78,6,97,221,46,110,249,209,219,174,97,142,53,204,51,223,192,221,204,101,139,233,104,46,242,185,79,183,191,147,187,135,27,73,97,22,241,90,205,94,56,14,98,128,75,98,97,236,133,163,206,95,172,246,206,46,65,21,110,58,67,65,201,11,94,209,16,70,77,222,219,228,147,10,133,20,203,139,21,51,214,208,137,9,52,14,223,54,241,1,165,62,3,218,48,200,164,197,195,130,29,232,25,227,118,218,211,202,118,58,72,153,113,94,244,30,192,126,194,39,81,52,133,152,7,158,107,78,89,232,49,77,223,78,68,67,159,195,139,60,131,133,51,228,59,223,110,96,187,101,46,164,17,10,143,1,147,25,18,15,202,94,230,23,95,75,60,211,25,168,57,81,95,108,13,143,251,109,208,21,13,239,243,93,205,202,252,27,139,7,159,132,242,100,168,236,166,118,184,194,99,131,158,77,61,134,189,153,222,78,46,38,110,190,238,189,219,125,35,28,209,172,181,205,75,103,14,45,32,94,108,216,11,183,67,247,140,203,55,96,5,36,30,244,55,180,179,30,239,237,201,182,118,21,179,148,79,120,102,193,221,120,68,102,170,188,201,90,219,23,147,35,50,116,194,240,137,227,28,45,29,159,137,186,232,195,113,94,106,10,102,16,162,74,11,175,10,168,180,82,187,237,175,19,87,193,58,98,61,138,233,217,175,26,200,241,164,123,226,4,174,210,252,10,208,188,86,242,206,220,184,196,254,57,62,220,162,195,19,73,85,160,245,14,100,153,240,226,200,45,60,172,31,145,161,14,147,58,29,245,185,193,32,70,37,6,129,213,129,217,191,64,220,114,97,15,220,117,153,2,206,140,42,173,74,71,49,151,226,34,88,201,89,53,10,116,245,53,187,106,94,151,220,120,189,18,57,226,17,130,192,192,49,225,201,16,250,132,101,114,75,156,100,103,127,115,251,111,184,146,233,113,255,131,80,168,161,84,62,157,136,143,178,179,193,62,107,179,174,182,32,164,215,147,160,15,61,71,74,242,101,145,23,70,246,216,34,49,182,199,117,162,244,2,112,146,53,21,165,197,90,218,28,25,180,249,51,0,183,142,226,88,226,53,73,63,143,107,145,48,234,14,163,92,214,170,243,91,158,149,124,154,31,150,140,63,106,177,217,42,231,158,100,133,6,83,112,133,243,215,99,136,197,12,62,245,234,73,3,38,220,76,217,42,41,51,79,176,102,79,149,247,255,157,115,88,160,52,177,143,115,133,192,3,182,251,186,143,54,12,249,178,35,180,45,35,160,193,192,232,136,89,10,136,48,38,51,184,211,244,78,191,199,177,41,206,99,150,29,201,175,51,58,89,79,242,134,57,136,192,148,114,71,138,154,227,233,63,124,162,243,55,228,101,248,38,17,193,236,253,95,19,65,8,32,113,170,13,109,202,204,136,143,110,19,201,188,28,69,236,92,22,120,88,99,141,247,203,197,92,114,41,24,190,21,84,246,46,109,116,113,28,123,34,161,179,40,192,75,146,95,232,117,40,140,85,24,47,99,246,145,43,151,110,218,193,103,137,130,35,177,248,219,43,18,237,89,25,194,203,5,50,212,114,219,150,67,217,108,255,168,163,167,30,222,151,132,130,37,223,84,141,121,53,62,104,5,117,120,205,48,242,109,235,81,72,57,114,119,78,133,250,28,93,208,169,122,187,46,90,175,9,219,207,172,15,203,216,168,28,125,2,219,110,215,79,57,248,128,141,5,32,142,108,112,115,25,178,59,83,235,48,121,170,36,166,101,248,142,76,130,252,103,160,71,155,116,135,3,118,133,234,101,253,68,177,2,154,153,99,29,101,39,130,230,195,81,62,218,245,165,18,103,243,206,203,21,168,152,54,144,82,100,129,241,213,135,74,86,238,9,153,63,21,132,16,45,135,137,128,111,59,196,176,44,110,47,51,227,171,235,152,153,109,196,79,150,252,74,70,92,16,85,249,101,116,162,92,171,111,211,97,189,7,139,0,205,115,54,56,208,162,213,160,65,231,9,142,191,103,21,171,85,171,168,219,240,128,177,217,252,133,1,192,240,59,133,68,169,81,184,144,65,140,192,198,213,61,133,152,221,104,124,182,220,156,136,8,56,84,228,50,68,26,202,251,37,115,146,90,134,247,84,64,49,46,146,7,7,180,65,144,126,107,97,61,246,204,8,148,108,39,161,237,221,15,18,180,229,183,92,145,150,211,31,127,219,158,28,201,210,90,29,39,142,162,151,244,227,56,35,235,57,214,117,249,90,160,101,208,148,23,199,186,139,155,168,158,94,225,194,62,23,58,8,144,29,141,20,253,207,74,43,92,47,214,91,90,40,196,187,243,77,50,44,130,193,9,22,42,69,23,13,108,44,251,146,100,74,142,95,143,7,70,21,238,44,123,0,161,236,83,170,123,185,95,200,208,217,77}, {138,53,9,64,54,216,209,199,134,89,58,193,175,233,16,141,235,153,121,225,9,39,211,197,22,99,207,19,6,48,108,40,44,162,55,101,87,125,98,168,201,32,60,139,121,212,218,111,48,76,232,93,170,19,180,74,129,30,91,88,51,218,188,40,36,0,48,19,41,239,235,59,188,82,67,211,166,118,195,12,121,211,141,122,201,182,152,251,187,225,79,186,125,100,239,197,191,173,94,99,107,225,52,234,141,200,46,41,48,130,150,66,118,49,212,229,128,76,198,98,122,90,175,106,22,162,172,208,106,231,163,210,158,62,154,86,243,145,219,63,17,36,166,14,156,12,161,9,178,230,26,111,84,112,37,112,16,160,154,118,40,55,250,75,29,225,120,89,22,149,184,195,49,0,102,39,7,205,114,90,106,94,102,13,110,184,158,180,43,147,240,21,112,140,122,105,183,64,66,29,107,76,199,174,190,42,114,128,113,248,81,197,143,68,243,238,182,24,17,6,42,227,100,174,133,250,79,251,143,61,186,39,200,84,16,168,104,127,57,113,0,223,46,100,42,36,84,233,58,29,133,237,233,247,100,208,101,39,53,13,112,198,136,120,255,158,31,9,44,70,163,26,179,156,173,54,47,73,115,56,182,87,152,241,187,44,106,93,178,213,121,1,45,174,116,231,231,147,30,81,122,143,36,199,18,226,222,216,13,155,11,8,213,91,50,222,229,142,144,3,38,84,111,179,129,215,255,167,194,234,84,154,233,113,206,182,92,222,207,100,77,114,253,156,197,250,88,116,208,35,71,249,118,51,175,165,19,129,250,199,126,118,184,125,114,55,6,124,123,79,203,165,44,114,239,176,247,160,158,23,239,92,48,130,72,62,75,64,93,133,44,195,113,69,116,161,205,164,109,99,249,162,187,78,45,20,130,51,24,223,94,37,43,247,156,252,87,204,175,78,97,237,243,227,26,24,186,73,183,253,200,187,194,215,55,65,16,162,19,240,161,163,161,51,223,151,132,248,20,151,182,205,70,56,220,124,82,209,125,165,168,36,43,93,124,241,166,132,172,213,136,92,53,62,211,219,201,182,247,54,228,179,153,63,183,86,214,250,32,28,170,101,90,204,21,181,69,168,77,62,148,80,93,245,71,252,179,85,164,128,171,102,129,210,217,117,68,226,142,191,217,70,110,145,217,1,163,234,248,117,168,118,179,217,169,39,243,156,208,235,242,219,171,172,227,38,183,137,224,255,173,87,176,217,27,121,148,121,228,207,190,214,25,92,113,166,216,151,35,57,44,56,52,242,181,241,68,37,190,204,85,197,222,102,56,185,28,63,60,70,196,109,84,115,45,145,14,0,119,60,158,21,106,132,21,111,22,201,22,169,229,201,13,210,106,5,22,23,201,113,192,20,218,81,83,185,133,171,186,228,249,196,184,24,203,112,69,63,178,19,197,26,197,162,94,240,130,206,12,215,115,93,245,188,24,72,110,63,102,36,172,138,172,193,14,109,217,31,66,174,167,36,184,164,96,28,220,221,255,22,155,176,134,242,102,209,229,54,64,122,9,0,89,190,153,58,105,136,51,224,117,169,108,136,107,201,114,105,118,166,244,235,21,149,164,29,198,80,28,13,138,181,23,230,141,84,220,229,160,41,81,253,248,255,233,183,66,169,223,42,125,118,194,198,162,96,78,156,15,88,194,8,143,122,112,50,27,209,220,209,14,46,118,77,129,212,22,108,137,101,96,241,106,127,185,67,50,12,15,97,61,95,88,123,157,25,86,129,196,224,213,144,200,171,213,165,177,97,107,1,117,29,22,158,182,129,115,123,137,43,134,81,159,186,118,206,99,31,124,161,213,72,22,140,82,213,160,20,99,164,142,252,11,180,151,13,137,220,143,93,240,146,55,3,151,136,120,230,5,242,162,74,195,169,11,9,148,95,148,76,3,30,7,39,174,169,49,236,86,4,64,46,101,36,205,180,60,31,207,183,9,247,227,103,24,47,55,10,150,153,46,71,164,254,177,231,118,51,169,245,114,152,223,123,178,245,248,93,104,248,247,72,238,133,79,106,206,83,150,172,27,240,237,128,16,17,178,185,85,83,210,255,102,74,204,200,103,129,197,75,150,237,73,193,246,163,33,62,62,249,112,163,25,47,150,76,190,250,51,71,87,104,111,228,219,23,177,66,110,46,45,204,88,139,175,199,151,100,61,75,200,50,2,241,177,243,175,4,234,147,29,2,128,84,168,158,239,18,172,72,50,43,102,143,25,16,223,218,16,197,106,162,157,58,237,48,254,252,152,26,97,17,142,84,51,226,68,43,176,192,162,4,177,106,31,206,189,106,196,18,135,216,42,153,32,248,152,249,215,23,5,231,56,63,10,208,220,168,231,93,226,133,185,150,65,106,203,218,113,240,76,190,167,2,7,62,169,125,105,248,46,78,229,196,220,7,205,239,162,73,8,22,40,149,138,14,130,50,23,102,61,192,239,222,204,198,176,110,109,29,135,43,120,17,47,247,181,94,34,167,238,232,70,78,44,201,90,70,194,32,88,186,132,138,19,134,124,112,203,33,130,65,186,21,61,123,36,52,60,208,137,6,76,41,232,139,95,119,249,104,252,188,133,249,237,248,127,206,187,176,7,72,187,137,156,113,55,209,155,110,138,175,138,66,206,77,176,133,180,124,107,61,212,154,221,94,99,244,235,101,242,117,113,65,132,147,115,202,94,207,221,50,147,14,36,167,60,159,98,124,148,174,53,133,101,21,219,148,197,94,148,232,20,208,162,252,151,82,222,202,127,130,3,82,115,79,106,233,145,20,229,123,53,82,213,251,18,22,252,162,126,27,110,156,175,208,124,30,21,12,121,240,42,240,34,100,250,27,209,87,78,208,220,195,202,160,160,238,200,155,58,46,133,153,153,152,29,183,34,96,99,120,3,231,203,29}, {249,54,181,16,44,47,247,251,191,191,12,144,242,251,78,120,98,247,198,77,67,2,185,144,166,253,191,46,144,74,72,179,139,155,131,102,163,145,142,12,164,46,42,50,102,59,7,199,114,188,27,143,130,49,168,109,54,143,37,68,233,81,51,86,178,17,218,88,154,213,174,95,117,129,184,0,169,191,80,155,128,93,70,142,190,80,107,239,67,167,206,134,164,207,197,31,243,90,178,104,238,238,125,153,52,148,238,53,172,222,131,102,46,179,142,29,238,222,176,30,51,206,23,151,223,246,228,109,18,144,204,242,159,149,190,111,2,155,212,59,14,109,157,246,155,114,173,77,151,208,223,55,84,183,177,89,15,53,180,107,15,142,65,160,230,118,110,3,47,4,40,41,197,41,235,100,89,177,165,27,107,135,178,238,228,106,57,15,119,114,244,50,90,126,153,161,53,158,2,13,112,225,205,226,88,50,69,70,77,230,148,240,77,119,186,240,21,10,176,57,95,102,4,221,47,212,142,59,36,84,43,209,139,135,202,79,179,172,36,233,5,209,240,242,129,19,146,225,111,3,21,196,183,169,16,89,251,186,154,39,171,219,70,189,130,39,209,176,87,2,111,231,104,2,219,3,175,91,239,181,108,179,65,210,130,98,129,38,245,157,186,87,23,169,47,223,156,236,185,24,39,232,92,214,206,242,105,199,110,232,19,231,136,123,45,108,182,70,167,117,95,250,54,227,206,67,101,182,168,140,101,114,229,117,224,151,216,133,78,106,69,187,98,55,246,75,55,49,222,217,185,71,152,53,212,10,123,42,49,41,109,78,100,41,224,117,180,153,107,30,239,231,91,164,49,7,27,200,26,130,21,15,175,48,239,148,63,18,152,25,26,228,170,94,216,67,237,0,205,137,197,148,250,56,2,203,173,72,167,110,248,214,224,210,209,60,164,80,105,202,246,198,202,77,89,202,249,41,223,242,71,38,12,202,69,42,121,110,18,46,225,184,213,160,35,179,88,155,147,28,94,132,242,28,33,212,217,5,188,176,10,198,88,106,158,27,65,112,129,1,208,7,32,84,194,187,220,30,47,90,39,11,77,109,40,183,66,219,253,173,17,38,22,173,159,225,255,113,143,202,105,171,187,193,241,128,87,24,5,8,168,158,47,119,92,254,177,118,52,13,33,102,161,0,210,148,48,104,79,30,106,83,233,244,103,132,171,51,53,208,185,203,68,196,25,116,16,243,119,88,11,253,250,70,226,191,7,235,203,116,235,148,224,181,109,145,235,4,58,18,103,74,99,61,171,227,165,190,214,101,27,78,246,210,178,119,219,144,210,4,216,185,53,214,156,117,111,47,127,125,197,69,160,167,80,54,99,38,237,232,209,161,241,223,244,22,53,35,66,210,152,14,156,134,18,237,19,34,185,9,105,64,92,31,158,173,218,191,159,252,25,107,250,25,116,204,81,159,246,215,211,39,194,89,157,3,168,121,69,64,130,134,160,118,191,212,167,84,1,233,50,183,226,67,110,37,164,253,8,226,110,223,60,210,37,64,61,173,233,184,115,85,92,99,3,19,111,25,21,218,254,101,84,144,42,64,188,23,246,139,217,201,147,242,87,47,141,92,179,28,68,136,222,24,23,138,182,180,239,227,83,115,177,68,33,156,49,135,83,50,24,137,80,207,166,238,36,127,188,153,190,29,114,11,8,211,181,81,160,126,234,168,180,207,46,237,201,14,122,37,39,217,40,76,75,247,24,178,125,228,32,226,56,227,60,76,2,190,213,202,102,172,32,128,251,152,251,206,45,53,106,82,188,10,231,232,40,156,170,91,139,234,11,43,148,229,85,29,79,81,197,156,212,24,230,247,112,253,84,47,80,73,106,85,141,73,156,53,97,211,92,175,100,91,138,53,253,235,100,121,27,182,15,163,134,245,240,150,48,7,143,97,216,200,102,77,63,239,146,103,151,71,136,10,143,114,205,159,22,14,125,141,194,9,176,209,0,164,15,112,190,58,68,166,66,116,136,132,24,33,155,79,113,35,109,81,67,7,0,247,17,31,181,41,102,221,17,158,163,106,70,177,228,45,244,2,239,224,190,247,57,82,35,177,221,139,57,157,247,152,8,212,106,132,131,214,230,175,94,197,20,144,29,237,10,79,225,49,146,231,20,254,214,10,30,116,45,111,105,159,212,63,197,191,146,180,195,169,25,248,181,107,95,8,25,181,21,29,148,7,44,23,182,255,83,165,68,187,51,90,159,159,5,57,48,56,155,190,115,4,78,142,129,159,52,254,183,141,229,165,106,158,195,201,51,53,133,47,59,76,61,197,242,59,243,62,161,159,195,132,171,250,92,113,145,97,83,142,153,215,135,41,150,167,102,236,43,27,24,218,41,211,94,179,40,227,104,201,168,60,64,141,78,37,76,227,231,93,206,172,82,149,66,184,123,56,177,109,68,186,174,9,208,146,8,58,45,147,249,217,65,96,184,24,59,51,8,72,255,67,112,119,81,20,124,58,114,237,128,90,117,193,194,225,201,91,203,19,40,7,242,250,189,191,37,52,244,41,192,238,58,84,40,241,77,70,182,62,129,209,106,226,132,103,150,241,1,36,142,79,201,187,4,62,91,45,2,44,31,60,153,253,153,104,211,206,150,192,56,90,235,138,112,211,186,144,138,39,151,79,53,255,4,13,74,58,67,254,148,128,56,31,224,44,68,231,137,112,215,149,12,140,181,133,22,28,67,13,203,173,6,78,184,58,214,2,187,131,126,104,36,252,254,197,125,41,168,80,1,89,84,46,164,98,92,253,99,135,74,96,193,226,79,33,84,215,101,227,178,49,158,89,218,112,141,183,6,55,40,142,193,172,2,154,48,50,119,138,181,61,179,219,106,146,17,116,59,20,253,51,220,84,22,125,248,113,235,240,51,51,166,95,169,251,153,136}, {118,18,250,242,194,17,207,116,107,184,230,215,53,212,253,231,132,229,53,246,221,143,234,31,143,155,195,142,153,144,246,119,162,119,31,8,124,163,121,44,70,36,87,52,127,51,58,153,232,231,15,165,57,240,88,230,76,252,66,126,56,224,100,255,30,147,32,128,136,68,184,7,39,165,48,104,147,130,204,204,157,201,94,196,31,58,177,39,245,245,75,53,236,157,49,180,52,50,252,185,55,181,79,219,134,63,93,136,227,229,145,64,12,89,31,38,222,209,213,120,118,202,233,78,104,88,86,153,18,26,201,107,126,143,229,237,172,24,131,47,80,44,19,223,143,210,126,95,58,20,117,165,33,131,123,12,78,125,105,52,66,245,161,215,24,74,252,190,189,46,66,61,116,203,35,86,120,96,166,38,87,34,203,159,184,254,67,82,4,6,211,98,117,62,73,224,197,136,47,203,8,184,231,98,91,240,125,53,172,227,130,25,255,90,87,38,160,85,6,65,254,51,52,242,219,105,44,157,81,149,205,24,129,80,84,1,179,128,129,135,30,115,121,121,145,231,53,104,170,53,59,166,190,206,23,166,15,87,179,183,51,222,224,224,176,176,162,73,119,125,15,121,41,0,30,147,167,143,112,170,122,158,69,183,63,225,176,187,245,32,209,19,142,237,127,201,47,242,180,1,92,168,69,155,53,62,29,218,162,66,49,114,124,71,196,243,79,211,232,239,249,120,5,201,132,147,26,152,242,124,147,8,201,243,9,62,154,166,65,129,68,135,78,140,37,124,130,63,217,6,231,30,105,220,225,26,39,194,18,149,93,2,180,242,113,160,241,147,226,14,2,110,140,174,109,226,39,46,216,37,151,189,170,141,192,214,86,136,231,251,125,102,77,23,73,234,243,88,109,171,90,3,114,245,73,134,225,197,79,7,48,127,18,18,11,132,228,213,44,29,242,170,9,94,124,199,145,57,188,50,69,95,3,243,4,140,188,48,107,123,18,133,64,72,17,175,81,41,227,252,1,10,148,197,74,112,134,23,176,101,61,254,75,34,245,37,16,173,60,239,128,70,121,109,34,92,56,166,28,60,127,37,94,201,107,77,180,235,199,59,23,168,197,33,152,61,216,61,134,163,127,245,92,17,183,182,123,247,29,204,160,245,6,204,187,137,82,141,30,253,216,117,66,224,171,72,182,60,99,131,116,254,230,244,228,140,98,7,228,228,110,128,146,194,181,128,19,158,249,242,240,248,150,129,137,103,59,40,5,62,43,170,185,67,131,195,63,91,185,165,229,165,33,128,114,190,125,82,127,74,222,57,189,134,233,16,38,230,112,35,232,73,121,6,240,169,63,68,223,1,255,248,184,38,187,176,224,245,59,24,93,114,50,195,174,157,238,124,225,90,88,181,104,119,239,10,208,163,15,1,47,165,62,149,59,55,196,244,124,234,55,26,157,64,85,153,193,137,26,126,33,190,118,146,131,19,134,48,22,224,100,21,117,2,161,165,81,18,78,0,72,47,218,172,141,212,192,12,208,131,78,185,161,43,12,151,210,63,32,181,6,33,179,68,4,109,232,4,28,61,214,116,205,107,23,18,54,153,56,231,135,235,150,122,65,114,98,172,85,169,52,150,141,50,155,59,139,238,176,154,8,215,190,243,157,51,53,40,246,54,80,8,175,245,79,113,211,215,242,149,43,135,47,209,254,93,73,115,122,6,214,98,6,32,171,219,166,205,160,26,19,103,131,136,25,138,96,181,134,85,38,136,137,214,135,49,186,21,8,76,169,73,77,41,26,74,171,236,237,112,70,217,129,177,156,72,96,69,60,234,12,62,121,36,103,211,82,90,147,55,203,12,151,188,170,87,176,213,216,56,239,182,175,70,113,180,43,86,109,106,96,248,130,215,101,103,100,156,17,233,115,59,230,184,107,5,225,153,242,231,76,136,112,75,63,92,10,14,173,148,57,117,36,85,60,158,176,202,73,24,207,218,81,203,133,83,197,132,217,110,178,235,157,220,242,104,108,138,147,92,82,63,178,106,253,40,46,184,154,191,32,52,139,20,126,200,213,131,112,28,162,74,105,78,225,29,168,60,85,95,62,0,44,48,228,154,176,192,11,136,83,99,23,157,54,120,214,248,117,211,104,149,183,34,36,22,110,12,209,113,182,107,243,183,81,155,219,106,58,90,243,117,105,86,154,8,144,69,105,75,14,47,166,14,214,37,60,56,133,43,31,50,87,79,251,36,42,31,14,194,104,91,221,182,120,19,249,93,231,149,236,59,163,31,96,159,175,215,199,67,100,146,199,60,203,207,164,25,126,114,238,7,80,62,184,234,172,254,92,100,74,142,253,80,38,174,177,62,52,87,225,7,200,195,229,192,103,170,93,242,133,94,27,252,6,132,224,245,148,17,130,62,216,49,227,231,208,167,106,15,131,16,97,185,23,234,224,21,85,94,133,227,123,16,126,132,59,186,208,193,172,114,17,113,69,18,22,23,2,160,209,185,105,201,180,35,238,182,103,73,53,17,181,27,207,112,119,52,197,176,67,73,172,144,1,64,168,83,123,195,13,195,197,18,185,1,24,250,86,169,200,10,0,156,141,195,37,210,67,163,132,54,118,66,123,19,145,176,39,94,99,80,182,92,71,113,153,242,25,184,110,41,203,108,168,233,53,134,235,202,221,16,107,64,193,168,178,148,213,31,148,55,205,14,162,100,129,246,31,216,111,50,233,131,13,36,16,220,33,244,70,248,42,86,162,104,212,18,142,21,132,171,106,83,180,127,166,121,40,67,25,40,80,90,244,165,10,208,9,62,5,173,37,102,12,170,45,181,132,52,136,224,16,206,193,32,79,196,124,129,253,211,162,199,89,229,0,84,137,206,25,189,39,65,250,198,23,8,184,236,240,101,67,135,113,254,64,210,9,110,97,140,56,228,74,169}, } ; static void test_decode_653xint16_impl(long long impl) { unsigned char *x = test_decode_653xint16_x; unsigned char *s = test_decode_653xint16_s; unsigned char *x2 = test_decode_653xint16_x2; unsigned char *s2 = test_decode_653xint16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_653xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653xint16(impl); printf("decode_653xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653xint16_implementation(impl),ntruprime_dispatch_decode_653xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_653xint16; printf("decode_653xint16 selected implementation %s compiler %s\n",ntruprime_decode_653xint16_implementation(),ntruprime_decode_653xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_653xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_653xint16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_653xint16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_653xint16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_653xint16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_653xint16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_653xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653xint16")) return; storage_decode_653xint16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_653xint16_x = aligned(storage_decode_653xint16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_653xint16_s = callocplus(crypto_decode_STRBYTES); test_decode_653xint16_s = aligned(storage_decode_653xint16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_653xint16_x2 = callocplus(maxalloc); test_decode_653xint16_x2 = aligned(storage_decode_653xint16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_653xint16_s2 = callocplus(maxalloc); test_decode_653xint16_s2 = aligned(storage_decode_653xint16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_653xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_653xint16();++impl) forked(test_decode_653xint16_impl,impl); ++test_decode_653xint16_x; ++test_decode_653xint16_s; ++test_decode_653xint16_x2; ++test_decode_653xint16_s2; } free(storage_decode_653xint16_s2); free(storage_decode_653xint16_x2); free(storage_decode_653xint16_s); free(storage_decode_653xint16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_653xint32.c0000644000000000000000000021332214705505543022730 0ustar rootroot/* ----- decode/653xint32, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_653xint32_checksums[] = { "34b2ca8a50458bcb0807cec51d8532fbe6757c16134cdffc358383de4e1a148c", "57b3c59fc493ad09401c0b98870b52d4c0f37472e636dbff071e3ae4e29ca59d", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_653xint32_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_653xint32_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_653xint32_ITEMBYTES static void *storage_decode_653xint32_x; static unsigned char *test_decode_653xint32_x; static void *storage_decode_653xint32_s; static unsigned char *test_decode_653xint32_s; static void *storage_decode_653xint32_x2; static unsigned char *test_decode_653xint32_x2; static void *storage_decode_653xint32_s2; static unsigned char *test_decode_653xint32_s2; #define precomputed_decode_653xint32_NUM 4 static const uint32_t precomputed_decode_653xint32_x[precomputed_decode_653xint32_NUM][crypto_decode_ITEMS] = { {3810207912,3943900755,1670057613,4057773587,2644115003,3150129286,303486790,1776657552,1893228624,996822905,4237290586,3387645418,3418477528,3110661108,1400243206,958476288,2098280938,2662915397,2468285571,4183075362,3295671868,343779808,2852208237,2143457990,209838621,1746914301,2237587492,1027651829,2881138815,2808489974,358056104,3747724217,2658135608,1718094735,67964650,1664903262,3457804470,1952331956,2007535051,917760869,2312922761,4087286107,358022119,3481903012,645703777,30572508,3062160578,1424702034,957049903,4212427121,403279352,523332448,341699413,3774829884,1263766688,4028891021,3693971059,3656920063,4255881321,3818309398,520962623,772455291,3911952260,2357493859,1532977716,1296798131,345302639,686597384,1618231394,3173239811,1293869224,3087968556,2037790729,75540982,2636461275,2061763079,2735670443,2030215496,2116789483,4048031653,793273492,4190716252,4290057699,3662581540,4270479878,3993657102,1110111845,801130551,682386125,2113654329,3334342328,3704388475,2122274783,2755064493,1976461593,3176031156,3878588370,3598848276,3365761313,3540375200,690665004,823298889,4221609110,2694242998,3428248127,4031736499,2112414756,2124111508,3989941868,136047243,2785690961,195786736,1230438613,2868367939,1344206463,403795910,2768223875,2387956381,2032138454,2900630803,1171895822,2183185527,1995306567,1211387105,678199389,1823133672,1804643886,3641522444,797822327,1998704872,1661471389,170243675,1194946016,605093355,4109770067,1380444470,1672410259,3284681545,161955131,554434735,1101050575,144336189,1130506727,1799883276,1726514920,3056074072,3921933918,4039194328,2737615675,1502315147,1518103755,2441736739,3471991265,2869541977,3266307145,2238572564,3066201634,3996153951,1903853772,840614181,3446620095,4082555432,3168500850,4134625435,16379055,2438172398,2216326598,1588243025,2171400821,2425483512,3533198457,2228995852,428127447,3261908229,1407041676,711269935,1632203558,4095712461,2879507417,3948234278,2291108799,735675808,3202419690,2628930740,554777298,810821578,3448822022,4108932594,2629335679,54948074,3266686644,1917754704,4072670692,756272495,670814776,718610009,3481521333,2677150435,2525653048,2256162512,4213457139,3064833910,3811153766,3825573768,3840190038,2263769543,4230322215,691586948,2581333960,2477904138,2425386379,2962397543,543486117,2734971266,3178452125,66273410,3351312381,1882613132,2941925856,2113286607,3747173117,2385493071,3508097393,293546739,3810034453,3897853759,3193530873,1115149259,2476974106,2510631465,2969310489,4126698758,2471011031,883118268,3259639886,3355955404,1018925061,916624008,2327384203,1768995772,1963093993,1595463031,2268727348,1335170522,1482005248,3333768552,4069968991,4117878274,3398706073,2628912948,2822578801,3092795403,2683353966,1115915184,1110329563,4210783420,1014523095,4194016943,4240878671,2658671893,1908954057,2232060549,3741201186,2343484564,4235310856,2843450377,3755850354,1298968437,2217191895,1618125098,618793562,2289736626,1060045758,4292480760,3104220639,2659930375,3577866697,1946625082,4025025521,154998115,1032453481,910409055,317349003,2604244093,1785425057,625073030,3410222712,3009079414,98757435,890325764,891946499,4188375987,2269045234,3940958497,358369970,3744623833,3828721204,2594648435,622935347,3397256885,1749732110,569349323,1946233020,101520386,3959698239,86492000,2992325484,199660794,1531740396,3158217237,2646742566,2622460434,1718198789,1352964149,4088875208,2643999676,429913212,655382466,503133479,626394264,3433379519,3966436972,619799452,3219526538,1578893257,1606785756,1599609027,4121361321,1821362344,375715917,3960596384,2210574792,3480536981,2136058357,642196044,2712940191,749875793,114006606,1198167945,3636267759,2551854755,2177724350,2356553070,1819476729,3763000667,979269762,124584459,2500951878,3715859539,463439895,1443509743,4039018640,828741361,2042666941,216478475,1468242257,573325541,1457780480,3792606393,4204882913,230364713,1107294038,2954418223,144004627,4044058786,145350709,1230077898,4113110215,1168263660,529160722,652174858,2070934123,945859948,674827626,725906873,556763097,1415463552,1924983096,639852202,3311543119,2518751597,2244530430,566898659,3079840828,70390290,2344578868,647433190,3017913437,1384723414,4274683974,1382807215,2117702307,1562008535,2915247663,1504325198,348759728,986122104,3717003762,4096220436,1359859237,4175192415,1973058554,1581235202,1321621699,152626609,923831310,1100935474,2465151994,1534743547,1145303512,753400656,1551547920,3868194252,1690710934,3272997108,3017127833,2074023810,3621213985,1657964356,92764251,4244757522,2330471082,2370766654,3196572026,864704137,1778635497,2472276698,2609081899,786156752,2389818251,4201931218,2693434305,2975857523,2669995116,3354004190,671350462,901572550,1008698811,2954702571,1631450935,2818452042,213376585,1261119747,3209192371,3307694070,3319202473,517586427,1615130638,1084733659,3682972633,679966383,3168277865,3409582414,3417351666,2215126147,2418447248,2791390386,1350786027,15102806,3951359538,2574587516,2523805476,1025643667,1622234630,480662498,2021067082,281394381,286897264,1406002057,2879895750,3573880817,253978922,2521436610,1923298251,3759213281,1108928806,3784082761,1597798271,3376767638,1320804124,4218393443,111336921,3833238710,1538478975,3335134782,3565448640,2662439349,3673304372,2021213939,2055114268,335132684,2052658698,3205957229,4253354580,2841960641,2778199293,3433345908,920222177,2342164464,1321309627,1828306639,407891852,1341735283,2991429442,3211786750,3173999721,3443363970,2622619953,2288600317,2138549005,3688237234,1481004045,2745756031,3379277885,642549770,1985551693,1227576018,1884291637,2602215378,1688280312,3902961665,123884830,20048549,3550802502,3986691014,2148188151,65679966,1705286260,1418959772,2215085293,2799703869,4087684314,4089601316,3812504194,1658316900,3773201936,2654877356,1185964831,2684927724,4280177605,921921012,3296048383,321005557,1914731866,4082460516,4285497802,1251762524,3797057147,1634740945,691719561,3095052972,2710320070,1964979328,2363471200,3079974704,2034235988,3531731989,3058587545,1675281698,1910214867,1419564272,3510170235,2383622104,1803789714,1198231786,3910869974,865706339,3568478391,994163853,3384885670,2662469161,1710557718,1520178528,3359912510,1022687519,1645138974,543272655,564011910,421771523,4204098334,1254172982,1776421616,4089200404,1299809365,504364064,1090513427,3806689982,3231527101,232446871,1265833034,102712307,2194541393,1262419490,2415605050,2846792851,1752364515,1401782357,1178416425,3361726793,1663160417,134279268,433114227,3589440727,843624470,3568829177,1237880957,389515679,2445796405,3514436196,2027235806,4020187017,2317284487,2008133359,4213940295,1171462266,3215848577,450991251,1344308874,2225530065,1078519843,267918090,3892742014,998330928,4007899304,3865774882,711524336,1225499527,1443784353,2412116353,2701129676,2282050427,3568372370,1543174000,3352653747,987871172,752506431,2664998021,1769638530,2030447848,107930345,3626147140,1517289394,1584873703,267886993,3891203059,1778910378,4224900610,948655352,3167631050,667062172,3275138785,4078612176,2700690346}, {1262688387,868344123,302997634,416573603,831915015,168809664,3020644227,2908714691,2082019299,4097629800,918018933,3863811242,2039569382,3353842091,2946864245,923954824,1909318579,3799052708,1381903073,2603447055,3281627856,1801164217,4203535594,1603498864,2693110643,1867450616,4286509736,3151362554,192542136,3236355733,799457779,3853557654,3216955543,928905039,2019488772,1135049440,3209362823,1370543093,2149401160,713967888,265133634,2948664453,2328976096,2265180305,3091386098,2190824377,73221260,447477412,3412550779,4078499492,1148562241,1684568870,3020506360,3361118220,2249306538,1561301386,721554957,2476209661,3360397706,1644413385,1623022247,2118997943,973620295,3075246246,3831130104,1342771077,3428692372,65058617,4111940038,343413209,14337341,234345090,2305960653,1280103730,1827304453,1571675394,3590210054,1372639339,2487448639,550127620,3694567454,2944723719,236487628,3943277030,3578052272,2689947505,1432066773,619817393,1331781775,1313294088,2912184989,3596384667,1271773123,136326176,345847238,1869665494,2466695479,1158093120,1829064094,2948568428,3521302767,3433334766,2240354074,3087246742,701298784,1332226401,738145987,4027188847,2868563791,4269364130,3392926283,3866123806,671493245,142227120,1415098063,2980311604,1775774538,2296389275,3626887548,2392522741,3790595656,3400619037,1363361746,4040037114,1191013857,1591509069,2501288517,3584412907,591392121,3241938862,841822643,1434163154,3447023118,4282367542,1068599653,3823861422,2164554234,3583851599,504806238,856306110,1323539870,680455693,1643136672,3040386071,3186865873,1602960391,882681733,4110377031,2317968049,3072474855,457990262,2202033361,3098312709,971867395,3578484252,224274044,543796090,3904715345,1458155875,2701251406,3579350156,1960246173,2939810019,2301946639,2739058855,3080352152,2501060472,2860179726,4169943892,4165348908,1627869315,1560777575,913778255,10222063,371403457,3461777639,307260695,1211273356,1886845234,3328966836,3526842511,2059117424,2681896423,3317940904,1512822457,965979796,1381632547,761064709,2894770132,1852788762,925390183,3531313922,3802646347,190497622,4156322321,3093678116,458990511,10522047,1270076012,1966538904,351609133,1667115480,646330176,2880078846,3024590933,2763981283,351672229,735677487,1485414492,3565164258,2216060666,1679372270,2026998032,173553834,713536121,1755782673,2815105218,2287048120,1093692014,2131767341,1759520155,2267099197,979527082,3986731260,3905354860,3170713178,3413786722,2033837750,2130628904,3448863854,3271022490,3573267148,3051986509,505736488,1610588312,4160395379,1045676322,3354047099,364744860,692973779,2473177542,760185867,340853473,1561764226,1247802877,623203345,1756731210,1881583650,2700499430,2944322463,3857018699,4226146577,17806166,1920630409,1362736660,210710404,1805460652,4136803774,3686259788,871213122,994683182,2958868893,4276867948,3951526444,4030519464,262190699,173616563,545256939,137978334,3116479540,619105126,821406394,1984399809,891350447,4030140208,2545152616,2804754350,3417075990,3589145462,1370947447,3701110332,2337838532,253329943,1385369817,890815732,2588445234,1730231070,1372173116,134577365,1604671045,1820305460,548722487,1211643146,1764644949,2879545039,2728504976,2322407850,2208818820,1058799936,2434027693,3037971496,2137116576,547595075,11048187,3337076173,2304143447,3321145583,1785266544,1970709738,3833792817,3450242329,2160061743,1628897693,1273590942,2160543703,1921724434,1678517498,1107700654,1276160024,1840574681,368077243,132525445,565915598,948487919,1452952665,3036814394,364775955,1065193558,1695417033,2333500112,2651830495,3647615364,3495885971,362505725,1047602121,2899492030,1122060262,1424031226,1894268627,1742758394,1948902853,146523366,598612856,331888985,1248462122,3085465848,2245934206,2934322038,1868095102,574277392,1218596429,1040851159,3502498699,2802646575,1498192417,2077666324,3505056697,975383910,4248348332,2939449316,3251420868,2193372790,2912235018,723599214,3733734845,1199638494,1317861124,1566030136,1421739087,760158544,2882179015,616332248,4135190644,1160395065,278554926,1232127070,15396140,593406824,2623109875,2926873573,1357637645,3115260452,2922382539,163854971,590699266,4156478889,998030718,893575515,100219415,825643336,2279992950,739677113,3571688040,2463749740,862905670,3081798030,4266981390,2920763415,2235939863,2172605340,3926514637,3197337394,58773096,1490259488,104332179,637958871,428445663,1578807154,278445850,2728381348,2956651167,1235952207,40293978,4178846961,1931602099,4094109075,1467829989,3081075206,712380420,974617650,2104696295,54064598,2880572673,2360708434,3178221898,838442195,2810193786,2463499739,617456330,922520862,2264041520,2202091806,1743593059,605004855,3770888178,1058484551,852703127,3725381538,2118548895,3200655189,1478866793,2766189336,3710575940,2193483923,1958634499,1766058652,3159826976,1430011236,1537625196,717154786,253413939,1020864360,3168387311,1436763364,13884805,2752803897,4131031148,3066293868,1450270275,4183180145,1939485325,7799725,4064526172,1597173239,562869042,4197971774,445490432,58126198,3072854321,3341898442,2784758334,1054473370,4031461185,1391185824,155597166,3074815888,1567448421,4185526260,3738692530,1473556987,324367939,518607971,571257457,1612306722,3624219640,3558781331,1516442854,530918392,3189768245,1201981878,1549541317,2678425635,1423101278,2647419124,46619890,1735828337,728323669,3872393845,3684990839,2067229068,1826978312,594889601,80044664,1716695168,1668081728,958298819,3455224127,48545153,1118014782,1062878417,2294494674,1412858900,83349539,1363012022,846837646,317990555,3407261902,640483207,4098324169,1625552993,1546625431,1068687425,640565304,2375066896,4177204799,67311965,1809790416,742214002,2753667729,690824765,3245238686,3648815999,666526580,383112899,1900356526,1713591112,3574225246,3407156158,3944962732,3281017817,2882937927,3550507569,3219869321,2831589387,349118817,3126818042,4207379568,3498396183,198307022,4253526789,3047053982,2053193607,4074406432,876618225,3261957403,2861262469,2408614949,2601161387,3036837020,4193009295,3230369472,2485429267,261675016,339918378,2385810764,3387406273,2174105353,967290710,1316706495,3273002167,4205898725,2380019465,2336346431,1202539322,4257468652,411892080,611478482,926851837,445311703,1634980274,2051812022,339121092,2379587953,1144706572,1728812373,288765102,267916030,751845288,2327698335,3355185812,3916681944,1912477386,2502281693,734745813,2518158892,2576715724,3919720985,1490134233,3309236208,3246178417,47568470,2642145565,4110031902,3230466716,4123196148,550809389,3331083316,991970434,1084374348,1809951175,133002034,1107679498,2322149912,2995605328,4038962256,480557281,4041470140,3624745460,890788706,3479235678,3179572966,509860402,3300801322,3858176703,1801686866,1008574415,2082694490,905860424,685819996,502294761,3654071562,3767055654,1871916909,1600755407,3442430967,306716519,1251220192,4275387481,1523217340,1447591923,627780515,3654784889,4281374123,1150078111,1720096130,1527274772,889235653,1994612146,604803706,293403083,2666049271,2112378744,2487465850}, {1579325394,1889431874,2815240770,1533076325,1675601278,3073919757,3504594026,249972878,758491779,2377929184,3332314185,919716298,214697438,1897586810,3620971413,3647076804,1172070134,363657285,795209050,1639401067,3090850014,1306701528,1495401084,4181114028,4237151417,2173042989,902366061,575425518,1204529026,366003451,158492684,2971608165,1584899585,1609743891,2049442074,3507775888,1238453377,117577966,985893759,3110804408,4058973562,2599774575,1330518010,4169053529,2886704204,3457832114,1529115948,3006424767,2747650563,3128304801,4006336518,2174176968,260844168,1403896739,2381523190,285653512,1743314530,1421620042,3061451921,3645028389,3072066009,3242194262,901452023,1209957755,691336156,1316711595,365841496,2365078861,1530785363,1678622577,2612384477,3764537298,3757047485,2676024758,3783335230,1918202820,1847023919,373257844,180501388,2287923550,1704406421,3942836521,253989494,3008832411,2334289436,739144714,577306145,3044450262,1440618356,3660900394,314648487,683095642,912579142,3147741756,232479456,1171787365,431777565,2343246030,1019829798,3199865556,2656528499,1661550448,589343069,2781274256,3070720359,2445942557,279077960,3558538007,3826572609,2314900193,3395306485,455741092,3425076353,1637729701,1289663321,80378784,3760731501,169999281,1612249310,1163393845,2626910518,4199197297,1077028048,374751963,601538642,1508989684,1455766205,333067820,1846789954,3202962303,2500880305,2586085248,2793996241,895183366,2473447817,1826709455,1783382539,2783797901,3105004494,4245365288,2913279616,2436375385,3894496454,696352132,3575805703,3612144531,3182001841,3056214337,460103750,1997171077,1777810187,3328276020,1728961297,27968311,202669836,1409392771,3485315634,3715318605,743602024,2988520561,1287949209,2979981155,3504538796,3225800136,3483122595,852539525,893567771,3985210578,3406275131,1976959908,1022369530,4072299480,1047276954,17785928,1929940932,3792637310,2574431392,327246888,3748849286,1434166819,242212485,3840543386,3788307251,148099637,2327261655,2780649563,1152074014,1501014656,2443121627,223573591,4028201903,3285379931,3493978773,3800776690,4254877275,4241010014,852722712,4009741250,328366924,3765796616,2127683858,1605941640,4273350783,588761321,3695714700,712346592,4175433864,2276518300,3350148080,3052955142,1978900130,2036255990,2014061952,2307520928,206853920,3582857411,2186055557,126218236,4283026388,901873828,2379250137,735354910,3167105723,4142784688,4089520944,4165742140,2929683344,3034095560,1199487403,2935945544,2857294173,2571136184,2998865439,1199076834,2209613467,1439073951,170526092,3761423196,3074121720,4139757964,522941728,198366719,1148270670,3762074788,1573290530,813866167,1230694840,174042111,344065931,3501752523,1939377144,269821860,3360959437,2595191126,805792672,2041664185,2534800504,2918108342,692780289,4127825983,4228004364,3965034625,3481281089,1193961512,1347021436,155123194,2124563149,2765454942,1470306345,4167773808,3914526002,573504029,3726884688,3054926263,285626546,1745077127,1639493062,688358505,2075444902,2739543058,2928118210,4123457289,3100493364,3908099427,15919864,1782075252,4074686030,1384609646,3371948679,424929723,1525388783,1473848758,241934079,912330564,2928371174,564658127,1460080751,3917107384,1964149044,4270063829,2752358541,628543714,220248945,1027397769,2093407045,335628076,2783194927,1684101162,1523974873,1036520542,3124518323,200439447,3796725067,2910022591,2095677175,219109337,1288058577,2633296369,2011672428,1512358782,1272821429,2862540532,349564691,720014954,2549390442,273228671,2392363843,3088322107,1355932218,329240213,876944203,2445109695,1857998234,842961820,3294131851,1388959341,206855047,2947172203,2325974610,2816438111,470020093,2790826465,2701301540,3007572680,129249303,2874167851,1142172945,2744285822,3627537452,443891116,109014842,1029900120,1839623525,332759330,1309892052,1628323960,1959153749,2963901719,2618267923,4273591022,1042130332,4033993947,1639888541,1409143749,1951181315,97030397,1022860101,2138037017,2289594937,266998736,2763946395,2457663445,6247622,4211916295,751740707,214650711,1918751339,3238536484,2991258641,3953583602,3111177923,3016732372,81158010,1428521864,2315831226,1219035384,598632426,3113898523,1203778746,2161648922,3977472329,1968858003,3842117340,1709187605,2891997854,3655525983,8093370,3455361473,2823019921,2893512876,3725958649,4220572376,2915772941,3270191049,4045115886,3512288186,3280365959,3694683953,1205243887,732717970,4200964190,918328919,1867738123,2907408575,1015310189,72094213,1326296921,488362859,1135586627,3912526062,907399791,99963748,3861649112,995446047,2795063471,3338806565,2541402581,4210268785,2671098146,1125911663,561555362,118324633,1112828606,4206805022,3483232545,730342642,4186063791,478623122,1601876813,188726398,3362632124,649890500,1208760503,1179308559,3527838044,1934991604,2503841342,1797673619,2593969793,3033546152,3265210158,2697235735,1679938520,3706289070,875012701,3191964483,2340721400,93191775,72908523,2772694034,4231092374,530171543,1969824668,1191084021,865103672,3349032650,428107233,260876734,3076012927,3539053103,3178745654,521418091,3715368803,872430550,3796316044,124658260,1002671047,2350623364,201291583,466883982,1639663181,2155932570,2598624223,1664470177,117032682,1525018124,2071083602,785302771,2787167120,3239720098,570847791,4233824788,795904179,177508342,2676826021,699361121,2792866257,2708939764,1976539781,1685834385,438725818,2502780308,1679742401,2030448988,3913114178,1987185767,1641385063,1894877492,2583139833,2345368074,2553101778,2292450437,2349251913,2132059518,1522443776,2931907418,690848869,715744013,3373967222,1411465065,3132538484,31904256,1132549995,3174394811,1081760502,2576656054,1770265489,2037551241,446366561,591225663,3567761161,1558714378,731230029,3740728731,1302075422,1432101949,2875713403,3697281239,1887950340,1472648640,1608468257,1128925070,1348243682,313175312,2538221218,1163598630,3489469305,1396877329,304772137,1615494565,2162528186,1043796133,464523330,1212132298,4031168892,140121130,3891144889,3451993374,1011635342,362393016,4244791051,4002297364,1606981934,2833621929,3594281099,4110376078,2561057248,1505785866,2793966807,428503650,1769747283,1417895050,2985349051,485589424,617807483,1103574942,3906356589,2597071911,2540350238,3211714475,4010674887,3800471932,1589085056,2729531021,2205758364,235037603,2542305383,2639086451,3524536061,2034250634,2970638562,2477473421,362533538,3562388127,585982470,851083578,954581602,3853388824,4132945562,233348908,158159284,426527287,973697760,3486532596,2358749826,2530318733,691573164,1793545885,3308370821,3040707083,622991086,3112060566,4274689368,3412842218,87486933,1828436985,584548108,739866581,535569745,519005876,97500475,3043700524,1510164014,1406334749,1797500407,4076041087,1391008103,4149750910,217898950,2220030256,810059478,3001120575,336170245,3594166950,3400673706,3007297935,275678704,3686911866,1668369985,2112358797,3916862292,1570005012,4195208318,16402313,753706732,3536891891,1160008775,3512844538,199469100,2192633888,1477526764,3474735138,1514390402}, {2250674169,3994504747,1156126483,3913602952,3676364156,371599263,2833003111,2000245031,3011048292,2662979097,3674228436,90449174,3279773629,1423516865,2041671543,3623426310,985461430,494442544,3918664906,1632711288,3994436830,382853826,2568270485,1021810070,2083587194,1016966869,1174884687,2669722978,1652423043,2313506733,1785228214,2449500415,177196046,1878177772,2918664087,726086185,1586010938,3039787245,3742163940,4100088145,3605782609,211765236,1788567563,3970889871,2945113059,1523932839,688684673,3214048637,3143590224,619356868,3725518103,1958434404,2346217168,1803060119,1532233450,355776246,3497765146,3515574561,3576944701,179841322,3771372008,452243513,1625878018,867865382,1546472908,1964241811,2239971297,2022073484,3834356319,4138108299,3232933269,1932502330,1639380315,2299288822,3026837011,2690998641,72041093,3699128250,245452163,652817453,3868822403,5619703,1336836812,2390460405,2641783530,3958689154,2034625377,168461652,1612001119,4072815853,2459581986,3712845262,2243377195,2742234931,1903115999,1283512040,3790283446,1272711330,1055214675,4222346592,3056337145,2891616238,15748426,3671931299,3950678452,1383700490,3964187129,2152328682,3569259327,1989270724,2950509394,628551247,1860158826,1224216743,3680299231,1913866915,3971402855,3965435659,178874555,2289915349,2890775243,3055775711,3715668371,870837129,242130245,3098889202,3435993445,3943257318,1343806125,4155936355,3209187359,1525525373,648533944,3379228569,3000223371,1529263057,241011397,662437397,4184281207,1970809101,3625931978,1438179828,2574553565,1771493123,1495926830,1671420845,791779328,971528098,565148871,320582746,664298556,3996634877,2970655838,1349153231,2303450010,1441356232,384394679,8992960,1308411053,2226578915,927459585,3512961410,2965307138,2732789268,1721384834,3475413024,2016914496,4155568048,3403147514,1252572558,1180613718,1942233293,482859912,2937526868,433094150,2610870291,2184268879,1631632637,1756419410,2612969869,2672695411,4146073711,2783115478,277407138,812144080,2518813200,4117418928,523452044,490834317,747585170,147585573,1774342871,1879654338,2823790725,522804338,2798147720,755584318,337135411,3923675048,494137698,4131263972,865562432,3264429888,1347575920,4112170104,1871643289,739921061,302258379,2237566071,225528806,3876311775,3290767793,1175481592,413390569,1775394551,2164062264,42437508,3490692035,3045868423,3883961091,2339920153,3409374643,724539226,3629188245,405684110,3132781814,2185743264,903718663,1520362085,2260306826,1545882524,4280222790,1493902109,2868793471,578455094,3048294516,1146350783,344449693,2437567480,2546101122,41327371,2157382014,212331623,2567186242,3595447663,2929344897,39367355,4246670194,3216790123,4097738365,835594546,1108177369,2058367461,1425064248,560192734,4202296154,2232023261,366379739,1565010083,239339824,1961034757,1804058531,2640637592,2243760513,1743856806,385274495,4195602787,357488712,1137831082,208261943,1635277032,117321314,430492549,517876409,1633270251,1446827342,3855129806,1030824791,1272767748,170893481,2903035048,3005542539,2389617636,371376744,3036139848,1554707009,2258938150,4241781948,3676948014,3930862606,1415564915,1296838475,3750407846,2293526428,2451453942,2370905901,3069528558,1736881093,3890941513,3724859091,538662635,3128588107,3135962600,1207246702,3321156965,1854136549,1566239281,154084690,3318688785,1889151151,51854218,692170467,1371023770,3675629073,1085124369,3508747388,3999548263,2965174183,1468078021,2486822637,4092913178,4078825516,4134332826,2064785561,806765726,3403554245,1681946859,790000118,3507507045,3730784125,1184113958,1576003825,2333304221,653696951,1740079166,3702140927,2079904096,1230684559,1276406632,1911165776,3563030351,2089681564,144317449,2701609094,1201202140,2990363547,4253079025,1448463658,2229407536,3690704380,3191599661,1562204677,3888002616,197326304,1691265401,3355900836,187164263,2526676217,1003034413,317008418,2080763526,319073822,3945572041,3020973328,3975343429,1088440966,2973246497,2762690701,2712153628,2702655468,4257060127,120075225,292275383,4016887660,2193070232,3960944514,2671300028,2907884921,3597020862,1061265183,1766049501,4289120599,2728799300,3107236939,2503971390,785788063,3081486085,1371922931,3419173359,3087965108,3213844960,2419250886,400243156,2000677496,1831519743,2701616542,560608375,1947999315,232018703,748813533,3206579502,1021089668,2633149648,4134212638,3987551946,3307123818,1585963282,4290776990,2823131137,2061818656,3396100225,3574426632,2028044008,3122017036,2782106758,1732704710,483135034,2448194254,2827746259,1896932644,3608258897,1530074182,2807567702,2846507279,742942472,3578204355,3511574700,1010008018,1197710884,271341913,537077839,2757273885,1201920792,1722774854,1209521644,1255467439,37338378,3913034561,2938942270,3520338224,1707381377,676215045,2860027871,1859419499,503507519,68709958,3700284769,2043142008,1856556055,3071565455,528950930,2737583959,944200171,3205501454,837655924,607686520,475178351,1064886510,1629025855,2859109603,2512930776,1202811045,3843925575,144390663,2420144483,1828286274,1886459210,929707757,1957067070,2672350218,2618550872,185072933,1665697893,2322041829,935744942,1541678928,1109851526,875525977,3137286054,3054131483,1545767872,687053309,2926903559,1949303729,153148525,3289260137,2912973927,2282915709,1458012772,3868689503,3508412192,1637440215,2902584897,2333829149,3545456768,968573544,89592561,3257609558,3072947754,4279579796,82654246,3217718803,3311074172,1710035769,3374367971,2441504157,4099720736,3314432581,2186464477,3314455091,488510707,1656060568,1182670292,1010565248,1135459656,1816174402,1221646696,601630562,3875208176,872729093,100210314,3018346504,2878018128,2221436549,2239060576,3174618972,1159900086,3997075994,3596087430,3612822963,906769510,1713749000,105277339,501740541,385493594,3342389804,1526459834,926972522,1430831052,2160312157,3762555740,576505754,1698966111,3302748953,2767545040,2447135458,2845272387,3232403308,310457643,963319976,2693527039,245813161,3194008007,801370766,1542141765,1596125657,867467139,4284441909,3906497402,3028449498,1091108085,230904603,159648941,3291053161,3157936332,2989592185,3293556409,2969666911,3044081295,1624610077,4216741980,4264576966,438656916,1855218994,629486629,3031620938,1924299150,727404667,858456238,2479156596,3951612133,1718880209,3640991651,3758030645,3768090926,429290970,256718813,2023956268,3981702321,3730865299,221352202,372459688,3387172713,4035033014,610042093,47622431,4237697038,313536911,3851882049,4110765943,1298069131,3184569332,3867188598,2791598608,1964977917,2368955295,39025045,380121479,2535042276,4261775200,36984362,645239506,111036174,4234126852,3228035115,587163431,901443640,2673985197,1322185940,4232709808,4053924383,1760984600,3528184874,2410203244,2258883299,3604544065,3471964193,2212395562,2193718398,3859632340,1429290025,724476345,3047287205,1611733996,707164052,3697091169,513892779,3716368479,3534917339,811803975,4151373731,4227272565,3540240156,1733039235,3796417444,388374059,2521929519,4160084961,1233796082,3828727057,3359066035,1254854001,3377206905}, } ; static const unsigned char precomputed_decode_653xint32_s[precomputed_decode_653xint32_NUM][crypto_decode_STRBYTES] = { {168,40,27,227,83,38,19,235,141,14,139,99,19,182,220,241,59,254,153,157,134,40,195,187,70,215,22,18,144,164,229,105,80,96,216,112,121,79,106,59,90,236,143,252,234,93,235,201,216,211,193,203,244,235,104,185,6,4,118,83,0,48,33,57,234,57,17,125,69,221,184,158,131,12,31,147,34,170,84,249,60,246,111,196,224,169,125,20,109,62,1,170,198,146,194,127,29,226,129,12,253,203,31,104,36,224,94,133,245,184,64,61,127,176,186,171,246,39,102,167,168,128,87,21,185,187,97,223,56,238,111,158,143,11,104,102,234,14,13,4,94,104,60,99,182,232,25,206,180,56,94,116,203,141,168,119,101,235,179,54,137,102,220,137,91,9,159,243,231,251,86,21,164,159,137,207,97,168,124,38,220,127,210,1,194,220,132,182,82,58,235,84,47,108,11,57,113,137,20,251,248,141,9,24,96,107,49,31,85,235,93,20,60,85,255,224,160,140,83,75,141,255,35,240,115,134,45,220,255,43,248,217,105,152,171,253,22,199,150,227,63,66,13,31,123,187,10,46,132,167,43,233,99,128,132,140,52,98,95,91,179,145,75,77,111,230,148,20,8,165,236,40,98,64,116,96,3,204,35,189,168,224,30,77,44,169,14,184,9,56,118,121,246,169,128,4,219,52,37,157,7,2,228,122,171,4,15,163,72,161,2,121,235,164,43,126,165,15,72,241,148,100,72,47,92,65,201,249,227,21,181,255,36,143,78,218,6,90,138,254,14,95,10,238,101,246,42,66,55,72,192,47,205,98,172,40,57,206,251,125,184,6,190,198,123,123,204,220,223,87,127,126,173,242,54,164,25,105,206,117,180,99,78,189,210,143,46,231,20,17,130,214,33,113,157,200,160,214,5,211,44,182,42,41,73,139,18,49,150,164,160,251,182,226,150,160,63,234,86,204,179,106,79,240,36,228,232,125,148,94,155,126,108,174,209,237,139,234,27,8,81,69,10,166,240,119,171,11,213,0,87,73,67,210,247,170,127,246,30,80,198,111,17,24,131,190,255,164,157,82,85,142,214,248,31,121,19,29,228,172,14,182,217,69,119,196,32,130,71,246,237,118,225,76,52,72,93,128,108,40,232,207,170,108,46,174,144,107,12,57,13,217,119,205,141,47,232,208,33,119,157,10,8,99,91,182,37,10,224,109,57,71,235,253,16,36,83,29,246,244,54,233,71,82,147,244,174,99,73,67,200,195,59,61,167,9,175,0,12,33,207,178,160,65,61,101,154,8,231,41,98,67,12,10,72,107,232,134,232,102,88,253,39,182,94,246,195,233,216,54,193,240,59,179,44,163,139,130,139,89,203,108,124,90,35,242,137,145,225,97,242,206,89,188,9,171,73,228,175,194,20,232,109,133,34,134,194,182,95,120,48,238,204,128,122,113,37,193,26,50,191,63,111,205,40,218,86,243,114,124,219,188,155,96,113,246,175,236,249,0,238,142,83,145,198,117,26,132,81,170,170,94,117,242,108,129,248,240,145,144,121,84,152,210,12,199,219,132,215,180,132,25,5,197,108,194,140,192,221,83,47,30,101,42,38,115,73,97,205,156,31,244,217,203,161,171,38,70,85,235,191,139,143,136,160,133,217,43,234,11,225,190,180,76,178,156,210,58,17,33,202,39,84,48,6,217,144,205,242,85,233,244,127,122,184,156,234,112,70,3,180,174,181,194,80,157,78,114,228,5,192,242,111,205,19,45,56,210,251,39,89,30,213,42,181,204,131,207,227,18,146,159,56,104,138,150,208,78,122,134,243,64,36,251,118,167,173,182,102,151,41,227,136,159,5,228,86,166,228,228,199,97,238,134,39,152,37,252,132,199,56,41,200,7,220,153,10,209,177,147,139,117,144,144,103,153,146,176,165,240,100,32,130,89,4,163,157,84,115,189,130,64,243,3,253,247,192,199,140,101,54,112,224,57,90,175,207,49,246,125,253,82,89,223,79,188,47,142,113,81,25,209,243,42,127,17,21,131,24,227,63,135,84,232,249,105,89,190,203,211,119,66,26,160,163,147,41,50,165,149,25,21,252,176,6,109,248,245,215,162,72,147,188,80,163,52,78,40,74,194,204,208,7,200,5,144,187,60,136,146,162,54,139,16,185,138,188,187,112,105,233,111,2,117,119,213,24,95,52,8,58,135,218,21,149,79,0,155,85,88,104,69,181,198,95,204,150,242,2,214,113,245,153,35,148,202,52,7,178,156,113,34,61,168,11,80,88,184,110,187,240,159,176,131,131,66,219,72,46,66,188,116,251,250,215,100,120,60,175,158,251,249,79,172,198,252,21,29,120,158,201,83,200,113,133,138,10,133,34,51,254,222,148,188,174,139,8,183,113,252,9,156,123,169,114,186,221,223,117,175,108,77,215,169,39,132,42,161,114,96,90,10,226,36,178,155,122,136,190,3,47,63,248,14,218,255,223,165,6,185,7,81,139,158,201,233,65,213,58,36,7,116,241,3,233,239,99,21,61,9,105,253,137,61,95,189,67,54,139,92,234,18,125,156,57,155,161,108,107,106,134,219,65,37,120,222,67,203,118,232,90,179,59,235,226,5,4,75,17,53,3,6,42,53,179,139,165,249,242,225,62,135,33,65,230,234,178,74,92,21,217,108,50,223,52,166,53,228,115,49,167,154,51,61,33,37,181,6,126,202,14,203,74,104,203,148,239,33,188,40,1,116,2,20,13,6,63,51,4,236,96,195,39,5,108,67,91,178,250,148,230,11,236,128,76,91,21,146,62,188,38,22,194,157,18,146,79,156,5,162,105,102,53,152,164,80,200,72,183,243,188,59,152,157,124,244,159,25,194,87,16,39,39,53,253,29,152,4,86,37,191,54,165,204,108,6,107,236,156,99,241,36,138,19,230,191,201,255,27,94,220,154,197,95,195,24,88,95,169,251,166,245,168,200,143,108,77,248,100,22,160,231,17,236,200,177,194,131,149,199,116,207,245,169,81,127,76,34,71,38,159,46,180,161,81,50,178,44,78,154,203,6,137,151,106,71,239,10,189,216,163,54,26,152,190,111,205,129,110,37,118,140,249,2,115,108,91,213,74,224,130,120,94,58,11,2,109,7,70,127,17,149,83,132,123,221,23,136,159,27,239,53,10,86,144,136,190,240,241,150,101,49,189,159,192,121,11,51,231,12,81,153,131,87,229,64,44,34,0,247,227,86,185,148,14,226,225,107,161,250,41,22,187,13,86,247,255,65,47,216,24,176,19,86,149,8,162,112,11,241,53,224,169,8,202,127,81,73,199,20,41,245,236,73,162,69,18,90,138,31,10,102,223,38,107,242,111,123,108,173,96,56,106,13,57,40,185,117,68,43,217,135,47,33,128,66,94,84,56,233,188,114,170,94,35,38,79,35,98,197,109,25,33,150,254,208,200,133,227,47,202,33,60,164,146,183,18,18,50,4,52,111,191,139,230,11,151,38,93,180,225,179,214,51,137,82,70,128,202,254,175,246,107,82,163,146,57,126,215,91,26,93,47,38,195,173,78,46,170,89,176,166,201,20,120,7,199,58,242,249,140,221,20,93,39,244,37,206,13,81,95,97,220,248,250,123,154,117,2,188,63,94,195,88,198,78,177,229,24,9,14,140,16,55,50,241,158,65,250,59,239,146,251,83,122,91,216,241,67,68,80,251,231,44,16,190,122,92,204,245,143,230,150,51,198,100,244,248,21,195,153,183,213,179,130,23,159,123,33,87,215,215,68,135,210,98,91,120,135,5,18,220,1,253,170,42,232,138,62,7,79,141,122,209,135,190,137,86,138,51,233,210,3,106,218,242,91,147,43,110,131,155,208,204,219,46,139,187,113,142,210,97,116,250,193,139,138,160,115,251,95,177,108,228,36,159,222,10,234,199,190,254,3,40,198,231,188,53,187,133,31,60,235,46,29,176,55,247,61,97,74,42,254,167,73,222,183,12,3,41,43,75,179,99,72,191,246,103,39,197,169,2,215,197,251,189,217,30,14,240,68,96,219,184,167,64,217,179,133,219,175,118,135,40,105,21,216,188,78,25,58,203,242,165,176,203,131,36,8,132,144,147,38,144,178,60,97,166,235,91,131,80,86,115,230,0,50,246,132,235,124,22,117,153,36,55,110,150,147,20,34,61,6,86,177,96,226,83,166,28,74,9,119,120,205,188,197,16,112,180,25,17,137,227,205,83,198,184,167,171,241,23,5,213,42,105,35,15,194,17,74,150,203,51,163,114,225,10,17,224,38,233,24,66,73,133,140,225,127,119,60,95,150,98,69,201,28,223,185,78,99,147,111,251,217,221,162,6,182,148,122,228,127,83,179,91,62,30,202,198,192,109,132,212,181,153,177,158,52,45,242,218,243,70,121,120,28,142,126,122,12,184,249,19,10,22,89,122,109,6,23,191,84,10,133,253,193,224,100,169,253,244,151,165,116,179,164,204,225,121,217,54,240,151,154,139,187,149,193,78,207,190,249,108,140,239,79,24,115,65,249,79,66,151,77,178,254,249,111,191,105,100,47,189,130,144,61,205,49,1,82,156,253,68,105,136,13,171,119,127,178,8,214,219,13,84,70,88,127,233,168,163,61,176,107,201,10,136,76,38,77,29,89,118,210,82,43,73,53,2,80,112,210,167,26,155,248,28,161,100,1,120,162,232,30,85,98,7,165,234,49,1,70,242,164,211,198,19,160,237,247,191,10,128,94,50,234,3,116,154,164,101,156,155,147,84,237,132,7,132,61,23,224,166,218,28,165,243,36,93,194,243,130,50,62,227,100,232,215,98,16,126,230,224,172,54,62,158,31,99,176,70,236,190,8,160,197,83,30,255,244,101,243,54,255,180,117,196,245,39,34,19,90,125,32,114,100,103,85,243,202,129,111,255,92,97,156,74,123,126,82,226,209,42,112,97,137,205,58,41,172,194,122,184,198,51,140,161,128,52,31,117,96,181,223,140,48,175,148,183,84,250,63,121,21,244,129,210,153,87,78,182,34,197,218,99,211,144,219,113,240,212,156,84,123,242,56,209,216,47,19,142,146,165,131,107,234,144,107,71,214,35,27,233,99,161,153,51,183,168,178,212,141,188,65,59,166,65,193,201,41,14,178,158,22,10,245,101,96,21,156,90,62,50,68,200,31,249,244,60,30,212,14,98,207,174,97,32,134,35,158,33,3,185,35,25,30,115,149,250,54,41,193,74,240,10,226,105,20,63,188,243,85,132,121,77,32,252,15,30,19,234,255,64,190,122,229,226,189,48,157,192,151,219,218,13,74,20,115,75,243,67,31,6,81,11,206,130,34,254,62,75,58,53,251,143,147,156,174,169,227,245,114,104,85,128,141,83,41,53,61,70,73,225,95,200,97,208,33,99,100,240,0,8,115,204,208,25,215,132,242,213,22,176,72,50,249,2,184,212,125,144,200,73,159,137,55,23,53,228,199,145,100,10,122,209,222,41,213,120,137,47,159,239,135,244,30,138,239,174,177,119,71,160,43,251,122,24,211,69,129,244,173,191,147,148,225,26,138,134,32,80,209,228,166,132,35,232,72,64,10,27,248,15,126,135,6,232,48,82,129,59,168,176,227,238,34,11,107,230,240,255,104,42,135,163,11,73,161,102,14,86,129,249,197,143,204,247,255,160,123,83,5,136,146,10,177,212,112,247,250,91,179,111,213,199,196,183,225,58,63,86,218,44,133,164,216,158,130,138,122,105,232,44,6,121,233,226,110,6,68,157,34,216,178,255,111,90,231,64,119,94,145,161,247,15,243,11,239,231,170,4,8,106,2,222,210,251,248,84,139,56,202,54,206,188,156,143,194,39,225,166,54,195,208,174,26,243,170,67,249,160}, {131,24,67,75,59,225,193,51,130,96,15,18,163,104,212,24,7,4,150,49,192,212,15,10,131,95,11,180,195,118,95,173,227,23,25,124,104,222,60,244,117,219,183,54,170,20,77,230,230,91,145,121,171,145,231,199,117,148,165,175,136,110,18,55,179,227,205,113,164,241,112,226,225,42,94,82,15,115,45,155,208,170,153,195,185,149,91,107,234,220,140,250,112,115,147,95,115,155,133,160,248,8,79,111,168,242,126,255,250,249,213,187,184,245,121,11,149,222,230,192,243,193,166,47,150,159,176,229,151,216,190,191,79,247,93,55,4,244,94,120,224,122,167,67,135,253,74,191,245,211,176,81,72,66,29,128,16,73,142,42,66,158,205,15,133,12,193,175,224,90,209,138,145,232,3,135,242,206,66,184,185,83,149,130,140,68,93,4,164,246,171,26,123,100,103,203,164,246,24,243,65,171,117,68,38,123,104,100,248,68,9,180,12,152,86,200,170,177,17,134,138,145,15,93,13,14,2,43,253,245,151,147,138,153,75,200,201,193,3,98,167,90,189,96,183,87,77,126,71,68,8,58,166,136,76,183,248,103,90,228,133,15,9,80,148,177,93,204,57,183,224,3,198,57,23,245,217,17,120,20,61,197,218,0,130,210,247,13,205,42,114,137,50,213,76,76,5,116,234,108,2,221,173,93,6,66,254,213,107,208,208,81,63,116,67,148,4,72,202,32,30,160,54,220,7,235,132,175,204,131,24,14,230,161,9,235,176,190,68,213,113,87,85,160,213,154,91,85,177,169,241,36,143,96,97,79,8,71,71,78,157,106,148,173,155,121,92,214,195,183,205,75,32,44,32,8,198,53,157,20,214,212,112,111,55,201,6,147,64,25,7,69,158,77,5,109,108,149,191,175,239,208,226,209,238,135,164,204,26,23,137,133,150,165,3,184,96,248,204,41,97,41,104,79,195,54,255,43,111,6,10,240,79,207,250,170,162,83,121,254,75,242,59,202,30,94,112,230,125,44,6,40,176,54,122,8,207,174,88,84,52,242,163,177,74,43,216,105,155,30,224,136,124,233,45,216,245,255,154,142,72,230,239,225,29,84,177,202,210,63,67,81,250,18,206,240,225,109,253,70,77,128,220,94,69,162,22,149,235,204,165,213,121,237,63,35,174,15,60,193,179,49,45,50,210,151,123,85,14,102,117,205,54,190,63,255,101,137,177,63,174,126,235,227,250,121,4,129,79,60,157,213,94,187,22,30,190,49,10,51,158,157,227,78,13,238,142,40,160,70,240,97,23,156,56,181,209,182,243,189,7,60,139,95,133,167,156,52,71,96,255,244,177,98,41,138,231,62,34,183,118,96,76,27,209,92,64,131,5,128,172,184,3,133,237,57,28,86,75,213,124,38,94,13,122,171,105,32,81,58,189,232,99,177,233,86,78,211,1,161,140,140,88,213,157,251,214,116,227,240,57,175,15,235,52,137,167,184,66,163,152,113,154,183,120,39,19,149,14,225,122,170,84,75,140,248,44,46,70,248,131,80,7,97,103,147,7,93,79,38,119,54,239,249,155,0,193,42,35,22,231,136,86,206,23,109,80,18,140,144,50,72,50,249,118,112,180,0,108,198,143,88,55,210,112,163,187,122,231,125,218,159,168,194,195,197,185,214,43,90,148,174,147,57,35,10,90,82,5,237,92,45,212,175,138,172,26,80,111,110,103,85,40,55,2,147,123,210,75,199,167,226,86,195,90,11,17,114,188,247,36,200,101,184,175,163,91,27,191,141,160,0,108,210,179,75,152,0,55,117,45,33,245,20,216,41,94,99,64,55,134,38,254,131,170,171,85,152,71,180,227,1,191,164,165,23,246,20,47,140,217,43,92,160,137,88,226,22,128,212,250,102,22,132,238,47,25,100,16,137,209,120,170,56,88,10,121,178,135,42,17,30,167,104,194,24,203,167,184,149,81,136,110,106,48,65,45,48,16,127,155,37,224,104,61,48,33,135,170,101,98,58,252,176,160,237,108,252,198,232,90,62,253,188,98,64,122,203,182,230,57,121,40,209,254,126,110,124,145,205,154,215,247,194,204,186,251,212,77,158,233,181,40,237,36,30,152,160,255,95,115,152,250,247,34,193,83,62,123,178,234,199,156,144,189,21,211,240,77,41,198,177,105,147,11,132,79,45,225,2,81,20,130,161,22,93,253,245,95,74,17,84,37,37,74,151,181,104,34,176,38,112,230,89,246,160,159,203,126,175,75,111,229,229,17,225,229,251,86,179,15,1,137,126,122,114,20,182,57,81,132,47,143,12,172,36,157,107,190,157,146,246,76,220,183,219,66,168,237,51,46,169,73,59,157,193,92,176,108,211,235,254,44,130,135,235,168,216,60,240,107,182,160,15,179,45,89,10,235,245,127,32,222,97,57,8,52,180,193,185,102,203,230,36,186,170,245,48,193,137,71,118,175,237,32,53,48,15,55,240,104,242,179,151,174,39,45,167,22,113,172,203,118,3,238,213,119,255,182,81,60,118,154,220,196,149,88,139,23,130,25,15,217,16,147,82,244,196,24,53,50,138,72,154,30,59,33,103,60,179,201,81,213,124,5,8,69,86,165,95,52,168,127,108,55,215,180,32,10,53,56,72,85,88,46,105,207,94,162,171,144,174,161,162,170,33,109,138,132,230,167,131,64,1,28,63,173,80,20,145,40,196,19,181,160,207,97,127,67,163,163,32,251,148,168,0,205,189,231,198,87,112,86,137,239,168,244,197,112,1,105,106,234,164,118,117,49,9,131,228,25,133,166,205,47,237,191,128,157,1,23,97,158,116,233,75,215,71,199,128,18,48,139,114,250,36,12,100,174,43,6,66,24,168,16,76,217,240,180,109,187,105,240,21,133,45,230,7,206,47,187,33,239,198,136,56,89,76,154,86,58,28,2,181,19,10,190,21,86,144,125,63,201,2,14,101,208,98,22,139,223,184,15,158,132,49,106,217,147,252,94,208,253,101,155,21,201,35,113,62,190,188,210,172,230,71,225,66,250,253,224,84,211,62,232,112,250,97,224,103,197,229,41,116,230,196,187,8,120,27,174,35,89,57,200,19,42,5,106,74,248,120,232,183,126,60,222,133,118,51,230,174,126,222,88,111,16,199,58,34,77,78,162,72,215,32,10,62,139,227,195,208,47,254,12,167,33,154,76,89,20,172,214,123,185,235,234,208,102,45,35,58,172,166,56,253,228,111,52,175,196,190,204,193,118,54,188,130,10,46,149,173,110,63,33,43,189,69,140,222,222,7,129,71,4,247,140,78,56,185,87,93,79,4,190,84,80,25,79,45,199,143,202,171,216,123,188,36,116,0,122,246,57,57,42,69,46,105,154,16,94,196,112,73,44,237,234,0,104,171,94,35,243,122,89,156,229,139,116,174,13,232,235,80,36,26,175,185,203,4,48,174,123,58,196,9,2,91,53,35,169,213,190,247,126,189,124,59,91,225,66,53,23,58,249,5,72,81,54,49,118,238,229,135,185,147,22,44,104,162,227,212,108,214,217,146,70,229,110,51,142,129,176,183,14,248,84,254,23,80,23,174,23,188,69,133,156,83,127,129,205,219,9,234,50,127,147,190,104,206,128,3,32,142,211,88,147,251,55,6,215,122,6,38,223,143,137,25,114,175,26,94,26,191,152,16,164,203,159,162,159,234,58,176,79,34,171,73,90,214,102,2,241,36,20,249,179,232,33,115,147,37,7,244,229,78,125,87,6,122,165,183,4,16,118,42,50,124,23,58,231,29,115,125,214,245,56,3,1,13,178,171,82,141,181,140,74,209,111,189,211,156,249,49,122,39,128,167,219,5,214,146,202,162,205,36,30,141,252,54,48,136,242,134,30,65,65,131,99,30,237,103,55,164,15,36,242,47,195,224,71,49,23,63,151,55,211,50,162,207,12,222,159,125,70,126,85,31,198,190,105,183,37,88,24,179,224,164,68,229,42,221,147,232,189,130,3,100,190,116,156,234,67,105,32,34,87,188,100,61,60,85,108,76,166,91,226,233,190,42,51,202,26,15,104,39,217,60,239,192,217,188,228,68,163,85,133,221,211,0,57,116,20,164,108,136,58,246,108,238,195,182,67,94,113,86,113,67,86,249,141,50,154,115,173,3,119,0,92,191,67,242,247,237,50,95,50,179,140,33,62,247,55,250,0,165,141,26,118,239,118,3,49,9,40,183,202,82,49,199,62,10,252,165,154,252,217,62,65,55,75,240,160,207,235,82,110,57,70,9,144,247,69,183,101,93,109,93,244,15,122,249,178,235,215,222,251,177,212,87,67,118,85,19,99,84,233,30,113,178,12,34,34,217,25,96,248,51,5,216,147,177,30,212,230,20,99,90,248,43,165,31,53,0,32,190,182,201,164,71,197,31,92,92,35,136,165,159,94,205,210,84,244,104,204,157,242,92,199,2,113,163,118,103,85,86,105,43,117,10,208,230,119,127,164,219,140,105,55,123,8,122,229,108,129,75,117,35,120,98,197,4,128,176,82,102,64,232,108,99,195,122,30,57,63,137,242,205,129,189,228,2,62,141,163,66,209,60,90,63,210,53,195,136,20,132,54,84,35,208,247,4,182,233,61,81,142,183,121,50,155,38,244,18,206,176,22,203,135,255,44,38,201,118,71,244,97,248,227,96,151,161,47,92,65,224,178,63,56,64,46,38,16,165,144,141,63,22,251,248,93,25,3,4,208,53,223,107,114,73,61,44,145,162,33,164,61,38,45,41,158,105,110,193,127,131,124,217,116,99,186,39,195,214,213,22,174,35,69,113,72,83,35,102,94,89,10,213,190,19,21,203,172,90,35,235,217,91,144,195,71,36,214,171,49,114,160,211,137,78,235,191,11,160,198,168,97,33,207,20,250,116,95,186,112,132,199,250,23,74,133,208,206,236,209,11,5,171,135,253,158,90,158,181,135,63,97,122,32,130,218,242,241,33,64,52,27,133,109,194,133,102,139,170,37,140,144,143,171,146,10,155,156,116,2,181,143,62,236,249,192,134,139,192,19,164,36,148,8,216,152,15,42,190,66,20,76,149,52,142,193,183,231,201,9,55,150,129,86,175,167,57,191,88,123,78,183,12,22,195,229,235,176,250,9,55,220,141,63,209,65,139,58,75,173,71,236,208,195,253,112,249,140,24,210,107,114,36,253,162,62,55,215,234,138,26,178,209,115,97,182,42,76,122,196,147,54,20,113,161,213,141,12,214,58,68,85,149,11,103,174,52,54,17,254,18,248,15,168,63,208,44,159,219,189,138,148,18,252,199,216,210,115,233,202,22,254,113,221,201,37,149,213,84,203,43,44,14,24,150,204,143,149,153,25,50,162,233,217,164,209,88,240,239,62,197,113,192,124,193,86,214,213,2,29,241,123,157,30,28,250,244,156,2,141,192,244,250,194,245,45,175,212,32,52,76,140,198,130,68,32,59,76,61,162,64,199,169,225,107,50,115,237,7,10,217,5,66,24,50,105,138,80,79,141,178,80,172,189,240,225,184,164,28,188,240,227,240,244,57,13,216,98,91,24,53,94,236,96,207,230,110,132,189,50,218,99,30,42,59,190,196,191,26,247,229,82,143,99,107,207,159,29,60,90,101,35,124,72,85,254,53,92,200,224,40,233,104,240,29,10,181,204,217,38,181,136,224,109,47,147,111,207,150,105,95,247,83,47,205,103,31,72,18,224,26,148,74,89,60,213,254,188,115,202,90,243,127,72,86,163,43,107,37,121,151,215,217,171,149,48,255,159,204,140,68,130,149,134,102,20,93,8,91,197,168,0,53,178,93,227,118,122,146,12,36,203,249,124,17,247,174,232,158,120,87,232,125,122,183,67,148}, {210,151,34,94,66,113,158,112,66,42,205,167,101,227,96,91,126,165,223,99,13,75,56,183,106,220,227,208,142,72,230,14,131,170,53,45,224,81,188,141,73,20,159,198,202,193,209,54,222,5,204,12,122,224,26,113,149,163,211,215,196,249,97,217,246,94,220,69,69,248,172,21,90,237,101,47,107,70,183,97,222,160,58,184,216,174,226,77,124,2,34,89,172,188,54,249,185,204,141,252,45,1,134,129,109,3,201,53,238,75,76,34,130,167,203,71,251,196,208,21,12,104,114,9,101,36,31,177,1,166,119,94,19,190,242,95,26,1,40,122,144,105,20,209,129,76,209,73,238,24,2,7,127,139,195,58,184,27,107,185,122,5,239,241,111,105,245,154,250,23,78,79,89,181,126,248,76,156,15,172,178,84,26,206,44,117,36,91,191,102,50,179,3,210,197,163,161,36,118,186,6,216,203,238,200,78,151,129,136,42,140,15,163,195,173,83,246,40,243,141,8,186,6,17,98,222,232,103,74,51,188,84,145,12,122,182,37,184,66,217,217,1,28,183,86,245,63,193,247,16,187,53,123,125,30,72,220,243,52,41,171,108,123,78,88,76,206,21,77,61,248,140,83,238,61,91,113,191,13,100,221,210,181,155,210,71,98,224,189,254,239,223,182,229,128,159,62,29,129,225,196,115,85,114,47,89,23,110,116,118,63,22,140,59,194,10,94,241,94,136,149,45,151,101,41,233,2,235,118,146,35,15,155,35,87,179,28,110,34,139,10,116,14,44,33,254,104,34,214,159,118,181,116,23,222,85,42,232,52,218,167,39,193,18,90,54,183,40,70,218,100,54,60,186,158,187,224,90,219,13,101,14,216,69,29,103,188,25,206,24,171,139,38,94,201,60,212,18,186,190,115,104,87,158,112,63,9,99,93,169,32,35,144,224,198,165,103,121,7,183,29,31,202,145,72,100,162,16,23,251,26,212,65,221,20,228,225,146,250,137,245,67,96,202,164,14,42,27,129,132,38,204,165,197,157,97,89,179,222,76,160,123,202,4,109,53,40,224,177,251,33,10,222,248,24,96,53,251,87,69,54,121,147,156,113,170,74,250,208,36,50,64,219,66,86,22,82,192,218,35,244,90,241,89,189,58,197,86,44,54,218,19,66,199,19,110,127,83,233,190,177,103,16,149,128,135,36,154,209,255,136,166,6,106,91,53,137,209,109,147,207,95,225,108,11,66,76,106,141,98,237,165,206,155,18,185,40,34,11,253,128,30,165,173,89,35,56,145,198,76,33,232,132,125,129,41,7,119,34,213,147,243,76,215,177,126,169,189,65,33,42,182,70,160,108,27,133,105,10,119,11,59,247,105,52,118,97,198,17,219,13,103,55,195,170,1,12,127,20,12,131,160,1,84,50,178,189,207,77,67,115,221,104,119,82,44,113,52,33,178,153,139,196,76,99,231,158,177,172,4,227,208,200,205,69,192,163,59,156,207,133,184,208,50,27,195,66,53,210,124,137,237,59,162,7,203,164,3,214,117,250,30,240,60,216,91,186,242,154,45,108,62,72,100,15,1,196,143,8,115,126,13,15,226,160,180,114,153,40,100,129,19,134,230,114,223,35,166,123,85,133,222,111,14,154,10,234,228,51,251,204,225,53,210,211,8,215,49,183,138,91,88,189,165,30,65,171,68,128,170,119,89,219,19,159,145,87,118,83,13,175,123,25,240,91,235,210,195,149,226,65,208,242,63,139,226,91,70,156,253,94,173,200,252,24,132,211,50,194,203,255,238,76,123,146,19,8,127,117,224,18,225,209,126,136,185,184,95,127,40,182,254,233,200,23,35,140,33,72,220,224,139,117,42,136,16,224,248,156,233,176,135,240,51,175,199,6,102,248,181,162,158,243,117,246,204,94,121,128,37,12,120,160,249,137,137,32,87,84,12,195,16,142,213,133,143,76,130,252,239,133,7,212,203,73,255,164,128,193,53,217,121,208,141,30,160,212,43,187,50,198,188,176,224,237,246,48,35,193,243,60,46,76,248,144,107,159,174,200,159,216,180,171,185,126,71,72,249,254,174,93,217,78,170,184,108,64,153,31,14,191,178,226,117,120,71,155,6,180,131,159,134,198,85,140,5,42,10,92,195,50,224,248,95,59,183,140,177,191,246,32,117,43,31,255,213,210,11,78,56,113,68,164,180,60,224,34,130,198,93,183,156,130,48,184,233,90,73,255,171,95,10,139,7,130,20,203,128,184,208,248,139,152,115,164,39,21,16,205,43,84,200,86,121,175,154,160,107,7,48,185,82,177,121,120,252,21,151,182,204,238,173,1,253,74,41,63,160,9,246,12,58,2,252,129,160,85,236,65,34,128,207,40,104,42,71,124,234,73,80,250,253,62,9,205,66,162,126,94,126,213,164,41,24,163,87,112,46,107,248,50,237,82,233,29,250,46,34,80,191,35,222,183,121,22,182,178,80,6,17,135,195,3,104,198,173,184,97,105,132,7,41,166,198,180,123,18,28,74,163,194,137,135,174,9,247,198,245,52,198,205,184,99,221,240,232,248,234,242,0,116,79,56,106,78,198,222,242,110,119,135,82,135,218,251,200,187,233,83,25,239,149,235,90,182,37,217,87,255,158,107,14,68,15,97,54,230,101,139,174,207,255,167,33,111,16,7,87,184,80,122,233,52,137,18,117,213,0,132,254,141,168,13,164,226,208,118,37,113,187,32,13,137,216,60,61,69,219,198,124,44,71,1,20,47,47,228,165,42,88,97,100,217,2,214,90,94,12,200,61,179,93,60,186,151,118,242,11,75,109,77,226,191,107,115,173,247,126,233,124,217,87,15,13,209,54,198,76,241,233,244,156,108,175,231,119,126,195,36,90,181,182,221,75,244,230,158,170,19,239,213,20,106,142,234,42,106,156,244,151,127,35,73,16,67,147,152,142,59,14,20,184,58,226,209,80,149,206,159,19,75,27,69,52,191,105,189,145,154,205,190,110,156,147,62,50,139,118,88,196,109,214,201,82,135,91,84,12,107,71,170,175,82,142,163,138,95,111,223,167,253,239,3,28,225,161,88,166,36,151,2,161,200,234,67,179,23,48,180,7,43,82,80,171,17,45,20,68,126,122,146,163,44,212,55,216,172,61,117,26,58,111,127,6,88,7,99,61,101,109,166,109,34,129,213,19,212,93,19,78,120,64,14,97,85,80,198,116,23,141,169,176,19,153,15,156,238,210,185,254,156,165,29,62,219,220,113,240,157,182,190,97,197,211,253,83,3,170,76,116,253,144,200,5,69,155,247,60,25,219,111,127,57,114,120,136,208,19,234,15,155,121,190,164,213,247,124,146,198,84,95,0,7,190,12,251,35,167,206,44,87,79,203,12,107,210,93,114,36,37,8,193,17,252,74,178,242,229,166,235,195,206,112,185,212,174,207,179,122,95,214,4,136,131,37,85,186,199,8,138,248,0,169,72,234,103,174,35,27,82,154,185,186,52,192,71,26,37,216,128,73,105,19,237,147,99,90,117,220,14,2,229,21,34,224,101,158,98,96,172,95,230,226,217,186,126,123,0,193,161,244,205,145,221,67,168,172,128,119,172,249,157,21,222,216,210,144,251,13,42,203,173,201,39,235,194,238,145,27,241,186,67,89,209,135,105,134,195,49,103,56,220,239,143,214,71,146,99,172,43,94,160,101,250,87,150,188,54,11,108,83,111,191,136,75,173,109,103,132,60,5,18,76,4,89,175,13,79,107,211,27,29,67,173,175,67,238,104,52,233,111,210,21,54,100,83,245,5,216,22,44,230,31,77,85,59,175,72,153,166,37,37,2,199,213,185,122,151,113,154,243,250,34,185,53,159,111,12,28,67,162,167,120,33,153,125,13,7,190,106,84,66,30,192,190,250,33,233,157,207,242,36,136,43,175,67,130,249,146,53,135,28,77,179,122,95,126,188,63,11,188,177,109,200,196,138,188,38,183,56,12,72,15,210,74,70,92,137,70,210,244,160,85,115,62,150,61,149,147,82,38,107,129,214,156,154,168,61,208,180,46,39,159,194,23,141,196,160,216,211,33,100,174,123,233,220,93,162,39,52,67,131,65,190,248,146,132,139,95,254,141,5,235,126,88,4,18,244,67,165,150,88,49,252,151,198,153,31,156,35,105,117,245,127,254,70,56,111,144,51,202,46,158,199,225,101,132,25,190,169,140,15,127,59,88,183,47,170,241,210,54,207,119,189,107,53,20,31,99,7,116,221,214,59,0,52,140,47,71,226,84,34,110,7,199,139,195,59,132,170,27,140,63,119,255,11,142,21,212,27,77,70,187,97,154,235,128,128,223,219,227,154,161,204,53,99,234,198,249,6,12,238,229,90,82,58,114,123,243,196,206,46,144,203,32,166,162,52,26,193,47,114,6,34,20,10,91,252,179,136,112,47,246,143,148,10,165,31,141,159,97,103,175,41,209,193,119,166,244,35,119,161,133,154,207,117,145,202,123,100,186,108,38,26,148,101,45,149,193,213,30,100,92,49,6,121,66,98,61,233,103,12,114,118,103,140,213,97,52,137,241,112,249,149,247,153,10,122,203,139,210,61,45,152,133,4,164,136,73,189,6,140,126,165,20,127,0,166,190,90,90,91,193,174,101,132,45,41,13,99,169,42,118,167,26,201,105,63,33,84,116,190,182,186,0,210,230,1,107,87,129,67,187,107,53,189,246,90,122,64,182,166,148,153,145,27,132,105,137,144,114,121,97,3,155,26,63,99,61,35,9,183,167,212,10,24,232,92,77,175,149,43,155,253,246,222,30,24,156,77,61,36,92,85,123,231,103,171,215,8,96,220,4,214,135,112,192,213,198,87,33,71,223,95,142,7,74,67,226,144,92,80,16,173,170,18,162,46,74,151,38,27,91,69,121,19,253,207,17,168,66,83,41,116,42,18,165,125,74,96,186,143,229,128,165,16,55,62,66,16,176,27,202,171,63,72,124,193,70,240,42,20,90,8,185,40,238,231,30,61,193,205,142,84,76,60,184,173,153,21,11,95,2,253,20,54,142,238,46,153,200,95,169,163,229,168,139,96,60,214,142,92,255,244,224,161,166,152,10,120,192,89,215,140,136,166,98,114,138,25,83,51,124,105,138,92,131,84,187,207,240,177,176,129,241,28,123,254,210,36,158,55,199,65,109,69,214,232,39,44,204,154,30,171,106,151,171,223,110,191,199,10,14,239,124,153,134,226,128,131,183,94,141,86,177,162,156,51,121,131,163,99,2,14,103,128,136,151,115,67,77,157,253,38,20,210,138,51,64,121,226,88,16,177,141,62,171,147,162,210,155,21,159,186,85,212,6,98,237,34,58,129,186,50,98,194,229,56,24,12,174,229,154,190,87,246,44,159,232,13,180,81,109,9,55,74,108,25,224,114,9,58,244,67,208,207,130,170,151,140,141,153,209,150,172,145,56,41,157,86,231,106,133,187,49,197,11,130,61,181,238,22,34,37,150,70,126,185,88,149,202,254,234,214,107,203,213,241,54,5,249,187,251,108,12,127,215,34,213,119,25,44,81,37,236,31,180,102,239,30,59,189,207,5,44,47,107,181,46,70,3,90,29,247,210,83,247,173,35,107,127,115,243,242,103,25,233,82,126,44,88,247,198,223,252,12,48,249,82,132,214,134,72,48,63,119,225,178,5,141,9,20,166,162,58,214,170,41,178,202,143,185,63,179,240,133,110,16,122,207,193,219,65,78,113,99,141,9,232,125,84,147,118,233,20,96,148,93,126,204,13,250,137,71,250,0,236,166,236,44,243,175,208,210,71,84,36,69,250,192,97,209,44,168,227,11,32,240,176,130,236,68,17,88,34,64,28,207,130,195,67,90}, {249,143,38,134,43,78,23,238,19,23,233,68,136,215,68,233,124,221,32,219,159,39,38,22,103,50,220,168,39,81,57,119,100,243,120,179,25,214,185,158,212,70,0,219,22,37,100,5,189,95,125,195,193,36,217,84,119,111,177,121,6,25,249,215,182,242,188,58,48,152,120,29,202,20,146,233,120,50,81,97,222,68,22,238,194,226,209,22,149,178,20,153,150,149,231,60,122,4,49,124,213,174,157,60,79,81,7,70,98,189,32,159,131,249,125,98,173,79,229,137,182,107,104,106,255,104,0,146,14,204,143,10,236,183,242,111,151,71,247,173,41,50,71,43,58,155,136,94,237,120,47,181,228,227,12,223,81,97,98,244,81,224,235,214,244,71,159,12,11,96,155,106,143,248,174,236,227,219,138,175,167,94,213,90,129,126,12,41,125,125,146,191,80,97,95,187,196,162,234,36,23,229,14,222,100,86,187,116,208,110,216,139,151,131,120,107,234,6,84,91,246,182,52,21,26,169,123,208,33,105,139,209,61,216,51,213,42,41,184,10,232,145,202,224,57,176,244,26,2,238,232,96,38,147,186,51,204,77,45,92,147,243,19,117,225,63,131,133,140,100,134,120,95,162,139,228,139,133,166,246,149,165,178,192,58,165,47,115,91,245,182,97,246,92,12,137,19,222,105,180,113,97,101,160,133,66,75,4,186,55,124,220,131,77,161,14,45,52,233,38,131,139,153,230,247,191,85,0,204,130,174,79,245,135,123,142,234,106,118,157,130,205,244,235,97,235,69,121,84,133,10,10,95,47,21,96,237,60,194,242,34,62,154,146,206,133,77,221,43,56,183,133,51,47,115,163,223,62,111,113,232,214,128,76,182,34,235,225,162,8,220,75,83,76,229,62,96,229,171,251,249,0,44,182,238,143,90,172,74,77,240,0,163,57,221,218,180,145,122,235,10,152,121,82,249,177,72,236,234,237,73,128,63,147,190,212,196,220,145,118,82,51,221,175,79,238,118,37,106,197,223,110,167,16,248,72,223,232,92,219,163,74,19,114,103,204,182,236,11,191,91,236,187,104,169,10,213,85,125,136,203,186,77,172,223,111,35,182,147,153,120,221,137,235,231,51,69,157,110,14,242,75,181,184,101,25,205,204,230,84,9,235,173,218,24,80,99,142,182,247,31,80,72,191,125,171,237,90,184,215,167,38,153,239,106,201,139,198,211,178,209,179,38,91,197,138,93,14,21,254,123,39,119,16,103,249,13,41,120,117,202,84,31,216,244,225,184,85,221,145,116,153,3,215,150,105,46,8,42,89,173,219,159,99,0,152,49,47,162,87,232,57,199,124,175,33,90,180,27,19,60,100,152,39,253,206,55,238,94,156,16,177,207,113,106,80,154,219,75,137,200,89,233,85,183,101,233,22,192,56,137,0,173,196,252,77,227,229,182,132,1,233,71,55,130,137,99,209,2,255,190,176,20,14,227,162,130,63,154,102,32,152,38,207,64,172,55,120,176,239,176,247,250,232,215,202,142,189,168,74,86,188,94,70,205,32,196,115,136,219,199,28,84,26,23,175,6,126,208,25,19,184,158,155,79,76,49,130,253,188,64,97,82,213,176,104,141,193,190,155,115,24,78,159,111,16,32,247,214,248,226,165,162,229,136,16,208,85,104,48,16,10,34,150,176,211,106,245,140,62,51,31,141,137,65,29,146,62,143,44,37,250,203,8,215,82,194,105,194,63,9,112,133,160,79,168,114,92,41,31,136,88,200,166,62,77,9,45,51,71,24,20,168,135,222,233,98,241,115,29,228,21,62,246,64,111,151,51,64,63,147,194,112,96,82,80,120,188,26,245,153,2,143,111,165,76,26,44,203,24,4,18,119,140,94,133,230,75,113,13,223,210,11,231,177,33,37,196,248,108,16,70,233,214,163,24,247,94,210,105,56,248,252,128,132,139,135,2,195,187,15,208,135,67,140,181,3,139,128,231,25,89,120,139,179,237,54,203,90,151,47,43,149,4,81,216,142,63,46,24,246,116,186,186,160,203,71,130,7,167,221,53,101,226,158,90,138,139,185,134,156,75,36,92,70,4,31,255,29,35,11,89,127,80,254,170,54,134,122,34,116,72,177,181,191,236,83,68,157,226,135,20,248,83,74,145,130,107,194,151,11,155,118,2,126,9,151,128,103,236,167,12,66,39,4,153,111,45,78,214,129,65,154,174,187,178,88,2,114,11,31,253,107,82,188,191,125,134,62,244,50,41,206,49,217,113,13,66,229,49,176,122,56,193,240,84,222,220,99,33,90,243,121,250,221,248,9,133,219,130,214,21,163,40,72,93,48,9,68,14,5,4,227,116,163,191,135,107,152,238,100,157,129,17,189,133,166,36,241,103,127,210,246,22,99,209,19,250,72,216,78,21,170,236,209,67,55,211,105,12,232,88,120,97,98,46,254,6,133,203,168,25,185,42,222,30,235,185,89,97,78,213,60,86,206,156,200,229,87,35,113,61,4,229,220,75,169,160,47,10,168,204,8,173,139,240,36,179,228,171,110,142,104,194,34,22,72,209,247,180,65,242,170,92,38,169,164,134,188,116,212,252,46,198,41,219,14,52,76,234,115,206,95,84,75,47,76,77,166,174,138,223,156,111,180,136,246,55,30,146,45,39,81,141,238,73,245,182,197,179,134,103,73,14,235,231,211,214,4,222,235,86,27,32,75,119,122,186,232,253,234,186,110,31,245,71,101,213,244,197,229,224,131,110,49,234,90,93,82,37,47,9,17,44,207,197,175,40,154,112,138,59,23,3,227,174,65,41,154,41,184,81,17,166,21,219,17,175,173,64,124,60,35,209,103,67,100,238,167,247,188,176,197,23,129,87,237,230,57,148,26,230,244,243,44,240,29,243,154,233,108,246,153,32,18,123,158,68,22,48,197,29,222,202,235,120,64,100,246,113,22,47,101,79,16,209,125,63,95,222,38,37,148,70,241,232,239,93,157,101,19,139,183,159,246,38,62,128,183,103,255,47,170,220,96,209,248,123,143,193,90,73,104,107,20,76,80,19,234,113,79,135,95,212,156,2,142,124,9,28,154,8,134,72,7,161,220,227,152,71,155,83,61,178,241,213,128,253,42,205,85,86,48,15,226,132,252,173,251,219,45,242,59,190,5,90,29,93,56,54,190,231,224,245,194,11,121,169,206,100,164,251,6,200,103,230,39,11,249,4,154,150,45,23,201,59,34,42,229,18,134,238,5,124,30,174,4,19,201,166,44,235,16,101,16,180,69,237,242,236,134,74,224,64,33,36,56,177,141,80,171,164,28,46,168,161,236,63,23,161,31,149,189,253,217,51,40,7,183,196,107,17,108,215,108,239,152,152,183,130,130,55,23,236,188,205,56,159,121,205,82,173,190,46,102,214,31,159,65,63,221,198,67,105,87,201,166,255,68,44,166,162,75,172,52,185,62,146,63,149,159,44,214,46,5,191,171,183,243,225,197,81,239,113,204,203,180,155,14,184,224,97,143,191,198,214,50,144,212,57,219,23,120,234,63,119,255,197,42,109,158,101,7,161,119,52,106,33,83,28,28,116,15,83,212,13,221,252,161,44,46,133,32,191,132,151,220,60,208,172,242,156,30,20,107,246,202,54,173,237,106,180,30,197,18,225,135,94,158,15,192,255,1,144,69,168,32,219,228,122,129,96,108,202,8,108,13,213,232,126,225,120,12,51,22,186,134,148,211,165,198,249,70,103,58,14,204,28,206,122,236,145,211,251,139,168,36,229,16,113,81,169,17,215,70,20,51,91,86,21,88,167,15,65,170,169,8,103,72,44,195,16,71,213,172,96,78,209,210,127,51,60,36,158,99,71,89,89,44,16,79,40,3,32,29,169,88,164,24,219,163,71,70,117,175,102,236,213,23,72,175,233,212,74,10,189,57,2,65,43,60,233,62,179,44,175,48,25,212,209,129,146,196,101,5,57,78,40,223,143,120,170,107,125,212,110,63,234,2,30,70,110,24,4,97,221,141,220,120,223,199,121,23,204,168,110,143,94,20,183,146,38,135,31,87,55,44,163,235,89,71,56,14,18,16,191,116,157,237,49,120,143,56,36,111,165,82,28,238,224,120,63,63,246,24,97,227,140,106,170,216,71,200,149,165,112,177,71,71,166,29,229,7,58,155,8,99,121,64,144,66,111,249,108,74,21,113,112,237,54,106,55,62,121,166,116,10,212,72,159,88,234,19,156,37,253,7,11,101,136,72,99,229,139,103,138,174,85,198,55,80,39,228,91,134,253,38,66,89,119,47,52,166,47,255,186,27,89,10,182,192,139,34,92,253,153,243,40,7,1,117,174,177,3,48,116,109,220,32,9,105,32,14,196,103,116,160,173,125,135,18,136,100,130,231,86,95,132,151,230,32,31,30,209,215,90,153,97,65,238,1,173,29,104,27,139,128,96,83,211,104,66,187,57,241,18,87,5,86,45,43,194,42,118,41,183,148,52,21,255,38,52,237,4,19,126,202,191,124,251,90,197,57,19,237,101,227,196,32,201,157,101,134,145,32,198,92,244,69,58,142,197,221,204,82,130,51,146,142,197,243,20,30,29,152,122,181,98,212,29,126,70,128,0,60,60,72,189,173,67,66,159,64,108,104,217,208,72,98,39,220,35,240,251,250,230,5,202,4,52,138,22,249,5,8,80,232,179,80,18,139,171,133,110,104,132,96,90,117,133,92,215,56,189,182,171,34,69,26,138,62,238,134,240,87,214,179,77,87,215,102,52,12,54,8,188,37,102,155,103,70,6,253,243,231,29,90,42,250,22,44,210,56,199,186,237,251,90,106,122,64,55,204,191,72,85,93,191,195,128,92,11,68,224,154,199,92,34,95,42,68,101,25,243,219,196,208,98,245,164,226,82,220,145,67,105,151,169,108,143,170,192,43,53,129,18,168,24,107,57,255,245,139,160,169,207,166,14,199,177,96,190,142,242,195,47,69,55,235,91,217,241,34,95,131,127,180,51,53,101,95,255,122,107,216,232,218,120,130,180,245,252,8,65,27,83,195,13,173,12,132,9,105,124,41,196,204,72,58,188,121,142,49,178,185,174,79,196,95,133,1,177,143,254,112,181,29,149,213,96,92,96,86,251,198,71,48,254,148,95,37,26,50,101,148,110,37,52,133,37,74,221,178,180,142,121,178,114,123,80,91,43,174,0,43,51,116,237,196,147,229,208,136,235,209,7,116,102,163,31,5,217,53,255,254,223,46,129,152,224,218,117,150,25,221,55,77,15,44,31,163,120,177,244,83,237,147,124,96,222,10,145,49,13,168,72,51,22,105,39,228,201,182,183,129,240,237,128,92,36,31,169,214,2,14,32,150,252,143,49,176,18,65,14,151,229,119,79,5,245,139,246,94,77,244,171,208,189,118,157,128,230,16,106,100,166,253,46,31,117,159,99,51,141,149,121,83,2,135,49,168,22,228,172,25,151,96,135,5,254,42,86,52,2,210,146,117,38,14,71,158,6,4,166,95,252,43,232,103,192,39,103,255,34,56,240,186,53,173,198,97,159,212,244,206,78,176,6,74,252,31,250,161,241,24,126,246,104,42,212,75,210,108,200,168,143,227,210,163,134,65,250,216,214,33,248,241,206,42,122,222,131,126,124,193,130,212,80,13,230,41,60,49,85,185,161,46,43,165,233,161,181,236,27,17,96,148,119,38,42,97,34,93,220,171,97,161,30,95,72,131,221,219,142,178,210,71,37,99,48,163,239,112,247,117,15,247,251,28,199,3,211,131,20,76,103,164,187,72,226,43,30,38,23,47,151,81,150,225,219,245,247,242,59,138,73,17,189,53,228,179,71,55,200,113,141,203,74,121,22,76,201}, } ; static void test_decode_653xint32_impl(long long impl) { unsigned char *x = test_decode_653xint32_x; unsigned char *s = test_decode_653xint32_s; unsigned char *x2 = test_decode_653xint32_x2; unsigned char *s2 = test_decode_653xint32_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_653xint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_653xint32(impl); printf("decode_653xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_653xint32_implementation(impl),ntruprime_dispatch_decode_653xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_653xint32; printf("decode_653xint32 selected implementation %s compiler %s\n",ntruprime_decode_653xint32_implementation(),ntruprime_decode_653xint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_653xint32_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_653xint32_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_653xint32_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_653xint32_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_653xint32_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_653xint32_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_653xint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"653xint32")) return; storage_decode_653xint32_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_653xint32_x = aligned(storage_decode_653xint32_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_653xint32_s = callocplus(crypto_decode_STRBYTES); test_decode_653xint32_s = aligned(storage_decode_653xint32_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_653xint32_x2 = callocplus(maxalloc); test_decode_653xint32_x2 = aligned(storage_decode_653xint32_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_653xint32_s2 = callocplus(maxalloc); test_decode_653xint32_s2 = aligned(storage_decode_653xint32_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_653xint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_653xint32();++impl) forked(test_decode_653xint32_impl,impl); ++test_decode_653xint32_x; ++test_decode_653xint32_s; ++test_decode_653xint32_x2; ++test_decode_653xint32_s2; } free(storage_decode_653xint32_s2); free(storage_decode_653xint32_x2); free(storage_decode_653xint32_s); free(storage_decode_653xint32_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_761x1531.c0000644000000000000000000010563114705505543022365 0ustar rootroot/* ----- decode/761x1531, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_761x1531_checksums[] = { "1d9d419824942784f9810ac0967c6076bf6e4e800aa310466fd37e6292214244", "f6b6bd7f4f922914729cf66245a429da337b5b13f845154adecbd2406e12f045", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_761x1531_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_761x1531_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_761x1531_ITEMBYTES static void *storage_decode_761x1531_x; static unsigned char *test_decode_761x1531_x; static void *storage_decode_761x1531_s; static unsigned char *test_decode_761x1531_s; static void *storage_decode_761x1531_x2; static unsigned char *test_decode_761x1531_x2; static void *storage_decode_761x1531_s2; static unsigned char *test_decode_761x1531_s2; #define precomputed_decode_761x1531_NUM 4 static const int16_t precomputed_decode_761x1531_x[precomputed_decode_761x1531_NUM][crypto_decode_ITEMS] = { {1575,384,705,1524,1230,999,1755,-1527,-738,519,2121,-366,-951,-2223,-1308,-555,516,-2247,-1164,1140,2265,264,1893,-2184,642,-63,591,-2049,-888,-1008,-2187,21,2232,-1485,-687,-1632,558,-117,-921,1989,-2145,684,-2127,-27,-1845,1209,168,540,1926,1680,531,-375,-2085,-666,48,-780,1341,-2253,-141,-609,1890,1716,1929,-2073,2253,-1050,2196,2238,1644,1425,-471,138,2181,1110,525,-1398,-1530,1782,-1980,-1203,-588,393,-192,-1368,-1503,762,363,-1596,462,-627,648,-423,-843,-2058,-1044,1425,-48,-1287,1266,1233,-696,228,-597,807,-1920,-879,-1200,1164,366,2046,1680,2082,-2094,1068,474,-2052,-1473,-126,1461,1554,-753,933,-1200,549,123,2292,-1668,-627,159,-1407,705,1422,-1020,2010,1125,-2025,-693,-1707,-387,36,-1587,2088,-111,1683,-1602,456,786,135,882,234,333,1368,639,1398,1587,303,786,2109,-1050,1446,-54,-1983,1476,-1965,273,-480,-546,1446,-1662,849,423,-1881,1947,-1569,777,-987,-909,855,-777,390,249,1173,-318,147,1638,-1380,-72,-711,1677,-1401,1095,1638,2133,-909,1167,-888,1242,-216,2037,-828,2199,-1692,-417,1938,1491,-1989,123,-363,-432,1545,-108,1401,-1128,-2178,-1530,-615,-1167,-1494,2025,1494,723,-2046,1029,-279,-2280,2142,1797,-1143,-1692,-2073,1947,-1110,1815,-996,-1905,-1137,1209,-864,-1506,-555,1923,-1506,984,102,477,-2076,-1464,-1020,2052,279,255,-75,1290,-213,198,-1929,-2076,-612,-2085,1725,-1536,1698,1953,-843,1491,1524,474,1152,-2058,-84,1497,639,-267,1611,-1641,-1236,-30,1545,1860,2214,1422,69,-636,420,1983,1758,1908,534,2088,-243,-2109,-624,1713,-120,-804,1140,252,414,-1353,348,1131,1209,351,-2097,-648,-120,-2259,-219,-2064,204,624,2001,-2169,-930,1257,-480,1650,-1944,600,123,-303,-1605,-411,1254,2262,-1839,-2154,-2151,-1095,1377,276,-1821,-1416,-1983,-1983,-2127,1284,-201,2295,-549,921,-855,159,-963,-219,-2085,-717,-2100,-1938,21,1230,-747,570,1755,2118,-1842,309,-1698,-768,867,1677,1296,-276,855,-1692,-522,1509,2226,-2202,-201,-402,-1569,888,-147,-660,1758,-2001,-1344,1965,969,-897,1056,1278,1362,-1926,564,138,-1764,-2136,-1059,-2283,-870,-2280,396,-321,-276,465,-966,1596,-2055,-87,-1254,-2193,477,720,1002,-243,-1599,-2157,1431,483,-1875,-1050,-1542,-534,822,-2154,-855,-1506,774,-1752,-1899,1515,-1959,642,-48,2169,576,-777,-1224,75,708,1050,-507,-2175,1308,-2088,-912,-1869,129,-1206,1653,-741,-2202,-783,2190,-351,888,942,-1695,-1257,-1527,-2280,-1050,1254,-324,-1569,-342,987,-1890,-330,-1356,297,1260,1587,819,-693,1380,1044,-474,-1851,1461,-2214,1164,-786,-1083,-540,-1440,1347,2100,-1686,-723,15,1200,-2010,531,1194,897,540,-1719,1515,2172,-966,1890,1308,1665,-261,1311,1284,-1470,-1851,-843,2139,-999,1614,-270,-1605,-2205,984,-1191,900,2085,-1410,-21,1080,2295,-1839,-1710,1248,-2013,-1911,1755,957,1533,-2283,-1068,-327,1914,-549,-1089,549,78,1806,180,-204,1041,-681,-1437,1500,-1362,315,-756,-936,255,-225,2037,-2235,315,1659,1899,1446,1083,1569,-1110,237,-387,-1680,1110,-1179,-1785,-1641,1293,1320,1824,-468,1548,-351,2016,1758,1611,1881,-894,2049,-2136,-426,525,-588,-1269,-768,-912,-498,48,630,1284,-699,1179,-1557,-1584,1122,1536,900,-1005,750,-1026,-951,-339,-1305,636,762,543,-1350,1038,-2109,210,-1440,-351,-273,960,-1815,1578,-1032,-1920,531,-1356,-1512,-405,450,-315,858,-1182,-108,801,-498,513,1524,1266,-459,-1086,1974,-852,-1170,495,312,1803,-1188,1422,-153,-801,-1515,-141,-117,-1479,-1734,-1431,1200,1926,-876,-771,-288,-2139,588,2223,-249,-1143,-1677,-729,-732,-870,-99,-1368,-1935,-1413,-1239,738,1062,-1500,384,-1104,-519,360,-1779,390,297,-861,1242,1095,-369,39,321,-1398,495,-1548,-1323,-900,2181,-81,-153,-2106,1035,456,-1143,-1014,0,2079,-660,1845,1845,-1035,-1572,1758,-1818,1479,657,1533,-1401,2172,-558,-81,1359,2214,2046,-1608,1293,1197,135,234,-141,1041,-1380,-153,-534,-1155,-2175,1635,1092,276,1059,1473,-1374,-1269,-1785,2187,-1662,474,444,-1386,-540,-2103,516,-1074,-516,651,1374,-1317,-1422,-852,1005,-1056,810,-1530,2154,2133,-825,1458,-813,1464,-420,2169,-756,1611,912}, {-900,-1770,1947,-2238,198,375,879,-561,-1674,1293,2028,-1914,1920,339,-1623,-792,-1362,-2100,900,-1059,-1638,-333,627,2052,51,1125,363,-453,-633,-1464,873,711,357,-354,1581,-1446,-2241,1080,-372,1209,-1974,-144,-255,-1302,-1893,246,-1683,1893,-1305,-1359,-1926,1338,-1590,1155,-1536,-1014,2106,-1677,975,-936,-2253,-1821,-945,738,1692,123,-1638,-1902,-222,612,120,1731,1341,-315,-1164,1233,1458,2142,2094,1845,-249,-2235,1365,1362,687,-1245,1494,-2052,1818,-462,867,132,-1509,2154,-1335,-1728,1545,2118,-1800,-1263,-1278,1839,1695,-1821,-321,-744,-138,-462,-1011,-1083,1323,1095,-531,2079,-1386,1941,1059,-1434,1221,-1677,651,834,675,630,372,-1167,-558,-309,498,1011,729,-312,-1533,1680,-327,-1596,-90,-618,-219,2127,2205,1476,-48,312,-2037,-849,69,429,432,-345,612,-690,-1557,915,564,882,1953,-1221,-2235,-1299,-30,-1518,-498,-1956,-1911,63,-2160,681,390,-282,-1518,-408,1812,-369,630,1101,1803,-591,780,189,-1485,987,1335,-432,-720,-207,816,1524,2211,-1578,171,-243,336,-12,969,-579,-630,-363,-1050,1494,-573,-1611,1521,-402,1065,912,477,1329,-1143,225,-1524,-798,-2238,-645,690,717,-2295,453,-666,-1803,72,1968,1434,-1686,-1680,1941,2142,1659,-1545,-1950,708,1431,1041,-330,-93,-1623,1164,-870,1737,-1440,1425,624,-1059,2295,627,1515,-1707,849,540,39,-300,-825,576,2172,396,-2076,2049,375,-1878,-1764,-1524,-639,1626,-1143,-2031,-516,-1956,2091,948,-2043,1026,-1524,87,-612,555,-741,-249,-2109,579,-1992,1944,-963,-1023,-1704,-810,-1317,2202,-255,-2052,1947,2001,339,-1725,-642,-330,-2082,-1737,-222,1440,-1356,723,-1914,-639,432,-492,-378,-2283,2025,723,-624,486,-2112,534,969,1329,-2265,-246,1941,1839,1836,672,-540,-1974,282,-2148,-492,750,-2271,351,39,78,1050,852,1848,-1071,-1179,-864,1470,1692,-1047,1437,-1707,-1725,-762,504,-1803,399,1401,1458,-1620,-765,-1929,96,603,1431,1890,-2232,1956,744,321,-2178,372,-1848,-1257,39,-1176,1578,1179,1077,-1161,954,480,-51,1203,-1428,90,-1620,-1095,-9,-1134,1332,264,1806,-1263,480,-1521,-2010,-1593,1131,-1239,69,-75,1809,2079,-1344,2025,1548,621,2166,-1683,-663,1614,-1740,-1365,-759,1779,1878,1344,165,1155,-2019,-2148,-1203,1608,1917,1302,-162,1578,-444,-1944,-78,-672,-1602,-1836,-1305,-1788,1857,225,-390,639,552,1050,171,-1974,-1224,-1110,-756,912,-201,1512,-327,-381,1404,2025,1383,-1071,606,-543,1581,1494,-930,2250,-1119,57,222,318,-990,-1812,-1197,-777,1059,-1659,-375,1125,663,-1920,1806,285,2109,-1122,1710,-1956,603,1839,-1419,-1254,1512,1353,-582,1095,-810,-1926,-2202,93,-762,-1974,564,1305,1722,84,1089,-1953,-624,30,1206,810,-2040,1767,-486,1935,-48,579,1698,420,-1077,-990,3,-1464,-2142,1929,-2151,2214,-90,-2190,-879,-2025,-621,1068,1044,-1056,1062,432,1164,-144,-2040,-2280,-1761,-642,966,-222,-1536,300,699,411,-906,-1563,237,1782,231,-909,972,-1095,-627,852,1593,-1692,1974,717,-1359,720,-2001,-372,-1125,1437,1914,780,-1599,153,930,-1314,-1851,-2085,1542,966,-1545,2211,-2244,1788,-1779,-2088,-492,690,-462,-1623,-1236,-1590,1152,1017,-1776,-333,-228,-108,-750,39,-1995,-1026,-1743,-999,240,1806,1413,-960,-2184,387,180,1833,-315,2223,297,-1176,1689,-1179,603,-510,1617,2142,699,-57,-246,435,102,-1602,-543,-1884,1080,1953,-417,792,1827,27,-894,-117,93,420,459,1437,-2280,1377,-648,132,1581,-2103,-1323,1599,-102,786,-1578,-867,-1272,-441,771,477,1791,-582,-417,2169,-1353,-2160,-1920,648,1269,-546,-1347,-561,-1041,1215,-1161,-468,-723,-951,-669,-1689,2139,444,240,771,972,-366,-1290,-1287,-2148,1068,-741,963,-489,528,-1344,-1407,-1230,-405,-1089,1434,-1296,1887,-831,-2016,768,267,786,963,-30,1821,-1557,-330,1794,1368,1932,-759,942,471,-222,588,237,-213,1653,165,1233,-1392,1704,201,-2106,-465,1158,-1512,1359,-1482,-594,-2208,777,510,2118,-1944,657,-1629,594,2142,-1971,1710,-267,-1983,1377,603,723,-1791,2295,-1260,1578,-1506,-924,-783,2052,570,345,285,-735,-2091,1488,426,-891,-1644,1788,240,1746,-114,1560,33,-468,210,-1434,-1347,2172}, {1509,1194,657,-2172,-123,-1008,780,1602,-831,-2097,1278,-2004,543,1605,-1317,1998,-1350,99,-1140,-1911,-2019,-1134,-171,1365,-1056,207,717,-1221,-1017,-1512,-237,-162,-1569,867,2202,-1338,2127,432,432,-1533,1365,-1680,1224,-1305,666,1110,621,-2208,2202,480,1020,-1788,-2262,-36,-1554,-72,-90,1305,-1188,1137,-402,-183,1698,2178,-1407,2154,-291,-1347,903,1641,-1200,1503,21,-1935,-438,1158,-1923,-1953,2073,1158,-2073,-576,798,825,117,1818,-2106,-2172,1692,1896,-726,-1395,-1542,-66,-1164,2097,765,1890,-2178,699,1881,-303,1500,2247,2139,831,1836,-297,-1278,591,-1512,-102,477,696,-867,-459,-2166,546,-1287,2133,-930,234,-1914,-489,1113,1839,1755,1701,456,2034,-1239,-786,2007,1941,1809,-2268,1221,-621,996,-1110,966,-1446,1191,-2079,15,387,-885,1392,-1173,39,-435,90,1890,750,-2004,-300,240,-168,-702,-1098,-522,2226,-1884,-1059,1227,-651,-2112,-30,-165,612,-2244,1065,-135,90,411,1383,1212,-27,-216,-267,-390,1674,138,552,-132,-1677,-2154,-429,912,-867,-1986,-1722,882,1668,-2229,2067,-1164,1890,2073,-189,597,1398,-1824,135,-1722,-141,-729,-1137,-2265,1215,-312,-1131,-2229,-1278,552,-1965,-1407,-999,255,1467,1824,-1632,1983,-858,-201,-1644,642,-1833,-1419,1938,2076,1524,567,-1431,1581,-1662,36,-1242,-465,1500,2061,-1806,-1185,-93,-1779,1473,1104,-723,1923,-48,-2073,162,-2073,2061,378,2187,-1566,-1686,1272,1647,180,-2073,-1878,1059,834,1572,-576,1170,2052,1647,-2295,-1821,-2118,1365,966,990,-1476,-222,-780,-207,930,-315,-1314,1692,-1356,723,-1428,1080,915,-2295,900,-546,1485,1554,-1803,432,1632,-621,-2262,1047,342,-735,-306,-1674,-2130,-840,-141,-807,1806,675,-591,672,-225,-1209,-1713,1812,291,204,-141,-720,1341,1758,-1725,-756,90,972,-2199,-1662,1818,1503,216,-141,765,657,-1626,1584,1965,-54,1710,-2175,1782,279,159,1305,1536,-561,-318,-1515,2277,1701,-1104,-474,1071,-1722,-1602,-2190,-600,-588,666,-489,411,1584,537,-1164,1332,1020,-681,1596,-342,279,-918,1839,1920,339,600,-888,0,-1611,-648,-399,234,1182,1404,348,1578,858,-354,2151,201,2292,663,1611,759,1254,-1785,2205,1068,-357,-639,948,2133,1563,-954,-1950,1359,-816,-1764,2046,-675,1092,-420,-756,-636,801,-1305,-2106,-408,1839,1638,-375,-2085,330,-1638,852,2115,-1131,798,1338,1131,189,-693,-1314,1794,-1365,1299,1311,1224,1629,336,2181,-2163,-1038,-723,-405,2142,723,297,-2247,-1347,-423,-369,-2235,1794,-15,858,-1281,-1296,-2073,1095,-1731,-699,1389,180,-210,-627,261,183,2109,-384,-852,-849,753,522,-1008,1941,996,-546,-951,-129,813,-369,2262,435,273,-108,2010,2148,1998,-1497,327,-1725,813,-96,-717,-741,-687,-537,-810,-1926,1833,237,-831,807,324,-1785,-1629,1410,-879,1926,390,-714,1152,1710,-966,-321,-1359,-1671,2049,606,-2085,-2145,1521,-1224,-1800,1872,1848,1587,477,-645,-552,-1527,906,-996,858,-1668,-894,1059,918,-1152,219,2235,-486,-1104,-162,-525,2031,-393,-618,1842,291,-426,-1953,909,-1539,1152,-900,1155,285,210,1239,1026,-1050,777,2061,2160,-1323,-1059,1047,2253,186,-681,-1743,-2094,-1188,465,-1635,-1926,-1896,327,-723,1674,579,-1212,741,-2241,-1431,-1875,177,-615,222,-105,216,546,-84,138,399,384,900,-783,-2169,-1161,-2004,2055,-1143,-72,315,-2127,12,-1863,-42,-570,-510,-1203,9,327,1863,-1185,1317,-1764,-1071,-1440,-579,1527,-1995,213,2007,-960,-675,-2073,849,1089,-2166,-1791,813,-1038,-1290,1356,-1758,-153,2022,1128,540,-798,-1308,1407,-1794,2229,-1869,-975,399,1668,1257,-15,-1800,1767,1953,1374,1401,-1503,-687,-606,177,-285,1269,1236,-2226,-507,114,-1059,1986,-2286,1572,1836,-51,1776,2280,1614,-1938,2097,2211,2103,-102,492,-834,-2031,162,1950,-384,801,210,-642,-795,1317,942,2229,-1260,198,-1581,2256,-369,-1011,-1959,1824,1908,-1902,276,-2124,1905,-2154,-2202,423,-2205,669,-1254,-1266,-1938,-555,-1578,-1461,999,-570,1263,804,-933,-843,819,1881,1080,672,-1362,1431,-675,1224,-822,-555,594,-474,1149,2031,-1932,-1980,1842,-81,1659,-1806,-1185,438,915,-1194,-189,-2241,-1347,-132,2241,930,2157,-1908,-1821,639,-897,-774}, {-591,1875,444,2268,-1326,1224,-375,1656,894,-1119,-1629,-792,-609,-282,2001,-1023,1869,2013,-981,1548,-1341,-276,240,-1149,-1851,1755,-2217,-1578,-2157,1764,1356,-1374,-2121,504,1011,795,1296,2232,813,1884,279,-825,2076,171,2061,438,-213,324,-483,1086,1419,-1236,606,2184,-513,-321,1515,-744,279,1383,81,1626,-1431,1002,1965,-387,-2232,285,1821,-1527,-351,-2091,-1443,-2082,780,-1545,-2052,51,-147,-2289,564,1698,-1902,1608,-1479,-549,-12,1455,162,-1785,615,-1983,660,1257,1113,-1497,312,1887,-141,-360,-810,-1263,-747,-1101,1746,246,2262,501,-369,-1437,-717,-1860,2211,18,-732,-1791,-621,-1422,270,630,444,-1797,441,-918,1299,867,1131,-1218,-2157,2049,-1551,-657,1173,1653,-108,2073,-696,1401,1290,552,-2154,12,825,-54,123,216,1320,-108,1302,492,1914,561,1626,1536,2160,1926,1224,-1512,2085,525,-1434,-228,1161,-96,1986,525,-174,-1632,171,1524,-327,-1086,-1212,2289,-291,-2274,1176,-2136,-1590,-1848,1395,1032,492,-654,-1314,-198,-2205,-1095,-672,-261,-1977,2100,1338,-1908,1131,960,888,-1284,-669,1113,-831,510,-1449,42,2244,-834,558,1548,639,489,-1860,990,-618,-528,-1206,-6,132,2130,531,795,1758,-93,480,2241,-300,-189,-804,963,-2109,-273,1254,-336,-942,1305,351,-1128,2052,1137,498,-492,-78,894,-489,-375,756,-822,-702,1674,960,-1872,237,-2235,2175,-15,1494,645,2058,747,-1359,-1008,516,2058,-1713,-831,-672,-1527,1374,834,-1626,2238,624,-129,411,1287,-810,300,228,-810,2034,-1218,-510,-1728,1083,-300,1926,1809,-1653,450,1503,2127,393,-1236,1623,2265,-882,1680,-714,-2112,474,-24,1614,-234,-1014,-180,-33,1563,-408,1767,-981,165,762,1671,-399,1473,-1053,-1911,891,-999,1035,447,-1539,1554,876,1440,855,-1746,435,1878,-1248,-57,966,-1239,-1614,-1461,-1422,2076,-78,-1353,-1515,609,753,345,-24,1656,-144,-894,204,351,1338,2277,1749,2040,1518,-699,2154,570,1545,-981,1539,828,-291,-225,-1281,471,1812,24,1263,-1194,-1929,1902,1983,-1773,-858,-1764,-1116,-219,2094,-1119,-1818,1446,-636,582,174,1065,1104,1989,-2241,-150,-1941,750,-663,-2121,-1485,36,-435,162,1884,834,939,-354,1464,-1137,1887,1851,690,-2220,672,-603,-957,-990,-2172,213,1710,-2250,942,-123,-441,510,177,885,2256,-1851,-1017,807,-468,-285,915,-921,1149,1161,48,453,882,2058,1245,-1473,-2250,-1776,-1146,-2295,-1461,-1335,1302,-1572,-2034,-1266,-1137,2016,-1269,-1779,621,1296,-1665,900,1701,840,-1191,-312,318,-1590,1410,-258,-846,1740,1950,-1278,648,402,-1317,-1533,-2043,-315,2022,-1659,1872,-1425,-1404,1086,1974,-1149,1800,1590,-1239,-1032,993,1647,771,1617,213,582,1290,1941,2295,2199,-1716,1464,-318,-1554,-2265,1842,2121,1206,1434,1212,1638,-1197,2265,18,189,-1785,-1446,876,642,-606,1716,1914,-471,1902,-648,1137,-93,-1689,1536,1902,1824,2007,-411,-1722,-2226,-1074,207,2220,657,2163,1146,252,-84,-1176,600,-1569,-819,153,1953,-2097,-2202,645,612,-1800,-840,-966,-2013,-1803,-177,396,-1737,48,1029,-219,-1797,1011,-1911,-2259,-1011,-2202,654,-291,1929,-1947,21,-1008,903,1713,729,2235,-939,-1227,-1803,-1914,1332,852,1605,1539,-2259,-144,-1341,2175,-2082,1752,-1590,1680,-903,-153,-1737,918,-831,225,2202,129,-288,-138,-1194,-651,1014,1788,1944,1773,-453,-312,1074,-1083,909,1815,-990,-1008,1440,-1869,-210,-2268,1812,-2055,1299,-192,723,2226,-1935,-474,-309,-1353,549,-2244,1686,-2001,1209,678,792,-522,1143,-1026,-1944,165,-2277,-888,534,1074,-846,-1131,-1890,-894,1794,-2157,1500,903,-1209,1431,1833,1014,21,-1995,-1701,135,525,1413,-1299,-1101,816,-1953,1929,-945,1164,1470,1965,-390,-2001,2088,438,1071,993,-1446,1170,-1275,-2253,1053,288,135,1512,867,-1869,-558,1293,-1347,-489,1689,-456,-675,1797,690,2244,534,-1473,1758,-1413,612,-1317,-384,-267,930,-726,1323,384,-1281,306,402,-1356,1332,1533,153,2040,-795,-1686,-1671,-1101,1929,-2076,1902,435,-318,942,-1551,1209,-882,-30,510,1443,-375,-1623,-774,1248,-87,1725,1698,-1044,1311,366,-105,2118,861,-2106,-1482,231,-2094,99,-1545,-1620,891,-1176,1164,1785,2124,1422,1797,1884}, } ; static const unsigned char precomputed_decode_761x1531_s[precomputed_decode_761x1531_NUM][crypto_decode_STRBYTES] = { {153,11,37,70,181,49,72,245,89,28,71,187,75,40,116,16,159,199,137,230,205,116,198,192,158,46,171,48,118,212,86,14,209,86,233,137,169,213,116,77,185,180,33,233,187,165,89,105,93,171,168,4,69,232,52,174,94,6,243,213,254,233,73,245,106,181,162,178,66,79,99,242,254,49,172,147,199,36,87,68,227,195,135,236,91,216,204,124,76,127,188,173,42,149,90,207,190,89,18,23,237,227,240,146,109,201,194,15,65,245,79,52,34,212,87,207,229,248,63,179,91,170,47,200,231,222,29,221,84,26,254,20,17,42,234,214,54,245,243,14,115,124,47,14,89,93,15,148,174,5,166,40,252,136,8,213,71,207,218,7,26,89,247,63,168,67,29,80,7,156,208,134,86,201,99,131,93,204,129,103,203,31,62,133,125,189,41,190,49,76,1,216,222,182,41,189,128,109,241,129,25,22,118,36,236,226,184,0,207,12,33,198,50,31,1,137,183,179,68,198,183,107,197,207,79,90,234,202,59,163,114,59,200,41,126,32,150,19,184,33,143,65,249,195,241,225,124,233,44,74,32,86,232,80,21,165,89,131,201,199,34,80,7,41,108,65,58,1,132,222,97,43,126,22,216,225,81,224,162,34,126,228,92,119,217,81,159,19,139,252,22,130,118,85,130,195,180,4,53,129,136,239,117,113,105,52,145,183,175,220,177,15,202,133,42,77,183,62,16,254,134,27,18,237,153,87,42,156,194,211,186,161,50,188,7,49,10,137,80,145,197,47,106,143,109,41,131,45,48,142,13,236,21,217,103,46,240,179,22,63,223,146,172,214,133,124,204,166,9,182,35,105,190,59,16,247,123,117,97,147,102,93,171,183,98,42,18,181,232,249,221,167,139,23,244,37,107,225,138,116,63,201,55,28,12,104,250,111,71,229,1,184,209,109,192,14,196,89,5,78,146,146,19,38,51,236,119,88,13,70,249,105,183,149,211,237,184,73,149,187,98,86,108,185,118,206,157,220,35,153,14,110,28,120,34,196,5,114,62,87,222,129,20,67,168,201,235,215,155,46,162,144,221,142,47,7,109,135,239,116,143,75,44,130,91,227,216,20,92,16,199,30,62,164,54,188,54,134,170,191,16,48,222,47,140,199,135,87,33,206,188,82,73,185,72,224,232,19,19,205,171,138,150,222,79,124,122,10,137,110,147,183,67,63,9,25,223,31,248,10,91,218,109,29,29,146,58,209,233,36,164,110,195,127,227,209,73,254,142,251,45,220,172,243,91,134,83,46,152,234,16,65,188,85,24,219,219,192,11,135,140,38,86,81,107,123,70,141,249,4,192,47,40,141,18,216,182,142,37,49,166,63,37,248,156,19,66,147,77,96,76,173,100,255,114,80,169,245,96,218,224,237,156,182,64,211,90,172,12,132,160,202,77,54,120,135,0,28,28,26,233,235,59,191,92,126,252,169,24,121,16,140,157,30,199,151,21,212,230,87,164,242,211,48,149,17,26,209,93,100,43,109,65,60,100,232,214,26,37,18,58,191,43,3,138,197,235,130,84,135,126,141,219,31,41,85,235,159,3,6,68,197,126,192,179,236,117,65,188,136,57,241,98,38,252,6,192,220,106,81,170,188,234,5,151,20,141,143,165,3,254,197,69,5,60,66,185,224,168,221,100,163,16,28,193,120,67,175,218,131,157,28,15,185,121,18,222,89,225,79,40,26,188,69,184,119,23,213,239,250,2,9,215,195,68,24,11,137,165,212,92,115,236,185,136,155,5,32,65,66,156,106,95,192,39,244,209,224,66,250,220,132,231,54,126,109,202,141,148,50,4,117,87,32,235,26,214,113,255,81,205,220,230,25,255,42,149,4,215,19,123,135,129,198,33,185,104,54,81,11,240,234,2,76,176,132,101,105,105,192,70,224,84,89,23,50,138,158,241,77,7,64,103,66,125,208,17,227,146,240,239,123,55,238,15,90,208,74,78,254,29,40,215,115,115,241,6,237,63,137,14,178,31,99,74,203,118,64,122,48,27,13,240,188,240,205,215,217,128,50,171,185,112,113,213,96,8,13,187,143,169,39,217,99,154,121,125,122,94,117,32,70,249,46,107,72,80,125,101,229,254,134,252,194,57,134,1,86,168,68,122,134,192,238,21,202,216,249,254,128,84,200,200,215,72,104,190,246,84,58,210,242,161,223,66,27,47,216,217,79,138,200,231,200,66,233,47,127,12,142,79,98,155,122,217,248,19,190,19,22,10,61,124,195,204,16,23}, {102,39,221,216,115,38,87,23,242,29,21,129,202,120,193,142,209,133,25,177,106,49,251,136,50,212,117,166,181,105,248,3,115,76,198,239,216,129,0,195,70,245,12,90,108,81,15,143,69,237,105,28,121,224,200,164,210,155,195,142,119,211,33,85,29,7,29,3,244,234,79,244,236,88,219,86,16,10,138,152,228,34,38,205,100,186,207,179,62,213,176,153,117,48,51,218,144,20,151,244,202,165,127,4,24,66,85,71,28,235,84,228,57,9,187,167,141,126,58,175,215,186,0,76,127,7,168,20,70,22,57,155,195,227,149,78,37,152,116,197,217,207,145,147,179,114,251,44,59,192,115,103,222,228,13,110,111,134,23,125,112,164,116,207,64,80,32,84,90,17,8,195,113,114,126,156,63,155,104,237,202,211,193,109,2,42,38,154,17,107,16,159,147,205,150,160,222,29,5,211,173,171,122,190,190,103,3,17,144,32,82,234,253,0,97,238,31,174,32,241,26,177,210,95,97,48,56,68,142,140,58,60,105,139,25,2,220,93,53,41,136,147,232,73,190,46,10,88,227,209,55,134,23,149,179,213,48,22,73,72,158,128,60,239,192,24,72,11,193,68,113,175,35,243,151,221,58,118,248,208,54,196,164,124,83,234,3,202,237,231,116,209,33,72,154,35,175,89,42,23,236,39,53,84,229,156,155,189,89,64,165,111,74,29,88,204,234,204,163,67,242,43,98,89,84,65,242,200,149,76,44,241,87,178,191,76,208,249,117,21,75,19,23,79,205,39,43,122,129,53,238,190,32,183,245,85,102,119,166,189,118,130,224,89,156,234,166,61,232,241,2,164,180,54,151,208,16,221,18,243,171,164,97,135,162,255,209,213,185,216,89,85,171,151,150,208,5,44,255,91,246,255,154,163,61,234,64,246,146,23,208,17,41,158,113,204,81,226,92,251,112,39,126,91,93,154,253,41,79,140,64,221,126,225,3,219,194,27,220,185,211,63,233,123,203,253,57,45,6,1,46,139,31,43,1,153,133,136,231,98,205,193,57,235,170,180,13,106,81,99,173,152,201,88,76,234,111,160,23,138,159,230,41,7,174,39,49,132,20,75,127,80,13,71,19,78,7,146,62,213,186,181,27,233,57,226,100,157,191,12,151,142,221,170,211,82,111,86,144,209,171,198,39,253,176,133,118,182,201,47,177,213,94,58,55,120,174,10,239,117,195,209,73,46,187,44,65,39,196,114,73,4,15,237,205,40,219,94,132,54,237,43,147,83,249,140,95,127,90,199,184,48,157,127,185,187,13,149,103,64,40,43,194,98,89,11,142,200,97,52,197,229,236,176,102,49,234,45,126,191,50,237,212,131,4,77,30,81,35,246,44,241,123,80,53,48,192,49,117,166,217,25,189,59,113,236,151,134,219,143,241,249,210,215,112,249,96,116,4,200,20,200,185,100,182,255,95,56,72,154,43,207,212,159,24,168,36,83,147,203,112,234,78,91,221,165,52,121,113,144,112,88,90,22,132,161,170,75,83,72,199,187,135,1,76,118,173,194,14,148,250,172,11,230,183,37,83,150,20,155,101,241,139,220,90,222,175,216,88,168,55,157,208,228,202,190,17,156,72,166,101,35,65,36,178,245,69,7,65,12,82,93,105,35,180,202,154,19,54,195,0,252,128,178,25,194,25,27,76,75,87,28,97,146,93,191,122,22,238,39,16,106,88,1,237,20,243,123,109,214,251,164,31,254,156,47,40,208,247,117,94,13,180,40,222,15,161,137,78,187,254,153,148,197,177,164,222,6,179,9,205,164,92,5,142,33,5,67,195,179,3,41,98,190,74,179,242,166,207,34,153,95,154,231,75,87,210,130,71,89,140,63,34,105,126,241,193,135,254,90,221,231,118,25,18,141,122,3,252,227,185,39,165,246,137,111,35,168,250,16,130,247,184,229,93,87,89,149,11,96,83,209,229,189,148,44,44,37,61,156,112,100,18,74,74,27,243,69,101,165,89,41,181,3,4,37,38,88,58,65,207,251,197,18,239,207,85,123,72,181,192,60,255,221,10,153,112,200,217,189,212,254,216,118,162,56,21,180,201,28,207,27,109,17,64,186,38,232,72,73,16,245,146,241,98,199,125,12,250,42,110,228,21,48,251,249,245,144,65,174,132,170,164,44,213,77,202,91,229,229,173,150,72,186,89,132,246,166,6,2,20,238,1,239,214,85,123,202,42,202,234,96,253,5,173,160,1,14,236,72,246,137,8,91,27,107,162}, {61,11,115,162,158,194,78,83,165,1,205,240,83,238,145,203,92,160,1,151,195,35,176,59,202,4,86,126,111,25,183,20,49,112,138,179,172,240,66,53,25,183,93,114,232,47,120,225,189,169,120,95,108,95,137,190,35,232,172,124,80,189,134,66,102,141,6,43,174,146,184,34,140,213,68,229,160,100,116,72,224,125,226,126,217,49,73,148,205,129,164,162,203,9,225,172,86,176,58,250,185,203,185,128,48,1,119,143,184,212,12,55,125,209,149,212,26,237,46,173,125,28,36,49,221,75,238,77,252,251,199,181,230,174,255,234,103,220,146,97,79,82,147,40,46,198,221,227,55,73,71,140,190,30,1,231,160,5,25,141,89,185,214,1,161,63,196,158,245,111,141,194,179,127,240,178,167,56,24,25,69,83,36,197,201,225,87,156,137,205,168,156,132,149,99,108,223,94,195,11,166,128,33,110,15,108,1,15,139,159,47,94,42,96,74,179,69,52,9,73,253,190,33,16,12,30,123,129,219,190,24,166,136,142,24,10,74,23,135,150,215,214,210,214,248,130,151,142,159,155,196,253,84,155,4,158,144,122,136,105,90,44,116,2,205,41,42,178,115,31,31,170,36,143,141,53,64,104,178,65,56,164,121,218,197,130,14,76,226,46,117,165,114,116,205,129,78,161,176,38,149,42,231,51,229,160,108,88,238,185,241,6,66,49,210,145,108,24,66,175,0,134,143,30,46,9,191,162,183,144,27,106,38,165,189,214,197,132,196,98,115,30,89,22,185,99,161,39,153,99,124,0,198,225,148,244,21,4,153,164,21,43,158,119,202,78,254,117,243,69,122,36,105,169,185,230,73,55,107,184,205,229,212,250,244,154,205,5,224,61,20,191,93,165,176,105,189,99,124,190,240,100,188,213,180,231,39,84,242,62,54,176,154,126,142,29,9,4,247,146,46,143,147,91,187,18,96,127,42,1,183,211,65,81,222,246,143,159,139,147,3,22,36,223,62,144,105,95,195,163,95,206,184,50,18,154,40,199,55,186,86,107,64,232,247,246,24,244,110,65,80,122,122,203,240,155,243,6,239,99,97,240,100,212,244,175,148,99,30,65,189,7,32,32,65,141,248,234,65,84,215,139,34,146,174,112,253,253,204,136,211,52,209,121,39,5,120,150,121,224,112,187,174,76,174,163,41,169,172,229,97,78,17,227,178,179,99,25,87,23,128,204,153,110,69,131,201,148,60,41,135,41,174,154,78,118,20,92,177,158,210,157,219,21,135,176,96,109,239,81,211,223,119,193,97,152,29,148,170,168,69,99,15,57,216,14,0,233,11,141,123,182,28,123,85,132,128,17,105,77,38,169,181,236,119,26,19,3,195,157,45,58,239,35,117,74,199,120,7,14,8,207,7,152,111,208,47,37,11,215,113,247,167,5,235,104,218,11,146,24,3,42,143,241,186,198,220,88,178,137,237,77,199,130,132,166,12,40,195,219,161,211,250,3,93,13,162,84,32,84,95,215,250,150,107,209,236,206,149,114,187,167,104,172,19,125,230,170,201,9,100,78,222,148,84,144,29,62,83,196,77,52,222,122,226,43,26,231,234,17,81,25,98,61,227,32,119,14,88,219,13,129,229,31,245,33,98,48,107,67,95,118,137,218,199,110,204,167,26,152,18,5,130,220,241,229,193,255,208,246,248,218,47,141,12,1,0,193,175,216,34,81,107,43,11,20,141,188,8,194,101,251,66,45,255,247,164,74,3,43,88,167,53,7,191,164,68,24,129,176,101,172,74,197,147,86,231,162,158,120,172,88,34,217,29,59,127,16,214,229,96,173,23,244,237,14,17,157,203,149,203,97,125,139,5,138,123,188,211,133,189,154,182,176,238,65,241,85,195,24,19,222,192,159,251,151,162,25,145,99,124,195,101,126,216,49,17,231,54,37,213,23,189,171,25,173,43,184,36,22,166,41,101,252,215,79,87,127,228,123,119,205,50,200,49,144,154,66,209,92,107,212,210,35,207,113,141,151,162,211,110,172,153,68,100,157,148,30,169,94,163,135,182,153,53,94,34,65,231,40,245,161,67,220,146,51,234,130,145,177,147,159,51,181,3,84,240,102,38,135,114,166,254,129,193,93,191,129,72,157,138,74,107,91,217,159,241,33,213,219,202,22,136,194,43,210,111,122,41,126,68,111,15,199,34,206,231,41,191,252,17,168,99,55,3,136,14,29,250,199,100,63,218,130,67,5,37,71,238,138,4,15,13,45,185,157,31}, {18,220,90,199,127,21,23,80,96,177,25,215,54,111,193,194,1,48,52,215,200,163,225,169,89,241,158,120,221,104,145,169,32,73,92,52,185,31,11,194,186,26,178,143,225,194,185,62,43,53,55,62,184,187,236,57,207,193,127,76,83,153,24,115,230,78,208,105,5,34,42,121,205,120,138,227,42,82,124,88,170,47,55,114,89,177,145,121,124,2,37,242,160,78,223,205,54,69,144,238,165,227,102,178,178,46,174,132,90,144,241,21,227,187,20,222,83,217,81,230,32,218,98,60,124,232,250,203,221,215,82,58,29,104,92,179,52,10,158,160,162,105,199,247,40,155,106,246,222,210,172,230,212,3,178,41,240,30,182,124,237,208,135,99,203,95,117,174,193,28,200,60,174,7,247,11,147,36,114,169,34,80,64,119,39,44,106,5,15,68,110,87,137,27,163,254,225,109,18,147,91,116,102,217,63,213,236,19,39,132,9,120,75,60,252,41,204,66,174,127,214,250,164,113,250,107,5,203,135,208,144,158,232,70,80,112,123,195,38,25,10,39,158,134,137,23,184,72,192,27,245,6,249,225,234,118,212,210,13,205,236,170,91,185,36,221,210,230,152,11,252,62,251,144,62,42,61,121,208,32,68,17,203,60,163,18,114,208,41,60,30,11,36,238,10,222,207,128,19,146,187,186,9,125,127,106,82,23,138,201,253,127,157,116,95,69,53,122,55,113,221,192,79,104,109,31,40,213,16,244,136,134,211,182,254,37,217,165,193,223,66,139,95,63,128,106,217,229,126,175,57,213,165,125,227,212,156,12,225,187,14,246,175,95,93,176,94,249,61,61,39,53,51,244,251,60,35,240,139,51,114,123,198,219,117,202,16,26,183,179,165,156,51,202,139,55,48,89,139,154,82,161,144,221,229,158,137,59,155,237,172,135,148,169,189,43,48,116,11,7,212,81,39,234,240,87,19,248,248,118,17,219,5,154,105,114,46,162,64,46,144,250,231,164,29,121,96,31,186,191,138,199,204,213,130,60,78,153,68,65,205,44,215,20,220,33,143,73,173,163,95,143,13,73,181,48,153,62,218,117,24,16,22,229,90,36,232,193,23,66,88,4,72,183,216,62,71,135,192,177,97,26,142,211,49,15,19,142,83,160,44,253,103,47,114,227,59,47,155,187,237,66,218,178,62,131,16,117,104,245,46,72,65,227,39,76,148,72,113,85,54,237,84,206,95,191,49,150,238,8,181,248,129,130,193,86,219,218,110,134,24,165,71,83,157,71,0,122,88,26,10,98,228,151,130,183,219,184,200,63,15,143,137,182,14,134,132,145,56,56,8,54,124,83,186,239,64,179,104,157,115,238,34,247,103,185,136,239,242,202,194,37,4,192,71,132,48,0,143,18,185,21,152,64,47,159,226,59,26,85,236,158,185,0,245,90,97,10,152,67,121,167,221,249,153,250,183,19,80,198,225,246,186,106,68,28,114,188,41,253,47,33,133,186,170,255,100,192,22,52,160,65,159,75,160,226,234,54,108,43,25,212,50,188,77,92,53,93,231,124,124,210,230,188,52,148,197,111,174,63,111,218,95,73,180,114,178,111,245,213,36,204,85,181,220,124,254,26,41,165,253,88,135,246,142,0,46,28,221,15,142,112,133,18,55,156,104,170,255,220,204,16,179,212,199,169,48,180,135,249,43,145,61,115,85,80,128,163,88,145,247,162,46,199,93,175,39,0,206,209,63,87,27,11,140,127,200,25,97,152,101,81,124,78,139,139,147,93,139,69,23,17,102,104,211,44,39,120,107,107,16,38,41,225,30,2,146,18,85,172,131,186,118,127,229,201,232,196,239,243,96,156,128,133,149,145,233,202,138,140,26,92,109,103,190,113,121,67,6,238,170,123,164,120,170,165,86,105,240,170,145,13,88,226,195,128,133,63,131,191,61,191,172,31,251,104,122,126,102,235,164,198,18,142,61,159,10,237,201,140,186,116,135,173,65,151,252,244,193,222,67,160,224,153,33,182,108,127,31,1,67,74,119,242,91,55,164,227,178,251,8,16,229,197,74,75,180,25,108,176,25,226,232,173,108,229,106,182,115,191,247,87,193,155,147,161,132,126,102,143,14,68,56,174,185,15,218,238,24,71,31,218,36,172,173,177,136,99,20,203,196,192,79,63,31,0,62,200,194,224,212,21,176,66,110,107,31,192,206,249,10,225,83,97,167,172,255,163,202,241,149,75,70,70,104,140,79,103,230,143,180,114,102,111,3,0,148}, } ; static void test_decode_761x1531_impl(long long impl) { unsigned char *x = test_decode_761x1531_x; unsigned char *s = test_decode_761x1531_s; unsigned char *x2 = test_decode_761x1531_x2; unsigned char *s2 = test_decode_761x1531_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_761x1531_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761x1531(impl); printf("decode_761x1531 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761x1531_implementation(impl),ntruprime_dispatch_decode_761x1531_compiler(impl)); } else { crypto_decode = ntruprime_decode_761x1531; printf("decode_761x1531 selected implementation %s compiler %s\n",ntruprime_decode_761x1531_implementation(),ntruprime_decode_761x1531_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_761x1531_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_761x1531_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_761x1531_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_761x1531_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_761x1531_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_761x1531_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_761x1531(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761x1531")) return; storage_decode_761x1531_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_761x1531_x = aligned(storage_decode_761x1531_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_761x1531_s = callocplus(crypto_decode_STRBYTES); test_decode_761x1531_s = aligned(storage_decode_761x1531_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_761x1531_x2 = callocplus(maxalloc); test_decode_761x1531_x2 = aligned(storage_decode_761x1531_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_761x1531_s2 = callocplus(maxalloc); test_decode_761x1531_s2 = aligned(storage_decode_761x1531_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_761x1531 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_761x1531();++impl) forked(test_decode_761x1531_impl,impl); ++test_decode_761x1531_x; ++test_decode_761x1531_s; ++test_decode_761x1531_x2; ++test_decode_761x1531_s2; } free(storage_decode_761x1531_s2); free(storage_decode_761x1531_x2); free(storage_decode_761x1531_s); free(storage_decode_761x1531_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_761x3.c0000644000000000000000000003617114705505543022140 0ustar rootroot/* ----- decode/761x3, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_761x3_checksums[] = { "4c0c26f31b56408c408d7cc98224222b70725c2aaa0ea3faa44579acf5c624de", "31ec97bfbababd015c022fc21d5f56f772f99978811edb78222560b43668194f", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_761x3_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_761x3_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_761x3_ITEMBYTES static void *storage_decode_761x3_x; static unsigned char *test_decode_761x3_x; static void *storage_decode_761x3_s; static unsigned char *test_decode_761x3_s; static void *storage_decode_761x3_x2; static unsigned char *test_decode_761x3_x2; static void *storage_decode_761x3_s2; static unsigned char *test_decode_761x3_s2; #define precomputed_decode_761x3_NUM 4 static const unsigned char precomputed_decode_761x3_x[precomputed_decode_761x3_NUM][crypto_decode_ITEMS] = { {-1,1,1,2,1,2,1,1,2,0,1,0,-1,-1,2,1,0,1,1,0,-1,-1,2,0,1,2,2,0,2,-1,0,1,0,2,1,2,0,2,2,-1,2,1,-1,-1,2,-1,0,1,0,2,1,-1,-1,1,2,2,1,2,-1,1,2,2,0,-1,-1,0,0,1,2,1,0,0,2,1,-1,1,0,2,-1,-1,1,2,0,2,1,1,1,-1,0,0,2,0,0,-1,-1,0,-1,2,1,2,2,1,2,2,1,-1,0,1,-1,2,2,0,-1,-1,2,-1,1,0,2,1,0,0,2,2,2,1,2,1,-1,0,2,2,0,1,1,-1,-1,2,-1,1,0,0,2,0,1,0,0,1,1,0,2,0,-1,0,2,2,1,-1,-1,2,-1,2,0,0,0,-1,1,0,0,-1,0,2,0,0,0,2,2,-1,0,0,-1,1,-1,-1,-1,0,-1,0,1,0,2,1,-1,1,2,-1,-1,-1,-1,0,1,2,0,1,-1,0,1,2,1,-1,-1,0,0,1,0,1,-1,-1,0,2,2,1,0,1,2,0,2,2,2,0,0,1,0,-1,2,2,0,0,2,-1,0,0,-1,0,-1,0,-1,0,2,-1,0,-1,-1,2,1,1,-1,-1,0,2,1,1,1,-1,0,0,2,1,-1,2,0,-1,0,0,1,1,-1,1,-1,2,2,0,-1,1,0,1,2,0,2,2,-1,2,2,0,-1,2,2,-1,1,2,2,-1,2,2,2,0,-1,-1,0,-1,0,1,2,0,2,0,1,0,2,1,0,2,2,-1,-1,1,0,0,0,-1,0,-1,2,2,2,0,-1,1,1,0,0,1,2,-1,2,2,1,-1,0,1,0,-1,1,-1,2,-1,-1,-1,1,2,2,0,2,1,1,2,1,2,0,1,-1,0,0,0,0,1,0,0,-1,0,-1,0,-1,0,1,2,0,1,-1,1,2,-1,-1,1,1,-1,1,2,1,0,-1,2,-1,-1,0,-1,-1,-1,1,2,1,-1,2,0,-1,2,1,2,-1,2,2,-1,2,2,0,1,0,0,2,1,-1,2,-1,1,2,2,-1,-1,2,-1,-1,2,2,-1,1,-1,2,-1,0,-1,1,2,2,1,-1,2,1,-1,1,1,1,2,2,2,1,2,-1,1,2,-1,-1,1,0,0,0,0,0,0,-1,1,2,0,1,2,-1,0,1,2,1,1,1,0,1,-1,1,0,1,1,0,-1,1,1,0,-1,2,1,2,0,-1,0,0,1,2,1,1,0,0,-1,2,2,2,2,0,0,2,0,0,-1,0,2,-1,1,-1,1,0,2,-1,-1,1,-1,-1,-1,1,1,0,2,-1,1,2,-1,0,0,-1,1,2,-1,0,1,0,1,-1,0,-1,-1,1,2,1,2,-1,2,0,-1,-1,0,2,0,-1,0,2,0,2,2,-1,-1,2,2,2,2,-1,0,2,-1,-1,-1,0,2,2,2,1,-1,-1,0,2,1,1,1,1,0,1,2,-1,0,2,2,0,0,2,1,2,0,-1,0,0,1,1,2,-1,-1,1,0,-1,-1,-1,-1,-1,2,1,1,1,1,2,1,1,2,2,0,2,2,0,-1,2,0,2,2,-1,1,2,2,-1,0,0,-1,-1,0,2,1,1,2,-1,-1,0,1,-1,-1,-1,0,1,-1,2,2,0,0,-1,1,0,0,0,1,0,2,1,-1,0,-1,-1,2,2,0,0,1,1,1,0,1,-1,2,2,2,0,0,-1,0,1,0,2,2,2,0,0,2,2,-1,-1,2,1,-1,-1,2,-1,0,-1,-1,2,0,-1,2,2,-1,1,0,-1,2,-1,2,2,0,2,1,1,1,0,0,-1,1,0,1,2,2,-1,0,-1}, {0,0,2,0,-1,2,-1,0,-1,-1,-1,-1,2,-1,1,-1,0,-1,0,1,0,-1,0,2,-1,0,2,0,0,2,1,-1,1,1,0,2,1,2,1,0,0,1,-1,1,2,2,2,2,1,0,2,2,2,-1,-1,0,-1,0,-1,0,0,0,-1,1,0,-1,2,-1,2,-1,2,-1,2,0,0,-1,1,-1,1,2,2,2,1,2,0,1,-1,1,-1,0,1,1,-1,0,0,1,2,-1,0,2,1,0,1,0,-1,-1,0,1,1,2,2,1,2,1,0,0,1,0,1,0,1,0,2,1,-1,0,-1,-1,2,2,2,1,2,2,2,-1,1,-1,2,0,2,-1,1,2,1,0,0,-1,2,-1,-1,0,1,0,-1,0,2,0,0,0,1,0,-1,0,2,-1,1,0,2,1,-1,2,0,0,-1,1,-1,0,-1,2,-1,0,1,-1,1,-1,1,0,-1,2,1,2,-1,2,-1,0,1,1,2,1,1,-1,1,-1,1,1,2,-1,2,2,0,1,1,0,-1,-1,2,2,-1,0,0,1,0,-1,0,2,0,0,0,-1,1,1,2,-1,-1,2,1,0,-1,1,0,0,1,2,2,2,1,2,-1,0,0,-1,0,2,0,1,2,0,0,0,0,1,-1,0,-1,2,1,-1,0,0,-1,-1,0,0,2,-1,-1,1,2,-1,2,2,0,0,2,0,2,1,-1,-1,0,-1,1,2,2,1,0,1,2,1,2,0,-1,-1,1,-1,1,-1,1,0,1,-1,0,1,-1,2,-1,1,1,1,1,1,-1,-1,0,2,2,-1,1,0,0,2,0,-1,0,0,1,1,0,1,-1,-1,-1,1,1,0,0,1,0,2,2,1,0,-1,0,1,-1,1,2,-1,-1,-1,0,1,1,2,2,0,-1,-1,2,-1,-1,0,0,2,1,2,2,0,-1,1,2,-1,-1,-1,-1,-1,2,-1,2,0,-1,1,0,1,2,0,1,2,-1,0,1,2,1,2,1,-1,2,-1,1,1,2,0,-1,-1,-1,1,2,0,1,2,2,0,0,1,-1,0,-1,-1,-1,1,-1,1,1,1,2,2,0,2,0,1,0,-1,1,-1,0,2,-1,1,1,1,2,-1,1,0,2,-1,1,2,2,1,1,0,2,2,1,1,2,2,0,0,1,2,1,-1,2,0,-1,0,0,-1,1,0,1,1,0,0,1,1,2,2,-1,0,2,-1,2,-1,1,0,-1,2,-1,1,0,2,0,2,-1,0,-1,-1,2,-1,0,2,1,0,1,0,-1,1,1,-1,0,0,1,1,2,0,2,-1,1,1,1,2,1,1,0,1,0,-1,0,1,0,0,-1,-1,1,1,1,1,0,2,2,1,-1,-1,0,-1,2,1,-1,0,-1,0,2,-1,2,2,-1,1,-1,2,2,2,2,0,-1,2,0,-1,2,0,1,-1,-1,2,1,2,2,0,2,0,2,1,0,-1,0,0,2,-1,2,2,-1,1,1,2,0,0,2,2,1,2,2,1,0,1,2,2,-1,-1,0,0,2,2,2,0,0,-1,-1,0,0,2,2,0,-1,2,1,2,0,0,2,0,0,2,0,-1,0,2,2,-1,-1,1,1,-1,0,1,0,2,1,1,2,-1,0,-1,-1,0,-1,0,2,1,1,1,-1,-1,0,-1,2,2,2,1,1,1,1,1,1,2,1,0,2,-1,0,0,0,1,2,-1,2,1,2,2,-1,2,-1,2,2,1,-1,1,0,0,2,1,-1,0,0,1,0,1,2,1,0,1,2,-1,0,-1,2,1,-1,1,1,0,0,-1,-1,0,-1,1,1,1,2,0,0,-1,1,1,1,-1,1,-1,1,0,2,2,1,2,2,-1,1}, {-1,-1,0,0,0,0,0,-1,1,0,-1,2,-1,0,0,-1,1,0,1,-1,-1,1,-1,2,2,1,1,-1,1,-1,1,2,1,1,2,0,2,1,1,0,1,-1,-1,2,0,-1,1,-1,1,1,1,-1,1,1,-1,0,1,1,0,-1,-1,0,-1,2,2,2,-1,-1,2,0,1,2,0,-1,1,-1,2,1,2,-1,1,0,2,2,2,-1,2,0,1,0,0,0,-1,0,2,1,2,-1,0,1,0,0,1,0,2,1,1,-1,0,-1,1,0,-1,2,0,2,0,-1,0,1,-1,0,1,2,2,-1,-1,-1,1,0,-1,0,0,0,-1,2,-1,-1,1,-1,1,0,2,1,1,0,2,0,1,-1,-1,0,2,2,2,-1,-1,-1,-1,-1,2,0,0,2,2,1,-1,-1,2,-1,0,0,1,2,1,0,2,1,-1,2,0,1,0,1,0,1,1,2,-1,1,0,1,0,0,0,-1,0,-1,0,-1,-1,-1,1,-1,0,-1,1,-1,-1,2,0,1,0,2,2,2,2,-1,2,-1,2,1,-1,-1,1,1,2,-1,-1,0,2,1,0,2,0,2,1,1,1,-1,1,0,0,1,-1,2,1,2,1,2,-1,0,-1,-1,2,-1,-1,0,2,0,2,-1,-1,0,-1,-1,2,-1,2,0,0,-1,1,-1,0,-1,2,-1,2,-1,2,1,2,0,-1,-1,2,-1,2,2,2,2,1,1,0,1,2,2,2,2,-1,0,0,0,0,2,2,2,-1,-1,2,1,2,2,-1,-1,0,1,-1,2,-1,2,2,1,-1,2,0,1,0,-1,2,-1,0,2,2,-1,-1,0,0,2,0,0,0,2,0,-1,-1,0,-1,-1,-1,0,-1,1,-1,-1,-1,-1,-1,2,2,1,2,1,0,1,0,2,2,-1,2,1,0,1,1,-1,0,-1,1,0,2,-1,1,0,-1,-1,2,1,0,1,2,1,1,0,0,1,0,0,0,2,1,-1,0,-1,-1,2,1,2,-1,0,1,1,1,2,1,2,-1,-1,0,2,0,1,2,2,1,-1,1,1,1,0,2,0,2,-1,1,1,0,2,0,1,-1,1,2,1,2,0,0,1,0,-1,-1,-1,0,0,0,1,1,0,2,-1,1,2,-1,-1,0,1,2,2,1,0,-1,-1,0,1,0,2,2,0,2,2,-1,0,0,1,-1,-1,1,1,2,1,2,-1,0,1,0,1,1,-1,-1,-1,1,2,-1,2,2,2,2,2,2,-1,2,1,-1,1,2,-1,2,0,0,-1,2,1,1,2,-1,1,-1,1,1,0,0,1,0,2,2,0,-1,2,1,-1,0,2,-1,0,-1,1,2,1,-1,-1,2,1,1,-1,2,1,0,0,-1,1,-1,0,0,2,0,0,2,1,2,0,0,0,-1,0,-1,2,2,-1,1,2,1,0,0,0,1,1,0,2,-1,-1,0,2,-1,-1,1,0,1,-1,1,1,2,-1,-1,1,2,-1,0,2,-1,-1,2,2,-1,-1,2,2,0,-1,1,2,-1,-1,0,2,2,0,1,2,-1,2,0,1,1,1,2,2,2,-1,-1,-1,1,0,-1,-1,0,0,-1,-1,1,-1,2,2,1,-1,0,1,1,2,2,-1,2,2,0,2,-1,-1,-1,2,2,-1,0,1,2,1,1,1,2,2,-1,2,-1,1,2,1,0,1,0,2,0,-1,0,0,2,0,0,0,2,2,2,-1,1,0,0,2,2,1,1,2,-1,2,2,-1,1,2,2,0,1,2,-1,-1,1,2,0,1,0,-1,0,0,-1,0,1,2,1,-1,2,0,0,0,0,0,-1,0,-1,2,0,0,0,-1,-1,-1,2,0,-1,-1,2,-1,1,2,0,-1,-1}, {2,0,0,1,1,1,1,0,2,1,1,-1,2,0,2,0,-1,1,0,1,1,1,2,1,1,0,2,-1,-1,1,1,2,0,1,2,1,1,2,2,0,2,0,2,1,-1,1,0,0,1,-1,-1,2,2,1,-1,1,2,2,2,0,2,0,2,0,2,0,0,-1,1,-1,0,2,1,0,2,1,-1,-1,1,2,0,1,0,0,2,-1,-1,1,1,2,-1,0,0,0,0,0,2,0,0,1,-1,-1,1,1,-1,1,1,2,2,0,2,1,-1,-1,-1,0,0,-1,-1,-1,1,-1,1,1,0,2,1,-1,0,0,-1,-1,1,2,1,2,0,2,2,0,2,-1,-1,1,1,0,0,1,2,0,0,-1,-1,1,0,0,2,1,2,2,0,-1,1,0,0,2,1,-1,2,2,-1,1,1,1,-1,1,-1,1,2,0,-1,0,0,2,0,2,-1,0,0,0,-1,2,1,0,-1,0,1,1,-1,0,1,0,0,2,0,-1,-1,-1,0,0,2,-1,1,2,0,2,0,1,2,1,2,1,-1,-1,-1,1,1,0,1,1,-1,1,2,2,-1,1,-1,-1,1,0,0,1,0,0,0,2,1,1,-1,0,0,-1,-1,1,0,-1,0,1,1,2,-1,-1,2,-1,2,2,0,1,2,-1,-1,0,-1,-1,2,2,-1,2,2,0,2,1,1,2,1,1,-1,2,-1,2,1,-1,0,0,1,1,0,2,0,-1,0,1,-1,-1,1,2,1,1,1,1,0,0,1,2,-1,0,1,2,1,0,1,1,1,0,1,-1,0,0,0,0,1,1,1,2,-1,-1,-1,2,1,-1,-1,2,2,-1,1,-1,0,0,0,2,2,2,-1,-1,2,-1,1,2,1,0,2,-1,-1,1,1,1,2,-1,1,2,2,0,0,1,2,1,2,1,1,0,-1,1,0,-1,1,1,1,1,0,-1,-1,2,1,2,-1,2,-1,0,2,0,1,1,0,2,-1,2,1,0,-1,-1,0,-1,-1,-1,-1,-1,1,-1,0,2,1,-1,0,0,0,2,0,1,0,2,0,-1,-1,-1,1,2,1,-1,2,1,-1,2,2,0,2,0,1,1,-1,2,0,0,1,0,1,0,1,2,0,0,2,2,1,0,0,1,0,-1,2,0,1,-1,-1,1,0,-1,2,2,0,2,2,-1,0,2,2,0,-1,1,0,-1,2,0,2,0,-1,-1,-1,-1,-1,0,0,2,1,-1,-1,2,0,0,2,2,0,0,2,-1,0,1,-1,0,0,-1,0,2,0,1,2,1,2,-1,0,0,2,2,-1,-1,2,0,2,1,-1,-1,-1,0,1,0,2,2,1,0,1,1,-1,-1,1,1,-1,0,1,2,0,0,2,-1,2,2,2,1,1,1,1,2,-1,2,1,1,0,-1,1,2,-1,1,0,-1,0,-1,2,2,-1,0,-1,1,-1,1,-1,-1,-1,2,-1,2,1,2,-1,1,0,2,-1,1,0,2,0,1,1,-1,2,2,0,-1,0,2,-1,2,1,0,1,0,2,1,0,-1,-1,-1,1,1,2,1,2,0,2,-1,1,1,1,-1,1,-1,0,0,-1,-1,1,0,1,0,0,1,-1,-1,1,0,0,-1,0,0,0,0,1,1,0,2,-1,-1,-1,2,0,-1,-1,2,-1,2,-1,1,2,-1,-1,2,1,-1,0,1,1,-1,0,1,2,0,0,2,1,2,-1,1,-1,2,0,2,2,-1,0,0,0,0,2,1,-1,0,-1,2,2,-1,-1,2,1,1,2,-1,2,-1,1,-1,1,2,-1,-1,-1,2,0,1,2,0,1,-1,2,0,2,1,1,-1,0,2,-1,-1,0,2,-1,2,0,2,2,2,0,-1,1}, } ; static const unsigned char precomputed_decode_761x3_s[precomputed_decode_761x3_NUM][crypto_decode_STRBYTES] = { {232,174,103,176,105,112,126,147,237,61,11,147,45,248,142,31,148,91,139,13,222,42,117,65,236,251,146,124,48,182,245,187,244,41,140,117,150,118,244,194,92,97,209,213,83,8,68,182,56,64,158,228,66,153,208,155,247,151,241,53,69,68,19,172,208,42,181,28,165,200,135,121,207,199,227,243,7,145,119,182,61,88,17,127,104,57,47,25,50,224,183,238,73,149,69,68,158,56,40,110,12,1,46,199,206,243,89,203,248,48,60,50,225,203,162,254,142,131,85,133,231,228,106,98,26,26,123,148,107,241,95,23,141,216,32,160,141,83,56,153,4,238,28,116,116,15,255,52,208,47,180,106,78,95,123,148,14,6,192,170,235,247,113,143,79,65,235,144,64,242,133,149,45,193,151,154,252,69,246,215,195,194,4,199,99,204,183,90,152,79,20}, {117,76,0,35,145,209,116,45,218,110,137,255,246,67,68,133,49,51,23,226,239,137,164,148,211,102,144,190,91,102,182,4,191,63,114,227,22,67,70,87,70,99,203,133,196,36,98,236,76,186,34,58,159,6,79,25,93,161,195,134,229,239,20,157,87,73,44,5,53,56,95,183,16,190,185,7,34,38,201,168,10,61,214,81,154,128,150,189,145,56,144,126,48,212,126,56,0,115,152,231,228,46,163,7,120,126,73,128,168,223,25,210,168,99,227,107,175,95,46,71,97,90,250,52,99,140,221,4,211,102,40,165,55,234,154,145,5,170,189,16,75,52,143,252,199,113,194,126,183,81,243,232,245,190,249,80,127,65,125,236,117,29,61,40,217,58,65,180,10,241,171,234,54,149,179,207,188,88,75,153,155,19,139,22,132,122,161,34,246,62,138}, {80,21,198,20,38,200,43,226,122,107,194,33,42,74,26,196,15,231,33,59,246,115,86,180,147,101,43,97,220,145,228,3,70,197,32,182,118,66,63,0,215,11,83,110,203,153,233,152,21,17,32,33,156,253,51,11,58,180,221,42,150,236,78,48,116,67,48,23,18,51,123,48,255,154,255,84,253,176,15,201,188,156,49,61,212,213,65,64,8,192,187,217,179,41,97,99,176,185,150,213,18,236,164,238,208,249,162,118,163,157,184,151,1,149,54,14,249,6,217,247,148,160,59,153,2,206,255,179,56,23,235,136,150,125,44,77,184,176,178,133,212,181,87,196,227,86,218,208,96,162,131,211,240,240,225,208,231,156,250,3,6,5,242,146,62,223,192,147,171,207,184,217,81,87,63,214,235,60,126,14,158,81,228,114,85,196,21,112,48,30,156}, {151,106,43,119,152,186,54,232,185,126,183,88,194,139,127,119,23,210,182,224,89,131,78,85,151,160,232,183,64,1,162,45,5,238,125,131,150,23,88,251,97,45,143,138,120,212,77,197,70,74,214,1,53,222,185,11,104,138,143,96,89,173,20,24,233,48,159,67,240,124,235,202,44,165,29,9,174,90,78,110,106,82,165,14,44,60,82,253,48,110,131,58,126,185,107,24,170,193,206,116,218,108,16,0,210,82,157,29,224,178,124,167,92,102,94,111,25,39,24,223,211,135,113,7,64,45,92,95,147,20,157,59,245,112,11,100,111,10,74,94,243,171,206,26,142,17,79,136,192,236,216,216,41,31,205,102,27,160,123,163,34,5,102,9,22,85,218,192,193,140,195,146,146,215,142,220,83,181,196,195,58,35,14,156,39,183,210,208,220,31,114}, } ; static void test_decode_761x3_impl(long long impl) { unsigned char *x = test_decode_761x3_x; unsigned char *s = test_decode_761x3_s; unsigned char *x2 = test_decode_761x3_x2; unsigned char *s2 = test_decode_761x3_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_761x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761x3(impl); printf("decode_761x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761x3_implementation(impl),ntruprime_dispatch_decode_761x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_761x3; printf("decode_761x3 selected implementation %s compiler %s\n",ntruprime_decode_761x3_implementation(),ntruprime_decode_761x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_761x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_761x3_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_761x3_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_761x3_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_761x3_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_761x3_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_761x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761x3")) return; storage_decode_761x3_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_761x3_x = aligned(storage_decode_761x3_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_761x3_s = callocplus(crypto_decode_STRBYTES); test_decode_761x3_s = aligned(storage_decode_761x3_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_761x3_x2 = callocplus(maxalloc); test_decode_761x3_x2 = aligned(storage_decode_761x3_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_761x3_s2 = callocplus(maxalloc); test_decode_761x3_s2 = aligned(storage_decode_761x3_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_761x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_761x3();++impl) forked(test_decode_761x3_impl,impl); ++test_decode_761x3_x; ++test_decode_761x3_s; ++test_decode_761x3_x2; ++test_decode_761x3_s2; } free(storage_decode_761x3_s2); free(storage_decode_761x3_x2); free(storage_decode_761x3_s); free(storage_decode_761x3_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_761x4591.c0000644000000000000000000011201414705505543022367 0ustar rootroot/* ----- decode/761x4591, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_761x4591_checksums[] = { "e1f8b74a5bf8507d583864d986c9febfecbaf6a447fc0ef78949e0c2684004ce", "278e3fba567cece740483ca6d1c367e929189741d75f068c38dee2b7467cf58b", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_761x4591_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_761x4591_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_761x4591_ITEMBYTES static void *storage_decode_761x4591_x; static unsigned char *test_decode_761x4591_x; static void *storage_decode_761x4591_s; static unsigned char *test_decode_761x4591_s; static void *storage_decode_761x4591_x2; static unsigned char *test_decode_761x4591_x2; static void *storage_decode_761x4591_s2; static unsigned char *test_decode_761x4591_s2; #define precomputed_decode_761x4591_NUM 4 static const int16_t precomputed_decode_761x4591_x[precomputed_decode_761x4591_NUM][crypto_decode_ITEMS] = { {-287,-1583,773,-638,-1886,-606,-2182,1029,-1746,-1168,-990,-595,1390,-922,797,-352,-199,-1548,-2125,1738,-736,-2043,1397,-1041,-635,348,51,-1146,-564,-876,30,2051,-1426,-119,-234,-451,-1608,2109,-1320,903,486,1027,1839,-489,-1779,1472,-1992,2101,1570,469,-1036,-1616,-415,-396,1856,-1478,1558,578,-1830,740,-2268,2024,-1542,-704,848,2070,-134,-1454,454,1800,1020,1411,1682,-1913,1101,-1434,1834,1336,-1831,-1123,-2176,-2086,-697,676,1547,-1856,-1901,516,-453,-686,480,2041,313,1995,-934,27,1279,-1001,-697,495,-1406,-1824,-937,778,-1783,1762,-371,-2248,870,-1547,2251,1730,-2200,1376,627,738,1592,-2099,-1774,-43,474,-819,361,-1065,1111,467,1639,701,-1780,-1460,1246,1411,-501,-1043,1860,1366,-1874,-845,-127,200,2288,928,1191,-441,943,-118,-656,-763,871,1862,521,433,1736,-1257,887,799,-1232,1354,2285,-2067,1519,39,-1396,1488,-2056,1453,-1946,1572,2078,1980,-1384,365,-104,-939,2136,-1705,-824,-1244,2169,348,95,1791,1475,478,674,-108,173,1000,669,5,1270,-296,-989,-2040,2092,39,-1409,-1098,502,-833,1017,1030,1484,320,-2219,-1903,-732,-2216,-1079,-625,-1662,-1007,1128,1699,-1736,-531,1483,1569,2016,-345,1722,-1498,-425,-2233,1133,-939,-2047,1548,915,-673,-930,-1139,-626,358,379,-224,-1418,-352,1885,1849,-900,463,-1000,-1244,-33,1844,-504,-1551,-1433,2069,-136,-1564,-451,-1533,-983,-1440,703,-922,-1784,675,884,1536,-1927,-553,1150,-259,-322,-1502,-1251,810,-693,1902,1243,1787,1700,-1329,-424,1793,1519,-2230,1209,1269,2080,-69,-1824,-1796,-815,1762,-1191,1668,2223,708,-1873,-1483,76,-1642,-2176,343,-1647,-10,-834,1656,-833,-1151,1525,-572,-176,759,12,479,-541,-2265,-509,-2131,775,137,745,310,-859,-144,1490,879,449,543,726,-955,-479,637,-1631,-1912,1160,1297,117,81,874,1036,1187,-431,-1174,1435,1121,-1902,2074,-170,1848,1534,-1047,834,23,-227,1927,358,-1934,-1595,-1376,575,156,-2295,12,88,1532,-1900,551,-2168,-1367,-1501,-1004,-1475,-1218,1302,2211,-1475,-1655,-320,-645,1688,939,-759,849,-21,-284,1047,1642,-418,1573,666,-2207,-1767,1282,-1269,-283,1565,671,-844,-1995,-417,2118,-635,-1973,-2003,-424,-1520,278,1258,1372,76,833,2284,1890,-1308,1136,-240,1072,1089,-2259,998,-480,-1050,-111,567,-1981,2053,477,-1776,-1294,-1507,1415,2087,-1188,720,907,669,-2239,213,-1934,1616,959,-1165,-1734,137,870,1941,-87,1820,254,-2246,-1616,-2109,1370,-1624,-1527,-1293,-911,1476,-288,-1679,-1498,-810,1937,19,-2262,-1956,886,-1665,-487,571,1887,1632,-1601,-2284,995,-2173,202,602,-295,-758,-1905,1461,-70,1238,303,1764,854,-1657,1520,-1884,-597,-1965,1612,1325,-375,1118,-1252,254,423,-230,-948,-823,125,-899,-326,-1898,1563,730,-1674,1963,1198,1154,-2220,-756,-353,2065,-1832,-1772,-626,2186,-2241,-2179,-2114,-1174,498,57,1749,-76,-510,596,885,-2276,1080,-1773,729,-786,890,153,983,-379,-738,1772,1328,1938,2231,1027,1177,193,-427,937,119,899,-1415,-2050,-181,1591,-570,-200,-1184,1305,-747,-1632,1639,1948,-1208,-415,-1218,-1837,678,-1753,2206,1880,354,-1884,666,181,-2,-2266,-2056,1030,826,-1310,2179,-454,-2031,-980,-122,1535,1490,-956,32,901,-685,645,335,876,604,-669,2040,2139,256,1466,-198,1258,570,921,1568,1545,523,-1628,-2033,-1831,1168,883,-1807,-1927,1999,1592,1462,1444,-2064,901,1362,-1430,666,-2282,-369,-1552,-1553,-1645,946,-762,1729,-483,-909,456,130,-962,2287,175,-1436,1884,924,1092,-1282,473,-2031,851,234,-1639,-806,-2027,1127,899,-195,-2157,-1619,1587,-2179,-1124,873,656,-1329,207,-378,-1420,-18,-1166,374,-505,-2171,-1662,700,-488,156,-251,-960,-525,1761,-442,-394,11,693,1786,-2096,1415,-620,-1103,-1597,-947,321,1737,-124,-736,1443,809,1517,71,-837,-359,-1922,-338,99,-273,697,-2216,-1544,-1837,818,-993,-1914,232,2160,-2151,1910,1073,1070,-270,-2105,-1844,-1383,2131,-271,1708,-420,-485,18,-352,-202,2238,1038,-368,-523,-520,683,1388,1573,1215,-1882,-2268,529,-450,1930,-1829,249,-1717,-1480,736,2226,714,-452,42,-1771,1694,1598,-456,-1747,-1201,-600,1663,971,-886,2161,1743,-1294}, {-2222,-706,-1152,-1237,-1569,1589,-474,1328,1212,-2091,2175,1277,663,-590,428,1279,6,-1237,-927,-1704,48,1325,-1190,141,2077,-1381,-1065,-1342,-918,1916,-2069,-2242,1664,701,-937,392,-113,1269,263,-1405,2158,1337,-615,-1668,-1943,773,-1015,1617,-159,-1306,-1747,239,663,-1961,1220,-1763,-753,-1908,1782,-133,-432,980,347,878,591,559,-663,1090,1503,-2201,-1425,72,983,157,-718,-1797,-1942,975,-671,767,211,-734,889,1185,-1531,865,-934,1717,1872,1906,-920,43,72,-2004,-1463,1362,284,495,-694,-1198,-333,665,-960,-1088,-488,462,-246,670,129,-1660,1399,319,-1808,2022,-1633,-811,-328,1294,1036,-2295,-2201,960,-1467,1663,-1242,1296,-423,141,478,-353,239,-786,975,-1205,1096,1853,2154,-2066,708,-1615,-602,-1697,796,-1559,1417,-256,-1925,780,-220,213,2032,-1009,-1943,961,1403,1197,-2262,-2199,-1148,76,-1801,-753,-1779,58,-551,-626,761,266,-752,292,1257,1705,239,-995,-1553,-1929,-1365,1102,-1074,-2105,1979,1600,-618,-993,685,775,-2284,1578,-1027,1678,-1247,1545,-838,2136,-1914,1006,2241,-1209,1495,2157,1128,-107,-1587,1633,-2235,1257,-561,-2153,1329,2079,-1531,1431,1168,877,-2,-409,1300,-34,-1269,-1317,1900,1585,1156,337,-813,761,1805,-505,-1885,482,-1405,-2050,2080,-1081,810,-140,-436,-2031,-65,911,1729,2264,-939,-1022,377,272,-739,551,652,755,1646,1249,1171,-556,1420,2289,-1896,-1413,-1698,-779,-204,-1149,-14,2168,1206,652,-28,873,2086,-387,-730,-916,1733,-1834,1736,2135,2161,-2227,-516,-386,-1020,-17,1981,-1854,-751,-506,-306,-1616,450,494,-290,2101,648,-1227,802,-1101,-897,1291,955,878,349,802,1571,129,937,-525,-1304,-1939,-287,-1414,2239,-404,39,-1191,2188,2110,1872,935,1143,177,-332,-821,816,-497,-1507,-1613,-1823,573,65,1390,914,-1078,828,-1552,-1083,-899,643,-228,-1591,-1496,-1755,-1439,-1616,1207,2137,928,-226,-184,-2113,2232,-951,-1476,1840,-1267,-1075,1079,-495,1029,-1517,-2225,-1665,1584,-431,-383,-1535,-1018,103,-1173,804,2260,1106,797,1434,-231,-2038,2135,341,-1346,478,1153,2022,-283,2186,2266,546,1063,-1450,460,-484,566,-1274,1396,-1928,-891,-43,-1467,-1437,-1957,804,-1657,-1598,-2116,2090,-1096,-1211,-1156,-84,-1812,-672,533,-822,-1960,1195,-765,1832,-1828,-952,2126,-2088,2006,-846,-1383,-1404,-671,2217,1445,1673,1386,-2081,1775,145,-1545,-1129,-563,-929,1061,-175,1104,1647,932,1659,813,965,11,-391,-1499,1827,-237,1408,-938,-385,-1409,1192,-34,-36,-1997,-1047,-1011,-881,2007,559,108,746,1759,951,141,1328,-536,-793,127,1057,1630,-1619,-727,-59,629,1642,-1281,-704,-1247,-257,1217,307,950,270,1810,1868,1516,-914,-2050,-1846,321,-1681,-853,857,1408,514,735,-1022,390,380,778,303,-1209,118,-1395,-1724,-926,-755,-1731,-680,1682,1347,-43,-1644,1937,1030,-125,1641,-147,4,413,-2139,1590,-1938,1528,-900,103,255,-297,-490,-1710,2026,1318,1201,500,-1820,1984,1298,1470,-1830,696,-727,-16,-1351,338,-2220,-1290,1427,-1965,-827,1474,153,1098,2072,-209,-1603,-1759,-1587,883,-2004,-998,1535,-1467,-2128,1077,2093,-2294,-619,-1636,-1337,-172,-2234,-1722,844,-1198,-1006,-379,-942,49,1159,849,1006,-1618,598,-291,1349,-1035,-872,-153,556,-767,-1724,-2172,1431,-1640,464,-639,349,1969,-609,1063,-1227,109,-751,929,-1207,530,1996,-2219,675,-790,-1748,1418,2205,614,-4,-1021,-861,2140,1051,-295,-2247,1830,-1595,-1640,-853,-703,1630,514,-515,-172,-1638,7,-562,-1043,1811,-1609,560,1468,446,196,-1051,1730,-1242,2072,-1690,-1885,-1617,1095,-651,-1178,-1258,2067,2290,-2281,298,1637,-1811,172,1582,1854,1400,-769,-530,417,-742,1410,-1328,463,-1682,1182,-1636,1709,1705,-2009,-1031,1283,-1128,-1089,-2219,-2063,111,-1566,129,-949,230,1458,-1324,915,-246,-1447,-83,1038,2122,-410,2024,-1146,1389,-2023,1394,254,71,1740,-1879,208,-1098,-1665,-785,873,-1223,2140,-631,-2172,1394,-1658,-51,-709,153,1861,1951,137,1017,-1642,884,1624,-286,-741,1668,280,764,2288,930,2267,225,-89,-1262,-1571,203,-1498,-1207,1528,-1339,1293,-2161,1087,37,-710,-1445,106,1664,487,-1927,1097,-2271,264,-1950,-1063,216,472,564}, {1266,-618,-278,-1061,1748,1751,-677,-1315,-312,2153,1896,2278,331,36,462,-1075,1908,-111,2053,-633,244,-1869,1360,-1559,595,-526,-791,399,546,-1692,1725,-901,2280,2184,598,-1694,1863,735,1962,2190,-2159,217,-65,-1759,-1405,-1876,223,950,2055,1103,-2171,-1789,-197,0,1615,12,1539,-369,201,-1473,1513,-1221,686,1477,-1950,-1019,-1159,-2255,-562,-430,850,1712,77,-481,-861,912,1072,2010,-1627,-1243,1210,-1002,-1734,833,-66,844,626,-95,-1358,1970,-611,1050,918,-1976,270,-1191,1419,528,1490,-333,-1455,-358,1507,1229,871,-1207,-1565,-573,2140,2126,1573,-1697,-507,-138,-873,-754,1616,-1549,865,-508,-166,-1370,1348,853,1087,-1681,1484,299,953,79,-1057,-1345,942,1920,1388,1536,1601,-891,233,-1418,-663,1243,-1333,757,-1278,838,1033,501,1145,2189,40,673,1222,1122,-1051,-1348,746,-1912,1560,1333,988,-600,1966,-294,-1474,1665,348,1034,-1518,1378,-804,1562,-1856,-1814,1668,-1483,-2109,2233,-3,638,-116,167,-2066,1489,785,-1025,-1351,-7,-1395,2208,-920,-799,-1582,1608,871,-629,1485,1582,-367,-1261,-1287,-1320,-1895,-1216,-1869,2130,-380,946,838,-2192,1077,-173,-1671,-230,-1013,369,737,-2279,1789,-1292,-1263,1706,-762,-2151,-47,433,1653,-1743,1030,751,1178,158,424,-580,-1982,895,1879,-2010,1579,-928,-1128,658,984,1667,-802,539,2245,-2178,643,-451,290,-684,-889,-1756,-1607,-801,-1770,1637,-1254,-145,-123,-2288,-1985,-22,1762,1298,1805,-1460,1467,-927,1268,-797,835,-566,755,1710,-2047,580,-1227,-1263,310,-1863,1892,187,2273,209,1237,1776,-1602,-1772,1935,-1112,1901,2136,2204,657,-705,-1868,994,-2194,79,1968,669,1800,-1992,672,-1915,-870,1298,-2128,432,1806,-926,657,-1456,-1761,457,191,-1813,-1537,1740,746,-687,2084,1477,-1396,-508,1213,-1187,918,1782,-57,1362,1406,-1998,113,1103,-1979,-1252,1006,-2261,1441,-1338,-268,612,-2012,-230,512,-1862,-1818,157,-1366,1779,-896,1892,381,2211,-1052,-794,-357,-314,-247,645,-493,1780,773,-1528,507,491,-336,1214,545,1150,-413,1294,-1200,-385,-602,-1918,1856,-243,1788,-1744,-1551,442,1061,-690,-1159,-417,-2238,-2068,1175,1308,-1380,-1521,1986,1408,1350,665,-2252,1062,880,-713,78,526,1323,92,-286,-1458,2086,-659,222,1814,-781,-559,1223,307,-1450,1783,-89,1517,-1971,26,164,1863,1587,-787,1050,-2207,503,-2198,-121,-1951,-5,-1877,1394,1168,-1348,1439,1990,-1302,894,1952,-626,-24,145,1783,-1091,1774,360,-1440,-628,-71,1320,99,527,2250,-753,-161,-392,1001,-886,1857,-1839,192,1896,-1685,-1480,-1845,-1226,-1475,1469,-940,-356,-988,1827,-586,697,777,-831,516,-873,-2047,2216,-290,1769,-1802,-586,-369,-2180,-694,-942,-1154,-1329,-159,1503,-1606,-1585,1203,-2050,1863,-625,-1881,429,1111,529,735,1831,-1655,-1660,-1852,-25,32,-2093,986,-1169,-516,-100,536,-172,-1662,-456,2,-290,1181,-545,-1080,1229,-476,-2035,-2088,-2142,-1150,-1482,-1547,-1563,-1467,-1460,1350,-1434,-2001,1282,-1182,1692,2210,-1018,1253,112,-916,1630,1649,-1206,-1362,1617,-238,-665,520,-318,-2171,1738,133,-172,1200,-1698,-1030,-158,227,-1780,120,-1570,959,-612,-802,26,1772,-1317,-735,-1683,-163,-1194,-1981,2023,-829,-529,-855,727,1821,-1880,-177,1518,-1170,1132,-772,-1588,-66,677,169,1884,1342,-714,1296,-2096,1061,-1106,-2018,-2166,1933,773,1725,154,-1903,-2145,208,366,-1238,-2136,-1724,855,-249,1204,1477,19,-368,2244,-972,-1239,1892,1166,43,2094,-152,-1523,167,574,-1870,-1063,1767,1423,422,1349,333,1692,-1463,-420,1258,-1408,758,-125,-2234,1052,648,1329,747,-1104,-2059,-149,-810,2249,1941,2220,1887,-77,2263,1072,-777,-692,2177,375,1599,923,1023,-1906,-1696,1767,-240,-1276,-1253,1598,-649,-1958,1228,1422,-1676,-2027,-313,-948,-1495,1441,904,1524,-491,1137,462,-2017,-266,1788,-766,1261,2244,1141,1262,-2256,835,-444,1170,-1087,-809,618,-400,-1072,-2134,1567,-1237,-989,-1223,556,1107,-2059,582,-157,1569,-1241,-957,946,-296,1090,1306,1975,1869,1594,-1134,-833,997,670,772,-2098,-1469,-768,182,-1951,-1319,-1920,-47,90,1441,1109,-778,-325,810,1731,157,-152,1002,1041,-2029,-401,-432,569,-2044,1795,471}, {318,-194,-1129,-804,-920,-1272,1816,263,-1500,1396,1104,-1280,2237,264,1632,473,855,1442,-1296,-871,760,265,1005,-1175,-256,-1739,-2188,1004,813,-1039,-168,751,-2166,-64,1752,2101,724,-321,-713,1966,-1327,187,-2126,-1322,-4,-905,1212,-278,1003,-1346,487,736,1334,-412,-141,814,-2009,1520,2285,1065,-1432,-1671,-1388,-594,-1010,-1149,2201,-2063,-274,1646,-94,540,979,952,849,-527,816,217,2051,529,2089,1578,436,286,-1313,420,-1861,2236,742,-2294,97,1918,-1335,304,-680,-2128,-325,373,1252,-1874,-1682,885,-1457,2221,213,-758,323,112,-534,-1980,-970,475,1337,242,-310,-898,2036,-1702,-1350,-1732,1078,1470,-988,2100,97,-211,-1818,-1335,-1292,1240,-63,-1075,-2195,-773,924,-1664,-927,561,-1348,-1354,1390,-2275,-1135,1941,497,-2056,-355,-293,257,478,-1470,1769,-265,2280,265,1756,1560,578,-1347,1060,1981,1465,1559,994,-1703,1490,315,-1205,-2127,40,2223,733,-1282,-1629,-113,-972,-1897,-1004,939,-2254,2227,1305,119,-2013,1748,-1479,-1574,943,1256,1886,1437,1959,2249,-761,-1674,-439,1905,-959,930,1329,-2012,-169,-769,481,2177,2041,-1129,-1203,956,-1343,42,-1101,1560,2009,39,314,301,-1296,-244,315,-400,-1128,-1014,-760,-551,1166,1196,2018,2110,-2201,2167,-1605,-2067,321,1356,-301,1734,2224,202,-222,166,-1590,645,1919,716,1697,349,-1964,1941,2260,1124,587,-889,-1685,-1838,-598,882,-2017,-586,-1449,86,-1476,326,-325,2243,-1185,1142,1011,-976,-1987,-2074,1241,-1054,-1377,-1198,1483,-1506,-899,-2089,-69,105,1863,-1788,901,-890,1419,726,-788,909,-2092,-561,876,1564,-1930,-1726,463,1567,-886,1263,-1805,2122,783,186,673,-2088,1430,112,-353,468,117,-2007,-1940,1471,-1486,-1873,1746,-376,-689,-874,1985,-2062,-1286,1930,-522,1101,2164,1196,490,843,-719,1955,314,-255,-125,1806,-558,1208,-173,1291,-1172,2185,-1367,-1543,1156,1136,-2192,231,1199,747,-412,-607,2251,1613,379,2252,2237,-1725,2019,2155,-2170,-789,-1569,49,44,1331,-789,1833,1897,-695,-890,138,722,1788,985,-2179,-745,-406,-652,-1583,-591,1397,-348,850,2029,747,1169,852,1805,635,2186,800,-301,1494,1549,2028,80,1974,1276,977,1933,-1737,388,210,-1306,239,1591,703,-991,-30,830,1497,2123,2294,-2171,454,1302,1067,1284,-1420,1405,-1517,-818,1054,899,-1668,-1877,742,235,2228,-2247,-2078,-1555,1889,-2225,-974,-1,1773,959,701,-1947,-1797,1478,1225,1014,751,549,-2159,-1321,-1867,-547,24,-2272,-1999,-671,-1150,1987,527,1693,1574,1012,-815,681,1009,-1591,859,-708,-110,-1617,-1184,877,2019,640,2137,541,-787,70,-697,399,832,-1750,-630,-1590,1303,518,-1553,526,2216,1608,1708,1377,-945,1566,-1791,-1855,-1852,-594,-1692,-1030,1459,2064,-1016,2057,-1088,289,-534,2099,-1706,2070,-48,1816,823,-460,190,1364,-282,-1298,-53,1148,-1679,-2016,-619,1909,90,-1059,-1472,1601,-1109,682,-466,1010,-5,-1822,-2175,2023,121,-1267,-129,684,-353,640,1655,2250,-1157,107,-2255,-698,-1609,-1980,346,-555,1222,338,1898,597,1299,-2046,-2126,-1148,1924,2009,1232,622,1726,-1163,747,-988,327,-1836,2220,705,2048,-838,-2285,1051,1818,913,-1219,964,1870,338,-2059,1733,218,-143,216,36,-283,-1430,1603,1310,1579,1709,266,1015,912,-2165,-1496,2122,444,970,-985,-275,-1753,-378,459,2077,1454,522,-1877,817,721,-1878,1053,-1855,-284,-1256,490,1865,1158,306,-1964,1815,249,-1273,-1371,310,2295,664,1878,427,-2051,-1767,668,-1769,1752,-1281,-7,-2011,-1988,35,1566,1532,-98,-1018,-91,108,820,-2263,-1552,540,1520,-1926,2103,666,1722,-1176,-733,1610,296,-138,1398,1008,1946,-861,-231,1926,-305,1711,-1949,-1366,1589,-1627,-702,-616,1766,-1215,-1317,-1039,1004,2089,-151,1001,1279,-1032,-26,1918,2196,127,1438,-147,2169,50,-461,-1031,-2036,1240,-1256,550,-1486,2224,-1147,-1453,1877,-2264,-838,2126,-1795,-1250,-960,-116,-2029,-432,933,-289,-2102,1749,-823,1390,-1592,787,-1555,914,1427,-760,104,268,786,-1562,120,1427,2051,120,-1229,869,1448,-148,-1008,-2141,-1870,1040,1530,732,-1655,-1264,1918,83,1733,-1035,-164,-1350,-688,127,1110,-1333,2272,-1850,-401,1064,-1611,-683,1350}, } ; static const unsigned char precomputed_decode_761x4591_s[precomputed_decode_761x4591_NUM][crypto_decode_STRBYTES] = { {144,232,243,31,112,83,181,219,78,245,53,28,56,61,13,41,149,92,217,134,91,173,38,231,249,44,221,134,136,110,123,124,229,114,153,53,59,134,113,11,67,194,56,148,221,229,67,245,141,175,212,149,61,15,246,75,68,82,70,158,76,143,74,119,106,212,152,242,206,232,217,170,43,210,23,94,2,109,252,27,150,164,243,38,219,207,223,236,89,190,231,202,78,145,31,175,8,180,248,120,50,2,61,75,151,54,101,82,177,114,121,8,152,42,1,132,43,202,125,196,205,112,178,52,228,137,106,240,144,128,187,171,222,187,30,135,91,149,201,208,224,217,128,238,21,142,171,88,81,66,216,37,209,198,248,202,214,163,192,10,232,143,76,6,11,144,146,230,50,139,235,90,131,6,33,102,244,165,237,55,0,70,149,80,94,64,213,220,216,42,46,23,43,226,37,146,249,221,215,117,35,250,28,63,68,118,220,142,218,1,241,60,37,216,11,149,42,190,89,171,196,228,48,95,88,11,197,55,212,172,145,0,88,224,235,30,102,32,36,93,77,58,68,165,251,251,151,37,146,185,228,61,154,104,89,234,137,58,197,16,4,108,194,9,65,174,12,149,227,135,141,9,192,2,117,187,215,103,149,156,4,185,69,1,180,246,95,58,37,163,59,112,186,227,230,199,73,205,203,20,86,205,190,41,129,194,121,249,205,92,220,32,22,132,126,106,227,136,197,180,3,104,66,218,209,234,100,108,41,215,247,174,164,123,46,101,210,161,175,80,63,149,244,237,234,75,23,55,186,231,81,234,237,10,1,17,147,9,196,248,184,186,175,240,230,162,151,118,88,255,38,131,89,93,243,11,162,166,70,89,237,37,188,140,123,124,72,253,215,237,136,111,59,177,118,144,1,91,222,117,216,81,28,240,224,38,37,210,206,52,240,2,111,28,119,175,106,62,122,134,126,152,93,102,149,55,128,7,28,58,174,175,172,177,178,251,172,53,177,96,17,203,93,77,180,120,77,10,194,15,118,52,253,48,239,46,128,10,222,42,158,191,151,46,190,204,143,41,251,199,192,152,96,251,191,179,26,32,20,136,155,98,239,189,156,217,184,36,223,166,219,30,206,148,125,179,131,35,192,212,84,215,49,248,171,75,156,170,24,208,14,118,20,165,244,238,130,32,68,136,185,206,113,130,254,140,41,97,133,158,155,193,225,137,146,69,2,238,14,151,20,201,88,88,172,112,84,201,43,45,52,66,158,201,71,53,5,120,155,75,103,183,203,25,159,3,86,138,14,213,37,127,8,17,34,238,200,12,57,9,181,31,39,86,222,219,219,236,14,251,179,45,89,243,125,174,54,130,64,238,161,85,23,16,183,196,54,130,125,174,120,201,167,92,98,252,171,228,216,166,180,244,47,20,188,139,220,112,100,255,187,188,244,106,224,25,216,195,168,81,37,236,30,100,81,254,5,204,68,205,10,179,218,244,177,8,105,198,160,73,98,83,236,31,143,111,115,88,180,161,215,57,173,3,203,222,75,146,171,238,105,230,99,135,54,113,120,126,244,62,122,128,198,205,34,165,128,25,20,175,113,148,133,24,179,65,174,7,215,39,197,0,172,232,203,152,166,17,21,116,33,211,2,38,40,149,14,11,13,95,15,13,6,242,210,229,131,74,143,181,142,135,232,87,216,219,2,190,39,115,22,227,126,165,201,75,49,193,66,241,25,70,252,112,232,127,89,195,218,244,100,45,223,55,113,204,37,228,146,34,174,166,142,240,160,143,226,232,169,135,147,163,0,87,65,35,46,97,248,31,245,162,31,241,251,34,229,185,23,159,22,101,169,205,30,63,185,83,27,76,147,137,87,107,0,128,188,165,100,38,49,90,57,210,248,180,98,70,223,98,234,55,208,184,204,67,130,66,3,204,43,233,173,120,105,176,23,227,43,156,38,38,101,57,231,120,93,49,17,35,104,93,59,30,44,111,174,16,96,181,116,10,155,210,105,129,76,13,214,36,154,12,54,55,108,196,96,49,138,192,195,110,182,210,135,116,219,9,93,247,59,110,80,90,87,104,195,254,247,62,121,209,49,51,236,155,213,92,190,27,105,18,95,115,227,69,253,226,139,102,142,11,0,55,193,208,216,23,182,22,170,199,64,57,222,97,107,19,78,59,41,5,41,112,121,134,242,93,189,93,133,205,118,65,205,107,67,154,22,149,8,157,66,17,217,243,217,247,206,147,37,233,68,154,221,164,242,118,208,75,90,161,239,112,188,203,146,6,54,193,54,59,192,48,245,239,138,199,125,203,50,91,24,40,86,195,230,98,188,11,249,252,222,175,252,107,173,33,78,253,221,113,4,185,94,139,38,87,110,25,27,241,61,139,6,224,229,243,22,47,189,161,225,217,181,94,240,10,68,185,176,69,188,183,69,174,44,40,124,95,126,139,240,37,106,179,145,133,14,18,31,42,88,4,79,144,38,112,226,18,79,64,236,178,148,57,254,149,212,228,79,43,33,173,84,39,64,87,49,113,17,78,25,54,216,110,135,13,213,191,200,13,172,212,250,101,172,87,108,142,89,61,219,36,154,19,209,255,175,20,11,118,138,5,78,92,170,164}, {196,80,53,34,234,24,134,212,39,88,66,76,85,124,77,105,187,38,25,108,195,160,141,170,98,24,133,199,190,3,93,183,131,240,223,64,218,179,228,98,53,128,237,242,164,237,56,17,171,80,222,133,96,113,103,82,83,34,91,132,204,115,157,81,192,249,151,39,152,164,55,212,250,209,23,233,59,20,2,135,33,100,88,213,36,97,229,18,78,91,29,206,236,107,103,50,205,124,104,223,26,99,16,147,250,41,28,189,77,133,216,44,58,109,10,248,90,115,3,13,55,6,102,72,166,147,140,173,223,21,177,191,100,104,203,161,44,28,147,174,231,234,51,155,25,229,63,107,143,185,129,39,40,25,142,174,193,185,8,29,136,7,195,215,251,241,223,115,60,64,64,68,146,27,152,166,13,252,39,84,11,236,23,60,198,27,218,80,31,87,24,5,114,109,72,64,154,37,42,239,19,84,236,45,92,212,88,249,178,119,142,7,227,66,183,39,230,113,16,135,187,222,179,110,218,26,38,117,49,139,53,45,121,28,6,3,187,133,208,159,249,110,195,50,249,221,22,101,249,180,13,84,15,224,27,46,253,202,169,53,17,80,138,174,250,127,123,246,105,186,138,160,31,91,145,101,228,212,46,194,181,153,107,245,59,89,174,152,132,107,233,251,147,220,207,176,84,59,253,83,171,254,34,222,22,11,59,244,87,191,35,138,206,95,254,166,201,85,70,57,201,73,193,0,202,201,100,235,131,46,184,77,220,24,8,208,55,216,177,251,68,249,25,86,73,217,230,233,23,34,221,100,227,19,182,96,76,226,100,234,223,190,80,248,43,120,220,162,160,35,245,167,129,165,211,86,71,133,221,149,65,3,160,148,27,72,90,2,22,115,226,148,51,92,208,9,232,176,189,189,214,140,130,15,153,206,144,222,139,34,130,125,8,60,28,199,170,185,50,77,25,233,163,199,68,17,15,237,144,30,186,147,138,89,122,30,145,36,27,31,14,201,154,151,148,202,112,59,90,30,160,24,122,113,9,233,156,247,216,99,147,97,171,10,234,178,88,71,8,177,115,2,132,218,144,222,11,24,159,112,190,14,173,92,108,155,48,9,32,47,9,68,164,6,105,116,195,77,172,28,98,80,8,30,169,21,82,233,144,136,54,160,174,208,131,121,227,16,188,136,39,189,159,40,134,209,53,2,72,1,52,2,244,42,13,218,180,195,4,206,50,137,201,172,215,118,142,103,160,44,115,13,63,186,137,50,28,143,186,163,2,221,250,15,187,56,52,192,201,48,195,188,48,36,106,229,205,61,161,57,182,76,240,121,57,110,144,82,81,19,171,21,16,160,15,241,207,12,44,191,152,67,136,108,240,223,167,234,183,99,169,121,146,29,103,218,89,72,23,181,66,40,67,248,61,229,234,139,204,214,249,191,179,69,161,187,124,30,68,167,74,139,147,251,30,240,35,187,136,125,63,70,99,150,251,12,5,125,17,212,160,181,25,245,205,2,8,146,161,56,128,149,175,128,162,24,86,171,121,128,228,64,253,26,22,84,164,242,161,226,177,111,79,133,20,30,146,142,84,28,36,159,75,179,105,89,215,38,134,243,173,179,85,164,28,174,114,35,148,45,22,111,147,203,44,150,167,228,124,114,156,25,167,161,90,147,245,187,213,222,97,212,120,93,240,235,219,17,225,53,185,242,48,160,41,68,137,79,16,224,131,74,130,235,220,209,68,237,73,245,20,122,231,161,9,33,225,144,111,17,19,79,44,20,91,119,31,90,188,255,78,207,154,16,46,79,252,227,204,210,180,154,229,205,71,134,181,112,196,122,127,74,124,230,38,127,16,36,67,210,49,1,197,59,145,192,200,69,12,78,91,155,233,176,55,106,172,69,181,124,227,191,236,54,190,101,199,239,32,240,89,117,239,124,100,203,173,76,86,111,180,209,180,171,207,97,72,133,15,50,91,87,91,198,243,224,96,143,5,25,124,245,63,43,76,111,189,211,237,68,221,91,30,67,249,207,196,39,145,97,78,174,86,192,206,250,60,44,162,72,59,171,23,90,69,204,203,236,15,254,32,105,9,115,107,118,132,103,64,162,54,234,22,241,54,102,7,201,96,117,68,234,118,243,96,193,138,172,19,24,71,54,151,171,161,93,210,206,116,95,158,122,124,201,208,193,98,187,68,19,164,138,115,247,61,98,141,70,130,100,131,240,53,252,96,184,114,230,98,63,176,231,189,233,23,20,148,37,97,131,111,141,175,240,38,217,244,168,87,233,254,234,45,245,50,142,88,123,224,50,1,100,96,137,242,36,132,162,135,202,122,143,93,146,54,6,143,26,188,171,233,64,109,132,68,70,107,136,57,249,174,220,210,87,96,45,30,189,200,27,18,110,254,238,243,18,176,121,223,224,189,6,193,131,109,169,189,241,126,122,93,182,122,18,211,198,109,208,83,122,43,129,174,57,65,136,35,149,17,170,72,151,47,135,28,82,24,23,241,69,50,207,156,26,158,7,28,238,160,163,31,162,233,9,87,125,238,89,31,23,20,59,178,69,114,152,211,22,233,50,141,100,135,218,237,203,222,158,16,198,130,115,146,166,225,190,140,85}, {140,136,239,121,29,127,62,173,95,160,178,106,119,85,193,129,99,15,158,126,161,225,103,157,209,247,250,190,14,73,34,183,112,214,100,37,8,83,204,64,184,249,30,149,167,93,89,92,88,27,226,114,203,205,19,172,20,251,42,159,142,75,41,73,157,100,200,209,236,172,50,192,206,28,163,174,70,161,192,180,212,161,121,34,66,238,81,41,112,202,115,90,94,101,181,96,11,209,127,128,167,180,214,236,30,68,128,164,190,197,102,243,191,33,57,249,189,81,173,59,228,212,47,149,112,16,129,198,10,91,192,145,190,82,252,109,252,105,163,121,110,223,22,209,236,125,84,235,172,43,7,244,212,108,249,91,114,224,35,54,68,202,196,61,61,108,66,63,32,81,178,55,198,179,143,241,10,52,47,128,5,129,157,21,178,3,192,75,125,118,7,210,154,109,188,193,79,167,222,118,49,81,233,151,209,253,66,18,102,67,66,180,79,171,26,164,200,42,89,83,87,76,109,28,160,35,196,186,183,110,172,228,188,46,99,121,97,7,91,210,118,226,181,153,163,141,247,67,6,57,30,229,179,199,122,171,241,116,75,161,5,134,69,60,64,195,145,142,218,227,113,254,105,43,245,155,13,104,164,79,125,77,137,239,144,123,117,61,250,165,247,239,37,120,139,221,219,239,36,32,47,172,165,233,40,218,219,212,242,192,82,84,81,209,209,107,170,49,140,27,210,23,125,201,9,9,7,198,247,24,79,215,132,82,65,177,74,48,222,66,10,184,34,3,144,222,170,171,4,108,227,29,3,17,167,134,15,37,43,201,189,127,210,71,47,252,237,76,203,70,29,1,123,228,78,195,9,161,210,203,225,14,191,32,213,35,213,154,141,5,117,22,80,39,189,232,106,102,181,14,70,120,153,66,195,126,234,197,88,234,63,89,131,31,42,121,13,60,112,153,96,193,198,75,116,2,195,89,138,2,3,76,70,109,169,110,164,100,9,60,28,106,194,251,215,246,250,103,150,13,164,202,161,70,244,185,91,23,247,87,79,193,240,1,104,161,67,26,197,228,64,177,136,218,97,199,253,159,200,154,141,168,105,3,245,185,112,186,227,21,104,206,79,176,34,24,139,191,101,55,88,13,186,212,198,225,216,21,85,126,253,6,173,47,11,238,48,203,20,196,90,214,212,125,94,165,187,226,215,61,166,184,124,248,80,74,201,129,16,95,157,149,150,81,204,134,5,172,190,250,23,89,221,15,203,55,182,137,171,134,129,194,2,224,8,185,167,29,74,211,243,242,180,157,241,146,116,229,55,41,124,126,116,188,242,184,133,34,17,37,210,22,0,141,89,59,29,202,56,207,208,254,39,88,132,10,200,252,19,159,146,131,18,115,146,39,13,173,163,37,18,41,28,0,11,255,134,132,173,127,27,29,25,5,217,79,248,132,161,80,129,87,189,92,250,48,211,15,250,119,215,234,203,122,106,86,13,88,185,90,12,113,55,240,123,81,42,28,132,125,33,77,153,144,92,106,141,187,13,162,238,112,159,200,75,100,8,187,228,148,36,115,79,132,202,14,213,33,143,197,78,201,79,183,81,173,93,22,48,180,43,140,104,129,221,188,158,149,67,209,26,229,1,16,6,41,131,46,3,128,115,111,247,193,230,216,211,251,213,34,233,72,103,28,140,132,27,7,199,20,69,41,89,191,68,175,23,169,97,133,161,163,183,141,129,67,243,44,13,200,57,163,244,34,56,91,221,178,63,255,208,143,126,240,23,243,60,199,45,110,248,213,170,63,28,225,33,152,243,150,142,39,157,145,23,254,153,11,249,159,154,187,47,132,13,172,139,235,246,146,56,214,97,245,191,254,239,47,169,89,184,41,72,82,235,230,85,9,88,88,185,105,25,83,164,161,155,227,152,37,11,94,215,27,58,134,73,170,86,197,170,21,146,214,239,110,100,244,36,154,199,82,162,199,182,162,215,24,199,29,219,202,68,215,147,113,71,42,42,193,152,230,166,94,178,232,169,170,118,62,38,221,92,42,4,228,77,235,209,128,115,53,63,144,6,158,173,31,245,194,221,110,36,255,182,49,166,215,106,254,168,168,235,207,217,68,236,241,169,122,207,3,92,41,154,40,130,198,241,132,208,69,18,104,168,45,30,208,66,2,191,103,187,15,133,22,95,85,228,61,244,88,33,33,228,242,214,246,42,210,57,185,87,11,178,51,191,248,3,113,249,253,4,108,135,89,58,25,26,208,135,236,81,17,43,174,226,23,58,0,113,42,31,156,94,190,140,245,19,146,146,247,51,25,119,6,65,149,158,130,143,103,254,215,88,71,136,26,162,140,3,119,42,108,150,180,110,130,122,250,24,182,29,60,134,146,89,36,195,201,73,124,121,132,229,41,161,46,65,128,193,23,247,137,69,55,115,207,21,229,103,242,9,130,226,91,174,78,66,62,67,253,115,182,15,157,163,49,21,99,218,46,151,56,130,120,198,74,43,84,22,164,61,110,67,43,227,41,55,223,169,155,92,239,176,233,176,185,123,93,230,252,170,68,162,46,178,138,109,110,138,137,85,146,60,132,150,66,152,255,96,230,103,5,241,20,200,204}, {176,56,139,119,112,175,49,66,0,148,224,39,197,85,135,247,37,214,87,197,239,97,132,130,11,251,88,27,188,8,9,106,90,74,227,3,181,84,57,133,246,226,12,42,165,104,194,89,221,135,151,95,34,247,245,211,199,65,196,114,239,185,150,44,235,76,40,82,48,28,86,162,43,131,224,230,87,5,114,229,239,97,70,217,139,53,207,106,237,186,147,43,41,21,56,185,134,238,230,139,57,199,98,95,187,181,99,168,246,23,59,17,183,199,252,228,138,155,78,116,40,205,64,231,244,6,29,66,44,167,180,127,82,159,172,64,176,23,54,239,17,117,60,195,9,201,162,70,211,75,89,181,31,134,253,210,70,82,233,10,4,119,165,118,247,40,208,101,153,147,146,48,187,171,171,182,211,113,233,235,154,66,180,202,155,57,203,215,58,242,22,16,226,135,45,7,176,167,241,235,237,239,158,125,136,209,10,132,123,189,215,173,63,145,221,205,205,5,177,222,232,199,18,141,251,122,58,49,247,166,156,103,44,67,217,189,166,161,24,66,204,108,166,63,171,178,89,58,17,40,249,241,252,192,24,227,243,133,127,74,234,104,107,11,4,212,227,165,179,152,13,182,227,83,103,173,97,206,252,240,66,81,191,229,219,50,186,157,9,69,51,42,214,160,19,55,133,195,92,97,219,176,153,244,114,243,113,20,159,2,141,223,253,186,77,23,217,136,85,217,232,175,196,68,41,107,178,38,154,115,89,213,222,11,172,190,197,180,111,185,224,19,197,195,144,68,216,205,215,244,182,124,178,97,207,140,192,55,21,211,172,225,213,227,40,142,192,185,243,114,40,99,35,214,134,149,70,32,160,97,33,115,37,245,218,181,7,68,225,243,173,187,137,87,44,113,138,57,4,60,3,246,28,82,216,67,30,101,84,243,110,141,177,193,224,5,119,197,183,53,245,122,251,204,177,74,219,71,123,110,181,215,178,247,211,184,206,3,152,108,101,81,3,220,10,71,218,59,152,117,136,165,80,197,31,252,50,106,130,185,40,128,40,94,239,56,131,135,179,57,243,171,252,188,215,178,88,191,6,58,176,105,65,29,145,161,112,124,203,75,225,126,192,212,198,42,90,160,51,107,255,227,31,9,23,215,112,202,200,5,83,152,186,92,168,223,31,58,225,141,96,135,61,159,127,240,241,144,172,141,137,43,186,125,44,13,163,184,175,162,157,115,240,72,27,224,195,19,197,238,228,128,85,168,129,127,126,90,171,146,18,102,137,92,23,155,195,49,107,58,54,34,216,101,9,203,201,81,108,131,112,45,233,202,4,85,107,160,213,153,62,141,51,234,229,39,206,111,226,195,250,134,209,76,110,80,148,101,250,2,23,66,220,223,220,208,161,118,196,66,93,236,18,162,159,128,111,91,139,191,228,253,165,228,121,24,20,238,121,58,242,38,200,125,9,95,11,74,164,156,102,232,141,126,98,115,201,148,226,36,22,113,87,133,195,185,192,169,169,21,208,218,186,164,37,184,106,0,195,41,128,237,23,136,24,43,181,188,241,135,183,87,58,147,68,164,34,81,18,149,146,0,61,60,28,186,143,54,132,170,83,131,102,147,53,76,11,43,21,234,203,207,155,150,44,149,92,101,69,198,155,62,14,170,12,118,205,206,50,162,238,27,9,60,139,166,16,84,146,59,113,177,107,113,74,62,87,86,160,239,99,109,80,117,139,207,180,66,4,94,53,187,234,117,161,217,112,32,153,122,119,120,79,140,52,86,187,26,179,55,45,216,225,194,138,81,40,250,54,95,83,161,75,230,222,226,125,248,239,151,152,199,168,25,50,231,206,102,141,158,63,5,17,150,73,205,219,195,80,87,161,22,74,219,38,53,20,217,46,134,62,126,90,202,176,99,239,127,117,62,56,243,200,189,33,100,240,15,217,74,133,134,132,0,192,229,191,41,68,20,150,79,188,135,165,114,141,184,80,136,251,39,157,204,250,218,213,32,202,215,82,176,105,190,170,142,27,233,44,234,42,155,30,170,84,198,27,44,57,253,25,252,84,174,15,109,20,6,114,25,254,44,56,235,255,175,87,29,203,126,150,185,222,6,63,191,7,28,130,112,118,217,150,137,28,100,86,212,65,203,89,188,233,42,62,12,0,118,144,235,173,168,89,203,48,187,165,74,222,213,98,109,18,214,247,52,44,105,164,233,7,182,168,198,142,7,227,25,64,180,192,245,236,146,1,109,185,62,137,95,185,67,86,94,243,135,81,119,103,240,135,162,23,108,103,241,124,58,118,146,212,189,166,34,54,249,225,162,249,119,50,140,146,93,138,61,8,186,117,46,7,147,119,167,197,233,67,56,230,48,85,3,102,143,142,245,242,220,65,232,93,194,134,248,4,202,76,51,196,88,150,85,213,96,201,86,115,34,84,74,187,236,107,74,221,241,188,172,254,64,22,209,83,185,254,202,181,236,132,207,20,36,200,74,110,214,58,187,40,164,24,55,173,55,251,236,7,212,221,123,48,186,128,10,2,163,84,62,34,138,45,108,230,6,152,196,200,129,211,76,194,64,156,26,189,43,203,201,210,38,215,172,90,104,63,161,172,199}, } ; static void test_decode_761x4591_impl(long long impl) { unsigned char *x = test_decode_761x4591_x; unsigned char *s = test_decode_761x4591_s; unsigned char *x2 = test_decode_761x4591_x2; unsigned char *s2 = test_decode_761x4591_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_761x4591_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761x4591(impl); printf("decode_761x4591 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761x4591_implementation(impl),ntruprime_dispatch_decode_761x4591_compiler(impl)); } else { crypto_decode = ntruprime_decode_761x4591; printf("decode_761x4591 selected implementation %s compiler %s\n",ntruprime_decode_761x4591_implementation(),ntruprime_decode_761x4591_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_761x4591_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_761x4591_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_761x4591_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_761x4591_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_761x4591_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_761x4591_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_761x4591(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761x4591")) return; storage_decode_761x4591_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_761x4591_x = aligned(storage_decode_761x4591_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_761x4591_s = callocplus(crypto_decode_STRBYTES); test_decode_761x4591_s = aligned(storage_decode_761x4591_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_761x4591_x2 = callocplus(maxalloc); test_decode_761x4591_x2 = aligned(storage_decode_761x4591_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_761x4591_s2 = callocplus(maxalloc); test_decode_761x4591_s2 = aligned(storage_decode_761x4591_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_761x4591 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_761x4591();++impl) forked(test_decode_761x4591_impl,impl); ++test_decode_761x4591_x; ++test_decode_761x4591_s; ++test_decode_761x4591_x2; ++test_decode_761x4591_s2; } free(storage_decode_761x4591_s2); free(storage_decode_761x4591_x2); free(storage_decode_761x4591_s); free(storage_decode_761x4591_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_761xint16.c0000644000000000000000000013123014705505543022727 0ustar rootroot/* ----- decode/761xint16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_761xint16_checksums[] = { "49e6aca48717c2e93b56d9706189b6c5b21781086c569bf421628343fec2bc06", "fd2f7ecff81bea4ae8e08a3bf1b6d4e57d328c481f773c60d3f1a773c25dbfca", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_761xint16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_761xint16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_761xint16_ITEMBYTES static void *storage_decode_761xint16_x; static unsigned char *test_decode_761xint16_x; static void *storage_decode_761xint16_s; static unsigned char *test_decode_761xint16_s; static void *storage_decode_761xint16_x2; static unsigned char *test_decode_761xint16_x2; static void *storage_decode_761xint16_s2; static unsigned char *test_decode_761xint16_s2; #define precomputed_decode_761xint16_NUM 4 static const uint16_t precomputed_decode_761xint16_x[precomputed_decode_761xint16_NUM][crypto_decode_ITEMS] = { {65242,45043,62201,1582,47736,58606,47938,23416,14159,11360,49282,21308,46093,63341,61728,31773,36798,31653,52023,18360,28639,51258,31498,52992,65052,34358,42808,56007,44052,52456,53746,2797,40893,51903,52905,21316,16321,51247,18169,1865,30224,26042,49922,11969,59156,8316,65259,1222,59191,20061,47365,7166,49724,22047,245,16848,23300,15366,3275,36305,47211,57251,47160,39006,27825,54350,18170,5670,11108,63190,26213,3493,13597,48045,5577,26026,21359,45232,11514,9745,54573,31052,53932,38111,35163,36325,26515,53881,17898,3225,40666,22195,40017,62248,31409,27235,35073,44860,36031,27868,24616,12316,9015,48366,5909,8241,39125,44772,54921,37060,62892,27304,24185,39824,60591,49048,16875,64925,11120,46238,30358,44219,47534,31679,51908,13758,1552,52093,7462,51742,34510,31918,39138,21991,46326,59992,52097,24864,64199,60366,9055,31707,5678,44681,42290,24264,7005,7892,47397,27796,15296,63148,57983,65318,50887,56813,60586,33338,40534,3694,19964,60835,20103,55301,35777,59063,24504,10117,64399,56896,38122,60978,46890,9094,15385,27155,30055,29294,41112,52408,26740,25341,3899,35053,50193,47909,43404,29772,61641,58940,10223,24874,35733,17577,12352,218,27564,19322,31369,36712,2890,53351,14870,63201,48034,60464,65162,55595,22070,55687,38778,1866,19428,58706,2819,62032,18054,17068,950,34541,65266,40590,21756,6135,25941,62149,31151,16928,25840,14730,10987,38335,16757,38521,38154,3361,61589,14393,48871,4467,64986,29601,46216,52025,48700,34938,28355,34634,13112,41805,34947,24518,56237,11111,42869,9624,41338,11355,33016,34640,28153,46253,1605,43059,48783,50922,11654,48784,32725,39847,56637,2293,2797,6280,17060,18944,7957,17593,24575,45845,14925,31683,32354,35106,6633,1857,63641,6123,61119,57576,2722,5530,60686,22037,51727,12103,50100,53619,34318,42284,21334,45787,51440,37631,54553,882,8288,46628,58259,16050,40796,35720,4603,900,15340,17015,7626,43407,41418,43509,13133,1673,7157,58274,22036,58033,59374,39995,921,33932,47262,404,42465,16152,40653,48633,44709,45248,34917,20811,8525,52470,38269,49422,50025,21620,13327,12978,32400,47020,56270,41317,23088,4419,47616,15679,19342,17528,55250,40180,19208,48563,61794,44112,4502,48449,5952,12550,60591,21346,7089,29379,44907,4160,30013,7975,22853,12264,3337,40607,56495,31237,46787,44797,44753,55269,59778,61623,47384,53608,6349,63399,34546,53863,24345,18318,36327,23852,48795,42218,17603,51683,17829,34197,1080,20330,49364,63624,58674,13221,25336,46088,13198,21843,58705,26821,40491,58848,58585,27400,57826,29377,60916,20551,22457,9508,55251,27261,63873,10597,26302,3527,33415,10836,43073,31874,37236,50727,14311,40135,37541,20888,2805,12677,36458,2992,29989,45381,25330,36238,7090,45332,5710,64916,44871,48698,24528,40367,13441,47806,14012,46004,19306,3822,41454,47053,11739,3714,41367,63027,3168,20698,59181,16745,40446,32172,30398,2878,12495,28613,48620,61189,17121,29610,45222,13769,37790,29055,41584,63359,21861,10177,64293,55286,60822,40093,3020,8777,37610,8618,8575,36343,19687,59056,17169,34125,8663,25591,59154,41494,53599,35509,34071,48409,60810,39962,29649,28436,47206,17248,34167,7857,26597,11300,9464,22118,18314,61586,7791,4761,25831,8829,17348,24817,43352,20712,53770,26429,23252,20352,55678,23465,42787,54734,27813,43432,5476,27267,58245,31389,55358,40191,28309,30278,39660,30213,34705,53174,64120,58271,45059,64665,28623,16569,38361,52041,25008,18435,5157,17944,12876,14743,20254,62467,59368,64487,13235,4851,44994,58511,39427,21655,4258,41622,55122,29834,33731,44592,31198,30717,29876,5354,32285,21203,22411,22153,25946,37115,58626,18834,12356,37453,51990,12972,27593,5510,38276,33795,48056,11599,63432,29883,29124,28943,32633,24566,53674,43374,45918,33882,9063,28421,4978,56501,26135,38599,60395,4788,56860,28038,58516,25136,60638,41418,63445,30164,38694,64662,2057,13196,27796,10974,31296,38826,37138,44537,44242,20695,42455,54525,2166,57918,16191,3121,16574,41119,63599,24152,45382,60158,10487,349,19371,60723,64104,20059,21641,12633,45753,62132,18484,53340,18753,11698,51609,2148,15121,6310,2344,27383,20368,18102,18161,13554,38042,8475,64626,34491,34301,17169,50043,64436,11258,32805,25262,5930,43615,19509,35535,61349,14753,48980,300,47326,43490,24598,22996,58726,10699,32922,29055,51925,45467,58732,37832,52821,36156,17793,36892,21341,4130,35466,9886,5298,35624,20403,5859,60016,49931,11110,11264,58760,37167,53039,32293,21188,63211,24761,34891,28764,58988,53747,45101,51664,33319,59784,24228,8468,25923,44662,29533,33509,24682,18225,2773,34841,42849,28919,38103,58745,45025}, {8803,6695,61775,23769,65225,31880,46039,26284,2538,20973,21596,45309,730,8136,14985,46635,15538,7499,7113,5422,2510,16184,6933,40877,5593,17213,30657,9518,2244,43438,17469,35957,64030,15131,3725,6453,48488,38625,55167,13064,30363,6359,7968,231,14278,911,46985,58039,23896,46692,34682,61114,4978,12611,7494,57236,29587,13693,10872,6086,34832,55365,6580,25978,19154,58843,30186,47111,17612,57301,63972,24949,6947,28140,56569,19381,6103,27913,6446,58276,43295,10588,8378,62831,27144,21491,20800,59619,6449,59083,59977,59968,17981,39370,40504,13331,14854,4408,52365,27969,48727,38328,19083,31972,49867,58001,30564,29520,62312,41907,54160,44408,33818,44067,20889,17761,12720,3794,58153,9587,50190,23386,26234,61881,22733,14290,3536,57731,41563,21482,5944,6532,30442,22119,12597,6010,61532,21462,18082,61369,31131,26171,51104,64093,50674,54304,5877,37873,34621,63983,39839,45687,4087,53181,50417,1518,6304,42145,28311,17939,21193,61711,16435,23309,13124,14979,2038,11612,22984,54009,16883,33955,1289,14371,23585,28484,18605,7783,14288,29115,22447,49106,42226,21183,2780,17092,38913,46901,64201,2921,60531,60726,49070,5291,45973,26975,55390,58623,11604,65153,31778,210,6042,28927,49290,34937,20005,25213,60345,4708,39427,37510,56537,23933,5884,12253,3116,5202,62376,4612,18166,39766,3522,12730,63318,10776,3347,37138,54370,60937,19192,10770,6243,15718,2872,24231,17969,29493,4848,18694,51327,34419,11918,24484,61677,39821,29009,44101,34651,33924,57033,47924,32520,45462,59810,28837,14684,58016,19052,26916,26309,4200,33832,1604,3501,49536,60260,33316,27069,59793,10199,60262,49719,16345,20959,27426,15398,50998,48523,37706,10235,45817,19052,42300,52073,32896,1304,5289,7510,33721,50848,38230,2154,42445,3739,41241,46930,57326,18626,60431,31560,7293,21029,10025,42726,42214,22943,17083,65263,54827,5150,44085,13670,18039,42758,61350,48392,50348,53261,26839,33770,42387,18569,57808,24233,55032,46096,49840,35955,65535,1572,55265,57348,3662,47377,12344,26996,40445,30363,57804,14755,58488,62650,55477,17970,35532,21571,20913,63144,47265,1548,38949,34532,11681,19355,15164,13463,36966,11984,26917,54077,55335,50462,50245,46641,12908,59682,39389,26514,32810,50236,20176,52374,36517,52101,42643,6717,22873,27319,54118,47977,11055,30647,63627,6958,16357,31007,46020,16871,56488,42622,36767,35182,35414,32192,53065,33235,31920,61380,10323,43107,27261,4736,45616,21106,33563,52888,34380,12077,5087,17431,16188,29401,23152,4072,27221,26956,40956,37917,40132,4854,60547,43486,65381,32023,4473,33736,24100,34176,42851,41678,48949,63037,4495,21341,32301,57226,2918,50737,7630,11631,27138,4294,35666,62015,18482,22025,9749,6209,62340,3688,31345,30456,3485,21746,55351,29347,25981,38070,42120,54527,63137,11543,13059,42823,44345,60392,41894,51379,41078,2101,4735,46751,13504,58600,54970,40729,61447,52966,12257,23462,13403,770,23594,4458,45997,21926,14205,64602,59643,10480,15597,30925,36709,3108,58827,5502,20135,43727,57927,33385,20582,4350,30021,12792,5672,31231,31472,62660,9735,23184,47856,55816,38923,62900,16734,52878,53788,60697,10439,31677,57742,27052,26069,64666,48525,16936,39282,49443,29289,58174,65208,11098,1367,36770,56855,36522,8196,54533,45372,38254,49604,46548,62380,52267,49450,11297,48178,63698,28644,48918,55456,19127,64444,47845,43313,42785,55104,40044,50205,52872,8785,47132,21922,61446,60089,53942,33252,54262,33994,14532,35557,7280,4363,13840,39570,5948,50761,56488,9088,22187,34608,24604,58360,32069,26791,56546,57711,36349,33942,5744,16731,16924,58930,19665,48700,30342,14633,26122,64395,20767,23152,6871,46328,51318,47203,16711,50346,15125,59810,51866,49767,43798,48101,29033,21598,44394,27453,12807,57578,59068,59241,29856,21014,48151,23248,1428,11673,47298,28556,59038,51423,46869,44426,17407,59989,12068,39536,32467,24632,23799,197,54900,52971,22646,24508,64468,5999,40432,2422,62801,6601,33684,35957,3730,35858,29542,57744,34260,53371,59983,1134,14030,30931,3456,39001,29257,51587,56122,19430,42200,30932,64099,54021,47161,3692,16292,26329,28200,30637,1708,38142,29060,12218,58785,58678,33713,29629,42720,17008,58493,50158,48166,51296,19213,59118,41613,22677,15374,64123,27966,24278,13469,1585,38446,34419,46572,58253,44175,17639,3701,62742,48733,51304,2477,62853,18494,35382,37541,56910,47832,27405,56135,34773,47042,18592,62496,61119,13136,22030,13123,43927,62217,32956,5165,46891,33789,53930,24238,56831,14805,8325,53724,58846,3008,58847,8519,22875,9654,30634,28597,20525,32677,13174,9976,27144,60641,3398,36229,45414,1664}, {64583,37438,35151,43912,65324,62911,7763,7635,48616,47240,12834,7163,55967,34931,38988,19532,26977,15941,63132,40660,20946,59660,51499,28933,11581,19315,51580,32913,12265,36546,21558,59004,63702,41602,8173,62491,59848,54246,50468,28932,15347,12991,28427,28200,30013,43461,61796,48278,4376,45454,12128,39530,62626,13229,42364,30940,3404,42569,45349,47792,26174,26149,45536,48400,18325,21648,27318,8027,6111,52128,4147,44404,12954,26879,25597,14506,34887,20160,43443,55493,27347,21413,51296,8336,47072,44860,29981,44349,63273,56253,27709,39159,15974,3789,13466,9115,13108,4862,39742,53392,37969,26822,206,59604,7755,31278,54297,58896,37064,16144,6002,38755,47503,13876,23598,46176,1558,16530,4592,64175,26884,43721,58886,12142,52816,18782,35734,22096,45142,33862,50609,18587,33426,23673,34064,29528,48832,58633,282,12931,47304,51560,6234,43738,37282,47468,53820,2298,65387,35062,8358,29950,63331,49056,47772,65155,60688,32846,27432,34848,4025,43134,58487,58811,24493,43319,2879,687,13444,5015,35896,56982,55270,44766,9683,25704,53778,64695,25343,617,17786,40165,935,29583,1051,63069,43901,29371,52181,33363,16042,29084,54532,46287,56390,30565,37171,45633,15529,50681,3558,18075,8856,15121,43205,15820,39039,27527,34110,39117,55459,12305,28417,63915,21388,11383,58220,3610,6596,24469,3784,53071,47567,39055,14628,45696,43756,46765,10191,35296,4609,24165,55742,26352,16829,18132,12975,63633,1086,24357,9442,34930,51473,14741,59802,42544,62338,44657,47245,12921,61205,14431,18722,41851,37798,5122,55633,64793,1629,45758,28949,13432,46676,47247,1637,10245,57654,49585,12230,60785,48010,32797,8470,21661,25293,28413,63688,7344,30288,27106,61353,53173,739,46629,33861,40181,18228,10810,65405,45366,42510,53809,39403,43797,27225,50276,3869,11766,22736,33599,58880,27246,18442,518,15750,18039,37817,41529,39152,43441,34000,14060,6745,5846,20850,40093,40109,29994,12163,12714,18609,58854,7965,48314,9930,35891,20450,40248,58638,45916,9849,36182,62125,53412,40398,39668,16312,7864,63399,53807,64597,13596,17363,11748,5147,32325,50940,10200,8457,15675,32617,58300,36288,411,32229,19374,45945,34892,58528,25642,57384,30382,5453,2575,59585,38849,41051,51229,40869,21781,29200,46577,27322,42897,55713,59406,57229,10611,15649,64190,48980,35451,15885,56790,29296,31199,10741,51252,7213,61743,40510,36603,16836,12763,45842,45950,11177,23621,33717,13429,21800,47458,19972,37192,12265,34397,6712,43014,41607,29467,14174,37112,35714,54633,4030,47826,28284,20022,5848,14605,8828,33202,28804,1060,59935,45647,1879,927,28581,53559,45834,37438,42175,15725,42513,1095,56026,19560,16129,47013,25762,1102,24500,29730,2263,65084,20687,12949,59430,27857,6003,58357,19942,55216,47422,28454,53206,32404,3781,50704,62816,56918,29650,49350,44087,56521,21115,13403,28783,48209,416,11703,43633,12274,18633,26250,65124,15803,10942,5234,39166,58731,65381,1700,59774,26303,43039,26615,33505,62059,4842,40509,20854,1386,59333,2634,37226,58590,16883,22772,32844,12131,7522,39710,20682,37079,2382,31686,25627,57464,20178,60454,43343,52861,9135,35529,33091,36520,22082,30729,56185,1326,27526,64739,61135,4709,47893,58384,24423,58846,50700,20927,58975,44935,23092,14054,31278,38063,391,64062,63229,60260,36007,16969,45523,50032,46111,28685,50448,18443,12226,26328,56378,6517,44907,52001,2119,11105,40241,12720,2669,15166,62699,12031,8971,8832,41173,17502,14640,48962,48145,56989,61645,29415,3180,56071,26082,45223,62113,19969,5102,48853,3598,9080,18660,38780,17685,59136,38473,35805,24097,8046,44341,20663,38172,6841,53404,42064,49925,29688,30581,24698,64417,36390,32786,61695,23820,50428,26778,34281,59109,53428,57868,39214,15885,36900,53964,38507,27160,56105,54416,24447,60744,64266,7096,8182,60290,26481,15675,3635,55654,3804,9593,38047,43655,2604,57473,48936,53767,40514,21252,10796,56339,49076,1931,62137,53100,51837,10265,61866,38784,11828,14252,15206,59229,56279,10226,61198,56259,63089,31623,51776,41606,59538,25544,12919,34658,36412,57571,62659,24444,44003,9631,49245,14126,64200,59837,3656,40333,19320,57631,56214,9224,55480,48702,59964,47076,981,31426,15633,47856,25051,50806,35527,45450,48206,11610,6722,4418,3715,22176,1987,1071,24836,53242,32739,50778,43479,4725,25154,8472,40660,54414,56374,28411,20119,32645,61026,46096,7091,49167,64372,2520,18417,12922,40504,37010,58311,19508,16125,40965,28881,34779,39402,51270,13405,10541,5304,3772,61047,36273,29755,8426,57833,59580,36601,50048,10946,59518,39591,26751,46770,34994,38524,49596,10580,30681,40301,49824,15187,65438}, {45147,35056,49220,12142,44176,55257,44888,63143,36853,8026,50217,45235,29081,14568,60161,18853,3362,2177,23035,45236,29804,65084,13661,41806,58780,20989,20326,33515,50913,39094,33529,65449,16782,37582,45304,2241,61824,15933,62017,23126,40297,25872,56580,59743,46220,45963,3318,52785,22875,27980,62534,64099,63255,41206,58925,47928,33392,16915,105,44046,43449,52227,28519,53169,52530,51320,33333,11234,57839,62115,36465,30631,8196,58,10170,40726,63953,53073,49455,29601,65401,1817,38384,32255,35278,23659,58499,63885,58698,36069,50707,35187,795,57038,45623,8934,17081,24797,3997,40593,772,15353,29488,45376,514,65273,8170,20287,38523,61335,63265,5085,25766,37600,36037,15371,33373,28026,53991,8410,37116,3924,5011,7264,24650,14531,65342,49818,20480,22147,18765,63990,30155,54082,8648,29506,6224,88,45985,12130,37929,45796,6030,47051,19024,36735,34591,53271,31545,13901,7296,61579,15461,11880,27653,33671,31995,55464,53096,20480,44877,34872,56946,48749,50579,6985,40825,52601,42971,16294,52486,43555,38703,19204,11743,13333,32052,9618,48042,470,16036,8541,6911,40167,1057,13934,32729,21140,26437,25160,15917,9561,38607,18612,31773,4161,33296,40735,14232,55289,54054,40013,9582,21487,54217,56728,21202,55360,34423,3335,14835,25264,3005,33238,50150,38585,38345,8752,32231,59851,57221,4831,39664,29932,58703,17048,14713,64408,21268,22228,24838,36821,13514,16883,63831,6123,55442,39382,16998,58701,31255,50251,19843,42175,7544,21437,2902,53898,57212,33913,11980,18230,58175,56331,42074,33990,64696,35247,50786,3828,40148,64854,55751,8666,18813,31981,32584,21303,3510,40955,58107,58252,55561,56222,30796,31358,14484,37106,51890,15026,6106,62826,52202,17808,5558,53810,29311,61118,40365,30497,21568,27512,5363,48045,15513,33295,53894,47225,41223,36010,16173,20368,27041,29968,19788,11225,28544,50751,17636,1181,34518,51828,39877,18182,40059,8648,51738,19280,46861,5158,58131,40792,64678,11055,65237,26477,28645,42936,9038,36703,53162,15878,37058,46713,52500,65114,40029,19365,4062,28790,28399,2467,11556,15368,53519,61808,45879,45625,18118,37652,57862,34570,31482,42723,11442,11126,62563,64978,11731,42063,37885,15636,42177,61654,4357,22393,37407,2815,35970,61298,38400,29507,51490,32969,49064,49632,37791,50871,9507,6457,35195,30973,28127,65027,62095,8405,13547,24888,2950,42656,13324,36232,65123,14866,49131,10101,53539,43334,63430,12415,51569,7522,57574,64756,21213,8949,22318,45615,45864,21221,29439,11039,44759,42809,56713,49635,8247,4051,57129,5569,48129,54256,51957,59493,14270,16600,44162,11832,39135,45919,22686,40072,2501,16097,5610,51454,63544,23310,40678,46047,44731,41763,64059,64070,55240,22940,17585,31750,63905,8700,30663,28988,64048,38179,30591,12807,44551,12330,8406,35749,6788,63185,44519,2754,40733,58091,34477,4862,29260,63623,35363,13937,43358,16199,34692,2358,36836,15646,9716,54261,29168,15917,33853,12202,25605,26913,8967,33948,40465,36136,6593,17218,14675,65102,13533,13715,22615,35741,17367,8665,47463,48116,4623,64500,5565,51284,57154,23073,46295,64407,62294,61836,55296,1886,64470,20227,52780,51369,17352,54453,45235,58741,38957,821,8909,10667,50303,33130,10549,35589,49689,58489,22777,44011,46686,61847,38449,45273,43577,8867,36581,31166,24728,28296,23525,13671,71,31317,33636,25976,15583,8717,47876,27363,2850,27374,29575,45437,28976,8484,30784,29736,18196,60275,3643,31067,14368,28102,2883,48288,23778,3172,35452,12436,40667,58348,39519,21655,37733,4921,60303,42187,10710,37359,45365,19852,36505,53477,62852,48575,56846,18054,21931,62784,40164,61279,64331,40208,17242,12889,33999,6046,49724,50888,12736,26560,47120,5813,64470,24557,16253,17110,48844,1462,18296,6024,31578,36804,28324,60374,53504,27492,17119,38469,23347,31337,47182,14667,22752,29775,3954,30406,14009,36575,1456,41807,47763,63170,20654,62854,12287,46188,6950,12079,1735,26843,61101,47014,24644,1441,62916,60279,56941,63436,51204,16726,35153,49635,13563,835,40597,11686,60916,7026,21030,19524,62716,58511,14910,53020,15147,53619,30669,8838,10444,53083,33027,32343,48323,22772,32342,38138,62708,31656,15769,47975,9669,1440,22323,31557,24223,21573,41291,34054,62491,55920,26390,16969,4925,19123,34415,57582,16991,54321,18121,26942,51242,7714,34677,40385,56659,40323,13089,47812,45169,22680,35066,34354,20938,60290,19736,23157,33012,16412,55138,7448,42892,15460,32221,52805,33720,40530,5126,21645,1513,6275,37389,35738,5251,3489,54082,54997,3093,50100,55153,35319,61975,43793,23308,12335,53870,33075,44523,29939,50568,30835,60627,30572,63546,17605,9311}, } ; static const unsigned char precomputed_decode_761xint16_s[precomputed_decode_761xint16_NUM][crypto_decode_STRBYTES] = { {218,254,243,175,249,242,46,6,120,186,238,228,66,187,120,91,79,55,96,44,130,192,60,83,13,180,109,247,32,241,29,124,190,143,165,123,55,203,184,71,223,111,58,200,10,123,0,207,28,254,54,134,56,167,199,218,20,172,232,204,242,209,237,10,189,159,191,202,169,206,68,83,193,63,47,200,249,70,73,7,16,118,186,101,2,195,193,46,20,231,124,32,235,254,198,4,55,231,93,78,5,185,254,27,60,194,31,86,245,0,208,65,4,91,6,60,203,12,209,141,107,184,163,223,56,184,94,152,177,108,78,212,250,70,38,22,100,43,214,246,101,102,165,13,29,53,173,187,201,21,170,101,111,83,176,176,250,44,17,38,45,213,76,121,172,210,223,148,91,137,229,141,147,103,121,210,234,69,153,12,218,158,179,86,81,156,40,243,177,122,99,106,1,137,60,175,191,140,220,108,40,96,28,48,55,35,238,188,21,23,49,32,213,152,228,174,137,214,196,144,172,245,168,106,121,94,144,155,175,236,152,191,235,65,157,253,112,43,158,180,150,118,187,172,174,185,191,123,196,202,190,53,16,6,125,203,38,29,30,202,206,134,174,124,226,152,231,85,246,180,88,234,129,203,32,97,199,250,206,235,95,35,219,123,46,22,137,174,50,165,200,94,93,27,212,30,37,185,148,108,192,59,172,246,127,226,38,255,199,198,237,221,170,236,58,130,86,158,110,14,252,77,163,237,135,78,5,216,193,139,183,230,184,95,133,39,143,251,64,222,234,148,50,238,42,183,134,35,25,60,19,106,103,117,110,114,152,160,184,204,116,104,253,98,59,15,237,136,17,196,37,187,140,169,76,116,201,240,60,230,239,39,42,97,149,139,169,68,64,48,218,0,172,107,122,75,137,122,104,143,74,11,103,208,22,58,225,246,162,187,48,236,138,254,43,217,54,86,135,217,122,151,74,7,228,75,82,229,3,11,80,242,134,70,172,66,182,3,237,134,242,254,142,158,252,84,247,23,85,101,197,242,175,121,32,66,240,100,138,57,235,42,191,149,117,65,121,150,10,149,33,13,149,240,57,56,231,190,115,17,218,253,161,115,136,180,57,203,60,190,122,136,195,110,74,135,56,51,77,163,131,136,198,95,173,219,103,43,117,167,152,37,122,161,91,44,248,128,80,135,249,109,173,180,69,6,51,168,143,190,234,198,134,45,144,190,213,127,167,155,61,221,245,8,237,10,136,24,164,66,0,74,21,31,185,68,255,95,21,179,77,58,195,123,98,126,34,137,233,25,65,7,153,248,235,23,191,238,232,224,162,10,154,21,14,237,21,86,15,202,71,47,180,195,115,209,14,134,44,165,86,83,219,178,240,200,255,146,25,213,114,3,96,32,36,182,147,227,178,62,92,159,136,139,251,17,132,3,236,59,119,66,202,29,143,169,202,161,245,169,77,51,137,6,245,27,162,227,20,86,177,226,238,231,59,156,153,3,140,132,158,184,148,1,225,165,24,63,205,158,249,189,165,174,192,176,101,136,75,81,77,33,246,204,125,149,14,193,105,195,116,84,15,52,178,50,144,126,172,183,206,219,101,161,48,90,67,17,0,186,63,61,142,75,120,68,210,215,244,156,8,75,179,189,98,241,80,172,150,17,65,189,64,23,6,49,175,236,98,83,177,27,195,114,107,175,64,16,61,117,39,31,69,89,232,47,9,13,159,158,175,220,5,122,195,182,253,174,209,174,229,215,130,233,183,240,24,185,104,209,205,24,167,247,242,134,103,210,25,95,142,71,231,141,44,93,155,190,234,164,195,68,227,201,165,69,149,133,56,4,106,79,212,192,136,248,50,229,165,51,248,98,8,180,142,51,83,85,81,229,197,104,43,158,224,229,217,228,8,107,226,225,193,114,244,237,71,80,185,87,36,37,211,215,125,106,129,249,101,41,190,102,199,13,135,130,84,42,65,168,130,124,116,145,39,198,231,55,199,156,165,146,152,81,245,10,133,49,106,142,176,11,37,117,69,177,242,98,142,141,178,27,20,177,78,22,148,253,71,175,58,190,208,95,175,157,129,52,190,186,188,54,180,179,106,75,238,14,238,161,205,183,219,45,130,14,151,161,51,246,96,12,218,80,45,231,105,65,254,157,172,125,190,118,62,11,207,48,197,111,236,189,5,239,225,66,170,115,166,176,201,53,158,147,127,113,112,162,127,247,101,85,193,39,37,251,246,215,150,237,157,156,204,11,73,34,234,146,170,33,127,33,247,141,231,76,176,230,17,67,77,133,215,33,247,99,18,231,22,162,95,209,181,138,23,133,25,189,138,237,26,156,209,115,20,111,102,184,96,67,119,133,177,30,229,103,36,44,248,36,102,86,138,71,146,240,111,30,153,18,231,100,125,34,196,67,241,96,88,169,232,80,10,210,61,103,212,90,128,79,126,217,169,91,35,167,206,213,165,108,168,169,100,21,131,106,133,227,157,122,62,216,255,156,149,110,70,118,236,154,5,118,145,135,182,207,120,250,159,227,3,176,153,252,207,111,185,64,217,149,73,203,176,97,3,72,37,20,24,70,76,50,151,57,30,79,3,244,232,231,231,251,179,51,243,18,194,175,143,228,3,154,151,84,162,16,150,162,82,215,138,116,195,131,48,174,222,121,253,119,180,116,234,20,29,126,211,82,139,87,137,86,90,101,251,144,2,229,146,73,68,48,77,146,22,203,172,50,201,107,134,21,132,149,3,132,184,187,79,45,200,247,187,116,196,113,15,113,121,127,246,95,170,209,110,169,94,179,90,132,103,35,5,111,114,19,181,220,23,102,199,150,235,235,180,18,28,222,134,109,148,228,48,98,222,236,202,161,213,247,212,117,38,151,150,252,9,8,140,51,148,108,222,42,64,122,170,151,18,145,249,173,210,172,215,80,215,165,253,212,118,8,62,226,63,63,49,12,190,64,159,160,111,248,88,94,70,177,254,234,247,40,93,1,171,75,51,237,104,250,91,78,137,84,89,49,185,178,180,242,52,72,92,208,65,73,178,45,153,201,100,8,17,59,166,24,40,9,247,106,144,79,182,70,241,70,242,52,154,148,27,33,114,252,187,134,253,133,17,67,123,195,180,251,250,43,37,128,174,98,42,23,95,170,53,76,207,138,165,239,161,57,84,191,44,1,222,184,226,169,22,96,212,89,102,229,203,41,154,128,127,113,213,202,155,177,108,229,200,147,85,206,60,141,129,69,28,144,93,83,34,16,138,138,158,38,178,20,40,139,179,79,227,22,112,234,11,195,102,43,0,44,136,229,47,145,47,207,37,126,196,82,235,246,185,96,75,136,92,112,108,230,243,209,45,176,208,201,39,130,136,233,164,94,20,33,67,101,118,174,93,115,229,130,106,96,49,71,213,10,25,136,97,167,247,112,215,148,121,229,225,175}, {99,34,39,26,79,241,217,92,201,254,136,124,215,179,172,102,234,9,237,81,92,84,253,176,218,2,200,31,137,58,43,182,178,60,75,29,201,27,46,21,206,9,56,63,21,27,173,159,217,21,61,67,193,119,46,37,196,8,174,169,61,68,117,140,30,250,27,59,141,14,53,25,104,189,225,150,127,215,8,51,155,118,215,24,32,31,231,0,198,55,143,3,137,183,183,226,88,93,100,182,122,135,186,238,114,19,67,49,70,29,148,223,147,115,125,53,120,42,198,23,16,136,69,216,180,25,122,101,210,74,219,229,234,117,7,184,204,68,213,223,228,249,117,97,35,27,236,109,249,220,181,75,215,23,9,109,46,25,164,227,31,169,92,41,186,32,111,245,8,106,243,83,64,81,227,232,49,25,203,230,73,234,64,234,61,70,202,153,56,158,19,52,6,58,56,17,141,204,65,109,87,190,184,149,139,74,228,124,203,194,145,226,100,119,80,115,104,243,179,163,144,211,120,173,26,132,35,172,153,81,97,69,176,49,210,14,41,227,115,37,14,196,90,91,122,102,185,241,205,88,210,55,208,13,131,225,91,162,234,83,56,23,132,25,234,118,103,86,53,49,122,23,92,240,214,83,162,70,185,239,155,121,59,102,160,199,93,250,242,197,32,212,245,22,241,147,61,135,239,249,159,155,119,178,247,15,189,207,241,196,238,5,160,24,161,164,151,110,19,70,201,82,15,241,51,64,13,91,68,51,131,58,246,7,92,45,200,89,249,210,243,65,163,132,9,5,35,56,33,92,68,111,173,72,103,30,208,55,187,113,175,87,210,191,242,164,191,82,220,10,196,66,1,152,53,183,201,250,105,11,115,236,54,237,174,191,171,20,149,179,95,105,94,216,255,228,84,45,129,254,34,124,210,0,154,23,255,112,138,192,121,136,37,78,125,98,185,235,100,18,3,154,134,146,217,220,125,93,252,22,221,47,44,12,82,20,168,243,4,18,246,70,86,155,194,13,186,49,86,247,24,42,19,13,18,145,98,212,9,238,248,74,18,42,99,24,102,61,56,11,167,94,49,70,53,115,240,18,6,73,127,200,115,134,142,46,164,95,237,240,141,155,81,113,69,172,91,135,132,132,201,222,52,187,8,127,150,177,162,233,165,112,92,57,160,226,108,74,36,105,197,102,104,16,40,132,68,6,173,13,128,193,100,235,36,130,189,105,145,233,215,39,102,235,55,194,217,63,223,81,34,107,38,60,54,199,139,189,74,147,251,39,249,178,108,74,60,165,105,203,128,128,24,5,169,20,86,29,185,131,160,198,86,149,106,8,205,165,155,14,25,161,82,183,238,223,194,72,15,236,72,123,125,28,37,82,41,39,230,166,230,164,159,89,187,66,239,254,43,214,30,20,53,172,102,53,119,70,6,167,166,239,8,189,172,196,13,208,215,104,234,131,147,165,137,72,208,225,169,94,248,214,16,180,176,194,115,140,255,255,36,6,225,215,4,224,78,14,17,185,56,48,116,105,253,157,155,118,204,225,163,57,120,228,186,244,181,216,50,70,204,138,67,84,177,81,168,246,161,184,12,6,37,152,228,134,161,45,155,75,60,59,151,52,102,144,208,46,37,105,61,211,39,216,30,197,69,196,49,182,108,50,34,233,221,153,146,103,42,128,60,196,208,78,150,204,165,142,133,203,147,166,61,26,89,89,183,106,102,211,105,187,47,43,183,119,139,248,46,27,229,63,31,121,196,179,231,65,168,220,126,166,159,143,110,137,86,138,192,125,73,207,211,129,176,124,196,239,83,40,99,168,125,106,128,18,48,178,114,82,27,131,152,206,76,134,45,47,223,19,23,68,60,63,217,114,112,90,232,15,85,106,76,105,252,159,29,148,196,156,246,18,131,236,222,169,101,255,23,125,121,17,200,131,36,94,128,133,99,167,206,162,53,191,61,246,143,17,93,83,45,126,138,223,102,11,49,198,206,29,111,45,2,106,198,16,82,139,63,242,50,72,9,86,21,38,65,24,132,243,104,14,113,122,248,118,157,13,242,84,55,216,163,114,125,101,182,148,136,164,255,212,161,246,23,45,3,51,71,167,57,173,232,235,166,163,179,200,118,160,53,8,127,18,159,182,192,52,232,228,186,214,25,159,7,240,230,206,225,47,166,91,91,52,2,3,42,92,106,17,173,179,166,85,125,55,90,252,251,232,240,40,237,60,205,120,101,143,36,12,203,229,126,21,167,78,207,170,71,226,105,130,102,80,254,16,69,117,248,49,40,22,255,121,240,122,196,244,7,38,144,90,240,186,8,218,11,152,180,245,94,65,142,206,28,210,25,237,199,40,189,123,142,225,172,105,213,101,154,252,141,189,40,66,114,153,35,193,105,114,62,227,184,254,90,43,87,5,162,143,23,222,170,142,4,32,5,213,60,177,110,149,196,193,212,181,172,243,43,204,42,193,33,44,50,188,210,248,228,111,22,191,160,216,183,74,188,251,229,186,49,169,33,167,64,215,108,156,29,196,136,206,81,34,28,184,162,85,6,240,185,234,182,210,228,129,246,211,202,132,196,56,229,138,112,28,11,17,16,54,146,154,60,23,73,198,168,220,128,35,171,86,48,135,28,96,248,227,69,125,167,104,226,220,111,225,253,141,150,132,112,22,91,65,28,66,50,230,209,76,60,190,134,118,41,57,10,102,139,251,31,81,112,90,215,26,248,180,118,200,99,184,71,65,170,196,21,59,162,233,154,202,103,194,22,171,229,187,105,113,94,84,106,173,61,107,7,50,234,224,188,230,105,231,160,116,22,82,23,188,208,90,148,5,153,45,194,184,140,111,158,230,223,200,21,183,138,173,255,67,85,234,36,47,112,154,211,126,56,96,247,92,197,0,116,214,235,206,118,88,188,95,212,251,111,23,240,157,118,9,81,245,201,25,148,131,117,140,146,14,18,140,102,115,144,225,212,133,123,208,79,234,110,4,206,54,211,120,128,13,89,152,73,114,131,201,58,219,230,75,216,164,212,120,99,250,5,211,57,184,108,14,164,63,217,102,40,110,173,119,172,6,254,148,132,113,186,47,161,229,54,229,177,131,189,115,224,166,112,66,125,228,238,195,38,188,96,200,13,75,238,230,141,162,149,88,14,60,123,250,62,109,214,94,157,52,49,6,46,150,115,134,236,181,141,227,143,172,231,68,117,14,22,245,93,190,104,200,173,9,133,245,62,72,54,138,165,146,78,222,216,186,13,107,71,219,213,135,194,183,160,72,32,244,191,238,80,51,14,86,67,51,151,171,9,243,188,128,45,20,43,183,253,131,170,210,174,94,255,221,213,57,133,32,220,209,222,229,192,11,223,229,71,33,91,89,182,37,170,119,181,111,45,80,165,127,118,51,248,38,8,106,225,236,70,13,133,141,102,177,128,6}, {71,252,62,146,79,137,136,171,44,255,191,245,83,30,211,29,232,189,136,184,34,50,251,27,159,218,115,136,76,152,76,76,97,105,69,62,156,246,212,158,210,81,12,233,43,201,5,113,61,45,115,75,124,201,145,128,233,47,194,142,54,84,124,230,214,248,130,162,237,31,27,244,200,233,230,211,36,197,4,113,243,59,191,50,11,111,40,110,61,117,197,169,100,241,150,188,24,17,142,177,96,47,106,154,162,244,173,51,124,165,220,120,76,13,73,166,37,177,176,186,62,102,37,102,224,177,16,189,149,71,144,84,182,106,91,31,223,23,160,203,51,16,116,173,154,50,255,104,253,99,170,56,71,136,192,78,179,169,197,216,211,106,165,83,96,200,144,32,224,183,60,175,29,117,61,173,41,247,189,219,61,108,247,152,102,62,205,14,154,52,155,35,52,51,254,18,62,155,144,208,81,148,198,104,206,0,212,232,75,30,46,122,25,212,16,230,200,144,16,63,114,23,99,151,143,185,52,54,46,92,96,180,22,6,146,64,240,17,175,250,4,105,201,170,6,230,110,47,80,206,94,73,150,139,80,86,86,176,70,132,177,197,155,72,146,130,121,92,16,133,88,115,192,190,9,229,26,1,131,50,200,184,104,201,90,24,218,170,162,145,108,185,60,210,250,8,107,255,246,136,166,32,254,116,99,247,160,191,156,186,131,254,16,237,78,128,40,107,32,136,185,15,126,168,119,228,187,229,173,95,55,169,63,11,175,2,132,52,151,19,56,140,150,222,230,215,222,174,211,37,104,100,18,210,183,252,255,98,105,2,122,69,229,156,167,3,143,115,27,4,93,246,125,171,187,114,213,203,83,130,170,62,156,113,4,213,207,180,70,220,101,119,51,145,65,178,169,60,249,197,230,13,155,70,152,34,17,59,197,168,204,61,127,152,135,107,62,133,205,152,163,216,17,48,1,111,171,249,140,83,119,44,108,227,26,14,196,25,149,95,200,14,79,207,207,185,143,152,36,57,128,178,236,170,173,182,207,39,224,137,1,18,101,94,190,217,240,102,189,65,212,70,175,50,145,248,62,4,37,95,226,36,114,136,17,201,149,57,154,233,48,166,130,243,113,174,141,184,121,50,21,239,95,56,34,73,123,163,166,147,2,20,81,217,25,253,93,6,190,178,21,113,120,52,84,182,143,184,101,6,5,40,54,225,177,193,198,47,113,237,138,187,29,128,22,33,157,84,205,98,253,110,200,248,176,28,80,118,226,105,169,239,181,207,227,2,37,182,69,132,245,156,52,71,58,42,125,255,54,177,14,166,49,210,235,153,21,171,89,106,100,196,29,15,246,45,208,88,63,131,0,230,110,106,10,72,6,2,134,61,119,70,185,147,57,162,240,152,177,169,208,132,236,54,89,26,214,22,114,81,157,156,173,156,42,117,131,47,170,49,177,72,230,229,29,31,186,188,202,38,51,140,226,79,56,157,14,229,92,179,121,38,86,141,173,242,164,208,206,157,244,154,184,63,184,30,167,247,47,210,85,252,28,53,211,67,228,45,27,20,69,126,252,198,216,39,9,33,59,61,105,127,188,227,192,141,155,1,229,125,174,75,121,179,76,136,160,228,42,100,40,224,174,118,77,21,15,10,193,232,193,151,91,160,29,200,165,159,21,85,16,114,241,181,186,106,145,167,161,217,14,232,141,223,115,41,33,61,190,250,84,191,123,138,13,62,214,221,112,114,223,121,245,41,52,200,45,28,47,241,62,158,251,142,196,65,219,49,18,179,126,179,169,43,69,92,181,131,117,52,40,85,98,185,4,78,72,145,233,47,93,134,56,26,6,168,135,162,27,115,94,55,248,144,130,139,105,213,190,15,210,186,124,110,54,78,216,22,13,57,124,34,178,129,132,112,36,4,31,234,79,178,87,7,159,3,165,111,55,209,10,179,62,146,191,164,109,61,17,166,71,4,218,218,104,76,1,63,165,183,162,100,78,4,180,95,34,116,215,8,60,254,207,80,149,50,38,232,209,108,115,23,245,227,230,77,176,215,62,185,38,111,214,207,148,126,197,14,16,198,96,245,86,222,210,115,198,192,55,172,201,220,123,82,91,52,111,112,81,188,160,1,183,45,113,170,242,47,201,72,138,102,100,254,187,61,190,42,114,20,254,152,107,229,101,255,164,6,126,233,191,102,31,168,247,103,225,130,107,242,234,18,61,158,118,81,106,5,197,231,74,10,106,145,222,228,243,65,244,88,76,128,99,47,98,29,30,155,202,80,215,144,78,9,198,123,27,100,120,224,210,78,38,236,79,169,125,206,175,35,201,138,67,129,168,142,66,86,9,120,121,219,46,5,134,107,227,252,207,238,101,18,21,187,16,228,103,95,222,229,12,198,191,81,95,230,135,175,52,90,230,54,46,122,175,148,135,1,62,250,253,246,100,235,167,140,73,66,211,177,112,195,31,180,13,112,16,197,11,72,194,47,216,102,58,220,117,25,107,175,33,203,71,8,97,43,49,157,176,49,109,10,62,59,235,244,255,46,11,35,128,34,213,160,94,68,48,57,66,191,17,188,157,222,205,240,231,114,108,12,7,219,226,101,167,176,161,242,1,78,238,19,213,190,14,14,120,35,228,72,124,151,21,69,0,231,73,150,221,139,33,94,110,31,53,173,183,80,28,149,185,26,156,208,80,164,5,195,248,115,117,119,122,96,161,251,38,142,18,128,255,240,12,93,252,196,154,104,233,133,229,230,180,208,12,226,46,153,13,62,36,144,204,210,107,150,24,106,41,219,144,212,127,95,72,237,10,251,184,27,246,31,130,235,113,103,59,61,51,14,102,217,220,14,121,37,159,148,135,170,44,10,129,224,40,191,7,210,66,158,4,83,44,42,19,220,180,191,139,7,185,242,108,207,125,202,25,40,170,241,128,151,52,46,172,55,102,59,93,231,215,219,242,39,14,239,195,219,113,246,135,123,64,202,134,162,146,232,200,99,119,50,98,135,60,142,227,224,195,244,124,95,227,171,159,37,93,192,46,55,200,250,189,233,72,14,141,157,120,75,31,225,150,219,8,36,184,216,62,190,60,234,228,183,213,3,194,122,17,61,240,186,219,97,118,198,199,138,138,177,78,188,90,45,66,26,66,17,131,14,160,86,195,7,47,4,4,97,250,207,227,127,90,198,215,169,117,18,66,98,24,33,212,158,142,212,54,220,251,110,151,78,133,127,98,238,16,180,179,27,15,192,116,251,216,9,241,71,122,50,56,158,146,144,199,227,52,76,253,62,5,160,209,112,219,135,234,153,70,200,93,52,45,41,184,20,188,14,119,238,177,141,59,116,234,32,233,225,188,232,249,142,128,195,194,42,126,232,167,154,127,104,178,182,178,136,124,150,188,193,84,41,217,119,109,157,160,194,83,59,158,255}, {91,176,240,136,68,192,110,47,144,172,217,215,88,175,167,246,245,143,90,31,41,196,179,176,153,113,232,56,1,235,165,73,34,13,129,8,251,89,180,176,108,116,60,254,93,53,78,163,156,229,253,81,102,79,235,130,225,198,182,152,249,130,169,255,142,65,206,146,248,176,193,8,128,241,61,62,65,242,86,90,105,157,16,101,4,221,95,233,140,180,139,179,246,12,49,206,91,89,76,109,70,244,99,250,23,247,246,160,45,230,56,187,112,130,19,66,105,0,14,172,185,169,3,204,103,111,177,207,50,205,120,200,53,130,226,43,239,225,163,242,113,142,167,119,4,32,58,0,186,39,22,159,209,249,81,207,47,193,161,115,121,255,25,7,240,149,255,125,206,137,107,92,131,228,141,249,74,229,229,140,19,198,115,137,27,3,206,222,55,178,230,34,185,66,221,96,157,15,145,158,4,3,249,59,48,115,64,177,2,2,249,254,234,31,63,79,123,150,151,239,33,247,221,19,166,100,224,146,197,140,11,60,93,130,122,109,231,210,218,32,252,144,84,15,147,19,96,28,74,96,195,56,62,255,154,194,0,80,131,86,77,73,246,249,203,117,66,211,200,33,66,115,80,24,88,0,161,179,98,47,41,148,228,178,142,23,203,183,80,74,127,143,31,135,23,208,57,123,77,54,128,28,139,240,101,60,104,46,5,108,135,131,251,124,168,216,104,207,0,80,77,175,56,136,114,222,109,190,147,197,73,27,121,159,121,205,219,167,166,63,6,205,35,170,47,151,4,75,223,45,21,52,52,125,146,37,170,187,214,1,164,62,93,33,255,26,231,156,33,4,110,54,217,127,148,82,69,103,72,98,45,62,89,37,207,150,180,72,29,124,65,16,16,130,31,159,152,55,249,215,38,211,77,156,110,37,239,83,201,211,152,221,210,82,64,216,119,134,7,13,243,57,176,98,189,11,214,129,230,195,185,150,201,149,48,34,231,125,203,233,133,223,223,18,240,154,236,116,79,229,152,66,121,57,152,251,20,83,212,86,6,97,213,143,202,52,243,65,87,249,235,23,146,216,214,153,102,66,77,229,23,122,75,196,131,77,191,164,120,29,189,83,86,11,138,210,124,223,121,132,204,46,54,71,63,227,11,220,90,164,198,132,184,252,175,137,98,198,244,14,212,156,86,253,199,217,218,33,125,73,237,124,72,127,55,83,182,13,251,159,251,226,140,227,9,217,158,219,76,120,126,122,148,56,242,144,178,202,178,58,218,23,106,245,234,203,144,69,182,21,50,210,127,114,190,238,173,157,33,119,64,84,120,107,243,20,173,187,153,60,15,130,134,210,121,184,7,161,170,140,45,63,144,79,161,105,16,117,76,77,217,43,128,111,63,198,228,68,157,4,214,134,116,202,197,155,6,71,123,156,200,33,26,202,80,75,13,183,38,20,19,227,88,159,166,252,47,43,213,254,109,103,229,111,184,167,78,35,95,143,170,207,6,62,194,144,121,182,20,205,90,254,93,156,165,75,222,15,118,112,239,110,163,9,36,45,8,60,15,209,112,241,55,179,57,178,198,70,20,147,6,226,10,135,250,122,227,166,178,44,118,43,99,244,210,253,211,45,79,164,253,147,20,61,193,164,214,240,5,17,121,87,31,146,255,10,130,140,114,239,0,150,67,115,34,201,201,128,168,191,224,193,159,147,183,198,35,37,57,25,123,137,253,120,223,109,3,254,143,242,213,32,235,52,56,97,134,11,160,166,12,52,136,141,99,254,18,58,235,191,117,39,35,209,70,169,198,247,127,48,113,201,98,29,230,224,244,252,221,82,245,34,46,87,47,178,40,179,229,82,255,114,31,43,215,174,57,167,137,221,227,193,55,32,211,15,41,223,193,21,1,188,240,211,245,202,101,232,190,55,216,64,130,172,56,46,223,152,95,179,158,88,136,156,197,9,225,62,234,21,254,200,56,248,14,91,230,158,223,179,187,174,35,163,59,250,70,250,200,215,156,89,177,68,6,124,161,249,252,33,199,119,60,113,48,250,35,149,127,119,7,50,7,174,42,48,214,32,165,139,132,26,209,246,231,173,194,10,29,159,235,226,173,134,254,18,76,114,135,248,35,138,113,54,94,169,71,63,132,135,54,9,228,143,30,61,244,37,245,211,240,113,45,62,61,132,170,47,5,100,33,105,7,35,156,132,17,158,40,141,193,25,66,67,83,57,78,254,221,52,147,53,87,88,157,139,215,67,217,33,103,185,244,187,15,18,244,251,189,21,84,200,66,223,33,90,215,180,151,251,86,243,140,241,0,216,94,7,214,251,3,79,44,206,169,200,200,67,181,212,179,176,117,229,45,152,53,3,205,34,171,41,127,196,106,129,53,41,5,139,25,194,121,228,249,88,235,171,94,182,151,241,49,150,217,176,57,170,163,34,229,142,190,121,152,96,136,110,229,91,103,53,71,0,85,122,100,131,120,101,223,60,13,34,4,187,227,106,34,11,238,106,135,115,125,177,48,113,36,33,64,120,40,116,20,71,115,235,59,14,91,121,32,56,198,109,67,11,160,188,226,92,100,12,124,138,148,48,219,158,236,227,95,154,151,84,101,147,57,19,143,235,203,164,214,41,239,145,53,177,140,77,153,142,229,208,132,245,191,189,14,222,134,70,171,85,64,245,228,156,95,239,75,251,16,157,90,67,89,50,207,132,158,23,60,194,200,198,192,49,192,103,16,184,181,22,214,251,237,95,125,63,214,66,204,190,182,5,120,71,136,23,90,123,196,143,164,110,214,235,0,209,100,107,223,66,69,150,51,91,105,122,78,184,75,57,224,88,79,116,114,15,198,118,185,54,223,142,176,5,79,163,147,186,194,246,174,80,134,245,255,47,108,180,38,27,47,47,199,6,219,104,173,238,166,183,68,96,161,5,196,245,119,235,109,222,204,247,4,200,86,65,81,137,227,193,251,52,67,3,149,158,166,45,244,237,114,27,38,82,68,76,252,244,143,228,62,58,28,207,43,59,115,209,205,119,134,34,204,40,91,207,3,129,87,126,195,188,244,88,86,126,250,148,244,244,168,123,153,61,103,187,197,37,160,5,51,87,69,123,159,94,69,84,75,161,6,133,27,244,112,218,22,103,73,66,61,19,179,74,111,134,238,224,95,66,49,212,201,70,62,105,42,200,34,30,117,135,193,157,83,221,131,157,33,51,196,186,113,176,152,88,250,136,50,134,202,81,130,235,24,77,117,90,244,128,28,64,98,215,24,29,140,167,100,60,221,125,69,206,184,131,82,158,6,20,141,84,233,5,131,24,13,146,154,139,131,20,161,13,66,211,213,214,21,12,180,195,113,215,247,137,23,242,17,171,12,91,47,48,110,210,51,129,235,173,243,116,136,197,115,120,211,236,108,119,58,248,197,68,95,36}, } ; static void test_decode_761xint16_impl(long long impl) { unsigned char *x = test_decode_761xint16_x; unsigned char *s = test_decode_761xint16_s; unsigned char *x2 = test_decode_761xint16_x2; unsigned char *s2 = test_decode_761xint16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_761xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761xint16(impl); printf("decode_761xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761xint16_implementation(impl),ntruprime_dispatch_decode_761xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_761xint16; printf("decode_761xint16 selected implementation %s compiler %s\n",ntruprime_decode_761xint16_implementation(),ntruprime_decode_761xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_761xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_761xint16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_761xint16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_761xint16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_761xint16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_761xint16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_761xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761xint16")) return; storage_decode_761xint16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_761xint16_x = aligned(storage_decode_761xint16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_761xint16_s = callocplus(crypto_decode_STRBYTES); test_decode_761xint16_s = aligned(storage_decode_761xint16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_761xint16_x2 = callocplus(maxalloc); test_decode_761xint16_x2 = aligned(storage_decode_761xint16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_761xint16_s2 = callocplus(maxalloc); test_decode_761xint16_s2 = aligned(storage_decode_761xint16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_761xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_761xint16();++impl) forked(test_decode_761xint16_impl,impl); ++test_decode_761xint16_x; ++test_decode_761xint16_s; ++test_decode_761xint16_x2; ++test_decode_761xint16_s2; } free(storage_decode_761xint16_s2); free(storage_decode_761xint16_x2); free(storage_decode_761xint16_s); free(storage_decode_761xint16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_761xint32.c0000644000000000000000000024047514705505543022741 0ustar rootroot/* ----- decode/761xint32, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_761xint32_checksums[] = { "c44672011469bac0b95caf7c0a019fdbbb6e3437688ab8332bfa9c3edeec0596", "9e000f8f58d6ec16a4dd0b362923affd79dc56ed6e049b457d851a56f9206551", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_761xint32_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_761xint32_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_761xint32_ITEMBYTES static void *storage_decode_761xint32_x; static unsigned char *test_decode_761xint32_x; static void *storage_decode_761xint32_s; static unsigned char *test_decode_761xint32_s; static void *storage_decode_761xint32_x2; static unsigned char *test_decode_761xint32_x2; static void *storage_decode_761xint32_s2; static unsigned char *test_decode_761xint32_s2; #define precomputed_decode_761xint32_NUM 4 static const uint32_t precomputed_decode_761xint32_x[precomputed_decode_761xint32_NUM][crypto_decode_ITEMS] = { {590432927,161948024,2545355283,3629069256,1777008730,1900035730,1037119783,1359481818,1056690203,2113017457,3913137535,1241751237,2965953726,1655433506,1130093746,1383972463,326159109,867189002,337008865,589176544,775079623,3859648075,2841504127,3131469193,4053862696,2136551252,4078319236,3132863148,374901787,2148883121,2712217277,3336738460,2870946145,224976484,172743031,3143924628,1636567238,3521900627,3197584577,3005789098,1613622940,4263637947,1529388051,2026887717,972911095,1676918996,2771167736,3478609275,838716137,2480154398,62059327,106977777,126634852,2963035622,1726051210,4269123905,3607782225,4250546239,1476984409,353343601,1145308762,1749312962,606060957,2179039433,3339890177,1963538970,3032441618,4009271832,450986084,2163723146,1882919658,1987280015,4193443994,4098625435,3548875107,1856154682,1442883769,3754745450,1415345895,3627536700,4190352699,1192490074,2379148467,1983364530,3785468867,2145441895,3053677807,2550969239,2904686205,4241549772,1523592294,2537070247,3444381412,2257234222,4145019915,1775641669,252153421,3141289584,193501986,1858102389,541334141,4250302776,411678321,4255686022,1611687330,2786230504,3143543249,3739923395,3074514207,3336530078,1909152749,1825560854,1886111002,3612170270,2684044700,1019442990,2287541572,3186664925,978341127,1436249738,343290163,1408118828,2366405077,1535386921,533326601,527001216,928381126,2387285197,906382390,703724276,3894386194,3049492766,1795909206,3417867134,58812672,3810725553,2663099205,1681957586,3834915372,1710907774,1590615558,3634076706,3324296916,3292411328,4026986011,1940051015,3116033310,1375562301,3790630943,3907431735,1731667722,4048133851,2179526236,2199160280,3460250022,764906511,307632753,3672368343,1887863976,494273563,1577330543,3008802294,1352016660,892299480,4006339822,2290509473,4022271435,1990333295,3217229393,1612960252,3846164321,4016611668,3769523754,1137762204,2750023394,3161134718,3383091303,842060450,322980468,1824748605,373714940,1446860254,95618804,3330481888,116440670,1711818967,2930712698,1154756465,1532994559,2263587215,3848932234,1291892776,2002863534,3830051011,1123898763,2575559437,1417347405,3619226584,1144608335,1087436339,544566361,1644454377,2512068741,2887155541,1659649401,1555788905,3752245308,1172071481,1776204440,3770363134,1100621304,686410109,950123689,3462268276,516897517,1956428975,702795132,994404278,3096917543,51762753,1627686350,3517653902,719372139,1704264571,1153089081,1505102329,696200069,1384035573,3363356389,2239423285,2869857606,2339142348,2403936489,2216565668,2153578302,523153065,2453071075,3226975380,102878671,758779684,4005765506,2578758909,2580931660,1415313701,1656031971,1479789127,3374729398,3755419723,3022333455,1117721081,1578870257,809430470,3467146712,2965837411,4188044293,2561909917,1943415588,1740278026,3072965476,1172681000,657679127,2651923060,187229211,3390590297,1160813170,1839573277,4033300832,1882659158,69880479,3788733238,823306728,2566249029,2931007457,1625099411,1361350829,54860478,3307819580,1966435391,2707340459,1648686468,1954737646,3653221224,2395403245,4133538329,889515259,3423432404,3789628553,430237923,2941966664,1163263806,2022575,2490042454,1840329157,1245235169,2295970348,3390205083,612171040,361924985,545933929,2759273818,2244921777,1389458968,388444387,2217914823,562239857,2820722557,2802908733,1643875929,2790473556,837054910,2244399207,2052351063,1203332659,2594567158,3115124861,72918335,1849322676,2338679224,3147516260,2062745595,2352819045,498298794,990718149,75146734,1925848441,2671236329,134696429,2323799748,1854023580,856415489,7289060,2810492235,3817790308,1506748767,1533881749,1256709972,1225570442,3203490311,4263986600,4181975671,3807989959,1257291288,3969147048,1630350103,2083415327,242440906,3829142867,658000001,2703085529,3917959804,3385674607,2474785619,2666764613,2067165688,2967387575,1214322718,1421419755,2949857815,3144039683,2030158807,2819688948,3541952186,4048982049,384866328,1713638836,2332945697,3166259322,1386339364,1106391724,3553468457,2070875012,757195042,1041412246,3240003597,3113101756,694130853,1348670148,3240212529,1051568416,4027046777,523814577,2586235133,3379646507,1664596733,616301009,3215491073,1729274537,3761271314,983897958,3609988106,3080960479,1077507162,1750539354,569156915,3130721115,1303808435,3859882399,3437963897,4271066816,3229105587,941820046,2340442022,2686097338,3505779817,2599005141,1801314229,1129646843,3729177989,2494648046,584173932,2504228592,3585305679,826142134,3872493675,732780013,882494337,464519831,177531070,3492798994,3946211851,4290575526,51445734,3481385283,1747558749,556899487,2868094604,2323783289,579019445,2682907199,558117702,3455443241,3353541517,3693196827,1760246348,3989921770,2322474794,3667378932,4247407813,4278028352,1839416128,3807870347,4052480455,913200386,238813075,3298570698,3637590449,2152131004,3574004809,4052593100,3705070054,3307008311,2326264337,2280590464,375757286,2496116428,1203631486,3741120186,2553261985,772241371,1530409847,414648222,1917699820,246934495,2342058094,3998504095,3403837830,3106369925,2594680452,3646648014,4162623655,555477387,2478024549,2464624172,4083863167,2659949957,3070208910,3065647124,1499506703,2127624029,688509516,895792243,1025829920,1202040188,1045275351,346276780,1955009384,590275444,1033869110,1261844647,1419219993,1657444586,2910303114,1014046355,914807587,4182863018,3532558081,2233354836,766286141,974722265,1871581290,2104978138,3456439595,3001103550,1711463419,2486169132,2615149856,1035185619,2302791800,885957193,1041719453,2742898757,590726399,1757986908,3220599416,746614197,301438377,2613313810,3703862625,4070656605,634398198,552981092,1315947208,1697911034,4210004329,726528101,1186092249,841950173,4265203713,406571018,1431388251,385337060,2281565491,2556854317,2396252769,2065202201,625656764,3825018433,936491536,3828088707,2592738885,3734216547,3395694112,748120706,4253493245,229097171,1287608789,931959995,3529808577,4162868549,1324709398,2441114154,2823637143,244371637,34688063,3192352792,3672006206,3273248099,1913551500,2406131555,3570686243,351504393,2524067274,4020252147,880680679,2768111522,36412229,2727448789,1051622382,3572197435,79102607,3217566527,1190627317,1342364035,744087429,3791500202,3330113470,2919538247,3451106699,629385746,1916241465,33502328,472823729,2536244402,2430353096,980688406,3347261549,2032577458,3467050249,1356683500,989026777,1076873650,2300369514,1212519249,62690530,826646009,3952288904,1173897247,3516273931,10852368,2518936828,660032404,104716741,1251476361,3656293191,2009050785,1768514869,2971775014,1767407318,2585582449,2824885065,2720887510,1935985901,476157745,469636741,4106268447,2937611884,814380266,3529185633,2268294231,387635238,518318962,1854445023,659631850,3793431819,1775466454,1401718155,594087933,903917305,1579811314,740770043,2614981066,700121537,4251075471,819513097,3557664894,2365498889,28831503,18364892,4160195454,296537284,2855881801,720586344,16148208,53820138,3982803543,1038757224,2881950568,2161256365,1165450463,4000571875,677317858,1981316198,3693797326,1614356057,1663108575,1406732941,830170228,276468014,1061519185,3031700643,1948715908,698424459,3465336670,2860394561,3966966723,2057409386,38603811,517583154,3894996370,553206982,3058790264,3349008677,1928316912,3843919034,3435916824,705772814,627396748,1896280213,1801023215,3543749545,1227283217,3622124863,1892835137,2601107723,1258067126,2686355887,946842500,4235149919,239854895,1945194045,2997275396,3402696928,1063059574,3891746446,2388422467,1455831581,471439939,1357512942,3454534699,773688997,3769239202,3909278857,2465287009,2916603763,2161795285,2521137443,2505958892,1700861051,2284321539,3389250832,2494769609,345107189,1180455993,3421748549,2760202015,1746789438,316759457,738563238,1380250052,581500354,4189826855,3568021830,4148648007,2009101893,3086060439,1325776212,1466690780,3616477845,3398177267,2855043554,3069067815,3607001288,2373747375,2921836081,1088750551,3417622496,3877174511,263212225,2827743139,899978221,3764967047,1515907538,3695814977,674716771,142580724,388570703,3248214926,3312675906,840230655,1006254227,2203028493,692523383,3078926049,394220546,2812347387,324857540,994230637,3008929736,3420629827,2926370587,3456585912}, {837711435,2195098881,1972469638,2945802036,2874088094,2899005424,3936748048,1136569473,2445864271,2049583813,3347344778,3751693460,3686962313,3361368611,3461964294,278990296,2852159544,902469286,2956604587,2947506187,4170710017,755592822,1222500766,2311699767,3981008313,4159893251,3358932009,1212212485,1293556700,258586060,2373154584,3304411607,1353090589,1390154664,1850848203,1350560439,1710736643,4179964328,2451216260,920519205,2833270426,3995695897,479295996,231735141,2376365499,2015157233,937660382,3300216962,2873514879,2004065903,847819192,3229444211,2094503432,2112008093,4287318185,3411618306,1899172219,3874270921,58486904,1289605579,570103043,2906616114,3966262615,4021973517,3111772922,350519282,2549815580,1811394606,236870803,690502433,2340758666,1526726679,507271841,4040293543,1051329555,3234488633,3606011802,1463108725,284185602,632569962,3110067136,1367949528,452067898,3494413252,2218420542,3907328281,2837492027,2993290980,919312095,1319814157,2539916581,1604715219,4082687938,1610734969,821250437,1222515214,2301503637,1195523211,2225237513,4293978190,3504501489,4278368667,3395823773,809296599,77699733,3606404350,3163671171,496701790,3901853820,3372304442,3552289346,2681572481,1884220728,129969602,3960699809,1219601256,2081990308,4165561571,2828615967,80705943,273084962,1409311634,3699925533,3074695756,2294321116,3666757375,3172537201,3277933756,1261224866,493982137,3031490317,2225961524,1232639418,2203038590,1203536185,332892041,2526309432,529687821,627224673,1483202889,1024736011,522740492,2292758585,2659877949,3320008497,2131858609,3471296184,2220478662,3727745599,3591805920,410927534,1760641616,1933484291,2976774006,1011206929,962524671,3321752795,3149684935,1253412681,1121714870,1131382397,884335434,1112848955,1950417287,1257670257,3033946946,889531080,2272273008,3706748974,1993112330,879635164,1594746952,3038558979,3255997691,4246103800,1921928399,3085544956,349634178,4147850882,1231505397,4064392095,3311744987,2802079490,1902758551,2862352868,1559355485,1465123872,635212303,954094746,1504774105,3530301377,3349950035,1887133496,4186420813,4003613508,2175426654,1625780199,2041979840,843605692,3052569735,4243198083,4195538616,2643696846,3659639800,2223150714,2439940141,1899156582,2952064487,3435020815,4284658208,761428536,3068658760,1013391971,2851465318,2573190684,2341289073,3058694852,3775291429,4186908920,2641067984,4197790706,1218556688,1961454119,2950105622,2661758099,3197340041,3192660843,2083571925,1284240057,883632913,1411400190,1213418539,3469718328,3613880624,2749776903,1859939118,281640181,2979466768,3221433591,3241374861,2329841699,1146033712,3803768477,1914690709,2316695766,2333071786,2951779686,2759951416,4291363211,3784646446,739604578,492435451,4269240852,4223324401,3517355870,1450678658,719463233,3606037921,2519832738,2140847029,363481307,2316433065,2398697327,624237049,293437456,2529319586,3856484066,579105434,2569994636,2268988873,4207568371,3652961148,98852495,1107020182,3727329932,2520725071,1358671179,526226281,2876022373,2602802583,756059868,3823831381,701873628,3635599151,4041131097,756926204,3090732680,2469694104,2430344160,2480795572,2989890835,4076741821,754768596,1209216524,900532964,784205824,2412359075,3111912465,3859206458,3385175935,695069565,526740325,4100115973,2990054507,3178571989,4120079665,3937977698,1379434837,945907908,3265940353,48112405,2551842969,2692065708,2469517688,1432877074,4025152463,2580496531,1230684118,976640130,2129982401,1423142990,3282471974,3002459603,2056192757,1382141784,913375333,1633904996,572094603,2155140023,1573925503,3229395122,3340578589,2746936338,2264379715,1226720677,3326173995,927032090,56060772,3026486801,3294508048,490811061,1786877298,2766150814,3063971793,4174773354,3237526695,2670023492,1473498050,3761821016,3875423197,562293060,1570006732,1510445583,2242990127,4292970070,2680955382,841152363,1040194667,2633437628,2441555979,18863438,939910223,3044466289,3949083742,2082007377,1188313906,3100013632,959547165,3247215424,3049340170,881379636,2882428682,3954509390,22941242,1829305835,3121228804,3019513682,2331128429,239443050,3307424103,115347413,3030191585,1589362517,2558540621,534402136,3809225548,454436657,1168610247,3483878009,2694721128,3923763679,195606156,823610771,781345658,41173306,2115891817,2170483059,3682310690,2209573505,1656049189,1347177146,2098406888,4256084268,3543120094,1507606972,2583979160,1127638877,2496620932,917764589,3690028632,3966374807,2108480033,3900323752,3278284639,3253784273,3885159581,2450289881,2139923473,1011088366,3326171287,4205599290,2044808481,3626206257,1249302202,3502017708,2211123201,2495405337,238674077,226699940,4186276994,1619270350,4068640617,2841366962,2755085910,1356560682,3957446416,3269673665,92551485,1865652496,3766311252,206598300,3271547717,3112016582,1074971647,649307610,4064947354,1626481002,222378201,2618851954,1685639619,461425089,1978631094,620705601,4048740257,1086095645,2835037259,1810291689,47335478,2522047322,257479162,938814003,1129478992,1806087137,3271962902,3571319046,1298527586,1335300414,4038404401,2420055080,3488669761,2244170212,242783426,1679094683,3997604241,3508258286,275545761,2934851841,2209182767,4113104494,4014879284,2632679732,2818726463,546157385,686613666,3832897321,1466095606,1212530862,466784676,3018492542,1887854556,2114235417,1867394893,1444093347,256584843,3501496273,2060310792,2093593058,96890872,1708280641,4224733730,3742475526,1878540135,2165184100,422300357,2256728621,1380622810,1624801331,2109114475,851312517,3655950926,996435388,556224725,2752760885,1019002990,2876443525,2363426532,648959747,270263535,3281922624,2315549649,3750902956,3009600508,2924960444,1764254800,2580054674,1360154888,3402636884,862495440,478547185,3684586057,3189922316,3520539936,4102294831,3862028207,977992219,1876304203,1146069348,3846447844,3356062902,3694402678,3987534406,3121322552,2048133188,3341501382,3120943389,3848805106,414137902,3697247641,1933807466,3960118995,3521325001,195347102,3284454448,1237302826,1305491249,4118639358,421881408,365612460,3528537775,511947973,1269876775,668903208,2580292775,3374914128,2065044890,2422174106,3085903107,2899106126,4268666453,908597289,3442883881,506205184,2114168191,3669279476,698822824,1407405237,1886827798,98470934,1200911593,2624638031,812065940,452157128,1956076236,31249171,2020085481,798979928,872911293,2034467102,3309782104,1426065676,1911273546,3887006864,2250350259,3964744398,2898268535,623143075,2575347753,2732367932,3114680244,4105579512,699984022,2204640571,91376576,3519180154,2981377387,2674775152,4000567837,4011986837,2394896162,2195866530,3107409415,1417832216,3648284891,3129941992,1768204966,2265927290,3228061766,1905604297,694432492,1020929192,2193736676,3508551009,3547504872,963763397,1909420247,3775786915,1104869119,719653540,341941250,1371635594,1192689019,280408179,890988217,4174238687,2759581089,1825571609,4201336356,4011711355,1586430646,698928408,3013168841,1964356867,2795419403,2178334110,3353565259,2869090072,1160425063,1722810356,1158398981,3121476570,1226743223,3397107049,37269795,1050578392,636226938,3638170917,2935231983,3306219886,1024839833,1989678613,369113191,1325668447,4055395460,3536844887,4252811606,3152093481,35162194,3796329169,2660996080,2409100395,3075237887,2219426452,1323717896,2521657948,3819579019,1851195171,2636590096,1668534103,122581138,4207606851,2453952449,4194911933,1473671996,1935472973,1802342635,2144191743,3977788979,2061017458,1876573546,3151725562,3628414440,3631570460,1032288323,2550702852,2283104356,3673128498,1685794350,1767727931,843329308,674567576,2679930925,4207220769,3578331147,3333237275,3786650766,3518656471,1185552368,3314043502,776146383,208161638,600190469,14162702,1388498119,3504282905,1393870820,1550251097,2016394331,2443046389,1222785692,3067466402,2697970102,1109937818,2756512949,554188155,3914901256,2257363097,3773484148,3482831174,190797957,2243172836,1784166350,2834138113,3609241669,4161011605,1108524132,3764517954,1953482202,181599728,3896048423,3997629195,3808800706,2907901109,3142830732,2184988254,4240806438,2753860357,1634484877,4005702336,2942420982,3267364676,1714610665,2379017308,1959443917,2423642398,3350062114,60649697,915255827,407209861,2068204558,1621480349,1698841737}, {3069227513,3087035690,2206017245,537950066,322743116,2584928328,3681955344,2693615033,945724485,281743886,1557846836,149164174,1378588841,1960965272,1216078141,985662440,3222177264,340400220,1156501625,2840892356,4234055632,516168025,1552358220,102747554,506002214,200102339,1022118075,980716057,2177223556,596949411,3902581728,1275090699,1458908716,3221976395,850870745,2782185490,3404154303,2671571246,3478785669,1925749970,3942454989,4037960050,394794080,1138599490,3259026052,2011137089,3772484442,559960819,58348421,3830851241,481959630,3639121289,3440492806,3037125170,1911201088,1325519840,897530643,4180842374,3549554996,3102445507,178333338,2516516980,561173591,3581461212,689677273,3881514902,3303902000,3251095967,2837417513,1965713586,124952947,1838767928,2821562837,91905950,2662302176,531167187,3999240540,4173203209,697295989,690078870,3188008905,2158434573,1677534786,3333234526,1007319286,861965163,2590038189,1424697653,1784637726,3271579376,3732332327,935014780,212017101,327761192,546522733,399012403,2006923894,1750385175,2570858779,123124556,376377614,339489863,4087175871,3178708752,1386025769,4011698299,1166474312,3334335113,2754710050,3771535168,27167665,1436915240,4200916894,993223398,2293065406,1300000736,1003366480,4133144497,3767783870,429710720,2038879171,2392434270,3072270978,2314739356,2922232064,924786738,2106403828,3635302583,2009809937,1852544333,3998274183,1932120765,1185049116,2219327159,1618295870,4028673860,1184564083,248999102,1125915330,1792892439,117835205,1184976043,3343665360,3086466338,3056570673,3461424716,3245519508,1702099071,3845045854,339647697,2675336990,3545777406,1844073819,1228358868,3243084736,1778685392,975888706,1794138407,235719173,185964970,3890766982,4227845218,3115639403,607439926,2162934142,1072854714,298158207,505242354,1688769023,1482605163,1175068903,4002218875,1261219946,1420552230,2724477982,4047723942,189501089,3908438289,2736207149,377777286,1572896044,153451547,3371368512,1934165582,2479476704,3740985139,1595277944,2614622912,1440854494,2457930193,3321450401,1485668146,1341970995,2737222141,2111169034,3821807976,1192084015,80849096,3960062066,2278846881,1461719265,2485201046,3213451669,2203392686,1215139731,4167386395,859019927,3618167208,1636911266,2200791366,548609863,1594364840,4211446076,1599808385,2532453724,3159011850,1010252016,544855641,2855904079,1993371266,2014966839,3734815975,4182598046,663629313,708058438,646992556,1199548962,3109515469,3645626615,2511835144,286281833,2562934612,1893317326,368221940,2427390033,1426251722,2529332628,4139082291,1975725388,3413209591,3530063408,3655424197,2143015228,2461167503,333557526,498603806,515621502,2112161906,3294641926,780714541,162058362,299139456,1530170772,1952437097,46814978,1665086635,4089603010,1909166234,661372737,2440096955,1188926893,4027675045,55587875,58913061,3924397555,4271163554,589698143,3296112964,2976515241,2702862793,1941232503,1468326435,1304806951,3106021124,3429230193,2381263404,3016924514,4139706544,973136653,523940004,3962852859,806824532,640346191,1077480086,3903684681,3730769008,2992790709,1112814669,3745998052,4224895918,1494674873,1457852847,4236442483,3014883029,262109214,206998575,2891899706,2483102975,505371091,2817236339,1135187304,258726610,2962720420,1216976699,3097914980,2115726412,3780613507,3840682670,4063759212,2007001522,3591173823,3593187197,3375070019,439542198,2672506939,325679764,1355718446,1555216233,1439869855,2247605911,231865410,1258936478,807314048,2747044825,3491088748,4059233725,1162436591,1132792457,215524691,883305083,1757945884,456983133,1537864271,499299190,2296783812,489476980,3518184642,4034397900,3270614756,3096242015,2934495501,596610255,3519964772,1312261615,1325555202,1596587089,2386559232,3658926359,496429942,411538330,1936708596,4241339669,3347731979,3871237464,4231143058,729351734,1457364769,2289364038,363828809,1630824300,2998043036,4231488974,1186425641,857448514,2882790647,2407302902,1059244730,1822402541,998805888,16204448,1178609527,2748808942,297375183,4187072761,2317875716,632062522,3561158194,4246601265,1795324457,2874824880,3050877937,2506601089,2740773968,800773844,2166896563,733461731,1822102190,3802422121,2569077410,3207487028,3059809300,1958164037,410409347,1203725089,335279715,3264921802,290281518,2321776728,3678621751,197208800,2846273807,2717407389,1229451458,2713530889,250385298,1384696302,3216974032,2054048272,971169099,2027447593,918340265,3924534927,3639037169,2207521150,361265567,470894676,1167768856,3458084186,1605598286,1695176285,1439809339,4015161042,1239052365,4161771296,3200755712,1629457373,423091026,2265603063,1174636902,2041291337,1678818894,3495778109,2142008396,3039311068,2966966935,2373660591,2170373981,2679117152,950574087,682681328,1387034276,2036868550,1964303853,100046104,4034314450,1401965107,1917768497,4171904618,1248478464,4129673457,681415127,2433763818,1505206379,100540786,3881201434,1736302594,3059571296,2330951114,2741407356,3423024426,758364644,2338447571,2181622105,4025661920,874462065,1247664559,3606576806,1662497400,230836908,2078936630,3425157630,2311101934,1236573777,250049458,1050121345,1595396114,2582190254,3014192478,1647043101,4187090724,3580428691,1660037727,1846416981,526485164,818450550,2486081439,2270172330,494205532,1099993182,3001730853,724761734,2315201673,2383094530,1189970930,1868188868,1370398187,2857431330,3729998491,1415574812,951417650,1877857713,2224903334,4068342606,1226168925,2061543656,4289784392,3023823499,2577793926,2130195991,3096550894,3770211661,3208113019,2051349133,1473358371,2110375674,1881577292,431562317,2311639659,1705144255,175673422,1374818584,1705873365,334822472,3220615112,3229572060,3987068460,1556857896,2760371432,4017121572,2814859576,2184943458,76388717,2707695643,3504403270,1728107266,3385288745,3330855319,199254519,2181023088,3253877161,2115301431,2090368029,4195383155,142407623,1786118455,3814810541,3840863693,4043721836,296227852,3707470485,2485423627,240084038,286013563,1173073318,1528722356,1384349624,2204553747,777994522,2425454527,2747494366,800789493,420354625,272173976,2252684001,2532666429,2181809512,3463074298,3699637705,554606288,1853438502,3248088648,1113770121,929301954,1979896382,1655699671,3154889123,2525617449,2694380524,1780203726,285312485,3776265099,3830713922,2568616750,1681564157,4133232156,317562005,2471668509,1077241871,3047090261,2874384976,2784533979,495599270,2981897568,1875709218,1547420657,2305312616,201127879,3048337653,3102044554,3384574707,4093452329,2548046449,182819,4206921261,997101094,3043570086,402022053,2891189830,3961554819,4134997339,1187937661,1021638424,581015406,2732740095,2357577946,1512531967,3817692295,2683300142,3916051274,4063755370,3561805512,1021129209,3306840054,1633990745,305672104,539098239,575125749,4010157427,3716835524,1442272689,2143839860,842428807,4003548052,2543644951,4004733313,810717909,406248228,1442791234,4063730676,2491580281,1496170468,1924546473,1694192294,2910775426,4062224413,3797084370,4264603344,370572976,2569594771,1606562315,776201647,560580372,1736246377,1130369791,2966854580,3983529625,1682957611,371126757,3931295571,473069320,1694981779,59527676,2567381957,2679521677,210574830,2920418972,2590834955,232011315,3875613083,3860168580,876556021,2468603251,2045822080,891303826,394285534,501279213,3577319187,370111846,2538888077,932608013,3830499286,1286437180,784555179,3036857353,1011472303,102543961,1946967469,3888543947,1063339135,1117654213,1064341070,3223651103,4177745006,1632699903,1917291583,1057300644,1991172316,853137573,3996846970,4074408498,237065907,443588954,1690200742,1399152103,3680537670,551107891,2249969805,1362905957,293672112,1670486862,3829028199,3211389766,3305009318,3433857389,888631707,2759318205,2622466425,3605602524,965737924,1120341802,641012935,45135423,2956888399,3488213857,1696620891,1798332212,1359066628,982872508,1578211155,3679846626,3389891073,1245597686,1333089349,901007420,4171823161,3066179065,839236669,3972322347,3968077457,1955869174,2845043759,2173005972,459626831,1761865168,3006003996,2305892131,2879709702,3392265072,1308964997,1006708556,2053132345,2242832654,1757367534,1174738363,1418194192,2380422426,2408628165,2413448522,2980706606,1246569363,1707756124}, {4060810561,841997183,3893284512,1978980984,448913324,4214905397,3269789337,812642587,3033328373,2059167739,2347174148,968932817,2752985081,3709097154,1106052130,3444834120,2495869691,4025064784,4224092004,2442951286,3208313956,1925918421,3912974737,1422254200,4203191617,1780606075,117759015,12771402,3928800293,2910458010,2286071733,3817475565,80283276,548322962,214883440,4245969646,2021438477,2018862915,2552885146,3842453627,1415043972,2331803167,2938237445,3298292771,3419347521,3645800044,173256198,784716108,373103056,594972213,1409426627,1829277768,3919851402,3799011467,106450341,2869673219,2115625800,2076398173,4084652631,869531739,2520528948,3890990633,3373103019,2317345064,1822509923,2447885630,1682726265,1242510154,123612540,3504646824,469755449,77421049,1281095720,3691868831,2881842960,1709438585,2049641298,3305501023,2534903851,1535760500,100797632,1227068129,76689123,1790804456,3690579349,1949684294,2977588371,114819086,2133563274,490144681,2219822188,3380247713,1731615273,1549920957,1173485841,2953817971,1527788182,2641496055,1488473022,1397842004,210975802,718876571,407625473,2240539283,2642968501,3962143494,2057087077,667838014,3076924647,3249748851,917899431,945902125,4096371312,2173207488,2387830664,3188451424,1492172770,706311747,568803548,3142176816,1557618173,1992316451,4108042580,3456142138,2937247811,3252574017,2356414679,989457714,3008755177,1509068838,3642499931,2942109063,2702725590,2945228750,626600397,3951455994,1437149590,1794860382,3441503432,1644068373,1959170384,189658098,3203724450,342054150,4016252250,2819216374,3343687707,2337155262,3092727486,1369957998,2389929963,1160939876,1354898560,3505671330,1165467458,2588488020,73064388,3040568017,988697677,3243697835,3774008109,1593887748,1079380580,1730523116,3991391368,1199996553,1096460516,1244597246,2496192659,990392539,2619645539,1693493897,1026236349,3221913884,2285097821,245950570,1223285423,4239533564,2009756714,2793617544,1291026899,663418014,2365231518,718976943,1963424658,575143016,148780501,4267158158,2718580490,3132317020,2386079086,1975559916,1768658481,2293525171,2534309000,2029702471,141043891,466924053,3785485457,842813251,3997555861,584418325,2278684753,1088859875,4264500129,1072036437,2654291737,3417573774,4191711308,2458999923,3904347457,1335049193,1095830581,12162001,4120810535,534551519,3713901968,1630025365,3846122356,2883434655,3136638903,3259066262,1044250131,556713944,1996013403,3590260326,2893408776,2967128410,2975432589,319018731,32711571,4278541106,4130707312,1473089573,1372963019,325974964,948209471,2376805995,3591149967,368782471,3570428337,4267977054,1383411079,1929425926,1521817345,204387707,4220063449,357738668,1349281189,3508945531,2649804343,3039464732,3729820324,1560894271,4022634573,2803851389,919413725,2131651090,736415978,1846707082,2595795542,17682047,241473180,4082607182,3171352481,4192729665,1050274113,2295221176,4190209140,116063495,257550372,1056865154,4265140872,2564895776,44020718,3829164726,877047791,3682570746,4235009611,210204791,4127052506,913147579,2869270127,1396644898,3164219364,3121629177,3870932612,363806521,2282258507,2284145926,1275268925,3079610584,3474651225,910691901,1627430267,1369728602,1569996868,3193727020,598643674,383769995,3431062555,3169306458,2440059824,275623205,2036256199,1066241167,469776229,1720051233,2430428640,2131195048,4038689752,1779481929,3358126185,1939264749,894463945,4160387659,2015310905,3347793475,1970393619,3547962775,3984009224,707404105,1185366531,2693753140,1505940117,4039434616,1971573481,1677025717,864747377,1666901973,2252603058,244194450,3036054852,1564857192,2857201624,2768150426,2045196465,1910825358,1784459233,1299591711,1535539731,604489337,939413127,159398139,1747341218,2797126911,1494857570,667957356,2194319485,2429346623,2640847194,2048276095,3639370742,2498562035,2509907980,246228177,1127681137,3318590912,1616242087,1962297778,3469888544,1167486157,2074979054,1727954489,999097883,992551776,3441021240,44643958,2610033131,2970817930,490776706,2923837301,4101895925,2628711375,780419859,2646570475,2748006557,308167614,3162089736,687550161,2111913443,1881766374,359502104,352036884,2874340965,2557761634,1522066025,1175918054,2443776933,803651975,196171103,1855857249,2331945166,2200408351,731154038,337987614,803166479,1555551095,3962286751,506017276,865751951,3907799966,1657133304,1613407392,1755316026,2208351199,4017158239,4110545415,552737435,2669111407,2993683797,3867421755,4220094025,4140893916,2714740250,3509632602,2795031183,2453261732,2503343475,1630253150,2539793917,963894696,1558895702,338020778,1741313619,3612359420,3738035515,2105284421,3151124338,1353613500,254896732,1649431374,3317909706,671575121,3810768185,2344304728,1566940006,3276646165,3820434079,2910079395,154910719,2580415203,3153426287,3332141521,997250762,447537083,3607110963,1443171362,2128224055,2580943901,858474788,1720985934,976846262,1294269273,4099345409,3189112019,424980461,1741224596,4206644982,1754621644,861663046,1268699444,970571936,3229308984,336651459,112658662,787203059,2997088888,1457707482,1552610582,1221036605,1621552542,2923306000,3620693255,1657234448,4172727345,2286747279,2043533720,3574230079,2589344302,1937277819,919857190,128019371,3745044430,1666238260,1465099484,3906150353,2578158038,761244335,3608799555,1612573919,104964040,3664453949,2813798900,571244933,3079515394,1922727196,4062802500,2551061423,1135544366,1952769040,1259887867,279496397,81868270,2645085908,2472505173,636249014,2403209421,2605150496,719064239,1912138855,1195677536,3277848414,58567943,1569953444,149442881,3660334778,2768532579,247118636,420345593,852836790,1806191508,757918386,3834068385,3543303411,1752705168,682152357,3949390974,3314089671,2778835083,3921781444,2072038049,2667052504,2544995018,816226412,4250608866,3520776277,3588541804,193436804,3308168218,17788889,2913326811,749033653,3699560072,1309944418,3130741914,2992771297,1448820212,3534242026,1305265717,4255500927,4212041281,656785227,4096908563,730816197,4275421976,467778326,3858264322,556337470,789466732,368498253,3609217007,128049226,1397321310,538045463,3973587891,1862757107,739410254,1462324202,1931739481,4241125251,2252465597,1152664314,2480663980,2994726966,2938098680,172168461,904361314,2498989244,1574410105,2268107461,2981085263,195784341,3134381074,1731956250,2656732422,2615961864,1248953932,3020568344,4063347663,3933187246,855908049,3166523770,1480090601,2836609991,1093688096,1384412899,3587458918,483772477,3282738804,445473633,1407397287,3092881273,1584916739,2746244915,2204442285,2257285361,2036509750,1645697869,1368198083,2835820265,3655294044,2100195016,262747600,590742355,872207529,1520762991,2477302552,1248734102,378230534,1955668826,2967984886,756316799,1185753444,3845731806,19294587,2737420020,3498396426,2226789466,723047045,3878595834,1903456558,2236612195,1725759002,2375010376,3232013174,1517492285,319740258,1570660438,2705790494,238089799,433707794,92594919,4078095069,3856887357,2196672987,3373993695,2043067101,3778518250,1182955134,2002844074,4075986909,50588958,407770012,2563865772,878424092,2265279066,2729331558,1073494238,3069995055,1343629935,591519053,199138944,16753680,2567276112,3237463914,2040592739,988457274,320748907,2562918732,1300176589,961673947,916310903,116358138,1688733924,3207986467,357060373,1075795501,1844353971,3887978582,1021028929,2074640833,3666644249,4255461629,4117730823,2650979331,3413132091,2676899485,2981020003,732874251,3084537662,3194855425,2831864063,290997105,3549572595,4200497093,3437462452,449424222,806780766,3272168555,3428145549,2862032679,3482426365,2788160266,3417701299,4067150826,4261580470,1458718409,1263115160,2755311971,4119783302,2886525389,3633872750,1224373678,3183382882,3560872741,3216580653,1240718111,4066228089,599428360,1981299135,3263031296,4073895810,1820446234,666981433,1201208563,3647175997,1788295099,1987295260,3665743433,3994386674,1637250737,1243364764,3279851881,2593831653,1222190997,2367400723,412810493,3842145646,3790980543,3164839260,2524617209,4198840643,3481217308,3492174523,3730729994,2316279760,3905047250,1851470647,1304937346,4027707309,3229158058,4240110751,1926114207,293693331,476248373,205519577,3361719626,2767900214,1737612796,1820340961}, } ; static const unsigned char precomputed_decode_761xint32_s[precomputed_decode_761xint32_NUM][crypto_decode_STRBYTES] = { {159,74,49,35,120,33,167,9,19,10,183,151,200,51,79,216,90,0,235,105,146,62,64,113,39,49,209,61,218,11,8,81,27,208,251,62,113,22,242,125,127,189,61,233,197,158,3,74,190,220,200,176,34,233,171,98,178,220,91,67,111,190,125,82,5,203,112,19,10,65,176,51,225,88,22,20,224,30,30,35,199,198,50,46,75,142,13,230,127,233,93,169,137,109,166,186,40,9,161,241,84,47,89,127,132,54,22,243,172,178,187,186,27,140,88,22,177,90,21,128,189,38,169,161,156,150,226,198,97,41,31,171,100,222,104,13,119,217,75,10,148,123,100,187,198,8,140,97,83,240,235,209,193,68,151,190,170,179,40,179,156,238,45,96,187,243,33,254,19,156,40,91,37,218,207,120,247,113,253,57,212,192,243,99,248,169,44,165,123,93,87,207,233,202,253,49,30,39,212,147,63,243,178,3,241,89,96,6,100,75,140,7,230,85,156,176,138,115,225,102,65,169,117,254,81,99,10,215,63,48,90,253,89,254,8,88,113,152,15,21,90,6,68,68,194,101,68,104,157,193,31,36,201,128,225,129,1,174,18,199,26,58,9,117,18,99,191,180,24,162,248,238,100,128,225,26,138,203,247,128,234,18,59,112,143,124,115,118,154,224,242,249,155,15,76,244,99,137,135,211,58,172,162,110,185,168,0,86,106,222,204,223,231,118,92,84,60,209,55,216,59,181,195,249,90,244,19,71,179,236,206,141,178,189,55,118,195,171,161,225,103,216,224,127,239,108,3,182,151,179,12,152,125,254,33,173,204,233,208,252,102,44,208,90,167,158,56,151,228,22,77,205,46,169,138,134,11,252,15,247,69,36,214,105,77,142,7,15,112,70,60,187,34,155,136,11,117,100,192,110,125,26,68,32,56,121,86,253,113,182,137,24,134,157,168,253,162,101,16,96,232,128,18,166,209,169,94,187,195,179,234,222,31,93,65,183,158,104,223,198,237,91,203,113,22,217,207,108,26,197,107,112,30,88,77,215,156,69,251,159,46,119,195,60,68,29,89,136,221,165,240,189,7,77,80,58,138,110,155,85,51,49,118,20,44,48,238,83,213,121,12,141,41,37,132,91,9,235,201,31,128,102,105,31,198,248,85,55,205,20,75,142,54,76,6,54,244,250,241,41,18,158,31,232,30,145,195,181,86,102,11,107,126,131,184,203,0,105,129,3,177,14,35,227,69,171,187,158,210,162,64,100,44,42,148,228,126,97,250,101,6,222,206,94,34,156,155,216,212,190,36,198,192,53,62,196,27,238,6,240,71,212,162,115,30,229,186,185,61,106,253,81,31,112,240,225,55,173,230,232,10,39,55,103,219,158,73,241,92,238,232,129,216,133,20,131,166,57,63,206,15,140,151,45,113,26,86,18,215,228,227,218,168,132,134,112,27,4,118,29,111,39,4,94,246,173,86,179,20,35,150,80,216,104,47,53,238,228,203,238,161,102,134,136,203,253,190,239,111,19,162,118,81,6,195,191,252,209,35,96,97,207,63,229,84,161,104,239,42,94,174,224,156,223,208,67,226,6,234,163,126,22,107,188,103,224,165,201,162,210,48,50,116,74,64,19,61,116,195,108,252,111,70,22,222,85,61,86,244,6,179,5,224,30,131,198,94,190,240,6,215,72,8,102,122,32,175,174,113,47,212,68,255,163,95,91,143,153,235,134,138,11,106,229,40,184,0,77,174,69,97,119,195,240,73,228,139,85,253,66,13,235,131,153,77,1,123,84,216,3,185,215,79,86,57,68,51,246,208,64,89,108,117,32,233,97,4,98,133,32,187,149,85,127,22,172,121,61,236,98,105,116,187,92,60,184,166,223,57,100,220,69,152,186,222,105,254,44,187,224,248,37,154,65,125,201,233,40,169,188,161,56,116,5,94,206,237,58,207,30,175,188,156,116,124,205,227,41,182,103,69,59,39,54,151,184,65,214,21,3,206,133,4,97,142,35,171,209,107,191,224,42,123,3,149,101,57,190,186,68,249,9,182,89,133,43,127,41,245,180,126,82,229,190,120,200,53,227,122,133,70,141,14,171,204,122,108,139,233,40,73,143,164,27,30,132,62,255,92,128,169,174,46,31,227,228,54,146,148,188,87,192,207,205,33,6,36,15,58,45,130,33,195,238,253,188,180,153,76,228,213,153,37,249,91,84,227,10,181,98,71,202,51,88,182,72,38,201,75,40,215,223,15,38,37,180,249,17,159,66,241,165,27,94,198,237,62,48,216,117,168,206,99,22,199,176,5,124,160,249,157,164,179,152,36,43,214,115,10,137,186,103,100,187,41,183,40,177,229,69,23,99,51,39,116,34,17,158,27,228,40,11,89,77,24,202,114,154,48,69,29,169,165,109,96,73,103,240,86,25,55,112,159,74,42,4,54,123,211,225,232,169,18,49,69,218,245,152,225,159,179,174,147,12,221,96,173,144,36,81,190,26,69,3,60,82,41,197,63,108,53,117,171,188,94,161,132,245,68,98,238,237,130,116,104,187,191,217,237,243,198,142,25,202,96,246,251,236,4,53,212,110,13,204,137,36,225,225,227,232,164,25,72,217,90,175,62,255,85,69,175,220,30,0,86,8,107,148,197,49,177,109,225,199,56,74,44,186,217,136,155,108,18,202,32,253,124,36,121,137,146,21,105,74,138,32,90,45,119,164,177,201,206,133,24,118,209,82,227,48,39,23,199,177,50,132,113,25,131,33,125,207,32,168,61,254,16,167,89,142,251,97,84,63,83,166,190,113,228,49,103,208,198,133,87,100,84,122,51,102,185,71,246,243,165,154,125,8,173,185,63,165,88,4,180,108,58,110,184,105,101,139,100,73,155,187,251,255,242,122,101,43,61,140,170,111,179,29,197,40,13,59,238,165,122,4,121,29,202,114,233,212,55,159,237,77,7,8,196,94,130,138,156,39,130,110,1,221,11,51,228,56,111,0,75,181,132,167,100,219,142,227,95,41,207,89,149,45,109,91,84,223,231,74,138,184,12,73,7,98,241,190,168,69,39,254,119,226,67,249,199,80,249,226,24,190,240,74,168,96,148,236,23,43,45,97,31,101,46,124,202,90,115,14,83,21,60,228,129,72,56,39,217,207,29,161,124,82,135,233,111,75,205,201,83,59,130,147,69,153,243,158,248,113,54,123,183,189,222,176,30,24,97,72,235,36,185,84,23,66,211,175,3,61,102,187,215,195,1,121,244,9,17,168,186,230,29,211,33,144,86,241,24,152,240,22,180,13,36,102,33,237,13,139,122,72,185,188,36,220,161,82,172,50,242,65,41,160,205,211,132,11,111,123,34,225,33,45,150,176,18,62,13,136,30,193,188,41,142,185,165,152,95,41,196,18,99,80,49,184,33,193,32,169,173,62,121,219,7,240,177,198,56,31,253,208,38,154,43,80,113,201,253,186,55,99,209,1,188,36,1,128,168,191,169,162,18,103,18,114,48,224,102,23,165,58,10,12,44,215,223,185,163,183,90,116,57,64,90,28,87,104,51,165,236,33,91,3,155,186,179,137,182,77,159,33,17,230,121,42,235,204,192,78,147,254,179,61,120,192,142,8,35,56,166,79,128,139,186,151,26,160,105,244,245,208,213,171,233,154,181,223,93,107,251,10,85,67,133,189,70,222,238,78,177,148,108,201,209,34,240,126,67,149,79,108,179,213,182,237,61,49,107,144,209,230,237,85,173,43,129,203,153,52,151,2,176,27,190,232,148,10,18,226,47,208,11,106,54,235,166,252,188,255,230,255,16,3,67,185,129,207,93,161,41,104,159,156,49,33,140,166,243,170,121,30,130,138,181,34,131,34,63,234,233,159,70,51,68,33,41,225,245,205,141,251,226,199,27,182,33,220,76,58,235,104,234,95,209,237,42,39,110,138,244,194,151,218,197,76,42,253,64,136,253,254,64,67,163,109,139,125,247,226,199,241,139,241,2,85,110,54,147,255,59,14,202,49,156,196,177,57,209,216,188,233,70,128,73,252,6,213,204,169,141,241,230,225,214,220,55,241,28,197,17,250,167,138,128,12,239,135,230,153,101,22,204,182,199,148,126,245,189,71,186,246,252,222,161,175,47,152,219,119,7,46,119,51,56,91,158,7,183,24,236,198,77,114,223,235,183,14,110,248,152,139,159,84,84,238,134,113,226,202,133,113,39,185,132,174,167,154,206,110,91,217,167,152,28,248,139,233,27,33,101,167,179,147,44,46,231,146,127,206,106,243,133,157,139,158,142,171,255,182,20,16,186,182,15,168,96,89,93,247,208,126,76,210,9,41,115,180,100,53,32,236,36,61,124,173,165,71,215,162,77,62,172,195,163,20,104,19,135,116,116,227,46,35,54,151,159,61,167,56,54,75,25,148,151,84,234,152,202,98,138,179,119,173,147,30,113,60,35,219,134,54,170,108,81,249,1,143,142,210,84,74,30,133,61,153,172,45,217,20,25,58,106,16,142,111,218,106,119,125,43,21,5,206,190,52,225,178,251,219,2,102,44,238,47,148,32,5,224,155,211,173,179,61,120,208,65,137,73,162,206,52,157,96,23,62,69,80,125,163,255,196,53,35,92,192,200,104,120,114,246,191,181,109,128,44,169,149,247,17,18,1,196,155,97,117,196,220,93,74,161,242,246,37,208,37,100,210,245,32,200,194,111,78,250,16,52,101,105,145,239,250,101,240,77,43,217,84,178,70,221,35,47,50,1,216,57,254,10,200,59,24,91,64,81,85,228,198,247,22,51,237,253,135,45,128,102,152,97,234,211,142,25,124,24,123,188,195,74,37,65,38,253,227,16,186,209,55,131,255,43,228,69,14,138,154,99,159,147,222,32,46,102,202,130,106,151,44,253,39,135,253,211,190,167,13,213,89,191,76,187,148,140,55,193,154,100,210,69,85,32,248,22,118,245,78,42,114,128,145,151,72,77,168,181,208,144,14,63,76,17,2,24,112,71,190,62,94,222,218,99,205,25,195,140,122,14,114,99,167,106,143,35,89,212,212,9,136,243,20,202,53,114,150,243,45,160,239,231,30,126,52,162,7,254,164,69,155,43,2,213,144,145,162,238,123,174,62,59,104,235,212,143,2,183,4,63,43,200,191,245,135,247,70,131,217,2,80,133,223,89,44,170,179,253,225,190,127,125,198,71,158,4,174,139,181,179,205,18,170,131,37,57,134,55,114,120,52,255,1,177,183,46,28,178,4,44,151,200,62,220,144,22,30,116,58,109,40,131,199,178,171,38,121,9,253,166,206,236,88,221,80,217,89,243,58,178,201,47,64,106,218,28,137,81,147,69,72,226,148,188,3,249,157,69,49,136,36,147,235,31,64,248,69,11,21,150,209,16,152,165,0,252,236,35,150,148,75,87,39,197,217,61,6,137,3,152,74,71,155,238,217,161,174,191,119,53,101,105,105,38,176,33,177,214,126,88,105,113,219,28,154,73,83,96,168,214,114,45,162,237,204,100,115,49,151,97,28,133,22,254,27,31,175,192,244,108,102,24,175,234,116,138,48,97,25,91,210,87,108,51,135,38,216,26,23,114,235,228,30,223,149,136,110,234,46,81,39,11,45,27,226,214,119,211,105,139,133,140,83,253,15,105,35,249,174,224,53,242,1,42,94,251,64,39,44,202,113,221,155,193,1,187,41,143,67,98,253,9,199,216,48,126,168,13,212,9,166,254,140,15,239,183,1,220,57,24,1,126,139,247,247,196,204,172,17,73,76,57,170,104,70,243,42,240,102,246,0,234,58,53,3,87,194,100,237,104,45,234,61,104,19,199,171,173,39,210,128,223,92,119,69,227,225,115,238,226,12,95,40,102,124,24,118,206,223,42,220,89,30,57,96,223,5,33,99,141,10,217,83,116,100,123,49,46,145,122,16,81,127,69,63,163,20,180,180,132,11,39,116,139,28,161,41,94,215,140,206,65,40,126,170,195,27,115,236,106,147,161,122,35,12,77,2,50,177,217,30,146,237,40,232,198,68,249,32,120,111,81,182,37,209,157,199,240,199,239,114,186,140,29,229,24,238,203,204,14,61,17,42,140,80,101,37,149,240,6,113,239,110,89,107,169,83,57,211,17,219,38,73,63,61,229,215,65,95,210,112,11,193,9,155,182,148,252,74,175,137,30,160,132,171,111,56,95,66,111,252,47,229,75,14,61,78,241,115,4,203,166,178,224,8,209,202,118,0,93,63,142,86,247,231,67,111,92,142,29,58,198,86,67,154,25,28,238,0,234,80,43,4,232,205,165,142,29,46,162,6,170,224,137,220,2,233,97,75,241,146,115,215,215,173,213,96,218,128,35,129,69,150,236,229,93,149,123,20,97,101,3,251,39,136,16,221,3,202,201,41,179,148,245,234,145,20,57,84,92,70,69,189,243,203,31,87,133,164,62,228,29,104,161,93,225,18,166,148,5,44,196,241,68,82,194,253,168,34,39,175,187,249,70,177,171,212,71,88,71,247,69,118,192,119,151,139,241,183,84,189,5,79,220,236,107,87,149,18,143,215,243,17,140,202,226,129,44,170,39,66,238,182,200,120,254,214,175,130,124,141,49,174,39,174,215,3,229,64,224,199,180,203,239,252,24,231,193,76,176,15,163,239,139,168,237,147,164,53,135,214,104,224,210,233,90,90,65,169,73,220,99,92,55,40,244,155,127,8,79,30,41,23,142,211,155,193,66,108,115,197,255,230,20,50,147,56,250,59,13,140,79,131,119,17,71,41,225,174,132,183,2,84,127,23,251,3,161,167,196,238,92,19,109,193,66,59,200,159,88,179,67,171,226,203,27,223,108,174,184,80,7,206}, {75,118,238,49,1,141,214,130,134,127,145,117,52,95,149,175,158,26,79,171,240,79,203,172,16,2,166,234,129,172,190,67,79,237,200,145,197,42,42,122,138,109,132,199,148,76,158,223,137,148,194,219,35,106,90,200,6,98,89,206,216,13,161,16,56,128,0,170,166,150,202,53,171,52,58,176,11,96,175,175,1,252,151,248,118,110,9,45,158,225,221,72,55,189,201,137,185,93,73,237,3,239,242,247,41,60,53,200,5,229,64,72,220,27,26,77,204,181,105,15,24,119,115,141,215,81,245,196,29,134,166,80,168,19,220,82,203,179,81,110,183,234,127,80,3,197,247,101,168,49,37,249,132,151,26,146,37,2,222,54,154,70,224,168,25,123,41,238,252,121,145,28,101,255,207,13,187,117,164,141,241,219,28,120,222,143,227,55,130,80,181,196,127,91,70,171,111,158,115,119,184,177,136,50,115,104,125,192,8,150,215,124,157,175,226,125,169,72,139,255,2,42,89,203,123,17,51,113,201,174,236,230,120,112,124,3,203,209,221,76,3,21,251,33,50,113,63,173,87,93,104,236,13,114,186,239,250,226,121,185,242,127,228,20,28,25,251,151,46,176,247,107,147,92,30,14,33,59,40,41,138,36,133,139,23,0,0,91,161,90,60,30,167,252,209,240,19,4,170,62,57,97,202,192,154,95,239,214,117,68,53,87,2,84,240,16,106,64,180,37,192,219,95,185,216,64,137,81,58,2,242,26,196,131,72,208,62,105,58,132,25,25,229,232,59,177,32,169,228,254,105,178,223,150,203,54,13,196,170,78,37,13,100,151,211,2,166,95,194,223,88,243,121,221,1,96,133,73,243,48,14,26,222,72,149,40,46,137,139,60,66,71,9,110,162,132,78,232,240,255,241,114,226,208,155,185,2,255,157,40,104,202,215,226,60,48,149,154,161,4,254,92,245,214,131,202,145,188,94,17,155,29,124,144,145,232,58,72,1,201,66,162,187,211,129,140,213,159,56,237,78,112,194,45,191,7,161,123,19,236,104,163,177,72,164,166,24,124,227,108,73,248,31,65,153,168,151,121,207,4,34,242,70,16,146,99,0,84,29,98,136,220,76,34,68,183,220,143,192,136,255,70,142,218,113,19,25,189,188,76,97,195,162,195,44,75,185,145,113,29,13,223,176,180,52,122,173,132,186,149,120,73,126,179,79,131,57,129,188,71,137,135,215,19,56,108,148,150,13,101,146,31,97,176,98,37,73,225,103,88,11,59,20,61,12,99,40,31,57,184,168,136,61,132,138,158,49,79,227,197,177,148,17,127,184,198,231,206,198,208,89,132,63,226,48,222,224,155,22,214,174,65,126,24,80,66,241,104,3,161,62,115,118,247,109,177,17,203,69,60,255,245,94,57,219,236,253,197,199,96,188,187,73,143,181,74,182,2,220,66,125,134,111,67,74,227,181,52,59,186,84,66,135,1,65,116,113,134,246,74,66,91,214,180,200,42,5,53,112,34,112,135,46,128,240,220,10,123,204,118,220,42,110,52,72,232,13,95,3,187,28,181,251,148,18,194,248,102,22,253,207,76,142,114,252,173,233,183,130,254,214,20,130,46,59,247,245,71,103,73,159,179,65,242,219,55,101,197,2,87,4,167,151,202,105,113,228,9,156,170,93,224,241,92,32,4,84,87,15,146,220,37,154,84,222,56,217,7,177,89,193,31,108,210,83,46,172,199,56,95,123,112,77,182,135,249,68,75,162,238,94,96,170,129,231,111,231,96,192,35,182,121,188,102,72,50,135,132,242,181,131,16,234,252,184,214,18,250,206,156,147,157,248,171,33,218,122,150,130,132,45,136,110,145,102,212,50,113,231,237,244,175,15,66,190,204,32,178,98,255,56,122,98,45,72,4,232,182,99,34,103,60,102,232,245,169,28,198,95,153,113,60,141,139,196,250,79,182,37,96,6,225,248,40,143,249,208,127,107,157,242,51,53,250,16,179,161,72,39,106,233,116,22,10,215,175,147,52,167,158,137,137,147,190,107,35,76,190,213,200,48,124,185,242,139,76,17,43,171,52,254,65,32,84,43,76,83,72,56,179,207,206,48,113,103,215,7,68,230,163,46,107,220,110,245,124,201,16,16,14,151,177,247,44,3,192,141,116,51,193,35,144,222,138,48,22,79,68,157,230,184,226,149,220,31,114,214,248,21,138,170,217,15,139,102,149,240,175,56,132,129,164,139,1,201,255,46,31,149,225,98,120,21,44,251,247,89,29,20,114,119,254,241,208,186,251,94,151,166,209,130,153,119,86,65,35,226,42,161,197,239,214,162,152,49,150,181,187,154,127,219,72,170,21,169,246,17,138,111,55,249,142,249,25,53,37,16,128,125,17,162,90,194,150,226,70,221,229,154,114,132,34,140,1,47,153,201,5,62,135,243,101,202,250,124,195,187,217,143,94,228,5,150,201,251,65,140,138,42,222,79,54,63,150,75,173,251,80,105,147,93,31,101,158,108,171,151,157,35,155,220,142,16,45,85,9,235,227,220,189,213,41,47,215,178,216,89,196,222,240,252,198,29,45,136,214,56,184,152,138,52,147,224,27,220,144,180,239,221,147,19,29,54,178,189,36,254,242,212,218,252,44,12,46,19,72,228,10,173,53,0,8,190,46,163,173,201,143,17,4,124,185,58,209,6,230,127,175,197,201,125,235,109,41,101,107,101,31,5,206,98,244,107,156,56,178,213,40,117,189,49,109,147,245,98,197,184,234,85,129,56,82,196,104,97,56,129,75,170,194,21,35,222,2,153,8,26,152,172,169,117,160,120,217,49,147,18,248,103,85,207,243,234,239,147,64,207,153,214,191,90,73,130,88,54,58,193,243,244,126,78,112,211,84,38,140,166,195,211,229,245,178,245,2,143,122,88,207,97,82,101,0,113,54,100,105,99,97,139,120,25,34,183,211,116,128,127,50,208,93,178,168,124,192,29,47,29,199,18,236,186,163,67,177,247,134,165,69,30,73,43,99,65,198,26,99,65,55,100,107,87,3,17,134,100,180,16,52,94,196,181,46,65,29,114,149,129,106,158,28,224,164,209,127,160,182,106,252,213,248,167,188,248,192,68,83,37,159,194,203,211,87,88,213,56,224,221,67,254,230,68,233,131,33,204,102,148,93,15,146,7,90,47,80,177,133,86,134,225,255,246,33,204,159,107,247,34,50,107,28,0,62,188,17,247,156,11,48,135,145,78,213,31,1,79,228,5,56,113,222,118,181,94,60,98,235,81,233,24,124,50,59,212,70,64,116,198,184,29,135,49,57,64,147,140,193,10,61,193,181,52,201,136,52,10,95,206,171,78,6,181,235,58,14,94,1,235,253,8,109,4,44,10,186,82,31,250,179,109,50,242,138,106,156,69,14,103,73,35,197,213,15,224,6,225,13,157,180,85,191,187,94,77,59,128,152,88,84,218,31,76,43,12,227,49,39,22,27,199,147,167,69,121,194,167,207,104,46,158,160,223,225,223,233,140,182,168,11,147,77,23,49,122,99,146,46,58,65,116,2,105,242,29,126,115,241,94,129,34,154,123,219,129,106,179,131,37,78,181,98,186,74,76,80,232,37,19,125,44,177,174,253,222,184,47,211,188,65,220,89,152,100,4,154,93,103,54,67,132,105,207,148,237,249,179,54,88,94,241,219,151,19,106,236,33,218,172,125,168,55,122,232,95,167,102,195,209,206,240,193,157,212,146,231,217,116,12,146,17,164,140,127,238,251,67,60,151,88,65,198,58,90,172,250,33,77,225,121,49,132,35,216,186,214,118,74,172,140,188,208,1,16,203,131,25,221,188,148,157,224,57,14,164,42,131,13,130,132,133,249,206,26,132,96,105,135,130,242,178,209,91,169,86,70,55,164,42,121,219,80,16,215,225,235,193,66,227,194,61,57,132,5,16,153,51,111,84,89,125,224,156,112,80,12,69,219,255,194,198,154,125,185,255,195,18,64,218,165,179,38,154,44,74,242,106,33,242,96,217,56,65,13,114,130,24,156,195,209,120,100,193,201,128,27,182,131,239,117,65,55,255,36,161,223,82,241,29,129,188,64,75,60,251,168,233,219,230,107,54,72,210,2,90,99,83,150,250,209,88,15,51,42,245,55,80,123,82,67,225,179,166,107,22,49,6,195,6,1,222,212,98,245,101,77,62,17,151,79,49,41,181,240,40,28,63,144,65,224,240,207,228,81,195,133,194,148,120,14,155,243,20,100,145,153,70,238,238,197,27,209,161,126,108,16,1,73,238,174,47,116,173,131,110,254,40,245,52,50,78,239,52,129,235,156,63,90,2,168,73,179,141,32,162,228,236,40,41,95,117,228,246,215,98,87,174,192,69,72,164,145,210,27,126,138,234,179,220,95,134,112,25,172,4,126,77,47,78,111,163,29,19,86,139,44,75,15,209,151,180,208,8,217,205,122,226,177,201,124,248,111,198,5,65,75,210,101,34,82,208,251,6,165,17,223,103,63,248,111,100,22,14,129,197,202,43,25,45,242,130,134,218,161,74,82,51,128,216,96,107,136,182,125,133,255,189,50,78,98,233,217,188,101,100,59,213,80,39,33,53,204,19,164,110,192,188,60,133,11,115,171,228,6,223,140,3,87,174,38,239,228,27,16,64,42,158,195,209,123,4,138,172,60,146,223,252,219,98,179,188,90,87,174,80,100,40,105,146,130,200,153,8,81,18,81,84,30,208,202,208,162,104,51,241,12,134,28,73,82,158,219,12,90,34,190,32,45,215,209,47,13,132,244,175,223,49,230,27,250,74,58,75,33,214,111,100,161,79,68,228,34,68,229,182,116,9,200,118,28,52,220,70,242,172,237,56,154,11,186,68,8,20,122,198,67,43,199,29,209,5,186,242,26,104,229,46,62,175,24,153,133,95,220,106,143,67,115,211,158,10,236,201,39,227,209,158,194,164,11,48,204,196,195,42,190,191,73,49,55,208,77,254,114,125,245,64,102,37,25,172,205,202,21,175,54,81,210,197,180,131,30,39,200,176,75,40,167,222,39,167,36,204,153,80,26,41,201,154,21,22,123,154,113,95,144,3,37,239,183,78,217,204,172,85,174,110,254,41,24,40,54,41,61,54,205,0,20,44,30,127,165,3,126,244,194,180,218,168,48,167,41,181,76,227,83,22,181,118,112,22,140,222,5,233,116,148,71,79,204,112,156,148,36,103,48,200,94,243,26,204,90,151,116,19,211,220,1,233,14,104,120,88,119,159,47,189,145,7,52,30,129,67,121,88,68,71,197,12,9,0,85,74,184,235,113,144,4,175,231,179,158,33,134,206,50,81,236,119,17,192,172,163,104,36,37,41,176,128,153,60,160,220,162,180,63,166,185,248,43,182,244,150,232,184,41,59,37,104,131,192,75,114,5,122,109,194,209,107,53,180,177,112,212,109,159,29,210,115,238,149,15,34,239,34,55,191,142,162,67,226,130,7,78,55,185,24,103,130,84,219,104,116,217,232,31,143,186,166,170,100,105,122,78,15,135,70,80,104,192,201,54,149,113,236,50,100,41,168,36,218,60,228,195,193,130,97,61,32,209,232,160,114,211,197,220,113,57,215,112,207,113,163,239,13,225,255,246,218,65,164,10,229,42,2,156,97,20,138,127,193,81,123,253,22,71,115,176,182,16,185,102,27,53,223,211,205,248,161,221,123,164,25,3,208,108,36,78,107,250,123,219,29,239,182,2,143,94,24,205,168,41,201,78,153,179,3,181,21,117,11,183,158,166,158,189,214,129,75,88,227,199,24,215,2,171,103,174,42,69,244,255,175,102,5,196,11,69,218,243,13,186,183,157,30,73,105,189,123,202,35,177,56,2,216,141,158,62,122,13,236,37,37,21,218,216,239,21,244,174,110,233,16,197,153,208,21,61,21,22,152,118,103,56,0,22,95,24,4,79,132,108,184,241,87,248,207,210,86,193,124,253,41,33,225,187,82,136,24,2,209,98,71,226,240,147,155,158,107,244,151,143,255,103,76,183,148,194,73,132,8,85,230,78,92,114,77,150,139,38,170,227,35,255,86,110,16,44,39,157,87,207,115,99,146,112,78,7,67,252,202,250,193,87,68,146,189,70,9,250,60,115,214,87,77,249,92,115,235,144,109,107,255,196,205,127,51,62,24,237,114,161,216,122,106,61,218,111,250,131,219,187,232,53,69,216,28,94,117,216,67,120,135,61,4,163,8,152,100,104,21,136,50,126,239,218,46,46,123,100,59,99,93,105,28,47,68,50,152,21,53,40,45,128,188,159,33,24,197,250,11,0,73,213,27,42,173,198,142,180,179,225,215,111,186,209,240,23,170,70,110,74,136,197,207,13,67,46,102,75,104,12,5,46,198,35,14,27,216,0,199,204,194,82,25,29,223,208,228,199,20,83,89,244,102,92,91,188,47,120,245,237,157,145,156,58,226,72,162,210,213,182,182,193,207,160,154,78,40,66,181,12,77,164,123,61,8,33,8,167,88,233,153,160,140,134,116,204,234,224,70,201,151,207,133,88,95,11,228,25,180,133,206,55,88,106,1,132,237,168,69,168,32,215,149,255,3,248,100,188,18,66,66,252,97,224,218,197,111,116,240,253,210,10,39,251,56,232,11,251,70,238,194,175,5,227,181,12,83,173,140,202,83,187,94,70,60,130,38,146,197,252,5,147,36,164,141,66,108,97,192,42,194,238,246,199,97,175,68,7,192,194,233,225,50,102,92,236,204,141,205,189,202,116,30,217,117,144,34,228,173,199,225,112,157,3,19,178,141,54,133,135,69,24,14,76,70,123,157,211,165,96,137,68,66,101}, {249,177,240,182,42,109,0,184,221,38,125,131,114,119,16,32,76,171,60,19,72,224,18,154,16,46,118,219,185,77,141,160,69,156,94,56,14,18,203,16,52,219,218,92,142,16,228,8,169,152,43,82,152,244,225,116,61,225,123,72,232,3,192,58,240,133,14,192,92,24,74,20,121,208,238,68,196,147,84,169,208,143,94,252,89,25,196,30,76,27,135,92,162,205,31,6,38,251,40,30,195,81,237,11,187,72,236,60,25,138,116,58,132,203,197,129,163,185,148,35,224,171,156,232,11,87,0,76,44,46,245,86,75,117,11,192,217,65,183,50,18,200,212,165,191,69,231,202,46,241,60,159,133,14,90,207,210,156,200,114,205,22,253,234,114,97,174,240,96,20,136,23,66,166,221,67,132,202,64,194,65,132,223,119,90,139,219,224,243,82,96,33,133,83,122,3,169,38,86,228,206,30,186,28,137,149,232,216,6,193,17,205,50,218,6,181,64,157,234,113,224,211,1,79,19,59,127,53,134,151,50,249,52,233,145,211,195,143,235,184,154,38,161,10,116,0,255,149,87,212,114,33,220,194,120,213,217,163,27,41,150,55,91,231,48,139,237,196,159,201,199,193,41,142,31,169,178,104,42,117,115,161,114,7,56,95,153,109,213,161,45,168,158,95,122,5,224,129,175,158,211,247,168,31,92,145,95,238,9,7,190,248,117,228,143,41,150,196,33,41,201,39,5,190,13,25,167,128,66,38,253,99,94,31,173,198,246,120,10,60,107,139,96,51,173,216,96,154,53,41,235,84,30,105,95,106,240,86,0,195,39,223,118,222,124,49,187,55,205,31,163,12,40,61,137,19,109,70,147,32,51,114,200,23,118,58,159,119,23,194,84,104,27,49,60,153,76,187,86,7,14,17,111,22,71,52,60,20,191,90,157,243,16,63,119,189,41,19,157,82,123,168,29,239,72,252,134,69,137,234,189,198,34,138,49,164,64,15,205,224,177,139,158,1,40,150,165,85,158,231,100,250,230,98,51,59,190,102,173,136,224,111,124,77,80,40,206,59,177,199,90,246,190,209,147,224,128,221,156,25,195,211,134,121,94,166,153,142,130,34,31,183,156,30,248,137,0,185,45,174,50,32,31,55,244,43,141,125,183,80,174,216,17,68,203,119,77,149,107,110,135,210,80,238,189,210,41,115,28,106,162,70,183,62,72,132,62,60,117,96,68,175,32,240,115,3,155,70,190,108,215,14,194,26,28,67,23,94,221,106,197,5,6,7,171,76,161,70,208,72,76,199,34,189,247,183,49,145,47,182,76,38,81,206,148,178,114,193,127,248,115,101,94,190,46,229,209,156,62,20,30,103,118,159,254,68,88,211,91,85,234,109,212,68,55,73,192,139,77,193,208,149,4,106,66,225,42,58,39,97,240,106,5,202,12,14,170,153,21,11,134,100,232,231,98,204,255,251,107,226,180,185,54,204,52,36,126,193,235,128,186,118,242,63,127,136,197,17,242,98,29,30,255,145,168,100,107,194,94,88,231,32,10,70,123,3,141,238,106,176,44,75,38,232,171,84,30,60,100,162,166,93,67,241,161,142,75,11,17,9,246,232,45,53,23,163,134,108,132,22,44,125,192,93,27,124,37,9,64,0,243,200,78,6,73,115,224,207,201,147,51,231,250,222,120,2,22,95,192,250,215,155,222,177,225,85,209,9,129,146,161,79,249,197,50,127,141,88,51,218,252,79,253,177,38,163,10,226,213,125,104,41,204,227,47,194,13,71,200,168,209,4,114,192,9,236,161,113,212,135,225,16,32,87,150,40,33,148,149,97,137,191,174,26,85,131,147,143,109,72,27,69,101,248,151,154,51,51,168,217,168,215,162,72,145,97,70,105,45,131,71,31,179,32,168,19,8,95,60,145,5,251,129,35,91,95,92,45,242,150,10,178,74,188,240,56,55,60,89,214,121,32,79,163,57,170,130,110,208,118,55,244,25,120,231,196,156,222,158,97,77,249,1,46,142,39,70,29,52,42,172,82,144,38,34,170,127,71,205,112,87,185,247,216,75,217,8,144,183,149,105,80,16,17,84,71,195,152,206,186,217,112,244,158,242,21,81,8,175,144,202,223,2,85,148,141,194,150,51,98,181,246,76,45,195,117,247,113,113,203,48,126,104,210,197,88,225,217,60,209,187,127,143,111,178,146,22,175,225,19,30,23,184,29,126,194,187,30,114,8,229,125,6,63,96,196,45,194,136,46,122,208,168,9,128,129,212,17,148,141,52,91,105,211,95,116,2,87,202,2,171,52,63,99,194,99,194,243,154,144,203,113,65,191,107,39,187,236,112,145,173,149,221,70,165,113,17,240,35,52,80,3,37,241,130,3,243,141,233,233,162,200,148,254,95,20,38,35,68,177,118,196,169,4,106,177,201,105,26,161,119,219,180,115,35,226,132,87,39,198,197,77,4,31,34,185,113,230,101,204,44,50,239,141,98,157,210,179,176,232,190,246,13,227,0,58,164,176,58,31,251,85,52,236,84,42,23,48,79,232,42,38,150,10,57,64,73,128,173,232,112,4,95,222,181,92,98,178,77,52,84,66,228,100,71,223,174,203,210,251,185,237,22,89,175,17,229,86,115,251,130,252,213,118,179,179,30,120,159,15,47,140,86,12,58,227,94,172,255,36,1,148,211,89,31,30,115,157,235,167,104,149,169,67,210,218,107,15,164,134,151,176,59,151,137,72,100,110,166,184,76,108,27,126,131,149,87,225,174,42,236,228,108,11,56,242,178,105,160,119,191,246,12,214,125,175,43,214,67,123,43,201,182,225,50,26,59,56,75,159,148,122,105,19,46,159,206,80,105,183,178,92,159,171,210,85,151,190,247,133,66,252,209,13,158,216,9,75,128,162,30,48,217,147,188,163,108,201,21,208,189,253,242,241,239,95,73,69,137,10,133,67,83,165,216,12,123,42,166,52,28,32,200,104,93,2,61,27,79,242,169,91,118,179,194,29,196,35,230,136,116,211,44,29,194,60,179,209,204,6,120,240,228,158,241,194,95,231,140,184,13,217,232,174,207,140,143,35,100,102,206,209,239,133,55,78,2,94,2,79,81,252,41,95,0,1,64,142,23,201,22,218,118,235,150,29,154,147,135,24,244,211,111,115,21,181,205,252,11,86,138,199,88,101,190,230,146,30,50,252,54,6,121,43,33,159,221,86,70,236,116,136,73,150,175,21,108,103,52,97,156,129,178,178,206,101,55,252,41,107,183,70,66,160,27,51,247,228,211,171,246,134,124,143,186,202,34,63,237,167,159,108,128,145,136,59,160,66,247,0,119,39,64,70,238,126,215,163,207,149,185,17,249,168,145,249,4,250,39,138,58,130,172,37,50,246,66,212,49,254,29,253,41,122,2,107,176,88,90,171,241,179,216,181,129,178,103,149,80,228,92,163,212,214,186,47,179,55,40,129,227,188,183,43,174,18,155,108,105,91,164,226,162,2,33,153,52,94,46,191,20,252,96,182,69,54,183,116,131,89,118,24,33,99,191,71,99,246,251,19,202,192,154,194,46,88,77,17,88,128,99,138,55,80,67,219,224,42,193,11,15,177,166,169,157,88,248,161,194,240,71,73,9,50,189,161,146,147,236,14,238,201,136,82,208,32,191,191,16,74,110,122,75,221,226,57,41,101,216,120,169,194,188,54,143,166,235,233,241,76,231,216,126,25,148,131,159,121,136,21,84,72,17,28,24,189,154,69,90,45,30,206,78,124,179,95,93,86,10,101,59,191,209,85,210,126,82,239,77,112,218,73,32,151,15,248,0,168,199,190,221,139,31,97,82,219,55,25,247,91,10,135,102,137,3,70,73,162,171,121,78,190,16,100,61,87,93,208,76,116,172,127,220,52,40,181,151,82,216,176,175,47,123,141,93,71,93,129,96,21,176,159,7,156,168,56,240,227,176,40,164,118,172,82,198,37,104,121,237,229,20,117,24,149,246,5,210,192,118,240,51,74,144,83,49,211,78,114,106,54,170,248,0,69,106,74,241,208,37,246,215,145,157,40,234,73,16,145,107,160,183,89,114,33,254,5,26,111,86,231,2,224,125,103,96,90,93,182,202,125,239,138,124,142,102,163,42,53,7,204,228,185,51,45,211,224,97,139,89,233,8,130,224,185,242,239,113,59,31,52,175,217,93,74,166,254,247,214,120,178,23,99,172,74,194,13,54,14,234,123,254,193,39,204,238,157,192,137,81,158,180,73,178,115,231,14,129,148,151,62,18,208,23,95,174,24,233,153,94,237,168,179,29,226,43,98,36,239,145,249,147,1,105,213,95,42,242,98,85,22,14,110,172,134,97,31,118,144,200,48,159,151,46,148,170,20,80,135,92,250,116,29,94,144,144,65,37,199,234,178,134,252,50,43,137,44,255,137,2,35,11,142,242,131,237,70,196,76,90,111,235,157,174,81,34,241,80,170,155,66,83,222,28,245,95,84,50,123,181,56,177,213,237,111,166,84,157,132,78,251,125,242,93,218,21,73,232,168,224,122,72,234,176,255,139,226,59,180,134,3,166,153,23,54,248,126,238,157,145,184,77,221,184,224,123,235,55,191,141,26,69,122,35,170,209,87,250,198,201,125,76,151,38,112,77,30,185,25,107,210,200,137,191,111,162,101,78,144,120,10,24,17,242,81,213,143,173,101,72,252,244,19,200,175,246,191,220,91,127,192,44,214,165,237,40,196,203,92,232,236,135,164,36,105,112,239,56,89,199,167,98,151,59,130,109,153,141,4,27,40,100,161,70,243,224,208,2,211,0,103,41,104,199,201,151,209,136,198,247,97,224,11,112,197,255,129,169,57,242,193,55,240,20,126,29,124,152,124,115,119,16,250,199,247,124,8,55,1,118,106,173,99,97,227,205,237,238,228,108,76,6,241,12,20,168,17,149,130,251,220,11,142,36,148,70,100,79,14,123,56,12,17,166,173,235,69,180,115,30,91,184,127,131,82,19,210,102,131,26,65,95,46,191,127,145,144,222,111,195,163,245,19,187,47,65,26,14,25,152,11,57,16,225,58,69,134,61,108,245,150,104,197,11,130,250,81,106,206,201,253,131,220,208,158,14,33,38,58,121,110,72,230,153,193,137,200,98,66,194,5,100,55,62,210,2,118,215,248,175,98,163,201,11,188,41,221,137,150,236,251,152,160,206,192,27,106,229,133,1,17,139,59,21,225,66,14,84,228,46,251,25,153,253,161,58,100,28,30,92,246,149,156,237,18,29,171,82,147,15,104,53,64,85,232,158,181,80,162,83,171,219,157,248,165,166,62,138,29,96,37,188,177,34,13,205,111,241,195,59,92,104,71,104,137,199,247,252,11,245,240,177,181,138,113,229,184,243,130,188,201,41,32,253,243,113,26,224,151,35,202,2,0,45,134,192,250,38,142,110,59,166,49,105,181,165,94,246,23,70,14,84,172,131,135,32,236,91,13,119,246,125,125,206,70,24,247,228,60,110,151,161,34,255,77,226,162,218,200,133,140,255,103,39,90,135,92,141,227,46,233,239,159,74,51,106,233,106,252,55,242,200,214,76,212,249,49,221,60,246,95,26,197,89,184,100,97,168,47,56,18,127,252,33,32,245,184,71,34,115,37,6,239,196,104,138,221,177,85,247,85,116,102,200,127,135,113,54,50,148,75,161,238,23,241,156,151,129,97,179,238,213,146,82,48,36,219,54,24,66,63,255,85,244,155,55,242,121,127,130,148,228,191,45,89,169,63,182,114,166,82,251,100,130,232,126,173,29,160,32,242,210,232,82,226,208,174,48,254,176,126,22,22,147,231,40,153,11,50,194,95,175,229,67,46,20,199,105,33,105,4,125,103,255,18,96,67,180,155,214,176,153,214,111,237,43,229,79,100,229,241,30,22,83,207,82,234,8,119,50,28,147,94,7,101,252,81,140,3,197,35,7,153,141,65,182,159,238,29,141,12,156,14,18,174,11,1,109,154,51,54,212,13,155,41,1,231,132,127,21,230,245,46,63,52,115,229,35,147,128,196,240,121,146,55,32,53,222,81,128,23,237,233,224,29,19,143,57,213,102,117,15,22,141,91,84,151,13,120,150,55,214,199,80,228,60,121,173,76,171,92,195,46,9,196,2,181,175,215,73,60,89,178,28,6,173,93,12,116,203,120,198,231,127,68,97,63,197,12,158,66,78,142,112,63,31,3,37,192,110,84,3,249,255,5,81,97,63,140,71,114,164,32,5,63,220,224,174,118,165,216,217,50,122,11,59,238,50,138,218,242,179,86,33,14,90,161,112,26,166,106,190,100,231,93,101,83,70,140,96,219,51,61,217,32,141,208,27,134,101,75,60,81,176,20,129,17,78,155,145,99,103,85,58,228,70,235,105,191,166,112,254,196,109,129,172,204,155,113,247,52,189,218,119,164,121,169,79,156,220,32,233,214,196,253,143,57,42,15,199,66,199,20,53,38,63,182,176,2,79,137,62,176,97,235,233,207,91,97,32,101,52,95,48,107,4,182,1,81,188,113,149,58,83,151,17,94,226,0,86,219,1,162,13,202,246,79,62,74,69,84,117,79,60,72,180,53,57,248,168,248,249,45,194,182,61,188,5,50,43,212,196,236,145,14,132,236,246,49,148,116,47,236,147,169,148,112,133,129,79,89,101,27,208,237,3,105,28,251,43,179,35,31,113,137,6,226,164,171,112,219,49,202,133,56,5,78,76,39,1,60,57,80,96,122,14,233,174,133,238,76,191,104,187,21,5,70,16,237,135,84,26,93,226,141,197,191,144,143,74,77,218,143,46,249,169,177,147,35,77,74,92,74,202,101}, {65,13,11,242,127,219,47,50,160,206,14,232,120,218,244,117,172,223,193,26,53,90,58,251,153,6,229,194,27,241,111,48,245,234,204,180,251,103,188,122,4,9,231,139,209,189,192,57,249,55,23,164,194,84,20,221,34,4,237,65,72,255,83,205,251,242,195,148,80,157,233,239,100,135,198,251,118,122,156,145,100,252,58,191,213,46,203,114,145,65,59,233,120,224,197,84,65,157,135,250,123,228,33,106,39,220,4,7,74,224,194,0,37,188,44,234,154,16,122,173,181,175,66,136,237,13,138,227,140,6,201,4,146,190,174,32,112,220,206,12,238,90,20,253,13,180,124,120,67,103,85,120,154,239,41,152,123,48,7,229,132,219,87,84,31,126,252,138,5,242,33,175,35,244,151,196,65,26,207,203,108,126,78,217,6,174,83,10,76,209,197,46,208,25,61,22,53,142,118,35,195,36,2,84,72,144,8,109,138,47,164,233,139,80,112,226,165,77,88,6,3,189,11,171,72,227,25,126,93,82,195,123,87,218,118,243,91,0,212,51,52,56,60,150,41,206,235,231,171,119,13,201,40,225,31,138,99,75,161,108,62,197,231,145,121,93,76,100,74,51,15,74,124,45,94,7,168,170,228,208,57,230,255,27,249,89,157,4,40,248,91,76,159,114,13,220,16,111,197,171,121,246,227,101,82,11,43,122,95,241,5,197,43,144,23,151,116,216,137,91,192,12,2,6,225,146,35,73,227,46,146,4,232,129,189,106,149,197,249,219,70,210,53,116,147,100,122,177,14,0,216,6,138,151,43,127,169,3,55,29,108,204,79,132,161,124,122,201,41,90,54,103,189,234,97,92,17,249,241,69,115,175,15,176,150,50,16,91,247,7,114,157,190,75,184,88,84,96,81,83,58,60,147,12,155,47,217,42,1,223,75,24,147,234,139,133,181,127,136,157,6,131,41,236,101,168,156,122,62,102,206,39,231,36,102,183,115,59,179,193,167,8,182,54,45,82,97,56,112,170,41,244,192,131,136,129,136,103,83,142,96,232,11,190,226,191,240,88,67,118,25,42,220,64,231,33,48,208,73,187,253,93,215,92,35,86,192,118,84,193,219,244,58,139,0,206,67,216,18,175,65,87,222,193,215,8,116,140,50,237,249,58,233,245,85,179,38,144,242,89,91,35,28,217,135,5,93,175,214,81,24,161,206,159,140,175,205,41,89,37,250,110,134,235,150,41,169,85,94,101,251,106,200,44,33,205,21,126,254,97,80,145,198,116,242,243,77,11,162,244,244,190,6,85,99,20,90,37,99,239,246,211,9,168,27,160,76,199,190,40,78,139,190,70,87,184,110,230,167,81,235,111,115,142,100,137,50,69,128,28,194,80,162,76,244,208,66,159,119,69,84,49,73,154,196,223,90,4,209,98,59,181,77,84,238,58,171,230,86,193,45,203,242,224,4,204,0,95,100,10,86,64,236,175,37,103,136,204,231,237,137,126,134,71,228,168,90,65,254,11,47,74,147,224,200,148,219,48,8,59,99,158,36,156,137,170,240,100,189,31,43,61,28,129,10,192,93,211,51,136,106,232,168,14,175,218,233,72,252,37,178,252,42,116,202,119,136,56,131,166,211,129,243,76,158,244,138,39,158,145,250,140,175,183,218,42,146,123,7,117,104,252,71,34,213,53,222,8,142,170,87,254,10,63,10,162,92,93,179,186,110,173,56,142,236,166,192,117,49,150,107,105,179,106,180,136,136,124,14,151,71,205,250,120,179,40,104,8,21,178,212,27,145,236,161,225,67,79,60,50,149,220,69,238,21,132,213,34,81,248,209,135,227,174,230,64,161,27,47,254,85,250,229,63,25,71,53,158,142,9,180,203,76,112,216,249,115,92,145,146,65,157,183,232,233,59,147,79,53,12,81,65,209,147,185,0,39,148,158,245,223,155,220,31,144,165,93,221,149,54,40,97,116,43,63,229,159,184,221,171,183,79,245,186,150,103,65,194,19,254,61,62,216,199,46,33,91,191,248,118,102,6,255,213,8,234,117,172,90,201,218,176,141,127,89,177,235,214,3,19,147,35,243,1,50,91,5,255,112,151,53,246,37,144,205,87,203,192,213,81,180,251,109,19,63,135,132,56,107,46,171,141,143,153,12,214,135,44,251,21,177,105,208,212,94,41,100,254,135,45,117,82,6,180,0,115,1,23,181,90,123,181,46,12,217,14,137,251,172,168,82,21,165,101,108,80,123,66,38,209,55,206,240,157,28,141,42,181,164,138,80,222,63,91,9,93,77,136,196,239,125,96,31,167,221,35,205,54,18,106,14,127,234,208,228,43,138,131,18,110,86,178,184,154,127,206,13,1,156,150,100,14,78,164,87,243,161,255,6,189,65,250,231,249,65,233,153,62,184,75,206,136,116,132,193,249,7,253,234,6,36,232,89,15,130,123,254,62,136,226,56,254,32,52,225,152,238,179,159,2,182,106,60,228,239,175,70,52,250,145,127,219,75,30,109,252,119,120,135,12,218,210,253,245,187,134,109,54,111,150,5,171,34,28,63,83,228,39,154,188,249,71,16,186,132,190,185,230,57,63,175,21,75,128,8,136,6,77,37,136,61,15,3,76,216,32,143,183,89,248,26,207,61,14,72,54,123,157,0,97,90,102,164,81,68,64,148,93,44,104,92,190,218,147,174,35,139,221,223,22,27,220,129,204,90,199,231,188,176,91,112,145,37,173,109,16,199,205,94,121,143,140,141,63,101,55,0,28,33,230,133,102,224,101,221,144,168,116,7,127,216,131,185,240,73,189,16,106,105,240,40,200,237,212,150,115,201,111,80,53,75,122,250,247,57,52,31,120,67,70,139,199,19,210,113,117,151,157,121,211,8,40,119,237,73,33,42,42,3,66,167,70,52,105,143,160,149,210,194,89,120,225,196,240,233,210,131,117,181,97,245,99,113,255,138,51,213,231,90,99,178,254,67,134,146,28,142,14,68,133,246,180,104,211,69,93,216,111,77,170,154,159,254,164,177,56,231,121,142,225,228,113,225,175,92,106,31,50,118,77,19,122,134,91,121,198,7,36,135,78,254,55,251,56,128,9,162,79,38,104,255,196,184,166,98,183,25,89,108,56,208,39,125,168,202,130,63,227,204,144,90,33,104,157,127,54,22,122,246,99,236,216,243,7,237,148,12,40,154,149,209,36,173,14,113,12,55,67,192,173,205,197,167,229,85,96,178,73,246,116,32,76,210,206,205,108,150,69,238,170,173,123,57,126,254,102,27,6,141,59,96,35,41,59,56,209,25,205,118,54,169,2,235,241,145,155,138,21,19,177,130,168,64,29,117,55,70,174,245,246,125,244,207,243,174,156,19,67,132,46,235,117,191,157,157,64,203,163,190,67,94,18,8,169,121,188,209,46,251,40,227,61,225,125,230,121,41,112,24,145,109,21,20,168,251,20,101,246,82,171,98,88,116,152,105,226,184,90,230,21,23,70,165,19,169,145,135,193,230,47,95,85,177,11,97,34,158,110,206,168,254,138,31,145,39,131,118,134,148,43,30,72,37,20,15,89,223,47,119,211,183,92,159,178,43,236,252,53,41,30,143,83,154,51,158,75,236,232,248,216,197,98,160,164,42,96,58,255,159,104,223,195,160,131,95,248,112,239,7,242,1,245,155,26,242,32,111,104,23,159,85,253,111,178,59,44,132,230,73,134,137,251,220,6,209,246,26,166,207,161,90,190,48,209,143,202,152,166,164,205,57,146,115,253,53,149,94,176,43,97,253,45,98,151,168,221,115,57,86,220,234,92,170,201,37,20,83,86,202,103,252,58,80,215,59,229,205,222,69,23,124,125,114,87,210,187,188,128,174,80,92,106,49,15,78,83,80,98,202,72,195,197,81,108,7,40,57,181,35,227,88,64,187,139,102,155,101,93,21,167,77,195,159,50,183,227,163,73,116,173,255,191,59,9,227,2,206,153,111,119,245,187,209,113,156,198,202,214,112,59,187,223,172,26,51,37,0,215,34,12,5,86,55,31,218,126,29,20,214,153,36,73,43,51,78,41,148,102,182,125,57,58,89,251,36,77,1,12,87,244,211,252,21,190,237,175,84,25,148,250,200,103,246,78,188,250,204,102,149,104,70,239,91,51,52,209,158,75,160,192,217,57,56,88,123,192,195,228,16,20,230,8,183,6,243,195,235,46,120,242,163,178,218,217,226,86,22,245,138,92,61,138,199,72,158,237,166,96,16,28,62,174,7,101,207,215,16,100,199,98,49,196,182,248,143,254,76,136,152,217,205,121,63,108,10,213,46,66,86,154,123,131,120,115,38,232,211,54,171,107,161,7,206,215,56,223,52,199,80,99,220,164,83,87,209,31,211,232,214,145,171,153,175,170,95,45,67,233,25,215,223,236,29,96,200,159,65,6,61,33,107,218,244,41,183,167,133,129,12,34,2,173,141,183,28,125,154,114,68,114,41,242,175,27,14,152,46,8,175,67,16,228,100,116,251,92,24,75,205,198,168,16,238,53,225,4,212,206,168,157,85,111,95,147,182,99,236,37,205,16,62,143,32,113,71,155,175,12,220,42,103,236,248,113,96,151,68,71,94,255,95,195,7,173,125,3,164,150,147,93,65,81,232,8,186,70,44,218,99,116,4,165,44,187,186,14,249,246,13,25,182,65,213,50,148,75,168,107,178,234,44,45,161,61,135,228,243,132,50,211,144,40,120,104,165,209,168,40,126,236,102,235,199,254,136,197,139,168,161,165,196,162,193,233,161,202,128,123,216,253,247,158,202,138,177,151,108,160,166,48,226,36,91,253,85,200,218,209,108,205,228,213,132,156,135,11,26,164,46,197,217,111,15,1,219,214,165,173,181,88,165,44,136,206,130,220,98,42,20,78,154,84,155,186,225,16,98,178,244,61,91,86,234,64,168,210,53,198,204,77,127,202,165,253,65,166,14,251,75,191,37,39,19,221,49,244,197,94,143,43,24,195,213,254,22,187,225,27,2,113,248,229,62,9,41,33,108,78,14,47,77,214,246,21,239,71,32,215,74,224,161,7,94,110,73,83,23,236,17,32,179,35,216,236,243,106,7,111,78,129,18,44,234,75,41,87,89,1,36,115,131,111,202,252,189,229,65,134,250,66,180,68,172,237,219,147,54,232,127,178,248,211,31,175,13,21,67,10,98,117,231,53,188,140,243,148,121,151,215,93,197,146,48,135,79,192,175,177,149,110,171,11,18,220,210,186,26,142,59,103,6,133,90,158,8,105,236,155,76,134,113,74,24,55,10,180,207,195,49,242,174,172,111,234,209,30,4,51,122,81,189,188,233,99,56,88,199,59,19,169,32,91,48,65,227,118,132,82,102,71,212,213,61,200,213,28,116,158,170,195,97,99,141,26,167,45,227,83,121,159,89,184,3,233,119,94,51,95,176,163,173,30,101,131,241,112,139,134,54,172,98,121,77,91,23,98,195,11,141,81,233,46,7,169,92,92,223,217,200,110,46,125,208,53,169,15,83,3,54,35,169,212,252,51,111,0,165,90,24,163,168,147,150,43,110,74,6,87,139,22,90,35,145,116,246,218,231,176,127,122,20,45,100,41,173,70,222,53,57,229,123,105,38,1,244,182,41,163,10,75,133,208,90,28,186,132,133,210,24,43,250,172,46,231,46,113,116,113,99,254,79,133,26,254,220,102,72,200,143,141,118,155,164,192,61,24,115,90,98,217,14,19,86,96,158,93,30,22,71,161,71,246,48,14,18,219,217,25,231,226,132,5,221,202,18,243,61,110,227,229,219,145,238,130,223,14,27,201,221,186,198,121,234,156,55,225,126,118,130,70,170,249,96,119,221,159,242,242,30,237,3,3,156,19,78,24,172,124,209,152,28,176,91,52,90,106,5,135,102,75,174,162,222,56,252,63,47,104,252,182,111,42,22,80,77,221,65,35,128,158,222,11,16,164,255,0,80,134,5,153,106,199,247,192,99,249,160,121,58,169,234,58,107,61,30,19,76,9,195,152,205,30,127,77,219,250,81,57,119,203,157,54,250,123,239,6,228,8,168,100,35,253,53,191,21,79,72,21,45,86,31,64,179,155,238,109,86,216,189,231,65,170,219,60,193,129,168,123,25,141,140,218,253,48,165,253,7,150,111,245,3,188,2,158,59,67,112,203,157,62,142,159,99,193,174,177,11,198,174,43,62,79,218,183,1,160,109,190,255,208,202,168,113,67,88,17,243,45,146,211,197,127,94,250,180,131,227,204,94,171,201,26,94,127,22,48,107,84,9,195,141,89,85,204,39,39,151,170,253,155,145,207,10,243,47,166,179,251,181,203,234,203,107,242,182,142,2,254,201,70,242,86,152,155,73,75,99,185,58,164,134,231,142,245,205,225,12,172,110,127,152,216,174,117,250,72,98,145,190,189,37,155,62,212,45,32,185,191,31,219,243,73,121,183,93,242,8,141,186,35,191,57,24,118,0,232,125,194,130,183,210,242,26,206,129,108,57,84,193,39,243,252,152,71,61,125,99,217,187,55,151,106,28,184,115,118,73,206,126,218,242,128,21,238,177,118,150,97,156,61,28,74,105,145,126,195,229,186,154,154,149,39,217,72,19,171,27,141,253,252,154,24,110,125,2,229,191,197,245,225,92,157,163,188,249,153,122,150,67,57,69,250,28,41,127,207,187,90,38,208,10,108,94,222,208,159,15,138,210,74,194,232,55,51,91,110,130,195,199,77,173,239,17,240,170,10,121,192,159,244,186,252,159,43,206,114,147,103,129,17,53,249,98,28,217,250,63,12,74,197,95,200,54,206,250,164,252,221,145,103,225,50,128,108}, } ; static void test_decode_761xint32_impl(long long impl) { unsigned char *x = test_decode_761xint32_x; unsigned char *s = test_decode_761xint32_s; unsigned char *x2 = test_decode_761xint32_x2; unsigned char *s2 = test_decode_761xint32_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_761xint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_761xint32(impl); printf("decode_761xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_761xint32_implementation(impl),ntruprime_dispatch_decode_761xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_761xint32; printf("decode_761xint32 selected implementation %s compiler %s\n",ntruprime_decode_761xint32_implementation(),ntruprime_decode_761xint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_761xint32_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_761xint32_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_761xint32_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_761xint32_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_761xint32_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_761xint32_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_761xint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"761xint32")) return; storage_decode_761xint32_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_761xint32_x = aligned(storage_decode_761xint32_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_761xint32_s = callocplus(crypto_decode_STRBYTES); test_decode_761xint32_s = aligned(storage_decode_761xint32_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_761xint32_x2 = callocplus(maxalloc); test_decode_761xint32_x2 = aligned(storage_decode_761xint32_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_761xint32_s2 = callocplus(maxalloc); test_decode_761xint32_s2 = aligned(storage_decode_761xint32_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_761xint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_761xint32();++impl) forked(test_decode_761xint32_impl,impl); ++test_decode_761xint32_x; ++test_decode_761xint32_s; ++test_decode_761xint32_x2; ++test_decode_761xint32_s2; } free(storage_decode_761xint32_s2); free(storage_decode_761xint32_x2); free(storage_decode_761xint32_s); free(storage_decode_761xint32_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_857x1723.c0000644000000000000000000011575714705505543022410 0ustar rootroot/* ----- decode/857x1723, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_857x1723_checksums[] = { "3c44cbbf4970935594d86db45cb014095a1ca333e3ce7b2756b4fd46153c6014", "98b68e4fbc41894cfb6f07f41b15619290fe6c4ae47126151bc8bc91ec7a15e7", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_857x1723_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_857x1723_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_857x1723_ITEMBYTES static void *storage_decode_857x1723_x; static unsigned char *test_decode_857x1723_x; static void *storage_decode_857x1723_s; static unsigned char *test_decode_857x1723_s; static void *storage_decode_857x1723_x2; static unsigned char *test_decode_857x1723_x2; static void *storage_decode_857x1723_s2; static unsigned char *test_decode_857x1723_s2; #define precomputed_decode_857x1723_NUM 4 static const int16_t precomputed_decode_857x1723_x[precomputed_decode_857x1723_NUM][crypto_decode_ITEMS] = { {303,807,1563,6,1758,-2202,1440,1275,-1983,-1368,1818,1197,-1146,-894,2169,-2472,2364,2043,-2112,549,294,1371,-831,-546,1965,-588,1797,990,-1995,-60,735,2142,2142,1677,-558,471,984,807,2454,1962,1011,-2370,2178,2373,-1272,-2211,-1845,1761,-1749,984,771,2184,291,1881,381,-942,2442,2040,-885,1257,-1929,309,-1590,-1149,-2133,2085,1731,-1347,459,-417,-1575,345,-1965,1863,573,2556,-717,1773,711,1812,-1389,1302,-1221,2436,-1452,1299,1416,-2136,960,-177,729,-837,2277,324,-687,282,-2478,-1431,-93,-2238,2055,1776,1320,-1530,-1035,1281,-744,1413,-1335,1521,1263,-180,-2559,252,1488,-1584,426,2253,705,120,-1047,-1620,-513,-2583,438,2412,1695,90,-2256,2172,2490,2544,-1872,240,-1719,2082,279,-1821,-567,942,2067,-399,456,-1386,-195,753,-894,1767,-645,1902,1920,738,771,-1104,-1182,375,-930,-1839,-126,-1434,-1002,1221,-2385,-1965,120,945,2187,981,-2439,597,1353,-63,1374,1920,1416,2058,90,81,-855,783,474,-900,1731,1911,984,1386,-2325,1503,639,2382,-66,-1875,-2571,1161,528,1245,2190,-1059,-1734,-1740,1398,-1227,-1686,-921,-2043,-1692,-1824,696,6,-1218,180,954,-690,-2277,414,1428,-2502,1254,-2565,-2487,-357,-1671,-873,-585,-1173,-1287,-30,-2562,-1695,1194,-1047,807,1746,-534,-1509,-153,414,-1425,-1197,1254,-1131,747,1626,-1218,-66,2199,-348,-1911,1950,2514,-2211,906,2055,54,1773,822,2037,-1833,2295,-690,-1719,-900,-2103,-1215,1182,-339,-618,-228,-2430,-60,1263,-1638,774,2109,-1230,-819,1440,243,1842,-978,-1605,-1695,-1962,891,1041,-486,1992,2433,2031,-24,1725,-1170,-1740,-597,-120,1686,2100,219,279,1992,813,1569,2460,462,-606,36,-1131,-315,-1440,-957,1896,849,-2337,192,1683,1650,-1971,1035,-1047,-1773,753,-195,1548,1953,1767,-2490,309,-582,-2253,1122,-1653,204,1608,1374,-2010,219,-1107,768,975,1785,-1563,-1245,-1527,2439,1581,-2280,-2460,366,2241,315,-2421,-2106,-654,1923,-2358,-1266,-39,285,-1365,438,246,546,726,2373,615,2547,-123,-378,-1305,1323,1671,-2283,2175,2508,2247,2226,1740,-582,1782,894,-300,444,-1725,228,-1791,-807,-369,1518,2406,-2067,273,-2460,2502,-1035,489,-573,-2007,1254,-213,777,732,-798,-870,-1980,-2391,-486,-2409,-2532,-2199,-579,1080,1824,-2094,1734,2352,1920,-2559,780,-621,2424,-1077,687,-1863,-894,-666,1791,-1977,-1137,-1425,1422,-2133,-1755,1857,-702,1125,-1692,-1377,1107,-681,-2496,1488,-2007,-1698,-1713,141,0,-1953,-1290,2547,-2478,249,2190,-996,-1041,624,321,318,-657,-1827,-2550,1410,-2565,-1242,-1887,-2142,-321,-2319,-516,2109,159,-885,-2370,633,-2424,-2085,2058,1767,420,2307,-15,495,-363,-1296,765,-1395,2385,1401,162,63,1677,1029,-2172,-429,-861,-1242,438,2382,-999,2376,1089,957,1620,2052,453,-2484,1437,330,-2436,-1503,-819,-822,-2508,-2061,-924,2415,270,1053,-966,1035,-1014,390,2127,-1947,-630,-1644,837,795,2397,-1257,243,-1734,2337,2475,-1461,-1866,300,-2484,585,-648,-1896,-837,93,-1260,-330,-540,2421,-963,-1980,1512,-651,-2481,-1494,2025,327,-1806,-1335,-1314,-1740,627,-279,-2514,450,-933,1608,-2328,-867,1809,690,1407,-987,-1518,2352,-2379,2052,-246,-669,75,2565,1644,-2406,1425,1797,-960,1053,1809,1398,183,-27,1485,-1677,-1698,1023,-2112,-507,1563,1395,-411,3,1386,-312,2349,-1227,1572,-1311,-1554,1914,2577,2139,-2094,1212,2118,1218,1803,-705,-69,1116,-1335,-753,-1596,1053,-2406,-2280,-1893,-2337,1620,-396,-660,-24,-1125,2013,-612,-2544,-630,1725,-918,-1038,2085,-153,-72,2466,-1767,-546,-2157,-1527,87,252,-249,849,2577,-1218,-1863,-2496,711,-120,-654,492,-1941,618,2538,1383,-2418,735,2097,1863,150,-1998,-585,-90,462,408,1242,-504,-1698,1383,-1548,2487,957,1122,39,-1770,-2523,1881,-2109,-639,-1899,-1161,2436,-2217,1968,-141,1197,2070,1116,-2283,1479,-654,906,1212,-2205,-2544,-1323,741,2058,-2025,1611,-1443,2478,-90,417,-2400,-42,1677,-573,210,-153,1503,-1281,1470,1305,-876,2310,-1188,-1305,939,2424,30,1224,-1896,1215,-1197,-813,-2061,1842,-561,-2169,-963,33,-480,1038,2139,2175,1326,699,789,-2565,144,570,-1221,-1665,129,-1236,855,2142,1803,1467,-1815,2334,369,2349,-1032,-1371,-2073,2418,1158,1944,-276,1146,513,-1815,324,-1698,-1623,-1194,-1533,-1860,672,408,-180,2430,-648,-1542,333,1980,630,-2427,-2088,2247,2430,-105,2463,1305,1734,1563,1710,474,-810,-1119,-2028,1698,-1092,-564,-306,-2370,1995,1197,1665,-1431,-1425,216,48,-1332,-363,114,861,1311,1719,495,1437,-1449,-1143,1995,924,1833,1851,-795,-2553,711,2397,1671,642,1563,309,1764,-501,1236,-1701,2145,-1509,720,-213,1779,2481,-1482,1215,1047,591,969,-999,-1686,-33,-1176,-117,-1401,1605,72,-1896,2508}, {135,-1644,1038,87,-1524,300,951,1197,933,-708,2520,-171,-2289,-666,2550,-2538,210,-405,-273,-1125,2394,-2406,-927,2283,-549,693,-1737,-2454,-1815,-342,198,1527,27,447,174,-162,-1875,2169,855,2136,2052,-2565,237,-1815,-57,-624,1818,-897,-2133,-708,492,-294,1410,-972,411,2295,1002,1029,-1443,-1116,-1944,-1323,-1947,1317,-1095,-2322,-66,-1419,132,-1218,-186,-1872,-36,-564,-1383,-1797,1131,399,-132,-120,-1800,-2130,-300,-633,-1152,618,-1491,-807,1998,1794,1743,-555,-2106,-2475,2418,-2100,-543,-996,-1398,-441,-1086,-1482,-1878,-153,2238,-1905,186,690,1923,-462,1413,-1158,-1809,180,-324,-1755,-288,-1836,2322,669,-1665,708,6,1500,-768,2076,2334,306,-1689,222,-1698,-723,-894,756,2136,1317,-1389,-57,2058,-2319,-840,21,-1905,591,834,2244,-2274,-2487,1743,-210,-774,-2460,177,2301,-1239,231,1305,2283,-900,219,-639,-240,720,1401,105,1470,486,666,-1206,-1167,-1944,2118,-477,-2322,-132,-1485,1302,2256,-879,-144,-354,1719,-531,2196,168,1224,-1494,2505,1977,1866,2346,1275,1782,-2229,-1533,-1593,1269,-1689,-1314,2466,2091,-1686,-429,321,-183,1779,1641,537,-1590,-909,2328,-198,-498,-1602,1365,-225,2151,-2007,-990,-873,-1443,711,-1986,-156,-330,-1098,1017,1602,522,-798,-528,-666,-1926,2172,-2124,1287,1716,-1665,-1740,414,282,201,18,2463,-1683,-1539,-2082,-216,1068,-2421,-2466,-1380,-2181,627,-255,-1794,171,-390,-198,84,-2229,2208,216,2394,1326,1110,-1389,-498,1761,1659,1836,99,1929,2466,405,549,-1794,2358,1212,2043,-282,1278,1242,1983,1500,-834,1233,-918,1623,1899,2523,-744,894,-2529,-1995,1110,1788,2145,1680,1830,-1512,2373,-2112,897,498,1593,-2292,-741,-639,-1635,-1152,2367,1704,1980,-1896,1287,-1614,-1734,-1182,-2559,792,501,759,1932,90,1605,1161,-1368,-207,438,-465,-330,1233,2265,2532,2328,-480,-501,-819,291,1563,1689,1263,-2268,978,240,186,597,-1545,108,1542,174,-1962,2307,1836,2373,-1821,-681,252,-2298,-330,-30,2430,-15,834,1557,1062,-87,-855,1902,2292,1767,-1635,2262,1788,-858,693,1797,-192,-2052,-954,-1632,243,-1377,-1890,-945,-2298,-396,954,6,102,825,-171,-114,669,-60,141,-1488,1707,-192,582,1677,-1641,-906,-843,-1737,-2190,675,414,1575,2247,-2499,1179,-582,-1893,1506,-849,2058,-564,2139,846,-72,-2559,345,429,549,1809,381,717,-2259,-1494,2067,2046,606,-168,1530,2409,-2307,-1905,249,-507,1107,-1488,951,1527,-1347,1665,915,2394,-897,1068,-1767,-1371,1860,2061,1968,1641,1995,-1779,-1461,2370,-1713,-2550,261,1890,789,798,-426,441,-315,-240,1008,915,2532,-1653,-1125,1122,-1137,2475,-498,-957,177,939,-174,-1386,-2337,963,906,-1581,-1818,-1704,1779,1065,852,1257,2073,-816,-501,-132,-2157,-615,-33,-1125,-867,315,1596,1389,2532,-1500,-432,-603,-2406,987,1104,540,1854,-138,2337,132,-1104,1236,-774,1518,1722,-888,1848,-687,447,1602,-672,2490,384,-723,-642,2001,-1446,2088,-2442,-720,1380,-1860,2337,-1848,1155,2235,-930,-1602,-2355,-471,-2418,-1404,-1659,243,168,-987,-1530,-2535,528,-1650,-666,2427,2154,1827,432,363,2196,1506,2217,-2523,939,-444,-1302,2421,-603,-1929,-735,-2094,1671,1245,-369,-744,2190,744,-1533,-1569,2490,-1470,1905,-1887,1734,1797,-993,-324,1869,1182,1752,1557,-723,-1047,-1584,-1584,-318,-1329,453,495,1842,-1677,843,1179,1209,2109,1020,2211,-1755,-651,-1473,-45,594,1083,-9,1188,990,-618,2304,540,-1935,-1353,-1677,2430,1137,2184,765,2337,1287,-1935,417,-390,1707,-1974,261,-1482,921,-2571,-579,-1323,1902,225,-879,1920,213,1785,-1782,-705,2169,-1314,-1071,417,1113,1392,1341,-234,-2130,501,-120,-573,2067,693,33,1239,-1893,1884,-132,1044,-516,2442,543,2574,612,2292,2301,1758,-1251,-978,1023,-1332,258,-1806,369,1653,1278,-291,2325,-684,768,-135,-1008,-1359,2391,1437,2532,-819,1599,111,-1575,-1476,-1077,-864,-1806,57,-2067,-2433,1704,-2433,1173,1086,480,-2286,2241,-189,-27,621,-2484,2010,-1548,-1884,1305,-1485,-399,-2157,-744,2385,756,1854,-1458,-462,-360,1107,1995,-1233,747,1269,-123,2232,1251,-1233,-2418,2484,-1638,2295,-612,-1206,-900,1947,-1323,-1233,1674,1044,-603,-1800,-1317,1248,2469,-1248,714,-828,-1401,-1065,-1350,-2040,-1605,456,-1140,366,2241,1128,-456,1230,-552,951,2040,-1689,552,-1659,150,2271,1161,-843,-501,-1101,1125,-2439,1533,-432,1518,-1995,-1062,288,1518,-1008,225,1623,2478,-1983,714,399,462,-1209,330,-78,-159,-2202,2271,483,1806,102,-1233,-2370,-1506,-456,-123,828,-2475,-2379,-2160,-732,-453,2205,-1344,918,-1485,-2301,-2364,-60,705,-1545,-960,-1713,174,1470,2190,-558,-2133,1203,-936,-2085,1698,2016,-1851,-201,-2202,-894,492,-2244,-2034,-579,-621,-1320}, {2340,753,-309,330,981,2013,1419,609,-1419,2124,-1113,219,1746,-1806,-2244,372,402,-1353,585,102,-390,1488,2346,1281,105,2316,-804,-1632,147,1941,-2358,78,-234,-2370,-504,-2235,-1536,1695,-1677,1542,-1077,1038,-492,-348,1842,-1458,1401,-1107,1860,1707,-390,-1578,-543,960,1365,1377,-1938,-2160,816,-2244,-2268,801,-714,-1128,-1638,1509,2421,129,-594,1614,-2553,1776,1719,1980,384,1404,-2292,828,-2451,501,-2199,24,-2442,726,549,-2319,1851,861,-2340,-1992,-1782,744,-1641,747,-36,-1818,414,-1713,1731,1344,1926,2013,-1578,2082,-1863,-1722,-2517,552,-648,1482,633,-921,597,1701,867,-2442,1563,1788,-351,1839,-111,-2316,-597,2217,2247,1425,-51,2058,1797,1758,1329,1188,-2262,1959,2157,-2259,2286,825,696,-177,2562,-1686,-1293,-801,1416,402,138,2190,-576,-768,-1599,-2562,486,-168,-1665,-2352,1623,-1146,-1677,-2352,-717,21,-2100,765,2523,381,615,-1479,60,1113,-330,489,-1356,-498,2169,-312,-2265,-2553,-2100,2034,1905,1368,-1785,-1059,1197,255,-1695,1299,-600,2376,-2259,210,165,-2127,-1941,822,-2517,-1047,-2457,-39,2409,-2349,81,-606,-1581,-720,-708,1599,2016,-2505,24,1479,2460,-477,2049,-705,2145,405,-2049,1734,465,-741,-204,1269,2421,-894,-117,363,-417,-1518,-564,285,615,-504,-1839,-642,414,45,-1362,-1158,378,-1410,2184,576,1899,1755,1587,-1143,468,303,1542,-762,-564,1344,-2559,-1446,1413,-1197,-1734,2169,981,-198,1218,1290,2409,132,1965,-2082,-2514,1650,-186,-2115,873,-1500,-2205,-1335,-1878,-147,-1380,-1323,2277,2067,969,-2472,1548,-36,591,-582,1605,-1350,-2058,-1512,-2007,822,-921,837,936,-528,-279,-1851,945,882,-2283,-78,-1629,-174,-66,-1926,-360,1464,-2472,1617,-903,2364,-369,-1191,-1179,60,1035,1494,-768,-1155,2208,-351,-1284,-1755,-228,606,987,-426,-270,1677,-1740,-1878,-1428,-177,402,-732,-1674,660,60,-2331,-1215,2574,2289,1830,-1680,2028,1806,2532,-924,384,-2151,-1395,-243,165,2016,2226,-90,-2469,-2091,-966,-717,-2220,2514,2157,-204,-966,-1731,-30,-657,585,-135,-2523,-924,-1821,-831,-1911,-2319,-1062,2349,-1524,-1308,-2055,-132,-9,-1776,2415,-60,-1797,1629,-1890,-1593,-606,1263,-2502,381,2268,-1500,780,2343,-12,267,-93,-2391,1371,2208,810,1776,-2511,564,2295,549,-1422,1056,-594,2112,120,2553,-2415,2037,-1029,618,1434,-258,-1917,2310,2358,1515,2181,-189,69,2568,141,-288,2328,789,1821,132,309,2007,330,-2313,-1278,-51,-1023,966,663,-2538,2166,-1899,-1956,2355,1089,-855,2151,-1425,1779,-711,-399,-252,1926,-1350,228,-501,-2292,285,-252,-207,-750,-1416,1833,-1668,-312,2400,-291,861,-1839,-801,732,-2088,-351,-36,-1626,-135,912,1920,18,297,-2520,-1647,729,579,1008,-1161,-270,-471,78,-1770,2172,-1563,1275,-1725,2568,-1461,408,-702,-21,-1059,-720,-558,-1062,168,2574,1431,-2313,-1800,2511,2178,-1752,150,831,1449,1962,-78,-39,750,129,2169,-288,1095,-2004,972,-1716,870,-2583,2235,-1686,-1401,-864,2073,-414,-2064,-429,2049,-732,813,2556,-2169,-2196,1071,1080,-1230,-1224,-930,-2271,-2436,-1446,-1143,294,-669,-114,1443,2523,132,-1380,315,-1704,1275,-2133,648,-1437,2475,1248,819,45,-2514,2214,1689,2175,-927,-1341,-1200,-1203,2250,-297,2166,-453,1917,-1251,1752,2349,-2313,2253,-1005,1128,-1083,873,-249,-759,-1389,-6,990,1623,438,-1401,762,2346,-54,-1596,-1446,1011,1164,-1299,2484,-1908,702,-561,2361,-546,480,33,-2583,-1764,-1242,-2484,2307,2556,-1401,249,-834,-249,-1944,2376,-2055,1779,-1905,-1245,807,-342,-1758,-492,-729,1332,-492,312,-690,1530,-747,-1644,1449,-2064,-936,702,924,-333,-1260,435,2328,-1275,453,-2070,-354,-735,2505,-12,-2427,-2379,2262,1485,240,876,2040,546,-429,-459,-1455,-1542,330,411,-1722,-1482,1878,-312,-1878,609,-2064,1053,873,-1440,-1290,-1230,2034,-1449,-240,1443,1584,-2229,-1287,-732,-1632,-114,1644,-183,-348,999,2154,1908,-1995,660,507,480,-1179,495,2553,-2298,930,-1197,-1266,1824,-402,84,-1023,651,525,1992,-1527,2418,-1494,-2328,192,2085,420,1083,-1950,-234,-1668,-1563,-786,-1728,1869,-729,-888,2163,282,408,-2406,261,-735,1557,-510,-1698,1395,-1455,-2082,672,1713,210,1860,-2133,-1611,-2370,243,2325,21,-453,-609,903,1647,-1269,1521,-1170,-1005,-1572,657,1791,2271,-1143,-816,1200,-150,1278,2514,1467,576,2196,-714,222,-1014,2247,-951,-1389,-1374,-2046,-1212,-2109,1902,-417,816,2289,-153,1644,-297,-951,-2457,2118,-684,1269,-1038,-2424,-429,-2124,-723,447,-3,612,-1812,-2457,-1977,-1068,2265,-1971,2376,966,399,-681,-447,-537,2103,-2532,2250,-1488,-2391,-1734,-1563,927,1545,-1437,456,-681,-2193,531,1524,-1857,-1836,282,2163,-2457,-1116,-954,1743,1998,-2361,126,270,-1311,-1074}, {-24,-1695,-1032,252,378,1845,-1854,-738,-1494,186,-75,-792,-450,252,1941,1845,-1251,930,417,1464,2517,2043,645,2124,390,2394,-2061,-174,603,-1308,-3,1440,-1716,-1830,-1965,-2496,303,666,-1956,1065,-84,-1821,-2574,1773,939,-1845,-1680,654,-2493,-633,1893,-960,1878,-2562,2385,177,-2445,282,-1002,-591,-2226,-1692,-918,1539,-204,1365,-1158,-2256,-2166,135,1368,-462,768,978,-582,1128,192,-1644,-87,-2319,1182,-1314,729,-816,294,-177,1101,-420,-345,-2100,1086,339,1002,-786,315,-1083,-1779,-1995,2058,927,-2364,-1449,2103,1644,2238,2391,-15,-1560,48,-2124,-723,999,-2043,564,3,2379,-2133,-1491,-1488,-1791,1542,1977,33,-276,-183,-2286,2307,1818,-1737,-1965,1074,696,693,-975,-918,609,1221,1182,54,-2559,1530,-2115,-1182,-2580,1209,1179,96,-1029,-2313,342,822,-1734,510,888,-840,-567,-1857,1200,138,1974,1941,135,-1584,933,-2382,519,-2202,-1650,-1227,2544,2301,-1749,-1824,2193,-726,-921,-1983,2427,-1839,-1809,-1974,-639,-843,-1515,1578,534,2226,615,-1593,-1689,-66,2088,-462,-2553,678,-1287,-1140,1833,-1434,-480,675,-2139,60,1140,-2127,-1044,-1593,-276,-720,1260,-2508,1638,705,135,-2424,2205,-1836,663,1443,-2169,2445,1659,-984,2067,-2298,-1371,-183,-270,-2247,153,-906,-6,1404,1848,486,573,-2475,2358,2487,-2544,-1527,-2136,-1722,402,-2070,1173,1806,2076,-30,1314,1911,-78,-2049,-2343,933,936,-93,2271,-318,-2094,789,2451,-2472,465,-2124,972,1389,-2454,-867,1827,-648,594,531,-747,-1209,-1839,-1938,-1110,-453,-1869,1383,-2013,-1530,-2562,387,-969,-1644,1515,1635,1341,2316,-1677,-54,-1089,1314,1974,-90,-2163,612,2577,1983,1005,-1143,-864,-1890,741,-516,462,408,-2019,246,2526,2478,-2256,1002,-831,1266,309,-1317,-2193,-2151,771,-471,1728,810,-165,2517,-534,438,111,-2376,-153,-1440,54,705,1242,-822,-696,-1914,51,-672,-498,1074,-2037,-126,237,-2529,-1875,54,1623,1224,-2193,-732,-1191,354,-2568,2499,1866,1695,-1515,-1500,2247,-1200,1131,-2406,1212,-1401,921,-1566,693,762,-69,1500,-657,426,-1977,-321,1551,855,-2103,1656,1767,-174,-1101,-2109,1476,1845,-414,891,-387,789,-915,-1005,1494,531,-2355,-1656,-690,2535,-810,1815,498,-2250,-843,798,2292,540,-1320,234,1554,1515,-495,291,-915,-30,-1680,-1923,-1509,1398,-618,-1392,-669,-1557,-1506,1152,1218,141,-2136,-1722,183,1020,2238,-87,-2058,843,-1719,-1425,-1758,1944,2343,-1032,408,-2244,2106,-480,1821,27,900,795,-2559,-825,-1014,534,201,-102,-1200,1167,591,72,-1392,-855,-1881,-2517,1908,2556,-1701,-2220,1740,2322,1836,-1917,-576,-1032,1146,1596,-180,-2334,501,1476,-1905,2391,-6,-6,1992,1797,-1626,-2265,198,-255,-2292,165,-972,1986,528,2508,24,2358,-225,927,1017,-2406,-243,-2163,-837,1725,-930,1977,672,813,-2502,-1311,-1032,2025,153,-168,372,2076,-1482,-822,1950,666,-717,-858,819,-1422,-2499,-1068,249,495,2367,-588,-255,2262,-2034,978,1659,-1167,516,-1176,765,1341,621,-2262,1233,960,-1503,1509,2193,-1440,1542,105,-891,-2373,-2556,-1629,-2046,-2145,1425,228,-2262,2031,2466,-2322,-1656,1863,-1734,492,-1023,-2412,-2193,-1044,-1077,1602,2067,1389,1758,198,2454,-1896,-2256,2265,444,-2412,1020,993,-2079,-75,786,-645,153,-2550,309,2187,-369,1416,1512,-507,-693,-114,-2280,915,195,2061,645,-2253,336,-177,-1701,2253,-1356,-2433,-1833,213,2559,15,-1335,1710,-678,2412,-708,-996,-891,-789,-1758,-1956,-2109,-96,-2331,1248,2352,-1419,915,2178,2451,1380,-1260,-1287,-2340,-1392,1602,2328,804,-1350,2487,1566,2208,1284,2391,894,-1683,1497,2565,1008,-1599,81,993,-918,2067,330,-6,1095,771,-1194,-1656,-1995,-1704,270,2037,-933,411,-873,2205,-213,408,-372,432,2019,-2217,1845,750,1929,-291,-21,261,-1200,1224,2541,-666,-195,-1992,-300,-684,1971,2460,1101,2496,1626,-741,1710,-2445,1038,1626,1473,-2133,-2331,-2325,657,-1182,2580,2568,1083,615,159,-2340,-897,1380,-2349,258,-1341,114,2358,-408,-504,1944,993,-570,-1347,2478,-705,2223,180,-993,-1551,306,2550,-768,-1422,2175,-1029,-2241,1212,39,1281,-702,-1092,1860,-366,-1461,1797,2415,-2151,750,597,-1713,-1005,-1413,-2274,-657,-1905,2157,2409,-489,-2412,-1173,1959,1518,-204,-2406,825,-711,-102,-2583,-2175,2418,225,-486,1104,888,717,1824,-165,1824,-2538,1575,2274,330,714,-2385,-2514,-1326,-609,-693,-1587,-90,1047,-1203,477,315,-2265,-1245,-2460,324,-2502,-1902,-714,-921,-93,-252,2370,345,-1635,531,-1023,1905,1770,1896,1656,-1728,-1101,-2481,-618,96,-1740,-2157,-2304,-843,1767,-1848,-1278,-1926,522,393,-705,1032,-354,-1545,6,-1479,720,-1419,1095,-690,-270,-792,-2193,-1218,-2229,2124,-975,-678,183,-768,1941,-2103,540,2373,2343}, } ; static const unsigned char precomputed_decode_857x1723_s[precomputed_decode_857x1723_NUM][crypto_decode_STRBYTES] = { {48,203,108,159,159,31,32,55,211,57,129,69,175,177,23,207,107,65,19,56,139,239,73,174,157,21,174,109,50,54,6,117,50,146,92,64,92,103,18,109,131,217,179,12,115,114,39,17,163,63,105,122,220,97,232,29,83,140,111,111,123,178,42,107,56,250,76,1,68,237,214,106,100,97,147,126,125,17,79,248,75,188,141,2,124,184,150,62,35,214,198,220,14,60,31,171,164,33,75,94,91,217,167,100,188,210,249,138,96,102,246,184,102,112,209,110,140,20,221,19,182,216,165,137,248,5,31,193,162,71,235,184,75,250,134,27,211,71,87,144,126,177,81,77,25,169,171,170,91,177,100,254,70,32,103,125,1,63,190,58,204,217,79,253,143,209,242,1,219,50,30,46,51,54,234,91,173,248,164,43,144,11,68,25,188,150,205,59,218,76,4,145,120,111,35,171,139,106,5,54,242,14,217,165,116,212,200,220,227,181,44,49,133,224,175,50,201,199,12,169,141,253,123,167,63,221,135,69,189,5,149,55,89,163,194,19,231,175,221,166,142,225,52,145,182,199,24,84,39,141,255,69,245,150,236,142,161,47,117,191,181,93,245,250,212,19,200,234,129,204,218,78,21,239,193,75,142,227,234,46,152,157,41,169,206,2,215,21,242,154,180,113,13,246,230,45,25,0,126,34,152,33,80,122,174,160,252,241,54,157,2,204,252,152,250,16,127,92,194,166,13,174,197,178,21,31,1,62,63,89,29,166,0,159,62,50,213,215,189,95,4,246,34,167,135,225,221,251,150,253,0,233,10,156,119,147,175,16,143,179,10,60,194,60,108,104,25,254,119,121,255,82,5,189,138,223,25,70,47,19,194,104,160,179,211,231,121,128,0,174,95,70,187,231,224,53,179,176,11,158,14,249,68,118,68,45,23,144,214,26,225,98,162,222,203,146,155,187,170,95,182,53,144,80,17,71,70,188,42,195,32,116,20,177,130,46,39,161,214,45,18,111,153,135,233,0,153,153,198,119,174,160,82,96,131,60,95,253,67,139,123,190,33,173,224,252,23,165,38,214,54,129,119,237,134,237,205,136,44,1,249,229,252,254,102,138,137,239,12,99,20,67,16,147,5,76,223,191,246,232,44,98,240,137,144,175,139,146,58,100,200,31,176,83,184,129,41,164,190,3,16,75,18,181,31,137,117,218,132,234,168,229,147,185,82,248,75,45,180,128,103,228,37,60,35,3,227,161,175,214,25,94,52,99,78,190,209,158,217,34,80,74,69,30,237,186,103,51,19,58,228,107,110,236,228,78,179,231,216,253,240,203,198,128,88,136,212,1,50,172,242,227,65,162,181,168,59,254,239,252,165,192,65,113,1,226,36,175,6,100,215,27,42,28,146,106,116,99,145,42,168,150,119,99,4,168,210,142,55,214,170,62,151,87,33,210,191,55,160,198,19,50,244,235,248,129,153,252,49,112,55,112,157,97,80,161,115,86,76,149,140,159,109,8,36,121,241,155,240,94,66,192,222,1,25,165,140,225,70,116,99,16,152,36,165,208,36,166,80,149,129,199,24,132,79,151,222,38,53,200,31,197,194,94,182,147,85,108,32,51,46,85,142,125,19,138,10,80,122,239,126,85,148,200,44,74,168,144,215,246,178,227,211,24,67,250,209,171,176,176,146,85,90,21,223,212,43,255,104,71,121,3,241,186,75,66,54,186,224,34,3,23,147,79,37,3,3,109,212,219,54,100,123,9,161,149,113,134,56,140,22,209,22,181,166,200,184,150,83,136,238,169,251,157,200,32,31,116,228,131,253,102,255,33,54,238,107,248,188,69,171,236,92,67,208,88,146,79,101,169,186,32,205,224,13,156,125,210,253,106,250,13,144,175,138,206,94,15,110,93,205,169,65,22,183,249,228,158,168,49,3,184,224,92,29,93,240,1,190,110,168,92,47,202,254,143,92,9,33,116,17,217,157,104,13,178,66,155,234,160,184,32,212,232,130,158,190,68,32,12,190,230,130,88,126,77,157,92,232,191,21,240,211,211,118,124,252,195,148,228,163,215,82,42,132,185,85,95,209,95,139,5,255,202,50,255,75,108,76,27,181,230,35,182,219,28,139,230,10,218,179,117,67,240,117,145,204,120,198,213,49,251,81,143,44,205,108,241,194,9,218,4,166,72,12,18,94,19,236,37,113,165,221,172,30,251,123,42,15,144,64,205,209,240,152,136,164,241,249,221,135,2,95,137,206,171,228,191,127,214,118,52,234,215,202,71,152,190,146,2,136,15,72,132,137,201,66,180,251,63,165,88,0,228,44,38,221,149,46,6,101,244,229,252,148,67,203,146,94,37,122,249,198,196,57,77,207,133,185,122,237,251,65,185,80,142,21,112,205,132,161,44,42,6,191,123,45,186,40,145,233,196,168,211,148,194,10,236,112,255,82,100,32,251,196,203,143,45,11,78,166,189,251,93,78,226,212,48,31,141,10,44,108,79,166,168,252,47,229,175,207,96,88,172,177,165,88,12,129,86,226,94,116,158,188,223,178,23,241,202,97,164,249,39,38,244,136,65,151,251,144,92,4,56,222,76,88,51,78,194,104,156}, {45,213,92,254,31,241,39,164,245,4,148,250,82,131,169,93,44,20,252,129,107,172,73,65,33,90,118,164,39,175,161,112,125,179,230,62,236,242,236,232,82,199,70,220,184,110,235,30,19,25,8,153,93,140,79,45,197,141,224,55,133,138,200,216,39,11,54,193,156,83,81,184,198,199,111,78,204,238,226,115,7,93,93,24,147,122,75,139,78,23,101,79,140,75,57,205,225,108,178,8,127,230,58,48,229,30,148,74,106,113,138,186,132,177,172,114,166,231,31,214,155,9,96,254,51,18,32,37,143,126,5,126,76,59,138,203,65,128,28,83,28,193,46,97,204,109,173,249,233,18,33,245,211,227,92,35,160,51,252,171,81,181,55,183,173,87,104,112,175,22,150,181,2,231,149,172,121,125,28,22,144,207,127,127,77,135,241,182,192,104,174,84,189,226,0,79,81,143,43,197,99,143,66,205,85,190,31,135,75,99,222,248,136,108,48,165,132,158,180,114,46,235,78,66,1,113,103,43,50,62,73,135,223,156,44,108,1,56,233,67,38,39,117,39,147,63,35,176,63,235,118,186,81,159,40,173,101,110,39,168,114,144,28,62,194,10,9,209,106,96,233,31,195,203,237,133,133,121,143,252,239,221,121,19,166,178,160,210,113,18,146,255,139,59,13,218,245,110,72,63,206,222,115,96,54,103,218,202,223,132,230,126,217,52,79,105,182,80,109,71,159,248,177,144,169,185,130,207,216,161,92,187,216,60,252,156,4,177,170,141,251,29,98,203,161,8,104,175,182,175,146,242,35,110,20,9,190,150,251,122,71,254,153,54,85,123,180,10,128,148,0,207,239,178,69,150,178,75,213,71,25,134,23,51,215,80,111,188,126,65,129,169,242,54,202,100,90,29,74,197,199,145,79,19,123,101,171,53,132,193,189,67,11,235,233,177,225,137,111,116,53,245,7,57,223,238,30,86,32,181,25,101,200,162,252,255,219,109,129,3,242,109,12,82,80,220,56,78,84,109,138,96,38,113,202,49,216,169,225,104,137,146,159,210,72,56,222,80,126,141,172,71,112,47,204,226,198,174,132,205,129,241,182,175,171,59,220,40,231,143,1,19,12,182,156,93,2,232,177,49,252,53,111,70,242,119,249,221,33,108,33,174,193,103,6,98,231,210,74,211,24,67,20,197,117,53,103,196,19,65,54,186,245,2,62,4,120,45,160,163,67,51,235,128,14,127,133,226,117,242,77,172,63,156,107,218,181,85,106,150,189,26,128,198,195,44,81,129,65,148,69,224,32,86,118,21,254,22,163,170,112,83,24,124,177,170,252,194,220,51,217,59,137,248,81,238,75,112,80,246,111,8,108,115,191,160,19,217,253,151,224,205,113,33,253,222,136,111,40,104,253,51,98,160,70,93,129,29,48,8,213,102,206,120,236,118,194,47,141,85,41,192,232,49,46,106,155,99,62,54,227,173,188,197,185,239,130,187,162,2,65,29,227,42,0,45,140,233,31,64,225,237,116,229,73,79,103,152,170,139,155,153,222,173,130,65,6,215,82,253,39,116,223,31,209,93,27,173,197,76,130,168,70,3,43,107,236,49,134,250,131,176,233,11,106,186,196,248,97,154,84,31,58,60,160,239,249,249,198,128,230,105,69,135,211,0,17,189,178,159,123,243,153,78,127,57,228,77,185,137,25,48,136,248,52,147,175,193,0,104,63,108,144,253,81,32,125,20,157,249,250,19,169,32,240,212,144,160,160,197,17,215,115,251,22,225,219,92,205,199,52,101,19,180,199,12,147,95,103,37,233,54,89,110,32,84,227,204,121,75,238,218,103,140,210,78,185,42,222,51,98,11,234,35,132,23,45,36,64,30,232,221,195,34,114,174,13,3,103,239,90,229,82,236,69,150,111,211,139,147,53,197,189,2,116,85,117,9,49,228,255,135,19,32,91,184,71,254,98,177,130,128,80,215,82,164,203,24,230,6,38,54,33,192,133,122,193,252,35,137,5,121,27,137,21,218,96,111,206,175,213,112,208,5,173,200,180,212,1,94,118,45,91,221,57,69,42,114,250,207,187,234,9,96,189,144,254,187,125,239,210,73,60,145,45,78,112,40,148,25,230,238,82,82,229,145,87,15,33,124,46,2,209,101,120,198,219,131,213,215,5,110,167,216,85,60,156,136,143,156,202,95,51,175,111,242,202,102,224,242,246,85,77,57,89,106,44,182,111,45,33,131,133,127,127,216,231,185,78,248,148,19,78,211,117,110,69,159,52,214,226,201,97,171,180,98,84,56,246,204,48,169,16,127,190,202,123,188,210,155,191,143,109,74,147,208,138,42,109,174,233,186,132,238,104,192,170,86,190,122,93,4,37,51,35,240,177,59,255,209,20,63,154,179,135,95,61,32,252,107,253,30,165,186,7,66,151,250,66,58,148,96,245,31,159,226,158,107,132,213,249,177,186,198,61,97,33,171,128,32,162,187,202,51,179,51,4,150,202,85,94,99,170,255,139,10,234,33,216,17,204,59,184,238,118,255,26,22,138,206,234,4,33,149,226,161,25,19,194,147,42,195,162,69,85,245,221,203,135,248,142,198}, {177,63,184,110,159,44,212,244,97,229,26,67,91,224,26,56,236,113,3,147,163,236,176,148,91,144,87,92,214,248,97,182,151,220,132,105,165,168,236,24,71,228,92,90,56,34,12,150,189,205,243,48,149,109,78,222,64,211,177,158,59,86,50,85,177,75,89,16,39,27,28,148,6,184,140,101,6,113,95,109,122,213,90,250,97,239,70,39,184,210,223,30,242,98,12,125,156,235,22,154,122,217,237,183,251,115,91,78,180,215,122,5,197,136,35,245,97,149,203,144,120,100,24,14,175,196,208,225,174,43,93,252,147,233,200,19,51,94,15,93,142,167,140,91,173,118,213,230,244,60,73,85,207,64,76,205,187,210,95,107,17,181,77,142,219,71,194,87,150,210,205,117,221,232,42,152,212,40,238,1,93,209,199,210,189,226,204,179,232,177,71,57,239,3,171,57,171,187,7,68,109,0,2,102,53,215,197,10,68,152,102,68,49,116,82,218,249,196,184,181,67,27,36,253,100,143,134,238,156,56,238,14,145,79,105,197,40,145,164,125,29,86,47,46,23,168,125,11,173,218,182,85,189,69,155,252,66,248,91,138,213,233,179,175,255,197,188,127,175,25,49,39,187,183,197,169,170,31,10,101,171,128,116,205,152,63,101,82,28,22,146,209,233,209,48,137,222,165,116,42,7,197,189,132,158,149,133,244,157,109,245,107,218,169,26,149,76,202,172,19,54,173,160,240,7,159,2,107,147,225,221,223,163,224,211,232,230,250,241,205,52,198,35,1,207,32,33,87,159,99,106,225,23,174,103,213,74,21,13,198,58,122,3,17,130,57,139,200,141,134,58,207,2,183,116,48,214,54,169,91,33,186,6,96,116,101,57,62,242,108,72,197,192,108,25,218,84,51,61,181,101,90,207,101,186,145,50,79,175,173,84,154,0,246,133,234,249,250,106,19,188,31,146,220,142,15,231,111,196,13,177,57,145,220,181,17,154,142,247,59,29,248,83,149,99,144,58,224,117,188,69,211,123,137,180,21,129,53,2,14,159,205,33,153,102,143,255,121,140,162,248,59,131,255,59,77,6,230,147,91,241,143,38,138,207,197,250,21,17,1,201,34,45,21,71,221,182,8,182,173,217,122,90,142,73,236,184,227,255,52,240,243,253,15,144,185,193,233,81,83,177,98,42,250,173,200,5,241,241,86,220,158,160,34,122,166,70,236,105,217,151,23,44,237,35,183,241,254,188,48,94,199,128,217,106,95,24,193,156,92,102,224,209,122,178,131,246,131,223,237,192,38,154,68,9,20,207,41,198,156,94,114,112,107,77,40,158,106,87,33,244,128,99,198,25,105,184,152,143,145,71,195,115,89,161,129,17,255,156,115,102,131,161,17,44,198,41,204,8,232,135,121,30,20,70,251,57,122,236,69,1,48,78,36,199,128,233,221,124,125,208,164,5,104,129,38,251,197,61,58,45,91,209,35,26,193,169,150,218,100,140,5,55,88,84,12,12,103,62,136,129,184,172,246,215,179,16,220,241,54,181,153,51,49,175,30,27,21,51,63,118,101,13,167,250,229,76,186,181,77,39,230,106,242,16,69,207,119,153,0,153,135,121,173,53,44,98,14,105,19,254,162,88,243,252,173,254,192,247,141,157,135,41,2,117,4,28,210,121,40,98,49,81,254,232,220,66,125,177,161,74,58,218,228,88,24,192,90,38,8,3,245,163,217,68,168,96,46,163,131,192,183,129,116,133,214,145,22,141,179,148,4,75,175,73,107,74,202,39,67,45,200,57,205,66,175,113,202,74,120,54,21,62,238,130,89,202,180,173,0,177,102,132,225,163,54,249,58,141,4,80,26,110,104,11,122,191,233,30,131,38,197,206,159,119,14,118,122,3,2,223,165,254,170,23,143,179,209,196,64,188,15,55,178,18,168,73,189,65,195,37,26,25,22,131,72,233,94,72,72,209,27,255,53,23,94,217,223,24,139,67,10,192,177,132,2,113,195,95,16,139,41,143,71,34,218,191,189,98,70,249,250,169,187,252,160,125,3,223,100,142,236,204,170,11,182,19,240,162,35,104,53,105,212,179,171,179,231,47,140,141,36,148,57,200,185,49,172,66,241,2,37,40,238,36,109,26,29,208,122,112,142,36,173,51,210,49,62,255,198,106,247,59,4,10,254,51,99,172,221,47,249,219,237,67,61,169,93,16,199,80,23,197,239,227,94,22,196,250,72,93,203,94,148,202,198,189,246,43,182,22,50,140,89,229,179,191,84,212,114,130,49,15,10,37,232,247,45,68,2,94,0,33,3,132,66,181,55,79,17,124,221,184,30,155,202,201,51,113,57,31,6,68,3,139,160,165,98,30,108,75,109,156,221,130,150,101,232,127,193,227,45,171,163,48,172,32,154,248,216,198,92,106,8,155,207,117,254,107,28,103,221,169,89,124,147,199,28,139,239,231,232,2,36,190,179,81,93,232,251,82,14,149,69,28,58,198,161,24,138,5,81,179,161,202,247,146,246,133,50,97,15,90,87,187,58,135,177,121,68,160,238,87,164,241,113,197,155,116,174,132,219,132,253,22,95,70,67,150,70,40,46}, {141,80,7,48,164,91,18,16,29,79,6,79,184,63,153,235,122,253,219,17,203,167,72,90,236,3,236,128,199,23,106,213,101,122,89,150,110,50,64,136,228,143,149,119,133,65,56,2,56,177,103,85,101,111,48,154,247,144,122,69,175,35,113,247,148,42,204,99,177,71,79,142,242,223,143,40,46,37,17,32,178,105,145,172,35,110,229,25,170,110,35,80,96,241,248,158,17,207,33,142,90,244,83,5,40,222,22,9,87,12,110,79,123,81,160,168,24,115,57,25,55,240,55,34,52,203,34,107,36,4,30,77,52,149,6,22,26,242,128,160,244,124,220,11,242,251,17,168,131,145,150,111,67,30,57,172,54,67,47,156,58,111,45,141,229,243,146,161,194,57,42,181,215,118,141,235,89,122,231,158,119,31,70,186,255,125,71,121,136,90,179,253,241,229,58,136,195,146,34,95,235,27,106,152,252,190,226,50,94,164,151,147,94,99,157,142,21,214,99,83,76,42,17,121,62,83,239,250,184,116,46,153,115,20,94,141,254,140,63,95,243,82,185,143,227,215,114,104,149,34,255,174,25,127,37,79,48,168,38,8,149,153,247,137,72,113,252,133,107,9,64,147,149,60,226,124,217,255,122,210,99,14,131,217,47,179,173,41,20,132,91,132,96,149,182,55,76,76,230,254,248,8,45,228,15,208,170,66,112,12,13,55,59,153,156,62,237,76,219,142,24,25,246,39,171,204,69,48,101,68,116,134,203,163,40,14,93,0,28,81,244,210,196,113,3,92,217,123,253,49,144,218,38,89,240,116,189,37,15,79,6,252,205,233,168,191,201,158,9,76,95,9,196,21,170,29,250,240,93,6,94,139,119,50,64,59,57,65,244,91,53,125,156,129,40,196,81,190,158,52,252,236,29,209,99,118,208,66,180,196,222,211,9,161,172,171,169,165,47,185,183,26,223,145,241,137,196,205,93,211,14,192,182,162,159,10,202,105,5,134,90,158,164,154,65,136,97,127,236,61,15,66,9,109,114,198,230,68,188,178,175,50,113,239,33,208,53,82,163,52,254,142,94,217,25,58,80,111,13,45,207,208,183,99,199,131,92,170,186,156,8,41,120,152,154,151,40,55,135,110,105,135,211,232,120,216,63,220,180,25,184,121,129,82,18,99,93,139,80,104,242,166,160,226,217,30,24,53,239,123,162,39,201,186,212,244,97,99,141,129,71,204,101,110,150,181,147,205,65,23,125,188,15,131,250,200,105,209,224,50,150,37,58,217,105,148,93,227,115,131,215,42,102,197,127,245,189,42,225,209,172,110,106,210,119,85,217,28,39,253,180,156,46,174,82,66,41,224,241,140,93,26,66,176,86,152,48,6,11,235,0,92,82,218,221,65,98,110,215,225,173,23,253,243,163,69,232,14,69,241,14,49,161,227,234,25,195,241,196,196,234,37,178,194,187,170,249,161,112,174,208,106,148,61,86,139,108,119,136,219,8,84,43,252,179,251,5,36,186,229,251,15,124,15,92,47,77,16,170,55,158,64,191,252,200,170,56,9,136,242,52,143,250,195,146,209,239,147,22,8,219,1,210,101,173,59,151,19,229,61,25,232,15,32,149,107,238,14,196,112,164,251,116,47,53,168,180,191,108,172,110,166,177,174,42,47,232,148,47,245,0,135,25,25,92,67,120,160,101,43,237,179,33,149,182,72,199,217,86,92,52,182,215,81,156,144,250,44,254,150,213,71,108,98,210,75,232,205,229,147,210,227,121,139,253,173,58,9,108,152,7,104,234,229,232,185,1,62,204,186,233,20,16,115,125,183,176,254,191,200,70,236,124,193,232,71,118,100,82,204,77,96,238,176,70,166,91,82,196,79,67,228,62,126,100,69,177,186,8,67,190,190,251,22,207,155,59,199,12,155,54,180,98,41,132,31,177,242,34,29,200,146,237,10,106,92,218,71,237,87,11,67,244,96,206,79,133,235,44,176,61,158,92,141,212,221,184,197,213,181,15,8,254,144,117,174,174,156,48,174,123,73,44,25,82,42,170,183,167,139,179,212,145,15,53,133,195,248,44,199,100,232,213,128,174,222,207,247,189,172,83,101,85,140,191,221,149,134,111,153,82,208,32,220,83,80,237,152,155,144,59,108,76,192,32,22,128,188,64,66,99,99,20,246,139,71,72,90,40,53,167,212,64,246,0,121,168,156,188,118,31,187,16,73,189,103,58,59,128,196,200,122,137,20,85,3,135,101,2,4,112,204,165,251,178,200,216,251,217,138,76,65,133,131,127,10,112,230,184,131,47,139,75,148,137,126,75,227,87,50,182,155,250,202,16,147,66,246,140,152,31,103,149,115,141,238,141,51,73,32,16,183,245,126,131,164,31,251,147,191,117,75,58,8,162,122,67,135,65,169,39,249,80,234,241,137,27,159,232,105,79,102,231,234,175,68,221,198,19,80,216,18,50,17,236,132,21,48,46,40,32,42,1,190,86,98,131,28,34,120,175,111,253,132,9,92,56,60,41,180,148,125,108,233,28,79,14,25,38,12,103,132,219,198,160,44,143,202,148,86,220,218,239,101,83,55,79,37,219,167,224,151}, } ; static void test_decode_857x1723_impl(long long impl) { unsigned char *x = test_decode_857x1723_x; unsigned char *s = test_decode_857x1723_s; unsigned char *x2 = test_decode_857x1723_x2; unsigned char *s2 = test_decode_857x1723_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_857x1723_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857x1723(impl); printf("decode_857x1723 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857x1723_implementation(impl),ntruprime_dispatch_decode_857x1723_compiler(impl)); } else { crypto_decode = ntruprime_decode_857x1723; printf("decode_857x1723 selected implementation %s compiler %s\n",ntruprime_decode_857x1723_implementation(),ntruprime_decode_857x1723_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_857x1723_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_857x1723_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_857x1723_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_857x1723_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_857x1723_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_857x1723_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_857x1723(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857x1723")) return; storage_decode_857x1723_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_857x1723_x = aligned(storage_decode_857x1723_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_857x1723_s = callocplus(crypto_decode_STRBYTES); test_decode_857x1723_s = aligned(storage_decode_857x1723_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_857x1723_x2 = callocplus(maxalloc); test_decode_857x1723_x2 = aligned(storage_decode_857x1723_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_857x1723_s2 = callocplus(maxalloc); test_decode_857x1723_s2 = aligned(storage_decode_857x1723_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_857x1723 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_857x1723();++impl) forked(test_decode_857x1723_impl,impl); ++test_decode_857x1723_x; ++test_decode_857x1723_s; ++test_decode_857x1723_x2; ++test_decode_857x1723_s2; } free(storage_decode_857x1723_s2); free(storage_decode_857x1723_x2); free(storage_decode_857x1723_s); free(storage_decode_857x1723_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_857x3.c0000644000000000000000000004043114705505543022140 0ustar rootroot/* ----- decode/857x3, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_857x3_checksums[] = { "98a770141d432110843494413c1710397aa6bad5b837bae4731ad814be38b81e", "f8ad21eb2d86da185a45a6ccb32899e039b561a40c5a5654ab396414d19cd494", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_857x3_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_857x3_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_857x3_ITEMBYTES static void *storage_decode_857x3_x; static unsigned char *test_decode_857x3_x; static void *storage_decode_857x3_s; static unsigned char *test_decode_857x3_s; static void *storage_decode_857x3_x2; static unsigned char *test_decode_857x3_x2; static void *storage_decode_857x3_s2; static unsigned char *test_decode_857x3_s2; #define precomputed_decode_857x3_NUM 4 static const unsigned char precomputed_decode_857x3_x[precomputed_decode_857x3_NUM][crypto_decode_ITEMS] = { {0,1,2,1,-1,2,0,2,-1,1,1,2,1,0,-1,1,-1,2,1,2,2,-1,0,0,0,2,2,-1,1,0,2,0,2,1,-1,2,2,0,2,1,1,1,0,2,0,2,-1,0,0,1,1,-1,1,0,-1,0,2,-1,0,0,0,-1,-1,-1,0,0,2,0,0,-1,2,0,1,2,2,0,2,0,2,2,0,2,0,2,2,1,2,0,-1,-1,-1,1,2,0,-1,2,1,2,-1,-1,2,2,0,2,1,0,1,0,-1,-1,0,2,0,-1,0,2,1,2,2,-1,2,2,1,1,1,0,0,-1,2,1,2,1,1,2,2,1,-1,1,0,-1,1,1,2,2,1,1,-1,0,1,0,-1,0,2,0,-1,2,0,0,2,0,0,2,2,1,0,2,0,1,0,-1,-1,1,-1,0,2,-1,1,0,0,1,2,0,-1,-1,-1,0,-1,1,1,-1,0,1,-1,2,1,2,1,-1,0,0,1,-1,2,-1,2,0,0,0,1,0,-1,1,0,2,1,1,0,1,-1,2,-1,0,-1,0,0,1,1,0,-1,2,0,2,-1,2,2,1,0,2,-1,0,2,-1,1,1,0,2,1,2,2,0,2,-1,2,1,0,0,-1,2,-1,-1,1,1,1,0,1,0,1,0,-1,0,0,0,1,-1,0,2,-1,2,0,-1,1,-1,-1,0,1,0,0,2,0,1,2,0,2,0,-1,1,-1,1,2,-1,1,0,2,1,0,0,-1,1,2,0,1,1,0,2,-1,1,-1,2,0,-1,0,0,-1,1,0,0,2,0,-1,1,-1,1,2,2,0,2,1,-1,2,1,0,2,0,2,2,2,-1,2,1,2,-1,1,0,1,-1,1,-1,-1,0,0,-1,0,2,-1,0,1,0,1,2,-1,0,1,1,-1,1,2,2,2,-1,-1,0,-1,1,1,-1,0,-1,-1,2,-1,0,1,0,-1,0,-1,0,2,-1,2,2,1,0,2,0,-1,1,0,-1,1,2,2,-1,2,2,2,0,1,2,2,2,-1,-1,-1,-1,0,0,1,1,0,0,1,-1,1,-1,1,0,1,-1,-1,1,1,1,0,1,1,-1,2,0,1,1,2,2,-1,1,1,2,0,-1,2,1,0,1,-1,-1,-1,0,2,1,2,1,0,1,2,2,-1,2,0,2,1,-1,2,1,-1,1,-1,1,1,1,-1,1,0,0,1,2,1,0,1,0,0,2,1,-1,1,1,2,-1,0,-1,0,0,0,-1,0,2,0,-1,-1,2,1,2,2,1,0,1,2,1,-1,1,2,-1,0,-1,2,-1,1,1,2,0,2,2,-1,1,2,2,1,-1,2,-1,-1,2,-1,2,-1,2,-1,0,1,2,2,2,1,1,1,2,0,-1,-1,2,0,1,1,2,-1,-1,0,2,-1,-1,-1,0,0,0,-1,-1,2,0,2,1,2,1,2,2,-1,-1,-1,1,2,0,0,0,-1,2,0,2,2,0,1,-1,1,-1,0,2,0,2,-1,2,1,-1,-1,0,1,-1,0,1,1,0,0,1,0,1,2,-1,1,2,0,1,0,2,-1,0,-1,-1,1,0,2,0,2,0,1,-1,2,-1,0,0,-1,2,-1,2,-1,2,2,2,1,-1,-1,-1,-1,2,1,1,-1,-1,2,0,-1,1,0,0,2,1,1,2,0,0,0,2,0,0,-1,0,-1,2,0,0,1,-1,0,2,1,0,1,2,1,1,1,-1,2,0,0,1,2,2,2,2,2,2,0,0,2,1,-1,1,0,-1,-1,0,-1,1,-1,0,2,-1,0,1,-1,2,0,2,2,1,-1,2,0,1,-1,2,0,1,0,-1,1,0,2,2,2,-1,1,2,-1,1,0,1,0,-1,1,0,1,-1,1,2,2,1,-1,-1,0,1,-1,2,-1,2,2,1,2,1,0,1,-1,1,0,2,0,2,0,0,1,-1,0,1,0,1,-1,-1,1,2,0,0,0,0,0,-1,2,-1,0,2,1,0,1,-1,1,1,-1,2,0,2,0,-1,2,1,-1,2,1,2,-1,1,2,-1,0,2,2,0,0,0,2,1,-1,2,0,0,-1,1,1,0,-1,-1,-1,2}, {-1,0,2,-1,-1,0,0,0,-1,1,2,-1,-1,2,2,0,1,2,-1,2,2,-1,1,0,2,1,0,-1,2,-1,-1,0,-1,0,1,-1,2,2,-1,0,1,1,1,2,0,1,0,2,1,-1,2,0,0,0,2,2,1,-1,0,1,2,2,2,2,0,2,1,-1,0,1,-1,1,-1,0,2,0,0,2,-1,-1,0,-1,2,1,1,1,2,2,0,2,-1,-1,1,0,1,0,2,1,-1,0,-1,1,1,-1,2,-1,-1,0,2,-1,-1,0,0,0,1,0,1,-1,-1,2,1,-1,-1,2,-1,1,-1,0,0,1,2,2,2,2,-1,2,-1,0,-1,2,-1,-1,2,1,1,2,1,0,2,2,1,-1,1,1,2,2,0,2,-1,-1,0,2,0,0,2,-1,1,-1,-1,1,0,2,1,1,0,2,-1,1,1,0,2,-1,-1,0,1,0,0,2,-1,1,-1,2,2,-1,0,0,0,-1,-1,1,-1,2,0,-1,1,-1,0,1,-1,0,-1,1,0,2,0,0,2,0,0,1,0,0,-1,-1,1,-1,-1,-1,0,-1,2,1,-1,2,-1,2,-1,0,2,-1,1,-1,-1,2,-1,1,1,2,-1,0,1,1,0,-1,-1,-1,2,-1,0,1,2,2,0,2,0,0,-1,2,2,1,2,1,1,0,0,0,2,0,-1,1,0,0,1,-1,1,-1,2,0,-1,0,2,-1,1,2,1,0,0,0,2,0,1,1,2,-1,-1,0,0,0,-1,1,-1,0,-1,1,2,0,0,0,0,2,1,2,1,0,0,2,-1,1,1,0,2,-1,0,2,2,-1,1,0,-1,-1,0,1,2,0,-1,1,0,2,2,0,2,-1,1,-1,-1,-1,2,0,-1,0,0,2,-1,0,-1,0,2,2,0,1,0,2,-1,1,1,0,-1,2,-1,1,0,1,0,0,-1,1,0,2,-1,0,-1,-1,-1,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,1,-1,0,1,-1,0,2,2,2,1,2,1,1,0,2,2,-1,0,-1,2,1,1,2,2,-1,0,-1,2,0,1,1,2,0,0,-1,-1,1,1,1,1,1,1,0,-1,0,2,-1,-1,2,1,-1,1,2,1,0,-1,2,0,2,0,1,2,0,1,0,2,0,1,0,2,0,-1,-1,2,0,0,0,0,0,-1,0,1,2,-1,-1,1,0,-1,2,2,1,-1,2,1,2,0,0,-1,2,-1,-1,0,-1,-1,2,1,0,-1,1,1,-1,1,-1,2,1,0,0,0,1,2,1,1,1,-1,1,-1,2,-1,2,1,0,2,2,1,1,2,-1,2,-1,2,2,1,-1,2,-1,1,-1,1,1,1,-1,1,-1,0,-1,1,2,2,2,2,0,0,1,0,0,0,-1,2,0,0,2,-1,0,1,-1,-1,1,2,-1,0,-1,0,-1,1,2,-1,0,0,2,0,-1,-1,2,0,-1,-1,2,2,1,-1,1,0,-1,1,2,0,0,2,1,2,2,0,0,-1,2,-1,-1,2,2,2,0,-1,0,-1,-1,0,1,-1,1,1,0,0,1,1,1,0,0,-1,1,2,2,2,-1,-1,0,2,0,2,0,1,1,1,2,1,0,-1,0,2,-1,0,1,2,-1,-1,0,0,0,2,-1,-1,0,-1,1,0,0,0,-1,-1,-1,-1,1,0,1,2,0,-1,1,1,0,0,0,-1,0,1,-1,-1,-1,2,0,0,1,-1,0,0,2,-1,1,0,2,0,-1,-1,2,1,2,2,1,0,-1,-1,0,1,-1,2,1,1,1,0,-1,0,0,2,1,0,1,1,1,0,2,2,2,1,0,1,-1,2,0,-1,0,0,0,2,-1,1,-1,2,1,1,1,-1,2,-1,2,-1,1,0,-1,0,0,1,2,1,0,-1,0,0,0,-1,1,0,0,0,0,1,0,2,0,-1,1,0,1,2,2,2,1,2,-1,-1,2,2,2,-1,1,2,2,0,0,2,0,-1,0,1,0,1,0,0,-1,2,-1,0,2,1,0,2,1,-1,-1,1,1,0,-1,1,0,1,0,0,-1,2,0,2,2,2,1,1,1,-1,-1,2,1}, {2,0,0,1,0,1,0,-1,2,1,2,2,1,1,2,1,0,-1,1,2,-1,1,0,-1,1,2,1,1,1,2,-1,-1,2,2,2,0,-1,0,0,2,-1,0,0,-1,2,0,-1,0,-1,0,2,0,0,-1,0,2,2,0,0,-1,2,1,-1,2,0,-1,0,2,1,2,0,1,0,0,1,1,0,2,-1,-1,2,2,-1,1,2,2,0,1,0,2,2,-1,2,-1,1,1,0,2,1,-1,1,2,2,1,-1,0,2,2,2,-1,0,0,1,2,0,0,2,1,2,2,1,1,0,2,0,-1,0,1,-1,-1,1,1,2,1,1,2,1,1,0,0,0,1,0,-1,-1,0,2,-1,0,-1,1,0,2,-1,2,1,-1,2,1,-1,1,0,1,2,-1,2,-1,-1,0,0,0,-1,-1,-1,0,-1,2,2,-1,2,-1,1,2,0,0,2,0,-1,-1,1,0,-1,1,2,-1,-1,1,-1,-1,0,-1,0,-1,0,2,0,-1,-1,1,1,0,2,2,1,-1,1,-1,-1,2,-1,-1,0,-1,0,2,0,2,2,2,2,-1,2,-1,-1,1,1,2,0,2,0,0,2,0,0,1,2,2,2,0,0,0,1,1,1,-1,0,2,-1,2,1,0,0,-1,2,1,-1,1,2,2,-1,-1,-1,1,0,-1,0,2,1,-1,0,2,0,2,2,2,2,0,-1,-1,-1,-1,0,-1,-1,1,2,2,-1,2,-1,-1,-1,-1,1,-1,-1,1,1,0,2,0,0,0,-1,2,2,-1,0,-1,-1,2,2,1,1,1,2,-1,2,-1,-1,-1,-1,0,-1,0,1,0,0,2,-1,2,0,2,2,-1,-1,1,0,-1,1,-1,0,-1,1,-1,2,0,0,-1,-1,0,0,1,1,0,0,0,2,-1,0,2,0,2,-1,-1,0,0,0,-1,2,1,0,1,0,2,1,-1,0,1,2,0,-1,1,1,0,0,1,2,1,0,0,-1,2,1,1,-1,-1,1,-1,2,2,1,0,1,0,-1,2,2,-1,-1,1,-1,-1,2,0,-1,0,2,-1,1,2,2,-1,1,-1,-1,-1,-1,0,1,-1,-1,-1,0,0,1,0,2,2,-1,2,2,1,-1,2,2,2,1,0,0,-1,1,2,2,2,1,1,-1,1,1,-1,2,0,2,1,0,0,-1,1,0,-1,-1,-1,2,2,1,0,-1,2,2,1,-1,2,-1,1,0,1,0,2,1,1,0,2,0,2,0,-1,0,0,-1,2,-1,0,-1,1,2,1,0,1,-1,0,-1,1,0,-1,2,2,2,2,-1,0,2,-1,2,2,0,0,0,-1,-1,-1,-1,-1,1,2,2,1,1,2,0,0,1,1,0,1,0,1,-1,1,-1,2,0,0,2,0,-1,1,-1,2,-1,-1,0,0,2,-1,0,2,-1,1,0,-1,0,0,0,1,-1,-1,2,1,2,0,2,-1,1,1,2,-1,0,0,1,1,1,-1,0,2,2,0,1,-1,-1,-1,1,1,0,-1,2,0,2,2,1,0,1,0,1,1,2,1,0,-1,-1,1,0,2,2,1,2,2,0,-1,2,1,-1,0,-1,-1,0,1,-1,2,2,2,0,0,-1,2,1,1,-1,-1,1,1,1,2,0,0,0,-1,1,-1,2,1,2,2,1,1,-1,-1,1,0,0,1,-1,1,2,1,1,-1,-1,0,2,-1,1,2,0,-1,1,0,1,0,-1,2,1,2,1,-1,1,0,2,2,0,-1,-1,2,1,1,0,2,0,2,2,2,0,1,-1,1,2,0,2,2,0,2,1,0,0,0,-1,2,1,1,-1,-1,2,-1,-1,-1,2,0,-1,-1,2,2,-1,1,2,0,0,0,2,-1,1,1,2,2,1,2,0,-1,0,1,0,1,0,-1,0,0,0,1,-1,2,0,2,0,0,-1,2,-1,2,-1,2,1,1,-1,0,-1,2,2,0,-1,0,0,1,-1,1,-1,2,-1,0,1,2,1,-1,2,0,0,-1,2,2,0,2,-1,2,-1,0,-1,0,2,1,-1,2,1,-1,0,1,1,1,1,2,0,1,1,1,-1,2,-1,-1,2,0,1,-1,0,1,0,2,0,1,2,1}, {1,1,2,1,2,2,2,-1,2,-1,-1,2,1,1,0,1,0,-1,2,1,1,-1,-1,-1,-1,2,2,-1,-1,-1,2,-1,1,1,0,1,0,2,2,0,2,2,-1,2,2,0,0,1,-1,-1,-1,2,1,2,-1,0,-1,0,0,0,1,0,1,1,0,-1,0,-1,-1,1,-1,0,1,0,1,2,0,-1,0,1,2,0,2,1,2,1,-1,0,-1,1,-1,1,-1,1,1,-1,-1,1,0,-1,-1,0,1,0,0,0,-1,0,0,1,2,0,-1,0,0,2,2,0,2,-1,0,2,-1,-1,-1,1,0,-1,2,2,0,2,2,2,0,0,1,0,2,-1,-1,2,1,0,1,2,2,0,1,0,0,1,1,1,2,2,2,0,-1,0,2,2,-1,1,1,-1,1,0,0,1,0,0,1,0,-1,2,1,2,0,2,2,1,-1,2,0,-1,1,1,-1,-1,-1,1,-1,2,1,-1,2,2,0,0,0,-1,-1,0,1,2,-1,1,1,-1,0,-1,-1,0,2,2,0,2,-1,2,-1,0,1,-1,2,0,0,1,1,-1,0,0,-1,0,2,0,1,2,2,0,1,0,1,2,0,2,0,2,2,1,0,2,2,0,-1,-1,1,2,-1,1,2,1,0,1,2,1,2,-1,-1,-1,1,0,2,-1,2,2,-1,2,0,2,2,1,0,2,-1,-1,2,2,0,2,1,1,2,0,-1,2,0,1,-1,1,-1,2,2,0,0,0,0,1,-1,1,0,0,2,1,2,0,2,0,0,2,-1,2,1,0,0,0,0,-1,-1,1,1,0,0,2,1,-1,2,-1,2,1,1,2,1,2,2,2,1,2,0,0,-1,-1,1,0,2,-1,1,2,-1,-1,0,-1,2,1,0,-1,-1,2,1,0,-1,2,0,0,0,-1,2,0,2,-1,1,-1,-1,0,0,-1,1,2,-1,-1,-1,2,0,0,1,-1,2,2,0,0,-1,2,0,2,-1,0,2,1,1,-1,2,-1,0,0,-1,1,1,1,-1,1,0,2,-1,-1,2,0,0,-1,0,0,1,-1,0,1,1,0,2,-1,2,1,1,-1,-1,-1,-1,1,-1,2,-1,1,2,2,1,1,2,0,1,1,-1,-1,-1,2,2,1,2,0,-1,0,2,1,1,-1,1,2,1,1,0,1,1,0,2,1,0,0,2,0,2,2,0,0,1,2,0,2,0,-1,-1,-1,2,0,1,-1,1,1,-1,1,-1,-1,-1,0,-1,1,-1,1,2,-1,-1,2,1,2,-1,0,0,2,2,2,0,1,0,2,1,2,-1,2,-1,2,2,-1,1,0,2,2,2,-1,1,-1,0,0,1,0,2,-1,2,0,1,0,0,2,-1,2,2,-1,-1,2,2,1,2,1,1,2,1,2,1,2,1,-1,2,2,-1,2,1,2,1,0,2,0,1,2,-1,2,-1,2,1,1,1,1,2,2,2,1,2,1,2,2,2,-1,2,0,-1,2,1,2,-1,1,1,1,0,1,-1,2,2,1,0,2,2,2,2,2,0,2,-1,2,-1,-1,0,0,-1,2,-1,2,-1,2,2,1,-1,1,0,0,0,1,-1,2,0,2,-1,-1,-1,2,0,1,1,0,-1,0,1,1,2,0,2,2,1,1,-1,-1,-1,-1,-1,0,2,-1,0,-1,1,1,0,-1,2,2,0,-1,0,2,2,1,2,0,0,1,1,1,-1,1,2,0,0,1,0,1,0,-1,1,0,2,-1,0,-1,1,2,-1,1,1,2,-1,1,2,1,2,2,0,-1,-1,1,2,2,1,0,1,0,2,2,1,0,-1,-1,2,0,2,0,2,-1,-1,2,1,0,0,2,1,0,0,0,-1,0,2,2,1,2,-1,-1,2,1,1,1,2,-1,0,0,1,0,-1,0,0,0,2,1,-1,-1,1,0,-1,2,0,1,2,0,1,0,2,-1,0,1,-1,-1,-1,1,0,-1,-1,1,2,-1,0,2,1,2,-1,-1,2,1,-1,-1,2,1,-1,2,1,2,1,0,-1,2,2,2,0,2,0,2,2,2,1,-1,1,-1,1,0,1,0,-1,-1,1,1,-1,2,0,0,0,-1,0}, } ; static const unsigned char precomputed_decode_857x3_s[precomputed_decode_857x3_NUM][crypto_decode_STRBYTES] = { {185,220,232,134,236,83,61,118,203,183,218,77,41,70,83,1,117,113,126,247,221,123,128,199,14,223,102,208,209,62,175,22,187,190,24,250,74,70,199,117,189,157,129,52,150,7,132,146,236,82,50,87,134,173,201,68,105,220,188,77,163,237,55,91,12,106,102,84,210,28,66,214,121,135,56,182,133,167,141,28,133,117,136,223,178,221,207,142,137,80,52,153,147,226,15,161,4,147,17,205,219,97,248,252,249,3,148,150,136,9,106,202,233,163,199,38,208,110,62,183,44,162,98,185,89,139,78,84,116,176,111,46,78,140,222,227,203,48,51,249,171,7,167,67,3,21,220,238,3,94,113,159,72,55,11,73,90,230,120,54,129,221,201,20,51,191,0,43,28,214,122,117,17,151,180,185,202,229,255,215,98,16,210,36,247,114,114,134,253,56,102,152,248,66,50,239,38,118,151,100,130,87,197,180,137,114,199,178,227,244,213,114,161,1,63}, {52,84,56,124,206,99,27,67,36,79,234,217,114,245,146,255,45,137,116,13,177,250,13,102,75,40,67,67,101,194,194,72,249,207,196,176,110,47,250,13,93,35,216,218,104,67,214,200,83,129,28,146,132,93,151,5,2,177,204,52,194,232,164,1,147,223,197,187,86,135,37,114,52,110,117,58,84,72,120,213,110,141,54,61,6,121,216,55,2,71,77,244,217,104,140,89,216,4,84,93,85,86,146,244,187,246,196,250,196,233,5,170,26,13,139,27,119,158,157,29,92,21,57,24,47,123,49,4,27,138,108,229,42,50,219,235,204,203,136,138,132,255,101,197,53,9,78,132,83,7,7,47,134,215,126,49,252,17,36,90,106,225,15,221,169,27,77,14,213,16,86,0,230,161,21,9,92,82,99,7,251,6,201,106,212,166,246,155,28,213,200,42,51,70,185,81,97,149,29,230,239,240,227,215,145,89,76,219,130,134,89,220,175,194,242}, {151,25,251,186,225,24,174,14,127,212,20,71,116,209,23,203,209,158,165,13,143,159,61,163,45,190,244,83,94,251,218,145,160,235,90,25,52,97,179,44,230,12,21,16,207,120,29,24,14,66,68,7,218,139,48,68,247,207,160,119,93,254,149,74,179,197,226,3,70,75,247,31,64,224,51,128,160,93,241,4,175,206,0,145,53,247,96,72,200,5,165,213,116,67,197,102,75,30,90,110,177,130,188,25,15,194,209,248,8,144,64,217,243,242,91,248,43,202,109,97,192,27,47,99,182,118,71,49,225,38,97,252,211,124,5,128,175,151,102,34,215,33,67,77,99,84,194,222,232,148,74,159,128,198,189,153,110,96,239,199,18,36,127,177,130,122,133,236,43,88,226,10,141,135,25,187,216,7,107,247,39,222,183,21,43,12,28,60,94,141,190,71,102,84,114,23,51,43,241,81,34,147,203,197,55,19,45,75,170,167,50,156,100,231,210}, {186,63,195,154,177,2,60,48,154,125,207,151,192,78,84,166,17,72,230,145,183,75,136,40,24,100,69,121,212,55,13,24,223,95,54,108,126,150,250,71,143,98,89,198,222,203,161,128,44,95,65,142,18,244,205,36,151,82,116,126,230,221,219,7,142,155,59,96,243,220,219,240,173,199,137,124,149,88,123,215,108,21,104,45,179,238,239,5,54,14,177,193,198,21,55,66,225,192,37,95,220,180,50,133,138,13,23,37,105,179,2,200,248,122,10,188,71,43,174,105,91,247,229,29,112,162,8,132,56,236,212,159,237,204,99,63,82,54,103,205,195,187,238,46,207,110,231,204,170,191,251,115,236,168,201,219,255,205,80,204,188,88,201,13,156,70,122,175,0,52,161,241,209,123,169,120,153,97,19,142,142,251,129,111,246,6,119,195,214,86,244,14,171,83,70,181,96,156,103,147,128,129,211,14,11,203,110,252,221,47,98,6,202,21,69}, } ; static void test_decode_857x3_impl(long long impl) { unsigned char *x = test_decode_857x3_x; unsigned char *s = test_decode_857x3_s; unsigned char *x2 = test_decode_857x3_x2; unsigned char *s2 = test_decode_857x3_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_857x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857x3(impl); printf("decode_857x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857x3_implementation(impl),ntruprime_dispatch_decode_857x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_857x3; printf("decode_857x3 selected implementation %s compiler %s\n",ntruprime_decode_857x3_implementation(),ntruprime_decode_857x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_857x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_857x3_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_857x3_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_857x3_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_857x3_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_857x3_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_857x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857x3")) return; storage_decode_857x3_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_857x3_x = aligned(storage_decode_857x3_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_857x3_s = callocplus(crypto_decode_STRBYTES); test_decode_857x3_s = aligned(storage_decode_857x3_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_857x3_x2 = callocplus(maxalloc); test_decode_857x3_x2 = aligned(storage_decode_857x3_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_857x3_s2 = callocplus(maxalloc); test_decode_857x3_s2 = aligned(storage_decode_857x3_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_857x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_857x3();++impl) forked(test_decode_857x3_impl,impl); ++test_decode_857x3_x; ++test_decode_857x3_s; ++test_decode_857x3_x2; ++test_decode_857x3_s2; } free(storage_decode_857x3_s2); free(storage_decode_857x3_x2); free(storage_decode_857x3_s); free(storage_decode_857x3_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_857x5167.c0000644000000000000000000012255314705505543022406 0ustar rootroot/* ----- decode/857x5167, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_857x5167_checksums[] = { "c94e8ca6f25f8ffbec28769f741ba6613b6de2ed3bbda148d4e973175b80545c", "43714f0e17a461bbd8215bb53713169845c361f105bcf4ca966b7b86b5de28c6", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_857x5167_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_857x5167_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_857x5167_ITEMBYTES static void *storage_decode_857x5167_x; static unsigned char *test_decode_857x5167_x; static void *storage_decode_857x5167_s; static unsigned char *test_decode_857x5167_s; static void *storage_decode_857x5167_x2; static unsigned char *test_decode_857x5167_x2; static void *storage_decode_857x5167_s2; static unsigned char *test_decode_857x5167_s2; #define precomputed_decode_857x5167_NUM 4 static const int16_t precomputed_decode_857x5167_x[precomputed_decode_857x5167_NUM][crypto_decode_ITEMS] = { {2190,-1263,-1665,-960,-1480,2512,2355,-666,360,-2138,-699,-2221,1875,1368,643,-1815,-2453,-630,-1146,139,-659,1254,-280,-1939,-1942,1308,2444,314,1079,2419,934,2448,1721,-734,286,1889,1048,-676,86,-449,511,1732,-2464,1790,503,2102,-1203,497,-1338,2446,-1904,1575,-2226,1670,-1503,2420,776,-2378,1935,1196,617,1230,890,-1304,1681,934,1025,1148,1095,-1657,1025,-876,-2036,-1931,-1078,-1614,1057,2464,-2338,1162,2116,-682,1941,-138,-2552,497,-1069,927,-1464,2534,1290,36,-2086,645,-147,2035,-204,-939,-567,1547,2243,-2240,2121,-2482,145,2540,-1479,-863,1665,1190,-1797,-822,741,-1540,2003,-1864,1479,1598,1797,886,523,2554,1605,-1127,-256,-273,-294,-1478,-2257,-1888,858,-992,1834,1590,-226,-1652,848,1748,-663,-1011,330,-1885,-1800,-1499,-2179,864,-311,2093,-2033,-784,1103,-1476,2476,-2108,640,360,995,-1069,-2477,2326,-180,-509,1519,-1740,-1485,-1622,-1030,-729,-1166,36,-1827,-1280,-2082,2529,-2039,-2576,-2201,935,721,1301,-426,1397,278,2384,1167,57,-1085,-2260,952,-1209,2249,965,2348,-1073,-1069,-879,2167,1789,2456,-1755,2390,-212,-2387,-448,-227,-1332,2040,-896,1365,1689,-1538,91,-2544,2142,-282,229,1263,-2450,443,-1387,1993,-1244,1833,-2029,2506,1294,-559,936,-713,1740,1870,1812,706,-1080,1891,-1754,2301,-1147,1896,2464,-1909,-1130,1465,666,1329,1222,1456,-1473,2213,711,-245,2216,-922,2327,649,-961,-1318,-164,1531,-1266,-2246,2224,2369,1032,-871,-2080,988,2125,-1741,471,-2200,1789,-1797,-2072,1903,-2322,-2383,-1281,2212,565,2033,1644,1789,1921,-1576,2121,-1382,2560,-1160,-1652,-2453,-1450,13,1152,1504,297,1855,-2307,-590,1862,2016,1438,598,1936,1933,-845,-69,-1345,-1768,-1012,-659,-990,-1254,-1932,-68,349,-746,1718,-674,-1745,1945,-741,-712,-698,1149,621,1106,-1266,-1637,1473,-843,-1355,1713,1489,-665,-1096,2395,-2301,1088,776,1447,-2494,-1995,2551,1146,1761,-2230,-1225,-512,1311,-1553,1223,235,22,-2421,-923,-1939,2521,-280,-371,808,2238,-684,1144,2417,1091,-849,-38,272,813,929,576,-1939,1649,-2497,-910,-1502,2300,927,136,491,-553,193,-706,23,-2165,-1475,-1883,-427,-387,1837,-1135,506,-1800,1987,2309,73,-566,367,-642,-916,-2302,-2191,-2261,-1953,-1920,2414,383,-252,-1890,-918,1801,-2447,-641,-1374,984,1035,555,1605,-1801,-1836,-1139,1021,-556,277,-2452,510,-1436,664,-862,-456,1692,900,2361,-1325,-1997,997,-1451,1641,-180,-704,1536,2165,1787,-705,-1983,-857,-2342,-1340,428,-1186,-501,-181,-196,-176,11,2279,-365,551,-1558,270,-2357,-1245,-2158,946,-1513,-1878,-259,2496,376,-508,-640,-1109,484,1469,2324,505,211,-1893,89,42,-2331,2291,-2301,1825,2408,-1682,1188,-1071,-1190,329,-943,307,-443,1143,769,1168,383,558,216,2354,-2466,263,371,-1667,1161,857,-1754,-1504,-998,-1463,1785,2032,2145,1492,2325,-1057,1401,2549,964,983,226,-603,1077,-1728,-2495,-183,-2219,-675,-827,-816,1979,2155,965,206,-168,690,-313,-670,559,552,-1950,-1596,191,-1812,1829,-1290,1995,-1122,-928,-1063,-1564,-864,1501,-2070,2440,-104,-1386,575,2483,546,-728,-1031,-1547,-491,1843,2274,-300,2274,-382,-1600,1098,-1377,2541,369,74,1305,629,205,-1234,-833,-1483,-1797,-587,1393,-1531,1124,-173,-343,1217,1861,-653,2250,-795,278,-155,-1042,2540,1558,-144,-2098,-2211,1252,-1721,-976,1489,-1959,-2043,2494,913,43,2018,-150,-836,1403,-1980,1264,2023,-1016,1599,1501,-250,522,-691,-1461,-1786,602,-946,-2437,-1679,-2029,-1463,999,-1879,2157,856,-2326,-915,1957,1397,-132,-1119,-2169,2259,113,2290,-577,871,-537,2282,-207,1282,-2329,-1954,538,1465,1978,-1698,-355,2285,1620,2177,295,-36,-798,205,79,479,-210,2002,-173,-1936,-1947,-482,939,-660,439,1625,-2357,2196,-2233,-2353,-2210,-1974,363,-204,-1484,1116,305,1582,-839,-1629,251,1996,2160,-2580,-506,-883,2267,-1371,209,-2263,1814,-914,1674,-1939,1922,885,858,510,-1134,-539,-347,-2342,1088,1283,819,-2189,2500,1780,751,1649,1589,1237,-1957,1962,-2233,2340,-938,-370,-1134,-1044,403,2503,-1446,-2549,-2318,1641,1496,-1991,883,-2488,-2230,-1276,15,-842,1850,-1445,-494,2492,2442,2160,1072,-655,1941,888,1194,2227,-83,1332,-1865,569,2186,2381,1733,-1923,-1284,175,-2363,-1777,1493,-2494,-934,1241,1118,1780,-96,-2052,1019,1925,-2544,541,-1354,1695,1477,-7,629,1787,-22,1321,-1786,-1033,-1633,-375,2537,1272,31,-1782,-244,-909,80,-1934,-2534,-78,399,277,-1059,675,406,-1942,1003,866,-1575,-1448,2561,1853,81,1771,-1877,371,-1028,-1748,400,-1396,-924,-344,286,-577,525,2062,-1812,54,-915,535,-1121,1979,2264,-996,-190,1184,-153,1629,2224,366,-1756,162,1363,-2243,-880,-1038,1112,-326,2271,1160,-523,1778,-1032}, {551,2064,-1248,-2218,2192,-1905,-1566,-164,456,969,185,986,-993,-1204,-1085,-791,-1020,163,2537,-829,1593,2348,-1931,-353,-206,-334,2498,-2085,765,-658,-740,-1551,1033,-1752,2422,-1778,1499,-50,-1137,1417,-1020,-2500,740,-473,-2317,-2257,-2424,107,-2123,1582,-2535,662,1858,881,2009,805,835,1170,-1480,-2457,2164,-259,-1924,1177,1615,-273,618,1772,1159,-1462,-1154,1344,-2095,-1963,165,1202,1743,-1254,-2395,-2061,739,-989,1346,365,2246,-1416,-1753,-70,1709,8,2413,-163,-1496,1194,728,-306,-2251,-2346,-1220,1912,1067,1810,646,1154,-1543,-1929,-17,1896,2256,1958,1190,1234,-1025,-1434,-789,2265,-2179,-894,2372,-1373,-1397,-1681,-2431,1016,-1881,2043,-2044,1552,25,2216,1665,175,-752,-1893,2124,1685,825,376,-912,-1469,2304,-567,-633,-848,-1703,-470,173,-450,-1937,601,-2388,-2219,965,-2211,-1129,-1195,903,-908,1975,1447,-219,1435,2194,-1127,1199,-907,1681,-857,645,858,600,315,-1044,-712,-2482,1037,2019,1822,-2043,1201,85,823,-1658,-1471,1874,1369,-1859,-546,-1232,229,192,1360,-1357,81,-2340,616,1674,1573,428,2456,-1620,-1267,481,1176,-2278,-2525,1835,463,-1616,513,2530,-1774,-1408,-2134,2428,277,-1740,-319,-2200,2240,827,2106,2131,-625,289,-47,-1850,-1214,1207,614,1722,967,1338,902,-947,-2502,-1329,-534,-2076,-2144,2017,11,-1777,1226,544,2346,362,-580,-2165,552,-1151,-605,15,1987,128,-710,-505,-958,-2564,-1161,-1324,-1279,310,2297,-2073,587,-326,-549,-2517,431,757,-613,-1830,216,1183,419,-425,-1102,2574,1094,-2068,2153,-1025,303,-57,172,-1294,-791,-538,667,-1231,-2372,-1699,-1502,-2498,-1059,-2451,-1211,-1432,-818,-1906,-1911,-413,-1025,1561,-2308,-497,1648,-534,1194,-1395,-1482,-1084,789,-2209,-2152,-684,2362,-1968,177,1146,1516,-575,-756,-1524,2063,-1592,2390,1564,-1742,2150,1419,-2361,1771,-2008,-2581,1473,-1604,1155,-373,1801,-2334,-2023,169,-454,1503,-1139,-1794,-1180,1583,1531,1635,-468,972,-10,-173,-1247,1828,-723,-2166,-2200,1109,-2557,-2105,-314,795,-2533,329,2237,524,-1030,-2308,1300,512,1404,-1771,-2109,1398,1861,-131,-2018,1759,-2058,-2497,-205,807,791,-169,1730,-1133,-233,-1285,-1880,-720,-880,972,260,-1331,-1691,1222,-1810,-1988,1680,-1791,2233,765,-57,1273,-2225,-305,-1255,546,2065,-1853,-482,2019,1788,1619,-197,-97,-65,-1893,1878,85,1738,-875,861,-191,-253,-514,2562,2438,540,-1950,411,2107,-180,-1059,-1171,-1581,-1351,490,2290,1386,-298,-695,-1519,1777,506,2127,2242,-1946,-1505,-575,-1390,266,1108,74,200,-90,-1540,31,749,1710,-774,-314,-1575,1874,1811,-1131,2180,-778,2145,535,-139,-609,-1064,-1403,-751,-715,2396,-1154,166,1738,-1689,2346,2100,13,1295,-1651,1480,344,70,1150,-109,2073,2402,-1112,-2462,-879,-1656,2578,1388,-1940,-1487,1501,1227,-702,2053,609,450,-407,-1665,-451,-1958,-1057,339,1777,684,-578,-1590,2551,1676,2400,-1886,-1292,1782,-1636,2504,559,-71,-1898,-1544,-105,-133,-2113,-2543,1868,2295,-2492,1449,-2380,-2437,1904,1057,1768,-229,1584,-11,2257,264,-749,-718,-2474,291,-1175,-1972,151,-2223,-907,845,-1171,962,-889,606,1386,781,-1027,1669,258,1457,-1834,2093,-287,1817,2547,1738,1494,-55,519,1528,2108,-486,-1715,-2150,-478,-1490,-2352,899,1982,2319,869,1302,-25,-958,-1210,-792,1986,-852,-2158,117,-658,1199,1047,2530,-1870,-1186,-1235,-574,-658,805,1776,-660,2296,-1972,-1049,1173,-939,-892,-660,-1122,947,2424,1214,-1374,969,2479,-587,-1432,877,588,1596,-1268,-56,-1105,-1372,2375,510,-2311,-2070,1015,-860,-1611,608,-2114,-1698,345,1833,440,1048,1323,2228,2128,-2253,-340,525,-38,-1309,-2009,1830,-891,474,1335,2165,-543,-256,-1507,2295,-1083,2529,2326,-745,-1364,2117,-588,-2516,-1962,218,1419,472,-175,1696,661,-2015,2517,-51,1491,2106,-279,-2577,2139,-1504,2515,1510,-126,629,537,879,-2436,52,-1941,938,-1740,662,-224,-790,2232,254,-523,-289,278,1187,1087,2219,-1093,-1186,-570,-219,1895,699,2572,-2439,2536,1062,-311,-868,-1949,-2502,-1037,2346,567,1044,2359,-72,-1109,308,1631,-1999,-1597,743,-1143,1768,2338,-1537,2352,-2428,615,1929,-1552,688,-2108,1522,2404,1774,1933,263,857,573,920,-1148,-2472,312,1797,1178,-1510,1145,326,-441,-1414,-517,-2158,2098,-389,-2376,-1367,-2136,-358,-214,-2181,511,956,298,-2193,-478,2162,320,2338,880,-1015,1621,-736,2175,833,-2043,882,1610,-45,36,-2432,-846,1552,-2197,-328,656,284,2180,-794,764,1668,1214,212,-1186,2168,-2435,-106,1003,-587,2291,-1566,319,1562,-1579,-662,-1265,-284,1437,-2527,2423,1635,218,655,1781,-2402,-2092,539,-1221,-1420,2149,-1586,-205,-1259,383,1470,2392,-2570,-2057,310,3,461,-223,753,1756,1550,-1305,-1782,1186,-730}, {-1134,1069,-2078,1445,-2146,-2030,2365,-445,-1201,-2439,-2351,2363,2523,1464,2139,-933,-668,-2527,-1507,541,-2230,2128,-515,-2372,1549,-634,-2262,2359,-1369,1533,1468,-1802,633,-571,-260,-1260,726,1931,1725,-2130,-777,608,-1496,-1379,-1098,614,-524,83,-434,408,2370,2157,-11,-766,-2502,-1502,2567,2159,-1075,-1091,1543,2524,1997,-374,-2078,-1075,821,2229,-950,2489,-2017,-1905,2107,-2057,-1147,-1024,1142,-429,-1031,-796,-83,-2257,466,-2135,-933,936,2153,284,-1163,-1423,-595,-466,-1812,-2294,-1426,2131,-612,-18,2302,-1028,880,-1220,1068,-138,-1934,1648,-950,-517,-325,-376,-1751,1405,-674,1984,-1782,-1536,529,705,-1788,-100,-1038,2270,-457,-1706,426,90,-667,599,-1681,1210,25,2361,-904,1223,206,-37,260,-306,1714,777,2258,-1447,-196,1635,1672,2489,1710,16,-2574,-1796,533,1229,-1861,-1962,-537,-1786,383,863,1786,-1476,-326,-4,1247,1614,1504,-602,-1116,-2402,-575,2380,-1238,95,-451,1673,-2235,2559,200,-2382,1309,2311,2420,-2298,2374,-1534,133,-2392,2334,-698,-2219,1461,-485,-1567,1703,689,1492,-698,281,-884,-369,2461,691,1733,377,-600,2354,-1000,-2033,1666,-1587,1856,2473,1956,769,2126,-397,2444,353,-1591,-4,2104,1716,2139,2462,-293,2476,2174,-1702,-75,1487,-2576,184,-362,2056,-39,-44,-846,1678,-2575,1216,-609,435,1085,1130,1727,964,464,1815,1186,-1589,-1787,-1933,2325,870,2246,1779,2302,630,-1137,-1719,-2018,-1119,-1265,1658,1922,1952,-672,689,258,-1912,-1915,-1395,-2419,-311,-622,2479,4,-1107,1408,1793,1552,45,-1339,-1588,-934,1632,-2530,1343,-2024,166,-1574,-473,-354,-1227,992,-907,-654,-540,1851,-1657,-732,-2396,-178,1921,-90,207,2228,-1429,-1892,-1991,-2016,-1505,-2271,1698,664,-946,-1437,-158,-1667,-1009,-1375,-121,-275,147,1059,-2261,379,-518,-1960,-294,88,-114,-69,-167,2539,1184,219,-791,-542,898,411,2513,741,-2017,-2189,1407,2494,360,1927,-1166,-1671,1564,-1655,-1156,660,582,-1111,-1736,956,2111,-1350,530,707,681,-461,2329,2537,-2234,-312,686,1864,1604,-929,-1929,2444,816,2393,2538,-717,-1809,2114,-1826,-620,2261,-2413,712,1035,-1870,-2192,1388,-1249,2277,112,-2189,2272,1500,-1723,999,215,-413,1702,-1936,110,-442,-1657,1020,-2353,-919,-2200,504,578,565,2533,1190,1250,483,65,2071,2339,-190,226,-1927,-2346,-1969,-1634,-392,1882,-313,1386,1212,127,645,277,2219,2176,1318,-1023,-953,334,-263,-244,-1115,-1522,1393,-407,-1351,438,2209,-568,1,-416,-277,1714,1572,-169,-954,812,811,1970,-2184,795,-170,-1379,1440,-2086,-47,943,680,-1314,252,941,-1537,2136,2018,-2387,1323,918,-1569,507,1517,-1265,1911,-892,-1363,692,1214,1838,181,940,1550,-1308,2475,-666,2234,539,-188,-780,1207,1593,-477,2241,1313,1673,-1117,336,-1779,1033,-2478,1102,540,-945,1484,1662,-1120,-1440,1394,2202,-82,2352,-480,951,-1670,-1142,-64,2303,-2356,1261,-1868,-2502,2296,459,1042,640,2543,-39,2159,550,602,-2371,901,-2547,863,-954,-106,386,661,-1630,-573,-2073,-2539,1266,-870,1386,-471,542,-746,-113,2092,-696,-397,-1396,606,-1308,-1216,927,2109,1330,-1929,-2128,-472,-630,871,889,-1485,729,410,1278,1359,-1560,2295,-661,275,-1405,-1307,1977,1257,1172,2272,1647,1922,25,881,-1023,-511,329,855,-576,-1046,-2238,637,-888,-759,-689,872,2270,-2108,-2082,-1546,411,-1949,-1098,1217,231,-690,-596,-753,-170,1155,-96,-2212,240,-2231,-500,1620,-1337,-215,117,-290,-2395,-772,-32,1665,511,-1689,1115,-349,996,1190,2453,-1193,-161,864,1218,-1719,-869,2424,2235,-1716,298,-871,-599,-2011,-1343,1569,-1759,624,-313,-2259,-1730,-2430,1168,-744,2106,-1702,2485,910,-1812,1654,1223,-1951,672,-1716,1660,-1156,1627,-318,-2239,2532,948,1613,-2266,621,301,1075,-1298,2539,-1408,-2059,-899,1759,-2548,-2461,-1993,1777,717,740,2486,-2237,-1343,1524,843,-1953,-382,1586,-1049,-2362,-2565,-1278,74,1390,217,-2538,1878,-1273,-2075,1221,1946,-871,705,783,2287,2310,1503,2289,-2227,-2243,-557,2436,1272,-1692,1170,2559,-2579,262,-423,829,-227,-1125,-1200,-414,-1532,-1451,-1223,271,1681,1613,1569,-2346,2357,2076,1926,-1379,1127,543,-1595,-2067,-1001,-227,-2198,-2549,-1908,1414,-2398,-1282,2478,2544,-43,-959,-1161,1661,261,578,-1150,-1576,2113,-1842,-1846,-1435,1492,-1897,1512,-1360,-186,2472,-173,892,-242,-1685,-1780,-131,1323,-844,-2403,-324,-2401,-122,1702,-1665,2574,-2106,2319,-1875,704,-1629,528,1658,305,1223,-2450,2488,-143,1984,-2503,-1184,-21,-1233,-1215,597,101,-2067,1416,2317,-1039,-400,-2415,1068,330,1573,-1547,-805,81,-678,210,-689,-1302,-241,356,572,808,755,1307,-1850,-1353,792,-1132,-2067,614,-240,-734,2434,-1788,-1027,-125,-208,-1996,403,634,1435}, {153,1079,-2113,-1285,-2076,-1335,-2053,741,750,2267,-1789,60,1146,-679,1114,2212,1862,833,-2579,-2081,65,-376,-1397,299,-984,1331,-1360,891,2336,212,2230,-450,-754,-2048,361,1317,-872,-2349,229,1616,-1866,-1584,1828,140,-369,42,2106,-1184,420,-1924,-119,877,-905,-1738,-2198,-1920,-108,-613,-16,1712,946,-464,-1247,-89,54,-425,1659,-338,-402,1513,1668,-698,-2097,-95,1191,-1975,2142,-249,-496,538,893,-87,411,-932,-1194,-701,-420,-295,2041,-290,-143,416,-457,1700,-2543,2398,-2271,-593,28,2012,-1632,2125,2213,430,-440,-715,75,259,-1664,-951,-1346,1758,2468,-768,1482,-675,2148,110,1480,1679,-1015,1563,294,-182,-291,1572,-743,-642,503,-211,1332,-1807,-1644,1450,1447,88,-2160,-2481,-2242,-2213,-1152,-1202,-2319,-1077,432,715,1744,1151,-1152,-2326,-1163,-2065,1021,-1513,467,-2346,-891,1413,2531,-342,-1011,966,-45,-2490,758,-2141,298,1082,416,1990,1926,-1407,988,1635,-2039,-411,47,-317,1361,-2217,1484,2360,2125,655,1606,-457,731,1929,1413,796,-977,-2249,2089,937,-1623,1942,1156,-500,-2391,-1629,-97,510,-2280,-1566,91,1319,-1344,-897,1520,1672,-15,1030,-1213,551,-2492,2187,-2119,1301,-130,-967,2292,2539,-469,1727,2467,2329,415,-995,-2403,646,-572,300,-1216,-1849,-2539,414,-117,-130,-1289,1954,207,-1368,-1724,1934,-2522,698,1889,-1792,-2057,-2113,-460,1014,2515,-978,-124,136,2172,-1479,1797,551,-569,449,-1828,-925,658,2230,2535,-1118,-920,-67,803,-1231,2241,-817,-1578,-188,2213,-1475,-2144,1054,614,-1585,-1651,1582,234,896,-14,-1702,-9,-1405,-219,962,-1409,-702,-2299,-1539,-1691,-846,483,-1545,-1177,460,1012,1343,-2581,691,-2461,2534,34,1427,-2317,-651,-1529,2183,-513,-70,-2334,-160,1348,-2451,-1348,-2358,-954,-1927,-1907,-1587,1933,506,-128,-802,1810,1086,1977,1145,2501,795,-668,170,2198,1451,-1476,-737,-45,-709,976,153,2327,-954,1179,-1084,2024,-1412,-708,-1553,-2368,-2215,-1178,-1207,-1943,116,652,-971,-1532,2248,1910,998,133,755,-582,510,-310,-178,-2446,-497,1973,1776,-2050,-1083,1636,-2577,-993,-2035,-576,1695,-271,-2401,-1838,2149,2567,-1103,2344,-710,673,553,-702,897,826,1380,-1013,-224,2188,-1318,2117,-87,-2573,1874,-398,-2491,-1726,-1995,2368,460,-726,2577,-2280,2068,-499,-864,-565,1885,-1757,-960,1493,-2401,-961,1367,1576,-2244,-162,637,313,355,-1728,-1901,-2435,-1643,1192,1791,1681,184,-223,-1122,922,925,-1275,-969,1604,-2374,-424,-1572,-1059,-2234,1212,2409,2514,-470,-1593,2344,2417,1696,3,-2102,-90,2405,1446,661,1733,-2541,-1042,-1204,65,-2220,-1435,1010,-1287,2506,1004,-556,2176,-161,60,1247,361,-67,1196,-2291,-109,-1845,516,-693,1263,-1422,2329,-356,-2083,-1328,1523,467,-676,669,41,1883,-2242,-1632,1517,-1370,368,1778,2378,-1834,2552,-278,-753,-75,-827,1714,-652,2198,-2020,-1552,-715,-1040,-1477,1639,-1983,-1304,-243,-782,-2136,1367,-478,-2133,-420,-1809,2259,810,-2327,1518,-2248,595,-401,2382,433,-2523,-1146,-1108,-1163,2092,808,1437,255,1673,-992,1921,-1342,317,1528,-571,2134,-1719,-1872,-108,-1948,-838,705,2361,664,-373,844,1042,-2532,-2422,-2134,-1867,931,70,755,-1573,-1060,210,-2303,-1396,-1195,-1810,860,-2581,601,-1356,-152,88,-193,-404,61,-666,1809,951,-1741,1322,-2119,-1708,-1469,1218,-2045,843,-2312,1311,275,1950,904,-1585,229,1013,-1825,-449,458,-631,-1528,1210,577,1114,-1806,1343,-2208,2048,-1538,1510,851,-84,1378,569,-1143,-1582,129,-104,-2285,729,-1712,942,2103,75,329,-1550,2205,-1370,-331,-1862,1935,1224,-147,105,-2308,-1891,-1707,-1614,-1248,-1003,-1933,342,1992,-1279,-701,2459,-190,681,-1903,1764,-415,-1569,85,1728,-1387,2163,10,1905,-1586,1406,-1849,1342,-1328,-536,176,1280,-451,-2293,-359,-650,895,665,-668,465,2114,655,-1865,-1036,1660,908,-2524,-2574,699,-1228,2048,15,1396,-267,1425,413,1488,2472,-112,-819,457,1783,-1531,1810,-1674,-1707,978,454,1081,668,-197,233,-1613,-206,679,-686,774,2082,-1393,2164,1329,820,-668,-1379,-1066,-109,-2029,1099,2054,-1745,2035,1279,1508,-1900,-1390,-864,-1163,1182,378,344,-716,-2414,330,-735,319,546,2442,-1642,-1229,1688,1479,-1249,-1831,-1258,800,394,-2268,-407,2271,-21,1158,1224,599,-1343,-1378,-2583,1607,952,941,1453,1834,1528,1277,146,41,1429,1390,-2000,-2490,-2528,-1235,1860,-1361,-2152,1701,29,1138,1172,2259,2355,-715,-1366,-2392,-2348,-1798,-738,117,1114,-1884,1562,295,-2036,-2359,-1413,-1887,1592,260,266,-706,2452,-1398,709,-1796,2017,-1256,-212,-1969,2416,2256,-1667,-1977,-1059,-504,1070,247,-2137,730,1883,918,-2546,-1922,-2547,-2219,1748,252,870,-4,626,-2286,-110,-1603,-1561,1441,124,739,442,-2575}, } ; static const unsigned char precomputed_decode_857x5167_s[precomputed_decode_857x5167_NUM][crypto_decode_STRBYTES] = { {253,36,143,249,184,183,61,55,50,33,210,145,203,146,154,153,17,251,91,161,247,139,59,207,222,200,130,123,164,108,102,181,71,216,61,160,76,104,55,74,75,64,82,199,49,108,220,218,40,132,9,214,56,82,189,118,194,54,115,3,139,172,98,228,91,90,21,55,96,16,125,163,215,105,200,107,209,248,132,68,94,243,143,214,151,213,84,194,210,115,246,139,149,130,90,33,31,167,30,166,211,29,235,8,53,243,24,160,75,137,97,218,121,72,235,193,121,179,255,145,65,15,172,219,49,41,208,39,223,204,138,125,100,19,34,112,140,132,28,248,135,19,19,122,109,198,92,179,111,216,163,85,248,134,232,20,240,107,173,9,41,142,203,134,185,200,115,50,94,130,45,190,125,12,10,240,96,95,252,69,33,211,22,167,86,51,39,125,17,98,68,206,125,32,194,94,58,197,179,91,186,2,189,84,225,170,200,19,188,223,3,215,162,135,65,189,113,139,102,87,181,163,246,190,172,191,249,121,251,220,74,148,202,140,173,109,184,74,24,252,101,145,79,56,219,13,145,147,126,199,51,102,239,35,106,238,14,189,221,229,218,255,9,23,9,175,79,62,252,203,43,180,227,76,113,165,210,167,175,68,21,86,252,43,143,227,234,128,124,108,133,84,221,131,183,32,2,212,220,123,50,24,22,86,186,24,28,165,156,223,251,159,182,88,31,52,208,32,79,25,222,75,98,165,208,170,52,228,90,204,64,216,96,28,127,68,56,79,8,227,21,20,222,200,25,140,179,18,1,11,200,22,69,109,102,225,148,107,27,111,90,38,172,223,14,190,5,174,163,202,177,29,124,171,125,231,182,0,231,108,180,24,115,7,236,254,216,52,152,43,28,59,210,199,254,195,175,16,225,19,26,46,166,100,47,72,15,236,86,172,97,171,18,29,154,63,64,118,238,183,7,220,57,222,57,95,170,122,166,188,44,21,75,217,128,56,208,77,173,133,144,199,218,156,126,85,253,6,168,105,179,43,159,59,165,141,52,242,109,220,163,220,65,135,59,106,109,61,24,95,212,56,215,212,185,240,6,85,66,173,133,232,208,78,137,145,218,83,167,217,120,88,46,196,246,85,49,231,38,186,196,76,116,241,244,50,163,105,54,251,80,102,15,214,255,4,102,33,65,187,165,133,176,151,127,243,52,188,216,121,117,180,230,205,70,114,139,5,83,192,118,244,37,185,7,221,139,245,142,129,5,93,131,4,50,8,114,105,108,118,202,76,68,180,194,252,30,18,16,155,166,59,114,1,87,135,228,76,143,102,202,192,134,97,172,0,241,16,104,162,178,59,37,11,241,120,146,238,246,91,49,86,61,5,223,17,148,149,173,181,249,202,62,198,71,154,169,52,233,189,71,0,125,55,181,218,252,28,138,70,202,79,62,143,229,53,61,131,112,220,91,118,148,194,47,61,248,89,45,153,223,194,121,152,97,51,76,216,112,214,83,90,219,218,213,214,144,116,12,135,51,12,55,168,207,170,94,208,71,202,152,35,68,5,71,156,104,167,243,107,246,61,191,15,20,79,57,16,118,161,168,69,152,167,221,214,77,126,76,233,237,44,251,8,29,220,160,29,224,16,254,181,160,61,225,88,51,37,184,128,54,92,108,9,175,178,137,8,159,188,251,138,86,13,201,77,63,202,230,39,106,6,63,16,237,186,215,73,137,180,126,133,253,113,8,26,109,119,214,140,67,20,129,132,122,11,52,231,182,121,179,77,55,78,204,40,218,150,193,214,175,55,22,25,193,3,69,49,121,4,142,53,24,128,186,136,26,228,92,149,57,251,81,128,132,210,198,81,24,233,96,219,148,161,140,141,127,51,239,68,38,235,246,218,68,179,76,50,242,8,202,30,50,148,50,111,214,221,78,214,206,0,39,46,179,220,208,57,195,215,169,222,146,170,145,86,148,33,180,63,0,140,165,217,83,181,149,210,227,30,121,219,187,25,146,97,69,94,110,161,93,175,143,53,229,63,211,251,94,59,197,97,168,20,7,240,123,90,0,172,218,241,169,196,14,41,114,212,115,235,230,178,111,48,8,166,21,234,33,238,229,157,33,179,91,131,113,36,63,185,214,231,222,83,253,226,116,225,227,21,145,128,200,93,213,119,238,140,14,113,47,217,122,159,213,145,132,119,77,220,46,169,252,193,33,140,35,225,5,104,137,201,191,188,60,226,221,166,178,231,91,161,27,2,98,70,170,60,221,172,237,142,35,107,245,147,125,49,3,113,195,48,214,135,31,91,171,0,255,153,173,55,243,177,77,139,146,131,208,105,238,225,74,139,147,95,5,198,134,193,157,47,97,160,176,91,32,12,103,109,241,14,11,163,46,159,43,225,26,145,23,121,128,86,29,213,12,72,41,207,48,76,197,148,181,70,145,187,124,54,26,192,138,215,21,48,78,18,196,116,97,145,184,199,78,40,251,129,114,27,17,148,177,102,153,249,28,149,168,254,131,35,197,192,193,9,147,122,41,225,152,102,193,34,185,111,125,188,159,77,129,101,186,244,9,175,193,243,191,204,225,40,103,32,225,88,251,71,209,161,144,185,34,6,185,60,3,135,62,112,250,237,86,181,215,78,34,83,6,235,194,148,207,181,16,65,29,200,140,219,129,175,48,144,69,106,83,38,92,41,154,45,51,213,140,105,138,196,84,219,207,95,135,211,141,27,189,189,163,102,236,47,196,164,37,72,180,108,160,22,251,119,215,49,84,164,186,86,41,85,120,54,126,105,249,119,28,175,185,12,87,95,81,18,184,118,12,26,181,26,65,226,205,252,22,206,209,26,73,3,127,85,218,153,97,16,245,95,184,120,175,27,89,155,172,86,152,148,123,140,57,15,205,181,206,36,131,116,23,67,208,191,95,6,223,134,67,38,167,163,71,112,247,240,56,15,20,193,89,79,27,16,18,249,85,199,177,32,149,80,133,104}, {103,109,58,204,33,135,22,188,255,23,15,110,99,191,218,78,65,134,6,94,157,213,246,211,48,90,71,87,127,210,171,100,177,146,88,139,253,196,6,100,88,145,93,104,228,180,125,22,119,98,243,215,81,45,244,47,97,242,113,243,55,77,227,116,128,48,14,104,109,112,142,162,188,227,163,117,229,216,146,40,160,185,149,124,30,21,157,36,117,88,208,223,174,205,250,146,207,176,148,106,201,104,180,174,34,148,87,44,154,24,132,255,9,157,18,65,171,43,129,121,60,34,89,193,12,188,68,5,65,103,242,130,213,109,247,145,145,88,13,219,55,5,39,210,95,155,95,54,22,11,151,179,40,98,130,116,35,29,176,205,234,210,249,221,122,50,138,37,91,88,125,136,132,137,1,105,181,94,212,88,190,147,197,175,249,166,207,156,139,185,192,234,226,13,68,56,165,187,228,84,95,197,25,106,215,147,124,56,47,28,128,220,6,107,167,144,243,130,248,66,49,190,228,113,208,252,52,242,193,29,147,244,36,211,67,105,21,145,148,158,54,150,117,82,38,169,62,247,51,45,190,248,44,89,118,182,117,38,37,29,83,212,61,203,252,239,63,102,156,161,186,94,210,176,220,189,85,204,56,251,131,103,240,143,171,63,9,78,171,68,5,168,235,61,33,40,104,44,138,44,5,254,132,222,173,190,239,156,112,209,199,210,239,224,151,252,74,231,31,157,30,59,69,19,29,81,226,24,154,94,59,153,60,72,157,42,149,63,88,76,215,178,112,251,123,46,127,58,85,122,120,158,240,80,131,12,13,203,211,231,83,23,220,175,11,93,210,150,65,9,142,180,100,19,167,20,189,224,136,99,95,87,215,201,172,79,96,96,15,99,124,95,200,228,84,79,247,192,15,2,66,236,15,130,124,9,206,13,160,155,167,183,46,160,27,221,137,92,188,9,132,112,65,107,117,186,156,164,245,40,236,241,106,244,192,208,47,49,122,5,255,76,184,255,141,227,160,196,203,100,204,75,222,84,184,163,58,138,146,152,253,27,47,133,164,235,55,106,190,139,254,97,234,230,246,171,147,14,28,78,206,189,12,184,109,160,231,190,66,138,64,213,184,91,122,32,138,13,81,89,38,235,144,193,20,2,57,92,36,188,89,155,2,27,155,82,226,203,222,32,115,202,124,239,190,203,234,186,185,204,147,11,1,99,220,23,85,237,195,63,5,17,91,196,9,25,59,146,164,162,213,163,76,159,186,13,85,144,28,37,160,96,219,156,36,249,208,186,51,14,75,29,204,23,6,135,100,129,98,155,76,233,141,119,40,248,174,58,181,247,234,60,207,188,108,70,214,65,202,136,247,207,56,65,224,74,241,76,68,205,133,185,68,179,5,244,128,172,168,163,203,85,170,112,217,16,58,114,187,207,160,135,20,65,27,128,57,239,63,115,99,230,165,153,80,200,48,54,112,82,135,94,253,22,95,19,215,123,113,240,219,11,2,103,49,127,198,155,100,16,159,252,167,147,24,80,172,216,131,236,1,103,244,212,200,180,201,192,187,226,139,36,93,199,77,71,202,255,88,192,241,156,14,219,102,102,170,191,54,229,83,71,244,167,77,42,225,105,12,212,147,110,50,117,189,63,89,101,249,162,51,2,79,12,135,244,174,27,124,62,113,16,67,139,188,75,222,200,144,232,130,167,102,151,38,116,220,224,36,49,240,63,155,151,161,240,159,236,223,231,16,17,147,90,209,66,160,207,156,241,194,50,253,247,130,243,2,27,244,121,193,40,124,160,88,163,191,134,126,243,5,127,120,103,168,145,122,233,182,109,102,47,187,189,11,196,162,78,195,208,133,56,123,241,7,251,74,175,185,230,218,29,218,182,64,110,79,25,123,128,182,221,54,77,159,120,19,238,44,29,165,37,199,210,24,43,14,5,240,36,200,108,217,175,169,207,150,249,176,153,127,119,94,208,32,192,61,236,156,113,66,234,203,134,42,237,79,252,82,182,145,95,102,155,213,188,236,68,111,203,75,180,55,237,114,255,39,132,92,187,82,225,79,164,162,209,236,188,255,176,0,102,249,245,252,12,61,145,128,149,244,164,205,57,161,93,195,46,74,87,157,83,18,104,232,91,27,2,109,244,209,230,219,2,210,130,254,136,195,41,171,230,38,43,73,96,50,60,35,158,49,126,26,194,253,165,80,164,217,14,4,70,34,131,232,39,84,85,7,187,134,168,23,253,240,55,103,168,232,149,33,209,85,231,233,0,103,40,63,192,41,158,80,104,47,179,143,229,38,146,108,1,183,19,106,92,113,223,15,122,248,125,245,12,202,234,115,23,84,142,190,7,212,201,87,16,164,229,186,216,2,219,252,243,26,142,134,159,123,123,224,119,44,28,174,125,169,177,202,188,179,235,228,73,246,3,229,87,71,38,123,121,219,71,94,27,216,94,123,224,137,238,85,58,69,66,199,240,74,92,39,144,255,28,199,150,207,51,0,158,204,129,221,42,107,246,132,162,176,72,185,211,147,62,182,243,40,226,230,5,32,156,209,40,30,132,96,50,238,65,181,10,181,195,254,139,99,240,10,88,94,31,80,209,254,139,229,71,193,217,55,87,77,214,173,92,41,81,101,225,162,123,120,140,3,210,244,154,136,44,188,45,98,138,34,17,83,144,155,99,118,164,208,236,45,117,209,24,75,117,51,23,241,186,194,52,160,39,150,20,110,2,192,30,145,130,160,114,8,149,163,142,75,217,245,158,42,125,242,193,76,215,233,66,153,146,101,70,222,97,154,208,85,110,63,156,232,161,145,176,55,203,59,237,193,183,126,15,169,46,17,161,192,24,96,31,49,81,36,219,83,59,203,227,83,50,216,5,236,125,21,197,19,131,204,19,66,165,215,190,89,17,158,71,191,47,255,89,254,178,141,215,126,220,120,217,138,255,127,181,4,7,247,129,210,204,104,68,6,2,70,57}, {37,244,125,149,60,155,218,163,214,95,246,244,243,38,96,41,195,113,192,81,74,110,209,170,247,185,147,164,106,136,54,163,244,173,248,87,171,241,255,199,231,156,75,241,192,20,129,57,134,217,149,201,163,75,200,58,184,242,208,167,187,181,115,59,213,230,192,112,145,233,176,118,228,138,213,239,3,226,37,234,158,189,41,94,131,120,221,28,132,122,111,240,18,204,251,173,158,66,146,172,196,131,38,211,82,151,175,233,3,10,108,111,238,25,90,143,208,71,248,198,4,165,81,45,128,202,174,231,229,15,224,213,81,25,83,198,38,145,169,249,121,163,185,151,207,243,238,249,134,12,8,152,213,248,81,222,64,188,78,88,78,94,129,245,170,63,246,74,5,83,235,40,180,149,102,105,198,227,182,233,222,139,244,199,173,25,72,177,224,215,186,34,118,9,254,173,29,255,178,182,46,85,161,99,234,225,61,2,221,254,21,241,163,81,119,95,152,65,148,146,185,91,35,160,30,33,229,191,47,157,146,38,47,165,210,252,29,178,65,177,54,61,203,221,68,73,37,57,6,198,158,247,16,200,229,53,7,14,27,143,178,239,168,63,144,188,95,10,67,173,192,242,231,164,187,10,125,174,65,20,168,30,162,6,50,62,247,33,252,151,121,197,165,225,179,28,9,158,115,243,70,158,75,159,43,90,95,127,105,182,126,157,218,16,203,96,165,65,238,67,90,1,80,47,16,137,114,38,82,159,51,63,206,221,37,249,183,241,71,27,44,38,140,18,177,87,129,159,249,236,147,58,248,180,157,26,12,9,181,72,47,112,86,90,48,191,78,14,54,169,5,120,123,89,215,94,151,50,93,85,90,199,34,122,29,77,146,214,109,60,197,141,227,200,215,221,176,167,45,223,242,84,95,10,77,48,209,56,102,68,144,103,116,66,34,210,212,33,16,129,19,178,161,212,78,16,141,245,93,184,176,137,123,72,165,13,233,1,125,114,135,172,8,159,115,51,169,240,241,227,233,209,109,99,170,177,41,5,189,85,121,246,246,62,66,9,186,25,15,226,119,18,245,133,5,22,68,163,254,249,3,100,9,58,128,158,153,205,58,150,181,55,255,55,96,48,126,77,226,93,152,156,163,41,4,27,244,136,237,48,62,191,144,35,8,82,206,31,9,169,32,160,225,66,159,18,170,101,141,233,226,41,22,167,185,21,93,195,56,228,137,124,196,30,163,47,124,61,211,118,96,243,251,105,167,196,180,216,119,158,138,146,193,193,187,148,23,226,206,2,238,202,90,36,140,116,55,183,236,155,112,235,44,138,101,28,145,147,105,176,240,11,184,158,231,73,88,57,197,175,218,90,122,172,214,129,187,17,29,23,122,235,50,176,41,70,51,35,188,147,205,59,45,77,244,232,121,219,108,39,162,0,108,146,207,53,81,27,24,250,78,187,14,38,29,240,82,40,240,114,228,197,128,7,73,5,223,65,66,189,14,184,229,149,50,215,79,35,17,164,96,138,129,242,1,40,64,120,151,14,0,110,53,94,187,183,56,199,99,211,204,132,228,62,158,179,2,197,9,45,141,138,235,1,43,108,232,128,149,209,48,183,98,18,91,34,88,66,64,3,71,57,100,36,74,189,92,3,130,232,115,197,173,87,224,205,155,15,110,229,28,62,254,57,172,106,225,123,6,146,214,133,154,241,118,188,227,99,15,56,148,165,64,10,91,86,106,35,184,74,112,7,23,66,52,30,161,76,127,222,218,0,53,22,94,159,239,82,178,254,215,55,61,98,80,224,97,154,215,125,61,42,227,74,201,194,73,139,199,115,135,96,213,3,110,224,48,169,53,76,156,206,95,71,18,185,112,190,10,16,56,60,149,6,187,192,228,102,56,191,175,252,148,115,247,16,158,208,142,193,90,209,12,81,73,174,87,235,3,111,20,243,145,124,94,43,203,172,99,7,237,226,126,7,153,201,225,69,235,94,58,107,125,30,24,203,118,66,35,236,115,121,175,94,0,183,187,236,207,199,167,198,239,190,226,61,244,100,85,147,102,84,111,232,136,8,105,72,110,20,146,47,150,84,186,202,146,36,55,89,117,29,139,108,112,176,30,1,98,51,192,110,88,159,223,175,43,219,142,76,67,82,237,73,70,244,44,226,65,174,188,2,160,109,127,38,219,190,90,70,87,134,118,245,239,27,181,212,12,70,233,223,77,209,50,149,9,191,191,112,64,112,11,111,38,204,68,252,178,133,248,132,224,213,181,19,101,71,173,108,148,212,36,169,147,93,83,67,52,137,107,89,92,80,83,238,219,188,82,236,177,133,25,68,32,3,226,31,207,130,29,235,63,195,237,150,246,72,248,226,113,141,32,131,38,198,123,211,80,82,219,49,253,114,141,187,16,20,214,102,243,92,166,162,153,123,43,173,14,215,58,237,233,10,97,20,162,224,208,220,0,19,251,107,159,235,98,172,45,246,123,84,152,182,157,209,8,219,249,141,175,92,158,51,226,85,182,181,182,255,250,199,115,223,103,228,105,83,155,78,153,50,163,171,109,212,131,138,166,146,32,10,132,127,24,137,229,22,78,210,241,90,181,69,228,167,157,121,93,16,132,182,0,115,97,172,51,135,226,145,55,227,93,22,104,174,4,144,235,241,196,165,30,178,223,29,56,218,28,218,89,36,199,151,155,139,96,202,184,202,0,51,7,157,100,197,60,85,87,19,75,170,120,15,44,147,173,115,109,181,241,73,81,185,14,205,58,154,207,106,114,139,44,92,181,200,162,240,162,199,118,37,24,20,24,66,7,164,38,249,179,33,253,27,64,63,186,202,6,81,73,30,201,91,235,9,120,250,71,98,211,2,37,248,210,47,180,19,136,125,73,32,7,59,138,81,141,142,73,76,2,142,254,3,253,51,164,250,252,181,178,41,254,36,114,87,191,56,39,80,9,17,20,116,220,6,12,69,100,29,81,213}, {2,195,36,88,27,103,86,20,115,111,87,100,33,44,198,26,133,100,46,148,137,11,192,61,213,156,149,234,92,112,104,62,94,53,132,135,165,121,229,25,54,198,40,193,149,254,42,95,184,0,220,212,177,165,58,71,89,91,144,170,210,30,26,167,127,46,189,16,133,248,174,174,174,42,94,254,247,22,38,25,212,215,207,54,243,102,131,108,11,219,33,124,163,182,163,182,146,230,208,81,19,52,231,159,83,79,40,28,55,175,208,69,244,44,45,126,230,100,89,22,78,231,12,88,201,159,139,15,138,15,195,61,26,252,31,166,97,12,67,45,34,231,134,189,69,17,113,118,198,72,166,220,134,106,109,187,64,20,105,195,183,213,253,94,51,230,32,0,74,151,133,201,89,156,228,64,76,178,154,234,100,199,222,92,175,174,82,201,249,119,152,91,128,152,131,198,8,73,230,55,145,229,230,47,212,174,97,242,56,137,91,229,188,28,25,20,228,58,69,114,105,231,140,215,138,89,66,63,135,149,40,85,25,228,103,74,253,111,5,186,247,213,166,36,156,174,177,110,88,16,174,160,149,158,204,104,67,29,126,40,134,20,89,187,76,132,245,148,107,100,114,165,18,79,162,215,40,110,114,193,183,187,79,100,186,85,200,127,84,234,19,136,237,81,200,80,99,246,140,226,43,240,213,150,24,33,237,111,111,50,190,83,32,199,117,41,210,9,151,119,34,194,205,190,128,137,195,156,146,116,196,86,64,254,10,104,234,20,75,31,61,143,248,201,55,196,65,130,231,61,252,100,109,60,103,4,29,130,5,206,151,36,12,231,0,103,114,55,172,227,108,166,131,119,21,190,121,69,54,234,210,58,65,81,114,98,173,23,214,195,30,191,120,76,65,102,230,128,59,3,226,206,156,220,81,102,109,73,77,95,4,254,153,218,20,179,189,143,46,76,51,249,86,105,136,115,124,202,161,232,182,174,141,200,40,29,201,233,169,56,115,57,189,161,110,69,186,138,12,190,7,138,83,163,216,171,111,120,33,113,105,246,129,77,81,211,146,96,50,191,253,168,35,76,95,63,40,222,65,7,125,1,108,105,95,20,40,57,25,15,45,152,13,168,93,244,0,136,127,108,46,38,238,251,183,178,46,224,228,32,62,207,154,195,195,207,78,249,124,75,149,174,116,227,41,217,203,7,241,110,215,130,141,14,217,149,235,85,197,144,17,124,204,198,106,80,217,155,75,255,118,152,31,33,69,169,115,177,13,49,44,37,218,150,136,216,109,74,234,218,194,177,53,117,205,56,120,174,186,58,5,151,87,247,209,53,181,201,224,159,99,213,71,46,250,177,57,228,117,254,49,178,24,31,249,3,101,111,217,188,48,143,192,66,65,242,126,16,23,135,211,139,176,31,136,183,55,20,41,146,103,241,185,125,58,33,146,238,76,162,7,125,103,181,43,225,151,56,4,247,31,144,83,105,75,151,141,159,71,225,8,141,153,96,189,188,162,250,229,237,2,52,25,226,64,132,121,119,184,104,0,156,146,229,147,111,230,33,19,87,211,92,211,250,128,77,226,181,151,225,17,231,191,168,180,69,248,155,131,29,114,69,163,94,97,20,124,127,45,95,82,14,49,108,5,157,148,217,43,72,13,92,135,244,35,20,40,78,247,35,20,143,96,233,66,140,199,220,242,208,82,90,169,190,205,189,100,68,107,193,200,60,51,122,198,195,187,144,84,17,142,53,22,208,86,101,95,197,192,66,2,48,27,56,212,90,142,6,118,86,249,80,231,255,72,0,238,27,128,101,187,250,228,135,204,121,75,133,186,207,171,43,174,63,57,45,42,170,186,255,5,145,155,175,124,244,47,36,19,75,42,42,202,10,240,52,223,40,120,248,49,217,145,120,6,73,58,11,48,251,118,151,181,124,89,140,176,242,254,6,53,118,76,156,114,154,94,30,180,34,75,7,194,34,172,200,244,116,212,17,140,43,147,144,159,84,126,31,243,237,64,124,148,212,4,187,63,186,8,212,82,237,111,122,117,44,115,147,239,55,154,219,187,198,89,185,191,210,45,142,255,31,195,182,43,39,14,10,4,68,160,103,74,124,7,175,89,150,36,21,169,217,215,22,137,76,31,66,43,76,30,67,134,188,167,168,195,135,22,230,135,207,167,37,37,200,83,255,87,25,156,125,199,12,51,7,190,135,157,223,240,80,7,179,117,144,153,180,255,197,179,231,244,36,195,254,27,213,61,80,239,253,0,90,167,147,123,43,86,128,243,237,58,72,187,45,185,88,227,236,118,37,62,99,209,205,64,152,88,193,240,220,60,203,82,239,230,125,150,38,82,168,71,158,161,202,41,114,234,9,230,236,140,212,113,32,15,89,206,180,0,243,170,136,232,144,122,72,66,37,14,181,205,56,14,229,194,14,201,35,164,94,10,80,247,53,70,66,10,176,208,207,42,4,96,17,141,138,86,107,248,234,121,123,196,80,222,48,116,237,114,144,9,157,180,106,47,28,96,248,188,149,35,133,106,75,153,0,116,27,48,69,53,131,177,199,251,92,199,16,205,227,243,212,234,45,63,210,26,250,33,77,204,166,128,172,105,30,7,247,205,137,145,63,5,225,65,56,185,119,13,201,195,41,100,123,212,53,192,62,228,179,146,238,211,100,82,225,35,235,247,89,221,162,168,30,164,8,165,235,176,181,175,234,237,212,34,3,64,76,32,178,83,66,62,166,175,152,165,167,75,140,16,160,162,36,40,252,125,98,142,199,68,215,241,220,254,244,112,181,106,26,138,247,204,228,49,3,104,252,4,197,136,220,50,114,200,82,66,61,138,227,142,88,54,209,233,2,125,137,177,13,52,202,80,38,218,134,194,160,62,180,246,3,50,26,116,251,63,116,115,91,246,60,134,61,150,191,41,167,5,132,247,30,245,29,175,207,245,173,110,40,23,131,108,145,132,200,46,74,34,97}, } ; static void test_decode_857x5167_impl(long long impl) { unsigned char *x = test_decode_857x5167_x; unsigned char *s = test_decode_857x5167_s; unsigned char *x2 = test_decode_857x5167_x2; unsigned char *s2 = test_decode_857x5167_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_857x5167_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857x5167(impl); printf("decode_857x5167 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857x5167_implementation(impl),ntruprime_dispatch_decode_857x5167_compiler(impl)); } else { crypto_decode = ntruprime_decode_857x5167; printf("decode_857x5167 selected implementation %s compiler %s\n",ntruprime_decode_857x5167_implementation(),ntruprime_decode_857x5167_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_857x5167_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_857x5167_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_857x5167_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_857x5167_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_857x5167_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_857x5167_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_857x5167(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857x5167")) return; storage_decode_857x5167_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_857x5167_x = aligned(storage_decode_857x5167_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_857x5167_s = callocplus(crypto_decode_STRBYTES); test_decode_857x5167_s = aligned(storage_decode_857x5167_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_857x5167_x2 = callocplus(maxalloc); test_decode_857x5167_x2 = aligned(storage_decode_857x5167_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_857x5167_s2 = callocplus(maxalloc); test_decode_857x5167_s2 = aligned(storage_decode_857x5167_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_857x5167 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_857x5167();++impl) forked(test_decode_857x5167_impl,impl); ++test_decode_857x5167_x; ++test_decode_857x5167_s; ++test_decode_857x5167_x2; ++test_decode_857x5167_s2; } free(storage_decode_857x5167_s2); free(storage_decode_857x5167_x2); free(storage_decode_857x5167_s); free(storage_decode_857x5167_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_857xint16.c0000644000000000000000000014270314705505543022744 0ustar rootroot/* ----- decode/857xint16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_857xint16_checksums[] = { "f1975f4d5aa9b69374c1b286295468accd26c0ea75cf76cceafcdd4142155810", "5e1d78e028b3f6eaa1be2526e5f3165ebd75ab25ad76cd4df3bd2376e70ab631", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_857xint16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_857xint16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_857xint16_ITEMBYTES static void *storage_decode_857xint16_x; static unsigned char *test_decode_857xint16_x; static void *storage_decode_857xint16_s; static unsigned char *test_decode_857xint16_s; static void *storage_decode_857xint16_x2; static unsigned char *test_decode_857xint16_x2; static void *storage_decode_857xint16_s2; static unsigned char *test_decode_857xint16_s2; #define precomputed_decode_857xint16_NUM 4 static const uint16_t precomputed_decode_857xint16_x[precomputed_decode_857xint16_NUM][crypto_decode_ITEMS] = { {49650,16705,43988,1219,27760,35738,22685,33148,59491,62739,53439,979,58063,30414,53634,50308,38330,24025,4026,39179,1862,14044,5281,29087,50037,45369,17751,5506,21961,41675,24462,15257,34344,25291,25554,22708,30764,17276,64460,481,23532,10881,28375,58395,53198,63506,62373,16938,34592,47975,48557,59586,64983,53796,32906,14871,34997,57564,62799,55962,31999,57032,55118,20589,44437,20828,55414,42440,8892,26983,36091,35577,30982,51988,45187,54760,54041,61981,59550,26766,45517,48774,19374,22005,56573,14014,63526,52955,13346,47199,14971,34836,33976,26090,11170,33664,16016,49000,39130,11659,59089,28868,14607,42029,34084,52213,19532,50477,46638,23956,56488,52748,30026,44994,16941,45965,46353,63187,33653,6465,16305,55589,63643,49134,42922,9924,26273,30294,46690,42034,34418,64662,47310,62065,41101,33320,54729,30200,36305,51616,28929,30164,39743,49968,21186,25040,8505,55855,49274,3865,53205,47642,18671,47606,58320,51031,5277,8765,6051,7088,26978,33063,56305,52331,45056,780,24515,13686,37800,32823,21559,10085,15315,20504,52743,19322,29129,18604,41952,36455,37473,31079,3402,53420,44525,48348,56444,16421,34352,37039,18776,25157,13825,43218,63718,25658,5665,8571,19884,26641,12637,42540,18761,27491,47203,2988,46246,2532,46254,46684,38109,8545,11985,18258,64970,37684,50775,219,34112,12960,37621,12226,30528,50045,33981,30785,46863,15003,23100,38999,17478,30457,2457,28892,1830,63664,11561,62430,2947,40700,31350,43310,4145,50673,63829,23420,15333,56884,58911,64371,3207,7601,64370,25633,31905,31671,6732,1640,9197,56862,1697,30851,22272,8498,51706,56226,7439,8810,22204,65158,9097,17887,60665,40912,4800,303,58787,61950,51514,24659,48818,14012,21,13873,9349,53986,62268,34690,64487,64648,18542,46712,59794,63606,1681,5973,46773,37875,33720,11920,16203,29459,99,16269,57226,17789,28067,921,29877,52917,10032,11378,47352,56308,45702,11141,31735,22616,17607,57273,44832,11118,16505,3524,54779,26798,5264,23134,19206,18111,10049,17008,12004,6945,12450,8248,2112,28253,16037,58894,19981,50800,41492,60113,9995,9768,36334,23516,29451,10650,58178,58863,43376,39186,26921,29691,46844,19597,57205,29308,16627,37885,65177,27079,14265,5804,53710,15620,29827,60483,1840,24086,30045,35932,46280,39395,6393,40209,10454,43792,15757,23913,13404,33318,17025,2461,59393,17640,29731,57778,11149,50876,64564,49239,53967,45932,4166,6505,49813,22355,9506,6929,62558,41504,44391,31514,59221,48442,10117,61632,40212,60422,17052,44950,47378,17635,46688,35078,31286,23164,48721,32007,15136,942,21768,28299,50124,65135,3205,53435,28806,342,3946,30774,59937,8198,960,13633,20977,36438,24667,18132,56406,44949,20331,12259,39878,51648,64213,37218,53381,14160,10222,29652,23906,6911,29264,24373,42110,37575,62331,42221,28967,46111,31071,57809,13823,8949,23632,5848,59181,29584,30320,52201,58089,19975,53978,11607,18106,31549,19421,13979,27659,3883,45848,18870,60062,13642,1081,31045,11384,17340,48706,23538,3304,50464,51541,14397,60299,15235,25685,17006,54682,10606,29618,41967,43240,40601,65118,39465,23116,16060,23851,57482,6727,20110,5531,35158,14403,60420,58947,60311,38008,9240,14487,32250,7808,14696,27776,65233,11035,55667,14842,50695,40723,48745,64898,32305,56300,25234,27843,28314,59539,41918,27730,11124,51143,62188,51138,10991,53763,21490,17237,57947,9345,25876,33399,60398,43697,39152,40321,60107,27356,61738,40815,13533,24788,61124,57072,37470,42129,51203,1398,62304,3093,23498,10093,34272,55818,36693,20937,16072,23759,21343,38490,4784,46117,51509,32034,4505,60423,61056,51545,13023,30120,11933,1068,27795,10485,9731,44716,8561,12211,23702,56887,22794,36866,4811,12870,14061,13090,44319,12383,43100,45201,58003,13542,416,6557,16086,65371,40736,42244,52144,7476,37942,23438,52268,1263,30703,39012,27864,53203,50194,25621,10614,33369,45545,64439,45833,64229,3093,52737,25637,14000,20136,8592,47873,62838,20215,34989,57809,5034,43293,45422,26091,56189,22312,54327,58892,17085,12184,26426,8786,59362,22811,44430,26388,12958,34959,32094,35272,7310,38982,31459,40067,44865,25877,6057,39741,17529,3322,63958,56162,63504,21108,29731,44350,41669,27091,55558,22465,29026,36808,8378,34759,38971,31632,34381,2746,28032,43974,38241,8647,61752,41500,40967,26240,55395,40413,55116,55539,26417,57177,48434,17721,5488,13508,31838,4124,31776,22915,48606,39775,54032,6046,28901,23738,45382,16460,2739,47084,50222,58300,23147,55688,24398,2664,38367,40969,17665,29410,17706,42005,12624,50588,12735,63299,9466,60097,20475,64165,36602,1595,52010,62994,2786,19527,15174,19523,16156,22406,7480,12517,7804,37967,13625,54207,12061,57457,34417,55963,6345,25092,9897,49153,31808,30818,38074,2574,37931,14953,61743,32951,42338,1763,39129,14820,64748,13707,14666,39223,50594,2713,54495,40388,2730,28111,12839,48449,41091,25898,7523,29159,1962,50652,20975,44723,8828,22129,5902,23313,38880,41656,44752,16426,24219,6704,24559,27293,64901,14386,21519,53408,8795,9854,43738,30651,54269,18842,61050,41997,7839,49553,216,59180,13453,52867,60181,63244,52629,21732,55252,64743,6920,23317,64680,63015,23862,39132,15740,37272,1317,19950,1961,39922,7413}, {7371,39169,41408,38144,24868,56418,3906,11662,50751,4668,22821,28163,19358,22328,13029,21747,1507,47114,38096,42953,36982,39288,28302,59197,15920,50708,46483,39496,54199,11341,21503,40523,27487,65198,23655,55186,27593,58448,49898,58876,41957,60799,23490,52717,52761,42085,26109,37081,50851,43194,33261,30217,55826,30545,6159,5948,31111,27031,35680,59622,47843,16865,337,33941,64585,2252,54854,26590,44509,47371,50511,45923,54295,42893,37999,28402,9688,6069,14797,20042,14617,16869,51271,48170,52005,62715,65316,668,5612,5939,44679,7001,1758,50497,42518,56098,49820,33483,38301,47529,49768,28860,21028,36256,59886,62274,32533,20706,31830,57800,33220,10801,8917,61211,16346,29486,7783,43891,1745,62125,33374,7675,30734,2669,3468,33438,13333,54522,8721,50435,59842,48953,12181,47217,30600,36327,24120,721,30086,30655,37388,62056,38516,30208,6836,61093,55407,46604,35657,9249,59854,21390,3288,59984,60060,7272,36705,3187,7372,51055,32244,2316,60246,29126,17757,133,4754,10562,19587,6260,12400,6489,54726,14921,44377,5722,32225,60628,21009,16038,47925,30774,57488,55155,22748,10032,8307,7036,50102,20303,65464,46598,61177,15113,40568,14690,26880,25687,59466,55157,9262,17307,60623,31886,62666,28515,32778,48702,5857,11490,54455,58531,63712,56093,676,18811,57716,23718,19800,2099,58704,11224,17009,19629,62775,2490,55979,43423,64039,5173,59255,639,10906,36490,52395,53349,5215,23624,55938,4373,52394,49991,15673,9207,42536,16105,40770,24657,50250,36903,47294,62661,59171,17880,16273,24555,58534,12338,31761,10405,10088,19777,52005,10108,40933,11999,31710,54715,6692,20783,53331,1830,3490,38478,52003,42448,61733,56020,21052,60375,49098,34583,17702,63522,27825,51893,65273,2205,41165,36636,46754,9684,63629,52929,18621,57997,4235,4484,7019,62025,18296,13880,58,64835,36890,32963,62240,64508,6623,27779,47049,20362,45112,63849,51078,46481,9994,64236,60395,51366,6352,50697,48743,50520,57819,25598,58164,53952,42402,17577,61813,40808,45011,51423,63951,20907,3523,41437,30885,1558,60148,56262,56014,39649,40271,53736,29927,13818,9007,23230,805,12691,14187,35259,13357,1639,64108,4666,18058,47766,62384,44754,41194,46042,22298,15362,22719,42852,36941,42471,11386,14363,48837,51873,57741,61641,377,61804,18762,39516,22452,43514,21160,22260,29129,61570,62911,3499,51413,28526,3105,30063,24501,9002,50614,36304,18860,35513,19324,42565,3715,36290,38488,31988,15449,10013,43077,22466,41630,26801,26697,12597,54585,5538,59510,27862,11556,10903,13933,30299,39141,49553,32728,11738,64697,11848,40633,6663,59123,7812,21916,36053,1307,41650,37258,13928,50915,22314,61362,55589,1064,35423,24862,58400,48845,19442,25958,6280,11109,34164,3827,36280,28922,46344,43024,31085,7284,12881,55818,1222,31774,60570,57135,45631,19176,60991,37237,6345,5927,16305,36644,2514,13483,50625,12717,5554,51925,10567,7788,60150,51578,22175,49865,10329,57042,34502,49723,37049,32797,13703,46705,31395,50039,34730,37656,38863,21205,22777,19513,37921,43272,43692,60627,53768,36822,28733,41951,8029,64,38168,57120,50303,59020,18860,49972,33105,56197,36537,21090,16235,62478,9830,57326,30610,12704,56781,3188,13882,39953,47893,26855,54123,20158,43665,6477,9529,7061,10468,55970,7277,6577,42124,39401,11059,22045,40158,45816,58218,25727,33761,1828,51423,44132,13160,6650,22069,40946,54690,6133,53396,29968,55069,425,52739,50558,47508,48210,13769,43511,47372,19873,37445,43622,10279,55800,16765,48441,33424,56801,13474,43772,60418,8348,64413,57718,53131,42738,29976,39552,9624,45041,31457,55515,41304,22464,60680,4860,32098,10893,55628,56347,54462,9186,42221,35976,22046,57630,34033,28048,23729,44953,42119,41640,7027,42958,9866,41339,51024,39030,61320,8550,48760,33825,48209,42356,16480,45734,47230,61481,23329,37093,39405,20463,58153,65283,13583,20786,43648,62540,13564,45807,41285,60994,29122,9936,46406,57890,38672,21129,6763,26243,3878,21550,40005,61408,3556,15979,25247,49202,44099,34903,9408,1456,24903,37811,59013,13472,1358,43699,56449,28750,32087,54662,42109,34377,924,53966,60027,3629,53229,57991,13880,8346,26079,40359,46202,27039,28817,156,20366,58925,47098,48307,33204,51599,50076,48752,37532,44372,57713,17334,34049,15840,54442,19646,53864,55142,50658,37871,9200,58968,32379,58015,14416,35197,5972,54532,49333,37242,59933,13045,13456,64590,57492,2811,4146,41358,39838,25876,3382,5512,6829,60070,36056,29371,64120,50087,50002,51285,25082,22019,65035,61962,15894,61898,27912,3391,33358,36377,38768,52926,62167,48495,18092,19127,1004,39323,60899,6889,12379,62688,1883,6723,35896,54431,6821,53423,11851,18468,65091,46068,32245,1336,22077,10688,23863,62049,29039,44608,23311,175,36445,44825,15809,15985,51598,41487,32045,27745,32734,56245,33031,12089,13882,28804,49339,45519,45195,14292,52635,51282,60904,64129,55061,21034,14673,53797,63740,30964,43719,32913,14567,62001,64697,49402,15516,24234,43373,56471,41528,18154,60096,11961,61485,21907,33123,55846,26774,12721,32799,757,63918,25707,16221,30357,32164,52259,53914,35086,59056,8912,15321,37586,58411,11169,32429,28665,54419,45276,45167,12129,28818,9900,40954,39135,18147,17862}, {40968,19742,25439,42073,61096,46376,12009,40785,61946,57314,6274,8291,9162,36813,32406,49746,34673,30501,17689,21665,6593,42061,25387,33939,46164,6592,18422,38637,62322,30512,50647,60043,46844,49448,10043,10963,30201,28733,57115,48425,19253,7748,45367,7756,40806,46652,40126,56625,11758,2105,5219,15579,9052,3495,6355,21953,55912,1,49556,65402,17240,18356,49008,13766,20540,53815,15694,31851,32799,27157,39022,50352,125,3252,16106,24202,20484,6734,20752,25607,15701,47107,10607,41927,21161,28144,60938,47632,41936,16145,6823,53316,36203,14087,51820,24565,53655,54118,21636,56522,11371,2216,41463,32059,14517,52133,6701,22112,8120,59157,54408,769,59397,2904,24521,57962,29985,21070,39126,18560,54680,45235,63156,46846,41787,31380,61009,53685,53965,30059,9530,26207,21633,42622,54876,28886,28723,46546,47975,42715,39007,19261,52807,63911,39372,45380,34953,5676,10572,37047,61058,28444,14342,18863,59711,27060,61425,43972,59220,44857,64111,8922,26855,42458,27867,49379,55686,18381,15852,572,40431,35654,36529,44763,9846,561,12572,51424,22266,1099,38221,52501,27888,13193,31343,8368,21824,53602,30523,43719,33168,14806,33063,10494,22609,52496,23687,2645,8600,28206,38476,61827,20688,60892,24801,13443,30337,28784,28706,21728,25983,52893,60975,8463,39426,27582,43364,32275,16369,50428,3244,43173,46009,38255,62977,14129,36549,64972,7760,1052,16865,45489,46816,41155,50100,49748,58248,19895,65233,34376,43056,54252,30744,44176,21977,1950,6025,24870,381,34770,18331,34006,43711,26910,2319,50682,27774,56715,16678,36262,24544,10437,20768,57157,48987,26352,54752,55441,24309,21012,21634,47409,21647,5444,62154,42596,10811,13340,25311,48425,16333,52612,56282,3635,11366,18584,21915,53958,3167,14128,46043,41154,27471,64225,15832,41991,43174,15608,24496,57271,59675,30930,30171,41713,59099,55439,4978,22149,6076,43468,63863,11493,65411,10029,45686,7665,34568,14556,45685,50691,7720,50048,60680,7443,64222,5469,2884,42215,47317,56203,39921,20937,14373,38760,6932,47628,47866,9551,36764,37440,43776,11705,9427,16938,3855,38317,6620,2437,50987,51887,28300,8365,47422,58292,12207,54091,15554,39415,55774,11148,33665,28239,44112,15171,50020,16398,749,8415,25654,36458,43088,50318,30513,56177,56359,13113,4067,57977,63003,59829,35746,7460,17139,10132,61348,50135,36973,63797,33196,35528,14548,4162,11701,16180,27502,625,13110,50493,53163,37224,24254,302,62865,34760,60268,40861,50143,45084,895,10186,14773,19610,50372,21260,63109,31262,55655,3666,27606,40887,33014,19700,19361,24180,51994,48945,46482,4770,31255,27942,40712,43829,53822,58655,14353,29719,55386,22938,46678,17838,36539,38400,43807,51685,35064,57918,27842,6383,20149,51622,39775,42643,59134,34879,20070,48817,35112,49708,43871,57590,53344,36393,26353,6914,39179,51885,36684,60937,27742,25437,16756,48785,18229,27061,25230,51003,54381,18229,46506,20953,26111,24767,32672,13834,25555,47535,24589,33113,51091,12277,50308,16258,45462,4349,18348,20276,63323,39014,14107,54332,19058,65293,38272,20101,8957,60649,18943,45620,30271,1079,58650,43522,56137,32134,12818,23152,4865,47122,23851,10373,26330,23690,47539,18283,4874,25878,50760,29684,10973,50532,34795,51546,38655,25918,6940,17010,15277,44804,17961,46613,18003,26770,13617,9738,55315,62136,40364,29598,47499,62409,39280,20608,45816,16783,42714,44537,20987,30925,28402,27263,53155,50487,1078,14222,35987,37040,28940,9646,16998,37348,65141,36549,9407,9182,17717,29532,29967,24427,28636,40437,50839,30961,60357,15097,2305,51694,8995,30091,29655,51269,14726,60096,31722,27913,54723,33851,8352,59197,50828,64091,46103,3382,25521,58635,1361,6051,39215,328,59554,10534,45520,46172,40230,39042,45973,320,41869,60778,14183,61946,11652,58599,7402,48310,3885,2339,47110,19260,14634,62742,25367,52170,5083,38395,40560,54646,47511,45808,59486,57279,5435,61061,64831,38365,17685,22348,48225,13504,24595,18619,53518,47807,30774,33226,36287,24047,36860,13281,34258,22817,42790,54762,60650,53670,43552,51676,28636,33707,54763,43617,38533,54507,42286,242,3674,15148,43204,34787,5632,17823,18807,11981,41617,40168,22280,56454,25304,30633,27443,31457,33456,17092,55390,46057,40055,32187,27087,34416,8414,7728,11668,8353,4187,54567,5918,54500,15069,29446,25424,1438,60211,1012,40817,13171,63961,16658,35056,47177,13211,22312,65532,1478,10051,16642,4399,14698,8318,55138,55632,21914,36913,36535,36814,50829,44443,25553,24434,56646,13213,3726,7103,35716,5869,11283,9493,30203,41953,43622,19887,3690,16046,14231,65138,62984,54655,55577,38992,25298,58874,38400,41880,31191,49634,42438,1052,16372,54283,43477,10913,21683,34608,49044,7895,61495,27296,11720,41760,7903,42305,54159,55229,36300,21231,63380,18737,65117,38424,591,10390,27960,49879,29945,18443,2437,41671,47404,5464,37485,29112,30337,18025,27173,18772,64303,53979,58674,54517,59328,13964,2864,16204,25157,61689,29411,14990,9059,55354,60615,64002,17789,5283,18579,29666,22171,53299,46531,829,12263,9348,8338,36978,46007,50574,58144,57448,54610,54731,55967,52114,38726,8591,46079,16545,55532,55855,45988,58333,29555,31703,63707,8386,51478,24110,21390,33657,30842,13972}, {995,17760,6952,54314,19428,17266,63692,11086,58101,49608,58121,43107,53940,51222,56370,61387,43713,56713,4379,12078,6925,18397,13137,47886,41322,9119,16783,45983,20611,8626,19021,50072,61891,41719,21134,24851,35162,28085,57028,49859,3732,40957,59938,11919,18387,58896,14729,45261,62934,7308,24191,16326,78,64261,50914,22185,31029,39913,51772,40025,7113,192,20590,8115,64200,64262,34890,26741,30051,49426,57585,10353,59193,8132,9226,58611,45587,8687,7139,30333,10694,47698,13910,25971,27317,19600,56974,22975,40354,58028,44649,23339,61838,28529,18704,44192,14659,14998,8952,13195,50943,11456,14272,3973,22997,35300,16322,58673,6342,48420,14358,29376,53349,44436,41431,50475,2926,2971,10745,42285,33547,15644,47543,30184,35580,26565,758,44400,53129,60194,63052,189,32238,39851,52382,264,20790,55652,13967,38363,43758,39612,37048,3338,37649,43774,9127,64142,26658,55134,27295,64246,17827,63514,23376,26694,40744,26807,44240,39873,53980,55705,29378,47520,2205,38678,37897,43886,24876,170,33636,42009,31263,21653,63968,55803,10265,37090,9270,60303,22905,43211,36416,29068,48317,45603,10660,25948,59046,33547,4408,21184,42221,57784,51237,11759,53468,2026,53392,50548,56326,38309,5543,10514,53694,9218,231,15410,26688,22816,34748,41841,64518,50586,18585,13926,22191,41374,33033,39846,29819,9807,7281,54160,14634,3729,7465,29451,23414,19979,17384,44203,65208,43332,7095,59373,34693,54740,15019,18275,23157,11443,23786,56050,33774,57144,60854,21139,25048,10396,18815,32058,19162,2276,14405,43160,52544,60578,18653,22431,15658,57706,31073,6664,975,23213,37055,45145,19898,4207,47059,1922,38488,24812,13735,22809,13202,47682,1372,5373,55410,22129,44974,30511,51328,58529,63177,20255,34818,1643,9689,20059,12140,50611,18383,43698,39578,44463,40237,60771,36480,29583,10133,57846,25913,15777,3774,50475,63170,61287,23535,5172,23634,8977,11530,21606,59458,48577,17675,57020,51489,1882,16166,30539,57446,30620,57722,17323,45322,60,12733,27575,12331,11032,29425,29567,56567,14365,45633,31161,25500,11217,16881,65318,42393,39073,54168,16191,24644,57162,3105,50031,26407,34860,52918,25512,49419,3074,62600,60001,48738,40753,24286,28911,44193,1103,47821,63110,27262,16870,36609,18335,43751,28281,11862,26066,42723,22984,45631,19498,21280,57357,27120,57239,9783,38729,47919,13769,18245,1121,27062,10267,50240,9819,432,43805,22588,11838,11810,10444,61224,16817,23958,17464,54597,17002,53770,6334,5989,17030,24040,32116,43562,3854,34806,8536,34894,59079,34616,62798,49446,58959,27556,23257,54250,17422,25076,43157,24917,6828,29768,56019,37237,63747,4397,41653,48550,29997,42480,21131,32505,36615,24363,9427,65020,7880,45244,36629,23739,54029,13483,11108,26560,1204,46117,135,32839,43915,58760,22224,34875,33026,19982,16250,51852,54627,33751,44036,30850,24710,23398,46887,58163,19467,36765,47064,55663,58738,37523,58604,59338,34721,11079,17491,63107,49567,3440,60225,16036,11532,29370,56526,14675,48927,58897,18256,11184,24762,29231,8732,5107,65032,34354,38135,48884,16996,54052,35117,4710,60111,58194,26137,42347,5518,53186,32706,22968,22135,58084,26269,9305,54015,33004,18237,41463,15865,46544,18848,5835,41334,7525,55816,3179,25427,64008,6789,27174,65112,35154,17816,15647,16660,110,31505,48679,32983,24465,40376,16590,5921,40753,62661,19957,30502,19211,48041,60786,51868,21151,31693,30450,37865,43503,46920,39027,29527,24891,22603,23148,47206,52966,53762,37461,35004,53067,7474,36699,21481,57404,28746,26674,49405,30668,58093,18390,42492,29221,33118,8970,52918,35366,50825,6547,37310,27427,10053,64150,49675,6851,22067,54319,54571,20172,54907,42369,16773,54804,23816,55507,64540,12664,47936,37334,17025,2531,30174,18917,39073,34928,13826,1271,37952,6018,40285,18714,5593,16503,58487,52577,18925,47806,36007,20559,45036,27218,12083,22366,7439,28524,10966,41429,17993,2779,51018,22141,54939,58298,38787,10017,63110,55422,61406,27777,64974,36596,16848,32221,42549,48445,17622,45047,14880,37844,55518,10363,28202,9620,16902,30163,5132,3731,23370,45009,52698,27138,63444,6517,14701,10855,57252,13759,58396,7699,36410,18286,3609,57477,55412,17350,38419,9328,54397,44165,60213,43643,36671,50345,7965,18614,54266,55961,61897,19044,13290,1915,61160,32761,58351,55375,40522,44604,24636,48197,13920,61445,24888,33545,2652,28618,44677,65113,11541,48459,43639,50064,49249,30026,59353,29403,45226,52691,6780,5506,30995,47337,28547,53737,21791,1040,10014,5172,65095,27861,55916,65031,63697,48801,33417,27697,10750,18584,34386,34349,58634,63253,33844,26178,31518,38044,7834,56939,46,39524,27516,50638,38803,62373,13165,60942,60181,40526,49668,58070,10129,41122,58665,52230,45382,64863,49466,36683,19256,61113,30629,2816,7635,28478,9749,38849,33352,40518,6995,52552,43584,46970,15432,14617,59107,3445,26569,22169,40484,39664,64922,13599,58974,52701,5006,6920,57320,1683,12316,48733,48726,46906,53358,59128,59549,24886,13822,15039,21035,48761,46284,10181,24199,38547,30839,36719,11029,55048,33372,20058,38326,61915,39994,57845,9900,22727,19852,36175,61634,19820,43610,17712,13810,13147,46878,41131,52179,1307,37675,49854,56403,441,51728,18723}, } ; static const unsigned char precomputed_decode_857xint16_s[precomputed_decode_857xint16_NUM][crypto_decode_STRBYTES] = { {242,193,65,65,212,171,195,4,112,108,154,139,157,88,124,129,99,232,19,245,191,208,211,3,207,226,206,118,130,209,132,196,186,149,217,93,186,15,11,153,70,7,220,54,161,20,159,113,117,195,57,177,87,69,130,21,201,85,203,162,142,95,153,59,40,134,203,98,210,99,180,88,44,120,124,67,204,251,225,1,236,91,129,42,215,110,27,228,206,207,18,248,165,243,42,66,32,135,103,187,173,189,194,232,215,253,36,210,138,128,23,58,181,136,220,224,79,245,154,218,255,124,200,222,78,215,109,80,149,173,92,81,118,216,200,165,188,34,103,105,251,140,249,138,6,121,20,203,131,176,232,213,25,211,29,242,158,232,142,104,205,177,134,190,174,75,245,85,253,220,190,54,38,248,219,206,34,52,95,184,123,58,20,136,184,132,234,101,162,43,128,131,144,62,104,191,218,152,139,45,209,230,196,112,15,57,45,164,36,133,245,203,76,76,45,197,46,182,148,93,168,220,12,206,74,117,194,175,45,66,141,179,17,181,211,246,117,131,65,25,177,63,37,217,155,248,238,191,170,167,196,38,161,102,86,118,98,182,50,164,114,134,150,252,206,184,113,242,141,160,40,130,201,213,248,117,209,141,160,201,1,113,212,117,63,155,48,195,194,82,208,97,57,33,47,218,122,192,25,15,213,207,26,186,239,72,246,185,208,227,87,199,157,20,61,34,163,23,176,27,98,105,39,129,241,219,107,204,0,176,12,3,195,95,118,53,168,147,55,128,55,84,101,39,211,59,24,80,7,206,122,75,201,113,172,72,224,163,103,142,97,146,103,121,74,13,172,208,237,173,220,188,124,220,37,64,48,134,175,144,88,73,69,98,1,54,210,168,230,248,58,100,33,22,123,33,172,77,17,104,93,49,44,166,73,73,99,107,99,184,172,11,166,180,228,9,174,180,92,182,221,148,97,33,209,46,82,71,202,253,52,147,87,198,219,0,64,133,160,50,245,146,194,47,64,119,125,195,189,132,65,120,15,183,155,58,60,90,87,152,70,68,249,118,153,9,220,112,38,7,176,248,41,45,222,243,131,11,252,158,118,122,46,169,49,16,241,197,85,249,124,91,229,59,52,222,31,230,115,251,135,12,177,29,114,251,33,100,161,124,183,123,76,26,104,6,237,35,30,222,161,6,131,120,0,87,50,33,250,201,162,219,15,29,106,34,188,86,134,254,137,35,223,69,249,236,208,159,192,18,47,1,163,229,254,241,58,201,83,96,178,190,188,54,21,0,49,54,133,36,226,210,60,243,130,135,231,251,136,252,110,72,120,182,146,233,118,248,145,6,85,23,181,182,243,147,184,131,144,46,75,63,19,115,99,0,141,63,138,223,125,69,163,109,153,3,181,116,181,206,48,39,114,44,248,184,244,219,134,178,133,43,247,123,88,88,199,68,185,223,32,175,110,43,121,64,196,13,251,213,174,104,144,20,94,90,6,75,191,70,65,39,112,66,228,46,33,27,162,48,56,32,64,8,93,110,165,62,14,230,13,78,112,198,20,162,209,234,11,39,40,38,238,141,220,91,11,115,154,41,66,227,239,229,112,169,18,153,41,105,251,115,252,182,141,76,117,223,124,114,243,64,253,147,153,254,199,105,185,55,172,22,206,209,4,61,131,116,67,236,48,7,22,94,93,117,92,140,200,180,227,153,249,24,17,157,214,40,16,171,141,61,105,93,92,52,38,130,129,66,157,9,1,232,232,68,35,116,178,225,141,43,188,198,52,252,87,192,207,210,108,179,70,16,105,25,149,194,83,87,34,37,17,27,94,244,32,162,103,173,26,123,85,231,58,189,133,39,192,240,20,157,6,236,156,66,150,175,18,185,227,68,96,182,6,137,54,122,124,90,81,190,7,125,32,59,174,3,8,85,139,110,204,195,111,254,133,12,187,208,134,112,86,1,106,15,54,120,33,234,6,32,192,3,65,53,241,81,86,142,91,96,212,70,86,220,149,175,107,79,227,47,198,155,192,201,213,250,98,145,133,208,80,55,238,39,212,115,98,93,255,26,80,114,53,95,126,164,199,146,123,243,237,164,39,113,31,180,95,121,209,225,255,53,245,34,80,92,216,22,45,231,144,115,112,118,233,203,233,226,7,78,218,210,87,45,186,70,61,123,221,75,155,54,11,108,43,15,24,179,182,73,158,234,74,53,57,4,69,121,120,44,188,67,66,190,242,91,232,12,32,197,85,201,61,56,139,235,131,59,85,100,110,66,154,213,110,41,178,115,239,163,232,168,153,158,94,254,41,154,76,90,188,62,43,93,138,224,71,26,142,78,155,21,86,137,67,56,4,236,67,230,151,235,120,148,24,36,151,56,250,125,128,30,104,57,128,108,209,254,27,43,115,217,250,57,7,198,19,159,105,190,130,253,49,126,236,219,146,98,195,108,154,110,147,232,190,163,82,108,116,43,199,199,236,242,194,199,239,42,3,210,242,83,85,67,91,226,129,36,20,101,119,130,238,235,177,170,240,152,129,157,203,234,220,106,42,241,111,159,221,52,212,96,196,238,240,222,94,146,145,164,3,200,118,5,96,243,21,12,202,91,109,39,224,133,10,218,85,143,201,81,200,62,207,92,95,83,90,150,176,18,37,180,53,201,34,125,153,17,7,236,128,238,89,201,223,50,168,117,157,46,44,4,147,108,245,40,3,38,172,174,113,33,179,47,150,92,55,222,10,89,2,144,203,18,70,50,237,54,34,51,31,173,95,48,92,168,145,176,147,226,230,52,160,1,157,25,214,62,91,255,32,159,4,165,176,203,52,29,54,148,142,91,44,204,239,4,239,119,100,152,216,108,211,207,18,196,21,100,118,41,89,130,233,177,183,251,9,179,229,250,21,12,1,206,37,100,176,54,168,78,144,33,1,187,118,245,247,78,173,136,209,225,170,19,29,169,110,177,235,101,125,219,40,87,55,212,12,230,189,66,152,47,58,103,82,34,226,231,27,89,142,173,20,103,158,50,143,136,94,125,200,137,142,28,70,152,227,122,131,156,65,175,21,101,169,23,61,155,121,68,250,12,214,249,98,219,16,248,116,82,35,116,62,173,197,162,211,105,6,217,193,87,98,113,200,143,186,32,199,135,59,152,144,123,77,134,186,10,128,109,198,171,97,149,199,33,56,241,28,162,7,160,128,102,99,216,221,157,76,215,243,216,49,103,89,223,50,189,57,69,112,21,196,52,94,124,28,16,32,124,131,89,222,189,95,155,16,211,158,23,229,112,186,92,70,177,76,64,179,10,236,183,46,196,188,227,107,90,136,217,78,95,104,10,223,149,9,160,1,69,226,114,42,69,21,164,80,49,156,197,191,49,67,247,250,36,193,234,251,79,165,250,250,142,59,6,42,203,18,246,226,10,71,76,70,59,67,76,28,63,134,87,56,29,229,48,124,30,79,148,57,53,191,211,29,47,113,224,113,134,155,218,201,24,4,98,169,38,1,192,64,124,98,120,186,148,14,10,43,148,105,58,47,241,183,128,98,165,227,6,217,152,228,57,236,252,139,53,74,57,55,153,162,197,153,10,223,212,196,157,170,10,207,109,39,50,65,189,131,160,42,101,99,29,231,113,170,7,220,197,239,81,179,174,124,34,113,86,14,23,17,91,224,151,184,162,208,174,42,64,155,94,48,26,239,95,157,106,133,253,50,56,15,84,160,208,91,34,126,38,218,170,187,119,253,211,154,73,122,238,13,164,159,30,145,193,216,0,44,231,141,52,131,206,21,235,12,247,149,205,228,84,212,215,231,252,8,27,21,91,168,252,39,246,54,93,220,152,124,61,152,145,37,5,238,77,169,7,242,155,245,28}, {203,28,1,153,192,161,0,149,36,97,98,220,66,15,142,45,63,198,60,18,37,89,3,110,158,75,56,87,229,50,243,84,227,5,10,184,208,148,201,167,118,144,120,153,142,110,61,231,48,62,20,198,147,181,72,154,183,211,77,44,255,83,75,158,95,107,174,254,103,92,146,215,201,107,80,228,234,194,252,229,229,163,127,237,194,91,237,205,25,206,101,164,253,101,217,144,163,198,186,168,237,129,9,118,18,218,81,119,15,24,60,23,135,121,151,105,96,139,230,232,227,186,225,65,81,1,149,132,73,252,204,8,70,214,222,103,221,173,11,185,79,197,99,179,23,212,141,167,111,148,242,110,216,37,181,23,205,57,74,78,25,57,229,65,71,200,42,188,37,203,251,244,36,255,156,2,236,21,51,23,135,174,89,27,222,6,65,197,22,166,34,219,156,194,203,130,157,149,169,185,104,194,188,112,36,82,160,141,238,233,66,243,21,127,226,80,86,124,200,225,196,129,49,42,213,34,27,239,218,63,46,115,103,30,115,171,209,6,173,242,94,130,251,29,14,120,109,10,140,13,158,130,21,52,250,212,17,34,3,197,194,233,57,191,149,47,113,184,136,119,231,141,56,94,209,2,134,117,191,119,12,146,104,242,116,150,0,118,180,26,165,238,111,216,12,182,73,139,33,36,206,233,142,83,216,12,80,234,156,234,104,28,97,143,115,12,204,28,111,199,244,125,12,9,86,235,198,113,93,69,133,0,146,18,66,41,131,76,116,24,112,48,89,25,198,213,73,58,89,173,90,22,225,125,212,236,17,82,166,62,53,187,54,120,144,224,115,215,220,88,48,39,115,32,124,27,182,195,79,79,184,255,6,182,249,238,9,59,120,158,98,57,0,105,87,100,74,232,117,215,46,36,155,67,207,236,142,124,202,244,99,111,10,128,62,190,225,22,226,44,183,212,163,228,224,248,29,219,164,2,123,73,116,225,166,92,88,77,51,8,80,229,216,43,113,66,173,76,55,245,186,9,171,218,159,169,39,250,53,20,119,231,127,2,154,42,138,142,171,204,101,208,95,20,72,92,130,218,21,17,170,204,71,195,57,61,247,35,40,166,233,62,66,159,81,96,74,196,39,144,190,184,197,244,35,231,216,69,145,63,235,95,166,228,50,48,17,124,165,40,104,39,65,77,37,203,124,39,229,159,223,46,222,123,187,213,36,26,47,81,83,208,38,7,162,13,78,150,35,203,208,165,37,241,212,218,60,82,215,235,202,191,23,135,38,69,34,248,177,108,181,202,249,254,157,8,205,160,28,143,162,182,212,37,141,248,193,206,189,72,141,226,139,16,132,17,107,27,73,242,120,71,56,54,58,0,67,253,26,144,195,128,32,243,252,251,223,25,131,108,201,183,138,79,56,176,105,249,134,199,145,181,10,39,236,250,235,235,166,200,208,24,9,198,103,190,88,197,219,225,254,99,52,227,192,210,162,165,169,68,117,241,104,159,211,175,223,200,207,249,171,81,195,13,221,161,165,120,22,6,244,234,198,219,206,218,225,154,79,157,232,209,231,116,250,53,47,35,190,90,37,3,147,49,107,55,187,137,45,52,103,6,108,250,58,18,138,70,150,186,176,243,210,174,234,160,218,179,26,87,2,60,191,88,100,167,77,144,231,165,122,44,27,56,197,190,161,202,141,225,201,240,121,1,108,241,74,73,92,154,180,87,250,169,168,82,244,86,201,113,130,240,191,245,171,13,213,200,110,111,33,12,111,117,181,95,42,35,182,197,208,141,172,73,185,138,124,75,69,166,131,14,194,141,88,150,244,124,89,60,29,39,69,168,194,87,158,162,177,104,73,104,53,49,57,213,162,21,118,232,214,108,36,45,151,42,109,54,91,118,229,152,145,193,216,127,218,45,185,252,72,46,185,158,7,26,243,230,132,30,156,85,213,140,27,5,178,162,138,145,104,54,227,198,42,87,178,239,37,217,40,4,95,138,30,97,32,228,205,190,242,75,102,101,136,24,101,43,116,133,243,14,184,141,250,112,8,181,16,168,109,121,116,28,81,50,10,218,198,4,30,124,154,236,47,223,63,178,232,74,63,238,117,145,201,24,39,23,177,63,36,143,210,9,171,52,193,197,173,49,178,21,213,202,71,41,108,30,246,234,122,201,159,86,201,194,89,40,210,222,198,134,59,194,185,144,29,128,135,53,113,182,163,122,119,195,170,135,24,147,207,151,213,82,249,88,57,76,33,148,8,169,172,170,211,236,8,210,214,143,61,112,223,163,93,31,64,0,24,149,32,223,127,196,140,230,172,73,52,195,81,129,133,219,185,142,98,82,107,63,14,244,102,38,238,223,146,119,160,49,205,221,116,12,58,54,17,156,21,187,231,104,107,211,190,78,145,170,77,25,57,37,149,27,228,40,162,218,109,28,177,25,140,164,233,153,51,43,29,86,222,156,248,178,106,227,127,100,225,131,36,7,223,200,100,172,104,51,250,25,53,86,242,159,162,213,245,23,148,208,16,117,29,215,169,1,3,206,126,197,148,185,82,188,201,53,247,169,12,185,161,77,69,146,102,170,39,40,248,217,125,65,57,189,144,130,225,221,162,52,252,170,2,236,156,32,157,251,118,225,139,207,242,166,24,117,128,154,152,37,241,175,225,122,219,216,88,161,192,87,8,237,252,18,98,125,141,42,76,217,27,220,190,212,226,35,237,164,136,140,30,86,30,225,241,132,144,109,177,92,153,175,135,164,168,162,115,27,206,167,138,38,123,161,80,199,118,152,136,239,102,33,120,190,33,132,81,188,116,165,96,64,166,178,126,184,41,240,33,91,229,144,237,153,239,79,41,227,3,255,15,53,50,81,128,170,76,244,252,52,239,178,69,161,66,238,194,113,208,38,70,181,34,226,16,151,137,82,107,26,131,102,38,15,46,84,69,156,224,239,228,13,107,62,159,98,50,192,67,172,87,136,192,36,176,5,71,97,179,147,133,230,160,52,78,5,179,170,129,220,78,112,87,125,134,213,125,164,73,134,156,3,206,210,123,234,45,14,237,207,135,226,56,54,154,32,223,101,167,157,122,180,159,105,145,112,156,0,142,79,45,230,250,183,179,188,180,129,143,201,156,195,112,190,156,146,84,173,113,225,182,67,1,133,224,61,170,212,190,76,104,210,102,215,226,197,239,147,240,35,88,230,123,126,159,226,80,56,125,137,84,23,4,213,181,192,122,145,29,234,245,50,144,52,78,252,148,224,251,10,50,16,142,161,158,155,20,101,54,13,136,21,173,26,166,234,216,140,187,114,120,250,167,195,82,195,85,200,250,97,3,86,11,254,10,242,22,62,202,241,8,109,63,13,78,130,25,142,112,151,190,206,215,242,111,189,172,70,183,74,236,3,155,153,227,237,233,26,91,48,224,244,91,7,67,26,56,140,159,212,165,26,175,208,75,46,36,72,67,254,244,179,245,125,56,5,61,86,192,41,55,93,97,242,111,113,64,174,15,91,175,0,93,142,25,175,193,61,113,62,142,201,15,162,45,125,97,108,222,127,181,219,7,129,57,47,58,54,132,112,187,192,207,177,139,176,212,55,155,205,82,200,232,237,129,250,21,215,42,82,81,57,37,210,252,248,244,120,199,170,145,128,231,56,49,242,185,252,250,192,156,60,170,94,109,169,151,220,56,162,234,70,192,234,185,46,45,240,147,85,99,129,38,218,150,104,177,49,31,128,245,2,174,249,107,100,93,63,149,118,164,125,35,204,154,210,14,137,176,230,208,34,217,59,210,146,43,228,161,43,173,126,249,111,147,212,220,176,111,176,97,47,146,112,172,38,250,159,223,152,227,70,198,69}, {8,160,30,77,95,99,89,164,168,238,40,181,233,46,81,159,250,241,226,223,130,24,99,32,202,35,205,143,150,126,82,194,113,135,37,119,25,69,161,84,193,25,77,164,43,99,147,132,84,180,192,25,246,71,237,150,114,243,48,119,215,197,139,234,252,182,40,193,59,39,211,42,249,117,61,112,27,223,41,189,53,75,68,30,55,177,76,30,102,159,60,182,190,156,49,221,238,45,57,8,99,20,219,60,92,35,167,13,211,24,193,85,104,218,1,0,148,193,122,255,88,67,180,71,112,191,198,53,60,80,55,210,78,61,107,124,31,128,21,106,110,152,176,196,125,0,180,12,234,62,138,94,4,80,78,26,16,81,7,100,85,61,3,184,111,41,199,163,169,82,240,109,10,238,16,186,208,163,17,63,167,26,68,208,107,141,7,55,108,202,245,95,151,209,102,211,132,84,202,220,107,44,168,8,247,161,59,125,181,56,165,203,45,26,96,86,184,31,21,231,136,212,1,3,5,232,88,11,201,95,106,226,33,117,78,82,214,152,128,72,152,213,179,176,180,246,254,182,59,163,148,122,81,238,181,209,205,210,107,117,58,37,95,102,129,84,126,166,92,214,214,112,51,112,210,181,103,187,219,166,95,152,61,75,71,206,167,249,204,153,68,177,137,136,44,22,76,41,183,144,130,238,28,111,6,56,175,73,63,233,180,105,241,239,196,171,84,231,57,175,111,250,218,34,231,104,218,165,219,108,227,192,134,217,205,71,236,61,60,2,239,157,70,139,177,142,219,174,118,38,49,2,28,49,224,200,250,86,75,4,77,149,21,205,240,108,137,51,111,122,176,32,64,85,98,209,59,119,199,170,144,129,214,57,39,129,254,40,81,88,16,205,135,92,85,10,152,33,46,110,76,150,131,241,208,80,220,237,225,96,131,52,129,118,112,112,34,112,224,84,127,101,157,206,47,238,15,33,2,154,190,107,100,169,19,126,241,63,252,196,172,12,165,168,185,179,111,149,1,246,49,55,197,142,204,253,80,30,28,4,225,65,177,177,224,182,195,160,180,195,84,194,136,227,183,77,209,254,72,134,48,168,236,211,24,120,144,172,217,85,158,7,137,23,38,97,125,1,210,135,155,71,214,132,191,170,30,105,15,9,250,197,126,108,139,221,38,65,166,141,224,95,197,40,32,81,69,223,91,191,240,102,224,213,145,216,245,94,20,82,130,84,49,185,143,84,68,21,202,242,100,166,59,42,28,52,223,98,41,189,205,63,132,205,218,219,51,14,102,44,152,72,155,85,198,210,95,12,48,55,219,179,194,160,79,107,225,250,216,61,7,164,166,168,248,60,176,95,183,223,27,233,210,120,219,117,241,162,219,230,143,216,114,19,133,86,188,23,204,169,119,249,229,44,131,255,45,39,118,178,241,29,8,135,220,56,117,178,3,198,40,30,128,195,8,237,19,29,222,250,93,21,68,11,231,164,213,184,139,219,241,155,201,81,37,56,104,151,20,27,12,186,250,186,79,37,156,143,64,146,0,171,185,45,211,36,42,66,15,15,173,149,220,25,133,9,43,199,175,202,140,110,173,32,62,185,180,227,175,47,75,211,194,60,247,153,222,217,140,43,129,131,79,110,80,172,67,59,100,195,14,64,237,2,223,32,54,100,106,142,80,168,142,196,49,119,113,219,39,220,57,51,227,15,121,226,27,246,181,233,162,139,36,29,243,66,148,39,164,239,215,195,109,144,53,249,172,129,200,138,212,56,66,16,181,45,52,63,110,107,113,2,54,51,61,197,171,207,104,145,190,94,46,1,145,245,200,135,108,235,157,159,223,195,28,176,127,3,202,39,181,57,154,76,196,196,12,83,133,246,30,122,103,217,82,14,214,107,183,159,246,128,244,76,161,75,116,94,26,203,49,191,146,181,162,18,23,122,38,109,8,159,53,171,62,210,31,229,17,56,23,116,90,216,154,89,86,182,174,69,187,142,0,150,31,171,229,201,248,136,62,226,194,108,239,24,181,78,166,201,95,155,147,166,254,230,63,136,102,78,177,190,40,137,44,194,95,171,246,224,96,208,41,142,241,102,2,27,11,153,173,202,76,143,9,238,94,108,93,99,116,65,145,190,53,71,181,105,142,98,59,199,109,212,53,71,170,181,217,81,255,101,191,96,160,127,10,54,211,99,175,185,13,96,89,129,147,199,245,47,132,196,130,63,150,177,253,16,172,71,52,79,91,247,102,152,27,55,60,212,114,74,13,255,128,149,133,78,253,34,233,236,255,73,52,178,63,118,55,4,26,229,2,170,73,219,134,125,18,50,112,90,1,19,18,184,43,93,133,40,218,102,138,92,179,185,107,71,10,19,22,101,72,198,244,115,221,42,100,197,235,135,90,201,255,150,62,101,28,27,114,66,173,59,4,175,41,70,21,182,83,70,146,104,49,53,10,38,19,216,184,242,172,157,158,115,139,185,201,243,112,153,128,80,248,178,143,65,218,166,249,173,251,81,205,120,242,110,127,106,163,207,55,197,54,4,142,55,147,140,176,144,12,113,174,37,102,66,228,145,117,254,197,142,191,36,222,35,53,69,92,115,15,117,107,95,220,111,245,157,151,198,241,120,197,235,249,58,1,9,238,201,35,35,139,117,215,115,69,200,134,57,192,234,234,123,9,109,195,213,59,132,160,32,61,231,140,198,91,250,23,180,54,13,177,99,11,229,81,5,163,23,47,153,72,1,162,232,38,41,208,177,92,180,38,157,130,152,149,179,64,1,141,163,106,237,103,55,250,241,132,45,231,228,234,28,182,188,45,15,35,9,6,184,60,75,42,57,22,245,23,99,202,203,219,19,251,149,112,158,118,213,151,185,240,178,94,232,191,223,59,21,133,238,63,253,221,149,21,69,76,87,97,188,192,52,19,96,187,72,14,209,191,186,54,120,202,129,191,141,239,93,252,143,225,51,210,133,33,89,38,167,234,213,234,236,166,209,32,170,220,201,220,111,171,131,235,213,97,170,133,150,235,212,46,165,242,0,90,14,44,59,196,168,227,135,0,22,159,69,119,73,205,46,145,162,232,156,8,87,134,220,216,98,169,119,51,107,225,122,176,130,196,66,94,216,233,179,119,156,187,125,207,105,112,134,222,32,48,30,148,45,161,32,91,16,39,213,30,23,228,212,221,58,6,115,80,99,158,5,51,235,244,3,113,159,115,51,217,249,18,65,240,136,73,184,155,51,40,87,252,255,198,5,67,39,2,65,47,17,106,57,126,32,98,215,80,217,154,85,49,144,183,142,206,143,141,198,155,173,209,99,114,95,70,221,157,51,142,14,191,27,132,139,237,22,19,44,21,37,251,117,225,163,102,170,175,77,106,14,174,62,151,55,114,254,8,246,127,213,25,217,80,152,210,98,250,229,0,150,152,163,215,121,226,193,198,165,28,4,244,63,11,212,213,169,161,42,179,84,48,135,148,191,215,30,55,240,160,106,200,45,32,163,223,30,65,165,143,211,189,215,204,141,239,82,148,247,49,73,93,254,24,150,79,2,150,40,56,109,215,194,249,116,11,72,133,9,199,162,44,185,88,21,109,146,184,113,129,118,105,70,37,106,84,73,47,251,219,210,50,229,245,212,192,231,140,54,48,11,76,63,69,98,249,240,227,114,142,58,99,35,58,216,199,236,2,250,125,69,163,20,147,72,226,115,155,86,51,208,195,181,61,3,231,47,132,36,146,32,114,144,183,179,142,197,32,227,104,224,82,213,203,213,159,218,146,203,70,151,143,33,255,179,161,64,236,216,47,218,164,179,221,227,115,115,215,123,219,248,194,32,22,201,46,94,142,83,121,131,122,120,148,54}, {227,3,96,69,40,27,42,212,228,75,114,67,204,248,78,43,245,226,200,193,9,227,99,168,180,210,22,200,50,220,203,239,193,170,137,221,27,17,46,47,13,27,221,71,81,51,14,187,106,161,159,35,143,65,159,179,131,80,178,33,77,74,152,195,195,241,247,162,142,82,19,97,90,137,181,109,196,222,195,194,148,14,253,159,34,234,143,46,211,71,16,230,137,57,205,176,214,245,140,28,127,94,198,63,78,0,5,251,226,198,169,86,53,121,233,155,60,202,89,156,201,27,192,0,110,80,179,31,200,250,6,251,74,136,117,104,99,117,18,193,241,224,113,40,57,231,196,31,10,36,243,228,19,178,239,33,227,27,125,118,198,41,82,186,86,54,115,101,181,106,144,76,142,222,191,89,162,157,172,226,105,174,43,91,142,241,113,111,16,73,160,172,67,57,150,58,248,34,139,51,255,198,192,44,192,55,133,15,213,89,228,137,194,63,49,229,198,24,36,189,22,56,192,114,101,208,148,173,215,161,43,197,110,11,155,11,249,41,45,165,11,131,28,61,183,185,232,117,252,138,197,103,246,2,112,173,137,207,34,235,76,246,189,0,238,125,171,155,158,204,8,1,54,81,100,217,143,54,219,149,238,170,188,154,184,144,10,13,17,147,254,170,167,35,142,250,34,104,94,215,159,106,246,250,163,69,26,248,80,91,70,104,40,159,183,104,208,172,193,155,220,210,153,217,194,114,160,185,157,8,22,151,9,148,110,171,44,97,170,0,100,131,25,164,31,122,149,84,224,249,251,217,25,40,226,144,54,36,143,235,121,89,203,168,64,142,140,113,189,188,35,178,164,41,92,101,166,230,11,131,56,17,192,82,237,164,184,225,37,200,239,45,220,208,234,7,144,208,116,197,6,220,165,149,167,21,18,41,190,209,2,36,231,0,50,60,64,104,32,89,188,135,113,163,6,252,154,197,153,72,102,54,175,86,158,161,9,129,166,155,123,116,79,38,113,28,144,211,42,57,145,14,41,29,11,115,118,91,11,78,232,67,171,172,184,254,68,169,183,27,237,231,133,135,212,213,171,58,99,71,117,90,179,44,234,92,242,218,238,131,56,223,182,237,147,82,216,97,156,40,127,73,58,125,218,74,228,8,69,56,152,168,64,205,162,236,221,72,159,87,42,61,106,225,97,121,8,26,207,3,173,90,191,144,89,176,186,77,111,16,211,183,130,7,88,150,236,96,167,53,25,89,146,51,66,186,92,5,253,20,114,216,113,86,174,175,47,119,128,200,161,228,201,246,31,79,2,136,107,6,217,37,91,78,108,47,179,197,207,71,178,170,154,154,175,173,45,157,99,237,128,142,143,115,149,39,246,225,57,101,161,61,190,14,43,197,194,246,103,239,239,91,52,20,82,92,17,35,10,45,102,84,66,232,193,189,11,69,188,222,33,201,90,7,38,63,75,119,102,224,156,119,122,225,171,67,10,177,60,0,189,49,183,107,43,48,24,43,241,114,127,115,247,220,29,56,65,178,185,121,156,99,209,43,241,65,38,255,153,165,161,152,152,211,63,63,68,96,74,223,33,12,111,195,39,103,44,136,182,206,168,99,11,193,2,12,136,244,97,234,98,190,49,159,222,94,239,112,161,172,79,4,205,186,134,246,126,106,230,65,1,143,159,71,231,170,121,110,86,46,210,101,227,166,200,89,63,178,42,76,32,83,13,224,240,105,151,223,55,38,73,151,47,187,201,53,69,71,97,4,182,105,27,40,64,196,91,38,176,1,29,171,60,88,62,46,34,46,204,40,40,239,177,65,150,93,56,68,69,213,106,66,10,210,190,24,101,23,134,66,232,93,116,125,42,170,14,15,246,135,88,33,78,136,199,230,56,135,78,245,38,193,79,230,164,107,217,90,234,211,14,68,244,97,149,168,85,97,172,26,72,116,211,218,117,145,3,249,45,17,181,162,166,189,45,117,240,165,139,82,249,126,7,143,43,95,211,36,252,253,200,30,188,176,21,143,187,92,13,211,171,52,100,43,192,103,180,4,37,180,135,0,71,128,139,171,136,229,208,86,59,136,2,129,14,78,122,63,140,202,99,213,215,131,4,172,130,120,134,96,102,91,39,183,51,227,11,76,157,143,216,183,111,217,114,229,147,146,236,228,202,231,161,135,71,43,83,68,131,246,159,193,112,13,65,235,164,62,12,45,186,114,206,220,83,57,31,191,17,230,80,71,176,43,186,96,47,114,28,34,243,19,8,254,50,134,247,148,244,190,100,66,36,211,45,137,102,18,207,234,82,227,25,102,107,165,142,21,194,207,194,127,184,89,119,86,228,226,157,102,89,36,255,210,236,128,61,71,247,161,249,61,208,181,160,73,203,22,118,161,101,29,8,218,107,12,83,99,8,250,133,26,38,106,88,254,82,137,152,69,31,61,20,65,110,0,17,123,39,190,215,128,145,95,184,157,206,64,33,23,49,159,197,244,245,77,38,119,11,75,169,187,114,237,156,202,159,82,205,123,242,118,233,147,239,169,72,183,115,152,87,115,59,97,75,88,108,90,102,184,230,206,2,210,85,146,188,136,75,207,50,29,91,143,233,83,60,224,74,112,50,104,253,192,204,119,237,226,214,71,252,165,37,114,94,129,10,35,182,206,38,138,137,198,147,25,190,145,35,107,69,39,150,250,11,194,195,26,51,86,47,212,43,213,204,78,123,214,129,165,133,65,20,214,8,93,211,216,28,252,120,49,64,187,214,145,129,66,227,9,222,117,229,73,161,152,112,136,2,54,247,4,64,148,130,23,93,157,26,73,217,21,119,64,119,228,97,205,237,73,190,186,167,140,79,80,236,175,82,106,51,47,94,87,15,29,108,111,214,42,213,161,73,70,219,10,74,199,125,86,155,214,186,227,131,151,33,39,134,246,126,216,222,239,129,108,206,253,244,142,208,65,221,125,53,166,61,189,214,68,247,175,32,58,212,147,222,216,123,40,42,110,148,37,6,66,211,117,12,20,147,14,74,91,209,175,218,205,2,106,212,247,117,25,109,57,103,42,164,223,191,53,28,228,19,30,58,142,110,71,25,14,133,224,116,216,198,67,19,150,112,36,125,212,133,172,53,235,123,170,63,143,169,196,29,31,182,72,250,211,153,218,201,241,100,74,234,51,123,7,232,238,249,127,239,227,79,216,74,158,60,174,60,96,69,188,96,54,5,240,56,97,9,131,92,10,202,111,133,174,89,254,21,45,75,189,119,170,144,195,97,192,74,117,217,231,219,114,170,176,211,205,124,26,130,21,19,121,233,184,131,111,233,209,31,85,16,4,30,39,52,20,71,254,213,108,108,218,7,254,209,248,161,190,137,130,49,108,254,41,152,72,82,134,45,134,10,229,21,247,52,132,66,102,30,123,156,148,154,30,107,222,46,0,100,154,124,107,206,197,147,151,165,243,109,51,14,238,21,235,78,158,4,194,214,226,145,39,162,160,41,229,6,204,70,177,95,253,58,193,75,143,56,75,185,238,165,119,0,11,211,29,62,111,21,38,193,151,72,130,70,158,83,27,72,205,64,170,122,183,72,60,25,57,227,230,117,13,201,103,153,86,36,158,240,154,154,253,31,53,94,230,221,205,142,19,8,27,232,223,147,6,28,48,93,190,86,190,58,183,110,208,248,230,157,232,54,97,254,53,191,58,43,82,121,190,204,180,197,39,135,94,147,150,119,120,111,143,21,43,8,215,92,130,90,78,182,149,219,241,58,156,245,225,172,38,199,88,140,77,79,141,194,240,108,77,90,170,48,69,242,53,91,51,30,183,171,160,211,203,27,5,43,147,190,194,83,220,185,1,16,202,35,73}, } ; static void test_decode_857xint16_impl(long long impl) { unsigned char *x = test_decode_857xint16_x; unsigned char *s = test_decode_857xint16_s; unsigned char *x2 = test_decode_857xint16_x2; unsigned char *s2 = test_decode_857xint16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_857xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857xint16(impl); printf("decode_857xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857xint16_implementation(impl),ntruprime_dispatch_decode_857xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_857xint16; printf("decode_857xint16 selected implementation %s compiler %s\n",ntruprime_decode_857xint16_implementation(),ntruprime_decode_857xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_857xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_857xint16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_857xint16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_857xint16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_857xint16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_857xint16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_857xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857xint16")) return; storage_decode_857xint16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_857xint16_x = aligned(storage_decode_857xint16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_857xint16_s = callocplus(crypto_decode_STRBYTES); test_decode_857xint16_s = aligned(storage_decode_857xint16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_857xint16_x2 = callocplus(maxalloc); test_decode_857xint16_x2 = aligned(storage_decode_857xint16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_857xint16_s2 = callocplus(maxalloc); test_decode_857xint16_s2 = aligned(storage_decode_857xint16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_857xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_857xint16();++impl) forked(test_decode_857xint16_impl,impl); ++test_decode_857xint16_x; ++test_decode_857xint16_s; ++test_decode_857xint16_x2; ++test_decode_857xint16_s2; } free(storage_decode_857xint16_s2); free(storage_decode_857xint16_x2); free(storage_decode_857xint16_s); free(storage_decode_857xint16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_857xint32.c0000644000000000000000000026366514705505543022755 0ustar rootroot/* ----- decode/857xint32, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_857xint32_checksums[] = { "f1cce1fb5860ff77e49eb8f6c96947a8a1f779fde85a87809410317bf9e39a20", "bfff4d5b75d91994c2dc064236468c4fd59fd4df7d08d7b8b52dbf95c9891a91", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_857xint32_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_857xint32_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_857xint32_ITEMBYTES static void *storage_decode_857xint32_x; static unsigned char *test_decode_857xint32_x; static void *storage_decode_857xint32_s; static unsigned char *test_decode_857xint32_s; static void *storage_decode_857xint32_x2; static unsigned char *test_decode_857xint32_x2; static void *storage_decode_857xint32_s2; static unsigned char *test_decode_857xint32_s2; #define precomputed_decode_857xint32_NUM 4 static const uint32_t precomputed_decode_857xint32_x[precomputed_decode_857xint32_NUM][crypto_decode_ITEMS] = { {1940977188,1740126204,953838538,4022503884,3090166535,579058073,1991150592,3355051151,2457718373,1507203356,2700210720,2327665748,4059676708,3323395045,3947653796,1070603031,3196008902,2061512069,3442320467,2901604430,709566259,763920141,2998037509,3848079294,4239065531,498620458,1855771773,170993204,795653177,2252290014,2214891152,2066417491,1931703811,3848407642,1831884975,963534915,3372588300,3306852645,2078375479,130251791,3500822423,2813650623,3200256740,787298180,880186369,1309067898,444809964,3112593951,3260363777,425162201,1895749749,2945337588,3636116465,2490553363,3073008219,1590475368,1182129387,2850943997,3296239682,812068655,889674496,1578130705,454127356,4213996509,2623470008,3786500539,2277815166,3239623732,1668462351,2689817769,1225394393,1050429316,457063828,1245913780,571418586,3471004112,3779296680,4001184057,2259197723,2421889914,2566743536,3234775165,2607289654,1425316101,1447646951,3907676370,3188353839,1126216842,328283185,3231981606,2767969593,3124029300,2915076931,2207988097,1807107813,418323296,1811389497,1329582090,1789192136,2613736391,2548558630,524028810,1717052611,3096164367,2868429102,2370790606,220091462,2426807270,2242537784,1537548828,497881758,260608478,227542358,3454516449,1236245325,936810082,2100153261,609268469,4143203525,3039856831,3071290046,1513451709,492754778,3835421741,134077944,1420516194,1658300158,1861102861,3271287261,2807364545,2312071991,3391247199,3432855536,4027358233,118692488,109505415,27743672,2249905530,1633124846,4110209708,4053102468,4258599566,3016828084,2027596996,1692709306,838892409,473985773,77300386,3674523906,3322315822,397930484,3854694320,2892483182,3291780114,1004525726,2511682287,582386159,2532990006,1188649138,2654463393,2752896253,1790364705,1245903252,2360314084,1552963006,1756586311,923960563,189453091,2070210819,2964490065,2351276701,2189379631,105781048,3833406250,3845335680,2299330552,1290154481,3679337196,3762226671,1973639203,499563392,2817289897,829046299,2365475994,2639238790,3637552949,3443495690,3186909396,933821367,3957172866,1187844805,3971904469,972036909,3358852997,1609984956,2385426892,4124086047,377991083,857595245,424665310,955852071,2405404443,603335976,2215801051,991488908,2224070803,3710597422,1417036015,633959993,3597928159,2975883339,1386509086,3989642690,537738277,2436041939,706101295,36092968,2724809155,653673509,2531437668,1736903202,2533266361,2142593269,1025299698,2920882583,250117818,1125099835,2222079410,4068691342,1832418240,1231897642,3075916099,2215745621,1658336972,2631908130,3539632910,2835471336,3475628703,843069390,991389707,90841386,1766493068,227603309,1811200782,3073953063,1723089245,3238111616,3901063345,1149642279,2682314943,1661256015,3471365707,1061888521,1898877096,4281237178,240210836,1863323928,956461510,2263243859,413464875,1525951288,705849210,2826969473,2994649286,3144594535,3163746284,2442510767,3711283032,3994854144,1649373586,782701811,1672156665,2903395907,1955395096,3386042848,3795813718,632074859,3549691373,90116173,1953889885,819852538,1178306104,3397060572,3042207743,1557345020,966380398,97767285,2763917324,837678285,2025415124,2300092626,3088632962,4148650452,3690752646,573897061,743848357,2079311044,2386155859,2155029155,2461953145,2800540965,1812667714,215158819,1461444310,4035751740,725679089,3383575592,4281690165,891754424,159269871,1040488993,445936190,118777459,4028985043,1502253731,3382329750,1661855798,733347251,2380243264,2470202703,439529591,4266348100,2299829937,3002939982,1619189227,3568055012,4205749194,367753549,1149083698,3465331969,890478733,2880121595,1303698736,2704423307,4241371416,3939850380,3269678531,1857309647,1874204988,2231054,251975157,3775699173,3668006196,2355373286,1626312691,1167737314,4064064589,212729765,1597855120,4114423108,3803898797,2212625115,3869891154,1811077382,4115280651,2925995743,3766899593,1620579685,2892748394,3729371722,2113441879,3963288342,433297780,2794129711,88736065,1428727240,2064690900,2050749844,4092213966,3262959771,834065845,402571241,1270455880,545195497,1443853596,2297992988,4289298164,540975357,3475706680,181206359,3515612521,567068821,117304209,1611052337,2170925870,76908970,158913835,1239984900,3588584796,605608863,3370744394,1244966959,1592719397,3937067248,2262459270,3674904807,2178707550,2861534265,1887076265,4140858974,1027595243,3310463016,2640708710,432775645,1281382681,3764794623,4137783166,220887792,2380578618,3328890620,1135715816,2910302,3517709831,4186789029,835093105,2493069613,1729914894,2210880966,2987557514,2484467955,2605571855,2542303304,55218446,3451547960,2051485235,1341762226,1558978257,2744275336,1429822439,2973046336,2139314274,2417018268,4246173654,3694078022,4093630081,484759601,3572984664,403210476,4251554619,375676638,2480026983,3621470023,2843616627,3569756709,1989996054,1987792405,2304869781,3413070115,1008564317,115419688,884846734,2335499773,800411162,3181387616,3577453225,1470255561,945795120,3958906452,3822857257,2396570112,735149524,1551214620,1967891880,668784280,2117131432,1039154200,2477771526,2079261415,1166147865,829808687,1616677711,3889258342,1449878782,1561133200,325197297,3633597907,1072558722,2022352144,90025993,2480911082,3502087399,332927573,4033149805,249840744,2857857314,759714758,954602447,2180703850,3666546766,347058615,2175759312,2558506409,2919936790,3366306730,458375309,2377723479,1679433757,1988513281,2264743733,2357613122,2869613710,1669435617,1435151447,2670225415,4222330602,2394267999,3017810582,784204796,673063877,2185669013,2271704303,1015763121,3871129611,2650773676,1380487541,2671064704,493935257,305740587,3438189159,2563672582,2120108178,3307297666,2777729263,3669464743,2859599558,4261552333,1246811748,889658983,2897095966,2773622321,4017147491,1246329390,3700747739,2676058824,3756566157,2669724782,2698246057,713077464,3685714923,4033669501,4027976798,285105174,3046820756,3496643294,2734232259,4013568174,1083289684,3654946208,1774828880,2293732890,1357514464,3116388107,2759088924,206366518,1259538125,2869860473,3365737150,2522648855,866883150,2631477077,461869273,1131188372,4216553197,889556563,1880378860,1471931098,3136202569,3882798419,2219068662,3756267643,491049190,3876602161,1387766675,898644951,998306342,1161514957,63955251,2860958840,347172902,2912778564,2867813985,905945360,3546166994,494160184,3981387185,3016583896,985984564,337500291,2419671352,3005777979,3184718749,1662612282,1842133598,3627176823,2236517631,717725045,2651448056,1860450745,3081775459,4276505268,3694136141,1407880802,3144385259,1779820986,1658781566,263759087,3300693582,201408879,3905916077,2246088618,3377403446,1739243280,210018177,2896815648,1951169516,2145060372,3344696627,1740374933,2302646400,3150689816,230455266,2025384857,2609327587,1471227378,1207063038,2781648296,3184834976,2940240019,2494960964,3746797976,1068519266,2771114493,3206354969,3677846740,78968178,2670541471,1416439888,2234460758,917093929,4237793731,864117257,3952131930,1748848436,3694808421,1176268286,2963352461,3502742530,44991024,2363800916,3570661880,3358344406,1869271903,1352366580,927686721,2130397031,183989576,1416360621,4294937529,2914769401,1544662965,41808474,3634474525,3992910879,2178715563,1472615766,482997451,55351739,1260377915,3927873760,2024263318,2530884965,4055252033,2700048654,3832002735,1551101125,1842867844,3339504967,2856244224,4120658318,2987652758,3152119955,3301550802,3746601813,4216590902,2951061914,3122615230,383228251,3639811181,2972691875,1804765838,1239332631,269666658,3545396186,3175766829,4036980783,1041345889,139140206,811631571,2308084220,3475444158,970626954,770494130,3029523108,4067073185,490845741,3170309453,3528205676,220173865,1993315661,2710824511,3244745622,1890861461,993515840,1985836587,295296159,2479830341,101137898,2294616438,69356647,178947183,3755900506,1931692700,407028796,133088143,3887509053,1252463122,1384472202,3886540394,1160254670,2003939497,3886657094,3213991767,3740318768,1184491117,1984430931,2091851237,3686583585,2104103209,3327505480,4285583147,1529370298,2231756740,3594272169,1502288866,3966613967,1315017619,2228139960,804732554,2278949611,1197099530,3993206676,3842239092,2043099511,3942235050,1196268165,1319389818,2008275234,1154599461,3189642258,548499059,3642738526,2064332564,1207396195,3382486854,1584426253,3563152760,3737129937,1384805132,2576596011,1755434007,2550531934,2894330663,3655005159,110380739,3575382300,374761298,2521739184,1510210815,3695501851,4263500327,3909870986,2128615867,809674206,51708986,4021978373,2936012245,511188955,3921377651,1001172496,3082592660,628115255,1463898236,3146148240,1389591739,1454659695,2157734625,3229077190,1603416970,17732929,1587198482,2491065154,773522923,3403044615,3664611160,3183391961,4273266046,1033632743,479641899,3950150180,3512305631,94482165,4276567340,644015813,1017237200,3851006968,2297291565,1005777620,2518552780,707673470,372207794,4233356616,567135556,2624491411,3191120727,3443640747,3358192502,978420953,1490434524,4127056430,3728290008,1332782339,889061984,2827204445,2271999819,119960073,2762863670,750210970,4043453629,3447620438,3606028619,2908018015,4283051312,3936657117,614136032,1197362524,2681798413,3892889611,875704026,2764576686,1624447725,3374217387,3121010499,1067338941,1078127468,2211006830,3466581425,707619311}, {2064708543,2810847343,2343350222,2628682833,3668393377,2196328720,4228726622,906731124,3575508222,2812103164,1485525077,2143191103,3663886668,842785794,3371409437,875267221,2621476305,1662706168,1410645277,3885317888,3060303725,2580053107,391291545,295768288,603349021,3618548484,1688963578,805434135,3500650669,3844067870,4138254593,1409758310,1800727674,2747099036,3255639307,2305553698,480448983,3428259984,1891411242,2178728480,1886974622,2076408689,3517462193,1412182263,3337745255,535037258,1159749383,3655704054,2266821422,2918197933,1892443901,678160820,1847223441,1852516104,3539783975,1321096920,628044981,2950768792,3354742918,3163904676,3736091455,3013879502,948852058,2076380794,3166757885,1249347924,1655603120,3459470838,1759328007,3095773480,2326881961,3265038956,3711452177,915588789,1864579537,2432577300,1218303856,571332168,879027642,3377419655,1913533074,1195676995,4131281972,2545356933,776133930,4283226562,1854351809,3692924330,1844421492,3745388743,3617892927,1598101030,3247430691,3049502438,1440426512,2807718982,1065225001,2083281458,1053091541,1224569975,4260803756,3954701011,1292867173,1196549097,89976227,4272050789,1567378434,372014356,2155737457,4293440239,3062804702,1349746429,4074545647,2903656894,2221128306,3919395061,819583283,3591650817,3975125978,1322665402,3948000154,733153015,837368029,2727304112,136116635,1212534050,736255681,2784381621,2795680980,457372679,1316342116,1671109395,3890475709,1243332587,933375484,2312237405,3673064578,3311355906,1518159078,838926827,1343091711,2251899101,3169240393,4040591342,3146628142,2147185508,1671903790,1769008634,3003862048,4119728973,2021539605,2214485794,3072280055,3099694650,2171118444,1453804876,4146961227,3391245751,686878975,3186663727,2018502308,2852147179,369779988,2665957342,4216806024,1216426111,308490,3160937370,4210203479,3873034121,452069941,3411495297,54713417,1261908265,3497358404,2412295156,2515619682,2131056255,187777659,2593517724,264827208,270326681,2614947143,2775473509,2276817065,4222454688,2522100803,790494955,3639307620,2616680710,581862645,1847544191,2831074683,3163297551,1081465302,3902195533,881336636,622453698,3435959493,459171799,4272560627,1827942764,1515364119,578100093,46154360,1560642568,4266450071,1453449923,1404060747,3646779409,397880062,2606441540,2326493884,325726765,1514858636,4165739217,2690510584,1735312096,2003536536,260575958,349681317,627623208,585379855,1735583463,3376016064,399183416,2894509277,1808297672,2566751224,1182903804,1504051780,2396543639,752075799,2610353955,3822933218,3591012054,3688390420,3820992250,1995337232,4085449071,1148873385,2140918265,1681360169,523203393,3900184421,1807006094,891195810,665772607,12355285,3954458850,1095998157,3629537474,1006849797,1903074616,2906447452,760177507,3933685056,1665345915,1049722255,1538461211,2694377624,1972996424,3740376582,3903200973,605337691,3703031723,3053986739,837577112,3583793346,2946569946,3867147818,1426346677,2697712507,1944567097,2818162116,297019843,2340350931,234937701,1550289772,2359216103,3170726959,1749592520,339895390,3309109972,1241009542,3892067639,415794827,4199698379,3698144331,908213632,1823077927,3932286642,1782103696,2501058848,830687973,2584618311,2712971903,650708240,2823353764,1378825700,443110593,1241704965,3342156092,2164014192,3016995422,875754415,1611065911,2107529781,991098987,1112224658,2020193942,4196596057,376198763,2539677068,4040159005,961927027,815907477,2539203336,2637310303,753828027,289001644,2864785742,3889231660,2863292775,2034827871,2226532806,3331687577,3657678370,58450777,2103651731,4241258213,3371833356,3677905193,3287840032,3880489545,2888597019,3113357988,709133182,2308409076,3064122613,119332878,2995733116,367747256,1943698461,1359424130,343756603,2412183070,217254634,2402978384,882885560,3813021554,2046147606,1208161676,3061051755,3149098428,3667765574,3300866085,4168599455,372419160,3208750452,4288332004,3003454262,1950259188,1420782592,207454382,1849864456,3950886278,2188207897,1720767877,1563975505,2064436206,949932106,913903345,2632482010,1909964993,3395634629,1999340484,2443870281,2907948321,3939026739,2399857722,1429631542,907838111,3763373537,841203139,1226727751,172813322,2226703857,3145690685,684099939,1755328818,1337471398,3360660354,2025679132,799385280,2641882552,1515595156,3268892439,2728588871,2236651281,2338645830,1896437931,4075357869,3522591956,1273227755,785196591,2458667607,2769160489,266909118,335263716,2989351511,1105674750,800730319,2427806640,3552360750,4191513317,2822163114,1398791829,1039284958,951545252,1562312922,2899277890,1556984382,3779382221,780091852,2397422423,3998882841,3384134081,3645906639,1776726242,2872027323,843714882,26134601,3745418,3967811094,3724542678,573124778,378043004,220553534,1195098733,3758898778,2822801165,2246403581,2881427586,553766497,185971314,2244464729,1678507474,1933304111,1557326637,3420291368,546881647,1117936171,3864470921,27445670,646854021,3213643814,3262465097,152276665,1979229820,2603660896,1737896546,4054595798,2566280357,1835245885,783626897,572615830,1991153541,3317100853,2012970844,2117445160,4144664630,823857282,4051817490,2202514858,2270960120,1864786491,2863911089,1704606915,1702249678,2995892965,1627921200,1188954801,4022977404,2999607630,3362702959,2792389537,2472693900,772524332,3492375169,1790597758,1188271729,2159530327,2912189520,352485874,2483136289,3728762581,3044273584,1101254447,3506879488,3284013914,800475757,3970432434,4063788703,3336462973,3408328360,2219821558,3775145059,4174401364,2039139549,1564313666,3119917853,3126233292,2794300798,2354305154,2262450032,41802254,4017365003,85552796,855946742,1220489835,3031557111,1936567942,3945716655,3658266666,549345510,2797501340,1642149955,4016743172,812087795,1209412491,899020350,3874979404,2412947612,3907219452,2474394378,690280385,1472540351,1022614834,309701643,3421179963,3689720240,1693665898,1398040844,623145607,500054971,58340243,2394614627,910737367,1001086433,2059864135,3259373606,11310759,2378937825,3409834126,2550637130,554775669,1220160323,2693224383,2535139566,1342469270,1997711889,3593750706,2769943600,1018866114,1690670313,598585843,4221837489,2057522999,463689099,2811125869,2281723144,1355775122,3568943959,2123798875,3971544163,581725312,1761931214,2032991770,833571947,288855180,2768850134,3302008532,4087096046,2705458603,1183789184,4049056869,424217977,4271970036,1031530400,1279378834,3150377536,2452497716,704722511,570365923,1004311796,632483102,2581744613,3325373150,2089571647,1331897530,1245622574,3647351178,852613195,2103426585,3846730834,4175901816,2258183872,2420327159,3011995801,843587920,4011371393,2706157787,3256883325,3151881263,1737600274,922307750,2932616004,2521390710,1540545607,1604758028,3172253421,2725046360,1272644329,2833816791,1961722851,3592366033,2371036586,2068007375,424712740,4256912167,3182650211,2855254340,1967846065,965956100,2111646388,281384365,1532923810,1934280736,1747413252,2488836659,3929583347,93477468,885973508,731151916,139412680,2038036202,4143590126,4206294450,678507180,1558217962,837381458,1396058516,1143932390,1949122245,2320722989,2921741926,2583925613,4070237217,8691615,608408204,2305715714,2835106534,3643787421,2567175773,981525132,3139367644,3923919016,808823980,435911868,2586874561,1515762282,450717752,3281317191,1089872776,2221281742,2609762998,2693587412,2749090674,1145294834,3157405411,3847196438,539502133,2141936667,2194806914,1443812531,3362626594,3730154156,771395991,942798116,1914540790,2583324436,298574807,1163493528,1628313400,120885692,1053572152,738356518,3271407317,1991806411,3437395231,3212499143,3785338465,1932973440,4075851748,2898959779,2471158172,1676587158,794365875,240565938,2376658980,116145497,3959693925,572686174,2938336116,1666633523,1749358485,965056117,3812359331,2410533065,775547327,2154345336,1129092518,3909829334,2506390344,4114899190,2454994463,3854060267,3348495828,3385612488,2128550450,196691787,3133683669,811115336,3490451611,3946782575,4002659789,1918022173,310847640,149269369,71331937,965765294,3120663050,2375029773,2525689204,2733757393,1337076236,506401933,3706762607,3103248018,1054856330,548296017,4168149677,3452487076,801197339,609418433,1236627099,3784997918,277590921,3781973006,3195076588,1277780100,3572941501,2180512975,87920910,4057600016,149157867,3043496870,1164709256,3116100471,3971396605,2500553563,1676539352,2767819347,899277224,2957900362,1819977364,2591042602,2588668885,1131592774,3170009438,954017895,3166737633,1416330763,2641901583,3172402107,1679052546,3259768007,3309356985,1393217370,2493626217,802991525,3836719007,27473922,1264897332,831693108,674464823,2957091529,30165010,1623646465,2162129211,80004268,3600240859,2171197486,869655767,3758095726,1260366233,845123260,141345981,4280929473,3243525516,306743293,1611690617,3561583374,2755027866,4186066854,2583207788,178216919,2148747613,2074870497,4284830494,3918671852,2267772144,2070741849,2960106004,1068590782,1024599823,1915964261,2204796261,2798368662,6687484,3504360715,2705504882,2185914430,1761537057,3242798203,3594051594,4117081507,2132853399,3025568685,1901384148,628880848,3283224079,3753313967,4188722600,1443824778,2837074034,3472441841,1955131095,3913129052,3963389681,1067676990,2253587417,2760186227,2141105107,402289921,1662807273}, {2981522066,2951213012,2554418165,1988876241,3783576100,3421353724,2723237227,2869786506,704580615,1962231891,2083293942,1363437683,182690652,3252768623,1287136052,2705374774,2134915210,3328268713,536835772,2951296529,2337865428,3185179303,2059188027,284127839,2900686370,1781913885,1029202906,3567601499,2127490581,2031753275,4231207797,339553052,3605498409,2547884044,551053545,3098751297,1451270358,2659282023,296898094,2616221172,3650006724,3001385323,1210136915,2973774528,1809691879,1469906547,21757995,1184664484,252006528,3102569591,952831222,1930878962,3046370225,190252447,2930772971,534867023,1944366915,3050225290,2604345876,4018944067,3152305262,1413283594,3027700393,4021369663,4186956761,2292080488,1736135729,3387677128,3407771928,3797897342,2478632524,4237497152,2961256691,675738629,483555515,1351317856,1688895830,3244856626,2179445948,751451532,3348450455,1545475978,1404360651,3517204170,4214247481,4069694041,2454483196,3901274139,1551670805,2744006118,1045799568,2680959624,2337293794,1815260247,726679226,1908452571,4024218306,1840006068,3424889634,977612621,3942424352,3344091787,1823158951,1586172870,985450512,3120539593,2917484341,2948041059,3407982443,2693298315,4211910004,1652915838,2375980877,3220036462,3014497815,1310802164,2756298859,421722543,1997859474,3121079792,2950863556,3875957732,2349807650,559089521,2380056801,1428456783,1671167370,3348919120,2487092346,1352480005,3923794850,2912018491,2316401637,1573566851,2990463183,234282667,3620110736,2654256837,3020354400,2182587161,1938514942,190428772,3378187090,3916422082,3557161883,3803855264,4142454321,2390898107,922192144,1711227254,3567374137,1077423816,3830947,3597993771,2947312935,3686495192,3032019598,3736522147,3516279193,531529501,3965502576,636729264,3648127905,2312749767,2247052154,3270595566,988953981,857562354,4129128352,592143192,2547061946,2297278737,3987983799,1849712266,3385520078,7404017,922374147,3636750591,3354980722,3793552396,339773540,3650734697,1435180591,546353207,4281787269,2253463629,1276977479,2418157543,1410165953,1060973983,1343209375,2337688910,1536020514,2774444928,2471777567,489942162,287007307,907563483,3533954616,3675145217,3071673945,2874841946,1105901397,1132627579,1240908884,230841637,3890256452,2523445964,1389166406,1914336276,3638163284,519041274,369335792,1070542993,1869445316,3006260536,2244468150,1058152943,425206452,29643394,3464111721,2363758153,4009139765,472638102,627354307,382410637,4179050752,846469966,3854336282,3114120489,2897919092,3254666084,1316436937,330221567,1630015564,1875103992,3377388781,689800238,1134491748,39174691,688036650,592858597,505443952,345056244,537501461,4058208148,2030444598,1700292613,1260019689,3719030030,1324318871,809084960,366589802,3042692306,3659461963,2120365548,3111384394,4284843835,4211859449,1253319701,1532991583,1614802650,2018452421,1554454589,3478176171,3758942136,1550734598,1882884594,4222275217,2972439628,986616131,796657077,266168803,2345196430,3181566146,2589787091,4236059034,2435945124,1636280728,2460779478,3666949477,1214972024,1693680466,2625016653,1155831959,2334336826,2903738335,4167275271,153948109,1547352274,821345742,806148257,305505350,2039260223,855262393,3613198302,3710260712,1290246597,500655194,2629558936,3101511290,2899961993,2378385233,1739108576,805565411,1192596441,2266108655,3930764895,2647745830,1893453040,1846153353,1727102086,669685303,1857772578,187721599,2136913778,2863061878,296499997,899256747,1883425473,2044124811,3061204529,2964640609,1747054094,4013138223,1521910751,2678234558,42382717,3342794329,4087570506,1178695296,1680347798,1972844492,3737268334,3501644654,1688588830,428541880,3581787064,1052918337,478428518,2900853146,2869039942,1741566676,3823594216,1295227870,1301597907,1980508970,2759107801,2328721338,2912559092,2232166496,685152756,2272651368,3747836642,117199870,4107228226,2180887145,3654491851,2676581892,3607900264,4068237457,1141245884,1345207497,3983002194,2896316524,3609672181,4007452581,3096334232,1386033450,2900548725,2704326987,3353396214,3916715631,118503801,4028859847,2752310963,1111833208,1145242662,2245027738,3801576118,1048350403,3084224277,3082897608,3371214355,3820107041,1749463042,2446188281,992351996,2088088470,529252958,2162665825,296401010,3958031360,3804124881,3453442683,1833552926,804249583,2678868010,1989346119,179571018,3683251788,3493256242,3552913999,1134732352,578005583,3459176265,756825627,1353915090,308318822,3426051430,653130834,720870808,1124837826,1521118827,1041442944,2970907034,1396606248,539045193,3003713215,245585849,1040217968,130664581,4537863,3441985222,6104086,4266887618,1585544319,3577358796,2863258919,80869341,3354551412,1442549903,1310837925,2384099789,3930491744,879367017,1759327085,3079323460,1819743455,284792018,9608128,157390873,904542420,3312822955,2051495572,4006007473,999045575,1679273041,1523563537,212889559,1234239193,432399261,1133685593,348753507,2329524695,934757273,885907931,3736663565,387794409,4289074758,1343493885,501137498,2131885961,2997586871,3032629349,4288551676,926351583,470884375,644778850,562341203,3070803216,2069929338,3982676275,4155027303,3994902048,1612601314,1781756925,3071679793,1148692702,2186326921,1887874631,1999498229,2467959100,2506004849,2510975186,3836509923,4091933144,871799910,3001633904,1290246411,1928939270,3853322981,667929045,582968199,2538076142,4074554591,2397623788,2280872724,1483907408,2632512239,2829865320,1802089146,1639728273,3663856305,1281293975,4266720633,1384984985,596888510,4066478275,2089317012,4038183293,3328798188,4274073550,2513613108,2725980893,1750886062,1162513647,1152687297,3286971542,2100094132,1586140123,2306427906,537290446,1633761376,776863691,536425056,878649559,1832150509,2266490813,15661132,50157330,2998236073,12351901,1105777941,3705930741,1882843895,4114188874,3601823148,1839161780,2841445420,4127465920,4088358330,2362097639,3463374986,4098576762,1350358070,323815979,2435007768,398379297,3547937020,1313102730,2712750235,3746898718,3398808044,2547370543,1631713974,3591090820,2521971744,2354942009,299933900,224149621,3470956037,3423797212,2697454237,1679649636,2541655979,1951986339,1543538917,1005242597,2932969604,1348582294,765814157,4152328201,1002264467,2773719623,3786760425,4119008156,3725847628,2472994940,646350865,3248262685,2304309315,1494031295,2612857258,1733185310,4234387261,1133880679,3015532632,1478495757,56149110,1399599010,3289906435,2094782827,389070657,21844894,2119651152,326732086,1101647316,130044518,2884137754,3256076326,764412401,4242744180,476401772,3645870057,335654429,2940336176,1829373285,3700194002,1373028892,2948734904,3297543820,10582638,2897379033,1191871450,2443017481,3870713471,1786214026,434829628,2031219457,261603213,1755640804,4226518643,3137749007,2758646329,4103100560,1027459599,3052652252,1771945659,3962355951,1305287098,3434030041,3236436730,295487203,4146318635,623957381,1728000104,1795405644,2351352082,2473395081,608763450,3196137187,2669737274,599290211,3632987591,3841973528,4025133077,21125290,4196671135,3572923070,1017694947,1463137483,1071607131,2190977243,2484494350,2661587400,3297372666,3850373939,3335676393,3324575054,2272992541,700024858,4212516885,2143126849,1953171655,1249149849,1311692659,2894907200,4022197868,3736193114,2410219003,3497481208,3329328488,3107544024,372884324,2120709522,1985808338,2884665365,3898371803,4177561592,1173146627,2482961844,4143904728,892681161,3387701912,1333045792,4052591359,593839047,2949771656,4068484202,66113326,1797661675,130960742,2651901619,1435694811,1265650589,2934685075,1242306435,4265025630,1284431891,3082554750,2198905220,3406114741,2642613480,2261111364,2682967738,2990661723,1082599985,1343942404,450905115,1190284569,492049792,2097820473,1764009568,4250174656,3402420948,1813708557,4294761854,3567926050,1590689397,3353511294,1732973734,2021245585,3646738242,1038131898,839030057,1145397900,3161304554,1300543582,2746326693,2577601977,2621951883,3902770792,17106400,2099401202,1438340693,3363997897,3784943526,1784201721,3146634524,2794662887,1962061341,54986079,664516200,2607874454,609328236,2379907936,392703691,215579400,1803866226,2531383223,1636426969,517431640,3295186620,614441852,1819940923,1369621722,1217129804,3433930861,3501006733,611425475,914386961,1114940242,4151850348,3038936993,3771052669,1461395229,2384759429,3177913509,2344035424,2503397770,959253384,1270142035,3248898745,2951157115,4063592194,231968180,1735546705,2691749188,3755637971,3086885410,2772967428,751465968,1345317050,2618143468,3337566929,2566745049,1517182337,485366818,2968039803,1639288726,900225608,3677044572,4212725798,1146441468,3155702751,1204979499,595451399,2209842171,3083331219,1436508489,2262485327,1559543516,40666695,1593559349,2171479732,3129916876,890938873,1347068,3138697209,4026333863,1991198928,3365695555,2463540,3388343746,899799530,529400563,3014044599,1652723270,1778686126,2775112309,578366746,1508844238,1224655664,2698313144,4092090576,1778258559,2572189219,804764851,1797418666,910546931,2037972690,678238125,1508879892,1317671067,302851966,2915264697,1242464213,422713053,1517439173,385994347,3227111946,1886223057,2916163659,1370833121,2337916403,1296741375,1164564953,455089102,1206808591,539629197,3387122201,3513998141,979691213,1328667956,2948118752,3813902567}, {2914298497,3363353608,4121441954,2290227529,480805139,717066409,3693030760,318316962,271535386,2294692898,2466972815,2086568784,4277017377,3162676676,3518307977,4106666089,1954305573,3851750136,3204280596,3297425820,1921495032,442650994,1049891736,2764662511,1464143427,2036378964,396254694,1284448351,3757793268,1389128223,3317223281,3723350228,730130301,3096925494,1481384567,670374621,1128351449,3244832912,2696489121,3212909182,439260422,1407454426,3049765095,305050020,694806669,3877931788,1536609345,3763821169,321490981,2589525378,2058917986,4125715895,98523796,478391534,3313835424,2956567330,1030493409,3734836081,1927097029,4157425895,336425421,2615058933,3587430775,3318219128,2941572035,560097943,1085142431,3665360570,2977218753,3298362456,3152578199,3012279901,1396716579,229284394,2763750853,1570358964,906480299,3447121697,2261078559,3518631955,3248616838,85948857,3025513753,3799634864,2369245727,2517472241,163258815,2715540263,699684195,2833460260,3624400899,123947706,1517172848,2903799339,1212753090,1804482253,97777351,4095663037,683960115,1034533498,2186847390,1706232877,3104901697,689954193,2600432273,4282388827,2423473661,3409320932,2823064592,2440215242,2587515591,3898740776,2925078535,678325309,1757311882,2862998471,3619155319,3334212873,2157027753,3026921405,1046262481,1500824184,3987192640,4091568041,2114152205,785847028,3865371443,3468635184,2172115009,1200961837,1358925782,117184922,1465453728,1875779204,1184382834,3755583453,2078739604,1441177173,4062333502,2034678717,3024028488,1801305938,830502077,1341223836,2098714955,3932686475,423877775,208484231,639142702,3270028247,3828466671,2265314586,3735658969,1466091020,1912017689,890187014,1112345351,3197264706,2223166976,2015875172,1586509492,1547793443,2069278237,2791839528,2378853341,3318481506,35430601,2302546967,545179551,2973269851,377442512,1333131279,2394493928,3493500420,668794786,3841331442,2549486948,2159111,656635929,3754528051,1186811375,163895079,655920715,4120997509,288047156,158353870,3624451073,1497711368,1523689072,3287684617,717622133,4204358679,2913273824,2842981317,4275812067,2264294390,1201407724,781616484,1249795710,3232298254,1129507482,3184004665,1576786193,1468295458,1764892608,2486781268,3308063262,1632382988,2327384791,1958299829,2088010773,205856617,3640062639,3186394335,1653697314,884791779,2001425830,1536010310,3688730768,3298905302,1279968879,3992717407,1257472900,562963501,3070041693,2768154966,2444057850,3087452674,2180373667,1939335465,2434187318,2899186123,3334695121,799351864,888666740,997183119,2981762036,2252833932,3709078117,3450130597,794448515,2055796116,2100075846,222422395,445947297,3439004504,1749592638,3051322094,3006928707,3891946034,2051735528,630530080,2942861679,2020698378,1888274942,3033356352,3703359817,3245805341,711207814,142323977,306877031,1348590187,2076833527,1648935611,523674017,356699476,1316860028,996440985,125190271,3485869724,2358776443,1223161178,2693675241,1023758719,2793052290,219321633,2625228165,1255037003,2406246693,2655760657,1226076545,1186897076,1101087449,299540099,3289414163,932816819,3278253298,4078072282,369519032,3748123752,2624957194,3357808593,114137299,2014971854,4036463369,1851533389,2657509931,318477772,2991049366,1261494816,2084656131,2497333081,2560873183,1461103190,4097123850,4241117980,3978211387,2201929400,2730248986,3657128082,3843429102,1961778292,1339311089,449276447,1717057257,2088236752,445785395,3045115135,1780469916,930028401,1058290087,4199916755,3342235324,1792691241,3339513627,4271070035,3726844914,4037336649,3519356597,2868065290,689338823,600932643,824922379,2260459930,1935101764,4118883886,3046869103,2913288390,3638591552,443263857,2515741997,1734380224,1989031494,2618398420,2037295164,3548766220,3286154713,2762372789,2377046967,1368004614,934195333,2589900654,3717508807,902039758,355196380,2132815545,3396100346,125103155,4045417352,3943742042,1792552066,3321933691,2797024190,1384400022,64195551,2284677844,2132300447,815512482,2442330653,3548109352,729992256,3548379305,1531245090,1030113014,655978266,74789932,1804200678,2099423769,3531097981,2182551834,1047844231,2703808004,2012637530,1559847388,4093359164,1252689976,3904527726,1134876769,117005709,3927736220,3951627654,2471137976,3478625776,1892021943,2188146213,3696539035,3891606908,172802349,2459272010,4131172385,4161296644,3381380258,850461739,1914193597,881568053,3956461761,3959311048,3587037672,319110398,509321374,3285273016,2865438302,1251349339,1568664113,2528981116,3284967691,2305818777,4061254373,3723498816,189971088,872008319,838233178,3850410407,1938124981,3782377477,2763030856,4249253520,3955821521,3439051960,1949215128,2597850213,3006018381,3292272280,3717933677,2240246525,2634921718,221508610,3091151107,310929579,237243361,1679637763,2702188049,3985296344,359943847,3947345610,3112328762,3076910493,3838549039,3330815088,4166897856,2956626013,2486771986,984881967,2755869207,493681956,1087972285,3588515847,845193982,2158867292,279073901,3878397969,3183103304,1930485841,1923322681,745865519,4041776795,4198853750,3303725749,3856492874,553150335,2635941509,1145558752,2127411713,3477256391,4205494963,2468682721,779213328,179081414,16561569,3623177017,1483899135,2779176258,3199260266,3548402693,1482427114,3526201893,1173189753,1222943634,2839786096,681613809,1437372914,1789477336,2221596655,1243647915,3274836326,3088843327,422204037,2169109718,670019227,3238364513,584923378,111986828,4193355783,325998424,3068068474,2393328725,1250433373,940910763,377955320,329214039,656820121,1381328161,1535278762,2664260254,1783599139,3765856921,4008662475,68058313,1984085086,12585164,3933715752,1378011580,901039956,2384296148,2268050815,1973061904,4237816289,1394334288,2340214465,1538605441,2979980183,1224467440,3927581184,2400535540,1011639248,2434814353,2437068082,1428538079,1098345474,1250522282,720491850,2523752181,555164952,3261477706,1620992865,4090826620,1482540569,1293541305,1703951905,1795604087,3132130143,1013850689,2588769692,4287893950,25345964,119204276,801852119,2509672861,2034485202,3468884285,3665248620,3361080042,1019608452,1846509381,4181201089,381584491,1741482425,2598318455,2496057007,252082635,2484906620,1233438845,3947413353,1664029651,3576947988,524826735,625525570,2055095622,4275523937,3080120247,396456343,2767415187,1085106709,2647764226,1366573842,3251276068,1047422101,2495667402,4046391479,1638595668,849572422,3372148250,4102743069,358679242,1504345965,2939875951,2856498510,4020242036,3793979383,2836298479,990840298,14372654,1994202513,560983405,3674583315,3634414005,904835727,850545629,2626909550,1013972615,202744998,2730915158,562198171,1647638793,1911025350,2684260901,1300031742,827594395,952964379,3910605700,3111051565,1594000053,1246898247,1249904511,2602017381,3633527894,1665242238,2502073201,3537450801,1603008785,1293321291,2294199051,4179496677,3019920162,672734507,815877170,3866138629,2299418208,3988476728,4167940420,769914231,2941082868,2431917642,1387229975,115129904,2199366356,3275397144,4292481059,994826378,2787112373,1897154040,1393823175,2166446696,2711481358,1783894426,158238029,4178563860,1689779431,2205805158,1938475393,2805900952,2983309978,1983907029,3630875045,3641393963,3770879275,1628917999,817747005,2481040456,785077713,1972614693,137062909,397237976,2792388843,4208089931,1679041403,1967843583,3605277336,1418000551,700592248,1311325507,2545503759,1808541475,2454969633,1596563879,2837445108,1133857100,3304894264,2956828994,2282212553,1636692504,450354291,1696038150,2408055930,1620192333,1680097900,2127363131,4145572771,2536106041,3635665156,2409841534,3796161970,2577191026,2194472624,2295056831,424177904,2296736170,2604965544,1363127969,3061316327,2011475186,2815168084,364462231,3314175539,215705397,3203629836,3098898378,1460481365,3387417518,3083265508,43935266,3105585553,2239205427,280939975,1973274678,114063641,1855254746,3973892459,362477106,1340857314,2108442881,3430624495,483779170,1921503392,2495491916,1483919533,3457604744,1211438618,312667064,787481336,3694789116,919608032,667916353,133766714,3298312650,1384389555,852340097,1970948615,1502552589,4228509457,3363489460,603291498,76274699,155979757,622961014,257774800,2323874291,3706827791,2372679747,3505979903,3486965130,840471852,1043699370,53862662,2989974754,2384158383,2593078677,2658860638,712748757,1959538256,3446993646,3700492944,2092480183,3672534363,3630731062,3181285504,2533557123,1941320048,1402015665,1476849184,2776513910,2329526034,4260197574,4102727477,3097172150,3401391591,4078625692,1049861885,4247467904,881914616,2030865306,4184893793,1861230669,1474891353,2254645419,2653452439,1562591048,1704101489,3696685038,2201045307,3514851621,170559539,2916506180,1316108185,3926897884,1189867988,1135394937,3896728320,1899993365,87767464,438952455,3828499483,4115855167,3662554867,3399853221,4246036121,2202188706,3931452754,385306671,3289845383,551971668,808064346,3063121919,1086026286,3993083122,649303149,2066645983,2219179134,1111201894,4059136158,2973733570,2249897268,2325537379,3667880890,2386095351,1653223105,2801261184,1445877223,2479668808,3184177634,1555183972,4179254462,1269802855,2270525390,359332697,1045770948,209789605,1220247260,904356951,606306073,362050645,1005194068,378619812,111465919,3500096016,1428788073,1938726329}, } ; static const unsigned char precomputed_decode_857xint32_s[precomputed_decode_857xint32_NUM][crypto_decode_STRBYTES] = { {36,246,176,115,252,55,184,103,202,107,218,56,204,137,194,239,7,51,48,184,153,185,131,34,0,140,174,118,143,4,250,199,101,206,125,146,28,25,214,89,32,242,241,160,84,92,189,138,36,192,249,241,229,251,22,198,164,106,76,235,23,27,208,63,198,57,127,190,133,45,224,122,83,164,45,205,78,248,242,172,51,31,75,42,13,127,136,45,5,108,178,178,190,7,93,229,187,1,171,252,42,88,184,29,125,212,156,110,52,38,49,10,57,180,108,47,222,55,63,134,144,142,4,132,83,7,43,123,3,118,35,115,90,10,98,229,175,88,48,109,67,96,110,57,12,157,5,201,37,145,26,197,55,126,225,123,15,124,195,7,151,79,170,208,191,230,180,167,228,10,192,190,132,55,237,46,1,148,118,52,122,202,6,78,236,66,131,26,31,106,134,185,1,52,85,194,217,117,87,25,117,216,254,112,244,72,142,175,241,187,186,216,19,212,114,148,91,98,42,183,104,186,204,94,235,220,117,70,253,243,237,169,66,160,120,196,47,47,103,48,0,91,7,53,17,93,16,94,252,110,17,27,221,123,44,251,184,249,94,156,187,105,177,225,126,179,196,135,52,188,24,193,15,183,114,99,169,92,83,160,217,8,10,73,132,71,156,62,148,61,62,27,180,34,67,74,218,39,15,34,208,81,227,206,168,125,67,225,57,57,125,238,27,159,168,134,122,27,91,144,240,101,253,152,125,192,206,192,54,21,104,155,5,153,244,84,231,86,73,86,210,104,234,232,47,107,10,190,138,180,32,67,49,52,145,19,38,32,164,192,57,221,251,164,116,231,52,186,67,139,192,173,129,57,155,131,229,70,182,107,96,27,239,24,57,156,247,107,10,208,63,79,200,231,164,106,199,115,202,155,38,235,231,151,138,11,60,31,195,36,88,102,15,184,139,184,46,193,248,170,206,100,79,141,70,84,30,13,230,35,166,144,56,105,170,133,28,34,165,91,158,18,173,29,222,145,136,15,86,5,144,13,225,188,231,205,77,155,175,73,98,150,214,55,173,203,45,125,245,178,80,36,197,68,244,246,191,136,48,181,190,42,16,183,189,112,53,90,90,215,94,29,45,228,155,228,248,221,253,7,98,91,171,84,254,166,215,98,13,45,238,110,221,225,251,194,193,251,84,167,55,107,207,137,95,83,34,202,240,55,157,204,25,156,12,240,136,26,19,7,135,235,134,6,184,85,167,1,122,213,26,134,238,129,87,97,172,210,252,244,132,111,149,241,142,18,213,253,180,36,209,179,196,172,218,120,186,177,228,100,121,123,0,50,237,114,64,28,162,130,155,4,2,201,4,219,46,132,6,198,244,239,183,23,176,247,193,229,110,202,103,172,18,148,52,196,158,216,223,59,239,58,181,149,239,129,182,34,54,92,250,150,178,88,217,70,161,229,55,158,253,220,21,164,33,204,182,106,148,249,66,74,228,136,175,140,190,85,144,92,71,97,179,104,243,132,18,55,35,211,74,11,3,233,100,123,81,135,178,176,157,162,37,140,47,72,127,130,56,23,78,6,42,35,125,228,128,42,51,229,248,255,12,137,241,49,230,76,236,58,78,219,239,5,63,224,35,88,163,117,128,187,198,29,169,110,236,167,27,62,106,49,154,76,254,140,134,150,79,157,53,167,208,216,10,147,63,205,212,96,244,189,183,251,168,55,130,170,221,235,197,18,205,70,213,115,190,236,45,27,240,57,133,7,52,200,188,107,246,95,204,185,46,142,31,143,208,245,171,175,135,22,109,221,29,51,222,224,79,25,39,37,249,56,27,143,95,143,40,45,246,35,219,112,18,132,140,235,24,59,147,160,144,132,46,57,43,221,239,64,118,84,57,118,201,37,223,6,116,214,75,96,96,177,30,115,164,82,194,29,205,237,37,60,13,32,211,12,51,145,47,64,22,42,40,188,38,2,195,73,105,162,37,68,246,38,100,172,226,150,34,10,135,103,185,147,254,150,245,96,181,127,242,212,28,61,151,33,25,174,186,126,232,14,59,169,15,67,178,61,114,132,142,77,131,242,192,123,56,109,42,68,109,73,67,193,86,183,85,152,17,132,204,54,216,98,34,187,223,156,14,131,250,210,232,219,1,169,159,226,41,207,206,55,64,50,11,104,23,59,42,33,106,5,140,139,74,105,109,243,144,13,14,187,244,107,39,205,56,183,93,65,180,102,128,169,1,193,177,128,133,232,39,38,134,68,191,224,224,159,79,193,4,99,75,214,232,206,9,34,75,63,168,144,46,113,186,126,46,255,148,83,81,14,24,17,16,111,198,113,2,57,83,92,230,134,43,249,164,24,56,43,244,90,122,103,18,42,129,33,128,168,198,184,126,178,103,180,110,187,236,239,146,188,175,193,149,145,88,175,53,221,0,163,28,238,146,113,79,98,243,20,167,46,249,21,171,99,67,78,14,173,24,246,140,116,224,233,210,201,86,133,63,226,107,178,172,37,237,253,147,211,77,16,95,5,93,254,117,116,250,244,221,48,56,134,59,70,220,7,123,202,255,103,84,181,252,50,211,92,110,203,153,57,117,207,211,5,12,8,190,164,205,244,237,49,212,97,185,120,210,160,24,137,130,204,24,184,212,97,71,247,134,106,252,219,101,249,52,34,165,57,86,44,196,196,239,123,83,217,57,142,163,34,115,128,121,108,190,146,37,221,236,166,66,29,11,108,35,16,211,12,214,222,27,87,60,175,140,240,241,251,64,43,40,68,173,201,53,104,53,255,184,23,39,53,239,67,126,9,33,154,4,62,62,114,148,26,115,102,20,7,211,110,37,240,163,146,138,89,150,65,154,201,54,232,13,99,179,253,181,43,64,161,223,141,79,77,60,147,119,176,50,26,68,78,75,254,177,158,20,137,78,58,253,178,235,221,130,96,228,50,172,212,202,163,174,250,77,121,235,21,50,160,125,68,1,197,140,206,141,160,19,53,251,42,171,171,48,221,180,77,139,57,50,161,24,49,206,252,140,88,213,234,195,85,227,194,207,75,180,110,60,25,182,111,14,11,34,0,245,213,4,15,229,152,12,225,52,85,161,218,230,36,100,140,243,143,239,96,226,65,154,69,77,180,60,242,165,255,173,12,144,85,61,95,68,29,61,245,173,227,186,226,219,250,225,131,82,218,169,230,6,217,242,107,11,51,74,245,223,38,103,174,137,83,134,224,101,21,152,96,106,214,107,172,74,178,73,222,87,144,248,125,22,251,58,236,116,153,211,25,47,9,139,166,65,1,74,5,200,165,40,85,212,174,16,123,148,245,59,122,206,58,234,243,155,208,124,194,181,213,182,49,233,191,254,23,72,158,185,75,233,5,127,32,28,117,15,86,28,151,248,136,244,126,169,255,253,160,62,32,56,19,43,207,87,253,204,10,105,253,139,209,149,200,204,33,145,235,253,6,49,181,6,96,46,179,101,129,170,137,149,4,43,213,120,9,4,171,232,73,92,117,229,213,159,219,24,36,74,122,233,200,47,176,52,74,37,248,238,94,240,224,170,234,134,99,218,134,231,152,10,219,94,112,220,129,57,140,143,170,169,127,122,112,94,126,208,246,235,219,63,61,40,168,81,197,102,4,102,157,221,161,203,25,25,89,96,76,255,52,102,224,126,143,161,246,240,122,42,13,58,191,228,141,252,214,106,198,232,165,177,67,94,104,44,0,7,254,171,209,165,84,141,249,113,130,198,49,45,57,153,148,14,104,28,103,198,93,199,131,138,130,18,178,243,248,21,148,15,223,77,155,72,120,136,151,14,145,74,3,56,113,186,205,51,46,71,122,178,170,249,79,209,30,236,92,136,81,146,163,231,91,57,85,64,22,53,177,98,88,131,127,156,197,16,144,214,119,23,253,70,40,47,220,129,214,255,243,49,216,228,28,88,107,247,212,236,128,8,24,59,147,105,253,222,94,100,22,103,53,210,147,71,63,219,215,115,37,126,169,37,42,198,212,22,238,156,118,21,78,123,118,149,133,97,137,35,81,111,203,93,120,29,60,40,42,225,6,142,176,189,52,253,229,52,139,26,78,181,47,96,31,160,189,169,154,59,213,201,81,162,87,48,176,95,56,84,30,248,235,41,44,220,227,0,194,216,142,212,125,209,43,28,168,117,92,168,165,75,117,152,214,220,39,168,220,48,126,24,60,240,61,6,203,175,147,231,2,239,123,25,1,130,69,47,224,117,49,79,139,92,96,102,95,209,231,254,100,107,86,144,0,13,93,241,29,98,19,211,77,148,216,130,242,237,63,16,165,138,120,9,176,93,5,234,178,223,147,231,156,189,208,85,18,216,19,109,251,100,240,104,68,228,14,34,113,87,170,198,83,72,45,207,19,230,56,106,230,250,129,78,16,139,218,183,177,175,20,208,115,175,129,169,181,127,152,22,179,10,174,170,195,165,200,141,64,82,27,87,46,185,141,29,32,26,100,1,78,134,118,53,63,253,134,66,82,134,140,142,212,10,171,225,144,129,99,87,172,138,85,7,104,40,159,234,166,171,251,95,161,181,142,150,34,224,179,252,3,190,46,197,35,30,40,149,169,70,130,239,116,103,135,177,80,139,60,11,192,188,230,172,152,255,157,117,145,72,82,128,54,53,159,153,218,112,29,43,59,57,18,103,154,238,204,6,138,206,152,146,72,94,126,130,91,33,197,239,200,144,165,167,150,183,218,198,6,114,170,205,32,2,254,100,214,80,74,103,30,7,53,30,45,174,172,49,30,82,165,99,206,112,239,46,122,73,74,219,237,148,220,200,106,129,159,141,166,232,223,110,196,32,159,169,247,211,160,216,178,128,42,235,139,175,219,125,233,108,240,94,12,22,240,22,92,254,16,148,203,154,181,222,138,106,208,195,18,249,162,174,48,58,239,84,176,145,64,160,13,218,217,80,189,201,105,26,150,183,136,224,6,234,80,11,79,192,185,28,91,116,164,54,231,76,12,205,6,19,75,121,152,14,171,190,18,157,200,23,145,92,150,78,150,171,51,85,39,217,156,217,144,135,27,148,144,108,67,237,126,83,251,83,142,5,53,236,77,20,112,218,226,187,87,73,167,238,186,83,205,110,231,246,76,68,132,123,24,228,223,230,208,68,29,49,65,16,231,147,163,183,82,215,59,144,53,38,242,128,59,205,79,59,69,51,225,207,3,120,196,134,170,38,112,177,20,68,121,157,173,97,94,239,170,16,161,255,53,210,54,94,211,56,73,116,29,177,37,79,237,216,106,205,179,52,238,196,58,131,216,29,20,56,65,57,144,59,136,40,179,157,243,210,189,58,115,25,99,94,186,204,109,119,83,50,216,255,140,78,133,117,157,199,42,248,226,9,158,185,57,228,110,99,41,176,183,180,74,230,254,77,11,48,220,98,142,234,83,235,130,107,187,186,233,21,106,126,255,222,98,239,164,184,15,78,150,188,196,111,65,1,12,173,140,207,232,170,151,224,133,54,22,79,201,16,191,170,103,129,159,132,12,32,230,169,172,236,123,76,116,20,6,219,127,51,5,92,199,149,3,188,103,128,152,63,137,24,182,203,187,226,119,188,13,153,235,184,120,227,45,135,155,242,37,177,87,254,81,242,71,168,149,204,165,160,185,212,189,147,128,64,175,68,21,182,148,152,153,83,223,98,79,176,63,253,217,43,165,25,24,29,191,212,124,55,219,114,245,180,4,159,58,45,159,80,40,109,84,86,42,47,133,41,190,169,54,195,153,151,252,9,98,129,51,90,191,144,235,52,79,61,104,101,77,58,220,254,109,28,70,141,43,161,176,2,156,199,208,48,130,174,2,84,189,228,140,248,249,211,212,214,68,44,200,95,211,106,111,244,121,155,80,65,96,75,55,103,71,251,126,72,117,247,10,173,242,107,84,185,139,255,255,249,217,187,173,181,175,17,92,90,242,125,2,29,174,161,216,31,252,254,237,171,143,220,129,86,85,198,87,203,244,201,28,187,153,76,3,59,215,31,75,224,152,30,234,150,206,167,120,101,61,218,150,65,60,182,241,14,121,239,160,175,184,103,228,197,236,115,92,132,238,215,109,71,205,12,199,0,212,62,170,142,65,156,245,150,246,19,178,147,136,225,187,210,170,201,196,85,155,80,223,54,18,84,251,154,161,229,175,190,83,31,186,91,153,215,22,109,28,243,216,163,173,47,177,142,138,146,107,23,183,222,73,98,201,18,16,218,115,82,211,45,91,74,189,47,112,159,240,97,173,17,62,110,28,75,8,211,131,96,48,252,145,146,137,190,17,39,207,138,151,218,57,178,206,236,45,164,218,146,180,161,156,106,242,45,182,65,29,77,21,247,188,108,37,76,210,41,150,31,13,77,149,207,118,63,230,147,161,150,227,102,193,149,65,180,112,64,217,55,59,43,118,93,118,159,220,153,17,69,53,207,147,234,61,7,6,118,17,197,136,103,76,34,4,111,132,170,10,90,126,222,223,156,74,35,115,60,196,66,24,143,195,238,7,61,174,182,231,18,18,167,74,138,94,133,82,106,230,167,231,206,20,40,69,169,176,113,119,70,174,169,231,87,159,145,191,48,188,240,222,109,230,153,70,83,3,72,118,229,29,175,124,33,205,188,219,41,17,106,125,72,180,85,198,43,207,112,255,186,86,40,91,196,231,5,133,169,61,60,214,226,27,139,89,207,185,109,236,147,147,97,78,184,183,206,132,138,62,247,47,235,2,214,135,10,74,90,71,148,127,3,238,116,234,3,229,119,57,199,121,170,187,249,234,133,154,77,71,122,74,164,78,34,217,179,119,37,202,209,68,18,20,30,190,115,110,177,32,94,199,31,217,20,55,11,123,99,103,247,71,70,167,156,201,13,109,112,94,120,101,97,212,209,19,192,222,12,115,138,82,43,188,147,153,23,204,161,104,94,7,6,152,39,251,131,172,231,243,218,217,195,70,148,6,28,1,28,213,82,103,86,22,176,175,78,150,255,252,3,90,27,226,68,220,39,218,31,254,138,229,11,233,187,25,224,126,222,165,66,48,58,4,21,3,5,133,186,239,213,253,255,174,219,31,120,30,115,121,187,233,16,174,172,59,148,161,188,183,55,71,112,37,124,80,65,87,144,105,134,187,187,124,211,82,111,88,180,86,225,106,156,128,198,206,119,192,138,51,146,95,65,149,14,1,18,186,154,94,66,163,122,148,235,5,27,46,7,87,214,202,88,135,109,218,217,180,190,189,126,221,180,254,231,251,155,61,43,193,150,28,36,130,114,235,223,135,89,209,245,174,161,5,44,61,231,254,197,230,98,38,208,206,161,60,248,179,137,229,45,227,237,136,212,242,242,59,204,16,30,150,126,61,46,42,178,112,47,22,72,229,83,252,68,205,205,33,147,143,110,156,87,163,52,190,171,201,65,205,118,243,41,200,217,132,81,58,220,57,214,88,46,226,253,245,216,48,57,222,3,165,112,79,96,2,254,52,93,183,131,168,75,247,107,135,9,114,38,7,54,244,173,164,154,79,183,44,189,52,2,241,86,131,126,205,75,161,239,214,95,213,84,173,48,45,74,255,221,158,164,234,224,248,154,36,92,77,94,71,13,255,216,159,11,200,8,232,218,46,50,52,174,23,200,164,237,26,211,96,171,120,30,201,67,215,6,186,189,76,158,63,108,235,66,64,110,73,201,131,177,213,159,206,239,105,45,42}, {191,243,16,123,111,32,138,167,206,175,172,139,81,132,174,156,161,61,167,218,16,81,233,130,94,63,13,252,116,158,11,54,254,236,29,213,252,73,157,167,85,80,139,88,63,128,190,127,76,121,98,218,2,228,59,50,29,160,243,200,149,132,43,52,209,141,64,156,248,225,26,99,29,189,20,84,0,63,149,231,109,135,104,182,115,124,200,153,153,162,82,23,224,16,161,17,29,96,246,35,4,171,174,215,250,137,171,100,23,243,1,48,173,176,167,208,30,210,31,229,1,193,168,246,102,52,7,84,122,236,84,107,156,103,189,163,11,29,13,194,34,245,107,137,215,17,163,28,144,24,87,204,42,165,188,112,32,194,220,129,158,242,120,112,113,123,195,123,177,54,168,209,247,48,44,84,103,243,241,198,74,5,228,31,7,95,32,69,246,157,229,217,46,243,28,135,173,42,240,173,253,102,204,112,180,233,107,40,145,100,26,110,8,39,107,110,39,209,252,210,216,86,190,78,181,52,111,37,152,40,225,175,134,80,245,199,164,90,149,188,63,59,176,222,206,38,164,179,90,85,142,56,122,14,195,123,253,227,192,188,84,137,119,74,176,127,174,98,246,85,51,206,7,55,221,104,40,193,133,184,169,102,177,138,108,138,156,194,17,68,56,221,181,198,146,54,209,57,35,111,20,47,254,144,112,215,157,72,72,214,13,34,186,229,100,52,135,85,79,201,146,50,14,114,67,149,68,71,52,92,62,246,133,16,183,151,42,221,66,46,194,217,76,255,193,41,135,110,170,141,29,220,116,163,239,109,199,24,62,223,63,170,164,215,38,22,65,95,35,220,143,193,230,182,195,181,16,42,219,85,70,100,90,167,41,11,126,63,50,90,44,124,213,230,196,62,119,116,253,72,172,180,246,253,211,242,183,235,101,150,15,77,233,227,81,71,163,237,92,5,101,82,162,254,2,76,108,93,20,125,44,22,113,241,125,128,239,178,232,255,222,176,142,182,253,126,115,80,239,161,220,242,190,73,18,173,114,186,99,132,245,56,157,233,51,217,217,48,1,62,20,214,218,155,239,236,186,69,214,78,154,179,81,235,247,6,179,43,221,56,233,49,176,91,143,162,155,249,28,8,34,205,69,72,193,94,226,43,181,74,246,165,212,180,162,166,7,244,66,27,100,201,117,78,19,27,155,99,189,242,227,231,235,191,27,74,252,45,162,55,93,241,209,137,130,132,238,218,2,72,95,197,230,68,125,90,235,1,1,50,255,243,13,80,221,64,57,134,73,197,230,188,238,135,214,240,46,188,141,187,100,115,251,127,46,58,167,99,250,237,112,105,32,76,11,179,77,19,142,245,21,63,126,120,34,95,254,131,247,69,31,183,58,150,193,184,108,163,104,129,76,77,167,86,75,155,45,247,183,77,34,202,255,240,240,40,47,161,240,189,164,230,79,120,235,79,0,170,20,101,10,22,222,71,231,158,136,90,87,251,127,48,129,72,10,181,4,0,154,19,104,188,87,155,242,250,137,207,217,230,53,10,242,26,129,73,87,203,73,220,66,3,41,49,55,75,68,116,117,208,244,179,200,143,98,79,241,149,127,86,5,127,123,66,49,11,156,240,149,154,72,241,200,15,153,219,28,16,71,237,220,155,101,93,110,165,169,120,181,135,160,139,173,251,67,52,84,150,235,254,29,47,100,109,235,216,6,97,247,155,245,132,174,34,127,73,31,110,123,197,190,168,15,23,140,188,214,217,117,64,77,199,150,232,60,33,136,52,194,227,25,37,197,148,204,204,215,103,94,27,243,25,170,254,108,49,244,108,23,159,82,90,125,27,117,34,120,66,192,2,8,132,5,93,151,220,76,254,195,226,161,86,75,68,176,83,17,112,93,217,254,42,183,23,68,36,91,155,188,122,171,138,45,50,106,19,140,232,74,90,209,34,76,248,248,238,93,160,224,194,110,103,152,138,107,119,214,18,136,15,165,182,215,20,40,197,104,37,15,48,228,34,231,230,114,103,192,234,57,201,56,14,203,23,221,180,134,172,200,110,200,107,248,131,253,152,252,173,129,70,68,2,166,89,151,90,216,142,23,196,211,44,35,215,150,155,226,84,221,227,214,126,10,214,20,95,216,219,250,182,191,227,16,110,238,118,111,1,131,243,169,106,122,68,249,209,155,127,41,133,55,100,65,115,47,31,101,23,120,232,142,185,180,107,162,145,30,53,63,226,174,39,213,134,188,0,226,64,180,235,205,154,83,65,194,88,86,216,5,79,3,60,56,157,110,113,92,222,60,173,99,99,79,45,64,69,119,234,123,41,67,99,143,125,145,62,27,14,179,91,152,240,152,160,72,137,153,117,6,158,241,222,205,30,166,232,91,184,20,36,171,199,183,220,179,35,8,182,152,105,236,49,194,88,156,213,218,22,161,175,42,254,127,230,181,82,4,85,123,211,203,160,57,189,231,115,196,189,249,167,195,41,180,17,211,235,126,139,101,221,0,14,108,139,103,92,231,199,158,140,47,116,253,188,200,169,72,104,94,100,66,20,212,2,61,197,134,77,248,73,55,61,252,231,139,134,200,24,203,79,82,250,75,52,109,220,128,61,34,54,39,246,169,108,178,238,97,234,144,190,56,106,32,33,19,149,229,74,131,49,71,37,14,154,127,170,180,161,16,5,201,38,164,245,72,168,228,53,47,82,193,84,105,26,5,234,2,74,60,65,53,199,112,60,252,128,94,178,211,179,175,243,50,52,55,234,6,96,53,90,158,125,107,248,18,59,146,51,75,66,150,182,105,120,89,249,34,250,107,86,108,22,140,101,96,151,29,239,207,240,115,215,85,57,149,194,161,48,8,43,89,151,95,41,50,157,187,128,238,44,172,208,57,17,78,41,193,170,44,247,208,231,103,97,170,170,95,2,73,121,198,49,182,132,153,132,149,198,34,190,3,218,89,227,123,3,147,45,99,125,229,118,204,252,12,24,250,200,41,97,56,219,32,117,248,195,73,146,75,231,27,126,44,172,164,18,146,185,126,131,68,42,244,134,151,137,245,204,162,182,14,224,28,7,124,66,143,178,184,96,235,21,29,124,218,115,130,42,7,81,59,79,125,20,30,254,198,143,234,10,243,12,80,138,58,143,184,195,159,52,114,23,70,227,22,188,245,121,140,21,3,72,107,241,115,182,188,109,179,187,70,169,157,218,37,56,191,196,159,199,119,248,88,170,50,22,116,165,65,191,228,192,154,255,54,19,5,179,244,151,62,116,0,108,175,84,174,128,93,12,8,177,66,110,134,189,125,235,25,103,109,130,133,213,144,102,81,95,56,93,238,203,12,123,74,208,158,56,241,14,121,54,218,124,232,156,193,192,215,113,197,69,101,202,196,131,43,119,73,128,170,145,33,197,83,173,51,199,200,234,58,236,10,143,54,114,54,85,159,130,28,54,225,133,80,224,195,189,35,50,71,97,30,73,10,236,76,10,241,205,184,132,61,110,127,187,99,137,198,40,50,49,160,104,166,49,184,79,130,155,79,200,28,105,189,120,192,166,165,47,184,237,119,157,148,37,86,90,23,87,215,194,71,246,162,162,17,151,80,133,70,231,100,139,171,88,9,113,173,6,233,242,212,124,246,209,235,233,227,75,47,38,205,46,87,74,140,146,41,9,14,165,190,181,232,15,228,183,251,19,87,226,45,178,254,65,231,65,207,44,186,47,176,99,181,144,46,185,188,211,229,106,213,249,170,202,54,168,149,222,95,83,222,58,242,61,164,109,183,56,218,0,31,93,66,120,207,172,62,178,205,92,205,203,68,225,204,65,127,46,87,195,229,142,25,28,90,238,193,201,181,201,207,30,80,217,226,176,230,105,187,168,47,171,66,17,74,50,73,200,142,1,138,38,57,0,22,254,127,236,214,2,0,222,170,48,41,34,124,122,136,22,62,97,37,13,109,194,59,71,90,62,12,224,13,135,64,168,253,101,229,133,130,24,191,171,97,206,1,33,114,178,21,11,89,208,199,133,210,253,11,100,47,225,59,115,45,235,210,92,40,129,221,203,111,192,152,32,43,90,162,66,137,37,87,230,166,201,162,1,133,53,142,38,38,80,140,191,73,68,117,194,185,142,19,9,124,166,248,117,96,182,48,155,98,50,150,103,214,56,172,241,165,84,246,152,61,161,99,109,145,50,181,46,150,108,33,34,133,151,174,118,53,241,182,197,92,127,251,119,40,166,53,126,54,144,10,247,130,16,27,49,18,212,129,241,170,181,71,131,248,25,92,135,59,98,38,111,177,208,179,170,195,60,154,101,206,68,118,101,229,178,145,178,48,27,8,97,177,2,222,70,124,195,201,239,78,97,202,178,111,198,110,200,161,123,112,166,140,80,98,147,44,201,11,46,129,106,41,208,126,90,186,106,113,150,211,70,87,209,183,128,80,124,148,173,242,129,2,21,33,167,1,148,213,102,64,222,176,237,115,181,47,207,163,65,0,188,6,209,90,19,190,195,109,74,182,47,178,253,167,236,159,126,56,242,125,98,222,198,168,246,38,203,246,201,79,132,99,36,4,225,84,79,208,248,221,204,138,121,66,136,61,93,29,43,246,185,204,136,86,186,126,165,141,166,130,216,83,140,112,63,218,134,14,218,125,2,11,32,116,239,156,110,25,5,246,181,4,51,107,50,191,72,247,227,177,180,134,174,109,115,175,219,46,235,42,184,12,218,230,88,190,32,156,123,190,166,67,56,225,97,4,163,106,239,243,121,103,48,139,43,22,72,62,246,149,53,76,126,247,230,156,168,210,143,252,111,227,232,10,67,124,147,193,215,36,41,191,46,197,87,50,221,243,60,11,172,117,18,59,16,235,203,176,169,236,219,106,74,243,100,12,105,84,83,135,114,36,37,187,59,206,29,147,51,122,3,99,235,186,142,215,191,72,54,225,93,171,59,71,8,199,122,38,24,70,194,167,150,172,0,225,181,203,141,142,240,61,203,74,162,7,152,117,52,17,33,67,43,186,72,191,87,135,160,238,40,27,151,150,116,4,80,17,170,18,119,178,72,52,214,48,252,25,165,194,169,186,60,233,148,197,100,243,177,173,35,177,32,164,251,55,79,163,122,139,85,163,27,109,96,142,167,8,85,0,136,146,124,207,80,87,195,185,212,91,153,150,126,99,244,184,236,128,108,172,34,206,239,4,105,26,254,44,121,107,76,175,49,140,148,55,17,214,76,9,165,212,166,208,196,238,34,156,243,171,5,66,161,128,48,143,70,101,180,87,241,121,13,73,25,244,22,161,254,160,231,123,61,146,197,65,76,64,242,198,187,52,37,46,146,79,54,1,42,227,23,255,33,244,148,220,59,30,237,178,37,229,75,226,153,222,42,53,198,63,85,140,124,186,36,99,79,46,177,62,74,138,41,102,217,75,216,209,50,25,190,95,125,82,116,72,229,120,52,231,248,192,38,153,134,247,66,67,144,153,104,135,179,80,33,72,50,129,171,24,239,219,176,76,161,125,24,32,194,47,228,221,187,18,173,145,103,166,76,249,54,68,43,204,174,118,94,73,150,71,220,210,91,12,170,166,95,237,190,20,189,88,232,108,162,233,2,219,75,215,156,232,168,227,131,237,116,209,39,31,214,170,37,83,141,207,73,67,123,36,154,80,25,39,83,187,253,99,99,179,189,68,185,47,170,177,242,74,117,4,82,147,57,180,42,221,125,173,149,197,16,162,143,94,91,32,200,74,115,4,105,39,104,51,162,88,148,243,174,56,234,92,90,146,5,4,226,206,52,44,126,148,43,200,68,79,8,234,246,121,121,238,42,250,246,178,245,182,250,172,50,113,40,234,132,224,92,82,109,233,49,148,41,54,83,230,5,47,68,197,62,45,116,45,108,83,138,102,62,38,174,109,147,3,154,33,228,154,242,159,159,132,0,140,146,67,36,2,110,110,137,230,74,252,168,157,200,47,217,93,254,3,153,140,226,128,58,220,242,30,187,168,64,226,233,172,172,53,48,188,124,251,25,193,146,48,154,106,178,88,90,56,104,221,26,71,237,148,195,136,35,246,64,206,17,102,132,182,210,141,155,212,225,140,160,114,203,219,163,242,207,67,68,227,46,50,188,22,143,79,229,53,38,40,32,27,92,171,127,130,24,210,130,179,212,14,86,34,156,109,200,172,162,85,222,151,145,250,45,36,245,49,56,246,146,29,114,20,103,250,153,215,227,203,17,152,128,89,69,56,23,14,97,188,145,52,7,56,60,204,62,38,109,2,44,213,182,253,194,203,141,184,118,31,125,226,204,199,216,122,191,97,174,159,225,128,213,54,115,228,143,240,242,163,157,202,172,156,225,74,147,150,176,238,99,179,15,89,47,178,190,86,14,36,240,168,141,89,61,236,6,101,34,4,236,94,127,34,34,116,115,35,175,51,207,86,99,149,23,69,104,117,150,133,57,163,252,59,227,201,208,173,143,191,233,57,46,120,179,104,128,166,149,76,67,214,66,11,233,72,123,100,149,246,96,68,245,31,62,84,146,235,74,184,229,212,253,149,199,200,88,204,201,50,26,223,126,75,71,185,11,213,55,200,186,72,163,88,48,155,16,12,208,111,31,63,235,205,189,147,238,29,178,82,114,152,40,135,18,121,171,229,8,97,112,64,4,174,104,144,57,10,138,1,186,13,20,144,141,116,245,138,150,209,211,241,162,12,42,178,79,141,20,47,30,111,181,240,220,146,206,247,184,138,212,223,62,81,85,174,32,173,234,112,248,164,197,200,205,27,77,193,47,193,252,82,36,155,110,181,73,30,124,154,225,137,179,139,16,14,84,108,225,236,255,112,190,132,96,41,76,189,194,246,212,207,252,247,129,14,145,61,5,16,16,218,241,235,247,227,8,166,19,104,181,136,13,108,69,119,235,187,185,253,179,182,236,91,107,11,149,216,245,237,99,83,146,249,164,168,225,153,53,74,250,77,176,148,166,122,108,42,44,112,154,213,243,75,154,70,188,114,67,94,129,242,188,103,40,221,56,225,148,192,188,11,126,107,84,15,56,120,157,187,3,23,189,2,79,20,100,199,28,76,194,185,199,64,197,90,207,10,83,105,183,161,148,165,173,220,47,159,175,175,228,2,56,163,1,52,205,100,75,52,161,146,49,55,132,51,40,201,162,65,176,18,72,204,1,1,225,198,96,59,121,223,128,172,196,196,4,219,80,151,214,46,216,105,129,215,228,213,51,110,253,255,223,153,169,31,75,188,142,95,50,189,196,108,8,193,204,41,255,140,69,84,193,253,135,72,18,121,114,16,96,14,115,73,212,154,99,54,164,166,79,130,249,108,159,248,153,215,95,159,10,93,73,19,128,225,2,172,123,30,83,101,255,236,47,146,233,240,116,43,135,89,3,109,123,20,162,111,176,190,102,177,63,15,39,18,61,101,75,51,114,101,133,106,131,150,183,203,166,252,10,102,0,11,77,224,208,114,186,66,161,62,104,74,130,33,236,254,104,123,44,73,193,10,224,56,214,163,173,101,245,151,194,32,127,173,131,86,180,212,209,84,113,208,245,123,37,15,6,178,195,175,6,183,223,168,213,170,249,138,4,15,86,114,80,26,169,241,65,249,206,215,238,136,116,92,156,61,233,241,134,60,236,62,117,163,63,217,3,83,134,115,25,133,164,211,171,158,127,1,117,250,23,233,108,28,99}, {146,106,182,177,212,239,231,175,245,83,65,152,209,215,139,118,36,202,132,225,252,182,237,203,107,77,81,162,138,119,13,171,7,12,255,41,83,72,245,116,246,138,44,124,115,104,68,81,92,163,227,10,111,79,225,193,52,35,184,76,54,190,64,161,138,56,64,127,169,89,97,198,188,118,255,31,17,54,233,175,212,254,88,139,167,250,217,189,59,183,188,122,95,114,239,16,34,246,228,172,29,217,53,106,218,99,88,61,91,71,165,212,21,238,206,126,59,24,26,121,117,27,51,252,28,43,61,20,41,138,231,214,12,160,221,151,233,104,216,32,65,49,179,184,214,160,128,86,103,108,129,158,46,78,178,17,244,93,240,155,196,174,142,217,107,129,229,178,83,57,33,72,192,50,64,177,231,180,221,107,115,254,156,87,43,0,76,1,164,139,156,70,128,80,5,15,119,116,237,184,246,12,203,56,242,223,22,115,177,235,147,181,159,5,87,11,235,11,176,174,79,108,225,31,67,175,228,115,138,190,206,181,20,42,59,155,67,56,140,239,110,92,228,187,10,255,60,84,169,10,119,180,63,59,177,239,217,227,143,249,104,95,158,136,49,84,123,103,200,217,235,201,24,121,30,203,126,80,95,226,76,238,188,147,64,19,147,252,243,48,129,176,5,244,70,40,187,120,210,28,96,121,139,80,86,129,170,100,50,149,104,193,188,180,231,129,140,61,202,44,151,76,149,199,138,23,30,92,203,215,180,83,202,70,164,209,57,80,48,251,89,154,146,242,252,112,76,146,27,184,136,232,21,158,124,92,230,53,142,163,144,162,85,62,136,50,204,159,226,69,80,139,87,172,50,108,186,62,80,43,219,172,192,113,194,178,220,239,180,67,172,109,34,171,35,204,77,47,69,58,32,159,252,234,139,202,82,199,167,50,171,108,198,19,139,94,16,200,188,58,201,167,255,185,53,71,229,173,99,137,183,175,107,175,33,203,139,120,136,160,116,165,12,251,126,126,133,98,77,151,158,141,110,219,237,191,23,150,173,179,244,64,33,78,107,200,73,164,175,249,34,25,146,234,20,119,240,229,7,186,196,154,226,175,228,107,6,231,34,56,15,140,113,7,83,33,225,200,220,141,79,133,36,85,138,253,155,99,80,115,156,199,122,4,62,148,5,53,157,80,162,91,224,233,59,224,145,173,229,123,17,138,131,185,202,93,207,216,62,178,171,222,246,13,144,129,198,215,197,190,52,158,96,243,6,180,25,163,23,130,254,99,139,115,100,182,89,11,82,11,91,201,194,219,111,233,155,251,5,212,160,57,186,226,49,214,232,246,187,53,130,142,16,137,247,54,118,65,255,101,57,207,161,212,200,46,56,64,163,116,58,0,43,7,117,214,39,109,172,175,216,115,187,219,142,242,184,180,163,205,182,222,153,41,150,209,29,127,174,31,112,196,92,236,176,183,243,37,161,3,114,217,199,194,217,137,122,75,239,133,238,83,241,194,125,61,242,58,242,92,29,51,160,127,29,246,88,99,75,35,186,20,209,151,17,177,237,136,183,205,179,237,138,94,64,110,206,239,202,201,241,249,112,0,3,80,250,54,255,104,196,216,114,241,248,199,12,4,29,226,100,136,64,20,105,202,153,217,47,30,139,85,55,176,144,32,133,227,54,255,77,32,81,134,71,33,29,76,231,39,34,144,193,108,13,84,159,45,61,63,159,191,15,80,78,77,86,139,34,208,141,91,128,171,94,165,31,85,84,147,146,236,51,29,75,98,27,17,219,81,24,54,56,222,163,210,1,68,14,219,89,6,22,183,90,155,90,171,85,183,234,65,123,134,130,67,84,196,246,73,37,93,194,13,68,154,224,231,204,186,104,150,70,255,204,82,20,116,26,114,84,247,217,216,250,240,239,30,240,157,3,22,145,48,207,63,196,120,109,111,56,229,47,179,182,221,199,133,239,33,18,63,180,34,88,25,130,82,196,1,105,38,122,206,73,22,228,140,53,158,246,238,150,226,43,28,195,170,100,37,141,31,203,22,0,65,23,249,78,27,116,50,26,129,188,229,41,181,157,185,116,188,186,172,100,67,254,193,201,59,119,78,255,199,174,19,76,16,40,97,248,208,195,111,237,220,78,201,46,132,29,41,100,248,158,67,35,194,85,2,42,155,2,41,229,77,86,35,112,118,32,30,244,35,145,20,21,159,9,32,148,87,227,241,54,32,6,121,5,104,88,101,233,95,26,75,14,229,171,221,151,128,239,78,32,168,57,48,106,183,217,21,210,204,91,181,75,245,30,218,236,53,98,126,74,245,115,185,59,135,101,255,249,223,11,251,21,36,180,74,95,152,95,91,218,238,63,96,197,35,79,120,61,24,167,92,171,193,80,207,184,231,12,224,6,85,110,92,242,137,58,112,145,206,170,251,76,212,43,177,67,145,206,58,181,5,124,47,227,105,221,15,142,219,200,139,194,216,162,189,211,3,93,154,154,33,125,252,164,146,49,145,152,169,135,97,214,131,172,146,101,53,145,218,120,0,107,72,82,131,243,100,77,147,118,156,151,152,228,68,58,39,35,139,223,135,19,173,7,147,99,248,205,15,45,9,210,184,58,92,206,189,244,48,161,216,12,48,70,164,53,18,63,164,140,121,185,68,250,50,222,7,93,215,232,21,38,221,197,153,231,76,90,100,215,29,152,226,187,156,122,78,221,184,137,232,217,172,81,71,195,141,224,176,168,103,227,243,3,48,217,147,21,71,239,18,18,135,95,182,74,234,38,101,209,157,240,204,219,112,137,16,10,110,134,124,241,102,55,150,234,39,34,92,187,110,127,103,48,11,114,183,94,127,118,219,166,170,29,59,172,17,171,145,153,53,193,202,66,112,139,222,214,121,49,70,118,182,97,211,180,176,14,238,33,104,47,161,51,239,223,131,182,90,190,157,162,159,125,181,134,2,89,254,62,199,74,96,163,243,128,118,65,70,150,18,40,100,204,55,151,117,110,48,194,222,110,219,182,208,30,210,165,100,184,7,139,25,184,187,125,213,65,66,194,62,102,61,132,28,154,129,231,172,70,19,2,171,212,50,206,103,232,106,231,227,222,155,51,77,211,206,148,77,42,43,12,118,217,164,116,164,186,119,205,138,244,31,154,173,96,40,12,133,244,153,214,40,104,232,117,135,226,114,99,223,254,83,252,6,66,84,207,244,105,178,253,129,203,30,211,217,4,102,137,159,104,48,12,215,145,96,124,242,188,7,6,68,201,60,46,80,82,202,103,237,108,72,162,172,245,57,39,215,165,223,220,238,152,79,142,184,42,49,157,82,117,220,226,172,75,193,48,161,246,195,224,199,111,86,116,233,121,57,16,7,199,133,35,240,179,238,12,164,120,58,69,66,38,4,67,68,154,103,208,133,182,114,151,226,195,142,124,62,21,135,213,183,200,72,193,183,19,166,240,200,33,53,178,227,2,176,70,104,249,222,205,145,252,22,38,59,150,179,117,124,94,194,139,31,97,169,231,128,114,184,170,17,0,196,234,235,209,86,190,226,123,90,215,205,30,204,73,109,239,223,239,47,42,72,172,159,71,3,147,118,74,9,180,10,76,246,137,219,50,220,54,208,79,42,197,211,64,164,162,67,79,170,115,34,73,215,46,206,27,62,28,45,210,26,179,80,102,146,96,18,102,101,53,204,82,252,237,38,152,157,247,42,194,169,11,67,107,110,170,90,128,40,19,62,154,113,20,177,40,133,62,83,73,45,33,32,191,6,9,179,185,87,163,14,112,119,0,62,133,200,201,7,7,62,69,0,198,134,40,205,22,36,93,0,194,137,83,254,127,124,129,94,204,41,58,213,39,221,169,170,221,247,209,4,116,100,242,199,143,144,251,85,165,204,33,78,205,121,26,142,96,139,70,234,105,19,106,52,109,51,221,104,68,191,138,183,223,20,119,108,210,148,249,16,192,155,146,0,25,152,97,9,212,56,234,53,171,170,117,197,148,86,71,122,177,210,198,238,199,57,140,59,81,172,23,100,17,188,207,90,215,111,176,12,217,254,144,73,157,227,197,25,89,171,146,67,99,142,201,20,215,185,217,138,153,67,183,55,219,225,205,52,13,246,184,222,233,69,29,23,70,22,166,255,253,22,20,80,90,192,222,29,137,255,17,127,183,139,171,178,101,64,194,180,252,26,158,255,223,0,55,55,23,32,17,28,98,139,110,38,83,165,132,33,16,189,8,183,122,157,96,123,51,209,98,237,103,175,168,247,32,94,29,238,226,87,30,96,253,115,51,106,49,29,22,183,222,168,119,68,137,179,80,130,71,174,134,112,245,235,45,119,60,17,26,147,113,153,94,149,210,112,170,149,227,126,172,228,216,241,229,243,102,156,246,51,112,76,233,178,11,153,231,76,6,71,249,114,229,10,173,229,213,201,207,39,135,99,191,34,238,247,71,151,223,196,220,242,236,213,232,142,20,91,243,135,80,161,114,88,239,242,232,156,104,81,172,168,186,178,105,107,145,68,188,97,177,2,98,218,151,254,94,76,121,253,80,254,153,49,141,82,190,203,147,35,195,136,97,242,148,114,136,124,125,201,177,240,236,109,105,198,206,47,193,254,52,177,210,149,221,42,123,162,174,102,92,104,239,140,74,69,193,156,180,68,150,52,235,195,180,228,44,125,219,147,138,94,2,76,121,137,206,102,6,32,96,56,97,97,203,255,77,46,96,50,249,31,215,32,95,52,237,101,52,109,189,231,23,135,76,248,238,0,18,87,253,2,169,115,181,178,157,121,188,0,21,213,232,65,245,3,228,220,247,234,57,112,74,138,57,245,172,117,175,214,180,97,159,109,44,4,93,169,192,33,4,246,186,101,175,243,231,191,202,140,138,232,110,206,122,81,75,244,54,212,124,80,43,10,77,19,24,69,35,145,33,201,190,23,252,56,121,211,138,91,68,78,155,72,177,161,30,35,85,223,236,177,149,202,47,202,213,151,182,250,65,97,132,178,11,214,32,60,82,150,57,144,93,140,204,160,224,17,117,64,92,13,5,150,226,206,220,255,18,204,157,226,199,160,100,107,29,100,171,151,126,151,163,242,88,116,229,136,0,92,229,200,234,59,132,144,209,174,150,187,97,80,141,101,165,45,9,128,127,247,147,87,189,59,71,154,83,165,233,96,181,225,156,19,131,245,76,236,19,222,124,232,102,147,17,136,134,38,29,142,156,193,67,248,88,137,191,27,13,89,170,9,189,155,30,79,78,103,61,159,99,252,103,165,149,67,88,96,189,179,13,14,32,88,118,196,88,3,162,47,108,83,3,253,23,196,107,217,219,124,65,191,48,23,158,83,77,1,80,79,87,126,54,137,121,19,212,205,169,65,102,82,192,7,26,115,232,171,38,200,19,194,241,1,144,45,116,35,227,252,108,80,101,28,233,143,79,217,29,174,1,20,48,248,65,175,101,5,10,109,210,122,140,220,28,194,214,81,184,31,194,175,140,134,140,196,110,122,161,0,217,126,178,172,218,131,10,71,9,125,157,145,127,102,182,230,138,118,119,106,60,249,234,25,1,243,17,121,141,191,151,15,228,243,164,104,115,142,235,251,15,64,6,187,57,154,109,164,144,88,144,244,15,202,61,61,220,198,243,181,187,190,157,105,239,192,44,236,186,25,205,77,217,35,175,204,250,26,232,192,227,198,156,17,43,205,35,247,133,213,48,37,104,48,255,102,76,183,3,107,18,201,38,140,137,3,109,147,58,254,72,36,227,46,129,190,58,245,32,159,99,113,184,35,199,253,138,216,24,221,255,228,21,168,234,239,170,88,66,1,159,30,36,250,190,122,246,212,227,202,168,60,203,180,53,87,91,109,223,63,219,168,151,130,14,96,22,148,200,153,164,158,250,233,137,196,51,11,128,229,233,97,210,198,78,253,40,198,29,29,123,135,26,136,185,41,21,232,21,251,65,133,189,127,199,8,107,116,153,131,116,74,115,215,46,78,64,199,140,172,108,222,189,239,90,200,177,222,251,5,169,143,248,83,119,208,104,133,113,198,216,91,57,185,100,195,57,22,146,117,103,126,210,7,93,118,21,128,240,171,219,110,92,232,248,135,0,249,3,204,236,69,180,253,254,147,216,247,254,246,201,59,53,53,152,58,236,201,32,170,116,79,255,162,141,241,199,67,101,35,136,241,209,175,106,36,128,242,46,207,240,3,235,35,38,107,102,77,206,7,179,206,16,158,219,246,146,85,157,75,112,75,147,189,235,174,131,23,12,74,94,32,55,254,19,224,142,76,126,13,188,183,132,161,16,131,181,47,5,203,232,20,131,157,68,210,197,134,186,214,234,159,91,224,65,178,49,42,135,64,4,239,26,80,27,68,224,26,25,77,242,70,128,21,84,29,57,51,10,125,96,166,36,105,192,132,84,253,212,210,204,202,13,255,26,108,126,221,252,255,34,59,170,212,117,254,207,94,126,133,226,199,166,20,75,103,145,194,121,120,66,207,92,217,186,162,224,61,41,149,2,50,140,98,69,68,234,173,109,188,94,184,132,77,165,158,177,163,185,21,163,153,139,207,71,156,104,142,159,232,224,5,5,1,242,81,34,125,85,86,187,85,201,136,130,200,166,167,153,225,249,193,88,106,28,213,141,187,231,43,147,166,29,174,242,116,95,5,71,3,104,182,155,39,150,1,113,155,108,156,81,36,96,131,218,141,203,46,104,23,8,123,217,12,114,208,132,107,183,215,225,150,217,228,137,97,88,97,215,30,188,142,104,196,124,163,159,36,59,24,122,108,218,196,162,81,76,237,139,72,109,160,173,204,141,31,173,208,195,156,113,36,17,112,128,54,82,163,116,66,108,53,120,247,161,127,34,181,125,178,197,224,29,31,27,87,133,138,36,142,165,28,107,189,96,36,183,139,138,209,54,149,136,11,45,57,83,212,180,75,185,66,166,193,123,21,231,175,2,127,53,242,180,141,211,13,81,87,114,103,68,213,112,160,211,124,218,223,34,34,254,183,4,32,72,165,240,117,202,44,186,232,47,80,236,178,13,156,209,58,239,198,217,107,253,152,129,93,110,90,34,28,238,28,123,177,232,176,150,143,181,97,72,90,168,53,92,63,43,219,38,24,25,251,252,78,85,68,223,51,24,188,43,135,210,71,7,222,125,35,251,131,183,131,147,230,199,183,73,97,159,85,79,201,218,134,220,190,244,92,71,134,108,2,53,201,251,94,180,38,110,129,204,189,142,186,249,165,26,53,252,141,20,0,249,183,20,187,167,250,252,239,208,72,175,118,67,112,156,200,52,151,37,0,194,5,246,201,234,217,161,53,243,2,142,31,183,171,166,179,70,142,130,98,174,152,4,106,117,218,104,165,26,45,121,34,206,34,239,89,48,195,254,72,184,253,212,160,208,88,232,243,127,18,254,105,35,126,80,153,179,188,247,47,170,110,34,107,243,215,69,54,210,254,120,121,173,23,109,40,20,174,239,89,155,16,138,78,126,39,13,18,185,104,195,173,213,127,14,74,221,22,50,25,197,72,114,90,107,206,1,23,10,210,89,192,209,122,109,112,75,32,209,173,225,64,181,81,243,197,89,139,255,179,74,77,217,217,105,69,206,27,32,27,15,112,238,71,141,22,42,32,25,98,227,201,61,91,115,209,205,230,100,58,52,221,49,79,224,184,184,175,231,136,83,227}, {129,170,180,173,8,180,120,200,162,54,168,245,73,25,130,136,19,129,168,28,169,144,189,42,104,45,31,220,162,33,249,18,26,77,47,16,34,60,198,136,143,4,11,147,80,131,94,124,33,27,238,254,196,157,130,188,137,30,181,209,105,192,198,244,37,86,124,116,248,10,149,229,20,113,253,190,156,185,138,196,248,175,135,114,114,81,98,26,152,19,148,62,239,102,201,164,67,14,69,87,84,173,96,121,230,93,158,23,95,32,143,76,244,95,251,223,31,106,204,82,113,207,184,197,212,208,237,221,125,231,132,43,54,85,151,184,119,34,76,88,221,26,245,39,217,70,65,67,144,56,104,193,161,40,185,160,126,26,129,191,6,149,46,26,218,12,228,83,231,184,199,181,164,177,46,18,141,232,105,41,12,139,36,231,65,204,150,91,113,90,87,224,37,144,41,19,130,5,89,154,98,152,184,122,183,109,233,245,148,90,223,5,238,172,131,28,160,29,133,197,34,163,57,176,225,20,108,61,113,19,157,222,197,42,221,114,231,72,205,247,205,113,13,20,245,161,222,155,119,217,211,213,120,1,200,197,195,211,84,175,151,106,98,33,159,245,173,64,186,246,120,218,193,192,116,177,88,4,153,196,151,134,232,187,93,190,139,179,35,52,64,83,42,154,170,13,197,125,187,164,180,198,153,93,171,202,7,54,33,231,118,205,31,82,197,134,19,16,186,209,134,245,161,193,185,121,31,5,25,173,85,180,176,211,121,226,31,210,55,141,241,147,13,150,191,33,187,9,39,219,219,161,99,85,180,41,36,44,227,168,3,248,7,216,186,74,99,7,112,56,110,90,43,118,20,173,194,36,73,72,205,54,142,107,199,246,211,5,189,219,30,244,51,103,196,40,122,186,169,61,158,164,88,130,45,12,179,101,65,10,17,185,145,221,31,41,145,114,255,154,91,17,64,255,253,69,115,144,228,27,54,203,16,140,68,168,202,186,114,145,199,90,58,154,40,16,98,232,7,40,89,174,61,108,110,40,138,115,190,104,199,227,165,170,119,237,183,215,9,13,188,198,169,161,145,128,189,39,107,180,209,178,92,62,120,194,116,89,64,187,167,237,169,95,224,243,13,103,3,126,244,18,215,46,51,227,100,230,48,44,191,206,65,216,119,129,45,57,149,71,214,143,255,80,154,25,252,6,160,12,89,87,132,30,206,111,114,63,152,70,221,167,217,223,148,12,231,123,85,158,230,85,62,74,34,242,189,187,70,121,72,3,63,180,82,191,93,107,189,116,128,49,156,115,241,79,75,217,23,125,139,8,104,234,143,220,67,25,135,55,109,12,46,139,24,38,215,171,232,194,239,195,49,228,26,245,5,135,217,161,169,222,12,198,98,87,25,19,247,113,6,45,15,53,7,11,77,66,66,99,146,190,0,214,130,132,100,208,39,120,180,54,144,94,35,116,65,92,29,174,86,123,40,23,104,166,221,107,202,141,98,2,204,197,201,160,28,2,23,20,62,137,159,199,126,32,91,127,56,177,208,80,127,22,15,248,117,79,232,19,185,142,4,150,58,208,162,255,220,39,242,16,246,228,100,21,246,151,7,242,32,0,25,120,35,39,51,141,201,223,239,77,189,70,39,215,196,9,75,142,24,39,133,110,161,245,52,64,43,17,206,73,112,9,1,188,8,216,8,67,69,89,112,166,209,90,9,22,246,195,117,11,198,42,23,108,153,250,224,7,165,173,197,115,116,169,227,182,219,254,246,99,246,134,236,6,156,71,100,133,150,46,126,94,126,74,14,245,168,192,154,234,82,67,57,14,200,189,17,217,251,93,34,105,132,87,192,31,50,105,84,69,57,148,30,10,45,197,12,48,76,97,215,18,185,138,181,72,185,116,21,132,116,124,105,31,69,12,175,242,246,216,223,132,236,189,34,107,145,98,227,217,188,52,166,85,75,119,70,168,141,91,144,144,221,219,214,76,161,196,111,198,74,76,95,8,252,237,132,131,243,74,45,36,142,33,93,30,253,182,86,177,254,164,250,92,173,145,2,202,6,184,163,220,245,129,41,233,151,115,54,192,22,145,203,17,206,172,209,104,195,198,56,36,165,47,116,250,247,52,143,206,111,59,244,19,186,177,140,132,71,134,101,10,20,221,165,208,164,205,131,82,90,47,148,245,136,122,70,157,44,125,123,229,65,13,161,157,148,26,88,11,251,204,62,170,72,104,238,122,223,181,67,23,58,179,50,98,250,231,232,255,74,122,32,32,149,37,111,129,104,175,10,105,113,120,254,201,140,112,64,88,205,180,73,201,188,220,29,15,119,193,134,43,100,42,9,177,123,8,103,146,74,18,107,218,97,80,247,246,201,123,187,194,72,98,161,161,54,31,84,205,66,21,124,176,125,78,153,123,100,59,127,64,118,7,156,38,198,207,123,18,152,140,90,245,231,72,233,56,142,160,127,81,5,61,130,152,122,166,33,149,18,13,133,205,121,156,75,88,206,74,37,105,108,143,17,177,75,158,129,113,20,73,180,156,190,70,217,66,161,65,131,158,218,17,19,122,16,196,179,167,153,55,242,44,102,195,218,113,18,243,184,105,6,22,104,212,103,223,10,171,117,156,209,23,36,200,211,152,205,6,206,7,26,120,9,139,151,240,77,40,92,110,43,98,102,158,204,149,251,18,150,202,71,178,32,226,48,75,3,84,65,124,89,71,218,148,223,210,163,152,86,170,22,87,10,38,53,244,28,83,202,252,59,176,30,237,184,198,62,131,26,75,188,162,146,88,251,217,238,18,22,229,116,92,238,116,241,67,212,79,31,106,199,26,233,54,88,102,208,246,119,124,51,37,146,26,255,196,128,181,156,208,31,106,113,27,111,55,167,57,20,63,211,164,85,250,188,118,54,199,41,76,218,106,27,239,12,199,83,91,147,254,242,35,35,222,73,222,164,240,181,30,197,209,10,52,243,170,199,121,22,41,35,129,209,35,11,81,43,49,154,225,187,134,68,79,87,115,46,46,129,245,111,136,155,181,198,64,165,173,64,128,224,216,113,171,107,26,45,45,243,149,192,138,96,103,70,54,142,118,212,150,17,156,60,168,110,121,12,224,133,211,217,189,222,195,181,118,166,164,183,219,174,141,6,24,138,81,133,176,174,55,110,191,94,154,199,174,148,221,206,8,196,53,220,221,43,21,185,46,32,127,250,96,108,202,51,236,116,7,136,43,32,241,90,186,16,235,130,44,216,106,123,175,0,198,190,51,183,166,150,68,132,82,223,139,211,3,212,106,45,136,159,82,24,127,162,187,155,48,29,2,147,145,40,218,123,211,64,204,130,43,169,248,127,211,34,242,68,91,246,70,102,61,26,111,25,39,44,52,117,4,230,234,137,107,25,170,34,125,125,71,120,210,26,25,23,130,135,213,116,62,4,214,40,161,90,105,246,119,220,97,249,92,60,180,251,243,56,136,170,74,110,93,186,232,97,216,164,67,141,93,249,6,156,127,28,234,134,13,137,235,184,146,74,147,240,157,87,207,183,246,197,112,37,118,108,130,155,181,84,220,124,53,245,231,45,193,76,10,74,131,149,146,33,176,60,246,4,89,8,248,162,196,139,201,43,4,177,50,189,70,24,114,53,169,139,52,193,208,210,235,200,74,254,235,232,217,205,213,254,60,5,19,158,160,91,30,184,73,209,195,94,30,203,170,91,19,150,74,49,234,127,93,124,48,189,150,11,161,204,195,153,0,112,137,229,210,17,242,64,21,240,221,144,186,82,11,127,202,249,51,90,108,246,49,167,153,128,229,181,112,133,115,5,128,114,225,72,129,176,164,144,118,70,253,209,11,201,235,184,196,251,204,152,169,46,116,101,12,216,154,77,51,44,179,152,22,60,196,109,42,155,221,253,114,135,133,246,182,13,157,2,244,51,13,3,57,63,184,171,104,136,18,225,11,36,14,3,61,29,100,17,30,16,161,216,203,138,237,167,78,116,21,202,182,71,235,58,94,130,185,157,237,101,183,47,156,203,228,112,52,136,198,192,208,93,248,93,136,58,176,18,33,57,148,47,27,180,58,23,58,67,164,36,253,108,29,189,35,217,64,7,104,228,213,254,162,96,50,92,179,173,128,109,84,162,16,17,168,43,231,72,77,186,189,81,224,16,115,57,147,163,114,47,1,117,44,155,158,232,240,118,108,69,250,181,218,234,196,74,105,221,229,127,103,248,32,133,70,29,157,224,214,71,68,1,186,205,126,199,184,66,207,179,194,170,250,225,27,37,147,16,218,113,46,198,144,172,10,161,181,252,0,57,75,245,215,255,128,114,88,66,221,166,165,106,214,176,190,5,84,128,211,234,10,92,88,37,146,45,210,121,116,237,69,146,163,228,72,112,178,67,169,241,153,160,40,242,145,172,85,216,65,169,106,239,223,106,132,171,143,32,74,102,9,50,195,63,2,28,184,133,82,42,25,214,252,73,129,155,174,239,39,97,133,5,193,242,56,221,34,140,200,172,6,7,136,241,249,88,87,110,19,122,2,223,182,85,76,167,142,93,25,136,74,171,40,21,56,248,35,135,22,87,104,159,19,153,71,38,39,33,101,85,82,170,126,130,91,158,98,205,158,35,144,79,106,153,106,118,224,203,85,239,238,201,124,14,4,94,188,66,118,204,8,192,0,40,189,119,234,188,201,34,82,84,199,180,53,212,120,29,142,127,181,47,135,16,137,154,117,225,241,151,252,80,218,27,83,193,214,124,139,129,65,181,91,151,227,158,177,240,227,251,72,0,34,26,234,244,67,21,143,208,99,76,60,145,81,32,145,50,181,66,145,223,194,37,85,2,108,119,65,170,116,137,74,74,213,241,42,245,102,109,150,24,37,23,33,74,51,102,194,97,99,158,96,124,15,213,243,25,198,93,88,185,223,25,77,33,62,144,101,119,190,6,107,95,131,176,186,65,34,110,60,156,125,77,154,190,17,148,255,172,191,130,1,180,233,26,7,215,74,203,47,157,145,150,149,210,199,67,121,61,249,194,206,108,65,119,218,234,2,86,200,132,253,197,60,69,127,15,110,193,16,56,249,107,132,190,22,185,233,204,103,119,49,223,154,175,206,198,148,203,121,6,15,124,170,28,148,125,200,132,73,105,191,72,235,211,19,47,99,20,229,51,213,111,56,72,31,66,195,72,37,70,69,126,122,97,81,215,254,183,231,150,183,151,113,161,23,147,103,243,164,21,106,173,64,2,173,209,157,18,67,116,81,36,137,202,193,149,100,110,62,202,220,192,148,183,8,47,241,84,252,170,97,70,114,163,50,26,230,254,200,29,228,138,244,202,2,97,21,109,127,170,89,111,242,58,175,78,181,66,170,116,6,160,239,247,135,35,226,239,122,14,169,234,5,15,59,46,79,219,0,145,29,221,118,109,237,111,33,19,177,5,219,181,193,160,216,143,178,238,53,221,75,178,50,110,117,147,156,135,254,111,60,166,164,21,12,86,117,198,162,155,118,130,33,9,249,52,98,198,238,231,113,37,146,254,159,254,232,124,77,155,22,84,49,27,21,205,56,132,27,23,233,45,225,110,185,181,130,2,95,71,40,82,74,127,7,128,74,101,162,23,155,86,60,147,216,126,148,65,99,113,155,34,149,49,55,217,210,17,249,139,95,75,132,22,77,11,179,190,136,229,14,30,249,34,83,0,180,43,29,25,40,50,76,161,48,5,152,112,230,96,86,14,137,56,83,187,237,68,185,109,248,119,245,227,45,244,92,77,175,74,30,244,144,23,115,175,82,48,190,220,6,212,170,23,131,24,152,58,195,35,16,218,255,138,216,75,59,181,245,31,166,248,69,20,113,199,13,20,83,104,90,33,129,14,236,157,161,154,17,84,106,77,133,110,9,20,211,15,249,231,252,183,100,102,234,121,131,129,201,138,115,152,166,62,167,154,178,209,177,213,4,64,118,165,193,106,216,43,67,11,217,43,13,195,224,239,80,23,97,61,212,189,48,72,172,225,147,209,85,203,46,37,182,147,117,253,105,43,8,216,94,173,23,235,120,112,166,75,91,210,250,123,35,20,100,255,232,74,117,152,42,228,214,167,248,132,84,120,48,194,41,67,61,41,78,15,78,185,151,35,39,204,107,33,221,83,146,167,161,41,95,244,249,31,169,76,73,149,67,56,175,252,196,66,161,61,176,201,204,7,136,24,242,141,97,115,220,215,26,6,125,23,101,122,4,136,143,77,44,146,96,108,66,36,100,59,252,204,126,163,107,24,247,57,232,41,151,4,217,179,216,126,67,163,143,178,213,68,226,114,208,156,153,176,254,204,130,191,201,203,136,240,112,72,25,170,105,229,136,168,158,68,155,161,174,63,81,231,250,119,182,242,172,228,119,84,14,204,167,151,64,185,21,51,78,138,197,53,103,219,12,12,131,243,190,202,111,181,184,85,45,13,87,174,227,231,201,228,229,198,183,34,102,158,2,145,121,27,185,51,144,119,133,199,205,190,16,54,200,157,117,25,121,204,6,218,240,148,110,107,201,220,236,50,246,154,21,226,219,235,79,1,73,172,125,239,44,123,204,98,226,213,28,160,208,135,114,76,47,190,148,173,208,114,88,136,220,22,206,26,22,53,72,184,235,162,18,248,2,240,46,252,1,58,220,224,26,208,54,65,152,207,39,58,30,249,7,202,65,152,196,179,27,132,82,129,173,205,50,7,74,122,117,13,34,143,89,17,239,9,252,180,198,122,200,106,127,245,35,11,220,139,4,237,15,76,9,118,161,33,37,208,84,93,15,243,129,131,138,15,180,241,220,67,56,108,141,255,1,249,208,138,221,214,207,44,149,24,50,170,150,53,62,6,225,53,3,226,100,55,178,175,94,27,142,149,61,143,154,94,254,122,158,213,174,123,42,80,46,204,116,238,242,116,205,144,10,145,220,183,182,184,124,91,109,230,218,54,143,104,216,128,144,158,189,131,3,3,151,112,49,182,115,177,15,145,83,32,238,6,88,118,61,126,165,18,191,217,138,198,116,237,253,53,167,138,244,182,24,155,184,231,29,189,202,156,227,26,243,253,158,147,62,128,55,43,253,248,242,144,52,154,139,12,121,97,105,112,249,77,32,240,110,89,14,233,87,171,40,99,134,151,120,40,158,72,63,35,93,113,134,146,101,238,239,86,220,59,73,49,131,37,97,128,209,51,136,42,10,68,90,214,173,153,55,114,78,220,180,15,234,212,241,235,70,121,192,172,67,0,91,67,232,21,153,63,113,168,57,59,5,7,226,41,26,27,68,50,228,63,247,82,245,243,38,78,218,165,164,165,202,153,94,21,253,162,187,66,131,82,53,85,234,47,80,247,22,135,14,23,196,84,107,230,32,90,21,42,48,255,135,147,182,46,114,187,64,242,156,1,238,109,148,179,38,223,131,46,123,126,252,69,132,102,152,59,66,158,128,241,241,194,146,63,177,52,181,26,134,99,226,156,138,186,107,159,218,247,236,56,142,193,46,138,98,128,218,247,166,231,85,46,86,72,190,204,147,226,177,202,189,100,57,178,92,190,92,26,249,103,167,175,75,206,119,85,135,89,251,106,21,196,50,85,62,165,34,129,12,220,126,187,72,87,100,231,53,25,127,35,36,85,116,148,21,84,11,234,59,164,71,145,22,191,213,164,6,16,58,159,208,105,147,41,85,185,157,142,115}, } ; static void test_decode_857xint32_impl(long long impl) { unsigned char *x = test_decode_857xint32_x; unsigned char *s = test_decode_857xint32_s; unsigned char *x2 = test_decode_857xint32_x2; unsigned char *s2 = test_decode_857xint32_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_857xint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_857xint32(impl); printf("decode_857xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_857xint32_implementation(impl),ntruprime_dispatch_decode_857xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_857xint32; printf("decode_857xint32 selected implementation %s compiler %s\n",ntruprime_decode_857xint32_implementation(),ntruprime_decode_857xint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_857xint32_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_857xint32_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_857xint32_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_857xint32_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_857xint32_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_857xint32_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_857xint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"857xint32")) return; storage_decode_857xint32_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_857xint32_x = aligned(storage_decode_857xint32_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_857xint32_s = callocplus(crypto_decode_STRBYTES); test_decode_857xint32_s = aligned(storage_decode_857xint32_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_857xint32_x2 = callocplus(maxalloc); test_decode_857xint32_x2 = aligned(storage_decode_857xint32_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_857xint32_s2 = callocplus(maxalloc); test_decode_857xint32_s2 = aligned(storage_decode_857xint32_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_857xint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_857xint32();++impl) forked(test_decode_857xint32_impl,impl); ++test_decode_857xint32_x; ++test_decode_857xint32_s; ++test_decode_857xint32_x2; ++test_decode_857xint32_s2; } free(storage_decode_857xint32_s2); free(storage_decode_857xint32_x2); free(storage_decode_857xint32_s); free(storage_decode_857xint32_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_953x2115.c0000644000000000000000000012670614705505543022375 0ustar rootroot/* ----- decode/953x2115, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_953x2115_checksums[] = { "39b5338022fa2952cd9c3c6db7835107bc32c4575da8efdac2a776fd4c0f02ed", "2d52fd93fb72fb5224486467d1bfda7fb00feceec559befba17736f00b93f304", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_953x2115_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_953x2115_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_953x2115_ITEMBYTES static void *storage_decode_953x2115_x; static unsigned char *test_decode_953x2115_x; static void *storage_decode_953x2115_s; static unsigned char *test_decode_953x2115_s; static void *storage_decode_953x2115_x2; static unsigned char *test_decode_953x2115_x2; static void *storage_decode_953x2115_s2; static unsigned char *test_decode_953x2115_s2; #define precomputed_decode_953x2115_NUM 4 static const int16_t precomputed_decode_953x2115_x[precomputed_decode_953x2115_NUM][crypto_decode_ITEMS] = { {1569,-2460,567,-897,1788,1440,2379,411,2679,2856,-291,351,-1143,-1482,-330,-2376,1716,417,-1824,138,2502,1758,-405,-2160,2172,1671,2334,-2160,-2433,-1632,-2832,1446,612,-630,1422,-2385,-2532,-1629,645,-1560,1626,915,-2613,-2136,1881,2715,-399,-522,-2976,1290,2343,-918,-1593,1743,666,-231,-882,-2127,-2568,1494,-453,2883,2139,-3,-1470,1932,723,2247,378,1701,1509,2952,528,-99,2526,1692,1467,2379,-1863,1371,-183,-2175,1128,858,-1752,1587,-3030,-2187,-1554,2883,1146,-2295,-612,969,-2871,486,-993,1971,2898,477,-1071,552,2514,-759,-3087,573,1227,222,2961,1452,-3111,2802,-2805,975,-996,-2004,-576,-2931,-1956,-621,2943,3000,375,-1482,-327,1152,309,1914,1050,-120,3153,1557,1266,-1338,597,2946,1233,-855,-2202,255,-1032,1626,-2268,-570,1680,1527,1344,150,579,2997,-105,-852,2283,-117,-1200,954,1569,2343,1713,-1578,150,-2085,24,2715,2682,-87,-564,-2562,-969,1566,-354,2649,-1221,3051,2286,-1362,-2067,-2892,-249,1002,3129,-2913,-2940,2259,447,-567,-915,1593,834,660,555,1434,309,-1350,1095,1617,1068,2697,-1401,1608,960,-1623,1737,-2940,1857,2643,915,-885,-1878,894,-2037,-888,1371,-543,-3102,-2055,-2406,-1839,2937,-1257,930,1722,-912,804,-1083,-2493,2034,1716,2451,-1890,-543,1779,3123,-420,-411,-693,960,-2520,48,-2505,2115,2700,-2877,1905,-1665,2808,-1680,1413,2919,705,-1617,-3135,-2046,1665,-2421,-2556,591,2478,-648,-1440,-3033,291,2115,1215,-2241,-2670,3060,-1755,2427,-333,1518,2901,-2898,-2424,1872,2388,-339,-2133,9,1377,894,-2613,-2529,186,-783,3123,246,-408,-1515,36,2148,789,1848,-1908,-2529,1872,1458,-2055,-1494,-2151,-1080,2886,-2796,-1632,-1743,-72,2106,-1677,-2742,1029,-2742,867,168,1098,-432,-87,555,-1281,-1461,2256,-228,1608,-3009,-408,-2433,-3030,1860,-3141,-1632,2199,-720,2847,1524,-2367,-2802,-2025,2793,2103,-2613,273,-1818,504,717,-1047,-2901,-834,267,2835,-1338,1638,-2379,147,918,-402,-552,855,-522,2538,-456,-2199,1296,-2076,-213,-1923,-702,-483,39,-2694,-69,-3081,1275,-3168,-1704,-735,-2526,-537,1239,-2928,3063,-2292,2235,-2958,1779,-2385,474,2502,2145,939,-2847,-1497,2253,312,2004,-603,-1059,-1269,1962,228,1566,1857,474,2481,-2814,2394,-516,2235,2595,-594,2301,-1113,1926,-453,1431,510,-2244,2121,-2445,1779,2616,2925,1266,3075,-2382,-237,-2937,-3159,-87,1419,3063,-2604,1203,474,2139,2676,3108,-258,-2355,-1272,1899,-288,-1272,-1287,-930,1761,1989,-135,615,-2442,336,978,-1689,-2034,558,-1623,-2646,1728,93,-2442,258,906,-2793,2478,-1530,-1401,-1440,408,-396,-2133,-3138,-1062,-1929,-714,-1206,729,-981,-1656,27,2568,-2031,-1176,-120,-3030,399,915,-2070,-759,1800,-3141,2196,-2751,2169,-2922,168,-1416,-2736,-3129,-3129,-2874,903,1308,-2085,-2784,-2478,690,120,-2547,-786,-2343,1875,-681,-3120,-252,-2226,-2034,-1236,1119,-807,-276,1398,2154,321,1218,-1407,909,714,-741,1338,-372,2241,-3159,1533,1683,2607,-1479,-1164,-1044,2967,-2946,2607,2112,201,2676,2208,1263,-2229,-441,1824,-2169,2157,-2856,-2247,945,-2784,2247,2559,1689,-1908,-3150,2544,-357,-1557,-1755,-414,1137,2658,-1719,249,984,-1875,330,12,1206,-2220,3048,-1575,2451,-414,939,570,351,1938,2676,1470,-2895,-876,-492,-2112,1695,2772,-2682,1083,27,39,-1707,507,-2703,1605,2352,-663,2127,627,363,-2187,-1422,-2373,1740,2010,1497,159,1278,48,-2985,-2112,1272,1881,1110,-1311,-2409,2238,2325,2508,2031,369,468,2010,909,1089,2877,2895,2421,-1875,-3150,3141,1152,1380,-1575,396,405,-1755,507,1137,837,2529,-1536,2292,-2790,1899,-1500,1344,273,-924,1101,-1890,-834,-2013,-717,-2865,-1866,2469,-3129,1560,1878,207,297,-1443,-99,2061,-621,-1386,2307,2541,-3087,861,66,3120,-1050,2664,-2943,2133,-1680,-1236,1374,-3159,-2991,1467,-2136,1026,-2154,-1953,-651,3072,1242,-3132,3030,816,1287,2724,267,579,-2682,-2361,2778,57,3060,843,1404,-360,69,1497,2499,-2076,1566,1305,-1455,-3039,-885,945,-1773,-1803,1590,-843,-1266,-1770,-471,2841,-1491,-2085,-165,-1701,531,-1092,468,-1254,-2343,2985,2514,123,3027,1101,42,-1101,-2943,-3171,2637,-2142,-1800,-3000,-2820,1863,1653,1269,-2913,-174,3108,-1461,-600,-2484,348,-2040,2904,-510,-1158,2967,1032,-1977,-2130,-207,-444,2106,2817,-927,-3048,-2937,-2955,2763,-3123,-2589,-2211,2694,-3063,-132,-414,-1134,-948,1092,-1140,-1488,3027,2820,2376,3108,-2856,-2247,1149,-2985,-2118,-750,-861,2418,-2901,-564,-2271,-228,-1737,-2643,-2997,2313,-1107,312,-1560,-1959,-2841,-1299,1443,1728,-2313,-1821,465,-153,696,2016,2715,1887,-2961,-2685,-1560,-36,-1005,-2001,-1122,-2703,-1245,-936,-1449,-1476,-1794,-2493,-174,2484,2070,1506,828,1869,354,-543,897,2619,-2208,-1236,1755,-1548,-2991,2979,681,-2139,-1431,-2424,-2709,2448,2913,-675,-261,2430,441,2880,-2010,387,-2754,2334,1641,-1149,-3141,30,-1581,-297,-3093,-3102,-603,-2352,609,-54,2955,2061,-1605,-2265,2841,-477,642,2517,-2187,-561,-12,1782,2250,-1011,1353,-2970,2805,-702,-2976,1293,-144,114,-2091,-1242,39,-1194,816,-2328,2166,-579,1812,1905,2376,-963,381,-1218,-1020,879,-1944,2808,-2718,1971,2004,3027,1470,12,-2394,-852,-2835,2640,-885,-363,234,-597,-3144,3102,1167,-3045,1188,-2616,-804,3030,-2994,-3048,3045,-1002,-2964,-2160,-279,1428,2658,1005}, {1389,1158,-750,2667,-3102,-3135,-291,363,3012,-1875,1815,2829,-1002,2082,-2088,-1668,-2346,-2460,93,-342,2586,1470,-2496,2865,87,-2535,384,2733,2097,-948,1611,-969,2112,-810,-1017,1905,-345,522,-1425,-726,-984,1104,1527,-2382,900,-177,-2781,-1248,330,1935,1452,-2304,-117,750,-1623,-2925,159,-1935,-840,609,-2514,-276,939,2898,681,-597,1866,1533,1206,-1629,2655,3039,-1878,-1470,-3162,-2565,1218,1548,1494,234,-1173,2604,909,2661,-1401,-2880,-2706,1998,2328,-1761,447,-1797,2982,-2361,2535,-1857,-813,1293,-201,2193,-1194,-3102,-1431,-3069,-1863,-2247,48,-807,-225,-2292,-912,3036,-2160,-813,-201,-2517,-810,1515,3135,-657,-1254,3120,2736,99,-2430,96,-2211,-678,-2298,-324,-3138,1134,-1329,-1440,1554,150,-1989,-699,2439,-1875,1605,-1665,1557,84,-1323,2631,1677,-3,-2349,-2655,2979,1167,-2598,1833,702,-2013,2001,-336,-1545,-2904,-2739,1293,-2778,1176,2541,2061,2199,2766,-27,-2289,-1002,2334,-2238,-2277,921,1362,-2619,-2973,-1638,-1302,1863,-1668,1638,-1752,-1179,2319,-1116,615,-90,1878,-2907,-198,-156,-357,-2352,1368,2718,-2745,237,2283,-807,378,2451,-1050,2757,-1131,-2928,2268,3156,-1290,-2415,-1179,1851,1824,-1308,1371,1974,645,-2229,-129,423,-1074,2706,-2661,-1701,2085,-1347,1182,-2508,-342,-996,-2436,555,354,1203,2088,-813,-2271,-1812,3036,2427,-1701,1032,-2232,1707,2835,1788,2517,2724,-858,-3024,-2505,-954,-906,-1950,306,-903,3081,-1068,795,1563,-2712,-2664,1848,363,-1494,-291,1854,-1134,258,-1926,2148,-2880,1908,2520,1449,939,-423,2526,-1350,2664,606,279,150,3048,2880,1542,1479,-1437,1572,-2958,1944,330,1890,156,-2223,696,1959,1962,1509,-831,1401,-648,996,-969,-474,2550,-1185,177,-2040,2139,732,-813,1137,2511,-1002,-2289,-2562,2817,1584,2211,2352,1218,-246,-2949,2223,-1338,-2127,1347,-2202,1326,-1242,-2982,96,-993,1425,360,1959,3060,2373,2706,3042,-2418,-978,-2571,1950,-1050,2619,1455,2487,-2553,-870,-585,1476,-1329,1278,-1500,2313,2577,3048,2139,-1302,99,-1164,-996,546,-2724,2553,1572,18,-480,879,3165,-2445,-2901,-1527,1035,1650,2466,675,-60,-2799,1086,-2133,6,-1815,-2577,-3054,1119,-3036,-1260,2052,-2052,1935,1278,1050,1725,2403,723,2955,2682,1845,1623,-120,9,123,2229,-2223,-2046,-2247,2730,1497,2214,2418,2325,927,-2901,-3105,1065,-756,-237,1947,1350,1146,-1374,1479,1359,1497,-2409,-558,1458,2859,-2802,-2781,90,-1275,810,519,2970,-3075,630,-918,-609,-1182,699,3072,-1239,-447,-291,-870,1530,-240,2760,2541,-1269,-1716,-2175,2829,2715,-819,1929,-708,-129,-1521,129,2286,-2211,-1395,-2925,1500,-3096,2685,978,1182,2925,2136,-171,1635,1167,-2697,2604,-2562,2061,2979,954,-1116,-198,2862,2016,249,2871,309,2349,-1968,-2370,186,1500,-1323,1731,1872,2373,-1869,-1959,1830,2370,-1008,-2613,2043,2820,-2175,1926,-69,-630,-2385,393,-1428,-1428,2997,-609,3069,-2502,1080,-2415,3141,2064,2049,-2979,1977,714,2880,-2841,2616,1212,2220,-2139,-2067,2703,504,-1464,-2238,2304,411,-1986,2763,2085,1077,-1137,801,2415,-2664,-435,-3012,1695,72,897,2511,1548,-273,-2223,2283,2943,1431,2109,714,-1980,987,711,2925,-1203,-204,1296,-2955,-2028,1092,-705,2610,150,-2865,-96,-138,2175,2100,-1941,-3168,-228,-1590,-1071,3051,1191,2313,-1599,2790,2805,2166,-342,132,-306,-774,2358,2280,-2637,1677,-2601,-1386,-2733,705,1662,-771,1527,-654,-831,2781,1671,2058,1401,1104,-2484,-1752,-2511,-738,1485,1869,-3033,-1695,-1041,-1245,147,2187,1248,2511,1620,2379,945,-3027,-2742,-1098,66,18,-177,12,1947,-2712,3132,213,-2688,-1755,-786,-2151,174,1791,549,588,-2217,990,930,-393,1224,387,2520,-1812,-2127,57,-276,456,-126,-2046,96,-1563,2595,2409,-1995,-2826,-1548,-2805,801,2367,-1542,-2751,-1581,-1599,-2013,-3027,-1044,-2775,3078,-63,135,-2976,315,-621,-1992,774,-1815,-2196,2247,927,-627,567,1044,2649,-1215,-2100,-684,-156,1545,-3132,-2661,-96,-1446,-1089,1605,1602,-1005,1014,1905,-3150,2526,486,-1047,-657,-1182,-1917,-2502,921,54,-234,-2139,366,-393,1695,-849,2637,-591,1902,948,3087,1389,15,-3033,-1185,870,1017,-864,1494,-2814,582,2520,2814,531,-1842,873,-126,-2667,2013,-1305,-2217,2310,-2844,330,-2076,-1896,900,-1917,2355,-2169,291,429,255,2127,765,1080,-198,756,1734,-1518,435,3171,-1209,-1542,297,1935,-2823,-1170,-342,1992,2730,345,1026,228,1512,81,2934,-2970,1788,591,1443,2511,-3126,2310,-2436,1827,-1416,2268,-1683,759,-21,2409,2865,1113,-1719,2004,-2889,2469,-669,2364,-813,-2127,2964,-294,-3138,-1842,2454,1998,69,-1146,-1755,486,-2844,120,-3090,-882,1584,-390,-1050,3069,2232,-957,3165,-1626,1188,966,-660,-333,-1608,1086,843,1896,-2298,2460,-2979,-2862,519,-1356,-546,2247,1464,393,-1620,-2832,1164,-150,-183,1131,-2061,1788,-1647,483,1947,3096,807,1473,645,-2580,-477,681,1212,2835,660,-495,-1731,-216,2451,2334,741,408,-2745,-396,-3165,1854,-2607,2346,-1494,1203,1038,-2598,1509,-156,-1251,-63,1917,327,-1002,-2052,-2346,1401,-648,-372,2865,-651,-600,-2973,-2850,-1278,-1194,687,-2928,-3147,-2154,669,-1728,1125,-1953,-1056,-2943,-2235,-3171,2298,-597,3099,2940,2238,-753,1449,-504,-591,393,1917,-1710,414,1212,2544,2136,1941,234,2334,-870,-2244,2577,2538,2139,-2250,198,-2670}, {2886,-621,-309,141,300,2541,-2610,2118,1866,3015,-27,-2286,2970,21,399,414,993,1626,-1785,2766,-2400,1995,-477,-1479,-189,-3147,-459,-1137,2733,-1275,2256,1158,-1878,-1056,-1290,-1818,-2895,951,87,498,-3033,-2808,1035,-2838,1647,-2181,864,-984,-1080,-1035,-861,609,-1974,2244,717,2625,2685,-1863,-2061,2481,2523,-75,1041,2037,2529,-1167,2382,2490,-1569,-402,-1389,-2373,-2730,-276,-2604,-1848,1374,1779,483,2145,-9,-249,2838,2466,909,2550,1539,1848,132,2925,-1638,-417,-1662,93,-1341,1752,-2295,33,-426,339,2028,-3051,-2970,390,738,3165,1104,-3081,-1791,-2778,1851,2124,-1479,-3060,-318,2550,3003,-2382,858,-1974,-552,-1179,393,-348,-1137,-1188,558,-294,1464,1233,-2502,-2739,-2835,540,-2964,-1812,-261,-2814,-900,744,-2340,420,861,-2778,3021,3141,-2952,552,-1527,-2250,-1974,1056,-2607,447,-1266,-1089,-330,-1266,-2223,-738,306,2613,-2121,-2301,1866,2013,-1602,1698,666,-2535,1221,408,1122,-1389,0,-1473,2193,-969,-1389,600,-2586,-279,-852,-939,2379,-1488,3069,102,1542,720,2874,-3153,-2592,1542,-1950,-2571,186,-2298,-2841,-750,-1839,-381,3054,-2538,-1395,312,-930,2484,-951,-1650,-156,882,1596,1689,-3156,2730,1923,2484,-1788,-2172,1854,2730,198,2763,2229,-1185,594,1485,1437,-1086,1080,276,1290,1707,-1968,-645,-2475,-888,480,-492,-1374,-108,2904,-978,2511,-2655,1320,2877,39,-1632,-300,-2589,-2220,-1665,558,1155,-750,-2610,-2889,-2220,2457,387,-1968,3126,-1161,45,-1791,756,-648,-1089,2832,-2256,-333,-1035,-273,585,2034,-2121,-3063,1587,837,1251,-2562,-2715,-1224,2463,-870,666,-1533,2283,1095,570,-1314,2115,-1464,2445,762,-2592,-2652,1113,981,741,-993,-141,-2439,-2538,-849,-201,-1545,-36,-1326,2538,-1662,-2730,1545,-2439,2181,-318,-1242,732,-2976,1821,-2499,867,2652,-1014,351,-759,72,1392,-2166,-2649,-366,-2700,2445,2550,2358,-1257,-894,2496,-519,282,2838,1014,-792,2865,1728,-663,-2253,-963,-1386,2397,-747,1671,-1887,-2844,1107,-1566,885,2637,-2391,-1353,981,1074,462,33,-192,1302,-2058,-1617,1218,2526,-1050,1242,-2265,-2265,-948,303,-2913,-1548,-1326,2832,753,-390,51,-3042,726,-2109,1902,-2715,-1587,2202,1275,1128,1662,-1419,1380,-1521,1719,1077,-1467,-18,-2781,315,-1929,2448,-648,-1818,-2442,-279,-1137,-552,-1881,2388,2817,-930,-627,-1440,438,-1671,1722,-1914,210,1569,165,585,690,-1041,-2607,1128,-3066,-1854,-2580,-978,-3036,-435,1500,-1038,-510,-2814,-2196,3000,1209,3063,2379,192,-585,-1716,-3111,2337,-2217,-123,630,999,-2877,540,-1479,-81,-2343,-753,2778,1224,-2820,2277,-1350,2490,-255,-1176,2607,291,-51,-450,2049,-1152,588,9,-1035,3111,1608,1134,2274,3105,-2667,-1332,2808,327,-1008,2031,-2004,2883,-2277,-1332,36,-1503,1983,-1314,-312,1209,-1737,1437,-36,-2796,-2847,3144,-2295,-603,-2565,522,1104,1902,-156,-174,-1287,-885,-585,-657,2322,2907,120,-1908,-2457,2745,1329,-2277,1839,1587,-837,1767,2817,-3069,1731,-2277,1041,2169,-963,2130,546,-1236,-939,423,2733,876,342,-492,2673,-321,2202,2385,-1485,-249,150,1086,-2802,3099,-3156,-111,-2298,2493,2517,-891,1077,-531,-2058,-1251,-2571,750,-2202,-12,1917,1695,2109,2637,-90,1536,1890,1530,-1395,3054,570,-168,-1866,-186,783,-999,-555,-606,570,-1347,2031,-546,-2949,216,-2052,-1578,-3123,-2037,918,1926,-1347,2973,864,1533,3,2532,-570,2292,-2586,2133,-876,369,-2781,-231,-2346,-1743,-1779,-1824,2640,-3159,957,1989,-2178,-906,-2115,-1875,3156,-1140,-1917,570,-1326,-1605,2925,1443,951,1860,-1317,-1554,-96,2238,963,2946,1701,-1581,-2502,2463,1719,1626,321,-2004,-1119,2967,-1152,1014,-1992,2799,-3036,-2616,1194,-2730,-1956,-2496,-2634,-2184,-1848,-465,-1074,2517,-1575,1926,-255,-711,789,-3105,2517,-915,-297,-288,1365,-1437,-1509,-2400,1512,369,-2988,-2220,1401,-2811,1680,-2271,2961,2733,2952,3129,-1230,-1257,-1680,-9,1815,-903,-1827,-1605,-1887,345,2712,1764,3018,-2073,-1020,2721,1164,-9,-1599,-2079,2229,-2016,1353,-1683,-984,2373,-1869,723,-2748,2643,-600,-630,-1386,2238,999,-2112,2187,-36,-2817,495,2880,-2754,1266,744,-1800,2523,-1491,669,1875,243,-30,2313,36,801,642,-804,1308,3117,-372,-1986,1695,-2835,864,2043,168,2124,-2544,1086,-99,-513,-414,561,-984,-393,1557,-987,-2745,2130,1827,1410,2001,-2091,-339,2784,1281,-1359,456,-1164,2058,-1938,21,585,-2658,-1677,-2484,1305,1146,1125,-1440,2562,1149,2562,2022,3033,2958,-1314,-1980,1830,-1254,1224,-798,-2058,3138,-426,1485,978,-495,-1584,2280,933,3117,-735,1875,2703,6,1962,993,-2709,-474,1659,2361,681,2508,-1668,-309,-351,-1902,-1479,-2070,-669,-333,-210,-1713,1914,2949,1335,2100,2529,-585,-981,-2829,-1566,894,648,804,-450,-2454,1341,-1134,1449,-1548,195,-2571,-957,2529,102,-99,-2469,-1050,3108,-1908,2106,-1404,-2001,-2352,732,-2949,-2433,-2712,336,3006,-1104,-1428,-2040,1623,-6,-123,777,546,2487,-387,-621,1512,90,3162,-405,-2625,-1959,-267,-1347,876,9,780,1803,1233,-2535,-726,-174,-1332,-2988,-1788,-3066,-162,-999,-2235,-2295,-345,306,-2727,1476,-2943,252,1683,957,684,-72,-2721,-1236,24,2238,-2610,-3057,-666,951,2595,402,162,2868,-945,2229,-1632,2874,-129,1041,-1932,-3069,-279,-3123,2229,1173,-2817,-2781,1569,2964,600,519,39,105,3045,2580,-3123}, {825,-2871,963,2979,-1932,1836,2103,3018,-2562,-1971,2874,2268,-1560,303,-540,1419,1209,1680,729,-1524,-2436,-2514,1128,-2445,3060,984,1050,2073,-1308,2385,-2394,168,-2484,-2571,-2430,561,2037,1224,-1887,-798,-201,2478,2793,-1956,2463,75,180,-1749,2184,-2988,-2559,1050,-282,843,-1263,-1629,738,2037,-1161,2763,111,-1053,2166,-1173,-2430,2442,267,3030,975,2016,-300,-1266,2463,-69,2514,-1422,-2922,2814,-2511,-303,-2805,153,321,-1554,618,1881,-3093,2343,-222,2121,-264,-2781,-1653,-2604,204,-297,-2802,1014,3093,-1752,-1197,-3162,-1422,-726,-2481,2385,-231,-1005,-1044,2034,705,870,897,3021,2790,1188,186,-1947,39,-1257,2529,759,-2484,1293,-369,1002,-2433,-2922,-1806,-2754,-582,-3093,2625,1047,-408,36,1677,-1137,2781,-2436,-2868,102,2493,1620,-498,-321,2436,1575,2490,-3033,-450,-2754,678,-2499,1596,-2253,-2508,-1230,-339,153,288,1809,2526,-3075,-375,2688,222,1413,774,1494,1869,2295,3003,-1512,1917,1719,1743,-714,-2364,-561,3105,2538,-1959,1011,2892,1140,603,-477,1683,3006,-2271,-2757,-1206,-1170,537,-708,-1137,-1788,-1893,2796,342,1725,1326,-3171,1215,1530,2124,930,-1617,-285,432,2070,-1071,-2082,2934,1938,2322,729,-2457,-327,-2301,456,-2817,372,-1494,-2220,3036,-2298,-2295,1803,-2682,-1869,3063,3,1908,-861,-2241,441,-519,-3075,54,1305,2337,2283,1989,-1704,2106,2517,-2682,-2961,1410,402,-1695,222,-1713,1170,123,-849,-2019,912,-798,1929,-633,-2214,-249,1176,-1863,1824,-732,-2313,45,537,210,1428,-2265,-246,-1773,3126,408,2283,-894,588,-1581,-552,864,3063,-2556,-402,1665,-2961,1488,-2028,1344,2742,-2928,-1863,1743,-1749,-939,-2028,-384,-1944,3165,2067,-78,-1440,-510,2907,-1938,-1323,-2022,606,-153,-2181,-3126,-3003,-1455,-546,-2766,1998,-90,1911,729,894,2217,267,645,-1050,816,-2535,2376,954,1404,2160,2976,2622,-2616,-261,-1890,-1737,291,-1209,2853,-3003,-2829,1137,-2514,1881,-2892,-450,-1617,714,-2433,573,-2199,-2610,2922,2607,2529,-2334,1008,-771,-2430,-177,1437,2799,1284,-924,-2979,1224,2703,-2235,900,2394,-198,-144,543,-2919,108,1131,-3126,2478,-1110,-972,2826,-2655,-2817,-1170,-45,-693,2019,75,-1719,-570,2676,-282,759,2877,-642,-2781,-3150,2775,279,1440,-2799,-216,-231,-1206,2574,-1815,2061,-2448,-681,-912,1845,2517,-900,-1719,-2223,2427,-9,-1677,1668,-1062,2904,-1878,48,2946,-2061,-1065,2058,-2622,-1644,-1389,-2193,915,-1320,2289,-615,-1119,-2562,-648,-237,-234,144,2382,1107,1272,-2481,-174,180,-747,-2295,3060,1989,0,-1653,-2838,-1365,1713,-1344,-741,-2346,-1413,-417,1314,1956,1455,1272,2163,726,2421,2826,-840,-1680,2283,1647,-531,3000,-2886,3072,2358,2976,-2436,1917,-744,3114,-2739,2985,339,255,2226,-1095,2682,1686,1488,87,1827,3036,1299,-2565,762,-2547,303,-2010,174,-609,693,-3144,2154,-2121,354,-1950,2367,2805,558,-1638,2721,-888,-2637,-648,-1950,-1653,-2763,3063,-1440,-1845,1293,-1854,-123,2565,1710,-3093,-3165,2079,-2529,2232,-1914,-333,-603,-1623,2817,-207,-3171,2493,-1092,-822,-2814,-2628,-1197,2697,-282,-789,-84,-1680,-1884,-3045,2400,-2313,2241,-867,-1260,405,813,270,-2214,345,-453,2439,-69,1818,2172,1446,717,2211,-1035,288,-2436,1101,2727,-2454,2439,2925,-3150,2556,-2610,2121,744,234,582,909,1734,-159,-2064,144,1068,-2430,-1200,1155,1755,1521,-948,3126,-3075,2994,-1545,-168,1251,-2637,2442,3099,1266,-483,630,-2916,-33,3126,1602,426,3099,-2058,2676,3066,1647,-2247,1521,-1260,1446,2553,-1500,-147,30,2490,3063,-2133,-1296,957,-888,411,-2019,-975,-2640,-3024,936,-2697,2160,873,684,861,162,2025,-2430,-933,-897,624,-885,-345,2913,-450,-2316,-693,267,-2049,-243,-2214,2898,3147,1599,-1935,852,-642,612,-2715,2616,183,-726,-18,-1761,1572,273,-1032,-2049,582,-1314,-939,1437,75,-996,-609,-66,2256,-105,-660,1095,2154,-2193,-378,-2505,-2439,2673,-2871,1704,2868,-1686,1986,-597,1251,669,1017,2985,-669,1083,-1911,-3150,-456,1923,-1533,-942,2700,-2715,915,504,1680,-2259,2670,-756,2331,447,2751,912,-1464,1968,-1647,1350,-1275,189,-480,-1188,1338,63,-3039,-2379,1185,-321,-2004,1581,2493,2214,-1101,3153,1602,726,2700,-1872,579,-1395,2037,-624,-1137,999,-3162,-3039,2418,2661,351,1674,2742,-1914,-888,-1545,2793,-1812,1731,1149,-357,2094,177,-474,-2082,-429,-2130,-687,-1692,-2595,-714,-2412,-819,-108,489,-1515,-1650,2622,2010,1872,-2187,60,2190,-381,993,-2295,1476,1629,-933,-2073,-2985,2781,741,-1941,2514,-1182,-1329,2802,-1425,2334,3003,3087,-2415,2244,615,-2328,-1626,2367,2517,1437,759,1791,1206,-996,-3054,-81,2658,-585,-1035,-2907,-126,-1482,-1947,795,1062,2286,2154,1521,-2382,-810,1920,-2469,-2433,-1494,-2703,2163,3054,2946,-441,-654,87,-3036,-1839,-2211,-1899,285,1965,351,54,-450,-1968,-1182,-723,654,-2496,-747,1467,1752,3144,-2574,954,114,1974,-687,-2019,744,2481,1248,-825,2334,-2139,-681,-2229,1446,0,-963,3066,1806,-2058,-2277,-2619,2448,0,-2409,-2412,-2019,2433,786,1881,2259,1104,468,-1089,2634,2094,2079,252,-1302,-534,2433,-2340,-1674,-2205,1416,1260,-1449,2934,-909,-1119,2115,411,1722,-1899,-2115,-1701,573,-723,1668,1254,-2610,714,1302,2154,492,-771,1344,-1827,1236,-1449,327,-2832,834,-2601,-648,2871,93,1809,-624,1269}, } ; static const unsigned char precomputed_decode_953x2115_s[precomputed_decode_953x2115_NUM][crypto_decode_STRBYTES] = { {51,172,64,123,184,160,184,143,105,221,2,231,253,45,14,145,97,159,110,154,100,13,205,227,95,29,94,231,57,143,58,171,154,90,141,122,91,151,131,89,181,250,5,35,18,88,181,130,110,253,187,67,192,222,123,165,15,62,194,47,176,35,74,27,102,231,188,77,167,109,67,228,209,16,170,87,56,186,242,221,200,186,22,93,239,48,7,150,65,34,11,114,129,140,109,87,108,83,39,70,135,15,211,249,188,70,187,133,75,195,41,65,44,154,164,144,81,152,11,112,81,106,247,47,215,132,37,184,170,215,180,228,176,189,141,210,200,239,37,220,70,157,22,252,43,144,154,191,250,94,77,246,136,225,110,98,54,87,85,41,17,179,167,85,171,52,134,144,31,248,103,159,88,241,236,124,199,1,219,231,182,206,3,106,226,7,140,66,110,59,151,142,101,155,66,135,113,37,57,107,109,172,139,130,194,145,192,156,80,188,165,144,46,75,115,1,51,85,238,158,52,168,184,197,222,77,30,153,19,207,66,67,49,160,198,171,44,6,75,46,17,47,54,155,145,83,217,81,18,186,42,101,91,7,161,158,183,201,76,162,52,62,132,53,235,100,165,67,224,142,211,87,134,9,136,211,62,46,232,240,249,5,179,29,50,184,126,189,239,129,101,160,184,156,201,64,99,7,43,251,34,43,192,142,55,88,53,25,247,46,213,112,198,240,157,48,188,89,173,99,192,108,65,185,67,133,43,89,123,198,51,192,65,172,117,84,222,195,46,13,94,138,92,222,59,36,112,160,236,189,126,178,228,206,163,82,128,109,85,120,88,205,186,112,183,237,203,37,228,251,150,79,109,54,161,86,241,162,205,124,159,81,4,123,168,11,122,61,118,2,235,126,197,166,174,120,54,151,207,28,211,209,244,221,19,43,83,192,170,42,193,67,31,159,225,238,200,64,89,155,173,54,253,144,227,98,114,100,149,33,175,59,1,237,78,94,187,110,29,10,213,70,47,17,148,175,135,220,134,166,31,61,231,171,18,180,217,219,36,224,79,197,141,12,124,130,43,46,8,176,247,111,203,246,5,79,213,192,135,119,70,136,28,249,219,243,23,89,161,139,173,180,116,229,59,116,247,49,13,52,45,43,188,137,185,186,87,235,204,207,184,102,108,60,199,40,163,39,128,78,113,59,60,230,13,41,14,34,161,105,150,61,34,59,44,228,159,115,105,220,123,234,211,185,100,95,235,205,107,106,72,72,43,73,114,79,122,59,239,76,162,61,107,91,67,166,239,182,29,171,254,25,200,231,138,124,37,58,33,232,190,236,31,254,180,212,227,89,102,74,136,108,230,195,158,13,11,112,118,1,64,9,221,209,121,213,251,61,119,224,107,4,252,204,13,20,230,52,131,38,55,253,19,42,175,234,44,21,190,47,14,125,91,137,41,49,157,124,182,146,68,35,15,158,90,32,97,0,85,18,157,247,140,37,152,103,63,10,2,123,162,86,242,82,64,14,70,117,57,240,196,238,165,215,58,217,125,123,251,16,6,231,184,239,85,40,48,246,110,29,30,129,6,181,27,250,155,3,139,71,11,0,203,11,89,60,81,222,186,4,174,246,136,123,154,151,82,15,33,57,57,129,95,13,100,26,168,87,224,212,44,40,187,234,249,47,0,177,221,149,150,118,176,122,242,192,216,198,102,235,74,204,174,143,133,170,228,219,116,91,20,171,169,62,95,52,195,89,67,113,167,85,38,83,115,205,130,84,15,49,122,172,150,236,188,222,231,174,184,179,168,107,20,122,27,84,173,220,213,238,233,177,239,112,222,223,52,59,20,89,94,142,246,164,59,65,246,30,73,157,63,88,232,72,45,85,11,81,71,12,162,184,35,137,86,210,87,62,150,104,246,10,21,242,80,198,141,99,67,0,209,241,14,120,36,185,71,249,21,122,30,81,103,226,42,133,3,129,247,202,201,150,225,30,140,218,31,160,213,170,125,234,110,223,170,173,39,8,64,157,253,254,96,87,124,173,155,73,58,28,227,149,127,162,141,138,102,230,178,106,23,158,135,178,192,56,50,38,81,56,78,231,41,178,243,244,238,95,85,160,255,158,181,164,181,77,157,178,113,228,56,119,132,239,113,222,226,60,157,29,130,186,214,16,227,114,164,3,35,203,224,98,117,241,30,50,120,52,105,169,216,242,126,224,69,179,151,67,101,104,9,128,120,11,114,65,182,21,203,34,76,140,45,138,225,25,227,236,9,167,160,70,96,207,59,54,136,84,113,171,249,159,186,83,171,218,102,77,123,4,242,119,174,69,23,172,103,239,149,212,216,56,157,26,29,205,190,38,43,55,139,154,121,28,138,80,137,65,172,210,225,81,60,158,142,146,40,84,90,251,240,224,40,120,92,213,1,165,117,240,239,182,137,220,80,79,28,220,27,74,142,5,118,80,72,164,91,40,22,201,100,111,232,177,142,154,173,145,55,217,64,3,254,109,198,255,25,141,192,73,196,69,110,137,105,49,37,100,18,62,18,95,106,237,107,112,181,128,186,25,168,194,71,190,251,100,100,247,210,187,36,138,178,54,235,1,31,102,217,100,247,199,235,93,78,173,85,165,46,224,80,12,57,74,69,53,30,205,207,145,188,119,150,47,9,219,137,119,38,219,81,224,8,184,255,163,194,224,25,10,44,178,246,37,17,209,104,219,37,199,72,82,156,122,88,148,62,173,151,130,24,95,180,158,180,9,46,158,211,213,91,255,144,207,152,23,210,110,223,245,194,37,228,120,255,53,200,156,119,241,78,144,189,221,92,154,203,96,30,153,40,6,103,30,29,199,252,116,216,142,185,220,157,112,66,145,30,207,197,253,170,51,50,10,55,225,196,90,115,144,143,249,236,64,164,106,93,21,217,229,35,102,90,121,235,238,17,26,177,22,214,104,247,147,246,174,175,8,72,77,195,184,93,114,168,18,204}, {153,151,117,208,59,99,14,8,29,249,238,145,24,133,136,44,26,167,13,115,96,244,117,239,186,219,177,135,203,240,84,182,218,108,162,157,219,189,147,79,204,255,243,130,127,58,69,176,1,242,168,89,11,50,122,167,42,80,205,172,106,37,207,78,146,181,239,160,57,156,88,213,20,78,225,132,102,201,32,167,105,34,24,194,177,35,140,155,43,50,148,204,173,190,16,42,130,8,210,183,152,192,42,27,80,242,109,114,133,120,112,200,7,95,236,12,225,107,136,19,82,175,247,52,250,37,189,210,130,161,156,79,105,161,224,191,50,153,94,248,154,57,31,10,146,108,176,26,22,142,116,178,75,213,17,122,15,134,105,225,0,6,190,195,224,79,239,228,10,129,20,59,53,159,201,200,254,33,12,29,173,49,14,74,138,17,247,188,124,84,181,251,107,73,12,213,213,156,62,176,177,48,91,216,176,249,208,130,86,68,196,110,77,194,171,222,155,19,156,186,159,147,37,132,114,140,33,214,170,111,244,234,95,240,125,152,150,177,68,199,136,215,100,31,80,162,173,54,118,233,75,42,124,96,236,104,96,68,187,172,53,246,132,254,231,14,33,18,204,229,166,57,120,163,117,186,22,149,72,158,26,169,55,190,252,31,205,11,9,8,130,6,20,118,9,55,147,52,247,94,232,49,208,214,39,6,181,100,7,47,105,3,230,90,159,92,71,142,159,46,213,112,228,124,220,6,119,61,107,114,36,198,66,37,202,115,35,52,197,171,172,221,76,152,137,23,225,75,160,227,139,193,197,0,135,222,153,0,7,238,247,33,89,155,26,255,241,147,98,84,211,148,150,215,198,175,15,226,221,102,129,4,25,48,111,154,251,66,93,121,36,50,231,238,8,110,166,252,128,235,55,253,105,216,130,115,188,57,19,242,235,62,152,38,170,28,165,247,51,0,80,18,128,118,1,8,34,61,243,28,21,228,129,50,167,105,25,183,95,16,128,65,219,104,173,45,40,80,125,196,210,141,9,122,105,169,188,140,218,84,131,133,232,195,93,184,48,28,209,63,249,254,40,217,235,30,46,183,0,31,166,148,86,47,166,32,48,234,29,209,118,119,35,248,232,29,77,231,85,70,206,8,221,205,234,75,152,23,177,190,65,101,225,119,179,196,93,92,182,35,186,187,164,231,53,46,92,97,242,28,73,65,4,4,168,225,65,144,158,11,159,143,57,215,112,185,42,189,129,123,111,185,65,233,254,36,247,50,10,173,112,137,205,209,75,188,222,152,103,237,169,88,100,221,139,51,5,79,154,164,205,186,221,9,194,5,138,241,26,4,21,34,97,113,214,139,216,204,190,170,162,39,119,52,182,178,171,215,179,25,76,10,123,70,231,2,176,68,29,45,192,61,242,224,204,186,192,167,115,37,107,186,236,145,104,77,108,82,149,65,181,246,109,111,41,60,23,252,61,101,199,116,63,196,177,231,31,76,248,165,248,186,48,8,28,30,137,80,78,14,161,183,11,242,78,152,195,134,54,235,18,142,81,69,71,119,81,29,0,115,178,113,211,126,144,28,106,57,57,161,251,135,68,114,139,113,237,20,225,103,157,94,235,7,113,64,116,94,22,14,253,127,219,5,108,156,233,13,32,92,182,125,237,149,79,87,226,75,112,93,159,18,250,49,224,95,138,105,195,80,233,198,232,196,168,69,170,139,22,204,208,204,184,115,84,63,146,223,70,94,230,0,6,201,189,204,108,35,171,80,2,197,104,113,134,129,185,42,248,100,213,176,226,88,108,167,83,131,66,239,157,231,229,8,236,231,216,245,64,164,87,15,158,241,235,100,147,0,41,160,116,132,99,225,43,62,74,137,90,227,206,41,168,212,123,39,162,43,74,230,114,8,13,212,185,51,194,106,21,24,81,178,94,63,105,227,243,179,160,162,155,40,112,246,105,107,64,19,51,211,244,18,203,251,99,43,9,62,28,129,79,126,115,28,211,153,172,85,191,23,124,17,227,76,7,89,109,171,236,191,199,89,110,225,15,42,57,242,147,171,67,116,240,70,57,162,193,240,227,138,218,31,165,118,56,1,173,183,73,197,253,9,175,182,72,90,21,190,10,43,108,30,181,167,232,199,169,214,173,38,28,63,242,139,149,86,166,102,59,7,40,56,57,150,55,22,217,29,223,12,38,24,218,250,243,197,202,18,225,131,77,251,207,232,157,204,130,158,91,251,217,55,17,234,193,82,137,95,172,91,68,19,115,72,218,122,32,178,55,81,88,140,138,110,36,56,154,1,185,100,71,102,90,100,174,27,118,43,244,108,30,27,223,98,6,47,11,38,129,186,218,43,149,160,245,196,67,121,68,200,23,40,34,180,219,247,27,155,168,229,244,221,181,65,123,167,148,33,1,112,55,212,54,122,221,93,160,190,6,52,75,169,207,213,64,107,146,145,185,107,236,12,7,16,84,14,27,26,94,42,107,150,201,80,201,183,234,35,245,60,91,236,17,65,50,155,137,250,52,106,30,142,72,109,227,83,17,69,50,71,235,44,126,199,39,214,154,236,102,125,83,94,195,52,236,74,255,162,191,128,21,36,91,57,93,53,140,220,5,166,82,149,67,65,238,177,53,131,194,160,219,55,38,50,175,235,73,212,53,17,44,235,6,88,13,139,95,165,46,169,70,102,97,93,252,175,99,242,144,30,249,50,203,24,131,244,74,7,246,211,107,16,151,171,28,244,30,195,229,18,228,102,106,7,7,173,70,36,176,164,59,115,136,119,133,238,151,141,126,151,233,84,203,1,60,71,35,193,112,110,30,102,165,39,2,82,91,67,58,182,111,233,215,252,193,73,146,128,207,95,80,152,3,102,139,96,217,118,207,33,147,22,144,195,16,244,89,231,131,175,0,166,64,22,156,105,111,213,230,198,208,232,166,44,203,74,41,41,61,164,149,33,254,201,64,61,134}, {89,118,170,164,213,118,36,230,57,146,77,137,119,94,103,149,233,159,191,223,175,147,30,55,131,135,250,228,24,109,186,152,50,194,124,144,246,87,83,124,217,231,135,154,164,172,12,140,17,253,198,172,246,65,180,94,188,25,134,206,130,85,212,11,64,150,24,237,167,203,240,151,34,37,40,60,193,69,134,52,8,115,152,171,105,144,253,3,29,152,65,162,183,30,221,247,168,120,201,197,61,81,236,78,215,45,107,253,21,60,121,252,227,51,208,142,223,132,172,229,49,113,235,98,165,87,216,247,61,102,143,166,47,236,212,158,239,218,128,32,92,162,137,63,184,238,20,13,125,234,82,122,94,236,29,104,228,129,125,45,31,61,68,93,207,202,208,98,123,220,243,133,13,49,67,72,22,183,77,147,15,29,189,5,13,34,169,61,150,225,250,122,234,179,239,117,136,104,163,11,34,5,84,215,43,122,66,216,149,95,130,157,49,78,210,122,249,219,244,192,88,129,17,218,74,100,23,27,229,115,64,26,93,127,239,45,19,144,120,214,142,245,58,159,106,148,121,21,113,146,131,70,159,52,65,142,24,12,85,59,186,77,234,190,46,155,99,64,235,104,164,223,10,254,114,107,97,82,58,47,254,150,147,232,11,158,188,73,240,173,235,67,145,223,41,108,162,63,105,22,176,26,44,155,45,208,32,246,157,187,116,108,112,192,0,230,221,183,2,255,193,179,38,113,194,59,2,247,76,26,217,158,190,20,105,146,45,158,90,249,177,40,236,12,173,241,45,1,210,193,19,232,146,25,51,134,151,73,248,127,158,143,189,175,63,124,26,34,5,185,184,78,192,123,56,192,247,97,237,117,26,150,185,239,115,103,185,113,99,238,205,206,213,68,35,223,223,197,246,184,73,237,160,128,209,115,82,145,63,29,33,47,165,206,77,35,83,162,143,39,8,140,235,1,4,108,217,238,199,63,8,43,22,152,221,110,42,248,156,218,160,99,142,21,157,52,77,170,152,64,38,203,189,224,33,236,198,63,6,4,42,79,189,155,60,232,215,121,140,69,113,73,239,190,81,58,210,150,202,85,155,138,23,201,243,168,163,248,171,33,153,201,177,245,183,0,213,33,222,147,204,12,87,239,44,161,247,186,34,152,98,65,226,153,176,14,101,105,120,154,10,165,218,163,156,53,212,33,178,32,96,164,88,119,85,9,166,213,114,172,191,144,74,214,62,176,179,203,28,113,180,207,121,115,249,234,67,239,80,142,216,107,243,168,217,46,218,252,34,95,144,129,166,166,180,152,97,249,218,82,28,30,162,98,45,155,255,163,199,67,197,111,110,36,254,50,252,217,96,26,161,159,169,93,250,199,123,15,209,23,254,160,167,93,83,127,157,40,136,135,228,94,112,242,108,225,255,63,5,219,118,170,69,36,123,103,226,51,7,211,14,33,97,156,219,160,91,146,38,10,186,7,91,58,152,248,40,196,120,68,206,158,203,29,243,50,189,214,104,122,234,186,56,76,65,7,46,173,109,77,237,26,52,59,92,229,213,180,12,139,149,205,129,153,203,5,90,108,94,218,104,212,48,30,217,215,209,100,127,9,80,193,203,115,180,7,129,166,104,229,195,139,6,89,52,50,209,105,121,192,72,112,66,132,82,35,135,66,48,81,104,192,131,2,177,190,118,123,101,170,6,195,166,163,31,28,72,250,50,204,226,155,43,41,51,229,176,132,3,7,39,78,244,164,51,19,224,131,208,155,96,74,212,107,1,19,97,39,103,60,102,174,197,177,255,195,252,1,214,205,234,73,48,252,176,143,5,168,239,21,33,45,180,60,4,55,240,59,186,253,225,248,64,119,132,50,190,89,67,53,181,235,3,222,131,181,18,129,33,88,108,146,119,68,118,26,142,74,143,138,179,181,195,55,238,209,245,60,62,145,138,142,2,198,95,152,144,253,172,240,140,186,94,68,240,44,91,18,100,124,113,226,22,114,150,26,141,201,114,10,232,162,177,58,19,135,56,221,164,64,92,250,246,34,103,97,164,109,3,107,251,253,235,210,114,110,96,91,101,209,10,52,173,58,221,90,55,119,46,251,254,25,94,9,106,83,131,26,125,201,0,194,124,50,99,5,211,182,250,65,207,229,87,45,15,246,87,74,215,14,115,180,71,5,78,10,75,43,126,69,39,150,158,45,97,59,194,151,0,0,22,204,222,239,232,3,255,218,37,68,58,206,238,169,233,165,30,153,54,224,99,253,37,116,190,158,152,98,134,30,127,32,205,53,52,192,101,158,191,193,152,124,228,225,198,222,38,129,163,51,154,180,128,8,16,36,22,82,85,114,242,5,246,31,189,151,227,8,241,5,234,210,76,147,166,158,78,155,234,138,197,170,104,224,114,185,12,45,235,19,64,124,154,103,77,130,191,48,132,94,81,234,200,98,20,223,177,132,69,226,119,178,119,125,182,84,125,166,138,130,77,197,226,255,206,76,68,247,26,211,242,13,148,235,212,194,202,25,85,242,29,113,200,87,92,244,38,96,247,172,100,210,206,97,10,221,221,103,206,11,76,178,180,112,65,169,9,121,7,42,156,49,247,172,122,187,139,58,26,171,230,80,22,93,100,245,105,149,25,5,166,3,87,240,31,41,124,30,78,81,125,178,217,173,116,90,199,118,57,91,157,238,142,185,196,137,136,82,5,240,6,16,8,191,167,124,126,122,126,250,19,78,166,236,146,226,170,34,34,50,152,248,215,103,123,244,113,232,123,250,113,236,251,227,179,15,4,7,235,19,80,223,61,167,156,203,53,64,252,212,56,201,86,108,178,188,46,244,155,189,134,145,126,131,230,97,19,180,194,177,251,4,74,5,216,65,157,232,115,87,221,28,195,185,5,16,130,214,236,243,145,16,78,80,102,205,49,198,169,179,90,50,253,96,218,41,166,160,25,211,16,30,131,236,66,38,247}, {96,63,232,45,108,222,203,154,123,233,94,138,43,97,219,99,231,52,195,188,70,18,239,212,152,186,251,110,33,199,78,236,61,117,139,38,51,78,177,136,175,200,195,25,132,242,107,80,240,254,9,105,241,49,2,153,111,11,76,216,12,205,65,133,164,98,115,185,233,209,238,129,244,101,252,215,116,98,16,219,118,194,157,105,171,93,36,81,131,241,207,53,113,27,31,239,148,5,243,75,91,27,148,79,154,197,202,80,218,0,149,125,124,161,10,236,39,47,40,155,70,78,85,6,179,231,175,174,40,126,45,218,134,103,96,131,194,231,223,239,238,53,87,145,29,172,87,21,105,131,236,127,163,63,75,230,50,226,172,197,245,150,203,15,199,10,83,84,28,52,106,211,197,224,58,161,191,116,191,20,57,114,106,254,252,103,240,255,51,121,74,117,32,137,179,131,77,227,57,50,179,175,219,5,211,151,170,36,204,13,234,101,189,185,168,253,99,251,10,153,141,5,141,29,38,61,62,108,18,131,57,2,4,45,35,224,82,220,212,11,175,42,250,178,179,206,23,55,245,66,172,117,237,129,155,180,220,254,179,237,3,224,203,78,9,199,119,189,7,62,172,231,158,125,91,120,43,191,119,176,230,114,141,46,27,21,94,202,158,72,200,81,186,161,109,18,116,82,159,78,172,54,54,97,10,163,181,101,211,226,0,163,76,170,183,206,61,63,120,155,93,175,181,191,242,2,1,214,173,220,22,103,8,95,98,89,151,78,197,110,172,31,128,214,70,88,151,89,190,69,243,204,150,71,53,10,1,48,113,8,209,214,41,54,210,62,212,49,171,71,78,25,202,226,242,147,210,186,147,75,224,196,134,170,211,148,7,135,64,172,240,241,205,252,166,27,190,20,81,53,193,246,193,158,71,202,65,39,199,157,227,205,81,80,192,54,161,161,154,57,116,22,74,182,182,240,214,209,44,169,180,238,115,45,188,245,189,190,88,22,230,36,11,156,194,192,45,209,91,62,213,23,187,8,91,35,7,151,110,140,95,38,113,234,219,66,63,202,31,103,235,44,42,27,191,173,150,108,230,24,122,130,32,240,91,34,223,173,58,202,75,19,81,249,198,36,68,200,11,30,231,79,226,95,84,253,110,148,150,72,227,236,185,148,25,37,3,100,143,193,206,37,146,101,33,167,42,7,159,203,73,137,41,82,216,238,178,140,186,163,104,108,220,3,191,100,52,218,235,60,173,27,105,56,56,218,45,238,66,57,183,145,56,224,248,79,178,65,236,101,158,128,51,217,90,1,160,236,26,120,89,90,197,65,102,16,111,36,216,99,57,201,127,236,32,158,234,52,96,3,11,240,147,16,225,133,175,149,95,98,63,195,25,231,23,194,152,96,173,119,138,231,113,220,136,122,70,173,59,1,49,115,57,23,237,44,139,148,42,105,47,185,124,46,177,89,147,125,5,224,105,255,76,121,95,156,114,118,34,54,40,255,230,128,180,74,92,88,147,72,82,181,115,65,171,81,29,47,161,18,171,20,228,254,232,148,249,105,55,106,139,2,111,231,65,140,189,45,200,222,175,113,106,1,69,183,194,84,128,62,96,198,2,125,239,207,151,252,109,239,237,141,225,213,74,2,204,242,233,243,140,74,101,164,152,39,128,88,1,208,68,133,78,174,21,32,41,245,102,10,48,242,248,0,210,31,251,108,112,222,135,107,15,196,67,35,92,141,211,128,83,166,66,127,251,166,165,7,161,128,15,186,45,52,106,45,71,246,60,213,92,83,178,70,39,195,97,10,216,113,205,168,180,210,126,7,102,64,236,108,123,67,135,58,252,89,99,65,121,22,37,149,104,153,0,102,114,107,185,61,49,217,208,217,80,47,150,171,148,185,67,128,0,103,223,147,67,11,242,97,192,213,35,23,5,120,124,85,40,47,242,233,148,73,22,103,225,40,89,20,133,251,78,116,244,91,103,191,11,31,223,144,79,59,146,202,3,172,193,196,80,146,113,159,235,114,155,54,125,101,129,152,74,112,8,43,35,117,221,128,130,31,83,76,174,27,109,89,255,139,73,93,210,223,135,167,200,93,138,72,87,17,180,14,72,35,126,110,3,149,55,106,104,163,214,21,217,36,158,36,175,108,52,193,120,94,163,157,222,201,218,197,162,172,165,95,90,238,169,81,97,12,13,176,8,210,106,88,37,163,49,63,224,69,3,179,10,50,106,45,191,231,206,50,97,244,151,4,32,224,181,218,146,48,168,138,156,88,122,9,141,204,82,236,186,60,87,24,35,52,105,162,168,67,59,196,104,170,122,244,38,187,40,3,185,248,244,141,214,174,249,159,177,252,196,179,191,178,82,87,67,206,252,145,210,133,9,129,233,186,146,137,236,233,71,83,219,43,194,243,46,34,156,242,191,50,16,146,18,167,219,174,83,235,54,18,148,173,213,235,183,8,73,35,122,84,222,108,164,155,90,62,184,212,172,95,119,56,67,202,219,234,183,180,22,14,149,4,59,175,8,150,239,222,77,110,161,11,83,104,133,199,44,97,66,0,45,255,249,132,204,137,228,1,173,16,230,254,151,13,115,84,131,211,143,51,151,234,144,195,200,205,104,195,30,11,9,24,16,151,1,117,77,146,13,120,48,204,25,99,31,206,227,249,50,25,255,238,204,233,126,17,146,151,230,231,128,247,97,244,188,81,1,233,192,28,30,227,20,43,213,204,201,122,28,89,147,120,7,42,187,46,215,139,82,14,122,3,16,29,181,252,54,189,72,112,106,32,2,190,205,35,201,15,142,201,181,193,9,217,184,212,237,60,161,181,84,185,37,8,180,251,205,159,93,88,105,15,99,28,141,52,81,244,43,211,26,43,37,63,115,115,170,54,156,15,198,100,26,226,29,231,173,134,167,196,62,187,82,92,209,16,151,135,6,109,118,44,248,225,232,41,156,206,94,182,209}, } ; static void test_decode_953x2115_impl(long long impl) { unsigned char *x = test_decode_953x2115_x; unsigned char *s = test_decode_953x2115_s; unsigned char *x2 = test_decode_953x2115_x2; unsigned char *s2 = test_decode_953x2115_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_953x2115_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953x2115(impl); printf("decode_953x2115 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953x2115_implementation(impl),ntruprime_dispatch_decode_953x2115_compiler(impl)); } else { crypto_decode = ntruprime_decode_953x2115; printf("decode_953x2115 selected implementation %s compiler %s\n",ntruprime_decode_953x2115_implementation(),ntruprime_decode_953x2115_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_953x2115_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_953x2115_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_953x2115_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_953x2115_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_953x2115_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_953x2115_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_953x2115(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953x2115")) return; storage_decode_953x2115_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_953x2115_x = aligned(storage_decode_953x2115_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_953x2115_s = callocplus(crypto_decode_STRBYTES); test_decode_953x2115_s = aligned(storage_decode_953x2115_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_953x2115_x2 = callocplus(maxalloc); test_decode_953x2115_x2 = aligned(storage_decode_953x2115_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_953x2115_s2 = callocplus(maxalloc); test_decode_953x2115_s2 = aligned(storage_decode_953x2115_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_953x2115 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_953x2115();++impl) forked(test_decode_953x2115_impl,impl); ++test_decode_953x2115_x; ++test_decode_953x2115_s; ++test_decode_953x2115_x2; ++test_decode_953x2115_s2; } free(storage_decode_953x2115_s2); free(storage_decode_953x2115_x2); free(storage_decode_953x2115_s); free(storage_decode_953x2115_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_953x3.c0000644000000000000000000004272514705505543022145 0ustar rootroot/* ----- decode/953x3, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_953x3_checksums[] = { "c78799b48c3e879236b2919c5c975fd085612c76da5b50de8283ad6fb11874dc", "eb934610aad64249d580d08ef6bc1a5205485544c98c25e4742b053026125d8c", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_953x3_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_953x3_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_953x3_ITEMBYTES static void *storage_decode_953x3_x; static unsigned char *test_decode_953x3_x; static void *storage_decode_953x3_s; static unsigned char *test_decode_953x3_s; static void *storage_decode_953x3_x2; static unsigned char *test_decode_953x3_x2; static void *storage_decode_953x3_s2; static unsigned char *test_decode_953x3_s2; #define precomputed_decode_953x3_NUM 4 static const unsigned char precomputed_decode_953x3_x[precomputed_decode_953x3_NUM][crypto_decode_ITEMS] = { {0,1,1,2,2,2,2,1,1,1,1,-1,1,-1,1,2,-1,2,2,1,1,-1,2,-1,0,0,1,1,2,1,-1,1,2,-1,2,-1,-1,0,1,1,1,0,1,-1,0,2,2,2,2,1,0,1,1,-1,1,1,-1,0,2,-1,1,1,-1,1,1,0,-1,2,2,1,2,1,-1,1,0,2,1,1,1,0,1,2,0,-1,2,-1,2,-1,-1,0,0,1,1,1,-1,0,0,2,2,0,-1,-1,0,2,0,2,1,1,2,-1,0,-1,1,-1,1,1,0,-1,-1,0,1,0,-1,1,2,2,-1,2,1,0,0,2,0,1,-1,2,0,-1,1,1,-1,0,2,-1,1,1,-1,1,-1,1,1,2,-1,-1,1,0,-1,0,2,2,0,1,0,-1,-1,2,0,2,-1,0,-1,0,2,1,2,1,2,1,1,2,2,1,0,1,2,-1,-1,1,1,0,-1,-1,0,-1,0,-1,-1,-1,1,-1,2,0,1,-1,0,2,-1,2,2,1,-1,2,-1,2,2,1,1,2,1,-1,2,1,1,2,0,0,2,-1,-1,0,1,0,0,2,1,2,1,-1,0,0,2,0,1,0,0,2,1,1,-1,0,1,1,2,1,1,2,-1,2,-1,2,0,-1,0,-1,0,0,2,0,2,1,0,1,1,1,0,-1,0,2,0,2,1,0,2,0,2,0,1,-1,-1,1,1,0,0,-1,2,1,1,-1,-1,2,-1,0,1,-1,0,-1,0,2,-1,2,1,2,1,1,-1,1,-1,0,0,0,1,0,2,1,1,1,1,1,-1,2,1,1,2,-1,2,-1,1,2,0,2,1,2,-1,1,1,0,2,2,0,-1,2,1,1,-1,-1,1,0,-1,-1,-1,1,1,1,1,0,-1,1,2,2,1,1,0,1,2,1,1,0,2,-1,0,-1,0,2,0,0,-1,2,1,1,1,1,0,1,-1,0,0,2,0,1,0,2,-1,2,0,2,2,2,1,2,2,0,2,2,0,0,2,2,0,2,0,1,0,0,1,1,0,0,2,1,0,0,0,1,1,0,0,1,0,2,0,2,1,0,2,0,-1,0,1,2,0,0,-1,0,2,0,0,0,1,2,0,2,0,0,-1,0,1,0,-1,0,-1,1,0,-1,-1,1,-1,0,2,2,-1,2,2,0,-1,0,2,2,2,2,1,2,1,2,-1,1,-1,-1,-1,2,2,0,2,0,1,2,-1,2,2,-1,0,-1,-1,2,2,1,2,1,0,0,2,0,-1,2,2,1,1,2,0,2,0,1,1,1,0,2,1,0,0,0,-1,0,1,1,-1,1,2,0,-1,1,2,2,0,0,1,1,2,-1,2,2,1,1,0,-1,0,2,0,1,0,0,-1,-1,0,-1,-1,-1,0,-1,1,2,2,2,2,1,2,2,2,-1,2,1,0,2,1,-1,1,2,-1,2,-1,2,1,1,-1,2,-1,1,0,0,-1,-1,-1,-1,2,1,0,1,2,1,1,2,-1,2,2,2,1,0,0,-1,-1,-1,0,1,-1,1,0,1,0,0,2,0,0,-1,-1,2,-1,2,0,2,1,1,0,2,2,-1,1,1,2,1,1,2,1,-1,2,-1,1,1,1,2,2,-1,0,2,1,1,0,0,-1,0,0,-1,1,1,1,2,2,2,0,1,2,0,-1,0,0,0,1,1,1,2,2,1,0,1,2,1,1,2,-1,-1,0,1,0,0,1,0,0,-1,1,1,1,2,-1,2,1,0,2,-1,-1,2,-1,1,1,1,1,0,-1,-1,0,0,1,0,2,1,1,2,0,2,-1,2,-1,2,-1,2,0,-1,2,-1,0,1,2,-1,1,-1,2,-1,1,1,2,2,-1,1,1,0,2,1,2,0,-1,0,1,0,1,2,0,1,0,-1,1,0,1,2,2,2,1,-1,-1,-1,1,2,-1,2,-1,-1,1,2,-1,0,0,-1,2,0,0,1,-1,2,1,1,0,1,1,-1,-1,1,-1,0,2,2,0,2,0,0,0,-1,1,1,-1,-1,0,-1,2,2,2,0,1,1,0,2,1,0,2,0,1,0,2,-1,1,1,0,1,0,1,1,-1,2,1,-1,-1,2,2,-1,1,2,-1,1,-1,1,2,-1,-1,0,1,1,1,1,2,0,-1,0,0,0,0,-1,2,2,2,0,-1,2,1,2,0,1,1,1,2,2,-1,0,2,2,-1,-1,2,2,-1,0,1,1,0,-1,0,1,0,1,1,1,0,2,1,1,0,1,1,1,2,2,0,2,-1,2,0,0,2,-1,0,-1,-1,1,0,1,2,2,1,0,-1}, {2,2,-1,1,2,1,0,1,1,0,1,2,1,0,-1,1,1,-1,-1,-1,0,0,0,1,0,0,1,-1,1,2,1,0,-1,0,2,1,1,-1,-1,2,1,2,-1,2,2,-1,0,2,-1,2,2,2,-1,2,0,1,1,1,1,1,-1,1,0,2,2,2,-1,1,1,1,1,2,2,1,1,-1,2,0,2,-1,2,-1,-1,1,0,1,0,1,-1,-1,0,0,2,0,1,-1,2,0,-1,-1,1,2,1,1,2,1,1,2,0,0,1,-1,0,0,2,1,-1,1,0,1,0,0,-1,-1,-1,0,1,0,2,2,0,0,2,0,1,1,0,0,1,0,-1,2,0,0,-1,2,-1,1,-1,-1,0,-1,1,-1,0,2,2,-1,0,2,0,2,0,-1,0,2,0,2,2,2,2,2,-1,-1,2,2,1,1,1,0,2,-1,2,0,0,-1,2,-1,0,2,0,2,0,-1,2,0,1,1,0,1,0,-1,-1,-1,0,0,2,-1,0,-1,0,1,2,1,2,2,-1,-1,2,1,2,2,1,-1,1,2,0,2,0,0,-1,-1,1,0,0,-1,1,2,2,0,-1,1,0,-1,-1,-1,0,-1,0,1,-1,-1,0,0,2,0,2,0,2,-1,2,0,2,1,-1,1,0,0,0,-1,2,-1,1,0,1,2,2,1,0,1,1,1,2,-1,0,-1,2,2,1,-1,0,-1,2,1,-1,2,2,1,2,0,2,1,-1,0,-1,-1,2,1,0,1,1,-1,0,-1,2,0,-1,1,0,-1,0,2,2,0,-1,2,-1,-1,1,-1,0,2,-1,-1,0,1,-1,1,2,0,1,1,0,1,2,2,-1,-1,2,0,-1,2,-1,0,-1,0,-1,0,2,-1,-1,2,1,2,1,2,-1,-1,0,0,1,1,0,1,2,1,0,-1,2,2,-1,0,-1,2,1,1,-1,0,0,1,0,2,-1,1,1,-1,-1,2,1,-1,-1,-1,-1,0,0,1,-1,2,-1,-1,-1,-1,0,-1,-1,-1,2,0,2,2,0,-1,2,1,2,1,0,-1,0,0,2,0,-1,1,-1,0,0,2,1,1,0,0,1,2,1,-1,2,0,0,-1,1,2,-1,0,2,-1,0,1,-1,-1,1,-1,1,-1,-1,-1,-1,2,-1,0,2,2,0,0,-1,-1,1,2,0,2,0,-1,-1,0,1,0,-1,2,-1,-1,-1,0,1,-1,0,2,-1,-1,-1,0,2,2,2,-1,-1,0,0,1,2,1,2,0,1,-1,1,-1,2,-1,0,-1,-1,1,-1,2,-1,2,-1,-1,1,1,0,1,-1,1,2,1,-1,0,-1,1,0,2,2,-1,0,0,1,1,-1,0,-1,0,0,-1,-1,-1,1,-1,1,-1,-1,-1,2,1,2,-1,0,-1,0,2,0,1,1,2,0,-1,2,-1,-1,0,0,1,2,-1,0,1,-1,0,-1,-1,2,0,0,1,1,-1,2,1,-1,1,2,0,-1,-1,1,-1,1,-1,0,0,0,-1,0,-1,1,0,1,1,2,0,2,2,2,-1,0,2,-1,0,1,2,2,1,-1,2,-1,1,0,2,2,0,2,-1,-1,2,-1,1,2,0,1,0,2,0,0,0,-1,1,2,1,1,0,1,-1,-1,-1,-1,0,1,1,2,-1,-1,-1,-1,1,-1,2,0,2,1,0,2,2,-1,2,1,2,0,2,0,0,1,2,0,0,-1,-1,1,0,2,-1,0,0,2,2,1,-1,0,1,1,-1,0,2,0,2,0,1,2,-1,1,2,-1,0,2,2,1,1,-1,2,1,2,2,-1,0,2,0,1,0,0,-1,-1,2,-1,0,1,-1,-1,0,-1,-1,0,2,2,-1,1,0,0,0,0,0,1,0,2,1,-1,1,0,-1,2,0,2,-1,2,2,2,-1,2,1,2,0,0,1,2,1,0,2,2,0,-1,-1,0,2,2,0,1,-1,1,2,1,-1,0,-1,2,0,2,-1,2,-1,2,2,0,-1,0,2,-1,2,0,0,0,0,2,0,0,1,2,-1,2,1,-1,2,-1,-1,1,0,2,0,0,-1,-1,-1,2,2,-1,2,1,1,2,-1,-1,2,1,1,2,2,2,0,2,0,1,-1,2,0,0,2,0,2,0,0,1,0,1,-1,0,0,-1,-1,0,-1,0,-1,2,0,-1,-1,-1,2,0,1,1,1,1,1,-1,2,-1,1,1,2,-1,1,0,1,0,0,1,2,1,-1,2,2,-1,0,-1,1,0,-1,-1,-1,-1,2,2,2,-1,0,0,1,2,1,1,2,1,1,-1,1,2,1,0,2,-1,1,0,1,0,-1,0,-1,1,0,2,0,-1,1,1,-1}, {1,0,0,1,0,0,0,1,-1,2,-1,-1,1,1,2,1,2,-1,1,2,-1,-1,1,0,-1,-1,2,1,-1,2,2,1,1,1,1,2,1,1,1,-1,0,2,0,1,0,0,-1,0,0,-1,1,2,0,2,1,2,-1,1,0,1,0,0,0,1,-1,-1,2,0,2,0,-1,-1,0,-1,-1,1,0,0,2,-1,2,0,-1,1,2,2,1,1,-1,0,2,1,0,2,1,-1,-1,-1,2,1,0,-1,0,0,2,0,0,2,2,0,1,-1,2,-1,-1,-1,0,0,2,1,-1,2,1,1,1,2,0,-1,0,0,0,1,0,2,1,2,2,1,1,1,-1,1,-1,2,2,0,2,0,2,2,0,0,1,2,-1,-1,1,1,0,1,0,-1,-1,1,-1,0,0,-1,0,1,2,1,2,1,2,2,0,-1,1,0,-1,1,-1,1,-1,2,1,-1,2,1,0,0,0,1,1,1,0,1,1,-1,1,-1,0,2,1,-1,1,2,1,-1,1,2,2,0,2,-1,1,0,-1,1,2,-1,0,2,1,2,2,1,-1,-1,-1,1,0,2,-1,2,-1,0,-1,-1,2,1,-1,0,2,2,0,2,2,-1,-1,2,1,-1,2,2,0,-1,-1,-1,1,-1,2,1,2,1,2,0,1,1,2,0,2,1,-1,-1,1,2,2,0,1,0,2,0,0,0,-1,0,1,0,0,0,2,1,-1,-1,1,0,1,0,2,1,0,0,-1,-1,-1,2,1,-1,0,1,1,1,2,1,2,0,1,0,-1,-1,0,1,2,-1,1,0,2,2,0,2,2,0,1,-1,1,-1,-1,0,-1,2,0,0,2,-1,1,-1,1,-1,0,0,0,2,1,-1,0,-1,0,1,2,0,-1,2,0,-1,-1,1,2,0,-1,1,0,-1,1,2,1,2,2,-1,-1,-1,1,1,-1,2,2,0,-1,-1,-1,0,0,2,2,2,-1,2,2,-1,2,0,0,0,0,1,1,1,2,-1,1,0,-1,2,1,-1,2,2,-1,1,2,-1,2,0,-1,0,-1,0,1,1,2,0,-1,2,2,-1,2,2,0,-1,1,2,1,1,0,0,1,1,0,1,0,1,0,0,0,1,-1,2,-1,-1,0,1,-1,2,-1,2,0,-1,1,1,2,0,2,-1,1,2,-1,1,1,2,-1,2,2,-1,-1,1,-1,1,1,2,-1,0,-1,0,-1,0,1,-1,0,-1,2,0,2,2,0,-1,1,2,2,1,-1,2,2,-1,2,1,0,-1,1,-1,-1,2,1,-1,1,-1,-1,2,-1,2,1,0,1,0,0,1,-1,0,-1,2,2,2,1,1,-1,0,2,-1,0,-1,1,-1,0,0,0,2,1,2,1,1,0,0,0,2,1,0,1,-1,2,-1,-1,1,-1,-1,2,-1,2,1,1,0,0,2,1,1,2,0,-1,-1,0,2,0,-1,2,-1,1,-1,-1,0,0,0,0,1,-1,1,2,-1,0,0,1,1,-1,0,-1,2,1,1,-1,2,-1,0,1,0,1,1,-1,-1,0,2,0,0,2,0,0,1,1,1,-1,-1,-1,-1,-1,0,2,2,2,1,-1,2,2,0,1,1,-1,0,0,-1,-1,2,1,0,1,2,0,2,-1,2,2,-1,2,-1,2,1,0,1,0,2,2,0,0,2,0,0,0,0,2,2,-1,1,0,-1,0,-1,-1,0,1,1,0,0,0,-1,0,1,0,-1,0,-1,-1,-1,1,1,2,-1,2,1,0,-1,-1,-1,1,2,-1,2,0,0,0,-1,2,2,-1,0,-1,0,2,1,0,1,0,-1,-1,2,2,0,-1,1,2,1,1,0,1,-1,0,-1,2,1,1,2,2,-1,-1,0,0,2,1,1,0,1,2,-1,1,-1,1,-1,2,0,-1,-1,2,-1,2,1,0,-1,2,0,2,1,0,0,0,1,2,2,-1,0,-1,0,0,0,1,0,2,2,2,1,-1,-1,2,-1,1,0,2,-1,2,2,2,1,1,1,2,-1,0,0,0,2,2,1,1,-1,2,2,1,0,1,0,2,2,1,2,2,2,1,0,2,-1,0,2,0,0,1,2,-1,1,-1,-1,-1,-1,0,-1,0,2,2,1,2,1,1,1,0,0,2,1,-1,1,2,-1,1,-1,2,2,-1,0,1,1,1,2,-1,2,-1,1,-1,1,1,2,0,2,2,1,1,2,-1,2,1,1,2,0,1,1,1,-1,0,1,-1,-1,1,1,-1,1,1,0,-1,1,-1,2,1,2,2,0,2,2,-1,-1,-1,1,1,1,-1,2,0,1,0,-1,2,2,0,-1,2,2,-1,2,2,2,1,0,1}, {-1,0,2,2,1,-1,0,-1,2,2,-1,0,1,0,1,1,1,1,0,2,2,1,1,0,0,1,0,-1,1,2,2,2,1,2,0,2,-1,-1,0,1,1,1,2,2,-1,-1,-1,0,2,0,2,1,2,1,1,-1,1,-1,2,0,2,1,-1,-1,1,2,-1,0,0,2,1,2,0,-1,0,-1,2,2,2,1,0,1,2,-1,0,2,-1,2,2,0,0,0,1,0,1,-1,-1,2,0,-1,2,1,2,2,0,-1,-1,2,0,2,-1,-1,-1,0,2,0,2,1,2,0,0,2,0,0,0,-1,1,-1,0,0,2,0,1,0,1,0,2,0,1,1,2,0,2,1,-1,1,-1,2,0,2,1,2,0,-1,1,-1,-1,2,2,0,2,2,0,0,1,1,-1,-1,0,0,-1,0,0,2,1,-1,1,-1,0,1,0,-1,-1,0,-1,2,1,1,1,-1,-1,2,0,0,-1,1,2,-1,-1,-1,-1,-1,0,2,1,1,2,0,1,-1,0,1,-1,1,-1,0,0,1,2,-1,1,0,0,2,0,2,2,1,1,0,2,2,2,1,0,2,2,0,1,1,0,-1,2,-1,0,1,-1,1,0,2,2,1,0,2,2,-1,1,0,0,1,1,0,-1,-1,-1,0,0,-1,2,2,1,2,2,2,2,0,-1,2,0,-1,2,1,-1,-1,0,-1,-1,-1,2,2,2,-1,2,2,1,2,2,0,2,2,0,-1,1,2,-1,0,1,1,1,2,-1,1,0,0,1,0,-1,1,-1,2,0,-1,2,0,0,0,-1,1,0,0,2,0,0,1,2,2,2,-1,0,-1,2,2,-1,-1,0,2,0,1,0,1,0,1,0,1,2,-1,-1,0,1,1,1,1,0,2,2,1,0,2,1,0,1,-1,2,0,0,0,2,0,-1,2,0,2,0,-1,2,1,2,0,2,-1,0,1,1,2,-1,-1,-1,0,0,-1,1,-1,0,2,2,0,2,2,2,2,1,0,0,2,-1,-1,-1,-1,-1,0,1,2,-1,-1,2,2,0,1,-1,1,1,-1,1,0,1,1,1,0,2,0,0,1,0,2,1,1,0,1,1,2,2,0,1,0,1,2,1,1,0,-1,0,-1,0,2,2,1,-1,2,2,-1,-1,0,0,2,0,1,2,-1,2,1,0,2,-1,-1,0,2,-1,-1,-1,-1,2,2,-1,-1,0,2,0,2,-1,-1,0,-1,1,-1,2,1,0,0,2,0,-1,2,-1,-1,0,0,2,0,-1,1,0,1,-1,-1,1,1,-1,2,0,-1,1,1,1,0,0,-1,-1,2,0,2,-1,0,0,-1,2,0,1,0,-1,0,-1,-1,-1,2,1,-1,2,2,1,1,-1,-1,0,-1,1,0,1,0,2,1,1,-1,1,1,2,-1,2,1,2,2,0,-1,2,2,1,0,2,0,1,1,0,0,1,0,2,2,1,1,2,-1,-1,-1,-1,2,0,2,2,2,0,2,-1,-1,1,1,2,1,0,1,1,-1,-1,-1,0,-1,-1,1,0,0,2,0,0,0,1,2,1,0,2,-1,0,0,1,0,2,2,2,1,1,1,2,2,-1,-1,0,1,-1,-1,0,2,-1,-1,1,2,1,2,0,0,-1,2,0,1,1,0,1,1,1,2,2,0,1,0,1,0,2,0,1,0,2,-1,0,2,1,-1,0,0,1,-1,-1,2,1,2,0,2,2,0,-1,2,2,1,0,0,0,-1,0,-1,0,1,-1,1,2,1,1,2,1,1,1,-1,2,2,1,1,0,1,0,2,2,-1,0,0,1,-1,1,1,1,-1,0,2,2,1,2,2,2,-1,0,-1,-1,-1,-1,0,0,0,0,1,1,0,1,-1,2,1,1,0,-1,0,1,-1,2,1,0,1,-1,-1,-1,1,-1,1,2,1,1,2,1,-1,0,1,0,-1,0,2,-1,-1,0,-1,-1,1,-1,-1,0,0,-1,0,1,1,-1,2,0,2,2,0,2,-1,0,0,-1,-1,-1,-1,2,-1,0,-1,1,0,-1,1,2,2,-1,2,1,-1,1,0,1,1,-1,-1,-1,2,1,-1,2,-1,2,0,2,0,-1,0,-1,1,0,2,-1,2,-1,2,0,0,1,1,1,-1,0,-1,-1,0,1,1,0,1,1,-1,-1,0,-1,0,2,-1,1,2,-1,2,2,0,-1,0,1,-1,-1,2,2,1,2,1,0,2,2,2,-1,1,0,2,2,-1,-1,0,2,2,1,0,0,-1,0,1,-1,0,-1,0,-1,0,2,-1,0,2,-1,-1,0,-1,0,1,0,-1,2,1,2,1,2,2,0,0,2,1,-1,-1,0}, } ; static const unsigned char precomputed_decode_953x3_s[precomputed_decode_953x3_NUM][crypto_decode_STRBYTES] = { {233,191,42,226,188,50,165,139,51,164,38,253,155,162,52,138,198,187,216,106,30,51,148,74,125,208,173,19,162,65,134,207,214,201,161,52,138,232,96,244,25,220,68,187,235,155,131,6,17,32,39,205,203,188,46,235,53,100,237,82,103,173,164,235,204,17,117,155,26,221,118,39,104,177,194,36,209,236,138,84,182,170,172,51,222,142,246,177,130,1,170,225,107,174,77,116,177,106,82,103,115,191,223,215,119,150,214,86,90,118,219,145,23,93,121,23,25,97,32,61,31,253,187,35,240,157,243,4,239,214,241,122,167,182,21,41,30,126,233,188,70,103,65,64,248,239,207,182,56,179,50,22,192,230,58,191,5,36,102,93,48,183,246,232,186,140,250,180,22,133,250,231,81,169,111,174,67,150,133,58,219,48,170,65,217,122,51,115,76,142,140,62,218,30,153,103,152,191,128,51,56,197,37,107,10,210,119,133,66,252,105,219,217,104,166,44,60,142,56,164,122,84,241,199,158,250,244,240,164,145,169,173,169,223,92,19,152,111,232}, {143,155,230,134,2,149,37,110,180,194,206,211,252,156,170,216,143,234,43,55,131,153,80,39,7,174,235,37,181,152,5,100,95,167,101,92,140,16,210,211,29,221,255,240,106,115,49,221,113,154,1,53,145,251,176,47,222,5,22,126,24,16,9,117,55,183,88,49,230,155,58,241,18,203,123,75,176,41,113,24,125,12,210,144,120,154,15,199,68,52,236,14,165,185,241,196,74,217,40,44,64,201,0,1,247,177,27,117,72,173,229,114,225,52,9,34,192,244,5,222,65,198,64,210,64,63,148,123,34,19,200,12,154,184,132,61,165,68,1,34,176,19,157,30,67,57,73,112,41,139,7,34,21,97,122,63,77,190,140,125,195,120,118,133,107,2,164,3,200,109,207,222,229,5,54,245,146,210,157,227,244,202,62,157,5,147,16,244,88,149,45,198,205,207,94,110,31,244,137,75,220,204,71,115,213,229,44,131,93,192,179,14,235,223,201,117,151,73,65,196,1,167,42,163,99,150,203,19,6,240,83,174,43,110,99,70,216,161,168}, {150,149,12,186,227,96,176,188,234,42,157,69,225,237,152,149,112,7,129,53,135,175,180,45,176,81,215,39,3,181,172,30,149,237,171,200,119,95,14,154,129,20,185,251,97,136,44,91,169,41,210,226,226,55,134,211,190,128,205,4,75,223,195,242,1,178,123,122,11,126,118,69,86,11,102,91,192,146,186,103,144,99,223,39,66,92,35,82,45,145,199,129,135,225,62,160,124,64,253,60,87,169,99,44,143,115,68,122,60,31,174,165,153,149,12,201,28,122,227,232,60,136,78,68,18,247,225,203,179,33,44,194,108,150,196,175,52,33,213,174,213,38,131,48,107,173,7,29,35,84,137,83,74,172,76,166,208,117,169,0,244,203,167,20,108,222,60,179,217,215,85,143,17,164,21,25,1,58,27,224,92,241,68,155,193,135,107,18,235,67,173,57,34,7,179,113,91,249,68,101,191,48,54,191,58,213,43,111,246,254,54,93,142,0,209,187,90,139,35,79,234,140,232,189,206,122,42,9,138,134,236,247,128,202,25,31,207,111,158}, {244,18,79,166,218,107,25,254,222,144,250,64,183,43,114,11,78,237,17,191,57,205,87,38,28,251,193,13,116,123,93,33,117,102,167,183,200,237,33,124,95,10,69,45,146,65,172,194,133,3,208,122,146,72,57,214,189,246,219,167,49,137,189,61,150,6,20,239,127,28,11,1,63,239,247,225,164,142,101,200,113,133,117,249,19,15,157,153,57,164,218,219,38,87,199,29,123,147,14,20,210,247,111,13,64,14,159,40,166,118,217,154,126,230,26,209,203,67,157,179,13,13,240,208,13,33,91,199,80,135,9,202,161,22,220,20,103,4,44,175,16,102,43,58,251,241,118,90,246,58,192,253,13,186,41,16,88,87,110,83,246,171,15,9,13,238,197,105,234,103,118,54,45,37,236,125,188,21,145,184,174,242,154,61,37,42,189,63,1,84,105,178,70,178,9,136,235,146,209,16,8,69,202,125,83,0,19,134,207,98,10,44,115,71,216,204,165,18,164,41,68,227,124,36,188,219,143,61,244,22,73,68,211,16,25,187,95,11,241}, } ; static void test_decode_953x3_impl(long long impl) { unsigned char *x = test_decode_953x3_x; unsigned char *s = test_decode_953x3_s; unsigned char *x2 = test_decode_953x3_x2; unsigned char *s2 = test_decode_953x3_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_953x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953x3(impl); printf("decode_953x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953x3_implementation(impl),ntruprime_dispatch_decode_953x3_compiler(impl)); } else { crypto_decode = ntruprime_decode_953x3; printf("decode_953x3 selected implementation %s compiler %s\n",ntruprime_decode_953x3_implementation(),ntruprime_decode_953x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_953x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_953x3_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_953x3_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_953x3_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_953x3_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_953x3_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_953x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953x3")) return; storage_decode_953x3_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_953x3_x = aligned(storage_decode_953x3_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_953x3_s = callocplus(crypto_decode_STRBYTES); test_decode_953x3_s = aligned(storage_decode_953x3_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_953x3_x2 = callocplus(maxalloc); test_decode_953x3_x2 = aligned(storage_decode_953x3_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_953x3_s2 = callocplus(maxalloc); test_decode_953x3_s2 = aligned(storage_decode_953x3_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_953x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_953x3();++impl) forked(test_decode_953x3_impl,impl); ++test_decode_953x3_x; ++test_decode_953x3_s; ++test_decode_953x3_x2; ++test_decode_953x3_s2; } free(storage_decode_953x3_s2); free(storage_decode_953x3_x2); free(storage_decode_953x3_s); free(storage_decode_953x3_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_953x6343.c0000644000000000000000000013416714705505543022404 0ustar rootroot/* ----- decode/953x6343, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_953x6343_checksums[] = { "462d131e93122cf927e38d3798781c6d147030231c5697eb39bca774d4635e28", "7e950e4dd0d52156a6fe31883848e1937cdbe8905ef250b63749d08e599c115d", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_953x6343_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_953x6343_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_953x6343_ITEMBYTES static void *storage_decode_953x6343_x; static unsigned char *test_decode_953x6343_x; static void *storage_decode_953x6343_s; static unsigned char *test_decode_953x6343_s; static void *storage_decode_953x6343_x2; static unsigned char *test_decode_953x6343_x2; static void *storage_decode_953x6343_s2; static unsigned char *test_decode_953x6343_s2; #define precomputed_decode_953x6343_NUM 4 static const int16_t precomputed_decode_953x6343_x[precomputed_decode_953x6343_NUM][crypto_decode_ITEMS] = { {-1680,-819,1712,-94,-1253,-2126,-1877,-1614,2253,-2101,-135,-303,-2775,2319,-2581,1897,1305,1312,-575,2497,1158,1089,-666,1106,-937,-2720,1842,2842,-1315,2744,1428,1211,467,1310,2625,1270,-692,303,2265,-147,-2261,-665,412,819,2438,-557,2199,1361,-3129,1167,-213,-1740,225,-2474,1687,-1635,-1120,-1935,-1451,-1506,-351,-1098,-517,1011,-2500,649,-2384,-572,1622,273,-226,-469,-3028,-2969,-2621,1106,-2772,-1197,2754,-1567,157,-2569,246,-2368,1123,762,1517,600,-2312,-1662,-2653,2505,-848,2448,3134,1615,1547,-2618,-385,3058,872,-2202,427,3000,-3046,1462,3086,1212,-911,2859,-538,3162,-2694,1615,1855,2457,886,-2271,-874,-1388,544,1950,-930,-239,2050,1200,-1041,1836,-2956,-2270,-1349,-2158,1550,-1171,-2880,-1520,-1861,-936,-2310,698,-2268,-1153,-1339,2667,2429,1628,1739,1568,-63,703,-580,3103,198,-2355,-1754,241,2802,2426,2866,-2979,-126,-268,1147,2545,1487,3157,1412,-2779,1058,1267,-1792,-2608,219,-2445,-1228,2790,-1831,-2492,-2888,635,1974,123,-1615,144,1030,-582,662,-1186,1226,1439,406,-1265,2696,341,1514,3152,2347,635,1149,-1054,-1590,-1963,-1901,-332,-921,1347,-2469,944,-1849,-1016,-2305,-514,2435,-1738,1087,2682,-566,-738,-2259,2840,1621,1462,1229,-2431,2095,3068,2070,307,2212,-1903,1917,-2943,-2372,-1021,2754,3112,-666,-755,-1617,-2423,-1222,-574,-1383,-687,397,137,364,938,1311,696,-430,275,2673,-2475,2913,-555,498,-1473,-2715,-2968,-2672,-2791,-2997,3058,-1007,-2671,-705,-140,1153,-2013,2549,-2903,-3052,-2530,-2918,-1298,795,349,1262,1936,1701,1221,2692,-1329,-2888,-2391,-371,-2371,2330,-813,2941,944,292,1529,532,1606,2183,-863,2917,895,2335,-373,590,2006,351,-2445,-692,-1392,-3073,-1563,2067,-316,-1595,2568,234,2076,1528,-362,-970,2095,-908,264,-2299,-1039,563,1926,-1192,-1859,634,-405,535,-2865,2913,2102,1263,-3145,28,656,-38,-1227,-1293,51,983,-1959,-425,-2297,1265,1724,2332,-580,2926,3033,837,2624,-567,2220,1871,-470,1659,2150,2182,1232,2992,-1973,1888,-168,-1383,-2237,-1217,-2036,-703,1869,1364,-28,97,-70,2458,-1121,1090,873,2787,2401,2880,2481,-2762,-2367,2038,-2122,2922,-337,-1881,1274,-3093,2124,1349,1303,-622,264,1582,-1130,-511,1888,-1188,-23,-2041,-562,-2731,-2698,-561,-2123,464,-2171,2195,1609,2859,387,-2830,-1701,2372,139,356,-968,-2540,-1211,-71,-2827,-21,-1164,-642,3064,-1115,-98,2849,1728,2608,-2750,2838,-1912,-282,394,-2556,-2058,-525,-1634,521,-2935,2856,870,-971,1567,919,-2605,-2734,752,3144,1534,-3163,-2265,525,1387,115,870,513,-660,-2866,1279,-23,-636,1878,1881,-3164,1623,-1920,3019,808,-2692,892,2024,2279,2871,-1555,-2656,-67,1758,-595,1506,1402,-213,1424,2725,1532,1710,-3152,-743,-2227,2332,-820,-3030,2028,572,1375,1926,-1500,3126,-868,19,-1020,-373,1062,-2205,-2310,428,1227,-1743,-1427,-1400,424,1557,653,-591,1658,2332,2901,-396,-2678,-487,-3164,-2942,1098,-1755,2553,2810,-3090,1922,-1848,-2042,-1881,-339,654,1813,-1443,1617,-1501,-620,-784,839,1580,2038,3012,812,283,-483,-2973,595,-887,-243,-990,-1102,-293,2179,3026,-2704,-573,1866,-1187,-1785,-1533,-303,-670,526,286,-228,-1738,1860,960,2225,1632,354,-2797,769,1752,3094,-565,2589,966,695,2716,3037,-34,2786,453,-3043,1836,-998,-1038,-1761,-786,-1799,1356,497,938,-2379,-1490,-1800,2397,-1248,1973,-2897,2347,2150,1903,2202,-1872,-827,-2489,-2782,144,3100,2583,-3075,1062,-1761,2461,1829,1610,2266,-307,-2681,1207,854,1575,-2255,740,524,-2986,1786,1026,2739,-463,1544,-799,-2535,-3041,-1941,-3044,-2188,1023,428,-1882,-2802,-2903,2490,-1055,-1870,1971,1806,2672,2818,-2437,1913,988,1318,-3024,-2319,-1663,2746,-2812,-1438,2660,-1043,2367,1956,-2257,1622,-1563,1357,-3162,-268,439,1612,2813,746,940,-2211,-418,-1868,-1390,2678,-2478,-621,-70,1851,2962,-2713,566,-1770,-726,-3129,2845,956,-660,835,1994,-123,-2571,-2784,1643,2704,-2301,-1356,661,764,-237,-280,1433,-1130,-814,1866,912,-201,-2519,-2600,-683,3131,56,-1987,-1874,-911,-1302,1573,-169,-848,270,-460,-2941,-2686,-2172,2581,-2994,-1856,1594,-2733,1490,-1034,2539,2237,-2837,2371,1390,2453,-883,-2286,-1973,1856,2680,736,2424,121,3049,1932,2298,1056,-1923,-1254,-2059,-2241,-1181,-2265,-701,545,1458,-2304,1234,2149,2691,1139,1788,629,2231,1665,375,2019,439,-1791,3040,267,152,-1694,1675,2798,-1660,-2831,2979,3170,-1719,2777,-2112,-3056,1272,2307,-425,-1782,569,-278,2947,-2528,1535,-2123,3019,-3137,-1330,-453,2056,-1174,1524,-2594,-211,-2735,-3033,-814,-2773,-875,-912,2251,2395,2592,830,1474,-30,-1816,-791,826,-2351,-1861,2835,-2088,-667,3008,-256,-1495,-743,-1974,1424,-3101,-743,2562,-498,-363,2615,3073,-224,-1868,-172,2789,2804,2732,2985,-1644,2026,-2046,1595,2917,-1033,-3057,-2339,-625,-2489,1309,-2332,1067,2173,880,2659,-327,-2614,-1815,2673,-1242,2225,952,2982,-745,1588,652,1052,-1333,-790,3140,1965,305,-1072,2236,-2204,-140,-2955,-693,-414,1975,203,-2934,1748,-2395,-2176,-2934,-697,2495,-2293,-3008,824,-2628,1478,-1947,782,-2517,-2268,2883,287,1592,1026,-2659,-1634,-1661,3123,1010,-1072,-2523,1216,-123,-2865,-986,856,-3080,2628,1917,3113,-3041,-215,-1490,-2023,2324,-2877,1367,-2323,2200,-319,1395,-1272,-2384,-3052,872,2216,-1055,-2541}, {-2437,-448,2988,95,911,1780,-42,2252,2731,797,851,2100,350,2210,-248,-643,-1448,2319,-2503,330,-1609,-757,-548,1193,-237,-1408,1451,-2530,512,2322,2537,331,2166,2369,-1903,-682,565,-384,1354,-1425,2439,-2895,-1432,-1735,-276,-718,34,1866,830,2729,-2338,-1450,-300,420,1322,-645,-2805,1859,-2989,3166,420,-101,2373,903,2442,-3148,1728,942,-2295,132,944,2431,-2827,-2238,1742,1801,-41,-16,-540,-963,895,553,3101,-800,-753,2726,-2774,-2947,-1621,286,1341,-1903,-1092,-1016,-648,-2279,1945,1623,-593,981,-2682,1776,-806,-1888,-3025,2369,907,-2179,-2794,-303,-671,-289,-464,-1607,-461,-1669,-1206,1844,1215,-1435,1221,2882,650,-978,-2663,-2344,249,-1304,-373,311,2917,-1349,966,-111,2981,1589,1001,-2554,-257,-2150,-1063,515,-2325,2662,3047,1991,330,-1945,-758,1984,1120,-2992,2168,2769,1137,-982,-2000,1116,-1574,-349,1993,2131,2867,-1612,-2592,2671,-1490,717,-2959,-1107,-2245,-470,-2332,2069,2628,-1722,2042,3080,-1561,-1638,-1557,3168,-1685,-2979,-513,1427,-2823,1494,-2462,644,254,2883,1046,-2301,-2672,842,620,-2019,1354,-416,-2592,-22,1562,-2093,1343,-642,-2009,-1221,-3129,-2044,-2877,-1691,-3062,-2402,-2659,300,-948,-34,2182,2409,2047,-3100,-550,188,-2719,2929,2579,-23,314,2258,1788,-1481,-2591,3066,-633,-2758,728,-2496,-1258,87,2417,-3134,2605,1765,1218,3141,2422,2083,763,1439,814,-1440,-2379,-332,-2197,-2105,-1921,-1002,3114,1877,-1011,-421,1190,2627,-1320,2101,-2842,-2559,2029,-760,2441,-2999,-108,-1132,-795,-202,1583,-2688,-1232,-2285,-1459,231,2852,843,2752,-696,2206,-2994,-1858,409,2867,1631,2099,2850,585,2136,1121,223,2453,-1290,195,889,-1833,684,-384,-2041,1995,603,-293,1217,416,-152,278,2717,-1971,2786,-542,-2824,3033,-1074,-1936,-2260,1883,-1066,-1205,-1135,1532,-2524,-650,1101,834,2821,2786,2130,484,-189,1719,2647,-2570,-2871,-2991,-1665,-30,-1648,1633,-2045,1790,694,-1487,574,93,235,-489,-2347,2483,-2297,413,-2489,-2805,2074,2275,-2159,-279,-571,-1528,112,831,-436,-179,2555,961,-1206,1968,972,-2471,198,2585,317,-727,1266,-2123,1943,-907,3014,-1682,-2642,-55,-1253,-2041,-2343,691,1523,2902,1760,845,-1607,1482,-1082,-2702,235,-1157,-2932,-252,1405,366,-1461,2427,-2645,2711,1862,-1074,846,-576,2067,2246,-265,-2707,-594,-790,443,1819,1199,1070,-1681,3004,1181,-2432,502,880,-862,-2020,1697,3081,-331,22,-542,-2232,1931,-2351,762,-2663,2648,-2370,-2702,565,143,-1772,676,2430,202,-534,686,-1248,2847,3086,1867,-1668,-746,9,3014,2246,-650,2884,-1132,1054,2144,1755,-2016,1284,91,483,380,9,1349,-350,1468,-2133,-2938,-1976,-213,-2792,-3072,2550,-1999,2080,-1369,1007,2552,1240,-1249,1641,-3043,2270,-1328,1376,-1105,-29,2791,-943,-1231,-846,863,306,-2204,-1967,-1193,466,-270,-1117,-909,2087,-2363,932,874,-167,-329,-2988,143,-1379,-854,1511,-635,-1118,3142,-2604,-491,-2744,-179,-615,-484,1218,1187,-18,-3046,3030,2282,-39,-2797,-2612,2377,-3150,1604,-3078,-2365,1446,-2941,-1321,-1149,2823,1861,2998,2635,110,2930,-864,-444,-2929,1089,2500,2060,-1728,1836,-971,-644,613,-1591,3080,881,612,-375,-537,1979,-2485,3149,-2393,-3171,-513,505,-1378,-1239,1685,-2656,-938,-1913,993,-1754,720,1609,1535,1722,-1689,-2773,645,-117,-3099,237,63,2661,3135,1981,-2525,2042,2868,-1406,-2251,3095,-2190,1219,-1667,2449,-3042,1363,-217,-893,869,-3044,-2671,-1423,9,-1140,2217,-147,-628,-516,1536,-1530,2945,-2167,-2448,-1059,3096,-2530,2659,-2062,-1664,1403,2680,-1748,-625,2380,2988,-21,773,-336,-251,1840,1468,-1466,-2722,-560,-1747,1251,2391,-175,1608,1813,211,1133,2195,-459,-829,3117,-404,3134,1751,-862,2921,2105,-3008,-1462,-1804,-2840,2635,3144,1505,-796,532,-538,-687,-5,-201,-2203,-2561,-1798,500,-2738,-224,1378,940,-3111,-1164,1401,2299,413,-2923,1995,2359,2129,1655,-2510,-1126,858,-2600,1610,-1836,-262,-1628,-2648,-1242,-766,1697,335,332,2240,-3038,-1831,589,-1139,-265,428,-402,1419,-2647,472,-888,-512,243,-1375,-3072,1720,-649,-2323,-2281,-2465,-22,-42,-1224,-1803,815,-1811,-389,-1122,2648,2715,-1369,-1543,-736,-1289,914,94,-2582,-1997,1588,258,-1263,2998,-872,-2491,-1043,2034,1639,-1019,-926,905,-2222,297,1352,2604,-1724,736,178,2982,-240,1555,819,2537,3078,-2980,-39,-1982,-118,72,-1425,-220,2033,2160,1255,-607,-1704,-2983,2671,-587,-910,-3105,1039,1314,-2833,-2416,47,1954,3168,-1107,-1445,2480,750,-3081,-659,871,2333,843,-119,-2112,-2313,-318,2503,-1071,814,496,2368,-2000,1370,-1881,-2582,2813,-2402,1567,1115,-3,-2247,146,-991,-881,-1293,753,-2589,-1839,-953,254,1877,270,-2820,1946,982,2811,467,806,212,-2584,787,1568,1742,-1203,-1925,1386,-1551,-1234,2779,1546,1957,2105,-716,244,1939,-2212,-267,1964,-2703,2430,2506,-1597,2742,3158,-424,2828,1741,-1880,-1214,2957,2898,457,-1258,-669,-435,-46,-1022,-633,-246,-1675,-3012,-370,76,2108,-2196,-2216,-2351,-2956,-1885,-2522,-983,2436,-886,-775,2365,2473,-2962,-7,2428,-634,-675,-2841,-1126,-133,-1311,2093,-2811,-3002,1803,-426,1516,-2663,1364,-2728,1068,1403,995,436,-2227,-1566,-2307,-1371,-2339,2605,-1656,845,2957,-1472,-978,102,-2401,1011,-175,952,-544,2254,1304,1221,-1660,2464,-2312,-603,582,-1961,1094}, {-2380,-2698,259,276,-2744,2591,767,179,2862,1111,61,1156,-1898,0,-525,-1662,-2872,1941,3145,2794,-2460,2715,-2915,2902,-802,-522,-2828,-2970,-2237,-377,1599,-2591,-1535,2437,-454,-107,-1341,-2093,640,1191,-97,-2653,67,416,-2284,-2869,537,-991,2459,1540,410,-2833,346,2784,-923,-534,1683,-1970,-1386,2893,70,2863,2573,-1030,-3081,-668,-2172,-260,-2430,1936,-397,-828,-2408,2960,-3082,-2109,-2964,2959,2151,1727,1577,-493,-2626,-1128,-1247,1654,2428,-427,1939,3171,1865,-1970,-2017,3135,-639,495,1617,-1361,858,857,-1166,771,-2095,1436,-2662,-165,2009,423,-2637,856,433,-876,-2475,590,-588,-780,2137,-1410,1378,-2306,2162,-89,2300,-2435,1812,-2644,2981,1032,-183,166,1655,2082,-1733,-786,1949,465,-1577,322,-1082,-1693,-1670,-2724,870,1057,-2047,-2788,2505,2542,2650,-1111,2878,670,-1015,225,1541,-1989,2398,1249,-1799,-1650,3131,-40,-1448,918,2345,500,-1171,-352,1412,-811,2349,-1456,783,-64,-67,2994,136,1245,-717,2567,-739,-1062,-1684,-2271,-2368,-2882,975,1083,-2456,3119,-75,2155,2051,887,-1970,1758,233,1398,1120,1900,-1484,1491,2677,2622,-2802,3058,2631,-727,-2204,-654,-1143,2823,1984,-664,-2646,-523,-2292,1105,1512,-734,729,-382,-1303,-146,-2566,541,720,-1338,2149,2095,-2376,511,2641,-994,-1657,1834,2807,2618,-2928,-3165,1979,645,-33,-2965,2742,5,-1844,-337,-1183,2512,-2399,1036,957,2082,-2386,1584,-277,791,-2137,-267,-1145,1218,907,1095,-966,-2618,-2142,1544,1800,-2801,-2572,2953,1053,2823,599,-338,-1223,2223,-1301,-1096,-2178,2506,1642,-1965,-3110,-2356,-2665,586,-841,1277,-672,2084,2553,-607,427,2509,-2005,-1843,1203,-952,125,2503,-2177,-965,814,-2368,-2402,2085,1292,-2697,460,420,1625,1364,803,-2487,-375,-1036,-1032,-2183,-2366,2642,-1733,2521,2906,-2582,967,-95,334,-2348,2061,1972,-253,93,501,-1601,-1996,1949,2172,2163,-387,753,713,966,-2042,-784,-824,2989,-1104,-1834,-2632,-3157,-1828,-1770,2840,1461,-2071,2027,151,-288,9,2646,-2339,1032,-1936,-2237,-38,-719,1247,-1863,2279,359,849,1688,2730,1882,-2889,1332,-2088,500,-2434,-2353,484,-2448,-2824,-2835,-1662,-2122,-489,-756,610,1563,-1579,2523,3049,1104,-172,-1373,-522,-164,-1744,1792,-2233,-1566,1313,2124,234,-1508,2573,-3012,2839,1312,1086,-3093,621,-967,-1594,460,119,2513,51,-223,1585,-663,1,2045,1844,-681,1623,724,314,694,-1156,-2132,998,2765,165,-369,593,3017,1541,-2626,-194,651,-2872,19,1833,-3118,2157,-248,-2070,174,-2813,-1183,741,1302,1191,-937,842,1464,-2115,1780,1059,-1110,2393,-2847,1737,-162,-1381,1068,1596,-703,2268,-1650,-263,53,-1388,-2561,-2678,-59,1795,1686,-240,1197,953,638,614,3043,102,-1568,1333,-1589,-1550,908,1892,1074,-828,1160,-191,-3025,1602,905,87,-107,59,-1264,-2073,1417,-594,-1095,-1685,1304,2479,-539,885,-1003,2075,-1062,2302,816,-1438,-1068,-2180,-2484,-2202,-2307,-793,-2300,111,-2971,2833,-409,781,-677,1045,-1790,2618,-970,933,2042,-710,2372,265,-1650,1879,1073,-276,1457,-2734,1752,2257,754,-747,-1498,-438,-1342,-91,2733,-2480,-2600,1419,-1506,1117,-2854,1973,2516,-2736,2488,1965,3129,-2839,-2953,-1586,1649,-2043,960,194,916,3112,554,2223,2757,1616,-2345,-910,-2714,-280,344,-1884,-1805,1435,1825,-1202,1596,-906,1961,1397,-2512,3039,2935,2294,154,3001,-1804,-41,-2318,576,2181,1489,-212,-2442,1833,-466,-2865,535,689,1100,1532,2014,-999,918,930,-2247,-2449,514,-2601,607,-731,-2774,2511,534,2246,465,2743,-2977,-228,-1298,-1520,-2971,-3105,433,-2602,-1550,-1910,936,-487,-591,-2832,-149,-1266,-2337,1082,-2323,997,1418,969,563,3140,-1863,-1887,1602,508,-1195,1975,-2167,-851,-2593,2663,2249,3001,2006,-1768,-2421,2545,713,-2789,66,1379,-2967,-3106,462,2639,2897,-2889,-2532,-1880,2839,1191,-100,847,-609,-200,920,1251,-423,1314,1126,-1682,-524,2696,438,902,-263,1711,-1843,-2557,-604,2913,-3094,1199,365,-610,170,1028,2144,2075,2031,158,1686,3120,-3155,-2684,134,2773,148,629,985,-2279,2587,2576,-2149,-1870,-2081,-572,-68,2182,39,3035,-1957,-1449,2383,-2224,-1762,-2007,-1668,2307,-664,-1774,3131,-2278,2500,-1194,1970,-291,2239,-1771,-18,-2798,-153,-2702,-992,-2155,2770,-2299,1691,2507,-2095,-711,766,-2007,-543,3010,-143,2965,-2050,3152,-2171,133,-1884,-2221,-1520,-394,-2223,-2724,-1539,386,264,947,521,1196,220,2930,1473,-3064,-37,-702,-2558,116,-2774,-1771,-1543,-1289,2688,1765,1347,2693,-2938,3046,2072,-488,-1090,-128,-1216,2552,-2627,-635,-1703,-769,-3029,225,1854,-1731,2530,-3106,-1562,1510,2028,581,-1496,-1112,2103,-2903,-134,117,97,-2595,-120,2733,991,1549,-1318,-1514,-1384,-1657,-868,893,268,12,3097,692,2110,-1383,-1293,-2907,2712,-802,1551,1884,39,418,-1602,-1196,884,-1686,-1010,-1159,1339,-1300,-3102,1517,2241,1603,2186,1526,-627,3112,-1684,2530,-2171,2747,573,2914,-1666,-659,2758,-1320,1047,2619,-722,711,-952,-1129,2707,3132,-292,-39,-403,1327,-1763,270,-2933,1283,-104,-2133,1290,-2912,3076,-1409,407,-172,3093,1335,2455,-1442,-1696,-2410,-97,-1765,-1542,359,3127,-1662,-661,2802,-59,2366,-2777,-411,2812,-167,-2564,2364,-978,1363,-1714,1529,-2572,-90,748,2968,-2864,2704,-407,228,133,-2128,984,710,2631,-1292,-1213,1187,-23}, {-247,-1155,-2532,2748,-2211,1053,-2532,-1834,-2821,1824,-1093,973,619,-2094,-471,-2664,3048,-2043,-2706,703,2841,209,1865,2165,-1923,-473,-1920,2026,-94,2665,1099,-1947,1298,3086,1542,-1400,-2479,1204,1101,-1878,-1841,-2245,2334,-270,-1748,-1967,1740,-1073,-354,124,1062,-1714,449,2201,409,945,-463,1212,-1012,1520,2115,218,2651,390,-1825,2654,1541,1250,901,-1867,1296,1661,-2840,1770,1810,-345,2953,656,1397,-536,1566,712,430,-2353,386,-87,3055,-2391,-821,2922,-2704,3073,-328,84,2515,2065,2715,1610,702,1723,-1601,1761,3011,-1652,315,-1855,-2044,-2088,-477,1039,-580,741,-2983,-812,1381,-2712,2407,-438,2701,2462,-858,-3159,-1211,-872,469,-2486,1761,-987,-2466,457,-2578,-1738,-200,-462,276,-2851,-1082,3150,2381,-955,2607,792,3101,2192,495,887,182,1541,-1754,-1584,-2187,1534,-153,1764,-2974,780,-953,663,2866,-185,-2105,801,546,-558,-946,2665,2078,1445,-519,1919,19,2734,-2580,-1587,-2393,1991,-1409,-1274,-1864,-1550,-2102,408,-1018,1438,3125,924,-859,1778,2143,-418,-854,-2367,1199,1776,-2818,2403,998,-648,932,-2286,-1228,-1323,-2049,-3036,-1538,-3025,2805,2500,2103,-2231,3084,276,1422,-2729,1819,-691,2780,-477,297,-1553,585,-1564,-1540,340,-400,215,2164,-2387,-782,-1207,-2341,2444,-2521,1572,2196,-2098,1498,2431,1871,-1555,-2851,-1101,1816,-2087,-490,2284,-2268,-3008,-2608,14,2088,-2268,-824,39,1041,-481,1062,2022,2626,2141,2603,2672,-1399,2198,-2749,569,943,-451,1851,-1743,-3026,1826,-1886,476,-1086,-2071,-890,2642,2764,2767,742,-925,200,1751,-980,279,1755,-608,2064,-1696,1540,-3147,895,2169,2350,-1047,3004,-1900,-636,103,2931,-42,871,944,30,-2834,-2616,2504,532,2852,430,1294,-901,-2069,1118,-896,-2875,545,-915,2269,1527,-928,1587,1075,-646,2179,-3140,1173,2839,2435,3167,-2410,-3074,287,669,2763,1896,640,-1996,-2834,-1890,-1562,2181,2764,636,1006,-2980,1267,2800,-1137,321,-1245,417,-1671,-2571,-1768,221,3066,-455,-1005,210,2027,-251,3102,-3103,-1229,-1493,-850,2624,-828,-868,-440,-2277,-2633,2031,-2137,-2290,941,-1637,6,-430,-2043,385,-1694,1877,1040,2153,230,-2328,229,1563,2864,1764,200,1109,960,1679,-3153,-2771,-1756,2066,-2037,1993,-1664,-857,2584,-1642,2728,-1957,-2401,-2573,-3110,-2213,1131,523,-1496,3142,-2021,2061,-2578,-210,-1930,2993,-2261,-1967,1384,1897,2506,-2448,2977,-781,-864,-1672,-1366,-2766,2183,706,360,1711,-1926,-2192,407,-3002,1563,142,1475,-1323,1012,72,-223,1951,-351,1966,1045,-350,505,1482,-288,-2602,-415,-2690,-1252,-1749,-108,-1605,-2888,194,-1680,-143,1662,1512,689,-245,-2945,-2413,1460,1987,-144,244,-1655,3038,-702,-2228,-470,-802,-1589,1776,681,986,-2265,996,2594,1692,2294,893,-2805,-292,-2903,945,-860,-3059,1105,-1024,764,-1886,-843,1766,-330,-688,1020,2632,2566,2925,-2174,-1322,-1057,1073,-647,1225,-2635,2657,1189,-2481,-2413,-2685,-741,1746,1931,-1066,1261,-2211,-285,3144,2803,307,1277,-1535,-2464,2834,-671,-1487,-2200,24,-1718,521,625,1556,93,177,1915,1791,1764,-2872,210,142,-202,344,-318,-1281,423,-1744,-2886,528,-1426,-975,2671,470,1305,213,705,-652,2127,-295,-2059,1580,-420,-2814,2523,-3053,2309,-1974,-585,-482,-1034,-2521,-1681,-2524,-1603,1558,464,1236,-2347,508,1102,1779,2944,-2851,-756,-2661,2538,1489,66,-94,2752,-267,-691,1104,-828,2456,2377,1661,-544,-817,1012,-1101,-2732,-27,1911,-516,496,759,1962,2301,198,2557,631,-2082,-816,1930,415,1254,2091,3143,790,2771,-1070,664,-2056,2325,202,2283,1545,-449,670,-2279,2009,-2038,-957,1599,2958,1508,-1100,1054,-2127,1445,-2032,2510,2465,406,24,1103,1662,2625,-2779,-732,-3168,-838,2327,-1958,-2626,2284,-1874,270,2519,-1044,-921,3062,1564,103,2895,-456,-1310,-1672,2008,-218,-238,-146,693,2308,2063,-905,-1922,2416,2854,1686,1336,-2687,-1108,292,-1148,1249,-874,2291,-726,692,1738,-1030,1689,2281,-2356,2483,-1712,-976,338,-2407,-1644,-678,320,1216,1763,-788,-519,-8,-2698,302,-1556,419,-635,2165,-2996,-2593,-1266,-1071,1244,639,-1636,-1930,-2244,-1528,-292,2099,-2818,-2260,-1456,-1024,2793,1272,796,1899,-461,1241,-1011,-2733,-100,-1325,2282,1246,-1032,-528,629,-538,1967,-2228,1414,61,880,-3145,-404,2330,-1823,2956,-1059,1321,2196,194,-223,1308,-2694,2701,2963,185,-2768,1692,818,-2002,-2744,-419,-2098,-2928,2497,-1286,-120,2821,-1794,3034,1780,906,820,-994,-28,-2900,-2158,316,-2865,-1987,-1849,745,2926,1251,-1304,-1013,-1275,1448,-412,510,2155,-2936,-2521,692,-1861,879,-945,-1887,-2909,1873,-1337,652,3037,-1207,997,-2038,3012,-1358,2675,-710,-2113,-227,1605,1484,2925,1623,851,-84,2897,-2854,-986,2789,-1788,-1341,-2372,2243,-1920,1288,-2948,245,-1555,2494,-373,2214,-2759,-2371,-230,-2963,1790,-1912,2284,2694,-2269,2171,-330,468,848,1041,-2117,-2185,1407,2650,2527,-2022,1597,1771,644,372,2385,2326,1741,-2050,2986,2891,-1465,3088,885,457,-2420,1934,2582,1789,-2083,-2821,-2918,2391,-1057,980,-3146,1902,2217,-1619,-229,-2764,-1976,-2024,844,1395,2483,656,-1115,-234,-610,790,2263,-1147,-1171,-1093,-2545,910,1779,1108,-615,-2311,2335,362,1657,-2855,-1201,-2508,-1484,2070,675,2144,-1432,-640,219,-3013,-1054,1577,-1101,-2029,1147,-267,-2653,1879,-82,672}, } ; static const unsigned char precomputed_decode_953x6343_s[precomputed_decode_953x6343_NUM][crypto_decode_STRBYTES] = { {35,170,246,226,209,43,97,183,242,164,72,161,42,93,226,133,81,246,32,160,101,96,124,254,79,175,192,13,61,133,73,48,125,193,211,234,45,70,236,195,148,143,153,59,227,21,230,183,72,220,239,139,19,131,250,188,207,168,255,44,115,174,56,205,19,188,100,143,229,103,227,143,149,141,217,246,9,16,1,86,246,80,142,197,17,186,173,13,94,16,58,94,248,224,255,80,77,152,245,236,10,217,11,83,236,105,138,79,54,168,52,253,59,58,134,202,117,43,250,154,74,179,237,207,42,34,123,164,58,53,145,18,33,165,136,204,123,86,232,122,53,84,74,17,89,144,3,191,146,255,45,71,121,7,213,65,32,206,213,172,134,4,42,76,58,137,159,2,95,154,8,131,152,81,86,249,13,189,173,95,171,228,249,222,244,164,0,46,187,64,151,135,243,0,114,13,32,116,131,246,53,241,215,203,212,80,131,73,87,152,201,44,213,199,109,142,116,133,45,204,39,124,108,176,107,238,19,180,179,206,28,37,105,26,50,51,217,223,134,107,96,98,232,113,100,57,234,191,127,87,111,145,220,115,76,73,67,102,149,167,87,201,193,226,32,109,195,101,14,37,172,6,190,10,244,72,190,191,54,91,32,41,197,94,111,127,208,120,119,78,165,94,11,243,214,103,6,119,118,160,132,228,0,31,28,82,148,56,90,162,199,103,85,123,6,228,234,241,23,182,4,127,180,92,181,96,155,3,255,196,88,172,179,114,136,149,100,115,101,51,240,223,94,94,32,162,109,214,152,219,117,142,93,240,213,208,77,127,29,19,142,59,85,11,32,186,6,109,235,225,116,215,232,68,79,47,139,127,57,120,162,98,47,33,149,210,200,155,203,98,85,60,87,124,126,23,34,128,32,157,249,174,211,182,129,136,103,201,218,120,139,215,170,184,88,117,7,72,169,114,68,70,15,182,132,87,111,76,158,128,207,116,185,63,214,213,38,242,132,22,150,187,29,205,224,229,202,52,166,155,244,215,58,179,18,122,78,176,146,53,21,42,77,22,95,180,221,102,221,10,157,254,165,32,228,107,44,222,0,222,165,222,167,27,179,181,63,93,43,185,150,124,119,255,105,161,202,174,232,89,225,99,118,125,185,200,105,215,115,143,6,89,58,71,125,111,83,169,124,196,150,176,217,172,81,200,10,42,101,29,167,247,84,239,202,74,122,30,57,113,172,112,135,237,121,38,190,59,80,152,254,54,64,128,252,108,216,72,8,218,58,75,161,141,38,45,210,155,156,219,58,229,106,244,175,82,230,62,50,88,74,113,174,135,95,61,191,240,228,154,168,113,186,100,99,128,213,211,251,20,181,183,78,184,149,52,22,153,205,21,125,28,43,227,13,169,172,255,26,97,151,136,184,4,24,77,22,120,233,161,150,186,144,175,4,198,127,18,193,99,168,151,164,12,160,36,11,102,224,187,151,233,151,243,237,200,86,190,226,18,190,137,223,118,111,181,138,188,247,12,19,79,97,233,24,70,170,248,35,252,59,52,79,250,162,39,164,33,239,208,239,27,251,107,168,167,51,26,153,135,217,195,133,21,45,119,179,177,71,174,209,233,195,218,139,156,176,140,169,132,105,70,138,252,251,164,221,193,5,47,127,225,210,112,233,241,47,187,230,70,23,119,100,231,46,130,88,101,153,101,227,176,99,144,240,59,223,180,21,255,50,51,11,143,70,7,12,184,66,178,10,252,173,248,64,61,71,221,86,36,68,96,214,158,197,216,30,1,229,202,51,238,41,209,80,181,136,37,165,67,117,122,119,15,187,83,10,129,156,98,3,24,198,92,222,234,124,62,189,32,86,58,149,207,147,221,100,162,146,49,87,228,134,205,83,233,253,20,55,66,247,227,93,216,255,233,57,209,86,108,100,40,175,228,0,108,13,227,208,246,22,79,248,16,94,110,42,157,169,49,229,41,138,89,65,64,83,202,17,34,223,229,96,22,65,245,30,219,28,130,76,91,232,95,26,215,251,26,105,253,111,46,30,244,24,110,35,202,180,157,161,137,211,91,145,245,255,11,101,158,203,43,169,194,235,191,123,18,177,123,120,222,199,137,154,173,67,190,253,219,188,56,109,218,126,248,48,51,68,79,231,225,57,41,197,79,9,42,15,44,159,168,190,129,159,59,157,192,115,75,161,129,232,234,80,153,17,59,176,31,143,223,177,127,99,27,220,225,76,80,203,73,111,136,49,198,225,190,122,14,44,184,160,73,54,14,105,10,59,62,16,153,155,110,36,17,54,0,238,204,92,40,149,249,120,218,117,172,206,147,45,221,96,135,153,202,90,213,202,10,198,55,226,254,119,184,144,13,139,102,134,202,9,234,165,222,14,35,109,177,202,239,99,224,78,197,13,89,76,99,171,166,63,184,74,226,73,147,200,5,172,255,220,199,213,90,30,211,84,25,46,198,55,228,141,226,35,76,134,8,2,246,228,22,51,160,244,96,200,149,63,236,167,7,21,35,75,94,198,110,83,44,35,2,154,246,254,13,117,23,149,65,221,78,11,90,198,62,155,254,130,172,79,4,121,40,231,244,70,1,127,55,22,124,205,171,2,166,19,79,238,226,215,36,144,194,155,175,124,202,69,180,86,189,178,95,182,15,30,56,85,83,138,200,3,180,52,129,1,207,49,241,4,175,131,249,239,11,14,82,36,125,60,56,182,178,233,12,189,4,76,168,114,200,39,77,55,30,29,32,185,191,210,124,212,100,208,225,178,71,161,204,157,14,183,239,96,76,250,169,71,160,70,27,220,204,199,106,165,106,103,106,154,11,112,121,177,20,235,128,40,79,77,255,218,187,250,96,70,5,160,34,228,184,49,172,17,65,226,11,255,202,160,148,107,78,50,163,231,156,18,250,204,85,255,154,203,31,124,184,111,165,43,129,50,204,178,88,34,2,35,33,4,125,135,247,82,154,88,5,51,189,139,199,4,182,213,107,3,52,177,46,222,237,195,92,206,176,119,177,26,184,142,153,50,180,244,202,69,154,108,10,51,192,222,131,87,62,134,76,187,191,153,86,112,123,44,84,110,237,36,163,213,6,194,90,103,172,27,193,207,26,201,213,5,164,244,96,119,145,126,119,177,153,181,219,24,244,202,198,209,155,44,74,210,82,181,47,120,175,113,114,183,8,42,137,18,126,82,153,213,65,143,246,134,84,215,236,133,219,167,49,239,162,212,71,101,63,179,180,130,118,212,30,203,159,95,126,198,184,130,99,204,176,219,226,139,208,184,251,215,163,45,230,91,212,243,93,158,116,178,196,95,63,41,102,189,116,180,5,154,153,162,62,208,227,105,244,35,17,153,47,4,50,176,201,42,80,141,84,190,169,162,42,250}, {147,143,221,50,147,64,194,235,142,35,23,57,164,220,139,184,89,98,23,220,156,170,147,106,235,173,85,28,86,180,142,8,85,71,195,235,13,205,235,14,118,204,15,3,34,118,0,144,245,25,16,149,168,154,31,141,120,215,189,86,121,48,142,100,206,79,90,40,253,178,193,66,155,78,37,76,191,104,167,190,182,126,149,147,113,201,173,175,85,157,76,203,76,155,63,95,146,18,154,229,110,207,146,54,14,51,14,19,229,150,18,250,87,106,40,106,14,106,154,22,107,234,164,79,217,12,169,192,164,13,26,112,213,58,48,204,235,199,13,221,134,201,141,145,240,180,179,182,162,248,232,99,71,254,111,238,12,241,231,39,166,61,119,251,129,111,225,84,68,197,57,111,143,44,6,85,138,23,245,101,227,141,14,155,156,16,171,131,86,64,107,255,195,68,110,105,79,142,66,183,30,202,119,104,137,215,92,192,59,20,158,63,52,110,41,244,54,167,125,38,147,243,86,37,144,103,138,197,208,129,21,165,143,170,245,2,240,99,15,92,151,170,136,211,189,251,3,154,236,62,38,153,249,201,116,48,241,242,149,172,34,50,19,60,99,73,5,61,125,110,160,187,248,100,55,101,7,210,77,200,54,75,201,151,16,163,152,54,5,132,100,220,249,212,9,180,18,143,39,36,42,1,227,33,73,105,224,89,58,190,208,64,121,238,83,147,2,160,83,14,252,48,13,208,90,22,80,177,169,130,125,1,248,39,81,172,176,45,141,11,98,195,42,116,14,14,208,39,187,125,98,180,2,203,124,173,38,16,153,166,242,7,100,176,112,198,171,197,194,62,159,63,156,16,155,21,220,173,159,122,110,251,183,168,8,57,30,175,14,40,240,95,206,88,116,111,12,66,119,169,167,41,135,240,19,143,192,254,89,55,200,210,221,1,31,88,7,109,159,210,124,8,207,70,31,79,18,130,182,138,155,44,20,248,28,128,173,209,127,172,89,53,180,103,182,206,232,91,220,139,132,88,145,125,179,180,238,186,75,172,216,20,168,112,22,124,19,221,25,201,159,190,4,134,30,9,45,145,13,80,112,150,101,133,73,125,15,249,73,23,76,118,230,117,193,7,204,22,192,204,227,120,70,165,74,118,72,213,96,246,162,72,98,144,242,28,213,192,27,72,162,133,100,11,127,101,123,151,181,26,207,220,124,37,20,223,246,62,227,250,230,39,231,2,211,84,4,187,2,31,91,9,100,139,212,248,110,80,112,96,204,161,241,156,252,250,55,70,59,172,156,125,126,179,10,3,230,211,213,4,77,235,159,202,195,53,231,178,237,165,44,139,234,164,120,217,26,130,130,189,209,142,154,235,110,122,95,232,140,246,251,212,84,134,129,90,192,48,53,159,188,195,200,1,2,230,88,68,147,108,194,34,217,108,117,185,4,209,251,76,177,248,45,115,173,10,126,23,102,183,250,2,166,14,243,116,230,158,30,145,22,161,246,71,29,142,16,189,30,105,164,14,155,75,117,240,54,229,198,118,18,188,173,229,238,246,166,83,179,222,219,137,94,247,186,0,134,13,173,12,232,251,182,190,130,146,148,164,12,205,98,104,228,195,41,178,64,186,3,97,211,74,233,153,224,99,114,225,96,98,10,29,72,88,156,228,3,111,194,176,165,91,45,198,142,152,121,48,252,17,231,162,26,244,227,26,147,217,99,206,162,91,57,137,137,171,212,2,188,42,20,148,45,117,170,132,226,148,127,32,218,236,195,164,89,12,102,58,223,55,122,47,35,108,213,38,55,20,117,20,51,221,131,247,71,197,214,63,194,149,33,139,29,37,150,86,22,250,232,107,131,236,237,45,15,150,94,175,15,14,162,172,162,209,178,237,17,135,143,30,10,67,75,10,181,249,132,221,75,187,1,141,57,19,11,128,249,161,76,185,56,144,111,229,1,11,187,27,183,109,232,166,4,170,189,6,53,35,233,59,99,48,227,127,75,173,85,214,246,25,72,252,44,114,85,210,133,213,29,183,113,239,244,88,85,60,254,161,70,250,143,17,52,131,199,92,61,193,51,61,20,242,33,196,39,44,83,91,152,58,48,13,187,183,165,136,208,208,220,197,177,24,90,27,147,39,60,106,147,143,63,43,239,167,180,64,191,13,94,37,184,99,124,247,95,147,36,37,150,51,0,15,166,152,234,20,150,70,88,217,93,213,193,8,113,112,71,28,247,184,80,100,197,5,197,195,85,145,111,135,236,107,160,220,103,196,87,132,110,255,75,195,17,202,72,28,65,144,128,73,31,12,225,181,58,172,204,39,219,0,185,3,58,121,181,193,193,35,113,128,199,68,100,109,222,117,63,50,233,52,7,224,51,145,127,241,7,7,23,137,70,85,33,120,228,80,46,114,60,229,155,10,15,4,130,98,195,148,79,238,25,128,103,41,194,6,180,226,200,211,24,56,28,200,122,99,229,103,157,253,61,160,180,78,163,164,193,138,68,128,135,127,92,163,132,46,4,108,19,101,161,234,245,121,33,146,129,153,5,250,113,108,252,239,133,152,182,124,33,66,41,171,204,9,140,185,228,199,212,174,242,233,83,210,40,246,104,46,182,79,123,249,161,208,126,59,252,242,229,112,18,43,70,85,67,84,50,115,208,67,93,143,70,31,104,220,52,189,207,150,96,83,225,4,87,221,90,242,143,130,90,52,46,195,240,174,247,181,198,140,241,131,82,183,160,253,186,91,99,149,60,138,85,246,125,140,42,53,169,142,60,36,104,23,137,84,24,162,188,65,156,135,225,63,179,171,145,52,131,100,126,253,162,155,47,240,226,193,216,120,247,45,99,176,194,212,249,255,62,44,223,72,239,213,133,155,212,176,102,186,44,154,79,197,207,111,129,191,235,117,135,29,61,50,147,53,11,101,209,122,175,248,178,205,30,89,71,182,245,49,132,191,169,62,73,13,169,233,165,141,43,132,104,25,176,245,187,242,93,158,29,252,70,46,173,209,99,242,219,160,203,197,22,188,237,193,20,206,25,111,170,123,94,141,44,179,35,39,102,218,186,75,88,127,152,147,203,164,17,208,52,242,112,98,31,52,145,47,140,226,38,210,245,68,132,14,68,94,5,122,134,211,240,133,63,232,97,210,132,255,214,247,167,12,53,77,44,36,87,168,154,177,159,126,53,175,17,63,77,105,62,78,243,207,19,44,23,209,161,131,37,103,121,23,248,179,169,171,30,175,173,113,161,23,8,241,26,106,66,158,82,215,169,90,13,114,184,82,201,66,171,210,200,245,62,180,180,126,194,103,182,9,83,112,219,181,222,35,240,65,202,56,30,56,146,111,51,117,151,60,49,127,64,44,83,255,119,121,110,37,138,193,136,5,229}, {198,202,231,172,185,176,124,75,39,136,49,216,238,237,89,23,243,198,135,109,57,178,207,201,112,108,150,117,140,111,126,53,188,205,101,152,32,93,169,61,172,46,251,56,57,62,24,13,15,12,187,196,210,106,163,66,141,80,201,240,39,15,187,78,11,66,192,194,202,76,39,208,224,104,227,201,237,77,56,36,70,68,62,190,51,6,231,170,224,229,67,81,112,90,162,219,178,65,225,234,31,144,109,233,175,242,2,238,115,196,21,46,79,6,184,116,163,133,44,202,155,96,127,81,32,21,53,227,171,5,61,126,149,219,108,254,125,25,19,21,86,73,101,70,29,22,35,7,17,120,104,217,72,184,58,121,157,225,179,59,123,34,74,201,45,99,37,223,111,124,181,18,167,198,115,188,171,117,252,101,235,40,107,33,202,251,4,203,73,204,58,136,220,214,56,20,251,68,172,222,145,62,255,197,132,227,126,162,90,160,82,43,240,184,117,76,91,223,174,240,63,255,195,206,221,71,18,120,70,194,73,97,251,202,133,112,101,99,157,149,118,106,100,252,241,123,45,80,105,17,77,49,131,123,86,59,36,131,114,21,173,211,20,244,124,142,50,93,9,227,203,186,230,51,241,64,154,24,75,220,220,120,71,204,198,225,117,162,186,138,180,166,120,63,94,205,222,140,3,214,134,55,180,134,198,199,185,184,229,241,160,157,253,255,58,67,141,174,95,168,216,161,66,238,152,25,70,199,114,181,81,218,166,244,198,2,151,144,57,87,44,213,11,119,238,11,155,61,98,111,253,92,78,158,35,104,238,28,15,22,59,14,109,206,221,106,73,94,6,170,80,189,209,88,248,38,123,213,220,81,191,46,76,8,139,134,84,141,195,199,183,62,106,32,113,219,97,17,210,19,136,95,77,91,141,141,6,2,9,122,79,252,67,157,20,96,178,116,70,47,50,96,40,208,4,227,45,19,123,14,12,34,136,151,153,150,38,63,232,248,15,210,163,246,229,192,191,52,253,252,132,196,194,106,87,252,160,73,170,170,193,52,161,138,152,113,51,78,39,78,27,241,150,75,132,21,37,17,5,53,245,42,227,206,3,185,51,125,222,50,90,47,30,209,154,239,212,55,34,45,25,147,130,154,3,159,190,18,213,247,107,36,10,212,32,229,233,51,166,248,134,145,232,129,105,163,91,86,74,104,122,106,34,114,251,185,140,29,83,156,110,134,195,67,198,214,219,248,146,124,71,248,247,245,112,16,120,121,144,70,53,56,43,191,217,128,176,184,84,213,194,26,253,136,157,215,38,158,38,160,42,213,201,4,20,68,168,63,225,58,154,157,74,105,45,190,29,218,184,18,4,230,189,102,77,155,251,14,93,118,173,84,111,168,6,167,136,64,165,76,220,251,218,228,123,57,122,55,107,242,88,89,106,115,123,216,182,210,22,100,99,32,144,18,111,214,153,217,165,108,77,165,72,107,33,196,103,224,56,75,126,38,238,23,92,143,72,169,240,114,214,222,58,62,30,8,143,109,83,75,143,98,234,98,12,246,64,70,93,239,127,151,101,13,31,33,64,46,4,227,56,68,90,142,122,114,99,227,75,245,151,236,30,117,181,210,25,72,62,245,161,34,113,89,223,214,160,101,227,81,81,239,147,144,62,37,188,180,84,175,215,189,85,174,41,56,190,63,201,134,246,110,213,210,106,149,68,38,93,112,75,94,13,125,192,160,120,28,53,184,7,71,156,237,134,255,64,204,129,247,34,205,45,71,99,75,133,158,21,185,210,139,81,109,129,3,134,37,213,129,82,45,219,211,254,159,168,185,24,194,150,141,96,240,120,117,234,128,106,176,1,115,204,96,8,21,231,56,24,79,238,4,197,71,132,204,91,121,82,229,76,103,225,143,31,96,184,31,93,251,133,34,142,148,130,96,235,83,109,106,98,45,50,202,117,196,7,40,117,188,46,36,28,176,253,37,114,205,58,204,195,0,145,38,6,62,76,117,55,195,1,172,143,34,227,45,78,99,87,16,56,23,221,130,194,34,21,162,59,81,46,55,1,110,82,173,244,32,99,174,157,37,225,36,79,244,2,35,131,214,248,184,11,221,53,235,86,53,108,59,24,160,253,4,173,255,26,177,75,243,80,211,219,69,42,94,212,27,146,94,14,140,116,47,136,218,240,194,232,250,245,45,129,105,157,110,173,203,100,249,118,188,116,247,171,192,76,33,123,153,180,61,145,195,8,164,205,118,221,146,150,246,227,98,11,242,63,101,237,213,170,48,3,95,80,68,117,208,229,3,112,186,93,240,22,182,196,3,181,111,2,168,86,143,85,203,135,219,95,231,7,33,247,200,92,172,37,51,94,101,181,160,162,38,149,229,131,137,254,125,24,83,58,50,204,224,88,41,17,110,227,41,250,230,145,230,55,122,160,78,68,50,23,203,117,239,165,170,180,222,39,37,149,24,191,204,251,29,164,246,109,185,217,182,246,187,115,10,63,237,100,3,211,195,122,243,202,208,152,31,231,28,244,160,222,152,122,154,131,16,152,130,73,179,250,95,124,251,220,112,224,18,218,249,180,195,129,46,236,186,68,8,196,173,39,199,152,239,103,35,40,235,204,65,99,87,43,185,224,217,6,15,31,211,245,28,97,135,213,218,189,102,222,121,76,154,214,78,206,115,105,139,107,245,188,186,115,239,1,169,22,171,209,22,50,56,141,237,40,244,1,165,197,110,17,120,86,178,64,11,65,227,64,209,52,254,169,194,2,132,241,213,151,24,18,7,72,253,125,26,249,140,45,69,60,66,19,82,246,62,23,71,42,120,146,40,255,155,63,175,234,114,162,53,240,151,135,224,160,250,49,154,22,15,106,54,67,125,84,180,114,72,156,143,176,5,149,67,67,66,91,207,161,231,12,66,133,217,199,146,200,114,209,45,97,108,198,232,245,201,181,150,124,121,247,175,61,15,179,239,102,204,37,223,39,93,41,210,135,189,87,147,0,111,105,38,234,249,36,134,191,69,66,90,124,154,9,56,194,37,46,116,72,249,60,98,109,100,4,17,4,112,147,206,54,44,13,137,176,209,138,67,188,82,184,105,255,232,236,104,0,119,39,145,120,84,127,232,125,64,213,153,97,64,28,254,220,3,83,8,36,87,242,126,198,130,153,151,60,87,178,63,53,113,237,120,156,50,65,33,205,221,155,247,121,212,86,6,59,137,67,208,1,217,201,56,104,160,175,162,76,100,118,134,73,148,180,218,159,21,84,3,133,79,29,221,141,88,92,168,33,59,178,95,91,52,172,57,12,30,133,183,64,69,211,58,40,141,110,87,83,102,193,204,147,68,221,77,70,142,211,96,237,209,167,58,152,250,88,30,230,75,240,145,220}, {140,42,152,227,64,215,206,105,51,116,110,29,1,76,169,28,35,69,63,245,232,58,148,135,38,38,190,4,153,228,38,136,76,169,22,123,149,115,203,53,4,165,148,220,123,141,13,34,90,244,32,21,8,254,136,109,173,65,244,14,17,23,221,190,73,205,11,247,144,69,147,189,38,58,59,152,209,126,37,26,238,228,239,57,57,139,166,150,137,193,143,87,92,21,98,220,121,211,115,187,254,95,239,28,154,108,68,214,36,131,23,171,125,82,149,126,69,154,183,73,93,50,197,138,179,90,252,116,245,38,64,180,110,61,55,6,192,209,72,144,47,167,101,41,200,208,241,27,46,159,63,101,251,175,14,104,0,29,187,24,198,115,184,245,69,225,185,216,10,175,173,146,159,81,176,159,129,161,46,233,74,106,48,31,209,111,27,8,201,136,9,218,151,222,75,126,134,65,250,183,31,228,83,21,223,39,169,247,78,15,240,183,135,217,78,27,105,213,74,167,221,151,160,215,233,194,71,246,9,32,7,120,123,17,14,239,235,68,226,123,90,90,31,254,226,2,60,202,10,70,124,122,113,184,130,107,72,173,229,55,147,156,123,172,234,252,114,82,170,73,244,164,254,255,57,127,156,167,13,207,51,113,65,111,101,242,147,35,8,215,15,101,230,230,165,168,32,28,237,234,37,240,143,86,120,170,152,69,104,0,232,52,128,177,54,65,196,169,144,141,239,41,48,7,167,216,231,112,68,173,81,192,111,176,194,99,64,238,142,162,192,191,113,130,214,85,153,138,113,244,206,118,8,60,245,204,139,181,86,174,215,37,175,47,222,245,197,170,244,219,236,91,180,21,24,40,225,255,157,131,141,55,7,2,29,165,139,64,67,22,195,45,180,87,237,227,240,208,129,245,247,213,161,239,167,10,134,247,76,139,193,233,224,99,123,44,155,102,103,121,64,40,118,43,129,225,199,136,239,13,171,82,246,184,123,51,242,207,221,146,41,81,155,48,123,184,217,226,71,96,30,4,89,33,137,212,66,27,149,192,154,189,143,122,27,106,42,92,187,208,215,170,28,235,215,58,43,13,203,199,132,15,74,111,3,39,167,229,131,192,170,9,46,3,98,124,147,251,133,188,92,220,60,227,173,86,184,11,140,171,74,90,211,150,135,162,152,90,212,241,252,19,236,95,216,50,55,225,105,253,42,87,133,76,54,143,249,115,209,14,97,1,246,173,56,117,183,251,166,78,147,183,94,61,224,104,126,47,40,225,30,155,234,242,210,117,157,69,52,50,53,208,164,171,8,85,151,27,78,100,227,78,176,223,200,56,103,197,30,228,191,209,246,159,203,236,137,190,217,143,119,94,58,80,40,19,4,214,175,14,245,84,211,228,87,133,190,234,228,244,117,221,63,40,214,17,230,242,123,39,171,91,185,119,105,112,184,249,115,139,66,135,105,204,32,94,119,77,249,70,40,132,13,28,109,79,77,147,150,73,153,213,92,7,220,83,243,42,100,196,134,157,135,196,85,205,18,97,40,40,62,41,184,71,124,235,121,7,5,170,193,235,82,57,118,74,141,173,24,218,211,98,241,185,18,47,65,106,213,246,59,76,70,168,253,205,114,235,141,156,211,182,10,212,250,92,94,129,225,4,25,99,45,88,27,160,114,189,100,172,253,62,180,0,119,68,20,5,104,94,76,32,239,60,17,206,254,23,59,212,71,84,206,199,165,33,3,207,89,141,175,129,141,133,193,96,74,60,42,199,97,14,210,39,126,88,215,228,239,150,10,83,207,93,222,72,78,86,178,59,130,12,125,171,70,248,195,42,147,196,70,138,188,26,131,138,49,234,105,217,48,130,174,96,90,149,175,232,164,111,190,114,111,215,11,112,24,76,223,20,52,89,251,88,188,123,89,242,63,92,155,41,196,166,136,117,35,229,77,245,75,169,55,41,84,253,19,100,77,13,92,10,198,19,136,26,11,148,221,126,223,80,195,204,201,127,124,238,212,53,91,169,245,189,0,228,32,97,9,126,8,177,166,123,37,144,2,197,132,170,132,157,240,76,43,13,64,234,143,255,152,154,188,158,203,39,155,115,106,235,209,86,154,172,248,73,35,82,144,100,21,37,65,230,166,107,8,241,2,46,241,12,171,254,169,238,113,223,111,56,127,117,233,86,108,155,140,88,85,144,164,12,241,12,245,215,68,111,239,51,108,46,117,84,91,96,167,73,56,227,17,153,232,232,110,107,223,14,102,184,160,210,224,102,9,202,44,173,41,24,213,70,56,10,222,206,194,255,51,252,156,230,129,29,90,178,99,194,222,103,18,251,155,93,52,2,48,79,130,224,91,161,209,251,18,12,223,103,173,249,64,49,51,73,72,44,37,136,118,45,18,37,214,185,227,10,19,169,123,113,149,81,237,209,171,3,243,5,115,183,168,70,188,89,214,150,176,38,241,250,161,86,11,187,119,103,83,14,186,217,23,217,135,252,77,80,247,212,226,41,97,79,154,57,1,57,63,247,248,2,156,172,82,31,202,255,121,230,31,124,229,95,238,58,97,163,29,70,65,76,35,9,115,234,202,149,116,243,51,174,95,162,240,147,158,61,114,205,193,215,217,226,103,209,131,61,152,92,185,17,232,213,103,237,213,208,249,152,49,11,109,37,169,73,38,176,100,144,238,84,18,248,215,148,137,198,15,252,98,181,51,232,82,133,134,142,215,97,202,204,204,200,229,247,218,193,158,100,12,112,160,65,48,126,225,202,178,241,178,126,139,147,111,68,123,138,106,120,79,132,117,18,156,255,188,149,164,197,217,209,238,16,103,200,164,143,103,148,45,178,163,203,40,168,183,253,73,161,103,118,190,234,67,39,75,180,120,138,59,154,184,29,169,17,34,105,86,235,124,215,12,139,106,122,126,0,24,222,248,185,157,161,254,142,203,98,41,254,117,237,116,166,187,117,173,174,49,44,132,154,14,117,204,2,221,4,117,153,233,228,117,227,56,122,199,179,51,250,253,159,112,2,30,117,31,80,253,189,112,237,146,11,130,211,84,135,149,4,36,54,88,38,45,95,90,50,169,104,184,190,190,255,140,73,98,222,89,51,65,85,100,205,136,91,6,93,11,197,60,214,161,104,226,65,232,225,117,73,53,111,47,68,17,162,147,11,5,192,199,202,18,2,143,48,58,89,65,10,83,89,128,64,25,43,44,62,193,117,23,203,201,144,219,195,213,86,103,250,137,173,71,165,114,125,215,186,223,193,61,91,169,229,123,136,36,79,24,191,37,40,25,28,195,112,164,181,182,3,210,0,127,54,7,222,150,51,34,131,17,210,143,91,181,237,144,191,51,143,227,147,166,28,62,232,69,250,29,86,235,251,237,211,242,156,78}, } ; static void test_decode_953x6343_impl(long long impl) { unsigned char *x = test_decode_953x6343_x; unsigned char *s = test_decode_953x6343_s; unsigned char *x2 = test_decode_953x6343_x2; unsigned char *s2 = test_decode_953x6343_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_953x6343_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953x6343(impl); printf("decode_953x6343 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953x6343_implementation(impl),ntruprime_dispatch_decode_953x6343_compiler(impl)); } else { crypto_decode = ntruprime_decode_953x6343; printf("decode_953x6343 selected implementation %s compiler %s\n",ntruprime_decode_953x6343_implementation(),ntruprime_decode_953x6343_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_953x6343_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_953x6343_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_953x6343_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_953x6343_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_953x6343_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_953x6343_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_953x6343(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953x6343")) return; storage_decode_953x6343_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_953x6343_x = aligned(storage_decode_953x6343_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_953x6343_s = callocplus(crypto_decode_STRBYTES); test_decode_953x6343_s = aligned(storage_decode_953x6343_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_953x6343_x2 = callocplus(maxalloc); test_decode_953x6343_x2 = aligned(storage_decode_953x6343_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_953x6343_s2 = callocplus(maxalloc); test_decode_953x6343_s2 = aligned(storage_decode_953x6343_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_953x6343 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_953x6343();++impl) forked(test_decode_953x6343_impl,impl); ++test_decode_953x6343_x; ++test_decode_953x6343_s; ++test_decode_953x6343_x2; ++test_decode_953x6343_s2; } free(storage_decode_953x6343_s2); free(storage_decode_953x6343_x2); free(storage_decode_953x6343_s); free(storage_decode_953x6343_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_953xint16.c0000644000000000000000000015437714705505543022753 0ustar rootroot/* ----- decode/953xint16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_953xint16_checksums[] = { "b85dffbe410d5d88bd60d7ea927e051ce0795e26b2524a9e8abefda128a92e7e", "7b1c952f6e7c01227dbbe8e0418cc4d5ea1860eba1f27166cdd9ba5af60586f9", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_953xint16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_953xint16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_953xint16_ITEMBYTES static void *storage_decode_953xint16_x; static unsigned char *test_decode_953xint16_x; static void *storage_decode_953xint16_s; static unsigned char *test_decode_953xint16_s; static void *storage_decode_953xint16_x2; static unsigned char *test_decode_953xint16_x2; static void *storage_decode_953xint16_s2; static unsigned char *test_decode_953xint16_s2; #define precomputed_decode_953xint16_NUM 4 static const uint16_t precomputed_decode_953xint16_x[precomputed_decode_953xint16_NUM][crypto_decode_ITEMS] = { {15003,6220,7256,52746,55739,3493,30670,27584,51704,61310,31928,18691,35685,20668,15193,23373,39148,10607,59502,28220,20727,21564,24462,11989,62502,56097,24216,57245,58129,50219,36342,41646,14188,10212,49717,15813,63876,21643,59831,38939,2856,4848,58136,60018,63430,56898,5175,14548,9156,18910,63336,5099,37507,42922,21497,62501,33415,33052,11244,45524,4393,52594,52064,56102,51816,33990,61785,17812,32424,55556,27366,28067,26398,28575,22134,11158,37469,29634,14348,54419,48328,28187,56830,47089,39262,57783,26719,19325,38395,6967,42532,50056,1446,50483,58152,14182,46305,10731,25931,9528,3822,51230,9349,61348,62848,46608,22349,52592,22624,8289,34130,9373,46109,49669,35435,11530,35310,54974,2812,18954,2687,18487,5751,47668,33244,52663,64766,20550,12302,19422,1541,65199,40248,19653,53746,10494,32227,4354,45060,33208,19009,19581,11133,14616,47589,30866,57223,60082,5068,57946,11923,9829,39850,22648,24521,4119,28490,13682,32481,39620,21011,11625,58776,17575,61020,29253,17836,30523,32595,22284,65304,54861,54861,49795,57473,51378,60521,5599,6107,22950,20697,25920,59051,34555,34376,7294,59863,7885,50518,52117,40172,12831,2773,35710,26335,13864,18184,9682,25664,46819,36344,55426,42982,28383,59293,28498,25386,5205,2616,21054,77,62161,34993,52849,21442,25074,50776,30950,60245,35848,45974,35038,9080,44879,5198,49334,15706,15640,34429,64297,6757,27393,51304,47162,29335,25457,41446,32315,64845,27507,30642,55779,29954,28995,54601,53345,29705,36835,52806,1135,52039,10632,13412,49108,53018,50517,50315,12546,34668,6163,57306,36447,25842,49530,26758,26882,46316,25048,59982,16480,2977,63632,19244,26184,7070,5382,53171,14448,5925,56674,6140,61973,13252,48233,43239,27739,7800,57786,32090,6335,29504,13099,57063,17919,40575,55593,16347,45169,26988,30050,12403,17694,3799,10062,11365,55814,5618,51073,22407,61752,41799,43660,39609,55885,11888,5343,6624,9879,54075,11636,50160,61017,56934,1911,26013,37104,16222,39566,32424,15856,46191,43627,6448,51341,52439,20105,47257,9714,56877,3799,5515,29721,58337,45338,17285,40450,51839,48880,23722,46730,12580,10700,28354,200,44126,54135,65246,37318,62406,12774,33233,589,12546,30487,51009,55192,62452,31432,22014,37448,65423,18555,34107,20216,27211,54152,14481,5985,7336,8024,5795,29093,17087,17726,18252,56615,65244,35656,27043,29785,34798,21447,13773,39108,54370,1805,25394,18911,29066,63570,51925,15067,16007,14478,32366,42271,57589,30323,52466,29086,17251,49202,38724,49050,51412,22903,11121,11943,23907,6592,47592,41040,38658,49518,38902,59915,6540,47223,23585,2263,63123,4557,62516,6582,50054,5857,35392,26264,998,17056,29224,38543,3299,3965,53484,12840,62398,17620,42378,27825,47101,43446,49720,62415,57592,932,23128,43161,10132,51422,12830,36050,31906,3895,60320,14521,57054,60422,55935,31470,47487,65161,7465,29702,1428,58395,9688,6152,64948,2961,9508,3162,45520,24614,11405,7904,14796,24762,11618,945,48454,10066,51564,15845,12018,8064,3051,52435,54092,27540,58429,30787,35567,39884,19628,36529,38177,19976,42476,17427,17318,32460,30399,35155,62506,2399,54592,46481,46794,65351,13488,52200,29357,25018,8883,38550,4783,33746,17408,36424,7762,30472,61433,4940,22429,47082,37542,42894,3242,31801,25412,6567,24716,7120,26610,34330,42993,60842,11559,55312,1703,26398,27337,27525,38944,46397,10427,54557,13048,63226,18046,18842,39172,6435,52240,10773,40070,7238,19666,6953,21499,47394,25910,25823,20343,52050,60645,20439,12141,61355,51145,7356,59605,11680,36061,20125,20263,51744,46755,34800,42075,5410,49117,34187,17956,63191,30148,32411,9934,37373,48625,13921,37779,56575,52328,15734,52265,6343,27287,63023,33589,45960,29937,20826,2152,53078,24441,51705,8884,38868,61339,32010,16751,39348,39101,37959,17672,18088,10181,37791,29000,19147,38693,63317,23914,39103,22454,14784,46107,28948,20006,20229,47202,54212,24711,50806,21107,32350,19171,20403,38362,24841,6199,59010,44433,1854,46979,36445,877,19704,26526,53567,8675,45736,54085,58605,55807,28855,41217,60763,21249,25687,44449,63464,6997,257,574,36276,35656,34849,39067,18633,19639,51785,28574,13150,58543,32479,376,25976,2236,23830,23379,53911,14389,38736,11032,9556,1474,45522,20232,34444,31887,63939,38837,43605,10689,53731,36785,39152,61687,63330,10994,25939,23177,11644,30553,7512,5512,5576,49748,17176,37415,38016,30937,2685,26889,42545,3987,7734,45718,36196,54622,17450,26543,17727,21522,62233,61845,1800,31275,53396,54671,37635,6891,2653,16406,29275,32388,52972,5818,42578,41434,576,49488,19805,46709,31370,61873,61281,9057,37476,7408,31092,6751,45272,40780,10511,53364,5576,24685,23136,55637,57413,33326,48037,8245,26333,51680,47968,26368,23107,16427,60508,43714,450,41248,9133,22183,31639,30983,52766,45949,7850,43989,23954,41120,48163,37514,64566,47381,54482,18998,44288,42790,42067,52830,30495,42220,1566,33827,587,31968,18910,26426,58522,17485,28826,33695,6046,79,64081,20991,9064,11264,60696,60801,46602,3039,34409,56504,61558,53737,6907,19258,35587,21507,39337,33562,51613,35196,58456,4831,64119,44355,9330,64786,12004,42352,26576,57796,7480,64014,55068,9493,58938,20346,64754,62243,10624,59139,40067,41252,36584,65199,14913,9155,11671,55631,36409,31732,38591,28653,20761,31089,37579,61708,6134,30010,13916,53611,39061,59166,28128,44583,34857,61321,41889,57043,20000,11484,44887,53077,1029,11140,13488,50416,18210,39887,11437,31478,3120,62590,24639,26629,16971,17587,17815,15764,11817,53689,2852,61398,45286,1553,5302,60226,65153,20791,10615,1258,58268,42185,21122,25550,63119,2253,49387,40532,1288,23371,17637,25136,26468,24548,24242,36052,19230,46398,6137,46593,34886,51716,26529,53950,44266,55472,2582,42977,13656,61113,20760,6530}, {9228,27026,5581,58173,22855,7858,9171,3933,51254,62611,43835,4474,28204,50516,1921,4681,26344,7965,61238,17555,40671,37972,27521,26872,1728,29500,29924,41411,12320,2657,49680,9652,33030,10004,5334,50967,26882,59843,33063,45794,2018,64073,4934,65135,59018,15962,17662,12065,33645,54025,2455,35574,58148,44697,23257,5249,36230,27594,62004,6925,28858,49420,61345,26183,25010,62396,2923,60911,53760,35784,32433,44754,16902,52769,38089,11727,57062,64736,20578,51166,34503,48449,31675,40273,31687,4199,65008,51088,45561,57257,60882,61307,61181,37961,58686,61086,30246,23157,11304,62486,18211,35095,11527,18865,12310,60068,9533,55160,49680,31284,37113,16296,46606,24338,33751,40645,30543,2371,47923,42926,3003,46017,59157,56284,15120,21537,37687,57201,20676,20056,16419,47248,16875,2011,61512,58279,40725,8803,29160,46346,48713,4846,57618,28873,48340,24387,62447,21902,26831,49083,11623,26181,53945,50322,50628,20199,39077,61284,19413,32308,47022,61669,988,11008,33076,9297,55269,13438,45958,39057,1691,43468,7861,7036,39296,60193,16346,6884,54140,64954,8822,49184,9361,26341,9392,37768,37509,62027,57418,1605,36740,13014,54926,27521,47091,55183,7242,5258,55748,30573,7162,10807,35793,6913,59540,34252,9193,42763,45719,61683,42195,32230,43703,57842,59708,4337,28954,50201,34758,19414,22600,12378,65139,16645,19216,4532,48577,34684,29943,48714,21213,49061,12114,44757,21728,8679,59708,37702,16850,61816,18026,11468,51836,19684,51745,16244,64856,37799,36573,49403,47801,52128,52637,11083,45114,24786,18817,13134,31842,61692,28287,41715,20248,22393,61634,36263,59204,9100,26593,25153,24692,12389,47955,57926,59563,22967,48766,17406,39811,41745,1791,64863,30946,46767,13564,14601,51575,46695,5245,15652,57684,2419,35488,8914,61630,45621,46360,18571,38851,26169,63843,42036,29373,46215,37134,55473,10986,48620,30736,30239,19289,41513,37984,26692,6853,44571,37755,50663,21169,18062,56622,52013,32330,56081,5283,47557,28554,10620,42865,46924,4132,5991,6616,9800,50310,65483,48052,4166,29737,5402,34547,16154,18502,2768,9217,20474,12151,50304,45668,17165,50701,18798,33029,36873,61486,59225,10894,53327,40341,45548,45547,6087,38102,8278,19101,25116,24045,4336,38281,36546,17151,51931,40975,42173,52493,33695,42936,4953,12654,19600,1196,37673,64788,17930,46859,52309,55566,37047,56617,57498,3589,26368,60259,61707,45214,1143,27675,35901,36596,30821,54772,14851,41562,19207,59811,64834,34972,63056,49415,11760,46733,12335,34025,3370,30569,41170,17325,61125,57131,1871,17702,56842,3901,64928,63491,12210,15320,49758,31220,39528,42858,6158,34551,56347,29580,59262,1339,33750,52548,42426,33548,55763,64444,2291,33863,28977,6291,2699,50560,5646,3622,56885,44358,25524,55174,9275,19983,44704,61278,59435,10659,32244,29732,47216,34478,28038,16243,32976,38562,32928,15439,25484,55675,55746,31324,41785,6786,63283,31752,60184,26244,28421,39791,31667,22143,46070,1020,54576,64493,47013,45111,41222,34808,10765,19097,24021,27563,18280,26400,15615,64707,14709,53818,47798,55823,62950,43446,54262,40612,16540,20210,57353,64495,56455,21110,54670,6658,47689,25092,4718,9446,7175,24481,3202,32665,52518,28922,27600,12326,49866,27174,29283,16565,8594,6616,53203,61251,52555,45741,56152,20302,17466,10482,42704,27735,31840,59924,38862,29880,6890,27359,48664,17297,25828,13873,35003,62684,19612,19072,41771,17857,25963,17521,43143,38366,42788,17037,45055,47675,23566,47794,55663,39899,20816,14430,26728,61418,63710,55092,9908,15035,52418,55082,58094,13170,40427,10460,11553,43820,64724,16555,53576,32073,43588,30784,35054,31056,1695,53958,18751,25149,32849,48857,36908,16305,22755,16707,27892,15269,49987,47105,10370,30212,3020,33469,19054,17583,49178,60452,16511,48192,1324,17964,24314,250,1236,20961,30193,41290,22755,8925,11902,8491,26995,7448,9420,16295,41713,7529,3817,28023,19837,2917,2556,60671,18458,36447,55316,1866,23357,3163,12220,12744,14726,37069,62243,30374,45526,37185,32107,24461,46990,26966,34787,64844,62631,44849,36164,12125,25722,33645,26788,17174,56511,49797,20821,39402,21381,13497,10414,1013,4857,61905,61648,61169,18215,60581,4228,16082,29929,63845,36306,54214,6459,32168,61552,32429,61549,49378,1231,10403,46221,65095,60264,53748,22931,38308,29600,45600,37840,53938,12406,60671,41762,5680,44727,6093,13788,40091,22748,46867,40995,3416,22949,17004,52963,4287,23897,25576,57388,46472,11683,14623,63575,31942,13858,41333,34552,22194,62444,4082,50230,16926,47287,53880,46670,32010,33525,5605,12807,47701,52728,19068,38420,27173,63105,45876,28550,35587,51380,38022,29295,19638,33242,49043,12585,60672,64854,9080,9826,522,20892,20767,48206,4925,34328,47349,9964,56489,56876,44638,61896,22686,61541,34412,16321,13109,40358,45026,2917,59214,17174,15732,64481,62632,9589,29635,65205,27005,62890,62947,26631,25634,15004,11674,45030,48209,48507,38539,28320,51527,31257,32863,40960,1914,2518,49646,34700,23436,48067,28513,33068,45290,39524,34916,32389,20117,18951,32318,41377,20411,19190,53835,20937,29027,43426,60425,7242,59802,27603,18735,47689,40231,30256,50545,13028,5623,40269,9334,51190,41272,45514,2599,5938,1009,21384,31949,36578,58401,38174,2471,40689,61469,29570,60575,55643,62411,1552,26527,16232,57869,33340,4532,61685,20356,27081,7786,18449,50866,37270,9433,40033,33706,923,13443,61922,33026,23162,4087,51069,46171,61995,43837,62714,17102,48199,23768,42948,203,19337,42145,40642,24431,710,2626,29274,18819,52970,4825,40054,22478,40477,14522,41708,15905,65051,13187,33684,14471,38709,59345,10049,55195,58688,16087,3829,12682,137,2553,47653,47922,39668,45971,26166,50082,31175,47360,21071,27675,33206,5882,16637,4833,19830,15144,48761,21694,37387,39725,21317,61445,38010,34757}, {48953,26865,40734,44099,41804,613,12756,9907,44941,4359,14023,51814,52221,37510,4830,5494,8507,25871,17275,11753,23008,58819,63088,43804,38570,23442,47503,55144,41679,46216,21312,49641,1913,53959,42573,8985,2856,7824,16406,36873,11509,39948,48508,7177,27153,30776,20403,8647,18070,33341,38664,48465,30398,35805,54670,28468,59042,50439,5102,4181,9704,60108,23074,43917,23165,59956,28557,3239,36507,17256,22046,57373,44883,36591,47437,38924,39408,54504,23285,55058,56054,56915,52330,26254,29131,58255,5685,12497,37720,12083,1291,37392,1045,57782,65198,6122,55576,17776,17684,42767,41407,29474,13618,14659,61947,10460,52111,14853,11806,2403,28434,18995,53411,36765,10997,64453,39387,5323,54494,999,47812,7120,54246,382,26303,7423,19753,26562,62492,62165,63491,43910,2254,57336,45419,1531,58105,24863,6368,18676,52035,56921,45830,54241,37743,29412,1842,29903,49755,28344,21158,42518,45930,2137,485,62102,33199,12861,21676,33370,52526,54293,51954,22639,43474,57998,43181,18130,58596,29892,57133,4828,20276,16238,16732,51820,35669,10210,4411,11244,463,31725,36361,2267,11583,52621,55941,12249,59082,25092,63553,31043,46936,24084,29547,15598,41881,30279,53473,11783,63863,12739,49732,22328,11275,28243,9130,52719,27167,49409,1141,55998,49625,13489,1318,37458,60946,53976,50370,37041,4956,26057,33953,10065,63899,43244,23610,22432,43353,39400,36381,38898,13590,17210,15521,28258,50941,34534,44781,35469,31640,30120,27904,45196,28479,25187,9777,7015,4198,35769,31524,17260,16089,28781,25962,38068,58602,42171,22872,48911,58816,48876,47124,56111,64379,42842,56816,739,53745,27977,44115,60562,1483,55236,17850,1802,62988,32669,49867,42840,24952,51601,60353,39464,27497,22516,11225,22324,47881,22816,12133,18585,24110,52786,40092,56570,7437,50235,39037,47303,17009,44078,14781,27308,41832,9614,28912,13828,37827,44318,53366,38270,36708,19148,6775,26299,49067,36868,7310,60037,61396,25907,43005,23005,39997,4126,37245,64793,47071,7060,22604,63006,37601,54996,39510,20196,48653,7571,46942,19244,28291,22095,49352,43695,29130,57183,1156,49679,65118,35332,50385,19385,49565,17341,32833,40482,57978,37719,42277,9551,48050,24737,37214,41066,32127,16900,9624,54723,12464,9682,23876,40012,10830,59036,39502,20682,26982,45078,3327,43602,30485,51348,51969,38381,20501,2099,61770,22710,30075,29559,44721,61127,34647,47402,57279,18525,60294,38498,28546,33572,4618,6679,54712,48054,9781,44298,15921,49562,16133,21260,24625,10439,48969,10322,8896,44463,51222,15089,34733,29240,12022,57782,30604,25935,20715,62801,3222,44746,65107,45951,36418,10286,24948,23029,48503,43114,39263,39923,26038,41494,24124,35605,53191,49419,64344,57108,32597,47591,54904,49586,9292,3364,23824,3434,24107,12048,26541,64252,12899,32331,31542,35330,30378,11297,53588,13092,33018,22847,51024,52684,10927,6978,51757,20154,3801,28202,37283,34042,26324,45199,55293,14086,23443,23574,44724,45168,6515,10208,54113,17496,39755,5775,37056,3703,13367,60520,52832,34556,52722,63749,24863,41095,9461,2931,38575,54285,12073,2806,42000,54722,8381,27147,44097,44076,33589,8332,63760,15033,9103,54702,61140,50707,30109,25873,10915,480,9148,55715,61305,18916,22458,30858,11456,11116,15433,42943,27023,17771,1580,25590,40757,52408,20514,28098,26104,12913,22241,10028,35880,20824,18752,8481,1366,33550,47219,35196,51505,2924,6944,13503,4002,36751,61586,58142,34875,61725,47474,13338,40782,55637,59431,48709,35859,23019,65198,10438,63330,6137,30763,56300,5638,29321,60721,47405,61707,36260,35472,38996,4841,65130,62389,59897,16403,62356,10174,52498,50384,28834,8083,14232,63356,45368,27016,42952,57586,14842,54766,1731,13803,51292,35704,25584,50939,9543,14396,7031,5233,42982,14904,18105,46574,13202,3639,33174,26996,3196,18647,14179,49023,58775,36792,47194,44943,29199,40959,61445,50408,31931,56583,60867,45379,55046,1446,3,51390,44646,22665,44759,49870,45120,4253,49987,23378,6778,10983,16799,49567,62772,35001,32039,956,22917,6070,24320,46485,13127,22107,20868,34431,55893,1064,54270,604,44310,6418,31315,51172,46077,39138,65175,46331,11147,10997,63370,35789,15378,23976,37126,19921,44610,56266,63560,24341,40675,42813,20156,35198,18690,32508,63889,42538,64721,39662,29204,17662,5660,52905,51602,38881,28514,42988,13409,26495,15757,52087,24259,49107,37011,14882,62627,42624,33395,9811,20089,37103,31121,17133,39422,11440,41751,29167,45666,51235,58196,972,22986,8714,32130,54439,36663,6224,35578,37848,53089,30821,14370,24840,37402,45553,35411,15929,34450,26764,15618,61624,42505,55562,2022,24933,43840,58229,37068,9952,4493,39665,27525,22150,24473,20160,21449,45383,25688,25109,30116,12269,27350,23058,64665,20255,50238,1891,53730,60594,26038,20749,61905,23393,38805,18299,55744,20468,39157,40629,7413,44439,60856,17824,158,45839,35995,30530,56759,51008,10610,8682,12350,22376,49665,30265,15188,16654,28858,4501,21499,45737,37699,26365,22005,48661,50458,5658,16930,9328,61688,28343,41164,26029,58394,23790,44424,52829,54602,24396,54431,7282,34148,18268,11646,9957,12472,3332,35832,5703,10005,18410,11691,19472,3510,46394,65026,4071,15350,37779,11057,3425,23032,49261,30590,56702,39239,26017,18238,31432,52393,2095,38537,33555,35062,20009,53807,41588,39277,41133,30793,36632,22163,41677,44861,40967,61133,61877,15444,27397,29671,628,51894,46915,46345,34295,59919,23050,17128,63755,7606,19420,48363,13126,18828,12957,27972,32180,63977,46277,46216,6662,28916,11369,44016,1679,49091,30577,16115,48343,39469,52080,42677,47465,40756,45685,8342,3071,65031,46237,8903,37955,29148,54806,3544,19886,26685,3367,51157,20937,45610,44531,62204,57722,58177,38399,8306,33348,12394,62529,14663,53304,36331,48487,50733,47953,62676,20291,16907,3391}, {63909,45979,57284,25770,42294,54851,52709,60835,58397,24103,50442,59367,26779,59667,64772,2888,41078,5804,54879,26305,523,35453,22597,15512,47706,19564,10393,9752,19729,44788,42236,58843,15365,49433,36364,3426,32843,6936,64209,57201,53929,22308,11247,25164,32199,25652,62020,14557,18391,19509,1030,26930,1925,51829,6229,15733,50835,5142,33050,31698,4296,62286,25056,39992,62739,25330,58554,47300,64184,63571,45180,2166,13005,8757,22233,10803,47642,29129,778,51891,7083,63620,59941,26245,24257,33330,25719,13802,20301,30006,10135,53296,503,6716,12086,16483,21688,54256,55348,1052,59044,23549,49115,11558,34433,48731,4826,21608,59911,18146,34975,31308,62814,57997,5114,57493,25928,1944,61302,7542,11119,21542,20789,55290,25844,39234,2699,46370,28272,8764,58371,26017,45341,48265,41406,22650,14738,17556,61558,16211,1989,39768,947,9351,43435,1894,49365,12049,63667,14666,61696,44255,60387,31524,34754,41713,59087,54417,60001,16135,35006,60058,6184,4132,35678,51152,1996,54711,9452,35150,33205,45960,20498,29610,56183,46754,62328,21788,46099,2610,1525,10774,52195,42927,45600,48566,57814,62884,18904,55653,3638,12198,41724,37018,5937,22869,5795,62416,26929,64798,7394,41298,58179,16457,1663,1023,59767,41230,39224,27004,53291,43277,45746,18168,21141,34161,26625,6100,59825,28032,45153,39088,52501,22657,63224,28069,11791,28789,52588,6540,11004,29937,53485,64991,9276,18960,7755,58387,40522,9994,34821,58780,49050,32063,50226,63992,43041,62101,47058,41530,22766,11517,38909,28926,34476,16013,58399,8559,7424,20817,53048,41532,55150,2897,21049,62657,8307,34975,3273,3590,63599,59306,41339,63205,10773,25158,44052,30435,60981,57871,7105,440,37742,36620,27132,11562,20542,58819,5212,56578,57849,4292,52372,3422,19017,63758,28342,18719,25078,31527,28988,65058,50422,31415,38908,17567,10733,27871,12255,42307,24980,33923,55003,32216,29951,43983,20588,38499,46497,35012,39190,45591,60988,53878,10225,27317,15409,26751,29337,23306,19276,6989,13736,50050,40166,45599,33783,10010,19888,39811,31787,26543,22578,53567,30161,38996,30529,45024,14299,10666,33953,13592,10,28416,60399,49609,17379,11458,1211,49205,65179,37041,498,37382,38918,24309,22872,12047,56431,12228,55492,49490,38601,15288,31049,2199,3867,3079,4618,35056,47304,46533,31664,6931,17007,45223,49866,23302,26608,59195,3917,39170,33147,52788,37366,22716,34874,27544,14350,45975,58944,7277,39064,35711,1803,38139,34576,23679,43499,16554,1113,18568,22492,18019,19745,2703,32719,49886,44482,4647,59849,18011,889,4771,26624,15779,37438,32377,47651,40315,15059,1115,1212,47076,37473,54039,50098,27543,34409,45624,18627,58355,49010,33203,59671,57335,24902,57237,57493,7133,56132,14323,6726,59975,52713,39519,39526,39183,60650,49470,21376,34908,51208,57433,50664,8441,39324,17047,23254,46011,32894,61903,48644,43988,18153,60171,51181,51755,19791,25346,32747,55929,64067,10647,42814,28725,49413,44996,33580,45394,42897,54479,29445,9630,5497,24918,21781,24592,28663,12594,14646,62337,8337,19660,29928,19417,63103,4152,34711,40228,12021,41290,13239,7784,10622,24226,31193,31783,16608,22903,19431,22117,21364,35422,33686,52594,45157,59568,58779,52000,47981,35962,25620,36105,42127,23542,25100,60974,7357,19486,62219,12024,3252,17837,61817,9358,27101,40258,31748,24597,31717,2529,54789,35282,27156,50116,41009,2045,60293,25918,1287,43587,42485,25861,49211,10999,27173,22949,12450,64697,52531,46495,12586,17745,40850,24702,19824,36060,64699,45283,35676,35400,63285,51601,40494,9716,44832,32785,7688,63542,10819,63269,40678,28611,23170,23547,4395,25874,8788,26209,51356,59122,2130,60133,12684,3551,7588,52743,3155,57350,17084,58047,39922,23646,59509,18937,50275,48448,29457,43407,23831,8310,14264,17287,12825,36207,56829,21375,50097,17371,23603,4310,17767,39288,62180,21681,10446,33793,62227,51933,51444,49045,27623,49735,43866,41970,55504,19322,40931,14001,47800,19614,15107,61143,43890,38371,33198,17364,14070,60039,48656,10309,2516,45345,17915,2883,54087,900,7861,56207,8376,31308,44086,38750,50584,7104,23307,35445,52820,64400,59643,7748,21195,15576,37244,29638,15912,40662,10168,52596,30103,11611,65361,20506,38108,46362,34126,14027,60911,42072,8457,24930,29095,3380,8209,56910,44843,58890,5359,48914,34915,54344,56415,57062,61058,54758,45377,8400,37771,4543,46455,11514,19259,37841,59530,56060,45419,20779,22794,62799,41793,57732,30567,7005,1784,24176,9235,42948,17505,65267,62308,23910,2797,17891,40268,56914,6155,12790,5932,35785,14411,28857,25688,12791,4919,3533,9097,4592,42535,46396,15156,40922,33633,51215,27013,58318,10641,61466,42354,44642,7143,25574,59063,25801,22049,44861,10386,21634,34479,42343,14796,55030,50021,10113,64626,16344,12372,65137,14741,33480,43612,28988,7752,20220,64966,63502,6118,32571,34553,44619,31511,24027,26565,60471,24816,427,45194,5607,47206,53165,9841,52341,48694,39512,3609,56436,42404,17782,47897,32926,64185,44822,59024,23476,34822,54361,15437,61532,61251,14673,6287,59749,38799,51182,6328,12722,54446,16373,48831,58771,33106,8817,39076,11099,46715,44774,46262,35236,15258,37660,61017,35938,41357,41912,52914,60289,39340,27614,30391,7495,25700,20488,3358,54462,43252,10437,39825,55992,20521,36698,48300,45133,41688,34552,16650,33854,12952,64485,24730,43442,17153,3741,15774,37930,14237,18121,3856,39771,40876,61780,51351,59455,33506,57671,393,6545,43111,12407,2565,50797,1651,44543,26289,35631,55348,13183,49399,35568,18818,62827,3710,18162,39004,19873,11650,15181,39396,40861,15716,27898,64608,4884,20617,27206,4975,47522,52534,3313,62656,26509,64221,65360,34187,26319,29843,19269,41039,54096,42520,28641,11968,56940,6729,5495,28819,49090,50967,19344,27611,49139,1602,51798,23033}, } ; static const unsigned char precomputed_decode_953xint16_s[precomputed_decode_953xint16_NUM][crypto_decode_STRBYTES] = { {155,58,76,24,88,28,10,206,187,217,165,13,206,119,192,107,248,201,126,239,184,124,3,73,101,139,188,80,89,59,77,91,236,152,111,41,110,232,60,110,247,80,60,84,142,95,213,46,38,244,33,219,152,94,157,223,17,227,43,196,246,141,174,162,108,55,228,39,53,194,197,61,132,249,139,84,183,233,27,152,40,11,240,18,24,227,114,234,198,247,66,222,55,20,212,56,196,35,222,73,104,247,235,19,131,146,170,167,249,83,37,244,135,130,28,129,236,43,212,177,41,17,114,205,96,203,38,219,104,202,198,132,89,241,148,69,168,126,4,217,230,106,163,109,30,103,159,111,118,86,150,43,93,146,194,115,12,56,147,212,200,188,27,110,254,221,241,183,94,153,183,225,95,104,125,75,251,149,55,27,36,166,136,195,166,5,51,197,40,227,102,55,225,180,235,41,75,101,56,37,238,14,30,200,133,36,164,239,128,245,16,182,77,87,112,205,96,88,97,32,82,133,157,36,29,180,5,194,107,138,10,45,238,137,190,214,252,10,10,74,127,10,55,72,119,22,52,186,220,129,183,205,254,252,70,80,14,48,222,75,5,6,175,254,56,157,197,76,242,209,254,40,227,125,2,17,4,176,184,129,65,74,125,76,125,43,24,57,229,185,146,120,135,223,178,234,204,19,90,226,147,46,101,38,170,155,120,88,201,95,23,16,74,111,114,53,225,126,196,154,19,82,105,45,152,229,167,68,92,238,69,114,172,69,59,119,83,127,12,87,24,255,77,214,77,214,131,194,129,224,178,200,105,236,223,21,219,23,166,89,217,80,64,101,171,230,251,134,72,134,126,28,215,233,205,30,86,197,149,203,236,156,31,50,213,10,126,139,223,102,40,54,8,71,210,37,64,100,227,182,248,141,130,216,230,167,223,110,157,231,82,111,42,99,85,20,56,10,62,82,77,0,209,242,177,136,113,206,194,83,242,97,88,198,230,120,85,235,8,140,150,179,222,136,120,35,79,175,78,20,182,192,90,61,24,61,125,134,41,251,101,26,1,107,104,200,58,184,151,114,113,99,230,161,59,126,77,253,115,107,178,119,227,217,2,117,67,113,73,213,97,208,9,116,227,143,70,206,111,4,71,203,136,41,100,52,212,191,26,207,85,197,139,196,2,49,108,135,19,24,218,223,95,142,242,100,122,193,134,104,2,105,236,180,216,97,78,234,96,64,161,11,144,248,44,75,72,102,158,27,6,21,179,207,112,56,37,23,98,221,252,23,21,242,196,51,105,188,231,168,91,108,120,30,186,225,90,125,191,24,64,115,43,51,231,222,255,69,127,158,41,217,219,63,113,176,108,105,98,117,115,48,30,69,215,14,78,39,101,44,6,218,242,21,129,199,135,87,56,241,71,163,140,170,185,154,77,218,112,46,223,20,224,25,151,38,59,211,116,45,240,195,89,238,102,222,119,7,157,101,240,144,94,63,142,154,168,126,240,61,111,180,107,170,48,25,141,200,215,204,137,78,153,184,242,37,45,222,215,14,139,21,25,116,225,227,26,177,133,67,2,158,127,202,240,190,170,92,138,182,36,49,204,41,194,110,200,0,94,172,119,211,222,254,198,145,198,243,230,49,209,129,77,2,2,49,23,119,65,199,152,215,244,243,200,122,254,85,72,146,143,255,123,72,59,133,248,78,75,106,136,211,145,56,97,23,168,28,88,31,163,22,165,113,191,66,62,69,76,71,39,221,220,254,72,139,163,105,89,116,238,135,199,83,205,53,196,152,98,212,13,7,50,99,223,73,138,113,82,248,213,202,219,58,135,62,142,56,110,126,31,165,245,224,115,118,242,204,158,113,99,67,50,192,68,151,154,191,212,200,119,89,113,43,167,46,99,93,192,25,232,185,80,160,2,151,110,193,246,151,11,234,140,25,119,184,33,92,215,8,147,246,205,17,52,244,182,25,134,195,225,22,64,138,152,102,230,3,160,66,40,114,143,150,227,12,125,15,236,208,40,50,190,243,212,68,138,165,177,108,253,183,182,169,56,194,207,243,248,224,164,3,88,90,153,168,148,39,222,200,30,50,210,140,162,124,55,15,160,235,185,56,222,222,6,236,127,218,238,122,127,185,137,254,41,29,6,116,148,5,27,228,216,37,8,24,180,253,145,11,36,37,90,12,208,177,38,96,141,44,224,30,204,57,186,96,98,45,177,3,70,189,82,39,108,201,229,61,242,46,128,31,235,11,211,204,76,211,148,107,61,228,67,120,239,138,204,155,172,76,177,142,33,149,8,78,236,165,19,68,166,67,204,126,191,118,83,137,42,244,95,9,64,213,145,181,202,182,71,255,176,52,232,203,173,114,186,97,179,34,150,150,175,18,210,131,0,68,72,142,82,30,8,119,249,239,76,19,157,87,234,183,166,146,142,167,170,12,57,124,68,99,167,25,140,96,208,27,242,103,26,134,241,167,170,237,39,45,16,216,167,6,30,103,201,106,133,107,32,152,61,181,187,40,29,213,248,50,250,246,126,70,154,73,4,153,35,25,16,204,21,42,134,156,70,28,210,76,41,27,251,83,34,185,54,101,223,100,119,79,82,203,229,236,215,79,109,47,171,239,201,199,188,28,213,232,160,45,221,140,157,78,39,79,32,202,163,182,240,135,91,164,34,21,221,191,139,133,36,70,215,246,196,117,155,126,206,38,253,145,241,189,97,54,147,147,255,220,104,204,118,61,41,204,199,24,151,106,47,246,53,131,136,179,241,116,90,81,104,8,86,207,121,95,249,201,180,34,212,151,155,239,10,125,111,65,180,153,189,152,71,148,8,69,168,70,197,39,159,147,72,113,203,74,37,151,85,247,106,93,191,152,182,87,192,57,27,180,20,113,38,78,5,79,98,184,196,211,135,96,118,198,115,82,94,126,227,74,179,79,218,149,9,97,55,24,130,230,145,173,62,7,131,183,93,142,109,3,248,76,158,103,63,209,227,33,168,178,69,211,237,228,255,217,183,112,1,161,91,237,1,83,87,100,161,173,232,247,85,27,1,1,62,2,180,141,72,139,33,136,155,152,201,72,183,76,73,202,158,111,94,51,175,228,223,126,120,1,120,101,188,8,22,93,83,91,151,210,53,56,80,151,24,43,84,37,194,5,210,177,8,79,140,134,143,124,195,249,181,151,85,170,193,41,227,209,177,143,240,152,247,240,98,247,242,42,83,101,137,90,124,45,89,119,88,29,136,21,200,21,84,194,24,67,39,146,128,148,217,120,125,10,9,105,49,166,147,15,54,30,150,178,100,141,94,213,42,68,175,103,63,69,18,84,25,243,149,241,8,7,43,122,148,208,143,213,3,147,235,26,93,10,22,64,91,114,132,126,236,206,186,22,82,166,218,161,64,2,80,193,93,77,117,182,138,122,177,241,97,239,97,35,100,146,240,28,116,121,95,26,216,176,76,159,15,41,116,208,200,21,109,96,96,90,85,217,69,224,46,130,165,187,53,32,221,102,224,201,96,187,0,103,67,90,43,64,92,236,194,170,194,1,32,161,173,35,167,86,151,123,7,121,30,206,125,179,170,30,213,171,146,93,160,160,35,188,138,146,54,252,21,185,210,212,54,74,0,173,38,167,83,164,94,206,31,119,236,164,30,6,35,132,75,2,224,124,222,73,58,103,154,228,77,68,154,112,159,131,158,23,79,0,81,250,255,81,104,35,0,44,24,237,129,237,10,182,223,11,105,134,184,220,118,240,233,209,251,26,58,75,3,139,3,84,169,153,26,131,157,201,124,137,88,228,223,18,119,250,67,173,114,36,18,253,228,46,112,165,208,103,196,225,56,29,14,250,28,215,21,37,58,230,122,79,242,252,35,243,128,41,3,231,131,156,36,161,232,142,175,254,65,58,195,35,151,45,79,217,57,142,244,123,191,150,237,111,25,81,113,121,203,146,12,241,246,23,58,117,92,54,107,209,149,152,30,231,224,109,39,174,41,136,137,239,161,163,211,222,32,78,220,44,87,175,85,207,5,4,132,43,176,52,240,196,34,71,207,155,173,44,246,122,48,12,126,244,63,96,5,104,75,66,179,68,151,69,148,61,41,46,185,209,36,11,214,239,230,176,17,6,182,20,66,235,129,254,55,81,119,41,234,4,156,227,201,164,130,82,206,99,143,246,205,8,235,192,84,158,8,5,75,91,229,68,48,98,100,103,228,95,178,94,212,140,30,75,62,181,249,23,1,182,70,136,4,202,161,103,190,210,234,172,176,216,22,10,225,167,88,53,185,238,24,81,130,25}, {12,36,146,105,205,21,61,227,71,89,178,30,211,35,93,15,54,200,147,244,59,171,122,17,44,110,84,197,129,7,73,18,232,102,29,31,54,239,147,68,223,158,84,148,129,107,248,104,192,6,60,115,228,116,195,161,32,48,97,10,16,194,180,37,6,129,20,39,214,20,23,199,2,105,195,233,39,129,226,178,226,7,73,250,70,19,111,254,138,230,90,62,254,68,33,47,109,131,9,211,151,9,246,138,36,227,153,174,217,90,129,20,134,141,202,107,52,242,13,27,186,112,12,193,161,239,71,102,178,97,188,243,107,11,239,237,0,210,200,139,177,126,210,174,6,66,33,206,201,148,207,45,230,222,224,252,98,80,222,199,199,134,65,189,187,123,81,157,199,123,103,16,240,253,144,199,249,177,169,223,210,237,123,239,253,238,73,148,62,229,158,238,38,118,117,90,40,44,22,244,35,71,23,137,7,45,177,73,22,48,164,234,61,37,120,215,16,194,52,122,249,144,168,63,14,182,18,95,215,131,197,158,79,119,67,9,51,187,174,167,187,11,193,179,21,231,220,219,16,59,33,84,55,147,113,223,196,80,88,78,35,64,144,184,235,65,219,7,72,240,167,227,21,159,99,34,232,113,10,181,73,190,238,18,18,225,201,112,212,188,67,95,239,243,142,85,207,104,187,191,103,45,69,102,185,210,146,196,196,197,231,78,165,152,100,239,213,75,52,126,174,183,229,240,220,3,0,43,52,129,81,36,229,215,126,52,134,179,145,152,155,6,204,169,181,30,124,27,128,153,33,235,218,63,228,26,124,211,186,253,118,34,32,192,145,36,229,102,176,36,136,147,133,146,75,242,74,224,69,6,132,143,214,50,142,214,129,107,243,183,143,215,74,28,138,20,196,217,109,119,250,27,55,42,209,139,1,27,148,232,204,133,233,35,11,167,151,178,243,240,211,164,230,125,183,170,242,225,60,233,241,16,26,113,25,196,198,135,214,75,72,88,90,48,115,254,5,65,16,75,180,17,193,189,124,135,247,116,74,190,221,82,165,191,82,47,213,174,224,84,231,33,60,233,70,147,210,65,120,241,106,70,204,44,124,202,228,76,33,202,116,63,88,253,167,147,221,142,251,192,185,186,160,203,157,205,75,43,58,176,210,96,129,73,78,51,98,124,252,240,127,110,243,162,24,79,121,87,194,240,167,141,68,231,140,35,225,103,65,98,116,96,101,48,83,187,70,226,171,232,183,89,126,190,254,67,131,155,17,163,255,6,95,253,226,120,175,182,252,52,9,57,119,201,103,182,125,20,36,61,84,225,115,9,160,138,210,34,190,240,53,178,24,181,139,72,195,151,57,102,99,249,52,164,189,114,135,180,14,145,177,216,234,42,236,189,16,120,31,118,89,75,41,162,96,148,68,104,197,26,27,174,123,147,231,197,177,82,142,70,46,221,45,203,74,126,17,219,163,20,197,185,138,111,124,41,113,167,76,183,36,16,103,23,216,25,72,38,134,196,203,255,180,187,70,16,41,116,26,21,243,134,26,63,70,72,208,10,1,36,250,79,119,47,128,196,100,178,13,67,13,198,110,73,5,129,9,144,46,240,89,231,142,42,79,208,149,157,236,177,235,177,199,23,214,148,86,32,157,74,28,98,237,93,240,16,137,149,194,142,255,66,219,202,15,160,189,164,13,205,159,131,184,167,89,19,110,49,144,76,172,4,41,147,20,253,10,70,11,183,85,204,14,217,183,144,41,221,154,224,5,14,0,103,99,235,11,241,158,176,119,4,27,108,61,140,244,142,101,120,244,213,3,58,90,162,7,75,163,233,66,253,156,136,80,246,7,193,240,45,141,182,47,48,233,132,42,13,105,119,210,160,173,67,197,238,43,223,79,7,38,69,10,222,61,15,160,253,3,248,178,47,216,59,94,194,244,121,104,154,106,167,14,24,247,134,27,220,140,115,126,231,59,5,214,131,68,205,186,165,12,131,211,217,188,251,243,8,71,132,49,113,147,24,139,10,128,197,14,22,38,14,53,222,70,173,180,99,134,215,59,36,15,78,160,174,94,239,43,232,163,41,244,125,36,116,112,184,174,134,134,109,115,63,208,128,162,150,160,128,79,60,140,99,123,217,194,217,92,122,57,163,130,26,51,247,8,124,24,235,132,102,5,111,111,155,179,123,127,86,246,179,252,3,48,213,237,251,165,183,55,176,6,161,248,135,13,42,153,74,213,93,171,107,104,71,32,103,255,60,195,252,117,57,58,210,182,186,15,218,230,245,182,169,246,211,164,158,156,64,242,78,9,224,239,251,135,220,118,82,142,213,2,26,73,186,4,98,110,18,230,36,7,28,161,95,130,12,153,127,38,205,250,112,208,107,38,48,202,194,38,106,99,114,181,64,146,33,216,25,211,207,67,239,75,205,173,178,88,219,78,79,58,68,242,40,208,166,87,108,96,124,20,234,206,151,184,116,234,26,223,106,24,190,145,67,228,100,49,54,187,136,220,244,156,76,128,74,43,163,193,69,107,101,113,68,135,168,222,149,36,167,141,66,255,175,59,186,14,92,178,186,111,217,219,155,80,81,94,56,104,104,234,239,222,248,52,215,180,38,187,58,194,204,42,215,238,226,114,51,235,157,220,40,33,45,44,171,212,252,171,64,72,209,73,125,68,170,64,120,238,136,80,121,159,6,198,210,63,73,61,98,81,128,217,190,44,144,177,63,227,88,67,65,244,108,165,59,67,195,1,184,130,40,4,118,204,11,189,130,110,74,175,68,26,192,36,236,127,64,64,188,44,5,44,70,250,94,250,0,212,4,225,81,241,117,74,161,227,88,221,34,126,46,43,33,115,105,24,29,204,36,167,63,241,162,105,29,233,14,119,109,125,77,101,11,252,9,255,236,26,72,95,142,20,216,74,7,61,91,91,12,188,47,200,49,134,57,205,144,35,243,166,118,214,177,65,145,107,125,141,95,142,183,86,105,227,135,76,253,167,244,49,175,68,141,93,47,122,100,109,131,164,104,22,67,191,220,133,194,85,81,234,153,133,83,185,52,174,40,245,3,249,18,209,241,208,240,241,238,39,71,165,236,132,16,210,62,233,116,101,249,210,141,198,211,59,25,168,125,112,240,173,126,109,240,226,192,207,4,163,40,141,180,71,254,104,235,244,209,147,89,164,149,160,115,32,178,208,147,178,210,118,48,255,236,34,163,48,22,183,174,205,23,220,53,155,156,220,88,19,183,35,160,88,13,165,89,108,66,227,206,191,16,89,93,232,99,44,224,136,181,163,45,31,57,87,248,198,124,34,54,117,161,248,134,178,86,236,243,242,15,54,196,30,66,183,184,120,210,78,182,10,125,245,130,229,21,7,50,85,186,248,205,124,74,20,150,37,106,129,246,52,179,134,111,3,139,180,200,134,148,111,114,182,76,218,129,147,191,41,49,0,237,86,253,120,35,98,38,10,2,156,81,31,81,78,188,61,19,24,134,245,184,236,38,169,220,44,222,94,174,200,241,158,88,101,240,108,134,193,63,53,51,166,157,226,175,101,11,78,231,22,67,116,61,225,251,168,244,117,37,195,115,181,254,125,105,170,245,227,245,7,104,34,100,156,58,154,45,230,175,81,188,123,189,139,150,160,110,71,201,25,122,95,128,0,160,122,7,214,9,238,193,140,135,140,91,195,187,97,111,44,129,234,176,100,154,100,136,133,126,149,78,7,74,62,126,161,161,187,79,246,74,75,210,201,81,99,113,162,169,9,236,74,28,154,233,211,107,47,73,73,186,39,157,48,118,113,197,228,50,247,21,77,157,118,36,246,199,56,161,202,177,39,10,50,23,241,3,136,83,205,124,226,142,33,228,30,149,167,9,241,158,29,240,130,115,159,236,91,217,203,243,16,6,159,103,104,63,13,226,60,130,180,17,245,240,132,79,201,105,106,30,17,72,178,198,150,145,217,36,97,156,170,131,155,3,131,52,226,241,2,129,122,90,247,15,125,199,91,180,43,242,61,171,250,244,206,66,71,188,216,92,196,167,203,0,137,75,161,164,194,158,111,95,198,2,66,10,90,114,131,73,234,206,217,18,118,156,206,87,29,158,186,56,236,162,33,62,27,254,131,51,148,131,135,56,53,151,209,231,65,39,155,215,64,229,215,62,245,14,138,49,137,0,249,9,37,186,50,187,244,154,147,179,54,102,162,195,199,121,0,185,79,82,27,108,182,129,250,22,253,64,225,18,118,77,40,59,121,190,190,84,11,146,45,155,69,83,5,240,122,148,197,135}, {57,191,241,104,30,159,67,172,76,163,101,2,212,49,179,38,141,175,7,17,199,54,102,202,253,203,134,146,222,18,118,21,59,33,15,101,123,67,233,45,224,89,195,229,112,246,28,171,170,150,146,91,143,185,104,215,207,162,136,180,64,83,233,193,121,7,199,210,77,166,25,35,40,11,144,30,22,64,9,144,245,44,12,156,124,189,9,28,17,106,56,120,179,79,199,33,150,70,61,130,8,151,81,189,190,118,221,139,142,213,52,111,162,230,7,197,238,19,85,16,232,37,204,234,34,90,141,171,125,90,52,234,141,111,167,12,155,142,104,67,30,86,29,224,83,175,239,142,77,185,12,152,240,153,232,212,245,90,18,215,246,218,83,222,106,204,142,102,203,113,143,227,53,22,209,48,88,147,51,47,11,5,16,146,21,4,182,225,174,254,234,23,24,217,112,69,20,69,15,167,191,161,34,115,50,53,67,57,251,241,220,40,143,203,5,58,30,46,99,9,18,111,51,74,163,208,157,143,245,42,197,251,219,153,203,20,222,212,231,3,196,186,208,27,230,211,126,1,191,102,255,28,41,77,194,103,28,244,213,242,3,248,134,171,206,8,248,223,107,177,251,5,249,226,31,97,224,24,244,72,67,203,89,222,6,179,225,211,111,147,228,114,50,7,207,116,91,194,184,110,166,82,22,166,106,179,89,8,229,1,150,242,175,129,61,50,172,84,90,130,46,205,21,212,242,202,111,88,210,169,142,226,173,168,210,70,228,228,196,116,45,223,220,18,52,79,110,63,92,65,108,202,85,139,226,39,59,17,236,43,207,1,237,123,9,142,219,8,63,45,141,205,133,218,217,47,202,230,4,98,65,248,67,121,88,183,20,94,107,115,238,60,153,163,71,118,225,208,7,46,119,249,195,49,68,194,56,87,11,44,83,110,170,35,239,205,31,106,1,193,117,4,190,218,217,193,177,52,38,5,82,146,18,238,216,210,194,196,177,144,92,19,201,101,161,132,81,39,155,249,236,168,58,92,160,87,89,169,232,153,29,142,242,151,22,53,58,67,161,60,98,110,253,198,230,134,237,174,141,138,152,123,168,117,0,109,140,176,63,111,99,98,49,38,103,27,102,16,185,139,36,123,108,67,217,62,109,112,106,101,180,148,234,228,187,164,88,89,15,191,192,229,236,190,20,184,47,219,123,251,90,167,240,221,227,2,241,209,73,109,83,172,146,236,203,5,196,215,186,69,10,7,12,246,157,127,203,194,88,167,120,97,145,201,193,235,40,154,105,107,244,87,217,43,52,87,9,187,32,89,101,47,153,72,46,94,50,206,156,156,250,220,13,29,59,196,125,152,199,184,113,66,46,172,189,57,172,106,104,163,142,37,240,112,4,54,195,147,30,173,118,208,126,149,100,143,204,74,119,26,187,102,171,191,4,144,142,28,133,234,212,239,51,101,253,167,221,89,61,156,30,16,125,145,25,253,223,183,148,27,76,88,30,246,225,146,212,214,86,154,228,78,13,190,147,29,94,183,44,75,131,110,79,86,200,192,175,170,202,113,95,223,132,4,15,194,94,254,4,138,209,196,185,75,157,193,189,67,65,128,34,158,122,226,87,147,37,165,79,37,178,187,161,96,94,145,106,160,127,125,4,66,152,37,195,213,176,48,210,37,68,93,76,156,78,42,156,230,78,154,202,80,102,105,22,176,255,12,82,170,21,119,148,200,1,203,237,149,21,80,51,8,74,241,182,88,123,117,119,115,177,174,199,238,87,135,42,185,191,223,93,72,134,235,98,150,130,111,36,131,10,18,23,26,184,213,182,187,53,38,10,173,49,62,154,193,5,63,12,83,49,96,199,40,73,191,82,40,192,34,175,173,22,200,241,58,173,135,56,114,246,46,182,225,140,119,79,101,235,80,81,245,150,12,202,174,83,254,127,179,66,142,46,40,116,97,245,89,119,189,106,168,95,153,243,155,182,101,22,162,60,94,21,139,199,207,11,193,88,251,20,223,85,127,231,185,120,214,178,193,76,36,36,13,16,93,106,13,43,94,16,47,173,103,252,250,99,50,75,126,54,123,2,138,170,118,33,44,84,209,36,51,250,128,63,89,80,199,204,205,175,42,66,27,45,202,186,78,217,14,42,110,163,145,250,132,212,102,143,176,253,215,6,55,147,91,22,92,180,174,112,176,115,25,224,39,97,211,88,68,75,155,143,22,192,144,119,14,55,52,104,236,96,206,252,134,242,205,5,249,31,97,135,160,245,36,115,11,175,150,13,212,41,47,246,10,16,164,194,213,189,32,11,106,65,172,44,172,53,131,140,32,16,249,185,58,143,35,174,213,212,238,19,198,157,117,17,101,163,42,224,1,188,35,163,217,121,239,228,73,186,87,138,120,192,44,108,43,73,60,191,167,143,105,107,69,44,6,246,99,53,159,184,204,34,80,194,109,248,101,113,50,225,86,44,39,40,140,88,81,64,73,33,33,86,5,14,131,115,184,124,137,49,201,108,11,32,27,191,52,162,15,143,143,146,240,30,227,59,136,29,241,114,185,26,52,78,159,85,217,39,232,69,190,19,140,235,89,174,254,198,40,98,247,249,23,43,120,236,219,6,22,137,114,49,237,45,185,11,241,164,141,144,138,84,152,233,18,106,254,181,243,249,233,19,64,148,243,190,39,18,205,208,196,162,112,147,31,152,55,124,247,56,177,136,105,200,167,242,224,250,57,238,213,195,6,235,53,92,200,120,139,240,99,251,198,71,37,60,56,119,27,113,20,230,167,56,58,185,70,238,181,146,51,55,14,150,129,116,105,124,12,215,72,99,55,127,191,151,229,184,143,90,184,143,175,15,114,255,159,5,240,232,196,187,124,7,221,195,237,67,177,6,215,166,5,3,0,190,200,102,174,137,88,215,174,206,194,64,176,157,16,67,195,82,91,122,26,231,42,159,65,159,193,52,245,185,136,39,125,188,3,133,89,182,23,0,95,149,181,71,51,91,86,132,81,127,134,85,218,40,4,254,211,92,2,22,173,18,25,83,122,228,199,253,179,226,152,151,254,251,180,139,43,245,42,138,247,205,139,18,60,168,93,6,145,209,77,66,174,202,219,72,248,21,95,227,158,61,167,188,78,126,137,2,73,252,126,145,249,42,166,209,252,238,154,20,114,254,68,28,22,169,206,146,201,225,151,98,111,236,167,97,52,127,103,141,61,119,203,195,94,211,191,147,144,34,58,163,244,128,166,115,130,83,38,121,78,239,144,145,121,237,66,254,153,176,44,23,163,239,113,98,178,35,200,84,227,204,3,202,89,10,34,130,125,167,212,55,143,80,24,250,138,216,147,97,207,101,120,34,56,8,97,26,146,241,177,83,138,57,62,146,134,140,104,2,61,184,240,9,166,10,217,230,7,101,97,64,171,117,227,204,144,224,38,141,17,241,154,133,107,134,86,153,95,192,78,201,83,71,177,88,100,21,98,164,117,237,47,214,106,18,90,153,252,31,79,62,196,99,7,226,209,178,236,182,101,13,81,209,241,97,91,149,151,123,71,192,217,244,79,245,152,181,158,245,28,151,173,184,237,160,69,158,0,15,179,155,140,66,119,183,221,64,199,114,41,234,33,62,48,104,87,1,194,57,118,84,59,14,65,186,112,149,17,251,83,169,178,67,147,253,102,245,85,21,190,26,197,26,22,34,66,112,36,248,240,183,110,204,160,173,101,26,228,238,92,136,173,93,206,74,213,76,95,159,212,114,28,100,133,92,71,126,45,229,38,184,48,4,13,248,139,71,22,21,39,234,71,171,45,16,76,182,13,58,181,2,254,231,15,246,59,147,147,49,43,97,13,248,89,109,192,126,119,126,221,71,153,161,101,62,71,200,122,169,204,47,8,137,150,19,131,246,136,41,78,47,210,116,162,109,153,173,160,73,120,24,143,147,86,205,162,61,175,7,160,205,238,181,241,84,60,5,107,231,115,116,2,182,202,67,183,9,181,247,133,15,234,10,90,232,66,11,249,182,29,220,75,235,188,70,51,140,73,157,50,68,109,180,125,233,249,197,180,136,180,6,26,244,112,105,44,240,171,143,6,195,191,113,119,243,62,215,188,45,154,112,203,181,166,105,185,52,159,117,178,150,32,255,11,7,254,157,180,199,34,67,148,220,113,22,214,216,13,174,77,61,104,39,13,213,199,201,81,42,178,243,173,252,242,122,225,65,227,255,149,114,32,68,130,106,48,65,244,71,57,56,208,235,141,103,189,45,198,81,187,212,244,67,79,11,66,63,13}, {165,249,155,179,196,223,170,100,54,165,67,214,229,205,163,237,29,228,39,94,10,197,231,231,155,104,19,233,4,253,72,11,118,160,172,22,95,214,193,102,11,2,125,138,69,88,152,60,90,186,108,76,153,40,24,38,17,77,244,174,252,164,219,229,5,60,25,193,12,142,98,13,75,128,24,27,209,250,113,223,169,210,36,87,239,43,76,98,199,125,52,100,68,242,221,56,215,71,53,76,6,4,50,105,133,7,117,202,85,24,117,61,147,198,22,20,26,129,210,123,200,16,78,243,224,97,56,156,19,245,242,98,186,228,196,184,184,250,83,248,124,176,118,8,205,50,53,34,217,86,51,42,26,186,201,113,10,3,179,202,171,27,132,248,37,234,133,102,193,94,50,130,119,100,234,53,77,79,54,117,151,39,48,208,247,1,60,26,54,47,99,64,184,84,240,211,52,216,28,4,164,230,253,91,219,191,38,45,129,134,91,190,218,18,104,84,7,234,226,70,159,136,76,122,94,245,141,226,250,19,149,224,72,101,152,7,118,239,118,29,111,43,38,84,53,81,250,215,244,100,66,153,139,10,34,181,112,110,60,34,3,228,161,101,29,177,137,188,190,161,122,88,146,57,148,68,118,240,83,63,197,7,88,155,179,3,135,36,171,169,102,7,213,192,17,47,179,248,74,57,0,241,223,172,227,235,36,123,194,135,241,162,207,230,145,212,97,234,7,63,190,136,154,234,40,24,36,16,94,139,208,199,204,7,183,213,236,36,78,137,181,129,136,179,18,80,170,115,119,219,162,182,120,243,28,85,19,180,50,10,245,5,22,42,227,203,175,167,32,178,182,189,214,225,164,245,216,73,101,217,54,14,166,47,252,162,154,144,49,23,85,89,163,22,208,243,49,105,30,253,226,28,82,161,67,227,73,64,127,6,255,3,119,233,14,161,56,153,124,105,43,208,13,169,178,178,248,70,149,82,113,133,1,104,212,23,177,233,128,109,97,176,176,152,21,205,129,88,248,246,165,109,15,46,117,112,108,205,140,25,252,42,241,116,237,208,223,253,60,36,16,74,75,30,19,228,74,158,10,39,5,136,156,229,154,191,63,125,50,196,248,249,33,168,149,242,210,183,58,162,238,88,253,44,253,151,254,112,172,134,141,62,31,228,111,33,0,29,81,81,56,207,60,162,110,215,81,11,57,82,193,244,115,32,159,136,201,12,6,14,111,248,170,231,123,161,229,246,21,42,70,98,20,172,227,118,53,238,15,226,193,27,184,1,110,147,12,143,252,105,42,45,62,80,195,229,92,20,2,221,249,225,196,16,148,204,94,13,73,74,14,249,182,110,31,73,246,97,39,123,60,113,34,254,246,196,183,122,252,151,159,68,237,41,223,108,223,47,67,165,148,97,131,132,219,214,216,125,255,116,207,171,108,80,99,150,161,181,196,136,22,153,23,178,60,238,118,210,241,39,181,106,49,60,127,104,153,114,10,91,76,75,77,27,168,53,130,195,230,156,31,178,247,131,26,39,176,77,131,155,43,124,175,103,50,88,63,209,209,117,84,152,65,119,224,175,219,55,170,41,161,132,24,53,10,0,0,111,239,235,201,193,227,67,194,44,187,4,53,192,155,254,177,144,242,1,6,146,6,152,245,94,88,89,15,47,111,220,196,47,196,216,82,193,201,150,184,59,73,121,151,8,27,15,7,12,10,18,240,136,200,184,197,181,176,123,19,27,111,66,167,176,202,194,6,91,240,103,59,231,77,15,2,153,123,129,52,206,246,145,188,88,58,136,152,107,14,56,151,179,64,230,109,28,152,152,127,139,11,7,251,148,16,135,127,92,235,169,170,64,89,4,136,72,220,87,99,70,33,77,143,10,207,127,222,194,194,173,39,18,201,233,91,70,121,3,163,18,0,104,163,61,62,146,121,126,35,186,123,157,211,58,91,4,188,4,228,183,97,146,23,211,178,195,151,107,105,134,56,178,195,72,243,227,114,191,179,129,23,233,247,223,70,97,149,223,149,224,221,27,68,219,243,55,70,26,71,234,233,205,95,154,102,154,15,153,234,236,62,193,128,83,92,136,8,200,89,224,232,197,249,32,156,153,151,66,214,90,187,179,126,128,207,241,4,190,212,171,233,70,11,235,237,199,43,202,79,77,2,99,235,127,121,218,67,250,151,41,62,167,53,112,5,193,196,175,44,131,82,177,145,167,207,212,5,115,158,37,121,21,86,97,21,85,16,96,247,111,50,49,54,57,129,243,145,32,204,76,232,116,217,75,127,246,56,16,151,135,36,157,245,46,74,161,183,51,104,30,126,41,162,94,217,121,39,124,224,64,119,89,231,75,101,86,116,83,94,138,150,131,114,205,101,176,176,232,155,229,32,203,109,187,122,140,20,100,9,141,143,164,246,91,12,98,46,238,189,28,30,76,11,243,248,46,180,12,173,69,121,241,142,36,221,105,66,157,4,124,21,96,229,123,225,9,5,214,210,137,20,106,196,195,49,160,253,7,133,235,62,101,7,5,67,170,245,165,5,101,59,192,247,42,37,106,165,89,162,48,185,252,51,205,159,181,42,49,81,69,146,159,126,96,112,77,220,140,187,252,227,176,92,139,72,138,53,247,145,201,46,158,244,37,32,175,17,128,8,30,54,248,67,42,37,247,230,158,195,111,130,90,251,91,43,17,18,101,84,34,97,102,156,200,242,230,82,8,229,234,140,49,223,13,164,29,7,206,83,12,6,224,188,66,191,226,242,155,94,92,117,232,249,73,99,196,64,189,17,115,143,169,23,93,118,32,184,55,135,67,25,50,111,141,253,221,127,83,177,195,219,67,51,92,214,16,103,69,120,153,228,242,177,84,206,40,1,132,19,243,221,202,244,200,149,191,231,107,71,194,90,171,242,163,208,216,122,75,227,159,177,54,184,186,158,76,3,59,215,238,114,171,227,149,174,129,212,67,246,54,135,234,16,190,69,40,212,9,33,177,251,69,67,11,71,211,132,3,181,30,143,219,184,32,76,122,54,172,94,151,152,197,192,27,11,91,117,138,84,206,144,251,251,232,68,30,203,82,216,60,124,145,198,115,40,62,214,158,184,39,116,205,151,117,91,45,81,255,26,80,220,148,26,181,78,133,203,54,239,237,88,164,9,33,98,97,167,113,52,13,17,32,78,222,43,175,10,230,239,20,18,191,99,136,72,212,95,220,230,222,130,238,230,213,65,177,208,32,139,147,191,17,119,181,250,44,59,75,209,147,138,232,252,218,107,177,43,81,10,89,79,245,65,163,132,225,103,119,93,27,248,6,112,94,19,36,196,167,97,68,243,254,100,243,102,93,237,10,227,69,76,157,82,222,11,24,246,49,44,23,201,139,75,56,185,112,88,100,247,49,55,19,205,13,137,35,240,17,39,166,60,181,52,59,218,159,97,131,15,200,133,105,206,227,145,41,26,240,114,165,98,174,231,27,230,99,183,230,201,100,33,86,61,175,146,40,130,84,175,134,103,165,204,57,246,214,101,195,129,39,114,252,216,63,84,48,113,254,149,57,200,130,92,170,60,113,72,30,252,78,198,253,14,248,230,23,59,127,249,134,75,174,23,123,219,93,197,103,55,236,240,96,171,1,138,176,231,21,102,184,173,207,113,38,117,204,54,190,88,154,25,14,116,220,164,165,118,69,25,187,158,128,185,250,22,175,144,230,180,91,6,136,89,212,77,60,92,240,67,239,81,57,143,24,101,233,143,151,238,199,184,24,178,49,174,212,245,63,191,190,147,229,82,129,113,34,164,152,91,43,123,182,230,174,182,180,164,137,154,59,28,147,89,238,98,140,141,161,184,163,178,206,129,235,172,153,222,107,183,118,71,29,100,100,8,80,30,13,190,212,244,168,197,40,145,155,184,218,41,80,90,143,172,188,77,176,216,162,248,134,10,65,62,132,152,50,229,251,154,96,178,169,1,67,157,14,158,61,42,148,157,55,201,70,16,15,91,155,172,159,84,241,151,200,63,232,226,130,71,225,137,1,145,25,103,168,119,48,5,10,109,198,115,6,255,173,177,102,47,139,52,216,127,51,247,192,240,138,130,73,107,245,126,14,242,70,92,152,161,77,130,45,77,59,228,153,157,159,100,61,250,108,96,252,20,19,137,80,70,106,111,19,162,185,54,205,241,12,192,244,141,103,221,250,80,255,139,133,207,102,147,116,69,75,79,160,80,211,24,166,225,111,192,46,108,222,73,26,119,21,147,112,194,191,23,199,144,75,219,107,243,191,66,6,86,202,249,89}, } ; static void test_decode_953xint16_impl(long long impl) { unsigned char *x = test_decode_953xint16_x; unsigned char *s = test_decode_953xint16_s; unsigned char *x2 = test_decode_953xint16_x2; unsigned char *s2 = test_decode_953xint16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_953xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953xint16(impl); printf("decode_953xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953xint16_implementation(impl),ntruprime_dispatch_decode_953xint16_compiler(impl)); } else { crypto_decode = ntruprime_decode_953xint16; printf("decode_953xint16 selected implementation %s compiler %s\n",ntruprime_decode_953xint16_implementation(),ntruprime_decode_953xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_953xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_953xint16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_953xint16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_953xint16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_953xint16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_953xint16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_953xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953xint16")) return; storage_decode_953xint16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_953xint16_x = aligned(storage_decode_953xint16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_953xint16_s = callocplus(crypto_decode_STRBYTES); test_decode_953xint16_s = aligned(storage_decode_953xint16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_953xint16_x2 = callocplus(maxalloc); test_decode_953xint16_x2 = aligned(storage_decode_953xint16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_953xint16_s2 = callocplus(maxalloc); test_decode_953xint16_s2 = aligned(storage_decode_953xint16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_953xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_953xint16();++impl) forked(test_decode_953xint16_impl,impl); ++test_decode_953xint16_x; ++test_decode_953xint16_s; ++test_decode_953xint16_x2; ++test_decode_953xint16_s2; } free(storage_decode_953xint16_s2); free(storage_decode_953xint16_x2); free(storage_decode_953xint16_s); free(storage_decode_953xint16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_953xint32.c0000644000000000000000000030652114705505543022737 0ustar rootroot/* ----- decode/953xint32, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_953xint32_checksums[] = { "dec92f9468ece28ae286a8fa5b70bd260b013e54adb1884e6cd1b8cd4126c0c5", "d816216b0110cf74ad08705d85d438f5897a52e214ecac53b0c97fd668b37e62", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_953xint32_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_953xint32_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_953xint32_ITEMBYTES static void *storage_decode_953xint32_x; static unsigned char *test_decode_953xint32_x; static void *storage_decode_953xint32_s; static unsigned char *test_decode_953xint32_s; static void *storage_decode_953xint32_x2; static unsigned char *test_decode_953xint32_x2; static void *storage_decode_953xint32_s2; static unsigned char *test_decode_953xint32_s2; #define precomputed_decode_953xint32_NUM 4 static const uint32_t precomputed_decode_953xint32_x[precomputed_decode_953xint32_NUM][crypto_decode_ITEMS] = { {1456995461,1340972072,3919255183,3785298700,1523377295,3749121381,1921130231,1117791448,296662880,2965803740,1471364253,935319319,1176704741,3889096077,797035748,2126449180,2197492254,4113203826,2935347782,3022566797,1431877299,2596923591,4231922237,139395702,1887136997,4035564249,912087476,3466595441,1216200984,3615216623,1924949365,1296445665,1927089532,3089851467,2445005725,1370736804,3196462247,2203499950,2779771071,2299271783,1146734855,1403388466,3715622659,3913706804,1825292364,3298489980,907935097,4009156823,2019319066,4221493814,4219758555,3037231093,1732558237,3791965186,3314074832,495394136,1359694697,3107332455,2383459170,139093707,3463061511,102784113,125860403,3090821822,2487066104,249423520,2028135322,2909320922,2715528605,633156926,2888322626,4231250382,604615499,3811320478,1304292638,1780106483,2329224615,1943822388,3893965396,3614683523,824038250,3335940803,2720530750,735876340,1079056484,3627323472,3665266322,1632621891,1256691872,2365724866,3522703630,4053266713,3340646831,1028860728,2222108106,1926732565,622873266,3000600123,3648097405,2453347274,1630572469,1598210275,1295976066,666899537,3181380977,1449530893,2468340089,1587093068,3601789025,2028234181,1877572073,1677805033,3183059819,170358309,3637203303,2536602623,882517155,856339761,4008777349,2026511396,3738707655,3380586939,155363756,535276530,2959633612,1482875033,1585880003,2700581824,344891405,1757777226,3819860400,38358882,3831038059,2093024247,3803896739,491673212,314601537,749770020,2635269620,2971665871,601395373,2848016093,1779281478,2712505423,2183229253,181773293,970902312,873808429,1413196837,3192190030,3633388038,544055124,989570544,340278975,4141389309,3581458711,1405677724,396716023,3200199736,1983471109,1919898038,1959880827,2445752085,4193818025,1655547665,2777455144,3964279689,115834436,1608394456,3926167030,709599503,1143123848,3587665490,3332624444,3550167109,3258385793,3272531896,958124353,1394863038,4267347157,3157082715,2219640077,1655870989,1274993502,357918104,1792298613,3042069443,1386962292,441147455,3808673946,1561258419,1087869065,1094464035,762848897,1256343857,3950296961,4188513193,891898738,1685191190,3456042443,2064728251,270840520,331222365,2819872309,311218347,2743926166,4231955730,3906483950,475232982,1826921191,1193560407,2213591718,1706941211,209221845,2250269133,1284715479,2424746096,138760979,568921523,2862771617,4060402329,3056704259,3363209664,312845276,808547384,4196059743,1494671916,2091409973,1055823688,958076855,2934050447,866907761,783187935,2601333091,1127785862,2732701234,2654513065,1025304759,187851711,2035896844,3548573793,2934661011,1192712552,423140172,3017310290,3544594847,2362910575,2266150099,1009397250,1211509246,765106675,480677495,2891244881,522319344,711149673,242473884,91650981,370802777,3519457733,845486438,3690147192,2925255427,2375664709,1723230281,320924667,3913266665,1559557161,290078546,3199060115,1006564302,1538792614,668788050,2239616012,271486643,2449623977,1247251515,2475888231,3815185679,1026288903,933110432,2062246567,3534966975,2256814957,3742767605,398829861,3380751930,3189552997,564491807,3009006836,782745589,4291660355,164031380,1090602857,1825087422,1843326433,2895892149,3569586930,3433823978,380575794,1678683606,4224266426,1068905869,535151662,3539211175,889397878,2976543349,2688446354,3229114061,502070530,1184378208,3967306178,3730858226,3644135575,2073181689,1573209791,467814184,4199012543,3220432568,2945334142,2591092954,273569569,1870206185,4153287158,4002244982,3369905886,3070007312,2286004977,4175864923,1841420875,3720859202,3095036922,1522727848,2924702566,782719679,3595466923,1110337587,3685671246,1398841181,2366331715,1564859249,422900852,2488656836,2835074294,871879764,3762512732,586697582,2437400933,2969094008,3413058152,3032270980,3154953291,878949497,2751175265,2061592164,1126168474,2938522567,3120765835,4239881052,3004893577,984344437,2274233682,3570202607,3665040005,597705528,3321550014,2550083218,65352227,1809128084,286567191,3892377622,3420048790,2787679041,2072842689,2077746442,1119403315,3197925954,4186054979,2355601772,3141290258,394448489,2745425519,2455495256,2425625756,3715078385,4079137347,3523020134,2338514831,3264298208,798182772,770566103,3435131533,2245188958,2606676619,2836925048,974289339,3329349698,2992917858,3232554408,2434340698,2578729982,3842196287,1525693435,4193737187,610217182,1608067866,2459772164,1322037518,1786330467,3099382099,2811979739,2339235299,4044342948,4168402090,4103792601,4118572756,1960055566,2506975078,278529626,862981162,2673207084,237649890,986060868,1574630303,3973729995,1066736714,3971214758,3369816756,2533421499,358226740,1262673124,1018159599,54660313,958461467,283188146,706662637,3655623332,3489374703,4005530629,84035291,877081903,1095408018,608892426,645534091,3901835702,3043935557,950247532,3413198066,2576093297,2673023723,1993300112,1193689208,1362636651,1157582210,959159460,1209146443,1631202130,1913590671,1048954674,3080461070,1745172113,784017855,4065596821,2214977679,3557225882,3392544293,4010503591,2142348940,2260047569,563609982,1346072818,3814129935,3019811432,3263210416,3415271337,956188496,1879280737,19427223,3114269686,2855413085,340083541,3820287809,507773065,2495614304,2779441666,3476321475,3118724303,2413657659,772216033,1825287450,1948766268,3896369332,2565684548,2130462971,4076059366,439408303,602330997,440494865,3329184755,3998271867,75533758,456614815,140986607,2985600029,249762928,2031391133,1887334819,1734069340,1465435257,3542572433,725661075,742256820,2985616031,468011095,3585860694,1129008312,3153934081,387652466,1114013997,2593760657,166174628,697884369,1002354621,2636024751,817885483,1982400856,20432449,745917947,360334288,2451713889,1761331027,1010974387,1970987709,1557958423,3405627614,114262536,1989330192,3341778472,283728159,1928586616,1547977286,4051523656,3237596723,103996114,2456082446,585783054,3266833250,1703759001,2361630906,1708081296,3150673008,741202789,3326783096,1421492223,2606569589,191647487,1037755532,1294832426,163519293,2811842416,2745740838,4257819515,1372733809,2961687927,2982566339,1108741754,814866674,1004496872,1936224979,2695490407,2224207245,626878865,3655626343,724647948,1639178056,1595562078,1561538184,2105110966,885881184,3651220904,218049896,105423901,551017649,1551437028,266770949,783995941,3472310734,3085427609,1969199533,1077648810,3311817071,4061404455,3232732861,3838737175,2350110699,2399095976,2174810326,2885466501,275779466,4089085604,2565553602,1140860300,1888773509,2129162863,1331494846,614434436,3917941114,4173262293,284513249,4216497903,4198055866,1001531642,2655396017,603874089,1357404209,2318232030,1832079344,3223787567,2911267667,4265115400,4254878291,3110504042,4220954867,1652078988,415581449,3651188211,702884966,1697242942,651626497,2114911775,83273752,747350143,3981125610,3298298359,89966995,300627556,2851315842,936517421,336090077,3882699650,622442378,3191100206,3090558576,4019475139,133767243,2498340609,1310204029,2881503654,2679299163,1469130438,94976361,821468126,1520695530,566694797,254375743,4021120093,1569253993,846809148,1401680859,417035938,658645791,3757589532,1347945731,150675668,3685169889,2796838564,1917073841,1751406953,3099368720,1371941609,1511022985,1762591978,1732695055,4094324059,3904253003,3150671696,1261708011,909648865,4115880787,728078415,3396079124,3243904120,1166485097,1894667900,273044624,3180560979,879402651,4282727089,1683271184,3457180030,2665137395,909833139,2104873010,2800097681,316766834,3909608474,2294255547,1698816304,3533438409,4261975609,3649607445,1310980838,2968124639,257007309,4109660322,429351024,593852953,2885171629,688664788,3444999118,3385374997,2977958185,3567849830,1424695274,2103278964,1422872979,3240386365,2820665431,1339640296,2939845546,3828751405,616183912,945792166,227147754,2782884263,3280299670,565150334,4226745823,4151126965,2035008625,2984732437,3366416448,3978489785,3329484651,3257512331,2179238584,2740014596,2077115319,2126351157,3454530908,1059297620,47464803,1038011414,1473898067,3820710617,3755518719,2092270271,2507251505,396549802,3436574691,3042628196,1488070764,2913917352,3548255740,1446085509,2912356456,2236642920,452543343,2551169498,3948317984,1885259820,749196700,3317537753,3793742422,2881529100,1487366770,3132378714,412992700,3981130915,390884413,3075161464,2600652995,980197953,1882579272,1856253287,2829410164,3128434236,2962122622,838787973,954756688,2696529475,1499804583,3904557277,1814489418,1938086509,676537446,3530486085,717043919,1976849843,2599862413,3588813461,122337642,1836686232,1672681348,4067005455,4205317792,3923923732,3216683848,3927157876,3388430806,2006943675,3304645219,1821433388,2581701314,3649150914,3130572268,2851914442,3946675332,319173908,1550698314,903853487,1140485423,2735132479,840259157,1361588974,436652830,839980417,277839597,1117921693,706045882,574064985,1075830811,144806556,330255536,3004428089,70141066,2027995012,131813635,202183326,4147136118,3680958,2390182351,3190288359,3250600625,979792428,1861591326,2220690834,3283216600,3829097804,3599332117,669585205,3077794646,415721446,888082342,1274452597,2828278079,407476393,1517418333,3232372483,2144698693,2185966862,1122114610,2700220128,2476530138,2418503872,1679382167,3761023257,3237668356,252273991,2465025873,3292459089,3058771784,1260750079,434824923,874739549,664727311,1479849954,2664799827,2222574002,3915248967,471384673,2797261366,3710338423,3365269369,1247791560,4115011500,1166356960,729517613,3070832621,1102653474,3875106935,137133132,3319304022,3570737791,371257911,3235121223,84293999,1395366583,1938165170,230859248,893052048,1961425657,2375315328,1694231758,2036319714,940573020,1495317177,2010517248,1819080569,4243421719,397349029,658999064,1262903860,3422358908,3132580550,720371820,3194092862,406126615,3529007381,3250748212,719119912,3300206663,282323142,559195183,218676954,1761687226,107319750,4087344618,2855313785,1286265197,2597221200,1837262935,3125640186,3441877665,1933911117,2828009616,3146372720,2282126925,227505126,3497043954,494477148,1930801369,2550363858,1485029234,194214971,614140368,1998250267,1021863650,1876474952,2004508154,225514809,2126396518,3979417307,4051488652,1263675152,3948968512,3945677579,618036380,2451968370,4123737507,2175931922,1093385107,2122425899,1213440311}, {3800765481,2104822292,1972711164,3311991195,477665423,3834514814,628310476,2210088553,3470077894,1691713343,3841465728,525428011,856443446,429417027,2048349472,3657841551,2494392483,2705311109,2366683455,3164774403,1404031127,3285302148,33845462,1708311519,1941948362,157203248,430984777,3088471993,3598677699,1272768470,1982103778,2464890065,1699262411,3372495066,337221420,1183310731,2420255997,2589758853,2213254972,1464328327,3158012203,817713460,1077953504,746519166,2331211383,2535353591,428375466,2172575465,3654483017,964200375,907374929,1155661049,1120914766,680708204,2027985281,1267963745,3749714545,2736614816,1395891136,3534979883,1216194244,107939042,3763455937,2998712398,3296125697,141973476,3103197931,674718478,478945712,4091553485,970906306,1350432430,3573619525,3110252574,2919747117,80584867,1988780609,4112839439,1373741017,260107567,3871877998,2179199125,4209246666,3323423106,1970731711,3718446827,2385765693,2416225655,3439015541,863489843,645511915,3544846042,1271529908,792230083,3896073686,1194372547,4284208688,768773272,3940959469,1611644154,3767567643,2946409848,3507005533,4732409,2238731681,1179071099,2013761145,4174185948,1049539505,1229995050,583874700,1861466370,2496133103,655585633,4076644104,2559131436,1934018655,1427523837,986029638,850656530,3630395051,4293906957,1250897058,795963740,994779959,726176299,3713897245,3036660507,2582498002,3873587639,1587204665,4289011848,1754551116,2840443302,424122037,3196516501,827053651,3767725715,2862725391,1534703138,1475753352,1341722340,2662297946,3872870493,2574206018,3825835884,3890502061,1568241824,1191884197,1892206555,3315931036,2933965585,3315826722,879677358,3537403970,2349769900,465701152,762190953,2263626943,2915076891,4106281231,2096113342,1848211274,1229989082,2308282192,2644406572,94110882,1843932526,1313813981,1533640860,3158393861,3820401123,2220804832,1960339385,2006615828,3152765363,1414737076,1665132874,163713574,1967487240,2594117886,1735708526,3108050700,2931291586,1342571822,3326581718,2250559626,2923672790,2199831426,2416691483,3698769260,1925200553,3911735869,3779009456,108687208,3368456398,4132269456,1212495336,217223177,3956505934,2464447408,494383527,2398993400,1304717617,2493852901,376042366,3100069525,1676869706,2606534480,3088315159,2349754607,2429216790,2498372891,2981944103,2073960348,172851474,2585268245,2575508978,2012420454,1067322218,3465579083,671507052,4092315641,965225513,4200154357,3898390895,4034937703,2168921843,2238490068,240354050,3908090033,281370477,1036845439,3780600075,4227719331,2380814374,2844615593,114583484,2895607329,3135319448,1703004427,1049498245,1895852621,3058403450,664907808,2857865678,3295196349,1103595278,2673952450,4004718790,2243850032,2541506500,3536529370,401604220,2358876588,3124888074,4146817992,1589347684,3810211529,2237093748,333256224,996678178,265570256,1675905124,3899975418,3598696931,3376500338,2960037598,3051363436,4059141532,2540157939,3387378465,3879063818,1340284509,3177440236,2283255282,2366739751,1605537078,4110060624,3882053982,3203754374,3211384404,2639050723,838313104,2914772797,3781342469,3875948157,4188227423,3231797596,3778424639,2767228566,2288098215,4094808156,1464054785,3136851976,3314497831,2236679226,3528588336,536081669,841622251,4147668961,1474339463,3933564581,4065566717,2819948231,1398629899,3862463096,4228584233,2833422854,1857704545,409686080,221868677,924283749,1121803536,1650376078,2641553043,632673491,2054328700,830010485,2647985218,825504792,2838457969,3262212887,3317820488,4002849930,3259642403,3757093572,1383650494,4082220412,1740115275,35481935,31358480,1182841859,4007747132,2653826681,2143245548,1684308990,3167591685,3848993829,2350286875,3702723819,610323232,36509038,2372091334,2848348531,2502779808,23293977,4082203215,3050956482,3932465774,3326878925,4126863284,169955916,3667172691,3689314315,1368979788,1872399121,522501103,1873596477,1599822759,706030222,2855692999,1986787568,4103863205,646986742,3383122294,2279354247,1845849854,2252585055,1687106408,802954541,1118013551,2727299993,1232886387,865955161,2224326058,2716244867,1007681479,708392410,3538804766,2322057079,3449840426,2832513032,618909176,2174812975,3705874673,4250689000,1640840503,982983038,1265608181,931234288,1304510577,2654698237,706923303,3283393739,3502889317,3034898412,2472806308,423647686,1715211342,3630199999,3491457060,2001964616,1851791302,3679575346,4271836501,849556059,3824839141,2294539525,3863453366,1314383071,2059398556,573682535,3801341431,3872576347,3911128960,627449608,1820930090,318052449,1756084463,4115125408,168154633,1393006666,493222483,3539669382,3833924353,1366748266,3672186918,2370998257,627825867,3944800511,756722478,1147821165,727689870,1521052032,2067003499,2323436903,2723153107,3479043648,4180885590,518008393,3751446133,3199312796,4041157323,2848819507,2954979414,3906150224,4244407928,3783369368,3675406736,3841515506,2739653781,552717235,1025661443,3854533741,1718378195,2562391229,1314860797,1749048766,134038196,2417871462,2706972877,819410676,2969012927,135613170,615789949,677949863,1687885071,178963761,2278273219,1887934300,1373813175,3923363316,2624544083,147125187,1933389856,2634935833,2604496147,4024436931,90608338,549877160,252700778,732075404,3938759442,4153188258,4120935318,374469956,3834070697,1578495831,3302254896,3781344380,352985775,3992266252,1965051338,2127358253,2640179744,3674655355,650481755,189157712,1822852962,3417805636,3074301547,3946953825,1987625952,3652032217,3784721789,236510888,1490254058,1210034970,510334099,1704267296,1862543292,3328844503,3987195338,3520029620,3370847469,1849982920,1703900569,3909985290,3575941585,1661312771,3058262451,1374242521,2957882992,1050911533,3476425593,3069769603,3223468560,4055236975,1185635372,3917033392,1074797183,3524909866,2503802039,2109912382,1168715681,1641290365,272275743,1472178944,1150800096,925689170,618411492,1494853835,2010222281,2909690266,3360312155,3005306734,3012289871,2099664941,2469373568,94780646,3678513162,3818981944,2042178902,2837533512,3728298455,3029176076,3038795330,773257670,804414385,1939440934,1810653300,2537850179,4123084918,1706378020,2468526015,1279911364,284546991,3847492854,374925431,3906151118,3848104475,3362881321,2833484079,153760497,2339549979,2307351637,3989731094,770656725,2811196434,384246054,3437165992,983216688,50413154,795644448,1022997861,3966237466,2858953161,1820916472,269422489,1913077174,1210770939,1407528813,841068448,3692902510,1914528763,2567325231,3590551061,3632105290,1878553608,727709393,3867563853,3733765200,4267079006,2105456043,97889853,171320949,909452689,3084718370,1071047848,3532920810,1318779730,1120904214,1572629275,2576835721,3303505890,1967332331,890023788,3038369639,3685441891,3745205445,1379298681,132183564,2022475396,4076255064,1535562159,2503210500,3194208216,3288956475,607042679,3086112905,2214951652,767092568,1471820569,3023283857,3890488734,2268951532,4087144200,1398958858,3897407019,3448978503,3728111699,2985627330,3569586337,3890025133,1607726788,2160525708,3567579743,4275417866,1094865885,1867301891,3782971279,1026036278,2403566154,637766282,1747146316,3942782303,242595144,2926201981,215075541,312832114,2667051066,3192918928,2739653818,2075781169,2344549947,236411534,2393178933,1115752390,3070170831,2439231241,244530012,3535666182,2334115236,1108097601,2203164620,4179099785,998989632,4283290210,293156462,4289286117,2300826059,2992133840,100444731,1214865846,2851413859,546562559,894492084,1719729608,2705872214,1769576179,2414457986,2080307436,2940878670,4098196356,4110458373,3414540605,937995486,1337646799,3926163919,127256278,4270484339,3596950935,3279145628,1057937038,335088146,3559723896,3177529052,2074895957,506370683,4176055830,2918128942,3507450388,692921026,2340633962,4193377215,948543997,1234566496,4124471530,2798639562,3264276361,198863268,50052965,2145420785,3692494714,1422993981,181725020,146875927,4090739187,1173885148,1379221761,2600302336,3930470046,99815774,2014234458,1455403422,2180528331,1337370856,444754775,4147791294,2860564546,3395740815,69363122,2412390228,3913079236,514696275,510655907,3184193707,4168296207,4234029687,3192039267,2813204328,4143705350,64840924,2407079672,3567682728,2342431862,3663329097,2052169690,2144320187,1540212895,3876102311,355924222,3151757740,2746822164,4009194902,3695322390,894361035,317240763,396679551,207293992,1862215920,3069979873,228925238,4030010479,2436155135,3691006105,244233629,444833534,3036175099,983976111,2152001847,763668854,1022493864,2591826558,918364387,1028202286,3296444974,3427425170,2377583764,2193247481,4277255026,2949883433,1658047065,2026796522,2395593106,614267625,1225126901,2340813063,3322801491,1453207582,904738429,525190745,2589421071,939308137,2326376907,3432066168,3433598105,3569539567,1159700554,1211286557,3604849986,936668460,900298140,3223583398,3323605639,642465702,63693000,2729901801,1226082967,1562604322,832631157,3400563231,1842619007,2717919287,1777857622,2829473444,2915783265,2006599285,709657415,681295683,791553360,1672742404,1405737573,269917763,3227934437,1136581548,1588480856,287869402,2710579234,533433792,1929942528,1904967478,2722182989,687321423,816897102,841730493,3330444070,4101377532,3179423648,1597253088,2031902020,2280812460,3292484407,2451459712,578913229,565675053,854975012,84895465,1741529472,239833709,1755454087,1388819376,3702442712,2533172419,3837153581,2050825739,2120304916,2599653769,1312985988,2454269473,1833353545,3656841829,721827660,2322962207,3935254687,3706219629,2130481124,2570592131,4164950822,1922075960,2662172529,418506033,4253375422,3762012439,265669556,4177505994,2313330621,1961902735,3296404393,3654745962,3181659391,1764074848,1757621707,36700082,3808280901,2061868693,3183822821,4005555697,1264841562,251499354,4107700063,2617202980,481572066,735223389,12051983,3316362152,1830218096,1365201863,3896216485,2956054317,3952117866,842383544,2929067619,2225570867,1844437183,3808271348,2529500379,1733097047,3955412363,678326762,1459982333,1013746563,3094025727,405437309,1304921924,3330822863,3096187382,1149387853,1453807918,2418552447,3511775018,1239017403,1971395742,3202298702,3632227370,2517605400,3133370195,2431004554,2974771162,1155313128,695928556,3325785879,2998308593,554282239,116589782,3293603457,1781953195,3950961850,1618268603,1043868684,3781664271,2212314716}, {3998721891,261473506,1001189902,612414262,3065327604,3432793928,2865008640,1904786775,1053039954,1687731060,3874993442,3566799938,789291664,3195014159,3762220865,1475306327,1403103952,2273486707,1581262144,3927954773,1662017534,1288286356,107723506,882740674,2297398372,2844597932,2913801433,2627994388,2909835930,2164353591,372561881,1775508236,3010969514,3184555297,1879955791,1611819724,973609019,1497195810,2722856984,3779203167,1402972516,2414786618,3066507463,2384838605,2105242580,2777262616,1038443577,52219654,734139765,1024285707,3566394191,851758368,1314960668,4011739725,3981771672,1997640514,2172072172,1616377324,2257789276,2931938396,1140443614,435600657,3708701548,1320910583,4103630132,2589321493,1751837766,2532573992,36843703,1418199030,128771586,731498950,1912071534,4108929291,2436378070,2694158011,1705611583,1092152189,3701949792,3225094672,2091708471,2354074841,3802659120,2950433377,1317666928,413733852,1842067465,14432302,2302290419,3567893022,3888513805,508410589,2977975755,495075877,2978682599,91838980,3014624794,1822305812,1304445235,1869127893,1881278552,2818628833,1289168434,2240051118,4095037401,1794551462,1523495381,3918777876,3051173718,1855166204,981490105,2700481643,4018604594,4002684045,3897704667,931649397,2453705793,2036994091,3093263966,3224911792,1437976946,2550531202,1017798539,3386148933,3212250505,1340495406,799496601,2015981939,3593554126,3655133727,3276965868,160209147,1365180706,3571811534,1510759137,3009942340,191090166,1039651386,717020910,3661800789,1237071895,1359909207,1847332609,983856903,2873903134,2506848468,2045243943,3721431184,1970880301,2255248775,2101418225,2015930536,3285581015,3294279103,3947751815,3937260610,1818438228,1663039196,3232585137,2658059633,3389841344,3831396875,3082357613,377374961,3204028191,4203781799,1813279063,1788962676,1701620764,3008158081,885427870,2704602867,2057087301,2324089788,1073152630,510252955,1901411791,960022525,1557221096,216184822,2682246622,1481850702,4136912733,11675056,1467401190,2386203462,2526628535,954631595,334104771,2881480091,3008040176,3929799941,544968,1391373034,2258570458,2370481086,1844927168,4224928174,632668826,2719026190,2206551127,3784031094,514909466,4209184626,856078606,3574495284,2663078403,2383281668,3607225588,2950237171,3195234206,1585939913,1117996569,983850875,2143584425,3241657542,1105311154,2314770198,2676501006,1191726452,3010510917,1005665942,1931843267,4282165883,4262644260,1137800014,2023298271,4244063622,253283177,323086113,288793250,553069682,1028014588,2304536269,3591409355,67921120,2023856058,3476579437,1210817738,991295602,2191553894,4253370406,4261568187,1709666055,2892346277,61611239,3230697759,2201076595,1358679039,935153889,1922395215,562468123,3950821954,3321562505,1478904171,827737617,1862573179,2427578178,2889831197,289413512,1410339112,4066787317,2991500219,3314752519,573521328,4204193415,3322077317,458051370,1416197481,1184740653,2352022902,4232732547,1738912428,500561716,787765407,486395946,3402069589,4256602218,2753492410,2022810859,2924640064,1086402323,3952633971,3195433266,3253535989,3842748768,4260440814,3666196989,1823461691,1682803841,989066528,1966216960,3277624703,513216107,1655927832,3689291037,1313755788,92371392,3858407463,796783209,1036111329,3111021572,696089295,3689465542,1813011310,3405684317,2466197057,3562216411,806056804,2366947631,4028423184,4233028606,3297170056,958597297,406747750,2871357295,3037578646,3598162395,3131090540,618379439,620486113,2209652916,82066623,623825156,571736178,3293628090,1784654194,564604110,205473044,2681839526,360030068,3507659456,386706351,4019823307,1984825239,4186778293,1144335441,306288032,1867159791,1111042231,1543070587,3857729525,3934317972,3306016589,1604161444,3484029332,3070920684,1272975469,2374737042,1305809786,3737736002,569462245,3398209561,1166956578,1234982896,3031105415,3227568961,882141467,2055670589,2918611679,2093511417,896961966,3928740220,1757648,4026610457,2254901540,1165898504,1352290179,187362866,4156106,383759465,4208757866,1336124464,1266477011,2434060977,2251137723,255672652,3678988145,4180410658,356889732,3448287316,301733322,1407343065,899718948,3639376248,686562414,1963659686,2379059536,762879604,2030173389,4163320711,3962478957,564133905,103778337,2253378620,4167756519,1932080197,3584940676,2468743176,2439210256,2737666461,1542134096,2564295925,495114325,1534747697,2961001322,2557592262,995313554,3038207118,1437944058,758460244,3873559663,3164497855,2231550547,3655336085,3462175205,3114447943,2000260999,3567233741,412201809,3903146340,1333223098,679099502,2813014470,3377845820,3011802848,86723318,1038326912,2620658664,2334233384,2261049756,2652770820,2036152788,3513085937,2475769400,1248279031,3942899135,2683258492,1923545044,3703809391,1089832280,1900048085,3343292760,2253337339,332187252,3747719357,4123331584,4280214974,2042938431,780868709,2591364184,4226049534,809916953,2999530517,1112955919,979447334,3712068843,2138179440,3988257795,4165462896,213567247,3088514430,601393107,2905530590,4084813134,3100448965,3910869530,1314090900,2346654015,2304751538,80524326,865178694,2620360696,972245573,2313610025,276062805,3220473631,2173872993,3879640026,2783116093,2903907021,3675588174,2883472155,933157256,3593713369,903620619,3720621913,4046345309,422034234,3695910972,3747465122,2852027210,1562251528,1144722163,3290056692,2376937298,2606588340,2880858076,1765712693,15454611,4024662007,2324736698,3975408478,1792360341,1371222129,748791198,1809609083,2001550106,4235669240,290371492,363008220,4179786095,3025347537,410153445,852586944,3817290070,4136941682,3547043839,1470863673,4059443263,4041579201,104386640,1834531563,3673006180,4220529780,4263921412,1889914158,601984417,1372362517,3930671872,2450030924,1401291538,2823498285,3414205253,3908802482,2282022617,3848669451,717811342,2353189157,233135465,103867468,2352988595,2909349749,1962951227,1107169637,1432173207,620232167,3818385115,940918328,1644609695,2430116585,3582894470,1923378421,2391908645,124123938,714970549,4255392606,3051426327,390274722,2438923266,3164139577,2242347696,3028675305,3298590446,3906342732,1448937640,4252771076,2537862398,2809238200,4240535036,3531256977,896920339,4176923534,987099947,4287976002,518725387,3232158075,1850040166,4291609578,1078672830,1162051740,2989439890,2630105268,1260158713,3902937877,2504144362,1946817116,3089038191,328356866,617352829,2059305020,1443417557,3484573984,4101941829,4197324997,2869610313,2252330510,907633133,3183140359,1391642824,733803175,1922790177,695033213,2605915264,789505763,2627998272,3533749320,660053712,3666349303,1949663823,2170538352,656961950,3988040529,4197820636,1673880873,3097120031,2528721884,20390284,3518793778,3742704986,1236629938,1789054203,2094644000,1935407990,575913557,1204993065,569726227,672699856,1267718785,4053259461,3155099844,3054328832,127239037,3767838472,1474984686,3979670143,4218717572,2499033997,3973218358,2176748634,3617419990,1039910373,3749774621,3178443967,3321324851,1034620525,424071054,2964075200,4251596951,1849156037,790811820,2885583760,1191332820,2801051704,4246037889,744006283,2139783184,2126670643,3508597835,702828779,3438601553,3043284123,3690252143,25188825,493009190,3335718864,2266910155,2061328125,3071519311,2638044642,3892913595,2614064401,296283348,4172231588,3318244120,2463098934,905505717,3268068543,2381178307,1483176789,2012266910,1538384035,1387942136,567560669,2737269189,1888202422,553951201,2154735170,3092440758,3254209489,2600615516,3968596066,4087365199,3899339322,1440527359,3270343896,3082767079,4119047580,36589537,1699015509,4178621454,845781863,315168812,527292793,3639765674,898496036,1314745493,2581297186,2464456631,3109358064,93015905,1773177953,2733108095,3535249986,1148269927,2196229456,125725439,2423372839,1624927027,1823038900,2334434843,24468490,2628413434,2013344554,692904275,956568501,3519218229,3061959736,4237480579,2522237808,1912305322,1039313952,748268179,1532194364,2269143268,210871162,2476468129,2464589069,3698153005,1308762311,3985756221,1850518335,3616336376,2179820358,3360212252,3997341338,1354904181,899166516,3165675382,782044827,2273506362,2102221386,3917530953,359214577,60836023,3700330817,4188128948,3783161646,3262566030,2874860193,17134999,412690228,4229073489,3402728698,1283437732,1537209646,1146657717,1009986372,2891654148,2319372533,1477799193,2414911425,1997357918,4057707501,3335053305,230545354,2272084451,508800835,4206726634,1758423158,565995664,2988103096,2939909047,4246183927,3813578359,3694647685,623196665,676366217,306209255,3746468829,999963767,1283059178,1374407146,1110399974,1411518690,145174818,257999192,1349719189,3805810622,765427992,3278929117,1567419925,2942151521,1866043527,3723214032,2395661970,3846688207,878556338,2905511805,2981769274,3973022295,663040588,959468082,4131867574,2697396096,1159571956,1660618954,4029354614,212424098,3339358536,1619635168,3922142335,4138647720,2864342036,1112279242,217576109,1607127019,4206940958,2990049423,3893262889,372442069,581764553,1643953641,2962146201,4253529262,1936562532,984338095,130166038,763178493,3130982482,3508313813,1566033375,2272810879,3698699643,460496014,472823634,3411822711,538912170,3179390445,13761627,3817139234,3772845490,193420095,3227831050,2576458837,3795809480,444605404,2076357681,2395098522,683595870,4062140569,2734264429,2378760145,4123198582,4266448493,3618770539,837774345,887153916,976099684,1678067132,2260399460,3404368918,424687018,1718589146,3892246565,3787034123,3065349973,2888948252,3463208025,2581114678,4104485161,4023395690,3018664126,3305501777,2518501818,181281961,2932615099,2621024890,376811993,4144537202,894462377,2597146541,2778528874,2129009501,1354075684,2509946417,2874157383,2289220214,725675704,2433343540,4097832362,1771366788,784982230,173637733,2477640123,4156762611,2194544176,2937524071,704795476,417440611,437554445,88646822,2745700912,771840702,1317003949,1029078315,515897759,176525710,3987782391,3632243703,1855826382,4276295381,7874842,2841778207,3640668114,2558711014,3593784321,2829404276,1489805387,3135623329,4154177261,3221666753,1882387625,3438844507,141858140,2133643826,57787512,3336116117,4186331000,3662401780,7383330,1035598836,3962393821,3138824918,4067360196,3050120625,2273923570,2123292175,1678567123,499053224,283665434,3610750193,1424196139}, {2006720584,3275864680,2943273920,681842044,2396696574,1583711613,1632044851,94161397,269856992,2996498300,2032987490,1766621356,633105450,2219212403,1270462032,3136656509,702239130,3749274641,1872865811,913094155,3277200679,2052539884,3076478393,40377753,784645552,1904132170,1936332969,2064035904,3244558649,2857117627,3181006975,1628477959,2095203085,2961995509,3118349149,1570432661,2664238682,1239849990,4162314545,3958964517,188719664,48424876,613545554,1360286251,1367919479,688726707,3046597537,3670877999,1151056329,23596881,2759500394,368272310,684795353,2246919924,430256505,3926035324,1372068296,1936672805,3420957575,3035998730,4252816115,2095210892,527053288,902041106,3099062373,3748587518,3132813458,4117838508,886294277,441073748,3089213071,1158939902,3814883967,1058908486,2667462661,514535663,2375563771,2790485992,1829010763,31682784,2637964520,2693394765,63944809,1405669382,646212606,2828544308,1472197160,480984325,2218089182,3032956646,3216794298,1987292648,2711789547,680107441,2292656633,1685347816,3387401042,4115210575,4240029432,1890517388,4230921898,2003667238,327488245,2801759016,3815068250,376155944,2939962025,243871762,2547473676,2384282529,3808982767,4124124324,3929728486,2335090424,2567264782,1578171801,847600910,2362937599,1199062114,2798111406,2677235312,1985607360,1279277202,2386221220,2073326308,2851339178,335489952,2362726302,2765585442,3922772350,144189007,1154981494,3587319461,98059100,406948092,3466474629,1278035776,774792122,1360779519,209832785,310114636,1914179472,840802851,3517472873,4244699973,226454260,2320324746,2351224998,3555395070,3135269387,4011874447,3005884499,1845389038,1666602080,3233315596,554982760,4032666543,1825004446,3838212426,1620118583,3839772883,641859682,1544162802,2073931654,945018313,263345324,826588412,644965550,4245142393,1863748949,1616223632,1395010602,2647268606,3241522360,4001822398,4109121234,3045485335,3288314011,1613804261,1861861882,2410050702,156146051,1080177640,3576670048,3527254803,1830879750,1322994156,2549572036,3274541093,2848113058,3991941730,688272192,347881356,287228287,1784459748,4129508806,2665238533,1773340177,452673343,2480787439,273269429,1733954553,359371320,3627644758,2411231301,544663154,78969533,2434022253,782817896,1629577313,3825329257,378659812,397932853,2112931677,2893799842,2035169743,1522440549,4240049380,3078336242,43741877,3830844256,4133801598,3512106737,4050031171,1012504323,3406497545,3732852091,2859885225,3214018966,3995317168,1809240122,2398741187,1694742605,1400333973,2789625942,1256831003,2403844582,4125018864,3261528404,183758335,1715067394,3518861690,521316523,3273111691,540730442,2480019304,1508444278,4126506141,1135318119,1737996736,1041920598,1261364450,2369977278,1259764846,2037100731,1727739930,2358213477,93640863,3484157505,1560775394,2767675682,1640408817,99923676,2263467697,2102610102,733533479,2566288178,133210248,3636798502,3981585742,2835558417,395522043,2641587621,1719753159,2120086460,2256797533,1355046459,397394513,455573819,4145608702,2128219438,3021203389,3120108285,2244731798,1813309709,2801478304,2813290680,1122428760,1022919270,3264465493,4007355670,3348469835,1841009271,3982044909,1071413443,298529992,2643833091,1649111725,2431090083,926474051,2921426987,2234064461,1882761060,1557091641,250523233,1350719840,2583227821,941567052,1852896248,2189983713,759783335,2635666323,2486855431,1074652093,2156352860,3764463666,446283773,1237363560,1963889400,3230360769,310138212,3484967119,4137761831,1041979975,631973349,1085734891,3415590388,1746620725,2270861546,1366225915,3209003159,76873785,3006663638,3003434520,798544495,3944192429,3682233390,439070284,1105387584,2561059041,3211622241,3492007457,335116254,1821192566,197499370,2461878156,263070546,884457713,1526771377,200321892,2270877561,662170810,1607721771,2104652696,1772955408,1876210382,2819478849,2073909708,1701480161,3508642155,2471804218,3928130306,1425798356,405322937,304575757,1405785866,1305507546,3167949844,1093164875,1734031669,1097415174,3220655285,3191337917,2584862190,3889579785,2913214300,1121192499,2744850823,3846091693,595494013,1322523016,2535715598,2119631414,455580807,2674307330,1528805792,3371733750,5633310,3455333260,2034277444,1342125283,1423347513,652879082,3697232965,4215407803,138694056,4003656789,1389467478,1892649665,172464590,3360654270,3982765523,1181994740,2144621627,1890356717,243084933,2422859263,3174132769,1564239755,1711508584,1335710886,3911854915,1266893972,4020395946,3710628856,1663292358,3927467634,1440383395,2593379504,3954512257,2999120471,2720061363,4209831403,3402247689,3048562576,3120689388,4173415937,178455803,3746764911,1690354790,790924706,2952048395,2124425827,2198673971,278711430,2685618863,139008393,1202591245,3821064689,3922221290,2444129646,2123419764,543430138,1826709396,2026218326,3463204852,4120573083,10222413,112655964,3581100701,3774814987,3884383074,1863919587,1769689549,3236010848,2701889200,2014503034,2331455068,2017959624,2811128622,3761463015,242609073,3701070724,4069749337,2100371922,3964768890,2090351073,3687464941,382913096,2276332349,3358174456,894929774,3589489472,869759303,3487066733,438919667,3788804159,3707462390,1723532059,3172645452,2377290357,3264101792,808983695,4117024054,4132385694,1959714632,2265883377,3204615594,2013653728,4227996604,572083046,3744870425,3267216298,1738114226,1216392526,1053524973,3604919943,3340149648,3417768939,3721629502,424336859,2478748993,887784685,1672192617,832977291,3710927483,982587665,1191220689,659543524,669300414,3811192075,4154726246,2671131729,1961233605,1820370275,1531818538,1715339014,932422391,4171925754,3008000953,4285287277,226567095,1157932467,1439824783,3740105776,2820030045,1906711855,253858865,2618325181,1454585025,2477416149,3991831636,3850787568,220882703,3009918122,4239819347,3591717240,1493402350,1482075112,2782396904,2887038551,137109270,1923495203,3882749720,561256637,1243879831,3493756684,1310081471,2028199097,3509094385,3860736612,985847568,3542399630,385271151,3781018514,1536000626,122014706,1766539405,2289542165,1591075388,3886773332,799521394,2650277,362704044,3086014059,1031448255,2571581875,3414978468,4084971900,2048633684,2106431847,2217336510,2661254975,2764018658,427175087,105352352,193826873,1867426078,267032182,671824341,698114104,1097354581,762342888,534400243,101891434,1683344659,911593815,4013658379,1871555641,3740033419,269647663,369811181,2414612916,776791219,2118011963,1772246194,2160244686,4101097934,1124488701,4125147606,3597383113,3866782920,2767121017,2224757888,2743716947,2658858862,2799031380,1887815329,776845965,3789872128,928712402,228701352,1211688741,621159604,2153616377,3717605558,3836899899,1495157062,3873729591,1594175901,3338685545,3309809788,781156213,1336126928,1866518586,3110996058,1155198550,3416484677,97287125,4023883495,12113086,81637234,2311199879,3842161753,1120945825,976358302,397605844,1410707452,2265347573,3567293687,1205584765,1037933729,1872398824,892744664,2014617224,2438456152,3455781729,2487873313,1754332588,1663593016,1597648832,2104871679,1063020296,1920564293,3542504056,1240921289,1744867492,3462337334,2313268390,3986400624,4280029581,368096917,2167158692,3422108463,1405089024,219114238,1869201593,1619595595,3196209893,2609215758,1603733881,1798459256,1473835126,2621667508,1182907355,3503251412,4011994009,2782841097,1165531681,1771912853,1350625913,1666280316,177299816,1044107306,438022487,3009404743,55279866,1745215105,597834134,690054454,4102321181,2968185387,1601627646,727602310,2101197765,3864430615,2641610802,1145292275,3508810427,1237722549,1691314579,1495228504,3078810324,1686697944,1767446032,2990625496,1753196667,2247215482,1700746662,1185453962,2984983598,3655058312,1422578057,2339534273,1978194280,3183197001,1166946292,1041406975,417598422,1768121061,606722228,3584293089,3544080316,3183142659,1826454411,3196623397,1704265734,133284363,3580317910,960641132,1693093531,193871131,3316934036,691254467,1734046289,3149346696,2606969439,212698927,1290637750,1410534512,3003168519,13748356,856866216,2570774131,989423725,3219046313,3412732359,1926664174,3844940772,957718829,3627877683,3106867648,2936797534,3046820966,1863322183,473737609,4285998448,738840064,2967289028,616477974,3950359850,1721993608,2366094350,4293128307,3927913509,3235130971,275599099,2192421886,1436561669,250365971,2175176224,2412396521,3291222015,2906810930,768492929,51148427,1595753094,109850442,1507665155,4130945353,1659317245,4264031449,3629441437,3676035936,2303086791,2001792800,3385560090,4276658243,3828243122,3119894267,3686495659,404131502,2944437561,2764730047,2585888871,1401252583,4189273516,1192973104,3513185643,2628957428,2513301877,4008950039,3139670770,3083340392,2338453760,2753895521,4081351765,661807713,3261515114,1096131703,3863554421,3783797551,4240539469,3309467958,3452717580,4262390516,1282519311,3065613687,4001353756,744775697,2019967497,1552720598,963529300,934018063,1757231394,1222294743,2750042335,218147545,1678033941,2407362700,1801700268,2279805328,2568436442,2942914734,1078059857,3901521770,888423141,699867687,831448810,2204166662,3722179548,16291258,3391097693,2238889055,1406403915,3829894237,2166003334,1126602772,2177460833,1808845887,3785626059,537024756,1176360985,3216813700,849290953,3844443905,2703962327,2898211828,1317064801,3894648570,3399136019,3329462722,1137345738,4220332432,2005880396,902361600,2108431297,1518479234,681441429,1431056345,1594271152,40874356,742589635,3343621921,2290986259,3578334019,3322022464,4101903631,2436176288,185946666,2374720358,3921314410,2726157418,4184585745,4000423895,3546339190,2308192088,3149600414,3464402834,1419050373,360456161,1196347548,3846509121,3052579735,3126592140,29438943,2859409587,4138480607,563255186,3956632549,3835938018,2829365723,2553449492,2121105586,291913834,3200588783,3502747252,3777424423,894406310,2513415545,473282970,260457270,3368237318,6192649,2982835529,2127026540,2993716328,1221715622,2089624162,593260063,1751443295,737729971,1692343000,2446899318,1630744629,3504839623,494263462,2481798059,2925721502,874593085,1030394755,4210150343,3530569558,2840168223,581103657,3024175208,1108441929,3787825481,3265324281,2626366360,1857535788,2070328543,3522410732,2194933756,4275286427,4145609378,3942083235,4151897303,2061629071,3865265683,2449024803,1985723306,2607949325}, } ; static const unsigned char precomputed_decode_953xint32_s[precomputed_decode_953xint32_NUM][crypto_decode_STRBYTES] = { {133,252,215,86,40,156,237,79,143,22,155,233,12,19,159,225,143,228,204,90,101,13,119,223,247,30,130,114,216,36,160,66,96,183,174,17,220,146,198,176,157,60,179,87,23,215,191,55,229,22,35,70,141,229,206,231,228,204,129,47,28,10,191,126,30,18,251,130,114,130,42,245,70,218,245,174,141,181,40,180,179,182,88,85,199,232,201,154,61,2,62,252,118,2,79,8,229,108,123,112,217,210,137,240,180,89,93,54,113,12,160,206,24,193,125,72,239,211,123,215,117,101,188,114,225,48,70,77,124,13,221,114,75,100,43,184,157,211,187,145,164,200,179,81,167,36,134,190,174,189,86,131,191,240,175,165,103,26,12,137,7,201,89,68,50,2,166,83,3,231,119,221,52,109,70,233,76,192,203,108,124,246,154,196,121,253,29,54,215,224,246,238,26,93,92,120,54,226,158,251,219,103,132,251,245,119,8,181,157,189,68,103,2,204,4,226,208,196,136,197,88,29,135,29,105,75,11,81,103,33,54,185,98,179,16,142,203,102,74,8,7,32,106,206,113,92,32,6,51,122,128,7,190,50,58,184,248,157,61,148,160,230,221,14,154,227,226,120,218,182,104,173,157,173,219,161,62,53,189,37,66,78,40,172,206,193,51,252,75,179,9,36,158,34,44,227,30,237,189,77,243,68,26,106,167,37,213,138,52,96,220,115,84,50,25,232,131,177,115,215,106,211,29,49,195,106,214,198,62,1,40,162,244,148,220,43,100,24,81,64,80,144,52,216,146,134,119,218,67,213,79,97,160,152,231,74,194,24,2,141,14,49,248,209,25,241,151,241,175,57,30,199,56,43,83,61,202,173,114,132,21,155,215,114,178,74,32,37,59,134,217,178,125,140,113,217,202,27,59,146,181,143,48,97,227,192,66,95,130,6,63,77,81,20,192,39,113,5,160,189,13,22,102,86,121,225,31,147,76,30,153,94,97,240,174,214,197,101,228,120,233,121,233,111,233,69,1,100,107,163,185,189,37,118,39,10,103,81,203,216,255,123,49,151,163,36,154,52,49,181,10,51,133,22,241,238,36,28,202,120,199,38,216,222,187,169,127,201,172,169,66,9,242,171,231,31,204,108,104,176,153,224,98,88,195,155,134,94,192,155,247,160,13,160,142,20,74,141,197,104,176,113,174,227,98,79,73,2,107,0,89,228,247,3,193,124,163,219,186,226,124,86,78,29,65,112,192,18,36,149,176,44,244,5,19,157,207,5,32,177,173,144,216,35,221,70,193,169,70,174,13,106,79,140,173,161,69,111,33,130,237,163,213,10,40,203,222,57,45,66,21,52,37,172,59,84,78,244,68,190,6,26,145,216,84,159,109,32,240,165,251,58,191,62,72,20,253,149,216,246,23,185,120,213,156,240,200,83,247,103,165,23,56,44,191,190,5,94,57,118,182,81,111,114,123,104,209,116,21,55,199,145,169,149,248,249,17,167,173,98,40,154,140,165,137,27,74,236,68,126,231,6,216,38,222,95,246,141,4,234,15,161,75,42,136,175,34,68,82,110,215,213,60,208,163,198,69,64,155,211,129,5,55,194,184,223,14,195,65,209,27,57,190,235,35,83,213,140,90,254,91,66,45,188,13,5,77,132,13,150,178,98,94,219,254,75,152,101,85,21,117,78,212,106,195,75,82,181,116,93,171,82,63,96,75,26,154,192,3,227,179,233,14,93,137,144,215,64,35,50,60,65,129,38,120,45,49,73,226,74,129,191,116,235,169,163,167,249,114,75,41,53,22,250,113,100,203,5,255,205,187,64,17,123,200,178,36,16,93,13,190,19,53,214,19,168,171,208,140,18,150,253,140,163,18,133,62,252,238,54,216,232,214,122,83,28,231,154,228,108,87,73,36,71,166,186,240,131,27,219,189,101,213,120,120,12,205,97,32,134,215,51,147,76,112,176,134,144,19,83,69,8,179,13,233,33,161,109,162,170,153,210,4,242,3,155,49,182,192,129,118,200,220,163,165,18,56,116,49,48,95,202,26,250,44,226,22,89,53,98,168,124,72,151,238,62,183,23,27,57,143,14,226,174,113,246,171,51,223,127,174,46,99,49,13,155,134,165,56,67,50,182,225,162,169,167,56,158,183,232,28,61,191,99,50,11,12,82,89,121,97,240,130,211,147,95,235,174,104,89,23,71,76,155,56,25,82,128,216,179,159,57,70,211,111,39,215,140,211,180,18,135,2,46,42,60,254,41,54,72,243,153,154,45,119,142,166,28,81,229,84,172,240,245,33,31,105,72,99,42,156,219,115,14,165,123,118,5,89,0,26,22,197,169,198,209,102,25,101,50,120,45,243,219,3,219,91,174,69,196,153,141,73,104,182,102,251,235,32,19,233,181,63,233,41,244,244,92,82,63,74,17,147,200,173,190,206,243,254,59,166,28,184,91,82,229,220,39,12,212,125,133,179,142,46,16,169,75,2,146,59,140,87,74,103,14,147,147,15,29,103,227,7,237,43,61,160,34,158,55,167,98,235,122,191,80,179,210,109,67,132,134,245,25,22,223,37,169,197,23,58,46,130,201,101,183,28,190,31,118,165,33,244,204,89,179,245,191,167,46,67,138,205,255,148,235,198,9,105,71,1,65,190,159,200,108,225,237,222,109,181,206,155,172,242,146,195,212,234,254,171,204,50,32,175,22,214,173,14,100,186,48,201,251,141,53,182,63,46,196,229,31,167,19,244,210,118,34,3,53,117,114,106,177,146,111,62,160,205,94,120,192,2,253,236,29,96,45,152,70,194,73,120,236,242,96,96,222,151,24,53,217,249,61,146,123,191,70,197,93,40,71,226,27,191,216,71,250,184,230,243,191,126,59,142,175,218,240,112,154,33,87,78,16,233,20,121,111,246,33,142,247,118,105,141,238,222,174,220,200,16,152,252,182,241,170,65,136,91,164,230,248,75,218,193,109,66,206,199,221,250,131,122,184,168,251,194,90,102,107,83,174,191,90,167,46,171,120,78,214,51,104,46,66,78,225,174,219,93,159,96,83,67,91,11,141,113,219,69,93,116,244,52,25,196,227,85,148,246,204,251,168,84,212,247,51,92,99,67,224,110,75,248,34,101,201,71,145,120,199,248,176,104,34,111,203,132,200,188,180,75,196,12,188,121,180,99,52,97,154,251,163,100,102,225,122,154,247,31,67,199,75,38,175,139,27,3,186,92,115,183,252,137,9,27,179,117,231,171,58,82,13,142,135,239,247,204,212,133,18,116,218,56,67,160,35,190,212,250,197,146,46,255,151,35,50,229,3,148,26,213,107,23,171,20,17,22,248,0,232,150,205,217,203,65,155,40,166,193,17,141,123,10,229,215,123,51,189,184,66,66,122,156,190,67,33,130,249,108,161,103,140,18,73,60,187,105,206,130,23,111,222,163,163,88,226,91,146,156,28,148,144,241,152,111,221,67,178,34,243,102,5,253,209,143,231,98,139,224,60,145,194,116,77,147,47,215,231,237,45,141,242,191,204,94,221,210,133,139,186,94,155,120,10,24,169,187,121,18,58,66,216,113,198,98,77,100,178,168,221,172,192,90,23,25,145,254,75,180,153,63,67,3,229,251,59,240,90,227,89,247,249,222,44,95,36,26,43,217,95,4,37,157,146,14,177,204,78,99,61,121,106,83,209,188,184,219,103,155,167,227,229,109,139,164,198,15,241,170,196,116,248,217,231,154,244,212,110,124,245,14,19,212,116,102,103,109,149,90,6,154,16,42,12,112,51,44,231,85,159,226,63,42,14,68,24,198,58,159,243,218,93,203,78,218,236,74,28,149,63,166,237,179,236,180,82,219,200,187,241,0,151,52,27,90,21,228,220,66,75,239,225,175,60,217,12,66,3,27,246,32,57,178,27,225,16,237,208,30,42,164,98,228,217,239,161,251,207,5,140,191,238,219,70,2,5,47,53,71,52,146,153,74,65,10,246,74,36,139,17,122,38,182,73,145,232,69,197,110,181,108,160,163,56,242,68,113,203,113,16,140,153,235,26,83,159,144,88,207,118,120,64,38,71,107,47,56,81,130,77,255,68,164,156,43,57,75,28,18,72,82,43,58,97,143,19,15,114,50,199,133,62,14,27,156,183,145,54,5,104,191,41,187,46,149,21,84,242,143,224,5,132,154,245,6,212,37,30,54,202,167,109,11,239,140,166,177,127,209,150,181,134,126,1,152,33,242,112,59,80,15,1,87,227,104,170,254,179,176,163,128,194,169,231,144,203,80,71,254,56,97,140,3,112,151,111,40,1,246,251,159,185,93,37,50,170,85,67,69,20,65,247,180,227,137,0,68,30,96,13,192,148,2,234,170,165,195,116,52,207,207,244,227,185,59,126,221,143,225,20,7,46,26,173,203,108,60,208,39,116,180,224,61,232,68,61,237,152,251,72,252,126,230,186,243,242,175,214,48,26,117,215,230,35,17,107,65,26,243,83,111,198,123,201,80,238,190,141,128,4,159,99,55,27,239,72,103,8,29,164,244,177,112,20,227,14,157,145,20,121,163,113,126,112,92,204,91,103,121,196,88,87,145,93,39,211,147,181,64,43,180,240,61,44,159,226,244,177,87,72,229,27,86,228,187,213,184,76,75,67,1,55,253,187,114,27,27,23,45,129,102,66,145,165,153,154,164,159,231,9,209,222,152,41,189,183,190,59,175,139,30,157,43,241,191,48,88,9,41,118,65,198,55,1,251,205,117,44,208,67,122,21,97,47,34,146,83,199,251,104,179,62,66,60,189,226,122,117,23,143,220,92,222,192,253,202,8,130,207,6,16,197,146,118,40,126,47,199,31,89,233,16,120,229,243,114,70,66,68,92,72,88,125,241,51,206,249,192,210,218,50,6,14,216,100,146,14,87,234,34,98,235,183,194,153,76,141,101,186,160,195,140,144,64,207,101,112,116,203,187,101,219,45,44,120,174,74,198,255,63,186,84,117,24,93,155,255,78,108,11,140,228,218,61,42,147,45,77,61,27,191,9,112,79,153,167,38,174,168,163,123,43,201,253,113,65,210,81,119,197,135,176,195,89,198,177,122,14,22,66,242,224,145,48,232,103,223,59,211,114,104,115,103,235,169,160,141,181,146,132,145,105,93,37,103,110,228,217,12,64,49,43,72,223,179,97,94,88,26,95,136,46,19,93,182,113,121,125,96,121,205,52,168,53,161,217,104,45,255,12,29,164,72,6,177,220,215,32,228,12,121,92,5,154,230,15,37,212,186,46,206,65,247,206,153,227,231,183,173,153,95,117,170,157,59,64,111,81,102,197,39,29,20,242,189,150,175,192,23,123,206,228,235,215,19,140,168,76,255,142,214,248,160,129,133,185,252,171,138,15,112,16,164,126,186,243,194,61,235,152,140,37,0,68,133,101,148,112,111,114,232,126,190,255,92,79,132,134,159,36,122,9,135,233,213,237,190,248,225,83,245,16,239,166,82,251,186,63,57,250,250,40,178,59,177,32,70,158,41,99,254,35,49,88,232,80,222,105,45,138,240,79,51,109,47,24,39,192,83,107,134,173,8,127,56,254,83,74,156,253,106,134,102,185,243,168,150,251,140,185,120,98,9,69,197,24,243,181,160,217,102,44,229,41,62,223,41,101,1,8,215,38,31,254,14,126,24,168,246,4,127,168,139,44,234,39,75,237,247,9,152,196,147,201,92,5,100,54,235,17,130,160,243,169,45,31,210,55,221,83,8,20,130,75,109,231,138,183,25,37,46,83,52,190,112,46,54,184,195,82,148,239,75,32,249,7,1,167,233,148,125,32,24,78,166,65,192,171,91,220,178,159,198,38,145,87,105,57,169,5,222,155,246,48,234,248,163,90,141,19,199,33,63,119,41,15,93,108,173,239,105,234,136,93,60,72,121,50,219,243,139,83,162,118,219,24,31,35,66,39,28,68,248,223,3,5,88,80,212,32,251,8,225,58,167,219,164,94,180,166,177,57,68,114,105,89,100,104,16,157,188,184,233,42,198,81,137,97,16,90,234,4,15,105,15,212,70,103,91,109,10,244,75,44,182,232,80,111,203,187,235,34,52,75,225,35,56,54,83,91,83,245,79,152,101,43,20,14,108,202,120,12,90,193,105,38,135,69,124,86,238,112,144,84,70,16,83,130,147,189,155,158,106,52,177,58,69,255,16,174,84,100,126,97,16,206,243,196,218,158,179,243,58,54,50,208,117,125,145,25,230,166,114,122,225,18,26,228,7,233,187,143,191,136,48,225,65,101,201,253,155,210,57,150,8,254,21,151,136,217,230,250,35,78,223,252,233,176,205,158,81,15,162,112,244,244,112,96,151,25,25,122,101,35,173,57,248,171,212,48,12,41,206,131,86,205,21,185,200,201,41,9,128,177,102,17,169,212,234,31,235,84,116,125,93,125,147,81,207,84,61,95,36,193,87,240,31,168,232,73,217,79,170,123,58,175,45,28,54,228,104,56,186,36,166,164,95,56,234,255,137,13,167,113,223,165,150,102,133,195,126,130,175,33,223,5,239,251,181,43,109,247,113,196,75,121,21,103,231,177,64,112,167,200,185,239,34,237,107,231,115,198,139,177,41,194,184,138,228,129,4,78,81,163,183,67,206,123,53,139,189,126,92,245,231,205,84,153,35,63,99,65,212,2,22,204,222,61,83,230,217,87,217,106,187,227,255,170,216,223,191,130,181,124,49,159,113,149,170,222,162,23,227,247,213,204,100,210,90,181,108,40,178,88,168,217,174,173,252,21,126,211,133,131,49,86,104,8,151,173,104,118,80,133,111,67,249,26,218,193,15,152,32,141,86,235,44,200,94,112,156,213,167,44,217,155,189,197,86,234,31,226,12,165,192,171,114,106,167,88,90,78,180,186,188,196,157,24,163,60,75,237,61,108,76,23,120,61,75,183,195,208,2,155,65,162,108,58,72,225,53,112,103,45,164,110,116,95,165,168,60,30,120,186,126,103,142,176,133,227,254,49,80,110,232,56,67,198,185,160,167,51,101,89,221,208,186,232,74,233,38,108,109,218,132,115,102,36,83,40,69,241,110,210,207,56,189,42,179,85,212,117,141,192,246,154,149,242,232,213,106,185,74,7,152,155,121,109,132,23,179,99,15,148,105,242,160,14,168,250,20,83,226,233,72,179,186,191,116,172,19,234,214,89,247,201,187,135,159,119,99,226,248,196,44,222,144,108,194,162,225,153,194,159,129,217,236,189,152,186,202,194,252,169,132,124,61,235,20,53,6,19,74,199,109,92,175,181,223,53,47,109,250,67,63,207,6,163,85,86,21,50,238,50,40,81,30,203,6,26,129,21,17,50,237,126,143,16,157,33,162,66,186,103,21,42,89,137,55,34,27,224,31,64,156,146,161,8,176,76,175,19,57,239,19,179,138,68,46,4,132,191,224,120,3,81,219,7,158,18,13,12,118,70,48,247,190,42,56,0,207,73,119,142,231,239,39,190,177,58,192,193,44,114,102,58,30,161,245,110,146,13,93,132,216,232,177,195,76,101,59,228,21,115,137,214,53,15,233,39,86,107,115,183,230,103,199,24,166,15,239,52,117,154,246,75,63,25,148,168,169,152,73,24,93,247,113,90,3,23,170,192,69,129,213,127,14,53,75,130,50,28,226,66,224,22,242,160,218,217,156,147,192,112,39,144,151,86,25,100,25,169,44,224,4,230,250,192,71,101,9,15,81,79,237,146,81,240,62,196,72,39,81,182,255,132,37,75,219,230,234,25,93,119,35,52,15,239,158,39,226,183,52,88,83,158,213,158,178,201,121,132,71,245,93,233,97,194,24,28,54,210,186,166,119,69,39,221,121,239,149,200,200,201,95,74,172,23,70,245,224,49,133,69,45,142,123,43,237,47,9,183,34,40,185,65,119,112,249,230,76,124,44,8,86,143,216,197,127,34,213,212,55,242,32,22,71,8,212,192,111,57,6,5,183,154,43,83,178,13,134,115,240,161,194,13,144,228,58,53,249,250,232,116,128,111,148,141,206,236,251,100,226,197,95,121,92,1,16,56,185,186,32,89,0,15,214,119,121,247,108,108,23,122,237,252,165,16,175,23,24,135,71,39,52,98,70,75,124,13,253,203,198,98,183,186,108,0,240,42,62,253,97,190,23,0,53,24,21,97,88,210,52,123,194,193,40,230,220,42,71,40,181,196,198,232,211,16,47,164,84,33,218,190,8,13,186,54,1,105,198,145,101,6,234,237,159,243,121,161,48,170,109,217,170,76,80,115,206,154,87,104,130,109,250,123,77,186,161,226,38,205,77,36,69,115,144,0,144,168,112,214,137,187,77,126,6,136,230,115,143,13,242,167,112,208,92,31,121,29,217,176,21,115,210,118,3,152,114,191,131,88,59,124,147,11,208,9,155,36,27,225,26,119,226,102,232,60,72,188,216,111,250,93,122,119,57,21,113,13,102,60,190,126,219,22,49,237,140,207,124,241,16,39,82,75,64,122,96,235,11,67,46,235,156,124,214,36,114,17,38,146,163,61,203,245,18,22,178,129,147,187,43,65,43,166,129,126,55,161,83,72}, {41,20,139,226,20,10,117,125,252,46,149,117,155,249,104,197,143,152,120,28,126,13,142,228,204,65,115,37,105,70,187,131,198,47,213,206,63,127,213,100,128,29,248,228,43,101,81,31,54,74,12,51,67,98,152,25,32,85,23,122,143,59,6,218,163,104,173,148,133,197,63,161,63,185,16,141,3,160,162,188,151,208,175,83,132,187,209,195,214,112,4,2,223,195,210,101,202,199,191,115,48,187,94,9,73,78,176,25,185,87,22,184,195,118,127,214,214,231,220,75,226,128,36,118,209,60,235,146,203,175,72,101,218,48,4,201,44,151,25,20,139,227,135,70,253,44,66,144,133,149,92,154,60,151,235,131,135,224,71,87,43,113,59,188,52,81,189,48,224,67,64,64,126,250,126,44,119,118,243,138,247,108,30,151,170,125,136,25,233,222,126,129,73,252,210,217,183,135,120,57,81,113,21,54,249,252,225,68,78,205,207,66,108,200,146,40,129,153,224,120,97,151,147,75,113,26,128,223,160,109,29,163,192,155,51,83,43,131,179,210,196,166,125,72,226,4,111,6,193,199,81,224,78,184,188,178,1,227,118,196,228,87,118,8,235,10,247,184,14,99,55,40,176,33,140,28,205,38,224,243,194,218,222,57,174,246,125,80,69,27,1,213,30,176,98,185,45,206,7,174,163,160,205,4,65,98,138,118,15,243,36,245,217,159,225,81,47,237,128,15,110,43,200,230,149,240,227,129,202,1,228,250,130,105,23,198,191,250,118,117,235,254,162,221,61,229,51,142,119,173,4,144,117,54,251,204,51,207,119,51,235,186,121,38,218,14,74,211,180,1,202,75,195,120,56,47,214,93,57,232,195,173,48,71,48,214,91,255,152,140,210,45,237,68,230,234,250,188,15,96,27,133,144,224,120,165,158,175,93,168,8,209,249,53,72,0,161,85,112,133,123,50,71,70,121,142,7,120,220,5,205,248,177,179,142,62,42,60,80,73,140,56,205,34,2,185,243,110,239,247,199,148,97,113,19,39,8,167,252,242,44,63,137,152,95,200,70,115,253,72,22,85,70,158,197,58,18,253,179,50,171,110,99,216,13,210,239,255,162,44,143,74,92,113,113,47,55,35,75,59,43,146,72,43,29,147,93,221,27,195,255,180,210,202,237,153,183,65,226,230,57,210,154,94,136,32,165,255,76,83,148,104,166,185,77,169,181,150,71,25,149,248,134,190,83,214,75,49,147,238,146,224,15,185,161,170,34,182,121,91,136,53,246,87,228,14,249,79,90,113,175,158,93,80,215,230,66,68,111,153,108,159,9,228,173,89,228,231,160,120,121,93,165,181,10,71,219,199,200,112,156,23,165,197,17,195,224,174,34,128,163,197,174,207,110,52,66,128,216,210,172,164,14,140,32,9,194,27,105,28,110,45,191,52,236,134,27,139,192,173,15,225,192,244,190,38,240,124,74,119,41,110,218,36,80,73,80,151,149,137,44,113,158,157,162,4,156,5,110,45,232,109,221,53,79,78,156,128,105,91,5,68,65,188,227,177,182,227,224,202,94,132,185,103,216,116,20,135,154,119,179,97,235,187,180,44,83,84,74,233,63,99,38,18,194,9,8,121,69,117,254,24,159,154,110,207,116,103,12,23,65,185,194,245,183,174,46,5,6,80,214,155,71,198,138,208,36,134,214,180,67,174,130,195,30,131,27,201,11,144,108,189,118,220,169,58,192,114,61,90,40,233,176,27,63,225,104,111,122,6,206,144,198,200,144,109,77,246,232,53,69,72,9,144,242,12,78,125,211,235,176,123,228,146,167,177,119,29,248,187,253,142,49,105,196,77,229,44,165,148,126,243,105,22,149,78,199,184,74,0,243,99,80,143,92,155,23,243,19,184,239,104,14,140,22,232,202,144,27,37,234,148,39,219,188,177,156,31,158,123,18,129,77,10,21,16,24,154,242,37,131,153,102,25,243,119,106,11,158,63,75,138,144,206,108,98,6,40,249,199,235,243,41,44,136,57,245,68,89,250,111,185,92,232,103,67,128,240,243,30,71,129,212,165,108,133,2,131,83,14,177,184,240,232,109,95,197,16,127,1,205,61,11,97,87,225,163,224,253,251,38,88,232,141,169,99,141,169,188,103,212,6,33,118,151,172,152,45,225,186,11,201,129,101,133,18,142,62,77,106,0,113,122,136,75,182,32,176,161,39,206,145,87,170,189,180,104,196,14,135,199,65,194,70,97,159,198,40,179,238,48,111,190,133,196,79,124,151,218,39,203,210,124,254,239,23,172,153,153,140,10,2,66,186,200,107,43,247,100,133,187,94,201,54,27,227,116,87,87,133,32,22,221,19,34,26,104,59,208,71,212,15,100,72,228,99,250,230,116,232,227,193,127,214,114,78,65,201,222,150,110,176,108,28,224,181,156,149,241,241,243,187,103,151,33,75,231,201,10,209,53,231,93,30,227,79,236,227,99,189,242,181,23,136,39,149,17,141,54,141,178,95,80,140,250,244,94,113,99,231,134,105,245,190,84,214,105,191,227,183,76,157,144,164,247,49,61,231,187,173,5,181,98,225,125,70,6,231,95,71,163,249,92,81,161,192,63,47,54,225,150,142,240,164,167,155,97,136,92,208,17,244,1,180,67,87,8,144,248,186,39,57,143,197,58,4,81,133,48,252,81,210,5,245,243,31,235,34,42,50,225,103,56,247,135,162,224,87,165,110,117,234,253,159,83,242,199,254,20,168,11,102,93,83,120,130,56,230,41,19,11,252,6,154,226,168,97,82,186,110,64,80,107,24,133,114,57,13,101,115,23,55,16,93,221,66,142,189,94,98,147,230,114,157,211,212,181,37,124,145,114,122,117,244,120,49,66,12,213,157,24,52,52,49,113,110,47,169,23,107,113,194,72,236,193,197,138,164,150,238,35,50,74,194,196,178,240,223,190,212,120,82,124,189,81,243,75,13,184,103,79,105,29,2,16,126,222,1,3,188,128,70,60,94,225,238,121,46,46,158,236,84,191,127,254,131,100,100,5,157,205,188,37,252,106,229,27,136,22,140,235,20,179,220,32,203,96,36,110,21,45,2,198,61,99,141,115,89,198,169,160,99,45,149,25,112,99,1,79,122,81,243,194,230,217,181,110,170,100,234,205,36,76,198,180,239,250,245,76,82,33,10,83,157,148,218,11,120,230,219,76,249,152,81,17,139,154,111,239,187,36,31,61,208,172,111,167,91,91,95,142,42,21,42,199,106,54,170,240,248,107,118,165,251,155,244,246,59,144,38,118,89,166,201,135,47,220,135,254,110,5,110,95,184,67,134,104,51,143,100,45,29,220,47,111,136,163,66,153,75,143,162,115,90,124,73,89,109,157,51,170,133,148,132,131,155,230,161,199,255,15,60,218,53,57,42,30,224,237,210,119,199,103,138,42,99,160,205,8,184,212,168,248,205,227,36,47,3,161,129,241,40,227,220,232,93,92,253,55,61,205,97,126,33,151,58,245,165,111,75,240,129,129,55,113,64,193,77,253,122,59,158,39,203,34,42,203,156,180,195,101,217,201,208,236,223,228,180,164,7,100,147,198,89,64,25,78,12,60,102,191,116,96,216,36,104,27,208,72,142,83,119,198,23,96,110,50,221,81,219,85,13,159,254,91,50,163,50,229,105,250,227,5,229,195,136,182,158,71,230,223,228,87,78,156,237,191,122,103,179,49,34,247,221,147,226,91,211,210,230,128,23,31,233,8,31,102,37,42,48,137,108,97,24,245,18,239,184,171,104,160,212,71,245,9,214,5,10,74,152,7,83,83,250,101,29,134,17,251,210,1,11,133,228,106,236,118,81,38,32,225,218,241,143,82,141,203,220,107,37,255,224,32,235,46,171,26,45,109,92,106,68,142,170,95,43,128,105,169,90,107,248,51,123,103,213,124,138,211,4,80,162,64,254,93,207,86,64,51,249,73,46,224,30,117,134,154,223,156,163,177,190,203,42,223,240,51,137,205,169,86,104,33,176,80,31,211,232,120,134,252,252,152,162,129,225,144,65,18,219,242,223,248,228,149,204,75,163,179,203,241,32,3,90,34,61,109,132,191,229,211,94,108,102,189,252,186,152,253,46,95,78,190,93,64,104,180,66,253,7,102,202,29,144,205,32,89,161,244,54,215,48,191,138,247,176,242,74,21,8,125,53,180,36,167,177,104,40,15,21,155,100,49,197,170,10,195,176,203,135,92,151,135,112,183,185,226,81,244,197,217,233,83,93,111,156,195,243,196,8,32,48,61,115,25,238,13,157,19,117,61,155,195,8,224,239,210,146,102,5,168,117,198,32,106,232,15,15,140,149,162,43,18,179,196,234,162,159,140,247,150,123,160,245,68,245,81,22,169,70,135,228,87,239,21,94,48,105,212,196,124,188,98,225,175,34,10,21,12,38,245,237,202,77,32,117,45,233,204,126,32,242,93,157,123,202,6,219,91,144,197,38,80,81,70,11,98,135,166,108,68,147,183,203,107,30,62,183,97,188,65,235,224,195,120,118,217,150,173,217,125,69,150,225,168,222,24,14,234,120,211,88,26,171,31,72,147,20,107,30,32,14,149,101,188,39,4,111,215,34,106,198,202,197,167,237,180,99,207,209,237,12,235,200,200,127,68,110,153,117,143,101,10,164,13,233,209,137,36,213,3,159,5,99,179,97,73,182,217,70,233,81,112,182,77,176,45,163,163,62,121,11,54,207,131,247,248,182,16,58,34,192,111,1,182,241,44,92,171,70,176,47,121,233,127,26,16,64,42,219,25,210,183,252,60,149,62,181,194,125,161,47,169,69,125,26,212,97,31,153,58,16,0,171,191,87,224,208,151,68,82,229,44,55,228,53,220,36,203,168,25,89,201,142,209,119,154,89,110,173,91,75,74,200,110,87,33,179,79,229,139,179,45,88,38,125,128,166,47,147,230,60,166,5,10,168,65,219,56,10,161,227,86,45,185,121,72,83,33,169,215,81,57,222,12,143,141,180,66,86,32,181,198,249,22,46,177,99,242,47,38,133,153,115,116,96,236,107,67,133,68,151,118,72,193,245,36,67,181,101,191,183,34,147,196,229,73,76,175,215,245,16,246,20,84,229,119,232,88,22,206,34,211,232,27,106,93,229,41,127,113,200,47,137,227,168,241,50,42,9,27,179,114,139,85,100,135,137,22,119,206,237,213,73,239,45,18,116,143,167,38,33,231,22,168,253,222,204,48,178,154,58,98,62,1,3,32,146,108,47,101,181,249,60,26,251,103,236,201,41,104,170,248,250,136,108,153,15,15,16,182,61,7,114,251,229,42,72,109,47,229,83,160,175,33,50,110,56,29,220,251,99,29,114,47,70,6,153,21,118,3,214,74,135,125,216,8,116,248,111,209,246,95,43,77,87,134,230,80,188,140,222,94,117,86,254,171,181,126,125,61,174,213,5,117,38,54,10,145,37,53,54,34,17,221,183,168,228,214,63,234,23,148,210,82,251,154,78,22,164,207,66,27,107,188,93,137,100,151,153,226,127,231,196,235,27,67,117,108,175,12,53,103,215,25,181,99,97,171,219,197,76,59,223,121,109,54,82,12,246,224,7,132,134,140,120,88,183,246,242,175,209,134,91,4,246,51,149,216,191,99,190,59,126,9,196,119,188,46,36,137,88,242,183,228,122,5,132,88,231,184,45,25,51,186,87,145,166,51,180,158,37,228,231,236,115,61,135,8,223,156,243,10,107,98,83,43,182,77,232,71,60,147,205,83,120,54,222,194,14,245,177,161,144,195,212,173,18,221,231,196,246,211,95,140,1,199,128,95,242,164,212,10,179,213,254,221,83,66,65,3,196,76,111,143,143,123,225,54,18,40,61,74,130,67,143,138,138,3,38,76,86,35,104,95,21,2,235,72,181,117,14,125,76,106,174,213,202,209,12,114,112,165,18,58,248,247,158,144,19,80,190,186,204,75,163,49,232,185,123,59,254,190,139,142,90,23,14,53,3,165,142,198,7,129,66,207,22,255,182,9,183,99,145,92,59,147,14,6,252,189,210,164,197,31,139,65,58,12,66,204,159,81,131,137,0,24,249,64,95,139,59,98,210,77,255,110,54,121,17,229,79,169,255,203,209,35,137,208,86,88,178,59,170,252,5,182,97,105,72,99,31,245,169,255,225,147,32,180,221,80,53,200,253,128,102,86,85,72,161,243,150,121,105,130,180,233,143,236,248,254,123,78,63,74,175,132,131,69,244,5,158,0,245,61,193,133,203,222,172,232,55,207,222,186,79,207,129,4,234,214,198,149,7,115,107,138,254,151,29,101,214,156,202,115,195,142,214,14,63,18,10,249,19,120,19,45,212,220,62,101,189,85,102,172,123,123,154,46,30,22,142,233,248,46,29,239,173,20,114,15,209,194,34,77,41,106,61,131,139,191,219,241,249,253,161,137,56,96,253,149,73,234,112,214,245,202,217,207,166,137,231,144,194,164,105,218,11,101,191,251,2,241,133,224,127,122,255,22,220,61,42,209,84,92,231,212,10,23,38,193,8,243,185,211,243,220,16,248,69,1,65,53,82,0,119,253,154,158,54,70,234,94,17,243,5,90,199,14,120,158,177,191,86,203,56,248,129,232,168,182,79,87,107,130,26,190,69,58,247,66,192,128,170,143,228,102,202,178,101,34,4,84,39,202,143,196,217,60,233,83,164,173,30,163,253,111,30,171,240,202,189,15,39,115,248,119,42,94,252,99,167,66,190,104,23,174,167,6,237,251,246,220,100,221,3,248,30,121,143,168,132,166,212,118,172,158,139,73,247,89,218,218,159,81,122,187,186,207,127,159,200,205,91,167,160,8,231,254,248,54,21,172,1,220,187,20,46,185,163,150,117,247,238,22,37,66,220,203,221,78,53,187,181,232,18,127,217,164,23,40,14,91,12,240,40,255,110,225,44,252,182,54,31,165,13,111,20,53,240,255,198,52,145,153,72,0,220,157,181,142,14,254,158,131,26,251,90,248,180,175,72,166,58,55,241,68,128,118,169,132,45,168,4,242,60,126,34,124,154,227,32,189,54,46,31,73,61,46,194,123,196,146,91,74,204,148,12,183,141,249,76,186,130,114,187,241,254,41,166,211,175,89,202,211,98,234,117,206,120,146,217,201,142,233,250,156,36,245,243,5,73,7,249,133,139,83,237,13,198,30,48,158,86,125,54,237,53,89,198,77,31,15,110,87,154,105,180,252,55,203,177,169,138,120,44,145,204,153,140,168,204,239,217,194,212,74,160,31,69,29,196,50,72,66,165,221,214,44,109,212,55,156,117,169,53,166,250,35,192,135,50,26,198,166,63,75,38,200,224,203,3,233,254,182,162,151,138,20,73,34,115,35,93,117,241,160,49,31,122,176,202,127,34,212,109,55,40,0,162,86,244,247,105,164,86,166,168,97,82,203,173,117,70,154,119,71,131,76,42,67,191,155,40,80,37,46,47,4,6,180,99,101,218,201,83,67,158,22,16,229,94,102,192,172,219,190,67,88,75,174,94,218,137,40,17,34,40,144,161,192,141,203,31,0,150,8,115,54,127,139,113,77,55,65,162,79,177,247,40,78,220,176,48,189,201,43,50,38,139,130,198,252,13,118,244,160,39,130,189,224,37,52,95,68,93,28,121,172,111,242,135,55,83,63,196,128,78,30,146,205,131,129,34,45,132,183,33,36,226,245,50,233,102,15,5,128,161,205,103,109,146,75,14,135,26,162,104,176,179,199,82,216,202,174,220,195,36,253,150,45,81,182,228,11,30,61,122,20,73,97,126,137,145,243,154,132,147,66,78,33,46,73,146,73,193,70,109,101,250,246,217,76,55,6,43,31,151,117,138,159,56,143,234,109,108,232,220,228,143,252,126,131,31,56,153,38,27,64,248,56,141,144,114,113,135,173,158,49,229,241,24,190,91,133,253,23,193,59,224,180,203,213,15,202,174,255,248,189,159,226,137,143,66,240,116,169,35,123,196,106,255,214,217,255,68,164,189,96,165,37,105,203,45,195,104,178,255,47,2,69,193,253,226,149,158,229,122,229,71,197,189,241,237,191,238,90,243,99,75,90,147,253,14,95,135,214,244,36,89,255,155,226,52,180,28,93,158,210,43,15,230,183,0,168,171,171,197,112,233,22,109,199,83,95,81,165,139,59,232,45,207,49,176,106,136,144,235,184,192,53,50,99,6,150,174,51,132,167,132,191,224,239,109,244,155,253,226,219,28,197,150,87,246,76,103,139,205,194,235,234,113,110,40,253,143,5,87,131,139,108,60,255,21,107,184,125,123,42,24,68,135,199,77,207,82,136,198,246,17,140,184,77,68,130,68,46,89,167,86,127,46,40,144,42,111,81,209,187,231,217,73,158,28,129,117,78,51,223,190,42,100,127,216,24,156,15,150,83,111,195,186,138,47,230,144,218,103,79,177,232,173,220,68,236,6,123,41,23,119,59,198,241,142,182,178,255,172,9,33,214,4,243,6,129,102,80,196,171,114,54,106,186,228,126,235,187,209,116,96,12,44,56,62,15,158,103,225,92,62,221,131}, {99,167,87,238,226,196,149,15,14,242,172,59,54,179,128,36,244,47,181,182,72,71,156,204,0,144,196,170,87,189,136,113,82,29,196,62,116,187,152,100,34,181,247,230,66,12,153,212,144,162,11,47,15,12,112,190,65,239,62,224,87,99,239,87,208,170,161,83,115,167,130,135,64,37,64,94,85,213,31,234,254,95,16,99,148,176,201,76,242,186,107,6,194,141,157,52,100,132,239,136,172,30,141,169,217,20,173,173,20,3,164,156,154,146,112,173,55,106,1,129,217,215,52,22,12,27,212,105,170,191,119,179,33,117,208,189,79,217,13,112,204,106,18,96,59,24,8,58,34,101,61,89,24,128,75,162,95,16,66,225,100,169,159,83,58,184,238,143,199,48,199,182,205,191,37,142,212,115,123,125,24,170,137,165,57,100,229,61,6,207,28,3,117,21,194,43,11,92,13,61,79,219,146,212,32,205,196,50,28,181,96,78,77,74,30,239,152,3,85,237,66,147,17,119,236,48,119,129,236,245,87,96,92,33,147,134,92,212,193,174,222,201,249,67,17,189,246,25,108,75,14,221,247,126,187,78,52,109,152,244,21,233,85,154,70,236,106,104,40,3,244,150,183,48,50,2,246,255,135,84,2,230,172,7,198,201,153,43,110,229,247,113,11,73,233,244,214,45,56,145,187,150,149,160,63,145,169,101,125,235,24,65,96,69,167,220,16,10,59,192,55,240,172,124,217,84,80,140,48,249,167,226,97,10,220,175,112,0,138,78,220,19,169,24,9,184,203,109,46,56,220,0,243,41,58,137,30,186,169,212,13,3,198,231,221,186,77,30,203,77,128,177,37,66,130,29,231,22,139,177,4,90,121,5,26,134,175,179,20,46,158,108,51,65,192,77,213,160,104,111,88,8,34,112,225,220,0,168,50,38,215,76,174,119,132,133,217,79,21,244,166,174,246,106,213,177,206,90,20,206,147,233,86,55,221,181,252,150,147,110,185,89,128,58,107,20,246,160,50,10,135,239,141,28,148,238,219,64,82,232,117,215,135,55,65,148,64,146,43,16,106,121,94,118,95,184,176,63,56,192,114,201,181,85,130,4,6,152,139,95,170,60,69,136,212,201,137,13,119,191,46,86,230,79,153,89,167,47,115,113,41,120,206,72,49,214,31,234,220,217,236,135,82,195,251,152,140,9,34,1,95,81,206,132,229,212,225,90,12,90,68,19,104,179,246,205,99,11,58,210,247,61,238,222,188,42,85,165,66,218,23,56,188,73,87,145,14,81,1,15,28,110,7,119,164,58,30,72,76,171,212,120,107,149,39,242,231,121,144,136,208,221,45,63,121,117,135,93,108,134,241,24,65,125,168,168,40,120,215,252,213,195,191,181,90,196,135,233,77,235,66,212,173,234,84,42,99,108,220,246,31,99,177,85,173,192,113,197,110,158,192,223,12,202,11,122,94,228,109,11,185,183,241,72,126,22,31,151,249,190,167,158,144,250,87,113,20,108,116,103,161,106,28,172,108,101,129,217,76,179,158,142,198,52,243,246,52,161,69,169,156,122,188,203,134,138,118,2,247,63,155,215,105,30,207,61,85,113,253,199,56,57,232,78,209,92,246,183,226,12,222,213,223,159,78,63,83,88,93,71,148,246,176,37,178,0,230,195,118,87,70,147,58,142,183,74,153,150,171,133,230,56,195,8,234,19,155,229,191,171,240,12,75,179,5,253,59,234,200,80,8,0,234,170,238,82,218,12,159,134,190,171,74,141,192,90,247,109,174,73,211,251,154,194,181,37,14,12,17,162,87,76,133,131,118,187,139,225,26,229,176,30,114,15,227,250,14,185,6,51,52,120,14,213,3,90,187,158,4,254,13,142,244,228,1,215,243,11,217,175,158,103,115,190,201,133,135,94,25,70,163,66,123,95,164,58,169,128,196,127,198,196,55,193,178,181,225,65,22,151,248,137,14,42,136,159,116,77,8,71,69,192,112,179,150,62,241,59,195,150,37,115,123,170,60,255,36,202,18,254,78,115,209,67,223,20,153,120,134,69,247,252,105,203,24,15,33,231,65,19,162,162,54,17,114,44,247,32,252,65,70,61,205,110,92,137,203,142,16,214,224,100,12,4,186,151,161,120,109,100,56,207,202,156,43,72,114,248,21,59,102,117,160,130,38,72,133,253,187,94,2,254,7,111,231,101,165,179,101,172,231,28,172,3,31,137,144,192,115,195,49,131,255,203,251,80,225,80,189,55,79,108,149,114,27,149,134,33,66,194,124,235,137,5,251,197,107,73,38,88,17,70,86,49,123,156,4,111,66,231,177,144,29,83,63,172,136,25,64,17,40,17,16,84,245,63,102,242,187,171,78,178,7,28,147,197,176,61,47,34,135,230,150,250,133,224,2,198,42,79,77,27,105,117,105,84,45,181,157,70,118,5,49,140,131,95,74,252,172,178,165,103,52,247,213,29,159,88,244,46,42,208,253,28,85,118,199,202,106,152,182,253,186,245,30,164,235,164,145,120,64,119,82,174,19,47,193,64,115,104,152,235,50,113,118,190,245,4,237,193,96,177,11,229,238,42,241,253,253,185,133,218,59,209,175,108,129,140,77,100,32,245,243,58,0,23,50,117,127,149,92,195,107,14,151,30,24,116,179,98,29,29,230,219,140,82,78,78,192,121,129,5,39,160,250,229,105,242,125,47,225,205,193,61,4,108,110,185,207,122,125,41,198,198,232,219,110,91,16,108,93,158,254,202,65,46,255,146,219,27,83,212,100,115,11,48,47,193,20,141,16,220,28,240,254,227,78,252,136,210,134,196,177,8,35,57,102,122,62,24,111,111,37,171,150,197,13,181,219,153,119,214,108,166,160,186,175,184,219,36,225,221,251,36,180,160,180,131,191,60,228,4,4,209,46,37,114,0,20,34,186,198,80,196,114,169,95,106,206,44,167,33,20,69,63,12,166,159,217,159,116,159,117,21,192,162,18,209,175,171,12,23,203,162,153,239,151,7,78,118,181,42,141,249,81,44,53,68,160,149,65,18,239,152,74,111,183,40,57,66,123,99,249,91,245,71,240,229,148,237,128,234,77,207,13,197,164,143,157,95,148,17,170,207,236,135,10,183,109,16,224,75,146,156,139,141,122,19,213,77,66,83,201,222,229,77,241,33,25,144,140,202,34,88,142,69,240,87,156,73,135,255,170,180,65,203,96,192,27,105,148,52,61,11,135,122,223,122,246,173,249,114,200,124,174,141,118,53,124,209,43,234,208,209,26,0,25,51,1,240,36,17,103,134,8,51,126,69,131,79,154,80,50,238,42,11,202,106,63,0,105,180,223,22,106,140,220,250,48,164,163,79,211,231,124,75,177,210,20,145,187,162,45,134,76,65,61,15,113,231,72,219,34,1,44,249,132,180,69,21,84,176,136,205,202,21,252,17,217,89,226,83,36,159,160,53,120,121,236,216,110,28,236,40,166,17,11,117,80,145,205,141,116,158,120,45,205,252,1,121,135,59,39,248,109,161,46,236,17,0,160,33,33,136,47,6,60,212,79,134,231,234,106,248,69,52,41,115,132,218,173,213,8,8,38,147,16,101,99,145,157,121,45,163,80,25,235,91,245,12,216,152,85,216,130,29,49,100,122,91,106,75,125,176,198,194,113,152,146,71,83,59,142,92,23,181,250,72,181,85,84,47,53,45,111,212,225,230,191,103,158,188,83,194,2,133,149,0,224,217,229,153,92,206,71,180,162,185,135,143,57,119,205,170,159,212,81,179,145,24,100,73,165,232,186,94,119,79,110,60,122,40,198,49,171,167,60,214,85,201,224,118,132,179,246,74,43,5,128,156,227,61,232,19,52,156,40,147,33,139,156,225,196,134,4,18,30,158,212,57,93,121,241,111,101,209,56,62,145,147,247,57,103,74,191,221,3,235,124,70,239,159,212,247,166,114,111,165,195,220,88,133,245,64,213,110,64,113,88,153,70,199,251,50,79,134,116,198,204,19,189,168,97,223,0,12,197,245,190,229,30,255,63,196,196,121,101,28,139,46,88,20,117,154,254,101,228,251,25,90,70,48,21,52,201,178,15,92,86,66,38,46,97,58,235,172,65,221,112,7,114,127,3,252,183,237,112,235,71,248,15,199,186,12,126,253,22,184,211,135,216,35,222,224,46,173,78,77,121,243,197,24,205,184,26,34,27,233,148,111,83,78,63,25,223,139,178,183,95,137,38,180,204,4,70,148,145,51,248,135,47,156,69,74,243,57,41,227,230,137,85,98,116,16,31,135,244,191,97,171,146,129,218,155,62,231,61,251,226,165,205,26,22,173,78,6,21,219,27,75,222,171,136,217,158,55,217,182,51,214,11,40,220,53,89,47,196,221,93,84,46,241,58,187,39,25,60,32,75,220,162,199,93,223,74,123,254,169,8,17,30,93,243,18,59,68,244,71,26,196,82,47,173,141,180,97,93,155,220,103,182,171,53,163,62,105,147,209,235,0,247,119,227,239,186,170,144,138,94,235,243,236,149,63,213,106,113,48,187,81,158,165,161,44,123,113,220,107,26,59,77,119,248,46,119,252,164,183,78,17,220,16,163,21,111,121,34,249,209,35,83,180,229,113,114,24,192,113,209,50,86,57,135,227,114,184,148,246,255,151,107,211,57,153,171,87,63,48,246,241,193,154,229,240,80,208,56,6,235,186,88,109,100,160,237,218,116,44,144,251,4,71,38,254,46,205,165,112,161,141,225,35,21,151,204,81,0,75,73,234,76,129,8,146,18,3,134,83,45,42,75,168,69,163,128,203,178,151,251,232,217,230,4,136,11,9,102,229,142,238,200,42,37,209,66,140,105,93,229,13,76,228,48,6,179,193,63,140,117,39,105,173,59,66,0,117,101,17,254,65,151,58,93,85,231,253,247,36,219,238,151,227,56,70,21,56,159,192,6,98,233,162,216,144,134,161,142,213,245,108,164,114,37,161,145,142,34,251,101,7,181,149,157,42,94,35,164,253,23,18,225,181,162,30,67,23,2,4,95,145,57,240,152,188,176,130,167,133,233,234,133,180,238,126,156,196,76,15,214,232,168,8,93,86,4,35,124,253,254,180,68,151,184,146,113,167,252,109,193,252,145,180,122,210,19,235,117,53,142,203,246,248,43,243,213,58,66,82,149,255,11,31,235,30,123,209,166,192,102,95,69,110,234,195,204,255,190,61,75,64,156,128,67,69,146,59,47,178,180,56,196,156,249,126,28,75,21,27,162,232,234,53,66,149,92,18,10,116,111,251,30,184,2,84,146,19,125,14,204,36,60,128,190,122,213,205,8,86,32,97,178,207,69,170,126,244,197,24,46,250,73,199,10,171,14,214,63,134,237,97,25,54,7,222,186,189,200,200,242,82,167,242,188,43,33,115,155,114,125,93,109,41,128,28,83,155,227,230,14,47,64,18,164,156,72,188,160,210,208,158,87,39,247,12,136,218,79,130,53,116,112,201,95,129,158,113,40,39,81,171,180,237,220,168,53,250,41,101,197,99,31,77,154,184,220,59,185,150,140,33,55,1,50,136,188,209,90,37,21,223,178,121,181,73,251,204,162,106,32,187,217,124,118,251,91,115,85,190,83,34,41,188,210,71,19,85,245,33,208,149,24,40,129,218,143,75,197,212,151,241,196,0,15,188,0,92,13,182,125,131,149,7,8,167,148,224,238,122,234,87,127,242,52,237,132,133,116,251,141,59,244,148,54,128,210,236,90,140,190,129,214,114,157,215,229,197,251,61,29,5,129,223,191,52,115,189,51,101,247,197,109,14,171,61,142,207,70,25,192,50,172,176,151,56,106,253,197,225,55,110,172,212,34,47,144,131,254,171,212,75,2,71,56,168,244,166,129,101,21,253,139,162,88,44,16,128,138,127,51,107,194,126,75,244,32,209,235,80,228,41,81,229,244,204,155,212,100,181,111,199,244,219,217,89,128,1,38,185,98,29,208,7,211,198,203,77,30,135,253,94,221,122,79,170,19,183,226,93,61,157,187,37,9,232,17,117,207,155,212,236,168,17,164,51,175,248,24,99,200,197,54,232,207,146,181,235,248,53,191,196,202,194,195,229,237,141,85,123,103,88,158,193,240,119,163,224,177,91,248,80,186,82,221,73,212,33,197,105,39,163,182,174,139,112,225,159,4,33,66,166,110,128,182,230,82,184,209,75,247,193,92,62,2,155,98,248,139,236,79,62,160,243,58,50,107,232,255,179,220,85,216,124,237,194,231,74,191,183,156,173,131,245,225,79,46,2,85,235,68,101,14,180,16,249,103,155,105,50,44,24,201,18,121,217,109,31,170,106,242,216,36,246,141,53,149,108,93,78,34,120,219,153,183,159,228,146,240,9,85,185,97,79,139,5,97,140,176,105,127,235,231,162,66,162,183,210,103,53,113,68,80,205,231,130,255,106,126,7,39,188,113,144,51,107,218,96,180,93,169,108,27,166,36,139,10,92,117,1,250,103,170,156,42,51,1,120,83,225,76,41,181,19,4,57,53,2,195,209,56,204,129,182,131,210,146,252,112,75,86,150,170,118,251,113,32,172,242,61,147,170,153,44,60,110,83,91,228,96,64,135,122,163,145,12,161,231,155,147,13,165,230,146,45,86,109,220,199,32,2,78,61,208,145,237,63,171,76,110,248,233,140,215,70,107,237,129,28,197,72,200,154,150,66,238,117,50,194,80,52,49,152,53,118,95,176,188,155,14,157,46,58,244,130,135,74,90,77,125,73,199,128,233,241,45,105,21,183,72,160,3,65,145,142,220,180,198,161,249,46,119,126,225,142,206,118,194,161,226,90,171,151,117,5,1,52,39,153,24,81,138,18,252,250,132,209,202,164,180,127,76,46,245,159,91,181,155,88,68,68,43,51,60,4,36,91,172,245,208,62,138,25,109,21,88,193,159,240,143,94,67,13,119,237,179,219,241,249,223,200,198,202,215,189,13,227,65,109,135,67,175,83,30,234,141,189,250,118,104,207,104,144,104,188,33,184,213,26,178,183,115,59,175,247,159,23,253,119,150,78,227,133,217,55,220,249,57,37,37,137,135,80,40,231,97,64,18,221,147,78,223,119,60,154,59,234,237,121,76,234,201,235,81,230,91,47,66,226,16,34,84,34,49,167,8,88,193,96,15,149,20,115,80,190,15,216,226,24,129,159,45,221,124,112,195,21,238,108,93,97,171,93,175,135,144,57,111,208,188,235,221,146,230,202,142,207,205,71,229,178,180,93,52,125,151,46,173,58,48,186,177,87,130,207,236,76,50,133,39,50,82,48,57,182,75,71,246,128,255,198,160,244,169,29,69,202,8,251,98,118,18,43,240,162,85,169,12,72,145,10,199,224,171,137,96,127,36,199,233,168,192,174,246,20,100,186,170,202,8,76,66,173,242,247,12,235,207,202,95,30,211,192,250,143,136,56,178,41,122,14,232,213,3,51,22,201,5,173,34,233,189,252,97,153,195,142,176,174,180,135,253,100,153,109,115,175,206,171,58,22,45,194,7,253,45,125,45,82,0,159,186,213,158,28,209,223,197,87,93,127,87,120,135,123,173,117,220,142,156,114,27,82,183,46,28,119,72,92,203,170,37,31,32,237,165,129,189,91,252,209,0,34,236,132,227,178,13,225,224,63,91,135,11,10,203,100,192,85,164,145,153,200,116,63,226,220,35,128,26,49,180,194,123,154,77,194,142,94,216,190,40,153,88,31,242,109,144,249,162,209,255,200,141,118,4,195,245,109,214,76,254,107,14,178,215,9,108,239,49,252,228,224,52,100,25,46,58,188,69,5,100,100,245,186,134,22,140,234,202,170,53,80,25,218,150,111,102,37,248,254,231,11,142,185,225,85,135,181,182,28,218,49,172,89,92,108,206,54,175,216,153,41,121,165,244,106,37,208,239,190,40,237,179,81,244,5,197,186,73,29,150,169,36,206,10,187,39,204,174,122,170,57,156,217,177,117,22,114,158,8,247,169,105,80,53,173,79,205,154,106,252,156,165,93,27,230,126,36,142,181,80,49,190,154,149,71,41,80,171,118,186,114,136,184,238,64,43,52,224,9,145,170,245,63,244,132,233,148,105,214,224,201,46,101,128,89,10,187,201,173,147,243,41,195,247,48,22,206,130,103,15,23,175,84,83,2,42,99,163,225,24,13,141,20,26,166,164,72,5,48,18,168,163,190,90,1,46,173,226,127,78,43,125,86,61,159,249,191,30,142,145,133,10,247,186,176,237,247,163,127,216,206,169,157,110,213,22,227,254,26,41,120,0,31,24,98,169,210,47,0,217,230,212,130,152,1,204,52,214,116,72,165,168,75,160,204,88,161,208,229,186,237,182,155,247,193,187,6,192,169,244,50,112,91,154,248,204,92,149,116,8,50,210,44,127,120,196,113,3,149,23,217,198,120,87,134,249,244,208,75,218,34,169,112,0,244,251,185,61,221,84,45,236,214,170,22,187,196,253,110,242,177,37,205,181,242,81,137,135,15,222,142,126,211,230,12,100,168,242,190,29,26,100,232,16,241,172,55,215,43,130,227,84}, {72,32,156,119,104,186,65,195,192,203,110,175,124,21,164,40,254,175,218,142,125,133,101,94,51,7,71,97,245,201,156,5,224,176,21,16,124,239,154,178,98,237,44,121,172,128,76,105,42,108,188,37,115,126,70,132,80,182,185,75,125,148,245,186,154,81,219,41,17,100,121,223,19,170,161,111,11,182,108,54,39,29,86,195,236,69,87,122,185,85,95,183,153,29,104,2,176,189,196,46,74,192,126,113,169,24,106,115,64,176,6,123,57,9,100,193,187,39,76,170,127,80,154,189,7,154,16,97,13,67,226,124,245,118,140,176,93,59,222,185,149,230,154,93,90,14,205,158,6,156,230,73,49,225,23,248,37,1,249,235,48,162,63,11,172,231,226,2,82,246,145,36,43,82,20,81,119,203,136,81,179,34,13,41,161,99,151,181,47,39,205,218,201,185,155,68,81,15,104,1,106,162,122,164,182,99,243,21,217,37,209,40,244,70,237,133,121,49,165,25,124,139,2,234,200,25,200,81,37,72,111,115,135,171,231,203,10,170,245,180,243,210,124,253,140,97,226,124,232,49,106,31,18,14,196,53,101,240,183,184,254,231,110,223,146,240,186,186,172,58,113,245,5,199,211,52,84,64,74,26,143,166,33,184,254,4,20,69,127,130,98,227,70,169,29,63,5,64,254,158,239,48,171,30,251,57,152,141,232,111,83,166,75,125,4,109,224,112,227,1,232,36,60,157,77,241,137,160,105,184,207,3,6,208,200,83,254,107,132,38,52,41,152,168,40,242,191,87,5,61,171,28,222,90,53,132,230,62,199,180,186,98,188,191,232,173,115,118,235,159,162,161,177,157,137,40,249,41,167,136,232,93,116,100,82,163,231,201,79,33,73,245,248,182,185,252,140,1,175,112,170,190,46,252,38,137,109,119,245,18,133,19,40,115,255,166,90,82,101,227,40,175,107,22,169,66,60,175,18,48,137,14,12,93,215,151,161,67,29,142,239,118,8,227,164,36,209,245,230,229,58,234,248,166,46,139,14,90,5,153,153,253,16,94,14,93,133,50,255,144,215,140,98,60,120,71,174,202,199,166,112,94,147,159,192,246,89,118,146,56,64,76,164,216,58,142,228,114,148,123,170,251,243,169,160,43,255,19,158,87,212,140,34,124,215,164,126,193,208,233,79,38,152,8,118,158,215,68,165,38,210,213,92,67,216,5,252,136,65,24,133,52,158,206,64,71,45,76,186,99,46,46,255,216,27,81,81,203,129,12,76,249,123,18,144,15,24,114,35,162,29,50,105,96,168,209,69,251,0,253,244,106,127,13,138,88,77,138,166,216,36,140,254,5,235,211,11,106,224,186,143,88,32,239,83,40,42,179,238,102,254,109,96,84,86,99,12,123,184,192,104,93,20,33,175,155,93,240,158,91,199,108,74,121,198,228,55,12,145,96,211,72,222,228,98,0,66,38,242,13,10,92,134,175,157,123,201,213,83,56,172,84,178,15,252,188,68,49,174,100,113,38,121,187,7,253,85,141,22,111,144,157,85,96,42,44,38,83,254,28,202,157,184,180,53,193,190,246,134,238,210,54,236,244,23,107,134,181,155,176,255,195,229,178,48,96,250,193,249,110,142,116,166,143,131,153,78,9,232,51,98,64,96,167,47,213,19,163,61,210,6,2,33,109,236,73,219,78,196,97,247,151,37,136,45,195,162,193,194,169,98,50,240,237,64,51,6,41,140,63,188,20,127,193,30,17,228,177,92,106,198,77,35,246,5,80,220,158,17,6,179,105,63,63,251,26,239,207,221,147,181,194,73,16,249,11,90,103,56,146,107,21,86,119,57,216,69,120,184,143,114,230,118,32,189,250,180,4,109,59,20,145,104,218,168,46,97,96,33,97,105,228,1,228,228,227,145,22,53,249,183,23,93,199,240,125,162,225,123,172,207,57,78,121,101,153,190,90,228,4,186,252,242,174,123,183,181,114,155,2,96,11,86,228,126,206,100,246,241,126,86,209,67,146,102,241,3,151,89,60,9,7,11,203,123,205,126,222,169,98,118,170,150,9,146,191,176,179,35,238,58,208,214,107,195,226,249,142,77,184,3,101,149,102,119,83,86,80,70,166,27,184,233,74,230,193,71,143,240,202,222,245,84,249,102,194,255,237,243,10,2,218,57,102,122,145,189,209,171,168,18,31,139,184,23,195,74,228,58,32,104,23,210,147,118,8,233,89,157,124,245,245,103,148,171,67,192,185,151,103,86,114,26,62,226,228,46,75,190,251,66,141,110,124,22,75,187,176,107,121,26,56,251,102,101,123,143,140,159,216,148,5,65,6,172,207,226,138,7,93,34,97,247,164,241,166,198,97,220,182,244,5,177,198,233,134,182,72,83,125,39,213,184,43,50,115,246,152,136,160,240,7,38,36,197,216,78,45,82,237,17,48,3,169,251,47,147,23,165,109,115,157,199,89,129,102,188,243,93,126,93,255,131,134,59,94,196,80,81,194,175,23,59,129,39,27,254,247,24,247,46,13,218,126,189,231,19,180,253,18,249,185,150,227,203,133,13,233,20,108,160,42,251,166,184,104,175,167,88,231,230,66,102,130,248,60,85,202,147,194,22,101,219,238,75,152,149,199,119,146,187,109,237,46,89,237,195,120,220,63,200,52,203,17,3,177,149,157,173,114,75,98,163,125,231,144,67,223,56,55,43,112,33,174,77,30,41,133,100,167,56,112,57,85,207,92,97,174,238,14,96,89,130,80,173,237,248,153,76,44,31,56,248,243,112,110,225,127,136,130,167,95,73,45,147,19,25,157,7,103,58,148,189,227,13,64,92,85,135,128,50,40,97,224,253,191,153,26,104,171,192,73,248,146,14,117,193,100,139,192,100,85,124,18,207,96,184,207,39,60,161,246,71,90,27,62,229,37,171,37,235,255,182,64,244,197,149,203,53,81,27,104,234,152,90,135,251,243,110,81,151,128,69,191,57,0,149,4,214,11,54,179,24,198,4,179,111,210,152,47,173,153,23,235,46,108,122,219,76,174,43,26,64,224,226,65,225,168,166,152,97,119,109,191,33,206,35,208,222,119,249,19,118,49,141,108,234,153,197,11,140,71,189,146,82,35,174,15,241,192,183,52,177,174,0,91,100,171,240,11,121,215,90,135,186,236,119,39,43,227,211,95,152,115,114,125,16,39,173,105,206,178,212,111,65,213,13,168,204,89,157,123,225,134,106,101,107,161,33,209,58,189,84,147,2,131,34,234,212,244,251,84,185,188,40,24,13,117,39,18,10,151,202,83,218,118,208,77,20,20,211,188,75,95,40,65,53,57,91,103,6,58,105,65,181,76,247,191,189,243,55,190,238,221,17,154,9,71,214,231,92,31,164,173,51,10,212,66,135,25,155,163,173,179,62,229,125,132,126,35,136,25,212,78,14,243,35,151,54,2,87,126,135,156,39,27,2,177,102,159,160,185,31,91,246,146,248,200,30,245,85,0,140,51,244,205,68,156,64,121,227,52,255,79,57,143,214,84,234,36,234,38,69,76,95,220,187,4,66,251,168,77,68,8,85,244,162,238,86,151,209,82,193,138,207,112,206,153,71,10,190,131,79,200,211,45,100,237,244,206,115,70,59,84,212,127,237,141,172,112,133,46,125,14,255,229,105,144,33,108,49,189,139,103,60,93,104,140,3,102,166,84,157,79,67,43,42,233,148,68,131,75,170,95,162,239,248,179,43,221,198,211,35,99,114,102,24,234,163,129,218,85,176,212,147,154,129,17,181,235,87,242,194,178,179,215,32,162,235,237,236,250,9,46,202,202,144,95,181,181,236,240,1,186,1,70,193,248,251,4,163,10,111,24,83,223,102,196,192,100,162,141,36,47,11,175,244,175,99,42,160,126,51,26,13,131,134,204,156,16,175,74,19,160,137,25,73,8,13,22,174,71,241,209,192,227,234,88,200,233,110,117,174,145,116,208,144,126,250,21,100,32,148,95,225,108,86,163,197,120,244,79,108,206,155,244,154,245,77,251,155,0,92,254,182,6,157,66,115,213,11,27,255,224,98,251,134,231,227,39,25,111,205,81,123,105,96,155,225,192,176,142,11,161,122,224,18,120,92,46,247,138,200,158,71,120,46,107,142,167,231,94,51,224,177,235,117,14,132,219,153,220,89,114,147,242,210,33,49,125,122,146,81,236,225,57,152,124,237,63,202,219,72,202,210,22,61,19,174,135,248,172,41,200,110,139,87,53,64,67,243,213,71,121,215,51,109,106,216,207,243,97,41,26,63,144,212,225,246,98,251,220,27,3,187,102,76,186,26,189,117,146,178,141,160,61,142,194,143,28,56,48,54,205,100,245,158,51,79,246,72,223,206,116,241,162,14,135,170,141,2,191,224,234,5,120,188,27,2,252,102,75,25,34,25,48,54,223,170,195,189,194,178,132,153,103,78,173,128,72,237,131,203,62,135,182,222,214,144,163,22,199,235,3,183,203,62,143,211,221,219,221,74,25,65,181,190,147,237,132,234,52,105,162,171,99,139,57,166,49,123,66,48,221,17,25,145,58,209,149,0,71,228,213,79,39,190,182,228,39,11,45,42,227,102,23,164,247,81,60,54,159,197,12,230,116,99,165,128,108,42,178,77,91,6,255,61,102,247,162,147,55,250,136,170,248,185,115,74,179,109,75,108,255,183,35,129,13,179,165,4,69,143,251,209,85,48,124,237,222,93,62,22,168,47,29,166,113,49,148,33,15,189,120,16,156,193,52,179,86,213,94,170,147,84,132,238,237,240,90,134,229,15,103,42,13,170,180,103,179,83,130,182,252,120,65,21,214,238,130,3,89,232,171,86,88,232,1,216,165,87,182,20,172,22,31,44,8,35,53,166,114,24,15,110,231,189,24,116,33,151,25,36,74,12,127,62,208,191,65,22,78,185,220,227,120,241,135,40,209,100,42,30,230,16,215,194,58,142,186,36,211,111,197,246,22,146,195,93,225,114,130,141,91,242,203,69,7,141,64,75,105,21,164,119,136,60,226,213,94,84,116,171,231,114,186,167,47,165,112,40,0,172,108,158,21,107,214,240,183,191,166,122,61,179,57,71,153,164,111,140,203,124,185,123,243,84,171,27,122,103,153,141,125,190,222,41,132,63,135,159,158,226,147,191,164,175,44,118,25,160,140,71,6,57,144,141,11,30,169,78,111,118,150,234,15,213,57,11,40,56,96,156,41,85,77,104,65,232,109,112,45,243,76,218,31,106,189,18,6,19,205,85,100,87,209,85,54,11,145,59,239,57,172,141,111,139,97,236,222,47,127,18,16,237,222,10,22,180,17,236,143,179,228,76,46,59,76,62,126,178,84,162,105,206,183,194,128,206,201,113,244,253,85,6,67,214,193,224,245,201,181,107,214,200,108,122,230,121,234,238,164,128,28,155,132,83,204,137,163,110,247,122,158,84,212,213,166,161,198,133,112,141,186,77,46,0,220,228,225,210,6,91,55,168,180,161,13,37,231,56,72,180,36,6,37,249,147,93,128,182,40,150,221,59,114,178,228,70,73,30,89,55,108,228,230,157,49,5,95,105,76,0,199,124,176,71,197,117,127,143,46,208,173,163,79,58,208,64,111,90,8,110,185,86,238,218,68,69,107,163,203,213,123,204,5,231,150,215,239,190,212,184,0,114,175,221,4,135,28,194,137,89,188,2,229,161,70,208,66,158,11,50,58,212,251,178,23,252,175,21,84,245,117,6,135,247,148,160,212,125,195,219,71,161,156,221,61,232,137,154,111,216,51,54,53,136,158,20,120,88,227,87,145,97,11,251,205,33,239,73,148,172,253,144,104,56,106,40,99,192,47,58,95,255,202,117,125,8,103,92,63,69,124,121,114,120,82,38,211,201,244,246,73,164,144,0,104,54,19,95,206,166,172,225,137,112,165,155,237,141,17,28,255,149,182,240,21,164,55,44,129,47,59,249,203,0,245,191,83,254,106,15,13,185,192,105,111,75,17,137,96,229,74,130,190,14,121,133,155,121,9,151,95,120,79,50,107,118,240,216,87,180,120,67,156,219,187,129,70,212,95,207,208,153,43,34,239,9,201,222,165,33,154,120,69,149,62,157,105,121,234,128,80,124,107,81,99,104,97,145,10,42,208,59,62,87,177,27,26,71,223,95,179,250,128,75,3,129,222,5,104,150,57,162,35,54,101,33,41,29,116,132,244,43,234,234,176,254,229,118,95,134,84,94,43,197,187,61,125,23,136,86,230,50,200,115,157,243,197,67,68,187,50,36,209,181,37,198,73,147,105,207,100,88,96,31,89,212,234,130,183,216,247,136,100,16,22,89,105,216,82,65,178,123,168,127,104,122,201,241,133,166,85,95,101,138,151,168,70,46,60,235,177,136,195,219,217,137,209,202,84,193,117,114,139,104,217,232,117,73,187,187,189,244,47,142,69,255,155,18,62,214,11,228,24,229,98,99,105,180,216,41,36,225,248,163,213,188,95,62,211,3,231,186,189,139,123,221,108,37,154,136,190,6,8,149,101,11,194,241,7,214,80,103,213,108,56,66,57,155,142,234,100,27,61,142,11,148,101,180,197,195,180,51,41,81,114,91,103,136,55,183,187,95,50,99,155,47,135,173,12,182,145,237,76,112,12,19,84,7,183,0,179,132,200,209,0,168,189,18,51,115,230,58,153,109,104,249,58,169,191,222,191,199,41,106,203,238,143,214,114,228,35,45,229,45,161,21,57,51,5,61,216,192,9,47,185,94,249,11,175,102,204,154,181,71,10,16,111,137,169,60,28,112,37,119,255,0,206,9,44,196,60,221,176,22,181,190,36,42,181,117,235,136,137,163,102,14,188,7,141,115,240,227,255,37,52,31,234,91,46,212,192,251,78,109,16,254,179,173,130,5,49,160,85,19,72,236,14,32,142,166,129,233,63,202,143,255,15,44,196,50,106,66,173,129,69,206,45,139,118,12,3,134,66,29,95,74,47,140,6,3,37,221,89,73,57,57,246,253,43,231,98,217,244,39,254,157,225,84,216,96,219,27,219,199,80,70,137,32,239,80,119,26,140,203,201,67,160,232,254,178,90,46,228,251,206,245,185,171,117,187,219,174,142,22,24,57,141,128,175,191,110,202,164,103,136,33,154,231,106,133,83,172,61,179,249,48,83,27,71,107,245,102,209,244,180,178,156,117,241,205,149,23,185,243,238,242,146,35,187,104,10,200,183,0,249,97,139,97,28,37,164,85,124,68,243,97,98,114,39,106,197,102,194,119,164,85,65,117,41,73,230,47,43,136,225,77,127,193,252,54,121,66,197,12,74,204,205,244,234,14,254,15,177,113,76,119,141,185,182,28,208,127,238,17,96,100,44,9,66,102,120,214,162,140,92,84,74,110,57,15,252,171,55,34,57,189,104,215,188,218,72,223,80,234,163,217,170,0,13,21,196,4,100,140,112,125,143,172,195,99,107,144,17,227,135,218,58,23,153,174,80,105,175,81,227,65,64,106,127,140,232,229,66,244,52,39,34,183,41,234,230,142,49,6,234,96,131,220,243,219,221,186,149,248,0,93,11,32,202,95,188,114,133,75,5,212,83,93,140,71,228,134,150,26,129,20,152,38,67,97,106,201,129,63,204,208,107,203,17,164,225,244,88,2,32,25,216,29,70,132,174,188,191,201,38,159,50,1,143,37,229,215,48,43,161,244,51,191,172,97,208,128,78,250,158,35,232,19,179,154,202,194,145,115,198,202,132,202,67,144,41,141,251,76,78,143,119,0,242,200,53,193,27,172,125,130,39,130,90,149,248,157,40,217,47,76,85,176,165,6,95,116,177,111,2,195,4,67,44,33,159,75,199,19,173,141,136,67,11,73,213,64,10,2,198,15,21,126,244,160,25,53,145,42,82,21,11,102,91,139,141,106,130,186,233,106,220,125,162,17,182,107,249,215,159,113,238,118,215,96,211,88,55,148,137,158,22,187,187,146,151,126,206,133,253,148,84,225,31,124,21,156,208,78,71,65,18,69,229,151,171,242,181,140,2,92,186,223,51,193,1,179,32,111,170,223,51,172,246,146,151,146,33,229,107,213,235,226,196,163,228,219,177,164,168,20,140,50,152,178,128,109,126,106,64,102,17,239,27,197,190,116,174,199,208,39,236,38,225,166,142,79,53,121,173,207,149,154,185,53,28,54,67,134,15,6,57,195,200,9,126,94,0,73,117,202,177,108,217,199,126,104,124,112,178,166,230,209,72,98,34,141,124,31,110,92,35,95,231,100,104,179,221,248,43,216,26,223,100,118,184,216,145,53,48,51,97,199,155,231,208,166,220,117,29,171,59,237,147,158,247,98,174,61,59,33,52,131,147,106,61,199,203,241,250,86,55,112,210,31,135,73,169,41,240,162,34,104,64,65,180,73,123,17,66,73,161,197,225,249,228,160,194,152,43,139,156,44,191,183,110,223,180,102,123,236,184,243,209,252,7,212,130,155,177,211,254,162,250,24,247,163,106,247,234,215,236,120,247,143,246,225,122,19,70,99,230,35,39,249,145,170,187,91,118,13,38,114,155}, } ; static void test_decode_953xint32_impl(long long impl) { unsigned char *x = test_decode_953xint32_x; unsigned char *s = test_decode_953xint32_s; unsigned char *x2 = test_decode_953xint32_x2; unsigned char *s2 = test_decode_953xint32_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_953xint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_953xint32(impl); printf("decode_953xint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_953xint32_implementation(impl),ntruprime_dispatch_decode_953xint32_compiler(impl)); } else { crypto_decode = ntruprime_decode_953xint32; printf("decode_953xint32 selected implementation %s compiler %s\n",ntruprime_decode_953xint32_implementation(),ntruprime_decode_953xint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_953xint32_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_953xint32_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_953xint32_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_953xint32_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_953xint32_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_953xint32_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_953xint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"953xint32")) return; storage_decode_953xint32_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_953xint32_x = aligned(storage_decode_953xint32_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_953xint32_s = callocplus(crypto_decode_STRBYTES); test_decode_953xint32_s = aligned(storage_decode_953xint32_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_953xint32_x2 = callocplus(maxalloc); test_decode_953xint32_x2 = aligned(storage_decode_953xint32_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_953xint32_s2 = callocplus(maxalloc); test_decode_953xint32_s2 = aligned(storage_decode_953xint32_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_953xint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_953xint32();++impl) forked(test_decode_953xint32_impl,impl); ++test_decode_953xint32_x; ++test_decode_953xint32_s; ++test_decode_953xint32_x2; ++test_decode_953xint32_s2; } free(storage_decode_953xint32_s2); free(storage_decode_953xint32_x2); free(storage_decode_953xint32_s); free(storage_decode_953xint32_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_decode_int16.c0000644000000000000000000001411414705505543022302 0ustar rootroot/* ----- decode/int16, derived from supercop/crypto_decode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *decode_int16_checksums[] = { "7f59625680d504bdd9bff199c54792455ddfd077779962836a92543c88bea2fa", "cdc27065db4d2f6e2356756b9a0bae31699e6255f0caf0011ba18ef3d2229ed8", } ; static void (*crypto_decode)(void *,const unsigned char *); #define crypto_decode_STRBYTES ntruprime_decode_int16_STRBYTES #define crypto_decode_ITEMS ntruprime_decode_int16_ITEMS #define crypto_decode_ITEMBYTES ntruprime_decode_int16_ITEMBYTES static void *storage_decode_int16_x; static unsigned char *test_decode_int16_x; static void *storage_decode_int16_s; static unsigned char *test_decode_int16_s; static void *storage_decode_int16_x2; static unsigned char *test_decode_int16_x2; static void *storage_decode_int16_s2; static unsigned char *test_decode_int16_s2; #define precomputed_decode_int16_NUM 16 static const uint16_t precomputed_decode_int16_x[precomputed_decode_int16_NUM][crypto_decode_ITEMS] = { {27282}, {6324}, {29636}, {29418}, {57190}, {51674}, {52177}, {45544}, {49890}, {63047}, {21664}, {40722}, {28944}, {61677}, {22244}, {5118}, } ; static const unsigned char precomputed_decode_int16_s[precomputed_decode_int16_NUM][crypto_decode_STRBYTES] = { {146,106}, {180,24}, {196,115}, {234,114}, {102,223}, {218,201}, {209,203}, {232,177}, {226,194}, {71,246}, {160,84}, {18,159}, {16,113}, {237,240}, {228,86}, {254,19}, } ; static void test_decode_int16_impl(long long impl) { unsigned char *x = test_decode_int16_x; unsigned char *s = test_decode_int16_s; unsigned char *x2 = test_decode_int16_x2; unsigned char *s2 = test_decode_int16_s2; long long xwords = crypto_decode_ITEMS; long long xlen; long long slen = crypto_decode_STRBYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_decode_int16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_decode = ntruprime_dispatch_decode_int16(impl); printf("decode_int16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_decode_int16_implementation(impl),ntruprime_dispatch_decode_int16_compiler(impl)); } else { crypto_decode = ntruprime_decode_int16; printf("decode_int16 selected implementation %s compiler %s\n",ntruprime_decode_int16_implementation(),ntruprime_decode_int16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_decode_ITEMBYTES; output_prepare(x2,x,xlen); input_prepare(s2,s,slen); secret(s,slen); crypto_decode(x,s); public(s,slen); public(x,xlen); endianness(x,xwords,crypto_decode_ITEMBYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_decode"); input_compare(s2,s,slen,"crypto_decode"); double_canary(x2,x,xlen); double_canary(s2,s,slen); secret(s2,slen); crypto_decode(x2,s2); public(s2,slen); public(x2,xlen); endianness(x2,xwords,crypto_decode_ITEMBYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_decode is nondeterministic\n"); } checksum_expected(decode_int16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_decode_int16_NUM;++precomp) { output_prepare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); input_prepare(s2,s,crypto_decode_STRBYTES); memcpy(s,precomputed_decode_int16_s[precomp],crypto_decode_STRBYTES); memcpy(s2,precomputed_decode_int16_s[precomp],crypto_decode_STRBYTES); crypto_decode(x,s); if (memcmp(x,precomputed_decode_int16_x[precomp],crypto_decode_ITEMS*crypto_decode_ITEMBYTES)) { fail("failure: crypto_decode fails precomputed test vectors\n"); printf("expected x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",((unsigned char *) precomputed_decode_int16_x[precomp])[pos]); printf("\n"); printf("received x: "); for (long long pos = 0;pos < crypto_decode_ITEMS*crypto_decode_ITEMBYTES;++pos) printf("%02x",x[pos]); printf("\n"); } output_compare(x2,x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES,"crypto_decode"); input_compare(s2,s,crypto_decode_STRBYTES,"crypto_decode"); } } void test_decode_int16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"decode")) return; if (targetp && strcmp(targetp,"int16")) return; storage_decode_int16_x = callocplus(crypto_decode_ITEMS*crypto_decode_ITEMBYTES); test_decode_int16_x = aligned(storage_decode_int16_x,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); if (crypto_decode_ITEMS*crypto_decode_ITEMBYTES > maxalloc) maxalloc = crypto_decode_ITEMS*crypto_decode_ITEMBYTES; storage_decode_int16_s = callocplus(crypto_decode_STRBYTES); test_decode_int16_s = aligned(storage_decode_int16_s,crypto_decode_STRBYTES); if (crypto_decode_STRBYTES > maxalloc) maxalloc = crypto_decode_STRBYTES; storage_decode_int16_x2 = callocplus(maxalloc); test_decode_int16_x2 = aligned(storage_decode_int16_x2,crypto_decode_ITEMS*crypto_decode_ITEMBYTES); storage_decode_int16_s2 = callocplus(maxalloc); test_decode_int16_s2 = aligned(storage_decode_int16_s2,crypto_decode_STRBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("decode_int16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_decode_int16();++impl) forked(test_decode_int16_impl,impl); ++test_decode_int16_x; ++test_decode_int16_s; ++test_decode_int16_x2; ++test_decode_int16_s2; } free(storage_decode_int16_s2); free(storage_decode_int16_x2); free(storage_decode_int16_s); free(storage_decode_int16_x); } #undef crypto_decode_STRBYTES #undef crypto_decode_ITEMS #undef crypto_decode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1013x2393.c0000644000000000000000000014443714705505543022464 0ustar rootroot/* ----- encode/1013x2393, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1013x2393_checksums[] = { "7bd429942f70bf35593f20e0a981927eea259a8517f2c7c8da975da324e6a762", "3e1a3c979172f41df76417f9ca1a180968aae86857b6e9194f885622e33ac44c", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1013x2393_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1013x2393_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1013x2393_ITEMBYTES static void *storage_encode_1013x2393_s; static unsigned char *test_encode_1013x2393_s; static void *storage_encode_1013x2393_x; static unsigned char *test_encode_1013x2393_x; static void *storage_encode_1013x2393_s2; static unsigned char *test_encode_1013x2393_s2; static void *storage_encode_1013x2393_x2; static unsigned char *test_encode_1013x2393_x2; #define precomputed_encode_1013x2393_NUM 4 static const unsigned char precomputed_encode_1013x2393_s[precomputed_encode_1013x2393_NUM][crypto_encode_STRBYTES] = { {197,185,15,210,99,100,49,138,107,58,58,117,197,208,201,61,132,190,165,172,85,240,58,133,165,149,52,31,2,149,65,147,59,103,45,126,159,146,134,34,189,46,219,209,178,6,109,191,132,251,19,71,107,109,246,242,22,76,129,56,139,124,106,148,103,242,140,162,179,173,218,240,23,244,208,113,158,21,68,130,24,197,129,186,37,145,103,202,184,193,120,39,47,113,117,117,185,254,43,46,60,148,232,26,124,227,30,158,30,30,99,242,79,145,122,223,247,143,190,79,170,175,109,161,73,253,129,215,80,132,14,14,166,207,81,18,251,136,192,224,161,169,139,149,211,236,152,24,157,69,173,71,191,224,188,118,239,37,202,4,192,80,94,42,146,226,98,205,27,205,131,149,10,0,241,35,55,199,43,65,169,40,142,201,112,234,171,142,98,226,204,97,34,33,40,225,187,91,117,249,104,222,100,152,214,46,249,215,30,152,188,220,177,26,167,46,213,128,148,7,178,93,147,80,207,196,114,57,88,30,255,148,232,109,147,212,79,180,118,159,180,82,96,161,221,170,242,231,163,216,30,232,150,24,90,105,72,172,203,159,253,119,28,245,43,30,184,64,18,223,170,249,139,204,26,24,14,186,76,68,131,87,22,224,60,248,71,49,121,126,125,120,103,141,161,112,155,128,158,220,223,180,60,148,7,233,74,182,10,114,230,235,60,196,111,124,178,44,216,224,117,230,76,86,97,118,29,71,203,250,79,117,231,4,85,152,248,201,18,114,10,19,52,86,238,172,85,138,159,105,52,37,138,222,204,23,207,50,173,164,206,52,34,180,207,123,153,33,162,90,91,218,200,227,83,26,29,83,127,190,129,249,35,203,181,102,49,115,111,1,231,11,145,119,6,121,111,224,97,219,23,197,31,30,75,245,203,207,209,108,48,178,236,154,170,222,145,88,165,82,128,65,251,36,143,119,242,158,248,31,232,175,136,236,158,121,201,124,136,9,177,232,234,75,175,97,212,151,144,16,34,191,114,25,22,149,136,139,125,234,199,183,7,27,229,52,237,157,206,201,168,214,29,62,135,10,233,115,140,207,173,141,175,214,214,7,217,226,71,107,233,213,87,131,188,32,107,4,197,54,242,82,128,49,142,2,157,95,243,125,105,217,196,177,246,92,221,81,10,111,212,191,238,41,147,250,98,6,25,34,215,248,71,157,132,50,26,11,105,200,231,110,57,46,113,191,20,249,35,238,255,248,202,38,113,37,165,181,125,182,220,42,110,230,179,233,126,12,86,12,74,185,229,10,181,28,51,119,30,76,207,124,115,197,211,54,249,134,124,4,175,102,142,132,56,138,164,37,89,71,254,137,31,160,67,15,106,208,59,42,143,97,88,73,227,55,221,114,231,19,181,219,203,230,253,167,122,114,87,37,244,48,141,222,119,62,47,183,56,140,118,49,229,35,246,91,149,233,115,188,105,68,116,5,2,232,231,216,103,229,147,235,195,98,6,175,151,64,46,252,61,72,1,81,91,210,207,137,108,90,56,255,147,27,191,235,31,0,40,233,159,133,130,28,58,28,156,152,73,96,6,95,13,112,181,52,163,111,137,222,194,166,254,168,107,103,184,251,147,52,2,150,112,155,43,235,189,195,98,207,88,4,95,211,239,189,246,7,15,156,52,222,203,145,16,118,182,228,62,159,14,25,36,62,169,220,2,166,172,59,92,152,48,15,84,127,89,44,106,98,139,105,55,238,37,103,175,147,56,127,73,166,195,4,231,102,195,92,122,38,11,126,160,23,149,144,26,121,11,69,220,11,29,142,49,104,16,178,104,21,89,66,49,45,6,211,65,172,187,85,53,241,28,217,123,153,97,47,125,132,207,155,92,24,108,61,212,254,242,98,142,250,244,188,253,215,88,229,227,13,117,233,231,60,97,29,0,52,83,161,94,207,222,54,177,230,47,13,5,182,248,168,115,156,135,75,224,197,248,83,50,223,210,212,74,55,64,68,114,173,239,8,213,93,113,221,153,212,110,117,35,202,20,235,140,29,182,108,238,99,172,175,81,233,121,191,155,248,47,206,105,129,164,42,13,132,95,124,155,230,155,55,225,48,105,250,126,100,147,132,192,31,81,240,102,200,109,14,184,94,98,22,21,239,133,132,48,173,222,157,56,194,12,255,16,3,38,66,27,212,89,248,81,35,148,101,143,186,21,32,85,95,135,154,25,14,88,109,47,77,186,41,224,63,20,241,174,160,134,52,14,86,142,163,4,98,249,201,223,193,118,163,255,121,232,222,135,4,177,6,231,181,246,136,60,81,6,149,224,185,133,226,91,240,2,230,118,45,216,179,49,214,202,112,64,208,17,149,98,142,44,56,7,126,205,162,123,147,141,165,198,78,85,109,19,218,187,231,163,196,242,147,121,7,112,93,203,180,205,18,76,179,162,40,197,108,13,29,213,133,47,202,67,126,174,234,78,218,249,33,3,3,103,195,22,23,66,252,174,221,29,197,127,222,198,247,115,35,53,99,27,202,149,35,161,138,253,105,18,84,169,71,166,159,4,227,49,109,185,166,252,126,195,30,224,206,137,91,211,159,62,156,191,167,74,100,143,251,86,190,245,243,168,149,14,215,210,203,136,146,247,217,139,176,255,177,139,212,12,169,193,180,116,105,31,33,60,56,191,230,193,155,90,50,163,208,126,214,75,104,14,193,163,125,141,246,252,173,70,33,65,231,233,244,121,219,147,254,87,212,128,22,32,159,18,207,231,147,149,72,170,184,99,186,211,118,252,84,134,47,140,181,79,21,116,135,242,21,11,120,232,58,222,159,219,247,84,6,205,47,144,236,238,164,30,196,182,251,136,116,197,155,218,65,4,74,190,29,86,17,222,198,216,63,123,180,206,190,41,202,68,226,234,127,161,1,7,117,231,168,243,224,141,120,76,225,32,43,182,217,196,27,138,92,177,96,76,134,143,105,212,72,240,216,59,37,123,199,162,20,104,115,39,80,104,114,76,90,210,136,186,253,133,119,61,6,79,12,219,24,32,29,236,142,224,15,182,251,107,82,148,114,75,10,83,124,51,160,124,254,181,155,230,153,102,146,37,232,101,4,111,145,115,255,160,166,176,185,230,10,87,85,152,88,133,144,83,94,120,45,172,127,103,10,87,68,201,157,184,229,129,146,142,134,7,17,229,209,54,77,170,55,2}, {47,136,70,163,212,40,70,189,119,110,248,216,171,51,181,61,152,239,80,16,244,201,221,140,129,207,11,220,244,237,74,72,193,67,42,249,67,44,247,180,127,22,222,223,210,94,20,35,159,194,26,22,29,191,89,140,222,250,133,251,67,165,68,1,10,181,87,139,21,255,249,7,167,95,169,152,208,115,59,251,11,15,37,27,48,177,217,224,134,108,67,40,104,122,170,252,55,75,68,31,179,136,234,238,72,191,115,8,140,250,8,5,208,58,123,108,204,230,53,157,45,211,32,191,54,28,14,223,23,213,209,130,90,249,129,215,109,135,24,102,211,130,255,55,225,218,187,254,174,202,216,144,137,107,6,84,63,95,136,182,214,62,219,95,198,199,194,123,242,8,5,26,185,21,23,87,63,50,61,123,116,101,13,70,183,109,46,108,79,1,148,173,46,181,5,74,107,208,150,143,73,25,65,154,176,191,105,179,51,51,220,246,122,28,166,33,133,196,192,10,61,125,147,47,161,10,140,18,200,50,92,134,254,13,156,165,230,103,224,124,209,105,206,7,246,162,202,41,78,204,251,19,79,137,62,22,227,16,232,246,40,58,250,216,120,233,5,38,61,207,94,58,32,196,161,128,56,88,216,234,210,136,138,173,156,207,150,167,217,165,116,229,192,148,206,105,176,54,84,254,77,194,232,172,140,204,77,102,225,243,97,255,157,231,150,92,193,234,199,5,249,46,178,80,85,145,96,95,46,132,240,69,53,83,58,129,107,199,239,1,131,249,25,238,228,228,24,68,1,175,181,155,12,13,44,247,193,6,2,223,15,229,89,50,165,61,185,88,231,52,113,208,115,198,135,154,154,89,132,245,217,135,143,217,151,215,174,29,243,226,132,33,95,141,18,166,192,177,28,46,215,126,118,48,8,142,47,143,175,4,233,218,248,126,248,207,206,158,45,13,23,124,213,225,142,241,19,179,157,41,123,144,248,53,151,88,238,4,215,231,45,99,196,86,86,193,247,227,95,115,135,48,38,22,72,177,17,235,243,99,2,2,31,111,236,37,163,198,210,176,198,239,161,173,142,204,108,14,193,168,145,176,122,38,29,80,216,77,147,85,84,139,203,24,218,228,82,175,167,251,186,88,143,236,10,203,228,170,239,185,160,131,199,109,206,46,103,12,82,162,223,235,111,197,155,214,141,3,84,92,220,20,90,169,65,43,39,37,203,71,241,214,60,147,197,52,56,75,8,60,13,118,244,106,205,76,229,70,166,145,235,10,72,92,102,141,253,119,250,33,100,141,156,224,221,173,90,15,191,132,17,107,94,21,124,254,132,42,25,251,63,154,189,80,213,222,5,49,47,134,244,180,171,233,164,133,69,184,217,123,18,169,217,17,248,215,120,2,116,150,24,139,6,237,18,54,27,15,67,38,20,163,172,114,170,133,7,42,214,221,136,209,230,134,120,228,201,161,184,202,22,238,58,225,61,19,211,112,120,207,100,249,144,181,142,240,89,113,89,138,64,245,24,41,230,17,248,46,151,115,47,85,74,38,128,37,223,63,93,61,170,50,158,119,91,156,0,206,193,119,200,162,245,81,237,62,67,150,214,223,142,165,1,62,81,53,165,235,130,234,59,126,41,217,165,163,159,17,168,1,20,15,96,252,14,226,153,174,224,127,23,178,134,219,74,166,77,93,41,75,216,54,109,73,144,10,169,139,73,1,155,75,39,17,204,50,248,60,142,169,135,124,33,215,119,50,167,80,189,113,49,93,232,243,206,109,108,213,123,210,45,123,3,252,1,248,23,220,133,194,227,165,92,181,173,17,67,183,98,31,186,209,231,198,136,185,231,86,98,17,223,55,244,188,243,34,191,65,169,195,26,156,40,142,211,92,95,84,110,14,185,108,160,151,2,37,6,6,29,46,179,177,212,101,137,120,92,207,228,207,180,108,139,219,219,140,200,90,41,187,196,62,182,143,189,88,218,136,188,210,4,135,94,43,207,115,27,238,185,244,126,251,115,19,247,180,221,135,199,229,181,194,9,238,27,235,216,210,166,24,136,251,248,238,113,158,219,185,111,124,121,0,48,59,49,193,199,152,163,117,112,22,179,17,145,28,24,252,42,36,125,149,251,153,250,6,9,18,82,125,65,31,97,157,80,190,215,173,227,154,76,197,104,0,53,214,89,139,48,138,190,14,158,16,55,22,186,208,251,24,33,78,55,217,191,223,82,235,137,220,2,50,90,193,32,162,218,32,147,27,104,251,165,12,102,64,106,117,119,204,5,217,27,137,5,110,122,47,3,160,23,88,55,125,219,249,10,1,158,241,36,23,164,209,147,22,39,232,149,211,214,152,119,253,41,138,243,26,127,247,147,104,49,46,246,26,209,96,67,209,146,84,104,24,195,102,166,192,71,244,247,183,145,97,35,153,54,118,122,55,69,92,64,158,13,21,206,228,124,101,102,245,173,99,128,198,230,96,133,162,140,48,210,218,6,131,188,154,249,241,77,178,16,189,136,184,120,161,227,125,245,28,68,233,236,245,91,166,207,210,237,132,132,102,97,169,181,114,178,88,147,252,104,174,240,193,215,142,93,179,109,51,160,51,179,4,200,222,246,237,162,106,150,156,193,223,59,230,169,30,229,162,8,28,18,95,119,146,67,153,59,238,146,0,101,92,220,147,213,195,174,227,156,139,81,172,143,151,235,241,179,238,105,231,107,86,34,186,21,99,100,175,173,100,171,102,139,29,26,82,191,210,225,59,150,207,19,78,113,115,11,68,82,10,154,5,157,250,72,49,74,108,186,255,101,122,68,171,194,245,190,50,121,121,225,238,150,19,17,248,70,97,149,41,11,243,150,46,29,226,29,224,198,242,82,70,183,178,136,36,219,52,39,103,87,123,60,129,213,58,56,247,169,227,169,161,218,147,34,54,66,162,241,245,45,202,12,3,200,163,215,214,215,84,75,100,55,38,112,241,98,42,185,71,74,204,57,148,139,196,189,222,236,133,163,6,167,29,81,110,142,240,117,26,4,5,234,53,199,135,68,62,115,34,219,192,34,153,253,146,184,178,73,105,151,197,88,100,214,194,80,49,229,28,78,29,44,23,221,10,193,18,69,0,252,199,226,78,141,162,149,159,99,16,97,237,49,115,23,159,138,93,190,85,37,244,29,228,180,28,24,83,210,110,77,128,95,86,215,120,51,54,0}, {57,52,190,196,49,58,159,252,232,73,87,3,169,205,203,136,109,77,70,179,1,120,236,223,107,225,27,234,45,163,179,175,216,96,14,140,144,17,72,1,64,82,163,133,66,19,150,169,125,161,162,39,146,60,136,157,170,106,106,113,245,102,236,173,131,229,219,168,146,218,47,8,172,224,66,198,75,186,46,114,191,195,4,170,172,37,35,21,18,229,164,71,198,244,22,252,243,92,47,237,29,211,62,123,170,131,102,103,172,177,89,18,105,200,47,218,123,234,107,21,151,206,186,24,138,255,61,0,69,5,177,137,221,243,248,4,254,147,212,1,122,126,49,187,241,219,119,153,114,247,242,148,61,66,34,127,188,57,215,241,38,77,111,144,248,107,252,196,87,205,160,99,178,48,215,219,0,5,34,254,158,41,165,206,96,81,0,176,157,74,197,55,38,151,167,168,220,10,162,116,202,249,172,40,174,37,184,147,240,33,231,42,3,197,39,182,97,195,253,171,83,71,88,250,215,169,163,62,53,214,231,56,137,75,52,170,214,170,134,145,0,57,93,55,12,217,114,124,0,59,25,213,187,98,74,108,13,21,179,187,38,28,48,69,2,126,114,48,182,178,174,178,230,41,116,72,106,245,63,213,132,148,45,128,87,49,20,149,232,133,197,248,240,0,197,208,119,51,12,18,131,132,98,181,215,187,193,118,104,6,213,1,172,227,14,150,254,83,138,102,67,187,39,204,22,174,159,39,209,56,151,65,245,119,82,33,61,14,40,105,248,98,196,141,150,75,128,94,16,3,131,157,229,66,52,59,16,177,30,95,24,122,164,230,105,174,108,167,113,138,150,93,230,27,77,64,144,248,87,7,102,53,49,74,203,187,230,200,14,73,228,203,48,218,60,17,108,141,142,123,84,33,229,54,250,180,138,84,221,2,100,143,102,206,1,10,166,235,217,9,78,44,128,148,236,24,251,77,38,165,199,119,123,10,112,73,247,244,93,99,176,226,173,147,213,221,246,8,16,210,12,12,120,33,79,6,119,175,223,19,224,190,226,148,65,66,189,206,133,209,153,222,108,236,46,29,53,176,220,16,255,230,103,157,255,48,212,34,251,40,37,173,54,140,109,19,34,32,52,197,127,253,224,176,124,108,182,174,240,225,73,121,90,42,21,15,245,154,114,48,88,160,203,150,30,225,89,140,46,148,93,45,11,228,178,0,205,176,113,165,62,146,145,126,250,87,243,44,133,200,107,43,212,103,9,102,147,226,37,202,34,5,63,229,230,113,209,196,231,17,226,110,221,189,254,236,88,140,121,49,245,6,156,73,231,227,197,255,54,5,89,214,112,209,27,83,237,128,245,57,134,148,166,118,149,60,78,69,33,202,49,93,103,228,168,114,8,82,216,33,247,62,140,105,230,115,221,109,58,79,238,111,141,32,25,155,253,63,235,217,53,53,115,127,60,254,249,228,205,130,144,231,176,48,51,19,198,233,89,246,116,108,17,152,193,107,103,80,38,6,65,166,110,213,49,26,196,72,10,199,198,207,102,119,190,5,71,246,164,167,73,11,3,220,223,147,149,47,165,156,204,251,45,62,10,198,204,35,173,6,52,148,213,15,34,122,193,14,125,134,121,240,148,157,219,234,133,68,51,94,224,21,7,44,193,233,0,99,221,89,56,193,0,118,130,101,40,52,7,16,80,174,169,86,65,73,34,84,195,133,11,13,255,63,220,23,123,87,238,150,8,254,74,130,113,153,50,177,11,247,100,30,28,220,218,45,180,140,135,101,112,155,101,20,240,28,186,3,18,201,117,154,167,170,128,82,234,166,191,203,104,122,241,41,18,75,74,60,99,197,83,59,89,60,32,20,218,162,156,59,195,127,165,159,85,69,179,121,163,109,208,7,211,58,238,138,139,225,129,206,13,251,90,234,242,92,83,221,221,108,216,218,66,163,160,126,239,72,54,64,15,35,150,194,89,223,192,96,252,132,241,87,55,192,22,8,189,243,183,15,55,35,233,74,249,58,190,198,27,114,113,117,254,232,15,121,64,90,77,172,71,95,116,38,119,122,104,79,42,179,110,139,250,130,124,198,177,230,60,52,102,179,26,172,101,52,109,71,158,37,157,196,80,234,244,45,197,103,59,34,39,137,146,10,52,201,88,156,28,244,254,115,49,160,1,14,54,134,230,246,96,168,238,58,69,2,185,240,134,234,144,203,20,216,154,160,76,190,69,167,151,21,230,180,74,200,106,247,51,18,203,39,72,108,155,5,56,52,32,86,98,198,174,227,38,229,93,103,123,253,165,237,3,129,130,74,254,228,136,250,174,120,45,103,49,248,85,130,210,10,1,241,130,87,48,34,15,194,72,33,71,188,79,229,208,20,173,237,148,89,159,8,113,185,47,107,8,99,208,39,179,229,143,185,18,165,32,27,228,239,29,125,48,133,72,144,183,184,51,230,230,83,124,65,124,222,40,225,235,45,250,38,143,40,58,215,10,36,136,38,21,178,158,219,94,165,122,197,82,83,53,106,185,21,76,7,201,28,187,245,44,190,86,83,142,160,29,127,46,226,192,16,85,183,239,91,246,209,127,137,185,53,196,151,167,37,210,196,124,69,255,188,112,112,254,52,244,54,194,253,109,53,97,57,101,117,120,173,194,100,103,214,222,179,131,203,147,122,170,77,2,228,102,92,124,251,163,199,82,228,120,1,171,68,192,181,102,42,235,118,78,63,100,92,241,189,92,162,165,193,34,122,160,246,228,24,16,139,120,209,54,211,32,93,53,167,118,227,218,202,99,116,252,136,96,245,48,92,167,23,72,163,60,27,20,9,165,156,6,91,43,218,144,55,156,107,121,165,243,175,14,35,98,92,38,44,38,172,253,165,226,171,44,225,130,224,31,123,242,4,173,129,119,238,102,189,19,180,146,205,38,229,228,235,131,210,9,222,34,40,7,3,63,148,211,70,188,46,14,177,164,188,92,226,69,41,243,169,147,104,65,237,54,186,16,180,116,198,234,13,31,98,50,57,27,164,49,35,99,42,51,82,70,164,87,142,72,217,116,18,146,170,63,178,6,245,67,91,12,140,50,134,109,237,13,79,16,5,65,92,28,173,61,235,28,153,153,197,225,208,97,56,133,22,170,216,94,144,126,3,197,194,250,158,35,152,71,71,23,169,167,154,85,200,119,23,65,210,228,233,224,11,2}, {5,132,67,92,49,54,42,125,165,71,196,96,125,35,217,131,66,35,165,85,200,9,47,156,192,194,189,84,232,98,136,102,191,50,151,21,78,183,223,148,76,107,203,252,9,31,21,54,184,72,99,108,243,212,52,0,246,91,224,128,255,171,181,52,45,240,253,47,230,222,20,163,130,93,115,187,77,224,157,176,25,197,253,10,102,246,97,182,25,126,36,167,26,147,228,175,95,122,227,142,204,44,18,212,44,239,238,80,115,58,98,222,177,227,42,108,224,205,187,29,234,72,112,134,244,186,10,58,79,250,82,118,111,209,120,50,135,104,17,239,50,42,92,252,166,37,89,84,165,138,93,189,231,138,102,31,218,52,172,255,250,58,121,170,31,163,172,154,71,190,133,109,255,97,81,195,219,215,221,189,142,168,242,231,113,128,129,119,131,62,176,55,155,21,45,176,126,121,96,210,52,31,221,211,125,96,82,218,196,135,220,118,41,97,65,138,224,75,181,160,139,136,126,102,65,58,11,66,14,166,34,213,97,4,115,226,173,56,176,91,227,110,207,241,74,22,122,100,26,213,164,106,191,41,117,224,66,219,182,66,103,155,167,9,69,112,190,199,130,210,3,4,70,170,217,247,65,180,192,243,240,212,248,121,77,135,184,19,233,234,127,108,234,228,217,166,237,97,28,51,25,76,43,7,13,129,96,96,112,166,61,135,4,171,144,224,20,73,158,196,190,18,139,167,158,49,191,101,191,208,38,247,81,219,158,86,214,254,78,55,87,141,237,183,226,95,90,102,127,165,239,153,12,75,60,162,97,37,238,142,45,118,244,45,77,236,226,3,38,131,144,128,241,90,104,199,76,50,86,231,73,75,194,174,5,151,57,191,48,117,149,71,39,73,126,116,12,168,116,188,14,187,92,95,50,200,41,202,41,80,87,175,96,121,45,238,130,73,197,160,17,182,253,44,234,234,114,24,188,8,128,230,238,78,208,145,36,98,238,230,76,232,33,4,97,101,190,48,99,50,5,167,77,149,77,108,113,227,57,230,91,81,107,149,200,59,253,168,77,208,159,193,113,85,232,68,162,181,162,253,61,72,131,33,57,206,138,146,209,228,114,201,159,93,154,47,124,158,94,197,57,35,4,82,106,199,184,222,10,34,111,71,15,232,32,140,120,229,255,34,233,15,71,204,20,93,170,0,223,243,65,73,15,67,240,84,30,20,20,13,180,61,19,185,41,227,24,141,101,255,220,241,165,83,117,181,220,196,47,42,22,41,29,204,250,185,207,33,210,56,22,73,217,92,51,108,245,111,74,188,123,168,226,184,13,58,67,132,175,108,136,58,13,238,80,234,231,53,60,105,25,134,195,8,55,124,35,32,216,112,84,23,47,57,139,187,170,102,48,178,90,194,49,53,32,178,140,43,121,229,194,117,131,183,154,235,143,246,158,196,204,134,195,171,121,64,124,160,116,7,187,40,104,136,171,245,122,198,64,95,168,8,127,116,173,117,67,170,225,65,8,126,151,10,170,231,47,95,8,4,244,167,89,219,171,163,153,115,148,29,95,166,149,82,181,65,37,94,170,138,18,12,186,108,142,170,108,122,131,243,161,144,201,104,74,146,211,162,112,160,133,238,136,135,166,249,55,165,66,101,59,4,24,234,178,180,182,212,36,163,186,80,52,240,26,237,200,57,30,250,235,72,93,95,34,4,253,136,11,236,27,21,89,64,145,240,139,120,24,77,218,203,4,61,50,142,147,237,69,131,233,128,214,230,106,60,139,38,25,136,115,141,198,251,136,154,194,236,52,243,109,113,72,78,73,121,103,235,31,223,179,92,248,117,152,168,9,73,65,114,111,52,96,54,108,250,63,210,124,207,38,249,44,218,43,196,102,51,159,117,11,195,250,34,67,144,16,95,105,73,191,115,82,48,170,234,121,245,21,181,215,151,19,107,174,92,237,128,80,251,227,135,222,160,126,82,255,51,154,152,100,249,6,89,3,121,48,177,110,241,247,16,24,111,55,248,194,120,111,220,134,53,15,44,153,208,82,73,71,110,113,199,94,40,150,10,94,5,240,144,233,176,206,197,191,123,156,6,123,32,223,32,240,62,97,179,52,97,32,141,226,108,155,205,250,110,83,64,95,95,130,172,12,193,31,42,54,92,115,131,226,37,107,124,192,127,104,211,2,37,153,151,32,116,104,49,66,28,242,114,203,127,165,121,152,27,26,85,138,123,130,228,111,66,148,19,20,79,224,155,161,116,18,20,63,17,41,74,98,171,147,58,34,231,135,109,25,162,119,148,25,74,33,221,51,190,131,44,92,122,43,236,59,253,103,246,247,129,18,184,115,115,241,152,120,3,98,165,135,177,74,250,35,231,12,106,188,170,158,252,63,108,19,109,135,196,50,219,217,176,116,44,70,59,102,205,238,53,34,90,76,58,76,4,113,110,93,59,176,211,124,106,209,239,59,7,150,220,142,137,207,187,156,232,225,171,242,173,110,136,106,255,186,122,231,62,217,237,121,75,225,104,103,178,248,224,9,135,46,126,150,65,191,250,189,49,75,87,198,237,34,125,143,204,35,14,48,246,53,91,133,20,134,59,60,98,191,230,224,205,207,147,31,179,44,244,189,244,53,216,149,108,29,30,215,128,178,217,102,18,180,107,82,249,130,144,118,67,69,166,171,95,105,67,34,25,179,240,230,99,175,95,96,181,165,56,203,64,106,73,10,200,182,3,166,172,47,51,223,235,170,180,14,196,177,127,232,141,10,54,57,165,131,216,177,168,209,178,215,159,178,150,75,190,30,252,58,159,36,148,228,189,152,129,187,233,35,241,145,216,23,149,108,104,43,4,66,240,51,11,80,221,68,205,216,243,94,145,207,184,112,42,92,85,253,109,188,69,31,56,202,162,93,199,113,245,208,245,42,227,118,188,243,69,19,211,84,130,23,235,112,17,182,169,56,210,11,135,207,201,13,180,46,148,65,138,158,210,214,238,14,83,32,38,195,185,253,138,252,214,214,172,164,117,36,86,84,27,83,149,48,163,225,195,0,159,73,210,221,222,124,55,22,74,99,198,111,45,37,31,225,92,37,31,108,173,12,29,209,96,132,110,106,178,159,88,34,7,90,1,23,53,220,2,43,183,219,122,157,150,230,86,42,252,168,210,192,225,138,8,71,39,231,93,100,137,155,73,19,19,156,71,2}, } ; static const int16_t precomputed_encode_1013x2393_x[precomputed_encode_1013x2393_NUM][crypto_encode_ITEMS] = { {-10510,-30465,-12975,8062,15746,2113,-13635,-5879,-8899,-27140,-24336,5400,13261,-18260,20962,25465,28555,4929,-46,7313,13191,-18332,14781,-25469,-18231,9689,-1956,8088,2797,-12286,32107,4675,-7413,-19368,-19424,-21525,-21605,15467,-9027,2335,-12261,-6977,3858,-11281,17512,439,-8703,6904,-9540,-3183,-4850,-8369,18457,-13118,-7729,17059,-21242,-14860,1859,-15766,11512,10002,23490,-10233,14961,-882,29436,1065,6141,29397,-7302,-26506,7895,-15543,8585,5482,29797,-19801,-11701,-20542,-22666,-24220,22766,31456,30902,26811,13070,-10046,6062,26164,-6498,4635,-31430,-5148,-18269,-30650,-26188,-6255,27134,-30596,11674,4587,-19034,-19060,-25873,-21170,10997,-24808,28806,30,-32216,-31679,27553,28038,-26347,-31932,-4313,26393,-14419,3502,26801,22872,2625,-1072,-26383,5692,3195,-18016,-9579,-10731,12850,-1776,-15661,-19823,24204,19945,-10946,-4075,-21930,-31194,-20888,16459,74,-14503,-16542,-17103,20094,22660,15400,15775,-13982,-22696,13277,7331,31012,-6214,9551,-26408,19176,-20336,29891,-6882,12046,27181,-3724,13932,-28659,-32020,-4524,-1145,-20350,-96,31550,26680,3616,22829,-18348,25594,4772,-31409,25262,-3496,-11180,24690,-9388,-16204,27883,22366,23834,-19409,-2864,13814,-10454,199,30041,17552,12952,8601,-5694,-16856,-17851,8067,-10573,-6534,3052,-7223,1008,-20019,14807,9854,28835,26171,12262,17975,-8765,7597,24862,18337,32757,9313,8154,-10251,23328,-23188,4578,-13093,18786,-16832,-4764,27015,12563,3110,12158,24822,-29539,8637,13907,-2709,14367,29478,2070,-15922,-18144,-30141,26257,15310,-3120,30160,6291,-27744,-6111,26915,17559,17485,-19004,23429,-16946,-13756,-12548,10263,8318,-24245,-31752,1256,16049,-10349,-19505,9005,27379,341,9571,27988,23049,-3197,25937,30088,11825,3531,-18198,16843,28124,29366,14646,-14313,-16464,-3097,-23371,19297,-23204,-513,-23280,-9749,-24171,-25142,-11777,29872,-10919,24418,-25957,9625,29568,6822,32074,-9819,11105,-1792,673,29896,-6775,30198,-25434,-14313,-12967,15404,1058,4175,575,-2342,-15740,-20018,-23220,-28809,25496,-13457,-7314,10495,-12000,-24750,-15474,-8883,10065,1621,26204,-8638,8723,-5385,24196,8798,25705,-24083,27229,-11262,-3792,10894,22476,-167,25464,-31223,-16801,15622,-31139,21680,-21574,-2618,-12444,24386,-11845,-13222,5302,-16390,6367,27844,7883,16958,-30979,14642,6153,12523,30616,14633,-27146,-29717,29700,-9545,-19244,-14376,12453,-24996,-9664,28381,2751,11197,4618,30392,56,5483,-10360,-29093,-12183,-26171,-28917,12518,-27731,-9009,-10832,-6051,-31949,-30205,1579,-25606,2315,27893,11089,-7891,-21846,-6342,21320,-18430,-23495,2850,-27222,-17535,-14112,3527,2171,25189,-23732,-20969,-20306,-16253,-32696,-8368,3268,-10185,18100,4089,32098,3776,-8099,26030,-23007,-28005,3719,675,21918,-15416,-16081,1381,22219,5615,-5973,-4374,2823,-10008,20187,1452,-27567,-7601,866,-216,-25010,-27343,-29125,2005,7015,9108,30825,15880,28781,9051,9175,30961,16648,27183,951,-27630,-8253,-21274,1787,13107,4535,-32429,26945,-6073,32739,15427,22848,29214,28423,5181,-11138,25821,-22304,2637,-11120,110,10572,-25936,3318,-5807,1121,22805,21049,-22268,22669,17240,-7059,26679,-8566,-8538,-20984,-11816,6254,16013,7893,10294,30028,-24658,17157,5406,-11734,24530,-16363,-5783,-9457,21859,-21389,16926,4161,-27778,-32562,26250,-8587,-32074,-29667,-14552,-7046,30902,-22424,-10763,24241,-11188,31357,23363,32622,-16753,32205,9644,-11084,-2293,-22433,32414,29989,-32478,-25681,26246,-32021,14354,-15175,17800,3024,-4531,-9427,-3086,11880,-20164,27529,-22993,21606,-9564,-18982,-6236,-12407,-28971,-8997,-7247,28482,-222,1056,522,-7865,-9319,-24020,-22637,1262,18883,30706,9515,-13944,-13211,19899,7212,6766,29734,15560,5467,19919,26558,881,-17177,-2142,-4165,2644,-7032,-23842,7709,-9825,-3496,30096,-11979,25563,-29085,21436,-23327,27226,19040,4259,23871,-22940,11373,6301,-32302,-10941,30352,-9451,-15603,3596,26797,26861,28491,20146,-27251,5335,-22564,13917,14164,-4327,13239,19986,-22955,-6932,-14949,-32002,30484,-18283,10152,-10136,-3367,2138,-8918,-17169,10477,-30154,7268,2238,21533,2541,30074,-11767,15401,6050,-9107,10793,-15210,-363,20019,16848,21655,27895,4040,-7009,2563,-24103,-7374,-7538,-16306,-25902,29525,15159,-21322,19701,26045,12701,12290,3342,32531,-23607,-15249,-22477,955,3836,14518,12456,2002,-32010,6347,-7755,32297,-5370,23301,15632,-15658,-26783,11782,28311,-7398,-28105,15144,15011,16441,13379,15784,-31635,-20875,25101,-371,2754,-32295,24981,-18016,18570,27718,-4148,-30967,-5592,26626,-4261,-31761,24392,18971,27423,-20375,-23651,25411,-17339,-24122,-24304,18114,19368,7896,-15620,-23786,-28778,-4296,-31906,-7094,16014,-17504,134,-1237,-21831,30149,-1179,1718,21781,32748,1928,-7082,26672,-4645,23706,5948,-2270,12701,-9057,25597,20409,-23488,-27159,-4673,26699,23603,12813,19046,23831,-16978,31806,16343,-5504,-15590,1275,-19857,32219,26676,3099,-4660,3645,8618,-14391,-32455,-13235,12649,25972,10295,-22070,25147,-18834,16277,16405,12889,-12217,-17469,14168,14858,-15962,-25875,-18550,3517,30675,-7873,-18467,16827,-3746,11979,31435,-32462,-14193,15564,21084,-9370,61,-9023,-30184,-2506,-3720,32364,628,13096,9767,-444,-14994,-8229,-24910,-23883,29644,27223,13280,-10180,14752,-5879,20482,3773,-1113,-14705,17559,29855,17079,-28552,22243,30851,-12209,-17922,-21853,-15070,-21187,26253,2961,-30040,17306,31978,9852,-21004,30949,14459,31354,13051,11488,19299,-21780,6399,22074,4363,3253,-29522,-8948,3467,6653,20028,4443,-15316,-18403,-740,735,13667,-6309,31501,-23382,13841,-20376,19884,22230,31466,1856,-30127,27681,-26321,20500,22757,1108,-5867,-2703,-32491,-547,-10083,209,-10370,32150,-20841,-29550,-26460,14020,-3195,-25410,28888,24976,12684,-14672,20717,16966,31101,-8187,-16552,16658,-21492,-13497,-5371,23153,26018,31582,-17934,1251,-4238,12681,-9613,-24771,-15579,-30612,-28349,-3249,-13653,7192,10148,-5419,30424,-30636,107,-3030,-15831,14221,-12700,15397,-14867,4571,21252,-23444,21646,23383,6601,22426,8600,25573,-10109,-32650,10290,19371,-14672,-4128,-27022,27670,-25220,22772,-10217,27313,-21244,30796,11695,19549,-25738,1968,3298,12943,-26826,-24803,2336,6793,1452,1584,-3809,-10484,-8297,-32343,-11152,4319,-25135,-25349,-18904,-21402,22685,13012,12986,-4394,-19388,-693,-25161,-13701,-29462,23742,20567,-5165,12035,27839,8101,-28089,-28089,127,10903,11615,28054,23830,7481,4673,-1484,27616}, {4408,-26209,-15124,-24146,-21470,-19389,-12402,-31450,-28205,-9669,-15757,28887,22909,-11906,-8786,7685,-31896,12428,26946,6026,-21822,1237,-12598,30701,-3591,-13092,-676,-19080,-28318,14925,31303,-28775,-15659,-31159,-15692,16901,-9447,-1935,-12096,11502,13055,3569,23645,-12346,-12678,27037,-8791,27427,-13372,10522,11873,20193,24734,-30300,-29745,-10810,-2405,-32168,22084,-3427,-28352,-7926,23600,31807,-16255,-29889,-7858,-16151,-22824,-17431,17831,-218,19281,-20880,28863,-10808,25547,12911,15158,5940,15466,-3863,-20526,-23536,-12934,-2466,-2604,-29463,19761,5237,-21790,-28544,-28626,-7610,-29152,-27567,8558,-5575,10889,18471,-14837,-25880,9885,6753,-23682,32278,9343,-4693,19095,-6911,-27679,28241,-24562,-21387,-20247,-18958,10651,-27085,-20483,26315,-12420,9541,27509,-4060,8058,18882,-18497,24206,8882,-15882,-12424,11980,-6562,-14966,-18435,-19656,25286,-2646,16092,2936,-7757,-2976,32237,-7958,16432,-9468,-10879,20104,-16349,-24213,11001,19329,-30700,-20958,12368,26045,-21605,13643,-28659,-26194,-21218,12894,-23559,9092,-1288,-12268,20730,-2729,-19750,-23370,10230,-7397,-20229,29148,11103,24240,5859,-32317,-8648,-22845,28441,-6059,27615,7604,-28476,-27532,29780,-21121,-26666,15177,14649,-410,181,32030,-20783,23496,-24407,8882,-21947,1054,25929,-4852,-13242,-7930,-6086,21233,-6708,-28086,985,-19709,-8305,12263,13840,26855,29622,-291,-27265,3539,-24917,-4361,3968,-28103,-13846,2751,-7176,27172,400,30581,-24090,-24594,28020,5322,-5919,-6908,-13149,9690,-14390,-24494,-13055,-13853,-24539,-6058,6377,-22637,-24872,26482,-19804,10147,-3473,-19660,-15064,29513,-12380,25245,1790,15431,-24845,23806,7584,15665,-22282,-14701,-13270,20669,-2735,32048,-17262,3080,-14354,-26597,11736,-18070,17483,2142,-25476,8938,28184,29779,2905,265,-14507,11571,19987,31451,-14136,-20434,-5777,24758,-16886,-23403,-9058,5191,10146,12838,5446,10245,-27181,21192,8388,25937,11215,24602,-4639,-18935,-25438,13843,27226,-26963,28038,17552,-24840,28239,7055,-25933,19284,-26550,-31448,-8725,-1696,-21977,19237,27024,21432,23993,13876,-4067,-28693,7039,24300,16122,11267,-11327,-28984,-30991,-13520,-6950,-17045,-23310,-26318,11115,-5899,-28148,1236,21417,-30032,180,19604,-17899,17855,-985,4448,-255,7817,1341,-26133,-23957,-26043,601,-12803,-23717,-21880,-30864,-5077,-16839,-30228,10725,234,-28030,20486,30346,23078,-10952,11625,-24631,20048,29967,17833,-8442,7958,-8560,21746,-15740,-5102,23870,-29033,-25034,-22142,27425,-18945,-25683,-12880,-29036,-20152,-27360,7273,-27434,31330,11834,5514,20531,-18308,-24483,-25086,-10101,11133,-12947,-10454,16454,8080,27910,7128,25843,26566,4171,971,12943,-2891,20734,12886,-4109,-8119,-20299,-29604,-16122,-18525,5280,-20027,-1812,9724,-12652,-9469,9846,-23878,-5088,10333,-16662,672,5778,-27160,-19160,-19286,26960,-23484,28019,14556,4032,24073,7573,-29314,30202,-14448,-5170,20089,17402,15077,-31124,-22883,7902,-27653,-27290,15001,29839,-32227,25730,7856,2910,-25941,-27751,-2817,-5207,-2610,27005,-31273,-10962,213,-15306,6570,27012,-21617,12846,-18724,-14329,24903,-8789,19846,13970,-12202,25307,-22524,-10009,21161,17358,10378,5616,16135,-17351,-14252,-11618,-11499,-21981,1631,16275,32159,20759,-14435,-1387,9053,-2798,-17572,-20685,13312,19002,2465,-5890,12687,-31829,6657,684,-22939,31034,21651,12869,-4753,22632,-4720,-22655,11130,28238,-13010,13482,20304,4880,-19320,-27592,-788,-3856,-25503,19294,-19566,-20312,5407,-5609,27052,-94,27441,-32647,-6793,-12559,-205,-8040,26415,-28190,-31014,-16898,-7991,-26886,-3966,27190,-14954,-1818,16770,22659,22364,-6881,-28343,-3989,-23058,20059,-26011,17652,-26654,22452,24945,14919,-20060,-4476,18186,-12082,-2815,21958,-19564,12303,-29007,-21317,-22506,-9544,-1895,25710,-18442,-21323,-27216,-26369,-22252,-32228,17848,-19080,7504,25625,16841,-24153,2831,-3649,-1862,-29216,19690,31275,9249,16056,12133,471,5959,19913,11675,12186,-2244,3302,-19466,-15122,22099,-27767,7610,-10648,-27109,-9711,-6924,-15275,15819,-5344,16298,-32648,-11351,25333,-2037,-12295,-6845,-17058,-22488,24799,-28762,-22402,6689,-29062,645,-26290,-18251,30486,8925,-24314,10984,-8574,-12020,23634,11202,-14812,-13406,-29368,17268,-6215,7944,-2374,-23464,-8395,19748,6573,-26624,-32750,-3697,-7372,-26273,-30235,18048,4458,-13329,-700,23578,-11344,7860,-8786,-16625,720,-2852,-4004,6803,-5011,-22831,10633,32623,17417,760,4728,19903,-8783,-22501,-10983,-27464,18266,-18205,8638,-19289,11816,-7110,-13680,-28021,-22858,2074,-20809,-8704,20811,10921,16067,-784,5750,6565,207,-2400,-16668,-9311,-24536,12988,-22477,-1124,22367,-25647,997,32506,-8663,-1702,19047,20823,436,-19376,3320,676,25117,-1743,-6918,5252,10186,-10571,-12786,-25319,10596,-27450,15575,7203,-32117,9718,-5732,-3760,-30340,-2979,2429,32601,-16416,31375,-28876,13876,15225,-13746,-8553,22835,-29680,-20843,-6087,-16020,-8454,-18939,-16419,17042,-26853,-13503,17847,-9317,19763,-31635,-22046,-29382,-8611,24182,10986,5959,5230,-7428,21087,8699,-5069,30680,-13658,-25114,24774,-6094,-17227,-11584,25035,19017,-28556,4000,-30864,-14775,25593,28167,-32611,-12446,1069,-19248,31569,-24414,18601,30355,1270,-1193,-4622,-9108,16307,-26177,-25125,-84,-21622,-4282,26681,13893,-12476,9588,16385,-7563,-20410,-7125,31907,-31544,-14653,-4103,11655,3200,11491,13442,29456,-13213,-606,14939,25290,18890,2443,-6880,12312,27818,-11009,10263,18380,16162,-3691,20580,9447,24325,-22359,8622,17679,18022,-9801,-2290,-15879,28403,-26222,10267,-20680,-30985,5741,424,-23183,-19697,20087,5757,21440,-8733,11162,30968,15536,574,-6126,13796,-24045,13806,19577,27218,31819,-28750,11894,-32132,7991,13900,21584,-14444,13696,-3566,-20000,-21774,2134,26758,-25390,17207,-15216,5379,-15147,15280,-11843,4793,20100,27093,24853,15314,-32157,8183,-18253,-14896,32050,7865,10836,-3538,27973,573,4584,-15271,2492,-17114,-26970,15949,22798,16289,-17131,-30539,-10324,-24503,23480,24145,25697,-22694,25946,18597,22406,3845,-22708,-14185,4921,25594,3111,-12149,-25019,8568,2740,20176,-16400,22794,24715,-5710,2867,678,-16460,-22237,15477,-28476,-7271,27608,7727,17561,-6662,-12991,-20760,-14858,27464,7576,-9989,-117,-27233,-10288,-2189,10395,14196,28725,24525,-24964,25536,19885,3583,-31213,-2780,19755,1164,-9202,-6016,-1446,29826,-12164,11462,-32235,8139,18098,16543,12768,-30026,-7129,5946,10197,13941,-23395,22243,2363,-22533,-829,-1251,11235,-5205,-19505,32618,30599}, {31273,-25988,18685,-3363,30722,12369,-20803,25442,29589,-29923,14936,-15946,19437,-29718,2291,30537,14460,-12305,15404,-2216,31086,-27936,14330,-5603,-20026,-19659,22577,23139,23064,-11213,31392,-14493,24182,6052,-17082,1223,15421,-15612,8014,29917,-28032,5228,28308,-9335,-31708,5043,32549,-32193,2845,-22997,6698,1350,24925,-1189,-5838,7959,11486,-438,25145,5072,-12755,-30163,13815,-20032,25385,-27743,-3771,-31378,8744,-12182,27578,23886,31953,27820,10030,-23398,-21840,-19261,-17538,-4817,4785,6086,6449,15230,-2773,-13140,-16589,31569,-19304,5112,20035,-2005,-1185,29059,-32068,-29127,-30613,-12960,-31021,-17268,-5771,26333,-26289,-13937,814,-7278,-3514,-12297,-11177,-30303,-22821,29148,9088,10357,-14520,-5362,-16958,4210,-23164,29511,26362,-12516,1700,-25914,21487,928,-11293,23884,24800,-12088,-23404,9433,30894,2898,-16,17890,-28403,8207,31912,14112,-6333,31845,-28462,25835,-29790,6339,-17768,24511,28000,-31682,-21096,-21608,-14836,3581,26086,7130,5265,28339,-7205,21990,5286,15366,4767,-22345,30528,-25558,13986,-19252,15213,31876,8126,-11236,-20921,16831,31150,-17191,11590,-14963,29671,-11837,21772,-18728,9234,-27009,18582,-15676,-8549,12567,-2391,-18633,-11890,29441,23060,-15408,9189,11498,-2559,8740,7131,20061,32727,-9950,-25814,30915,3027,31080,726,30458,-18767,-29853,19190,25624,-3525,-19496,-24063,22464,7639,24687,-16812,21150,30382,-29843,-28878,17394,-12675,-23157,-1283,-23026,-9003,-26596,29325,29610,9959,17664,-11117,30300,27867,31530,10141,-18369,27071,-1685,-4663,-17578,-16654,19930,28977,473,-3679,-2095,27250,-4133,18330,-7781,-14874,18170,-17386,-12077,29981,10932,-6506,-25752,-24191,22017,28783,21703,15615,-17575,30446,-14163,-17043,-27098,-24870,30914,10792,30101,-6148,-14230,-5582,27566,-9505,-25138,19776,-31798,-3473,27847,-710,22292,23750,21381,10038,18459,-6522,29339,22185,-27582,-20915,-21967,6229,15018,12744,-22270,3168,-29810,-4997,-30138,-18789,-6869,25968,12596,-2673,6600,-28855,32374,27534,12840,-25425,2926,15525,-25395,-8633,-3202,31526,-31935,-4157,-31294,20239,30422,-22590,-10428,-22607,1933,12979,-15002,-17129,2338,6914,26599,857,15458,15558,7454,-11600,-19930,-23982,7196,32609,25233,17441,13290,-21328,19907,-2539,12373,10808,18478,-29783,-11209,4910,-32714,2150,27869,25713,1823,8186,8788,31363,-22829,24827,-19111,29190,-4002,-31352,-5997,12997,-3765,31244,-29540,-27772,-9046,-30578,13469,-25234,-26641,4464,-5454,29634,14257,-15216,9581,-31682,22390,-28970,25763,25779,-21484,14682,21798,29467,-7853,4318,12688,24488,31905,23645,2874,4079,-9101,4333,7420,-19283,-829,21632,-29885,-1273,-2682,-26535,6507,21687,-18656,-31955,-31906,-132,-7683,-6988,15593,-6660,1855,-31091,-26937,2121,8773,-17480,-26739,26237,-12722,13482,8159,-16360,-15505,22126,-24374,22495,-22592,-997,20015,18885,-8303,26188,26333,-4212,-10853,12910,24804,-29406,21998,-468,14905,-21945,-11919,-16239,17129,-9099,5082,16563,-17733,1172,13190,-8805,9046,1703,-13329,-13725,-5109,13414,-21474,30939,-16217,-10592,24383,15670,32375,13326,16299,-16978,3903,-5061,-5014,-16020,-22704,-16228,22628,14841,-30723,-11274,5372,-3466,-14948,-18443,24363,22201,27581,1763,31535,24078,-14847,3719,574,-20839,19024,3944,9430,-18585,24642,-18295,9728,-19880,8458,-18488,-25495,12714,30952,24235,-256,24303,5519,-8172,-29167,-19052,-8176,-58,-18972,22333,-3107,32368,-17344,18563,8133,6061,27225,14405,1470,30632,8284,22146,-18057,30999,18643,18746,-30050,20316,-12647,6702,-6056,-17393,-20714,24218,-31110,10117,-20932,-15971,-32741,-28262,-20428,-4769,-3145,15362,-484,25212,4877,-18858,-27118,16291,20334,-17142,21169,-12768,-3989,30486,-24674,-26855,-31345,23347,8674,12935,30240,-12372,-13156,-26093,27007,16448,27654,1853,-14729,-5509,-21217,-5911,-6298,-11904,19384,24483,18097,-32120,11730,15276,7031,-26155,-22945,2631,-12844,-13019,6217,-20763,-21252,-10409,-10571,-4514,2676,196,21926,-7034,-26974,-23163,-3230,-18510,27458,1574,-31228,-3497,2930,15083,-1990,-16100,28335,360,30709,-17407,-30913,-19667,-8482,-19407,-3488,20722,-29417,20428,-2688,19183,-32586,-18517,15220,14961,-17021,-17518,5383,23848,10547,-32199,-8725,-11653,27496,10558,-23920,-17878,23689,6527,20878,-24802,48,-8987,-22145,-13914,2216,-19309,-31768,-8436,-5342,-10192,11221,23937,-5617,8407,12084,20506,-7119,18401,-6334,12709,-13325,5154,11826,-2165,2579,19472,-22814,10364,-4813,-10997,29440,-22658,2866,-1398,25283,1148,47,-30681,2555,-30230,23652,18588,13453,6157,-24726,-3323,-25012,-10152,-16896,-32156,-22961,-27190,-24648,7342,7496,23650,-28092,-15344,-27243,-1889,21937,20703,-25483,28679,10626,5356,29075,-12867,15417,25477,-12467,10696,-3926,18508,-30956,14308,-27690,-18520,-24986,-27732,32727,-4291,19698,9626,-31374,29251,18082,22299,-15596,18276,-20227,26301,14230,-21213,16986,24470,-6400,31264,11455,-26128,5804,23129,-27108,23097,10786,364,22531,23012,-16310,26707,8788,-10627,-31844,-6717,-24110,28240,-13826,-5148,29435,1968,-28506,-4384,3094,11722,31031,-15710,-2432,-4262,-19310,-2790,10382,18136,26086,-18029,-11048,11577,19830,-19300,20958,23397,-6612,-17330,30641,-6202,-17638,18517,-29688,4525,-5901,15418,-16995,-21645,13266,9205,8422,11619,8256,-13389,-30024,23903,1802,26168,-5826,-19532,9927,17812,-6611,13366,24650,-11878,4335,1209,26634,-7342,2983,26361,15276,-5938,-19275,-22525,14095,14175,-32017,6356,25526,-9092,-30452,-11647,-20553,31618,-8071,23516,25973,-13171,12747,-6621,-32612,-30330,22036,2770,3253,27238,15606,-24999,2336,24929,-15477,23188,-15959,-7152,24818,-25514,11815,5421,25967,-6648,22055,11905,5610,-10275,-24531,19856,-16928,14857,-10923,23022,7361,29287,13390,-3283,16641,28689,9834,24865,14555,-9238,-8727,3599,-1414,-25025,19394,11632,-7023,2257,32743,8205,32064,24018,16118,31331,27445,1882,-7675,20755,-31383,-10718,-1576,5630,14992,-6959,21820,20333,-288,-16311,23124,6894,24761,-20796,3982,24577,29199,9430,-12569,4239,28384,14656,17802,5631,-7555,4071,1536,-29075,-31170,-22360,-1576,13736,12800,31004,7897,9218,2208,-31925,-24693,-7698,-7121,19256,12565,19869,-31998,-3841,-8268,-18824,21750,26024,12154,-27599,15771,-20679,433,23019,-14228,-240,2731,30582,-21749,-20996,-25448,-19580,900,-3140,-9559,-1827,-4964,4121,2743,7268,-3287,-28110,-28490,-23411,4211,28395,22408,24472,15433,-12768,-31558,-17238,-16192,16759,-31246,-26922,710,-13192,-12105,26437}, {29990,-20373,7472,11884,-14370,-1025,18060,-24978,30741,26539,27864,-27456,31574,-29853,-15419,-17056,-4475,29268,-13379,15533,-9325,15013,16907,23444,26505,32441,-16983,-4993,20823,19317,6795,-25811,19427,-28371,19840,18469,31020,-15313,9445,24505,9368,10328,-6997,-29953,25040,6277,-24331,8091,-22206,-21630,-12269,-25808,29352,19931,-13127,6599,-19325,-2655,31923,-24074,-1200,-19507,22619,7846,21925,-21492,-7313,-12814,2360,15413,15269,-30799,14857,11807,29486,-20357,16676,6588,16014,-32355,21186,-29475,32420,24549,8815,25278,-21230,-1070,-21028,-5559,-18661,-16877,-665,-20864,-18589,28874,2363,11484,-20380,-22514,-22295,26445,31452,-29141,-22504,-8562,-11336,-9844,-4716,10638,1347,28147,-15362,11848,-519,-29337,-13527,17297,5418,9400,16128,31256,-30062,-11960,17193,6166,-11719,-32313,-7095,20103,4508,-13035,-14062,27404,-14644,-8618,15243,-26299,-31024,-16036,-24227,-28869,-9080,-10857,23480,25868,-19263,-356,24378,-16153,3323,-25946,-31699,20233,-20820,11042,-2937,31415,23523,32053,-12627,-32149,21373,14327,18616,21637,-32621,21553,27776,14495,-7469,13896,18561,-19448,25188,2387,10824,32202,-18826,-157,25318,26812,-30942,16894,28362,21212,-24463,-22108,-14987,-6562,-24661,2094,27941,30413,-2337,16962,3742,7294,15811,-23555,24876,-18406,-13096,22064,15036,28765,-26747,31795,15110,14071,6485,-23423,23164,14959,-754,2536,4906,-26969,-17265,-2221,27168,16531,-1321,27781,13488,23413,15492,19471,-278,-29566,31597,-3635,-1492,-1287,-23231,28721,180,-283,-26458,7611,11527,-29260,21379,595,-8830,16661,2926,22849,-2635,4203,16874,-19691,-32234,4311,22470,4203,-23383,27814,-3788,-1847,9516,5001,27807,18545,-28740,-17801,14162,24938,26114,4198,-10564,-11921,-2532,23040,-8019,2895,15666,7971,26906,-8231,-7022,23704,-27685,13078,-16633,2618,-13757,15512,28441,24780,-11466,-5151,-14472,-17929,-13999,-17373,31679,-5727,-21481,2502,27798,20456,-25907,-468,7500,-31061,24551,-32220,6410,5090,-13309,-23250,-31528,2709,11413,22229,12171,19058,22928,19100,-9982,29264,-25443,-1073,2241,-1766,-17124,18250,8009,28223,-25243,-12008,9201,29740,-30351,-25157,-28866,-32497,14064,-15436,29099,19245,7168,-7840,-21058,873,31593,29295,-16732,-27430,-21717,30622,-13260,-10829,27227,21060,-19924,-16344,-24317,-3465,6272,-18294,-13460,-30181,-10854,2647,-29575,15671,-25958,10993,25082,30696,-29078,2025,32702,6498,-20116,4475,24438,919,30287,17092,-19270,-28987,-14570,15307,-18813,-25941,15494,5980,-27599,-12394,13233,-113,-7485,-1583,16557,-3207,-10569,-3730,24391,2547,13505,28110,-5350,9780,-13908,18856,-11985,2927,-8991,6407,4863,17762,9981,-8973,-32569,14872,12314,3688,13987,15976,-5584,-5255,-16030,-5356,6068,-24932,-8451,11856,21371,29136,31940,-15922,-15976,14322,-3661,-19783,-16664,-802,14254,-14722,-538,31728,-20816,29699,8929,32068,22228,-29769,-4035,-31133,-29207,-9081,-11190,7206,21379,-9302,8154,-6510,17107,-4666,1908,-16147,8722,13303,-8263,-6201,16756,20995,29596,30803,-835,3505,2509,-25819,18059,-490,21169,-31594,-23411,32404,3615,-21804,-13800,-2292,-13616,-7766,-20805,-23388,-28917,10607,10883,-3564,28832,-23775,7177,-9820,-8240,-27258,-14399,-32730,-31282,13231,16930,-12844,-23982,-4622,-29459,-3086,18903,8594,24386,-12507,-13477,-23579,19917,28477,29048,5455,12600,10131,12361,25261,28839,-1592,7238,-1372,2177,678,-29325,31994,12955,-198,16062,8845,21845,20686,12726,17231,17518,-20809,20040,-1148,-25507,-17520,19563,-16560,29560,-1861,31591,-16608,28404,-26721,16834,2878,-29664,10686,-29189,26939,2207,-2426,20302,-1141,10551,9449,-15968,16833,-23914,-11741,-26263,-11325,14958,-23921,15950,-9338,18363,-18706,-28452,-2051,-24666,-30225,-9921,-32766,-5201,25954,18624,-8101,17289,-10160,-9892,-778,29055,-18669,10700,19440,-16220,31908,7916,-1998,-30020,2945,-9509,5449,3294,11895,25461,26686,2404,-3833,-19075,-29199,11369,-31248,6081,-20936,-32205,25069,2156,-4881,-21875,-10302,17686,-30179,29874,4767,-9636,203,-28437,426,7144,28111,30146,8057,-4211,19029,-21709,31308,24492,8714,7018,-20787,-19875,-2546,8337,-13629,-8154,6975,23816,-21321,-30304,26939,2163,8613,19401,-2525,3633,13021,-18135,-26958,12704,7747,-7180,29707,-15212,-6953,-20409,-6530,-10471,-8206,11339,31679,-8467,-29455,2205,23713,-10817,13480,-13199,1833,18775,-19097,-1524,-7824,30894,-8499,-17462,15379,5244,5786,-17688,5502,22888,-18551,19695,6619,-16939,27780,25415,3025,-11732,3397,-25381,-4660,-31095,821,-31815,-3666,-26824,-1542,827,32020,7797,12464,-15316,6236,-24844,14158,-10244,11168,-19891,4460,-11264,-15742,-26335,32378,8189,17940,-12196,-9262,27809,13779,-21763,-3962,-11688,31535,-26357,23624,-11057,20239,10990,16515,32308,1747,-32656,19279,15662,-30341,-29782,22897,8791,19388,10107,-19372,-5763,19282,-7730,31355,9972,-25521,7546,22000,14974,-31571,3740,2074,23148,-3225,10853,-13627,6426,21484,-22501,-29028,16308,-17956,1204,-2610,-27426,4996,-22780,-32048,10075,25026,-10984,20208,-5637,857,-27337,3191,-8842,27380,19201,-2031,24862,-3740,-1659,515,30511,351,-8646,-20714,13240,-7047,-15566,-18947,26529,7904,10364,25843,-25199,-9183,26475,2031,23122,20158,-25885,10809,-434,-20545,-11260,18890,23236,-25578,-13097,352,13602,26175,-4751,-13337,-14502,20761,21014,-5281,-12052,30965,18847,30756,25118,-27368,32609,-26600,28852,-11998,14267,-26368,10899,16191,26454,24727,-2774,14477,-3346,-25740,20052,5604,9552,24044,24029,-14989,2623,-9,21781,-8931,-26776,-31563,-5246,10745,20706,-20503,19844,-30482,23157,9689,12288,-19868,-32742,453,20312,4264,-19801,14437,19683,24819,-20160,19484,-2828,-13505,56,-10611,-15995,1676,25353,-9341,-23343,-21985,9760,471,17693,753,-5772,13712,19775,27105,-11748,28553,-25533,-17899,-11120,-7943,28477,-16544,20747,3817,-22684,-26415,5773,-24938,39,-3542,-27123,21642,11319,-16957,-6687,-10243,-32378,9558,18063,-5667,14440,10390,4385,2674,-23712,30629,14807,-11890,1214,-2148,-8630,6632,7358,-649,7258,30198,2427,-25082,-28876,-10413,14848,-30386,-16446,-10379,405,-1439,-15941,-29591,-7950,-26624,-8322,7594,-168,-6293,9267,11567,-20784,10194,23480,32065,14049,-8666,29376,-13854,-2505,13633,24053,22907,8251,18005,14356,-19603,29061,13734,-19965,-24432,-26439,-17976,-2709,-10812,9490,-20266,25375,27191,-12673,12767,-19757,-25155,17940,-28010,-5998,-13038,-24567,20767,-17173,6523,-11100,-527,-31255,-3896,-2348,-27216,-4715}, } ; static void test_encode_1013x2393_impl(long long impl) { unsigned char *s = test_encode_1013x2393_s; unsigned char *x = test_encode_1013x2393_x; unsigned char *s2 = test_encode_1013x2393_s2; unsigned char *x2 = test_encode_1013x2393_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1013x2393_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x2393(impl); printf("encode_1013x2393 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x2393_implementation(impl),ntruprime_dispatch_encode_1013x2393_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x2393; printf("encode_1013x2393 selected implementation %s compiler %s\n",ntruprime_encode_1013x2393_implementation(),ntruprime_encode_1013x2393_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1013x2393_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1013x2393_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1013x2393_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1013x2393_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1013x2393_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1013x2393_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1013x2393(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x2393")) return; storage_encode_1013x2393_s = callocplus(crypto_encode_STRBYTES); test_encode_1013x2393_s = aligned(storage_encode_1013x2393_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1013x2393_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1013x2393_x = aligned(storage_encode_1013x2393_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1013x2393_s2 = callocplus(maxalloc); test_encode_1013x2393_s2 = aligned(storage_encode_1013x2393_s2,crypto_encode_STRBYTES); storage_encode_1013x2393_x2 = callocplus(maxalloc); test_encode_1013x2393_x2 = aligned(storage_encode_1013x2393_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1013x2393 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x2393();++impl) forked(test_encode_1013x2393_impl,impl); ++test_encode_1013x2393_s; ++test_encode_1013x2393_x; ++test_encode_1013x2393_s2; ++test_encode_1013x2393_x2; } free(storage_encode_1013x2393_x2); free(storage_encode_1013x2393_s2); free(storage_encode_1013x2393_x); free(storage_encode_1013x2393_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1013x2393round.c0000644000000000000000000014504214705505543023525 0ustar rootroot/* ----- encode/1013x2393round, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1013x2393round_checksums[] = { "f75c0afa30054add70fba4f12d5da9eea18fbd3a1331033a378bb4c618de81a5", "daab9407d45841416f8d74109a9ac3e9979213074e580c1779fdb76239959dd2", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1013x2393round_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1013x2393round_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1013x2393round_ITEMBYTES static void *storage_encode_1013x2393round_s; static unsigned char *test_encode_1013x2393round_s; static void *storage_encode_1013x2393round_x; static unsigned char *test_encode_1013x2393round_x; static void *storage_encode_1013x2393round_s2; static unsigned char *test_encode_1013x2393round_s2; static void *storage_encode_1013x2393round_x2; static unsigned char *test_encode_1013x2393round_x2; #define precomputed_encode_1013x2393round_NUM 4 static const unsigned char precomputed_encode_1013x2393round_s[precomputed_encode_1013x2393round_NUM][crypto_encode_STRBYTES] = { {80,171,95,96,95,247,94,195,139,53,189,34,213,197,147,90,252,178,13,20,218,114,168,147,212,203,125,37,240,170,208,232,74,55,96,197,173,209,87,64,81,13,194,133,39,123,131,15,107,44,4,106,85,12,165,240,12,42,190,132,76,74,204,76,225,37,142,85,106,129,154,177,247,110,223,174,113,243,100,100,165,52,197,46,161,217,110,198,171,125,39,149,227,27,212,1,71,139,191,48,196,182,101,182,133,230,32,180,124,145,113,155,221,178,53,150,245,247,143,176,128,149,97,0,128,14,176,5,28,245,204,195,254,16,185,216,16,153,237,254,220,91,34,210,218,237,166,230,140,160,253,18,188,49,249,143,134,171,159,195,148,84,205,228,146,113,232,136,212,78,68,196,103,112,196,249,133,212,199,2,126,142,226,46,46,149,48,1,75,35,1,180,186,7,156,132,41,241,9,46,254,209,90,79,229,77,99,164,5,98,26,163,65,26,51,202,226,117,31,62,176,170,247,194,115,165,12,170,131,125,42,226,161,185,88,17,88,216,37,14,49,174,159,33,144,122,99,246,215,45,224,70,56,231,223,220,102,182,164,144,96,200,110,137,228,153,189,118,129,229,147,216,205,200,208,181,22,139,61,240,24,203,134,230,38,175,169,170,187,241,159,84,83,167,164,202,29,55,118,175,1,24,64,165,60,53,163,66,155,56,105,114,160,99,62,168,76,249,113,81,90,142,79,124,136,187,247,186,44,28,94,232,111,240,2,105,81,148,17,64,137,58,91,248,144,25,175,254,138,229,216,93,166,67,109,73,115,63,105,7,131,228,103,111,129,54,54,237,218,31,232,154,48,77,22,68,66,52,2,105,38,135,113,131,187,250,100,200,58,163,141,215,20,93,177,183,240,255,40,140,66,158,179,117,245,79,170,109,65,58,197,40,84,90,224,203,180,157,247,138,59,99,107,207,1,29,43,3,55,237,110,178,95,127,139,242,202,82,38,233,24,210,115,193,4,57,57,223,167,157,162,196,22,41,59,6,18,195,207,212,189,66,154,136,171,236,210,253,194,182,236,169,188,166,64,26,212,46,243,32,247,82,65,144,22,109,207,236,234,111,217,27,209,26,204,255,54,62,114,89,69,49,218,153,46,8,252,3,116,78,36,44,63,7,58,127,118,83,148,4,143,107,188,252,95,237,147,0,245,109,145,211,123,200,136,163,218,119,168,176,22,191,30,120,141,189,186,190,12,140,123,79,204,189,221,224,251,7,156,157,8,18,0,168,203,163,10,159,148,204,5,76,228,239,77,29,198,134,191,60,90,179,158,174,65,178,38,251,97,65,197,172,247,255,103,134,176,106,199,42,79,163,161,23,74,155,185,3,185,13,116,197,103,214,102,151,99,143,28,203,221,29,87,192,169,102,81,45,164,46,250,136,40,220,145,226,55,211,159,48,186,13,84,122,1,53,81,187,18,248,71,168,75,38,44,165,85,93,191,39,4,252,89,113,225,170,227,61,161,251,250,239,62,130,79,170,209,249,71,70,36,33,131,68,113,210,155,140,199,85,101,165,175,162,80,74,208,89,230,53,219,98,81,175,61,188,176,129,114,238,203,92,117,160,213,4,199,173,134,1,205,68,117,154,192,215,200,167,104,246,244,7,175,157,45,199,239,161,240,53,143,234,37,125,141,12,65,98,188,166,163,233,252,13,207,51,94,20,142,35,160,218,145,5,51,104,125,209,41,100,169,41,21,132,6,8,252,166,45,99,246,129,130,30,48,131,70,227,227,71,192,139,139,128,132,57,111,215,241,107,201,214,243,114,29,20,165,254,47,177,235,208,85,221,197,113,79,183,238,112,171,168,246,129,20,130,123,62,33,229,230,91,36,238,46,167,65,31,122,104,67,129,124,200,144,153,64,180,2,64,160,24,140,159,158,152,199,100,70,174,249,94,74,192,72,242,11,51,181,190,153,85,247,145,26,39,47,123,215,224,46,134,50,89,39,204,181,236,130,227,40,198,228,101,230,2,21,254,136,8,18,161,56,167,22,127,120,117,238,197,179,146,47,95,226,251,177,31,41,156,59,2,165,92,133,88,208,98,234,164,99,187,208,8,136,3,27,150,147,107,103,92,240,129,196,104,178,193,155,186,119,136,24,70,35,59,230,10,3,143,119,253,47,253,124,177,212,196,71,61,47,158,5,206,193,141,124,40,224,35,21,112,177,104,120,59,18,152,3,90,221,240,160,148,219,98,42,85,76,120,120,219,15,173,87,139,155,145,219,233,102,46,208,211,220,176,219,220,124,81,131,238,255,62,96,114,171,8,17,209,219,192,2,97,118,57,82,100,194,169,192,58,107,192,173,223,95,109,151,211,63,221,120,255,177,207,162,163,62,30,166,83,188,93,78,156,31,67,78,91,59,59,158,166,54,23,44,111,8,228,33,235,46,90,119,30,84,22,21,161,90,12,124,87,2,207,77,9,179,28,213,117,218,37,163,207,230,114,39,227,81,193,194,176,78,169,115,234,226,174,84,35,228,224,224,115,194,179,57,60,207,124,114,37,61,139,242,132,23,3,134,186,243,228,145,17,174,90,224,235,196,114,165,169,176,227,179,183,166,75,215,61,0,149,180,32,81,140,35,93,166,237,224,110,16,56,251,144,68,60,162,210,199,106,38,151,254,153,20,253,234,94,126,75,25,11,111,238,221,179,229,14,105,210,9,242,13,45,115,98,80,188,90,216,242,128,238,218,138,166,239,97,85,180,114,106,162,14,111,46,168,220,226,114,239,171,240,32,114,49,147,35,111,68,93,218,81,162,28,234,180,159,137,14,200,96,244,143,90,122,189,147,175,171,178,99,163,30,99,230,126,69,235,226,137,224,217,225,139,211,243,32,164,17,227,12,21,129,16,47,17,31,147,132,29,135,226,167,65,26,248,59,191,12,61,79,193,141,184,145,220,146,246,157,230,214,40,140,165,103,104,186,94,201,162,160,29,132,155,83,87,115,222,236,12,179,72,16,238,184,214,68,102,187,71,70,88,182,182,247,227,15,187,143,196,212,6,108,24,145,78,23,254,5,107,221,72,89,23,137,162,182,218,235,199,76,164,96,140,162,166,215,227,79,187,237,21,58,102,9,13,39,167,102,8,228,8,106,66,99,190,166,122,20,228,132,93,174,222,58,251,49,138,204,149,29,147,164,117,194,121,107,2}, {139,234,192,162,85,14,68,82,250,177,234,200,221,212,45,2,139,25,128,108,23,21,115,2,129,212,14,58,94,84,35,188,190,229,130,94,39,11,75,103,5,45,83,242,134,103,215,194,243,15,215,185,180,13,103,86,222,184,119,97,195,82,234,210,224,237,15,212,216,221,20,2,241,3,206,247,249,120,235,205,32,140,107,217,223,140,141,61,166,155,151,186,222,21,160,107,35,93,163,114,25,4,171,100,159,8,59,149,130,40,177,86,63,167,194,3,79,171,23,160,77,173,134,219,195,212,177,69,131,6,172,158,165,200,72,138,125,223,184,108,196,238,129,196,10,140,156,195,102,220,35,95,84,129,210,235,32,150,238,14,144,94,63,149,235,216,127,151,196,77,221,13,74,164,133,9,123,127,91,28,87,246,108,169,233,41,7,172,227,210,62,83,204,174,221,117,125,10,128,156,50,177,180,112,14,255,42,35,217,27,158,92,248,239,146,167,237,34,100,237,179,250,177,40,44,164,24,172,85,198,222,127,163,45,0,99,141,20,101,205,65,14,55,98,39,155,26,149,69,233,138,85,240,235,112,128,196,209,18,93,23,44,19,18,48,175,156,64,163,162,229,162,189,196,129,74,66,47,10,152,87,124,128,36,9,44,26,62,133,168,76,2,111,10,154,33,100,103,113,217,214,118,151,135,86,140,204,235,214,130,63,103,34,138,86,197,208,105,248,129,164,93,94,206,49,56,219,111,84,233,141,142,17,174,199,2,130,93,203,252,197,240,54,219,235,131,80,56,122,72,250,149,144,219,87,150,75,96,32,202,159,36,114,176,57,96,19,97,228,8,94,91,19,119,57,125,10,38,216,55,207,249,137,228,238,146,107,187,127,238,173,21,59,109,215,89,101,255,164,176,143,0,132,110,22,104,203,28,77,163,153,68,227,248,232,47,66,101,115,184,140,104,173,96,90,100,221,61,48,168,194,124,177,114,122,23,32,145,150,154,192,99,101,63,213,10,104,182,212,59,5,114,226,15,59,95,140,151,86,228,150,104,70,66,254,213,238,228,59,144,32,53,84,231,141,69,174,125,121,183,214,123,8,83,136,103,166,224,141,196,117,24,246,229,206,113,200,1,129,197,240,234,90,70,243,214,207,118,252,34,3,33,77,121,78,169,214,79,228,141,112,240,44,194,49,65,127,167,12,110,188,46,165,191,29,57,254,170,215,0,47,237,182,239,99,94,72,65,22,93,188,97,102,240,221,205,75,95,137,89,182,75,10,19,56,221,128,168,7,209,225,116,126,11,73,194,77,196,205,78,107,165,66,121,89,234,254,211,77,72,83,54,181,216,204,146,14,92,205,44,174,113,192,220,83,156,69,88,136,113,234,115,128,103,161,136,16,92,242,153,214,107,155,109,239,114,169,64,39,114,63,164,199,76,128,182,135,193,166,107,188,131,202,222,213,55,183,154,176,67,136,66,135,205,180,76,150,197,86,41,8,127,109,51,214,184,189,22,3,69,45,21,35,60,228,181,169,19,91,147,170,254,26,230,160,29,246,178,47,234,218,76,4,52,170,100,221,104,33,110,98,214,235,242,150,173,178,65,218,182,79,224,242,223,164,100,58,141,192,205,55,10,231,213,56,111,108,192,137,34,156,98,171,222,92,202,211,14,97,250,36,80,143,226,146,112,184,135,27,74,13,133,8,143,159,179,243,47,240,233,101,152,144,220,30,185,156,169,206,49,214,152,194,91,89,161,125,5,45,87,226,101,105,154,210,125,40,104,10,150,140,172,187,148,152,190,46,2,193,112,191,196,159,41,72,235,10,7,120,13,208,171,100,18,47,163,189,240,232,180,170,32,225,192,86,166,156,56,179,144,99,200,147,160,95,86,27,176,175,152,235,166,111,199,78,64,188,134,88,210,115,142,197,121,190,220,50,106,238,248,140,46,65,40,149,107,111,250,106,225,120,71,85,59,165,143,92,48,179,254,191,221,124,87,182,212,91,123,93,24,214,241,12,106,169,159,139,15,95,0,131,159,125,49,95,229,252,173,42,92,5,215,93,138,119,230,40,188,78,254,225,196,52,19,13,236,186,179,194,238,100,169,14,241,32,78,79,135,7,16,58,92,92,190,253,196,124,12,230,29,40,32,149,23,143,176,154,176,21,90,68,250,227,129,140,56,54,171,77,40,121,81,194,134,150,157,3,7,25,97,64,226,192,191,156,142,221,192,188,34,36,191,36,37,195,50,125,213,132,84,108,12,234,160,220,44,84,102,33,31,8,55,118,173,6,55,13,140,23,61,98,154,254,228,136,156,190,141,213,96,4,177,190,255,17,212,100,32,140,223,233,66,146,106,97,212,179,81,170,164,89,63,81,12,99,189,8,35,158,126,58,80,243,195,201,209,236,231,4,11,5,152,61,105,35,120,187,25,25,144,187,192,42,79,103,254,11,43,214,211,35,160,211,193,171,236,101,172,123,155,180,188,34,70,82,181,140,138,102,69,196,192,134,111,59,173,135,86,82,101,21,137,246,146,233,134,170,91,54,25,161,112,14,251,88,106,186,249,147,37,174,105,11,21,184,178,225,7,248,26,45,245,190,39,188,91,110,121,30,38,255,243,72,154,203,10,191,101,164,246,27,212,152,164,181,220,33,89,40,71,198,148,246,173,100,113,242,207,3,236,25,198,158,91,240,241,54,1,34,170,196,170,168,229,60,20,221,157,33,150,139,251,203,136,93,201,67,8,208,11,210,128,157,180,30,122,236,166,171,12,197,148,95,30,26,161,154,82,238,137,131,57,145,240,139,161,152,0,248,34,219,20,252,138,64,35,78,101,146,90,234,120,133,6,190,254,191,12,63,199,73,167,33,13,169,105,244,15,53,1,146,195,46,88,224,225,121,157,236,148,208,69,217,217,217,228,84,55,10,49,73,224,230,156,31,89,75,4,227,25,130,60,138,92,201,209,61,73,143,153,145,26,45,1,118,66,32,141,229,111,162,236,13,10,58,44,116,0,70,242,5,149,83,8,57,31,128,184,186,37,151,3,171,219,57,171,238,146,252,198,20,208,93,195,191,59,136,185,180,250,178,159,242,207,170,247,121,217,24,255,86,15,129,131,19,86,159,113,252,248,109,194,251,61,80,101,29,177,204,56,193,96,94,215,179,22,1,74,248,38,73,57,85,75,41,52,89,106,83,238,150,75,0}, {132,181,3,175,2,120,220,214,162,96,106,19,27,61,222,24,3,213,200,71,159,138,94,239,152,143,223,242,149,35,228,96,172,10,140,5,219,21,20,116,93,142,176,195,79,76,220,219,27,1,26,227,152,189,28,95,32,197,19,225,183,178,34,101,41,130,91,44,217,60,139,3,211,164,41,153,92,52,203,147,176,128,159,188,88,210,223,235,173,201,250,239,112,95,161,51,191,186,127,86,89,212,132,143,27,6,83,148,37,177,122,7,19,247,95,49,186,199,119,217,230,117,15,79,96,245,174,46,32,61,229,201,240,137,1,60,209,166,143,11,149,176,66,62,248,215,77,64,54,101,225,28,222,173,236,150,85,142,138,51,201,166,225,146,87,169,62,65,37,228,153,212,202,196,152,9,63,248,1,252,109,224,157,43,242,188,79,122,40,225,202,173,208,8,97,168,24,49,209,115,76,182,23,229,172,117,237,103,11,43,150,111,59,170,227,113,211,58,220,76,236,221,34,155,207,9,127,208,116,195,155,8,226,163,108,104,14,5,43,99,14,202,213,102,189,1,14,9,100,81,176,195,179,146,137,67,172,56,126,203,227,22,88,88,135,158,62,129,14,143,72,81,79,181,178,215,188,174,73,177,164,12,158,46,181,79,238,182,82,171,145,221,69,14,135,204,13,249,71,211,177,158,213,44,92,118,200,13,136,112,60,187,228,33,122,128,53,233,7,152,60,202,178,116,89,191,86,96,77,10,118,200,253,133,94,144,173,180,236,153,40,228,155,204,178,228,173,218,91,57,182,113,37,157,27,139,145,207,140,58,87,133,160,111,179,255,216,127,251,89,255,223,111,170,0,27,135,197,225,30,210,178,194,54,202,23,42,113,221,24,238,48,93,46,226,80,41,114,106,171,43,103,124,143,44,9,85,16,252,188,119,194,143,25,79,35,71,82,164,68,0,16,175,184,105,48,249,202,73,55,188,145,185,244,19,235,255,0,143,218,3,245,87,62,205,125,98,183,120,235,17,112,136,143,69,170,137,141,180,156,192,78,212,168,178,122,37,16,203,190,138,28,54,142,6,204,51,163,61,220,224,194,195,188,202,99,114,56,237,216,233,210,46,129,146,99,80,247,3,52,173,250,131,232,191,187,226,28,179,40,178,47,5,9,168,204,215,230,87,249,141,220,202,226,185,191,71,7,193,227,139,35,70,172,7,20,118,37,123,250,75,198,35,153,78,33,95,166,205,132,190,175,193,71,23,242,239,41,251,107,75,77,94,90,245,91,21,108,192,239,155,161,74,39,120,224,63,54,132,87,252,61,42,171,149,184,255,19,58,0,109,83,134,60,7,76,152,110,188,78,35,39,189,201,159,37,76,61,108,21,187,222,76,97,53,226,109,168,127,193,97,120,207,116,155,65,7,192,104,55,86,70,237,175,5,16,255,176,100,86,28,215,197,24,78,1,54,5,244,22,100,176,15,201,165,179,99,196,86,43,238,74,244,223,167,18,162,243,248,18,112,89,85,198,12,30,50,65,226,60,201,33,156,155,107,248,103,89,165,242,157,160,202,105,188,90,180,115,20,220,190,98,248,36,46,18,131,131,105,228,48,252,219,193,80,112,129,99,56,144,69,184,137,90,19,202,198,66,36,16,178,89,3,59,48,228,29,130,58,69,186,6,169,200,187,162,169,155,226,94,192,114,47,35,65,129,247,124,101,107,239,109,151,122,155,232,38,240,180,239,192,154,106,28,234,13,2,12,191,7,77,77,92,195,183,133,248,194,59,152,225,34,194,174,47,53,159,211,51,86,171,29,30,81,179,0,40,228,102,171,181,52,174,64,211,227,125,152,155,155,54,59,172,11,75,51,50,48,126,210,93,132,30,114,89,153,99,122,255,66,37,4,28,217,245,11,82,150,186,234,54,35,57,226,85,18,6,233,132,46,249,126,62,114,17,186,78,173,155,40,153,181,3,131,9,206,209,97,135,201,220,251,13,204,193,192,156,95,15,82,217,19,189,27,241,247,188,234,197,129,171,131,241,105,62,137,160,113,136,190,107,15,131,236,49,65,61,53,69,230,218,178,224,151,209,176,53,188,141,240,19,84,251,57,134,91,200,134,90,9,1,75,15,180,86,114,64,135,155,65,48,26,114,243,254,79,254,35,43,195,186,3,147,46,254,178,21,33,215,149,61,150,171,200,238,152,74,228,249,141,101,197,234,6,228,229,12,234,244,185,120,57,186,13,77,80,172,244,95,131,238,237,168,5,27,106,202,89,104,253,220,175,150,107,206,247,248,42,110,154,136,249,76,131,51,82,113,116,172,230,98,219,122,174,237,25,134,160,142,171,72,215,208,231,98,82,112,0,61,252,64,171,6,85,114,190,122,142,228,227,11,80,64,64,193,244,29,100,99,14,136,244,47,228,43,206,153,49,192,226,143,33,78,192,158,190,92,79,4,42,48,122,92,170,220,68,69,28,44,113,85,168,18,13,59,16,136,127,152,9,108,182,203,165,189,31,227,5,119,43,48,119,53,73,66,13,172,26,9,115,165,102,186,215,92,203,14,139,51,153,120,36,252,16,233,170,104,110,230,37,62,219,86,224,241,162,162,142,142,194,113,7,110,227,219,187,5,0,90,162,40,199,177,14,74,197,65,67,199,114,13,249,233,165,243,255,60,183,38,133,185,190,21,126,90,94,228,191,37,27,180,130,43,24,122,16,31,160,183,145,229,218,72,180,108,32,132,107,103,222,200,135,34,111,144,179,252,235,234,105,231,249,114,21,43,67,162,218,155,128,219,28,72,40,212,8,3,131,131,163,131,114,67,109,92,244,26,141,124,68,201,86,47,56,120,33,135,5,6,203,17,81,7,22,169,26,170,25,152,68,249,159,26,57,73,204,56,75,52,182,84,88,30,16,82,6,165,64,1,129,101,192,134,109,247,190,244,238,63,24,220,247,73,15,163,88,185,107,96,126,35,22,238,81,106,163,52,127,209,28,40,196,14,93,35,16,182,164,134,149,182,37,26,210,178,44,246,65,156,103,13,175,196,112,79,84,250,38,165,167,113,196,226,147,46,238,192,3,89,4,247,235,80,102,58,196,122,19,148,20,245,208,164,151,119,17,202,100,179,250,45,198,144,100,40,87,94,108,145,137,167,148,1,2,95,165,65,12,214,65,98,63,131,160,140,22,18,65,112,33,216,221,1}, {129,180,66,155,157,153,182,28,207,225,130,18,10,221,220,199,48,223,107,207,235,36,121,177,1,227,54,85,5,99,106,235,201,236,235,72,152,211,38,170,228,57,18,229,24,133,158,254,148,89,216,225,24,205,55,79,228,20,130,226,187,87,108,77,154,234,239,67,66,147,186,116,170,224,95,28,0,103,153,164,168,160,188,133,37,201,4,33,241,138,77,69,11,237,105,163,108,66,127,71,208,143,148,162,159,106,141,115,171,22,218,113,41,21,1,85,82,124,32,255,178,47,232,158,171,194,239,174,231,1,255,76,188,202,45,234,147,74,230,19,199,199,59,60,255,244,31,176,201,177,82,170,75,218,223,118,92,17,227,228,242,115,20,209,139,134,10,149,24,249,40,29,229,70,56,136,178,54,163,94,183,113,234,141,57,209,73,75,45,240,224,14,151,176,189,230,233,84,252,215,174,202,248,33,78,233,141,132,21,213,246,190,17,230,106,133,233,0,31,29,216,189,37,170,45,73,80,180,176,57,59,5,65,215,253,192,41,75,191,142,149,126,146,89,128,32,132,222,24,63,178,220,18,56,219,15,173,56,55,201,17,142,156,209,188,35,50,55,68,21,132,125,176,81,50,208,7,51,95,74,22,217,66,61,161,29,209,117,38,190,162,114,222,71,116,243,155,109,99,93,41,121,207,144,221,98,164,99,56,128,164,216,82,200,22,214,128,243,15,132,149,193,237,4,218,147,237,54,192,172,175,131,65,140,99,197,144,192,254,232,96,153,30,250,173,19,230,176,4,131,119,170,230,227,98,74,52,143,41,213,14,228,123,202,253,130,179,150,254,206,73,100,164,46,155,233,4,234,91,30,57,249,165,3,204,48,170,49,140,136,114,138,27,115,73,115,188,150,144,179,74,60,141,206,3,68,233,76,201,81,218,202,103,12,59,14,237,147,112,86,146,60,113,216,59,178,255,136,245,24,225,226,253,153,134,89,232,5,139,49,250,81,255,129,198,171,233,175,21,242,45,210,15,55,200,77,113,36,228,12,64,221,10,221,148,252,232,133,71,69,146,64,184,42,26,65,74,164,232,227,189,37,220,213,32,65,105,20,181,116,216,204,243,154,48,125,161,143,244,13,194,79,229,214,176,63,31,115,162,30,111,199,140,108,152,227,187,106,68,191,87,217,5,245,48,60,218,3,56,177,153,97,70,39,74,45,140,8,95,51,99,1,22,69,212,31,242,123,205,86,198,148,253,29,64,216,103,99,205,52,214,63,170,212,117,98,23,70,130,23,38,206,32,133,45,113,51,157,217,118,250,159,245,78,219,150,186,255,242,68,247,161,231,34,33,108,62,197,176,60,212,37,30,57,175,197,252,218,3,59,76,5,214,131,70,13,109,39,192,81,238,60,84,251,45,230,39,15,220,167,127,81,95,100,191,126,197,142,177,175,152,82,33,111,95,26,72,4,19,163,189,123,110,245,228,216,52,121,152,239,94,201,254,170,93,50,39,118,150,139,118,55,167,28,41,83,176,43,234,216,106,13,96,252,48,127,224,12,72,149,140,0,186,61,252,88,31,152,142,6,220,13,202,116,136,40,68,24,65,30,110,78,6,57,14,162,146,5,205,227,115,250,124,35,184,222,204,251,131,220,186,106,170,192,1,254,216,222,40,202,177,219,181,109,59,28,10,233,116,63,224,241,32,145,194,93,186,71,57,223,81,214,77,107,184,220,26,87,31,30,83,69,74,255,235,171,134,101,161,168,76,236,204,63,5,222,250,98,202,215,192,188,237,206,157,168,40,34,77,52,44,2,67,214,150,179,255,117,193,216,173,19,71,127,176,246,210,173,197,117,69,146,36,200,200,232,212,40,59,15,13,32,202,87,85,218,226,152,29,107,48,173,183,89,207,253,99,188,49,4,164,103,14,230,160,201,133,126,81,5,1,174,147,88,122,231,113,155,59,234,95,63,189,128,6,21,123,15,23,84,32,152,93,20,135,2,66,211,146,10,80,176,225,149,199,88,223,217,99,189,151,166,242,230,185,196,183,132,175,88,114,232,135,37,210,216,143,115,30,207,91,183,167,214,97,71,204,183,247,105,142,96,110,55,185,137,49,111,37,134,11,130,25,86,173,98,135,89,205,37,204,70,50,29,181,228,100,212,113,217,247,11,92,116,50,166,16,0,171,133,138,182,236,64,194,199,0,129,130,132,254,36,191,223,132,181,239,3,186,184,47,238,114,141,27,162,75,50,254,39,36,92,144,94,100,157,229,23,190,219,126,71,98,193,191,166,19,14,90,18,237,200,248,107,148,240,27,57,28,229,36,177,36,150,130,158,74,105,49,100,89,194,49,238,204,104,75,42,151,99,206,149,21,132,49,15,133,177,164,113,94,31,17,13,113,90,79,88,224,188,173,69,117,130,5,217,206,134,238,49,158,253,67,55,126,12,100,8,102,31,49,52,154,116,192,220,243,167,179,6,67,147,237,83,67,12,139,105,181,89,170,148,235,223,17,152,27,68,45,19,110,187,94,151,237,103,197,207,15,208,16,132,92,43,127,198,139,90,117,232,49,175,244,135,97,163,6,233,199,66,255,194,209,234,41,26,63,145,224,243,141,101,206,215,252,230,157,152,89,16,29,242,136,236,166,179,44,55,244,215,249,66,168,229,71,192,142,136,72,255,127,48,211,226,68,168,178,128,59,86,212,136,253,247,77,72,249,240,25,247,36,226,41,186,38,122,91,3,159,33,228,72,180,252,225,144,147,175,87,236,248,99,10,160,128,193,32,123,251,244,105,156,155,191,22,141,13,29,9,112,163,201,162,254,157,39,149,2,158,210,75,238,111,74,48,116,219,247,46,11,157,83,66,33,65,43,49,192,13,116,109,53,47,251,231,190,1,147,71,108,82,148,139,40,131,13,188,178,35,75,229,15,241,46,182,236,55,90,240,51,197,186,6,93,27,163,117,93,6,57,102,205,214,233,254,61,77,108,196,105,11,24,14,22,248,172,78,140,182,121,22,57,12,10,237,50,88,195,216,5,76,115,119,33,196,38,151,245,130,91,71,83,181,27,176,26,84,130,127,28,213,210,150,255,208,1,60,250,108,244,77,10,199,189,32,172,136,50,108,237,225,240,114,110,221,17,119,63,232,95,109,214,94,238,0,232,237,132,91,169,4,117,89,71,145,14,70,75,121,180,52,89,0}, } ; static const int16_t precomputed_encode_1013x2393round_x[precomputed_encode_1013x2393round_NUM][crypto_encode_ITEMS] = { {-10995,19420,7918,-27125,8302,-31350,2561,24112,16867,-10426,-25367,21265,-11558,86,1239,31753,-7273,-32767,5106,-10603,-8992,-29256,-16982,-6615,31703,13191,-32669,-8375,-15204,-30056,-15218,-805,-14019,9163,1092,19348,3418,6583,9372,-19989,11934,-4938,-657,-5881,7799,13984,25071,-1453,7227,8909,-15484,-20956,25336,-11592,26510,-6262,-14358,-4595,23880,7789,-26535,17582,4656,29613,-24035,14859,-21931,3418,8868,14724,2623,-2712,14343,30775,-8329,-23568,-25019,-20012,3399,-6713,-7234,-782,24699,-11745,22472,5843,-17984,-24378,-8526,19241,30732,-15404,-11898,8988,12771,-29541,-13587,28778,-30530,15276,28760,2134,24800,29480,-3711,-30207,-8689,-494,-8035,-22263,-25152,-26119,-10935,11583,30273,3278,9887,11440,-3255,-9892,-12130,-22258,5872,-18001,21150,22494,4882,30575,29190,26431,-30839,8550,-28132,522,21170,-23964,23203,16048,19682,-6992,3854,15206,17557,23954,4789,-12092,-30440,-3714,27616,24509,-28116,24302,-20252,-19993,-16243,14568,3854,25748,-1401,-13665,-30703,-14689,7856,14592,16638,-26458,9545,23926,-7343,-22449,13918,13106,-8524,-8767,19648,32708,-12894,7159,-20353,-9788,31403,-10559,-21885,-19962,-14545,7466,11977,4704,-27300,-5833,-23296,4024,-20834,20515,-328,-28179,3218,-20093,14125,-15437,-857,-16946,-13022,-19207,-8714,-16500,15545,-8911,19904,-1751,32144,-5050,343,18061,-29540,-26020,5865,-2980,-16972,6373,-28218,901,-26050,27644,640,-8253,-16494,5666,12748,-187,-1831,-17762,24082,-32107,-26414,-712,29724,-9713,-25433,16412,-11568,12731,-1606,22090,9091,-11721,11645,-29953,-27345,27762,-8500,3661,22293,-27655,-10041,-7415,-22785,2708,-4808,30206,22491,25593,16615,-4237,27940,-31709,12953,-19439,23152,31140,-32499,8885,-3209,14258,-14997,-12849,3917,-6290,-10851,24045,-7157,18608,-17886,3633,-7935,-22499,-16318,13754,11081,7576,17513,2516,-25439,-22995,-8473,-13337,6329,10558,24287,-4227,-28961,32472,3811,-31128,-32395,-29355,11693,29195,-32157,15690,15589,-20131,944,-27615,18449,20243,-10582,-18907,3564,-20966,-14843,10586,2400,-20048,-4023,-3289,29908,17130,-3829,-16516,-11470,26754,-9555,7906,16635,9261,12646,-32615,-20999,-30752,8778,-23275,2656,-7076,7588,-7890,21247,23064,-28081,15332,-16912,-19858,11987,29606,-11541,-19457,-17638,-13460,-19988,-15620,1413,7163,-13694,7701,-10341,-21140,30662,-20586,8987,-18404,-21887,12065,2362,30599,23036,-777,6257,-32562,-14800,17183,-22760,-7939,27823,10907,-19377,17395,-26223,5180,14599,-28908,7028,-15141,20022,-24412,1976,-4797,13403,-25920,-18395,6069,-4977,-26285,-30299,-19030,-19384,-7292,-27244,-29831,1261,-4344,-11770,202,-17151,-8523,-18205,8471,-15111,-31458,-12682,-3745,-24831,-4005,-26612,-16046,-29401,13627,-13987,4381,28951,17303,-19640,14333,415,6638,133,30652,9798,49,1289,-21245,17594,1407,17664,-17363,-7986,7599,-10036,-18094,-5026,12230,2691,-10379,-6460,-15608,-26207,21667,-17904,17624,3719,-19002,-24867,9493,5145,12309,-12806,-10615,13169,1999,-32461,-30133,-15984,2708,12944,23942,15220,32063,-26102,-5417,-247,-15935,-32131,-5979,-26801,18345,-7992,22603,-18058,-19485,-20025,15868,5666,-29694,-7472,-5755,-17834,29671,-24110,-17820,-3832,5718,459,5627,-25168,10505,-26764,25859,-29136,-31343,24654,-5654,-10514,8663,17454,-15534,25554,10087,7900,2104,3234,9474,6498,-30817,24694,26182,21534,15171,28440,14518,2241,24743,27286,-26432,-12791,26580,3088,-7927,2841,9430,3280,2216,-13482,-16624,9751,-32705,15455,29897,-7118,12936,-9303,31027,-11239,624,1419,-22820,-11009,17794,-1682,-2436,-17304,28045,19761,-28053,21880,5663,-7004,-4560,-5522,6234,18606,19432,2839,28922,-8580,-13325,-2926,14287,31450,18343,16187,5140,14972,-8411,-26108,5337,92,-20688,-16951,-22553,23118,-20727,-24089,-10307,3128,-6171,24490,-25633,-20428,-5320,31498,-11085,18828,-17290,-13472,2661,7374,-7192,22048,-18082,12313,5282,-1442,-12433,16490,-5116,-13447,10425,-21861,5737,-17998,13190,18648,26113,-26012,-9316,-28588,-22273,-26656,-24759,-12752,-29111,-1975,-2148,-21479,21899,-22533,-7005,-10875,2145,-16535,-1603,9607,15426,-9518,31845,18148,32400,24838,30222,32495,19449,-17188,-10060,23017,-32236,19284,26075,-4464,-12470,11972,15763,-10737,26760,-18044,-17140,-26991,-25458,1529,13473,-18391,-7074,-6649,23959,-6169,-20377,4560,-579,30160,14027,29217,-31975,-13526,17981,19074,6536,29347,-21086,-17379,-3050,632,30356,-11439,20815,-19070,20655,-6163,-27627,-28369,-18138,5880,26531,22042,10406,-4179,2295,-1104,25015,-13585,-29084,6817,-15873,4145,19231,-24861,-24310,32580,-8714,9337,15230,-12238,25530,-27384,-8287,17693,-26282,31257,-7742,31883,-11537,13,-23705,7162,17397,-10124,24427,9958,1482,3367,27224,-23530,3653,22498,27164,-16410,-12045,6894,14523,-24245,3916,25796,-27597,-13203,4126,19304,23726,-11929,11213,19196,10382,-5821,16664,-24823,2476,-10221,-3869,168,28849,5630,-15471,21367,29948,23482,27266,-10002,10747,-19310,-23122,-19877,-3732,-26853,17014,-1583,12473,-1582,20037,1896,7872,-4698,4942,1727,-1430,26494,14315,-7285,3677,-32424,-16256,10140,-2702,-11219,-30654,-28200,-9881,-73,-31387,31890,6029,-18670,-22469,-13190,-20359,-5280,-13173,-26846,-15303,-4034,24739,547,1563,-11851,14968,-30309,14082,25607,4500,-29968,5159,-16992,-18307,-12688,8067,16350,14879,-27205,-18666,17879,-17619,29346,5706,-2802,-19526,-1327,-31958,-2742,11921,5867,8123,3443,-13178,16703,-13214,18186,-24845,4857,-28417,31459,2622,12912,-16488,-9090,27063,6786,2025,25391,-8823,17396,4294,4113,22504,18864,28467,23575,14382,-19417,32514,18865,-8131,-23084,11892,-26386,-28562,17028,-95,20183,-15592,-12140,-9229,10301,6176,-9823,16070,14820,-13089,19439,30278,-29250,22080,31373,27994,-17764,-32654,-3207,24927,18448,-30798,613,-20374,31184,-22349,4530,-25037,-3710,-2152,-21298,-23595,-5157,-1787,-27045,-27228,17381,13256,6621,7500,30522,24574,2257,-2000,-12142,5477,19029,6076,-24322,3615,-1234,22657,-19501,-23454,-2270,18186,10308,21207,-7708,15123,-209,-25139,7242,-7126,15553,8303,23800,24026,27828,4419,25051,-7793,-17456,7274,-27442,-383,26340,-27687,-4547,17556,16364,-2357,-31501,-16794,-24317,26166,10894,16098,-30337,-16963,-3652,9698,1753,1467,-11572,-26812,-1322,6940,-7141,23838,9960,9338,14545,-11900,-23639,8039,22923,217,-9281,4289,5703,153,-13984,-5647,10780,-18060,-4448,5647,-6713,-7501,-13510,-19835,2191,18343,-26132,-23165,6179,-24945,21696,-8210,-20202}, {31691,-5602,-17637,25584,7950,9393,532,-3400,18688,-32520,25858,-22408,27439,20992,-7929,-30524,-26272,-30681,-31282,-5888,25849,3972,216,4544,-6209,-25198,-13400,-9602,21001,-1838,11368,7722,-13475,16975,-12304,14304,-21707,25940,8952,3178,25041,8089,8591,-19732,1467,-12791,-29158,22880,-19428,-17337,-31913,-21259,-24634,10049,27804,25965,18791,18605,23883,-18218,29109,-21791,-23993,-9885,-21027,-23384,-1571,8720,31844,-18914,30162,25533,27151,-5186,-2826,31725,2074,-23172,-1211,32285,1949,16618,-2524,24532,-28623,26230,-20524,-6648,27539,3769,26508,-28659,27593,4219,-19607,2937,30302,17755,5476,-10161,-4046,-6421,-18253,-13039,29343,687,29276,24758,26764,-26650,10673,26786,8905,-16553,-30151,-16685,-6414,4019,-5796,-174,14494,-29562,3318,23380,-2965,-6019,-14474,-13297,5515,-2193,-4052,-29244,-15490,-3279,-17665,-23658,-19481,29499,-23623,15622,973,-2857,21990,10767,30846,23521,-11458,989,18017,-3718,-31887,-14108,-26917,13576,3106,23222,-7055,-14669,3220,27753,135,20137,-13519,13253,28982,8387,19093,-4479,14360,1940,-14456,18386,-13973,17365,12578,26022,24667,20063,4854,31980,-19139,12593,-25448,16544,21874,-32565,14728,13673,-22443,-30046,20849,-20556,7097,-28908,-17417,-11061,3188,-24274,-22047,-9245,-28778,10515,14580,11155,12695,-967,-16016,20201,-4199,2412,-10801,-17315,-29182,-15789,25595,3443,6511,28251,-4401,-3355,26219,-1376,26243,5456,-31477,-24799,6830,-11622,-27075,-324,17598,-20375,-14006,-12317,6385,-18709,-3827,-1452,28514,-4136,1687,-1203,-2316,-20877,22091,-13189,-569,-13023,-4128,-2616,13456,-32299,-31019,24455,16530,-22758,32391,26255,28407,-30333,11388,31816,25523,22329,30762,-19176,-11133,29689,-12467,-15322,15424,-6117,32764,-10461,27539,3249,-26796,-8212,11090,-22753,-18656,4504,4716,-2677,-1079,-2590,482,3002,-31635,-12770,3235,-26003,-12025,-30191,-10939,-17908,24210,15703,-4522,-1636,-17218,11896,31406,-5303,-12945,1549,-5748,31961,-28847,24750,-32476,-11971,-3149,28206,-10681,-25202,26854,-2573,-8605,5734,-21272,-13128,13350,12863,23902,-20073,-3472,31352,-2607,20349,-20448,-14837,-23994,17120,-24340,28814,593,-31314,-19781,-961,-18096,-18087,21394,5352,-20476,-5885,-29246,1522,3015,10070,-7663,11901,-9113,23709,-5755,-4648,23817,-6718,10953,20168,936,26773,21916,162,19660,-24494,-21835,-25566,22089,-8634,-30745,26216,7614,24908,-6454,-15581,27825,-9121,-22247,2586,9142,8401,-19771,17883,-28904,29717,-409,9944,3475,19771,22492,10874,6143,-20876,14579,7202,220,25036,20799,-13919,-6092,-31921,24312,16606,16721,-18787,24701,27591,-26530,1964,4325,-13625,26154,32705,-1554,22836,-7375,-3594,10837,31205,-19441,-24654,1872,-21782,9895,32000,23446,-19133,25218,-21269,-14350,31437,-25732,15212,6344,27013,6568,-8263,26838,-21768,16705,17264,-23560,12813,-11054,19615,20101,-18107,25738,3738,8855,-20054,-3984,25449,30640,20056,-23975,-30888,19056,18701,1801,4003,15735,-19458,-9717,-3638,-18511,-5930,-6278,-25797,19871,32233,-1736,28070,-14280,-14776,1170,-13935,-30645,16715,-10483,-23336,-28995,-17152,867,-9834,-26165,12947,19071,9619,27234,-32653,11456,-28316,-11122,-30570,-11064,31313,-29520,-1226,-31419,16813,9110,19880,25179,-24868,29685,21627,-26922,-18567,-6030,23728,-5250,-23340,-22649,-25296,-27225,14463,3847,-29326,16586,-15047,-22436,10108,-22967,14704,-21385,10097,-9783,1044,-16543,6941,14336,-5944,-26945,-27794,-5265,31940,-15347,-16028,-18321,-29293,16020,-21654,-22507,-14032,-20311,-25659,27632,-28442,-22466,-19206,-24506,13280,-15287,-29142,32196,6053,-18602,-26631,15805,29696,8126,25041,-17370,-29547,-3683,-12858,-10140,16476,-21942,14637,-1712,27260,2100,86,-16124,29127,28244,20620,-24061,-12693,-25577,15709,30214,-6916,-13659,-11362,10844,-8204,-20336,-15194,-10162,23954,-4906,-32614,19776,27941,350,15522,2873,18088,29555,31468,-18708,5909,25136,8184,4684,-22929,24166,23922,-31315,-12793,-25544,24504,-13225,6873,26657,32509,18390,3511,-18333,-24735,3118,-18949,-5194,25383,16307,-17962,-10095,27469,17031,-20308,-7356,26077,-19447,31872,13057,-27281,22195,-4158,28186,3133,31088,-10752,-19516,-14498,-10218,14541,-30036,-3848,13113,28391,23194,-12884,-29275,32610,-8256,-1197,28794,13819,29448,12697,-22180,-27754,8250,-4194,1633,14380,-10536,24714,-31498,3494,-1697,11094,3299,-12984,-23764,-20373,26669,32378,-21135,-1714,1957,-4108,9329,-28085,21738,17797,6384,294,-17850,14457,15534,6137,13626,-4655,4969,23756,18047,-8895,-11085,7168,-25035,9855,26751,-615,-11130,11913,-15962,-28724,-14188,16235,-12006,-24987,12569,32012,-6813,24934,23712,-11593,-5495,21816,-23399,-27204,26223,2055,30303,16096,30405,32743,485,-11028,-20543,-15969,17419,-14216,14381,8486,-1527,626,15333,24371,-27068,23511,-7019,-14345,-26803,3743,-18661,20481,-22861,-5141,-9386,-5621,14743,-7385,-12726,15418,-8629,-1573,-3310,-4290,-17279,14252,-9167,-11130,-30077,13139,-1330,27717,-10134,16765,11856,14734,5562,-23456,16691,-4171,-9357,-14932,-7393,-23081,-710,-15907,15622,-9259,28363,-18203,31555,-5703,4760,30127,-678,-12680,-18664,20438,3490,3017,-25696,31456,-16362,31329,3476,4946,-5529,-22060,17468,-1203,468,-18603,-7183,-11507,32633,-25456,-27144,-640,12035,31532,31878,-28291,953,22634,23254,24676,13200,29197,-399,-5055,-12799,-12352,-12914,11084,14692,-25480,-8705,7885,19523,12314,-13414,-4392,16585,17790,11523,-26727,4931,-3385,-32331,-30536,-23792,-21113,21182,-7364,6253,-17192,-26529,-16325,386,-13320,-9330,8006,14930,-30178,-1,2606,-8818,-20175,16330,19113,-29436,-26062,3841,9327,-14144,18673,-10343,-32479,17405,-16193,-9719,29823,22241,24077,29707,-9633,-28549,-18043,16186,-19142,20247,-6257,-24596,22027,23678,-7930,6948,27423,-13065,12760,-28181,-6942,-25252,13714,-6525,4203,-17144,-16138,-19111,959,25724,30475,-12290,-11796,-17635,-4452,7640,-7920,25597,27662,-3606,-30300,30281,-5916,1293,21252,-30688,-12356,-12831,-10449,24948,30626,-31729,3471,27961,-23847,-15233,14153,-512,-32158,24927,15124,-31634,-10711,-31071,8305,3339,19946,29055,-26983,4024,-6655,19800,22251,-22922,31777,25599,31121,2357,27530,-9838,30241,28203,23513,-8110,12281,-8534,-1567,-9779,20694,-16101,15124,-28545,2120,15579,15722,-2862,27751,-18279,16197,-30438,9793,4670,-9149,-4511,-4651,-5479,-19832,-1895,-27304,26497,9532,8515,26772,-26084,-3575,-18125,-21742,-7561,9334,-23867,-9044,-3148,25994,-19254,-23521,-8419,-8113,-25610,26442,-13250,24725,-18071}, {23509,-23319,-28335,-32603,-5580,-6300,9085,-6351,-32735,26465,19742,14690,-30330,32237,22954,-7478,-21415,-10707,7738,18320,-12158,-5635,19675,-21327,200,10096,859,7252,4124,4554,3667,-5565,7373,-10113,20126,-27975,-24759,14771,15799,12835,29560,15144,22632,24850,-22640,5303,-11301,-23386,15020,27502,6371,-19245,25802,-656,13750,30690,17097,-4711,-10061,-16861,8592,11252,26567,26872,25456,22365,27494,32227,7666,2179,-30678,30330,8492,-1405,17596,28208,7415,6612,15720,-17460,23418,-5966,-31454,31045,-5747,29981,-18608,-8641,7237,-19500,22255,27247,26663,-12141,-22350,-11579,29553,-23313,27089,27854,-8139,23049,-9055,16701,-22194,13287,14319,14405,13827,1397,-3518,-17585,25842,-10037,-16205,-29274,-20283,-5699,1017,19110,-32503,3020,11518,1031,-19152,23475,3235,-25086,30872,19552,-11280,22553,-6169,26474,24008,31989,28699,-17294,5705,-30602,14901,3780,27008,-3081,-26143,-26018,-11559,22017,24885,19809,2120,13380,15232,-14659,-5666,9599,19063,-31708,13522,-11327,13523,-22003,16939,-25708,-25577,6321,18380,-18718,-12601,26176,-3724,5511,-24706,-25121,-16778,-21808,-25364,-27570,13699,-6253,-15324,-2532,3057,-15442,11809,-26112,28963,16692,28851,-20103,-2068,26163,11732,-5269,18431,22790,4728,21930,28137,5317,6096,9612,12712,12583,-7554,-7367,5820,1370,-19143,-4758,-32229,7210,27515,22376,-3698,3262,-14922,23740,-29879,-10666,-27900,15085,-16544,4513,-26782,28160,1129,-31112,7581,-15313,-29867,31727,4324,-25129,31184,-12051,23251,-633,15890,-7862,-20236,-29147,17682,5727,-26343,24954,20529,-28466,26860,30104,-30138,-26105,18195,18593,-1131,30925,1190,28671,17344,23459,-22279,-14546,-17888,-26794,-17612,31859,9580,-32702,30565,24510,24115,4486,24136,-8826,28404,26909,-2903,3780,-18407,-19011,-13597,-20084,22468,21600,-22918,-2008,-2889,-7261,28599,896,1999,-16696,23151,-17012,27733,-11368,-4141,-28722,-7691,-12021,-3529,27307,13142,13717,2546,-15007,6929,2573,-7211,1702,14568,-4138,5544,-31745,-31379,4092,-9187,16810,-5414,-29984,362,32202,-31809,-20132,7325,31373,-32300,-5646,-21870,15753,15074,27073,-7563,-16235,10928,-5141,30505,-12929,-22701,-24313,-25592,23301,-12211,-31362,30819,12588,3755,-29138,19435,20206,-29203,2362,23554,-23408,-11475,-16888,-23003,21074,10548,29767,21022,4502,20580,32005,17502,-7074,-19819,-18368,-13669,-19040,-18552,32702,14347,15398,9364,-627,-11735,-29064,-28512,-28952,-28666,491,-17551,13555,30667,-24514,8813,-16405,-9031,23399,16168,-16505,17757,-18315,28329,11630,-12656,1293,-3521,2135,18962,8519,-29570,-7686,-17452,31812,6295,3562,-4421,4106,1574,32197,29317,2006,-8548,21265,-18919,14384,9010,13965,-3761,29508,-7299,80,-31878,-30507,1462,-20350,-18898,16265,4449,-670,1021,32543,30289,9880,-2653,23642,-30065,-28315,-568,-17511,-2298,-4753,26218,-18784,2659,-19010,-25345,-8563,27481,-20794,-14232,2288,-4559,6648,15195,-14997,8224,4508,-5170,-25570,5101,-20118,-23506,-1499,-2421,24796,-29607,-17035,-29048,-5093,-10302,5410,13170,6089,-25216,-19264,16747,12420,8159,20249,14357,-9067,-14347,20714,-7392,-32151,-24207,-22156,-29185,24857,12486,-31554,6689,9995,27540,15336,16545,30675,-20837,14434,30501,3140,6123,-28163,-8301,-20082,1653,-20320,7518,-30509,29819,27918,1732,26005,18497,-5851,1970,-32002,32176,31550,-14721,-12999,-4489,-31696,-4862,26679,-19104,15583,13187,13714,-27245,-10389,1234,15679,20029,-3580,8635,-10775,7462,26741,-21788,17440,12026,22495,2616,-10554,25675,21462,-7356,-8665,5112,-20065,-30820,10701,-21536,-5175,-29086,9507,-3117,23831,31737,-16819,-10047,6542,-19920,-14102,1302,-15214,21562,-19512,-25557,9237,1084,23631,-27462,-7963,24984,4157,16108,-20643,27871,20241,-8228,-24632,19878,25946,-9246,-13075,4670,22432,-12897,11629,31095,5392,-31968,-6381,-2493,-24909,-7170,31652,1668,19268,10208,-21064,26260,-9687,-8113,-27561,-21549,16314,-32036,17757,4711,24122,-20796,29031,-14169,4360,12119,-13283,-3532,18258,15279,541,12668,-28493,-12896,2177,-25598,-27626,-17169,24026,-17212,11861,-3280,20740,14716,-2493,12421,-13910,-20539,-6250,26454,-3872,12595,3144,-24882,-793,-11195,-14742,-30842,10769,-10999,27310,692,5101,-2762,-19218,31159,17339,2194,-6757,28989,17316,22174,19937,-14400,-27476,19346,-18384,6656,-17528,-28372,-4683,-7614,-11083,-8095,-23768,-21874,20115,18520,2868,18075,-3265,8303,29861,-16363,6595,-4560,11329,23873,-10329,567,10652,-23754,-13694,32232,-11849,-20971,1450,-4611,-18650,15357,13954,-11282,-23745,19595,-30859,-1222,-21321,15020,30638,12743,-15423,-30520,302,-29784,17194,-10695,1478,-27217,-27700,11218,18689,5634,9000,-12955,-9289,11419,-11979,-6207,2504,20570,-30615,-30907,-26784,1673,16924,-30950,17480,6986,9864,11461,-23408,19289,-2638,-10337,-5238,-31058,-268,-28710,25622,-26748,11650,17244,-9252,24387,18166,2468,-13120,-30105,-841,-15803,-29542,-11224,9138,4156,-24283,6903,5577,-4124,-16106,-19852,9068,-18485,12766,-9808,-27729,28834,27686,-24422,-20191,-13814,26558,-18700,13354,16230,1389,14242,3325,15545,-7016,-28703,12446,19005,-10294,8800,14628,2965,18062,-22933,-5245,-30815,-13235,-16692,-7987,984,25668,-8340,-7635,-11809,-13957,-6444,-14481,-11152,-584,26664,18427,7318,30509,32406,-11423,-14607,944,543,-31573,-5519,-11940,-9786,27132,-23038,-31722,14248,-25294,31589,-12867,-23883,23986,-17639,4465,14422,-19902,4202,17645,16269,20157,5940,-20508,21486,12030,-15572,14019,17584,-19390,23611,27655,17864,-24919,21266,31682,-23492,-8767,7910,19590,29314,-19176,18392,-7965,8334,9694,-172,25902,-2693,-13086,1782,-4578,-19516,31052,19496,-3954,736,29407,32538,-23147,-11456,-2081,19532,29451,14885,-16105,30993,-30759,-22765,25277,-3788,-17109,14721,-10072,-13208,-29330,-6847,20796,-8511,25571,14691,20720,-19817,30228,-18205,31650,18875,22976,8880,28915,4891,26942,-5238,-5362,-3994,-2879,-30485,-8751,31757,-20688,-8825,-21755,-4814,19112,-6933,-24255,13155,9576,17558,-5729,14526,-24232,2194,27422,-30699,-13623,5172,-18438,15719,3925,4411,-21936,-8739,29525,8428,10629,-17073,5281,28855,5715,-24765,-13639,23680,-9151,14269,-31504,31092,28175,-10582,29480,27095,5865,1438,-4479,-26608,2044,12371,31949,16397,-7354,28785,-21662,-8135,-23249,23346,1648,-30625,-30602,24407,-9056,29862,12014,8734,31536,4408,17906,-25461,-24439,19319,-26059,-8043,-31924,-14773,28284,-26592,21990,3409,-17342,31635,-13776,-23935,27939,24851,-25103,29525,-82,-23986}, {-6777,-23649,19643,30788,25313,19496,15471,-23527,17890,10204,5010,-13972,22021,-2535,-145,10523,11691,-2619,-12712,-7829,1106,23160,1557,-18273,4783,-28232,6041,6047,-4681,-29837,-5086,-8235,-19290,-29952,16612,30846,8149,-26513,-21273,18349,26780,-7471,-16284,-16283,463,26723,-8787,-19399,-24931,-32713,-7007,-21907,-15633,31299,18855,31833,12505,9803,9411,-14893,18632,4817,23566,2430,20069,-16939,14463,-21460,15488,32759,31400,24912,20393,23712,13108,37,-10252,4164,7534,-15897,24140,9933,-30723,6970,30001,31709,6377,-12981,-13296,-10562,-26449,17908,20496,-32091,-10729,-15075,5487,6453,-17436,-25978,-30635,-2393,-17464,-25047,10722,-27699,-14242,15052,-17656,-4683,-26559,-18624,21556,-8712,-6398,-8940,24107,-8186,-19562,19205,11743,-31660,-2748,-18195,-22651,-13094,-5620,18434,-17674,-8469,-20843,3003,-4717,31457,26790,11763,-30610,8510,-23428,-30684,-24951,-4138,30422,-24915,-7435,-13406,-20664,-18360,-31641,7229,-11273,-30139,27565,6828,-26927,-1089,83,-28132,-31662,344,24495,-10326,-21293,-18265,-10036,2613,-3912,22039,-26277,-800,25776,15924,29624,-9431,7636,-13769,-5060,-10348,-7621,15287,-18850,18996,22599,-8839,22892,-25444,-7822,13804,30468,27004,-22399,-14797,21052,-22004,-6194,-16451,30131,24737,-16379,-32587,8842,-7998,23430,-23201,-19737,25854,20482,-18040,-19877,-30286,-31408,989,-19923,-32581,6561,-7362,-30588,29752,6227,30089,29999,-5287,30553,28791,-11922,-10748,10670,3200,-8672,-29027,10619,-31592,-12300,4776,-7447,26903,6894,1196,15404,13500,24934,-3749,11445,1858,18379,-23527,28214,7815,-13745,14542,14998,3220,-20085,-11827,75,21262,4574,9407,-780,-19084,10799,-15084,26988,-6188,5937,30995,-835,-2833,6825,-28875,7616,-27362,-27202,29087,9099,20829,15959,8751,27550,-22286,24281,28884,22186,-23849,-27055,-31007,-10028,225,18320,4850,12233,469,9604,29000,-16470,-20665,23367,5317,-1375,6712,-29392,-32701,4458,3604,19889,30359,6572,31920,-12061,-26457,-17808,1821,-3614,-163,5479,5268,-27748,-20092,-20245,24334,22339,-6602,-8830,30246,-7059,-23988,-10016,-4758,-24946,20735,-29703,5981,893,26151,9843,-23806,5296,-25533,-5014,-9879,-24503,-12860,12912,-5594,-27046,27505,-3239,11587,-14619,24256,-31351,-23238,-6812,-26837,16111,14627,4969,-5715,-4494,1650,8609,15905,-23168,-28817,13366,22204,9579,-5961,-25555,21649,-20393,4408,7969,9732,-32319,14267,-31644,-32747,19271,4635,3206,2077,23070,4708,2266,-24098,23720,8584,-6089,26719,22226,24422,7645,7126,30236,21295,27988,-13767,11477,-24635,14633,-15106,4759,-26923,2729,-13872,29365,30438,-31286,7691,-11029,6578,15325,30252,-28756,12682,32385,32758,-25051,544,10947,22917,9220,-12760,17550,8710,-21579,-12621,32114,1678,27643,-25277,-18805,32352,14999,-8522,2804,-22059,-2401,-2751,-16680,32327,-3413,-18203,28642,-14008,-7284,-28660,6466,24455,13679,-2534,8400,26367,15518,-14196,20205,5376,-25552,-14632,31617,11928,3090,-20920,6267,-31100,-22445,22529,20685,-7053,14663,-31157,-24855,-5503,-29372,-32721,4096,-28335,-10539,-19489,-18321,1352,15296,-29384,6358,10972,-22912,15920,-5453,19318,-18788,7159,18014,19253,-15346,13739,14806,9191,308,14937,12773,-27462,-20568,15244,30008,15859,10915,23179,19369,13792,192,27565,5571,31265,-1404,-8643,11894,-14685,-13343,-16626,31151,-25438,-15439,-31510,-28807,6124,5157,1256,-17377,20164,5479,-7867,4298,-4681,-27397,-12649,-3707,11361,26055,11376,-21487,12756,-28121,31909,-27052,31077,31403,-1413,9612,26539,628,18513,-4129,-10192,-18959,-6509,-9871,12990,8656,-20813,23627,-10672,-7896,-9719,30893,-2983,5767,-5328,21258,-17912,-798,-28564,-15595,25244,-31120,-16402,394,-4888,-20798,-10490,-30723,-20857,-8438,29448,20968,12842,-18012,-16931,-18182,17256,29076,483,21561,17159,-32705,-15913,15321,23540,8623,-7798,23929,14612,1476,-24095,-18433,22225,-30165,-24290,-31283,-6481,-19416,11613,15578,-20947,-12021,-7072,13879,-3166,24353,-25734,1695,2426,28143,7166,20051,-3436,-881,-17256,2678,-16960,-31329,-24004,6529,-30655,4755,28690,17829,4835,-11675,-11128,9820,10892,-6839,-15916,-2711,25623,-9031,5775,16412,2214,18535,4008,26879,29829,-15863,15495,29072,-7121,700,-14801,-3266,24446,9062,3362,30696,-17653,21055,11647,-2509,-13930,-8026,14453,-23279,-17255,7176,28676,12919,24149,-8620,-20267,-7018,31807,-21406,-29460,30502,-5143,8819,27749,-30176,31114,3822,5119,14584,27195,-9982,-22115,-17588,2211,-14340,-13152,1742,-31832,2306,-15827,-9053,30502,25097,30908,-32665,14777,12881,-16411,-32326,25877,-19260,-3816,-17092,11037,15871,2236,-21559,-11762,-8707,29352,16068,3629,29382,-9455,17089,-16287,-18726,-844,-29929,-4549,-9030,-4940,-288,26177,-27576,-1063,19046,25272,3318,-10326,18066,-32156,-16011,-32748,30492,-32636,-25303,31307,19392,-22835,-29811,-28275,-3620,18893,23150,20423,-13796,-3112,-17563,-12955,-30035,21000,-2574,-1259,9460,-7726,12064,19140,-25875,12675,-32642,-30959,19328,-8028,30006,32437,8302,2727,-3463,1363,-13677,1821,-27913,-27699,6787,21653,28714,13921,21678,-15636,19510,-21019,-21051,-9451,32059,-15108,29060,1088,4164,6501,-1291,20740,-25855,22360,13901,-14809,10965,12762,-26210,7458,20354,24704,28160,6568,-27905,27619,-6096,-30725,8225,-79,6860,-6180,7738,31571,16824,6603,-31835,-11418,720,-24168,13240,-9549,344,1388,-18978,22114,-10276,31533,-14668,-7374,-29181,-6747,13350,19431,-29695,-19231,-23005,-10001,-2223,1498,12256,23618,-24187,13079,-12270,14603,-3038,-16628,9837,-16250,7848,12173,3154,-29652,-32083,19362,5861,-13464,-32570,-7442,-29317,14445,-6283,7091,-25776,-25814,24294,563,24922,27997,4556,-25756,-7773,-5860,13736,29184,17109,18111,-10028,-4973,-13759,-23920,-2591,-13986,21532,-8658,29217,-25207,8054,15826,-24938,-26188,13668,-13357,-29482,-29425,-7970,27491,-8586,14203,9206,5104,-15144,3103,14826,-30947,7277,-30795,-4864,25430,12885,-20310,26285,12240,7745,-12876,-16282,30523,-2473,22427,-7773,-31220,10198,-2491,-408,-2889,18918,478,-10390,11554,-22841,-6060,-26961,14465,-20542,-9943,-5727,-9027,-23052,-24929,13185,-11272,25211,16475,-16171,-11769,-16824,-9945,7347,32417,-22320,-12448,-19258,-2932,-10461,-18863,-11786,-10222,28922,25629,-8147,31212,11620,-26047,26115,-27031,-31724,25707,-12842,28395,-9371,2218,-20727,15504,32169,21071,-2553,14929,12425,26886,-13482,-12363,-32182,-27795,-31835,27760,1115,-18709,18216,30195,26888,18183,20710,13131,1611,-20511,-17380,-5983,-17654}, } ; static void test_encode_1013x2393round_impl(long long impl) { unsigned char *s = test_encode_1013x2393round_s; unsigned char *x = test_encode_1013x2393round_x; unsigned char *s2 = test_encode_1013x2393round_s2; unsigned char *x2 = test_encode_1013x2393round_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1013x2393round_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x2393round(impl); printf("encode_1013x2393round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x2393round_implementation(impl),ntruprime_dispatch_encode_1013x2393round_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x2393round; printf("encode_1013x2393round selected implementation %s compiler %s\n",ntruprime_encode_1013x2393round_implementation(),ntruprime_encode_1013x2393round_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1013x2393round_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1013x2393round_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1013x2393round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1013x2393round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1013x2393round_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1013x2393round_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1013x2393round(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x2393round")) return; storage_encode_1013x2393round_s = callocplus(crypto_encode_STRBYTES); test_encode_1013x2393round_s = aligned(storage_encode_1013x2393round_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1013x2393round_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1013x2393round_x = aligned(storage_encode_1013x2393round_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1013x2393round_s2 = callocplus(maxalloc); test_encode_1013x2393round_s2 = aligned(storage_encode_1013x2393round_s2,crypto_encode_STRBYTES); storage_encode_1013x2393round_x2 = callocplus(maxalloc); test_encode_1013x2393round_x2 = aligned(storage_encode_1013x2393round_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1013x2393round offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x2393round();++impl) forked(test_encode_1013x2393round_impl,impl); ++test_encode_1013x2393round_s; ++test_encode_1013x2393round_x; ++test_encode_1013x2393round_s2; ++test_encode_1013x2393round_x2; } free(storage_encode_1013x2393round_x2); free(storage_encode_1013x2393round_s2); free(storage_encode_1013x2393round_x); free(storage_encode_1013x2393round_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1013x3.c0000644000000000000000000005704514705505543022224 0ustar rootroot/* ----- encode/1013x3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1013x3_checksums[] = { "d7024fe86d0285887eec1af699b0498d32ab1eaee799c12f44ef5cab26cfdc96", "3dca23aa721c2d4907b07cdbde42968e69e8689794aae6478e2b5e04da0d1579", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1013x3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1013x3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1013x3_ITEMBYTES static void *storage_encode_1013x3_s; static unsigned char *test_encode_1013x3_s; static void *storage_encode_1013x3_x; static unsigned char *test_encode_1013x3_x; static void *storage_encode_1013x3_s2; static unsigned char *test_encode_1013x3_s2; static void *storage_encode_1013x3_x2; static unsigned char *test_encode_1013x3_x2; #define precomputed_encode_1013x3_NUM 4 static const unsigned char precomputed_encode_1013x3_s[precomputed_encode_1013x3_NUM][crypto_encode_STRBYTES] = { {7,159,20,15,191,109,154,167,249,62,187,96,62,58,25,49,163,244,84,16,7,101,192,156,55,94,231,45,9,36,79,43,20,230,243,76,206,137,116,225,107,64,86,233,143,84,25,141,252,192,8,171,197,227,66,147,188,51,236,146,62,163,102,143,161,56,127,101,78,94,45,125,251,122,102,22,68,100,195,35,125,83,106,57,105,13,25,207,184,113,52,166,182,204,103,196,94,225,85,255,31,129,78,64,186,143,130,27,167,136,254,252,88,44,76,20,117,119,178,56,197,91,20,83,191,4,123,142,56,140,62,15,166,33,136,117,238,250,169,145,14,55,210,20,143,66,140,76,125,174,110,237,234,171,67,123,17,230,120,85,51,69,176,67,89,161,181,4,163,111,184,157,16,108,174,224,252,225,16,98,113,99,246,148,244,85,40,4,191,72,193,166,216,52,119,173,30,226,171,44,211,123,3,24,241,150,118,37,181,75,181,113,22,166,204,8,170,247,8,33,85,192,94,35,48,138,27,101,41,66,35,48,207,69,235,140,192,171,255,83,12,14,238,178,8,207,175,170,249,13,130,194,204,242}, {31,93,111,72,42,213,67,156,206,72,16,160,233,171,252,5,173,239,24,90,149,144,94,39,102,149,36,48,102,74,223,82,44,7,39,44,211,144,128,59,213,5,101,136,116,191,204,92,75,31,18,109,235,24,85,104,166,221,40,139,188,245,250,247,53,179,51,27,83,15,42,39,234,87,24,93,181,60,5,61,198,62,154,227,123,24,167,226,199,95,16,185,127,153,7,217,51,134,118,214,133,13,149,73,149,153,10,61,110,104,12,83,20,117,233,108,49,72,127,118,64,4,188,149,211,250,192,183,87,14,146,13,88,102,103,126,83,16,237,181,73,76,147,68,191,109,85,160,147,116,27,233,172,113,6,71,238,104,90,157,223,152,170,209,30,35,95,98,216,237,220,230,39,67,176,231,91,159,102,202,247,64,202,184,132,146,67,32,254,188,238,41,146,8,113,236,82,240,53,206,251,235,121,185,150,229,90,24,174,56,136,191,9,206,89,204,57,224,35,251,171,179,181,52,136,172,207,129,5,226,251,118,45,150,102,3,1,117,19,233,154,54,58,191,176,147,122,58,178,117,90,167,101,154}, {10,157,129,215,110,192,122,110,179,45,215,184,108,71,60,40,124,1,119,190,38,127,61,227,237,167,54,22,183,81,191,27,19,17,66,138,65,66,100,231,249,169,248,46,43,22,111,14,153,219,23,157,20,94,216,129,238,129,72,177,5,176,118,77,216,62,171,165,179,174,155,192,140,215,16,41,42,242,217,5,233,221,60,26,50,173,250,255,200,206,234,236,18,76,187,68,117,220,1,169,123,161,231,236,120,47,177,170,186,71,58,199,188,146,99,233,183,229,128,211,220,58,235,8,151,244,175,109,117,153,58,146,182,66,177,199,136,47,127,79,2,26,214,2,213,47,0,231,109,170,141,87,25,23,59,138,76,148,207,56,178,65,37,81,4,48,206,56,218,223,223,120,13,68,231,236,31,216,122,69,158,42,110,108,100,3,122,20,22,159,85,187,171,26,36,187,92,244,3,133,246,161,24,17,1,2,95,130,173,89,76,1,65,41,196,8,54,54,77,112,1,105,238,175,203,223,225,165,207,142,30,42,199,71,56,121,37,109,142,155,1,238,107,4,202,62,149,88,249,239,2,110,137,229}, {172,103,178,133,62,190,132,132,25,196,175,5,184,87,93,30,111,199,123,44,37,17,65,53,249,13,22,129,114,187,123,216,16,175,71,101,123,53,219,61,117,108,48,104,178,53,169,89,214,231,44,138,69,245,248,136,135,239,238,83,125,47,93,125,193,181,12,7,92,8,189,195,198,61,27,92,75,104,23,60,97,90,173,252,116,15,162,146,140,231,11,237,202,1,215,14,92,216,115,233,251,11,220,204,227,26,217,72,75,143,190,77,92,120,229,159,110,86,119,136,17,118,191,136,72,93,87,192,228,78,49,2,242,240,85,235,25,144,3,167,231,230,165,29,242,152,31,195,184,236,94,142,184,55,1,195,0,142,179,70,124,233,56,119,170,94,138,201,128,88,131,208,111,248,60,186,145,194,197,3,70,79,136,36,110,89,153,196,114,75,149,182,5,1,72,83,247,86,35,117,162,183,57,178,98,14,245,113,63,49,89,97,126,120,16,39,55,159,22,29,90,142,96,89,98,4,22,184,22,117,244,37,105,47,17,48,46,55,83,254,53,18,227,13,15,198,218,47,241,223,83,213,45,93}, } ; static const unsigned char precomputed_encode_1013x3_x[precomputed_encode_1013x3_NUM][crypto_encode_ITEMS] = { {82,32,178,139,234,244,97,158,31,188,223,115,58,36,39,30,222,91,114,148,32,178,107,126,41,199,92,53,102,203,36,62,196,24,92,155,21,169,43,226,10,243,233,220,111,175,82,95,185,188,24,223,1,165,189,130,40,111,2,143,136,101,148,74,170,185,100,246,155,101,67,141,67,243,7,98,47,91,26,182,226,216,59,195,212,75,197,103,159,211,32,198,67,177,172,118,10,218,11,163,109,91,211,72,18,208,24,7,12,19,164,37,100,128,61,190,191,188,234,130,14,43,112,253,138,15,213,47,139,97,59,120,73,46,133,197,254,88,32,181,223,54,88,35,245,125,41,132,124,162,215,231,35,131,231,230,196,210,56,0,26,39,146,49,107,168,170,49,249,78,217,149,4,184,103,249,94,175,26,234,99,55,64,247,88,179,18,234,136,240,147,251,167,236,141,94,139,212,29,167,99,100,8,53,18,153,194,83,232,214,191,13,30,156,176,100,29,200,75,48,122,121,118,174,39,16,176,96,46,220,8,87,223,122,77,244,25,69,233,30,201,40,220,247,234,165,121,153,249,230,152,52,170,144,245,192,176,95,50,176,79,213,156,10,174,47,224,183,100,115,142,64,45,223,13,218,133,81,236,78,192,10,23,118,144,2,101,41,234,191,140,244,149,184,3,66,97,200,141,231,157,245,65,237,223,68,204,149,79,96,224,129,54,230,82,174,190,100,120,172,40,240,188,122,190,48,28,215,225,209,203,25,128,33,106,213,56,159,178,189,88,188,23,16,152,127,27,250,6,133,82,49,115,172,128,249,92,28,73,151,147,231,99,62,89,198,90,189,241,200,97,129,199,216,193,85,14,73,74,73,75,209,106,69,45,79,238,231,232,89,100,240,52,167,131,220,186,28,200,92,90,60,168,136,80,43,127,5,173,7,139,106,59,84,18,57,201,27,131,236,42,120,251,242,169,129,20,153,250,55,139,169,82,44,189,166,11,90,32,215,41,152,226,204,123,251,0,1,71,79,200,164,167,60,28,14,195,105,97,130,91,69,57,211,136,30,18,12,138,94,142,201,157,112,204,117,231,107,205,190,56,218,117,154,250,111,97,73,107,149,244,231,30,208,34,194,58,32,135,105,31,196,68,97,146,33,105,66,89,216,52,205,139,202,111,85,35,85,36,86,45,203,233,0,230,209,177,154,1,36,220,96,72,145,204,70,59,250,237,65,104,74,121,44,177,134,77,228,149,148,92,248,52,32,178,254,212,2,110,182,109,219,18,219,206,169,187,247,137,177,27,186,83,99,250,249,58,40,194,245,49,223,108,138,95,10,91,112,59,251,173,252,92,115,124,149,25,236,17,70,65,238,130,120,32,58,221,151,201,119,95,144,118,24,84,129,190,120,225,173,238,226,207,203,36,70,32,38,45,13,211,248,155,106,54,102,44,97,233,195,254,228,81,81,116,7,126,210,163,214,22,156,90,173,194,203,192,181,151,156,40,249,12,62,44,229,2,214,11,241,182,114,146,91,189,114,146,70,111,34,199,199,192,102,200,228,35,59,151,109,11,103,123,147,89,83,169,200,61,163,219,36,122,202,223,214,115,13,68,26,86,254,179,242,148,228,105,253,143,155,196,246,232,112,142,124,173,247,77,149,128,180,163,127,2,110,255,136,216,220,236,49,213,128,55,199,176,242,203,45,91,2,14,195,133,140,143,101,97,187,68,10,244,243,53,155,139,220,235,38,188,229,179,159,75,148,22,83,16,111,8,24,131,167,101,241,22,77,181,102,88,95,174,246,241,75,31,82,35,149,30,212,13,225,170,23,170,82,118,110,40,204,151,67,186,10,116,150,245,22,49,220,90,164,65,144,10,148,112,180,93,223,76,9,103,210,194,201,121,90,136,74,227,194,48,219,124,119,173,145,209,31,217,66,39,0,239,70,155,19,227,36,36,180,37,16,27,193,222,205,9,180,83,136,60,198,244,54,220,33,56,46,241,232,179,246,18,171,177,18,53,247,206,156,109,239,67,122,147,178,53,92,181,97,90,27,156,145,156,233,153,189,240,169,12,62,113,191,136,108,130,183,55,144,231,57,133,251,38,237,50,182,236,53,219,178,242,81,186,83,87,116,73,202,235,40,146,7,194,85,84,248,22,201,71,76,50,59,102,138,163,205,222,120,69,21,142,45,221,251,169,157,149,246,27,9,223,161,129,33,94,211,205,116,138,128,9,85,37,252,132,100,48,105,213,58,196,221,68,29,29,200,95,232,61,172,140,39,63,158,220,208,241}, {14,43,61,237,132,13,173,6,134,73,179,89,87,103,100,15,1,41,11,146,52,35,144,43,254,8,189,212,15,230,2,122,177,118,151,90,35,116,144,252,191,143,148,126,119,153,219,155,220,198,202,148,70,188,6,179,207,54,144,200,64,32,139,233,84,137,10,57,186,28,7,220,167,103,92,131,81,209,143,242,116,35,164,116,203,80,31,197,253,51,144,141,86,27,213,87,197,155,34,163,36,139,19,255,199,114,88,127,55,113,26,85,69,135,195,50,181,48,140,191,122,248,23,207,45,60,90,93,147,245,91,163,134,51,206,154,82,156,145,4,231,76,32,87,58,229,11,64,79,131,154,81,19,10,139,125,162,233,30,195,52,107,90,32,216,254,118,22,16,232,90,171,167,95,249,14,99,67,71,5,62,199,249,202,135,20,2,138,107,251,183,93,102,4,64,34,30,71,9,196,157,144,242,23,196,173,250,204,130,105,127,14,103,163,193,127,96,160,62,33,3,100,12,135,117,135,232,221,156,87,189,235,183,99,109,167,38,248,247,143,211,213,212,212,72,78,130,156,77,154,63,60,202,234,247,195,120,102,169,173,70,42,239,62,30,120,198,58,106,3,69,220,22,126,211,55,190,23,22,189,249,47,174,129,174,17,202,141,61,158,54,126,126,37,239,52,175,197,132,247,216,228,206,39,36,175,40,24,99,13,205,78,40,66,124,123,156,19,16,196,33,148,120,230,89,172,230,214,177,197,84,69,254,196,240,58,242,117,34,17,187,118,43,54,50,180,205,38,85,126,140,230,158,109,122,26,46,167,220,166,207,79,183,189,44,102,34,190,110,191,232,173,0,97,60,132,26,6,172,39,96,193,74,162,174,212,30,68,113,244,51,207,225,196,63,245,97,44,167,196,56,26,161,86,192,230,182,148,52,195,116,147,176,189,149,120,28,9,120,106,232,55,68,221,53,136,218,79,180,201,157,49,129,6,180,93,255,209,101,166,19,205,175,66,138,73,149,196,123,209,108,113,144,176,65,51,32,133,38,224,203,95,189,20,20,6,235,112,171,2,8,183,206,99,141,144,105,2,3,126,11,68,173,96,11,5,9,20,27,147,192,172,16,56,69,240,86,242,202,175,89,7,183,71,47,123,153,27,30,133,67,88,46,253,198,178,65,70,130,201,69,242,195,92,140,231,161,206,235,170,235,11,209,72,186,46,254,209,217,101,45,247,30,129,90,33,158,245,135,117,14,102,12,55,119,29,188,73,92,235,236,162,36,141,247,240,228,236,198,226,167,78,195,215,61,60,38,173,201,200,88,0,228,94,208,184,65,165,199,41,190,160,162,131,173,255,71,54,112,252,18,221,244,4,60,246,148,125,151,152,122,235,152,137,90,51,189,5,154,13,186,190,28,42,109,211,230,234,91,250,101,46,1,229,191,166,56,136,47,32,198,13,121,108,183,211,160,121,165,212,166,52,40,177,245,169,189,139,106,93,242,239,70,155,22,149,146,146,109,236,191,236,143,41,73,111,216,200,38,217,115,241,57,167,169,6,57,45,62,81,161,61,18,135,112,99,239,59,232,228,30,181,50,90,66,57,218,217,54,5,216,94,233,146,142,120,41,135,51,224,206,153,251,111,59,208,211,161,149,60,147,139,3,240,142,75,191,236,64,47,53,254,9,2,238,4,139,57,159,99,54,101,145,26,23,249,255,202,128,61,173,231,61,102,160,93,48,15,121,173,241,80,19,180,45,44,112,191,3,190,227,157,124,2,133,34,183,110,119,149,29,168,100,243,231,229,13,3,122,67,174,54,42,250,174,6,121,153,24,159,101,245,84,124,2,252,49,84,24,29,124,45,6,76,253,214,207,11,131,228,103,201,25,208,28,233,27,170,38,171,127,29,120,175,214,101,128,132,184,155,81,126,165,145,153,0,204,74,193,188,39,164,140,220,8,191,210,203,195,218,106,95,118,110,70,177,86,108,78,135,90,171,193,93,106,141,160,75,68,243,105,147,195,99,17,218,107,238,17,188,23,56,102,156,134,253,164,227,108,140,109,215,136,70,141,65,113,195,181,75,154,139,250,69,137,126,130,122,136,152,123,61,117,75,30,175,33,56,21,203,114,11,181,95,220,180,104,14,12,101,56,148,154,169,40,24,36,168,229,122,165,76,127,30,101,83,219,26,225,37,211,181,234,144,252,250,39,81,195,87,178,119,115,26,197,96,14,196,213,36,88,172,117,158,131,17,228,11,165,175,21,76,128,15,158,161,179,200,92,197,218,124,153}, {25,155,115,24,100,121,252,65,88,153,23,36,178,92,78,194,157,219,181,179,127,67,186,133,193,205,35,188,173,35,178,219,182,182,137,85,52,205,99,109,250,14,181,208,231,239,212,54,215,100,151,185,142,25,120,166,43,251,149,6,195,64,173,121,3,149,237,24,60,192,163,201,6,159,94,83,9,176,18,114,253,49,9,46,110,27,113,121,248,32,87,88,46,216,240,192,200,68,196,230,174,161,114,152,209,112,193,77,41,134,116,101,14,241,117,157,60,200,150,5,226,42,26,41,198,236,253,42,202,113,87,131,84,6,57,127,105,141,209,21,85,128,86,218,40,9,154,20,241,147,99,190,251,33,53,93,38,7,117,116,12,214,204,130,232,123,212,161,99,156,141,212,157,255,128,217,86,44,17,75,109,85,108,201,170,36,66,155,165,189,38,207,184,163,140,1,86,144,243,143,34,228,205,13,80,174,36,152,239,0,41,173,1,82,52,206,175,181,164,243,24,173,58,91,41,28,12,181,8,209,58,45,215,27,127,239,72,41,63,42,128,100,78,163,19,166,83,202,245,227,110,83,204,27,152,97,75,106,153,116,93,191,145,114,190,46,230,94,16,44,177,194,122,173,231,219,189,255,90,24,10,55,86,180,123,72,73,141,227,53,52,81,70,183,234,203,19,118,17,215,40,131,254,107,77,86,111,45,153,213,67,250,216,219,136,71,76,57,52,185,104,127,195,80,136,40,66,21,159,186,238,130,193,225,52,1,193,127,90,154,84,85,47,39,197,40,20,40,114,54,162,181,31,53,196,65,21,253,167,144,221,26,45,38,99,105,133,185,13,176,183,18,19,13,39,157,210,97,85,175,187,165,246,5,68,19,121,56,251,63,153,228,192,99,10,167,164,172,72,22,110,170,33,192,8,77,173,229,38,135,153,163,23,156,153,114,27,242,252,22,150,189,29,134,12,4,68,76,113,57,92,193,101,40,206,18,190,145,187,125,229,92,141,175,22,187,43,191,199,144,190,242,181,130,128,70,42,193,6,26,200,55,143,0,230,79,12,58,236,229,13,121,103,13,185,156,194,219,149,36,123,115,212,120,237,122,181,31,66,205,182,59,15,225,18,44,6,115,3,93,67,27,239,176,254,75,99,204,160,178,159,203,80,244,4,183,60,2,12,225,137,195,113,5,65,243,219,14,201,158,174,93,133,158,63,48,68,82,133,82,198,171,28,49,147,228,217,22,86,193,184,84,198,121,124,171,46,203,110,83,97,63,61,150,33,161,166,147,181,247,159,28,253,152,177,125,248,30,53,239,74,96,189,189,47,203,33,121,62,149,40,38,104,220,112,149,81,21,159,131,172,211,100,252,50,88,79,186,184,55,203,10,18,136,213,149,158,174,157,203,77,126,235,1,215,68,221,121,83,231,105,79,246,177,88,185,151,83,24,122,37,10,217,234,180,122,93,30,144,144,216,34,92,168,116,15,151,10,67,7,59,240,102,26,9,248,1,154,227,20,243,186,161,181,105,122,158,11,168,97,242,98,1,80,103,87,146,173,140,115,58,203,71,66,250,4,154,62,20,3,59,71,228,232,66,74,98,133,3,44,237,180,189,10,116,148,104,86,255,225,53,129,125,65,209,217,178,214,237,195,238,169,111,162,94,221,251,233,79,26,2,111,71,226,57,11,144,143,43,241,113,115,13,89,169,75,170,156,23,91,212,223,179,30,98,141,41,221,66,129,25,222,101,60,231,132,39,30,219,150,62,174,151,200,171,115,49,210,235,197,6,197,106,117,99,129,40,78,113,215,113,204,12,121,76,156,77,131,51,176,109,120,148,230,109,127,88,249,211,61,69,162,102,182,242,22,104,177,209,123,183,44,228,225,219,57,248,59,62,201,183,148,123,113,96,103,63,107,204,228,185,148,144,137,74,122,187,133,162,186,123,158,244,178,165,7,118,163,65,160,194,132,68,21,166,176,215,25,122,13,104,153,110,160,88,27,245,164,113,82,226,247,194,202,135,132,190,86,226,249,150,101,182,132,180,126,254,244,92,189,96,8,138,224,203,67,13,87,1,139,121,176,33,82,141,190,77,246,62,49,67,161,22,171,215,175,199,131,33,208,196,216,136,210,252,185,55,74,32,122,89,250,153,112,74,181,226,73,164,108,68,118,185,24,137,16,209,119,118,132,189,163,175,236,117,244,105,79,157,108,97,242,196,174,20,59,224,77,39,231,132,20,96,153,14,44,30,211,119,19,253,16,71,164,209,106,42,88,60,234,29,250,228}, {163,253,244,154,214,79,16,252,237,16,171,78,204,205,119,171,177,82,31,104,137,140,31,183,127,36,178,160,231,138,174,57,112,197,20,24,167,198,23,245,50,2,18,112,124,201,73,118,127,53,121,126,54,35,20,184,120,8,247,8,101,5,181,104,194,18,33,100,38,255,241,193,6,24,208,131,151,156,125,56,164,103,125,143,176,235,214,24,68,106,0,48,236,85,130,182,84,20,40,10,216,24,48,186,213,27,188,183,112,103,86,103,141,244,28,168,210,57,239,171,222,222,89,29,75,254,80,213,39,45,10,125,26,252,189,98,158,97,89,57,32,72,205,220,238,130,199,11,108,125,132,209,10,111,104,173,48,26,145,229,60,13,143,51,255,46,242,237,239,51,218,62,227,236,216,220,169,101,106,102,148,215,195,7,52,80,226,55,164,168,56,69,169,26,223,150,138,6,195,83,95,2,107,179,181,0,24,192,164,223,81,79,8,150,28,234,195,244,113,108,67,128,231,166,238,113,176,154,142,115,84,100,237,151,125,54,250,77,241,139,104,104,222,149,18,86,159,102,64,190,65,167,108,131,95,187,192,143,51,217,160,224,68,172,119,176,64,78,110,121,34,121,175,66,125,238,83,68,133,112,96,66,100,159,210,183,148,158,141,13,219,164,52,117,70,174,90,227,18,211,147,93,144,216,62,154,89,95,39,183,165,35,186,122,150,87,159,90,78,232,28,248,9,174,97,113,146,147,228,41,81,211,139,115,33,85,163,51,23,13,222,11,211,206,217,41,89,1,117,54,63,168,27,111,142,22,154,146,15,11,182,160,152,160,136,32,41,128,129,241,75,242,100,222,109,64,90,154,152,225,41,48,33,143,247,60,90,230,171,114,153,26,30,224,176,238,252,46,194,107,210,209,201,76,66,29,228,115,155,95,147,213,123,231,250,75,106,149,33,239,249,99,252,2,24,143,43,54,211,192,98,224,238,10,58,229,102,105,199,11,157,11,70,33,8,208,251,220,123,223,129,184,71,247,156,161,64,148,56,154,170,72,168,112,41,152,177,142,121,38,71,206,182,3,66,205,235,218,90,53,136,21,106,149,245,47,139,143,150,181,48,68,223,185,167,132,219,166,236,151,40,156,31,198,10,90,173,147,235,92,81,232,163,195,86,42,33,134,228,178,152,101,23,197,9,181,213,14,229,18,203,71,19,50,20,30,244,59,142,93,2,173,174,84,80,157,236,133,227,186,95,22,2,87,209,201,14,225,56,13,178,136,228,222,81,88,226,75,112,8,160,171,192,118,103,231,129,91,3,118,143,61,152,149,58,108,114,171,10,101,253,28,207,217,27,202,167,248,181,31,165,237,151,145,133,173,16,0,99,84,131,206,122,214,117,255,244,246,102,214,210,15,226,45,207,211,157,95,117,237,145,144,210,79,53,164,129,248,153,92,99,45,41,34,164,240,227,144,139,170,143,55,102,255,88,65,217,115,199,133,61,7,87,153,177,61,125,207,152,55,40,70,191,119,21,249,67,80,32,246,146,79,62,246,47,143,97,64,78,67,48,255,91,22,39,26,99,197,163,221,169,23,10,111,44,160,185,216,29,116,136,24,140,105,124,134,194,203,16,175,77,153,128,253,210,198,209,116,167,151,119,43,83,59,73,32,85,105,30,45,176,185,175,134,140,138,237,163,59,185,29,182,121,61,255,155,98,161,5,63,72,118,246,111,141,201,139,220,112,132,151,215,152,137,67,43,211,72,140,209,54,170,138,242,190,85,185,0,77,41,137,22,142,184,186,59,64,76,151,141,53,54,120,131,194,32,66,208,112,129,35,141,81,215,151,233,217,57,177,77,13,203,44,163,184,110,235,10,28,84,95,83,194,138,136,58,52,78,111,162,176,73,251,6,104,1,190,215,233,244,187,51,171,170,157,164,183,9,158,12,70,71,95,54,26,58,166,34,70,65,140,69,129,108,165,181,128,158,153,225,21,116,202,202,41,52,228,228,247,237,162,73,196,36,155,80,93,96,199,31,139,233,128,86,33,204,19,81,15,57,23,104,213,51,90,34,124,41,72,114,111,172,128,126,36,219,144,113,64,133,148,18,14,187,58,149,64,119,222,223,183,209,18,19,233,208,207,235,178,128,155,70,94,96,82,4,137,4,69,211,68,255,214,61,149,30,63,99,62,4,184,63,104,36,248,153,210,2,26,245,189,125,140,188,197,12,37,57,102,69,122,135,168,197,94,208,38,137,60,198,106,169,219,225,120,70,143,104,216,36,87,172,92}, } ; static void test_encode_1013x3_impl(long long impl) { unsigned char *s = test_encode_1013x3_s; unsigned char *x = test_encode_1013x3_x; unsigned char *s2 = test_encode_1013x3_s2; unsigned char *x2 = test_encode_1013x3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1013x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x3(impl); printf("encode_1013x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x3_implementation(impl),ntruprime_dispatch_encode_1013x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x3; printf("encode_1013x3 selected implementation %s compiler %s\n",ntruprime_encode_1013x3_implementation(),ntruprime_encode_1013x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1013x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1013x3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1013x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1013x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1013x3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1013x3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1013x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x3")) return; storage_encode_1013x3_s = callocplus(crypto_encode_STRBYTES); test_encode_1013x3_s = aligned(storage_encode_1013x3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1013x3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1013x3_x = aligned(storage_encode_1013x3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1013x3_s2 = callocplus(maxalloc); test_encode_1013x3_s2 = aligned(storage_encode_1013x3_s2,crypto_encode_STRBYTES); storage_encode_1013x3_x2 = callocplus(maxalloc); test_encode_1013x3_x2 = aligned(storage_encode_1013x3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1013x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x3();++impl) forked(test_encode_1013x3_impl,impl); ++test_encode_1013x3_s; ++test_encode_1013x3_x; ++test_encode_1013x3_s2; ++test_encode_1013x3_x2; } free(storage_encode_1013x3_x2); free(storage_encode_1013x3_s2); free(storage_encode_1013x3_x); free(storage_encode_1013x3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1013x7177.c0000644000000000000000000015206014705505543022460 0ustar rootroot/* ----- encode/1013x7177, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1013x7177_checksums[] = { "6d839a50ec5e68cf79f8d99d8d86eb1b56b8e88d7e1b088313731657297d490b", "29b9c6f5b9891edd976092fe7d87049d3a788b2911274aba59241f0507a87fed", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1013x7177_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1013x7177_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1013x7177_ITEMBYTES static void *storage_encode_1013x7177_s; static unsigned char *test_encode_1013x7177_s; static void *storage_encode_1013x7177_x; static unsigned char *test_encode_1013x7177_x; static void *storage_encode_1013x7177_s2; static unsigned char *test_encode_1013x7177_s2; static void *storage_encode_1013x7177_x2; static unsigned char *test_encode_1013x7177_x2; #define precomputed_encode_1013x7177_NUM 4 static const unsigned char precomputed_encode_1013x7177_s[precomputed_encode_1013x7177_NUM][crypto_encode_STRBYTES] = { {200,212,53,19,207,13,123,115,11,166,45,25,92,234,132,76,15,105,87,219,207,158,201,244,45,190,115,128,223,9,12,113,221,238,138,166,48,233,118,148,34,70,127,156,120,126,54,147,207,63,198,224,150,77,165,114,234,18,69,160,183,93,15,82,87,3,15,21,119,94,191,126,119,189,57,125,223,106,64,155,7,148,130,9,133,60,168,84,22,244,60,92,129,75,5,244,120,118,153,222,23,190,185,250,102,107,140,217,26,77,200,121,128,228,68,197,100,123,108,98,139,80,143,87,211,86,182,53,221,185,135,245,222,53,1,20,126,101,11,167,38,190,127,25,98,97,19,205,214,72,251,124,5,94,77,36,215,134,102,216,32,245,59,22,182,214,97,137,249,45,201,140,184,240,131,115,92,240,118,67,248,255,43,217,64,239,126,140,148,0,118,59,236,113,71,116,111,50,113,29,173,212,21,90,193,171,161,239,10,227,104,138,46,238,124,128,204,209,113,213,158,135,15,235,247,166,122,102,218,249,105,148,145,202,46,108,222,1,199,103,145,150,177,171,147,2,35,159,240,0,33,20,203,166,144,20,24,96,46,178,175,108,80,90,41,21,172,204,206,63,154,114,116,223,155,121,130,216,91,123,221,7,140,149,101,165,212,74,113,119,70,169,6,45,148,199,235,82,115,209,155,227,133,253,71,254,90,141,17,35,85,203,243,21,206,184,120,174,42,173,251,208,220,250,117,184,187,100,84,19,247,54,68,234,252,127,117,182,246,26,14,30,195,155,160,54,70,30,109,65,43,25,119,72,75,92,152,212,212,177,179,92,123,174,174,123,148,213,11,41,169,66,159,147,204,72,166,12,166,60,20,197,142,75,245,200,113,207,23,201,203,0,88,4,251,70,115,179,112,70,166,183,136,68,208,68,46,113,138,133,227,151,171,188,186,200,189,23,142,160,191,5,245,40,248,170,132,151,142,231,142,87,119,246,199,205,98,102,202,182,143,113,82,78,39,124,207,55,60,31,57,155,20,2,18,209,180,90,254,154,205,253,150,198,24,58,159,179,168,234,147,21,239,203,82,15,162,110,69,171,207,7,32,187,189,7,240,145,100,16,2,150,128,198,162,115,157,169,174,247,32,246,135,180,184,250,39,133,127,168,121,187,132,37,124,11,25,246,138,174,47,7,90,196,163,232,183,95,220,94,134,82,106,237,62,246,29,240,240,205,236,205,171,209,199,160,4,190,163,154,210,147,165,97,251,62,3,21,131,220,66,254,169,113,210,215,4,216,37,225,114,156,36,12,180,234,44,161,195,123,176,241,112,230,81,95,111,251,125,196,66,152,31,67,31,110,178,56,116,50,118,33,160,157,113,223,173,80,135,158,55,93,199,71,77,106,120,46,169,204,208,111,34,213,180,241,68,83,110,73,72,186,78,63,23,1,170,26,181,146,203,205,163,141,53,107,59,168,77,166,194,75,7,150,66,160,5,26,228,79,147,110,227,237,231,27,147,146,189,144,46,233,25,86,170,97,179,206,0,252,136,203,101,29,3,195,32,145,36,55,220,137,249,239,117,28,110,247,186,253,73,143,206,24,98,252,153,153,35,170,143,161,180,222,52,173,9,50,17,26,12,185,87,99,30,239,115,160,43,7,145,171,19,210,115,53,157,68,209,81,63,114,250,140,79,12,217,221,182,226,124,18,8,233,156,178,240,101,106,45,167,139,252,209,152,173,185,63,59,219,208,172,172,231,174,100,35,98,24,56,169,204,115,64,144,167,98,94,168,196,71,39,184,103,85,27,31,73,5,97,95,209,175,250,154,170,120,178,102,228,32,8,57,90,93,65,154,126,123,55,11,241,96,214,144,101,191,28,30,202,230,80,167,0,202,48,91,111,36,184,126,69,137,76,242,222,201,249,105,235,229,77,100,166,61,150,80,8,173,191,132,148,91,73,145,28,182,127,216,13,99,253,239,97,87,168,56,237,14,8,9,245,235,224,12,88,31,128,132,28,125,94,114,112,190,30,224,100,8,94,118,187,165,144,10,111,240,89,28,139,242,110,182,75,35,31,45,11,212,139,221,221,183,123,189,201,117,210,16,171,91,28,144,72,170,204,151,195,48,197,34,120,134,102,164,16,114,74,239,225,252,7,35,160,4,135,160,201,14,9,157,29,59,143,54,21,33,14,247,115,115,202,40,123,104,221,136,162,98,157,183,11,126,245,155,56,39,180,221,219,16,252,38,127,34,164,111,153,211,154,178,173,129,109,66,54,44,26,101,150,17,0,123,97,250,40,110,17,106,35,197,154,204,105,81,6,89,14,199,137,10,11,254,10,136,50,203,253,167,130,52,126,138,46,206,198,158,166,143,132,83,42,8,128,107,172,60,149,83,1,242,109,225,140,88,52,101,254,36,5,158,151,180,124,9,148,43,225,0,1,149,244,59,108,59,241,6,81,65,232,75,214,100,89,161,249,18,34,16,15,197,153,227,58,139,221,105,80,22,167,121,144,105,102,55,132,244,29,232,216,217,44,107,44,6,153,177,117,140,237,172,130,251,205,90,121,181,74,66,117,156,179,101,16,223,47,67,175,19,155,38,137,150,169,128,127,9,148,139,71,25,136,224,66,107,66,246,131,157,75,99,253,13,58,153,140,138,183,152,92,35,223,183,0,85,89,204,219,190,49,162,235,78,177,191,48,93,42,235,133,209,152,182,92,21,184,123,178,96,35,24,198,201,120,18,152,135,46,10,249,104,188,22,213,119,39,146,130,134,115,100,73,223,219,142,255,161,38,65,90,55,173,204,111,139,4,91,175,103,5,247,86,58,191,38,234,231,64,169,20,40,224,207,35,233,215,54,119,58,111,42,182,226,170,208,197,111,152,138,187,208,97,101,219,180,236,134,221,240,23,178,18,1,17,70,165,218,38,34,10,90,14,39,8,115,44,45,244,124,179,158,176,2,196,61,255,227,4,213,230,57,88,216,175,116,33,166,89,163,49,9,87,31,202,188,55,200,175,42,137,96,102,98,77,135,1,254,193,197,32,112,218,144,67,46,85,78,136,161,35,175,44,164,37,225,141,174,166,1,217,174,108,178,187,216,220,236,192,197,185,170,217,8,2,222,158,170,58,27,239,214,181,237,77,41,8,251,194,175,70,110,126,175,151,160,78,4,148,63,193,236,168,141,89,231,137,45,122,188,214,163,212,217,72,86,116,187,46,116,3,187,142,13,185,229,232,159,30,172,25,145,1,80,72,190,255,71,193,213,71,36,142,215,84,28,75,218,92,137,238,113,231,124,36,95,1,213,254,27,247,160,119,78,121,73,102,109,185,251,228,95,159,95,61,135,255,199,57,28,19,49,172,19,144,231,244,168,32,102,156,33,204,40,132,106,178,166,58,11,28,45,135,62,76,20,199,4,202,215,175,241,242,46,115,248,99,34,242,219,136,190,159,164,229,117,244,195,230,103,22,78,5,54,79,206,191,26,218,186,112,83,106,43,14,184,128,35,235,155,218,49,45,8,127,57,64,118,207,15,40,183,220,180,222,121,88,112,216,228,255,36,254,182,84,50,252,103,160,201,194,35,81,212,103,208,113,99,193,49,60,243,80,149,111,193,217,105,140,74,158,37,20,236,169,13,176,95,119,113,167,51,40,1}, {75,67,163,217,159,154,157,250,20,1,95,156,123,95,141,79,111,99,36,185,46,42,214,229,28,94,202,106,98,242,117,202,77,107,244,162,225,70,105,147,85,178,82,190,243,209,61,109,207,104,222,132,204,4,150,132,161,115,10,132,112,144,144,174,238,154,20,12,31,92,102,121,154,96,161,41,127,104,6,94,16,224,176,114,122,188,53,55,184,237,126,122,242,72,227,114,78,123,17,39,205,248,61,60,157,95,170,147,187,160,1,179,184,42,187,7,128,93,29,96,197,195,216,111,54,235,92,156,124,171,227,13,32,60,26,22,191,185,71,237,79,99,15,8,21,63,117,169,77,64,170,178,16,2,226,149,0,133,201,17,148,237,180,42,163,62,17,47,71,132,108,186,237,241,129,184,221,47,233,29,55,254,5,170,46,136,55,241,219,32,36,128,108,254,233,129,182,249,95,209,26,238,106,151,219,49,104,168,243,243,190,43,90,75,73,88,200,246,189,165,224,217,203,84,97,142,212,30,86,243,61,255,45,252,123,10,234,44,169,145,16,146,174,16,137,14,115,4,128,38,32,129,223,8,57,47,20,128,110,191,85,75,244,196,29,214,255,212,93,181,29,178,145,180,211,187,150,217,179,160,21,93,33,15,30,202,23,5,219,177,239,197,211,53,37,103,156,221,89,194,161,79,90,19,95,80,87,45,231,54,190,116,125,235,182,188,50,254,195,89,85,237,169,12,130,46,45,139,83,99,61,187,209,24,117,186,219,209,191,66,71,225,221,200,43,193,74,105,161,15,189,212,194,27,178,69,131,135,243,78,36,134,74,161,249,198,66,207,2,75,201,214,238,79,154,82,226,252,18,250,1,31,214,219,85,225,14,63,204,44,227,172,122,6,34,132,161,45,99,58,16,210,40,49,44,221,254,8,33,241,125,52,113,144,42,143,155,246,181,129,64,138,8,14,21,46,118,32,146,197,99,194,110,132,195,67,125,148,129,59,77,54,211,227,138,142,247,17,190,36,129,34,213,217,208,251,251,41,150,80,91,124,84,135,99,89,48,44,61,56,7,189,70,70,110,93,37,215,32,134,110,56,175,124,82,111,236,41,208,178,16,48,2,128,131,127,39,23,7,230,254,243,88,237,249,226,56,176,55,242,67,241,40,239,134,54,25,209,199,170,21,104,239,30,39,234,188,214,162,60,38,23,145,130,255,183,143,210,18,36,118,176,149,36,237,64,138,170,43,72,255,18,218,64,150,207,130,183,243,181,19,215,2,30,10,39,31,135,148,132,72,65,61,174,36,11,130,27,164,241,229,1,40,31,126,109,164,200,81,31,216,61,80,51,106,173,202,56,148,234,119,93,158,226,103,6,164,205,179,80,252,35,185,144,233,237,155,128,52,1,22,76,223,28,6,115,10,161,16,101,111,163,31,105,235,91,115,180,55,247,175,150,0,107,66,231,151,155,149,247,44,85,111,197,181,50,101,99,36,252,28,162,82,218,26,148,128,71,139,72,51,29,60,82,14,153,172,13,93,40,73,207,173,8,141,230,144,143,19,255,6,169,108,56,221,66,111,148,219,45,198,129,66,199,189,181,254,124,44,150,125,63,90,139,98,80,82,235,19,255,233,55,238,232,41,249,180,217,131,20,132,147,167,3,157,81,20,145,36,172,158,99,123,202,191,144,242,76,91,116,90,55,124,109,182,214,133,127,170,103,197,137,151,75,214,171,82,162,6,129,61,249,219,51,209,90,36,93,86,148,8,218,77,57,132,246,152,60,213,180,28,241,219,73,133,137,141,60,199,19,187,129,225,125,118,254,77,49,208,141,58,231,144,143,233,89,142,73,213,13,179,176,195,91,185,233,190,49,71,101,143,157,239,60,109,78,153,33,97,108,189,154,50,179,213,81,240,206,7,17,133,189,13,82,200,160,90,144,158,90,168,133,91,91,131,180,61,244,84,67,0,191,185,71,185,153,160,86,43,45,8,68,2,14,81,221,144,171,16,164,126,225,31,220,168,116,88,163,49,163,168,246,56,86,177,121,33,47,30,73,20,66,112,10,54,143,177,158,192,29,209,2,39,1,149,181,84,82,130,195,14,253,110,149,23,46,9,51,27,42,125,74,185,103,152,6,14,110,146,123,234,77,33,62,250,166,121,237,1,93,192,217,220,204,55,176,171,196,109,125,39,214,235,240,74,208,129,183,220,110,154,236,170,162,215,242,152,144,47,153,63,49,96,119,68,42,2,196,168,29,233,212,4,130,2,4,149,66,4,26,101,153,99,221,54,117,233,70,160,19,20,122,207,245,58,220,44,64,208,49,29,224,77,195,136,86,92,29,77,133,111,21,122,135,174,14,0,114,197,234,9,128,252,179,223,186,36,90,138,1,145,226,180,202,235,103,64,202,95,234,255,123,26,37,165,83,215,235,1,91,209,121,249,147,5,225,43,213,166,184,81,247,89,120,34,118,12,24,1,5,197,58,212,118,0,27,50,140,233,232,130,253,244,167,5,196,184,199,74,4,98,144,51,43,148,173,210,188,204,208,99,131,195,218,194,176,41,44,103,78,30,123,54,78,45,247,4,133,23,175,12,243,184,190,115,65,196,102,96,7,157,191,250,92,243,147,194,206,133,197,245,101,155,118,108,8,155,208,6,233,79,137,169,65,64,5,106,127,61,182,193,171,106,92,141,197,211,79,46,15,236,215,245,216,114,86,65,139,48,65,41,57,158,5,84,203,16,66,236,104,197,126,100,225,61,219,67,180,110,2,108,27,161,206,87,23,82,42,91,188,132,144,155,114,223,156,133,21,249,58,22,79,185,155,255,117,174,238,46,7,167,135,101,97,6,47,231,193,167,165,27,53,137,180,59,70,216,8,57,26,246,15,79,157,38,84,0,11,37,227,161,102,68,131,58,147,142,22,123,28,21,108,254,79,67,64,31,155,173,84,45,25,5,203,121,88,82,39,129,101,235,78,134,218,45,215,143,67,127,181,81,145,223,183,52,116,253,63,208,230,124,113,130,83,108,234,105,60,159,206,6,140,63,13,154,68,69,115,251,83,152,245,91,91,23,41,23,160,255,3,109,248,129,2,198,40,146,186,110,172,192,197,15,143,92,195,62,150,69,76,220,146,44,137,163,77,133,107,9,182,54,101,110,90,232,92,121,5,168,228,106,71,137,124,77,169,17,180,197,98,76,184,86,249,57,193,22,252,32,98,161,196,125,141,92,248,124,189,29,29,88,82,108,26,190,147,142,169,177,180,187,130,213,238,246,81,235,14,254,177,217,222,227,97,65,74,27,222,171,30,208,216,23,79,169,3,224,218,5,189,200,197,141,170,241,185,174,179,136,241,143,123,124,35,28,176,185,253,200,221,96,208,222,238,170,92,19,115,17,51,56,54,170,188,60,241,8,3,56,253,199,231,58,76,73,97,52,235,249,220,230,32,38,7,16,171,200,137,116,9,253,227,83,225,19,203,177,82,52,198,122,255,83,73,122,52,206,137,203,103,19,254,129,102,227,84,142,30,200,201,127,140,202,6,85,111,212,161,135,47,114,20,21,64,35,148,4,26,143,35,145,27,205,10,195,9,130,61,247,37,33,154,159,240,81,201,252,162,254,132,122,106,157,148,45,152,246,173,146,50,28,205,1}, {36,174,143,125,7,83,192,101,138,64,196,114,80,163,234,54,147,188,215,8,58,156,216,108,3,235,82,255,160,239,232,175,5,180,163,206,84,183,132,222,183,170,62,199,243,173,60,77,65,114,24,135,154,206,237,139,211,205,73,127,157,97,227,92,195,93,21,206,223,122,255,231,153,145,190,7,26,90,122,143,122,129,247,30,217,206,28,177,147,180,150,168,161,248,23,169,193,14,46,204,30,189,104,202,95,134,132,241,138,230,120,229,203,190,203,30,233,229,20,28,171,213,75,68,25,199,87,60,138,248,249,205,252,30,121,217,248,223,197,106,106,219,64,137,1,166,63,62,234,230,111,35,220,165,202,77,227,7,26,37,142,139,222,76,149,95,139,234,184,4,13,252,192,111,177,72,40,155,186,239,183,234,181,180,42,25,26,182,212,244,224,13,117,202,92,1,58,192,30,186,92,212,38,183,37,66,36,188,4,132,93,204,254,69,124,134,5,145,159,91,137,97,63,199,132,194,243,205,220,254,242,109,248,32,44,95,235,22,164,69,211,149,45,178,96,123,200,160,206,80,109,26,69,222,23,181,20,150,240,56,4,10,112,217,249,156,213,3,24,233,100,125,204,195,243,19,23,197,150,80,40,37,175,175,11,112,20,90,240,196,151,15,120,206,247,46,184,31,100,188,87,210,83,136,107,155,86,224,45,191,175,122,119,118,98,40,207,204,157,183,247,154,42,179,196,166,174,98,54,92,188,56,55,219,212,43,83,232,123,155,166,91,13,86,202,234,68,73,190,49,146,94,147,239,102,82,203,20,233,19,190,238,233,57,191,10,147,55,107,66,192,205,215,9,248,139,233,23,149,89,37,94,214,53,146,132,49,112,18,159,17,242,3,220,237,143,41,75,187,238,219,89,117,92,85,124,70,93,52,127,174,10,52,0,118,146,30,181,105,156,134,108,121,182,105,26,101,11,243,242,47,98,193,136,237,19,212,43,228,201,157,142,10,41,21,210,241,214,56,101,242,163,192,236,216,239,16,127,235,211,100,237,202,246,58,127,214,94,245,134,190,123,189,120,61,123,18,215,154,49,202,6,230,105,3,196,10,11,177,126,36,250,16,18,32,8,163,171,41,49,125,137,80,154,12,199,151,104,210,119,122,75,236,7,232,136,76,223,69,222,176,210,205,6,236,156,195,98,190,44,40,81,1,78,33,118,98,111,244,173,168,31,20,60,202,116,113,10,78,113,17,232,159,214,111,209,15,208,228,5,55,228,67,17,159,169,109,199,38,221,222,14,143,151,132,188,157,26,56,136,133,73,106,41,209,50,240,166,239,191,250,246,90,0,27,232,43,4,203,217,230,184,59,199,194,12,198,52,127,83,199,31,169,183,168,182,10,225,29,193,232,200,180,146,111,6,192,167,243,242,27,98,181,107,0,6,12,185,145,153,82,121,239,53,157,34,36,32,204,229,45,57,70,158,82,226,124,73,117,91,231,254,46,81,79,41,114,0,219,81,236,223,36,64,64,124,44,82,72,255,118,182,221,217,123,36,249,121,67,87,246,154,145,35,147,3,67,84,16,133,74,8,167,83,68,72,56,88,161,133,242,249,209,67,105,179,98,55,58,239,110,68,138,83,253,115,70,102,141,192,252,218,58,76,234,210,237,64,237,34,226,169,207,214,41,118,164,14,83,51,47,213,78,180,134,198,125,224,9,40,66,8,138,7,111,111,93,136,186,110,111,28,248,198,124,181,38,35,17,168,10,146,7,196,211,115,185,239,152,84,220,242,147,195,67,190,67,101,142,41,46,223,250,140,50,206,131,151,6,90,174,207,59,124,71,190,220,72,220,155,231,106,244,154,195,59,177,13,93,124,89,112,205,113,32,176,133,252,80,45,118,128,254,148,101,250,252,160,196,96,181,33,253,103,13,83,219,251,211,62,96,136,80,241,166,129,73,55,152,37,69,91,138,193,192,98,67,145,166,98,201,1,37,71,13,27,16,9,104,217,17,84,93,135,149,43,34,248,29,21,93,69,94,22,194,111,103,167,73,252,113,66,55,25,21,176,4,73,42,150,59,165,35,227,67,16,214,146,126,32,199,252,255,253,118,79,156,79,165,216,93,34,154,222,78,164,139,99,166,136,47,206,191,97,125,160,251,64,171,237,151,97,98,156,119,112,8,107,250,186,177,103,28,75,174,201,90,149,79,26,81,8,51,255,66,255,174,196,100,212,71,161,58,78,71,157,197,181,61,34,190,71,128,15,155,254,204,221,4,14,76,72,176,110,249,24,134,67,151,106,69,45,186,114,14,27,84,191,101,240,88,8,123,174,188,214,241,5,162,134,238,223,7,187,7,188,164,44,137,184,113,45,216,37,179,197,142,227,215,157,17,164,19,58,2,113,156,106,205,115,208,218,15,236,206,37,102,154,213,177,38,33,240,230,234,48,131,233,61,96,42,26,26,115,27,106,93,137,160,103,227,153,52,188,208,74,65,18,90,178,150,144,0,176,184,147,19,156,150,198,118,237,22,231,98,196,145,24,89,106,208,68,176,135,83,100,173,55,71,248,21,216,170,131,82,9,168,102,118,106,154,112,63,166,14,246,119,222,98,230,128,170,193,102,68,89,24,228,96,137,116,164,109,95,224,127,85,57,254,205,69,225,208,224,64,120,119,202,191,220,179,20,29,181,123,202,236,77,239,248,74,38,167,28,74,81,149,125,243,18,16,190,97,213,50,132,243,68,5,65,179,16,2,241,209,247,160,23,202,178,74,44,148,20,49,132,127,61,145,173,240,238,39,52,57,105,162,203,169,105,115,133,236,245,82,42,99,178,255,65,5,54,102,190,136,187,249,167,78,198,109,32,135,59,50,141,101,54,230,30,236,213,169,171,176,207,220,227,188,39,202,109,238,58,170,207,70,130,50,247,187,151,36,209,7,65,56,178,52,59,91,25,70,68,33,217,152,45,18,49,199,200,162,243,132,5,233,157,85,140,3,50,126,2,80,84,44,180,51,34,154,252,230,15,101,28,176,40,251,17,11,118,51,0,65,99,53,83,85,63,191,170,148,54,108,100,57,2,203,158,12,145,14,114,50,168,159,82,204,244,9,12,11,249,108,197,207,51,243,246,7,32,143,245,209,86,40,169,89,188,184,149,181,79,179,173,244,73,197,79,212,209,33,113,32,200,211,221,227,219,162,203,51,2,162,172,120,131,234,118,162,72,93,171,43,109,129,114,32,189,61,76,225,149,47,215,44,158,102,73,44,203,184,168,153,226,22,37,24,254,210,156,104,48,226,223,213,117,245,7,204,39,177,151,241,138,23,53,236,146,73,96,79,94,167,107,78,23,64,164,46,167,226,46,80,36,54,144,127,83,28,44,2,153,156,183,22,197,247,26,149,152,68,241,169,175,53,81,46,104,172,239,88,17,110,151,169,165,162,71,64,71,188,30,198,139,247,145,34,30,132,167,76,61,77,64,83,106,9,70,187,147,153,200,60,247,25,171,212,186,158,94,236,235,66,54,161,199,248,119,251,77,156,224,204,103,76,147,85,5,209,6,56,167,124,254,43,127,61,35,56,103,12,156,155,211,195,230,56,71,18,156,31,24,180,113,42,93,154,109,69,228,200,226,62,49,207,190,197,186,59,194,1}, {85,156,56,191,88,245,96,44,39,20,28,75,98,138,32,161,32,176,95,33,23,110,109,70,139,233,139,187,244,221,130,233,27,133,242,97,52,164,56,202,242,70,227,82,230,199,255,37,150,47,169,91,230,96,201,25,209,198,81,95,151,11,195,248,129,134,139,172,228,63,191,132,205,102,0,122,56,2,110,57,63,167,186,59,95,136,13,38,7,65,240,180,230,59,186,31,210,215,247,118,105,166,166,240,157,229,137,217,59,181,245,224,234,79,128,136,211,228,81,229,26,89,70,250,255,158,92,15,172,169,15,167,176,229,68,180,149,159,168,20,18,96,199,150,186,153,192,28,91,171,21,0,155,147,199,101,169,43,97,121,132,105,47,207,122,208,224,91,202,22,237,180,252,249,252,136,196,237,5,191,114,87,1,110,171,21,20,140,170,110,60,44,207,46,215,154,146,176,129,64,209,247,20,72,236,171,174,114,110,63,248,20,51,73,21,161,243,168,148,123,230,107,225,39,228,133,63,71,211,124,39,27,237,253,155,237,145,65,110,36,134,3,32,13,116,148,98,6,136,173,93,58,127,201,231,165,154,119,162,110,240,111,26,224,225,243,125,31,232,170,128,130,219,146,216,135,170,135,87,197,102,255,52,91,254,37,76,103,140,18,181,232,74,228,221,150,70,4,178,58,163,11,0,169,116,109,122,128,240,60,184,157,8,195,0,185,92,121,188,117,191,101,111,97,169,243,233,22,31,17,204,43,146,233,98,185,92,64,158,37,255,92,183,80,245,171,190,125,88,208,235,226,243,126,241,188,74,55,200,201,237,37,188,86,142,202,191,81,28,95,183,248,234,55,79,33,62,22,77,210,94,248,202,42,234,169,105,102,154,179,188,9,165,222,211,164,145,236,197,182,126,80,16,72,220,137,82,199,84,220,94,188,226,199,16,173,64,37,12,174,175,124,235,231,77,26,168,140,114,214,203,216,30,6,208,25,194,156,217,47,52,149,227,236,174,238,211,59,241,247,17,129,29,147,203,77,186,79,71,54,209,145,32,176,65,176,94,224,1,185,55,26,31,200,219,240,32,7,240,225,211,30,212,37,159,172,136,44,5,76,151,83,240,181,128,193,194,210,166,203,106,121,22,14,163,224,47,95,162,172,75,173,112,233,49,153,20,247,110,202,118,19,55,120,59,44,34,188,152,111,123,10,246,47,38,82,11,39,138,24,109,76,87,42,101,17,25,134,11,221,254,55,246,183,113,73,14,250,48,70,124,52,214,232,0,69,14,101,225,48,181,172,7,112,190,221,168,166,253,172,130,115,160,90,147,99,171,112,206,25,251,98,102,74,205,47,210,116,164,121,120,18,162,68,161,109,95,180,40,184,220,14,66,30,118,81,222,10,224,52,186,149,206,142,66,253,218,242,210,147,27,116,73,63,88,242,224,140,25,195,186,81,250,118,185,94,119,48,155,40,139,52,115,174,174,79,105,65,203,144,200,40,5,40,47,194,20,228,224,53,96,227,188,152,34,36,231,233,211,180,155,117,28,41,250,160,70,151,49,102,134,222,186,193,19,70,24,249,182,195,144,76,113,34,18,164,35,243,9,26,223,55,59,206,150,234,217,78,93,217,236,239,30,248,211,208,125,13,104,214,180,67,0,4,171,207,72,170,98,11,70,248,63,176,48,140,248,160,153,34,251,193,177,213,102,255,133,17,97,8,21,89,78,31,169,7,89,131,76,37,3,128,124,71,222,55,169,90,206,70,19,117,85,130,193,110,239,38,10,194,214,254,164,151,56,79,254,4,2,101,105,77,220,231,200,11,62,28,134,102,203,223,121,138,179,11,137,6,131,19,73,24,194,53,221,2,47,66,13,117,28,227,142,126,43,197,86,127,74,178,6,105,108,198,96,152,199,189,167,219,220,142,24,235,125,104,43,161,236,104,63,94,156,133,185,224,190,71,147,207,111,32,222,213,187,43,5,133,23,191,226,74,134,232,29,37,144,209,221,234,50,12,212,227,123,4,114,90,153,119,15,131,206,78,135,226,173,84,114,113,138,208,169,60,144,46,108,144,17,178,175,98,82,97,144,58,118,121,19,128,78,83,70,204,37,139,6,59,71,152,62,119,254,105,71,236,40,185,255,183,121,186,20,21,137,70,34,150,7,151,192,217,255,99,110,247,186,231,105,47,67,13,149,236,191,171,147,209,138,238,31,28,93,80,164,19,170,197,33,148,160,86,54,75,11,50,103,71,85,160,220,243,143,33,239,83,238,47,56,103,184,180,153,14,179,116,111,174,254,19,42,189,187,138,140,156,180,35,239,132,41,140,72,33,27,128,132,216,174,152,163,244,32,168,32,83,22,150,134,219,123,119,151,47,241,36,230,179,229,6,190,147,48,8,166,200,150,199,25,43,68,132,55,206,27,240,50,200,250,24,106,169,211,16,33,22,77,149,188,117,231,104,61,0,240,19,63,61,154,99,170,50,49,90,113,130,19,242,174,70,60,244,175,78,109,9,15,133,203,109,185,27,71,235,167,235,190,208,103,140,196,108,112,101,175,225,156,52,207,123,5,53,41,216,17,95,132,157,116,73,210,186,184,92,150,58,216,233,212,52,56,225,127,89,129,184,36,123,66,72,34,198,139,247,44,99,184,50,94,242,68,39,43,246,254,225,175,176,196,154,187,253,167,165,181,164,219,0,250,10,191,245,1,56,230,163,105,175,94,143,153,173,94,56,44,143,211,79,42,60,88,80,201,4,20,136,214,63,204,164,190,195,68,96,175,238,67,225,41,93,210,33,80,19,113,148,228,180,250,199,100,94,180,20,182,247,43,99,224,204,66,27,187,17,41,60,151,188,140,190,131,211,182,154,158,133,250,167,114,79,208,178,195,126,122,142,120,76,207,91,112,222,218,220,212,58,151,84,162,43,226,114,244,138,225,145,78,234,154,91,93,34,235,247,34,222,159,69,79,108,246,202,232,95,154,74,86,24,216,150,238,22,169,105,171,225,45,253,29,169,168,114,21,59,131,195,30,191,220,65,79,235,49,116,1,72,62,154,116,24,176,3,222,184,46,14,255,253,243,41,253,65,253,29,191,127,51,122,138,212,223,89,68,129,106,171,122,57,210,12,147,25,148,12,28,25,48,88,146,59,157,77,4,169,138,140,199,231,143,116,195,183,70,244,69,102,117,185,88,159,10,6,53,74,108,227,130,133,195,102,174,64,80,111,215,150,229,58,131,20,52,121,121,93,71,49,243,165,243,49,223,81,170,192,87,153,13,202,119,202,211,7,57,197,48,86,27,226,59,10,80,217,29,27,2,199,98,98,155,74,0,252,82,30,152,147,230,175,231,15,225,150,137,6,111,228,8,7,242,222,39,25,191,180,218,232,0,98,184,72,46,204,156,88,137,45,143,58,124,200,206,218,233,151,126,182,106,29,20,41,53,59,17,236,105,63,76,159,252,99,36,187,69,226,172,208,219,244,30,163,103,127,190,94,115,222,112,39,46,87,103,49,101,70,42,63,63,210,10,223,130,241,20,30,17,135,213,75,162,169,42,165,214,147,151,243,117,229,159,155,90,223,7,149,133,141,219,13,145,47,53,109,156,217,179,34,226,200,91,81,94,195,189,67,59,135,209,33,232,125,195,237,0}, } ; static const int16_t precomputed_encode_1013x7177_x[precomputed_encode_1013x7177_NUM][crypto_encode_ITEMS] = { {-1858,-17070,-14490,23087,-20919,-17426,4550,9829,4196,31559,-32466,-20257,-5577,3413,14793,15547,-20614,30533,-10324,-15829,19926,13449,-11680,30329,-30826,-3913,8936,17675,-78,22813,-10132,18104,27156,-25127,-4436,6022,22262,-20990,23092,-6198,-15527,27609,-17370,-7959,4224,-2224,11639,16543,2720,20623,4020,7194,12736,-13890,17789,-5888,18325,27397,-24051,21904,-30247,4998,19290,-23707,22036,-2813,27204,-18357,-14430,-1403,12930,-20819,-31324,28435,-11256,-30463,-19288,-25769,29297,20271,-31859,-30142,23360,-17462,-21067,-2200,13472,-800,-19460,9442,-29652,-16728,-785,19866,-16602,-24897,-30603,24515,-19568,8729,-28284,28115,-8351,-11856,28397,-23543,15914,-30742,-26773,11535,-22200,30616,30555,4693,-4353,14965,-26575,-10381,15247,-25523,-15319,28906,-29749,29116,1848,-30053,-12268,20522,-18135,6956,-13524,-16549,-23504,30422,-5151,-1480,6225,1053,-30779,-21074,-27529,271,10115,-23500,32675,-25441,-23240,-3877,26518,29272,-5365,27016,-12352,12917,-31371,-9936,21451,16580,23694,20016,25706,-28770,-18416,10411,-9578,28216,-5417,19410,28647,-7910,23803,-21514,26749,-22981,6868,30735,17992,-11892,4078,21600,30568,4904,-2994,27213,-4187,31387,18590,10232,3405,5095,32112,18030,-29040,25236,-2122,-9887,14569,-31250,-26296,14905,-3936,7165,-25182,-18765,29495,-10798,2705,-5208,11206,-24260,-17540,-2652,-11164,-17134,4260,25136,31736,3916,17320,-15655,19295,-15585,-8900,-27373,18981,14810,21923,-30473,15360,-7006,-19593,-6918,-5142,-17337,9828,18706,-10315,12345,2034,31621,14283,-11986,-3968,-13567,-10240,15315,20198,21165,28495,27121,5092,685,-26545,15540,27785,4775,19896,-23944,19333,-22343,-18732,-12581,6625,4559,32618,28831,-25136,-19948,27024,-9498,-12395,-28363,-7875,-7337,5231,-22044,-19771,-9171,-22093,2432,30259,-21006,21418,-26006,-20420,25401,-14172,26568,-14969,7218,14933,-28479,-21686,9716,29543,4893,-1548,6167,-13509,23952,-24990,5833,-16948,23881,2628,-2621,15278,4708,-25657,7826,-24659,-11392,12740,1935,-15363,-8287,7341,10059,-32479,6937,-9903,9202,3328,-1772,-27891,-20672,-8285,-8848,-1317,24585,30665,-10154,2367,7989,-28942,27218,-1114,-28369,-13621,-30037,19154,-29836,6171,11136,-30753,-23023,13113,-5379,-17960,-10939,17001,-16310,23644,8987,556,10751,23031,-13583,30005,-26497,-29034,-26227,27567,-32124,28870,-14144,-27363,-23657,9125,10958,25747,-13826,-32345,-1200,-20759,-23389,21166,-23728,-10722,28512,-22044,30920,21662,-22904,-2842,-3985,28873,-4480,14142,9833,20038,17589,25167,8473,-22549,21928,1531,-9520,13598,10842,-9307,-1711,-5783,-23809,-6220,32340,-27415,-12171,24415,-20309,2819,-5896,792,4819,-31835,-31035,18679,-16082,-26466,-4216,6798,-17663,-23833,-24522,13930,-1354,-1532,7320,-23515,3961,-14364,15346,-21304,-24305,-9005,6508,-19779,1237,12122,4872,20289,10870,-187,12029,2005,-19110,-22442,-8439,-28789,-9343,-30970,115,20051,17169,-18255,10929,-26405,5737,-17841,15,30502,9287,-16958,-5556,-3990,28374,-24785,-18424,21063,-21839,7949,-25874,-23674,3193,14694,1188,8045,-30747,-18955,-13848,24484,8875,11545,2215,3801,32220,17859,19229,26,-8302,-22350,-15896,2998,5650,20637,20789,15647,3878,-19029,21443,-12637,-19,-21775,-1666,12916,10812,32586,845,-30529,-25384,-10790,14719,-24082,-7298,28907,1889,-22753,-19262,29836,-12122,30086,31673,16135,-3949,-20169,14884,23872,5527,-16379,-22793,-16173,12787,7057,-6551,28087,-12505,21176,-28523,20358,9394,9975,-28251,21268,-18249,30370,10069,18693,9695,15829,-3850,24432,-26390,29035,-25598,-30153,-11588,15988,-273,-4795,-21530,14954,5680,-21858,-15733,30097,-8815,25451,-7383,-23749,2098,1519,9283,-29084,19160,8800,3532,-22587,-20217,21974,18141,-13029,19013,-31406,1734,-10532,-14555,-12303,22054,-3002,25943,-14820,-15986,-19616,23199,-2949,10396,-18141,-8209,-8035,16887,25460,15754,7311,6625,-3263,-32312,-24817,-3258,-29085,-21732,-6523,31930,-7663,-866,-26373,-21926,31146,-30474,-1552,22601,-324,-8052,-32498,27532,-1438,-8102,-26515,-7433,-13658,-27232,-31639,-10305,-29535,7581,15592,26511,7341,17005,4730,24123,-7798,-10351,659,-7768,25489,-14692,-2625,-16204,-14431,-2204,3659,-1897,19293,-24846,21606,-6380,29347,29674,11695,-15643,-29188,2743,17180,12135,10109,10930,-13926,-21367,18418,-6581,24865,8189,-10619,23308,-11679,-2983,-30526,-20543,-17862,-9170,-27523,12939,-16261,28466,3181,15998,-27907,14051,3407,13701,-14485,26689,3624,-23391,23623,4438,-30523,28857,25262,10436,19917,-26700,-6053,-13645,843,-16585,12601,-30600,17769,-29566,-18959,-25274,15990,5350,29683,-17263,1569,-24128,-29235,3644,28870,-12626,-10828,27235,-16271,31133,-6229,32672,32630,7269,-28336,5521,23043,-22872,19740,17527,-7214,32331,25758,-28301,3781,-15038,-31141,4735,31346,-20659,-17364,-11107,20712,-522,-32710,-16438,29702,-886,-14349,-13127,-29681,49,-8403,8365,-23910,-18179,9924,23184,11226,-13722,-16912,29401,-17886,-13399,-31004,-11100,5083,-31071,29238,-2096,17116,8167,-29693,-2619,-7808,10553,30524,5719,-23300,1548,-12902,-10336,21347,-17035,-5835,-24294,4165,-17997,-5635,30640,6811,28284,-21780,-1879,12459,15148,32207,-26376,-29852,18974,-22262,8342,30468,-13846,18270,-26038,1821,-15276,-5386,-6649,-11606,-3192,7097,-25270,-3999,25842,-18936,11952,6559,-31295,13548,7955,17851,6947,18478,11280,-13822,12245,-32344,11690,9086,-9907,-25718,15714,-16985,18423,-28962,11307,17852,13342,-17048,28337,2518,31443,4282,-12373,-26440,11876,-27639,28844,-7854,21926,-7089,32518,-1086,12874,6286,-19779,-24690,-18749,8227,-30509,-1375,4183,24243,-32696,-13231,30534,-4403,3794,13533,-8869,20347,-9773,31072,21945,-27656,25395,15573,-26537,21555,27300,-14345,26749,19180,-1951,-23703,-3047,-14376,20558,4655,18049,10539,-1459,32181,15633,13246,-26489,31502,22068,-4019,-22941,8351,-21779,-5440,15930,-9343,24805,-8851,-1890,-22898,-32641,10814,-28290,26438,-3913,15468,-14133,24034,-27429,-23426,-15081,-16291,-32013,-5740,14183,5465,28759,-25598,28800,-32411,3130,2351,22865,18527,17283,17194,-7532,5315,-28111,20680,5618,9440,-11921,10413,29103,31359,29852,25375,789,22695,-27511,-16885,-27453,1638,-2985,8591,-12700,19362,5388,-32474,-2821,-2600,-20993,-18171,-22378,-32477,12341,-22754,-27246,17127,2033,-22491,20397,-31889,13088,7795,-11637,10642,26137,22183,7320,7718,-14633,-5000,13296,-16508,23082,9808,4826,9011,-10636,-18012,-25457,9758,8972,-25655,27920,30403,-17313,-2108,1088,-27262,21411,22666,-2521,-12212}, {-31909,-6264,-22628,-13145,23512,9063,-15057,-21354,-1345,3589,-30977,3448,-21573,20696,29859,-718,-5828,13939,-21145,21037,-7900,594,-28584,-20442,14989,25583,-5908,4486,-28353,16867,29765,7112,13687,5054,18468,-23704,2476,17893,-6020,-7203,-30692,-11319,-32419,30629,22333,-5730,-25034,423,-634,-20391,-11063,-26171,-25505,21853,15573,-2287,20977,27464,-21460,30598,-22828,18132,8782,27082,25187,18443,6370,13626,24599,30944,-29787,11537,12318,3764,-21479,3680,20493,122,-21967,28549,13907,-16339,19156,-7404,19905,-11191,-8852,2777,-18827,28419,-16849,9903,8652,-4466,-18322,26917,-1873,11903,530,5599,-32725,-13526,-4806,30915,-29399,-28948,7141,12277,-25014,26689,-28813,-3658,6802,-12402,23629,-19818,-15156,13100,-23689,30734,-5955,8160,17419,21949,-12297,-21985,9531,-15503,-21419,-1849,-2684,1599,13630,14186,30653,-2099,-23488,25183,13156,-15197,-11075,-29286,-435,23370,5633,-26484,-30950,-2213,9345,-27772,-13469,-22553,-20715,2811,32674,16216,-27092,24652,16732,32093,15119,-15179,3388,19152,8007,-364,8914,-11489,-30911,19822,-6507,13303,-8207,1076,8401,12616,8389,6000,-1207,16568,12914,-7179,4872,-11411,-5958,-19476,-5148,12435,-11995,5790,-28596,-7632,-863,22347,15866,22863,-5960,-20570,-14976,32191,-3364,-26650,-12411,-30955,29729,-8830,-3442,-25438,-30786,31973,4087,22631,-10739,29501,-29404,-32683,-24938,-19910,11503,-21258,-13416,18720,-8945,11252,28198,15931,3997,27735,23464,-29482,-9535,-23884,14079,-20906,-2771,-31370,22474,-200,2729,23064,25781,-5541,-10121,-29353,-22161,25058,-19471,-25590,-2026,21682,-3656,18752,-10734,9405,16087,-2838,7205,-1713,25860,-24398,32556,-15815,22040,12820,-27842,-833,-4216,8343,9071,-31466,-8946,26991,9876,-28051,-3125,9440,-220,12922,-17542,-18743,-22177,-25954,9842,2063,-29078,-16852,-12232,24255,-12085,-14424,-20414,-22371,5016,28731,5241,-29852,-20174,-7502,-10045,-9858,979,26614,24386,21616,25082,-26219,-3594,13745,-6642,-21143,-4221,31547,-26774,-1709,27351,21439,10629,-4195,-11531,2806,-1446,-5381,32003,13070,-19403,-28611,-30313,29054,30425,-31166,30650,-22205,-21451,29140,-19889,-14450,19236,-14377,-30912,22623,-11072,29479,22765,22408,-13528,-22589,28489,-6319,-19127,-10064,28945,-27548,4858,4000,-17367,27801,-8851,30206,22348,3399,-26474,-21578,-31681,-22389,15797,-7364,-7076,17486,-15206,18496,31030,-10541,4135,7271,-19323,22469,-30604,-19562,-21828,-16066,26044,-31371,-25562,22856,-12675,11568,-11624,15710,9429,-28905,-9499,-22362,-26084,18438,-40,-19566,17091,-3450,-13146,9261,-8219,23723,-3544,-11752,-20031,-9237,-5886,-24012,-27430,29927,3620,-2327,-29994,20635,18968,28698,-28174,-2375,6098,-2909,-2099,-9037,-7914,4346,19801,-13068,27278,7104,-13578,-12332,-26556,31231,2207,-30161,13168,25491,-1960,-30379,5369,-20640,24571,-30886,-19647,8090,-8271,23401,23924,-28093,-29183,-15059,-27294,17663,-4166,28955,-3381,18229,-27220,16047,19759,-5369,-23035,20542,19170,-15238,-2624,-12189,26697,1927,-14689,-19642,-22597,24836,-12804,-30830,15932,-32454,-16312,3149,-22242,-7030,-17184,2486,11392,-27761,17203,11263,13414,8686,15764,7540,-25358,26822,32018,21128,10867,23464,25955,26556,-1858,-7591,-25337,9751,-18607,-3929,23817,-17016,-16037,-23475,11227,28052,14063,-4148,10098,20126,-1874,-32720,20423,-26022,12768,-11129,-23892,-32391,17626,13253,-14255,-24642,-18797,30265,25580,22430,-11646,-25700,6272,31457,16587,-16980,-10141,22244,-13445,17079,29747,-29693,18847,22494,16046,-9953,-8004,-2570,-7813,18504,-12587,-5006,-5083,-32411,25230,25056,-300,-23082,10627,28680,30339,-21720,-7341,-30193,-5146,15900,-7377,-5240,32011,-1383,5217,26759,-888,-18843,-8705,-28075,20184,-12046,6972,22592,-4960,16757,4030,11698,15849,-699,6600,-19948,8104,31161,12769,13079,-24256,28840,4757,24197,-23231,9881,3768,14100,-20545,26896,-32288,12646,-4724,-9765,-2086,-26350,-9003,-19578,-21089,4045,19051,11894,14133,24876,7069,-7258,-8772,8400,21324,9234,20640,21279,22918,14488,-6771,29677,-18767,11327,-8055,-9138,491,-21076,17843,-4720,-26684,7183,4673,4574,-20348,12459,13024,19000,603,-8057,-8202,17393,-31900,-1023,-31465,-1595,30065,30374,26200,-18995,7089,-21972,16797,12583,30401,-1957,-12533,-5145,-9340,-3970,-8973,20093,32107,-15048,7429,-28330,-23466,12110,25288,-13138,12752,30484,-16914,27599,12189,28772,2924,-24431,5677,-20360,-19569,-1711,-26058,10829,3281,-21275,19282,-5662,-28359,-24420,-13709,15412,-9834,-14219,-24069,17739,-29219,3221,28283,-13110,21911,12039,-18138,28014,4804,-7607,4167,-22445,-2956,-234,-24004,-25346,-27765,-29600,-8341,-9434,6067,10043,-25257,16602,-4050,-18962,-30693,-8640,-27657,31613,-28668,-8093,-8418,5983,-13891,27511,-16989,-26671,11275,-24365,-10674,13085,27382,-18727,2260,4550,-31531,3054,-19035,18021,1970,-22254,-25339,30081,-10403,3072,3126,20460,-13784,-24819,4115,21372,-9859,-32023,8355,-26353,-25785,-16225,22671,19926,23471,1252,16481,3592,24757,-4657,23662,-29248,15136,31936,-26260,-27087,27713,-22013,15702,1226,-30460,7841,-1896,26748,29108,2503,-237,-23942,19677,2376,-3869,-10276,32102,-25595,-8127,-7240,-19898,-7736,-5614,27963,-6117,19045,-5696,-28862,342,2562,-29625,14378,-18025,5911,-15127,-8284,-19105,10444,25608,-17989,-21288,2865,-32732,-5534,30925,1602,4899,-19164,-25350,-15707,11478,-31817,8326,-16813,-20427,-14108,-22628,24433,-18929,-16925,-19500,-21679,-3150,-2074,30771,31308,13082,-15637,31176,27765,-27687,6735,1696,-13950,-11332,30570,-17523,-28389,16313,5674,16841,10882,12525,10216,29452,-1248,-27010,-3062,-22828,-10219,-6555,-24372,-23177,-199,-12222,15609,20002,-18610,7368,21762,-14859,30356,-12636,-11356,126,31386,22581,7769,-27110,23605,23718,-30838,-19475,-16405,-31087,-5448,-3775,-25337,18036,-10820,-6166,7783,-5874,-9389,1061,-30583,-364,-11624,-26600,28848,-18039,10397,21685,31796,5868,30796,11716,17661,13514,-18995,-7904,13093,-3662,13098,-12980,-5858,26660,-22734,26695,-18745,-8689,27872,-31544,-30319,19619,-13616,-21788,-2519,24097,-25104,30720,15088,4109,11089,-5405,12303,82,-32272,4752,4193,-27451,13029,-18976,3625,-592,-10719,16206,-19846,-28331,10791,-27391,26142,-31014,-8031,-22256,-563,9773,3522,32669,374,20129,27577,21910,-16789,26622,11910,-22315,-9227,-27689,-12781,-29944,-27089,-29537,3977,11042,-10755,-15057,15016,6414,3930,29120,-6020,19305,18217,-31808,-8256,5300,12517,-22723,8039,-5250,-14212,-8937,-32730,-3005,9489,8966,29759,8526}, {9989,-4353,-9111,6286,-18097,-19184,-19635,-17229,10115,31655,24422,30470,-28874,-26398,20303,-7525,28794,24233,15063,-22248,-22181,11455,-29647,28231,-12144,25779,-23247,20081,-20205,637,4814,-26142,-6301,-16598,-29405,-8040,-8401,-23211,15071,13525,5789,-26398,3683,31195,29506,11905,13773,-3889,-2558,-15585,-24736,-27888,29051,5375,26040,-6427,-107,21222,-1277,10926,-32068,23857,-23170,-25963,26069,-1258,-5369,21814,11606,20633,21106,8573,20861,-13996,20430,-8312,26503,-15405,-23879,-3055,31655,-13037,6469,-27718,-11856,11065,-14896,18180,-12291,-17282,-17455,-17163,-30389,24894,22506,26653,27791,11322,-7135,-16387,-18673,-11665,15004,-22652,29549,1786,24033,99,24031,-8405,18905,16255,-3129,18172,-21291,30430,-18628,-1635,2891,-30247,-24164,20591,-22742,-1679,15253,-7300,-8889,5544,-7671,-16431,12776,-25375,-4079,9067,-4951,9576,27467,20381,18286,-6281,-15815,30977,-8386,18826,-5944,20169,-15287,-16674,13168,-27326,29187,-7132,-12750,-15374,-8311,2449,301,5534,-20074,-13444,23962,11884,10283,27891,17818,-26117,-5918,-5191,8155,-21939,31089,-26668,25994,7454,-20164,24101,-12692,6388,16204,3990,29500,-21637,-22657,18462,-11895,28657,19405,-16323,4246,30950,3950,30330,-5308,-12543,21391,1981,5556,12014,28124,27082,-19921,12573,-27288,10854,784,28869,-20668,-22280,14070,12086,32517,13232,-10694,-19012,11612,-23752,-30509,-24006,-961,1912,-22224,30953,26062,20289,-15690,-17418,32209,1706,32200,12428,15806,-20820,27077,-13453,-28207,19035,-9386,10565,-11249,-4283,13752,-18661,24807,-28754,23215,-7039,-11996,3740,-30086,23500,13754,11507,-30301,18218,-13689,9512,-11994,8214,3306,17518,-18132,31536,-11877,25477,12073,-8600,8790,-29089,11232,-25456,803,13713,-8649,17221,5194,31161,-15297,-21712,-3516,3930,31168,-31424,-1299,-20918,32600,6387,20202,15218,-11222,-11474,2870,-2383,-340,-22652,-19643,-9798,-14447,2503,9020,13568,8078,-25639,27519,-8628,29109,-8034,30829,28665,-11657,-13410,20026,19237,-3407,20014,765,-26475,-24429,-25484,-2776,28965,12257,12030,12703,-14069,-28240,-23412,-20366,12916,-24530,-1824,23552,-22284,-22198,29405,-32513,28293,-892,-17873,-23325,8944,-9228,-16966,19981,4888,-16590,-4112,-18609,-7003,-4175,2557,-17360,-10518,-18061,-26568,25703,-10529,914,-32055,-23996,21205,-18728,10574,32439,-710,-2142,30349,10955,-3168,26383,23188,30302,-7190,-8258,-29527,-25976,11528,-21565,19342,16940,17273,22033,16268,-6379,-14831,-1498,-2780,11680,-4255,-21192,-1886,27441,4856,-27571,3742,2723,-4974,-78,-26985,5447,24044,-21672,-17341,24638,12631,-14996,1785,18496,-23186,-15199,-13357,22472,3150,-23771,-3729,386,-18068,-31426,29688,32754,-24681,5313,-28683,30271,27650,13909,15244,29031,-3930,-30242,19141,28184,-24009,4160,4561,-18883,1864,-12438,21170,27188,14664,22319,24214,3624,-5270,12467,-8726,-13494,327,-22627,-14181,-7751,27593,27303,9385,-31904,-24112,-22530,-3558,16272,22875,-1364,-14832,21835,3679,-17227,5301,10117,-4575,14712,-2579,15266,2388,-19444,-22399,-3133,18754,22182,31524,18979,-11625,-20010,-8852,26566,-15304,11414,19549,-21532,9870,-32596,-11211,-22346,26774,-31202,-18438,21390,922,-14798,13121,-9727,768,11499,27546,2905,7703,-2713,-3371,28601,20614,25782,1108,-19516,-8546,8721,-16677,-29415,2607,-14475,22519,-7642,31743,21691,-20315,24604,-1407,-11633,17357,5097,-21086,-1248,13126,26267,-29059,-26689,-15414,-26857,10322,-3222,5456,-16764,15112,-22697,-22751,-12861,-21215,1068,31302,3769,18192,29844,-7038,530,-28961,10484,-25557,22197,29314,29644,-5117,-18979,-17753,11625,15094,-21488,2419,25533,-406,-21081,-19410,7925,-18943,16107,-29133,-7231,-12298,16235,18345,8928,7725,27849,-11057,-27537,26878,-28793,25763,5974,-4229,-21172,-5988,-7334,-32187,9882,28792,16688,3954,-19014,-2895,12362,10801,1198,-22387,-7887,27749,-21494,-5375,1696,-13142,-5581,23507,10171,20924,-4227,16274,-16747,-6004,9488,-23056,-6159,-23639,10718,17951,10205,-13173,1498,-17502,-881,-520,-5044,28652,-29564,-14385,6046,-13587,11792,16085,16482,10054,-29885,-295,21759,21402,24581,-2243,-25338,-9991,8346,-11325,-28179,-3241,-15574,-6870,27692,-23983,12692,-15686,-4092,-1418,-13256,-18628,-26558,30579,-19611,32522,-30550,30844,-30165,-32228,3116,-25938,-29801,-1988,12463,-18003,16549,-929,17532,-580,-25052,12512,17872,-31024,-18802,21952,-10509,25906,-18218,15573,22285,10660,-23906,-16939,5222,24872,-19054,-10529,3234,6337,-12883,3710,6885,-27477,5578,-30312,-6418,25161,-23153,-8347,-20363,-17533,-881,21530,-8101,-1097,22332,-28091,31420,-19555,24170,2640,18115,-13417,-30343,-31323,-26006,824,-31931,-27632,-3674,-32072,1628,20993,-16206,-26222,26499,-2601,-26082,-14204,18906,-31661,-2615,24604,-26239,-7503,-9043,-24406,10955,12038,1627,9561,-818,-22347,1303,20592,-3480,-7346,2632,-28442,-18544,29149,5783,-3718,18534,31508,20700,29654,-23815,7518,-10764,18041,-10425,14771,-22018,6209,-22585,20225,-25201,-5923,24908,2210,4188,11365,14373,-30443,18668,31259,-14019,4734,-12666,9587,-17687,-20209,541,13215,-23367,32162,-1425,19788,-25379,-27186,-17037,-23781,4361,-21675,14942,-22572,758,-31884,4645,22790,-3900,7882,9885,481,1076,-7513,10012,22955,30597,-6793,13100,-1464,-18337,-25760,-15548,-20152,-314,18797,21653,-17836,-4850,-7761,25591,28906,12041,-20292,-28734,7174,-4874,-4113,1996,11644,-8098,-24464,-567,4069,-14067,-2128,2192,-11484,-10335,-5661,-20505,7670,27381,12768,23271,14222,-14820,-28513,25223,12292,-4589,-20419,29160,-18112,11088,20542,-298,-11597,3477,31171,-28426,17583,1743,-6981,13272,3264,-27378,-29467,-27348,8002,8083,13598,26105,-31260,737,-31516,10725,8619,-31587,-28085,-31698,27299,-29953,6150,-21789,14010,-29634,-10020,19419,32458,25766,4567,27492,28866,11386,-27104,29533,21842,10661,14748,18285,-18692,-27251,20466,-7416,-771,2798,27134,-16732,13294,12199,24844,-31059,27998,22973,6894,13991,-113,24901,201,-1202,265,-25972,-6733,-6318,17180,28751,3389,19174,26783,1085,-32712,16596,-26578,-8897,-13457,9416,23171,29291,1083,-12021,28700,-20045,21956,-18667,-27840,-3853,27872,-31987,-7098,31734,7665,-20229,4871,-2664,-19265,31235,-20683,21891,8343,16321,-28792,-15792,22660,-3293,30219,29137,-18791,16436,8475,11222,-22405,18493,5086,-5910,-2896,-8474,-31584,-6833,-7995,19181,6434,-27387,-24091,-27478,24589,5306,19595,11002,-4349,-32233,-21689,-16576,-5800,5428,-7929,31214,9094,5586,21050,-87,3427,-24624}, {22646,-19009,-1491,20619,-14580,-3580,-267,3563,29715,22412,-27104,20276,-15242,-19292,27971,16717,27203,845,11749,21826,9598,5929,1299,11298,12045,27942,-3758,-3127,-8544,-29492,1312,-14102,-22528,-29669,-17128,5026,10010,-17950,30627,2117,9746,7416,30921,28386,-20680,17878,4176,19727,-32096,23006,828,-31395,-28586,-25816,-4905,4346,-27625,27266,-32008,-17175,-31121,16640,23054,15205,32504,15001,-3382,22801,30355,28705,-23359,-14682,-27121,8550,-19753,-6855,-4378,7258,-18055,-23899,-11075,3594,30335,15163,-23685,-30244,-31010,27279,25757,-11598,6617,-11977,-26191,741,-23163,-9499,-20071,-4151,32068,-9741,-31832,-17903,-20367,-20251,20491,23706,-31059,30228,-9901,20928,-23955,1888,5619,-20201,9564,-23012,21870,-3435,-22906,-21429,5663,-17669,-27164,-14102,24199,5584,29187,30185,-11769,2261,20085,-26270,-5494,8846,-25191,32043,-5004,-8335,-10535,31791,9924,-30346,-15454,2133,8057,-19055,30999,-583,-22600,-3997,-8763,20200,-1570,28717,12628,11955,28830,-26997,18152,10761,-18565,12569,19709,-13254,-1003,3989,30725,3291,-30884,13974,30763,-2486,-13015,-1005,29611,-9183,4818,-28934,-22296,-7795,-24996,19710,-32097,-10262,1229,-6010,-892,-24024,-12399,-26199,17794,32386,-8255,8502,-28071,-29914,-19387,-32195,-12563,-756,-13805,-27034,20778,-18126,5028,-31968,-23534,17364,27412,10018,-28654,3662,-6250,-20211,-16007,19668,5521,-22,-7217,-12299,-18281,-6737,4495,-14502,13128,26580,-24020,-15789,-14274,-9659,7364,17699,320,-10339,18342,6309,-20051,7388,-25598,804,-3201,-1369,-23199,12959,13089,11411,13216,-25526,5689,-22097,15590,-1897,14873,25806,-4008,9711,1359,-23605,2137,-11431,23907,-18819,-21941,-19409,2101,7268,2816,17645,6368,-24864,31795,-963,-20802,-115,-7018,-14134,20729,-13695,18851,-468,-746,-20760,9748,7992,17934,18312,5535,17565,27121,23451,-8064,14565,-31609,13187,-11253,-20518,14475,28091,29286,-1020,5747,712,-7135,28351,32131,-30271,4187,-12289,7786,-32018,-19738,-10278,13845,25395,-8977,23777,-11057,14461,28627,-25095,31866,-2699,-12574,-2435,24740,-32459,620,-15123,-1499,-830,17569,-22101,-12298,14036,-30136,-25630,-24300,21024,-30901,403,-19466,28697,-9463,15062,-15058,19303,-22308,-27286,-24405,-19811,2760,227,19584,15539,-13937,-8214,-18286,-19952,9043,-19163,-20495,2100,-19213,-27943,-6420,7722,24109,-30054,-10208,4404,-27395,21378,15376,12962,18998,4521,1601,-31635,-12669,5906,13262,28456,-10813,-26713,-16448,8818,-15695,-4336,-11287,-5247,-11705,32293,-3764,-31255,1860,-29201,-15563,14484,-20569,31942,-13695,19053,25621,-27653,16484,-26928,8550,-27484,7006,19934,-19788,26098,-19720,10034,-17859,21011,6391,18777,11933,6351,9312,-7505,-859,-26194,-24776,-13115,-14559,-23513,-12770,19916,21160,-16669,14193,-9827,-6998,-13170,7359,-7741,-10415,-11936,23063,-24947,13754,21817,6015,-23921,-25298,-26667,-19426,-25837,-17169,6826,-6111,-10956,-3932,26311,-17414,-20264,-29567,-31698,7846,21931,-17682,-6342,5713,-20088,21834,10892,1719,-20078,-1634,-4311,-30808,9111,-3685,8280,-23808,5688,19876,26628,8442,-19863,-20709,7241,-8644,21795,-12620,22348,12738,31235,30633,-234,10737,1247,11897,-23129,-25138,15724,-3254,28564,-9046,12760,14011,-31653,7976,-6789,-10989,17236,-28369,-8781,-6882,-22755,-17613,173,-25659,20516,29332,-13416,17579,-22141,8311,13279,-24697,-5560,-30630,14897,-1542,22016,28737,9079,-31864,19763,14231,26175,16714,-15340,17132,9215,-12442,7196,-2267,22560,-27842,-28247,19502,-19881,263,-20454,-3884,-24233,3553,-10867,12218,-26508,10553,-22640,31873,2429,11545,-24777,-7587,25087,-14791,-22003,28890,29582,-26676,-7478,-3729,12154,15073,2892,6872,-20337,13695,-28897,3986,15102,20614,24471,23694,-28820,1139,17693,17714,177,-20746,18021,8461,24593,-9864,32579,11104,-24722,-31383,860,23877,4989,-1590,-26974,27968,-31600,8491,-20841,16980,14653,12691,644,18085,-6333,-11653,28337,-31679,1873,-9716,5554,-12206,-5052,-405,-31451,-32296,-25494,2279,-1657,-13125,-2265,-26990,-6368,26211,22223,15931,-30216,-19543,-24136,-9211,31123,-147,32691,4207,1778,14974,-4236,-26900,-5578,-9522,-12181,17378,4677,-29050,13253,-10533,18248,-18635,-19482,-29788,9554,-20274,17307,-17705,-27028,-14660,30660,14925,10512,23145,21038,31028,-26888,6278,10274,-14767,29039,21464,10716,17004,-10082,13785,-8650,12966,20765,-4959,24258,25940,-19808,-2505,26243,9911,2287,206,-19421,16347,17707,12776,5338,-13085,9928,26941,-10021,-1080,-29930,-21884,30660,-12669,30486,-4476,-3146,16532,15087,21407,-21326,28678,-5015,-27842,22381,-27841,15223,-18173,13246,16274,12107,17691,26017,-10609,12783,-22346,9101,986,1635,17959,23441,-10695,12667,-2034,-18438,24354,-9319,10047,-1511,-29874,30604,-8550,-26012,7817,2206,1787,-29211,-2721,8745,-4275,20228,-25774,26809,-23648,737,-27070,-996,12115,-5062,-19571,-10676,5622,-13569,32636,25818,30315,32230,-11278,-2297,21518,15846,17572,4415,26758,15326,-11425,31071,30006,6067,-24245,31555,8975,22012,20954,23675,-26782,19775,1653,-26046,-28088,-28342,-18344,22822,-27381,-16087,29845,-12445,-8393,4711,-14912,9418,29280,21017,-9729,2893,5442,23278,14796,31354,20477,20889,12491,536,27758,-7797,2817,14010,-443,27196,1106,16129,19140,18357,-9111,-11799,-6741,-28870,-29144,-16729,2439,-22546,8930,-5118,24519,871,-9665,29092,22710,-6984,10170,-31448,18798,-15376,-25885,32409,-29625,-8535,26880,-30361,-21811,32674,-26724,6232,4847,28217,13406,-3073,-20288,-18197,-31792,-14764,-7462,-16747,18612,10944,3284,13077,16354,788,-18215,-20862,25512,29031,-10374,-2212,-22124,-23609,19491,-9878,-2416,3879,18559,26915,-10619,-175,21155,15426,-24303,-23201,-26119,21980,-26624,28218,-16506,-9098,-31438,9305,-9587,-235,3265,-15056,21854,-13951,-23405,14395,25171,32428,-4234,21079,15948,-9586,20622,16948,26673,-30256,2679,-18775,20279,-22043,20135,-7758,-22094,9581,7822,-20292,3059,-10739,-468,-3438,17970,-8143,3225,-23707,-13870,32492,29593,-24252,-29046,-5452,-13414,-6243,-23610,20688,30266,-26180,32464,26775,6621,-22325,722,-21475,-5975,-7576,8209,11971,24318,-16629,23530,29072,1738,-27987,28668,8124,-15859,-8710,15062,-1808,-1882,11916,11260,6237,1687,-24732,17785,30804,17222,-4087,29324,-11865,-9502,-17536,31317,-31470,-32391,25564,31292,832,7367,-17501,-10861,29878,24206,2842,2596,-13286,-19869,18304,23852,-18373,20351,-26946,31026,-28942,30308,19883,-17758,30525,-25968,-22266,19640,29080,9120,18800,-30181}, } ; static void test_encode_1013x7177_impl(long long impl) { unsigned char *s = test_encode_1013x7177_s; unsigned char *x = test_encode_1013x7177_x; unsigned char *s2 = test_encode_1013x7177_s2; unsigned char *x2 = test_encode_1013x7177_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1013x7177_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013x7177(impl); printf("encode_1013x7177 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013x7177_implementation(impl),ntruprime_dispatch_encode_1013x7177_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013x7177; printf("encode_1013x7177 selected implementation %s compiler %s\n",ntruprime_encode_1013x7177_implementation(),ntruprime_encode_1013x7177_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1013x7177_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1013x7177_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1013x7177_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1013x7177_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1013x7177_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1013x7177_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1013x7177(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013x7177")) return; storage_encode_1013x7177_s = callocplus(crypto_encode_STRBYTES); test_encode_1013x7177_s = aligned(storage_encode_1013x7177_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1013x7177_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1013x7177_x = aligned(storage_encode_1013x7177_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1013x7177_s2 = callocplus(maxalloc); test_encode_1013x7177_s2 = aligned(storage_encode_1013x7177_s2,crypto_encode_STRBYTES); storage_encode_1013x7177_x2 = callocplus(maxalloc); test_encode_1013x7177_x2 = aligned(storage_encode_1013x7177_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1013x7177 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013x7177();++impl) forked(test_encode_1013x7177_impl,impl); ++test_encode_1013x7177_s; ++test_encode_1013x7177_x; ++test_encode_1013x7177_s2; ++test_encode_1013x7177_x2; } free(storage_encode_1013x7177_x2); free(storage_encode_1013x7177_s2); free(storage_encode_1013x7177_x); free(storage_encode_1013x7177_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1013xfreeze3.c0000644000000000000000000012234514705505543023421 0ustar rootroot/* ----- encode/1013xfreeze3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1013xfreeze3_checksums[] = { "5837a623cf7f3d3c0f749b1f17bd4e6bcdee5dc21260123f6addfeb8e2116a2a", "a876703bcdb2d60e3da575c761a4f020680168798a3d68303972da1450397dbd", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1013xfreeze3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1013xfreeze3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1013xfreeze3_ITEMBYTES static void *storage_encode_1013xfreeze3_s; static unsigned char *test_encode_1013xfreeze3_s; static void *storage_encode_1013xfreeze3_x; static unsigned char *test_encode_1013xfreeze3_x; static void *storage_encode_1013xfreeze3_s2; static unsigned char *test_encode_1013xfreeze3_s2; static void *storage_encode_1013xfreeze3_x2; static unsigned char *test_encode_1013xfreeze3_x2; #define precomputed_encode_1013xfreeze3_NUM 4 static const unsigned char precomputed_encode_1013xfreeze3_s[precomputed_encode_1013xfreeze3_NUM][crypto_encode_STRBYTES] = { {255,255,0,0,255,0,1,1,0,255,254,0,1,1,0,255,2,0,1,0,0,1,1,1,254,0,1,0,1,2,0,2,1,0,255,0,1,255,1,2,255,0,1,254,1,1,2,2,1,255,255,1,255,255,1,1,255,0,0,0,254,2,2,1,1,255,0,0,0,0,1,1,1,1,0,255,255,255,1,255,1,0,254,2,255,0,0,1,255,0,254,0,1,0,2,0,255,1,1,1,254,0,254,1,0,254,255,1,255,0,0,255,1,1,1,254,2,1,255,1,255,0,255,255,255,0,2,0,0,254,0,255,0,2,0,1,0,254,255,0,255,0,0,1,255,2,255,1,255,2,255,254,0,2,255,255,255,1,1,0,255,0,0,0,1,255,1,0,0,0,255,1,255,254,1,254,1,255,1,255,1,0,0,254,1,0,255,1,255,2,0,2,0,0,255,255,2,255,255,1,1,0,1,255,0,0,0,1,1,0,2,2,1,255,255,1,0,255,255,254,255,2,254,1,0,255,0,1,254,0,0,255,1,0,1,254,255,0,1,254,1,0,254,255,1,1,0,255,255,255,0,2,255,0,255,0,1,0,0,0,254,0,0,2,0,0,1,0,2,2,0,0,255,1,255,0,254,255,2,0,255,0,255,1,0,0,255,1,0,0,254,2,1,254,1,254,255,1,2,1,255,0,255,255,255,0,1,254,1,255,254,1,0,255,255,1,255,0,0,0,1,0,2,255,0,254,255,1,254,254,2,1,2,1,255,0,0,254,255,0,255,0,0,0,1,1,1,0,1,1,255,0,255,0,0,0,1,1,1,2,255,255,2,255,255,1,254,0,0,255,1,0,255,0,255,1,0,0,255,1,2,1,1,0,0,2,255,0,255,1,1,1,254,255,0,255,1,255,255,1,254,0,1,255,0,255,1,2,1,255,1,2,255,0,1,255,1,255,0,254,254,0,1,2,0,255,255,0,0,0,1,1,255,255,255,0,0,255,0,2,1,1,2,254,0,0,0,0,255,2,0,0,0,0,1,1,1,0,2,1,255,2,255,0,255,1,1,1,1,2,1,1,1,255,1,255,1,255,0,0,1,0,0,0,1,255,0,255,1,255,2,1,0,0,1,255,0,0,1,0,1,1,0,255,254,0,0,0,0,254,0,2,1,1,255,2,255,0,255,0,0,255,1,1,255,2,0,1,254,255,255,0,0,254,1,2,2,0,0,1,1,254,0,0,254,254,255,0,1,0,0,255,255,1,0,255,255,255,0,255,255,0,255,0,1,1,255,1,1,255,2,0,0,255,0,1,0,255,0,255,255,0,255,0,2,255,1,1,1,2,1,255,0,0,0,2,254,255,1,1,0,1,255,1,1,0,254,0,254,2,1,0,255,2,0,2,255,255,0,0,0,1,0,255,254,1,0,2,254,255,255,1,0,0,0,2,1,255,0,0,0,2,255,255,254,1,255,1,255,255,1,0,0,1,1,0,255,1,1,255,0,0,255,0,0,1,1,1,0,0,255,1,255,1,1,1,0,1,1,0,0,2,1,254,1,255,1,255,2,255,255,2,1,254,255,1,254,1,1,255,254,1,255,0,0,0,0,255,0,255,0,254,255,255,255,255,0,255,0,1,255,255,1,0,1,2,1,255,0,1,254,0,0,0,1,255,2,255,255,1,1,0,0,1,0,1,1,255,254,0,254,1,1,0,255,0,1,0,0,2,0,0,2,255,1,255,1,0,0,254,0,0,255,0,1,255,0,0,1,1,1,2,255,1,1,1,255,1,0,1,0,0,1,2,0,1,0,0,0,255,0,1,0,255,1,255,0,2,2,0,255,255,1,0,0,1,0,254,2,255,255,0,0,255,0,0,1,1,0,0,255,255,255,0,255,0,255,0,1,255,255,0,0,0,1,2,0,255,0,0,0,255,2,1,255,255,0,0,1,1,0,255,254,2,2,0,0,255,0,0,2,0,0,0,2,0,0,2,1,2,255,255,1,0,0,1,1,0,255,2,1,255,2,1,0,1,0,255,1,0,0,0,1,254,1,254,0,1,2,0,254,1,254,0,1,1,1,1,1,255,1,0,0,1,1,1,0,255,0,1,1,0,255,254,0,1,254,0,255,0,1,1,1,1,254,0,255,1,0,1,255,254,0,1,0,0,254,254,255,1,254,2,255,0,0,0,0,1,254,1,1,254,0,255,0,255,0,0,0,1,2,0,2,1,255,255,1,2,255,0,0,0,255,254,1,0,0,1,0,0,0,254,255,0,255,0,1,1,254,1,2,255,1}, {1,0,1,0,1,2,255,0,255,2,0,0,255,1,0,255,255,1,0,1,255,0,1,0,0,0,2,1,255,1,0,0,1,255,254,1,255,0,0,255,1,0,1,0,1,0,0,1,255,0,1,255,0,2,255,1,0,255,1,1,0,255,0,0,255,1,0,0,1,1,255,255,255,0,0,254,1,1,0,1,0,1,255,2,1,1,1,0,0,0,254,255,0,255,254,0,1,1,2,1,1,0,2,0,255,0,1,0,0,1,255,0,255,1,2,2,255,0,0,1,0,254,255,1,1,0,255,255,255,1,255,0,254,2,255,0,2,2,1,2,0,0,0,0,255,0,255,0,1,0,254,0,0,2,2,0,1,2,0,1,2,0,0,1,255,1,0,255,0,1,255,1,255,255,1,0,0,1,0,255,1,1,0,255,2,255,0,0,255,254,1,0,255,0,1,1,255,2,255,255,1,255,255,0,1,0,0,2,1,1,254,255,1,254,1,1,254,0,255,0,254,255,1,2,255,1,1,255,0,1,1,0,0,254,255,255,254,0,255,0,1,255,1,2,1,0,0,1,254,0,0,0,2,255,1,1,255,1,2,255,254,1,254,1,0,2,0,1,255,1,0,1,0,0,1,255,1,255,255,254,255,255,255,255,0,0,1,0,254,2,1,2,0,254,0,255,254,1,254,0,0,254,255,255,0,255,0,255,1,1,1,1,0,2,1,0,1,1,0,255,255,0,255,1,0,0,1,255,0,0,0,255,255,254,0,0,1,0,255,0,255,0,1,1,1,2,255,254,2,0,0,1,255,0,0,254,255,1,1,0,0,0,1,255,0,255,255,1,2,255,255,2,1,0,0,0,255,255,254,1,0,255,255,255,0,1,255,0,1,0,255,2,0,254,0,254,255,0,1,0,1,255,1,1,254,2,0,255,1,255,2,2,255,255,2,2,0,255,0,1,0,1,255,254,2,255,0,1,1,0,255,1,0,255,1,2,255,0,255,254,1,1,0,255,1,0,1,0,254,255,0,2,1,0,1,0,1,255,0,255,2,0,0,0,0,0,255,254,0,254,0,0,2,0,1,1,255,0,1,254,255,254,254,2,255,1,254,255,0,255,0,255,0,1,0,0,2,1,0,254,1,2,2,2,255,2,255,1,255,0,0,255,255,254,0,2,2,0,0,1,0,255,2,1,2,0,0,1,1,255,1,255,1,255,2,0,0,254,0,0,255,0,0,255,0,0,0,0,0,0,254,255,255,1,2,0,1,1,0,0,1,0,255,0,1,0,0,255,255,1,0,0,1,1,1,255,0,0,2,1,255,0,0,2,255,255,1,0,255,1,1,255,0,1,255,255,0,0,1,255,1,0,254,255,254,1,0,0,0,1,255,1,1,255,255,255,1,255,255,1,255,254,0,0,0,0,1,1,2,255,2,255,254,254,0,1,1,255,1,0,255,255,0,1,255,254,0,254,255,254,2,255,1,1,2,2,255,2,1,2,2,0,255,1,254,0,2,255,1,1,1,255,255,1,2,255,1,255,0,2,2,254,255,255,254,0,1,254,0,0,1,1,1,0,0,255,1,1,0,1,0,2,1,2,254,1,255,1,1,0,2,0,254,255,1,1,2,1,2,255,0,0,255,255,1,254,0,1,2,0,0,2,1,0,1,0,255,1,0,0,255,2,2,1,1,0,1,254,0,255,1,2,0,0,255,1,1,1,1,0,2,0,0,1,0,255,1,255,1,0,0,254,2,1,0,1,1,255,1,254,2,255,0,2,0,1,0,1,1,1,255,0,255,255,255,0,2,2,255,0,0,1,254,0,0,0,255,254,1,2,2,1,0,0,255,255,254,255,255,0,255,2,254,1,1,255,1,1,255,254,255,0,1,255,0,0,2,0,255,255,255,1,1,254,0,255,1,0,0,254,2,0,0,254,0,2,1,0,2,1,254,0,1,255,0,0,0,255,0,0,1,255,1,0,255,254,1,1,0,1,255,1,255,1,255,255,255,0,1,2,1,255,1,1,1,0,0,255,1,0,0,1,1,1,255,0,1,255,1,2,255,1,255,1,2,255,0,0,255,1,0,0,1,1,0,1,255,0,255,0,2,0,255,254,0,0,1,0,0,254,1,255,254,0,1,1,0,255,1,0,255,254,1,0,0,0,0,255,255,255,255,0,255,255,255,1,0,254,1,254,255,254,0,1,0,0,0,1,0,1,254,254,0,255,0,1,255,1,255,0,1,0,2,0,0,0,255,254,255,1,0,255,1,1,255,255,0,255,1,255,1,1,0}, {254,1,254,1,2,2,0,1,254,0,0,1,255,1,255,0,0,0,255,2,255,0,255,255,1,254,255,0,0,255,1,255,255,0,0,0,1,0,2,0,0,1,0,0,1,1,255,254,0,2,255,255,0,0,255,1,1,1,1,0,0,255,255,2,2,0,255,0,255,0,1,254,254,0,0,255,254,0,0,255,254,254,255,1,255,255,0,1,255,1,255,1,254,0,0,255,0,254,2,2,255,0,1,255,255,0,0,254,1,0,1,2,2,255,254,0,0,255,0,255,255,0,255,2,0,255,0,1,255,0,0,255,0,1,1,1,254,254,255,255,1,0,255,0,255,0,0,0,1,0,1,255,255,255,2,0,255,0,255,1,0,255,1,254,0,254,1,0,0,255,254,0,255,1,1,1,0,255,0,0,0,1,0,1,255,255,0,255,255,1,255,255,255,0,2,0,1,2,0,1,1,254,1,0,255,255,0,0,255,255,0,1,0,255,0,254,1,255,255,0,0,2,2,2,2,0,0,0,0,254,0,1,0,1,0,1,255,0,1,1,1,1,255,0,255,0,1,0,0,0,1,1,255,1,254,1,1,0,254,1,255,254,1,2,255,255,2,2,2,254,255,0,255,1,0,255,2,1,255,255,0,255,2,255,0,1,1,2,255,1,1,1,1,1,254,254,1,2,1,255,1,255,0,2,1,0,0,255,0,2,0,255,255,254,0,255,1,255,255,1,255,255,2,255,254,2,0,1,255,254,254,1,1,255,255,0,0,1,255,255,0,0,1,1,1,1,255,255,255,255,2,1,1,2,1,255,0,1,255,2,255,0,2,255,255,2,0,1,0,1,1,1,1,0,255,254,0,0,255,1,0,1,255,0,0,0,0,0,1,254,0,255,255,2,1,255,0,2,2,0,0,0,0,0,1,255,1,2,255,1,0,255,2,1,255,255,0,255,255,1,0,255,0,1,2,255,0,0,255,1,255,254,0,0,1,1,255,0,255,0,1,255,1,1,255,1,0,0,0,0,254,0,0,255,2,0,255,0,254,0,1,0,255,0,0,0,255,0,1,255,0,255,255,1,255,1,255,1,0,254,255,0,1,255,255,0,254,2,255,0,254,1,255,2,2,1,0,255,1,0,254,254,255,1,254,255,0,0,255,254,0,1,0,1,1,1,1,254,2,255,1,1,255,0,1,255,0,255,1,255,0,1,255,255,1,255,0,1,255,1,0,2,0,2,0,255,255,1,255,255,1,255,2,255,254,0,255,0,0,0,255,0,1,0,0,2,0,1,0,2,255,0,0,2,255,0,254,2,0,1,0,254,0,0,0,0,1,2,0,1,1,255,255,0,0,255,2,0,255,1,255,0,0,255,2,0,0,254,0,0,1,0,1,255,2,1,0,1,1,0,0,254,0,255,1,0,255,255,0,0,1,2,0,0,2,0,255,0,1,0,1,1,255,254,0,1,254,0,255,254,1,1,0,254,0,1,0,0,254,1,1,1,255,255,0,255,255,0,2,255,1,0,1,1,0,255,1,1,0,1,2,255,1,1,1,254,255,255,1,2,1,255,1,255,1,1,254,0,1,254,255,255,0,1,0,2,255,0,1,2,1,255,1,255,1,0,2,2,255,255,0,0,0,255,255,255,255,0,1,255,255,255,255,1,1,0,254,1,2,1,1,2,0,255,0,1,255,255,254,255,255,1,2,255,255,254,1,255,0,0,2,1,1,1,0,0,255,0,2,255,0,255,255,1,0,255,0,1,255,2,255,2,255,1,255,1,0,1,0,0,0,2,2,255,0,255,0,0,255,1,254,2,254,0,255,0,0,0,0,0,0,255,0,1,1,255,254,1,0,1,0,0,254,254,2,0,0,254,1,0,1,0,255,0,0,255,1,254,0,0,1,0,0,1,255,1,255,0,0,255,0,0,255,255,255,1,1,1,255,0,1,254,255,0,255,1,1,1,255,1,255,1,2,254,254,0,1,0,254,0,255,255,255,0,0,2,0,2,255,0,0,1,0,254,0,1,0,0,255,2,1,255,1,0,254,1,255,1,255,0,0,255,254,1,0,255,255,1,0,0,2,1,1,255,0,1,255,0,1,255,0,255,255,0,1,0,1,255,255,255,254,1,0,254,0,1,1,1,255,2,1,0,254,255,0,0,1,255,255,0,255,255,0,0,0,255,255,0,0,0,0,255,1,2,1,1,0,0,0,0,255,2,255,254,254,255,0,1,255,1,255,255,2,0,0,1,254,255,2,0,2,1,254,0,2,0,0,1,255,0,255,0,254}, {1,255,0,0,1,255,255,2,255,0,255,254,0,254,255,1,255,0,0,0,1,255,1,1,0,1,1,255,255,0,0,255,254,2,254,0,255,255,255,0,1,2,255,0,0,1,0,1,255,1,255,0,255,255,1,0,2,0,255,2,1,1,1,254,0,0,255,0,1,2,2,0,255,0,1,1,1,255,1,255,0,0,255,0,0,255,0,1,0,255,0,1,255,255,2,2,0,0,255,1,254,1,255,0,255,0,1,255,254,254,254,255,1,0,255,255,0,0,2,0,1,0,1,1,2,0,0,255,1,0,255,255,0,0,1,254,2,255,1,255,254,0,254,255,254,1,1,2,1,255,0,1,255,1,255,255,1,255,0,1,0,0,0,0,255,0,0,0,0,1,0,255,1,1,1,255,254,255,2,1,254,255,255,2,255,1,254,0,1,0,255,255,0,255,0,255,0,1,0,1,255,1,255,254,255,255,0,0,255,255,1,255,0,0,254,1,2,0,1,0,0,0,1,0,2,0,0,2,0,1,254,255,0,0,255,1,1,255,0,255,0,2,1,1,255,0,254,1,1,2,0,0,255,255,0,0,2,1,254,255,1,1,254,0,0,0,1,1,255,0,255,1,1,1,1,254,254,1,2,1,1,255,255,255,0,0,0,1,255,255,2,2,1,1,255,0,0,255,0,254,2,0,255,255,254,2,255,255,0,1,254,2,0,0,0,1,1,0,1,254,255,0,255,0,0,1,0,0,1,255,255,0,1,254,2,1,2,0,1,1,1,0,0,1,255,0,255,0,255,0,1,0,2,0,0,254,254,255,255,2,0,255,2,1,254,255,255,2,0,0,255,1,255,0,1,255,255,0,1,1,255,0,254,0,0,1,0,0,2,1,0,2,0,2,0,1,0,254,1,0,255,1,1,0,0,1,1,1,1,1,255,0,0,255,0,1,1,255,0,255,1,255,254,255,255,1,1,255,1,255,0,255,1,254,1,2,1,1,0,0,2,1,255,254,1,1,1,254,255,1,255,254,1,255,0,255,0,0,0,1,1,0,1,0,255,254,255,254,255,255,255,255,2,0,2,1,2,255,0,1,0,255,254,0,255,0,255,255,0,255,1,255,2,254,2,1,255,255,0,1,0,1,0,2,1,0,255,255,1,0,1,255,254,1,0,1,255,0,2,1,1,1,255,2,0,2,255,0,0,254,2,0,1,1,0,0,1,255,255,255,0,0,254,1,0,0,0,1,1,255,1,255,2,255,255,0,255,0,255,1,0,0,255,255,0,0,255,0,1,1,0,0,255,0,255,255,255,1,0,255,255,2,0,254,1,0,0,0,0,0,0,0,1,0,0,0,0,0,255,255,255,2,255,2,255,255,0,0,2,0,2,0,255,1,254,255,255,0,255,0,0,255,0,255,1,255,0,1,0,0,0,0,255,0,0,1,0,0,255,1,255,1,254,255,1,2,0,254,2,255,255,1,0,2,1,1,1,2,1,255,1,255,0,0,0,2,0,0,0,0,0,0,254,1,0,255,2,255,0,1,0,255,2,255,0,0,255,0,1,2,254,0,1,255,254,0,0,1,255,255,0,255,0,255,254,0,0,255,254,1,255,2,255,0,2,255,254,254,1,1,0,0,254,255,255,0,1,254,0,1,255,255,1,0,254,0,0,1,0,2,254,0,1,255,0,255,2,0,254,255,255,1,1,1,255,0,1,255,255,0,0,255,1,255,254,0,1,1,255,255,255,0,0,254,1,1,0,255,1,1,1,1,255,1,255,1,255,0,1,1,2,0,255,0,2,0,1,255,1,1,0,0,255,254,255,0,254,255,1,1,1,0,255,255,1,0,255,255,0,0,255,1,255,255,1,255,1,0,255,1,1,1,1,255,0,0,2,0,1,255,0,255,254,0,0,0,255,0,0,2,2,1,1,0,255,0,255,255,255,255,0,0,1,255,0,255,255,0,255,0,0,254,0,255,255,1,255,0,1,0,254,1,255,255,0,0,0,1,1,255,1,255,0,1,255,255,0,0,0,255,0,1,1,0,0,1,1,1,0,255,0,1,1,2,0,0,1,0,254,0,0,0,0,2,2,1,2,0,0,0,0,255,254,0,0,0,254,254,0,1,0,254,1,255,2,255,1,0,1,254,0,2,1,0,1,1,1,0,255,0,1,2,1,255,0,0,255,1,1,0,2,255,1,0,0,0,0,0,2,255,1,255,255,255,2,1,255,255,255,255,0,255,2,1,0,255,254,254,0,255,0,0,254,255,1,255,0,254,2,255,0,255,255}, } ; static const int16_t precomputed_encode_1013xfreeze3_x[precomputed_encode_1013xfreeze3_NUM][crypto_encode_ITEMS] = { {5846,15476,-4986,-13461,21989,24036,-13862,4984,-21405,21212,19405,-15651,-3491,-21164,9132,-1873,-32233,25686,-14975,2952,21285,10309,6568,1969,31450,-9531,-8354,14166,-10307,-27211,28347,-22381,-18485,14514,4718,-14958,-2729,16472,-9911,-20575,31199,3711,15994,25507,-28784,-30224,-25567,-31546,-28172,18299,10604,10741,23957,17609,15583,-21818,-3061,21012,24228,28005,29668,-19807,-31327,-12638,-22835,10712,27714,15201,-7530,-16773,-31961,-14570,-20801,12949,-24855,27131,13310,-15214,-18752,14381,-9560,-27537,32032,-19357,29189,32037,15630,1699,29633,-10815,22741,-32289,-26234,-11349,-21610,16950,14903,12919,-9155,5398,27982,-17934,19984,55,14130,28096,5909,6343,-11206,-17169,32181,-13810,-21059,11470,-22142,32752,-18991,-12263,-11248,-29324,4331,-7662,7937,12806,-11761,-5784,-31822,27933,30243,19570,-5262,-7300,-30564,-28414,24192,3688,6927,29347,30857,12936,3296,2571,-10278,-23273,28418,-23752,16868,-1586,13178,-30988,22883,27961,-19155,-29854,12107,18698,-9049,-14930,-12767,-3810,25337,31461,29259,18765,-3440,-4087,4606,6480,-24477,-4050,-712,-23177,30893,30379,-11444,16657,-4148,6791,-5948,6416,-2615,7104,-31596,28096,-5918,3465,21737,-17246,28754,-31519,14967,-18769,-11547,12528,13880,30113,-18892,-6211,29042,-17807,-1898,10785,-11639,25631,26664,-14328,30144,13672,-23936,25908,-17233,-25096,-24059,7613,23966,11272,12054,24506,212,28057,-13957,-26812,22210,-22844,-18738,28394,16710,-31892,19420,-29163,25191,-10933,-6782,12033,-11672,19042,17816,1041,2377,27430,-27113,20721,26569,18110,-2324,-24848,-14685,-11788,-8902,5171,32121,-32491,13433,9120,-9307,32571,-7409,-14715,-32304,17520,20953,-29574,-20823,-26335,-6576,1938,-16802,-31632,-18370,-31006,16587,-29796,-12028,6925,473,-11007,27664,29033,-27712,11205,26009,-24303,24842,-12296,-6645,-27441,26927,5722,24021,7248,29257,-31852,-16907,30730,-27002,27847,8513,-30452,-19114,-30962,-3022,-18567,22952,-4681,-7006,30741,-14942,25306,-5645,28415,27085,1936,-2325,16622,758,-32405,9071,30225,1146,-11439,-28055,32316,-21319,13601,5088,31207,30230,13090,32311,22891,-24637,15262,-27892,-20981,-4606,339,-25596,27016,12575,-6303,15908,8151,-1122,-3822,-11261,7306,4759,-5277,-10379,15772,3197,26382,20843,-16983,8064,-1353,15670,-12629,-16547,-17914,2939,22238,-22177,24083,5120,-16508,29989,16515,-2208,19304,8407,28257,14021,23889,24773,-11042,14457,-6090,-328,-4253,-22387,11704,8878,-14508,-4185,-17965,-3187,15576,24599,1408,-12128,-15620,29026,11669,-21369,7007,673,-13573,-6307,-7856,21106,29412,16045,10229,3198,-6631,-8690,-23611,6835,19007,-21242,-22669,-7996,16998,-27725,-55,-2225,1016,26628,18418,19060,-18915,-15518,-23860,2091,9923,15863,-17931,23937,32451,10564,-31301,-16363,-3094,-12124,-15663,25533,20528,22779,-21274,-32642,-476,-29476,20671,-31113,-14409,14196,-20937,16625,-27985,25959,-11523,-1716,30375,3502,-30596,-14807,28017,-22519,-14153,30938,-27028,-793,-32490,20165,-17420,-28142,8827,6958,-20551,115,-25418,12103,12632,8227,21656,-17063,-15829,-2523,30561,2620,11280,25908,13272,3808,14930,-4140,27122,-9776,-4270,-24070,-18824,-16308,19557,15070,21533,-5946,2226,-24371,8016,-29765,14068,21627,-15232,17989,9504,15726,7938,-6228,23764,8364,-24931,5596,15925,26078,-29500,1175,20871,-2605,12954,-1971,13586,-30728,-3410,-6922,-31729,-13119,-3107,27418,18893,17165,-19830,-16578,28705,-27281,-16636,-30394,10758,10188,12562,-30413,21580,-11541,30111,29827,27013,-10900,-6186,-28286,-2388,798,-8038,29081,-3767,4302,-12805,28901,21155,-23712,31112,-4834,25110,5324,-2802,10687,9253,8093,8269,12205,16514,-22630,22386,30075,-11188,29436,-2666,-22032,-1201,-18222,27896,-14506,-15378,26921,28866,-30691,23819,10090,-7073,12286,-29020,8296,31568,26316,-15099,-2325,-29185,18835,-13855,3226,-11918,20910,-7466,-8650,-16286,-22091,-32001,22522,17259,31603,-29842,-1745,1347,2033,-26713,5847,-19933,-109,2180,10107,-6693,15375,-13190,-7431,-7177,27661,-30560,4056,-27811,28606,-12670,24737,5080,8619,-2469,20892,-27649,-32408,17342,11991,14061,-2823,-22606,30068,9824,22630,-22382,3422,-27086,-13621,2531,-26000,-27711,-1806,-4625,-32474,-21942,11828,4129,3388,-6283,87,-5763,-14374,-26727,-8229,-26585,2068,9328,4860,-8301,7145,-24422,1487,-24461,-19844,-6329,11010,-18755,-20891,-16494,-12342,-30226,-10268,30787,-5474,-4636,-6647,2228,-29650,-3328,20327,-29944,-25250,17500,23123,15955,29692,5602,-7502,-15334,32128,-11984,25868,12027,18135,5334,25032,-14935,16794,31184,-24690,30277,21551,22439,13064,-16279,21945,9140,-2040,-1640,29615,19403,4339,-15423,-29507,-32194,-27320,-15469,5430,8839,17944,-1464,-17880,-23061,-959,-562,-32245,-2689,32570,9631,-839,21168,-6687,-2330,213,-24164,-25496,14642,18337,11352,24265,-290,-27605,1611,24584,19629,-23660,-4956,22857,-27943,-27261,-10335,-31978,317,-16970,17801,-32588,17946,-21675,21865,-23241,21351,-472,17469,16357,-4687,3459,-10161,2788,-1085,-17270,-20860,21047,-17828,-6164,3073,5138,-3614,-23670,12670,-29094,20100,1165,-17479,-15651,11029,3330,-4860,-9405,2888,-14481,13555,-28818,-15421,-4115,-5158,30396,-23203,-19867,-15903,13553,10967,-5801,-26514,-3099,1840,-19566,22945,-27313,-13330,-1822,-16554,-6813,7070,-21120,-15933,-31859,-27047,-10323,5949,24158,10307,-3694,-32535,16592,22359,-13552,-11619,-2894,12059,-13993,-20142,-23850,-32571,-21182,-26452,-22158,-15589,32217,-23301,-26442,30020,-29626,-5438,24353,3152,7848,-20295,-29120,12301,-21438,-14761,16744,-24961,-31195,-18486,2124,-7471,17577,-11508,-22225,22989,9273,-15915,-21421,-14445,-1116,-31039,-5786,-16591,-15682,27881,-14615,2160,-23304,3424,-24302,-15699,5390,-19969,-18671,21848,-29731,-68,-4413,-16712,7815,-4858,-11627,4725,1347,31566,-1640,18802,1582,28018,-19350,-7316,-29908,816,28672,-6020,31915,-15426,-10052,-32288,-2840,-16658,-14390,-6310,-28283,21588,18849,12670,-31982,-18728,-19572,22181,4047,-21857,-5894,28272,20771,16900,20412,-6566,19771,16095,-6880,5061,-9452,6448,-1760,-19415,30289,-22233,-8989,-6674,7296,-26189,22388,25900,10326,-29201,26970,-30102,32692,23473,-15151,-3200,28897,-23902,12779,-16734,28539,-21387,-14907,-9848,22771,-18269,-9173,20179,8895,-4786,31395,410,4905,10869,21996,-24767,-23629,-19299,-21871,-19391,14039,-4357,-15629,-30958,6185,-849,3531,29385,4103,27349,-7805,22623,-2013,3391,-11451,8529,14856,23038,-2737,-25449,-14392,-12351,-17420,-28937,29770,-26666,-18076,23948,-31049}, {3055,19608,-8627,-23373,10603,-19897,30299,15477,17588,-26116,-16104,-23916,26399,-15785,-11715,23024,3149,5098,-30075,-22904,22310,-18837,-24440,-28233,19902,-28734,-32749,5953,3395,11944,-22275,3771,-14618,-13522,25042,2788,8156,-29028,25977,23450,-9920,27981,-17435,18018,-6470,30906,3558,-19871,9890,-1407,11230,-11572,8346,-23431,14816,-6908,12675,14123,4702,-19265,21894,4133,-10659,-27930,16196,-28472,29637,20541,12880,-5321,2780,-10369,22880,-3234,24576,21787,15208,-10457,-11727,-17489,-19236,6730,-12523,-28504,-31481,11104,-9473,17952,17370,-3672,31231,9575,13626,11732,20302,-28872,7084,-20465,-19612,-6740,-11717,-21774,-22873,-9627,-15166,17748,-7019,-17100,-25794,-15152,-5518,31581,31910,-6185,-26596,-32644,28646,24378,-26319,2410,-2736,28165,-8443,-25616,1075,3729,5714,-5122,5654,-18692,30140,-6231,21940,-25750,31682,-27576,-31945,-25426,-28403,-21820,-14925,-28599,-12258,12156,-9166,-30066,30713,20091,-9959,-1887,23587,-5445,-17847,-26722,-19765,25071,-2825,-23917,24897,-26909,-32476,23061,11166,-13118,27413,-25409,-31242,14804,-22731,-31994,-10798,-30380,-3775,25199,-26738,762,-18663,9058,9429,-7048,-20819,-22526,-3405,-3340,-32470,-15850,7668,11079,32234,28702,895,-9621,19904,-16326,12010,-20408,-9880,-19519,-3529,18896,-28871,-6679,32660,30999,-11381,-29463,726,-25546,-18350,-845,21319,6266,5194,20890,-22775,4504,26167,9903,14381,25473,22513,26828,11083,-28153,21392,-32255,-14792,-3670,-1389,-14666,-18194,19596,-15282,30916,19514,-14545,17485,28146,-4756,-1188,-827,326,-8288,-22552,2941,21585,11640,-3125,20575,-14664,-7194,-10692,-30832,22589,10822,-7490,28634,-11120,-24928,-3076,31546,10951,30463,-22766,-30606,-18010,5886,4756,4184,-8039,7710,1081,-32727,-11094,-14486,-3754,-17450,28820,31259,21052,16631,16724,-2995,15191,-4548,-21486,10696,18630,29521,-30046,-410,-25195,32004,24706,-2589,8186,22564,-19862,25840,-24495,-14598,32761,-5440,27890,11262,-11551,5538,-4855,-17726,7189,-22055,13507,30651,-21361,-19856,-19119,2860,-27935,-14973,-2032,-8884,-20058,3647,-32567,-27549,4845,-29543,-9955,-25203,-25845,21300,3758,-7138,22579,-32394,22215,2716,-10335,-14881,-2535,16454,24243,-5456,-5603,10354,-22921,27923,29302,-28753,15504,-26814,12637,-5824,-11958,23211,30823,20876,-12377,4300,23307,16902,-24963,-10109,11621,1527,17504,18770,4579,-24076,-11779,24065,-31741,-7928,-7656,-26394,-7665,2591,32669,22906,-22862,-32340,27305,31385,14228,-24711,-6179,14564,-9522,-5867,15411,371,-18850,-17844,31285,23997,30421,-1744,22017,-1709,-10527,-9896,10415,13048,-21452,22807,-22192,-17289,-9112,-15953,31907,-22741,-22402,28118,25454,-24712,-31765,-12891,12005,11346,-30770,10734,14254,21320,21457,-18196,16871,19857,-29306,-12173,8130,-13258,-28646,-8079,-673,-3293,-26122,-4855,-6945,-14764,20779,-4013,11800,-23511,-9205,-13163,-30357,-13490,-8934,18031,-4753,-9864,-16738,-24062,31530,-31331,-17757,-18239,-8365,23910,-1435,-23275,-23067,-25080,26202,28830,15771,6203,23998,24078,24847,-31077,23439,-22504,20382,12889,58,-3133,22665,1819,31840,-10396,21922,29932,-21073,4835,7795,25996,24029,-10929,29663,-19059,31088,-15945,-4400,-20403,-1959,-32476,-13238,6615,24811,-18206,-22846,-30721,-30952,20579,-31228,29738,12898,5747,-10512,-26502,8864,23591,19405,-9441,-22906,-26269,14055,-27588,3253,-16728,-6619,-20875,16090,-30175,7356,-16494,10312,-27314,-2500,-17765,2219,11281,23375,-17995,-29391,19548,21367,8955,14631,-2242,-30216,-10713,1202,-7935,-22470,18405,-3072,-28167,32421,20953,24251,-7981,-25715,-20746,15915,-12905,-13799,13461,-32481,14590,-32322,15296,-1158,-18476,-4605,28704,13466,21341,-11084,-5208,32625,12847,1306,-32729,-1363,957,72,-21346,12685,-10198,29319,28746,-19258,-15403,19088,-14099,3174,-556,12766,4831,-8182,32514,-19673,28418,31394,24825,-3972,12985,14522,-4601,29733,17668,-5899,17302,-12809,-13734,-20295,-18897,-22460,4739,-28664,-31805,15530,28031,8069,-7772,7907,8588,4231,-5317,17470,24768,-9600,-21126,-5286,-25760,6730,-16675,-8287,-18946,-15319,26521,30622,-25998,4321,8152,1256,-30140,-24492,3893,26492,-24138,-1073,-8680,25087,-5739,19648,-4645,31135,-16390,15212,-8162,-1493,-26668,-18970,32342,-28423,-18908,-26530,-18061,-24492,1118,13360,23218,20256,-20296,-8446,-3422,-863,-15434,14486,32438,-9836,-28711,6314,11701,25694,9063,-17875,-20764,32311,32234,5357,17410,16548,5824,26392,-21531,27138,5530,-2291,13471,-16572,-28641,14801,-26291,10165,-20463,-13463,25617,-17233,-15485,-23830,26473,-21446,24896,-24068,10912,31194,-19672,-14055,18388,12656,-11504,14710,-26965,11185,-28498,6248,-15156,-2778,1676,30209,9652,22105,20937,-8036,-21628,3135,-1755,-32338,-3371,18414,-18026,4638,21188,-32723,-13845,30282,-5617,-28792,-18022,-13679,-13664,4656,-21893,21463,31698,-4558,-27692,-19381,30798,24576,18203,3742,-6566,-2882,7093,-29184,-25753,29289,-29274,4765,21639,1142,1105,-13624,-18053,-4785,-3705,19195,-28717,-27236,17127,-602,-25412,16133,-13943,19756,-29485,2582,-14004,-30385,-3345,-11975,-21144,-25958,-26153,-9632,-2602,31671,-6289,-3949,24062,-22905,-22186,-22957,25421,15048,-14973,-32720,24373,28305,-26181,-3264,24071,29992,8239,-24601,-17263,-23507,-28701,15639,-7555,6836,24406,31673,4583,20490,29219,-28450,25951,-12557,-23915,5531,-893,-23744,8279,29359,-10003,-23058,-8489,10688,-6132,23124,-24820,-30927,15113,29642,13991,-15236,-22835,32026,12237,27944,15430,-5238,14022,18568,-20650,-8307,14139,18940,8823,-31510,-4295,10752,-19570,-22328,32536,-15114,-23324,10103,-11313,4053,-28371,-14320,-29016,27552,-24854,12518,-8750,25278,20804,21364,2284,-65,-11952,-21215,6089,-9785,3515,-16031,-12841,31631,11957,25761,868,-25711,1831,5933,10639,6271,16165,8889,-105,-11200,-1106,972,-26922,5923,4630,-24698,16709,4404,-20999,-4138,-6218,-16852,9206,10417,2273,-9047,-23089,24836,22380,16446,-7645,10591,-10446,12846,-12398,-17054,5883,3088,-12580,-1059,21170,-369,-22864,8061,27146,23770,12018,3729,-14756,-20508,-6549,24628,-13745,-8731,27871,-18432,-737,589,8208,11639,-17627,243,19235,22093,-5249,29130,18177,-22053,8871,3473,-8440,-8443,-11110,9990,-11737,25127,18575,-22862,-21123,26488,-32087,28417,-5917,29362,-32277,-30923,15366,14595,-26448,-31772,768,-5903,19576,17614,10449,6776,-28908,8527,-5362,2248,1973,26958,-8984,2187,-27211,-20538,29577,29310,-391,25972,28463,-6653,7959,-7723,-26135,-4985,27377,4148,-6300,-15052,-5966,32294,-14603,-25778,5064}, {25873,-3593,22747,6055,-29779,-29248,24765,1213,20479,-327,-22830,8314,-13834,7759,16205,-20136,-24279,-12141,12872,-18832,9125,7005,-6133,30113,-12824,31543,5369,8229,-4785,-8227,-7616,-13525,17471,-8766,24228,-17679,-21752,-4047,-30061,18150,-28047,-28220,3492,18723,-20597,-32258,23309,30865,-15627,-19117,-13633,-12265,-6786,-15921,6098,-12506,-31142,-5321,-19391,-20466,32697,-14959,19226,-32452,-16753,-19659,-2191,31752,8165,-24690,754,27340,31840,1740,2358,23216,28561,10299,-23526,31145,26959,25318,1634,-12767,28316,21326,19371,-19289,-10678,-23219,11003,3184,21487,12312,19893,-10687,30738,30757,-26830,-28300,4274,6240,-32444,24056,-11836,21126,-29409,29926,-17387,19368,1027,-27421,-32104,14204,28135,-4545,30057,21260,29958,3065,11552,9411,18830,-19690,-7365,26282,-5601,-19985,-8515,-16410,-609,7877,17403,-8810,12301,-27251,18019,16777,23705,-8605,7744,8991,26807,16815,-14854,-114,14142,-5049,2404,-32124,-4073,21761,24116,9608,-20476,24996,-7669,5265,5072,-28412,-5709,-3235,-20903,28318,1164,26845,-20726,16437,4443,23864,17638,20985,-11113,-10400,-4139,10057,13317,17858,-28386,-18387,-19983,-7094,-2571,-15989,-4303,8363,-28704,-12268,7475,-25391,6698,-13852,32729,22338,-27055,-18498,5653,-18505,25365,-13883,11632,20734,-31583,11511,-3583,4313,12369,-29640,-14230,-3787,57,-21935,31422,4943,-4347,24682,-32279,23228,7298,24435,27960,-28198,-29896,-24775,-16999,32238,4989,25278,-26646,28885,22197,-20537,-19998,-3194,-2073,3796,23375,25098,-8381,-15725,-14519,9160,10937,8886,-12253,-23550,8755,-30567,28806,18726,-29822,12310,29825,-29357,30046,-30983,-26966,-8298,28819,-29729,-11287,26380,3715,-16987,11261,254,-18445,-31297,-25183,29272,-1219,-16434,-5242,-4265,-9471,18407,-25399,6973,8627,25739,-16326,-8770,-24037,16964,-11292,9304,-20129,-19684,28277,-4703,964,-8984,13621,-23009,26368,20752,-16952,-27322,-10223,-7681,-17780,23333,17118,-22645,16360,23202,-25740,6452,11235,-31576,-23754,-10876,-13138,25378,10548,-5107,-18407,383,-15943,-22238,-11365,-2923,-30706,-4063,29500,-30787,8166,-17588,-8293,19942,18016,2143,6847,7556,16349,-26886,29091,-998,15431,-15766,-11130,22080,-19613,-11840,4711,-30443,-9970,-10612,-13438,32339,-23329,-16775,-8789,-22501,-3620,21488,11385,-24533,28766,-22132,23486,-9036,-18067,1214,1583,-25645,-32436,-21764,31617,-5075,-32477,-13145,-30854,6435,-7096,32320,-1860,-20226,8864,-12461,-9486,-11018,-4189,1815,-1872,21603,-18447,7320,-1718,23314,-597,21479,15917,-24859,7411,31100,7059,-18580,-20392,-2742,-25467,-23880,1182,-18621,3877,-16054,-3809,-26410,14153,6853,-25509,6173,-25132,-32240,2960,-3709,480,-14746,-4075,4624,28755,21989,24261,-2030,-22393,25301,18090,7092,29429,13951,-13849,17134,-5772,-13053,-24935,-7121,-658,14901,9548,19554,-4394,26339,5983,-12416,-6853,-13277,11934,7350,-3177,-30726,21202,-6726,16308,21230,-19585,-7026,-11827,24366,31213,-22509,7345,5313,-11701,-24831,6039,-13965,7670,-2043,-3071,21251,4800,14948,-6715,-6383,14768,-1748,-14839,-3992,3555,20977,-12532,15531,-28358,20105,-11947,-5307,30508,-19417,24785,-2010,21451,3547,-12037,-31618,-30592,1660,-16206,-14074,15295,2850,17614,20107,-49,6943,28678,-15634,-16143,-24645,32444,26338,8406,7114,-17256,-6680,-28598,-8327,2164,29566,-31069,20126,-7625,-16763,22484,-12468,-18986,-8461,-24003,-11044,16378,32042,30129,-15596,21512,5711,-3956,-5755,-6477,8521,28064,9373,-21135,-32275,-8583,-22876,7050,20990,26615,-860,14264,-10507,-16499,14948,-26566,4856,21622,28017,25106,12021,-15504,30327,-14593,28968,-9662,16947,28698,-28267,-31050,-29351,23562,-24772,31817,-13347,19071,-16486,-7429,-20076,32326,-24883,28851,-14306,11934,26293,8865,18078,19971,6717,-5264,-20518,-29568,-10127,-1565,6410,30950,24669,22350,20318,-17833,-8037,10922,12055,31973,30819,18369,5012,-25360,-8694,-28899,16705,-29790,5688,-22736,-10533,-8873,2708,-32320,-23066,-14811,7846,-3158,-9729,-4893,23470,-22629,12512,-16706,27717,5333,-15520,-384,-3240,-8615,-20698,-13860,23946,-32137,-28578,-3184,-26247,3058,10728,11044,-20228,-14254,32719,-19155,-5264,28966,-11892,-14956,31954,8917,11554,-1332,18166,3129,-9728,14250,-24279,31096,11392,-29051,-6602,3569,16688,-32121,18680,23828,-31269,-24043,18728,7546,9225,-3062,-31763,-19272,2654,-25232,-10685,-10887,13330,-25924,27668,-13304,9385,-8651,21940,13685,12938,-25040,-31960,-14264,5885,15256,-11191,-28784,-2540,25810,-22275,-4283,28669,-7234,-12484,3948,8527,7143,-20392,-5755,-7083,-32369,-31705,-30344,-1726,5800,-13006,-21215,-3963,-23689,-31438,-4960,29534,-3330,30897,-28335,22508,28910,-9820,8399,27291,15862,32,-5881,-8905,-9952,-18998,-21980,14265,31372,-7223,-19330,-9494,-16028,-29182,18525,-9007,10563,12364,6998,-2314,29413,10208,20114,-32210,-23140,21041,18785,31000,16153,17507,-28260,8106,-30904,4213,-31466,11719,1197,24384,15248,1470,-25141,25364,-10023,-8746,18980,-230,-31323,-10582,-13542,12253,10136,-30628,3476,-18442,19154,5884,-13459,-9521,5166,13381,-9930,22866,24555,-29308,-32269,22772,-32082,-5230,-32190,-6756,-1351,-24740,28786,-27139,28567,-25170,29642,10692,-24222,23877,-10290,12483,12042,9140,-23559,-14957,-818,19961,25780,-16916,-25455,-20885,-22671,-18882,26527,19171,-30202,9762,-11910,20962,-27431,-14085,15151,-29721,1637,15786,-357,-3946,6607,27712,-19596,3822,2197,19074,8250,14887,23420,-19544,27425,-10683,-14799,-11449,-23598,-5499,29498,31007,-5869,10276,-6071,-22796,10250,-8919,9238,16999,8687,-27117,30692,-7520,9556,-26027,2999,11722,4097,-15485,-16657,19060,18814,-5682,8056,29820,20593,-31251,26972,27653,2516,-27852,19968,-18493,-9171,-17347,-6268,20037,1665,4405,1056,21220,-1905,-19763,28350,-1776,31367,-25696,-23930,1433,15457,-29013,32086,10549,10622,-2663,-11491,-10953,-16536,25934,32194,-14468,-13779,-9112,-15886,-28850,-21870,-1695,-26131,-1976,4624,17132,-25611,-2882,30158,-8727,-17402,-5614,27243,-136,1664,31917,-14699,-21990,-13874,19652,1562,7040,29701,6181,27828,17986,-7566,-13160,-19133,-25196,25883,-31084,4138,13158,26182,11786,9423,19791,4465,9806,-13717,-24408,-16135,-2449,9003,18729,-786,-11062,2696,-28977,-1824,23964,21015,101,-26135,-26176,6952,1267,-18663,1221,10722,23169,3758,-31444,1235,21874,21214,27989,-12003,-17414,16778,-29195,1067,12626,-23944,2310,20526,-21272,28003,19223,-23503,-1383,-29944,-8021,30817,-14499,-31096,-28260,14175,-13097,7238,-1482,27977,-30759,20206}, {-11207,2042,6942,-22365,8752,-15169,18950,-31501,-9901,-30234,-9676,19672,20460,32155,31061,-3110,31289,30822,-15183,-4254,-28106,14747,6724,-11420,-26268,-5420,-5402,21503,-7285,-29901,-4107,-1207,19642,-19885,18808,-8022,8288,14816,12881,22119,-10568,-30901,29369,-5358,-19665,9169,-24450,-14792,-15541,-5195,26726,17322,8408,-8197,-25874,-16812,-32212,23469,-14281,-16669,1024,12949,9637,25219,-20943,-2943,4367,-1227,-25022,-18610,-24583,2034,-10117,-21183,15184,-29102,-25712,-4222,-16316,-11539,-24174,26118,8471,11412,12252,29489,28416,-1052,-2718,-1678,27987,-9920,-733,-9094,-29332,-28117,3504,12546,-8284,2968,29131,-29363,5402,-26433,16904,-3333,8722,-11299,32482,27652,24508,5123,-6905,18183,10031,-3694,-5760,8262,-31501,-13191,-6062,636,-12221,-7745,-24967,19380,6744,32315,9793,7362,-6502,8144,-17646,-6936,-20108,32353,-21463,4424,-3158,17507,20464,12237,32647,5273,30022,3586,-9074,-26806,9487,30128,-11343,7621,-4270,-1049,22826,28307,-19274,15248,22011,-3308,21201,-28911,-1308,-25305,-15262,7353,20130,19584,5166,-5531,13947,2198,-27311,-26183,748,-15979,23089,-9694,-23833,14566,20212,1517,-13843,-16990,827,15961,24142,-19848,-5612,-16821,32018,9344,10053,-15208,16725,1898,198,-6908,-28989,-7568,-13483,10645,-8128,29752,6350,25994,31767,660,4025,28427,-7178,-1729,-17040,-4386,18238,-7403,-20134,32586,-3251,31149,26673,-30996,12970,17226,-29077,-15687,2274,-24892,-18984,-27479,26284,24233,30762,-14910,3056,-22496,-23867,845,-22974,15305,-21489,-28357,3874,571,-1909,4548,27529,-5222,4651,-20884,-10230,8334,-7747,6695,11766,-13419,-18349,-1061,22504,-9025,-17720,-11759,29875,16425,-20487,18048,-31649,10045,-13039,-25005,21350,-31322,-3356,-32126,-22241,22471,29890,-2903,-24250,-17630,-31718,3584,9386,6860,21045,26343,19965,15328,-15136,-5551,-31747,-31444,-31040,2770,-9637,-5604,10275,7469,-28017,30178,-26320,14607,24596,5747,21163,-24157,6614,17591,-25683,541,20590,-22555,-13896,13143,-28197,15070,-30707,19209,-18698,21034,-15331,-12906,21788,-13776,-31935,2272,12582,-28107,-374,-6244,10472,27615,-7451,16909,-24355,-19490,-21337,-7125,-15533,5467,-6635,20580,-15945,6718,5627,-15279,-4300,-24756,8333,7236,-1475,29787,-32524,7338,20295,22585,31501,-15925,26069,-17992,31791,18383,-20833,-5078,26497,13292,1148,-25210,16545,-24135,28391,-3368,-6022,-29868,14752,23570,-12502,22749,-27596,1654,21299,-5922,30565,-6588,25392,-6464,-3759,-24294,-32113,15226,-5028,-30406,-4170,-29449,20109,-20015,-3108,21943,-12962,-20736,-1627,-2525,-20504,23151,23499,-7598,10771,3583,-4418,-6071,10964,-840,-22452,23915,18150,-24854,14629,18833,12849,-8005,-1841,18068,19921,-7924,23915,9997,1198,5837,-25688,-3220,12621,3566,-21239,21865,-13715,-23674,-27506,15826,-1695,18147,-21013,11380,24443,19591,-10346,-50,-25064,31948,27524,-30836,4085,22576,-3926,13604,29625,-4507,14304,20574,-10239,-21737,-3044,-90,-4412,-27210,-8506,17605,-7240,32122,1694,-4297,18542,21641,-31306,-7428,-29989,-7457,-31123,26669,-17727,-29693,-1857,3527,20071,-27288,10265,-9705,21269,17819,-1314,19922,-7742,11804,-27901,25849,-29911,4597,8879,17834,-20952,12745,21132,-1598,-13641,-28987,14764,32280,13124,-10885,-19067,-2805,1102,25967,31447,-32483,27240,-21827,22169,15681,-25156,-1871,1204,-24356,20351,-27880,-25665,-31531,28040,6462,18249,19213,-16495,-19389,-31109,-17423,-3570,-31377,-32753,13004,-8293,-3790,-16443,-17790,19873,-12437,23352,15714,-9411,-9461,6709,3911,7906,-5353,-26017,22391,-12190,1752,16136,-13428,6620,-21179,29898,6006,-6109,10538,14154,-9714,-5776,-31827,12439,-3239,-1083,23211,28418,13245,5348,19886,-12163,9052,-31149,-1966,-232,-21199,-45,27460,14353,9306,15315,29109,12561,-32490,-22218,3795,-12866,-1734,-8607,19692,29097,23928,18425,12686,-11287,-32563,4805,-25600,-14164,-14356,15507,-28596,-24415,-7233,-28153,-23319,3824,-18254,28867,5129,18863,16026,22682,20553,16794,11168,-651,23414,-24950,28061,-7515,-16532,-25836,5163,7977,22305,1244,4809,28902,3367,-27837,23685,10100,4372,-12787,1900,17014,11753,6073,-22969,-18051,20050,-23149,19667,6068,6847,-15696,-29440,12976,12190,-23630,-18094,-15119,8309,-21704,-14086,1470,-22056,-20616,-21244,702,-16731,-5229,6573,5256,-16971,25783,12892,-31533,3287,-20443,15527,-4548,-13244,-5295,20435,-24481,28379,-30315,6972,-6439,-25647,-22292,-27214,28054,-5367,-27092,4745,27487,-13470,29241,14893,353,21305,5961,32429,-3885,21083,18631,9342,12063,-4768,29239,-14648,21887,-26830,10622,21849,-29791,10409,29677,19345,-25895,-10799,-9222,16947,27661,12107,-13420,1638,646,20425,-23151,6046,14939,2012,12661,-25218,19567,-16041,28089,-8276,606,-18943,24898,-30414,-17849,24494,-26409,12884,-30181,-22536,26158,18947,23087,12022,-16286,-16841,-12925,-6522,4831,28766,-16153,819,-10905,12797,-26714,31838,26821,-11049,8062,-30437,6554,17120,515,1899,20265,20086,-7868,-2780,26391,25619,7669,6136,-899,7699,8393,-2720,-7363,-8645,26450,15822,4402,166,-19162,-4986,18011,-26649,-20407,-2496,-29948,14168,-260,-20957,17808,-1980,-5869,32281,21410,27987,25060,4073,1069,-1556,12814,2475,10400,8855,-10922,-13104,21245,-3316,-30702,12069,18890,-25958,-13399,19343,2218,26261,5215,-5517,19379,-3836,-21668,15862,7330,-169,10569,-9468,-21595,6030,-27074,-7276,24552,13121,24421,-10131,7419,1500,32360,-31467,-15888,-24340,-27757,-24929,-29510,-7050,24305,-4449,8771,24122,-12526,-3079,-30114,8034,-23360,2516,-28983,2075,8300,963,20126,8559,23259,23929,14553,16826,5033,-12632,27581,7524,-26864,28842,29830,-22304,5336,-2749,23652,-7044,27261,15046,-3920,4931,13339,30278,12189,5956,25922,15962,-21597,-28317,27048,6380,-4497,12616,13642,19185,21282,4741,-9908,-16787,-28860,734,13098,-20045,-30818,-19960,19152,-30678,-10442,-17064,21760,-7947,20427,-14925,26013,-30871,-25999,-12635,-18883,14934,21726,-23829,-25806,-9553,32404,-24558,4323,-6870,27793,30901,-1917,466,-4008,18562,-6344,20747,-20983,-346,-21476,14097,-24596,21064,-2418,-28717,1594,-19440,-16976,-15836,-6959,-18888,12005,25281,-4682,-17839,-2531,32693,23871,-14121,31487,-30893,-17603,12333,-27031,-37,-476,-1503,20016,-22170,-24930,31722,-26971,-5656,6718,13334,-7666,-8170,-29215,-24668,-778,-11836,32147,31943,1938,31115,-20749,-3578,-5133,3713,26926,28750,20817,31067,29319,2493,20986,21800,-22271,27887,-7281,27433,-23185,8369,-12012,-8254,31565}, } ; static void test_encode_1013xfreeze3_impl(long long impl) { unsigned char *s = test_encode_1013xfreeze3_s; unsigned char *x = test_encode_1013xfreeze3_x; unsigned char *s2 = test_encode_1013xfreeze3_s2; unsigned char *x2 = test_encode_1013xfreeze3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1013xfreeze3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013xfreeze3(impl); printf("encode_1013xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013xfreeze3_implementation(impl),ntruprime_dispatch_encode_1013xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013xfreeze3; printf("encode_1013xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_1013xfreeze3_implementation(),ntruprime_encode_1013xfreeze3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1013xfreeze3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1013xfreeze3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1013xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1013xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1013xfreeze3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1013xfreeze3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1013xfreeze3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013xfreeze3")) return; storage_encode_1013xfreeze3_s = callocplus(crypto_encode_STRBYTES); test_encode_1013xfreeze3_s = aligned(storage_encode_1013xfreeze3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1013xfreeze3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1013xfreeze3_x = aligned(storage_encode_1013xfreeze3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1013xfreeze3_s2 = callocplus(maxalloc); test_encode_1013xfreeze3_s2 = aligned(storage_encode_1013xfreeze3_s2,crypto_encode_STRBYTES); storage_encode_1013xfreeze3_x2 = callocplus(maxalloc); test_encode_1013xfreeze3_x2 = aligned(storage_encode_1013xfreeze3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1013xfreeze3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013xfreeze3();++impl) forked(test_encode_1013xfreeze3_impl,impl); ++test_encode_1013xfreeze3_s; ++test_encode_1013xfreeze3_x; ++test_encode_1013xfreeze3_s2; ++test_encode_1013xfreeze3_x2; } free(storage_encode_1013xfreeze3_x2); free(storage_encode_1013xfreeze3_s2); free(storage_encode_1013xfreeze3_x); free(storage_encode_1013xfreeze3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1013xint16.c0000644000000000000000000016304214705505543023016 0ustar rootroot/* ----- encode/1013xint16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1013xint16_checksums[] = { "5938f68c9c3c3631517ca16dcadd1e96b2553bd6b494161c901c1db455e21173", "fe23340654861a9e08289b59a9901d646fd8b2cd98b628e8f34889763b7c2a91", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1013xint16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1013xint16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1013xint16_ITEMBYTES static void *storage_encode_1013xint16_s; static unsigned char *test_encode_1013xint16_s; static void *storage_encode_1013xint16_x; static unsigned char *test_encode_1013xint16_x; static void *storage_encode_1013xint16_s2; static unsigned char *test_encode_1013xint16_s2; static void *storage_encode_1013xint16_x2; static unsigned char *test_encode_1013xint16_x2; #define precomputed_encode_1013xint16_NUM 4 static const unsigned char precomputed_encode_1013xint16_s[precomputed_encode_1013xint16_NUM][crypto_encode_STRBYTES] = { {245,70,36,53,7,223,0,37,148,115,89,215,253,96,202,246,30,77,118,29,141,194,234,228,30,206,163,195,176,9,229,55,34,194,143,142,12,172,108,223,58,91,75,151,208,72,223,200,26,175,110,173,190,163,186,220,249,5,161,142,174,67,234,40,93,140,105,205,45,126,26,208,5,31,132,93,11,104,96,163,138,158,9,101,188,116,218,197,160,155,74,110,98,167,143,39,231,21,253,241,109,118,22,207,49,157,128,38,71,7,101,92,137,169,105,15,13,148,248,246,118,140,237,110,244,66,231,231,214,122,158,164,190,5,227,162,106,218,21,245,198,183,248,12,255,212,94,59,70,234,124,115,182,10,200,1,67,67,206,223,205,89,11,150,110,92,179,189,195,201,199,0,82,98,172,104,194,13,182,155,211,206,243,71,106,163,237,227,117,254,114,157,202,104,31,233,126,31,191,180,254,73,225,208,14,44,24,252,38,69,68,1,75,139,80,142,121,188,59,113,166,140,76,181,175,15,219,180,82,75,53,165,224,58,59,110,170,195,16,173,97,84,93,39,250,239,236,102,146,224,210,126,98,64,134,245,111,46,100,82,218,242,11,173,12,167,207,244,185,163,104,160,56,139,3,0,149,234,68,4,156,198,52,54,138,124,71,147,230,73,80,252,244,33,223,70,183,221,254,182,195,123,45,149,155,254,119,53,3,154,10,201,46,236,148,142,129,173,15,70,162,132,138,230,10,110,46,186,79,96,222,127,181,42,247,62,218,35,234,156,51,130,212,255,127,4,20,104,210,158,185,147,17,240,240,53,52,222,106,94,251,178,102,218,58,53,29,228,118,50,151,253,228,45,158,121,206,80,185,215,19,255,226,109,165,164,51,221,46,163,97,10,6,62,148,241,69,98,31,172,232,128,38,144,249,91,81,18,55,79,60,40,30,105,16,209,159,193,44,193,151,147,118,129,17,145,238,240,196,175,59,176,235,154,230,252,161,126,249,149,165,171,248,14,35,6,179,110,251,16,208,25,243,192,243,19,16,68,205,64,179,72,160,63,124,67,141,135,127,53,129,228,110,232,93,34,43,206,6,5,236,186,19,47,47,56,234,149,12,106,209,197,193,25,56,139,91,197,69,47,19,5,182,20,129,174,110,20,53,153,60,96,155,36,221,1,23,33,42,130,147,150,54,94,152,244,68,215,252,50,88,13,192,69,12,249,222,138,161,240,185,4,6,10,85,176,182,180,236,75,222,217,26,100,76,247,80,37,161,141,138,4,52,168,112,1,66,60,114,53,69,28,110,18,27,60,204,132,136,22,5,93,66,250,211,173,147,58,69,13,40,227,56,94,233,45,143,203,104,89,85,181,36,253,17,170,11,132,125,109,32,91,186,226,226,63,244,102,96,94,115,150,51,194,78,17,194,19,89,69,99,202,244,28,147,111,126,236,73,213,8,227,51,81,100,112,183,190,32,152,211,39,13,85,130,197,141,188,17,114,213,147,75,114,8,202,58,102,157,187,219,14,128,204,220,188,14,137,136,225,37,77,71,181,230,179,175,70,22,213,72,34,175,64,167,192,111,29,119,83,179,180,238,41,164,63,157,90,77,198,116,21,78,126,230,251,60,11,55,214,235,144,56,188,245,249,201,18,26,194,51,15,92,225,41,203,238,52,241,128,239,208,120,76,125,168,136,116,13,250,2,226,153,135,170,246,124,72,228,82,210,33,145,190,235,129,138,105,51,225,69,104,54,236,42,241,43,151,2,103,172,234,81,213,242,68,50,95,239,199,28,146,160,218,101,232,105,226,226,55,57,230,224,108,103,149,26,90,7,30,180,61,204,210,152,149,196,174,226,128,77,35,251,47,185,97,149,24,92,17,64,142,93,32,45,60,131,18,56,219,82,66,73,193,67,232,211,78,156,79,41,199,136,60,14,177,14,95,153,174,215,188,150,221,102,148,3,112,223,207,145,106,242,223,146,108,217,119,32,71,253,233,253,169,163,185,96,41,0,159,254,241,48,133,40,229,206,123,164,174,29,13,110,106,5,17,0,98,3,127,128,126,167,136,10,104,20,244,33,22,46,96,95,80,93,184,75,0,37,251,219,230,255,81,37,33,73,157,136,94,149,36,72,204,145,60,226,183,172,58,113,2,189,47,102,144,77,102,105,50,240,189,145,88,139,60,183,41,15,110,38,49,134,167,230,233,128,130,3,64,248,92,191,217,191,14,44,174,128,67,63,12,114,158,32,38,252,90,190,18,202,17,18,218,50,223,11,185,232,249,100,232,81,198,58,11,214,184,155,168,102,162,162,49,109,196,126,203,133,174,226,126,187,10,0,19,121,209,225,81,124,157,251,138,81,252,119,87,20,231,206,18,163,165,17,142,201,106,95,164,51,126,244,53,13,151,64,2,171,253,79,220,220,225,7,15,245,228,52,249,167,242,245,116,50,126,142,46,174,127,112,70,215,207,8,229,205,31,2,50,245,108,152,77,174,214,38,211,7,209,103,209,68,222,94,207,172,45,122,63,157,29,160,38,191,184,188,237,122,238,97,43,144,137,214,110,55,116,250,184,13,8,217,81,249,138,229,21,244,222,199,14,163,227,123,117,118,237,74,210,229,0,221,133,84,195,222,113,227,78,3,27,253,65,72,15,160,104,208,13,119,154,174,89,103,80,132,28,134,75,139,22,64,251,16,5,134,205,117,190,77,199,77,241,102,160,61,135,166,56,232,19,46,182,21,26,163,72,119,10,251,156,98,131,161,246,40,41,152,95,52,255,161,145,175,61,152,96,246,206,99,210,214,238,122,158,70,147,141,80,120,107,246,208,96,184,150,161,122,111,61,68,126,107,121,140,69,47,153,125,16,162,193,209,170,204,215,71,23,185,199,226,180,225,3,247,61,207,235,74,232,213,73,184,165,226,11,54,103,104,21,252,118,98,148,41,5,106,123,116,141,161,123,95,4,181,134,243,75,134,223,161,177,244,212,106,155,2,216,125,66,65,52,104,67,57,230,179,177,42,97,244,19,69,129,162,157,21,233,192,93,79,188,251,157,180,177,83,135,43,72,40,182,128,206,152,228,38,184,34,9,183,228,182,151,233,195,76,197,2,52,225,179,224,170,104,211,234,37,100,66,63,252,103,145,9,249,228,231,88,194,88,213,108,125,39,250,117,27,171,219,71,95,115,83,153,232,238,159,72,10,57,5,190,63,102,237,46,186,36,231,176,86,118,241,60,100,93,193,91,12,8,151,89,102,89,185,89,151,222,99,40,6,173,10,246,184,200,29,41,136,179,223,54,114,113,167,254,46,87,13,139,195,39,119,213,195,141,185,107,143,191,138,142,42,67,175,14,228,0,242,183,253,169,64,12,187,192,98,162,221,68,130,47,128,60,95,107,232,180,57,5,170,230,163,143,218,223,189,150,136,86,138,243,241,121,13,7,179,40,222,239,139,181,176,174,106,92,11,224,145,196,57,251,202,137,84,212,179,165,231,15,106,159,220,171,56,248,153,34,88,212,166,90,201,4,200,255,50,142,250,233,135,184,161,122,6,120,10,129,54,214,21,160,1,67,225,187,177,83,179,3,182,141,118,223,175,68,14,138,73,87,14,150,246,240,54,58,137,241,9,153,66,8,241,131,167,182,246,174,237,31,82,103,214,41,28,32,59,118,175,64,14,95,138,151,133,254,15,252,48,36,167,223,140,87,22,231,174,96,171,206,134,158,232,208,73,26,177,206,77,116,36,131,224,221,202,130,98,4,242,73,234,208,255,105,113,200,231,250,166,170,158,94,45,71,167,74,97,142,213,248,251,187,94,130,127,106,196,106,86,124,21,224,41,99,84,153,26,18,213,52,95,205,4,186,241,112,160,50,189,209,172,122,198,252,80,71,64,125,47,75,45,46,20,74,3,188,2,145,46,241,236,130,15,94,13,139,185,59,32,241,72,87,249,128,23,57,203,168,126,166,45,146,217,230,227,225,22,221,127,197,110,14,55,38,215,146,253,186,124,64,24,73,184,108,126,206,181,48,104,219,159,50,107,122,110,37,154,63,78,147,211,99,41,16,10,77,45,110,182,100,9,229,197,153,20,86,179,143,246,255,23,152,63,26,167,153,9,193,157,8,166,151,63,214,118,255,21,74,158,228,38,92,188,151,240,151,12,235,185,107,244,222,74,16,59,136,9,146,233,161,155,245,27,113,47,164,104,142,172,217,152,240,57,126,7,179,96,236,72,150,91,88,245,134,195,120,13,250,210,141,128,7,215,150,234,231,247,181,49,93,60,172,243,29,24,86,97,17,75,47,1,111,142,146,34,68,62,135,191,165,193,9,118,6,52,54,162,137,104,210,113,170,209,17,222,21,222,168,23,223,173,98,150,248,94,52,43,10,225,203,214,38,171,158,38,173,213,107,230,195,206,78,73,123,43,109,35,183,154,179,247,82,203,152,139,174,119,205,195,93,138,233,52,167,185,204,207,249,255,151,81,91,150,250,200,112,127,189,2,60,80,50,59,114,79,89,215,114,199,197,90,208,75,55,17,169,244,50,140,220,70,53,127,144}, {1,131,52,252,35,252,41,208,80,210,15,52,78,191,106,235,91,105,247,208,150,130,33,241,140,219,103,47,201,160,16,201,151,200,221,228,227,31,242,100,8,148,59,20,92,212,41,184,230,176,137,128,230,17,204,255,67,147,255,78,197,55,114,2,96,117,29,145,101,193,19,176,149,59,145,39,203,47,155,142,43,191,71,34,133,70,103,11,81,170,239,227,238,44,58,42,119,140,135,88,134,201,228,116,95,230,13,213,112,136,23,170,208,120,125,141,151,214,197,228,50,10,105,166,105,42,250,89,103,140,25,143,198,199,108,127,152,91,32,131,58,128,228,219,181,102,6,29,127,244,100,75,140,86,182,235,90,243,185,156,122,199,137,75,213,178,120,180,205,214,148,181,70,198,196,147,208,170,142,91,38,40,91,244,105,84,160,80,19,130,194,9,145,39,138,88,183,188,49,184,17,172,47,248,216,245,236,156,172,28,125,64,192,244,170,132,47,239,168,203,180,119,67,173,218,38,155,161,205,124,88,32,2,251,68,107,6,48,35,8,89,171,145,8,151,62,127,217,64,110,111,242,225,152,71,100,199,22,88,125,112,183,59,198,252,95,165,169,229,40,191,12,55,22,176,129,102,175,75,161,76,85,195,228,140,61,13,232,90,204,47,117,40,82,228,48,78,103,28,90,242,30,231,92,38,75,79,116,74,234,2,67,150,235,42,197,88,218,25,64,106,168,34,127,36,84,232,129,7,32,106,178,107,72,52,232,188,16,136,69,229,90,187,41,80,180,31,108,3,252,179,140,18,192,254,27,193,61,96,236,175,66,245,32,243,21,247,64,226,119,177,106,247,82,122,20,173,218,11,212,110,124,3,83,176,73,111,244,44,127,64,74,216,7,103,51,247,55,203,215,16,252,73,80,239,247,114,44,37,191,90,184,88,99,82,156,160,140,7,224,206,247,180,245,90,209,234,253,214,250,9,27,32,145,199,79,178,216,146,28,173,171,5,216,137,105,177,66,63,145,136,20,80,125,194,61,49,226,140,38,68,34,224,109,34,43,126,75,198,206,81,224,226,14,90,114,15,104,196,91,201,164,223,88,39,246,1,38,113,31,38,7,158,76,41,51,175,178,177,29,87,214,76,52,201,120,57,142,86,31,29,183,58,86,41,43,192,71,225,31,185,121,17,35,124,232,243,58,101,18,186,64,102,255,162,209,0,230,43,225,75,201,189,178,55,115,238,124,171,141,182,162,38,56,154,34,24,87,155,255,66,255,84,139,246,210,150,187,54,138,45,202,90,77,8,15,251,106,2,220,209,99,83,237,117,3,89,1,15,80,25,132,169,9,131,56,113,44,125,239,119,109,103,135,118,31,66,209,196,98,85,246,193,187,9,195,120,33,79,120,211,204,13,227,90,126,214,190,186,8,142,169,97,30,190,117,26,150,172,245,252,91,35,50,83,144,145,3,125,104,5,50,192,83,41,252,176,44,151,111,233,173,108,72,133,147,114,63,90,91,121,222,173,108,12,231,76,52,105,1,194,136,30,209,30,39,153,69,0,22,148,103,31,201,144,236,174,138,89,118,149,211,101,184,35,79,240,17,62,238,63,218,142,99,36,25,123,229,147,217,197,199,209,150,136,23,169,30,134,252,227,146,102,228,226,42,212,3,90,113,165,51,209,154,188,189,56,154,12,225,239,225,235,245,188,33,9,92,108,72,24,187,240,183,169,105,170,122,168,40,182,222,0,96,216,23,108,240,88,97,61,38,235,164,38,235,255,221,130,181,129,165,138,64,122,115,122,254,241,211,114,226,124,1,112,182,71,237,34,241,174,103,87,233,93,31,33,107,18,241,46,153,35,126,132,143,196,9,136,197,110,32,159,163,77,86,163,153,207,171,138,196,114,64,191,130,108,64,205,253,144,97,122,249,105,58,155,69,216,197,224,247,38,156,14,219,149,34,31,149,233,190,232,32,65,131,69,100,233,171,184,4,88,15,27,238,170,51,51,201,94,21,247,153,225,86,235,15,233,234,151,68,196,96,252,91,75,29,212,35,15,78,23,137,3,74,142,139,230,8,138,218,115,166,213,118,72,214,219,192,236,4,73,220,238,97,17,122,86,45,152,169,115,116,71,34,7,149,56,0,161,206,100,162,19,157,129,202,138,180,117,62,247,24,48,197,192,63,101,109,76,8,127,162,47,142,235,111,66,255,164,195,113,129,242,224,189,38,82,64,124,34,212,199,237,21,160,231,68,244,251,24,192,244,170,165,254,35,244,141,228,172,68,86,183,48,2,182,211,154,43,26,121,105,178,67,164,114,219,179,235,131,218,116,34,125,248,46,167,158,113,238,34,99,116,97,107,184,220,248,112,108,213,223,96,216,1,176,229,52,57,208,57,203,47,139,131,176,23,155,250,102,145,129,242,178,38,155,126,105,248,105,94,212,139,111,180,238,31,241,142,143,69,19,17,232,113,2,204,44,85,124,248,12,108,10,226,74,231,75,14,207,127,170,49,54,16,191,187,214,139,164,102,229,91,29,174,28,243,245,96,198,51,117,190,80,64,229,96,111,244,121,214,26,209,143,39,65,232,0,54,207,89,34,14,250,73,23,61,236,36,60,33,114,183,134,91,68,143,85,134,227,93,57,172,10,216,168,139,60,119,172,109,231,26,240,7,36,1,169,29,115,187,206,72,74,36,112,119,101,82,225,131,54,29,35,116,51,119,69,108,129,113,30,56,39,65,9,167,55,62,203,168,224,14,51,203,178,76,92,70,10,223,57,192,83,130,116,191,62,27,1,60,194,95,46,114,190,94,165,140,130,39,162,169,56,88,47,239,139,169,238,213,165,100,21,73,244,138,50,93,60,208,197,92,161,238,191,110,142,97,5,232,253,124,133,17,75,230,233,6,228,34,195,242,140,95,133,132,70,16,237,145,19,188,180,121,73,186,58,23,22,237,203,224,183,13,34,35,111,186,199,218,175,71,248,95,242,55,187,221,255,226,222,145,108,124,200,90,101,33,143,218,230,10,108,67,142,84,52,213,160,186,213,32,93,85,202,242,85,82,73,26,129,18,57,19,122,233,106,94,156,255,91,41,216,145,82,246,133,102,70,163,168,45,221,165,17,173,126,172,242,65,95,92,224,164,95,57,13,143,241,196,168,207,68,212,215,206,147,246,247,243,48,240,111,244,57,247,134,95,51,77,239,77,112,154,167,19,239,130,34,16,122,234,194,67,45,104,85,250,182,159,159,253,34,229,188,204,120,119,227,246,98,107,109,44,58,35,170,68,228,135,127,175,170,105,75,212,9,235,48,45,7,61,211,113,112,107,49,192,177,187,0,198,140,172,90,23,34,91,3,118,68,185,149,152,139,185,58,122,119,55,10,188,38,112,0,188,66,87,146,237,172,91,34,155,204,14,26,93,79,168,10,54,185,192,215,73,65,150,253,209,47,4,27,125,45,202,123,119,72,137,11,140,130,210,144,0,6,228,49,67,120,24,74,255,163,108,250,131,243,150,63,68,113,141,150,77,216,247,203,29,24,169,148,212,66,232,153,206,23,37,12,211,107,191,43,182,90,241,42,83,175,233,3,204,196,105,162,194,215,159,206,100,227,31,200,230,85,180,108,135,223,96,217,250,235,78,215,67,243,201,28,152,117,243,144,53,74,7,122,182,150,253,19,5,218,85,254,33,196,42,145,148,50,102,45,110,211,8,163,224,201,219,15,233,62,196,183,237,222,249,20,11,170,242,212,196,204,74,166,110,102,86,75,115,82,15,45,103,42,210,157,198,26,243,164,167,217,64,216,52,214,108,130,157,220,176,91,73,129,119,90,75,42,33,145,153,119,74,45,212,232,180,65,12,31,43,203,0,170,30,211,124,92,210,136,18,191,126,152,238,6,53,152,109,36,11,135,129,219,60,117,180,236,181,168,216,30,251,51,225,251,125,97,187,239,0,2,243,253,78,28,62,191,80,107,115,21,144,186,130,179,111,165,65,168,100,129,62,178,121,105,131,176,223,136,95,63,118,107,122,52,252,164,248,177,231,160,60,237,68,65,9,72,133,50,60,61,252,218,129,164,35,141,32,33,135,127,139,44,165,86,6,123,158,249,196,235,55,183,96,20,26,53,223,97,65,247,111,110,182,152,225,159,72,7,112,185,88,175,79,115,66,5,221,23,190,180,27,24,245,97,131,202,81,200,37,102,117,192,120,101,226,179,112,180,107,44,105,23,1,153,117,121,87,246,52,64,253,203,58,255,127,78,183,170,116,225,67,81,79,154,206,220,242,238,151,164,25,14,114,15,79,88,24,216,238,160,152,132,99,169,66,80,145,121,62,255,149,102,152,213,84,150,53,205,179,215,83,133,36,242,12,115,244,164,153,210,57,25,157,91,140,51,63,184,124,139,28,234,238,66,181,61,192,97,146,153,90,53,100,233,94,239,174,91,168,198,103,38,74,41,9,153,103,218,242,77,34,254,202,107,4,248,51,105,65,178,146,63,127,204,180,156,102,20,232,127,246,89,86,255,211,33,158,155,240,204,56,57,233,101,222,10}, {80,151,32,37,178,194,160,77,85,168,121,5,127,16,85,56,72,167,42,195,193,109,178,98,144,251,224,109,127,52,127,66,175,153,210,41,66,113,24,149,96,50,137,121,197,140,193,150,76,187,54,164,207,70,17,64,53,112,232,193,153,177,101,27,81,73,151,16,150,76,66,240,98,59,130,119,250,89,203,139,144,23,162,203,137,26,181,119,77,13,210,65,45,41,213,9,73,217,224,212,30,124,157,120,111,244,116,175,94,241,27,103,196,10,178,92,179,126,252,227,87,194,196,112,251,13,121,225,135,47,104,115,18,192,11,22,10,255,167,93,44,225,131,179,65,124,231,132,220,26,91,144,66,243,233,78,196,0,196,40,118,198,227,201,204,148,55,72,71,245,182,5,204,16,41,114,79,1,2,179,92,235,168,84,222,196,16,250,217,184,23,119,91,225,102,238,243,100,243,88,120,232,36,137,87,90,173,94,193,3,138,46,16,50,97,152,217,242,107,126,164,69,153,83,0,30,177,207,88,167,141,61,154,243,7,238,226,165,45,45,62,163,239,255,35,216,28,14,44,1,165,121,92,34,196,75,201,199,114,70,71,170,194,156,77,247,19,247,152,87,16,143,29,156,28,1,159,234,217,224,97,30,97,205,149,19,144,85,146,100,152,182,111,71,126,253,235,212,185,19,155,67,104,252,117,232,247,120,10,118,241,83,62,98,203,35,38,245,168,20,0,75,42,19,247,163,9,72,159,156,202,240,174,65,33,105,49,81,218,115,115,122,42,37,220,252,98,46,125,83,231,144,13,25,134,170,62,109,186,128,160,132,50,174,1,109,104,220,27,74,162,217,67,98,184,145,246,185,84,165,6,254,186,134,183,145,147,87,53,88,225,232,10,47,19,126,62,202,235,137,80,88,167,5,215,41,186,47,23,248,244,58,188,55,181,95,22,51,105,152,219,41,69,50,253,253,225,69,127,204,181,114,105,15,98,33,149,155,39,25,64,153,0,171,75,148,208,148,181,218,170,233,232,115,71,182,221,221,247,59,223,220,63,2,12,226,27,132,207,209,131,54,142,181,213,251,108,142,231,83,221,172,71,75,75,187,109,30,101,237,5,132,227,222,171,78,132,44,225,91,237,36,255,90,205,60,48,8,48,91,231,209,209,16,192,248,230,186,57,202,8,105,171,191,133,190,185,209,166,44,59,184,41,207,48,94,228,144,165,142,173,0,30,247,224,39,232,146,208,130,145,26,140,75,88,178,113,215,48,63,100,201,87,241,60,246,204,25,15,255,123,125,167,201,230,128,89,78,213,181,59,85,85,60,246,23,0,96,201,162,120,215,175,217,243,29,4,150,86,47,206,243,16,196,181,225,43,121,72,2,140,218,189,50,97,88,12,227,96,117,209,102,174,108,28,39,157,53,91,238,249,154,166,22,220,100,54,218,162,235,14,176,83,242,162,202,155,200,64,30,86,77,65,58,159,163,47,155,152,142,183,67,232,55,22,248,21,102,214,241,170,238,251,173,225,171,107,239,12,231,74,113,106,111,218,245,156,8,144,134,231,235,156,89,203,91,22,121,255,23,196,135,119,132,190,99,51,124,139,112,191,211,51,211,36,223,74,186,141,55,211,20,118,11,32,249,167,76,46,174,206,97,69,202,5,98,165,68,173,20,226,119,118,29,48,139,33,33,226,221,179,203,214,57,103,214,251,210,69,195,187,244,227,123,73,209,108,217,116,130,183,65,122,106,4,105,112,120,220,207,124,234,4,188,252,233,67,232,107,224,168,145,149,213,85,42,128,112,160,190,133,65,209,119,47,243,197,150,128,129,51,76,222,193,113,54,161,239,207,81,130,255,64,205,46,203,56,97,178,198,112,242,66,159,113,72,53,122,150,177,252,163,194,252,39,84,201,75,108,204,198,230,67,59,189,139,6,119,209,171,188,153,89,112,150,35,69,163,118,58,17,233,242,13,9,16,223,213,66,21,36,50,200,243,231,180,233,27,255,244,35,160,209,108,124,146,125,165,254,168,23,236,149,227,230,121,98,50,87,109,201,130,205,183,74,250,189,107,225,245,19,233,209,178,231,78,3,120,255,249,17,245,48,149,88,6,153,133,129,112,156,155,193,36,48,90,31,2,75,49,5,185,41,63,192,4,227,39,95,186,193,74,5,184,160,87,250,159,200,173,166,254,143,221,66,194,201,186,17,28,208,97,246,17,25,197,210,216,174,148,45,169,106,207,244,197,214,224,82,66,26,216,26,27,65,68,128,42,108,138,75,46,144,162,244,240,95,78,251,23,111,119,175,10,237,51,137,65,166,184,154,189,45,243,192,126,114,162,80,245,213,195,150,23,219,35,153,175,66,236,41,230,0,191,48,79,160,131,114,94,160,191,198,98,45,173,249,152,78,67,131,148,129,102,217,54,5,20,28,0,20,147,83,217,134,96,132,181,102,154,85,61,204,222,99,127,97,182,109,81,34,253,115,124,202,123,241,157,28,176,121,81,62,246,89,251,188,118,25,90,242,143,171,190,203,146,38,96,32,149,157,186,120,176,22,3,138,199,217,124,112,65,170,20,232,225,158,41,209,248,212,168,243,46,100,109,41,13,14,143,100,141,180,108,59,253,156,207,136,85,10,121,109,254,216,2,234,140,170,7,239,0,94,53,153,158,98,34,81,165,13,152,82,78,97,19,155,48,124,22,185,62,149,241,77,207,29,77,153,118,64,55,150,127,37,204,0,20,113,192,113,138,92,175,153,188,79,179,250,123,125,59,217,95,109,71,121,170,66,17,109,34,6,124,236,105,149,158,65,172,14,170,46,212,81,96,211,207,97,202,226,83,143,42,13,153,48,88,247,243,145,5,199,202,170,54,6,189,255,94,68,252,160,18,238,210,145,6,121,199,217,124,165,179,131,164,172,228,20,87,124,30,162,239,85,38,44,150,251,46,24,29,61,176,33,142,226,160,229,208,119,188,179,114,87,133,85,128,122,206,40,46,154,247,88,156,181,0,216,174,164,235,241,104,203,14,73,65,26,25,47,108,151,236,254,254,89,159,97,35,228,184,11,52,46,119,81,226,219,98,190,212,84,20,160,24,206,51,98,243,230,169,192,190,231,139,85,83,252,61,208,63,58,183,91,128,116,215,81,29,30,164,234,207,198,108,38,6,95,118,35,105,86,224,6,253,0,233,175,182,33,116,14,9,33,17,254,192,50,214,218,181,123,66,69,234,162,30,114,170,8,53,243,97,171,47,56,224,79,117,68,121,169,110,175,146,69,4,211,154,64,156,232,240,168,233,5,55,164,191,133,85,48,242,214,169,121,54,142,41,140,16,224,36,244,229,128,150,3,244,24,252,47,10,117,82,214,47,177,175,191,139,245,97,85,214,10,59,69,96,75,208,238,66,155,206,65,110,56,97,97,114,93,25,72,8,160,113,240,91,205,40,7,83,104,85,24,124,127,183,124,69,125,166,54,192,121,95,254,131,72,170,109,38,149,210,251,45,113,171,85,16,147,47,165,47,170,215,109,132,43,65,212,135,245,241,249,252,16,152,117,150,243,102,102,180,44,223,53,101,252,167,34,255,157,248,245,136,232,252,7,226,128,126,198,246,212,84,110,201,216,178,64,108,217,213,58,74,235,103,46,87,43,230,165,218,235,64,72,204,128,13,111,250,4,78,116,143,228,74,23,156,198,89,220,58,7,52,68,191,20,12,17,207,252,114,175,181,91,236,164,32,67,102,113,216,218,31,150,22,68,65,20,140,215,99,196,203,202,171,128,22,79,255,144,213,208,159,244,141,126,190,14,105,52,215,126,68,218,58,49,144,59,148,116,139,60,223,214,255,32,240,187,47,234,130,255,250,246,149,221,247,74,156,113,137,234,46,177,19,2,204,108,83,155,164,180,205,239,54,135,52,134,192,0,90,11,110,33,31,242,47,229,200,148,178,228,43,154,29,95,234,217,53,64,224,204,82,252,235,254,47,90,220,70,144,129,54,62,254,67,23,127,204,243,228,38,90,145,218,222,111,118,253,106,160,115,211,137,29,63,224,167,15,176,106,203,95,224,234,199,149,211,103,210,183,129,253,13,161,53,41,111,98,74,187,225,22,101,103,75,215,117,107,240,159,156,51,11,78,75,134,246,3,228,138,165,218,165,190,228,31,76,215,210,212,159,42,30,240,201,54,204,244,41,128,84,52,168,46,78,74,220,19,174,27,97,192,132,140,243,5,26,137,141,114,202,207,147,75,92,41,139,228,186,211,49,4,122,219,112,63,174,46,204,232,172,29,83,66,171,184,211,134,146,88,217,188,214,172,213,125,158,94,30,103,118,152,36,35,121,28,248,123,189,95,10,4,214,37,4,77,192,190,81,27,2,141,7,42,63,41,63,51,69,122,78,47,221,37,188,27,124,142,222,164,57,49,239,165,156,184,110,200,169,125,17,109,228,202,13,169,98,21,221,84,187,146,249,221,233,157,6,14,245,107,130,163,55,239,6,225,171,107,117,250,176,120,117,134,202,114,91,161,146,18,179,224,222,40,148,1,19,80,65,13}, {41,8,7,56,5,39,77,4,29,70,152,45,162,18,28,228,223,29,253,202,95,85,33,215,4,164,214,56,10,238,154,94,107,64,186,53,142,103,208,70,89,118,229,56,219,76,186,65,251,171,19,166,203,6,82,140,108,60,158,41,232,246,139,82,199,11,92,25,19,104,138,252,30,171,242,106,11,167,134,96,222,88,74,68,241,196,193,12,141,244,211,0,34,165,240,20,127,115,53,47,197,37,145,202,163,29,24,59,198,3,227,181,29,92,109,197,89,123,181,38,252,64,46,110,66,78,20,236,96,149,164,102,61,136,54,103,70,109,23,167,119,202,161,244,210,174,11,67,27,160,141,137,100,99,23,42,221,171,196,80,95,12,95,235,112,170,205,20,51,248,81,69,82,117,76,101,51,163,179,155,85,112,24,159,237,0,118,34,132,176,106,240,110,0,13,144,186,26,245,169,198,210,94,73,191,251,109,212,138,241,165,8,248,130,160,236,72,81,67,254,168,90,60,14,129,228,72,77,96,190,149,84,117,175,185,255,127,135,160,215,185,2,133,235,207,32,66,169,250,6,31,182,131,251,129,33,200,47,247,33,100,217,114,24,212,61,183,111,187,165,66,17,231,15,191,23,182,113,232,233,95,170,67,12,166,102,120,56,247,246,214,169,126,150,101,122,125,155,142,178,239,13,27,225,221,89,250,205,229,135,141,225,243,247,36,119,1,253,161,163,124,103,112,121,57,68,72,6,154,254,60,239,160,117,144,92,89,74,233,152,241,184,193,208,108,132,131,133,219,235,180,138,207,222,11,142,34,86,224,174,169,135,27,231,71,202,211,126,109,33,219,112,237,186,216,245,217,114,225,29,139,153,184,175,112,132,243,58,64,75,110,74,113,239,4,233,86,170,194,236,124,163,246,130,190,158,53,29,152,97,100,38,107,129,50,54,148,89,64,149,8,25,35,127,199,169,247,58,255,157,233,173,100,123,198,133,184,237,228,38,9,125,2,87,136,243,34,152,234,138,215,42,56,83,4,133,106,101,143,104,189,123,217,213,199,251,33,204,60,29,218,115,195,27,215,239,216,114,117,207,105,143,206,125,20,78,250,214,127,230,213,76,174,63,227,185,15,29,139,123,164,99,103,201,19,68,88,149,23,161,241,207,157,167,149,186,185,123,117,21,76,142,102,137,109,229,156,74,196,198,6,78,40,248,62,161,243,124,156,182,48,111,129,54,196,197,38,122,127,27,243,55,147,56,183,24,211,174,148,25,26,172,81,177,5,65,120,224,35,107,215,83,121,170,190,32,77,245,19,1,245,121,44,0,234,6,92,232,246,70,142,83,187,48,173,172,67,220,112,252,122,238,146,194,130,34,10,168,50,232,160,146,35,79,222,132,20,254,41,27,133,247,246,143,173,62,50,85,234,78,64,244,214,108,104,26,103,197,86,50,157,120,30,32,157,99,93,42,29,72,39,182,181,99,191,227,143,97,175,65,27,118,65,101,224,240,212,181,151,240,24,36,163,252,179,234,196,39,99,141,139,117,43,10,60,41,105,179,59,54,81,112,25,15,211,222,13,205,144,5,9,48,107,35,172,140,174,236,80,212,27,220,188,31,191,24,71,3,118,164,207,80,160,212,43,46,135,125,191,171,165,44,104,187,67,181,83,147,166,5,59,40,203,23,189,16,64,18,41,45,214,129,119,102,174,189,203,7,209,155,199,78,7,96,177,5,134,11,206,143,15,55,220,26,73,20,253,246,147,36,248,209,209,224,107,132,153,152,226,125,206,235,124,184,78,170,105,24,235,129,118,230,133,50,55,74,217,77,69,85,247,56,67,35,31,231,162,152,92,245,121,155,138,239,34,146,136,172,184,171,59,212,192,11,177,42,220,74,198,40,29,194,250,78,103,251,48,76,92,229,8,224,18,70,123,75,254,138,25,18,81,51,98,64,60,47,115,230,118,88,88,160,131,41,3,37,33,235,81,224,209,147,203,89,15,30,45,216,73,37,89,91,198,169,2,118,145,171,91,81,48,184,16,70,18,218,222,213,14,26,104,134,198,16,176,21,214,198,190,188,65,134,233,219,12,68,46,164,129,124,100,185,132,44,27,218,247,238,243,50,107,12,14,81,150,242,59,105,193,69,4,73,101,228,183,154,48,243,186,67,233,26,223,185,89,8,39,173,32,18,188,168,87,186,174,168,38,112,241,43,145,215,190,158,204,54,37,13,105,204,196,171,104,148,211,15,167,59,248,167,209,84,52,12,221,190,129,96,220,60,129,192,53,168,247,155,49,20,93,130,158,219,107,58,59,86,119,29,173,208,55,100,34,71,196,254,254,214,110,222,230,168,203,183,46,5,52,46,184,214,122,198,86,75,179,147,110,142,229,226,15,22,86,251,154,20,137,52,4,106,248,161,23,149,65,105,244,189,243,252,202,156,191,9,39,116,229,126,153,31,201,109,172,1,64,133,61,29,14,39,138,16,186,229,64,165,120,242,204,196,193,49,123,97,237,141,238,116,32,54,225,52,97,31,36,84,85,120,101,203,78,236,172,125,153,137,171,24,170,95,52,76,246,230,104,62,16,20,81,74,124,71,200,209,29,12,94,20,165,160,226,162,171,31,181,250,1,192,11,60,26,228,80,111,164,173,64,229,30,193,157,227,78,189,234,220,255,2,3,251,159,118,183,74,49,7,56,103,213,150,244,18,107,237,169,246,213,95,70,61,136,217,111,163,56,171,21,120,37,247,211,3,170,158,103,42,225,20,250,13,255,48,182,63,2,6,152,189,56,4,114,162,25,48,95,138,176,197,100,124,104,75,184,38,214,168,179,241,21,31,147,111,115,81,159,149,143,9,250,165,33,123,47,146,152,204,27,233,223,192,34,216,127,113,14,100,87,179,156,191,154,8,161,236,79,25,149,156,153,77,136,203,47,203,235,114,40,124,81,44,190,118,155,251,159,73,88,61,85,177,41,96,235,73,97,213,87,172,17,50,126,115,226,145,128,244,115,12,48,232,85,62,224,248,61,29,26,125,52,244,171,109,39,146,21,110,77,176,161,254,67,121,221,30,176,230,236,183,13,10,234,190,56,240,255,147,248,238,86,75,137,21,155,51,1,91,118,50,176,209,228,132,79,124,138,231,100,156,194,125,139,213,179,49,99,118,156,43,21,216,245,168,226,40,74,165,240,195,213,60,20,19,6,115,52,20,156,217,86,155,145,64,64,209,43,90,138,58,227,193,28,208,237,208,67,94,127,207,169,237,11,206,210,80,147,216,187,190,122,165,32,163,111,213,156,254,199,241,6,62,250,223,194,20,214,165,69,218,161,107,67,119,44,135,154,79,101,176,116,198,135,48,147,138,190,182,227,129,47,207,239,248,87,183,122,118,117,151,206,115,250,40,43,50,126,22,13,245,79,7,154,150,167,40,85,246,141,61,34,23,51,86,178,36,68,20,58,108,84,154,91,14,184,143,252,43,244,78,182,101,21,171,146,231,214,142,207,81,158,170,149,72,131,176,138,246,0,146,74,215,180,85,98,106,117,46,66,226,160,129,205,206,138,223,64,225,180,219,238,178,234,112,129,183,12,113,51,172,180,242,44,211,60,159,96,200,133,152,24,250,69,174,42,245,215,255,94,248,152,193,199,184,164,176,228,141,229,60,66,111,206,45,105,138,216,31,237,44,101,157,155,250,158,59,74,253,69,13,137,196,162,112,206,29,57,203,49,98,78,19,218,206,99,117,172,7,105,245,31,88,230,17,83,220,73,178,212,108,191,181,149,252,171,170,47,114,19,191,84,227,91,70,187,3,70,84,60,144,204,119,247,7,96,227,83,38,242,76,91,69,84,6,145,11,173,167,111,202,48,83,19,24,76,39,152,14,216,60,189,112,25,79,31,193,96,5,52,82,69,53,32,41,30,109,207,68,150,82,171,113,182,233,109,185,228,166,241,103,218,99,1,86,192,142,21,13,58,177,87,103,76,120,143,44,177,52,232,35,115,38,42,51,141,51,180,49,83,88,22,106,8,245,189,168,112,180,225,10,187,78,59,83,61,193,38,163,33,215,69,120,30,159,36,207,19,226,177,89,190,52,114,52,39,229,17,100,175,157,80,25,52,160,235,120,165,98,33,233,138,107,5,42,104,69,58,136,240,53,210,203,200,246,235,227,251,161,54,119,74,80,167,192,68,247,147,112,84,182,107,227,90,119,45,175,113,200,204,225,107,46,33,178,41,18,125,38,16,177,116,134,63,22,92,186,78,60,99,195,247,251,214,251,47,166,158,47,90,41,53,67,169,234,72,93,46,24,165,56,250,69,210,248,73,38,178,70,164,82,234,47,244,81,126,244,42,200,122,244,93,119,57,240,53,232,13,48,218,62,239,140,120,171,89,34,225,196,45,253,83,106,246,253,124,234,240,170,227,149,221,102,187,199,28,224,131,247,169,17,174,215,188,239,220,49,120,233,149,174,72,215,37,53,153,32,242,56,175,219,245,10,105,3,178,100,246,208,206,191,181,207,23,233,68,122,20,57,5,35,178,221,228,105,68,147,216,19}, } ; static const uint16_t precomputed_encode_1013xint16_x[precomputed_encode_1013xint16_NUM][crypto_encode_ITEMS] = { {18165,13604,57095,9472,29588,55129,24829,63178,19742,7542,49805,58602,52766,50083,2480,14309,49698,36495,44044,57196,23354,38731,18640,51423,44826,44398,41918,56506,1529,36513,17326,10474,35933,52585,32301,53274,7941,23940,26635,41824,40586,25865,29884,50650,39840,28234,42850,10127,5607,61949,30317,53014,40241,9856,1863,23653,43401,3945,37901,63224,35958,28397,17140,59367,31446,42142,1470,41699,55914,62741,47046,3320,54527,15198,59974,29564,2742,456,17219,57294,22989,38411,23662,48563,51651,199,25170,26796,3522,39862,52947,18419,41834,58349,65141,40306,26826,59679,8062,46271,18942,53473,11278,64536,17702,324,35659,36432,48249,28987,36006,46412,4015,46299,19282,42293,15072,28219,50090,44304,21601,10077,61434,26348,57490,32466,16482,62854,11887,21092,62170,44299,42764,62671,41913,41064,35640,3,60053,1092,50844,13876,31882,37703,18918,64592,8692,18143,56759,46846,31683,38189,65179,13687,39427,51466,60462,36500,44417,17935,33954,59018,28170,47662,24655,32734,10933,16119,9178,40170,33331,65492,1151,26644,40658,37817,61457,13808,56884,24170,45819,55910,13626,58397,12918,64919,11748,31134,20686,55225,65299,28130,42149,56627,41774,2657,15878,61844,25157,44063,33000,36902,23545,4689,20279,10300,26910,53520,49567,49452,37783,33142,37137,61678,44996,45115,39659,64742,32417,38393,43941,3832,1571,28339,4347,6608,49395,5107,17424,16589,18611,16288,17276,34701,13695,58497,59502,8797,52779,1286,47852,12051,14383,38378,27148,50641,6593,35640,50523,12101,1299,5302,44673,5230,39221,24636,9371,477,8471,33322,38547,24118,62616,55108,13052,3416,17856,63756,35550,61601,1209,2566,45141,46262,19436,55774,25626,63308,9552,36257,1162,43060,368,15426,13682,7237,4718,15387,33996,5768,23813,64066,44499,14995,3397,58152,24120,11753,52111,22888,46421,64804,43537,33803,28029,23328,58042,16354,26356,24160,38515,49715,4430,5058,17753,51811,7412,28563,60542,54601,58120,20787,28772,48823,38944,10195,21773,50562,48269,29201,37845,29259,51720,26170,48029,3803,52352,48348,35086,57736,19749,46407,46054,18095,54550,8776,16559,49319,7535,21367,46259,10734,16292,23197,50765,5492,32334,64486,2876,54839,37099,48184,63989,4809,49690,3891,57692,52009,13550,33009,53487,19576,43133,29832,64013,57858,34713,63146,18556,21220,8658,48785,33259,27018,57651,26693,60470,61738,38699,26370,60076,54609,17650,24370,51183,37404,55968,59493,57961,14306,58937,27872,38247,23066,7687,15796,53964,38296,44740,32994,9037,12283,25017,6293,4444,36416,8285,15405,4739,56120,16978,49481,59459,20179,20380,50985,15496,45326,24334,44697,48343,56726,37990,28675,53215,27281,57330,27794,30681,18208,59901,43517,47523,10592,40704,61950,34096,58664,31694,44708,3357,27246,4357,25088,32515,32384,34983,26634,62484,5665,24622,20575,47197,75,64293,59099,20991,8485,40265,24200,9365,52296,15505,47074,15020,625,12221,36966,26189,12905,48624,22673,15499,10679,28175,12582,42886,59878,33408,16387,23800,55743,3775,44588,17280,3135,40562,9760,23292,4798,4554,55826,57138,47371,63976,59492,50769,2874,47318,43163,41574,12706,50285,52094,44677,32482,2747,4864,53625,20961,40316,35579,64593,22391,59156,4814,42403,36369,27337,42079,32307,13812,38669,576,64939,56399,57820,3847,58613,63796,62119,29941,32306,11918,32686,18032,53207,58632,8141,12802,27893,19864,54958,54054,53511,53607,56900,53086,11692,16250,7581,9888,47295,60860,61050,11105,35216,28374,29751,47354,2061,20953,35577,5605,57076,3783,58275,30075,60790,53834,229,34269,50004,29150,20195,6915,16893,3912,26784,3536,39543,22958,20583,7300,19334,5771,64320,1296,52614,48757,51021,61773,41062,34621,14502,5096,46638,6677,18595,2679,40187,33634,63137,10536,24472,65332,37281,15791,24728,52982,53859,61142,40570,37702,20621,27512,53494,47200,41366,28538,17469,27518,35961,12101,32153,41488,53697,52394,18391,47383,58055,57780,63235,53053,19179,54760,47177,58021,13835,26727,64533,25206,10644,27141,29819,41357,24443,46340,62342,34379,41439,62641,27348,667,32216,16706,26676,14659,46054,10929,62561,17683,41601,5533,49385,20317,64444,46237,21425,11143,10312,32950,39118,9956,8888,46857,46820,59799,19651,709,57652,57523,26794,60115,25637,16194,26620,2449,58617,22759,22722,27861,10109,30202,43803,18395,29535,39251,61160,18591,14602,48645,26175,12013,9402,45287,30294,15601,23908,23489,2060,22935,22886,22969,56983,10339,44294,62986,51384,10525,45960,14047,29042,65191,22318,35597,10179,54647,36291,27577,49039,36490,17194,3759,228,47090,43517,3136,49339,41570,17629,12162,15488,27487,46312,1337,59050,36771,57306,38589,22152,62346,31217,1805,10419,61406,46475,44720,23658,57355,50321,64313,35274,54356,42419,4071,40810,43996,63544,8857,54360,23206,1225,65480,36402,59898,47239,31393,30726,33034,54838,40981,17153,48097,21425,947,36278,57206,17583,35342,22345,38414,61686,14902,61833,39177,2114,33777,46759,44790,8173,26450,10710,8220,30267,16559,24334,38794,65157,64527,9264,57255,22412,59158,24750,52907,40582,53480,6729,52913,29773,33572,56800,33482,1122,18930,53482,27135,51313,64231,43686,24222,18221,19111,36449,63701,48123,33374,27263,27332,31830,57365,25385,39252,4634,13525,52575,47620,28913,12960,53693,31404,64710,18256,32064,19247,11821,18964,48131,37122,61742,33516,24079,35597,15289,61728,22344,33017,14615,43211,42622,37421,59097,57827,56598,50559,3694,9783,37591,47869,16508,18712,27832,52862,12469,56168,12959,31339,9582,16282,37710,25555,4137,19722,28205,25782,58633,39365,22036,36787,65526,38935,6719,39335,49417,2205,38822,54847,65398,18965,58526,23590,38844,38896,60172,27577,57076,4170,34875,37385,41449,62875,28955,42031,36456,55724,61592,32313,45831,60512,38472,22619,34549,30915,64013,36306,1920,38615,59370,46583,23857,44092,7667,22040,4449,12107,28417,37518,17442,34622,42431,2497,1654,13876,35234,53864,43633,4561,5598,43230,57111,25261,63638,13406,2603,52193,9942,40619,44326,27605,50150,20174,31561,27947,46883,45978,21239,39115,44683,52599,24003,59786,42804,52409,63951,38911,23377,64150,28872,48511,15362,12880,29243,22863,29399,50631,53338,14155,43281,13044,56460,13638,36991}, {33537,64564,64547,53289,53840,13327,48974,60266,26971,53495,33430,61729,56204,12135,41161,51472,51351,58589,8163,25842,37896,5179,54364,47145,45286,32905,4582,65484,37699,20223,14277,626,30048,37149,49509,45075,15253,10129,12235,36507,48939,8775,18053,2919,43601,58351,11502,10810,35959,22663,51590,29924,58975,54541,34928,43543,30928,36221,54935,58565,2610,42601,10857,23034,35943,36633,51142,32620,23448,33568,32826,56292,26293,7430,62591,19300,22156,60342,62298,40121,51066,19337,45781,46200,54989,46484,50758,37828,43728,23438,10278,62555,21609,20640,33299,2498,10129,22666,48311,47153,44049,63535,62936,40172,7340,16509,62656,33962,61231,52136,30644,44355,9946,41371,31949,8280,64258,27460,12294,2083,43865,2193,16023,55679,28224,62063,39137,25671,5831,32088,46960,50747,24572,43429,10469,3263,5687,33200,44902,41291,21836,58563,15756,59405,52314,29999,21032,12516,26446,23068,7922,23783,19238,29775,59978,17154,60310,50474,55896,16409,43114,32546,21540,33256,8199,45674,18539,59444,4284,17800,23269,10683,46160,27679,64515,36019,49170,7166,15809,60512,17071,8437,5619,16631,30690,27313,21239,5242,55981,54283,31854,21251,18864,62575,32556,19008,2008,13159,14327,55243,64528,20553,63471,11378,48933,47194,25432,40018,36000,57351,63438,62900,53594,65002,64214,6921,37152,20423,55474,7314,43949,55301,27017,17073,37183,5256,32080,15810,57905,9868,8772,28128,11042,19326,52934,57425,3810,29274,26639,23492,42185,22751,63015,9729,8049,1830,19614,13097,45743,7601,54871,13388,30921,36409,8022,46877,22074,11049,18368,8161,31161,8977,59516,15091,4709,16570,65382,53666,58880,57643,51531,45757,29495,31982,36267,41654,14374,8858,22296,65435,65346,35668,54006,48022,35382,51757,19802,3848,27387,56322,25553,60755,885,345,20495,33817,2473,14467,11377,61309,28023,34663,8054,53570,25284,63061,48065,49929,8568,30799,52435,58125,32346,48854,2234,43406,7777,30142,38426,62892,23548,12835,36947,913,26749,12805,21440,64553,11440,28567,44521,18540,37765,16242,23386,56953,27821,59148,13388,361,35010,53534,10014,17817,5632,26516,51487,60560,35502,30297,54165,47205,20259,4592,60990,55871,25486,6436,58747,55699,51141,38609,6024,7849,64646,37603,58470,10978,980,29018,13221,39633,48572,39480,57612,57839,62955,8636,23561,18540,47896,47088,27049,31402,10408,57014,24576,6104,61548,24920,9789,42219,60198,56831,46466,42369,16522,29562,65146,54257,57970,380,46704,60743,61730,26542,59735,8029,27425,61714,39214,32291,36740,2500,50568,8302,41887,22093,39331,43983,50314,16498,33471,16492,64973,24976,63866,14953,17819,50648,63456,39974,56078,8853,38175,48873,8424,33601,25669,44009,1208,3928,60955,13226,51507,5470,39415,22241,4075,60137,17559,24772,23548,7499,9172,19983,35095,18947,35726,2278,55946,42611,30421,54856,49371,1260,56393,25070,31249,11606,43416,29811,8775,38151,56,52897,41572,40211,51841,46218,15989,6391,50480,16320,28005,2124,41599,36399,28651,65346,50084,33137,57586,9917,16466,8828,51156,5613,59296,62532,6395,62656,42410,9214,36340,44260,22084,12471,46594,39635,6699,27001,17330,29348,46043,33771,29914,32034,12024,40615,61041,25378,24948,47211,63708,27760,57301,55392,45057,13541,53305,52025,35631,45187,39703,26362,33169,45810,39718,27006,27128,54366,28555,61108,61727,36750,4933,59409,625,11468,31829,3320,2668,19170,19431,53006,43647,13873,48912,54971,42123,58726,7515,7342,62963,50784,30003,20670,58688,28512,31220,6870,36817,16679,232,53046,8793,64014,5961,60477,15396,29217,34487,17499,21903,58246,14685,2732,43224,15499,44151,59245,61466,9223,43265,29469,52923,19016,28708,25975,57682,13955,8989,13172,17783,33132,7793,10040,2369,14247,52030,57512,13070,45771,23628,2630,14815,21440,29826,16063,283,49724,11871,48754,42334,33420,41511,14505,12120,35823,61097,42453,5476,62537,12938,15453,50640,41308,49134,36462,1377,65000,34172,19217,59878,58374,49954,36082,34143,18052,60688,5009,46268,18809,15034,5655,52205,47072,8717,28451,51130,45018,63559,62047,47927,65501,57058,27793,51324,25946,36641,59098,27658,36419,13396,41173,54714,23840,51797,22002,18770,33050,14610,31251,27369,40030,23551,55337,21137,34294,18022,43171,56621,4517,32429,62124,24385,57436,24484,3385,61839,43204,17615,55252,37838,63478,12531,28656,14836,34551,13151,61261,28749,42906,61203,8834,31248,49898,11587,21864,46842,40863,8957,48357,30924,58231,25334,28011,14892,43555,58436,32647,43695,19305,2516,12523,1837,54077,28785,12651,45504,187,36038,23212,8727,859,17526,38329,35736,15033,30586,2615,9916,112,17084,37463,44269,8795,52379,6670,20317,2728,47414,55232,16713,64918,12241,6916,11645,31690,18551,2953,33420,37074,1536,12772,30787,18968,41983,64108,62339,16278,28996,38541,55373,52215,6173,38057,17108,39400,6094,3109,27603,11199,23222,10993,44883,1001,50380,41577,55234,52895,58212,51231,21990,27828,57223,55648,60410,55118,62275,7369,30104,37107,18997,31239,38582,5117,55813,65109,50209,37162,12948,11622,54126,41736,51680,4059,16105,47044,57069,5369,43531,54514,52420,42570,26222,19286,21107,11535,10855,40402,6854,42227,55719,55360,54836,33388,56477,23472,33097,23159,10827,37153,30617,11594,59604,16820,7948,52011,43520,54046,23676,35026,48914,39038,1774,38965,9325,34571,56193,30012,60596,43189,7896,13307,64481,24957,61371,512,65011,7246,48958,27472,5491,47760,45954,42351,43073,33124,45630,27001,45187,35039,16223,27510,13434,42236,45560,41191,60732,16708,18441,12933,15676,56060,42113,36131,8480,32647,11403,22181,31494,63902,60356,46903,5216,13594,25055,63297,28271,39094,40929,1864,47472,44888,29519,1346,6109,46270,6171,25077,51843,51281,26149,49269,25976,46050,46192,11371,5993,39169,31093,63063,16436,52221,65338,20095,43703,57716,20803,39503,56526,61170,42135,3609,3954,22607,55320,41198,33944,43363,20546,31121,65342,26261,54680,38484,52533,55219,34131,61988,29452,42228,53913,6457,23453,13196,47167,35708,59932,17134,15797,25024,39314,13658,59748,61278,23470,50856,9831,10570,39177,55911,19954,65058,27594,63492,26931,45633,16274,52351,40116,5222,32744,23030,65366,8659,39838,52464,14648,26089,2782}, {38736,9504,49842,19872,43093,1401,4223,14421,42824,49962,28097,25266,64400,28128,13439,17023,39343,10706,28994,38168,12896,31113,36037,38593,47948,42038,18127,16401,28725,49640,45465,7013,18769,4247,19606,61506,15202,30594,23034,35787,6032,52130,6793,30645,3405,16850,10541,2517,55625,54496,31774,30877,62575,44916,61790,26395,2756,23730,32435,58364,49751,28868,3579,57721,12167,29544,49170,5643,65290,23975,57644,45955,31809,34023,6876,36955,62274,20201,196,10436,50806,51683,38092,18487,62791,1462,4300,29225,335,45826,60252,21672,50398,64016,47321,30487,57691,61030,25843,22771,59512,35108,23127,24237,961,11914,12816,39009,62169,32363,17828,21401,7680,53169,42840,15757,62362,60935,42466,11565,41790,65519,55331,3612,300,31141,8796,19396,51145,18034,43591,40130,63309,63251,22424,36624,39965,284,60063,57561,7777,52577,5013,21904,25746,46744,18287,64894,54507,5049,17307,64616,59509,30967,30218,21489,25150,9163,62758,5288,19200,4906,41975,18441,40095,61642,16814,26913,20785,29658,31347,9514,64732,11874,21373,37095,6413,43654,27966,32954,33952,44594,27905,56424,18971,55714,25155,37304,47606,42324,65030,34490,37303,22419,22581,59617,12042,32275,51774,35307,22608,1447,10711,12218,63511,15092,14268,24501,13078,39017,10715,12869,65021,17889,52351,29365,3945,8546,39829,6439,39232,43776,37963,38096,55989,59818,29672,46663,56797,15351,56543,575,57868,33819,53711,13955,46478,64469,36460,21479,44253,19271,47947,7789,60773,33797,57059,20139,11396,23521,9453,23295,15565,2096,23344,53735,4305,63680,47846,51769,26888,49067,48773,53689,11430,47163,53033,24112,37092,36517,173,63262,10208,37608,33488,6801,19340,45656,55153,16176,51556,61783,63036,6604,65295,32123,51623,32998,20057,46549,21819,15445,6134,24576,41673,55160,55727,7667,38404,12118,62414,50192,57781,31019,584,55948,12989,22625,58124,30048,26321,27822,10012,13725,61019,39673,5798,25820,55862,60322,45070,62035,51874,51355,7744,19798,14913,41887,39727,36504,17335,14312,63510,26133,61910,61098,44539,44001,61291,59148,29002,28522,62938,2204,34448,60391,22940,23499,30998,6143,34756,33911,25534,31795,28811,54207,54067,57124,47690,14221,5331,2934,63776,19623,44590,25038,51781,25093,17573,5293,30690,7542,35632,8481,56802,52147,14806,54887,54011,49989,62651,31715,53577,55660,33396,16823,27258,26884,30832,53212,60028,48132,59900,59459,57451,37288,54677,10837,28800,48800,16773,30673,62255,38597,33152,19507,49630,13937,61345,20943,65410,52544,52014,24888,50866,62064,40770,18545,31285,45462,41980,64706,21543,19401,52332,59078,15171,35773,30470,43985,39356,28761,9110,41797,14966,59665,3570,4105,54751,5442,12836,62408,46311,7145,62719,40995,27857,37500,42365,43262,60439,58261,31206,12898,27991,33481,47053,64074,27581,62945,59667,45777,20199,30723,63999,62737,38192,1624,34201,28801,39836,9409,23088,543,12619,47365,16169,1216,10211,47711,19137,47109,22432,40954,44488,65190,56719,49730,47817,7185,25040,4598,50457,55506,38062,43309,53098,50676,57558,16978,55322,6938,17473,10880,35436,11851,41616,61684,20063,6139,30575,2735,13293,16777,47270,48538,62253,32448,41586,62800,50133,6038,9179,44953,60482,58921,48896,20272,33696,24178,49056,25286,44333,39161,17230,38019,26241,14041,5125,28,37652,55635,24710,46468,39526,15701,57036,32611,46689,20845,64802,31859,31690,40433,45084,20857,63038,64345,30396,23065,36850,48811,37579,24614,38176,47773,45176,790,51082,31961,16752,5290,57832,10654,63697,43220,12019,28004,3369,36622,36196,27828,64827,53148,21896,30986,65133,728,36074,1962,239,13662,40601,8802,42321,38925,20050,4961,12443,5756,16057,61845,53069,19741,30361,14144,32662,52261,5120,49265,35441,44892,48281,45903,31738,15229,24537,18285,43641,4418,8813,31750,27116,40597,44097,43534,54318,24657,53203,51809,21474,10895,39181,22576,62455,1425,51911,13994,48390,24319,64580,4768,53998,1681,51065,31961,45989,42115,58540,22292,7804,61346,9813,38444,12027,7448,45117,36385,41186,53477,48247,29363,34135,32853,52858,11816,63386,40024,181,44760,60324,26865,3787,16713,6426,27695,60567,65278,40793,9057,47332,13323,30510,57937,25307,54462,5204,6304,13262,62306,43494,48832,35815,21333,15868,16336,46906,32859,55156,7505,42014,53226,27846,1574,30303,26915,57430,64774,59648,46767,29729,2318,4385,49406,54834,46554,17019,59973,7842,43634,13576,25075,12203,57400,30031,31044,28329,37551,1093,39635,40000,61672,59816,14085,49060,21893,62000,43478,13945,10638,4236,9440,58868,38528,62467,64536,2607,21109,12246,44977,35775,25077,54869,15114,24645,53323,17134,52891,28225,24888,29281,6493,2120,29088,23536,10445,21255,21864,31768,46975,17788,42621,49206,24441,33790,43592,9837,53909,11771,43889,4181,12179,12197,55210,33901,16683,34772,61941,64761,38928,38517,26355,46182,57132,25909,43004,65314,63645,35061,64744,57863,32384,63174,21716,51566,45784,27712,54745,19002,26603,22318,58923,55973,16619,52296,3456,64111,19972,36724,19172,39959,22982,15068,13319,48964,3092,53009,29436,46511,60507,8356,26179,55409,8154,5782,16708,35860,25559,52164,43978,5760,65359,54672,40912,36340,48766,26894,55092,17534,15066,36913,37947,35700,57148,65494,61472,12219,33514,64255,38390,63453,40010,35185,12010,5041,52226,21356,42139,52660,14063,13447,49286,23040,28171,7969,12274,51429,45716,11236,7578,59999,13785,57408,21196,60412,12286,56410,36934,13953,65086,5955,52351,58611,23078,55953,28638,64886,41066,54131,7561,57407,4007,27312,24523,60128,38343,26579,47058,64897,41229,10549,25199,47946,5857,26469,55115,27509,40944,13212,19979,34379,1014,35556,55973,48805,8164,55116,54482,10911,61470,14025,62668,32809,13396,11944,19022,5084,7086,49249,35972,1523,35098,29325,53194,19347,10588,58507,54202,1073,56186,16240,11950,59596,7596,16979,47275,34515,22674,48345,44246,32213,24222,26398,39030,8996,7289,31736,24509,1034,9686,19716,48832,6993,36098,10759,10559,13119,31301,12110,9693,7100,36476,42206,12601,42479,47260,51310,32169,27921,51940,43277,5474,21725,37563,56825,40425,3590,27637,41858,61239,57606,27563,64117,30896,34421,29386,41307,4754,57523,10462,404,20499,3393}, {2089,14343,9989,1101,17949,11672,4770,58396,7647,51965,21855,55073,41988,14550,60938,24218,16491,13754,26510,18128,30297,14565,19675,16826,44027,42515,1739,35922,15468,10654,63208,21131,3015,6492,26643,64650,43806,27378,42763,24710,22750,17482,50417,3265,62605,211,42274,5360,29567,12085,9669,51857,7587,15128,966,46563,23581,50541,31577,9909,16636,28206,20034,60436,38240,26276,34877,26422,27974,42775,51831,62625,44754,17163,40987,35213,25444,10775,43997,20676,3167,60255,43632,5325,63539,17745,30034,25932,41779,39859,28757,40728,237,8822,45188,61546,110,36877,6842,43509,53958,18782,64447,54381,61834,2213,33528,60576,20808,65091,23208,3644,58497,19784,48736,21653,44917,65465,34687,55200,697,60293,8399,43330,1786,46623,64387,8577,12232,8695,55652,6258,15828,28599,42427,4418,4071,6079,29110,59880,43615,3139,26278,14456,63223,43478,38526,31333,39805,45710,3567,57627,23005,52730,34789,57741,63475,30500,64769,41889,26492,31088,17465,1608,65178,61244,30112,23696,19033,39145,47345,53441,33900,34179,60379,35508,57039,36363,22050,44768,34729,59163,51783,32467,8557,28891,47853,62936,29401,7649,39307,44984,33904,15091,19264,19054,61297,59652,43606,60610,41852,33526,40638,7477,24984,9828,33131,13874,22932,38208,6408,32547,43463,15095,40447,44521,31588,34246,60856,9956,32009,22274,62344,38946,35562,10967,21304,34052,25962,26767,31677,54745,64455,52257,7484,29658,7107,61399,29400,53109,36713,32206,19988,55034,59007,19669,16302,47587,7439,31627,25508,51559,17427,38232,41239,53233,42909,47765,31673,5493,36428,35174,58733,19100,50884,19974,63528,41278,31987,46748,28464,13953,50628,31270,7039,14323,14483,6327,44755,6548,44058,45393,16645,57464,27427,21463,43641,8382,62797,275,31221,44,1770,59484,18166,21390,12475,44205,56387,64624,61050,49810,8834,43018,59442,37536,20259,34014,65044,6953,63365,36854,16045,21810,20202,62528,27862,6760,50535,12886,30877,8222,25501,10845,18461,46631,25525,58303,24975,16815,30235,25921,61664,46548,61591,9240,64675,60083,10180,36195,30091,2603,10556,45929,13883,28753,3865,57043,52493,1424,12297,9067,36012,60590,54352,56347,8124,6335,839,42102,20687,54432,11819,32135,43967,11429,47976,46403,37715,1446,10299,6091,4285,4672,11561,33238,26231,48558,1995,39889,20167,24583,1457,2950,36814,14095,6876,5193,63229,9363,53752,57553,33899,39065,32226,60366,47228,43598,6249,33259,58998,12933,18999,19929,21829,14583,9027,59167,39074,62812,39801,61322,37410,44168,43960,54331,3008,10929,19164,10438,49693,20218,64359,19504,58716,57352,17938,19323,35582,4633,13137,16482,12092,58995,22646,41048,10627,9475,60193,57425,37841,22987,7695,55341,9545,23385,43462,30210,43921,20827,47152,17936,55826,54750,6670,34408,4294,5552,50902,48318,34369,56297,17420,42030,31873,47460,11396,55835,61175,13043,3179,20750,62102,26939,17857,18692,58469,39607,62256,17338,6889,47583,2137,44327,4640,43196,47703,43182,28710,11249,55185,40638,14028,3365,52329,43972,37992,4051,15271,43000,21713,3124,48861,24705,15580,49281,43061,39927,5169,33373,56222,14955,22075,7543,53421,25655,18210,65220,55038,56942,43238,47051,1326,11828,54968,50810,19286,37811,36462,58085,5647,64342,5274,13449,27140,41464,38167,26945,48628,64755,40138,2495,29735,32485,8089,28105,428,34112,7485,9998,4234,58810,42304,62072,50380,12737,24955,36333,29934,13856,13537,8033,21540,30805,52069,60494,32172,35225,6315,24490,19508,59126,15976,5136,19025,18300,53704,3101,5214,41125,41698,8107,64181,49153,15371,58394,28496,44452,58688,49438,58269,48462,56554,767,64259,30367,19127,1841,26424,38613,4852,60779,63145,24533,15686,55688,41839,43832,30741,63269,979,40618,10855,5345,3578,12543,16310,1538,48536,1080,41586,12313,35423,50608,31844,19304,9912,43222,61875,7957,28563,20851,38303,2447,42490,31521,37423,52376,59675,49375,55330,29055,25614,45911,49052,2202,60577,6479,40085,19865,52104,52015,29419,31784,11345,30398,64411,18847,15704,45397,24617,18923,54625,44119,12817,29566,37346,62592,3187,59440,15957,63712,7485,32026,62516,28075,37415,28181,45133,65185,31043,7901,59056,47084,2573,48874,61496,37887,61176,19286,5513,13211,23297,12918,53680,34020,31823,59274,40036,32194,54667,12723,30307,11164,55317,43253,10466,42314,50160,15573,4884,29446,5172,55708,39766,16529,53568,23083,14986,49635,53276,53485,24131,53119,60841,52747,20690,55443,48827,42362,41760,54639,65180,61895,15878,57338,5314,42454,55877,27553,30531,34604,20378,45157,50804,12423,35475,46782,33251,53039,63727,46935,30330,38773,29646,10490,12843,5758,62733,1871,38554,10407,63061,15757,5922,22067,9394,5188,27706,39508,3675,36792,11260,20212,26038,43797,59282,36566,20943,43678,18581,45187,63114,37376,55114,21940,27234,11893,57922,33184,52941,57226,57664,56244,45806,28906,46977,28940,44083,62132,54060,40764,51296,39045,64024,44613,62762,65495,63582,49560,47303,45220,36324,15589,28482,11726,35433,8152,11501,40293,64155,15262,64842,3397,50313,28834,7630,52025,25137,4942,52954,30051,1964,62825,22559,4582,56403,45641,27860,46527,64661,43691,29231,48915,58196,18011,955,21574,36924,30668,2039,58208,9811,19698,17755,1620,2961,42925,51823,21296,6163,10060,3736,15576,28861,20249,49439,1376,21044,13637,10528,27934,17615,21142,29099,59830,47469,42724,26609,25562,22017,36544,3349,45370,26455,30796,11407,13489,9192,9843,13098,13197,12724,22611,27158,62728,43197,46192,2785,20155,21307,49469,41766,55073,30789,40734,53028,57875,22961,13502,13426,58663,25617,40367,6480,41012,30955,25253,59681,27530,10757,17768,34874,13808,52178,63176,58347,41467,30518,20554,49319,63300,28819,46676,58219,30554,44845,51313,57804,11883,45601,4649,9853,45328,34420,5695,47708,15438,50019,64503,64470,42543,12190,10586,17205,60073,23880,6190,14501,17914,63698,9801,18098,21156,12266,20980,62590,51242,62586,30557,61497,59445,12301,16090,36079,43896,8793,50401,64813,27219,65014,60028,43760,38371,26333,51131,57372,63363,4521,55214,61372,12764,59768,44693,55112,13605,8345,14578,56239,2805,873,25778,53494,49102,53173,59671,31300,14612,8965,56754,27108,37700,5080}, } ; static void test_encode_1013xint16_impl(long long impl) { unsigned char *s = test_encode_1013xint16_s; unsigned char *x = test_encode_1013xint16_x; unsigned char *s2 = test_encode_1013xint16_s2; unsigned char *x2 = test_encode_1013xint16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1013xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1013xint16(impl); printf("encode_1013xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1013xint16_implementation(impl),ntruprime_dispatch_encode_1013xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_1013xint16; printf("encode_1013xint16 selected implementation %s compiler %s\n",ntruprime_encode_1013xint16_implementation(),ntruprime_encode_1013xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1013xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1013xint16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1013xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1013xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1013xint16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1013xint16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1013xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1013xint16")) return; storage_encode_1013xint16_s = callocplus(crypto_encode_STRBYTES); test_encode_1013xint16_s = aligned(storage_encode_1013xint16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1013xint16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1013xint16_x = aligned(storage_encode_1013xint16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1013xint16_s2 = callocplus(maxalloc); test_encode_1013xint16_s2 = aligned(storage_encode_1013xint16_s2,crypto_encode_STRBYTES); storage_encode_1013xint16_x2 = callocplus(maxalloc); test_encode_1013xint16_x2 = aligned(storage_encode_1013xint16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1013xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1013xint16();++impl) forked(test_encode_1013xint16_impl,impl); ++test_encode_1013xint16_s; ++test_encode_1013xint16_x; ++test_encode_1013xint16_s2; ++test_encode_1013xint16_x2; } free(storage_encode_1013xint16_x2); free(storage_encode_1013xint16_s2); free(storage_encode_1013xint16_x); free(storage_encode_1013xint16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1277x2627.c0000644000000000000000000017425314705505543022477 0ustar rootroot/* ----- encode/1277x2627, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1277x2627_checksums[] = { "5b26afe7bb755c250ae9d208a9d8552b0ee95f0d2cfac20ed44a8f918524eb04", "b482d6dc7d917bb111a4d164ac216f755fadf3e8571f3d00009473d3f346f43b", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1277x2627_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1277x2627_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1277x2627_ITEMBYTES static void *storage_encode_1277x2627_s; static unsigned char *test_encode_1277x2627_s; static void *storage_encode_1277x2627_x; static unsigned char *test_encode_1277x2627_x; static void *storage_encode_1277x2627_s2; static unsigned char *test_encode_1277x2627_s2; static void *storage_encode_1277x2627_x2; static unsigned char *test_encode_1277x2627_x2; #define precomputed_encode_1277x2627_NUM 4 static const unsigned char precomputed_encode_1277x2627_s[precomputed_encode_1277x2627_NUM][crypto_encode_STRBYTES] = { {146,126,107,43,156,102,147,200,169,112,16,229,244,236,192,222,55,216,214,48,164,85,177,47,2,176,85,137,223,155,216,171,236,194,248,224,200,69,143,211,32,32,86,113,26,154,32,171,7,62,85,149,135,99,177,21,192,246,92,105,83,128,7,242,207,201,164,239,114,64,160,248,140,191,35,123,236,179,149,126,193,183,2,99,239,75,89,130,167,236,32,58,216,119,3,133,90,133,198,161,35,210,125,176,122,169,112,3,139,136,66,116,251,143,164,119,243,54,78,16,15,139,94,150,67,27,158,23,22,19,13,225,151,77,11,13,62,78,172,19,101,143,135,69,225,226,93,95,6,167,109,214,26,173,215,52,89,67,174,186,76,201,131,68,150,17,220,112,161,198,210,127,170,218,3,76,234,125,12,62,8,229,51,154,231,114,99,64,199,118,184,142,131,168,23,182,87,89,147,14,72,117,53,177,232,10,174,106,35,193,112,219,88,25,68,214,117,82,229,128,50,28,1,49,241,215,13,110,112,77,62,96,200,1,23,1,169,167,236,242,120,63,84,22,215,72,182,80,35,122,139,144,205,0,161,88,196,116,105,24,18,149,120,173,66,21,184,2,161,57,231,202,254,176,78,80,226,36,59,4,203,61,175,203,119,140,188,94,163,249,26,37,45,33,240,58,64,15,62,98,3,151,213,69,113,22,34,184,151,16,172,22,151,165,219,168,152,81,147,142,76,14,43,20,176,33,87,135,182,230,238,21,33,244,236,127,213,250,107,189,244,7,187,3,19,2,106,171,88,115,192,40,143,100,73,236,235,7,133,0,118,205,60,160,192,22,190,65,246,82,37,200,67,98,127,98,30,88,23,18,34,37,18,136,19,225,76,78,135,142,106,231,193,77,72,195,10,123,242,240,249,217,49,99,216,86,143,239,140,53,17,166,215,144,215,120,182,8,38,154,182,8,216,255,250,55,114,122,92,23,88,204,244,81,222,213,205,63,52,18,25,103,240,165,201,206,129,70,4,81,91,61,99,241,221,59,247,73,134,24,79,244,190,13,113,72,132,79,120,39,64,113,110,88,42,102,165,32,130,165,242,115,90,92,189,104,210,42,85,90,159,124,79,92,220,3,198,109,69,9,87,233,180,121,168,200,16,50,208,203,141,113,123,71,7,223,82,83,233,232,178,150,66,128,156,245,202,167,164,208,22,82,104,134,38,49,162,203,67,234,160,105,92,169,208,121,91,129,204,232,169,216,149,115,196,50,248,114,218,122,252,80,208,186,62,107,43,94,171,42,249,63,148,200,72,120,15,222,27,18,123,32,241,69,165,184,251,213,158,204,88,187,129,196,64,221,201,32,125,156,25,105,24,203,64,88,216,102,64,160,248,76,7,3,13,69,13,45,64,245,231,199,96,176,49,34,68,92,32,40,5,209,188,117,192,178,167,134,5,143,77,106,58,109,166,167,72,118,208,135,234,19,99,255,98,5,115,5,169,83,75,103,154,22,162,159,220,226,242,24,18,251,174,196,128,103,50,242,223,44,151,220,75,25,129,252,236,67,185,189,94,165,94,36,143,98,171,44,75,200,129,132,19,38,214,14,252,221,29,119,172,168,151,30,179,242,141,115,62,38,140,8,88,215,202,203,173,248,220,214,161,219,253,233,29,143,251,152,96,39,18,218,224,152,16,251,178,206,54,152,110,153,220,35,18,111,236,162,206,102,219,235,181,122,223,61,252,124,91,238,189,178,209,59,137,251,70,43,212,187,151,62,163,101,0,4,252,236,151,11,220,245,253,199,217,130,212,110,87,68,245,178,240,7,223,43,159,85,191,61,140,25,147,65,152,73,19,1,118,211,214,164,186,9,148,144,2,197,196,221,143,88,171,94,24,156,25,191,98,179,83,163,219,8,237,108,103,87,235,101,59,188,9,123,106,123,146,166,88,241,101,61,135,114,106,124,227,251,56,254,88,249,238,193,241,207,187,7,58,166,25,191,104,162,161,112,28,110,207,244,196,22,42,4,69,3,139,210,18,144,166,254,188,162,51,222,177,244,147,59,35,34,66,54,133,190,17,167,236,115,73,176,35,38,64,21,157,181,40,248,108,228,223,123,69,84,151,71,94,101,5,27,62,124,93,132,40,20,252,64,152,26,120,80,114,9,208,162,169,83,159,211,26,92,73,3,2,207,234,182,59,12,93,103,12,176,219,158,76,201,7,35,29,80,126,239,227,228,224,181,52,102,49,113,12,149,210,103,126,33,194,74,75,43,74,160,183,135,226,50,151,69,186,124,200,36,67,41,191,243,124,111,220,246,158,191,67,64,81,163,225,45,250,211,189,11,138,107,187,69,20,185,193,161,58,126,101,54,51,194,13,232,45,221,51,19,151,218,99,171,84,23,18,88,158,8,62,33,4,212,154,205,64,16,74,164,162,70,45,2,182,229,227,203,235,59,111,181,46,50,179,148,91,208,58,112,44,48,157,135,249,219,171,38,199,213,58,25,183,85,46,254,138,36,178,120,124,83,127,110,136,141,70,202,95,119,55,131,180,69,207,245,160,61,9,232,19,131,38,126,69,27,160,216,227,107,90,79,205,219,72,54,246,199,83,142,73,72,207,175,110,218,155,48,179,216,77,77,7,224,238,86,67,97,240,43,193,105,129,66,221,73,222,195,228,100,254,170,28,56,116,150,58,40,239,204,83,14,85,192,177,116,158,53,53,223,197,235,236,171,154,249,38,10,144,142,150,236,180,152,78,24,121,237,183,31,253,226,148,153,187,245,79,14,236,146,174,123,27,227,171,87,61,71,141,182,115,50,66,250,125,109,167,192,85,131,22,85,105,198,220,61,149,124,42,192,189,204,227,178,1,148,104,103,26,29,172,53,172,143,117,150,170,26,205,192,152,9,109,138,10,133,84,211,176,45,220,166,57,227,160,164,57,222,161,219,179,117,254,182,126,36,65,116,164,184,172,32,167,185,247,18,9,246,114,254,5,241,73,49,182,43,173,85,185,107,175,250,246,65,73,5,102,7,157,111,126,50,57,68,115,116,60,72,133,210,120,167,122,234,141,28,204,26,188,242,173,150,196,169,125,228,255,229,248,4,172,134,4,25,87,65,41,180,142,110,122,131,112,185,198,247,9,2,10,231,97,189,81,155,98,91,103,250,78,33,84,235,14,102,91,157,139,100,44,194,234,221,90,136,176,63,129,166,80,15,241,28,228,255,132,186,168,122,247,155,38,12,61,225,132,212,174,196,239,151,180,155,78,149,121,88,27,233,128,251,102,104,177,199,251,131,237,254,250,206,249,60,243,242,176,232,132,64,161,84,181,88,125,6,195,56,175,11,141,211,148,73,153,121,73,37,152,252,117,208,137,47,147,60,155,140,225,140,34,126,176,29,52,228,151,138,175,61,208,245,170,209,39,145,216,147,121,19,250,65,104,167,53,179,97,197,18,173,135,206,154,199,22,209,196,6,168,131,255,148,252,153,149,48,97,86,99,120,50,45,60,189,98,244,178,69,11,71,155,230,72,45,199,141,245,243,132,30,120,37,125,10,210,159,118,54,104,59,0,156,36,138,208,43,22,199,224,133,165,120,41,253,190,229,35,65,176,199,210,113,247,66,193,223,143,240,18,120,227,202,61,181,30,130,181,118,8,139,226,128,84,86,125,62,116,188,154,229,159,47,246,251,71,167,140,237,213,91,62,200,118,96,214,65,108,151,181,137,150,142,108,250,105,26,254,185,188,117,153,231,88,135,88,41,197,99,240,223,221,222,47,94,28,227,59,196,189,68,57,252,57,135,149,36,20,160,72,48,17,114,24,82,186,135,197,146,212,32,163,187,20,100,205,132,198,247,34,14,28,112,41,41,101,171,108,64,61,92,182,195,64,139,58,142,239,219,136,177,248,9,128,234,7,236,52,214,156,6,52,126,118,203,43,173,207,7,236,99,137,12,153,167,69,142,165,4,117,184,28,82,246,111,34,159,8,250,8,8,212,70,168,84,201,207,22,77,227,53,0,37,5,53,11,96,78,124,23,225,254,147,135,221,214,214,226,65,71,208,0,252,245,134,98,133,30,142,2,174,0}, {29,12,139,7,51,22,98,36,99,237,247,67,38,141,7,144,16,113,161,61,92,146,215,190,23,42,203,186,251,141,176,250,133,76,100,105,157,245,181,10,26,220,183,192,174,121,255,206,186,69,154,200,45,96,124,124,128,57,38,227,114,58,142,33,138,150,119,75,96,33,156,190,1,162,170,139,158,91,87,49,96,1,12,72,96,233,79,84,255,92,38,242,133,136,174,136,119,8,143,95,11,151,221,231,244,26,154,154,162,9,162,0,135,6,97,52,223,23,10,21,20,71,89,40,151,65,54,205,155,114,108,110,167,38,47,113,111,159,163,7,73,146,88,193,190,183,195,156,103,68,93,0,107,172,125,149,107,121,182,185,65,164,185,119,4,17,231,56,225,213,222,111,231,255,165,83,130,142,205,113,186,105,162,166,112,27,79,173,34,56,250,85,79,157,177,176,151,168,140,239,57,88,252,3,80,4,36,146,169,202,178,152,30,107,19,165,123,69,202,194,222,26,166,226,50,103,205,116,78,22,14,29,5,118,27,232,129,33,13,182,234,143,129,189,116,74,70,160,227,60,231,155,103,179,87,207,203,29,240,169,15,74,239,93,80,162,34,215,18,194,199,125,168,196,57,229,132,238,184,241,81,120,149,180,32,58,71,113,218,52,150,119,20,59,32,254,61,103,232,252,250,15,168,142,254,224,72,147,255,160,207,187,54,66,231,13,11,200,229,222,88,252,69,74,255,192,226,193,70,58,46,43,173,98,156,235,21,241,63,68,207,149,62,227,100,193,156,100,2,145,5,91,47,134,80,223,49,106,9,199,86,247,225,238,168,108,89,56,36,140,201,0,91,92,96,102,255,193,32,122,193,60,64,204,152,0,124,212,37,129,61,179,123,238,53,147,8,14,56,92,101,242,93,76,162,38,3,121,239,88,35,73,204,59,63,72,64,240,249,246,227,199,95,81,230,191,63,160,41,141,237,135,165,113,67,60,127,100,139,138,163,75,120,72,183,14,111,206,55,247,220,11,61,197,88,38,200,90,80,46,197,78,197,194,16,4,33,27,197,245,106,174,208,252,109,11,109,109,227,45,179,152,172,122,135,56,179,168,184,58,44,128,96,247,50,98,64,73,114,211,35,111,70,190,13,190,229,181,160,197,189,220,75,51,181,106,153,222,59,114,149,251,78,254,216,218,59,157,217,240,210,55,83,153,1,205,158,13,191,215,72,131,32,41,86,126,55,243,242,62,178,179,228,170,25,75,56,38,86,162,234,124,92,82,190,13,96,53,161,181,247,187,21,204,47,137,173,143,105,36,69,60,31,72,137,243,235,181,17,48,190,26,4,54,128,30,143,141,251,34,148,204,14,187,246,91,40,17,73,238,181,181,41,101,142,222,168,114,152,234,157,66,214,163,130,69,152,248,249,40,138,97,159,218,31,102,166,66,98,52,50,216,215,168,56,241,169,185,255,186,255,81,10,50,125,36,21,247,13,143,7,72,47,159,97,182,253,187,35,133,134,90,222,241,155,203,44,34,175,143,215,59,147,72,37,92,244,185,12,137,140,227,135,143,114,154,55,94,239,254,175,37,83,251,22,169,129,99,166,40,52,125,220,84,214,86,45,60,231,10,234,137,215,67,39,25,147,111,156,149,54,109,98,190,44,181,57,176,173,186,174,213,179,208,71,86,246,78,164,93,255,49,211,63,133,194,130,69,229,26,98,184,22,195,183,33,128,32,74,182,146,42,45,108,19,114,32,93,73,99,70,178,93,73,235,13,173,126,191,181,115,169,225,208,173,24,9,130,193,240,78,158,177,253,138,63,244,160,163,83,26,4,4,52,77,235,58,35,36,22,200,99,189,123,176,139,199,109,168,18,111,137,129,7,35,223,99,134,227,254,161,153,202,180,40,34,86,68,106,108,123,62,0,227,91,85,175,245,52,208,34,168,139,64,253,70,14,12,249,149,167,117,93,137,151,127,7,215,188,142,106,56,132,14,208,139,80,128,95,36,126,134,108,255,52,43,128,10,192,74,238,5,132,229,122,197,239,246,169,165,96,236,133,2,184,107,71,32,3,42,132,134,95,158,55,109,5,31,96,244,58,247,87,7,160,41,19,56,12,48,146,92,101,136,212,199,28,226,218,132,163,232,122,155,130,169,140,146,224,27,84,204,211,55,27,121,244,74,12,251,171,194,134,70,117,137,13,254,44,228,3,7,192,53,8,184,90,92,23,151,33,7,125,131,114,135,203,102,250,95,135,13,109,142,66,140,234,171,87,158,80,200,152,247,144,79,214,213,75,196,76,79,149,93,107,156,144,118,53,198,7,46,76,245,183,139,254,82,57,30,12,128,89,191,139,177,240,75,119,250,110,117,246,152,254,199,216,13,117,246,138,68,224,64,68,180,246,3,108,80,150,227,219,194,176,233,174,232,162,193,3,132,81,204,48,70,86,179,218,11,50,222,212,155,185,103,74,87,187,30,106,90,108,240,141,212,140,44,37,76,116,25,9,230,221,160,152,206,13,11,224,195,161,228,204,221,49,143,89,107,175,119,223,115,237,237,197,105,177,204,50,133,177,167,74,4,10,151,36,61,98,185,24,18,101,249,90,136,234,225,103,53,18,189,59,109,77,198,79,233,175,57,72,4,241,216,11,143,141,25,29,41,167,228,111,137,203,139,251,97,45,75,121,38,175,230,192,167,122,196,168,95,21,75,52,104,108,25,27,34,27,221,211,202,16,16,124,127,142,195,127,224,202,117,227,235,174,14,120,137,37,250,182,37,127,19,33,26,121,62,211,191,147,146,179,135,93,105,129,225,203,166,174,230,132,150,138,59,208,20,197,61,209,211,0,55,42,128,70,149,227,218,31,234,44,232,94,85,145,108,240,90,73,166,107,149,232,127,200,132,121,192,70,147,214,35,111,155,254,141,159,161,195,131,93,166,90,137,170,214,71,240,193,136,241,8,0,249,132,152,103,212,170,164,5,35,213,150,78,93,9,2,16,217,51,12,136,226,221,79,188,48,150,246,94,172,45,5,198,158,135,243,202,100,162,107,149,172,122,159,72,63,203,155,14,185,106,225,97,74,205,85,10,126,143,113,148,17,239,239,182,32,0,43,5,216,187,247,30,149,73,214,15,94,249,216,100,129,201,223,113,96,190,98,36,229,60,212,12,157,54,161,255,249,172,197,12,48,40,216,97,202,40,35,136,163,225,191,251,183,226,97,63,44,237,195,33,48,85,74,160,64,166,168,71,244,249,241,238,241,113,93,241,39,201,30,96,17,114,210,41,226,119,216,237,75,116,122,237,39,21,5,220,185,168,198,42,172,185,240,4,221,241,175,187,105,254,42,6,76,151,161,74,248,13,175,45,157,150,186,1,146,132,61,1,69,194,140,148,22,77,167,74,120,142,41,229,58,222,53,97,109,222,68,72,166,94,247,22,53,3,247,172,177,12,97,90,195,107,10,14,54,155,196,206,34,7,202,124,141,115,125,174,11,104,153,227,102,182,24,230,145,173,143,239,95,85,100,227,198,37,199,187,102,81,184,62,40,200,170,100,93,241,8,163,85,89,240,196,205,61,220,107,149,92,241,150,119,142,70,138,166,54,78,140,182,193,21,22,182,179,157,39,186,165,30,15,121,131,107,201,109,216,202,159,188,248,76,38,196,47,5,97,130,69,42,185,124,33,138,119,28,51,105,157,86,115,124,115,210,14,224,230,94,39,139,83,82,118,147,171,218,171,164,161,236,160,193,79,170,215,197,49,83,135,227,107,219,83,135,7,233,181,18,27,131,40,114,110,132,210,171,156,166,179,240,153,234,118,175,156,220,164,57,32,174,208,18,237,106,241,6,142,252,168,106,222,101,2,217,203,168,236,38,150,11,167,95,139,143,252,158,149,210,150,88,27,46,95,136,76,63,129,212,131,127,86,63,244,95,170,84,77,69,100,101,24,250,41,139,128,129,45,225,229,121,170,21,136,186,175,133,149,135,94,137,62,39,113,81,105,21,192,119,66,160,94,47,93,58,143,124,118,168,155,140,14,7,86,92,50,64,158,102,28,132,243,118,163,112,233,177,162,35,0}, {88,27,165,127,96,55,131,144,188,221,136,92,4,201,235,76,148,125,2,114,110,98,163,10,5,35,198,4,246,205,73,168,203,135,182,91,216,173,216,194,102,49,179,193,163,76,252,165,53,139,190,8,230,224,237,87,232,245,19,108,141,170,113,136,185,248,0,254,175,192,236,38,169,60,205,80,43,17,150,236,104,207,223,253,55,238,94,48,117,168,140,252,234,4,236,106,252,0,166,164,25,96,47,170,41,50,13,208,196,212,133,255,36,151,228,252,65,131,106,184,126,168,177,73,143,124,242,235,47,19,63,123,144,236,33,234,14,103,25,252,131,167,49,53,230,129,84,90,121,224,17,135,148,49,137,160,118,111,158,116,221,127,139,1,240,78,189,98,241,232,6,61,234,201,206,125,66,161,237,226,50,56,106,83,25,186,11,243,199,236,168,56,89,111,24,20,246,176,33,222,46,24,204,40,245,210,149,201,74,75,6,40,189,112,101,179,212,100,90,148,116,169,68,13,70,42,176,221,70,43,208,83,109,246,86,18,33,192,27,77,59,171,33,249,88,151,91,254,114,93,37,106,167,214,239,227,36,123,158,141,212,196,168,216,8,63,216,177,165,117,117,174,138,212,224,4,239,115,72,125,151,255,161,180,46,55,150,57,67,192,233,9,120,202,36,72,133,6,196,96,225,78,116,20,177,195,175,192,78,255,7,160,122,113,200,183,153,69,14,128,4,32,188,197,239,169,3,63,222,158,88,66,146,97,232,168,24,65,150,251,67,69,226,61,91,20,104,111,21,107,119,230,74,93,2,75,214,241,57,141,211,59,145,138,231,19,168,173,98,6,187,35,229,238,130,200,181,131,167,123,213,67,217,177,163,89,185,16,170,188,27,55,81,159,248,106,160,177,171,154,97,106,100,144,227,99,98,181,21,214,84,119,156,221,70,163,125,119,241,88,146,192,26,193,189,98,51,213,88,209,161,155,106,56,148,173,249,29,251,20,116,150,81,242,86,78,193,47,199,50,18,51,200,36,135,116,109,174,183,154,136,13,75,242,149,39,33,25,69,39,3,170,53,74,203,89,182,24,132,102,205,24,41,213,112,29,86,169,239,220,71,156,81,88,8,5,195,143,186,51,10,249,149,97,76,97,93,50,70,155,235,75,235,126,185,215,195,166,80,0,176,164,67,45,238,197,52,97,202,241,91,146,22,150,213,223,152,116,202,252,182,139,81,203,145,67,30,139,78,97,96,102,253,152,226,53,192,147,9,247,68,246,71,213,71,142,115,141,126,104,123,197,139,47,132,74,42,158,250,253,62,44,44,72,29,250,38,222,68,190,114,191,155,51,8,6,213,119,126,110,27,44,92,173,28,213,55,170,132,71,220,158,217,17,99,228,169,235,36,253,33,85,200,177,11,221,194,210,38,97,185,63,249,150,113,157,213,201,62,202,13,85,59,55,142,83,116,202,115,168,71,180,200,249,120,191,197,204,54,24,124,165,155,183,184,138,99,108,75,240,38,14,91,192,82,101,105,231,224,176,14,1,175,104,63,232,66,157,194,197,147,200,176,134,109,165,144,192,107,10,170,162,147,8,187,38,171,233,163,196,92,101,165,184,233,85,251,185,116,78,6,95,103,48,176,86,162,51,67,105,8,192,15,143,92,41,31,216,153,34,100,218,70,113,89,189,74,215,188,235,111,233,248,155,73,231,242,31,186,105,79,153,100,55,119,2,189,213,138,244,63,122,122,87,207,90,94,130,186,181,125,93,81,107,168,114,83,88,65,128,210,252,159,11,147,64,123,110,194,166,0,58,168,5,141,163,252,114,49,0,72,9,232,76,76,203,162,255,126,251,110,49,253,29,238,46,27,171,47,13,218,107,143,217,8,193,60,219,104,96,105,133,94,126,90,7,31,199,39,166,34,88,237,27,232,12,90,211,103,255,97,34,111,212,231,113,204,155,180,93,20,49,210,242,240,166,176,219,200,255,1,157,129,134,89,91,30,6,60,250,122,215,98,149,188,236,40,72,196,99,192,246,108,10,2,28,226,1,194,203,197,196,222,25,112,170,35,51,162,112,234,183,88,51,83,158,119,211,71,44,238,47,29,79,53,159,229,24,206,102,28,110,203,185,13,204,129,32,96,133,105,89,42,233,28,29,226,202,23,231,199,240,50,208,52,139,122,180,101,160,137,111,150,246,4,107,54,98,90,218,153,6,235,48,243,92,7,164,14,49,145,217,45,241,230,216,79,109,40,130,131,60,187,14,125,90,215,32,248,163,249,15,212,124,47,200,21,85,142,239,232,209,65,93,17,26,38,209,29,98,141,240,150,240,172,195,168,3,3,26,237,252,121,144,44,82,169,8,239,251,217,113,125,209,189,47,81,175,29,149,215,110,143,56,196,229,6,75,146,85,220,218,143,172,82,89,175,192,239,60,237,207,75,243,22,247,18,161,85,122,217,237,132,190,174,118,26,116,108,104,168,250,2,183,168,55,114,13,82,54,135,200,238,227,171,17,98,188,212,43,71,242,82,51,114,243,204,102,197,40,242,28,6,17,70,18,3,210,142,237,111,250,77,229,33,138,125,251,92,127,169,21,121,202,21,186,152,234,229,180,50,120,174,101,66,150,28,98,51,61,216,232,128,215,71,198,193,6,76,180,209,43,171,52,19,207,134,146,18,221,178,178,217,2,103,99,208,198,91,131,211,166,98,204,158,36,18,25,150,72,138,148,89,152,112,49,168,119,177,222,104,47,232,10,155,42,159,70,135,112,35,160,228,141,178,224,89,173,171,238,157,139,41,76,92,225,91,92,254,229,79,71,151,57,92,123,180,254,198,83,101,200,206,249,111,151,120,173,155,41,208,166,219,246,227,206,247,67,173,86,208,230,138,216,224,167,158,43,99,214,79,11,160,112,9,191,100,3,70,199,104,114,104,6,47,135,104,71,101,158,250,36,55,156,126,202,121,84,46,211,18,195,109,198,64,32,165,117,131,45,85,217,102,173,123,60,33,16,255,209,138,89,148,129,134,80,179,95,15,44,131,171,67,11,152,26,18,242,246,120,122,190,103,89,17,176,66,251,58,231,130,9,132,71,217,234,188,57,20,86,65,222,34,164,63,235,192,186,80,192,220,83,53,38,43,50,236,210,226,216,62,181,83,55,84,242,151,191,247,75,237,160,91,203,62,101,50,86,119,223,10,93,33,91,252,144,149,232,53,236,223,170,209,174,105,51,108,106,155,72,24,104,67,152,75,126,171,72,203,0,229,15,135,8,250,67,185,124,30,72,239,155,143,215,161,54,19,114,200,105,204,84,55,225,103,161,1,206,111,27,5,66,102,255,158,10,169,73,139,59,31,210,240,79,226,190,72,132,197,40,88,53,48,59,220,137,6,21,146,80,62,255,43,141,246,27,185,43,101,8,80,219,3,133,182,0,172,192,116,226,180,242,236,222,98,5,225,208,142,10,203,56,11,110,135,192,126,35,130,41,24,194,6,143,3,113,186,116,201,167,188,45,68,189,192,156,1,147,248,181,246,109,198,76,16,161,103,31,142,32,148,55,21,143,73,141,2,92,146,154,22,156,38,241,182,56,91,139,232,167,87,70,207,140,62,185,96,78,217,10,166,108,226,162,34,219,64,89,234,221,99,122,145,71,121,229,61,105,6,167,191,228,48,35,253,81,183,170,185,74,142,92,10,222,192,204,225,36,122,241,140,192,143,158,59,27,241,107,191,175,196,207,218,207,47,91,22,51,15,250,171,29,200,237,128,16,134,61,149,70,247,238,136,60,83,243,222,159,77,216,69,204,186,228,51,38,198,213,2,97,213,21,20,159,178,189,51,63,119,159,245,55,11,209,91,196,190,129,92,214,180,74,94,149,168,101,73,248,205,195,97,129,110,101,229,123,59,32,181,22,251,202,212,78,46,218,155,249,105,91,252,200,240,39,91,185,155,112,154,245,93,54,87,179,159,90,65,144,152,128,43,170,99,209,230,17,252,184,128,197,99,35,128,232,123,149,199,4,10,59,121,174,1,186,194,230,184,93,158,121,205,210,78,126,44,161,69,94,187,9,112,23,126,79,1}, {76,194,198,167,58,242,188,207,1,73,228,47,116,142,133,18,76,226,18,121,180,99,242,35,128,155,0,227,2,126,187,126,140,11,132,216,119,252,19,87,112,147,6,199,219,81,253,231,75,243,16,155,75,51,70,39,233,28,167,179,135,212,55,189,132,242,101,83,209,146,57,130,173,115,127,90,134,62,241,245,244,209,79,180,252,61,203,139,204,32,19,96,103,218,191,79,151,104,239,192,150,204,50,157,232,75,234,6,116,60,84,27,26,55,92,215,233,211,6,146,55,52,75,29,8,15,109,100,188,39,171,134,245,53,24,51,77,161,68,3,238,213,100,35,199,226,111,105,179,158,209,161,144,51,39,0,35,235,9,198,30,95,128,38,219,123,25,46,116,236,252,239,133,149,61,144,102,83,42,41,123,206,203,6,189,48,13,164,21,135,232,157,162,250,221,209,127,77,226,82,250,112,231,71,40,99,216,228,227,178,93,147,133,170,137,118,126,22,39,23,7,219,191,149,22,179,119,241,200,39,189,249,221,38,235,122,205,135,205,168,55,51,83,176,63,116,214,200,94,108,123,207,244,36,27,51,141,252,241,16,207,110,233,155,133,205,69,221,212,165,33,122,87,51,97,110,158,36,85,165,46,248,65,155,33,77,142,222,66,55,135,145,31,92,2,48,20,125,170,34,131,137,214,134,154,218,222,93,154,121,218,86,63,8,17,171,18,44,112,1,224,229,236,29,91,172,134,38,122,239,207,169,206,196,64,110,212,27,132,95,43,255,176,69,193,71,125,130,93,98,23,54,192,191,172,121,53,74,176,215,156,65,247,187,150,180,244,207,150,25,44,41,68,59,165,248,74,53,120,117,249,108,52,24,69,198,89,220,185,105,133,66,80,206,188,133,171,229,237,236,187,7,224,151,57,81,39,10,245,26,34,38,67,255,246,44,152,15,168,53,34,216,253,245,203,208,227,98,74,1,248,110,28,226,1,39,150,45,188,252,243,33,161,71,173,14,142,8,30,61,80,108,89,161,121,49,161,169,63,246,157,17,11,234,140,246,225,193,135,135,251,87,20,21,115,255,69,167,214,90,113,218,49,241,10,40,98,77,220,220,212,115,106,133,141,223,207,117,220,206,113,66,105,223,130,251,130,142,0,15,160,67,5,179,122,210,140,62,199,28,32,82,101,211,2,92,83,3,252,73,223,149,141,152,234,9,216,110,1,193,16,193,127,6,71,10,200,239,197,191,129,240,248,237,39,42,173,124,175,20,37,132,235,190,159,182,182,115,60,108,169,35,80,190,215,56,13,172,162,131,210,247,56,157,105,50,164,198,148,180,219,91,81,168,80,62,125,38,244,137,149,140,80,141,64,247,155,123,212,72,46,176,2,79,33,6,83,74,58,107,52,250,66,224,234,212,195,213,48,156,254,93,96,193,254,63,28,240,219,50,234,254,19,42,186,131,173,241,141,238,86,158,11,252,83,126,21,138,105,84,250,68,213,49,5,229,91,24,104,156,206,119,124,159,208,89,248,161,186,28,39,194,250,207,174,105,52,170,85,29,90,214,196,153,169,6,208,65,141,181,66,90,6,225,7,96,138,48,111,84,221,113,185,134,75,196,46,225,157,66,91,62,241,6,195,167,40,55,38,2,222,100,249,57,105,16,212,219,67,199,88,164,242,227,81,182,193,67,229,109,253,41,210,181,153,221,65,2,58,181,135,42,85,192,144,212,92,13,146,101,253,47,243,226,198,145,201,30,14,118,80,135,175,61,1,48,102,226,28,87,79,109,21,245,36,90,134,20,135,176,49,179,12,251,218,109,183,175,46,153,193,92,25,138,233,175,87,141,153,244,22,71,179,221,79,31,105,98,190,115,204,165,30,13,112,102,37,81,241,101,91,96,42,116,128,135,185,140,57,137,146,242,236,217,246,172,225,253,15,217,95,47,247,48,152,98,93,126,26,112,5,187,144,168,173,233,129,22,37,137,36,173,108,224,207,47,156,230,244,118,5,89,201,171,216,15,34,207,157,196,57,111,42,79,31,124,103,17,101,15,105,100,67,217,167,5,237,255,56,218,222,199,24,169,22,132,1,64,37,21,6,167,34,52,175,87,250,151,105,141,226,244,177,110,164,50,55,21,40,35,244,13,237,252,78,129,74,144,146,116,6,13,242,174,63,69,52,214,160,171,163,155,45,127,51,244,212,94,68,190,185,56,194,98,97,111,90,212,179,180,245,147,58,58,170,124,177,254,96,130,122,215,157,243,111,74,18,233,215,2,16,227,230,147,86,175,29,174,168,7,39,158,79,213,102,39,114,201,135,64,189,38,132,220,55,152,174,253,42,64,204,56,16,216,172,174,174,61,0,104,147,36,222,114,64,50,65,225,132,158,141,86,242,18,148,139,251,105,73,240,130,119,135,145,158,245,64,219,32,253,227,241,222,85,132,225,248,225,250,102,52,166,140,108,101,161,231,68,239,221,231,194,187,100,106,136,31,186,69,84,227,237,121,3,199,250,18,50,144,39,244,234,150,53,156,26,9,235,10,188,114,225,106,14,92,41,36,77,163,227,54,169,182,40,235,171,73,10,124,79,147,230,124,79,50,223,235,192,180,73,170,162,34,58,37,217,73,170,180,218,226,222,180,116,33,108,209,208,154,206,211,143,133,154,252,59,113,28,162,2,45,220,176,68,63,121,169,235,51,124,123,100,78,208,102,194,162,196,92,60,39,195,76,247,29,184,15,148,6,204,46,170,82,27,225,91,67,182,251,96,16,24,77,244,90,180,72,65,167,12,220,54,23,67,167,86,7,245,60,196,62,145,244,179,43,60,53,74,5,73,17,209,110,137,236,49,75,183,218,137,81,164,169,85,63,69,145,186,150,136,108,6,33,49,179,182,54,215,203,83,76,188,197,93,31,84,249,230,133,253,178,175,206,101,48,156,27,216,16,251,27,79,217,159,43,192,103,91,156,45,224,158,85,43,226,80,185,98,242,220,206,23,74,180,94,219,38,25,174,64,143,15,61,53,220,152,196,244,252,13,122,109,192,116,39,93,128,232,244,140,55,63,182,37,52,40,153,45,225,85,42,79,110,56,210,150,39,20,76,79,230,199,131,190,134,86,160,89,21,61,75,254,148,104,193,144,32,33,113,112,105,4,62,66,234,16,119,71,182,150,185,165,97,245,238,232,184,211,64,238,122,202,186,242,185,70,170,119,204,52,251,46,65,174,231,188,30,191,242,159,168,2,166,154,119,198,72,236,189,227,16,244,169,89,195,141,129,33,185,125,166,184,189,56,196,240,226,100,239,250,89,29,26,40,58,102,25,84,50,185,172,203,162,242,242,247,191,0,103,62,5,237,215,100,86,145,123,130,63,148,234,53,109,165,204,139,147,19,8,247,214,203,130,83,134,46,43,53,186,21,154,238,150,238,160,169,114,141,167,241,122,187,29,232,99,214,12,154,24,176,100,68,136,247,203,247,190,91,69,120,51,120,88,48,127,179,219,243,196,138,0,95,22,208,130,223,254,226,46,156,217,15,42,57,172,120,53,39,80,68,97,2,165,24,251,133,124,182,135,121,105,90,111,102,206,226,201,78,40,131,95,242,158,83,67,74,184,19,43,46,83,147,229,136,90,196,27,163,16,108,177,187,23,55,165,128,197,229,30,91,182,192,253,48,32,237,102,7,71,225,87,126,229,176,2,123,217,227,145,4,156,114,114,222,137,161,39,139,80,232,171,206,142,247,177,237,220,229,129,219,118,211,88,82,121,165,138,24,201,142,229,150,82,27,170,15,67,175,202,199,193,46,56,33,18,185,70,218,97,3,192,126,164,88,95,239,198,65,250,162,239,39,56,0,82,6,210,39,125,95,67,139,111,198,103,119,109,54,110,196,61,223,4,169,188,46,238,115,179,3,191,215,174,142,13,23,177,59,66,238,11,146,2,237,6,246,73,232,20,154,71,163,84,36,122,245,175,67,1,182,11,65,92,116,2,78,80,200,45,154,231,23,247,108,139,250,91,131,90,105,136,126,103,59,166,207,94,26,157,126,16,36,208,134,122,110,106,18,68,227,116,63,81,139,1}, } ; static const int16_t precomputed_encode_1277x2627_x[precomputed_encode_1277x2627_NUM][crypto_encode_ITEMS] = { {9453,-19393,26149,-15375,16233,-24628,3574,32553,28622,-11912,8815,1363,12204,7502,3256,-4991,2824,10568,-18388,-26064,3248,15910,15630,-11479,-22334,-16982,-88,-22672,-13494,28504,-9356,22894,14034,-2760,31183,8326,656,11946,-13130,-15025,31359,1458,23134,11208,-32527,16006,32070,-22138,24929,-9757,-9550,3437,24875,-32266,7549,-30119,23855,-15164,12053,3496,21095,6573,6511,9227,18486,-4847,6806,-25339,32369,-9227,-31653,-18005,22906,-14132,-148,24530,-27961,27238,23843,-24099,-23515,2099,23684,15613,920,8505,18357,-18938,-9204,1290,1505,3111,-24562,21158,6018,-16471,-20402,4476,30435,21773,29382,6602,-8582,2769,-32188,8759,-30607,21726,516,13532,25632,-30092,-27291,-24169,-24759,22581,-25406,19417,11874,11028,11413,2608,-23930,21016,24706,25322,16281,-13505,-15755,707,-28160,30091,12445,-27403,-8261,13493,-32700,-17307,-31151,10511,2316,-30755,-15962,31991,-13084,-27886,997,-10866,-5719,-3296,-7219,-30660,18290,-14435,4075,-13051,-16845,-15889,16499,8388,15215,10639,32742,18377,-12199,-6623,32401,1108,-20141,-31933,23209,-26643,-32525,23509,5900,26834,-3518,-2180,-27502,-26961,-10511,-14496,3775,8903,-32318,-17970,9607,-12449,23395,-29340,7927,21538,24897,-22742,25567,3296,29429,-6674,-28100,32124,611,15098,-20167,22752,2517,4895,-9281,8813,-13686,20957,297,-2678,18024,19186,31595,13257,-5825,22643,-23406,-28366,12001,-25777,26017,26676,27505,3380,23825,-32038,17500,31546,-26382,-15957,13230,-14559,-16608,-19426,-14445,-16609,7783,19848,-6022,29368,15875,-19270,-8999,4088,-19508,19204,24309,3727,-26903,10020,-31589,14466,-3174,-16705,-18756,-14377,13386,-23603,-13127,21843,19782,3146,-20801,26666,1777,32422,20843,2513,21787,31132,-16827,78,21493,8357,17543,26526,-19453,22775,9784,17100,10587,28066,-27533,9570,-20579,-29351,-21746,-1849,22176,15820,10656,32202,24515,-22248,5437,-27800,-711,-18648,-28607,27605,-28902,19273,-6590,18735,-29315,28063,-29428,-1540,1962,23003,29530,-23859,-20989,6659,-17913,-16556,11486,-25445,-12762,-494,12964,-2659,26475,3851,-24169,-31581,15913,-25265,-5609,-4379,32557,12964,24707,-16172,13436,-5655,-9496,4719,-14216,-22562,2635,10953,10914,-19879,-28695,-19303,-11843,28269,-17256,-3103,11492,-22762,15692,21869,-30794,-14634,19557,-25182,-31615,-4174,1700,-19004,22370,-17550,12730,-3394,23618,-27256,-29859,-5222,-1487,29232,568,-13185,-24241,-2494,-28945,23449,-15658,3181,-17149,143,23388,17522,-6604,8652,-4226,27825,-16188,19621,-475,-28004,30193,-32609,8993,5075,7140,1890,6887,19392,-14696,-2565,-16340,15240,9243,-25790,21794,-11778,5176,-13167,14263,7256,-18755,9643,-24848,-29148,-27739,-9130,23971,-15533,-9061,3916,-480,-16040,18874,15472,-4133,31975,28355,26495,13961,-21416,-647,-21900,-27279,18150,-30652,11633,-24330,10907,-7180,-12495,-15254,-11057,-28847,-11998,-27694,-16411,-31493,-3474,26156,24936,10051,-21051,-14185,28631,-27005,-20094,-24296,2116,22290,22474,28260,12536,-28179,-27256,5565,-1611,30614,17866,5512,25789,3052,16813,18585,-27644,20798,16831,-15928,-5098,3355,1849,-18611,23778,5846,-26892,23650,-16931,5829,-17595,-21855,-2345,13280,12004,-4986,-16404,-5824,15361,-6496,6004,-13923,-7491,-6036,-5075,63,27127,-862,-6868,32096,1258,11303,4608,9015,-26616,28729,-22468,6893,-2003,-12673,-28583,11415,18915,25186,-5661,12918,-29173,-4615,-30514,29864,-29798,6716,14951,-32030,-10132,29600,14975,28606,-9257,27179,10830,-8304,-11820,503,-24922,13130,24533,8932,28968,-18387,-13374,1138,-25897,3105,-22475,-24594,-10862,14600,16298,-5665,-28157,-10703,22375,26964,-28747,-12719,-22237,-28206,19640,18420,29520,-6803,7192,28347,-31437,29364,-8134,17341,6170,-31738,-20382,-23022,19646,1180,20057,-25443,29488,24770,12207,-18553,21031,-8387,13396,-21612,-136,-4279,10435,-11017,-32322,-7785,17635,-7872,12800,-10510,-9897,-25693,-24482,-28138,13239,-8914,-3846,-10452,-25332,-9075,-26361,-12746,28622,29745,24942,16983,-17572,-14176,-9794,22690,20984,-30313,1998,7902,22930,14519,12657,-21304,8141,17290,-16304,-16488,27526,25710,7773,-32002,19211,-11703,-30242,25902,26110,-9710,-14378,-11924,31934,20985,107,-5033,-6182,-14981,11405,14710,4895,-2402,-17528,-14259,4996,-27566,7441,-17316,16981,-5593,-12851,-4709,-28997,-25815,21121,16050,-29988,-7136,-24780,-31671,-16062,-15134,-12229,-24706,19542,-17787,22557,-16920,17009,30664,-15512,27551,-24531,27485,25512,-8239,-17471,-7679,26615,-3663,-22100,7819,19609,25431,-5768,-967,-31980,-32568,-29742,8425,15425,7476,26847,-28009,-31944,-5544,-3784,10905,-12100,31881,-28366,2998,-2731,13211,-22932,-3684,-4767,18421,8991,20373,-32070,2411,3383,1280,-19213,-31680,-20847,16648,-8382,-31139,-25063,32505,-22028,25596,11090,27772,27978,17118,-28328,13649,23808,16462,28505,-31209,24164,-3920,1012,-18336,-24550,-5075,-24017,8464,-30394,-16487,-13894,5652,29910,-10502,-7885,-31080,24454,-17613,23666,11197,-13915,21439,13433,21108,24415,18907,3707,31304,7418,-27670,27954,-29995,-20219,7764,-1248,7852,-15167,-19010,16641,-3555,249,28884,-20407,-32455,-3603,12495,11362,-10998,-21871,-5393,1122,1696,-4679,-2104,23833,-28246,-4360,281,28703,-27263,3550,-19293,-23589,-14882,-18208,31319,26292,24233,14075,1518,-21991,-14645,-15757,-30208,12861,-31060,12359,6004,21488,14865,-4281,963,-13786,-31748,13313,-10291,-11289,-27458,24246,-15192,-5758,2363,-17402,-4470,2598,-16038,3120,5990,23323,-11490,15642,18742,-11532,24661,-5471,-30792,12348,-13316,-6633,31568,11121,-8092,20407,28475,-10264,-762,-10145,25127,28307,21134,22695,8312,3673,12275,25522,18463,7364,-28136,-2321,5302,3823,-30488,-26706,6209,-5174,23537,14344,31574,-27429,-16181,31230,-1825,21127,-27817,21201,10688,-12257,30351,13684,-29322,5864,-32361,-24911,-17679,-22047,21857,-15090,-27523,14781,-4533,-4301,-717,-10579,-2230,-27670,-3396,29179,-17572,-22604,15441,-1344,-17387,-12753,22550,26293,-32165,530,-6455,13113,-30993,28826,-11298,-11908,19454,-18428,-29222,19573,30410,8366,-12416,-6697,-10429,31481,12025,-11981,-27232,-29967,-1357,-18882,9272,-31165,27373,10150,18990,6092,24774,6432,31449,4319,-12709,2706,-23561,-8549,-22384,-28926,30981,-4845,-3316,-1416,9123,-18153,-30505,-30617,-5920,32170,-18915,6436,-30767,-14803,-27820,-30637,5337,-6681,22953,-18834,-20089,-17036,13146,-19372,-19849,-19020,-8575,-16700,10369,-30006,9825,-5627,-6903,-27420,-10615,10300,22132,-25396,-13978,-29851,-31512,-9583,32632,29518,-23584,-17312,8371,-16623,-294,487,24660,25849,17044,-17184,9877,-2339,-23544,17302,-20643,13395,-18632,-23891,13361,-1346,-13696,-23073,16413,-7313,28006,-17256,20771,-19696,-30775,-8928,27488,-14435,-12227,26261,-27751,11886,6520,19492,-24000,-23481,-31332,-10451,2589,23435,7303,-30417,31620,10195,23018,-8451,32191,-4974,-29992,8434,-27464,-27277,-19396,486,-18913,12363,6264,27694,-17770,-7222,29489,-28277,-10570,-16564,-28198,19702,28199,914,8663,14296,7551,15826,20187,16313,-30651,490,-28128,5159,14423,10341,3776,-17524,24924,-18740,-17291,-9206,-29391,-27438,-14018,18068,-6381,-961,18477,14846,27649,-5559,9134,-2297,-1606,-5792,14655,-18191,10512,6410,8074,21305,7433,-11303,24220,-4402,-31847,-32408,-2032,1113,12356,-25764,28220,13859,17281,-14095,5634,-29009,27378,-10559,13004,-757,-24519,14020,6435,-19141,30456,24227,-16967,-24935,-9803,4728,29860,-5936,1893,14973,-25311,-21926,6915,5509,9447,-16834,-5642,-3282,-12809,8496,18081,5179,30904,14264,2862,-14646,21454,15762,-25725,-28075,-27105,-17394,21234,21230,22486,9101,20843,-29429,-9297,27617,321,3575,-14056,-29772,5916,-20827,29749,17504,-15825,-11331,-31604,12135,-2695,-12909,32179,-5673,25380,-24328,26476,-14025,9030,29041,-2925,11472,-6586,15335,-8765,-16213,-15074,-20688,13977,-16464,-21428,31888,-23179,-20874,3344,18736,4601,14009,23122,26221,2592,-12773,-26675,-17887,-6776,695,18180,5493,-28285,6356,-2315,-19090,-20784,14077,20437,13216,-23193,17028,3869,-17728,13660,-29957,-6679,-13669,25183,26693,2493,15270,14564,-21775,-21110,25636,16628,-32682,-19308,-2649,-3084,21014,22714,13098,12816,31583,-1990,-12937,24742,17948,-5625,-5853,-25618,-4151,-31507}, {1403,3847,-30916,26592,-14991,-416,1652,8570,8203,-16589,9435,4459,-25379,-19837,24106,-12426,-29854,24001,17743,-15592,-32387,-12199,4481,-3137,-25563,-2958,19380,-20639,20075,2985,-1556,-30797,-9801,16879,-26740,-21111,-23753,3614,-23648,-15535,11192,13253,11381,8610,22083,-3008,-22929,10861,31714,12246,28483,-9642,6498,-7501,-18001,-7787,-5684,31311,10680,762,-29936,24958,22952,-25474,20145,-17885,23657,-26883,8183,20534,-29800,32701,3599,-9201,22172,-20578,-3422,1552,-2493,-8108,4581,28903,-16825,26012,-25856,-7012,15436,24969,-19831,12473,16651,31818,14878,8824,-13681,27302,16984,6315,21077,14192,19361,-6360,-2130,25761,2289,8567,-793,-27232,24970,-27727,16644,-3192,32340,-11565,1844,-5639,25149,-28622,-32645,-4003,-1265,-1673,12411,-32659,9197,-9382,-5707,-10163,27445,-22159,-697,-27694,-15534,26824,21102,-10487,-10379,32091,13055,-10891,13541,-17285,-604,-6944,-5599,-10321,-22064,9424,-23746,1766,25568,-19804,12303,-21469,19960,-27310,-24771,-22082,-14761,-14059,-31695,10777,-14651,26548,-19806,16117,3067,-30106,-511,6601,17714,2081,-30610,-18604,24810,-21717,-23167,-832,-10819,-9140,10374,-396,-19447,-14437,17795,25176,-16990,-24683,27491,-27415,15804,-18952,29381,-23564,1829,32398,12245,-18333,30243,-4460,-15741,352,-25727,-23986,10922,12374,-5037,22811,-15711,-18617,29591,24913,-31707,-32710,3411,25438,-3703,11274,-11667,-9116,-22953,-12013,21800,-21225,21812,-29793,-5969,-11013,-28877,-30789,-432,-15526,26652,-93,6815,7801,22705,-16125,27707,77,-16044,14581,14124,7791,14539,7383,11316,-22970,1708,14182,-31772,6809,31380,-22284,9854,5249,-31506,-11485,-19912,5317,20661,16956,-6228,-7052,-795,-23338,-14555,2109,28431,-9120,4217,-17145,26082,-16827,28742,14302,23950,8550,7904,-3796,25744,22431,6816,-14285,-26344,-27712,29591,8743,4211,31837,23349,28418,-514,-18435,-17468,-11193,26601,-3539,18616,-14787,22965,15590,-24303,15777,19112,3310,22642,-4642,6329,-31872,-31451,29782,30100,-12818,3819,29356,-29101,29634,-1386,-29007,-17002,31970,29157,-26507,-5623,-24007,27160,-29544,7540,-17167,-27524,7447,28557,-24559,5254,30017,9041,13710,-24784,21143,-24441,-8908,-29146,-29308,30656,-10911,16992,-15730,-29922,-20726,-23679,30573,15586,8375,28869,-31327,11606,28563,27408,2477,-28100,-1024,-26797,1815,32339,-10188,-23081,-29959,26792,8595,-5920,-26459,22577,4167,-11671,5819,-22569,-18698,-22642,-914,-18408,24736,-25536,-365,1476,-22038,-13547,-4919,-26843,810,-17229,-14507,23132,-9104,-2468,-20054,4875,22700,11049,-11695,21175,6758,-15843,20773,-19259,-23074,-1071,-18267,271,19730,31122,8581,-13137,1616,32148,-9524,15236,-18757,2681,-15688,-5293,-24529,4386,20774,-8549,25520,9169,-4789,23489,6503,12923,3435,29959,-26870,-20407,40,12524,-7869,-16415,-2476,11201,-28982,-27089,26383,21161,15741,-12606,-11582,-11807,31744,4291,-4606,-12664,22755,30964,24431,27622,-13340,7567,-6092,-2490,1023,-18437,-5073,-11199,-29298,-5660,-24281,14930,-2970,-16431,-12489,16335,-10147,4085,23898,11130,32748,-22066,21809,-22054,18173,-18974,-24248,15616,26756,-15356,-14886,878,-18735,-15127,-25595,27462,24114,6423,-8622,23248,-28532,-26557,-19815,-13488,-16102,-10130,-10018,-15012,13697,32043,10709,1016,9739,-11960,-12553,25235,-1981,29427,30731,-1445,30840,8314,26021,10349,-15016,6307,-4012,17057,-5067,-7110,-16540,8609,-10528,-4015,-19789,13732,-9277,24943,2330,6061,30328,32729,11018,2103,-13176,-10423,16346,22195,1858,9090,-23841,-23603,-6912,-16045,1726,5128,3891,17580,21897,-15447,28989,16235,2245,-2162,-6216,13982,-9222,-32534,-14932,-27073,20915,-16436,25520,-31249,-8071,5558,9814,-24130,5678,-27526,-7784,-2122,10667,-10690,1239,27555,-18736,8921,9000,-14755,-30966,-28442,11115,-29511,-17923,-3404,-10129,-31170,-18518,115,17127,8454,24949,17778,25602,30421,-29541,-5992,-10198,11779,-8049,-14789,-8205,-9203,-27750,-15607,-23582,24498,29116,-32715,-10861,-12662,8700,6145,10521,-12214,-25434,-16647,7830,-13461,-26233,15515,-30183,10132,-27178,22976,-14650,10230,-23735,23684,16803,13979,16576,6146,26351,-30425,-30073,-20455,-30354,17257,12354,32585,-17800,-21815,8954,31357,20317,17076,-14700,-5574,9151,-27003,2762,7094,23241,31740,-26556,-11316,9732,25721,13394,20039,-17441,-14935,21153,7932,-17338,15282,-18168,22009,15445,9587,-14224,-25652,30863,-21042,-28085,-12395,-29646,-4481,-2319,20164,-18338,11943,-22275,28060,-2480,5715,5758,23420,26315,-673,12300,-23779,20985,-19830,28685,-25647,18253,-21543,-27103,-3871,11565,-14486,-26118,-32459,-24333,-26353,23993,16794,-23518,19151,12747,13615,-29183,-13884,-5038,-16810,30259,2731,3202,-1875,-19830,24014,-32189,-16175,-13158,-6447,26489,11889,-20868,30,-19295,-22841,-17345,21109,-12856,5859,11876,-23519,-14616,-27841,-6152,-3028,-14994,20386,-5861,29232,31582,14789,29523,28510,-21735,20283,-13237,18705,30605,-31664,-188,27440,-19943,17171,-4478,-12858,24056,-11136,12181,10240,12923,13201,-28222,-24796,30500,10797,20277,-8681,-9452,24551,4294,25541,-22978,-12383,17736,-777,28212,24917,22082,-22177,-27423,27205,31408,3657,-30277,-9124,28054,9967,15284,-7096,-9681,-22180,-6360,-25142,26163,-3955,-18457,-17321,27578,-10283,19097,21152,-637,-15621,5348,12104,11202,-9774,21982,5600,-27614,23616,729,-20714,-6476,-11429,12856,323,4820,-16499,-23545,-1850,-25590,-25889,24491,-31890,7930,9477,1649,-13858,5276,-24049,-6086,14059,-24849,-30047,21292,24155,-5218,-27195,30423,32248,-27429,21313,14150,-25130,-31122,31485,11573,-12047,-29802,28708,30400,-2472,-18259,24200,-13257,-27577,17048,18740,-3006,10086,-32159,4602,5754,-25865,491,-10760,7664,6239,-15571,12042,29535,14273,25628,3653,-26567,-13637,7511,16644,8348,4833,179,13268,1996,7245,-20099,-22148,24556,-18276,-26769,14195,26437,-6141,20048,-1540,24862,10504,7956,-5190,-6751,16469,29735,31654,26229,-6544,24304,-30875,31270,-24051,22426,-15389,3703,-3528,2869,25014,-30278,1241,13942,-21752,12676,-26462,-4518,-26996,3782,-10902,5739,23751,-32628,-628,26722,-14258,27030,-28001,-6365,-5910,-6339,-5748,22813,4900,-29025,-11062,29019,-7423,3251,15044,13329,24709,23609,-32101,28346,-3878,4989,25113,-32595,-7631,7940,-4022,44,21355,-3528,23581,3690,-9545,-29758,-10810,29502,187,-28609,-832,32476,25119,18680,-13661,-10550,2452,-25554,-1696,13233,30480,-25366,-32278,-27546,-9621,-23959,-20523,-22188,17164,17125,19503,22063,14041,2547,8581,10023,203,25226,-30572,-11271,7835,-7206,-29100,20812,-5926,22825,-12798,-10722,-17674,-7873,-20406,592,-28798,-30239,-16172,9965,8434,17994,10441,-13072,19169,19219,25141,10901,-14626,-17173,-5965,19063,4576,23200,-30537,24546,19391,-8253,-2228,-11493,3058,-12432,-5342,-18862,-14591,-13529,11905,2196,-15060,21497,-15724,23914,6479,-22545,10449,27687,-12818,-496,6075,-25983,-2951,12586,-13450,31878,-3813,1444,19011,-22719,26342,-22359,6918,32381,21206,15048,16980,-3545,-4103,-23339,-21642,-27876,-25559,-12852,13946,8829,-27227,15166,-9701,29075,22451,-9390,-16016,12845,27042,-6712,-6700,-10385,-14798,-1608,16672,-25535,26655,-24431,970,-4988,-29043,1346,8906,20284,20307,-13138,21186,4573,30741,-10303,-25821,-14274,11003,-2404,7951,-18947,31969,10615,-17150,8668,-6517,-430,-21736,22950,-9066,-24600,-15812,6576,-27387,26862,-20362,20001,29782,-15190,-23110,-30706,-17556,20581,-29692,4373,-5588,-427,29843,-20057,-4442,-6117,-13461,791,15041,-8817,-27498,13148,-11181,28292,-25155,-4317,-9338,-32128,-9822,-11717,6093,19391,25395,5004,14635,-5872,-3431,-24047,24050,17896,-32151,2911,-25753,18470,3091,-13710,14847,1771,-14918,31757,-18585,-7157,21391,26936,-3616,-20114,-3031,-23655,-3194,-17157,-5970,803,14455,-17171,-8391,-31313,-922,14157,29354,16323,-17453,7666,-7690,4326,5848,-29843,-21124,-21228,-23470,-1363,19264,544,19341,3922,-9903,-14523,-8390,17977,-26846,-21954,12487,-22704,12082,-26077,-31510,14483,27456,-22811,-8582,27751,1454,16075,-8957,-10640,26301,-4394,-2817,11828,18350,-24293,22251,-21922,10429,-11853,-4046,-32515,-2578,11422,-29526,24854,-23529,29815,-1332,12707,22423,-32027,-541,13782,-4769,10045,5033,-16741,-2873}, {-11499,1080,-2941,9271,-12321,-16941,-16961,-30080,9650,-9112,20585,5965,-16139,-18768,-1701,12768,-8404,23405,-9075,-6596,-18411,21456,14942,-10816,-1604,-935,-15029,13568,25680,2328,5546,22670,-20775,29162,-31034,11954,10148,25438,-21669,3299,-24957,-4297,-6372,-20122,31683,10378,-20070,6214,30323,12192,4735,16337,654,-15542,17716,-19025,3529,-32371,9592,2899,1241,-32466,-27993,-11529,-6021,29497,20792,14913,23528,10783,26574,-22556,-11974,15079,-19651,-22838,-7553,28904,8797,-31776,-21822,-4250,-24874,3542,-14719,20297,26447,23680,19475,-6804,-9507,19925,26103,14911,23212,26693,-28406,7435,-18760,30075,-7234,17709,-460,6215,-2487,-31454,-14657,3978,23442,-30511,-26444,1223,19103,-9128,2681,16483,23344,-26193,20930,26493,-15890,-32617,-2973,28109,14950,-12053,-2578,-12022,-23308,15516,32080,-31581,-1144,-52,529,-26385,-21609,-30845,1486,22248,-14141,16084,-20295,-14393,7715,2009,-24336,-14314,9460,613,-2580,-25367,11620,-32657,-27919,29622,-8530,9337,32284,-11906,-5771,5449,-9548,8481,5063,2519,-31349,25120,-7719,-7387,-24703,-21948,21695,20286,-15484,-16546,-22154,-13396,28812,6075,29954,-31974,-23851,18828,12467,3376,-32688,-32146,-29202,-15840,28563,13129,6769,-15353,3947,31603,-177,-12113,-3890,-17938,-28728,20009,30720,9843,-32188,-10382,-9828,-7095,3220,30870,-23734,-8641,-11218,23552,10160,31273,-9732,12328,-10469,-23644,144,25216,-17683,-1165,-30806,10741,3774,-24445,-25908,-4971,31399,10005,10264,26957,17397,-3711,-30094,-25501,-29614,21820,31527,20053,11173,-8430,-43,-24988,8141,24192,-31825,-16778,12407,-18501,-6837,-23625,14908,13784,9238,-613,12791,17800,28255,16988,-5798,-20706,12774,-7430,-27846,25517,9351,7093,12951,-25430,-19301,-21675,-21412,-1771,-20229,-14227,-15843,-1583,-2631,-5054,-24539,13990,910,2812,28442,-19487,17868,8913,25392,12076,30371,-20332,-26046,8352,13991,929,-7014,27661,16148,14189,17186,18662,-30066,17065,-23829,22602,10706,-30948,10337,24911,-19112,31557,-20785,-24085,6104,5285,2335,9794,4928,8792,6103,25222,21193,-28950,3839,9024,-9272,19673,29324,-27631,-3730,-20437,-24033,15109,20822,17103,-21498,-18009,28276,-2877,-31548,12168,6105,-30043,-16743,21533,20584,5146,13222,-8430,31463,-31365,-7963,11272,-24736,-7457,-25321,29317,4185,-1378,-29489,-1655,2216,12673,-4836,-17507,25436,-29674,-8727,31680,26162,16102,-24161,26570,28528,-21407,-21886,-17222,19632,-16487,11763,-14138,19113,8660,-27243,-4156,32407,22304,-21410,-4147,30924,9204,21998,-5849,-28849,25667,29982,4490,2663,-19544,20133,-8832,-31550,-29495,-27673,-5380,-9816,13254,-17499,28420,-10959,6601,-16315,-27603,22315,-14078,4279,8284,-20454,17735,-20756,-19149,25436,-13262,-24002,30533,-28422,5102,-23848,-1727,-16067,15229,-3317,-24157,23120,23153,-29310,-22407,27501,32761,7945,12661,-14078,26388,-14504,-31157,25422,-9983,-5786,-13052,-30934,31459,23045,-17447,6550,-27228,-9083,-31502,-26233,-9020,27310,-25713,-18238,-261,31365,-14479,-9306,-4148,15209,30600,-25458,16429,-23498,-30922,8785,-19196,-10769,7089,-17206,18141,16988,6301,-23982,-25027,-20164,-18177,12036,3905,14418,-11819,-29135,-16558,-31177,-22861,5892,19220,-5242,-30859,-1819,-3866,13204,-8395,24954,-6302,-14252,21140,12026,-20132,-14141,21820,-20628,32154,32462,21787,28641,-26486,-10157,-19278,27174,2016,-28091,29289,-19303,29113,11417,25939,31175,-19878,28482,664,-19812,21770,17929,31887,-4878,21531,265,-23762,7659,22585,-3620,-27067,19427,-16489,-25523,21163,-28987,-28898,13468,-19096,32318,-8304,414,-107,-26399,22513,18362,14388,-20459,-9030,-6890,19689,-5919,-10332,-4886,5752,18765,-16926,654,-12258,-18880,20168,9922,-12521,-8062,-32624,-28002,32644,-28749,22785,24173,-15290,-10457,-32220,-10419,-30432,29968,-29017,26287,-21238,24014,-27416,-31867,3096,-27659,-21782,31914,-4201,24592,-14999,6231,-30147,16199,-29160,-28492,-31645,9497,12836,9983,-28582,-10411,-18226,11714,12065,26889,-12998,-25726,-649,-21160,28482,-17391,27988,6158,9221,-11745,-12555,14877,-20069,12017,19792,5550,5307,27944,12192,-298,25526,2144,-25422,-17179,-24108,-28650,7900,12734,-3763,21856,-20335,-24178,-27007,27263,29849,22181,-20103,21178,2551,-2252,-2832,27954,18660,-32416,-3068,-28050,-5004,-5776,-25820,2786,2752,-30631,-129,27897,-23387,-23791,10407,-24320,6414,22082,-16966,-26421,5914,-11633,26589,6614,-14833,10383,2934,-5754,-19609,12291,-5825,-1513,-12854,26690,10690,-29250,16981,31398,17365,10400,6237,31827,-6879,-11155,-9471,14085,6775,-27547,20443,-16921,-7916,15858,-30391,4557,-31118,-4007,-9975,17212,24547,19823,19126,-431,2898,-18388,25857,13847,14266,7069,-19413,7596,-21411,-31461,25297,-9406,20341,-3699,-20309,22432,13627,-5510,1007,-28021,18419,3825,-22455,11296,8160,-15395,6525,4849,-32600,-23516,-30880,-5870,-7034,-16246,-14568,-25057,29734,10001,-18126,16476,30895,4867,-15669,-9259,-24212,17807,-25119,11694,-19059,18553,-11606,23085,16958,9719,15462,-6309,-28292,-15443,-26625,25698,28634,-16758,-4725,18813,9339,636,3195,11582,-19542,32641,25465,-8354,21799,5788,28104,-11573,-30092,-25061,22069,-19478,17477,-16815,10357,14834,29776,31277,10089,-26929,7059,24325,3695,-22885,-2874,18087,-8814,25256,-30575,-19991,8109,7501,25702,25508,-5799,28135,-5345,-21220,2768,-11908,30553,18299,4249,17406,8247,3034,4498,23448,1736,14095,-12961,8199,-9735,-22597,-6820,1705,-22560,21967,-10089,30212,16761,21709,-24785,-18351,25850,28487,31971,17768,19467,-15112,-15684,-20855,18588,17597,25304,-30962,-5621,19553,-32022,2889,26989,-6943,4679,-23480,6006,17224,4116,-10018,25378,-1647,13419,-3494,-27829,-8261,9643,668,29304,-14082,29,-22663,-30127,3342,-30883,-6844,-21324,27170,-8659,-26158,-1525,26806,11503,27692,-18685,-9360,24643,9729,25172,32315,-5131,-8279,15795,-19527,1881,-24345,30180,2611,-25656,-16745,-5415,-22761,-23657,-32275,-8446,-4409,-10433,26621,26108,-6572,-14801,-28097,31982,17565,-14621,-14775,11650,-25772,1942,-14921,-2886,-19220,22205,25243,-5999,-31958,20283,-5930,11757,2466,-26297,-21383,-20213,12144,23317,25219,-23769,32544,-7069,-27004,32478,14997,-26462,-15041,13638,11218,25748,-23037,-9209,-10772,30824,-28529,16156,-13640,-30987,28399,-18833,-27536,26993,29447,-31739,15096,25156,-8042,4665,-11402,11115,12693,3200,-28197,-1199,-30934,-23897,32755,-31404,4023,-31698,-21411,6299,4328,18986,12205,-21631,-31475,-14319,15336,16791,-28176,9857,-30044,6472,18866,30523,28046,-23160,31294,-1283,31286,-10085,-20114,-22161,-22441,-1703,31959,14002,-12210,30350,611,-32510,21205,-18468,-18070,15692,-2627,-650,-30659,24787,3643,10410,-7842,22021,14700,-10061,6541,27111,23989,5454,-11551,-6306,11550,5787,-8145,28081,-17745,20636,-25561,26647,-10933,-26144,3480,6213,-13512,5534,166,17118,1718,-5041,29863,-23541,9936,2515,9905,-21717,-29165,-5593,-5762,-14665,2401,-21265,640,6296,-17437,24587,29520,614,24325,-8655,21316,11623,-17922,18703,13992,-25745,30440,-13217,26533,23497,-20952,6794,19963,24302,-18977,13899,6465,-22342,-18629,-9491,-19654,-30553,20270,-3489,-28263,-17167,7374,29034,-24321,-17940,-26059,10733,-5951,-1719,8661,-25846,-27148,20148,-19646,1616,9479,-30953,19212,26844,14357,-24346,-22233,5945,32727,28241,-5039,9983,-1148,-4546,15665,27707,-4374,-16888,23671,-29684,9616,13530,-11528,18727,-5450,-23203,-23991,18808,20914,2703,-25730,-19225,25443,-22198,10641,7110,32570,3504,9143,-26428,27851,-19311,856,-18947,-30822,28328,-1916,-16813,-9646,32630,5937,16842,-21387,4141,-32051,20955,7318,9992,2940,25557,-12657,-23626,6056,-1055,-12081,18869,16790,-31193,27558,24267,18481,-29719,-16165,30084,-21726,-21257,12346,-11522,-20393,-4925,21302,2356,28985,29435,-14157,-12819,-864,4710,26326,-11677,6257,9545,-569,18468,31855,29344,15661,-20011,19572,12671,20940,-14551,-3910,-10573,11636,23774,-17722,-675,-21683,-13326,10963,11690,-29589,23795,-32507,-25710,-46,28203,9516,20547,16893,3759,10155,-20001,-25074,-9033,-10135,2665,-27462,17325,29453,25129,-13899,-21066,-17407,29976,-11200,27169,9648,-25861,-3144,-30075,-189,14516,29260,-3925,14586,-10396,5256,8703,10548,14371,-10274}, {17677,-4326,29747,-14287,-14640,23667,-21278,18564,29730,12468,-3520,21816,-16290,-19757,-14817,-6025,-29246,-20108,-23868,15546,-15598,-916,19783,8194,-1063,9953,3269,-7235,-3822,29241,-3435,-30608,-16378,-24505,25862,-12629,-6899,30172,-4782,-26060,-167,-24090,10723,31053,-29762,-25235,-22835,27852,-27535,1143,22448,26408,12435,-29736,3996,-12080,-5044,5795,25238,-9123,15461,-16968,-24574,30153,1843,13786,-3191,-11767,-13440,-16840,16382,21238,14176,-3831,-864,-1892,3758,-17312,-22085,-20922,-25579,-23852,20532,17510,-743,-3022,-13165,-28584,-16738,-5122,-1751,4697,27813,-31934,26404,28848,7332,-13559,-10549,5395,19285,16843,23545,219,-7605,24888,-7091,8783,-24681,9321,7456,28316,29615,-18510,-15385,24333,3688,26200,-22552,15926,3764,30413,3590,-2661,12937,21506,-5076,15088,10563,-28167,-25269,23332,7603,13581,26164,-29287,13354,2620,5908,-15985,5993,-1633,7185,-10363,-31757,-23244,10647,10831,-14157,9803,-25392,-15564,-5869,-27940,54,-27501,27821,-32451,15590,13774,13147,18387,12119,-28617,1532,-18341,-15902,5877,-11067,3012,11197,-24668,-4401,18920,-20921,-20210,-25030,16208,12786,-14698,32704,-23026,-25110,4816,-30719,7374,-15509,-4184,2189,17272,-14888,-76,-20814,6608,-9470,1881,-8843,7532,-12254,-6080,3976,13899,-24351,-31826,-10473,-8398,-8111,-16367,22190,6289,-29906,2465,8805,28876,25210,5896,-30275,14395,-15427,-19418,-27410,28299,-22569,31414,-19682,10784,-32733,19625,-32636,24281,-4074,15731,14979,8048,-25326,-1735,-10641,-2480,8442,5835,29798,19345,32729,29854,-19366,-23649,32621,-26620,30783,9265,19715,-11358,1671,-24123,-11597,-28386,29348,-15235,-5728,-1394,-15952,-27844,11636,-20801,-3263,-7613,-22890,17895,-3890,9057,-2672,13530,21973,-21427,13693,1182,7712,-10288,-30908,-18331,-11818,12665,-10965,-24015,129,-20301,20908,21864,-13998,27429,24007,20568,24397,-9746,-17856,-7061,-27299,8818,9715,-16575,-14498,4107,27848,-12954,-3642,27030,-17327,-28523,5803,-10935,-15754,-9146,21279,26140,23232,22821,11226,-19791,-22219,-10000,-17955,25384,19620,-4750,-19094,14816,19387,20761,-16045,11398,-3124,-13986,-6489,13096,5841,-28895,-14089,-13357,24381,29976,-2955,-21439,25432,22565,-22380,16953,-8675,-12878,-8871,-13039,12535,9175,13054,4052,-9065,14497,-13955,-5559,-31223,-18391,31722,19575,-20697,-30596,-4100,32470,21123,-2235,-2970,29361,-14889,14327,-18381,-19558,-13881,8033,-22385,-18365,-1959,-26493,22079,20107,-946,-11860,-24794,17889,32346,19620,9954,16063,-7973,-14769,-30085,27022,-21148,30360,-25448,-2529,9140,-20475,22428,32347,30882,32465,31412,-1669,-16319,-1842,26142,8638,9587,28835,-502,17383,-11562,-2131,10953,-6702,-2595,-18809,31026,24931,18349,15660,9175,26199,-5465,-23,-13788,-11417,-11448,13448,19763,12658,2037,-8936,4259,5127,-24704,12665,18961,-1835,4577,11497,1243,5643,-12584,-17702,-30882,14184,-4565,3945,7512,-4339,27756,5799,-16354,-29548,9503,3613,-29228,-12161,-3123,-15016,-29163,-15913,27243,379,30295,1788,31598,-17153,-4052,7362,9313,-22192,17062,-28576,6488,-19551,782,-21527,19377,8330,-6794,3403,-8721,-15964,3599,6826,20087,-22080,-4011,5899,26134,8921,2682,-17969,30328,18119,-22876,-27187,8935,4803,11790,6758,-6826,-15795,-7011,-10743,-10710,-19783,24627,-21241,11512,-13830,-26283,-10727,5401,-25925,-9375,5437,-4753,24700,-27426,-6452,14957,-18901,-11246,30345,14876,21396,-16377,25737,-24924,-6928,-27638,17638,-20748,-24233,-14366,30382,1843,30101,-9387,21800,-21560,2414,7196,15715,-4996,-31703,-106,-15014,-9548,-19265,16001,32682,14904,-31461,2933,11666,-30608,23575,27102,-25433,-4470,29231,24388,-11762,-31128,20611,-10268,12054,32118,-32274,13062,27614,-752,-19686,786,-30200,-22628,14658,23931,5203,-3209,-5746,18779,30003,10898,-15961,-22238,23191,10225,-17090,27409,-1313,-22078,-1658,-16728,4932,32402,-19833,17316,10950,32646,21761,31178,-17757,4059,-23711,-15148,23842,-4860,-21666,-17785,-13340,18361,-16475,28882,-18304,453,-11353,-19846,13482,-7728,2107,10098,966,-14022,24296,587,-4327,31482,30121,-21935,-6786,14475,-108,-23112,31893,4522,3181,17663,588,-7891,3163,20145,-18460,-11558,27083,-12688,-201,-6703,-3082,26836,9718,-14375,-6903,-3670,-19329,-19955,1465,29667,29197,4800,29208,9935,-18187,-28219,-15200,15588,22596,25627,19651,4489,-28580,7197,-31913,8523,2252,11217,-29093,12297,19879,10022,-29851,14832,-28841,-19410,5704,-30619,-5836,-31674,-17477,25085,-31303,-15412,453,18215,-17379,41,-5513,-32260,13594,-22699,-21205,26918,-30476,14659,2905,-12472,19741,-18515,-18993,-14972,27030,-7319,26380,1169,-1901,22488,-27651,18775,-15260,-23330,-24420,-10709,-25408,-22751,11727,-26669,30789,-2344,3699,23319,-25271,9613,-16452,4269,-13242,-20514,-20038,32452,-8519,-9902,-15666,29956,23179,22676,13576,13977,-6799,16338,-7386,-13547,24268,30531,18784,827,-335,-338,-14205,-23241,11685,-9896,-11866,-23917,-695,5892,12237,-24616,-3053,-14741,18848,-1270,4077,-3801,-16770,-12726,32009,-11689,-31153,1153,-11778,-15705,10946,25009,26462,-512,-4424,-9444,-12471,27589,-14839,2314,-7295,-16184,8387,8124,5915,-16873,-29524,-11973,16218,20004,11901,-14765,-752,-29062,16811,15007,-29408,-6360,-21991,-4179,7023,14486,26064,1075,-12819,-26108,-7164,24815,-18222,-16173,-17376,3013,-29040,-7872,-23115,25061,-8050,-22793,-18576,-6667,16954,1088,4995,4847,-17080,-2500,-11608,7763,-10783,-17203,-19832,20717,14354,-11163,29570,-30677,-23249,26312,-25210,10776,4438,26490,-19739,-16009,415,13396,-15144,27701,6938,10837,958,-12331,209,-22967,14591,31855,-8897,2224,-25338,-24136,17536,-24869,-31206,-5024,-26857,27390,19540,22181,27200,-19850,-24738,23199,-32109,14677,-30470,19072,30150,-18497,25621,-3982,28218,614,-21681,-4331,-14908,-31829,-25233,-10399,8592,13090,-10961,19138,17612,29009,2828,-4832,-7241,-24027,-7678,7176,-5359,735,-25793,-17692,-26544,-13264,27462,-29671,20938,-24120,-17988,14423,-14927,-6720,18925,-26442,-25693,3939,17484,28212,-31279,-27974,23337,-16686,-11196,32276,21459,-29300,8796,-29586,-18671,26436,-31537,11028,6612,15337,774,-8502,8968,11134,24008,2106,-239,-23371,-6778,4489,-11816,24634,-8707,13994,-7987,-30327,-14736,-7416,-3150,2120,-8088,9139,21193,23350,127,2745,-17873,24444,-18888,-3940,-31669,10128,16814,-3935,-1481,4532,31049,25457,4258,-14634,13809,20247,29088,-9777,-1773,22088,14576,-23796,7944,28325,-25713,7151,-2723,-26713,-13970,24547,11251,-6770,22984,29080,-528,-21724,3442,27491,-2397,-8607,9157,-26037,30370,-20664,-32758,11349,30108,-18686,13102,-17428,-13344,-21925,-19044,22596,-25046,28395,17874,20668,24790,-18164,4536,11701,2510,-20887,25301,-31782,-29024,21078,18000,4754,-11762,19015,-7964,-11582,-28069,-32519,-7062,-14496,29193,24602,31567,15785,31698,8945,12745,21313,27301,14152,-18721,-23674,-29906,-28405,32529,-12221,-23720,12312,20820,-27318,-15772,-29700,7135,-16236,-6032,-28430,-19852,29642,20820,-28206,8773,7552,26019,32712,1348,-17897,-20733,17386,-23789,-22280,-9157,-8625,-10157,-992,-9489,-27606,4096,-8170,-16395,-31958,28815,26460,32291,31056,13787,11487,15808,28200,995,22834,5353,-17585,5279,-17434,-21746,-7316,8197,7737,11783,-8693,-18238,25341,-5153,17458,17224,23889,-21215,-30714,-20755,-32131,7310,-118,-16439,-29514,-23113,4683,-28391,-8218,-20793,-25014,-8273,10112,272,31861,-11649,29995,-31593,-5237,-7764,-30403,28885,31894,13588,15944,-9797,-2533,32364,15836,-24296,30800,-29097,-2271,8998,-8729,-26391,3293,5225,-16547,-18794,-30370,-31634,-10935,-7616,-25661,-27313,-28953,18251,-28084,-16415,-6777,28907,-3129,9010,-14062,4133,20620,19050,-21734,18013,3873,3164,3795,16895,5971,14642,210,22084,20467,4497,-25051,9811,18977,26682,-12597,6070,-2866,16709,30911,-7995,-29622,10997,-32384,-15550,4249,-15262,24418,-10215,23629,31023,-6066,-18928,-222,-11839,-29235,3701,1920,31819,10266,-10694,-25144,-6313,-16025,-19348,30386,23988,20271,-31675,32580,1699,30366,-6555,-17728,13625,30792,31565,19588,26117,-27862,-21499,9353,-31674,-20700,-11700,2463,-10983,23792,-4793,-17052,-28985,-9031,12276,-18160,-22298,11086,26784,12683,29303,-21972,5807,-8500}, } ; static void test_encode_1277x2627_impl(long long impl) { unsigned char *s = test_encode_1277x2627_s; unsigned char *x = test_encode_1277x2627_x; unsigned char *s2 = test_encode_1277x2627_s2; unsigned char *x2 = test_encode_1277x2627_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1277x2627_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x2627(impl); printf("encode_1277x2627 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x2627_implementation(impl),ntruprime_dispatch_encode_1277x2627_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x2627; printf("encode_1277x2627 selected implementation %s compiler %s\n",ntruprime_encode_1277x2627_implementation(),ntruprime_encode_1277x2627_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1277x2627_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1277x2627_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1277x2627_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1277x2627_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1277x2627_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1277x2627_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1277x2627(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x2627")) return; storage_encode_1277x2627_s = callocplus(crypto_encode_STRBYTES); test_encode_1277x2627_s = aligned(storage_encode_1277x2627_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1277x2627_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1277x2627_x = aligned(storage_encode_1277x2627_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1277x2627_s2 = callocplus(maxalloc); test_encode_1277x2627_s2 = aligned(storage_encode_1277x2627_s2,crypto_encode_STRBYTES); storage_encode_1277x2627_x2 = callocplus(maxalloc); test_encode_1277x2627_x2 = aligned(storage_encode_1277x2627_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1277x2627 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x2627();++impl) forked(test_encode_1277x2627_impl,impl); ++test_encode_1277x2627_s; ++test_encode_1277x2627_x; ++test_encode_1277x2627_s2; ++test_encode_1277x2627_x2; } free(storage_encode_1277x2627_x2); free(storage_encode_1277x2627_s2); free(storage_encode_1277x2627_x); free(storage_encode_1277x2627_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1277x2627round.c0000644000000000000000000017500214705505543023540 0ustar rootroot/* ----- encode/1277x2627round, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1277x2627round_checksums[] = { "7af347846154c277a241b9bf8749cd4eb0fc75ad481eca00cd86070ca14bc362", "564dec95c8bf481d887456b5847166e2cbfbbbf24a19ba1c110e3c0b0ef58661", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1277x2627round_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1277x2627round_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1277x2627round_ITEMBYTES static void *storage_encode_1277x2627round_s; static unsigned char *test_encode_1277x2627round_s; static void *storage_encode_1277x2627round_x; static unsigned char *test_encode_1277x2627round_x; static void *storage_encode_1277x2627round_s2; static unsigned char *test_encode_1277x2627round_s2; static void *storage_encode_1277x2627round_x2; static unsigned char *test_encode_1277x2627round_x2; #define precomputed_encode_1277x2627round_NUM 4 static const unsigned char precomputed_encode_1277x2627round_s[precomputed_encode_1277x2627round_NUM][crypto_encode_STRBYTES] = { {174,214,110,212,24,235,191,230,172,27,195,218,32,109,165,252,118,148,155,43,169,68,54,73,43,154,109,126,135,44,237,24,150,206,98,203,245,175,15,97,200,192,183,59,152,204,213,10,212,120,120,20,246,131,96,30,220,59,129,40,85,235,205,156,201,50,46,208,146,206,102,194,164,165,107,231,206,122,57,89,66,110,250,73,184,65,146,126,188,191,86,13,84,122,198,254,229,116,63,5,175,102,223,167,245,137,32,15,166,197,5,169,75,135,24,228,37,250,66,239,100,100,19,89,237,27,131,57,94,66,171,126,215,163,140,140,39,225,33,171,4,118,199,160,46,81,106,7,29,81,245,121,47,23,230,210,67,227,151,152,42,84,45,218,7,31,2,137,203,116,17,89,242,120,170,174,161,83,246,15,145,207,227,54,50,144,90,252,190,249,25,249,124,73,101,7,168,205,130,70,234,196,129,233,129,91,124,98,20,142,138,41,218,0,153,126,205,221,103,32,85,243,5,129,162,114,217,152,93,90,86,212,113,179,78,132,235,50,242,240,180,56,64,192,1,17,40,60,90,128,8,59,147,114,243,98,238,244,231,146,213,167,244,122,106,69,191,165,197,74,40,66,248,25,114,160,32,99,250,157,71,168,122,131,92,183,22,4,68,73,233,173,119,195,6,123,39,116,220,116,91,106,164,241,144,132,201,167,124,85,10,249,199,103,48,197,43,252,123,63,90,113,94,115,81,215,234,127,215,109,100,96,135,50,115,78,18,19,73,245,152,25,12,14,251,253,235,243,172,249,214,116,219,103,235,242,133,104,223,87,118,29,105,228,241,17,226,250,230,142,244,128,246,244,81,14,174,44,164,123,35,179,93,78,75,255,114,155,72,83,215,253,212,226,198,210,116,34,204,91,134,166,22,175,228,130,129,20,249,251,80,219,37,105,82,187,250,106,12,228,124,55,201,192,32,193,5,216,171,221,235,251,145,182,98,163,148,52,63,124,140,221,28,77,170,85,3,122,105,242,220,9,173,199,163,145,5,67,145,234,172,236,232,106,91,251,111,71,91,58,68,46,247,70,91,239,89,106,61,114,17,159,40,32,116,157,20,189,191,131,80,158,78,251,46,58,30,136,62,51,32,36,53,112,229,44,181,191,64,6,145,48,247,52,64,166,237,181,173,109,220,219,110,236,179,185,90,0,165,195,88,91,202,139,172,204,26,106,102,172,74,20,91,50,59,69,213,233,197,249,5,213,134,247,163,59,152,244,237,70,40,157,122,179,178,42,233,215,85,147,249,248,191,235,215,201,12,224,253,36,105,50,82,24,22,93,236,239,64,8,206,250,129,5,103,255,0,161,24,111,0,248,17,160,84,152,68,149,39,50,3,21,209,93,44,123,136,209,19,14,186,198,89,234,48,83,89,170,44,216,231,82,62,236,211,209,56,24,159,87,227,240,189,24,0,91,192,207,198,42,58,31,212,16,245,191,250,171,222,2,136,172,170,242,162,14,159,238,3,86,212,128,60,73,220,234,155,5,38,133,34,65,254,55,45,224,238,249,19,155,233,114,150,65,199,105,229,187,185,0,242,147,248,80,233,0,29,99,140,224,34,209,7,37,221,127,222,139,134,139,242,156,66,67,117,77,132,83,235,106,99,111,226,134,27,184,232,151,98,57,188,196,196,197,115,171,144,126,227,165,100,150,9,110,110,239,3,118,144,129,124,26,16,172,52,128,147,177,152,0,233,187,30,117,222,134,171,65,36,153,12,92,12,156,234,8,215,237,220,237,79,78,128,10,45,236,89,42,250,190,67,169,95,72,28,128,203,101,134,246,174,157,147,219,148,241,144,176,245,193,23,247,140,73,118,125,26,68,60,147,176,155,138,137,206,103,161,123,226,116,24,226,216,238,153,135,219,63,86,12,110,119,237,160,212,187,44,7,228,161,231,88,151,97,207,205,159,11,156,105,41,111,197,125,110,80,242,101,213,212,108,76,20,46,76,163,242,143,34,87,198,49,167,210,199,136,26,122,171,230,230,167,198,112,85,57,235,64,14,222,212,251,64,129,0,55,96,78,142,231,126,127,200,175,140,21,39,213,35,152,177,81,101,1,25,51,16,119,87,57,104,225,15,145,226,160,177,224,124,29,132,74,225,169,242,49,41,127,252,9,71,67,212,134,132,169,243,44,51,212,27,143,38,108,93,140,219,67,26,254,192,68,9,74,85,179,244,24,201,47,244,216,81,15,121,4,2,84,254,130,238,118,117,146,227,36,191,166,179,182,215,2,243,130,176,170,123,226,13,84,234,47,87,181,161,203,202,168,215,144,116,202,101,209,122,153,184,9,116,10,221,170,139,205,223,9,55,26,157,24,253,60,8,68,190,96,187,224,251,184,205,165,189,76,25,29,214,197,129,28,160,111,78,172,188,76,252,52,137,108,224,51,241,24,185,108,59,189,112,113,128,154,70,116,21,98,138,243,186,189,248,221,201,45,136,28,46,108,226,91,167,45,225,31,244,176,20,51,57,185,129,75,16,132,177,81,87,79,212,21,122,162,75,111,31,61,120,19,143,59,59,253,170,19,114,131,133,32,63,223,124,156,36,99,58,191,3,52,59,193,169,38,187,146,12,84,156,109,111,198,170,216,207,183,51,219,73,133,227,78,207,217,37,238,172,102,218,82,120,105,156,78,246,34,119,89,204,189,176,161,44,201,138,97,141,63,91,64,237,56,77,95,233,243,92,35,208,46,111,212,160,193,232,5,106,145,167,49,232,23,150,218,158,1,46,104,106,38,242,23,98,0,173,234,163,184,67,195,28,174,223,141,39,191,199,211,185,211,244,83,242,3,229,145,80,89,146,147,10,66,214,40,214,251,149,205,63,91,253,62,227,134,16,184,115,144,246,71,106,104,68,120,17,250,60,170,79,157,50,148,75,28,167,99,32,107,97,94,236,28,239,221,50,61,100,37,233,174,218,124,187,166,215,7,6,41,117,215,234,86,225,202,175,191,34,199,89,90,217,234,69,118,203,124,228,177,251,17,49,228,253,239,129,153,94,106,118,206,151,230,4,81,161,0,205,212,133,223,191,20,100,80,40,246,193,138,59,92,111,55,21,18,76,122,98,153,250,73,242,244,153,42,123,163,81,200,183,55,176,132,87,202,65,191,212,185,116,57,42,218,128,155,213,229,224,40,176,254,61,212,63,40,217,2,167,171,85,152,235,241,169,2,188,119,243,26,196,53,110,130,14,120,46,108,27,78,89,244,253,1,239,65,248,151,188,130,50,189,23,238,150,211,112,140,34,116,45,79,235,119,57,147,227,67,217,110,202,50,62,31,80,232,229,237,202,241,132,142,228,197,136,205,61,50,65,104,67,217,231,53,80,101,100,63,1,227,3,90,193,224,138,3,111,189,92,214,244,131,195,189,39,210,152,255,106,95,32,47,154,56,98,248,217,76,127,177,4,171,19,108,41,61,51,26,125,11,172,94,3,161,96,45,187,122,85,124,131,66,88,177,96,13,0,102,48,229,13,22,0,7,113,201,196,73,24,34,137,144,125,230,7,4,81,84,29,46,127,225,109,251,217,164,26,208,209,226,126,252,210,226,189,34,231,29,135,24,117,59,89,38,122,181,250,9,58,65,121,191,64,141,76,51,219,215,127,28,178,8,4,227,14,63,164,63,27,228,85,125,110,115,101,80,141,100,29,183,152,126,163,37,28,48,108,200,191,232,152,199,137,169,69,104,95,182,173,1,63,87,178,168,47,7,248,2,37,227,215,98,102,240,50,12,32,249,127,10,219,79,152,162,246,49,84,65,181,108,27,230,97,83,149,106,0,185,46,210,3,75,144,109,230,33,225,222,34,16,35,119,223,20,33,126,16,168,213,49,255,182,140,240,229,235,13,26,253,119,143,192,140,103,42,59,103,218,20,247,152,50,47,215,162,232,14,37,98,26,134,133,111,203,171,216,131,83,76,70,27,27,57,128,119,217,146,146,65,57,58,196,42,23,77,225,132,183,254,114,245,108,169,154,10,33,34,89,240,75,2,18,36,184,232,191,98,173,2,19,128,31,186,36,27,93,105,240,1}, {253,76,1,154,74,131,34,138,242,63,250,212,123,140,73,120,103,164,32,132,165,169,233,47,231,0,83,39,81,99,118,200,10,50,130,235,242,33,249,200,135,229,48,251,148,41,26,13,147,161,99,238,254,105,76,140,25,200,69,215,235,51,101,65,44,222,228,14,248,216,72,158,155,247,4,19,176,254,149,223,172,63,72,174,113,180,106,79,107,192,30,193,178,175,215,10,212,215,180,153,251,205,38,79,226,11,156,29,50,196,254,98,95,25,0,41,153,241,59,170,143,138,101,81,179,113,108,79,98,208,167,253,14,99,202,25,97,67,99,193,167,106,141,50,163,48,112,228,28,177,113,233,191,230,218,103,48,41,202,92,22,132,255,56,162,220,180,67,216,109,78,108,26,126,243,114,188,76,209,215,206,135,172,152,56,34,128,251,35,198,31,234,104,141,246,114,238,121,143,34,99,28,136,27,112,173,164,121,130,110,151,132,101,142,50,232,180,244,148,73,254,219,233,71,253,210,131,109,81,216,111,229,81,30,67,231,39,221,82,98,189,136,55,7,122,11,148,57,118,115,255,237,142,204,60,223,161,176,153,90,164,252,39,51,63,148,189,161,30,0,139,87,252,105,101,106,39,45,115,147,248,65,244,187,161,152,221,37,205,231,39,172,172,248,35,164,99,48,119,16,101,37,170,60,173,222,177,252,247,57,135,67,134,77,177,89,170,139,141,206,28,50,91,1,54,55,151,135,134,118,160,182,141,151,205,248,9,72,12,194,175,66,188,77,191,199,164,40,222,244,126,89,159,113,211,157,102,158,245,205,232,191,122,123,39,92,84,137,152,24,186,1,95,42,22,31,245,240,248,188,35,80,73,46,253,97,191,191,118,134,31,17,242,107,128,50,142,133,32,173,73,157,239,71,192,136,250,27,215,178,153,44,240,31,180,133,193,117,200,230,169,37,139,236,172,168,202,51,68,245,44,232,170,164,55,152,231,25,134,30,94,0,217,194,144,117,184,80,128,200,127,254,102,152,239,164,212,115,247,46,140,168,216,56,223,99,93,209,83,94,62,110,251,24,38,121,37,198,33,14,114,15,15,13,146,245,133,60,187,105,72,6,159,138,28,62,51,195,252,134,209,130,250,217,126,128,249,30,203,221,30,127,249,86,205,65,243,252,64,192,2,178,233,225,205,41,26,146,143,166,36,89,237,251,36,79,178,239,216,55,236,245,172,114,219,73,178,197,174,199,240,141,181,133,29,231,221,226,70,201,2,221,15,191,199,96,122,192,44,213,93,225,84,230,48,241,12,224,208,119,243,219,154,36,179,164,84,160,119,128,195,144,251,24,58,55,123,224,156,240,139,172,224,181,103,6,219,76,170,94,51,131,35,239,233,8,115,215,170,251,44,25,70,188,39,97,55,20,164,183,73,170,125,30,85,93,154,224,186,19,0,133,232,144,219,68,10,200,170,96,26,128,116,32,47,60,115,128,176,64,210,172,116,151,63,151,194,217,219,243,129,167,193,140,162,8,143,231,216,76,220,200,205,240,238,105,12,66,58,107,186,123,226,59,205,103,223,229,181,53,63,224,78,130,241,35,17,89,181,97,190,0,185,59,151,232,183,87,159,104,30,59,123,211,72,48,124,52,93,61,247,105,131,238,147,40,125,103,22,87,180,2,168,1,124,176,38,84,220,136,97,18,251,207,181,69,222,173,66,187,177,210,7,23,152,13,220,109,197,224,3,165,156,228,154,68,68,138,47,21,169,157,6,132,236,80,137,170,152,165,139,159,79,193,194,138,234,67,252,95,196,123,199,31,65,68,118,132,20,195,164,51,247,64,245,226,144,192,232,245,221,16,102,57,210,109,207,18,132,230,182,179,199,101,37,243,205,250,56,234,206,128,150,238,238,51,19,251,193,119,111,50,66,219,104,155,244,185,248,18,129,29,30,212,139,142,223,228,1,248,225,13,250,151,160,166,122,244,252,65,28,76,159,83,52,148,58,43,163,222,248,68,81,33,61,183,236,66,247,10,122,90,199,196,16,66,191,225,100,154,6,96,184,192,215,48,108,234,85,183,1,162,26,75,194,176,0,39,102,236,243,0,109,113,130,153,103,190,77,51,79,62,168,193,153,163,18,65,78,91,87,181,184,171,203,149,72,190,230,95,87,198,20,51,95,69,165,32,136,65,189,242,108,78,112,195,22,46,221,179,240,220,114,70,143,131,155,116,91,219,14,234,61,78,133,116,26,227,201,132,119,241,156,241,201,169,72,190,67,19,154,223,165,217,170,238,131,2,122,153,205,161,226,205,196,187,253,183,25,28,179,128,251,197,52,79,148,70,238,79,14,47,7,94,20,182,68,238,143,42,137,208,206,34,229,164,150,166,87,252,14,111,159,83,135,250,80,79,106,51,113,250,174,31,179,85,129,141,159,108,15,226,3,44,53,228,86,15,63,12,142,30,69,149,110,196,81,100,48,138,229,218,149,211,17,83,153,68,59,61,91,143,232,195,28,117,87,147,167,81,116,220,36,233,204,241,35,17,181,7,79,62,60,79,218,91,127,126,169,115,233,59,179,123,236,201,70,5,206,174,98,203,15,111,81,157,218,242,145,93,194,193,69,246,56,109,22,169,37,211,243,153,21,209,190,212,8,58,130,218,23,239,122,125,40,158,135,241,13,163,180,50,85,95,73,186,202,222,137,186,192,138,34,144,150,230,234,66,130,120,45,171,177,23,204,110,155,246,212,186,113,233,194,170,105,213,69,163,234,125,82,120,224,133,161,189,29,75,172,182,217,170,117,97,112,217,15,254,87,174,112,165,140,209,30,196,10,99,110,215,115,24,217,215,89,210,51,175,242,223,232,169,213,158,147,25,163,129,229,91,183,212,135,72,76,219,101,145,60,73,81,237,28,184,49,95,206,173,7,2,148,158,54,90,36,106,32,115,74,245,127,157,50,22,251,218,192,146,110,62,56,204,228,129,105,134,57,143,240,186,246,109,234,194,139,118,141,111,31,78,153,132,6,40,124,4,68,229,5,4,64,67,126,239,112,71,16,51,73,102,38,244,193,22,207,69,68,116,151,19,63,86,54,129,44,213,19,224,81,88,109,29,181,111,195,101,138,177,24,79,23,181,231,31,237,226,247,92,244,21,64,32,115,190,19,64,180,152,222,97,182,4,67,254,220,65,196,11,110,92,209,185,9,181,168,14,226,236,3,104,211,36,148,210,169,162,104,189,70,228,108,139,50,246,213,233,232,177,114,132,51,222,216,65,4,16,40,73,255,187,171,213,22,168,194,102,33,108,102,196,164,21,217,255,193,188,190,189,217,0,192,234,46,232,40,211,237,108,102,34,53,39,99,174,68,20,180,206,110,19,17,103,74,74,222,172,107,39,184,137,184,197,172,117,123,63,79,87,177,179,114,251,83,124,108,218,23,234,124,178,242,10,20,146,4,184,81,150,16,134,203,155,199,137,185,181,145,108,199,121,248,148,83,24,55,71,54,1,98,245,216,234,221,184,207,243,53,56,55,88,48,130,69,247,53,53,27,91,71,132,219,201,112,231,181,199,115,184,165,167,138,9,202,115,132,236,172,227,102,32,103,103,153,252,144,23,254,241,183,86,178,218,35,122,52,29,46,140,21,29,157,247,50,115,175,152,201,119,33,45,192,22,187,127,100,77,33,102,42,112,167,200,156,67,104,236,202,161,96,185,247,190,218,209,41,165,85,0,144,49,83,31,246,101,250,99,234,218,92,218,166,192,209,240,252,79,128,74,77,193,76,83,61,26,156,34,148,208,229,163,24,103,164,84,198,154,119,26,28,103,166,216,44,77,131,97,111,2,122,6,50,247,4,254,44,70,80,126,61,187,170,28,37,247,254,20,126,32,190,77,75,114,52,24,145,193,238,87,141,35,32,238,112,60,43,113,221,241,69,133,206,183,100,17,177,98,181,7,186,77,175,170,49,16,4,140,139,37,32,205,74,134,248,192,33,52,113,163,173,59,91,103,54,47,93,72,228,101,81,163,253,208,53,48,22,4,17,24,196,94,186,16,25,68,109,142,201,226,103,22,35,190,150,102,1}, {118,247,160,44,236,55,97,214,91,166,222,11,236,242,91,195,122,113,45,20,245,184,101,147,248,177,122,241,98,97,122,34,124,232,209,67,57,92,245,121,127,29,225,133,155,123,143,25,61,130,94,35,55,247,55,235,141,100,87,177,90,44,117,254,195,44,239,210,106,209,138,131,229,14,166,20,246,72,254,145,104,161,136,166,26,53,254,89,25,157,45,167,86,83,5,153,28,187,118,138,215,136,24,231,235,75,63,120,126,232,151,183,106,103,64,94,67,231,80,209,129,33,171,216,233,138,189,97,114,117,229,192,104,2,94,67,105,205,58,96,229,201,52,174,15,170,198,25,70,178,53,205,150,72,137,128,80,95,194,4,72,21,4,94,234,67,4,93,218,169,202,146,249,96,125,175,11,12,148,71,201,168,46,124,22,104,62,79,204,61,143,180,60,107,72,185,130,236,7,12,217,186,244,132,88,139,86,2,160,205,31,190,138,40,223,171,153,255,53,67,116,43,63,49,93,132,31,233,16,253,208,34,128,148,207,146,186,109,207,166,169,148,62,40,51,243,217,249,141,19,159,125,47,3,195,74,141,211,189,183,101,224,169,150,195,55,81,93,216,61,173,63,139,106,169,190,168,206,44,111,14,180,216,161,72,236,54,240,62,22,201,80,53,120,181,83,237,11,163,135,151,113,66,105,208,27,61,64,35,145,52,100,64,129,106,118,34,189,132,15,133,1,123,226,209,24,56,97,95,249,192,60,11,246,246,195,162,201,133,161,122,66,155,68,215,140,154,113,181,245,61,212,47,144,161,78,12,107,46,109,159,82,252,186,214,208,7,36,165,72,230,75,186,196,249,70,179,0,151,71,48,106,25,75,17,236,205,217,40,230,28,19,240,192,215,116,126,189,13,47,9,230,71,75,171,227,215,46,198,255,136,171,251,8,39,32,173,88,104,227,62,21,4,108,227,199,142,202,66,211,59,72,245,155,238,249,231,81,12,114,62,3,201,61,244,244,136,227,27,177,12,45,228,231,136,244,253,163,130,49,31,60,209,27,137,57,189,38,137,225,75,162,145,139,99,139,27,170,162,143,157,213,159,20,5,87,245,25,211,33,47,75,190,169,55,14,194,255,15,180,41,181,116,192,239,65,112,55,213,237,101,13,226,93,238,36,77,114,135,99,150,229,181,237,158,140,71,125,213,93,171,73,203,1,126,46,202,24,209,161,26,208,26,156,61,62,148,6,85,156,204,69,128,32,106,26,16,178,234,173,23,94,247,24,30,59,116,149,76,173,247,78,4,208,178,189,43,90,102,238,225,242,163,172,123,40,239,251,248,106,52,84,90,255,242,69,102,63,28,160,102,87,234,54,181,101,48,65,7,181,172,238,82,255,25,74,214,124,140,66,99,48,57,194,249,119,166,249,134,19,167,36,143,190,224,148,189,231,174,77,131,199,121,22,92,249,39,101,98,61,103,43,226,212,115,54,52,67,97,219,115,84,167,126,45,17,81,102,56,190,175,176,246,171,94,83,82,93,212,173,19,122,255,126,156,50,253,132,58,239,143,255,119,47,172,34,55,135,238,126,223,196,179,107,6,119,117,160,242,150,143,214,41,34,48,194,232,197,115,58,191,120,207,117,76,98,142,3,161,160,198,96,200,108,116,19,43,100,253,5,131,214,233,239,209,245,234,33,105,125,161,3,3,84,53,107,135,80,232,73,92,88,174,145,47,163,52,94,136,212,186,140,53,11,117,148,68,191,210,111,39,172,235,174,69,33,151,106,158,55,10,38,186,37,43,186,202,61,212,113,138,101,175,214,6,220,145,210,86,38,85,247,28,26,130,18,66,45,221,32,16,37,146,207,173,202,55,107,112,121,25,66,145,198,0,33,74,34,60,45,55,113,107,158,111,93,72,74,241,77,56,136,22,111,222,9,249,158,236,180,162,239,10,192,19,11,107,59,39,187,101,112,33,240,90,215,247,160,94,15,219,245,215,39,181,94,249,110,71,67,191,251,43,43,238,6,126,40,134,27,2,146,55,149,172,244,101,105,225,231,100,190,108,62,19,139,104,73,246,191,29,205,187,246,203,98,234,52,133,198,164,231,74,13,18,129,176,176,206,252,20,33,12,97,105,85,92,8,2,251,95,221,65,65,102,200,198,132,226,214,50,225,51,144,241,125,17,8,56,121,226,96,232,19,202,73,101,67,252,168,89,141,11,78,78,86,245,172,173,25,36,223,34,37,74,67,171,191,88,224,31,133,93,23,3,110,87,248,30,139,109,192,134,243,143,166,32,136,100,147,195,58,194,146,109,109,75,182,2,170,12,10,88,178,174,17,76,125,213,89,139,16,56,64,229,178,164,63,229,23,124,20,252,15,251,160,69,166,128,159,101,221,217,247,136,211,206,170,120,8,48,65,202,113,252,167,121,19,117,184,154,177,218,124,29,114,39,61,213,204,95,37,113,99,241,172,207,225,158,57,81,241,139,245,188,97,13,21,135,74,251,38,43,240,12,192,14,66,101,62,198,152,241,189,40,139,42,228,207,198,91,25,218,35,40,85,211,254,180,163,114,199,194,80,78,102,228,48,65,47,154,173,33,39,14,5,137,243,139,56,186,196,112,254,76,24,221,233,235,172,181,173,20,223,170,210,127,173,255,255,242,63,154,38,152,240,44,114,17,25,6,123,26,170,1,24,113,150,123,3,13,190,30,224,215,23,40,213,155,137,63,123,219,208,113,27,111,98,210,111,43,251,13,22,72,18,197,181,31,212,68,29,200,145,240,202,250,207,147,206,236,245,185,218,44,172,233,229,98,205,138,158,253,132,96,139,105,204,123,2,178,207,156,244,254,228,95,64,150,205,12,17,250,73,81,106,233,254,254,221,5,65,119,121,131,55,184,139,255,77,143,54,116,212,198,184,146,234,34,236,59,204,214,216,4,86,200,87,101,186,38,154,174,156,162,163,10,60,168,92,192,136,129,13,45,186,60,193,67,177,89,132,219,164,227,206,43,211,224,214,122,124,161,171,146,78,176,81,101,186,60,181,88,194,108,220,128,87,161,24,77,140,211,45,87,1,31,255,57,121,227,201,195,10,238,9,202,31,62,115,114,147,57,178,115,241,66,135,153,248,37,165,27,223,247,22,103,132,202,69,112,188,96,8,250,69,114,203,236,187,207,186,179,129,135,193,255,226,225,215,78,115,15,32,157,106,209,152,111,228,4,51,173,199,201,237,66,128,159,29,162,2,163,253,50,140,197,91,182,236,137,137,222,139,197,131,122,55,189,87,239,69,33,135,14,219,162,130,1,139,46,156,95,67,110,25,126,181,160,247,175,31,200,45,67,55,193,98,195,162,176,149,212,110,127,129,53,219,228,128,135,4,105,107,175,160,222,204,203,105,184,115,175,79,53,233,109,119,132,157,69,76,125,4,18,184,6,32,190,238,216,171,146,245,210,116,202,120,123,84,239,176,102,19,107,5,136,150,193,120,215,93,86,77,157,74,130,37,105,150,200,151,52,104,157,120,33,232,71,5,77,184,17,40,223,235,209,135,201,229,43,85,58,20,110,162,159,112,15,7,78,52,110,252,147,39,24,237,210,130,84,182,190,224,239,231,165,155,13,48,27,94,212,210,187,119,44,158,120,101,209,237,171,187,204,4,26,226,74,41,59,122,242,152,197,210,120,125,62,75,143,15,233,21,27,130,101,112,172,65,184,119,127,16,133,149,95,237,64,62,194,191,93,234,149,93,150,57,211,146,108,81,133,21,249,42,231,223,140,24,155,91,133,144,234,237,56,109,104,162,32,171,148,118,106,241,150,133,239,1,113,63,116,143,133,82,241,99,50,19,152,159,176,69,168,173,63,170,182,97,172,99,134,186,121,35,180,125,107,37,128,235,243,227,66,72,206,121,186,109,109,18,31,90,140,120,231,246,220,235,130,43,67,248,10,170,154,180,207,11,125,42,226,93,19,188,13,225,238,200,153,16,118,116,29,132,214,16,186,155,121,115,72,121,141,210,170,108,113,93,102,26,248,53,72,202,175,80,70,6,240,77,84,240,42,111,63,113,205,206,232,139,224,30,1}, {136,186,195,162,51,72,168,64,69,235,185,217,248,226,234,50,1,136,166,208,129,7,166,221,123,245,211,237,139,247,7,245,75,95,180,30,209,63,213,145,140,13,168,213,17,197,226,114,88,10,50,187,178,202,39,163,69,57,40,178,194,170,148,175,120,14,119,247,111,159,19,241,198,80,219,244,248,231,132,200,89,156,174,160,140,154,14,155,174,54,183,220,205,230,122,133,215,223,15,132,26,25,185,249,160,199,122,21,168,161,134,213,126,49,119,202,62,175,213,103,15,88,172,238,76,244,73,42,56,188,94,95,21,240,253,45,55,130,213,19,135,2,103,23,50,176,147,182,135,126,31,104,80,90,229,157,173,35,69,89,18,114,101,237,96,45,137,204,11,145,159,126,65,223,233,108,235,253,88,27,49,224,86,239,200,40,62,241,90,15,49,68,142,114,251,180,96,178,61,104,226,172,207,126,72,69,206,35,196,169,16,47,232,183,2,194,235,224,1,147,16,135,224,173,156,66,71,18,112,2,211,72,18,48,84,185,87,193,126,209,192,193,112,17,247,40,174,120,116,233,66,140,120,194,145,94,56,241,237,214,56,66,25,206,230,46,166,186,44,233,25,56,133,194,231,30,223,139,35,113,126,192,85,167,204,232,88,40,116,6,217,13,39,234,224,217,36,238,38,237,208,2,232,91,28,71,255,142,176,229,40,232,86,141,181,197,228,201,160,141,192,194,160,200,96,167,31,74,125,115,173,14,190,222,128,22,148,193,142,201,225,7,99,1,220,58,81,66,209,191,111,105,162,62,165,135,170,251,251,19,12,163,244,255,239,22,104,173,38,66,120,56,181,13,168,78,27,251,234,136,94,171,254,174,249,128,36,215,190,35,62,149,1,130,178,224,172,148,31,254,127,148,135,74,49,184,6,132,144,34,153,6,102,218,57,225,116,8,93,177,104,103,221,161,0,225,5,36,167,95,138,192,43,209,218,178,207,103,136,203,169,165,76,24,80,240,149,238,13,144,200,187,59,68,24,72,243,117,207,59,123,209,211,227,93,183,120,12,161,62,57,246,58,76,52,21,18,189,172,95,82,65,176,125,60,138,191,42,158,119,30,105,124,103,226,62,135,177,93,98,178,234,147,198,190,43,59,153,65,192,48,77,193,182,160,157,10,41,75,9,144,149,252,241,220,43,32,162,136,164,71,110,108,108,61,150,34,12,19,252,129,203,228,239,75,223,191,35,95,29,92,22,36,88,206,42,159,60,182,66,248,188,89,196,85,15,212,74,153,243,193,38,6,136,190,64,186,152,162,48,134,2,11,16,248,165,182,4,244,230,192,154,68,105,10,15,225,224,131,218,210,170,182,109,49,98,20,145,170,134,22,12,108,197,220,210,17,230,250,76,228,164,221,154,116,208,157,197,110,172,12,112,210,130,197,16,36,41,254,17,63,151,134,230,123,122,159,212,12,185,40,120,6,111,134,142,143,172,230,110,239,38,88,223,50,102,19,15,178,1,84,163,59,103,235,80,122,163,34,23,32,116,253,130,4,172,194,143,175,214,151,1,30,134,93,150,184,213,184,121,165,184,96,129,24,0,20,35,180,62,204,196,140,120,103,199,221,78,215,248,52,102,27,104,115,207,123,251,182,112,48,232,224,99,120,17,244,165,188,251,151,148,30,83,68,212,188,14,165,7,169,205,233,10,241,232,255,81,108,40,75,111,251,68,21,238,16,101,67,194,190,234,13,98,245,195,194,232,114,109,137,241,133,120,143,197,46,114,11,34,154,101,204,134,131,236,53,126,118,142,76,77,99,223,21,99,7,185,38,131,195,210,156,254,252,108,165,16,154,127,214,66,59,180,181,118,65,112,72,90,91,219,231,215,54,102,111,9,221,195,179,91,162,236,167,149,225,68,228,20,68,31,239,136,120,150,232,127,116,200,206,5,8,185,212,102,30,139,20,199,118,4,49,223,21,221,197,86,34,23,158,196,69,127,219,20,81,148,47,56,50,100,251,230,60,250,56,236,129,41,145,131,135,64,172,94,44,21,185,105,55,21,178,70,231,149,28,93,169,67,10,114,87,255,87,157,148,240,237,58,68,224,206,44,93,192,99,51,94,93,253,33,154,88,228,145,5,38,86,190,242,132,131,93,129,79,255,35,124,14,192,77,224,191,6,173,96,108,66,196,130,235,69,162,40,171,11,246,93,1,221,47,47,122,92,137,175,178,44,23,173,178,103,187,158,249,168,69,167,73,186,150,142,92,132,48,239,147,70,178,168,200,106,187,57,44,3,186,246,35,33,159,41,234,245,145,8,197,57,210,176,132,135,152,133,43,15,248,173,178,133,22,36,180,26,231,68,94,160,90,228,179,9,189,40,117,105,113,170,211,86,229,134,189,24,119,217,226,40,30,191,193,100,136,169,243,25,159,189,44,189,212,113,75,110,158,188,12,237,210,101,172,77,117,69,86,126,129,79,210,43,20,237,212,138,183,187,198,1,201,53,114,29,138,103,161,13,199,212,85,30,172,48,215,35,217,236,159,51,155,187,185,74,119,145,113,129,17,113,141,166,210,1,86,0,179,245,219,2,12,1,53,213,234,80,116,57,104,109,74,130,54,129,178,54,37,54,158,61,61,146,78,221,53,168,9,139,151,146,29,190,26,5,179,86,177,131,102,245,201,149,88,39,160,243,152,67,159,108,91,25,104,84,203,55,226,247,231,102,175,60,81,74,253,77,80,106,176,231,254,165,182,246,249,18,235,59,94,104,111,14,52,229,38,241,173,203,68,187,191,229,148,161,243,53,92,184,241,36,40,234,138,212,55,149,4,163,7,239,23,11,226,83,104,241,59,38,86,194,214,254,182,92,221,224,39,184,23,154,246,31,120,237,197,32,220,216,250,41,93,29,223,162,248,11,19,250,78,48,166,17,186,125,63,61,121,211,232,244,182,98,70,230,90,50,169,177,17,33,126,168,135,20,168,145,232,208,132,251,37,78,141,215,180,38,14,4,184,177,63,177,64,140,160,228,198,25,125,164,6,153,231,148,167,70,99,180,107,238,116,60,76,143,160,189,242,123,47,109,133,137,15,16,201,255,16,35,65,247,139,94,131,123,125,13,244,153,41,234,98,120,58,228,59,124,95,176,143,67,115,17,144,19,247,237,117,151,125,129,157,178,118,106,240,156,208,62,134,14,110,253,4,1,190,82,207,255,11,210,20,61,165,55,43,76,1,104,19,3,99,75,117,248,152,246,196,190,154,185,103,23,226,76,228,143,40,44,103,239,129,91,101,67,94,114,45,51,102,203,252,189,45,17,251,148,34,112,122,26,56,120,64,145,136,194,246,193,192,35,225,77,33,202,182,51,237,73,4,238,86,25,162,34,15,210,145,20,166,101,143,23,46,69,61,6,58,155,178,201,116,245,223,3,110,61,248,90,29,20,26,62,166,188,249,181,52,29,28,156,195,197,51,219,224,198,189,95,73,74,66,101,62,208,108,48,96,210,208,119,43,61,198,181,154,235,11,162,188,206,42,233,43,151,127,186,99,136,20,64,218,44,224,195,31,54,79,29,5,136,219,81,247,157,92,243,134,10,52,98,51,85,26,149,145,229,29,213,48,131,238,56,173,178,76,27,94,249,112,10,202,81,183,225,67,137,88,198,18,75,124,97,43,224,229,93,27,13,208,74,163,148,120,254,237,51,136,250,68,8,155,151,40,238,200,43,105,87,55,6,152,151,177,58,44,176,233,46,230,205,197,249,90,224,117,241,99,45,89,46,150,167,221,220,203,197,193,156,193,181,92,254,35,213,85,119,213,185,9,36,251,204,31,65,138,89,166,227,188,46,5,241,51,142,75,105,35,94,138,83,164,67,219,14,55,153,185,247,183,205,177,71,133,221,22,1,168,248,105,126,164,207,5,187,169,45,126,220,196,184,23,103,251,27,224,77,244,158,216,163,33,210,146,201,113,37,53,70,168,19,110,4,167,160,134,131,239,36,89,138,86,21,50,159,208,174,72,149,78,186,40,195,178,187,195,18,75,238,152,46,78,30,102,110,241,152,220,8,237,123,122,49,25,85,17,2}, } ; static const int16_t precomputed_encode_1277x2627round_x[precomputed_encode_1277x2627round_NUM][crypto_encode_ITEMS] = { {-14029,537,-31722,463,-24032,22839,-14865,13634,-30881,-17547,25086,-28563,12481,-6669,-26021,12891,-10007,-3674,3529,-9984,19640,-9303,-8006,8202,-28637,-20280,-22383,-28890,18204,-12379,-30488,-1615,7646,-12257,9023,607,-22162,6434,12433,15838,-22587,25219,-14034,-31000,-1221,-16595,-30597,-15682,-9091,-27691,-22403,-14410,20885,-6441,-1587,20462,6713,14555,29743,-25617,-30643,-2226,26785,23038,26386,-30782,-20725,-23551,-6705,-27594,25637,-20712,25069,32466,-20764,-19511,21859,-10711,6536,9329,5054,-13783,9967,18748,2621,-8180,-4806,-7044,24886,-3739,-22919,2497,-17276,-1733,-25681,12298,-28657,29383,-19673,-4156,20083,22428,-16450,-13389,-7569,-10632,-10837,-4380,5038,-15853,-12818,24543,15982,9870,8192,11240,1236,5636,23270,-7608,-22947,-10343,22390,-23360,-30268,31528,-31568,-21197,24051,-7583,12528,812,22437,16309,-12127,-13699,14733,17675,-25828,5014,12930,-31806,23125,25662,-32028,-19851,2168,-6252,31033,8282,-25022,-27616,-24990,5643,-20806,-3950,15225,11394,25889,30514,-19316,-30917,8878,29787,13799,-1312,-10050,25280,-4057,29307,-25012,-26504,-16006,3504,1144,-4181,4245,-2346,-23823,19407,-7317,26048,13276,21294,-28249,-11825,25819,10124,18854,9602,17482,-21590,30137,8805,-21559,-17780,31029,2857,-28508,23539,4849,-30887,-11915,27629,-7093,3491,-31288,-32561,9145,-12950,7778,21734,11935,-32368,-24627,16445,-26151,32108,-10369,-6320,-7451,-13071,-28521,-1733,-9054,27669,29418,4337,18751,-4730,1888,11613,19531,-1645,-22579,-23797,-8657,28696,-18042,4887,10583,-6615,18775,-26846,25502,-6177,-26198,13208,-9108,21086,-13684,16577,-32608,-164,-22761,-28373,19537,-31022,-12458,-22071,10409,14662,-21504,-20215,18551,7379,31068,19380,24040,2890,-29470,13212,8414,254,-21022,-16537,-22207,-12066,3380,-24686,-3220,-8522,32725,-22074,-13816,-25276,2490,27412,3916,6182,10572,10401,30039,10113,17525,3655,16128,15098,32427,5899,5977,-6001,-13005,-25858,6966,-1734,-26520,30371,31140,6038,-20165,-9997,7918,-12364,-31253,9587,-3506,-8198,2698,3637,18479,-32032,-6321,-24701,1592,762,18194,26251,-20072,23331,-31689,-31365,23562,23083,27702,-30025,31088,24576,-31382,696,1831,19188,-8077,19257,-30916,-15984,-23842,4808,-29639,32343,10773,24525,-31417,3797,-17359,-27727,29457,12628,-2467,28561,7259,20158,-25704,17973,28600,-122,24111,-14641,27577,-18864,-12109,25953,11725,23662,-10038,-26675,7107,30185,-31358,-3382,31216,25444,31509,4990,8278,-16958,-4273,-4567,16443,-28748,-19857,-7974,-5823,29263,29204,-31702,-20504,-9989,4721,-2717,-15655,27537,15061,24845,30276,8224,14348,17765,-30669,-6406,-12973,987,-10166,31625,5446,31800,9292,31325,-17146,20745,-5606,-16717,-21538,17959,13652,5548,-31340,-3354,-1746,-4242,24404,21048,21305,-27223,31669,-27378,-17430,1389,18506,2231,12756,2563,26004,27731,28696,2142,19165,-10334,-6743,27928,-1708,-8047,28106,-23255,-20888,19818,14126,-5710,21251,27703,-19988,1818,-22113,23174,-25594,4738,5135,17853,24026,-20824,23918,28912,20285,-29725,2541,-12472,21897,28264,-26949,-22680,30693,29248,-31606,32353,12904,2169,8296,20804,-25512,-23347,27864,-23268,26228,13564,-24589,3334,-32410,-27160,21900,-5044,22882,22631,12181,8660,-22573,13278,-19497,26048,-18900,-18300,-17051,-22097,-31347,-1831,14821,11527,25607,-21014,-5814,-4953,14795,-14422,-29805,-4464,-10058,-21385,-19679,-21212,-11886,25224,30302,20556,10722,-13551,29148,-1186,-972,283,21752,-25880,24272,-21883,-6172,-20977,4778,-17983,24818,14233,-25018,16555,20052,13628,1935,-18304,-8091,25556,2645,-3871,-51,-23363,2666,27308,-23337,30000,11295,632,7720,-10983,-26842,26780,3005,-16882,-30828,17079,7713,4871,16759,18573,-5928,23453,-26888,-10880,894,-15003,18720,-695,224,15134,-4483,27709,-30231,-25855,26012,2869,22076,-27202,-9846,-8453,-3937,-10634,20518,6234,1982,27832,-6082,-26712,14580,32089,22857,23158,-15027,-1988,-10943,13817,7632,-3976,26002,16321,-8056,-13511,-27860,-11436,31378,23141,-32322,-30246,13631,-28947,-29184,11837,-3980,-18882,-13315,-12995,-14756,27699,-20647,-2066,-6696,17854,21517,12143,25313,-25699,-30491,3271,2912,30832,-10159,22185,2820,3403,-6441,22174,8965,-15929,-6795,-8901,10855,5111,5887,23196,13879,24492,-15716,-22780,13649,-23762,-98,26464,-14539,4330,15524,-1449,6842,-8208,-12725,-5356,-14846,17124,17389,21968,24632,190,-17951,-31624,238,5787,-5350,26929,-7507,-8169,-26075,-8930,-23355,-27324,8678,-13612,492,5264,-26828,14132,17711,31995,9684,-8502,-13300,4245,3595,-28258,-31669,11314,-29286,5500,26414,13452,-16233,-18711,24903,-32403,20144,29322,25819,-32649,-12919,-12368,27629,-22241,-6678,13446,6840,-393,-20389,18243,-29914,-29468,-31085,-26632,-30538,17850,-15510,-27369,-22677,17437,22692,-9797,-29409,6573,-25059,13463,-3528,2617,-13377,26396,27613,6602,-8958,-2411,-3721,1189,-1406,-23599,-21859,23643,-31442,5750,32021,-18997,-1275,-27201,20406,22826,18159,-5173,30369,-6214,11341,23013,-28010,-12049,27927,-21115,16327,-28577,7869,29351,23892,-25711,18320,15957,-29395,17705,-19806,31600,14985,14910,-16572,-31530,11172,14892,13757,15789,3770,1843,22848,28271,21278,-1369,10923,4810,20706,27082,20120,10865,26803,-27133,21529,10329,-2342,32702,-11656,4588,1379,-31744,23108,-11983,-17811,-5710,17523,-31424,5710,-6209,-7306,16374,-14033,-22081,-22779,-15651,20481,-5622,8953,-29009,-2606,10425,11842,-3607,16868,20470,25921,1000,13847,6649,-7486,10322,25473,-15109,-15524,6090,9473,1865,14004,-24705,-15551,-1218,17682,18717,5066,-25404,28460,-7200,24757,-4353,14632,4555,1747,-17305,-26339,-9519,-31497,19690,752,-1298,-9870,14102,6217,24689,-7890,20191,29986,-12737,31525,21665,20399,-8213,-12688,-24842,-22574,29008,25180,-14795,1661,-15111,-9982,-8020,-21319,29737,-24462,5656,20734,31136,-32322,-10372,26935,-14976,-13319,-23293,15302,-700,22108,-14122,-17358,-23871,-25006,-16532,-25578,29804,13104,-21525,14574,-12419,-4493,30193,16392,-5279,30291,-5040,18528,23555,-23857,31610,-998,16179,7431,-17887,25253,12563,-9843,-9557,-2480,11186,-30060,-23363,-9447,596,-9485,-15373,-22029,10987,-27162,2797,23830,28179,23920,-6590,6737,-4486,12318,29286,-24144,21109,-20790,4479,-20740,-26051,3447,11292,-26625,792,12199,4212,17081,11796,26101,12319,-67,-10393,1798,17691,29000,-19408,4016,-13002,-3476,-491,-18140,10430,-8096,11124,796,28273,13714,28647,-8046,4183,10420,22030,-11020,16831,14529,-294,10166,-427,17147,-4495,20189,1271,24631,-23170,-6144,-14090,-12629,31234,24784,-20122,-14886,-7318,15898,15338,-9664,2834,-9699,-517,9887,-15102,27277,-14520,-6729,15587,13720,106,-649,-30667,-2453,26425,-5656,8931,-17785,18439,27175,10955,-16476,21593,-11527,-9677,-4489,-6978,5278,24857,-2485,10036,-23458,10924,28805,5133,22700,-1764,3346,-9863,-16196,7743,-6359,-22383,-10419,-1721,-31439,1469,4142,4754,-28241,3872,17718,17249,23635,-17474,6795,-14306,-16933,31727,27885,7538,6047,9947,-11671,-30685,-14048,-13561,13885,2568,20006,-21759,3989,-8061,-21891,29660,-32640,29211,30304,-26271,10543,-924,-29835,-23147,30040,-21203,17578,16165,3931,4530,-1337,-27145,-10373,-8853,31302,3956,-2457,-27101,-12221,17704,-29198,-32209,27684,11521,3681,5820,19688,-10354,19472,11630,29535,4162,-813,-15608,4033,15144,6900,15925,8692,6769,16352,-23542,20166,-18483,-1192,-7123,-24278,13994,-32246,20244,29699,-27142,1815,22408,10046,-23196,1228,-3984,-24581,22578,30654,-3731,-8962,6971,-22678,19753,11078,-11132,3390,11738,936,424,-6161,-18243,29917,-15911,11613,-11767,10903,-27928,-8170,-22906,-21201,-17910,-1567,-3779,-19208,-6749,-27254,5019,-12068,-30000,25543,8763,-18008,-3613,21304,418,-32689,19198,-17802,-32123,23922,7161,-21263,-31249,-31273,-31382,-8514,-17393,12887,32634,26419,7563,-18666,25695,531,18999,-27344,-31529,-25560,1603,28117,9290,-657,11252,24279,-31513,31352,-3331,-27862,29133,23287,20450,29213,20746,-2956,-13384,-6965,17212,32069,-28797,22325,8224,-32010,-11735,8549,12579,20012,6973,9915,13064,-2202,-18675,1860,-1802,23408,25639,-21029,2310,-2094,-8704,-32030,-15522,-14055,-17781,-2883,-21228,10943}, {27161,11120,-28767,-6136,2526,-29632,10453,29763,-8156,13433,-19088,-15172,-8174,-8761,-30101,7244,-30788,-4336,25141,-3532,24725,-29625,7793,-14399,-31300,-11269,-6721,-22404,-14310,-14758,-1476,-739,14930,21740,-11585,-6336,28130,-5725,-25302,21181,-30309,-12400,-29768,-31543,30985,7075,-27105,-21062,-12366,-22888,21228,-878,6990,-24029,-32121,-26637,-13551,31204,-1738,32708,-13309,-17240,-5838,-20376,3062,2859,-25395,-32439,17664,30986,21166,-22066,20842,-17334,-26564,23150,-18912,-17928,-25117,-22050,26861,-1980,23947,9579,4455,24545,26147,26608,16028,5023,-15120,-22279,5689,-21240,-9163,14765,22542,-16370,6771,-25886,-6948,30831,15437,799,-16826,20530,-1884,8267,24684,-9566,4073,-23056,-1385,7594,-13352,-2358,1134,-4837,15084,24170,2898,-19385,20457,1619,-24442,-6822,1431,30347,5939,-22427,14895,-26153,-963,32076,-8983,-30938,-16278,28923,-17496,32403,-25600,22351,23039,13280,-31876,-30853,12336,-10084,-28114,15565,26895,-14720,14315,6380,-28459,-14531,-18131,9844,19031,9109,27153,11662,-1491,21293,-25548,-11655,-23031,-14844,-12355,-17896,17522,-32557,28187,19962,-10601,1704,-27811,-27705,-8070,10937,-20767,26924,20987,-21396,16415,-25620,-6350,9899,-6262,25970,25916,-20109,3497,-24166,23965,-21481,32150,-9736,-7585,32726,-13827,25099,-3146,-5347,-25890,29623,-1384,-21776,-5256,-16253,-28656,30137,11139,16674,-4122,-24517,-22614,30392,-23981,3935,-30543,2710,8545,10820,-26408,-8588,20407,-12286,-3853,-15917,4427,-27734,17171,-9913,14089,15807,24251,26725,12189,28785,8047,-16320,-17160,-26374,-21679,26887,-23634,13806,-28926,29235,-30644,10873,-17177,-20330,-13966,-6190,13246,14069,-25046,21448,27252,-5060,17494,-12749,-4546,-30381,25573,7553,32461,-30269,5999,14264,-7314,24746,2252,11058,7387,16645,-24250,-6437,-10523,-12973,30650,4723,-31989,-679,13877,21661,30550,13037,-19419,-12264,29831,-20098,15619,16160,-1432,20092,8120,18209,-20578,17540,-6926,26903,-6927,12508,14490,9382,-14418,13733,-28419,13211,-10534,-23514,-4646,-16410,12293,2531,23880,8390,4145,-16270,-12444,3318,-11738,-29207,5745,5976,-24156,-1140,13096,-28567,-22057,217,-296,24942,18355,-2125,-32077,30756,-24899,26607,-12330,21746,-18702,-7168,13762,29962,-9736,-8204,32343,15690,25897,-7046,-2240,-4486,6291,-11597,1995,-19815,-4459,-21536,4991,-19015,15167,29752,-1261,23860,7691,-13358,4850,-3867,9458,-4148,1671,29286,15111,-26532,18508,16242,-13572,-21190,-1877,22711,-30754,-5029,-14464,8763,-12340,-10257,-30437,20756,-26108,16963,-15732,2212,11477,-4648,-25506,-12568,27034,-19606,27825,-21047,-8996,-7712,20421,20534,-29663,-1718,-18763,7598,13248,-1085,-23967,7995,-24455,-13331,-8583,-3876,5840,28619,14266,20748,-21297,-20420,-17533,-1530,8246,-9852,26210,-26913,-18121,4267,1417,-7331,-6935,-10664,-30485,3403,32110,-9545,3009,-22356,-24433,30131,-25380,28630,24319,21031,-1092,999,17818,31939,-13746,-29248,-20388,14197,-13153,21886,-20559,-4187,-18406,21369,-14554,-6151,-6895,16319,-10098,-22684,-19346,-25894,13243,17169,27593,7241,6336,-18845,26380,3994,11255,9606,-14092,-4081,10817,-18758,7760,7974,-29644,6567,-29715,-9397,19786,9645,1602,-11325,-9016,-18023,-29111,-11528,14586,-21848,-4366,14227,18933,-16468,19011,-29364,10901,-24297,-25810,13902,-111,23772,-15282,-10725,25698,1742,-16161,-7244,7800,-16234,14566,-1403,20237,21063,4769,-13022,-11248,-13092,178,-20889,-28827,-30198,-24714,-11547,-14705,-130,11717,5202,7293,-16662,3774,-26495,-9,32667,-28651,4948,-32466,-29688,-1179,30966,-27632,-10558,-21378,26053,3912,-20924,9821,-29766,28188,32480,30032,-8293,18716,27516,28458,7037,8285,15648,25779,14303,364,-2601,-19191,-24810,-2878,-57,4220,-17969,-20443,-21977,25962,15071,12381,-11824,30364,-4110,-17485,10467,31964,-30003,-27985,15745,29252,-17013,6670,11016,-27383,-3497,-29873,10179,19775,30001,27869,-27277,7757,30269,-29846,-26275,-19680,-15044,19635,2340,10242,-32366,-7684,-30434,-2642,7958,-32761,11558,-12793,-30441,-27976,-8473,327,14473,-8305,-5603,15252,3518,5464,7068,15404,-27174,-13330,28893,-20972,-11940,-22627,16970,-19993,-13095,13203,-27328,-28769,32401,15044,6116,14544,-20801,6096,-7744,5375,26157,-13788,11215,-2381,-22391,730,22747,-1877,-13918,31522,-29028,15807,11391,5372,29719,-13814,-30296,-3882,-30002,-10693,-25927,16776,-32371,-24603,11571,22760,10634,-14526,8477,-32120,-21483,9504,24808,-29415,-6821,-14160,-17070,-10860,-3027,-31251,29457,25779,-29980,13452,10371,-10935,20517,-21281,27670,11155,-18070,-6379,-16185,-24089,3045,-32383,25915,23285,-14023,25321,21040,-18257,2148,11652,-18576,30403,-11026,-3771,-18015,-21393,-29961,-24503,-9609,4951,31464,-26796,429,-26787,-26758,-22516,-23749,12074,28928,4605,5138,28533,31967,-375,-13662,-10463,-6203,1346,-21787,2883,-6888,-14964,14022,14012,-32303,28159,15007,-32150,9356,20821,3448,-2000,-30582,7947,26219,-8633,-6401,-15720,-15877,-21579,6000,15663,-25806,-21216,-7090,-16968,9177,-3877,8077,32337,-9541,4765,-7181,-28968,-25516,4958,-14988,24785,12567,-18031,13691,7793,-4638,-5879,-2466,10095,11288,3098,23390,18067,-17976,24892,30955,-28104,-2511,-11314,5284,31690,1114,25410,-23405,-16357,-19559,20014,29369,4861,10270,-15170,-4550,-21441,-13146,-17171,21280,6155,-7138,-3037,-1662,40,15743,-16378,319,23408,-32241,-24548,14419,-22726,-13295,7662,-14640,-8697,5105,23465,-7341,-18518,18202,3248,-8785,32634,-26753,-12709,17718,30950,-182,-18728,28302,-21641,-14295,-23617,-26102,3161,-22632,-23470,-10141,344,-14424,27304,-2482,-27351,15504,-4865,9149,6717,-6178,20873,-2851,-7819,-31497,4763,-27130,-7508,16427,-25583,-21118,-11520,-11769,-8542,-22594,18666,-19713,16263,12810,-13013,-19181,-17668,186,-17868,-31637,-10874,14333,-10944,-26976,9504,-18728,13748,-17419,23318,30341,11979,-28186,4296,-6134,-2541,-30764,-9795,-13984,-499,-18437,12467,-22716,-9539,2472,17690,522,-678,-17606,22766,1646,25260,559,20656,-7534,13174,10207,-19110,-2635,12581,25140,16818,-20266,29237,26532,-24254,-31752,-17287,-16748,-9725,-31571,29971,22642,-13958,-10269,20448,-13687,-6407,-14663,-31208,11519,-16048,26646,-12681,-18350,-8228,13624,-2906,-19108,-27339,24587,30966,-32580,22531,26757,24650,10421,6499,-22091,-28885,-22429,21734,-23522,-22540,8457,-4718,2555,-3713,8579,-1564,-24616,-27256,-4499,-13275,28749,-32712,-9927,-22112,-27107,26956,-9665,-16039,-1628,1797,-5841,9206,17974,8317,-8955,14198,-4256,-27965,-443,6432,5342,30050,29791,-9834,-26914,2638,29495,11915,18427,6808,32537,26750,13836,25409,-6945,2867,-16825,-8661,3819,-3922,9839,-11967,14576,-10008,22380,20274,-25758,-25366,-15440,-8765,14338,25022,-9011,1305,2447,21221,9731,21342,-26608,21320,1759,29986,613,-7146,-27193,2397,10627,20039,-4336,-17922,18582,-13386,25123,8326,32515,27004,6832,23569,12915,8984,29363,10764,32489,10840,26893,-3006,-30693,-8599,-9958,20601,-13858,1210,-4166,1173,31160,-3937,-29227,13257,-30488,-4538,-11568,-17164,-23149,13790,-18331,-27165,22304,-14291,-17451,-12022,24384,-16422,25008,-3653,-5291,1686,-548,-22635,-2652,-32629,-28978,-14056,590,-6931,-14059,15444,4626,20686,-23493,-735,2519,-12764,-6788,-29575,19322,-12591,-19431,-4409,-31542,-1523,18735,-22505,12015,10335,194,3386,-30991,2472,-9660,9494,-9590,-1422,-8255,-2095,20715,20282,26198,17328,-6327,-13423,26863,-20615,-9267,-30055,20933,-23009,-230,-23579,-6111,17877,-4132,-32009,2179,-4569,28895,23688,30577,-20022,-15408,12523,-25939,3248,-10251,-19075,30610,-24686,-23623,-31503,-23967,30724,12586,3504,22916,-24237,-164,-5690,3960,-29389,4061,7361,-27530,16565,9396,8726,9779,17239,1129,-20344,29787,32688,11233,32061,-2328,11306,-18714,8443,30164,30094,-8477,26059,357,17687,374,26178,6765,19101,11582,19325,29122,28665,24021,-15757,-804,-10356,-18329,6632,5251,24876,-15565,-23066,-16698,-18109,-30384,-15540,-31802,1046,13698,16882,-31370,15506,8013,3010,20652,-12068,3795,-13704,-11281,29921,6912,21075,26489,-7979,20349,16257,7346,-3560,-962,-30445,128,1512,-26314,-29563,27268,-7836,-28936,-18774,-9933,-13409,-10096,16387,-4243,-15222,226,-19306,21472,-26199,10433,-25968}, {-12953,18427,-30830,-30181,-9482,1835,10337,-13080,32200,24918,20473,-11641,-1974,29497,12325,19531,11321,16889,28650,-32588,32059,21853,32483,-21244,-29834,9508,16385,-11721,-31260,-17749,-29619,-9761,-7736,-4616,26331,-4965,22934,2669,-11643,8517,-26812,-9541,3764,437,7801,-28813,2470,-24425,7722,10538,-29768,-25994,-16521,-28701,-5055,6002,23367,-24778,-14476,-296,-11448,6250,17433,14167,14757,16798,31787,18419,-22029,-31633,-25292,29387,-20144,28615,4411,-21209,-5903,-32047,26325,-8310,-10910,12420,3241,12941,-24028,6775,-21135,-5034,1787,27457,-19528,-11517,3144,-17156,-15601,9276,-12308,30601,-3933,1042,-4757,-8462,1785,-2751,32173,19501,32398,10614,-12109,21866,14962,24624,-20045,7468,-67,-1518,-25349,23960,-19442,18568,-4224,-792,25271,-362,22888,12783,-27944,7987,-2517,-19912,-30295,-10388,9248,5338,10855,-2953,404,-24670,-15723,-19173,-23760,-28117,-25342,-1721,22748,10626,-10077,-3635,6670,3219,-19887,25154,-18532,-19102,-29059,-28810,-14339,13222,-2496,17086,-10612,-22780,-19214,1775,-5611,32734,-1890,55,-8092,-3894,-26049,-2553,19577,-31665,22041,7261,27572,-8650,5829,26235,8305,-22665,29211,28940,29371,-14528,27060,-29800,-16272,-27481,12299,-20343,10155,-28671,-21840,-822,-17068,-19355,31810,13572,1994,5245,-31713,-18412,-20427,23108,6862,16485,-32359,-16746,1340,156,29564,-32650,-25218,-12793,-9499,31071,-3283,-24711,29717,-32276,21078,-31453,-8445,18692,-4742,29939,-1151,24269,-20108,9317,-19862,-8378,17487,5531,20989,-28743,-8386,13540,12447,16007,31378,-15223,26841,-11949,27569,30916,10196,28164,31275,5901,-24961,-12093,5690,-1003,15295,-8585,8947,-4331,-6819,-23697,1223,-13170,-29783,3933,22941,19206,22371,20619,-3117,-23814,-31231,-21556,10095,-17725,19083,-27739,5008,32675,-16850,-3738,-28958,-6431,-3657,7431,-1557,-5957,28193,-871,19613,-16110,-16863,15699,-24874,-30099,30689,4446,-3310,-11602,-26528,7091,-8496,-14981,-18395,-24723,13327,7606,27,14807,10050,-25378,-24467,23856,1813,-14900,-9463,12573,-19790,-14031,21036,-18826,1367,20144,-9104,8788,11346,-18128,-2152,-30869,15107,11045,4551,30170,905,-18169,-11415,24550,7312,-23488,-16389,20922,25604,16728,8779,-18713,-8010,21681,19428,14014,28125,31279,-16505,23188,-23312,269,5255,-22158,-986,-5772,-23416,9326,15399,27842,32593,-28336,-28843,-26069,-4061,-16042,-30038,18902,-25269,5620,12993,-21342,-30332,-23608,14679,31244,-21999,-20438,-27318,1917,31157,2791,-5044,-14202,30539,12812,-32579,2201,30434,1206,15860,27971,-4058,5166,-32512,26677,-31545,-13522,13463,9106,-22393,13031,-11791,28697,-14117,4816,-8,30600,-7881,-27801,3779,25400,-19314,-9669,-21221,-26466,-28689,12525,-26305,-23655,32308,-10312,-23880,11831,-7402,26574,-3257,-2572,-3254,-18704,18083,14837,-6000,30494,18676,-4276,7849,-28474,-10194,26231,-11918,16480,32526,1365,-24865,17806,-6159,-16646,977,-29602,26611,4659,-22974,19897,21235,-30033,13040,-7881,11999,-5203,-30924,-28382,13130,11191,-17201,-5288,2026,-21016,-25049,-15870,26170,-22747,2648,-2845,-32182,29467,-2174,-210,17897,-22106,-27711,-30544,-5934,-31462,30077,21136,11059,27206,-9885,-2171,-10616,-7373,-1457,-28697,24172,11752,32021,22750,21686,29705,-6672,-17911,28418,14404,18717,32263,27152,-15460,-4306,31843,11329,20460,3991,-29413,-23774,-2417,21555,11990,-5808,-18385,17861,16751,24967,-25896,31463,1476,3891,-12968,-11775,-26678,15332,11866,-32139,8564,25470,-17284,30571,-18765,-21693,-8532,-18601,-4961,-2265,-1918,4872,15483,-12379,29969,7093,-28542,-3626,14624,6464,4641,7824,21622,-11611,15389,5142,705,-18245,-13944,26812,27677,-32711,15863,-20927,-1526,-30693,5324,-2990,-23403,-12497,27738,-23120,21716,-22350,-4913,32273,901,15597,-31678,12284,-15316,-27692,-32036,2226,-19700,-24279,24267,30924,-30248,-29672,-30625,5356,-3296,26899,-22989,4626,29216,-9514,32447,14641,-30922,28214,14814,16732,-28554,-14259,28235,-3990,-8780,-19188,-30981,4427,-3325,-13728,22187,-12894,22378,24524,-20067,20952,-9998,-21297,-22633,4193,16046,3426,27541,13862,15783,-7894,-21074,-6408,-32719,-12711,10936,-25245,9834,2470,-351,-2731,1330,-5290,-30929,452,-25840,23155,910,-24579,20615,6263,7751,-13923,23211,10420,22944,-27838,11962,-1342,3623,-29057,-22531,25098,-10468,-5514,-14140,-26984,9579,-28307,28110,-1993,-21335,-14923,-8599,30386,16300,14195,-7339,1025,22787,28223,31631,-8186,-10677,-1568,-30118,-15438,-21126,-4121,12080,-10219,-22673,30237,-11529,-12319,-17199,1881,-14978,-22397,24899,13707,10925,31708,-12719,-27711,-28487,25586,-12310,-14838,680,-25530,19384,-18635,-20446,20739,-28589,19190,8291,25387,-25454,30600,16861,-4252,-27309,6623,22499,20223,5444,-24892,20081,16736,30577,-25769,-10146,-486,24483,-15210,24862,31054,6985,8803,11184,9394,10985,24531,20676,-31565,28785,-25006,-32487,-31697,-5857,31754,23544,-12051,-11018,-7852,21839,8508,14361,15826,-16402,7416,28446,-32166,-27983,-11551,-28248,19127,6879,-9035,25521,24265,-29041,25193,29098,9555,17207,-742,-24196,21832,-10115,-6798,17697,-4413,27568,18069,16645,-21784,22748,8360,6626,-30973,-7043,-8602,22949,-9020,-364,22928,30461,3825,-18092,16784,19789,21927,-18979,-30957,19263,32618,14323,-26426,-6018,6787,9988,-1286,-711,395,-24371,-28162,-27219,-25709,-20219,-32716,-613,-13012,23090,30630,16919,-17954,-31158,-8376,-27043,26544,23232,-25608,24675,21232,-18407,-24578,-25980,-3101,3342,28850,-249,-1817,30290,6234,14646,-15329,32122,15237,4787,-4096,-8151,-10376,22541,-31909,-20118,30241,-21283,-882,-11250,7274,19307,25249,-17001,-618,4587,-29435,-17341,-4991,29919,-18903,12899,3987,11622,-14787,-14401,32510,19207,-23910,-11538,-24232,-13273,29022,5341,2443,3704,6511,5041,20984,-14850,29534,-16645,-29108,12862,-32486,11670,-20635,-32671,-20728,4917,-118,11844,-2248,-30512,9014,17324,957,5904,-29826,-15662,10969,2922,-20828,-29616,10079,10646,-16132,23924,21098,11715,24258,27842,18046,1590,-6532,-31692,-3850,-25965,-18685,15341,-11437,5336,4033,26898,30304,-2115,13950,3345,-24572,32044,-17692,-14411,-10013,-3504,8230,2886,-3487,9517,-7464,-8537,-24292,9365,20145,-14645,3768,-14520,9092,-9512,18015,-13136,-11292,5524,16630,-16178,23771,-12536,-4725,29143,2075,46,13585,28510,-2508,-16612,-23097,-26957,2628,9631,16719,25668,-10237,15593,-9034,25678,-15408,-7591,30092,-12669,-3604,-5222,28786,26350,14105,19220,-1091,17990,-31903,11809,5524,28898,-2680,-12649,28792,-7997,31547,17307,-22251,-29026,5864,-30980,6094,22514,615,-8782,-4436,-14224,-18304,-26194,-12840,2922,12663,-16680,8403,7958,5014,-27823,-31344,7439,30482,26627,21807,23172,19603,1303,23403,2960,-12863,-373,23166,-6387,-2479,22555,20130,-31013,13090,13125,1102,-23860,13085,-32241,-1578,4938,19602,-27213,-27496,-26756,-27283,-6942,25906,7333,-6190,-28175,-2913,-777,7766,18986,9859,23266,32151,-3261,-13347,22526,19534,22972,2503,5076,22648,-27021,-24726,17325,-5332,11758,-30605,2956,30936,-19694,-30650,4715,18489,3533,20374,4007,-16880,3314,31972,13266,-31449,128,-29796,-32209,5,-29948,24908,-20831,22553,-32223,-20981,-27150,-3458,-20595,26171,18597,31197,-1649,25929,15043,20576,-3154,7163,-26987,-29340,-15403,-24904,-13283,29175,-12604,-8880,13665,12210,24937,-20774,22291,-17556,4724,-5963,8878,23004,9709,23640,-29136,-23891,-11855,17590,12870,-12455,2880,-3020,12153,-25763,3687,-11425,32209,28052,-11514,8660,-26457,1543,23302,-16601,-22043,15400,29553,-29313,-8972,14889,28675,-22155,26199,-3879,13771,-12655,19554,10809,24285,-23031,3177,18834,-5211,-2906,-7567,22978,26745,12356,3051,16609,25293,-2100,12603,-2491,27308,17870,1225,3455,29706,-16207,10719,3734,-11337,-26538,-20405,-28513,-3378,15823,13306,-7536,24851,24094,-26521,-6980,-19024,-16592,-21929,27706,32489,21497,-22556,-21914,-17628,19693,13620,-23160,-2536,-28700,-7817,-27993,8972,23563,9363,15303,31582,12434,12576,18799,29124,-712,31585,-4476,-12119,-27303,-19957,16979,-31782,-30411,1268,-23391,28422,28869,26033,13438,11388,26024,-8278,20550,12803,-19145,-19278,24854,13556,1465,-18059,30098,-28338,-23239,-21211,13678,12544,-15442,27669,-11752}, {-31846,-10988,9895,-3746,-23039,-26359,-25871,-11925,3574,19547,-31827,1213,25593,3831,-12663,7375,-32666,-5091,-9238,20886,32506,-3564,9249,-28261,18958,23967,-15186,-6782,28962,10429,-12614,11547,24373,22048,8799,14396,19340,-29129,-7566,16153,15926,-26972,20455,-32679,10344,18711,21487,-23875,-4914,-3866,23107,-7698,12039,7042,26870,443,11647,18967,19376,-20413,21574,12347,-2616,25145,-26388,25320,-29959,25612,25515,5833,4737,2339,13933,-6603,7890,-8429,20927,13260,21539,17292,18807,28656,-9300,-23565,-589,-5235,1055,29546,-27987,-17166,11619,14676,-32458,-4764,-30100,15553,14683,27404,-53,-20577,-2218,633,26512,2566,-13081,-1714,-15879,13199,-18971,29700,-26214,10939,-82,-15595,-22530,-26847,9595,-24833,9418,-5552,20695,-18129,-21532,-31925,-21508,22240,-15664,-21801,8512,19233,-14884,-13785,6684,-23841,-14067,13431,-174,-19984,26342,15515,31395,-29744,-479,-22779,-1390,-2692,26526,-18850,-22387,23105,8096,-25902,-11093,9704,-30280,24615,27626,18886,-515,-5778,-16906,26173,26760,-22046,-29795,-31678,4652,26423,31429,16454,-22774,24603,16025,6453,-28955,26097,29063,4218,-3039,-13878,-3100,-2826,-5185,-27585,-6601,2056,29878,-1924,17144,27865,-8859,4833,11898,-7346,-22599,-2694,6457,15415,31616,-32707,-391,20128,-25298,-16172,-17402,15834,6628,7592,9058,10101,-12450,-18066,-4385,-2618,-23313,-7248,-13546,-18761,7966,-29856,-6662,14503,-11672,-19075,9852,-21498,26690,-13286,-2525,-2443,-27687,-18957,-1214,2211,-28769,-22433,-21408,27913,-23509,13550,-29013,15194,3532,-16427,-20507,-9091,4133,9864,1470,31815,-29689,-25664,-15372,14374,7640,-17829,25777,-29829,30432,27701,-6788,9846,22365,-10610,-5697,-12232,-5993,27165,-23091,25232,-12351,-27561,9011,9286,-18525,24879,-25147,-18639,-1491,4177,-4632,-12115,-21825,25810,27984,-12177,14948,21813,23072,-15683,7612,7213,-20628,-9258,-28789,-15695,-11649,-5961,-16579,11173,12520,-22184,14018,1402,-6033,31838,-12663,16677,-1422,15431,31906,-14268,29085,29918,31305,-18918,-15677,21109,24304,-27762,12690,26572,-13899,-6496,15645,31571,21415,21071,18116,28794,5413,21277,-9545,2258,-15552,-1688,-2968,13551,-32067,28962,-4764,13567,-9375,14913,12409,-12303,2706,6854,-27079,-6872,-11696,18387,15763,26160,27302,809,-26441,-17108,19034,14022,-9648,-18108,-32738,17385,3830,22702,27322,-1050,-14346,-19331,12532,1018,15885,30105,20896,32516,-16160,-23983,23147,5977,18084,5989,-16402,20353,-4878,4025,-7630,-9860,15918,-25319,-22791,-25664,16674,19742,-28640,20817,29715,-18333,-13719,-28249,-12566,-16763,3425,-17009,8254,-11216,27981,-6294,-21043,32202,11134,-24358,-10004,-13228,17788,-2079,-30090,5939,-5202,9355,23098,7014,27965,-32697,-645,-27435,27057,-13730,-18247,13972,12036,26266,13216,18570,2901,-27374,-25409,-22983,11889,-26997,-27443,18104,-2084,-13055,-20278,24416,9870,18873,1316,10770,-13880,-4028,-5203,8424,-1240,26162,-23719,-19094,-27552,21889,4238,-20554,3401,30689,17456,18486,-26088,-29820,15553,19124,9273,-22044,29994,17108,21222,27940,-3260,-30513,25874,23245,11781,-5639,25910,-16698,-271,30290,-7386,-23225,31666,-11383,12282,-12963,-11401,-2565,8202,-18061,-6661,6809,-20914,29675,26062,-10155,-21264,2325,-20583,30557,13957,13539,5941,-1792,-15335,8654,-22363,-25356,23500,-17510,-154,-8261,22751,-31615,26981,-7936,-1443,-19878,-13204,-5644,15448,25815,-24973,1119,5735,8138,19570,20484,24163,25432,1708,-8345,-11537,3839,8074,-24898,26136,31215,-32551,18497,27807,31005,26410,-26673,23819,9834,-26306,-2120,32222,13505,11508,-6239,1216,-21344,20261,29481,-26225,-32683,11629,-24657,-27317,8953,-8917,3612,11519,-29889,9662,10989,4252,-2126,3186,-11822,-31506,19643,14382,-6177,-10171,32047,1970,27236,-28626,-499,-23877,-10530,14454,5759,32447,-1365,16072,-21135,-5945,22535,-24758,-9262,6950,12867,632,30430,13594,-19693,25495,-20425,17250,23112,28356,-22338,16161,-12108,18183,4354,14168,24112,-25288,-20229,24410,-13841,-11597,-10401,18962,32406,-12998,32177,17314,-29321,1801,-11536,9129,-26641,21864,-31838,-9035,9616,-27893,27491,18268,28872,-11703,-21970,18650,24006,-8813,-23548,8327,-19598,-17445,-12728,18275,19660,-31660,6355,1653,-22360,-6625,16814,30834,16050,19098,-13299,17081,27144,15263,28166,-13601,9230,-13145,11673,-5174,-27998,1621,-14388,6354,24690,-28486,-20018,-25579,-1216,-25507,20038,24043,-29174,-12411,13908,-5685,-17345,21130,-3866,31627,-12200,32388,-8679,12084,30008,-16745,-9810,-25247,32471,24236,28197,-5406,-950,7905,1605,-14409,-8480,8385,21855,-9891,-5548,25478,7115,-18551,6637,16910,26214,-22515,-5928,-7211,-18200,-8992,7119,-22246,6982,32202,20336,30848,-19731,207,-7273,2680,-14856,253,-17955,31472,-26453,-21539,-12427,12191,-20229,-17091,-659,-16886,28832,29152,17686,-28832,7495,10777,22622,28053,-27138,27465,-11698,19384,-21052,-25415,-8394,22261,-5487,7317,22092,18295,26769,28744,-31191,4127,31515,-694,-26574,-3186,-22503,-16822,-29228,16020,-22228,-4830,8249,-4907,-6446,-12334,3524,-31538,9489,-5355,9386,-8679,27216,-25501,4178,18993,11994,29263,21315,-20660,27823,31107,4913,28511,8469,-5653,27738,-29541,-32237,-30055,-25443,-12825,-1635,28806,-22866,-20347,-31663,-22588,23521,19959,14578,11778,-8258,-15716,4568,15046,-12878,-26261,-27321,20566,-28523,-11814,-27738,-28013,-9035,-16342,-11163,-29460,28829,-30101,6369,-13990,-13039,29508,19550,-12596,-30152,-18087,-1900,135,8114,14274,19266,-21318,18692,12379,-235,28943,3806,30494,-2010,-19867,5268,12068,12494,19693,-23804,32550,-11676,30520,19838,-32737,-10517,-3244,4133,7353,-20928,-26943,30573,27876,4968,-28604,-29391,32581,20864,-32614,-26072,-16710,-7556,15311,-4589,-22512,16662,-20063,29569,-12284,25763,10933,3385,5999,-24272,7493,29386,-4417,-2131,15850,27740,-28328,-6173,30753,-21033,-8368,2499,-32075,6407,892,8825,-233,18984,9993,5730,-13178,-7269,-28458,-24134,18901,-26033,27497,31065,13626,16132,27936,25078,-1553,15378,-22782,4568,27307,-15898,-7579,14566,-22236,29506,-8987,-10121,3689,-26412,-22602,1605,5715,12130,12055,20860,-5884,-32042,18835,23692,18741,2730,-23579,31298,-32284,349,-14655,4571,13893,8384,3817,-6747,-26463,22155,-26799,-1480,-11205,-30075,18255,8757,18893,-20026,-14772,-18303,25099,11711,-24600,-22004,30740,22589,25538,16384,31196,-1163,15694,-3889,28228,-7175,-3920,30774,-7108,-2353,1087,16058,-13191,-7856,24565,-1822,-19507,-8108,-11709,-4266,1042,-19224,-14291,9962,22737,31650,12717,-707,-15237,-18172,9665,-9315,-22367,13462,17270,9150,-6219,-16841,-32746,-16448,-6988,-4999,5474,-6515,-22059,-2477,29308,1986,-7490,-31621,22027,-10096,5266,3174,-10323,-30592,18927,-56,27255,7833,15494,18759,-10098,-14287,25523,19233,25404,5670,-31380,-20581,26639,22158,-13322,23063,-17917,-18621,28517,23177,-4642,15501,-32685,-1911,1371,9139,6193,28049,-14374,-8952,3201,-31571,-10401,25329,30877,25904,-2168,-14463,25408,27756,4211,-23681,-19369,15952,9412,-20126,14130,11960,26829,-3097,27329,8443,-8713,18192,28808,8634,18809,25154,22510,4043,-29107,-27594,14575,27098,249,1183,27610,12412,-30131,26485,2735,-30212,17481,-25753,17160,601,4161,25154,-31025,987,-10923,18701,-19638,-26705,-18165,-26995,22787,-7120,-28298,-6147,-19515,18963,-15651,-27907,10851,1281,-21611,-8327,19526,-31641,22540,-23696,5405,22324,8536,11040,-31698,-26383,-135,-17670,6924,-9295,-25373,19273,-18949,4757,23605,-28198,-19307,-30332,-28951,15934,-2985,13663,25459,13886,-13983,2361,-25577,29575,7907,12862,-30177,26671,22600,-3485,15161,8984,-12562,21401,27669,13967,8013,14147,29222,-5327,17978,15185,24747,-29105,-25103,25286,-1361,29677,-26813,25047,-1653,9591,-26766,-24217,-19809,-16662,-31429,13094,-20852,15158,21372,18954,-1148,-23284,-25608,8533,14062,-21588,-14445,28955,16645,-26979,10632,-21000,-19633,-8844,11106,-22606,-7784,-4070,31721,13056,-32132,13020,-18906,-23213,-14101,26495,15336,22592,-21521,2936,15961,32446,-20364,-4017,-12846,-16121,-4582,32457,-4885,14554,-13803,6837,12099,2719,-29502,9386,30253,-21295,4250,-14458,16822,18524,15561,12471,13546,9969,-23137,-18700,-31662,22313,-26929,32579,-4462}, } ; static void test_encode_1277x2627round_impl(long long impl) { unsigned char *s = test_encode_1277x2627round_s; unsigned char *x = test_encode_1277x2627round_x; unsigned char *s2 = test_encode_1277x2627round_s2; unsigned char *x2 = test_encode_1277x2627round_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1277x2627round_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x2627round(impl); printf("encode_1277x2627round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x2627round_implementation(impl),ntruprime_dispatch_encode_1277x2627round_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x2627round; printf("encode_1277x2627round selected implementation %s compiler %s\n",ntruprime_encode_1277x2627round_implementation(),ntruprime_encode_1277x2627round_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1277x2627round_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1277x2627round_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1277x2627round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1277x2627round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1277x2627round_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1277x2627round_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1277x2627round(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x2627round")) return; storage_encode_1277x2627round_s = callocplus(crypto_encode_STRBYTES); test_encode_1277x2627round_s = aligned(storage_encode_1277x2627round_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1277x2627round_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1277x2627round_x = aligned(storage_encode_1277x2627round_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1277x2627round_s2 = callocplus(maxalloc); test_encode_1277x2627round_s2 = aligned(storage_encode_1277x2627round_s2,crypto_encode_STRBYTES); storage_encode_1277x2627round_x2 = callocplus(maxalloc); test_encode_1277x2627round_x2 = aligned(storage_encode_1277x2627round_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1277x2627round offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x2627round();++impl) forked(test_encode_1277x2627round_impl,impl); ++test_encode_1277x2627round_s; ++test_encode_1277x2627round_x; ++test_encode_1277x2627round_s2; ++test_encode_1277x2627round_x2; } free(storage_encode_1277x2627round_x2); free(storage_encode_1277x2627round_s2); free(storage_encode_1277x2627round_x); free(storage_encode_1277x2627round_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1277x3.c0000644000000000000000000007032214705505543022231 0ustar rootroot/* ----- encode/1277x3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1277x3_checksums[] = { "5f8a22de6e4e3893b53577b6606bc3ccdb111ee025d609d21cb06592468e29af", "b11455450ab60cf8c24ae5a25003e85e650fffe8bc5b29cd76439f154905de75", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1277x3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1277x3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1277x3_ITEMBYTES static void *storage_encode_1277x3_s; static unsigned char *test_encode_1277x3_s; static void *storage_encode_1277x3_x; static unsigned char *test_encode_1277x3_x; static void *storage_encode_1277x3_s2; static unsigned char *test_encode_1277x3_s2; static void *storage_encode_1277x3_x2; static unsigned char *test_encode_1277x3_x2; #define precomputed_encode_1277x3_NUM 4 static const unsigned char precomputed_encode_1277x3_s[precomputed_encode_1277x3_NUM][crypto_encode_STRBYTES] = { {4,36,10,100,115,236,133,187,28,141,159,245,24,8,88,185,32,176,73,208,165,203,1,202,155,233,100,68,212,222,254,13,47,55,242,11,100,240,21,4,225,70,112,145,38,96,100,77,21,20,118,55,117,118,211,230,116,13,157,46,78,8,216,223,19,70,84,114,183,61,51,190,45,80,156,39,61,0,51,9,124,11,236,229,54,117,217,2,249,253,201,141,226,72,67,143,80,21,197,216,162,241,205,159,44,134,198,166,173,130,36,225,224,7,81,206,145,242,96,71,89,15,27,33,192,121,232,46,141,1,57,151,134,85,29,125,149,60,71,60,246,160,85,39,206,105,211,92,128,78,4,232,73,229,118,91,157,242,194,224,143,170,56,218,133,117,123,97,47,243,181,255,113,181,24,10,208,21,59,35,31,174,50,67,101,168,222,193,207,11,162,106,12,1,21,101,101,73,43,85,132,231,176,41,201,144,78,239,199,121,22,85,250,60,155,197,214,59,99,66,198,184,236,235,181,67,75,218,204,245,116,15,41,130,117,38,14,132,84,233,135,11,14,141,153,57,62,200,128,4,199,175,79,11,26,106,161,139,7,221,175,200,148,226,218,50,214,222,83,111,130,171,94,145,79,252,168,84,234,208,109,127,132,236,159,81,209,13,44,12,242,206,115,57,54,216,125,50,9,86,200,170,57,181,216,199,134,71,23,205,207,169,187,56,157,243,66,131,218,248}, {51,68,177,248,180,163,206,78,62,223,245,94,230,190,37,54,36,176,119,129,76,18,16,18,9,212,116,77,15,94,30,85,68,91,160,58,198,207,16,44,166,131,12,43,207,25,168,238,89,118,234,113,109,254,238,209,136,91,133,81,193,158,29,60,4,142,245,85,238,40,63,245,63,90,146,242,238,202,50,224,222,57,21,236,53,144,8,189,205,24,182,184,128,16,47,24,92,1,111,34,68,73,117,2,186,92,77,252,167,219,187,245,217,208,7,183,17,33,125,182,242,157,175,194,55,47,145,20,105,47,41,159,87,250,12,207,21,48,69,196,206,130,136,43,79,247,7,213,0,208,180,95,59,109,14,3,15,224,124,250,253,149,206,160,167,219,57,26,91,145,45,130,9,123,6,136,163,65,76,103,137,56,123,52,90,198,103,213,109,183,124,132,21,172,224,244,91,212,32,117,5,167,233,181,213,244,189,235,177,134,243,101,202,29,133,182,9,146,44,136,149,28,201,105,37,182,120,28,46,172,3,181,50,128,223,181,97,43,136,168,35,204,223,66,159,170,43,173,108,91,202,52,190,204,254,195,162,120,122,220,90,118,97,173,70,242,50,108,129,31,116,158,111,57,152,183,59,189,58,178,203,165,83,151,216,111,143,10,175,138,241,96,213,50,237,55,123,226,66,228,140,202,126,76,229,140,191,231,250,55,151,79,124,23,71,122,220,11,207,125}, {219,8,45,241,57,253,56,198,52,31,37,22,155,202,2,182,83,73,100,133,48,90,11,34,2,166,37,178,58,220,251,179,188,214,90,50,217,165,147,76,55,13,216,98,188,62,45,35,18,29,119,196,162,21,121,44,46,223,175,187,240,93,67,236,155,185,97,80,82,141,219,74,199,46,221,237,135,0,4,149,20,122,214,51,208,68,67,127,188,66,100,39,232,197,178,58,113,39,187,154,203,179,174,237,15,2,213,70,222,208,115,43,179,243,101,45,157,145,25,35,232,87,92,104,192,22,175,0,211,67,67,181,191,58,26,180,209,218,163,222,175,65,162,189,15,163,29,239,175,31,233,171,219,187,11,247,115,33,196,81,195,117,34,160,77,117,193,35,130,236,230,251,138,126,117,1,51,7,189,243,129,0,84,215,50,215,103,102,11,25,195,43,196,58,100,214,64,223,245,76,30,180,33,102,127,229,110,8,55,98,28,38,221,218,157,196,87,183,56,91,185,239,117,75,208,190,155,253,51,43,63,123,24,5,196,60,144,64,239,228,74,173,107,252,42,108,105,170,184,244,241,89,3,35,230,142,150,141,26,189,134,231,144,139,244,69,55,200,153,127,37,170,1,176,122,80,226,188,154,42,213,54,98,65,91,8,9,145,125,83,62,36,250,234,142,106,122,53,244,214,44,153,218,60,111,99,93,237,228,101,207,87,19,73,133,78,134,64,149,243}, {66,222,129,98,25,14,240,113,182,196,15,72,198,234,11,53,46,83,194,143,11,23,5,236,210,210,58,193,182,56,125,29,223,125,193,162,72,124,58,34,77,115,93,155,64,96,83,207,131,147,177,32,225,181,161,218,9,222,37,214,206,16,249,230,229,94,31,148,9,138,59,131,123,247,93,120,230,132,172,179,125,162,222,162,122,56,61,242,139,139,92,134,177,81,78,114,233,216,221,225,14,144,142,73,218,193,209,34,20,87,79,249,27,4,196,15,15,190,92,7,142,18,61,210,86,48,61,104,115,45,107,26,162,250,172,239,1,25,46,179,139,229,141,197,162,35,3,244,150,194,196,245,138,33,17,255,79,137,248,156,202,188,163,106,103,248,74,131,247,141,192,184,152,215,131,187,29,78,139,114,30,146,19,193,161,111,17,61,61,123,255,223,190,218,57,110,226,22,43,36,64,73,133,55,188,180,223,164,137,243,52,173,249,193,74,16,224,41,163,29,110,211,244,108,106,166,88,90,46,245,19,157,178,39,6,247,44,8,149,143,254,29,216,31,146,28,78,110,123,161,144,175,14,195,207,190,171,48,144,202,89,216,190,117,248,204,149,86,102,220,247,36,182,151,139,127,212,130,248,175,34,42,153,231,179,63,55,44,137,221,152,185,140,214,30,63,109,76,210,13,136,82,136,93,43,200,112,180,170,232,96,112,38,164,155,150,37,234,136,164}, } ; static const unsigned char precomputed_encode_1277x3_x[precomputed_encode_1277x3_NUM][crypto_encode_ITEMS] = { {235,17,76,123,139,81,172,217,177,21,147,86,131,51,20,18,238,168,201,232,15,170,142,184,20,207,26,33,150,244,184,102,251,55,239,60,36,17,77,212,210,222,224,228,144,44,122,11,219,114,78,229,3,32,75,2,227,120,24,67,8,163,253,168,143,199,230,231,123,176,102,7,124,182,186,20,127,191,56,238,80,68,111,240,198,224,167,79,116,90,241,63,161,49,89,42,102,76,251,188,120,239,218,191,43,37,181,236,39,34,196,0,39,34,181,174,97,230,133,221,217,64,93,164,176,162,104,228,42,236,56,102,50,84,74,119,13,172,162,179,122,239,64,254,123,233,163,235,219,188,193,19,64,220,197,151,227,163,188,62,208,231,190,105,13,97,98,201,91,164,71,107,204,240,239,103,245,43,47,185,251,32,177,238,15,72,118,146,168,4,40,3,184,66,44,205,143,116,150,240,157,145,28,178,14,121,47,140,184,86,177,56,237,17,83,227,222,52,25,133,105,242,190,70,183,122,32,210,140,75,244,43,140,227,247,91,21,213,207,130,133,229,190,12,143,57,52,188,119,215,227,82,110,99,65,146,30,172,187,209,149,47,242,122,103,170,251,81,5,182,128,113,222,201,214,208,124,199,157,38,242,147,14,119,149,165,196,252,184,152,156,244,211,62,83,40,147,129,99,118,22,91,109,150,216,88,19,14,215,113,129,80,94,28,205,149,68,160,103,62,207,130,197,172,98,13,94,169,175,178,86,19,52,7,164,248,5,7,40,117,76,25,43,35,136,103,18,69,109,144,204,137,24,231,223,76,56,48,179,130,216,207,182,252,224,218,143,124,153,197,182,82,151,91,71,254,66,47,159,72,38,237,30,150,235,36,116,217,72,250,197,245,132,11,84,170,151,123,56,182,205,184,34,150,0,199,116,49,84,105,92,83,22,253,68,248,163,253,180,104,185,66,95,82,161,176,137,66,161,92,116,128,180,161,210,0,53,254,144,68,31,44,16,16,156,104,37,28,199,105,50,192,30,113,217,45,36,82,189,147,185,220,57,131,20,206,251,5,173,92,12,179,211,42,153,132,14,53,177,232,0,57,30,41,246,153,246,124,234,55,28,113,8,125,145,127,63,247,221,242,128,117,225,167,79,85,67,119,245,57,84,119,4,165,226,138,240,131,147,206,216,51,156,210,206,169,117,34,213,163,93,44,4,119,30,221,224,238,251,246,200,164,97,219,172,45,254,120,167,124,129,161,2,36,122,99,207,134,108,129,25,234,90,181,107,120,40,162,28,245,45,137,106,250,96,246,165,181,212,67,196,224,21,14,78,172,212,241,151,152,5,199,191,47,203,116,205,67,138,58,151,86,0,19,15,49,68,170,216,215,4,150,120,134,124,169,33,8,34,243,38,204,255,251,192,198,119,172,221,196,239,11,29,196,188,110,7,33,0,148,214,81,6,115,81,61,209,116,39,3,239,51,73,51,199,152,20,223,98,10,60,229,41,119,170,23,130,136,92,84,146,117,234,156,84,153,30,232,174,12,228,207,80,45,134,189,243,236,244,118,77,98,232,158,36,239,155,174,67,13,105,55,151,4,55,105,170,44,20,251,248,185,242,13,176,183,14,212,91,219,210,130,47,184,65,34,69,33,129,51,213,77,158,96,237,64,136,30,205,213,95,65,147,223,253,19,76,38,220,76,230,132,78,219,88,29,150,212,45,184,177,219,59,90,137,91,146,160,71,40,73,37,60,136,9,163,180,135,71,2,92,57,161,59,80,180,31,120,136,223,171,29,230,164,82,225,128,116,31,11,251,253,220,14,158,253,180,47,123,180,29,133,32,77,200,236,172,186,210,19,63,139,249,57,233,36,172,39,6,221,86,31,30,229,64,59,0,133,49,76,209,172,156,238,24,138,164,158,125,86,41,197,23,84,228,45,58,67,128,216,156,13,74,168,137,254,224,196,38,60,201,205,202,77,109,37,1,119,101,31,241,208,120,159,215,207,173,66,255,90,151,147,50,9,104,63,116,23,201,112,222,176,201,107,14,10,160,123,57,143,197,179,11,15,115,176,100,47,20,29,63,8,56,77,82,214,209,168,32,137,5,169,97,187,82,103,136,2,109,139,65,0,101,5,185,48,64,197,115,139,9,20,123,205,193,45,0,9,115,217,194,48,239,123,18,225,222,97,37,209,17,25,28,15,226,91,116,0,133,18,208,37,200,76,169,16,200,110,239,205,145,77,119,197,150,29,83,119,228,33,130,92,28,43,190,111,130,107,130,50,223,95,218,31,6,132,125,6,191,137,165,216,173,221,208,119,202,76,194,217,33,220,190,245,114,4,176,238,246,11,178,110,191,36,55,127,20,4,207,204,176,157,213,150,82,177,189,142,153,8,65,235,79,248,245,7,251,119,21,93,240,76,138,225,187,209,2,110,230,92,89,89,211,117,6,152,199,82,169,4,113,145,192,111,88,5,230,185,147,0,115,121,253,34,171,238,211,127,103,106,191,144,53,220,175,48,27,164,137,229,168,192,183,240,146,30,74,154,19,83,249,113,127,6,248,134,246,121,131,117,148,74,172,34,104,149,252,104,72,176,39,41,175,242,18,201,35,121,147,142,81,23,131,35,165,49,109,245,26,73,226,47,20,144,53,205,253,237,67,36,187,42,174,129,188,163,254,72,45,12,248,0,212,44,255,241,221,161,106,44,183,235,245,27,225,221,252,197,200,191,38,119,216,150,215,123,247,231,151,178,146,48,146,252,21,163,125,99,170,142,1,40,210,240,103,43,20,161,142,0,142,255,155,177,44,122,208,41,158,230,171,166,243,240,79,225,68,161,8,76,122,193,230,135,217,93,254,11,114,83,191,134,53,172,186,244,247}, {210,155,122,152,71,238,163,3,16,147,144,160,239,153,173,182,159,96,232,35,102,26,44,55,33,38,252,244,41,100,68,140,245,69,250,117,154,196,222,104,120,10,164,171,21,213,34,254,169,146,86,193,201,132,49,42,180,211,33,231,77,5,184,4,203,181,187,102,35,74,165,207,138,14,126,214,64,79,239,135,87,60,175,139,113,199,75,58,127,159,20,14,33,131,213,229,108,222,101,142,119,126,201,254,191,88,216,30,40,8,139,108,90,144,146,8,249,204,250,137,25,96,147,108,124,25,22,3,199,18,58,137,206,254,24,211,115,142,234,160,237,30,68,65,21,95,82,111,122,80,36,114,39,25,143,253,47,242,2,115,73,10,222,156,226,135,131,160,23,64,82,182,42,27,132,100,110,11,66,99,4,100,227,64,111,209,190,219,137,132,204,21,128,201,210,165,177,156,132,191,101,180,110,218,72,241,21,59,88,148,47,98,249,184,49,243,49,150,109,13,200,233,9,70,211,68,201,95,70,236,141,49,0,68,94,161,124,4,239,30,24,57,235,239,121,248,71,202,156,139,60,37,167,28,29,224,251,205,192,182,197,173,20,82,108,101,90,104,212,51,198,148,1,34,169,214,183,251,139,166,170,212,239,60,36,227,167,174,106,104,14,88,245,124,138,234,253,192,228,228,53,174,43,24,169,200,17,79,89,87,188,48,217,29,113,234,139,152,234,148,189,111,121,202,236,46,172,222,80,4,22,248,235,115,110,196,160,44,157,211,243,110,213,129,175,49,188,70,156,215,223,34,196,17,135,184,95,113,222,115,237,49,75,140,195,172,195,239,155,140,6,176,183,197,131,171,142,107,174,91,91,82,110,117,3,137,66,211,176,215,58,172,142,119,147,70,57,89,79,193,175,40,206,143,40,67,68,206,64,8,28,140,185,101,18,61,73,243,229,40,115,21,244,212,100,225,105,70,227,161,148,168,242,220,119,230,154,163,158,122,70,36,141,11,176,88,69,185,56,75,166,123,23,69,29,62,78,53,229,117,50,196,142,89,104,77,190,225,240,199,204,92,204,95,174,132,177,168,229,43,105,21,238,92,112,242,205,181,170,144,151,40,197,226,6,147,46,165,86,187,218,204,85,62,152,253,159,123,55,242,48,3,180,252,199,196,46,67,98,158,32,201,49,130,46,123,87,87,58,122,110,52,57,15,79,73,91,111,234,188,70,73,237,221,68,195,159,134,83,110,201,141,216,222,126,51,231,178,88,53,173,247,63,184,25,53,164,52,143,89,60,166,102,84,38,67,62,195,19,46,94,185,26,179,142,133,57,58,44,121,91,187,143,131,157,53,227,42,31,172,63,0,250,158,142,251,205,91,22,224,57,151,48,50,98,252,197,161,103,68,14,148,29,58,162,90,75,144,171,152,96,130,51,21,226,134,73,203,87,167,160,162,200,40,88,162,178,245,205,23,13,10,39,149,221,140,210,200,46,206,150,88,153,100,144,185,63,210,185,15,193,67,250,91,34,138,244,238,137,108,88,148,183,251,13,224,114,106,24,147,9,103,238,214,46,72,185,70,146,31,191,93,188,117,18,223,240,111,192,75,240,12,231,4,116,147,166,207,187,202,40,251,74,178,87,107,78,80,110,110,80,248,247,214,9,240,241,241,25,183,189,45,224,192,226,108,152,80,120,26,246,29,100,81,219,87,46,201,245,31,147,137,243,233,175,184,2,86,180,47,121,203,159,206,116,41,255,211,208,205,175,28,56,192,110,214,8,127,243,119,15,103,159,23,117,210,144,248,87,33,96,144,249,86,190,49,197,170,128,177,225,217,128,184,60,77,144,132,254,248,23,114,136,45,92,155,114,134,214,104,106,30,208,175,173,184,201,138,236,98,154,117,7,115,144,232,50,83,237,134,15,190,92,103,41,217,92,229,180,184,181,35,66,88,36,172,82,39,101,162,229,84,19,201,10,244,199,147,102,255,208,80,103,147,247,72,55,153,112,9,146,195,148,144,196,104,112,116,249,12,225,176,76,136,107,102,194,88,111,186,19,181,213,9,226,243,91,195,219,89,178,255,224,236,36,7,234,46,209,191,45,245,203,216,4,139,210,66,251,16,232,94,60,125,216,181,202,171,214,80,20,14,7,227,90,116,243,72,56,203,142,60,221,186,103,40,123,231,230,229,137,214,17,15,198,17,46,175,198,48,141,82,24,88,130,81,49,60,96,190,12,137,71,184,27,209,210,9,125,49,21,48,18,130,227,207,188,200,125,83,122,152,211,225,178,116,189,199,137,189,250,173,224,247,97,255,91,121,135,191,42,76,69,116,109,237,47,146,125,189,25,155,216,244,29,101,159,126,4,6,171,117,40,36,206,23,213,167,116,77,241,211,110,86,33,91,105,83,191,34,61,92,44,204,125,68,210,186,145,192,187,165,57,85,181,101,72,106,238,247,133,32,108,218,73,6,39,71,172,17,150,219,94,166,94,146,180,156,88,244,248,187,173,34,167,201,101,70,142,108,102,20,80,7,8,194,188,46,238,108,42,79,234,138,211,44,203,206,0,254,10,244,8,219,218,180,221,135,65,157,80,96,46,207,43,69,209,141,43,246,176,215,45,151,107,64,114,166,40,18,97,24,69,34,105,6,192,154,35,229,106,210,7,187,58,83,62,231,133,18,208,135,145,67,125,110,43,109,207,151,203,91,140,209,193,253,248,249,97,174,105,190,71,164,98,68,236,37,13,197,59,75,209,83,26,148,208,28,170,106,44,226,25,251,138,176,82,224,49,92,242,96,245,118,158,11,143,173,95,210,88,4,66,144,24,155,194,0,131,36,105,195,159,111,147,29,192,222,242,205,73,124,250,240,224,159,124}, {214,236,44,157,207,249,76,57,200,192,165,255,164,50,123,242,136,27,163,163,0,102,33,220,147,4,108,66,29,33,173,36,195,219,59,156,2,98,64,13,16,40,10,22,65,184,98,50,6,156,241,115,181,164,151,243,161,167,99,13,193,52,117,238,234,141,126,160,84,132,233,136,35,163,74,167,60,245,150,127,99,18,19,28,61,174,181,151,106,27,110,124,193,163,144,154,249,249,173,196,221,73,253,50,224,228,30,154,41,101,126,91,101,140,61,202,159,34,42,175,242,173,228,111,18,71,207,77,147,69,232,73,117,123,78,249,217,235,188,167,113,247,53,53,204,194,163,118,72,10,246,194,94,144,90,244,31,178,101,255,54,227,26,154,208,58,64,200,203,138,129,58,29,0,47,224,251,23,97,236,105,92,113,48,132,105,99,90,222,108,212,232,97,223,190,96,88,108,48,167,230,187,233,191,3,219,180,179,17,51,115,53,208,4,170,157,120,227,126,77,183,172,239,102,113,170,40,233,114,42,247,136,98,130,59,137,102,12,69,90,3,102,208,252,156,67,142,166,150,250,91,127,7,200,203,175,170,7,92,39,112,17,255,27,76,240,176,84,71,229,218,102,221,64,78,145,172,51,160,107,146,29,212,85,81,221,239,213,174,81,104,0,149,117,175,70,248,164,216,18,64,30,178,143,238,17,52,63,51,134,190,214,59,89,37,107,120,246,47,68,135,66,39,203,153,115,124,240,249,178,184,149,46,4,186,200,67,246,30,250,183,38,46,159,34,79,5,69,254,95,155,76,207,26,27,218,69,190,243,130,67,175,133,211,34,16,31,158,219,134,182,253,60,81,107,209,189,108,251,49,21,4,92,212,200,149,124,21,150,79,12,221,90,195,84,255,241,89,175,144,134,104,89,7,218,77,213,172,61,3,5,179,92,183,30,142,58,136,246,112,69,30,67,147,248,202,58,103,213,83,213,22,113,138,103,222,111,35,88,124,186,153,176,8,110,150,217,190,50,255,119,135,114,151,225,127,52,59,19,39,196,157,134,81,32,78,211,191,240,99,8,249,40,3,45,207,126,100,24,45,31,229,166,170,46,193,5,90,163,105,140,100,131,80,165,148,151,189,6,38,45,85,132,252,174,179,158,60,199,45,151,19,238,152,31,233,214,146,93,224,50,119,26,149,172,5,54,53,6,93,251,213,45,98,47,177,89,43,0,199,127,120,52,39,216,53,65,139,85,84,190,68,122,241,173,21,9,100,3,131,218,40,214,146,200,129,206,165,85,166,14,14,64,130,246,3,62,175,240,67,94,144,239,99,156,83,74,209,22,253,221,43,222,67,219,195,206,3,191,192,48,121,12,219,10,223,209,179,62,234,118,245,110,162,31,122,150,92,231,33,118,195,130,180,34,203,57,157,212,254,132,99,191,0,159,27,84,134,213,173,46,48,180,185,244,139,236,69,149,2,207,197,27,112,139,91,64,26,165,104,220,29,213,218,252,44,68,62,246,190,66,255,157,164,160,172,171,47,99,180,209,112,108,249,130,57,172,242,113,61,93,68,121,156,208,121,12,77,122,121,40,65,180,105,94,248,158,127,158,25,163,54,24,236,210,222,154,201,102,166,64,235,28,66,155,144,197,110,239,164,52,233,166,155,11,47,217,17,0,223,158,53,165,159,50,64,194,243,73,214,119,76,38,228,192,128,84,108,188,160,34,163,212,10,214,168,114,65,123,193,99,243,177,185,17,121,19,199,238,204,181,7,67,10,75,240,182,174,254,59,138,224,36,203,221,138,247,4,231,106,41,144,134,196,111,112,207,253,36,174,55,94,137,202,18,145,102,77,225,26,52,147,85,147,85,165,115,0,127,165,242,178,206,253,18,84,225,23,33,167,147,1,55,55,45,37,217,110,136,24,98,102,169,203,251,24,0,162,116,138,243,239,196,102,122,26,50,240,114,200,89,245,167,135,98,48,214,144,15,64,220,154,218,114,250,16,206,86,188,33,142,4,46,106,186,218,247,225,48,132,1,66,186,131,66,129,228,235,48,90,9,138,54,234,148,195,226,65,183,50,130,198,33,61,154,187,10,208,19,56,25,189,232,238,69,23,215,162,209,196,215,48,29,174,179,110,213,246,251,156,116,93,174,107,92,38,227,191,27,112,137,175,39,29,76,123,134,99,70,228,164,24,79,206,182,15,73,75,238,202,71,60,170,217,20,208,176,211,61,102,160,78,175,217,65,237,43,145,223,41,28,196,35,41,132,12,37,4,118,138,229,215,74,237,105,57,201,118,51,247,141,47,107,105,237,145,53,31,216,92,223,188,221,110,119,227,184,232,61,89,65,196,218,105,22,199,234,147,147,42,100,123,6,52,250,183,131,163,1,106,152,150,252,197,134,23,116,87,107,222,109,211,232,163,5,190,170,52,231,149,12,45,105,22,153,127,108,12,112,103,142,215,231,237,136,5,157,166,163,119,175,171,150,37,109,168,228,221,143,78,118,149,29,26,24,93,69,168,47,56,80,188,16,77,253,177,110,61,217,57,61,190,96,247,219,12,106,59,63,67,3,16,219,19,52,240,212,190,20,250,64,29,60,187,140,133,54,62,105,81,45,63,24,61,27,121,201,161,25,203,50,5,137,175,53,140,253,91,1,163,93,34,19,32,125,230,105,98,156,217,150,178,67,51,57,28,37,51,217,4,95,222,220,81,184,231,11,53,153,215,1,238,195,65,122,198,54,177,166,139,198,14,61,97,192,30,173,248,128,238,214,120,143,88,194,194,184,58,235,15,10,52,154,160,222,41,100,133,134,78,204,225,140,162,174,112,16,188,175,93,101,25,203,238,217,174,106,252,15,139,227,230,204,25,57,198,242}, {97,223,89,150,253,247,123,136,52,230,214,108,29,76,144,135,156,86,157,240,217,228,1,221,87,29,245,230,188,140,255,121,173,137,81,42,31,0,149,212,210,42,168,99,83,84,205,38,37,243,252,119,149,148,207,203,118,44,189,235,224,116,155,10,33,162,47,241,206,208,59,81,225,227,168,110,134,85,214,32,30,74,107,15,102,59,59,11,160,228,236,135,111,58,200,67,29,232,72,141,221,72,200,72,129,61,55,172,136,81,234,204,29,201,246,235,155,130,48,29,152,64,185,140,160,190,23,183,98,150,105,141,80,122,75,205,88,189,218,138,229,146,114,96,135,191,63,210,131,125,203,200,157,170,130,170,17,223,244,72,124,151,102,55,146,135,183,48,12,51,87,247,38,0,62,237,255,147,190,151,167,169,156,64,102,62,34,126,10,76,80,49,70,50,74,242,90,185,76,185,204,20,80,149,159,167,209,10,212,46,92,165,212,147,28,62,188,224,169,142,137,231,26,155,140,234,176,138,33,98,154,229,124,29,42,77,153,146,130,26,193,122,113,99,19,222,243,112,4,156,151,187,193,108,246,43,56,138,15,157,65,230,43,158,246,225,249,179,43,9,127,152,164,188,210,200,69,16,99,202,226,213,27,212,114,79,192,2,78,234,7,199,182,191,187,121,140,95,204,213,3,212,161,115,85,87,102,6,27,69,104,66,167,164,46,169,246,150,225,88,188,163,98,251,25,165,58,168,201,68,251,152,61,12,98,31,221,38,231,161,75,170,227,195,100,93,13,249,213,198,51,62,194,137,9,143,246,228,211,154,71,28,93,102,133,159,23,79,208,143,253,246,232,185,103,3,193,238,80,158,53,198,53,114,8,123,6,213,55,227,8,245,96,86,41,197,16,111,76,84,189,35,219,243,231,93,122,137,225,90,99,179,248,167,198,148,105,199,56,250,52,178,83,229,228,78,94,46,209,203,181,86,83,115,118,189,42,234,67,136,118,197,51,97,48,181,18,50,202,251,249,138,115,123,89,215,167,98,12,86,70,25,53,35,182,201,162,127,65,94,47,67,83,65,95,95,110,77,41,150,245,73,210,200,197,98,139,3,52,109,172,73,109,24,231,197,57,218,130,81,15,83,224,42,200,24,16,143,195,184,119,72,34,195,63,64,208,250,62,25,142,206,149,44,125,114,88,216,253,244,80,246,241,161,35,80,235,179,146,118,110,159,131,186,8,89,108,106,24,103,53,87,29,223,40,127,186,125,159,103,182,96,156,249,252,153,111,61,232,28,146,127,132,59,212,87,225,103,217,137,18,171,213,207,134,114,22,12,3,179,245,218,169,118,52,110,137,225,150,4,95,240,49,61,112,108,112,250,9,91,168,181,108,120,100,113,192,3,187,117,218,128,45,228,42,136,43,48,100,124,210,151,239,45,160,48,195,69,91,47,69,180,210,213,139,115,13,17,198,218,226,220,81,229,179,16,234,22,13,160,11,230,228,139,41,71,87,197,90,141,146,150,98,108,125,123,140,75,148,253,243,222,148,15,179,164,126,129,47,93,178,102,170,142,178,102,122,17,147,173,110,130,223,160,168,172,231,168,13,23,81,50,182,40,146,3,197,166,24,65,185,120,75,62,85,182,5,167,198,50,251,174,132,198,97,151,224,235,124,236,82,222,161,93,216,57,240,252,180,25,49,167,76,35,25,118,126,82,134,88,14,115,149,14,234,24,168,19,125,187,152,22,169,7,228,190,168,99,95,127,189,215,216,30,173,84,109,195,129,192,176,209,186,203,207,136,35,231,37,59,63,179,126,52,180,216,94,232,52,99,227,141,166,95,60,208,255,58,200,108,11,9,47,29,230,97,238,57,7,90,186,133,160,57,255,199,154,209,196,82,239,144,55,233,20,253,61,190,148,116,156,166,120,145,211,146,253,22,6,101,171,172,190,2,7,233,250,137,156,198,34,160,194,99,132,71,68,49,200,61,133,181,44,28,226,139,171,55,39,150,106,102,31,254,236,85,201,71,43,218,165,203,124,107,183,67,60,218,21,208,167,101,49,74,80,2,80,80,37,55,82,107,96,211,40,28,107,148,229,138,181,96,50,132,133,41,189,41,49,105,34,48,128,103,27,71,186,152,119,47,188,163,212,103,177,171,30,3,37,31,45,31,92,61,40,132,97,18,43,226,65,179,146,46,168,228,165,98,21,243,91,67,190,74,141,23,249,226,141,251,94,123,58,123,164,3,16,151,166,150,103,17,181,181,18,110,49,194,229,65,153,81,38,186,234,67,138,188,132,227,65,242,142,14,50,5,117,231,239,27,244,165,131,242,83,27,233,59,18,142,108,82,9,151,167,163,93,166,161,6,91,120,76,201,111,239,231,35,55,19,91,43,15,106,200,242,27,224,165,95,238,60,45,25,120,0,183,244,200,162,106,186,117,116,187,113,21,136,241,136,45,78,210,204,96,101,130,45,36,211,242,62,228,136,207,8,129,246,81,219,123,11,223,45,109,81,234,176,223,143,113,71,152,123,57,47,238,172,104,103,20,208,54,119,92,131,114,11,172,228,82,42,71,6,54,55,121,161,79,98,236,17,156,226,181,155,56,252,226,253,227,44,67,10,212,84,212,100,203,195,234,99,97,140,187,13,81,70,102,120,110,23,210,32,240,194,178,12,147,157,151,14,189,56,230,242,120,44,237,107,127,141,144,150,109,12,142,98,163,96,149,123,68,69,235,8,186,91,251,180,147,44,183,175,11,208,105,109,15,208,105,250,109,190,99,191,7,83,84,184,71,117,7,250,239,131,182,167,109,29,27,201,119,138,227,146,102,244,61,133,105,14,246,113,180,223,198,69,161,173,208,77,231,103,143,163,163}, } ; static void test_encode_1277x3_impl(long long impl) { unsigned char *s = test_encode_1277x3_s; unsigned char *x = test_encode_1277x3_x; unsigned char *s2 = test_encode_1277x3_s2; unsigned char *x2 = test_encode_1277x3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1277x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x3(impl); printf("encode_1277x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x3_implementation(impl),ntruprime_dispatch_encode_1277x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x3; printf("encode_1277x3 selected implementation %s compiler %s\n",ntruprime_encode_1277x3_implementation(),ntruprime_encode_1277x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1277x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1277x3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1277x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1277x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1277x3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1277x3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1277x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x3")) return; storage_encode_1277x3_s = callocplus(crypto_encode_STRBYTES); test_encode_1277x3_s = aligned(storage_encode_1277x3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1277x3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1277x3_x = aligned(storage_encode_1277x3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1277x3_s2 = callocplus(maxalloc); test_encode_1277x3_s2 = aligned(storage_encode_1277x3_s2,crypto_encode_STRBYTES); storage_encode_1277x3_x2 = callocplus(maxalloc); test_encode_1277x3_x2 = aligned(storage_encode_1277x3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1277x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x3();++impl) forked(test_encode_1277x3_impl,impl); ++test_encode_1277x3_s; ++test_encode_1277x3_x; ++test_encode_1277x3_s2; ++test_encode_1277x3_x2; } free(storage_encode_1277x3_x2); free(storage_encode_1277x3_s2); free(storage_encode_1277x3_x); free(storage_encode_1277x3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1277x7879.c0000644000000000000000000020323114705505543022502 0ustar rootroot/* ----- encode/1277x7879, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1277x7879_checksums[] = { "874f6a1453352eca4a08618cc88c78c7d798edf2c91aa173c3b0be7f72427559", "73815848894e97f8bf4fdb4d097a9021b4f978b13e7db123278e60901bfd0afb", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1277x7879_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1277x7879_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1277x7879_ITEMBYTES static void *storage_encode_1277x7879_s; static unsigned char *test_encode_1277x7879_s; static void *storage_encode_1277x7879_x; static unsigned char *test_encode_1277x7879_x; static void *storage_encode_1277x7879_s2; static unsigned char *test_encode_1277x7879_s2; static void *storage_encode_1277x7879_x2; static unsigned char *test_encode_1277x7879_x2; #define precomputed_encode_1277x7879_NUM 4 static const unsigned char precomputed_encode_1277x7879_s[precomputed_encode_1277x7879_NUM][crypto_encode_STRBYTES] = { {236,248,165,97,43,217,218,165,85,141,52,190,1,108,250,36,228,242,174,44,195,134,200,121,5,227,28,78,81,11,11,131,65,239,42,30,152,89,117,171,68,59,192,225,130,205,152,104,39,198,145,45,245,254,105,23,27,134,61,93,104,111,16,72,186,195,172,2,84,196,181,251,127,173,148,159,87,13,145,33,191,68,150,44,121,86,194,90,167,185,234,71,20,183,187,195,220,191,146,196,213,53,53,86,8,4,54,140,19,215,167,167,210,175,6,221,102,64,174,241,105,128,121,232,183,245,173,237,77,31,70,111,38,199,165,181,219,125,203,43,250,4,13,7,24,60,56,41,5,250,190,38,217,148,132,163,34,191,226,91,104,200,205,222,179,49,246,178,146,184,242,130,86,30,18,126,32,132,245,41,4,45,113,59,103,38,210,159,216,104,168,73,225,182,223,5,166,136,73,189,251,227,91,110,255,199,10,97,18,185,102,92,102,40,77,71,231,171,111,110,179,166,75,138,134,33,245,221,31,47,185,230,164,239,53,61,254,129,24,110,164,110,41,154,250,50,26,69,80,206,14,235,207,19,36,95,97,99,220,59,73,225,255,189,197,202,136,104,26,129,192,134,54,23,180,102,128,169,154,59,115,216,141,195,67,211,167,140,252,248,101,182,43,175,69,221,66,2,149,18,238,226,202,43,46,90,77,50,221,76,237,34,12,129,148,52,130,186,243,241,187,136,99,217,231,30,8,61,190,252,37,72,111,144,77,145,6,143,85,152,190,92,139,139,12,241,224,136,75,251,189,96,97,119,225,86,181,56,29,62,247,189,182,89,250,113,104,199,147,23,135,75,244,96,210,40,6,171,87,22,66,68,202,221,155,101,112,12,250,247,176,121,246,73,209,65,1,237,156,189,152,167,89,192,86,254,6,210,218,213,28,142,224,206,235,163,221,252,192,159,222,240,9,160,170,171,142,201,249,100,122,40,76,47,7,126,98,180,50,225,100,231,211,178,200,110,152,99,135,123,234,239,21,107,23,240,106,223,39,181,51,184,224,68,53,62,95,42,204,145,180,25,39,14,33,133,201,16,230,102,5,1,22,86,158,39,136,138,26,144,230,70,31,226,70,61,30,243,126,24,35,95,38,250,27,84,45,125,115,1,114,53,220,157,218,48,227,144,121,55,206,225,51,240,183,220,205,27,232,223,236,253,69,170,169,29,122,154,158,226,0,215,199,14,113,109,76,129,245,120,144,49,237,75,38,242,186,171,93,48,74,28,168,233,205,85,133,117,31,160,216,195,205,100,242,45,220,176,106,210,72,123,248,253,38,121,130,66,6,183,26,68,72,60,16,118,211,199,119,97,147,46,203,50,95,77,142,42,172,173,221,237,53,132,101,104,50,16,25,78,33,204,172,244,215,104,159,35,241,82,254,143,39,176,220,211,45,53,147,22,162,126,62,31,84,92,3,248,112,210,143,31,68,43,88,218,76,31,154,148,254,81,208,65,45,50,147,94,223,231,136,7,202,73,142,37,246,0,175,49,205,223,86,250,252,43,142,120,70,152,17,118,92,120,123,237,198,177,176,71,25,250,170,123,181,61,64,50,214,44,228,93,149,177,53,149,9,68,118,222,38,126,54,208,34,184,4,88,9,236,65,215,219,15,250,226,95,236,142,82,87,73,127,214,6,153,192,89,59,207,150,31,22,213,236,223,101,23,202,66,239,214,106,180,165,238,46,118,58,38,130,159,154,60,113,213,180,200,122,72,183,69,47,70,189,188,243,237,211,177,222,192,121,23,158,139,9,238,248,89,6,81,239,69,201,215,118,242,120,10,78,226,100,154,116,87,118,255,226,12,191,20,51,162,211,150,203,227,253,211,107,22,54,129,35,79,28,9,135,196,30,94,140,214,182,14,132,6,218,154,91,20,135,37,189,250,109,7,99,151,165,169,111,63,74,157,133,64,46,84,25,193,31,145,23,211,149,111,133,40,88,225,116,209,241,133,186,167,85,75,34,128,48,40,39,216,195,24,35,225,157,204,32,181,132,181,50,105,114,231,161,175,200,163,144,183,219,121,165,149,112,13,142,91,193,206,128,158,2,97,32,121,91,219,61,213,202,85,78,101,130,213,119,135,173,231,150,81,175,181,157,83,192,235,49,242,112,213,132,1,214,116,62,89,254,89,200,246,211,168,214,124,175,171,90,255,90,128,3,236,124,182,211,10,115,160,163,208,222,234,239,247,56,207,207,85,70,76,206,33,94,211,44,8,51,129,255,229,14,62,93,177,115,247,45,7,16,223,97,88,7,107,35,59,242,117,33,122,42,248,163,101,119,173,165,20,105,238,148,33,237,54,178,218,226,49,237,237,233,154,117,65,255,45,12,163,234,139,253,76,177,180,99,201,19,133,210,125,24,221,48,32,145,166,252,95,176,126,37,22,179,168,234,72,237,207,129,7,110,99,18,55,65,161,131,166,238,16,68,182,44,85,165,136,38,191,28,149,13,14,58,202,62,193,237,105,220,103,160,143,50,80,39,205,200,247,160,42,209,71,32,121,117,66,95,51,99,216,12,195,228,100,92,23,81,11,116,25,25,119,149,80,201,188,185,55,48,56,156,87,29,188,66,165,192,146,102,150,1,168,169,43,83,182,196,176,233,140,62,111,156,83,179,34,217,181,36,178,70,86,221,217,153,91,96,24,63,138,38,199,15,79,85,158,116,105,165,165,234,186,228,119,173,189,171,39,224,84,125,80,158,224,216,33,85,217,126,37,25,79,218,87,251,35,186,77,101,75,42,6,11,17,56,39,243,226,150,45,177,246,117,209,178,12,159,59,43,141,64,212,8,90,91,2,9,74,41,205,133,114,243,224,247,248,193,164,96,245,52,8,23,116,12,167,198,139,45,204,129,121,136,250,246,170,218,14,42,63,152,108,253,204,71,147,131,106,34,227,67,18,19,207,122,236,249,168,216,157,193,40,43,136,68,112,207,11,71,203,248,74,235,155,171,86,6,124,107,154,112,123,2,3,103,208,70,3,176,235,1,196,184,96,76,82,89,214,249,251,223,177,237,67,116,120,247,182,10,193,94,97,152,46,135,59,155,56,225,139,227,36,45,223,61,234,42,44,170,198,13,232,160,116,97,127,149,193,173,77,193,176,11,99,221,148,172,232,73,47,93,2,141,195,187,145,126,246,96,167,24,152,81,246,170,21,212,89,177,146,149,230,166,51,198,121,188,37,44,229,246,155,9,22,34,3,138,231,209,250,190,246,238,45,241,138,128,182,220,155,98,142,184,90,173,145,99,38,172,120,64,134,147,149,112,173,22,162,68,126,78,8,245,47,224,56,240,178,86,0,165,247,150,17,116,109,188,102,76,10,105,186,55,206,45,160,254,139,146,217,104,78,18,51,99,149,202,64,118,81,197,2,193,42,160,159,67,110,61,148,136,253,241,67,19,254,45,66,171,94,167,255,126,77,228,213,196,95,24,143,89,252,139,240,38,101,229,155,242,10,117,209,72,60,22,195,245,59,81,14,10,245,138,177,174,55,197,114,168,28,133,230,223,69,113,37,169,116,188,249,191,206,210,223,173,83,32,106,76,67,232,162,42,230,231,59,214,89,140,133,120,132,240,27,145,245,108,116,218,40,162,125,65,232,175,175,156,237,186,82,186,135,115,30,90,10,123,187,67,247,35,179,246,228,40,174,73,208,105,125,23,40,147,150,65,168,176,165,216,169,89,133,197,94,247,214,221,101,61,154,9,72,99,5,139,179,111,135,149,101,29,72,190,136,37,88,117,53,75,55,36,98,89,116,73,244,149,44,192,130,216,241,151,130,236,103,87,145,231,81,40,2,21,49,234,219,158,74,116,102,70,154,5,30,30,126,74,200,128,22,10,208,104,181,86,74,102,56,110,248,78,91,154,225,4,132,126,251,203,60,139,227,165,134,54,16,128,153,121,109,89,199,203,234,185,9,234,168,241,124,222,228,148,60,173,81,31,52,205,145,212,112,158,200,231,180,199,217,122,199,34,158,20,98,9,18,22,220,47,1,2,13,24,83,23,223,250,137,149,238,183,147,177,66,89,63,224,149,39,253,35,166,250,201,67,107,41,142,247,207,196,100,171,15,20,72,244,144,77,144,235,75,51,141,218,106,17,98,10,157,195,134,160,201,142,238,120,51,204,125,13,205,244,92,111,164,232,134,45,4,24,188,208,194,40,160,68,223,100,62,20,250,227,200,203,249,177,46,63,164,94,202,210,155,82,229,248,193,83,139,99,203,152,17,255,170,228,116,193,117,238,23,250,196,249,16,180,200,12,179,134,98,61,251,103,164,126,169,12,28,214,105,53,174,152,110,156,4,241,162,16,60,207,184,34,180,35,69,152,251,194,204,59,124,39,100,148,198,240,35,231,189,146,81,215,47,254,214,19,192,36,67,210,204,58,13,254,129,2,50,62,191,141,192,31,62,251,219,119,82,96,147,123,198,23,14,12,97,58,81,65,254,203,233,141,203,75,239,203,161,153,235,239,217,253,34,38,146,8,56,173,243,73,87,90,227,138,144,159,117,114,27,234,9,1,93,39,101,156,182,106,222,163,122,253,46,61,164,0,115,72,62,204,33,70,68,192,207,132,47,112,113,212,126,213,227,169,162,18}, {86,126,239,128,202,102,152,127,231,120,122,137,40,102,188,245,18,96,54,139,105,124,84,11,4,62,140,51,218,92,127,140,99,97,100,96,154,250,184,221,142,69,136,189,85,231,234,153,168,59,167,243,14,167,70,127,68,14,29,145,87,183,249,69,219,224,143,60,32,54,198,14,217,146,76,29,64,82,71,85,71,54,98,126,151,194,230,116,237,148,201,78,19,143,26,63,21,61,72,158,235,236,90,83,170,54,135,44,58,34,169,134,222,156,97,145,21,60,251,40,224,90,243,28,214,26,165,228,107,149,16,44,88,237,211,143,36,23,199,231,143,188,67,73,94,23,65,238,129,23,31,209,107,217,85,214,183,174,140,210,167,57,235,173,225,91,152,121,18,242,89,135,140,100,227,35,129,167,243,209,218,17,170,4,34,147,237,229,12,183,41,183,176,105,18,125,211,132,241,60,247,186,127,161,34,168,198,174,215,33,157,26,104,0,185,163,215,3,213,98,127,23,177,65,59,69,234,23,212,235,26,135,163,189,215,76,141,184,82,223,222,171,160,65,6,218,106,95,52,166,70,81,135,164,217,114,121,46,235,192,14,225,118,232,186,23,188,173,49,74,66,55,88,240,77,55,73,45,166,57,8,31,77,216,149,2,174,183,160,240,217,16,179,242,13,147,64,49,60,155,163,130,49,232,210,93,221,167,47,216,195,244,215,174,215,251,77,232,78,102,11,238,193,175,116,236,0,64,119,12,98,179,51,165,51,179,238,239,114,115,213,221,205,150,22,109,141,186,49,3,246,70,72,41,207,136,139,201,171,110,124,167,255,243,242,246,242,175,108,251,38,44,107,246,243,200,60,183,37,70,105,217,231,189,95,98,40,104,175,107,47,19,93,93,202,101,38,126,142,17,69,69,183,255,24,247,73,36,214,66,163,145,45,111,102,131,95,153,45,61,15,176,213,211,76,35,110,54,178,179,77,82,116,144,114,145,184,146,199,129,213,25,79,113,21,250,111,159,108,134,243,52,134,60,7,42,235,225,218,80,103,214,194,92,182,242,186,155,236,30,230,113,105,202,123,155,115,26,206,14,197,21,50,254,215,16,72,94,238,117,165,10,177,234,125,123,101,249,224,99,154,28,255,240,77,229,200,255,100,59,148,58,207,145,172,97,205,21,211,124,120,170,145,188,194,75,118,202,75,246,41,156,81,126,71,152,14,80,109,162,97,100,149,35,244,39,82,131,147,170,9,91,167,87,212,111,242,143,29,79,16,137,50,79,243,224,56,242,48,71,156,56,185,18,74,112,67,207,164,224,162,77,178,234,38,249,151,158,4,206,63,59,41,31,226,217,9,160,54,99,161,225,89,172,208,144,70,237,205,28,0,38,187,69,220,26,7,232,33,106,94,212,216,128,62,3,19,91,38,74,174,71,75,173,118,92,194,101,10,11,236,247,65,174,35,89,60,113,210,212,134,252,66,145,180,80,73,222,198,209,213,47,122,172,3,0,5,83,18,127,52,87,137,22,112,187,181,236,44,12,218,14,246,134,234,121,157,84,98,133,245,228,253,252,226,216,218,179,82,53,150,16,24,36,26,33,164,62,114,80,73,48,197,236,237,242,122,26,17,2,94,60,138,13,33,160,149,89,152,181,8,58,233,49,171,18,89,18,1,90,166,186,92,68,11,149,163,159,228,244,199,3,20,224,36,75,134,15,4,88,37,7,139,240,174,195,194,113,125,128,11,35,222,11,145,252,77,86,99,129,121,68,20,136,158,86,35,145,206,67,125,138,133,231,55,220,133,15,226,0,227,138,216,85,251,41,69,91,113,22,102,228,159,97,175,52,85,237,184,203,221,177,253,138,139,183,1,31,169,247,231,212,212,92,158,27,199,12,118,186,75,233,47,143,153,151,204,136,205,179,218,77,186,242,73,140,67,17,231,225,45,232,115,63,97,83,122,60,168,53,102,231,34,40,223,143,35,230,122,236,41,204,120,103,212,189,18,255,94,96,193,72,137,56,160,37,20,190,213,208,79,136,134,24,113,101,35,22,62,205,177,193,88,232,217,13,185,167,204,215,161,245,70,241,81,0,130,43,95,7,8,85,0,61,170,247,6,8,188,221,193,144,30,106,102,78,124,61,215,206,249,247,25,160,172,232,164,219,235,39,198,226,59,223,210,28,160,4,158,0,62,137,104,24,36,225,66,7,141,120,129,30,165,255,243,204,112,242,110,76,102,91,131,81,167,70,180,241,77,169,236,179,170,95,21,81,224,191,130,111,98,199,125,56,3,123,95,57,151,23,169,251,115,126,210,188,236,228,200,72,65,109,132,229,180,238,13,238,12,173,81,188,209,152,15,146,135,99,119,50,197,108,75,106,243,220,134,167,169,132,54,94,113,24,141,117,225,82,148,196,162,102,102,41,45,125,65,59,242,226,120,0,44,135,197,9,253,75,133,170,26,69,203,101,26,163,252,63,156,67,33,37,241,54,14,89,5,206,191,115,249,31,82,248,6,37,82,145,152,21,57,90,38,249,212,236,1,55,40,109,59,95,212,111,224,230,170,120,15,189,151,170,246,140,233,14,241,88,62,67,241,99,247,26,37,168,83,9,128,87,227,145,132,23,19,207,150,165,3,52,14,109,83,69,71,40,52,104,14,18,44,211,164,218,39,248,134,64,105,247,231,5,132,84,114,250,34,62,211,138,82,92,169,124,157,15,84,141,23,200,55,70,100,23,81,46,181,96,222,137,238,255,130,132,195,151,75,220,115,21,166,97,6,196,144,213,230,156,5,78,161,253,7,85,119,153,179,89,112,227,125,114,59,147,82,146,116,118,12,71,113,24,142,217,224,51,104,41,47,135,63,219,168,185,44,161,11,207,17,51,158,49,112,231,64,235,83,95,154,127,38,45,235,175,149,56,242,0,93,175,230,207,214,126,223,124,84,207,0,235,127,142,198,248,10,202,131,10,190,201,244,95,112,9,28,245,244,170,5,92,98,71,52,44,253,255,131,184,156,93,102,68,219,99,241,34,93,158,61,51,192,167,184,222,104,52,5,183,252,213,70,82,54,213,207,108,28,160,130,97,15,57,244,116,122,158,1,159,188,49,215,190,14,96,73,134,125,21,202,124,152,11,106,52,77,137,41,222,45,92,229,44,41,114,30,179,114,44,1,197,91,66,28,122,136,75,212,150,33,45,139,82,245,248,128,109,167,128,33,238,10,207,92,220,92,71,191,29,58,132,181,176,82,81,61,43,152,204,220,112,240,242,204,15,97,8,194,40,146,207,93,57,254,221,105,215,175,154,1,210,193,143,175,139,254,97,107,250,30,175,155,123,107,76,6,188,117,181,66,183,128,182,230,58,154,95,46,147,80,75,246,219,3,14,68,104,216,105,123,121,33,97,102,44,53,137,88,158,167,106,44,136,39,49,33,35,83,90,109,215,233,211,156,144,195,54,22,159,225,250,223,1,131,221,232,79,202,182,195,78,62,99,221,125,197,245,134,22,126,145,50,42,238,248,224,238,99,5,20,131,148,3,98,238,230,166,248,88,114,84,35,3,124,126,236,195,171,132,126,96,190,171,152,174,74,209,2,82,198,108,6,198,124,102,200,155,209,29,34,98,21,77,84,21,50,171,147,206,114,151,99,239,171,243,73,16,129,215,239,20,224,75,98,237,89,74,149,101,139,32,208,71,198,4,49,10,210,49,92,85,51,245,156,158,35,114,23,98,174,202,135,146,192,104,169,111,120,78,58,182,224,193,255,249,46,197,201,91,149,46,4,218,13,155,213,164,23,243,1,112,182,40,227,207,235,189,195,93,205,205,102,224,42,246,148,194,123,37,32,23,94,141,128,186,93,128,104,77,50,248,220,149,247,152,137,160,255,226,49,129,200,188,207,165,108,92,89,127,138,247,221,152,113,253,182,69,168,59,71,161,53,248,86,85,112,228,86,79,41,147,198,62,178,9,19,167,134,57,154,54,6,64,83,91,161,207,162,6,183,57,229,70,187,148,206,104,0,85,190,223,43,217,185,133,152,49,214,156,203,225,96,176,139,222,136,220,245,223,115,104,39,40,23,181,23,22,50,100,100,225,231,167,247,101,160,101,56,69,139,30,203,88,19,199,210,105,165,182,57,114,214,42,31,118,122,151,162,118,92,230,12,92,89,192,45,231,102,157,105,105,63,124,35,58,56,140,164,251,168,122,134,60,145,185,160,138,217,50,85,189,93,163,153,35,0,86,141,158,31,176,87,183,175,25,160,38,220,18,134,139,174,162,28,131,179,146,97,80,52,41,97,113,154,132,167,185,169,23,4,143,255,112,90,8,62,219,51,95,125,134,208,68,35,60,174,114,169,7,108,1,172,99,118,75,206,216,221,77,54,92,205,4,9,11,246,9,183,78,44,28,148,247,173,127,213,7,187,112,229,240,5,11,179,119,40,249,148,180,156,117,190,87,255,217,97,12,149,74,255,56,97,103,183,141,220,179,229,15,155,5,156,129,46,76,163,190,179,114,82,9,37,212,209,150,46,235,193,29,122,46,166,148,171,15,127,53,51,244,92,255,198,146,63,226,90,61,189,251,191,226,31,108,188,108,118,52,18,53,157,233,240,191,8,95,141,79,193,121,151,175,125,100,23,177,0,45,1}, {10,247,89,104,206,235,41,199,31,158,217,253,224,255,50,219,98,184,8,36,127,195,4,226,152,94,210,174,62,174,255,141,24,117,11,38,86,96,208,30,13,125,249,151,17,175,103,180,238,3,152,45,116,159,237,222,161,194,11,25,65,227,218,230,18,206,214,33,38,115,134,190,86,45,170,117,233,227,136,193,69,179,7,33,149,109,122,130,223,161,26,22,253,92,231,214,154,172,129,40,248,83,45,151,89,166,107,164,65,192,46,18,185,137,242,56,254,250,171,101,188,79,147,109,90,157,109,56,220,99,94,121,75,14,75,35,192,129,130,92,67,222,63,8,183,161,208,51,254,250,120,72,166,168,161,11,144,203,120,66,118,174,22,55,33,8,67,46,113,176,66,40,239,216,58,204,209,71,130,126,38,33,243,21,248,25,210,28,109,23,0,4,137,16,57,242,90,182,31,20,139,53,251,167,148,120,125,156,199,122,1,26,93,162,195,33,63,55,172,233,146,126,107,222,59,105,67,168,221,211,218,224,46,180,156,23,58,230,150,31,101,50,241,152,108,215,36,253,47,125,109,17,214,118,107,81,143,79,184,212,161,148,137,190,60,140,112,103,11,72,83,199,172,165,255,79,161,137,243,252,82,224,3,111,38,185,86,255,229,123,147,215,204,206,249,224,55,178,136,167,27,199,247,243,77,95,161,92,90,177,93,129,127,97,58,200,84,25,81,125,226,195,121,95,252,122,132,111,198,22,221,164,229,179,166,158,231,23,70,155,211,62,190,2,186,49,64,7,94,56,115,140,247,13,89,229,161,172,106,45,17,143,7,14,21,143,106,129,155,179,191,174,253,51,159,177,178,42,114,251,97,202,172,255,207,54,72,198,198,33,124,9,145,31,114,90,95,179,188,53,86,124,8,16,101,163,135,219,188,147,156,36,95,176,111,103,122,137,11,116,223,243,43,76,33,189,120,179,110,127,56,141,67,173,73,184,75,191,139,154,240,175,126,59,102,24,36,51,103,243,227,188,75,114,56,212,248,68,237,219,15,58,133,174,115,38,154,62,4,236,239,208,6,96,222,105,241,166,26,23,217,139,52,185,229,128,14,46,186,22,160,153,241,113,34,15,230,1,172,153,66,188,200,161,1,48,8,213,85,111,215,152,137,53,132,63,92,76,68,211,53,23,130,115,64,156,229,96,227,190,69,59,87,174,196,133,177,80,124,186,202,91,172,205,46,111,219,95,134,92,8,89,144,228,50,226,67,97,32,16,237,209,105,155,203,184,80,225,86,162,104,80,225,179,64,217,218,180,158,226,51,82,75,127,27,89,233,252,248,128,167,125,35,153,31,132,94,58,193,101,125,159,127,121,103,138,199,103,234,150,82,242,241,160,44,252,192,179,204,81,229,187,219,122,204,191,85,78,193,57,2,250,191,248,185,199,178,195,138,128,219,66,116,120,209,236,54,114,173,64,185,46,88,207,225,21,58,61,203,34,75,148,51,142,231,128,218,244,89,160,5,33,143,144,222,46,91,59,36,254,246,209,38,132,120,208,78,248,34,87,149,59,24,73,190,211,41,101,109,2,185,75,44,108,142,153,6,127,45,7,6,124,108,86,68,91,111,71,109,64,88,234,201,67,241,147,75,169,135,253,205,136,147,54,237,241,1,143,174,89,220,202,244,227,59,70,171,239,116,75,88,216,55,62,176,211,14,67,137,163,143,182,143,36,211,159,41,45,1,187,126,156,225,17,23,230,134,50,156,141,0,89,222,92,88,68,255,6,198,61,205,242,246,132,91,242,176,152,180,245,154,176,203,178,82,152,143,215,42,102,30,99,184,254,192,186,70,164,40,185,117,140,36,61,173,125,246,86,164,156,141,88,194,87,63,62,237,104,31,219,170,147,168,184,202,1,114,5,151,220,59,79,221,115,156,189,255,234,229,243,150,179,227,188,135,218,162,43,52,102,201,191,41,67,95,168,222,79,130,245,240,29,109,109,70,69,180,52,137,123,169,43,248,100,77,87,247,105,14,93,121,150,118,72,132,28,228,24,84,121,9,210,19,116,83,180,245,170,228,151,194,25,243,78,201,196,104,172,140,191,84,207,2,110,16,77,132,138,207,102,221,185,206,85,57,27,39,15,71,140,192,213,190,216,60,248,23,177,162,63,0,152,76,140,169,170,199,227,160,10,67,6,175,225,215,45,192,88,187,202,61,96,231,219,155,88,122,104,223,97,241,176,106,79,37,178,26,87,146,58,168,226,243,210,56,120,170,206,38,249,10,47,100,52,53,202,123,159,83,137,29,107,156,178,105,199,114,79,100,130,162,227,134,60,179,32,194,52,171,139,54,245,239,56,136,14,157,180,182,32,243,140,240,62,57,96,67,13,137,166,15,100,52,149,61,205,231,73,83,138,95,182,67,123,89,231,215,29,59,135,248,160,151,149,9,190,211,179,221,101,228,43,245,207,191,83,130,9,231,34,118,117,46,145,101,61,14,39,123,242,225,154,163,67,15,218,21,144,17,240,87,118,106,139,53,60,223,222,171,143,147,77,171,101,73,125,139,13,118,149,108,68,116,35,21,24,217,200,147,56,226,219,250,122,131,150,40,177,48,243,244,234,5,125,136,189,35,87,9,48,44,184,84,79,223,24,113,158,137,48,118,90,53,61,147,253,225,94,206,170,75,172,24,84,254,231,111,171,11,89,184,161,81,175,144,224,19,3,155,93,84,51,98,173,47,26,25,119,74,200,59,71,44,81,210,216,93,146,78,110,108,124,194,28,110,25,172,131,152,168,236,1,8,104,50,158,154,207,61,13,57,247,130,243,108,201,36,211,206,157,101,87,80,43,137,216,118,39,62,57,170,231,229,3,99,134,120,16,148,177,232,23,129,233,131,85,151,82,254,63,201,188,179,228,97,124,124,98,51,239,44,71,217,203,55,231,44,247,115,100,163,218,43,184,154,148,82,206,71,243,143,47,45,179,6,86,85,79,83,64,125,246,93,80,126,25,106,68,249,111,40,176,187,87,173,18,28,112,90,124,232,243,210,51,18,131,160,187,187,137,102,193,238,98,194,97,188,128,217,197,189,103,15,47,104,18,239,178,172,101,20,179,55,172,242,135,224,130,49,80,208,12,169,238,28,76,177,202,139,246,179,50,72,194,220,239,166,220,176,107,69,199,99,189,208,206,174,123,199,75,164,227,103,77,6,75,103,106,219,88,49,225,140,225,191,251,103,216,242,239,54,9,205,94,160,56,128,156,245,172,152,113,189,102,118,60,98,219,41,140,195,107,217,79,189,200,157,197,62,30,82,0,151,10,130,247,240,9,86,34,69,190,0,254,131,229,195,7,142,66,121,153,118,217,167,122,178,124,65,4,61,131,245,77,161,25,138,226,100,211,111,251,82,125,58,133,116,19,242,131,33,210,61,230,213,92,130,38,51,5,118,123,226,7,79,156,97,57,75,185,137,64,115,136,117,243,234,140,133,243,209,108,7,15,243,233,106,61,29,189,27,50,189,216,81,194,148,18,142,74,162,6,213,164,252,59,203,166,26,58,108,55,13,43,101,197,88,136,151,77,118,143,147,118,184,73,62,64,107,134,92,202,0,236,89,24,117,116,24,6,194,76,223,239,207,139,125,96,255,251,148,30,67,11,240,176,183,246,238,230,153,118,50,209,92,205,0,185,49,219,196,23,140,178,9,12,161,209,75,67,64,255,39,134,113,132,47,228,77,102,153,92,229,237,69,209,42,72,142,46,125,96,65,118,0,166,12,111,1,77,239,125,124,185,188,167,92,182,122,123,81,183,121,49,209,123,235,38,106,124,152,91,248,169,51,75,159,238,20,238,217,2,214,139,176,136,238,225,158,133,55,177,170,148,56,141,203,17,228,92,169,241,205,162,204,60,183,122,44,107,203,98,202,101,180,23,171,188,34,183,88,175,99,108,85,244,86,16,194,230,209,4,169,106,188,182,244,55,62,212,148,125,1,56,40,69,40,137,99,124,235,150,179,202,125,250,241,206,170,246,23,157,57,176,181,225,254,168,95,229,186,68,228,65,27,243,59,152,24,212,252,51,46,103,77,126,14,134,98,67,94,2,186,171,151,192,222,208,52,177,208,68,81,248,246,236,111,86,40,129,80,74,218,237,221,52,26,147,207,208,141,226,63,176,1,77,80,47,100,205,244,163,188,45,0,240,191,203,186,89,84,111,233,96,80,222,225,78,221,66,246,45,90,14,82,138,150,40,39,52,122,74,241,216,52,92,218,111,189,54,47,175,12,138,93,32,212,40,8,98,118,122,121,108,23,18,179,68,58,55,112,79,134,143,240,250,27,155,105,16,179,239,239,70,185,10,73,229,71,78,178,70,111,237,185,110,180,55,62,229,251,248,67,238,89,78,51,32,145,111,156,131,39,67,116,98,157,40,120,205,100,86,119,97,166,211,171,146,93,4,54,62,9,131,51,10,58,149,126,56,104,205,96,10,130,73,19,132,193,88,80,72,109,66,91,35,75,117,101,243,79,149,29,66,169,109,143,79,255,37,35,3,5,186,183,71,146,55,132,203,95,130,131,160,29,60,91,117,125,226,223,126,110,21,73,127,133,145,178,224,59,113,66,135,182,12,67,19,0,70,215,170,90,110,19,7,27}, {225,169,47,36,148,186,118,228,29,102,182,234,79,64,244,26,20,12,155,209,93,98,177,93,207,183,158,211,143,27,228,196,218,4,56,128,38,32,252,124,173,37,44,232,183,222,128,150,224,27,80,194,173,160,81,0,37,40,86,9,91,8,46,154,50,182,115,141,247,80,203,26,163,101,57,116,84,90,157,42,34,168,212,38,55,153,137,215,81,46,6,47,76,19,206,133,61,78,220,169,38,48,185,199,176,243,15,77,192,60,89,200,38,168,182,89,2,166,157,105,118,105,188,54,192,223,108,88,26,66,172,19,214,159,82,21,199,219,140,107,244,82,217,19,68,26,112,234,22,132,54,71,107,182,0,20,245,109,141,241,102,70,1,79,45,105,248,25,184,23,83,144,183,8,29,169,50,254,248,176,255,207,116,230,55,193,53,32,153,94,184,209,85,86,58,45,73,46,109,238,235,23,31,131,75,238,130,185,167,152,94,101,144,106,125,252,225,93,47,50,77,119,44,85,134,174,113,169,213,243,104,109,222,109,28,102,227,70,133,120,193,145,17,255,118,128,189,140,242,147,200,203,32,36,100,120,72,206,147,109,50,140,206,149,174,146,237,10,20,30,220,240,15,198,146,6,105,21,8,246,153,151,38,174,101,60,176,131,82,155,210,189,40,194,252,138,223,69,11,48,18,88,134,8,146,142,106,101,24,103,252,242,229,205,31,228,236,184,74,150,14,174,64,215,14,203,108,107,233,54,175,225,233,27,215,95,227,37,218,198,58,163,61,0,150,1,243,193,221,196,216,200,167,119,161,170,86,183,42,241,67,91,37,111,79,28,92,169,208,124,153,239,26,34,113,32,168,75,119,253,166,154,229,184,42,99,247,12,184,118,233,111,27,95,22,66,10,194,105,186,230,238,218,229,254,48,224,148,1,23,255,240,19,25,172,190,211,232,11,130,164,150,8,40,166,146,10,247,81,238,65,175,233,120,134,128,205,213,98,36,167,136,211,41,146,15,248,97,222,139,29,176,91,13,3,14,185,24,74,153,6,156,7,205,119,22,174,66,194,233,21,234,43,247,19,67,150,110,129,186,213,151,84,24,139,130,97,17,254,200,59,18,33,225,161,246,141,95,172,205,49,83,55,190,70,104,60,0,180,192,140,46,37,124,114,234,245,205,150,132,84,154,249,73,34,230,143,104,217,28,8,116,172,181,13,138,13,168,57,229,30,138,251,13,230,15,51,51,251,220,132,105,150,51,7,131,179,178,159,160,71,228,240,66,205,61,30,7,229,179,166,6,47,115,150,158,147,172,38,129,58,184,68,43,110,161,208,92,140,20,215,65,27,7,183,173,184,132,156,50,61,192,102,77,123,129,158,204,155,85,77,193,64,151,130,13,240,254,14,237,225,212,189,138,68,172,24,149,9,77,65,245,40,243,199,214,144,89,30,35,237,222,42,203,214,89,75,118,243,33,102,145,176,182,53,10,2,119,109,207,73,88,109,167,132,10,28,0,73,240,60,135,51,28,254,134,204,194,59,19,238,242,4,150,180,185,227,36,207,26,108,219,80,207,208,166,145,185,24,72,219,171,15,206,96,181,18,35,151,194,193,70,189,203,19,232,29,3,53,240,12,197,147,69,142,243,20,19,241,188,160,141,213,50,114,86,181,124,166,180,69,0,51,231,44,6,174,97,86,65,11,112,147,209,88,60,192,112,2,78,3,62,111,135,208,200,211,134,246,190,50,103,220,105,98,84,16,196,232,112,30,150,180,225,107,230,181,239,41,202,239,226,147,56,158,60,182,234,13,1,72,145,21,92,74,0,76,23,155,24,151,62,162,245,210,251,159,186,26,241,21,68,49,248,114,176,71,120,10,81,70,125,212,180,190,22,174,15,192,133,225,113,149,211,231,140,58,219,221,91,150,86,60,146,28,161,118,248,161,245,77,105,63,29,113,113,206,17,165,80,241,214,85,50,59,57,105,113,176,213,168,214,55,82,189,206,255,113,232,31,57,16,86,209,174,191,241,111,209,184,205,96,92,74,52,60,106,203,99,26,14,79,242,184,224,166,55,179,181,69,90,10,163,175,233,42,178,130,9,91,91,46,222,225,200,249,116,58,48,73,180,112,180,193,109,194,178,173,153,80,112,138,252,197,100,1,228,244,10,164,218,11,209,246,67,211,94,249,165,216,125,240,135,154,98,251,52,202,219,115,190,168,235,140,231,107,236,166,91,109,154,81,83,171,0,108,101,0,10,109,1,203,51,171,157,4,42,77,182,155,203,69,123,12,6,202,42,245,213,93,98,194,246,66,227,80,110,157,213,97,96,212,12,144,66,183,253,32,72,106,139,73,248,173,165,66,206,187,168,23,28,54,232,195,128,51,84,56,208,191,237,95,207,236,21,115,4,202,153,31,138,55,127,4,185,59,102,49,84,135,44,196,4,86,201,50,175,25,164,125,170,217,243,169,103,186,197,166,51,220,207,139,249,193,69,111,112,241,67,91,7,109,44,207,73,195,52,215,249,138,30,191,100,71,26,232,178,202,118,172,194,223,236,219,106,142,70,194,163,136,106,234,67,66,17,21,187,209,17,100,41,158,216,154,22,187,161,107,238,212,184,179,232,51,77,11,130,125,181,169,189,82,89,81,96,130,239,75,116,189,212,112,205,84,129,54,160,248,71,204,1,221,25,249,36,31,40,125,73,128,75,7,157,185,7,16,130,166,94,194,102,17,69,36,130,198,211,8,47,175,227,38,240,206,118,158,18,166,92,42,182,28,102,49,111,85,173,212,6,126,69,216,99,220,73,57,78,133,112,59,167,173,86,42,182,255,140,153,132,231,34,52,170,200,189,114,215,55,178,18,43,231,36,114,138,41,124,171,106,223,56,230,124,64,107,153,70,66,252,199,163,251,91,23,104,205,75,21,18,153,222,160,89,130,255,215,49,120,191,65,112,190,241,123,240,47,186,55,159,175,130,166,54,196,107,234,100,123,163,1,1,120,227,219,27,200,61,87,19,58,4,245,75,4,96,193,247,186,250,77,164,51,135,222,62,252,42,184,213,41,3,27,131,47,214,71,44,202,178,108,226,94,198,114,129,248,207,41,103,138,74,80,113,149,34,201,219,49,45,102,93,201,188,136,134,192,252,193,129,72,68,146,93,20,60,205,73,30,0,19,124,236,214,49,112,178,155,224,122,185,23,246,129,76,212,142,224,217,189,14,71,191,166,1,140,253,92,168,131,252,155,41,174,253,246,119,138,44,84,153,192,82,90,216,173,254,161,183,102,161,47,88,41,113,88,68,115,249,7,94,171,208,187,118,57,45,26,70,80,181,254,162,166,132,241,232,246,97,250,111,3,139,241,119,27,128,81,252,71,216,144,89,201,169,205,228,40,152,185,54,243,165,140,116,0,185,78,16,162,253,236,103,197,67,11,204,235,122,224,236,172,13,96,149,106,211,114,27,235,184,111,241,125,241,91,179,239,253,82,137,92,172,171,159,129,136,211,102,48,241,67,170,213,238,99,108,174,108,113,39,15,194,123,117,39,223,165,57,57,178,4,223,125,116,31,191,24,99,176,95,245,26,114,117,183,94,176,78,248,253,172,101,32,145,102,56,173,188,187,2,103,220,214,5,133,249,116,102,253,80,20,152,64,210,205,249,254,208,45,44,88,148,227,65,86,202,53,56,160,141,142,215,106,100,141,73,250,7,201,77,28,145,211,203,118,110,41,83,164,184,93,177,92,20,8,9,53,12,137,59,83,49,202,18,4,36,26,226,130,110,95,228,159,39,6,16,164,36,43,22,5,218,22,117,158,119,186,85,9,171,154,29,216,81,215,190,98,61,246,132,210,153,9,82,151,103,39,190,64,173,182,222,27,156,68,179,106,165,41,27,129,78,228,63,1,120,82,216,54,55,106,49,40,56,113,31,137,158,10,203,132,0,192,225,229,250,106,202,134,159,133,218,124,159,14,185,252,89,147,213,150,169,251,246,17,195,121,159,112,240,182,149,109,216,153,135,162,184,241,118,198,168,184,196,191,233,41,0,176,15,55,37,189,121,108,249,131,163,191,144,50,179,146,151,173,120,133,66,251,218,2,82,11,254,154,5,223,218,215,124,9,138,212,243,155,136,71,147,155,61,12,11,28,76,189,188,167,65,215,229,62,17,19,45,200,129,172,52,73,123,82,10,10,40,67,243,232,81,78,87,22,0,120,221,39,23,139,182,93,105,79,152,3,177,120,28,219,21,80,77,103,179,4,146,253,94,139,83,67,192,239,125,156,207,31,11,38,251,45,175,187,107,72,94,77,226,251,79,125,210,133,240,148,146,25,82,249,118,106,176,230,127,246,78,71,148,12,169,171,192,16,181,120,209,98,121,201,199,109,224,163,99,96,20,126,26,1,25,219,103,176,208,33,159,125,27,9,70,108,23,182,60,237,96,49,226,91,150,239,206,78,107,68,42,72,44,142,190,88,143,171,110,168,131,26,146,54,123,5,174,192,206,38,51,98,153,120,243,174,166,69,222,89,86,72,94,175,253,8,61,207,156,99,184,105,84,120,124,245,135,80,185,160,128,67,80,238,40,162,41,16,96,189,153,10,241,66,75,122,113,154,4,64,143,179,17,207,217,182,231,15,128,94,186,65,113,21}, } ; static const int16_t precomputed_encode_1277x7879_x[precomputed_encode_1277x7879_NUM][crypto_encode_ITEMS] = { {26536,-15692,7360,21771,-6987,-25614,6632,15510,-7944,22995,22709,32161,-6295,28864,4521,-26817,-23988,-15168,-26546,-1352,7928,19701,-15361,-14073,-21847,27356,-27018,3906,-25052,-32125,11177,-23130,-16391,-16240,-31952,19790,24963,-10149,19726,-19079,-21910,-14226,-22267,-15227,9704,15278,-2200,26472,-14496,-3559,31663,-2266,-5861,7022,-3058,9445,-5485,12880,22280,-1733,-18717,25707,-16961,-6081,21623,29117,-8102,-27850,-18312,15196,-19920,2923,9678,-8225,-23442,28610,-13904,26169,28404,-7789,-13788,-27739,-18520,-70,4267,2010,27555,-30975,-16481,8144,-17385,24749,13919,10939,-17617,10540,20380,8152,-16327,13815,-14288,-6581,-7793,-5566,-21435,-15043,8195,-25267,-10600,16069,15858,-1605,9895,-16235,15559,-21279,22198,27368,-26913,-12847,14872,19519,-26193,-5378,-20776,-3775,6864,32595,6662,-18535,28579,15965,10595,20285,-29827,-29008,-9077,-10680,1575,11092,-21377,-6459,23195,6166,-16729,31775,-20128,9088,9133,-28416,14552,-6398,21893,21540,16079,-6469,-19482,24828,11084,7890,17721,-15759,-15935,28844,-4814,-4977,-21263,-21781,-2870,-30704,-31559,3351,-13670,21628,-24381,-2223,-21830,8066,-8176,10251,18341,7873,20050,6401,29462,14143,-5638,13696,21485,22229,-10264,4696,23628,8667,-12952,15081,28331,6469,12287,30846,-27136,1349,-15832,23885,-19701,-3708,22071,-5715,-12004,3186,4220,-6946,30171,27701,-9540,13311,-15127,11562,-17624,-9831,-5647,13638,-251,16034,6562,14100,-3090,11481,9771,-25212,19648,-27817,-18055,11157,-2668,-3985,22739,8341,7160,-12552,12274,-3114,-17807,-9056,-7671,-13153,3387,-18367,-25236,-14828,-5336,17666,12618,10859,-7941,-8793,-17709,-12518,27444,-3024,-9007,20960,26482,28195,-21307,-15336,-22154,4214,-655,27687,-28050,12598,267,-13419,25276,22112,1644,-11676,-27341,-4743,-22324,23097,25435,1622,-4661,-22304,-13573,1804,8490,-3658,-23274,-7343,-22245,-29816,-26973,31846,-21687,-4521,10061,-23408,3501,5583,-23311,8055,20445,-6081,-11529,-17902,-11637,31542,-8458,-11415,5494,3026,-29624,-13460,5818,-22512,25687,11164,-1569,-24484,13879,6540,-11793,-15008,10912,9328,3645,-19825,-6018,10809,-11149,-5572,11069,11144,-27913,8849,-29834,15169,-17963,4839,-8834,23203,-18708,-22792,-11906,-31322,29497,32630,18275,-1042,-16144,15135,-2682,-18715,-12114,32473,25819,29894,10958,24743,-10776,23002,-6460,-28878,-9695,3993,8461,-1694,-3425,10736,-16208,-17484,28197,2307,6526,-29616,-31474,-11897,31596,17554,6895,2405,-23993,28708,2288,-19816,6442,27848,5066,-20734,12562,7700,-3296,-7969,32047,-9802,7427,-18505,-22013,-22821,11859,-15902,-27840,4178,7056,-13838,8223,8069,-11965,-18057,-23941,-3701,31018,-11185,-30641,8986,765,6205,3579,-32483,9153,19344,22512,3726,10936,32402,-29988,32275,-25577,-13411,-276,32440,-24427,7958,18172,-21630,1134,6964,16596,-6392,-23668,23961,26805,21613,-10203,-15347,26597,-30874,4466,-22560,18117,-1208,-25378,4119,23408,-25522,15300,13981,-14307,-7342,-26652,-20164,32356,-14657,-17937,28200,-7244,31552,-8827,369,20766,-30777,1328,9631,27014,-17987,-29958,23244,10684,-9337,-30691,-169,-4053,14349,21401,12465,4592,24734,6301,-13177,9908,-939,20840,-7862,-12042,-10576,-21431,9019,-21860,3673,-14057,17809,-12268,-15655,-28831,-26132,12984,-379,20285,-9925,-20197,16975,-28563,30019,-2321,-15228,-26930,11541,-23744,18714,5346,3903,-9676,17533,18694,32281,30418,-7598,-16199,-31667,-3006,29949,10015,1342,-5661,8649,-16870,-27276,-21223,3577,-13375,-14110,6152,-13209,21533,-14223,-5139,29904,32284,-8444,12847,-23446,1816,30874,-8608,-6162,10284,-25761,-18728,-26858,-5625,-18321,30563,15966,-13279,-13932,-25688,-12567,-21306,30838,-20105,-14830,-20748,21802,13769,-18579,-30261,-24191,-7186,-29202,-19807,-3831,8449,10187,-3050,-27572,13825,6123,29174,6868,-14590,-15198,-23442,-26266,-22979,9682,-23149,-23788,-14238,-12961,-19913,18660,-28874,23975,20246,-32032,14811,-3393,9622,23705,17109,26040,-4417,-702,20670,29444,11451,16330,10547,25018,5057,27349,-27565,-6796,-7798,-16805,-25678,7649,-15207,23179,-28870,-20285,17931,2239,2311,14018,-2515,-8062,-2219,-18589,22235,12189,5609,6485,-24948,-11799,24983,-6793,16441,31250,-21369,21619,-10486,7770,9906,25262,20939,-6703,-2932,7958,-6744,-13136,25377,28332,-5268,15033,-23873,-15368,-4920,-7848,14380,-29302,28584,7938,-22164,7230,21478,8455,16255,22874,-11402,-27592,-26663,17885,9666,-29460,19383,3601,25700,31235,13556,11120,-32033,9884,19760,-13614,-22377,-15049,25216,-14153,1845,22779,13168,-15189,-30763,21845,-8368,-5534,30019,1903,-16318,20269,28732,-20393,854,9421,-16275,-24889,241,-30149,17276,-29298,-16273,30157,-27884,-19032,266,-29663,30283,2930,-31372,10617,25371,12353,-11452,293,22473,-28629,-29592,-17743,-21788,23205,-4901,17813,1229,11917,25691,28728,-4072,24746,-20486,6172,-26810,13890,6354,6125,27597,-17869,-29605,12004,15615,24661,-13844,-3433,-29750,148,19723,15473,12309,-20925,-24042,12148,-21821,7162,19586,19030,-18449,-8651,-18162,-25817,-12827,30078,24138,-9971,-540,-12655,-17319,24270,-17665,-1471,16271,-18210,-30054,-11020,-13561,23814,-28814,-31390,-11937,-30151,-14665,-16096,6249,14264,12045,11879,7820,2764,-7851,13399,-11811,-26023,14648,-18948,13174,-6632,-7591,11847,-25777,-25304,28965,666,-4363,17738,31169,13758,-8236,-18521,22832,-25595,31469,29831,-8008,-20139,4907,-16481,-29286,-21821,11561,-18309,-16171,-19543,14708,6342,-10268,20088,-15787,-15253,-16343,29270,5301,-20298,22127,13658,2434,26069,10383,-5980,29498,10581,16867,19500,30762,-23560,-31200,13195,-26921,-20727,-2239,384,-32277,9540,-7954,-30297,-15181,-18906,-29263,-25436,-25789,-9637,12984,29052,29606,-12683,24069,-26181,-16670,31501,10608,23510,-7329,-9793,19756,-24507,-13755,18858,8035,600,-16692,18623,-6855,14329,-32425,-15485,15099,22313,17455,23997,-5563,-18980,-1842,15694,23398,4766,-6721,12572,4757,-6520,-3573,19083,17800,-25118,-8223,3128,-12533,9723,5454,-15164,-8227,-2115,21410,-2153,11786,-30131,5491,21513,20002,17804,-1101,22225,-15444,4341,-32154,-26727,-28628,17246,6908,31437,5580,6335,-4130,23846,-18805,-5310,-32128,14248,-2554,9386,-29196,23078,-4825,19017,-15089,25265,29890,20962,2113,-7434,14683,-23611,26080,-13615,-31835,-26693,21459,-10663,15493,8362,530,-1954,-19292,6001,-9778,-31413,17985,-9562,15586,26684,30330,9211,-15287,15537,-14206,-16029,-28432,15890,-729,15673,-28296,-19710,26930,-5810,-17870,22031,-19702,9851,-26449,-8511,-13897,-8382,19484,20745,7757,568,-11518,-28774,-8540,371,17422,7767,-12211,-28014,28261,13603,-1300,14395,25088,-14178,-28595,5138,2258,-2229,13754,-811,-13040,-20233,29259,-31865,-16886,15133,-8087,-24441,9622,-14484,-1788,28903,19496,20559,1345,4164,-30055,17794,-21755,11993,-8987,31211,20299,-17194,18485,-2628,-24750,2687,-30662,-1673,18877,-933,6702,13790,-13146,16446,27958,24293,-1391,16981,-14996,23220,2827,-17362,7900,32393,-32175,-7753,-16739,-22968,5792,-17105,7427,6485,-19254,-27248,19350,-12267,-17409,8052,-17266,31416,25153,-22787,-8830,-9442,8238,2793,31762,-3484,19120,30796,-1570,26993,10202,-840,-25707,14887,-2761,-9806,-9356,23152,25144,29040,20034,-28504,8340,-17939,24451,18091,14805,31733,11230,-4211,24200,-5440,6624,-23589,22059,26436,14770,4319,28586,-13914,-9302,27918,-15001,-12421,29619,22410,9075,-4337,31414,-9315,26284,-11289,7816,-31537,-24606,-32631,-3264,-19032,18782,-13334,17192,-20357,-31273,-18347,-26557,15027,20444,13630,4423,-19570,-24839,-20504,32481,13590,-26848,-26796,-1714,29349,28460,-14474,1741,-29743,-31105,12356,26805,-30764,25416,-24484,27886,-23040,-31305,3778,21156,-8069,-6763,-5643,-31965,26140,20946,-20956,15997,-3338,26110,7177,14542,20034,-2615,30556,-393,-13555,10670,29746,13926,9625,-17237,-28904,-20435,24781,26971,-10266,-26147,-10161,12935,6975,-20599,-532,-23271,-17013,17547,23834,26784,-10482,31460,-23223,-11187,-11197,29718,27985,-18715,-10325,-4790,-27825,-5245,-26693,26037,-6934,-11234,-27424,-225,21494,-9813,14846,19460,-10758,-28077,-32148,12862,9923,18077,93,-18473,-20129,-18688,31973,31966,-25451,22371,34,26306,12605,1989,31098,10293,-16058,-6428,-17325,-26484}, {-12001,8233,16554,7851,-10524,-19198,-14278,14794,-4465,15616,350,-8932,-11466,15766,-31781,29743,-1113,-29867,-18029,-9123,2931,31602,21213,15081,22227,-15265,-11753,-31749,22284,2010,-26675,3542,10532,5345,-4941,-11297,22623,-12539,-16675,-12955,-5687,10027,-4547,10613,24120,5907,25461,1787,-4333,8155,17128,22625,-30561,-29391,31068,-9506,-31576,20380,-32126,24485,-972,-6435,20426,-2191,-13651,5242,-27218,-10449,-31449,-31657,18218,-7780,-29870,-23719,2490,22518,28431,26719,9600,-1767,26259,-7996,25650,-2456,28220,27621,-13102,9572,22953,2228,12005,-24812,9597,-25134,19756,23226,15623,31642,13436,32236,21108,2281,24489,21471,-31304,-20586,-9708,-31475,12613,14459,6105,-25400,-18123,-29657,-10478,12881,-11296,-30917,11862,-20149,-32394,-21666,-8046,21935,2193,31915,-31982,-25363,-1773,-25856,17436,-14716,-11624,-24232,18474,-30681,-29698,-8254,20136,19713,-12793,1872,13450,-32105,15055,-495,23667,-25638,-19227,11932,-22682,-14953,-12650,28571,-28134,-25339,3782,1439,-9129,-14021,27433,-13910,1192,-22595,-28356,-24245,-20351,-31415,-28300,-14710,12058,13537,-2918,-18282,-5547,-18918,-15664,-9505,-29898,3187,9779,32313,21563,27441,31989,-11901,4199,-7582,31515,-30305,22236,5731,-6533,5179,-25115,131,-30638,29839,-25449,31982,-27307,9574,19083,24452,27419,-32295,-328,2970,-11011,27758,-751,27692,24629,2381,-15504,-13689,-17119,-2126,28001,-29436,-13315,-20346,3412,-28205,21455,22860,-32015,-16297,-23460,-18720,-4925,27145,27205,32202,27016,-16047,-31304,18331,-15439,-913,-7130,-19296,-6578,-28106,-18470,-23924,-20116,28202,-2251,-22495,-8712,-4518,-25049,-1864,31244,-17949,-28201,30310,-6784,7253,-21459,6447,-29900,20678,-7942,9560,11582,-14422,-28877,-18134,28383,-20579,6075,2963,22568,-22325,-16579,6060,32607,6809,9261,-28315,18747,16502,5728,25403,24154,27172,-17520,25736,12121,9368,-25616,-29123,-21809,8682,-10296,21728,9262,19610,-23457,19892,5433,-12448,32574,-1308,-13060,815,15414,-32425,-24736,-1379,-26511,-17790,-29756,-26003,19662,-10335,-1650,-16552,22352,13957,-15559,22864,10756,19496,-30775,15657,30945,9170,-20723,-5605,31835,-21888,-2922,30099,-23404,14830,21366,9788,31145,20620,-299,8800,32571,-31131,26354,29349,-27755,-1636,-3386,-21400,10279,27375,-17237,4308,-12898,15811,26925,6826,30620,824,6681,23298,2011,12105,-15670,29616,879,-28365,-4958,-7564,-22202,2763,1166,6539,-12321,-31021,114,30669,-27862,22241,-11734,-141,-32260,6045,14688,-31472,24181,-30450,-9579,25262,17663,20682,3023,-9915,5490,-60,432,23882,30242,-3363,-16512,13609,25517,9301,-2128,2999,23870,18368,-27320,997,3652,9447,-674,-19504,-7664,3409,1090,21205,-29904,-7359,-10069,31646,4401,16421,-21787,17735,-15089,22365,10451,-13618,22718,-16718,21779,-28735,22476,972,-24285,-10156,-13397,-12130,-6482,-10897,5429,-6600,-21613,-27812,8594,5230,16454,-16637,-10644,18734,26988,-8795,19794,-23625,-25766,-20328,-10027,7670,-25252,-30334,26314,-5428,19296,3310,27035,-23233,32010,-30116,-21575,3560,-18883,31978,-3323,14650,28575,18033,26229,6216,-19103,-19009,-11949,8820,2099,19035,-29635,28127,-21290,-19759,-9501,28122,-18885,-5946,5269,14024,-8552,31376,-349,-22167,24461,-13546,-7876,8319,11545,30449,11314,-8362,12188,-26784,8370,-20717,20880,-10980,-23259,-11216,8381,22354,-20005,11155,-2638,12609,20504,14110,9015,28129,7671,-19676,-108,-12325,-10289,-634,-28484,-20683,-11528,-4526,23870,12401,2333,26804,-10733,7814,20685,-18759,-29510,11968,7925,-15478,-22046,19641,-17301,-12036,-26219,-31007,30714,8800,-13986,-25759,31269,3285,4759,-32347,7685,16826,7147,-20381,5454,30502,21707,17087,-30209,-20082,-11514,5812,-81,-15900,28115,31679,14546,1736,26472,-28034,-13981,-21187,-3863,250,-1482,-30246,25253,17070,379,-28422,16717,13275,-26383,6720,-14262,9164,-21996,-15069,21131,21466,17874,26922,-25342,-29772,20093,-16056,26301,-24131,2867,23376,10991,-22077,28904,-16639,-14502,11801,-23365,20061,31531,-23037,20022,3280,8908,27801,-22275,-23897,-6014,32140,21297,-2770,12833,21531,-8239,-4193,-12168,14582,-12001,7139,10293,16300,-25449,-10964,-13474,22346,21579,25177,16069,10575,17969,8575,1555,21871,-28824,12079,-12164,-7042,-9248,-645,5128,19478,-29559,-3890,1877,14568,10321,-30641,19244,-16944,24177,24896,6653,-499,-1630,16237,-8809,28123,4102,6308,-1804,-26106,23030,-29052,-28893,20174,10771,-13999,-23958,23605,16429,-8504,-21995,5091,2952,-25290,-14984,29038,31637,-26609,25974,-15258,7899,15073,-3677,-8177,27063,9861,-10027,23300,18608,19547,-13337,17634,28703,9701,-26105,1982,17355,-12819,24130,144,-9692,4915,8588,-2873,-5302,8026,1604,-13260,-5589,1642,32067,-30352,-25045,1658,-24772,-28629,18431,-199,-13294,30078,-11238,-9057,-18129,21508,-380,2232,-28370,-10825,21380,-28408,25916,-19216,-21150,2772,-24188,26520,-21605,-18370,-32701,-2160,12508,24246,10300,3682,-10085,20774,7161,-14218,7807,5825,14559,-14634,-16405,28326,-18395,30954,-12841,-29594,-24901,10487,18272,746,26674,29855,-994,-8984,23974,-15479,-25427,30848,29703,14440,22324,2623,26968,-25538,-3609,9532,-16434,10686,-22398,28631,-30251,17704,-11520,1567,13896,3338,7381,17662,-18684,26645,-32472,2947,8114,-26654,-9384,22123,-15792,19203,-11535,22190,16639,-13818,26587,-4646,8512,30265,21613,-17543,-25761,-29471,1082,11299,12145,-16917,-14064,-24315,-21166,14419,-13757,7186,13984,-3444,7332,31911,-31882,24724,-2448,-28290,-4221,24866,28516,-16831,-28670,-24565,15849,-7756,22946,28863,-23750,21945,-12996,25322,-25766,-28838,24772,-922,25796,-29238,17362,19619,25431,-25364,-23195,-28325,-27897,13798,-1731,25349,-7231,-24467,-15144,13326,-21327,2051,-12399,24424,-26948,2275,-512,19832,17111,-3085,-23551,-17756,9834,-12277,23497,-6541,30147,-4358,16066,25263,-19616,17226,-12752,-14961,-12055,19505,25707,-6342,32076,6979,-11616,10124,-1021,25994,15311,-10775,24675,-17222,-4820,8978,5574,-8521,24273,-28887,14902,-10498,-23397,21393,-26404,10142,14239,21011,23299,-22422,8868,15566,-5911,-18509,27095,20555,-23094,18339,-17244,15131,32590,-29707,6110,-23334,-6449,30107,14655,-3572,11267,28221,6251,-15160,-9535,12927,26187,-32741,-6128,-8422,22439,-10039,-30410,24406,14954,25486,-15453,-29055,-1158,-23187,-12476,-16397,29108,10143,-21212,-24367,21148,-20572,1260,21638,7160,8506,-7767,-3730,-18075,-24378,-18983,-14235,-22661,30646,-24350,-15170,-1496,-31098,-21700,18551,9769,-12375,-11699,27195,-27882,-24724,-10335,-16804,-16090,24659,28577,13418,-19583,3922,5635,-20158,10819,-21400,-29210,28620,-1345,7555,-6780,8372,17809,15592,-30811,-23999,-14640,-10476,-927,-26868,-3595,841,-30485,-2686,13658,30697,-5763,-25866,-14399,10786,-28770,25463,31660,9015,-22101,-5000,-10002,31979,-6121,-7119,14060,-29325,-23836,-3530,18312,29927,14932,-6121,11008,3631,-12667,-26479,19378,12200,-16060,-12570,14568,-17749,29268,2243,-30834,-14444,10612,3828,-2342,-19146,-12998,-28107,-28341,-26666,8779,-18930,-24438,-1784,-25260,27369,25680,31486,-19839,18885,24263,17819,31911,-27698,9858,-13519,24554,15316,4387,5158,-11600,21905,-9512,18159,-4643,-27909,-31691,23999,-30746,-16052,11306,-6342,-30137,6294,1432,-21478,-21484,-13480,-7837,-5750,22987,31443,-30503,28326,-9556,19376,18238,23398,29349,-21781,11105,31994,20207,4400,20807,-14863,-891,-26476,23286,-10939,28768,586,-20664,13095,-22147,718,-2572,-7841,20306,2831,-11227,-31515,14713,-19362,27257,7605,-14831,18182,23112,5722,6776,19765,-3822,-5572,3742,-15173,5825,-31134,20411,-24361,9445,-18777,29116,-2776,-21828,6896,-11342,-22277,1213,-27897,-19411,-22276,-6445,-18844,17145,-27339,-7348,13250,3430,3964,17530,9207,5687,-21467,-11692,21531,-8333,24222,28943,-7509,-24012,-23011,-5732,24997,26334,-20638,12848,-10257,30308,18495,30997,-10745,-14282,-15200,-8173,-10447,9921,-8442,4990,-5661,11262,-17413,-14834,8640,-23615,32427,3948,18132,8992,-9182,-13218,-18375,-28912,25087,21175,27976,-6661,-18756,21129,3998,-31545,14631,28756,-18009,-29248,-11835,23662,-9964,-23804,13096,-10737,-12237,-12813,-4694,-21211,-17049,-18172,21596,146,9362,28201,738,-4364,9333,-14297,6031,26879,-8317,-19715}, {-31142,-5144,-1039,-1424,-12022,-21196,-25867,8260,-24174,22563,13300,26635,14228,-21652,-9736,-19186,-27245,17873,-15404,3140,-32275,31222,-31833,-10285,-13391,7417,18610,6904,-4542,1596,23431,-3104,15928,-31688,-15608,8189,14804,-634,-30612,-19308,14046,10097,-20396,-9141,11992,-17641,-26517,-30148,2579,-26011,11831,-1361,32306,-21306,12431,19146,6544,4991,-17430,12015,15339,12818,29635,-29879,4912,-23002,23595,8213,-29582,-11836,6881,-16309,12582,17512,-9970,-7012,-32028,30699,5250,3810,-20122,24129,18969,-29254,3722,7093,-22057,7517,-8608,-20575,7483,-4287,6157,-19032,1366,-6401,5500,-9206,7672,3655,-16011,-19331,15080,8875,32145,-17648,-25192,3501,26418,-25199,25497,28123,-29075,24684,14323,-31199,6954,-20572,11177,3590,-4163,12065,-25722,22179,-8113,-29259,14488,4763,9441,-13243,4797,-26257,-21301,25752,-15008,1493,-3757,-15037,22479,16589,-16781,-7224,25088,-18719,18470,-24833,-22354,-27674,30834,24364,-13550,7042,-19618,2704,-2927,-3448,17359,20303,-32257,-18217,-31670,23180,-12028,29046,-12562,-22451,7686,14067,-4231,-3744,15709,-16629,24651,-32684,23680,-28018,-21866,31749,10701,-18757,16569,-2749,9375,-11740,1611,10243,-1432,-26018,-19633,-22774,16175,-9793,3317,11748,-10019,-15908,20079,11221,17607,-28672,-5596,24697,-26838,11711,-19217,24651,-28147,-15320,-913,26880,-15054,17361,13147,-20218,-23030,25495,5482,8347,24409,11821,32532,-28502,-29936,-19227,-9685,-17784,-27167,21158,-6391,-1372,-26041,-28691,-30152,14962,28836,-25760,1608,-14186,-6576,24738,-4662,14757,5720,-31305,-21956,-13464,-5370,18698,11214,-10065,7686,14457,23565,-17401,-19864,17405,-2821,7908,1805,6165,-28592,7743,26861,-7268,-20924,11360,-7568,9496,5275,21288,10908,-19287,-6381,27063,12467,-9108,-25677,32442,28328,-3467,4485,29667,-484,3833,-32157,-4547,22130,19988,1793,-24044,-15281,-20300,29834,27590,29820,30899,-26148,18405,5582,24718,-16993,-3908,4425,9210,-7028,-15281,-20671,6584,-21032,-18298,17838,1521,-3107,-8858,10099,-16359,-11362,-16206,2440,6919,7056,-8906,-28808,-31473,-17916,-3744,-22878,10278,3049,18259,-16917,-30314,-14373,-7234,-15909,-20491,2562,1035,-8687,-30149,-6137,-22292,-32615,-4661,10029,6691,-25910,25586,-30611,-2657,23268,273,-31003,18550,2664,29343,-5383,-17616,-16794,-18700,4908,-23029,-23395,-9378,4614,22929,-11113,-2131,7695,-3028,-19009,-28392,-31465,7682,20512,24993,-14375,-7305,15828,-32374,12656,-15201,-1221,-737,27970,-23773,32582,-26362,-22052,-10018,18267,-24081,1729,-7480,17057,-4417,5142,4999,-32574,9038,-32727,31619,30222,22094,-1272,15827,19817,11530,-17418,20002,18215,-22533,21079,23504,31651,-5140,-1821,-32311,-3780,-23087,-7074,-30321,26867,32032,18316,-20773,28879,13607,19480,1554,22780,28668,-19198,-25905,29515,24362,-11409,-25764,29367,26532,-6926,-5846,-13699,7183,4566,-30968,-4051,-9111,15046,14191,-21317,30896,-26827,24658,-12360,10648,-13777,-9209,22561,-11284,-13599,13178,-31150,16717,-29785,17644,7342,9420,29164,-12480,-9573,25892,9587,-17427,4805,19767,28349,-19388,-8752,-4994,30323,898,-2177,-24133,-19462,7893,-7895,3339,25128,-20746,8728,13904,2254,2269,23999,-16739,19942,-16872,13892,-29840,-6218,-724,-26712,-10504,25666,25953,20769,-7175,-12642,-12119,7938,-30565,-20992,-5817,1567,-17269,-27466,-28862,22898,16310,-22803,-18544,26910,8340,16525,12749,12405,-4568,1018,31463,6084,-10865,14676,-16899,20433,17805,9003,19042,-18604,11696,32730,26280,-12724,14264,-24630,-3180,-22953,22644,19684,-5274,-4011,15565,13816,-2368,6413,-20789,25760,-26275,-8657,9119,-14308,-4929,15266,18713,12577,2846,-11229,25219,-22124,-26298,13627,9347,21782,7669,31348,-7956,-29506,15644,6055,-27543,-9977,5004,-3667,29066,19800,28989,-22864,29975,8949,-29443,20156,11477,-26184,-10155,13937,-24326,22061,8031,-10266,-6555,10194,-8683,12170,22395,3760,-25175,-13674,-8609,11103,11061,-10560,4086,26759,-27554,5861,22425,-20686,-11494,-28005,27743,-12921,-13622,6149,-25966,13456,-7940,-22259,-9584,-3299,596,230,-7140,29930,28315,-21082,8301,11622,11628,-31540,12906,-20869,-1352,29582,-26622,23326,-29747,9407,32233,14666,30877,7991,19590,2042,-5686,24720,9535,-8002,-14916,-7490,-1885,-3162,6987,2240,-1523,-22127,530,2232,-5402,15058,5465,-5574,-14859,31200,-27919,-16052,28150,22142,7507,7279,443,26448,17474,-5524,6286,-22658,-12466,-6421,7837,24062,-17452,9907,-986,23484,-29220,-10834,21384,16455,27686,-23131,-22768,-11849,3590,12112,16988,24103,-20359,30259,15277,-8031,-25812,4017,539,-12050,-9558,14802,31510,1380,-8011,-16412,26695,5204,-10252,13179,26970,-5747,148,8201,17606,11866,4227,-4390,-15987,29664,4813,-12186,-18087,-31664,17631,21816,-13326,-31893,-24033,-1987,-21079,-14184,20573,-12271,17326,10606,12770,25639,-28833,9197,894,17665,23281,10849,-1277,13049,19720,28329,-766,11330,-16797,32019,22872,27316,23291,-2270,-29631,24251,12093,-9955,7988,13404,-31867,26300,1534,-12239,-21931,9650,28250,29577,-8933,92,-24004,-8161,21560,-27683,-27673,21108,-1545,9000,-13350,-32004,17601,23109,24917,13287,10467,-2934,25992,-8878,-1065,5098,25200,-9192,-24599,-6384,26670,17630,-15912,14426,-19766,-691,525,-13635,-30905,-1631,11097,21989,22280,15573,15441,-14926,-29883,25960,32282,16544,-24076,-9563,-25360,2012,29954,-6946,20655,23414,15849,-23697,11496,16230,-22604,-22293,-1165,-9601,-28299,-7468,-19318,-21719,24378,-25439,-10066,3212,-23745,11066,-11610,16185,-9694,32664,8803,-6370,2528,-14353,4484,23820,6597,-4363,30467,32170,-15554,10155,-11510,-16503,-11912,-7418,-4873,-9936,-20486,-24694,-2976,-16047,-21119,-16204,-21865,453,13711,2935,22003,-17301,29706,-29571,32140,-2451,-28619,-27727,-14948,-21347,14318,10673,23251,22282,-7119,8425,5411,9045,-9103,-16532,-11040,24119,-2797,13993,31672,4348,-9399,-21908,28153,32174,3993,26392,-276,-28558,-4536,28309,18634,-3371,-13180,-20750,-13582,29107,8311,-30611,-14087,23239,-27131,7107,-669,32314,-32386,11779,30444,31911,-29390,10989,-3281,14929,-24080,10865,10674,7310,20375,-20977,-33,5958,11488,29910,9602,4505,28842,2724,12074,-13574,12002,16038,2370,32461,-25764,20825,30266,11595,2331,24752,30957,-31624,12329,-11524,12645,-14440,-4176,-23362,-3277,-9502,-3355,-4662,2579,-7863,5686,14376,21814,-5105,24008,-30572,15827,7284,-22158,16724,19903,13300,1986,-28832,9046,26624,14896,-7791,-17498,18406,-10954,32308,8178,-15923,-21769,-21450,13476,15688,-18916,854,12609,-28073,18388,-20041,-11876,-8951,-28828,23525,-21847,-30784,4135,21383,30677,-29316,-4624,-18957,-31759,-13855,-18101,-12736,-15091,16737,-6481,-29563,-13374,26847,-22519,12909,-25210,19991,24863,-27862,-499,-11942,23516,10189,-2622,12115,7315,-14847,-29152,-17991,62,-19287,12600,24962,-24029,-26434,-27662,-10591,15004,-26482,-24329,-30710,6279,2951,6272,481,-19546,13741,22284,13325,-18434,-27675,-14830,24656,17456,-5979,-11370,21312,-5113,30965,6730,22985,24932,-18274,22178,-3527,31356,-28094,31667,-18283,-16189,-24909,-30652,31936,30130,9349,31527,-11216,32315,22962,-4644,-23015,-30554,-25986,14237,24859,13136,-12405,-140,23479,21706,9334,15013,-25837,-22348,-2675,25683,-16173,8614,3437,-29930,-32060,-27911,17260,11193,25741,25098,-17213,-24734,502,-5925,-16578,-19936,414,-23846,5465,-7131,-24449,-8238,25789,-7908,31013,8506,5077,-3933,-27303,25199,23711,13588,-1855,19321,12002,5466,-25707,9409,8053,14344,-14830,-16142,-19046,32583,-24548,-13885,28291,-18905,-2165,-10489,-18058,-19865,-8461,-12118,-12367,-3456,24593,29579,17027,-10282,-11418,23939,-10584,-3305,-22861,32293,7646,5955,22657,16073,-22519,-20101,-6997,8500,-24544,-11563,-28433,-27129,10343,-28194,-26444,8028,31913,-10658,9946,-6065,-17188,4064,21350,-25540,19117,3206,-22512,9671,-31006,-17040,21191,-10748,31928,30212,21846,-6468,31463,24818,10311,12505,-29983,13621,-11608,17710,20874,-18668,-14901,18479,-29055,-21431,31496,-32748,27004,17196,20222,-23228,-3737,-25779,26155,-6026,-22883,4252,22730,2464,12121,-8083,-31573,31447,-29416,-25166,-22840,-3181,17714,5386,25554,23721,31938,-4668,31008,-21750,16173,-25421,12662,14641,-4557,-30616,10864}, {-6600,27687,-28545,-20248,-18304,-1180,31458,-26652,-14295,8324,15176,12602,-21632,-31791,-27892,-32016,21542,9402,-7493,-29640,-3107,-20584,8688,-1201,-27782,18971,1015,-1479,5142,31191,22112,15220,26199,-14211,-1045,-28061,22548,-16522,-3700,-17624,5159,-31134,-21395,-19103,-11963,-4330,-13235,3917,18113,-20223,3753,13881,-12855,-11244,-6828,-10701,-20516,29319,-4003,-25513,-9201,10092,-1712,1098,29542,-8980,-21538,-23845,18908,-23771,1169,14350,22652,-28487,14944,5239,-13370,31002,17252,23575,-31753,19861,8734,18866,-19012,17349,-6185,-17706,23866,15689,-9971,-18601,-303,-30011,26238,26696,-18641,-4966,13146,28038,-28915,-19657,1609,21800,-130,4694,-27214,14035,23382,-7330,-10406,22049,-17391,-15269,-1820,-8010,9279,19261,-8750,18677,-30842,-20312,-22156,-19824,17416,-32608,15855,6835,-29740,31650,18062,-2550,12461,-7001,24000,5110,23571,-3900,20044,19160,30770,-22714,-25319,25944,4027,20039,21509,18773,5741,29223,32069,2975,-31518,-4281,-9897,32039,-4824,-19997,16372,-8521,-16970,5096,-25283,24116,28356,16231,31929,-30751,-1560,-2616,12971,32560,26836,-9187,-27255,-25116,863,-1619,-26349,-22005,-29924,20253,-29921,-25829,-5374,-22213,-10932,-5401,-24104,-3505,-11249,-24025,-29910,28309,12184,-29338,-28062,-29703,-31603,-1736,-24078,-26793,-5145,-5856,4147,-13504,-12385,16925,16280,-25199,1241,-17301,908,32500,-21134,-21579,-12274,-12627,-30034,-20081,6199,-942,-27706,-2174,-19827,8535,9623,-658,16543,-6350,8483,12971,-22325,-25235,-3210,-17342,-18026,355,15906,11677,-26342,2361,-20474,-21579,-4488,10794,15310,-31055,11253,-7885,25856,19728,18638,4662,25668,-17160,28499,23163,8621,22786,60,2162,10674,22812,11969,5571,-24453,-5610,11475,22991,-28878,-7906,1053,22166,-11003,-17629,-29892,-637,3723,-23117,4214,-1315,-27315,32119,-28686,6925,27390,-30250,3538,22680,3539,-24799,26561,6521,-13809,4291,-7357,11932,-20448,-11307,-20530,-19532,5024,26626,-13346,5572,-6121,9005,-25653,-11421,-2443,-31143,-2228,-28233,6551,-29872,-17356,-26720,11517,-15005,-25940,-30298,-7409,3935,7145,-26421,-3720,-23420,17189,-29644,31634,4627,-12529,11374,23091,-29868,-11232,-1219,19984,-3842,-18426,-5820,8190,27873,30894,-1552,3117,16418,4318,15137,-10990,-28126,-8188,9821,-9160,2919,24560,29058,25337,25951,-4446,25455,-14036,26455,-25324,18949,7499,22655,-2655,24177,11408,-11833,30983,-9875,-28666,-16555,7580,-26708,4403,-12364,-9803,7327,-6127,-18780,12661,-20037,-30567,-15158,16329,28849,-22608,-19689,-30963,9114,-19420,-5482,-27357,-3335,-4917,29066,-2350,5476,-3301,-14751,-6371,7215,-5562,24750,18712,20455,3195,21876,-7688,13093,-21300,-28360,-19543,-20066,20080,21157,-15596,4616,-28069,5635,-6996,-7602,29421,-31725,-24460,11347,-22957,-13382,154,-15279,-15856,-32270,-17716,25103,-9400,20014,-13653,6204,23201,-24746,22838,15580,-31984,-3088,-24355,4623,-22810,9257,-4572,-25047,8111,-4828,22226,13817,23749,16491,5412,31270,26129,-27278,-4277,13708,-19906,20008,-30011,12851,-7699,176,5050,9759,1683,-3688,25945,-2573,-20845,-3910,25448,-32445,-3541,-19033,-5751,-18682,-32736,-17969,-9159,3627,25935,460,-22201,-5778,28361,-27776,31904,24259,-30278,-15210,16584,-6297,9937,-20094,19626,-4708,-5480,-1196,-12558,22598,14754,-19490,5619,20566,9386,30224,-12368,-3925,-7763,4839,29274,-26546,-28589,-702,-4008,-29698,-16807,-18382,-16746,-13635,-1435,-2979,6358,4242,25383,9730,-10841,24194,7257,8760,-9623,-15429,9862,19963,-7488,28098,-25565,29320,-220,19081,-4295,26229,-19530,-19656,-30254,28219,21576,16725,13817,-31678,-1204,-11707,1732,-18292,-18009,-8510,29997,-15457,-25951,-17740,30045,4487,7091,-19780,-17844,27006,-19156,21625,20375,-16111,-29300,-25606,10187,-25129,12514,300,11380,13020,-15041,-4253,-22154,6575,-10232,-23699,-41,21816,19767,24975,-11171,32481,-18346,32761,-6538,-31832,18067,-2064,-18996,15030,26981,-6606,-22726,8301,2978,906,-17615,8255,-5598,218,-14699,8919,14583,21726,32157,31736,15322,-25506,16940,11212,17073,-768,-18158,369,-17927,7281,-15149,3204,440,896,25609,-26277,20550,825,-6554,-11468,7559,8273,23537,-3346,12484,-23439,-19977,1073,2917,11637,-10363,-9752,-19156,17298,23864,11579,11356,19907,19508,-14313,-31496,-15316,-12027,-20663,-18073,-30170,-4596,-16536,15848,25205,-7682,17688,-19561,10299,29581,-262,-3784,-6990,13526,-3718,30008,-25156,24193,-346,-15632,6209,-23367,-307,5701,-20043,-1881,28071,-27649,-18954,-9517,-30293,14437,-6926,-1368,-26503,17708,-956,-28418,27492,-12541,-540,21268,2051,26132,-17881,8710,-32093,23770,17085,13341,-17088,-4538,-26846,31925,-9142,-23853,-21371,979,-29745,-25623,-32560,-2567,12857,-239,3124,9329,4879,14402,781,-2800,22482,-29016,-21869,6674,32495,-22642,-10102,28390,-24304,31597,-26649,32250,17023,3183,4052,23034,14026,25963,27419,8194,13336,-18284,11825,15550,1247,-29286,24370,-31736,-26123,-8688,-9214,-20787,1419,24635,7791,16067,11393,12068,22988,19210,-10422,-28230,5780,10955,7911,-22330,-10677,31153,-18444,-18658,-14411,13104,8545,-22897,-17420,-3874,26712,-7366,700,5103,-27126,-24460,-26972,-12145,31842,-8345,21277,24021,29161,-3639,-5450,27963,-13860,-28741,-19975,-10169,13109,-14551,9458,21667,14057,20389,2600,6658,3953,-26257,3069,-14798,20059,20778,-19656,-12506,4856,-4695,4757,21248,-21910,11413,8503,1740,14212,-25178,19717,-6494,5773,19672,32401,16216,-730,-15229,-29202,-15942,10844,31224,-15436,18453,17881,-29233,-30919,-7071,-18728,1430,13737,-3716,20797,-8940,29139,21934,-27400,-21334,-187,2007,-10194,26415,8130,18941,25322,-2982,-9839,24795,30107,5612,-16516,-4265,-1992,-20002,11073,26485,-11970,10425,28273,2419,26402,16104,13882,-3864,24354,20515,-25126,-2746,-27851,28005,-17552,-3387,713,31900,7616,-917,18465,15407,-8636,-21611,32215,-8267,9715,-22308,12276,-10900,9973,18702,25913,27511,-23267,17691,27472,10207,-27458,20408,30030,22740,-25285,28482,25911,6842,32212,-23493,-2269,-7156,-16272,-1011,17629,29490,11910,18750,30706,-27870,18805,11820,-6046,9950,19333,-3276,-19204,-27276,30032,-31275,10001,26242,-18778,2677,-5413,-27863,-22817,-18393,-9186,-7214,-17889,-11799,19963,11469,3968,13046,-17063,-24134,-17949,27930,10640,-20619,7777,286,-32653,-22602,24784,-4089,-17900,4466,763,32001,-26155,21084,-25567,-27347,31043,-32591,-1946,24415,17263,-15872,-12405,-3065,-9731,-14600,-30521,-15115,13290,-23156,28031,32557,2867,17170,24660,-32221,10544,28817,-27426,340,22998,-1159,-25121,4813,-31024,1500,866,-30243,23351,19458,-30417,8104,-18398,6479,5986,14175,4111,-31428,8392,-12392,27422,-10628,30351,23677,-18699,32318,21347,3094,1830,-15186,-13975,-5134,5980,5374,-2018,-17436,28192,-29441,-24857,8381,29245,-18328,22220,-28363,-91,-18367,-3828,-16119,23074,8276,-21425,-16417,-6709,6080,-27017,12610,12688,-7516,-19867,16731,24266,-25912,24714,-25532,16008,-3830,3046,22453,3665,-11042,1493,31409,-19158,-1885,26639,19138,1008,19473,-21722,27757,-15794,26003,23894,14079,-24764,20959,6312,-18380,-30421,11265,16564,4245,31589,21820,12505,-26588,-227,-31504,27132,10306,-19495,-21064,-12100,7171,19826,29594,13940,6867,29695,-30256,-24706,-10248,30606,-13745,21433,357,22483,-26772,-5736,3728,8558,-29408,26050,-10874,-25325,22310,-20300,5619,-3256,17463,18542,15230,243,-20778,-23547,15844,32427,5343,-14505,26770,30580,-14156,-8509,28492,-23194,2815,3735,3270,-10266,5831,19298,-15718,-18448,8639,-21390,10926,5777,-7148,-30293,10853,-21691,-12697,16464,2849,-14803,20975,27403,12642,-27563,26738,-32623,-3637,-27749,-16996,-12523,21625,23888,-6424,-32417,-13395,-14359,-22222,-32654,15341,32476,-20039,17910,21920,17715,12240,-10967,-5555,21307,-24081,31537,-19532,7382,18637,736,15396,20170,-8419,-17230,-7455,-29350,13634,30319,-32726,7970,-26209,27529,-8477,24177,13647,7075,20532,10118,6206,-22608,-10047,-1542,14344,32587,4059,29589,5100,-18953,7190,30307,-24118,-17503,24405,10071,-2490,-24162,-15088,-5687,24609,-10949,-29583,21419,16739,-19545,9442,8294,-24726,-96,-21288,-12874,27336,27003,31460,1677,22468,-30278,-189,8944,-26900,-15072,-27186,21628,7769}, } ; static void test_encode_1277x7879_impl(long long impl) { unsigned char *s = test_encode_1277x7879_s; unsigned char *x = test_encode_1277x7879_x; unsigned char *s2 = test_encode_1277x7879_s2; unsigned char *x2 = test_encode_1277x7879_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1277x7879_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277x7879(impl); printf("encode_1277x7879 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277x7879_implementation(impl),ntruprime_dispatch_encode_1277x7879_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277x7879; printf("encode_1277x7879 selected implementation %s compiler %s\n",ntruprime_encode_1277x7879_implementation(),ntruprime_encode_1277x7879_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1277x7879_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1277x7879_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1277x7879_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1277x7879_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1277x7879_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1277x7879_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1277x7879(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277x7879")) return; storage_encode_1277x7879_s = callocplus(crypto_encode_STRBYTES); test_encode_1277x7879_s = aligned(storage_encode_1277x7879_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1277x7879_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1277x7879_x = aligned(storage_encode_1277x7879_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1277x7879_s2 = callocplus(maxalloc); test_encode_1277x7879_s2 = aligned(storage_encode_1277x7879_s2,crypto_encode_STRBYTES); storage_encode_1277x7879_x2 = callocplus(maxalloc); test_encode_1277x7879_x2 = aligned(storage_encode_1277x7879_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1277x7879 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277x7879();++impl) forked(test_encode_1277x7879_impl,impl); ++test_encode_1277x7879_s; ++test_encode_1277x7879_x; ++test_encode_1277x7879_s2; ++test_encode_1277x7879_x2; } free(storage_encode_1277x7879_x2); free(storage_encode_1277x7879_s2); free(storage_encode_1277x7879_x); free(storage_encode_1277x7879_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1277xfreeze3.c0000644000000000000000000014457114705505543023442 0ustar rootroot/* ----- encode/1277xfreeze3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1277xfreeze3_checksums[] = { "1b449bf6d1f970ca5d2339cd8f869e5b26d5116e35e464cfcc238d094b17f4d7", "200feb6191e1e49aa674353ac35d15ff8a3aa6c70cbcac515210a394bbaebddb", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1277xfreeze3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1277xfreeze3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1277xfreeze3_ITEMBYTES static void *storage_encode_1277xfreeze3_s; static unsigned char *test_encode_1277xfreeze3_s; static void *storage_encode_1277xfreeze3_x; static unsigned char *test_encode_1277xfreeze3_x; static void *storage_encode_1277xfreeze3_s2; static unsigned char *test_encode_1277xfreeze3_s2; static void *storage_encode_1277xfreeze3_x2; static unsigned char *test_encode_1277xfreeze3_x2; #define precomputed_encode_1277xfreeze3_NUM 4 static const unsigned char precomputed_encode_1277xfreeze3_s[precomputed_encode_1277xfreeze3_NUM][crypto_encode_STRBYTES] = { {255,0,0,0,0,0,255,2,255,2,255,255,0,255,1,0,255,1,255,0,0,1,0,1,255,0,255,0,0,0,255,254,1,0,0,0,0,0,1,0,255,0,254,2,2,1,2,255,2,255,1,254,255,0,0,1,0,255,255,0,255,0,2,1,1,255,0,254,0,255,255,0,0,255,255,0,255,0,255,1,1,255,254,0,0,254,1,0,255,1,0,1,1,1,254,255,0,255,255,255,2,0,0,0,254,0,1,1,255,1,255,254,0,0,0,2,2,254,1,1,255,255,255,1,255,255,1,0,0,0,0,0,254,254,0,0,0,0,0,0,1,255,254,0,255,1,1,255,0,254,1,1,0,255,255,0,254,0,1,254,2,255,2,1,0,1,1,1,0,1,1,255,0,0,255,2,1,254,0,255,1,0,1,255,1,255,0,1,0,0,255,1,255,0,1,1,2,254,1,255,2,2,255,1,0,255,255,2,1,0,255,255,1,255,1,0,2,2,0,1,2,0,1,254,2,255,2,254,255,255,0,1,255,0,255,0,254,1,255,2,1,0,255,255,254,1,255,0,255,0,1,255,255,255,0,255,1,2,255,255,0,1,2,0,255,1,1,2,255,2,0,1,1,2,0,255,0,0,255,255,255,1,2,0,0,0,1,0,255,0,255,1,255,0,1,255,1,2,0,1,1,1,1,254,255,1,0,1,0,0,0,0,1,255,255,255,255,255,255,255,0,254,1,1,1,255,0,0,2,1,0,254,0,0,0,0,1,0,2,255,255,255,1,0,0,2,255,255,254,0,0,255,255,0,255,2,254,254,2,0,0,0,254,2,1,0,255,254,255,254,255,1,1,254,0,2,2,2,254,0,1,2,0,1,0,255,255,255,1,2,0,255,1,254,0,0,0,255,1,0,1,255,2,255,0,0,1,0,0,0,0,0,255,2,254,1,1,1,1,255,1,255,255,1,255,0,0,1,1,1,0,2,0,255,255,0,0,255,2,2,255,0,255,1,2,255,254,1,0,1,254,1,0,254,0,0,254,254,255,0,2,0,1,0,1,2,255,1,0,2,2,0,0,1,2,0,254,1,255,0,0,0,255,1,0,254,255,1,1,0,0,0,1,0,0,1,2,0,2,1,1,254,254,1,1,0,254,0,0,0,0,255,255,255,0,1,0,0,254,0,0,0,1,255,1,1,2,255,2,0,2,1,2,254,255,0,0,255,254,255,0,0,0,0,0,254,2,1,0,1,254,1,254,255,2,2,1,1,255,255,0,255,0,2,255,0,0,255,2,255,2,255,0,2,254,1,255,254,0,0,255,2,0,255,1,0,1,254,254,255,0,1,0,0,0,1,255,255,1,0,0,2,255,254,0,254,254,2,0,0,254,1,1,1,2,1,255,254,1,0,255,1,255,1,0,2,0,0,0,255,0,255,255,1,1,255,0,0,0,0,254,0,254,0,255,1,254,1,255,255,1,254,254,0,1,255,255,0,0,255,255,255,1,0,1,1,254,0,1,1,0,255,255,254,1,0,1,0,0,0,255,0,1,1,0,0,1,255,255,254,2,1,2,1,0,255,0,1,1,255,255,254,254,1,254,255,0,0,0,1,0,254,0,0,1,255,0,2,255,0,0,2,0,1,0,255,0,1,0,255,255,0,1,1,255,1,1,255,2,0,0,1,1,255,0,255,2,255,1,1,0,0,0,0,0,1,255,0,1,1,2,0,2,255,0,255,0,2,1,254,0,1,2,255,1,0,255,0,0,0,1,255,0,0,2,0,1,1,0,0,255,0,254,1,255,2,0,1,2,254,0,255,2,1,0,0,0,1,255,0,0,1,255,1,1,0,255,255,1,255,1,255,255,255,255,0,255,0,0,254,0,0,1,254,0,0,2,0,1,1,255,0,0,2,0,255,0,0,254,1,255,1,1,1,254,1,1,1,255,255,255,0,0,2,1,0,0,254,0,255,0,2,255,0,1,1,0,0,255,0,1,1,1,0,255,1,1,254,255,255,255,255,0,1,0,255,0,1,0,255,0,1,2,255,1,254,1,0,2,0,1,255,255,1,1,0,255,0,254,254,255,0,0,2,255,0,1,255,0,255,1,0,0,1,1,0,255,1,1,255,255,1,1,2,254,0,255,254,0,2,0,0,254,255,0,255,0,1,0,2,254,0,255,0,1,0,255,0,1,0,0,0,254,2,1,0,254,1,1,255,255,255,255,0,255,0,1,255,0,254,0,0,1,255,255,255,0,2,255,255,254,255,1,255,2,255,1,1,255,255,255,1,1,2,0,255,0,255,255,1,254,0,255,0,2,0,255,1,1,0,255,0,255,0,2,1,254,0,0,1,2,2,254,1,254,255,0,0,254,0,0,255,0,254,0,0,1,0,1,255,0,0,0,1,255,1,0,2,254,0,1,0,255,0,0,0,254,0,2,0,2,0,0,0,0,2,0,2,1,0,1,1,255,0,0,1,0,1,1,0,1,254,255,1,1,255,0,1,0,2,255,255,255,1,0,2,0,0,1,0,0,1,254,255,1,1,0,254,255,255,255,1,0,1,1,255,255,255,0,255,0,1,255,1,1,255,0,0,254,1,1,0,254,255,255,0,0,2,2,254,0,0,0,0,255,2,0,0,254,255,1,1,1,255,0,1,1,255,0,0,255,255,255,0,1,254,255,254,255,254,0,255,1,0,1,255,0,254,1,0,1,0,0,255,0,255,255,255,0,1,2,255,0,1,1,255,255,0,255,1,0,2,0,1,0,255,255,1,255,0,255,0,255,254,0,0,2,0,1,0,0,2,0,255,255,1,0,1,1,255,0,255,255,255,0,1,255,1,0,1,254,2,255,1,255,254,0,0,1,0,255,254,0,254,2,255,255}, {1,0,254,0,1,2,2,255,2,2,2,255,255,255,1,0,0,1,0,2,255,1,2,255,1,0,254,255,0,1,255,1,2,255,2,0,255,1,0,0,255,0,254,254,255,0,0,0,0,255,0,1,0,1,1,0,1,0,0,1,255,254,1,1,254,1,0,0,0,1,254,255,0,255,0,2,1,0,2,1,2,255,0,0,0,255,1,0,0,0,2,0,0,254,255,0,0,1,2,2,1,1,0,0,0,0,1,1,1,1,255,255,0,255,1,255,2,1,0,1,255,1,0,1,1,1,1,255,0,1,0,254,1,2,255,0,2,1,0,0,1,1,255,1,255,1,1,255,1,255,1,1,0,1,1,254,255,1,255,0,0,1,1,1,1,1,1,255,255,255,0,0,0,0,254,0,254,1,1,255,254,0,255,0,2,255,0,255,254,0,1,1,255,0,255,2,0,1,255,254,255,255,0,1,1,0,255,0,0,1,254,0,254,0,0,254,1,0,1,1,0,1,254,0,1,1,254,254,254,2,0,255,0,1,1,255,255,0,2,255,1,0,0,0,0,0,255,0,255,1,0,254,1,255,0,255,0,0,0,1,0,255,0,255,1,255,255,0,255,0,255,0,255,1,255,0,1,255,0,1,0,1,255,1,0,2,1,0,0,1,0,0,255,1,0,254,1,0,0,0,1,0,1,0,254,255,255,0,2,1,0,255,1,0,1,0,1,2,0,255,0,254,1,1,255,255,255,0,254,2,2,0,2,0,255,255,0,0,1,255,1,255,0,254,0,0,1,254,254,255,1,0,0,1,255,255,0,0,1,0,1,1,0,1,255,1,254,254,1,255,2,1,1,0,255,255,0,255,255,1,1,254,0,1,2,0,0,0,0,0,1,1,254,0,255,0,0,0,255,1,0,255,0,0,1,1,0,1,255,0,255,1,255,1,254,1,255,254,0,254,255,1,255,255,1,255,2,0,1,254,0,255,1,1,255,2,255,254,255,0,255,0,1,255,255,2,2,0,255,255,1,1,255,255,1,255,0,255,0,255,254,0,254,0,2,254,0,2,255,255,2,0,255,255,0,255,255,0,0,0,0,0,0,255,0,0,1,255,0,255,1,255,1,0,255,255,1,2,254,1,0,1,1,2,0,0,2,0,2,1,0,1,255,1,0,0,0,2,0,1,255,255,0,255,255,255,0,1,255,1,1,2,1,254,1,2,0,254,254,255,1,0,255,0,1,1,255,0,254,0,1,0,0,1,2,1,0,255,255,2,255,0,1,0,0,1,255,0,255,255,0,255,255,1,1,0,1,0,255,255,254,255,1,255,255,254,254,1,255,0,254,0,0,0,1,0,1,254,1,0,0,255,1,0,2,1,254,0,0,1,0,1,1,0,1,0,0,2,0,0,2,1,254,255,0,2,2,1,0,0,1,255,0,0,1,2,255,0,255,2,0,1,254,2,0,255,1,1,2,255,0,255,254,2,255,255,0,0,0,1,2,0,1,255,255,255,255,0,0,2,255,1,1,0,2,2,0,255,0,255,0,254,0,0,255,0,0,255,1,254,1,1,2,0,255,2,254,1,0,0,0,2,2,1,1,1,0,1,1,1,255,254,0,0,1,255,255,255,1,254,255,254,255,255,255,2,1,255,0,0,1,1,0,255,255,0,1,0,255,1,0,255,0,255,2,1,255,255,0,1,255,1,1,0,0,0,0,2,0,2,1,1,2,0,0,254,1,1,255,255,1,0,0,0,1,255,1,255,0,255,2,255,1,0,255,255,0,0,255,1,0,0,0,0,255,0,0,1,255,0,0,1,255,0,254,254,1,1,255,0,0,255,255,254,0,0,255,1,0,255,255,1,254,1,1,255,254,255,0,255,255,0,1,2,0,255,0,255,0,0,1,0,1,0,255,1,0,255,254,1,1,255,0,1,1,0,2,1,0,0,0,1,254,2,255,0,0,2,255,254,2,255,255,1,1,1,1,0,0,1,255,2,0,0,0,1,1,255,0,254,0,255,0,254,1,0,0,0,254,254,254,255,0,0,1,2,0,254,255,255,1,255,0,2,255,255,0,255,0,0,1,255,0,255,1,0,0,1,255,0,0,255,0,1,0,0,0,0,254,254,1,255,0,1,255,255,255,0,1,255,1,255,1,1,1,0,1,1,0,255,255,1,255,1,0,0,0,0,255,0,0,0,255,1,0,255,255,255,255,1,1,0,1,1,0,255,255,255,0,2,255,0,0,1,255,0,1,2,1,254,1,255,255,255,255,255,254,0,255,0,0,0,1,1,1,0,255,1,1,0,255,0,255,0,1,255,0,0,0,254,1,1,2,2,1,0,2,0,0,255,254,255,0,0,255,0,0,255,255,2,0,0,1,1,0,0,2,1,1,2,254,255,1,0,0,0,0,1,255,255,2,2,0,254,1,1,2,1,1,254,1,254,255,2,255,255,1,254,255,1,0,1,0,0,254,2,254,255,1,255,0,0,255,0,1,0,255,1,1,1,255,1,2,0,0,254,0,0,255,255,255,0,1,255,1,255,0,2,1,0,0,0,255,254,255,254,255,0,254,2,0,1,255,0,0,0,255,255,254,2,1,1,254,0,2,1,255,255,255,0,254,0,0,255,1,1,2,0,0,0,0,255,255,1,255,1,255,255,0,2,254,0,255,0,0,0,254,1,1,0,255,255,1,255,2,0,1,0,254,254,255,0,1,1,0,255,0,1,2,255,2,1,255,1,1,0,1,0,255,1,255,1,255,1,0,255,0,1,255,1,1,0,0,255,0,255,2,2,0,0,1,0,1,0,1,1,255,0,0,254,255,0,0,255,254,0,0,2,1,0,255,255,0,1,0,2,1,0,2,0,0,255,0,1,0,255,255}, {1,255,255,255,0,254,0,255,1,2,255,0,2,0,255,1,2,254,0,1,1,0,255,0,0,1,255,1,0,255,2,1,0,0,1,1,255,255,2,0,1,0,1,2,0,0,0,1,2,255,0,255,0,254,0,0,1,0,0,255,1,1,254,255,0,0,2,255,255,255,0,255,0,1,2,255,0,254,1,1,0,0,254,1,1,0,0,0,2,0,0,254,0,1,255,255,1,255,255,1,1,0,255,254,254,0,0,0,2,0,255,1,255,0,255,0,1,2,0,1,254,0,1,0,1,1,1,1,0,2,0,0,255,1,255,255,0,0,0,0,2,0,2,0,254,0,0,254,1,255,0,0,254,2,1,1,0,254,1,255,2,0,0,1,1,254,2,1,2,255,0,255,2,0,254,0,2,254,255,2,0,255,254,255,255,255,0,255,255,255,0,1,255,255,1,0,2,0,255,1,0,1,1,255,1,255,0,1,254,1,0,2,1,0,2,0,255,255,1,0,1,0,255,1,0,0,255,255,255,0,0,1,0,254,0,1,0,0,255,255,255,254,1,1,1,255,0,1,255,255,2,1,0,254,255,255,255,255,0,255,0,2,255,255,0,1,1,1,0,1,254,255,2,255,0,0,0,0,255,2,1,0,2,255,255,0,0,1,1,2,2,255,0,255,255,0,0,1,255,2,0,255,0,1,0,0,0,255,0,255,0,1,1,255,254,255,0,255,1,0,0,0,0,1,1,255,1,0,2,1,0,1,0,0,1,255,1,254,0,2,254,2,2,255,255,1,0,1,0,0,0,255,0,0,1,255,0,254,255,0,2,0,2,0,1,1,1,254,0,255,254,1,0,0,0,1,255,1,254,0,255,255,0,0,0,1,1,1,0,254,1,0,0,0,0,255,0,0,255,0,1,2,0,1,1,1,1,255,254,0,255,0,1,0,2,0,1,0,0,0,0,255,1,1,0,1,0,1,255,255,255,0,254,255,1,254,0,0,254,1,1,1,254,1,255,0,0,254,255,255,1,0,1,1,0,1,0,254,0,255,0,0,1,0,0,0,255,254,1,255,0,255,1,254,255,0,2,2,1,255,0,0,1,2,255,0,0,255,0,1,2,1,255,254,255,1,255,255,0,0,2,0,254,255,0,0,1,1,1,1,255,1,2,255,0,255,255,2,0,255,255,0,0,2,0,255,0,0,0,1,255,1,1,1,0,1,1,0,255,254,0,0,255,0,1,255,1,0,1,1,0,1,1,1,254,2,1,0,1,1,0,1,2,254,255,0,1,255,255,254,255,0,2,1,0,0,255,0,2,254,1,1,1,0,254,0,255,1,0,254,255,2,1,0,0,0,254,254,0,0,1,254,0,254,1,0,255,2,255,0,254,255,1,0,255,254,255,255,2,2,0,1,255,1,254,1,0,255,0,255,255,2,255,255,0,0,0,1,0,1,0,254,0,0,1,255,2,0,0,1,0,255,0,1,0,0,0,2,1,0,1,1,2,255,1,0,255,255,254,1,1,0,0,255,254,254,255,0,0,0,1,255,254,255,255,254,255,255,1,0,0,0,255,0,0,1,0,255,0,255,254,2,0,0,1,1,1,1,0,0,255,0,254,1,0,0,2,0,1,1,1,255,0,1,1,1,0,255,0,255,0,255,0,2,254,1,0,1,0,0,0,0,0,0,1,0,255,255,0,1,0,254,0,1,254,0,1,0,1,2,0,1,1,1,255,2,0,2,0,255,255,0,2,1,0,0,0,2,1,2,0,1,2,255,0,0,0,254,255,0,2,254,254,0,0,0,255,254,2,0,0,1,255,1,255,0,255,1,254,0,255,1,1,0,255,2,255,0,1,1,2,254,2,0,0,255,0,0,1,0,1,255,255,0,1,255,254,0,0,0,2,0,0,0,255,0,1,1,0,1,255,254,0,1,2,254,1,254,255,1,255,1,1,255,254,1,0,254,0,0,254,1,0,0,255,2,0,2,1,0,1,0,255,0,1,0,255,255,255,255,255,0,1,255,254,255,0,255,1,255,2,1,1,1,0,0,1,255,0,255,2,255,1,255,1,0,255,255,1,255,0,0,1,2,255,1,255,0,255,255,1,255,0,255,255,255,1,255,255,0,0,1,255,1,1,0,255,1,2,1,1,0,1,255,254,1,255,1,255,0,255,255,1,0,254,1,0,255,254,255,254,0,0,1,254,0,0,1,0,2,254,254,1,2,1,0,0,255,254,0,2,0,1,1,0,254,254,1,255,1,0,2,0,0,255,254,0,255,255,1,0,0,0,0,1,255,1,2,0,1,0,2,1,1,255,0,254,0,0,2,0,1,2,0,0,1,1,1,255,0,2,255,255,0,255,254,2,2,0,1,0,0,1,0,1,254,254,1,1,254,255,254,255,0,2,1,0,0,1,1,0,255,255,0,255,0,1,2,255,255,255,2,0,1,0,0,2,0,0,1,0,1,0,255,255,2,1,255,1,255,255,255,2,1,255,2,0,0,254,0,255,255,254,0,0,255,2,0,1,1,0,0,1,254,0,0,254,255,254,0,0,255,0,2,0,0,2,1,0,0,2,0,1,2,255,1,255,2,2,0,1,0,0,255,255,1,0,1,255,1,255,1,1,1,0,254,1,254,0,2,255,1,2,255,1,2,254,0,0,254,255,255,1,255,255,255,1,0,255,0,1,254,0,255,255,255,0,1,1,1,0,2,1,255,1,0,254,254,0,0,2,1,0,255,255,0,255,0,255,0,0,255,1,1,255,255,0,2,0,0,1,2,0,0,2,0,0,254,1,255,0,2,2,255,0,1,1,255,255,0,0,2,0,1,0,255,1,0,254,0,255,0,2,0,254,255,0,2,255,1,255,255,255,0,0,0,1}, {255,0,254,255,0,1,0,1,1,0,0,0,2,254,1,0,1,1,0,254,0,254,0,255,1,0,0,1,1,1,254,0,255,255,0,254,0,2,255,2,1,0,1,0,1,1,1,255,2,0,0,0,0,2,0,2,254,0,0,2,255,1,255,0,0,254,255,1,254,1,1,255,1,1,1,254,255,255,1,255,255,0,0,2,2,255,0,1,254,2,2,0,1,0,255,0,0,1,1,255,2,0,0,0,0,1,2,255,255,1,0,2,255,1,0,2,2,1,0,255,0,2,255,255,0,1,0,255,0,0,0,2,2,254,0,0,0,1,1,0,1,255,1,0,0,1,255,1,0,0,255,2,255,255,0,0,255,2,0,1,1,2,255,1,255,255,0,254,255,2,0,1,255,1,0,1,0,0,254,0,1,0,1,254,1,255,255,255,255,0,255,1,255,255,254,255,1,0,0,2,0,255,255,1,0,255,255,0,0,1,2,254,1,0,255,1,254,0,1,255,0,255,0,0,0,255,0,2,254,1,255,255,0,255,1,255,255,255,255,255,0,0,1,0,0,2,0,1,255,2,0,0,255,0,255,1,255,0,0,0,0,1,2,0,254,255,0,0,1,255,0,255,1,0,254,255,255,2,1,0,0,0,255,0,1,0,1,0,0,1,254,254,255,255,254,1,255,0,0,2,0,0,1,254,0,0,0,1,254,254,2,255,1,0,0,0,0,1,1,1,255,0,0,255,255,1,0,254,2,0,0,2,255,255,255,1,255,255,255,255,2,1,1,255,0,254,0,1,2,255,1,0,2,255,255,1,2,254,1,255,0,255,1,0,0,1,1,1,255,0,0,2,0,0,1,0,0,0,254,0,255,1,255,1,0,255,255,0,255,254,0,255,254,1,2,0,255,255,0,0,255,0,255,255,0,255,255,0,254,255,0,254,2,0,1,1,2,0,255,255,1,1,254,1,0,1,255,255,0,0,0,0,255,255,255,1,255,0,0,0,2,0,255,1,1,0,255,254,0,0,255,1,0,0,255,254,0,0,0,1,0,0,254,2,255,0,255,255,1,1,0,0,0,255,0,1,1,255,1,255,1,0,255,2,1,0,255,1,2,1,255,2,1,255,255,254,0,1,0,0,1,0,2,2,0,0,255,1,1,255,0,0,0,1,1,254,255,0,0,2,1,255,2,1,2,0,254,254,255,1,0,255,0,255,1,255,0,0,2,2,2,255,0,0,0,0,0,254,1,1,1,255,0,2,255,1,0,0,255,2,255,0,255,0,0,1,1,1,0,1,255,0,255,1,0,1,0,255,255,0,255,2,1,1,0,2,255,1,0,0,0,2,254,1,255,255,255,255,0,0,255,1,0,255,0,0,0,255,0,255,0,2,0,1,1,0,1,255,255,255,254,1,0,1,0,0,0,0,0,1,1,2,254,255,0,0,255,255,255,1,255,2,1,0,254,1,255,254,0,0,255,255,255,0,1,0,255,0,255,254,254,0,1,1,254,0,255,254,1,0,1,255,1,0,0,254,0,255,254,255,1,255,0,2,1,255,2,254,254,2,0,1,0,255,255,0,1,255,0,255,1,1,0,254,1,0,0,254,0,1,2,254,0,1,1,0,0,0,0,254,0,1,1,0,1,2,254,255,254,255,255,0,0,255,255,255,255,1,255,0,0,0,255,0,0,255,0,255,254,255,255,0,0,255,0,0,1,0,1,255,255,0,2,255,0,255,0,255,0,1,1,254,0,0,0,0,0,1,255,0,0,255,255,0,0,1,1,255,0,0,255,255,0,0,1,0,0,255,255,0,1,2,0,1,255,1,255,1,255,255,255,255,255,1,1,0,255,255,0,0,2,2,0,0,1,0,255,254,1,1,1,1,0,255,1,0,1,2,0,1,0,0,0,0,1,255,255,0,0,0,254,1,1,0,1,2,0,1,255,1,1,0,255,1,0,0,2,1,2,2,2,2,255,0,1,255,0,1,0,255,0,255,0,1,1,1,1,255,1,254,0,1,0,0,1,0,0,1,1,254,254,0,1,0,254,254,1,1,0,0,255,1,0,1,255,0,0,1,254,1,255,0,255,0,0,1,0,0,255,255,0,1,0,1,0,2,255,255,1,0,0,0,0,254,2,0,0,2,0,255,1,255,254,0,255,255,254,0,255,0,0,255,255,0,1,0,0,1,255,1,1,255,1,0,255,0,1,0,0,1,0,0,0,2,255,0,2,1,255,1,1,1,1,254,2,2,0,0,1,0,255,254,255,1,255,255,254,2,1,0,0,0,1,1,1,0,0,255,255,255,255,255,0,0,254,255,1,0,2,0,255,0,255,254,254,1,1,254,255,255,0,1,1,0,1,2,2,0,254,1,0,2,0,0,0,255,255,255,1,1,0,0,0,0,1,255,0,0,0,255,254,1,2,255,254,1,1,254,0,0,1,254,1,0,0,255,0,0,255,255,0,255,2,0,0,1,1,0,254,255,2,2,2,254,0,2,0,1,255,255,0,2,0,255,255,254,0,1,254,255,255,0,1,255,0,1,254,1,255,254,2,255,0,254,1,2,1,254,254,255,255,255,0,0,1,0,1,0,0,255,0,0,255,0,255,2,1,255,0,0,1,0,0,255,0,255,1,255,254,2,255,0,0,255,1,0,255,255,255,0,0,1,254,255,1,2,1,255,255,2,254,1,1,2,0,255,0,255,255,255,255,1,0,255,0,0,0,1,2,1,255,255,1,255,255,0,255,0,255,1,255,255,1,1,255,254,0,255,255,254,254,0,1,255,1,1,254,0,0,0,1,255,1,1,255,0,1,0,255,254,1,255,0,0,0,0,0,1,254,254,1,254,0,1,1,0,1,2,0,0,1,255,1,255,0,255,255}, } ; static const int16_t precomputed_encode_1277xfreeze3_x[precomputed_encode_1277xfreeze3_NUM][crypto_encode_ITEMS] = { {30935,19029,-24504,23706,-1053,1251,-12052,-26539,-9316,-24889,-15955,20276,-6156,18755,-4337,846,-15175,520,9677,4911,-7656,-29849,27987,2911,-1123,19680,-11995,-7497,23964,-13383,14312,18985,3811,5814,-24681,-32043,-9315,-13263,5476,21513,25139,-22080,17065,-30172,-29401,4852,-21814,15518,-21349,31472,-28364,20026,20039,-8391,-18873,1069,-8016,6236,22961,-15918,-12172,-19290,-27679,16021,-11786,-3988,-31830,18667,-28683,-1285,20171,5352,-8676,19805,-3460,4257,-5545,13101,25463,-25727,-17579,24578,26122,-29262,22569,32551,9826,816,11042,-30062,-3729,-5213,5401,-23066,30427,3443,-19509,20210,-13231,24392,-30409,-22098,18465,-13491,32218,-31503,-15956,4057,19361,-5564,-5653,30466,10491,-23922,15828,-28135,-24964,31465,8806,-821,-8044,-15052,899,-14582,27242,14564,1780,-7839,1242,24306,21603,15543,31354,18808,24282,8511,-29136,-19422,1500,28950,-32222,10493,27340,9219,32126,-18407,-16892,13055,28863,23983,-422,-2021,-13854,26096,-5038,-32427,29263,5256,-11357,32524,-20677,2066,-25978,-32195,27906,4807,-24986,745,13443,220,5125,-1945,-28050,17772,-3715,-25672,-13322,25006,-22296,26690,-11060,-20424,9205,11024,-11480,788,7959,1378,1113,19908,20672,-6416,-13684,9102,3646,12208,-32113,32485,-28304,18329,-22606,-28162,-1933,-8507,10698,27458,12815,-19480,-11180,26196,26285,-2350,-15011,23951,5086,26859,-19108,-27961,-21828,-15758,-20902,-7776,-21833,30883,-26734,11201,-19006,27193,16817,10097,-2655,-20120,-7405,31596,14306,-7158,17119,-10127,-3709,-26047,-31451,31965,-472,26534,28057,-5912,15959,-32439,-7702,2280,-13082,29222,-7798,11258,-9324,-5695,-26780,-22789,-2149,2564,2346,-6179,-21343,-31620,-6757,14935,7321,-29200,25640,-31648,15810,-20642,-23024,-24811,32724,22658,8787,23337,23777,20651,18467,-17573,-17002,-13146,-30162,15303,-28154,15216,-3784,-13437,-8347,-17810,-13105,16968,8872,-8095,-19748,-19210,4620,-15227,-26885,7237,9829,24202,22712,-5012,-11961,-16673,15087,28458,4695,19767,11263,-1756,14351,16250,20372,26747,-7240,25232,-9546,30490,14341,9424,6379,107,-17379,24981,-32494,11449,28038,17392,1068,6441,-19797,-10608,-25028,-24882,-32110,26300,-1219,-1012,-21065,-7296,-22728,-26452,15062,-16192,20944,14733,-24111,-6913,29240,4152,11879,-31510,29590,27448,-27643,-23076,16665,32706,32680,-26101,-19991,-32055,-13279,19999,30536,27475,-13363,-27149,6085,19027,15879,-27901,-31330,-18400,24148,-15162,2737,-19648,17661,-23078,13713,-15001,-2449,14579,8191,-25186,-14946,-10870,-24323,25666,-9315,6309,-16173,10880,-14444,23484,-10202,8012,-18481,20276,-27990,29622,-25940,-27999,-4968,-27345,20109,-14229,19493,-23257,27640,3304,13252,14551,9505,7304,-31850,-15805,20921,-27722,-8617,32166,30879,-10088,-12050,3208,-21270,-30106,-4683,23072,-5683,-2805,11052,-15805,-26866,-25333,-2854,27744,8594,-26576,-29599,1934,18271,-27857,-29139,2527,24961,-16730,-18969,24343,-20979,23910,28873,23179,-10495,10914,-18601,26688,-27518,6981,-9911,-21892,28898,-14489,-25680,-26554,-19549,-21333,-5130,7735,-26959,13833,20479,14911,-1003,19989,-21552,19593,-1120,-2888,8853,19744,26063,-12998,-3761,14199,9609,-1941,-953,27492,-21042,-19712,-29215,-6603,-22894,-15089,-12413,24907,31678,-26471,-23891,12681,22819,11877,16776,5400,21261,11582,-3655,-3631,10404,6619,-15252,4242,26167,-28356,-27852,-10110,-17750,-8932,-6029,-26264,-18175,24752,-28903,32190,-17992,-32156,-19702,24697,17483,-31833,30087,-967,29557,24563,5238,16227,27288,-25647,21786,16891,-23965,-23168,-5460,-21344,16447,-19694,21187,11984,-26251,-19432,-30914,-16211,-13003,1334,18390,31517,8421,-23932,-3862,-4971,19200,32738,-17779,29837,-20431,7202,20547,-16390,22240,-17987,-12994,20548,11124,-30144,3551,-17701,-7431,-3586,-23240,-9024,-4820,19303,16576,11279,108,10063,19770,1401,25185,-18470,28694,-8779,-21224,13443,3132,-26833,29531,25834,24984,25873,24025,-31279,3855,-19305,23284,-5846,-15980,5749,-30175,-17627,-13,25309,-2033,10188,2258,-824,28055,15571,-6252,-20803,4146,18708,-9975,-12475,-14583,-12877,-5110,-3773,-2357,-1372,519,-17304,11199,-2208,30745,19890,20899,19845,16937,-23849,26749,11689,-9709,14558,-5147,24292,31141,30423,1696,-232,18860,31695,3000,27047,23210,25337,-27269,15930,-13070,15760,22678,9867,-1118,-28691,28749,8756,-12532,27970,-28469,16899,-1472,19299,-9150,-27684,18302,9429,-27497,-4397,31029,4986,6220,26156,-2995,24901,-29650,355,-22867,-18044,-13779,12671,-1587,15673,9808,-4177,16298,24403,23221,6790,25237,-4708,13080,22026,-7851,-548,177,18568,6054,-30909,-4265,3245,27309,-24328,-997,-6714,6609,-21817,-24726,-20780,16965,-9373,-5793,3157,-9684,12806,-16264,-8169,7390,-4850,31235,-20510,-6794,10715,-20077,-7830,-21174,-5198,-17933,28688,-1326,-9394,-21598,28649,-31289,-22058,9135,15159,23769,-32475,20931,-15596,3263,-27861,-12170,-755,-18709,-26286,-16585,-718,3390,-10732,5361,-30700,-29744,20890,29403,-9626,-20737,25646,6952,-23310,-6286,-10191,-14310,3048,-3188,21398,-2172,11892,-18097,-8025,-3857,-16499,-10686,-17544,11735,-28758,17650,-19880,-7360,-19852,2898,-3428,-18637,25126,19137,6827,-25528,-3341,21723,4380,-9369,-13049,15446,-4533,-26835,-7688,-10978,-2513,-18878,9267,-12910,16643,2527,-3046,-31385,-11299,12362,5885,-14176,-17193,3815,10929,-14088,17158,-7533,-2187,1729,21400,-24063,9891,-23035,-14457,4843,-11303,-14410,1437,32274,-20809,-4149,-2713,-15996,27951,25504,12895,30710,-9830,-25004,1855,26596,-17972,11101,4099,14321,-9079,4379,468,14898,-18511,-13253,-23097,32076,21709,18600,13376,31431,-26167,11741,-12177,14377,-3764,-12045,5469,-13396,4479,9568,-16613,8497,-18489,19133,-6557,-20777,17851,-6982,28616,30062,-12094,18228,-6326,2916,13514,-3021,2761,-5604,-9712,30273,916,-23260,9254,-3251,25759,-7163,-10047,-27115,-5541,-32603,31040,-5287,-28832,-26711,9654,29798,8667,19306,30304,4238,22386,741,-27142,18209,18474,1807,15416,11547,24359,-1289,32145,11226,-28160,-19103,31572,-46,-10757,-31946,5993,-15010,-4688,-24452,-20944,31759,-22686,28544,18286,-20628,-19195,-24471,-18081,23416,5960,-17001,-3160,11355,-9773,3585,-18922,31642,-8001,-1642,-27138,-5012,-3672,29591,-18198,-32165,-6834,-12132,-31902,22591,-26746,-17798,-19317,24757,1675,-26300,11375,17390,17372,-1528,-8295,9983,10083,-7751,22316,12183,23395,-20142,-32277,-16688,-2566,31973,-13885,-7944,-24301,-14077,-12382,26131,23531,10633,32381,-28828,-4315,-32276,-2063,14378,12668,-931,-230,-24089,-16570,-1128,17111,-27771,-14086,12590,16060,29902,-17958,25709,32091,-24877,-21918,-6862,8083,-1472,19938,8426,-21135,4703,25101,-27550,12355,17230,-9969,8430,-4781,-24307,-21652,25399,-9497,23377,19061,21786,-609,17887,13740,-24366,-6556,-20883,23173,6726,-9111,-21101,24123,8182,-2158,3168,22980,-10833,-11411,959,-16757,18603,-26449,17533,28812,-27755,-14406,-4885,-12519,-32394,-21642,19525,1791,-26797,20133,-30028,30504,-5040,-16350,915,-28018,17898,-16933,11476,19746,-10568,-4193,-7915,29109,5031,-5750,-4632,-5090,-16493,3585,-10826,30097,212,10300,10192,-6373,-27993,-16244,-8046,-28693,25817,698,1091,-9206,-14607,-20209,-12297,-15345,13903,24786,7383,-8384,30373,2939,2236,-30134,-22989,32521,28532,21464,-4180,-24062,6708,913,-17765,-10927,-10987,1949,-14958,15488,3333,-10640,-2995,14056,14245,-3916,5739,-28683,20128,-3230,12229,-24276,25318,-4639,13724,23034,29739,-30076,-21148,32689,-29853,588,-9279,26004,21098,-21658,-1749,-28311,32023,12017,-30929,13363,7504,1214,72,-2900,-31994,3068,-9003,-891,14000,-5434,11879,-9048,-15950,30718,-5380,17878,9176,22825,10674,10202,-3863,11340,1585,-4354,7641,19006,10321,12675,-29417,-11823,3627,4166,-19080,-12472,27089,22733,25668,-10274,-22633,17564,-32691,4279,-6371,30233,6035,1422,11870,-28208,17136,-17434,27633,1033,4095,3968,15752,-14465,9281,-19740,-2218,-20427,25814,28231,22536,9300,-17827,11826,-4943,-13257,-32715,-26380,-17154,20477,29078,-12290,-13686,-26525,-15563,25349,29682,18194,-5062,15485,12795,-25523,14900,-5810,6969,-25781,32746,-16906,7466,14914,24752,28129,-14103,10083,-28736,4260,19955,18160,-32724,18667,-26632,-12001,27041}, {-14696,-27699,28693,-25173,15760,-30649,-29749,-2068,-31897,-26410,-31900,20459,23345,-7123,-7562,10209,-1947,-29576,-16269,-32329,-6658,-12572,-29308,29384,-29744,-24258,24259,-6472,18432,-32291,3500,13312,-21586,-14224,-26572,16659,27116,-18596,-3447,-16386,-2455,-31098,30373,18007,16940,10587,17373,-12741,-29076,3680,-32082,15880,-513,10825,-30377,8823,-815,-14547,2355,-31370,-8443,29680,-9512,-10226,19009,-18722,-24036,29214,-4215,637,19654,15710,21189,1316,-12024,-20227,-16415,-369,-18052,5272,-26839,17564,-26355,22935,-27840,-11734,6613,-31191,-18450,-27420,-26824,-19788,12876,25237,7301,-32706,-30201,-19508,-29731,-31198,14698,-20273,-29484,13596,9300,23766,7027,-28748,-32129,14989,27965,2882,1077,24587,6919,2243,-32383,-11213,-19479,-12161,-2305,1438,-5811,1255,11332,-17591,-23699,14657,4299,-16052,14028,17215,-18053,-30034,3263,1035,-31285,-1313,-14058,3156,-29552,-12413,-6235,-1607,31508,-28748,6547,10478,7669,14741,-23789,-4697,-1278,-5888,-11390,22063,23963,-21869,-2551,-3468,-32763,-20372,-13559,-32627,-28682,841,-16034,7589,21830,-10711,-2043,18045,7284,2898,24838,-12756,23587,-30533,4438,17579,18868,-30690,25484,-7995,-27718,4010,2574,2318,22213,-17136,9304,15943,-10099,-5760,-12151,-20074,19077,-28370,13352,28297,17405,29801,4014,-27728,-13991,-21399,14609,-8796,1647,-8054,31549,18447,18382,-28482,-17244,20047,-26594,7101,-6311,-21503,-5061,5128,18343,-28236,-3266,-8399,32542,25150,18703,-17551,-14421,25196,-5241,9109,5341,-9742,13829,4197,-24649,10325,-4649,19038,-15234,-15666,5139,32736,10022,8418,14909,2902,-26610,29008,-290,9722,23601,32660,19176,-11820,27195,-22670,27291,-9529,-3423,557,-19079,-12943,17774,-24288,-9535,-11898,10223,-10257,25367,-21308,-11344,-27165,-18632,28529,-3816,-30422,29805,-8738,9950,-8168,11598,-25765,14893,-22605,14676,16381,5445,-12084,18890,-26258,18408,29506,7840,-26073,-705,-10212,-19751,-5850,6922,19632,21613,-11104,24998,-13737,-25585,12442,-4533,29969,-25145,-22518,-25469,2106,508,-16489,-28968,-2605,18690,25300,-1103,-12119,-4612,27245,21725,-16593,29206,-25675,-24649,-29949,-30232,-8607,-2683,-9001,5193,23268,-12923,15782,-22718,-5716,-26496,25654,-26475,-25926,-21983,24835,29521,-4360,-21083,22863,-30675,-10244,16658,16274,-26304,-28488,-3263,-14190,4459,-13004,19314,-32210,-14056,-5612,17938,31273,-30092,9362,-16549,9244,-18647,16473,16985,26714,22866,3737,-8587,-1475,7051,28726,-13713,-23195,-16591,906,18558,783,31446,-23883,-32378,4828,28366,-3660,17378,-13398,-8001,-15561,12755,10816,13989,-13564,21651,13443,-11378,-23399,5217,-19547,23096,-10248,17381,-11915,10580,-27104,22141,-5405,-12361,17392,27762,18637,-9874,-10523,21146,-12745,-22478,5402,-24838,-14850,13108,17365,2166,-13918,-17411,-500,-2956,-20353,-10927,21895,21512,-26793,5186,-8850,-30287,-5494,28490,-19615,-24451,-378,31055,-12358,-5558,577,12032,20456,-6740,30770,28755,25322,-25500,14189,23482,-19635,18967,-12222,-18289,17725,25674,-21979,-6742,-10924,-23401,-1116,6923,6206,26607,5921,10946,-10671,22473,-11853,-1983,-25287,15366,-4114,22542,-1584,-20099,12638,26535,17642,-11081,13793,-30623,23748,971,1718,1390,-20050,22114,-25799,-28659,13237,-6560,-26572,-12762,-12942,-17683,22101,-31285,9160,30273,11320,21134,4618,-13725,-20625,-14556,-21349,11706,-28274,23426,23246,-6105,25814,-5428,20066,-14874,-30701,-5068,-18683,7693,-17614,-13445,29203,-8189,-30991,-9780,18658,19327,28163,-5105,-31365,22433,-32727,-16991,-18641,-16372,-32682,16612,-19074,-1349,25869,16368,-17642,-23563,-22307,-29799,25118,-3937,-25099,11867,-6639,4462,21516,-12807,-23288,-5290,-17955,16577,-7504,31746,-14935,27101,8347,-7742,-20364,-16373,-3552,2372,21371,24508,-8620,-2234,-4324,-11731,17350,25912,-10499,3344,-1998,23179,-10449,-10011,30501,-24497,32400,15604,22303,-2330,11052,27999,21191,-2267,-5664,-31426,-18551,27205,4437,23064,1489,32241,16381,12637,3936,-16451,-23076,20337,-19414,14427,-20706,-31402,4339,24538,1322,3441,-28522,-21787,11050,-31791,-13941,-21725,9809,-5940,26070,-9374,-24430,21620,-14394,22760,-25792,23202,3532,31891,-19849,17766,31508,-16982,-2783,-19798,19907,-30108,10823,22360,-31141,23960,11453,17394,-852,21228,10642,-20743,13203,15106,-1873,31877,-12769,-1948,31494,-21588,-24712,31670,3394,-9284,-13017,-23188,-29329,-5166,21884,27711,-12901,12036,29089,-3489,-25395,-3625,-25716,-17970,9473,-26195,28282,-20693,-29003,-26494,22992,17870,-20986,31063,-25295,27915,5025,14499,-26248,-21040,-16838,1111,15676,4506,8779,13312,-30653,-61,24037,-26331,-27960,-11759,30920,-12103,23981,-29843,27829,-8338,29521,12032,32042,15914,-18181,-9173,11750,5589,-28917,-2519,-12248,-1428,23204,13106,-26856,4714,11499,10544,13741,20517,-11995,9426,-11728,-31375,-740,19292,-15457,8439,-16418,-14482,-215,14146,-15834,-20355,-27186,-3867,-21037,5190,-22642,2194,9256,-19384,-5691,-26997,31018,9640,-1766,29516,-7183,-4280,-1644,1686,7440,-191,1892,-29915,9794,-32361,31757,-26752,-9964,97,780,15329,-6403,24840,29079,-1306,11995,15468,-22527,-18183,-3543,23864,25263,-30192,-21917,-6997,28227,23571,1000,7229,-4581,29452,25840,-20801,-7025,15932,28533,21489,-11200,-12805,18589,5667,-21261,24920,10129,30969,18074,2903,-7553,19045,1459,-25553,12809,28966,28466,-11100,-1036,-5095,-11211,2557,-23053,14415,-6868,972,-451,-32397,-23436,-25256,-909,4177,-13905,1763,874,-9708,-12316,32572,-12278,-32624,2282,13803,-7664,10852,-24357,-19627,-1526,-15090,-16269,25137,9883,19009,-20476,10595,-31500,12609,-23989,3449,23209,-23554,14219,28001,15241,13246,-15971,-12758,2151,-14886,7615,30281,-29977,11889,9999,-29931,-10094,-18827,-4486,-14676,20008,11367,17537,26886,21001,-16463,-31284,-16620,15108,27409,23581,20209,-12004,-20106,10380,-13775,-23782,13011,21211,26900,1031,-3176,-12928,14562,-23044,22184,21854,17079,31556,-876,17922,-5405,-5155,29280,-10582,16228,-5127,21513,-5957,9851,10656,15468,23021,31032,-21887,-7578,-2688,16902,1794,27487,19258,-30494,25385,12528,8887,25439,-6781,20150,10872,3025,6272,-14351,7646,-27755,-22538,-18671,23034,13816,4534,24291,-1558,31640,7996,18068,-9194,-29748,-14889,-24261,-30594,-3310,-7245,-18258,32496,20375,-27068,32112,-16069,-9523,26903,-7129,-13418,3094,-15096,2455,-22772,28527,5108,14162,-15346,5676,-17149,30635,-13350,-11895,-15182,23513,441,-25547,-21685,6823,21925,-18455,-13474,23027,26087,12074,25412,16792,-31500,-16072,-32280,9714,-17874,5311,-2951,-25700,30741,-9841,-29573,-28988,-27141,-6820,8205,-6712,-9129,-290,-16249,-29754,-23649,26583,27469,-24782,-6350,-31486,-30442,-22364,-29829,-19066,-3,-1362,17117,17800,30266,28854,25020,27575,-13032,29805,932,10745,-32716,-21207,17535,-19253,-26552,19092,-25137,-22195,-18194,-30908,-20464,29872,12581,-13241,3420,-27585,31668,-25236,-1061,-2977,-7651,-17176,-22576,25326,32053,-24044,-6317,-24394,-15866,5893,23872,1552,22372,-14194,-18823,-8029,29870,4105,27571,10409,-16097,-22620,-15251,31263,-10152,23107,-28783,28759,19358,1384,-9313,-7617,16650,24590,7311,5215,8316,263,12460,13144,-24032,29606,-19598,-17527,5670,28314,17248,14382,-60,1904,5354,-4639,-22332,-13244,-14326,-31439,-10186,12018,-18031,8689,-26100,-8166,5394,6176,21550,-1972,25915,10664,12858,24241,-21265,-28707,-6410,-109,12039,-8817,-25083,-13954,-1120,30106,-25552,-10385,-4775,24148,-3024,-30307,-30737,7853,21041,26063,-30660,26710,-8409,2118,-460,-12773,-12494,-29170,18783,-15450,27237,-19833,-742,-14110,6433,3968,-4511,9365,16322,-12174,-32314,29848,3795,15056,183,26940,24186,27736,2611,-15503,-23043,-10051,19601,-9884,1493,-19966,-4722,14440,-29802,17098,16444,18068,18642,-13943,7771,-12900,6056,-24864,-31979,-25972,26345,-25384,14755,11852,-17363,-29810,-11439,-31592,27885,8804,-8891,12080,-19760,32270,9259,5082,27416,9555,9457,-2578,-989,-19595,13347,16902,27824,9243,24281,-20953,-16861,-2652,-9510,-13547,26589,-24005,-7767,-18680,-15194,3974,-10563,20901,17365,24128,31806,28044,18944,17302,1467,29436,-25933,-2711,-17049,-7405,13475,6042,-32375,-23640,-20128,5629,-1248,-20392,26382,-1398,-202,-17790,2212,18732,23792,30884}, {-24539,29597,-7534,-2887,-24537,22804,-31347,-3373,-14666,-24439,4187,-10803,-18997,-24543,-5080,1192,-32287,30226,18159,4618,244,21213,11978,16689,22731,15811,30866,-2981,5811,-3430,-23032,-20759,-6942,-26889,-23396,-1490,12674,-10810,-17137,-15918,-25682,17097,8161,-29584,1647,18204,11184,8713,-20890,-8908,-11088,29213,24393,28783,-21444,-31179,-25133,-2631,23979,-8626,-1265,8752,28585,-931,-19749,-22302,-27253,12281,4457,-3070,23580,-12406,13977,-8900,-16435,-4084,11922,21502,4594,-6194,19101,-16086,23251,-716,-22688,-24741,22827,11067,-25996,-17670,17847,26041,-30321,15364,-994,-1309,-2216,5855,22007,2878,-6137,-4971,-9592,25768,31510,4446,32709,-23985,-18805,-26319,2939,-29888,21110,15645,-2899,23826,-31169,-21235,-11742,-17510,27550,7356,12859,-19779,-28184,-20738,-14351,-419,20418,-27847,32286,17550,-4405,10702,7517,21551,-20061,17883,-29007,9327,-22297,-25632,-17317,-5985,29167,9309,-10167,28402,-7724,5030,24534,-29046,23377,-23911,-32312,-25448,29280,19123,-3455,-15487,-24292,-567,8325,-4787,12598,16768,-17173,-9971,-22210,4622,12438,13823,-26269,-15501,22381,-23628,-21946,31969,1286,-17938,15036,-7507,23989,1454,-13708,3581,6564,25298,-5107,-13282,-18654,-1040,-3865,7439,-2513,-11184,-22627,30333,5384,-12560,25791,-16826,-14531,21368,15370,15305,16500,-2480,30907,10015,-13854,-27760,-17681,-5160,-18439,29670,-745,16133,-3650,-28551,-23324,30360,-3106,-20891,-17184,-9330,12305,-14935,-13165,30054,17709,-11816,-32151,32620,-30132,-22289,-20232,31593,30266,-3097,24137,19846,-19463,-20588,11368,13004,28236,11659,27365,26750,-18466,-32636,-19689,22000,23513,21275,-9754,16166,19728,-5275,11373,-27469,7403,-3148,15537,-1193,-27557,-12920,-8529,-24077,25666,-7084,-17026,5888,-23097,-12687,-26961,-31017,1568,-27730,3151,-6753,-20536,-9655,28853,25275,-29025,-4067,-24770,-26566,-20344,28673,31977,-502,-14047,31641,-24450,-26537,25688,-28000,3357,-8467,32247,-23159,-4731,-19137,27906,-1663,9267,-5791,25020,-10982,-10364,24404,17548,-7312,-22632,9125,-23696,-32358,-27018,30417,30573,-20582,-21986,15947,9220,-18747,-19333,9190,-30714,1453,7083,22320,-25706,-11782,-1211,21967,31983,-24313,22945,-21733,-32290,-12532,7772,7600,13416,-12314,-5184,-5445,24168,-8257,-3777,15018,9409,-7075,3924,23380,31184,16701,-25315,7965,-19795,8001,-9317,1585,7,21850,2337,32741,28612,-21347,4983,7854,-16860,-28472,19907,10798,26983,25554,2705,12827,5466,-19536,-11082,-4544,-13403,-18965,963,22294,7036,-24339,17394,-18630,-13164,12830,19608,-9420,-15502,-23478,-21380,-24814,10158,-25136,-19010,7420,-4745,20984,29923,3495,-4210,31236,12307,19188,-17977,-27984,-8222,25566,24135,7287,28494,-13414,607,-19925,-22101,-24716,-8313,-21485,-13618,-10456,-7060,-26850,21574,26321,14950,22912,17649,2622,17395,-4685,-5405,7951,20464,15742,512,23886,-28359,28099,-10342,-6973,-10109,-24792,7906,-26444,31068,-31034,13077,27646,3246,3230,-32445,24006,8830,-21747,3324,21984,-11542,20359,-23480,-9175,17868,-3808,11032,19939,1256,-8979,-31981,-23890,-22157,21074,16140,-7446,-8426,-23695,455,11268,32556,28118,12528,13207,-25009,-6803,16319,26269,4994,-4973,2552,-10435,31362,-4377,-16891,17919,16405,19817,4539,-27225,-20351,-380,-22790,649,13151,-13325,-32317,-14155,19611,-13681,1535,-19069,-17601,23240,-895,3372,6285,-23707,13791,-13951,-3090,-5040,-30324,-13082,12518,-26678,11206,-16679,26769,12055,-13565,26856,-2389,17896,3015,-26871,12299,29103,-25913,26105,-24578,27132,-31109,-26222,9066,-11354,7462,-14864,24046,-28618,-7793,-5982,-31811,-32312,12822,4975,-20686,23332,4100,27483,-11816,8606,1697,25126,-12022,13110,-23257,-9029,12192,6771,27770,-8121,-19303,30376,-19916,-1364,-14498,9108,31546,11613,-13324,-3566,15951,21337,11801,-29797,-28859,-20856,4329,-13299,26401,27361,-8613,-4890,-6263,26662,28395,25258,-17279,14550,10127,-27925,794,28872,21061,-14986,-27542,-5298,-7627,17029,20276,5804,-27370,-25279,-20817,12556,14501,-25694,19798,9085,-19113,9872,26445,-5584,4568,-24355,25520,29567,14481,-14280,-30003,4315,3801,-10871,-26343,22309,27240,25479,-24053,-3511,-19597,26769,31002,7636,11934,-15991,16095,-1187,-2697,27918,-8013,-22687,-22379,32121,2713,-25937,-19600,5660,-26153,-7368,-10483,25625,30649,-22355,-31073,891,20472,21833,20617,25819,31559,13167,-11499,14883,-14381,24803,17263,21164,10997,32167,20906,5180,3484,29553,-29799,3210,-8014,7797,22749,-15815,31962,8552,23901,27821,30286,-22018,-28857,-16194,253,6859,-10019,-17096,-3600,15984,1661,19104,19627,-9920,28773,-15840,-29257,8769,844,-17195,3400,6119,19071,-9671,-19469,8212,21990,13814,-27339,2687,29814,27824,24621,-32239,16798,-15515,-6630,-12551,-11502,-32706,-18186,14688,2967,-31650,-27941,-13278,-1057,26333,-28389,4210,-30435,29896,19461,-8753,28651,-25062,-1208,30363,15256,-24334,-20436,-26294,-20129,-16124,29147,-32179,14661,-16729,-12555,-10540,-5629,-16077,-25477,-5363,-23682,-13524,-15606,-21313,-578,-17338,-8946,14428,-22963,-6598,25170,23331,23250,17437,-11620,7101,-24205,27955,25315,-12171,-10836,15831,4913,25135,-21778,14805,-26427,-12986,2054,6937,19196,12555,21035,-28094,20881,3312,-8923,-10481,-19124,-24144,8933,-20878,-9988,29121,-10424,14587,-18616,25315,-29419,16827,28101,-1792,24687,-29973,-6992,-129,-17708,2705,8537,-6573,-30716,-6097,17167,-17529,-885,-22755,-18937,-14268,7503,-18147,-8128,2883,1168,-16466,9369,-32396,3350,26722,-28188,3511,-16402,27676,10219,22009,31100,-23210,-11989,-14141,-20549,-13612,19831,3286,-23079,22465,-14424,5598,22681,-30812,-11703,-10848,-9733,-22276,-14589,-31477,-18848,-17721,4915,-23190,20918,-24606,-22550,21744,25040,16142,-14527,15671,-4132,-2868,6826,26465,25018,22232,-2127,24860,1204,12002,-19483,-6167,-26057,-4793,-14121,-25122,-10046,9092,28461,-9019,-19690,29207,-962,5027,652,-31044,-5683,206,-16493,-14623,-5568,6465,-4199,-16642,4697,-12110,-12625,-9066,3968,9089,-5936,-16144,11907,12206,-3772,-175,13606,9113,2372,25323,2052,-7787,-4546,-2903,-7022,24,11840,-30425,-23980,-24155,4561,28455,-23747,31862,19762,-14867,23513,3259,-3418,-30732,18029,1277,-17897,23577,17161,-6629,31428,-5893,29482,15539,20191,9495,14427,1708,18397,29679,-18171,13360,2013,-28858,30016,32029,-785,-21376,-28205,-19797,12204,-220,19723,24813,-27718,32619,-25433,4204,17685,30766,22000,-11096,13298,-8453,-17319,-20620,-7404,13092,6503,27922,-16344,29984,-7204,2758,-27366,18657,7059,-23241,10549,32171,-9083,-28759,-13671,-15200,18252,-29425,10594,14074,-12493,-32208,20446,-25569,-22446,-17860,16653,-11123,-31732,-5088,19959,-6908,-26453,-14354,1868,17952,-31384,28217,7634,-24390,18185,32320,-24103,-27307,7608,-320,6306,-15990,9193,-27132,4378,20308,17905,-31379,-22844,22027,-14968,30472,5744,9078,-29167,-28193,8139,9639,892,-16820,-30342,18200,-13855,-3768,15416,10239,-14420,-18328,15620,6473,7148,-20359,-16425,9520,-29292,-8904,-17590,21411,-162,-20279,4623,-15335,1092,6815,-11524,-17704,-30809,-16372,-1217,19940,-10492,16094,-25135,11926,1547,-28720,5538,24102,25990,10992,19934,30341,22414,-25053,-28386,713,-16900,2274,-428,-27260,8040,1212,2866,23206,-6021,27846,31801,1136,24961,20022,-4941,8819,5070,-20497,-4503,-30123,-16750,10534,24108,-25968,-32257,-4503,6883,-27253,125,-18428,19529,-30415,-19516,-8931,-16766,-16929,-15483,22262,6695,-20813,-32400,-25613,14303,-3920,15050,-12854,-29606,-21662,-3222,20131,-22391,31213,-27507,-23506,14078,-10787,-26857,-14443,-14699,-24610,22501,-18630,24882,18550,26234,-12973,2449,-12139,25586,-7357,-10967,27699,3575,-6735,-14957,21187,19887,8363,9812,-7363,-20862,10762,-12572,-18875,22650,-23569,1180,-15781,331,20187,32095,20053,25602,-27975,-28000,-14828,-17217,-5257,8621,29070,27398,-21732,32090,-22647,-6117,18548,-12593,5458,-1864,28154,-28290,-32734,31314,-6369,-24587,-18847,-5463,-12948,-27547,26709,31260,18847,2329,-15538,30165,-30184,-16939,11591,-10467,-15935,1351,-15328,13082,-32094,20589,-32158,32400,4633,-31677,-5950,10369,-1104,17665,26439,20984,5706,-32155,30795,16996,31148,17655,-17437,-14599,-443,31394,-11128,16691,17973,11127,-10860,4216}, {7400,25293,18628,1844,11031,-20291,11130,10468,-19292,15417,-6600,20955,-24952,17560,9256,-15720,6337,-7361,25410,18985,-19893,20782,23898,28835,-18683,11808,-32253,-28307,-10022,15295,27817,10425,-8323,-10936,-16158,32011,-9465,-19720,13841,-20791,7198,20616,103,2316,12139,6532,13510,-9757,-18802,6093,-8847,-14013,7353,-28600,27771,-21826,28201,-28653,15897,-31123,-8524,-2180,-7369,12609,5703,29035,11096,-17447,30805,-12461,-8024,12743,-26486,7924,-16418,20131,10865,19121,-30302,4226,22409,774,-10905,-17962,-20779,10712,-31584,-3569,20665,-20458,-17485,-27210,-6179,-22194,28172,19410,29739,-27539,6640,12605,-21028,897,-19206,-810,-26307,-25115,-27190,-6961,19547,-24086,-11628,-29263,13031,4975,24237,-31642,-21364,-6053,-14517,26417,-31695,-22012,18686,25397,-17124,-23012,-2226,24311,-8706,20523,18981,-21190,-19057,23587,18753,-9309,-7836,-19118,-32630,-4050,-24605,10328,-2945,8676,19350,-2774,572,15937,27180,-17313,-7372,-28435,17507,3065,-12627,-28509,20582,-20872,25713,-9944,-12986,-22225,6002,-14909,17795,-9637,15567,20296,27806,-24220,6000,-24935,31355,16297,3747,-21440,25320,6432,17968,28050,-4808,6159,-23234,30193,-11111,2696,30929,-1249,9884,-22701,28559,-30992,29693,29693,28849,22928,14875,-2355,-27645,-28273,-10656,-12895,31913,-13757,17814,4307,31163,-19038,-8532,12274,-28717,30835,-19208,-1968,-5770,9751,31000,-20007,-7325,-14419,-16353,3500,13950,28083,-11313,9974,-24798,-26506,28528,-8759,15974,12362,-4098,-8500,5116,5663,22013,24260,13718,13931,30282,-11862,7501,-16194,-30282,-23998,3936,-28475,18710,-20644,28242,-11673,-5686,-25578,24023,10669,950,22608,5001,21954,8481,15763,-24160,-24903,25567,19889,-10977,14565,14389,-4582,7533,4076,-18737,5019,31399,16832,20876,-16609,-30653,-31869,1710,18042,18485,19857,-32348,7713,-20522,30396,-6627,-26174,26518,21982,6800,8690,32632,13984,2363,-27825,-20907,-30610,-19662,9045,-173,26044,4632,17445,-16053,-2489,16675,30814,-19372,9338,-16526,-31290,-1680,10392,28473,12583,-6599,-27185,-10990,-22689,25716,26897,-14290,-13352,31233,23878,-29194,3939,16914,-22126,-7324,2882,27725,-19241,-4360,7820,31457,12929,-31705,-11309,-19052,-15055,540,17197,-765,-6059,-25423,-14050,-16955,-13491,-31732,-7234,22883,9604,-17323,25855,11680,27002,16851,119,-31022,-16695,-1884,-23993,15220,5911,24521,24288,-9033,-24991,25107,-31839,-17177,-10440,14943,3939,17905,192,-6703,-31211,29990,-11603,27189,15266,5393,26265,11849,32071,29862,662,25561,-5771,-24475,11100,-8812,-9613,3873,10047,8579,-26457,1952,4340,-14502,-10663,7580,-30858,28027,-10330,-786,18223,-17788,-21900,1669,-24419,-28057,9609,25511,5684,-5045,-31256,21523,-12365,28779,-17159,21797,3350,12144,15804,-30837,-27483,-2515,12680,-1561,-27293,23267,4053,720,-25560,-20002,-135,16052,-17003,-2384,-26130,3878,27625,19479,20442,31001,-13424,-2601,-26583,30269,19912,9606,16329,-17736,-338,4614,6216,24328,-18205,-13945,-9855,3245,26909,-23267,-16550,11340,22680,-8883,-9565,25380,109,-22103,26777,-4010,10082,5887,-9300,-8671,-29053,-7235,31992,14594,-3788,-18310,9100,-3916,-23890,-4616,18518,-8320,26833,-32484,-8573,31764,-381,15712,-12039,-18985,-21664,1239,-29394,6815,-13391,-12848,-12274,-23565,-23691,-29232,2962,-9668,21781,20708,23109,-23265,-24223,4132,31808,-23275,-1994,-24043,-23766,22762,16789,-15802,2674,-17187,-9208,25113,-13579,7960,24380,14943,12153,-23608,-32110,-32392,1307,-2826,2076,-28821,27558,-14145,18577,4861,-13400,-16208,29717,-24,-30397,20474,-6962,-20064,-20214,-15586,-29704,3611,-5034,-14800,16134,-28356,-23456,-24962,-17516,26607,-18239,-6268,-5241,12944,-15470,6261,-1232,-11175,4799,18452,-31296,13613,-23473,-12971,-30506,14844,-19420,12368,4579,5361,25308,-426,-16714,28903,-21536,16643,6437,-1453,-14089,-31992,4500,30194,-21035,-1863,1085,-24906,-9774,-26271,7763,8244,21155,22038,-30988,-23949,-22190,556,-15015,-16460,16022,3920,2135,27526,5737,28806,-3941,-684,-28389,-20676,-31434,-15108,-22814,15628,-16435,25948,-11401,10668,-22989,21257,17033,13367,-13553,8378,-31933,13846,-22290,26164,2131,1727,23605,-7185,14127,-12667,22667,17996,-1593,-7952,10296,29711,-21624,-1165,32014,31498,-5430,-22652,-22199,31846,-13542,29234,21313,10837,25866,-26621,-13741,-13871,-29490,90,16603,-7476,-1225,25531,30434,-1937,-7282,-111,-21727,-29114,-14152,-21757,21628,23995,-28462,27192,-9245,24528,7025,5024,22602,6826,13832,-24801,-4867,-2498,-16724,15027,30394,-31946,7089,2217,25543,-22416,-25370,-20953,24877,10569,16321,10078,-24708,-9420,-22716,4245,25729,20241,-25499,-29093,-2424,11107,-25540,17893,-1936,31681,18434,-4072,-29142,-24885,19703,14621,32708,19385,-23489,26924,4956,20061,26721,1667,26406,-21150,4184,30252,22199,32674,26078,1688,-18975,28686,32558,-15543,-19626,-185,-13056,11749,-8059,-16306,18129,-25051,-14149,-25119,-12013,3870,-15421,-8211,-13385,-30890,24124,-28518,4761,-6651,-10350,-26289,-15194,5639,-21066,9177,23594,16661,-29589,-10884,-12377,859,-13672,-11211,5832,-340,3503,-11730,-19140,-7133,-31704,-27855,-7753,260,22020,-5615,-25384,168,-13367,4394,-13760,20198,11383,-11452,22103,7697,7154,-5956,-32528,-4136,-29199,10451,-15565,2223,5751,-22270,-25084,7998,-19536,-5267,-18960,-12166,21961,6403,10504,3472,-10469,-23316,10652,13099,-11268,-7322,-17371,-30012,-26450,-4902,7371,-22113,-32493,6109,30674,-11719,3528,32403,-12132,22135,2938,-28535,-30882,-2966,-32692,18600,-24008,30500,-9641,5521,-28182,-11695,-22238,9420,12084,-32581,-8090,-29872,-30829,-16696,-25969,-7987,-10269,-9326,18062,22980,-5336,-22407,29351,-25131,7799,-30384,-16958,2872,8725,-25667,26183,-4292,27805,27639,-28901,-19734,-8997,1435,30651,4374,7987,15508,25549,23497,19749,-15785,-843,27928,16492,-12755,-10067,-16437,26955,6407,14671,7491,-20189,8093,4506,20727,-18896,29263,3976,26018,9852,17252,-17538,32622,-19391,-11655,-32610,6404,20318,-7638,-11135,23955,427,28056,-32071,2120,-13933,7819,-5661,14061,-22314,26949,31453,-20359,23910,-8139,-24844,15108,7682,3619,27452,23476,-28092,-5848,28760,27817,-23574,27815,32616,17391,14543,1103,8313,-22502,-12249,20511,11452,-13774,7954,-16736,-3748,-1244,32073,-6775,-24474,-17942,-29562,-22782,16024,-25497,-26748,23370,-25624,-15313,21915,-27202,-30806,7577,-14873,-23273,-9473,4048,17791,-21952,-27328,2487,13731,-32570,-29502,14456,25723,30263,-15530,2900,-9427,25336,-17746,-10688,9546,-13449,-23322,-10205,-18011,-12812,23406,-11649,-7165,13619,-13099,-3280,-4594,-19266,31770,30877,10691,-17039,31185,-31375,-26226,27392,-23637,4562,30256,24808,7735,-21992,22036,30584,-14491,-22395,-32486,-11582,22191,-30317,-25888,-17335,-30168,27385,-8723,-31902,-22732,-18729,-24555,14376,-4258,9245,20774,15127,-29300,-12909,-31788,-30747,5634,-10742,20588,-24456,-27150,-27729,24146,30703,-3848,-17914,-646,25738,-23366,2161,29443,32520,-5976,-16955,28387,-12851,-7506,-18042,31355,-31998,-26004,17657,-16039,-8985,-12853,-32131,7086,-28191,-965,-3899,-12939,19270,23588,-26974,-32092,-20803,23890,18129,-30058,32202,-9953,31649,11282,-13080,-19189,24816,15716,28793,21487,-9018,-7172,32611,29639,22073,-2904,13138,28622,5190,7435,16639,7999,15077,18784,-21121,-7309,-32154,18400,15835,-23113,895,19294,26899,17444,25013,-7306,13671,14235,2623,-3669,13402,-22641,27015,10772,11340,15552,32693,17085,24131,-27043,2830,-1858,30318,8982,11227,-12708,-8613,19334,-29871,14684,11635,-589,19261,-17530,32168,-4821,29922,7148,11317,10242,13715,15773,-16084,-4923,27168,-7886,29971,23267,-32366,-19075,2194,14255,18374,-32416,22264,5875,-1553,-30460,-25884,-2893,-17751,13781,-4999,27251,23873,-4844,31245,23405,-8517,1557,7551,-14006,-27583,-17195,5963,-1357,2512,15761,27092,-657,30308,5634,18971,-16151,-6106,-3091,-9437,12892,23627,22651,15441,13841,-3859,19114,16729,21018,12193,-12583,-17324,-5696,23794,10299,-29553,-16923,-24191,12500,10867,14584,-13597,17334,13207,-24825,5867,27007,4411,22124,24768,15834,-25344,-26019,-30618,-27845,29512,19930,-31028,30133,10212,4540,-19895,3927,11038,-20677,-19416,16662,-5120,-10210,-32603,14006,4470,8378,1481}, } ; static void test_encode_1277xfreeze3_impl(long long impl) { unsigned char *s = test_encode_1277xfreeze3_s; unsigned char *x = test_encode_1277xfreeze3_x; unsigned char *s2 = test_encode_1277xfreeze3_s2; unsigned char *x2 = test_encode_1277xfreeze3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1277xfreeze3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277xfreeze3(impl); printf("encode_1277xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277xfreeze3_implementation(impl),ntruprime_dispatch_encode_1277xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277xfreeze3; printf("encode_1277xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_1277xfreeze3_implementation(),ntruprime_encode_1277xfreeze3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1277xfreeze3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1277xfreeze3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1277xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1277xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1277xfreeze3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1277xfreeze3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1277xfreeze3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277xfreeze3")) return; storage_encode_1277xfreeze3_s = callocplus(crypto_encode_STRBYTES); test_encode_1277xfreeze3_s = aligned(storage_encode_1277xfreeze3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1277xfreeze3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1277xfreeze3_x = aligned(storage_encode_1277xfreeze3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1277xfreeze3_s2 = callocplus(maxalloc); test_encode_1277xfreeze3_s2 = aligned(storage_encode_1277xfreeze3_s2,crypto_encode_STRBYTES); storage_encode_1277xfreeze3_x2 = callocplus(maxalloc); test_encode_1277xfreeze3_x2 = aligned(storage_encode_1277xfreeze3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1277xfreeze3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277xfreeze3();++impl) forked(test_encode_1277xfreeze3_impl,impl); ++test_encode_1277xfreeze3_s; ++test_encode_1277xfreeze3_x; ++test_encode_1277xfreeze3_s2; ++test_encode_1277xfreeze3_x2; } free(storage_encode_1277xfreeze3_x2); free(storage_encode_1277xfreeze3_s2); free(storage_encode_1277xfreeze3_x); free(storage_encode_1277xfreeze3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_1277xint16.c0000644000000000000000000021546114705505543023035 0ustar rootroot/* ----- encode/1277xint16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_1277xint16_checksums[] = { "d5348da2ff27262d66e755b86943578667e0356e52efc69e5f8ff7135cd8c5b2", "7076c2a55d93f7846a8a8a1fcadea82529d82a42e8bf6ef033d8b4974c8d8e7d", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_1277xint16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_1277xint16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_1277xint16_ITEMBYTES static void *storage_encode_1277xint16_s; static unsigned char *test_encode_1277xint16_s; static void *storage_encode_1277xint16_x; static unsigned char *test_encode_1277xint16_x; static void *storage_encode_1277xint16_s2; static unsigned char *test_encode_1277xint16_s2; static void *storage_encode_1277xint16_x2; static unsigned char *test_encode_1277xint16_x2; #define precomputed_encode_1277xint16_NUM 4 static const unsigned char precomputed_encode_1277xint16_s[precomputed_encode_1277xint16_NUM][crypto_encode_STRBYTES] = { {89,174,186,48,42,140,113,67,126,181,102,237,46,51,55,82,242,22,22,63,26,21,188,88,21,147,89,245,90,114,155,251,124,74,95,25,46,220,98,210,42,242,148,162,129,236,16,185,176,153,19,173,160,17,71,205,208,25,9,196,254,194,238,129,140,215,103,104,110,216,163,204,56,85,45,168,94,214,24,241,104,63,234,107,134,27,209,101,70,34,155,94,46,10,140,3,197,137,164,231,29,29,206,166,171,133,225,17,112,186,23,113,64,85,31,191,231,169,99,206,204,76,60,40,155,171,35,20,94,176,163,78,35,179,169,253,106,80,213,141,94,159,225,189,128,224,192,64,184,8,206,255,254,82,172,98,27,29,177,98,209,82,93,195,255,240,37,235,49,25,130,181,14,79,17,103,15,131,20,55,192,135,67,239,141,168,150,61,24,246,69,90,116,14,3,18,23,42,212,229,115,240,116,13,28,73,95,206,46,142,63,165,110,129,84,26,43,27,210,181,34,147,244,244,24,91,205,246,34,139,190,151,239,116,41,29,154,10,184,224,34,55,206,148,7,7,12,155,229,31,109,0,110,226,75,196,192,243,147,90,211,187,174,104,40,166,94,70,102,24,164,98,143,113,229,79,242,167,207,51,183,21,169,134,222,76,14,123,104,251,126,116,168,240,17,171,230,94,92,166,207,133,114,193,252,121,171,181,144,39,164,31,195,126,219,77,75,109,37,151,1,105,165,71,36,233,47,37,73,119,173,129,208,92,91,37,203,204,145,117,38,246,157,244,26,32,160,243,190,234,231,254,133,40,229,45,35,185,219,41,236,138,104,93,184,49,54,194,253,113,76,139,128,144,206,190,200,191,106,24,18,47,95,206,150,112,40,205,166,164,150,181,3,192,144,73,82,45,103,236,180,135,50,47,184,74,232,183,234,35,216,198,151,81,73,78,137,184,44,213,2,82,97,183,123,0,197,160,160,107,189,183,207,130,63,5,97,180,106,43,130,124,19,38,206,75,55,110,230,159,255,168,183,198,155,162,255,214,173,58,95,114,214,16,204,143,204,224,40,140,186,85,250,121,153,226,66,203,154,78,201,202,168,4,83,97,100,239,97,248,84,154,85,248,238,47,186,38,213,127,135,208,37,154,42,132,145,2,110,137,225,115,27,148,220,244,228,170,21,124,19,216,74,111,1,102,177,141,117,114,15,176,211,100,55,7,109,175,183,169,204,214,161,230,150,119,71,167,186,115,81,101,107,37,207,34,240,66,171,3,225,156,250,11,80,25,227,90,190,38,95,118,2,7,67,139,96,104,182,202,51,14,125,198,136,135,215,180,116,36,13,246,32,225,158,132,92,195,198,183,216,15,80,189,120,218,223,94,230,234,120,163,80,253,153,52,227,39,50,138,36,185,39,115,212,201,34,124,203,180,9,109,3,203,66,132,78,221,85,177,10,5,113,22,25,32,64,105,8,59,164,10,44,176,108,114,253,145,124,111,125,253,120,53,69,20,8,86,62,246,84,207,201,53,194,126,177,36,39,88,113,144,37,80,12,89,53,174,207,18,65,74,249,6,44,226,226,167,51,19,37,234,162,30,1,162,181,211,20,22,59,188,83,75,30,63,15,168,173,143,158,213,254,227,226,34,41,62,102,127,164,198,28,24,249,70,223,125,83,236,119,169,173,55,2,172,137,13,93,205,247,8,104,44,64,27,132,198,248,107,113,108,69,186,28,129,151,126,100,209,25,52,98,49,65,72,101,129,104,112,101,142,116,133,164,33,255,187,67,143,24,110,199,176,46,112,38,91,218,208,99,200,67,222,195,213,167,194,123,139,253,113,239,242,73,96,212,155,94,198,111,201,97,172,35,170,117,92,233,167,186,119,122,103,34,151,164,47,176,101,152,125,104,232,106,166,44,181,207,150,154,139,116,241,145,164,56,215,58,48,58,1,195,140,250,145,243,40,35,21,242,119,188,172,172,85,210,132,137,37,238,14,22,135,186,132,129,204,134,35,198,75,14,190,88,165,254,52,231,67,167,16,218,154,141,19,34,129,150,131,251,192,197,48,66,219,80,9,181,205,193,127,173,207,190,180,119,49,29,161,71,22,15,114,143,42,61,238,89,172,29,16,60,69,109,106,125,50,25,128,207,91,245,178,62,92,58,153,129,207,167,253,91,73,144,172,61,244,227,6,170,66,228,222,78,126,12,15,127,233,182,59,51,192,176,144,134,218,233,165,253,194,21,196,123,121,140,101,72,44,162,106,53,31,235,171,108,15,249,66,180,0,173,124,137,234,184,70,250,197,214,43,122,75,191,126,170,173,223,23,189,242,185,150,142,153,1,227,188,22,6,119,111,49,240,246,45,180,240,239,153,89,180,70,213,217,113,95,65,10,146,54,87,124,191,109,9,199,84,252,2,185,224,238,14,139,206,99,135,47,55,73,204,158,172,178,170,46,71,224,172,172,198,34,76,90,195,43,178,64,225,107,140,135,35,254,123,107,36,62,158,219,195,174,126,148,11,38,201,236,92,254,17,203,108,157,69,127,32,163,186,227,223,196,162,103,194,253,151,244,246,215,243,177,19,93,36,11,183,200,79,100,248,49,53,70,142,186,43,120,129,130,116,36,21,113,151,53,193,61,255,90,217,1,184,10,98,242,168,128,39,180,246,154,23,201,219,2,14,14,217,165,150,11,27,65,64,90,27,194,226,240,35,76,247,178,162,59,102,206,230,227,94,146,227,200,145,191,48,197,27,90,209,218,221,154,209,159,239,184,86,115,233,97,127,249,35,0,211,31,235,80,119,181,88,83,218,111,189,159,15,36,255,39,164,169,194,131,225,6,118,164,109,188,114,58,100,242,245,70,48,69,98,214,216,79,25,84,83,50,52,89,72,247,186,205,31,133,157,172,40,181,100,84,38,134,95,221,189,101,229,90,172,32,21,78,11,187,189,141,169,211,221,58,221,68,242,87,167,147,88,10,28,104,152,124,116,58,81,47,47,38,65,45,68,228,215,188,76,110,169,136,79,165,166,245,64,30,130,10,246,112,189,88,58,180,156,127,252,237,172,232,87,9,161,208,55,24,10,130,162,5,106,230,169,132,48,140,163,242,164,254,205,167,59,192,37,90,254,231,96,189,58,248,111,82,105,196,123,13,171,143,155,115,48,9,233,22,2,139,41,223,210,137,150,144,200,149,94,118,228,129,100,209,67,118,33,19,62,243,101,242,239,91,137,104,215,224,44,249,206,136,64,125,177,22,16,101,91,241,20,246,190,176,39,4,54,138,79,9,160,237,99,3,121,60,255,231,62,185,28,162,46,78,198,177,235,152,153,229,151,22,93,88,19,70,32,224,160,108,190,220,66,207,230,126,212,195,94,29,22,80,172,205,219,80,57,72,101,103,219,45,117,142,230,234,5,246,116,136,96,178,185,44,242,132,4,198,24,114,172,250,130,91,148,112,197,85,242,50,177,133,18,67,44,5,14,62,212,15,203,237,42,7,174,176,69,101,105,130,118,218,96,228,152,192,133,193,244,43,66,120,211,4,89,214,254,223,103,108,212,111,131,101,234,196,73,61,147,174,161,9,174,173,19,190,180,29,75,196,53,119,59,233,17,167,95,212,252,181,145,105,156,126,81,172,97,162,168,207,156,177,172,194,204,119,80,1,243,84,126,245,74,14,187,6,158,202,72,31,132,201,197,2,159,137,46,251,219,29,248,181,43,109,199,195,228,115,228,197,119,32,36,210,126,24,95,21,236,219,121,206,187,91,65,159,247,238,49,162,67,236,160,8,218,114,205,155,44,79,170,170,29,100,175,174,200,130,133,217,0,205,250,223,136,158,214,69,18,63,93,223,13,85,162,160,175,103,229,68,145,137,110,243,73,24,240,28,251,26,105,80,85,242,77,4,250,29,186,100,195,206,148,95,219,128,65,44,246,67,8,176,85,180,136,174,172,239,216,187,115,107,186,236,241,79,210,126,77,118,211,146,170,241,148,56,156,205,217,235,55,66,236,197,96,214,226,43,141,76,183,216,90,236,112,27,106,89,87,202,24,213,44,130,23,16,170,15,210,250,143,97,45,79,47,104,232,102,80,152,115,94,166,58,115,154,31,245,236,18,230,60,47,29,114,221,94,17,221,211,48,248,5,101,203,248,245,99,180,4,74,185,144,117,239,188,90,143,85,176,144,34,198,158,172,143,148,80,64,250,226,30,165,69,244,42,178,52,34,207,29,39,17,216,221,237,104,252,151,60,94,210,150,137,226,180,17,69,84,91,87,245,22,25,238,64,170,61,171,121,87,223,56,131,229,69,241,138,172,210,54,201,114,245,13,210,174,96,185,124,26,185,243,132,30,225,31,41,184,255,78,158,144,182,135,124,199,182,71,155,177,101,63,53,71,197,162,215,106,238,143,120,220,220,241,59,130,50,245,133,77,210,118,52,2,185,101,76,6,249,187,153,150,180,164,147,187,246,242,69,182,94,5,113,18,19,246,219,96,194,126,164,33,76,173,51,133,150,29,141,201,181,201,226,169,130,70,150,76,159,211,238,154,89,133,100,82,208,85,173,2,227,64,16,255,135,19,174,35,59,230,74,229,45,5,234,99,184,49,208,96,14,203,153,235,111,91,144,44,236,166,52,113,110,152,86,250,153,48,1,159,215,54,62,208,100,67,121,96,82,32,7,112,69,245,183,241,127,65,215,34,149,235,128,202,104,151,20,49,134,60,240,85,35,236,195,17,98,3,27,37,196,96,38,224,25,178,253,70,37,236,173,242,167,92,29,243,0,248,149,83,121,20,169,75,33,155,73,239,202,28,96,245,24,161,218,40,192,30,251,33,56,72,223,130,111,185,108,25,185,250,206,47,142,193,246,124,99,245,134,139,174,6,226,151,96,52,237,230,218,129,190,38,44,77,147,76,125,58,14,62,161,178,44,59,212,183,237,29,43,28,88,99,53,193,132,240,228,150,9,81,231,210,57,161,146,6,121,107,197,17,148,41,175,122,165,47,136,179,203,190,103,198,154,109,202,4,236,99,104,59,52,87,205,129,50,51,60,130,16,26,156,120,146,154,75,44,234,124,178,136,251,43,11,196,184,249,84,201,48,60,68,63,117,41,13,40,233,72,64,70,12,162,209,113,91,208,104,107,159,145,13,92,73,124,130,58,164,12,237,15,83,248,46,174,223,89,125,214,162,28,155,17,241,111,50,212,117,228,34,231,109,251,149,103,76,161,125,154,178,164,92,51,88,138,62,169,135,52,110,53,57,14,144,46,49,35,233,249,185,56,118,7,25,145,203,157,10,201,86,251,39,33,117,233,70,252,61,12,147,18,124,232,70,32,186,166,251,108,117,140,154,116,232,95,81,87,96,199,66,231,242,42,229,56,203,40,177,156,51,159,234,38,50,194,189,58,189,106,246,83,28,64,224,103,21,165,83,52,28,144,206,52,249,228,59,40,254,199,34,6,67,217,17,96,150,6,183,77,188,166,26,3,162,53,242,150,155,180,109,172,54,142,232,78,76,179,70,6,114,175,246,108,87,33,172,137,126,111,68,149,203,152,112,121,11,245,145,14,102,173,176,211,22,81,179,233,21,63,152,212,192,162,203,194,138,29,254,14,196,235,28,140,45,252,151,126,11,199,170,44,118,135,25,25,17,50,195,204,187,190,112,125,97,37,28,44,123,81,2,163,22,164,230,103,124,38,138,186,155,85,234,226,54,29,253,128,240,41,67,8,193,92,235}, {243,230,112,245,251,23,72,160,151,11,106,24,104,0,43,238,136,194,104,48,145,48,253,236,177,250,17,188,252,56,16,180,19,138,72,104,77,221,147,13,93,171,157,163,2,7,253,175,59,203,215,165,50,15,52,30,138,25,186,23,12,27,112,23,27,83,29,140,91,84,143,36,97,113,136,189,126,44,245,52,21,69,52,57,215,110,239,201,4,229,63,254,74,239,27,55,218,82,0,27,249,58,12,52,152,218,198,165,124,184,108,214,12,68,180,157,29,229,226,43,191,151,204,172,252,24,202,74,16,33,136,217,62,55,33,27,248,251,250,157,54,182,198,61,233,99,70,69,143,157,139,27,125,186,194,171,2,57,161,197,46,120,17,64,221,114,91,183,114,93,116,175,72,137,151,110,62,133,54,212,172,248,144,220,73,153,157,45,254,217,164,136,153,87,111,107,245,162,143,129,168,122,173,22,107,64,134,74,62,127,120,197,238,23,226,228,220,122,220,207,214,45,33,226,76,220,115,103,9,67,120,202,167,93,39,241,187,156,15,84,148,34,86,78,52,90,134,30,51,172,0,19,131,60,76,131,51,105,103,181,109,176,152,65,20,81,221,49,169,95,54,54,80,27,62,141,214,161,89,174,186,131,150,40,98,155,246,82,181,42,29,194,155,210,58,37,108,66,146,213,29,29,110,17,50,124,43,241,76,243,44,160,6,12,240,72,82,252,26,103,13,199,202,68,196,250,101,240,163,42,96,209,41,13,19,182,200,41,91,102,58,35,118,203,11,200,140,209,196,114,75,140,163,147,63,27,21,29,201,31,113,230,131,116,181,150,94,51,42,183,251,175,194,119,12,63,104,36,238,141,96,186,186,72,3,145,199,174,142,76,144,171,99,104,89,70,254,109,224,236,128,14,120,191,141,141,61,157,108,30,242,50,101,229,4,167,111,215,192,28,224,189,119,3,118,24,24,103,209,199,203,182,99,72,191,159,163,105,57,206,40,204,14,59,16,23,30,96,254,7,183,186,96,13,31,147,169,120,197,79,166,30,45,50,90,63,62,83,80,217,121,115,181,35,102,152,204,25,208,102,44,66,125,28,99,157,79,18,180,161,84,160,237,229,177,46,87,84,196,91,28,215,136,225,193,192,144,4,38,111,207,4,8,64,172,247,30,246,134,255,54,42,121,232,145,11,253,152,238,99,194,228,114,15,235,63,201,62,183,251,236,20,35,62,228,57,153,253,7,0,66,27,157,178,54,8,161,138,50,62,175,167,55,200,55,134,49,66,116,235,9,100,93,127,39,34,193,23,99,76,75,22,237,93,223,48,122,47,206,232,188,235,97,22,68,118,92,236,23,247,183,222,191,145,51,212,4,10,13,225,2,79,0,174,77,53,97,174,149,19,104,120,247,72,115,127,82,123,196,76,181,239,219,77,17,77,203,145,171,157,147,106,198,90,110,189,169,246,124,233,56,120,24,167,128,79,134,202,45,220,225,29,39,85,165,15,42,107,22,82,67,230,66,204,156,16,218,239,246,242,248,224,226,179,134,154,223,202,94,227,99,73,244,44,87,212,179,233,247,170,216,36,133,198,165,138,51,13,242,175,192,241,165,48,92,94,117,0,14,225,211,205,241,105,206,146,128,148,223,194,112,89,111,244,251,66,196,225,233,46,162,212,203,185,148,173,211,158,65,234,212,82,53,67,116,156,211,127,17,156,17,156,140,97,8,104,46,226,126,228,24,72,156,17,5,169,127,190,111,181,248,238,81,122,61,217,109,136,224,65,160,210,254,33,118,192,225,110,197,21,18,163,61,215,15,224,169,78,150,243,160,92,48,88,57,168,147,73,129,132,20,187,150,65,71,25,163,21,169,154,93,213,6,59,98,56,60,8,6,184,159,74,215,122,254,138,70,112,4,26,109,5,23,8,136,248,130,196,16,62,5,33,173,74,225,204,167,246,173,67,191,107,159,92,147,187,187,200,86,173,247,35,122,185,129,107,179,42,81,61,112,145,155,141,235,254,14,116,124,200,56,247,78,67,37,54,47,252,34,202,13,153,185,241,69,150,169,72,52,148,142,87,28,113,199,113,8,246,66,199,65,2,93,90,54,182,102,59,65,154,245,93,182,215,58,177,182,226,111,165,144,242,57,115,241,131,73,237,27,131,159,61,124,181,70,18,230,79,139,139,169,49,13,0,96,215,193,137,33,175,227,77,153,213,147,245,81,163,17,156,122,124,26,72,161,10,53,208,82,38,11,233,203,221,63,222,240,50,221,223,225,52,9,9,102,64,102,178,126,65,205,126,48,123,63,63,226,98,34,14,27,8,252,13,19,63,85,170,144,202,88,129,187,25,59,79,132,72,169,115,54,173,131,175,18,239,156,233,113,122,217,8,35,248,5,132,227,85,26,101,152,121,122,171,41,84,57,163,210,28,3,12,192,77,122,23,249,50,92,218,77,208,167,138,121,218,153,255,148,40,67,195,30,57,62,172,6,202,42,157,37,65,133,248,25,238,119,143,209,105,222,17,114,162,106,95,230,208,201,52,201,147,27,20,153,244,37,124,224,112,71,94,142,238,92,180,125,149,212,156,177,249,195,172,22,85,20,3,244,130,177,232,252,83,6,107,116,15,87,80,253,143,218,213,2,230,131,98,242,6,197,91,170,178,200,217,119,3,70,66,213,148,58,157,214,87,167,121,186,22,136,165,138,142,108,100,144,178,124,3,149,244,99,91,185,123,145,24,149,89,164,70,95,126,254,86,167,73,73,81,174,22,19,65,52,199,146,195,206,4,215,192,117,233,111,110,2,108,131,247,54,126,146,202,157,19,77,186,48,138,2,103,145,81,220,216,84,158,204,47,49,25,82,128,205,134,43,199,128,10,176,184,212,210,220,96,162,230,232,192,166,112,230,118,207,60,174,160,87,195,51,61,55,18,115,71,169,6,5,46,227,239,23,195,51,2,162,25,117,251,168,254,157,92,221,234,125,168,255,128,54,139,218,61,33,245,104,192,136,139,178,30,197,219,17,93,41,93,144,79,56,74,12,107,49,66,53,22,170,168,177,203,36,120,18,32,136,123,232,255,116,74,251,210,120,12,74,165,164,252,239,63,80,18,106,118,161,238,112,156,68,34,211,142,177,16,151,251,83,94,108,75,169,213,50,58,89,198,249,26,143,149,74,32,115,235,36,206,248,22,172,131,218,59,254,236,34,179,21,68,130,184,55,40,136,167,148,40,135,219,231,18,220,215,242,139,235,191,1,65,7,199,109,45,219,40,220,56,203,30,41,32,148,65,12,191,103,7,116,70,240,103,39,80,130,199,88,49,232,98,13,233,42,190,151,103,18,5,116,201,96,27,165,103,110,26,66,228,132,53,239,102,120,19,188,167,213,233,49,121,20,253,188,83,177,157,93,11,1,117,251,236,39,92,243,191,203,239,44,153,12,144,191,147,175,76,46,130,173,47,206,195,208,15,75,60,114,51,62,205,130,84,37,52,54,127,247,164,212,123,33,59,206,23,227,201,201,64,251,74,80,190,139,55,105,53,188,7,33,202,75,148,137,154,122,6,235,203,222,194,171,241,243,1,204,102,252,116,3,219,86,210,254,94,158,235,244,188,102,211,117,90,131,19,21,31,208,154,130,177,137,150,248,185,216,125,243,251,28,22,183,137,188,242,10,150,33,92,224,156,221,55,231,253,236,142,58,119,100,34,95,85,23,234,91,55,30,69,115,189,130,21,44,249,57,174,83,3,155,65,164,171,238,27,139,3,243,112,230,46,206,122,5,138,16,145,94,234,131,18,48,6,210,62,79,240,243,21,71,187,100,18,201,246,223,174,132,63,181,141,246,174,5,110,60,60,143,203,87,59,37,146,163,98,92,253,172,125,11,3,96,123,121,26,4,138,110,146,180,214,98,129,186,251,2,212,98,195,149,212,171,197,143,241,229,197,99,213,199,63,81,252,86,46,111,177,79,67,70,175,13,237,166,179,240,173,40,146,41,207,188,237,242,12,185,175,160,107,254,217,53,203,111,169,1,232,210,82,139,166,48,67,216,105,63,233,229,227,193,221,85,122,25,236,16,234,66,114,186,157,27,15,243,148,248,156,137,204,149,58,206,111,94,195,68,54,3,133,178,174,39,121,114,109,29,169,14,98,160,223,94,73,42,248,39,30,64,248,149,77,92,223,229,19,142,9,124,33,90,197,80,39,155,8,33,68,5,56,112,8,211,147,247,226,136,0,167,208,7,79,2,66,160,158,100,56,155,168,236,115,48,50,71,83,137,245,220,49,185,51,170,245,238,2,25,170,209,189,195,84,211,138,248,22,113,251,31,106,36,184,235,59,106,68,247,230,247,217,131,17,253,51,239,71,214,113,48,159,43,3,101,146,180,156,138,42,91,98,83,2,206,179,151,233,75,210,232,19,30,120,27,214,176,245,95,27,203,119,136,167,144,238,135,122,76,163,251,36,190,122,66,205,137,57,110,109,222,249,76,122,185,226,125,71,73,125,48,127,69,131,225,188,216,193,62,116,36,162,92,176,242,249,10,195,88,204,218,75,45,43,17,19,6,106,211,63,240,9,13,207,84,12,244,139,201,214,172,38,34,217,251,73,105,22,117,49,128,34,78,8,224,162,252,207,251,95,121,182,151,2,9,177,245,247,213,241,132,222,100,188,213,172,36,176,246,52,237,153,107,231,134,14,142,29,143,233,248,13,190,214,162,163,232,73,214,37,104,205,101,242,232,83,178,51,97,111,99,95,147,229,138,154,65,24,121,97,38,247,9,90,162,233,50,255,13,14,2,143,38,48,243,97,222,75,251,182,77,8,65,29,5,45,180,15,150,249,142,209,163,84,218,142,187,80,189,254,209,207,232,1,240,126,56,214,131,196,139,163,222,65,26,87,87,215,7,37,14,180,3,168,80,118,61,229,173,23,61,25,109,174,170,154,235,195,99,174,201,143,118,37,248,199,130,75,116,71,234,204,17,95,153,247,3,209,25,30,206,91,145,146,46,173,122,101,236,25,67,27,181,108,124,79,136,100,169,13,28,36,106,136,27,10,230,19,173,236,247,17,130,51,103,15,207,142,29,44,118,44,220,164,76,24,84,68,252,221,0,148,142,73,131,118,176,236,79,185,205,133,15,95,232,28,142,232,126,226,139,202,9,84,132,163,228,179,111,40,125,179,213,1,10,110,214,242,134,238,251,49,238,62,108,195,225,56,16,81,182,120,145,144,247,117,187,77,234,8,145,130,25,249,120,41,51,118,166,170,20,166,253,169,149,169,52,110,238,40,106,25,105,83,61,217,247,47,26,162,20,184,169,26,108,51,140,14,160,85,216,192,227,67,106,166,52,183,129,82,245,126,38,153,228,243,169,72,106,183,16,164,143,188,173,249,11,75,41,22,3,165,199,139,126,66,114,105,149,106,150,238,165,121,22,129,190,236,5,207,174,121,232,117,213,75,4,8,221,138,160,191,123,10,79,241,47,172,95,157,13,244,195,94,100,140,153,178,18,59,190,77,94,112,100,12,67,6,133,138,16,64,207,67,51,199,140,255,132,166,45,218,62,92,241,212,152,23,240,136,72,116,179,198,119,82,249,184,192,220,153,119,44,168,82,29,0,188,203,176,84,22,247,185,95,16,116,86,56,124,238,172,110,248,231,246,118,45,105,124,62,85,163,245,67,240,21,238,38,182,44,102,223,16,111,185,4,55,130,70,87,198,71,252,66,30,252,239}, {223,127,95,111,147,79,212,179,197,41,31,175,1,0,92,68,40,119,42,65,133,61,146,46,94,65,112,56,206,20,214,112,70,49,115,131,115,100,145,242,52,249,72,114,155,150,187,28,166,119,179,65,167,59,60,117,225,85,230,235,244,191,6,14,127,73,147,223,207,116,105,66,2,129,150,184,6,74,103,38,250,27,19,254,14,11,91,84,111,234,200,177,8,37,172,105,45,202,132,98,226,182,210,250,107,237,246,120,136,123,6,253,108,187,45,193,0,45,234,115,70,196,49,183,244,51,69,86,127,211,148,241,227,76,243,230,147,143,90,81,91,68,239,137,84,135,132,10,25,238,81,183,102,214,134,131,96,179,181,107,10,133,147,135,214,80,41,201,114,251,185,23,3,86,65,72,52,124,146,231,40,52,189,14,122,180,104,178,173,37,13,69,18,112,99,40,74,142,91,30,235,39,189,13,4,83,77,116,24,56,186,1,54,63,164,141,126,9,94,121,8,15,78,21,85,132,163,16,5,217,16,159,180,61,148,188,69,178,174,226,254,36,170,107,244,21,168,24,0,78,69,198,147,56,144,36,180,188,182,139,159,19,137,1,233,129,80,134,89,88,200,138,69,104,228,207,16,248,84,21,129,86,42,65,136,114,153,167,161,170,174,63,147,157,207,238,145,201,88,186,34,172,183,93,168,144,81,102,67,10,219,89,83,219,252,140,198,24,65,5,119,101,138,58,93,17,103,231,145,52,182,86,66,129,122,242,144,70,196,210,157,222,166,139,220,159,54,50,123,158,232,13,101,243,212,60,182,200,253,226,69,202,174,8,192,235,68,100,140,225,227,215,174,217,27,43,28,32,16,38,229,39,199,106,19,22,41,246,254,105,194,19,170,97,106,28,42,159,106,151,183,229,186,144,199,16,140,43,33,243,96,231,12,168,228,94,106,170,153,113,252,85,94,24,22,127,151,24,33,103,26,85,231,142,149,252,186,168,100,255,154,91,148,104,81,64,100,49,245,56,135,77,188,11,169,158,181,235,241,42,171,141,102,172,45,11,145,104,135,111,251,44,87,26,245,22,225,61,184,155,103,106,9,6,106,96,236,85,219,96,193,139,206,70,178,99,6,61,178,77,232,122,199,63,10,217,26,141,145,201,231,82,174,88,17,15,122,243,14,96,217,74,9,60,41,170,120,184,66,67,253,229,73,82,1,9,61,85,165,137,225,185,170,199,119,73,116,166,246,190,207,23,188,172,69,203,120,212,134,127,114,16,145,199,33,244,131,186,153,73,58,108,127,19,34,51,190,96,61,132,200,94,148,204,38,27,14,103,154,39,28,109,158,205,236,86,94,119,2,50,88,100,106,114,205,84,166,188,13,125,235,29,238,1,97,222,202,245,211,64,115,50,94,22,237,53,61,212,167,78,118,54,170,68,158,240,175,204,222,211,232,200,191,102,40,222,38,41,96,168,103,145,224,79,225,88,56,110,72,50,181,58,121,250,183,80,125,252,200,5,233,221,178,48,34,44,232,50,251,205,74,50,2,189,5,46,149,67,227,125,255,135,71,120,72,198,124,108,241,39,203,57,139,240,217,170,33,159,169,236,81,136,227,219,252,108,211,123,87,119,192,91,4,7,207,1,178,201,211,106,230,187,212,78,63,220,59,218,217,169,214,81,195,181,112,56,234,14,85,135,72,13,228,228,155,217,30,148,28,251,195,236,54,127,116,201,207,11,235,23,97,84,109,41,49,4,125,26,253,59,202,125,168,146,117,252,44,62,17,101,21,78,51,177,28,208,163,92,30,127,35,10,188,38,219,145,38,139,144,42,51,231,204,228,252,101,61,200,26,179,236,74,20,18,234,189,181,203,87,31,120,197,33,121,173,148,29,136,30,115,221,78,250,209,182,52,173,116,185,157,37,115,9,125,202,153,112,174,35,249,168,143,16,158,209,149,131,182,193,116,87,140,230,187,23,253,198,65,83,29,40,141,109,92,85,223,73,247,131,219,229,97,231,110,189,85,95,178,22,99,72,226,193,30,251,13,114,242,29,180,139,117,89,178,130,136,95,206,183,31,51,61,11,12,146,219,255,71,142,87,141,156,115,214,235,204,27,30,189,100,59,102,248,66,83,164,66,115,35,69,224,153,142,142,82,233,48,23,143,202,3,209,58,172,121,146,40,72,149,127,11,51,133,32,255,102,39,195,119,55,175,185,140,184,5,12,244,101,115,221,5,111,241,103,66,165,146,69,33,145,156,113,101,46,128,66,206,157,191,29,126,236,202,154,99,64,147,124,210,152,149,35,86,171,99,168,157,186,209,221,209,240,97,47,167,124,159,73,93,245,86,220,171,27,71,161,30,168,84,82,253,122,131,225,76,186,59,59,218,43,36,237,19,144,115,231,9,232,38,71,68,59,150,92,186,56,37,149,34,167,245,11,129,206,138,164,76,202,170,1,90,18,101,75,21,179,14,93,19,158,195,97,72,113,230,81,72,124,162,29,145,17,219,177,144,54,218,81,76,175,123,105,127,155,109,253,108,197,133,52,158,21,1,56,142,59,53,2,50,88,225,204,185,180,94,242,241,130,40,225,24,148,41,158,97,118,188,69,54,193,82,137,200,219,209,151,173,77,72,207,218,106,226,77,152,7,193,24,112,109,173,29,166,120,36,113,35,252,184,206,53,84,197,82,217,211,142,227,72,87,150,26,110,219,149,179,97,128,228,19,88,227,77,102,155,172,81,177,237,111,107,106,161,220,101,203,208,155,85,239,116,174,26,150,147,246,145,194,99,192,87,99,191,104,83,153,103,176,33,161,56,235,145,164,124,26,99,172,238,190,165,234,208,84,250,25,229,176,20,231,54,102,14,190,121,210,47,83,143,186,59,213,48,118,234,252,223,231,195,184,176,93,215,140,184,253,29,122,173,40,208,202,211,190,217,125,82,254,198,5,162,66,146,229,211,62,243,238,222,119,0,94,178,182,56,67,10,3,175,38,233,177,74,191,237,170,181,106,23,121,187,31,184,48,215,6,10,56,168,70,211,232,236,77,21,82,115,126,227,240,171,192,42,80,161,231,255,44,214,51,58,241,102,64,239,218,8,98,233,179,166,7,149,151,96,69,16,96,90,85,219,115,89,235,115,154,191,123,1,158,28,169,142,224,54,233,7,28,5,241,238,196,31,33,50,138,75,111,238,192,1,175,146,113,47,217,63,153,78,57,133,104,227,75,14,193,166,248,197,204,87,191,236,133,19,188,239,127,106,220,151,116,175,79,112,53,153,181,79,197,74,211,205,239,39,138,33,56,148,39,243,204,217,242,192,51,107,16,101,249,58,235,29,221,160,67,76,145,202,47,102,5,147,250,98,76,197,131,235,70,159,26,88,152,114,228,182,246,1,198,218,22,233,178,148,133,137,64,59,189,111,69,219,5,62,185,29,238,169,191,87,192,62,29,237,119,124,21,7,56,221,129,168,201,144,213,97,11,135,6,41,61,197,47,82,231,134,190,116,245,63,203,87,73,203,61,107,239,25,228,223,170,127,43,129,72,77,214,39,190,228,232,219,58,91,192,48,126,122,227,117,223,17,182,46,93,126,122,84,191,241,124,76,90,10,164,155,1,174,200,245,50,50,53,145,41,92,201,236,21,3,192,33,8,146,142,51,225,97,198,132,182,122,194,254,88,73,35,41,133,142,164,243,44,68,68,175,211,224,206,196,19,240,66,157,30,218,27,189,25,93,19,62,219,135,198,234,9,125,217,144,25,113,212,153,4,65,176,109,124,115,30,170,242,215,181,118,248,52,182,177,207,228,12,74,235,145,157,110,85,81,17,225,232,239,76,162,135,8,97,173,20,77,29,236,113,127,54,191,125,72,202,192,194,24,7,46,113,194,90,66,180,28,194,58,82,75,129,165,67,208,62,93,93,92,86,83,111,112,113,206,243,123,46,44,219,29,194,136,189,43,26,177,75,47,84,154,254,27,174,208,203,145,118,28,225,151,76,15,253,84,134,201,85,205,176,208,108,99,47,218,117,228,132,66,19,102,195,203,226,65,35,115,129,25,113,49,204,216,242,48,190,18,111,214,63,215,176,9,44,110,112,186,140,201,28,198,212,16,43,185,68,8,172,171,66,30,110,9,199,4,100,58,236,151,136,22,217,11,236,91,17,135,98,152,130,100,70,219,65,103,205,190,23,2,147,93,193,213,172,248,204,133,156,8,134,237,169,220,110,223,47,152,72,143,220,205,217,140,62,188,167,20,1,57,145,238,7,3,183,125,206,99,129,14,45,127,67,254,34,30,159,238,111,21,31,18,140,86,201,153,168,201,212,123,197,214,146,52,176,46,200,116,180,161,98,27,142,67,140,213,109,244,44,197,30,38,173,43,19,188,132,52,212,51,20,101,113,206,84,156,67,6,22,166,105,157,63,39,40,56,7,68,106,64,249,117,174,99,119,216,24,170,7,207,74,88,132,8,131,26,238,5,249,101,144,165,0,161,153,185,138,128,149,58,75,84,197,89,157,201,27,59,65,13,233,98,75,86,144,19,247,38,135,46,161,37,24,249,24,129,73,71,84,96,209,88,91,185,231,141,25,10,200,222,79,86,90,34,16,15,49,123,217,205,182,30,73,118,149,174,59,25,114,210,94,227,3,199,155,29,63,243,126,104,135,12,148,197,228,97,33,247,216,99,249,51,51,245,255,44,43,162,167,32,223,197,242,27,193,118,224,2,214,178,72,116,205,111,169,65,156,134,81,58,208,213,247,76,175,90,86,53,170,204,174,28,55,166,163,192,48,70,215,7,210,53,194,39,51,103,208,53,61,244,22,139,58,215,230,216,36,246,187,138,93,230,60,141,203,111,236,20,45,147,154,215,49,175,48,119,145,104,255,24,103,166,104,212,196,95,4,32,107,140,117,44,91,190,100,12,12,26,20,76,220,218,121,147,10,190,223,241,138,6,38,234,214,12,29,1,229,65,164,11,39,186,28,152,62,44,224,82,66,199,211,112,221,237,102,152,8,142,109,39,33,255,47,133,41,43,76,118,9,15,55,86,246,170,137,150,195,126,125,241,77,11,116,116,219,128,239,1,226,118,63,46,17,138,142,24,24,241,245,120,245,181,72,199,160,92,173,15,227,110,76,228,171,204,49,48,154,243,169,54,122,167,0,60,47,58,127,89,184,3,89,18,126,101,5,116,158,99,14,87,68,19,103,34,127,214,74,252,186,241,163,143,241,118,242,230,161,62,26,48,183,101,90,52,115,218,17,252,220,232,61,6,65,201,36,100,96,249,203,220,247,100,242,110,27,109,105,38,222,43,251,91,139,185,20,83,49,121,255,133,77,202,86,197,199,112,26,72,232,86,13,194,5,226,209,193,26,187,134,10,194,41,17,111,81,41,45,218,101,69,114,216,79,19,111,74,123,253,96,139,61,80,113,29,224,216,47,110,191,165,142,67,41,202,167,109,99,8,101,153,45,243,181,219,132,134,98,245,126,106,103,243,44,175,250,104,87,151,201,5,21,40,69,1,89,84,44,48,144,172,148,137,97,214,182,37,157,234,79,185,139,172,219,115,137,199,148,166,105,151,111,224,74,152,91,62,138,24,113,154,142,67,26,118,37,245,113,208,206,152,87,169,54,181,217,226,121,190,43,96,124,177,167,190,202,88,160,92,188,16,43,63,144,45,16,103,68,107,76,217,135,216,31,126,106,10,66,98,4,204,133,146,249,205,220,96,78,7,87}, {11,13,245,165,146,102,213,12,79,164,210,208,86,195,181,167,100,61,231,9,111,178,238,205,147,234,248,94,111,190,28,116,135,143,205,99,20,144,213,74,174,55,75,167,154,86,134,0,16,14,135,117,240,235,14,13,84,150,244,170,35,110,240,34,50,105,15,88,205,52,251,56,175,75,218,38,212,32,73,104,71,102,143,144,158,193,41,0,47,7,161,15,231,248,155,181,116,48,196,168,150,61,127,176,68,171,222,244,254,11,158,214,80,63,204,116,5,148,133,246,38,134,226,73,162,26,254,187,187,86,6,70,143,214,219,82,41,3,242,194,139,247,202,111,22,120,150,136,253,34,24,246,158,250,45,220,250,212,86,54,223,203,240,115,138,253,115,8,55,247,246,82,32,34,58,241,126,89,104,78,116,233,199,112,6,57,193,118,140,19,143,88,238,232,174,39,55,221,211,59,80,175,222,166,48,40,247,137,98,200,209,172,200,104,1,213,113,243,196,218,154,146,200,84,59,131,242,191,54,138,12,126,123,154,254,143,239,152,20,165,146,137,28,191,34,69,153,201,110,219,72,199,7,211,119,37,82,253,157,21,183,249,179,158,88,204,75,92,165,133,13,93,97,21,176,151,242,217,185,198,255,8,103,161,229,34,179,8,144,4,45,99,131,230,198,2,240,48,215,60,0,173,50,19,139,104,68,251,58,73,71,212,18,210,225,74,62,96,117,239,140,98,16,219,61,161,241,82,41,105,135,152,51,75,164,66,62,71,127,18,95,108,118,154,109,61,77,61,253,194,182,35,130,66,139,171,210,164,219,237,3,127,116,171,206,46,253,197,61,83,44,132,247,109,182,183,38,149,243,193,133,208,115,136,157,121,201,43,14,149,7,10,109,148,9,219,146,219,239,160,217,209,184,222,217,22,165,185,235,20,216,240,26,109,205,21,15,215,44,123,169,82,204,183,219,121,203,200,163,235,140,68,17,238,88,15,119,115,24,165,182,120,252,80,161,227,189,155,245,17,248,170,136,205,70,154,238,229,76,255,129,47,200,114,61,171,59,86,38,199,54,175,197,12,26,105,71,190,76,143,82,243,218,82,105,116,19,187,25,95,171,140,115,61,1,243,147,36,212,250,147,227,62,64,172,241,59,118,87,17,55,17,61,237,1,122,108,53,218,211,244,23,27,105,36,11,248,229,33,193,60,134,20,104,39,148,212,28,243,170,32,56,220,185,241,160,97,135,63,109,56,248,49,238,28,12,27,86,249,55,135,19,27,40,26,44,3,75,125,31,227,61,118,144,217,41,169,18,74,132,186,172,142,90,10,141,80,38,131,52,165,26,69,59,165,20,220,89,126,204,254,155,172,19,181,57,44,130,53,38,19,147,247,149,181,71,50,141,246,115,221,23,155,1,109,14,205,57,78,149,208,129,5,205,6,250,176,200,170,218,253,76,160,16,70,160,79,57,218,36,102,121,226,116,156,193,191,106,249,55,225,101,131,64,245,18,252,210,7,200,171,17,135,14,198,229,52,136,255,213,201,8,188,38,96,8,12,143,89,80,213,7,30,223,65,51,234,99,83,32,135,15,64,76,21,90,221,2,13,21,176,206,108,2,7,165,93,231,35,12,196,125,125,166,164,38,35,71,246,94,40,118,176,81,170,97,181,220,169,237,41,194,73,230,49,72,197,3,13,222,28,8,150,14,156,170,153,97,64,183,71,120,168,52,255,247,39,229,27,183,27,57,172,239,189,180,234,220,217,58,99,133,119,184,243,246,121,138,204,47,15,207,123,29,151,167,134,188,111,246,82,177,41,127,171,135,249,109,30,255,156,65,241,209,138,88,15,52,62,23,194,6,52,150,18,144,12,17,85,22,125,249,52,37,243,98,209,33,26,145,236,119,23,233,91,116,200,254,0,252,116,100,2,126,220,119,69,90,32,87,227,219,159,180,77,164,32,213,129,175,95,27,51,64,55,232,31,68,16,222,214,40,206,255,7,47,9,207,214,77,2,70,80,215,78,141,50,132,187,232,133,106,18,159,143,1,45,226,178,196,74,151,0,1,176,132,110,201,18,74,143,104,60,126,237,101,141,115,90,16,50,58,82,104,51,193,212,106,213,132,180,96,24,233,144,181,203,246,214,159,172,97,17,28,27,196,116,57,143,38,112,198,228,137,105,162,205,174,196,158,123,26,11,83,61,210,190,2,93,21,38,22,29,185,222,92,100,0,208,141,0,110,43,249,15,15,187,235,208,46,47,17,126,98,144,253,202,163,86,53,191,40,82,245,98,29,119,117,31,233,65,28,196,247,31,168,213,181,202,32,87,188,187,116,246,241,31,91,202,225,54,96,224,250,66,88,209,153,80,126,163,48,145,30,246,249,165,78,2,180,123,149,126,34,135,33,139,154,211,44,232,204,164,145,85,238,200,58,245,178,70,23,24,36,75,136,45,147,29,181,76,164,142,254,52,112,42,92,0,88,244,4,130,228,74,18,65,114,232,223,221,101,66,112,57,46,215,167,137,9,123,141,208,100,201,142,236,168,229,43,149,160,226,101,176,40,29,218,28,246,202,230,36,184,201,234,56,110,111,166,92,109,110,66,56,247,134,241,156,137,178,200,73,169,140,3,210,192,177,130,251,236,208,0,18,82,71,232,242,79,7,108,82,157,62,34,82,131,35,56,208,184,111,216,171,9,119,121,201,124,218,172,125,146,77,147,101,161,135,148,5,90,184,101,61,58,161,71,244,120,1,106,2,219,12,60,121,44,77,243,4,47,85,3,123,17,130,95,16,38,37,135,119,90,93,209,156,109,123,111,215,25,168,252,28,103,242,186,88,49,130,216,210,78,238,88,204,202,254,195,176,66,194,119,216,229,55,202,75,204,245,28,210,5,53,141,235,70,208,38,218,39,27,222,43,86,153,176,149,128,133,240,241,222,135,199,127,238,210,25,176,61,219,227,45,54,221,121,95,230,11,146,158,75,244,229,92,87,58,130,90,192,137,130,183,104,27,228,158,34,105,160,89,228,8,84,62,45,107,64,155,248,179,45,154,168,120,182,156,76,146,3,89,110,223,35,166,167,218,134,172,120,155,185,10,238,189,220,128,91,147,69,100,142,230,1,135,168,111,252,197,24,155,77,61,40,100,123,187,116,104,40,140,77,11,218,125,155,110,75,227,73,7,78,21,127,122,212,178,34,28,130,62,54,42,95,19,34,84,158,110,43,233,112,228,254,243,28,63,234,60,69,49,164,108,100,30,131,176,242,254,49,94,67,177,18,155,142,24,212,9,153,12,167,146,200,118,210,67,219,30,218,169,16,42,49,162,54,151,139,248,20,251,247,15,65,19,3,217,254,20,245,96,0,231,132,96,248,203,10,24,69,119,182,133,127,245,229,252,255,32,100,243,127,51,202,147,211,60,249,17,132,93,237,70,195,242,31,208,96,245,46,29,168,201,236,189,37,128,44,30,88,111,171,4,202,173,180,197,206,147,157,123,177,60,66,146,141,12,254,34,252,236,49,94,133,2,8,78,178,143,227,76,131,227,199,210,5,10,204,181,78,57,194,232,89,240,118,15,234,236,4,86,219,103,146,137,245,149,126,140,97,243,134,5,181,19,103,88,114,128,239,53,15,159,96,176,7,236,25,254,39,8,13,169,118,26,38,52,214,57,137,178,49,47,184,150,23,196,80,219,250,15,215,54,6,105,15,101,115,128,60,191,0,88,122,249,88,230,165,14,128,255,173,58,225,30,211,104,108,157,65,50,29,245,38,121,53,231,191,125,146,238,239,88,91,199,230,230,9,104,80,142,29,224,255,5,72,79,127,28,110,251,232,207,34,37,248,80,235,1,160,98,148,88,164,0,247,19,161,186,112,34,107,3,68,39,21,135,209,69,193,223,161,59,14,182,255,134,51,97,236,165,184,32,107,158,130,245,112,49,168,203,61,1,2,255,77,28,183,183,239,215,236,48,162,234,188,191,155,221,177,25,83,226,181,7,251,149,97,10,233,144,20,43,99,234,137,88,130,153,141,39,162,131,129,137,239,207,150,32,211,34,200,128,83,104,129,5,26,160,18,178,241,117,154,118,198,139,24,178,115,16,64,174,170,235,48,249,182,177,138,180,212,219,70,250,88,216,182,83,33,184,3,216,141,77,50,22,36,42,80,13,217,72,214,214,116,203,39,237,119,229,125,184,23,62,201,206,251,11,96,217,53,194,10,24,166,7,204,2,92,119,218,31,231,179,232,238,84,98,79,218,99,230,71,7,251,14,243,232,246,15,30,231,138,40,126,222,162,196,228,211,194,52,159,35,239,48,149,156,229,207,2,36,89,8,205,63,203,95,239,68,121,159,153,16,126,98,94,137,86,82,69,68,143,170,219,156,185,9,239,126,101,21,181,42,78,45,110,2,214,238,41,76,161,127,46,187,204,80,222,73,197,37,91,177,21,100,254,116,211,254,98,140,119,239,126,100,207,24,58,9,63,26,129,214,252,34,10,58,112,87,51,226,255,22,18,102,194,22,196,95,68,119,69,239,146,206,59,33,50,6,236,187,135,212,162,59,168,172,111,241,218,160,84,207,121,4,121,222,205,197,236,32,107,75,197,161,54,120,249,122,62,172,202,194,239,194,163,140,150,246,123,141,99,46,233,99,235,248,201,114,201,50,11,76,193,207,85,52,12,102,131,99,174,240,228,172,213,47,14,23,250,196,225,135,129,168,99,163,141,63,55,20,85,63,184,107,196,101,144,144,192,14,7,255,90,157,113,238,197,82,145,39,179,186,249,49,107,78,238,45,11,99,47,52,47,110,44,101,73,61,24,138,245,240,233,98,84,129,116,158,173,17,119,35,28,185,85,129,90,173,163,202,161,26,134,209,154,110,95,211,201,99,232,101,57,57,24,113,50,193,166,106,137,61,123,207,231,143,191,228,224,154,247,240,59,35,47,225,60,189,169,42,225,248,170,61,55,111,79,143,47,215,107,183,94,246,39,85,251,169,101,185,27,197,174,19,171,240,74,240,225,25,145,146,45,5,202,147,128,2,152,241,108,127,19,48,220,227,199,15,221,126,153,85,247,233,46,188,150,173,89,127,224,150,224,246,203,14,50,182,185,235,244,101,146,188,236,191,121,109,114,78,82,178,134,161,195,101,127,143,183,109,41,106,37,132,228,229,247,20,56,14,161,249,164,149,37,195,131,106,249,54,58,168,58,80,64,139,25,34,143,48,238,107,240,193,235,222,159,17,25,32,246,45,171,147,220,74,152,130,51,153,19,102,91,42,126,94,30,38,243,111,150,25,168,201,200,75,106,239,85,134,249,193,135,25,107,35,190,149,229,62,232,62,226,246,130,230,225,22,4,208,220,99,48,97,236,14,124,229,97,85,233,239,252,2,96,238,69,208,243,18,236,194,92,253,120,90,234,178,69,253,93,9,105,104,119,48,101,213,183,221,151,208,244,58,200,83,63,58,7,166,200,203,136,104,74,208,160,123,254,110,40,96,175,187,85,82,114,10,177,3,231,153,143,222,91,167,191,248,38,34,232,24,213,221,176,90,223,46,249,73,141,169,70,203,101,186,120,228,9,7,56,82,77,54,87,244,81,71,173,230,160,230,18,74,20,229,80,218,150,242,196,4,76,140,80,27,94,187,45,177,18,141,18,178,22,162,57,214,99,207,95,119,44,255,70,148,125,236,88,222,61,61,108,128,56,153,177,178,199,76,119,47,34,151,6,87,42,170,215}, } ; static const uint16_t precomputed_encode_1277xint16_x[precomputed_encode_1277xint16_NUM][crypto_encode_ITEMS] = { {44633,12474,35882,17265,46462,60774,13102,21047,5874,16150,5402,22716,37653,62809,29274,64411,19068,6495,56366,53858,61994,41620,60545,47376,39344,44307,4512,52551,6608,50185,49918,33262,55180,26727,55406,52387,21816,43053,54878,61720,16232,27626,7046,26065,8774,24219,2606,908,35269,59300,7453,42702,34219,4577,47728,28951,21824,48927,43495,52835,19660,10300,43931,5155,45150,20131,45859,64937,20586,36309,40798,48609,57472,16576,2232,65486,21246,25260,7451,25265,21201,50013,61695,60197,6449,46466,20238,26385,33551,14100,34752,61251,43149,15766,63000,23109,3700,4611,10775,58836,61555,3444,18716,52831,36398,42303,33134,6740,6955,46546,37666,62708,23320,63181,35618,38846,29935,7465,2714,57528,14114,38094,1799,39692,8165,109,57966,50251,62400,23187,48083,26798,42536,18014,6246,25252,29071,20453,42994,13263,5559,34473,19678,31502,64360,29822,61608,43793,24294,42588,34255,49522,31228,46507,10128,8100,32451,19931,27979,38693,26881,18341,59684,9519,30537,33197,23760,9563,52427,30097,63014,62621,8218,62368,60094,65255,10373,11749,47395,10715,35564,23912,12728,49718,29181,35660,36992,48846,49096,6250,12050,52831,28822,52520,42150,46486,49155,18832,11602,60519,34740,12082,19128,47080,9194,50904,20887,20041,47241,54572,20994,46945,123,41157,27552,47037,33487,1343,46177,11114,31874,9747,19406,28215,40934,43263,50871,41627,55039,15021,29279,4310,36812,57548,35880,21946,31226,58009,52034,20122,51913,1192,24915,61284,63585,39508,63573,12270,9914,32725,53383,39461,33834,657,35182,29665,37915,62684,43748,31765,55315,28490,26113,36273,29301,45071,25811,1847,44909,43447,54988,59041,30614,42823,29626,25937,9579,8911,17136,939,40161,3066,6480,23267,9918,30303,1794,35651,26720,51894,3635,50813,34696,46295,9332,62989,57632,33950,50012,47046,4056,48464,55928,24287,60134,41848,64848,13465,10211,35378,47396,29479,51668,31778,46283,27913,51971,33858,56654,45397,1290,5745,8217,26944,15112,2724,45100,29292,37373,28540,64893,13688,5189,22024,63038,53076,13769,32450,9393,22567,36977,20517,22796,44597,4815,19009,1785,57900,42978,4915,59941,7842,41473,54197,5652,48187,19283,16158,43023,36781,54686,58366,8930,15913,32614,50852,6172,18169,32223,60499,43383,14253,44034,3465,52573,2295,11368,6976,50820,27640,27761,47685,33052,32407,53604,13337,12642,18497,33125,28776,36453,34164,8612,48127,36675,28184,45255,28718,23334,53466,51299,56899,54723,49831,35707,29181,62191,24649,39892,50782,51567,44129,43555,23669,42985,30650,26490,38690,12196,26032,32152,59496,42602,46380,38607,35738,61812,42129,55096,12346,314,36035,37370,10483,5411,30706,44220,21932,34002,9609,3822,34582,33978,52353,9094,19398,48654,42328,13566,17383,4263,39642,5005,33058,33686,49403,12485,56130,2384,52661,32705,53165,46270,12663,41245,5703,29199,10895,60989,44121,4125,17724,27245,12925,32793,23503,45813,23614,39226,53121,64935,18779,44176,62525,1763,17066,57060,32334,3852,59775,15286,49203,37040,55942,42473,49917,50197,31099,25996,11336,27298,7989,44011,3948,17145,180,31917,60041,18104,50682,11222,19322,32447,44458,6111,62141,38585,39310,58113,5820,30470,12655,63216,46125,61424,22937,18100,55765,24433,2625,13970,31831,28095,50953,64596,47362,61152,35598,25550,12167,18743,40652,45740,11946,57415,44204,8902,23116,11203,16562,27617,34700,65059,27515,15908,56222,44739,38014,9739,60617,65116,51985,40300,32581,41760,58298,50399,26530,64962,62615,55286,45555,23827,2852,51383,25679,12792,17973,47758,30763,33409,9332,28949,13719,15809,23295,473,2744,62050,32936,46119,39670,51479,731,3598,42457,2966,16667,23104,49691,61666,19491,45815,15266,52838,58342,37470,51427,49041,50480,23067,56017,39645,40913,47343,29526,25065,63871,35,8147,20715,46455,21336,28634,40893,9231,10239,43428,33730,1761,42102,48237,14962,62052,18165,17712,54882,20440,21529,12883,22836,63304,52666,34079,44189,46376,21604,34342,56671,26045,23269,8364,19989,47883,36285,54185,15069,17629,22514,37799,2648,26652,31896,14964,12113,9775,11585,58436,48343,28236,34985,42319,62886,7744,2690,28918,22717,46138,32668,60924,59564,2391,53409,6199,33290,1442,58986,33961,35888,62115,65188,42957,49211,23077,59390,48480,63546,21103,50281,3451,36779,29595,2352,5865,35586,57129,35282,37014,38344,30302,33252,53604,30275,4897,62270,62053,23535,26761,57559,63788,35022,32064,5809,25872,61787,62996,45246,1063,35382,2383,60832,867,15481,59391,47422,41500,20014,45510,39147,58777,5783,22621,17939,57376,27808,56510,53058,32486,50132,7518,20502,52652,20699,18489,26469,11739,36469,60134,62981,34932,45664,11449,34034,50692,29208,64172,23426,28820,21957,13042,34225,17170,1324,15886,4052,60875,1834,45230,25925,33385,55926,58464,49304,49541,11252,30786,1235,54873,57342,27751,28628,25987,50410,15689,44691,2465,44462,48659,7604,50251,30517,59707,42769,54367,46588,27025,32412,44113,41569,53160,45468,49836,30668,336,21747,62846,3658,1723,51870,8008,51588,709,35231,64302,7643,46584,27947,50119,29668,50660,8311,53796,6270,5471,56300,52857,23483,40769,61175,41521,60483,2208,29402,39885,20268,43690,25629,44719,33480,55685,52480,57338,40584,17878,16146,57181,21773,41122,26543,17637,35217,62318,6217,7408,6907,20585,62037,1101,7674,25786,52931,24468,32987,11329,17398,45064,46165,44680,61356,48088,27507,60602,20465,32466,30285,37587,61866,14484,52636,60377,16951,50668,54880,11234,19597,55479,60506,7024,22890,51799,54552,33324,4119,4010,64210,24975,20269,26671,26344,38992,24179,15014,39539,62751,4844,15590,7471,56690,4446,54237,63536,25861,63691,25589,1204,47434,30096,48367,36698,45141,8848,40646,36780,20628,64064,7906,17829,10996,13490,53026,10013,55313,60893,64616,15511,53854,35222,46306,17681,23380,62807,6422,16622,15786,31147,57175,33592,17893,35569,53932,51510,62834,53773,24750,31929,47386,34035,57630,10527,65464,40526,46736,31879,46791,39751,26033,13631,50503,55202,61034,30863,56540,15345,12930,34293,53837,13430,47362,19557,63750,39355,46230,37796,63163,17906,24246,28933,4882,56310,49760,42110,19489,13229,38533,36125,46537,58057,33449,38470,40780,61139,22938,25733,53330,44373,58114,4160,34815,44563,15139,19174,11749,59909,47203,53297,3680,39371,28651,36955,60460,13478,28273,22168,39418,304,55199,15926,25808,31043,21088,1824,17776,47093,32753,55105,38178,33003,26826,5271,34353,61500,9045,50156,25105,6915,50213,9824,6624,64946,9542,44524,42994,7516,243,38392,31059,43284,8523,18843,51951,24604,6389,55969,49192,64286,14369,57160,28546,27833,47385,52986,36399,63169,25468,34549,44683,57862,24727,60724,56038,48769,11302,37709,32076,3642,41278,11442,54331,60855,11037,22556,13667,33985,58608,2454,59217,14802,37537,30982,50539,37905,44841,42362,34863,52147,26558,39622,51821,60420,26723,13371,52567,12929,15411,4226,39962,37496,19354,59948,45692,64392,2859,47300,21753,12489,17468,30015,3369,59688,16456,3142,53666,23409,26832,40811,3473,18780,33404,42042,60684,21263,12024,57262,32089,41686,39708,61713,12911,30164,8932,28135,38395,19559,32161,45722,23716,22579,16010,34729,28212,14645,36878,12590,59683,47609,30264,6407,52113,2717,22217,10235,29985,18153,15868,37644,31762,18152,47648,64422,30060,39564,59508,20831,24663,17095,62183,58666,52024,45352,13212,60063,12838,48578,48442,63082,7251,57408,5479,21413,7220,52880,63796,15332,65064,8903,17158,4569,38496,46854,48205,6822,41475,62005,39830,28084,13996,59534,19534,18099,29190,63151,22380,44065,32393,17519,52117,28824,2937,37365,26126,45229,5843,45905,5609,38975,49364,52130,35522,65053,50190,7403,11660,38908,2942,43719,30252,6535,4377,49970,48076,28862,24957,7205,31532,593,5795,59044,31847,35366,39866,59989,14050,64797,61568,17193,49416,60252}, {59123,62832,6139,41032,2967,6250,104,60971,49800,12392,12433,60669,64177,48145,14588,46096,35347,26696,56653,3475,43869,41885,1794,45053,52027,42455,3890,7732,6538,6074,6924,6000,21275,35869,21595,9359,29025,48520,11390,13557,17685,14644,28375,51695,58628,65087,61258,14107,21210,6912,15097,13324,55960,42438,47228,54892,17420,40372,58653,11234,38847,44236,6396,19146,8464,55688,14142,6945,64504,40442,46646,15814,25577,17734,40335,7051,47741,43970,14594,50593,30766,16401,29405,46939,23922,44916,35144,28311,34110,54326,63660,56464,39241,11677,55806,34980,22425,27503,41717,33167,31400,5805,16491,19078,32574,50552,6126,58594,31452,53212,11734,57889,56396,26483,17161,51832,23975,61735,40123,21519,8852,20054,23092,7814,44083,4864,15491,33612,26931,46439,45165,16792,20756,12765,24489,13878,6992,36158,41430,44633,33722,10390,39778,21238,10933,49693,53915,9530,17004,54674,7453,4462,31794,61739,62284,41004,3078,18672,64594,26394,50957,17610,64196,61541,10915,53600,3369,46611,10696,26203,9018,52086,51211,53644,29380,35915,37795,6975,7445,8137,58993,29827,38581,13150,46890,45051,30658,16140,9320,36334,47712,18618,37123,44743,19598,43920,26723,18009,28158,60640,3712,49016,36237,40253,7788,13042,58725,42756,55151,7360,48608,887,6262,26392,51153,46795,18531,40895,27043,52793,52264,15118,5904,24606,2046,47799,3424,37663,30889,20421,7846,12845,16218,21310,55632,29561,9141,39014,6604,26320,16940,7293,40291,4687,41396,41044,58861,11953,21591,23492,55068,57736,49345,1168,28454,1231,16392,63404,63006,65414,10806,59513,2961,39165,25582,58562,3954,16363,16073,64439,5356,15907,14820,64921,7,6978,45725,2102,35489,15922,42927,51255,34359,16945,60276,25609,32605,8743,6081,19555,5707,24045,12511,12154,59598,60348,5729,30276,60508,63255,57015,37311,54323,2564,57613,20226,44544,13645,44641,5013,30824,18679,32627,31570,19652,61365,19931,19729,37323,40363,27283,23238,48494,63145,59772,30776,42776,20352,51846,56365,7649,21799,4005,27434,21014,58947,52290,4252,61402,62198,57592,46050,39558,51935,58206,18787,11508,54359,59827,43767,9432,50821,35493,3379,45042,61888,12453,24156,117,57614,52691,27121,37582,38016,49887,22896,62575,17147,57796,12009,54434,47563,44436,40659,59969,21204,17205,40052,32723,39953,39953,24972,26632,57902,58494,18456,4508,43269,48767,46447,61176,31313,55613,34925,16864,53920,8702,49270,28385,5573,41746,55101,57359,20137,62358,23712,22576,43065,18835,33921,47892,16790,6471,5539,39593,54621,15110,14434,2108,47110,19103,31447,35582,28742,6660,1389,2071,63624,50306,15888,8453,19117,52449,63143,17325,27583,23711,48019,51387,44374,9207,47482,27521,10931,15697,37232,36251,65259,29710,51324,63288,17230,13861,64559,51746,39181,61881,38469,18601,37940,22414,28956,29127,62984,51010,577,23133,46646,15206,39489,24053,55222,45370,58038,42351,62096,29497,33777,60745,33563,15775,46460,4678,20454,35723,12713,13,55136,35265,44833,19939,54681,62867,41809,39953,31866,18458,2721,53301,9810,59659,56779,56895,13040,57309,13537,2313,16486,45670,16766,32461,31536,16191,25314,3618,2075,3580,16147,43605,51856,33112,6587,20283,18564,29609,44342,44931,61202,59804,31345,2265,63523,33797,21987,25882,31128,43898,21545,41785,7378,3075,19904,6010,13049,55900,53325,35495,55929,65433,10388,49987,14622,44094,51718,40234,16677,63621,60953,36727,27089,4574,41586,24426,53478,13513,37833,5147,62617,31781,28896,24135,61070,46172,38269,40148,63921,44227,21782,788,33524,59569,21500,27398,3956,20567,36861,54746,58882,25219,1778,23493,45738,55752,887,16966,38101,40250,22486,31143,5818,42376,36490,25708,45712,892,62613,23395,31673,6289,22933,18084,32351,22270,18855,20809,5806,16659,50996,50066,1230,49367,59765,28271,27650,63363,32310,51858,5021,47693,35376,26370,20881,55516,40532,12236,6449,32850,34509,50987,2688,47280,53972,24796,59042,49384,28838,30438,15567,41134,50007,15667,4663,18291,1705,11781,61411,49943,563,6562,64373,65192,23709,60125,43133,33023,35638,15834,62753,49256,35720,7858,56261,23825,23849,20368,19000,27404,16945,5685,43178,52145,30756,8210,31624,65512,19060,54011,3192,42314,64676,16367,4688,30314,61089,40048,8772,36563,4273,64407,24147,19308,54697,14898,50777,6905,38287,8266,60275,52772,5880,33708,15322,60670,45858,17429,47234,10295,42888,10388,56199,4839,55260,35826,49131,16641,50951,11629,10459,14556,7883,8233,16788,48908,1895,18036,26608,20519,51074,12632,25320,59661,48682,26519,1298,51572,7008,26533,6766,58434,13700,26351,4984,42940,59861,31025,64788,21436,40369,2909,29953,60667,23591,49139,61387,39212,36876,37823,19631,33326,12205,50126,4048,15435,13170,52542,21634,13349,32566,42231,31700,15137,6094,51683,16585,19195,48720,14219,13673,1980,51745,37963,39561,1658,52203,49886,61867,499,26316,29948,56067,53846,24318,60318,48372,54118,23157,4995,7957,39632,45442,38537,47608,32216,64499,5660,35255,62140,38410,23585,40160,14301,64999,36588,30522,8804,21855,59927,14171,17694,48499,5506,63788,44601,851,16795,43940,7150,907,28915,12006,31438,35333,37136,59998,4739,1584,16082,61519,5619,47943,4708,63177,44767,16260,36277,44790,28165,15420,52111,15191,37413,25251,64860,32172,779,31584,6777,35332,37486,54964,33122,64442,54274,50018,54421,50603,61839,50661,54627,16327,64593,11862,45423,17231,44870,60685,45990,44528,37416,53033,60860,3314,44985,27552,55806,52021,43375,59393,21202,42635,17200,27096,59711,58341,56769,31317,60441,59920,29250,40378,3867,38131,40184,52361,14997,28622,50014,13892,34051,44722,31015,28018,43293,25102,57248,18782,63530,7719,63552,19861,57180,5093,2446,8572,50522,10064,2203,17441,14341,2160,37843,58103,136,53415,20231,16898,40608,14436,43163,29676,12848,21319,62857,12764,13241,62890,750,43545,48593,21699,35539,5880,64369,27167,47140,15339,17514,59127,55799,4483,13309,18415,29142,40752,811,37477,40116,10890,25179,595,46030,59799,53835,5096,30750,54811,62896,7007,30667,42888,61072,31367,41804,9467,31422,52546,14729,28014,63966,31308,58041,18301,32073,32560,33605,48353,49624,29758,41508,45148,63986,49930,52312,19418,11053,4881,27142,16339,2544,53005,3156,35828,54985,9900,55586,18939,5737,12661,8832,2126,41696,53244,24571,46713,663,45321,63477,61909,56964,48228,44245,45092,13558,39405,59243,3718,7566,59791,3576,54974,41890,18920,9686,52584,62053,21480,13234,28513,24419,58771,39562,6209,24953,63270,23049,59810,65330,3597,36610,12326,25075,19422,46843,2125,7489,11525,4020,63894,53646,21667,36570,20667,65213,53201,488,32496,54840,50307,41867,16862,22298,55127,9479,46094,43011,30288,58685,6061,6461,44653,39594,50155,44643,36809,9590,51192,19330,18292,52458,24337,63385,53507,7705,23502,37521,44334,25978,6636,6979,27829,20348,25736,3497,9244,34922,2587,5094,60589,4599,13186,3943,36559,11293,11382,42204,6220,17492,56828,37888,18830,30339,60592,47439,34253,24335,7400,59534,57982,51851,21513,41860,46052,10351,45949,469,28170,62166,61062,12795,16110,50028,14561,20752,30902,37009,30199,19899,2282,33425,63769,10616,30259,43686,42516,43517,43413,28212,10478,6506,21353,55613,12279,41498,47124,6825,13164,3724,21920,49368,17379,42602,46900,21121,32501,39206,62436,18601,46954,42000,48271,63917,19211,5673,42243,35783,17022,26994,27285,61078,31141,33046,60606,52997,31150,30184,19413,2052,35549,49056,2683,61775,44079,40287,62477,24259,35940,45721,15122,19902,28766,3172,1603,35461,16400,17359,50995,65420,42628,55853,23614,54513,6040,35056,29768,50867,21111,47353,56512,30617,43052,7506,48128,45259,5716,47607,4191,22132,31800,44270,63598,63207,11638,31849,21822,62883,61507,60949,46630,26156,4319,47471,14084,18050,50775,64583,7746,61436}, {32735,28511,20371,46036,10693,44831,1,17500,30504,16682,15749,11922,16734,14448,5326,28886,12614,33651,25715,62097,63796,29256,38555,7355,30630,16819,15271,30012,21985,60390,49140,3590,18815,57235,29903,17001,33026,47254,18950,9831,7162,65043,2830,21595,60015,45512,9480,27052,51757,25220,46818,64210,60779,30966,31624,64774,47980,49453,11520,29674,50246,46897,13300,22085,54143,61844,19683,59123,36755,20826,17499,35311,34644,2692,60953,46929,54886,33670,45920,27573,34058,34707,20694,51497,64370,6073,22019,18497,31796,59282,13352,3773,46202,45672,9645,17677,28690,10339,36426,7771,10219,3517,21252,29773,14360,442,16182,36260,2430,31070,3848,5454,33877,4259,55557,40720,15796,48276,45637,58030,9470,27562,5620,6312,19968,50757,14483,9360,48308,35766,5023,393,33257,34384,22617,35528,26693,53220,63504,5460,22145,16682,29320,42905,43681,16302,40339,61135,51601,47704,44066,23991,37032,26193,2627,23003,56147,36092,6342,1345,25975,14986,4445,59239,13457,22198,33090,62074,18064,53956,56989,35750,40924,12854,40571,3560,62309,15572,51382,58109,51781,2222,60352,25668,57740,55267,55726,11035,8220,9744,10213,27335,5651,63017,27134,5058,25002,7274,40746,38762,58807,37050,4295,11148,62241,59232,43020,24292,43626,29081,22012,6238,32534,6295,26401,21786,36583,64661,43194,65380,23450,26772,16465,12644,14581,19847,3004,40617,60341,10993,36267,44134,2861,26769,28551,11515,6743,5877,15841,39864,27239,1545,24682,21996,24795,35777,18126,25522,15622,19890,31464,16327,55562,36122,51601,21223,22702,3857,62330,24590,19161,15369,43561,47224,17218,58877,21065,2305,21821,35237,47585,51114,18807,42612,48886,6095,44220,52037,54392,32646,4210,51089,62497,47747,18841,27706,4991,13090,24766,33853,24264,52372,6950,26382,10138,27932,52638,22252,30558,12802,25688,29290,21709,48294,32013,7659,494,56929,62922,16595,12915,5726,13805,54333,20135,13942,17578,61598,52399,54238,51432,26303,56872,10534,43104,37223,20448,22753,28216,12872,15029,64121,20663,64637,1480,56809,12466,11298,13032,52731,12874,48386,11781,17301,32227,34815,30791,50760,27772,10225,14795,61579,43737,40737,60585,34897,56291,27900,31699,30551,23488,1796,463,51634,27347,48102,20180,56383,55867,43481,20950,46531,14448,3818,34645,3400,58596,55707,37918,64284,60611,32566,51572,3023,6123,21601,10605,1073,6781,15357,32202,37544,64629,15916,25873,19989,45363,53276,23715,32542,2595,9916,37339,35622,10896,59187,58572,26108,51261,45850,19180,4628,48618,52149,8023,50552,31009,38061,34845,29470,20189,53754,13494,29869,40377,29477,32009,39370,44656,63779,36776,40464,38353,46723,29889,35927,48102,64791,16838,7507,36136,23661,57173,63305,56195,25061,28391,21949,45663,25366,57928,7873,3579,62066,46109,30091,45657,34946,52831,8119,15667,3083,56210,18431,22414,40077,54899,52459,7707,25789,26171,17144,42067,29506,17699,39392,36494,59730,5936,51855,53507,44090,37497,18472,32661,13067,8325,26367,49959,14199,47535,47244,3077,26100,56691,28421,26609,42306,17810,37153,29084,11877,17024,40398,7615,60542,39626,16483,31891,39122,9109,43862,43107,47773,56785,61649,12129,31911,18847,62813,56406,7083,41287,43038,21076,31485,57731,47692,15163,11226,60708,36883,59251,59401,18214,15172,23702,14522,38181,42786,3061,52865,42122,51788,426,4698,19301,45845,23822,40467,25027,29000,20966,31816,7586,4497,45531,13968,20954,44876,27003,39807,64877,50540,13445,5534,14337,15246,565,22578,52449,46265,62046,33521,57640,37912,40489,30305,17852,49462,35154,56264,38865,19885,53064,27354,19938,1944,6337,28016,7597,30886,28964,64547,52920,21557,21189,54233,58254,22344,6806,56174,45973,32865,5092,58200,26189,44187,45393,28653,27243,56481,52069,39888,61269,44660,38426,63123,49809,49251,25431,26815,39251,45159,41249,60216,42129,6780,44131,48878,60069,21712,6650,45285,59156,26166,48654,53881,21295,47759,54587,30256,64746,59359,47299,23984,36055,64952,31261,10413,51920,48851,32217,65106,1478,17058,58770,16083,61171,30686,24064,46770,17208,778,9903,45545,48970,43757,27317,30999,8123,12472,1751,14346,18088,59603,19948,21013,32371,61667,49323,20522,59297,11519,13270,61754,16486,56047,25096,46057,1958,38805,17760,24592,21850,29659,60249,39539,31679,40449,43292,57486,59702,7175,61701,50414,8479,35378,28491,49390,44801,29074,55599,39231,14670,26757,19427,49422,63654,52421,48983,34284,48147,32751,56426,29847,20399,13680,46489,50511,54090,61389,35367,14369,10132,52467,62169,13248,4203,63845,60218,56605,17312,37196,12234,1382,64147,19554,33733,18155,6815,39000,58482,63158,50689,5850,45801,34196,16521,48443,17775,1499,47422,60957,49065,49239,7486,30701,5500,14343,33245,51624,54672,2913,1671,15657,12229,59218,48774,62836,52031,18775,15819,61291,58393,43743,11135,18561,54861,48679,59620,15067,49243,32304,58234,57205,46609,23854,31358,48980,31985,23116,41994,411,51374,13045,13618,10641,51548,5612,49155,2081,36498,57651,50785,46724,49786,22782,9033,34089,42126,11507,17476,54191,52960,5060,17136,7837,7130,6589,4957,56126,50823,2538,55677,6544,54385,1177,45121,31853,7795,62122,46551,63606,46644,53169,3300,60234,40337,21870,4433,59617,19695,34722,24840,5293,7501,29164,13951,32191,51784,49856,1816,28974,23234,46146,49692,21050,33099,17317,16080,23901,22108,28499,29040,62414,11899,56108,49693,48520,6699,19377,21551,65178,44571,52176,30353,57628,19607,64783,34388,21961,45261,27856,12131,30170,34020,4930,50022,58059,9025,33139,28953,52273,62168,48688,28434,16342,45271,11273,28782,36026,7369,54470,11024,17593,44040,17067,28190,50953,25604,60474,34967,55574,60427,4443,25223,33432,18020,16859,52583,6078,37634,49501,44245,52472,40069,34312,43501,28380,12255,18584,56463,55757,16012,42940,276,37177,2030,46851,52861,33123,11534,17279,8958,40734,28654,7957,35858,51542,43161,54473,50555,37590,45108,51246,46196,25249,36379,35907,28117,11508,7877,44326,4907,33980,54324,5171,29029,21710,17308,5638,27046,16285,10279,1848,27204,63808,44661,30563,6360,1962,19151,33880,33544,60954,63749,36965,165,39329,35513,38272,19258,50516,40281,7113,16699,59661,19298,36950,63251,34598,41262,6181,6393,18817,21575,53600,23384,59321,6541,51210,20446,23126,4130,12559,55675,46797,18718,38262,15278,29209,24274,995,39879,16157,32499,34664,37900,58565,8545,55543,63843,13107,65525,11052,42914,57120,62149,49435,57462,54786,18610,52596,43375,40001,20870,53306,63445,44876,22106,43573,44748,14108,41894,12480,55110,53767,49717,13095,53351,15669,5876,14987,59095,9432,48118,23946,15590,52109,60527,11540,39571,12759,12463,37239,65384,26392,26790,50388,1119,27424,30092,23340,25790,3084,5146,56396,31194,2707,57278,35569,9734,55018,7436,58625,42049,9995,7354,16024,57388,16978,54215,56688,26349,2200,28046,8487,12287,10629,19499,2422,14095,63062,35242,50070,32126,19953,29707,56180,61312,57857,16246,4398,36490,6168,62961,62840,18613,41159,44380,58127,19566,44004,12748,39472,43507,31286,167,12092,32570,47193,22787,32274,1381,40564,3683,17495,26387,32546,19158,47868,41969,61839,62070,41446,6718,46896,23141,29492,4570,56572,15848,16646,9417,24676,52217,63452,62052,7022,26989,56870,64299,35675,5305,12627,65401,19845,22218,51141,6768,59464,3414,1474,53730,6849,34491,49674,4393,20847,11561,26074,29253,20440,28435,31562,24829,15755,29008,57373,12248,49006,36517,10563,42954,25453,25864,11673,46579,34011,25222,32501,26474,11507,64175,22376,51607,5381,17704,22785,11348,36912,38060,24969,46806,40229,20458,35769,56236,35187,38087,27046,28567,19168,23448,35390,28952,36506,6723,9590,29173,52944,22424,13993,55733,31202,11198,31840,42929,51902,41048,48220,11024,36927,4141,17511,19563,34777,8152,27262,16906,1122,34252,63890,56525,20064,22279}, {3339,42485,26258,3285,42063,53458,50006,42933,15716,2535,45679,52718,60051,24312,48751,29724,36743,25549,36884,19157,14254,42827,22170,134,3600,30087,60400,3342,38484,43764,28195,8944,26930,22543,13517,14587,19375,9946,8404,26697,26183,37007,49566,41,1839,4001,63719,46491,12404,43204,15766,45183,43844,62686,3070,54942,16208,29900,37893,63109,34342,18914,6818,48126,22203,17926,54927,21211,809,49906,63371,28618,30742,34966,8957,63000,64158,56365,54522,13910,52191,29680,64906,2163,63287,21238,8736,61754,22910,20072,59764,28871,14598,30401,5004,22671,59630,10158,56631,15315,44880,42718,10288,35319,51298,44241,26824,54529,62321,56004,37530,21704,33595,49138,35382,32268,39547,36862,39151,42260,35218,48924,17698,51609,56174,51016,54023,9591,64850,5533,63927,40627,52312,23627,34213,23821,5473,38832,55794,50873,2303,41319,8933,2227,1168,25389,59011,710,12528,15575,44288,4914,26763,64324,18746,54343,53778,19169,24638,61301,25228,56080,41277,21233,26921,39047,19251,17060,18238,4735,27743,39542,15725,15693,49917,9142,17026,43915,42194,60891,32515,43892,11982,50685,21309,33836,28151,47030,38182,49651,53381,34931,31133,11209,38158,2567,37997,56073,56210,41199,53721,57016,5849,47525,5355,61656,27930,5581,55055,31532,21161,47052,31195,51403,60323,17548,60945,3928,29559,42264,30902,20732,58273,39869,4597,43768,52616,39494,58862,65356,12161,29384,43837,22075,50982,44854,3269,26906,48711,36684,62290,21210,29801,47891,24345,36011,15731,62209,9363,64212,58259,16446,61868,30267,4439,4407,60733,31233,13676,54234,6132,26907,2852,58872,49441,34364,26644,37927,7380,43763,14368,47580,41201,34657,27967,63544,60977,3100,22043,14329,4999,10267,11290,19203,8061,15843,36982,10713,4777,33866,44218,23182,36106,9808,13443,6821,15173,5285,23004,52350,39934,5036,14773,33324,9781,37651,38391,18357,36146,29686,6109,411,3693,14797,38222,33232,52485,64006,51376,55978,19709,4256,41030,14671,9434,31078,29922,49564,27327,14329,26081,16515,4853,54012,51207,4523,3719,58822,34868,54783,2249,9916,2144,36620,20569,2005,57118,13121,25578,8275,3975,19520,23061,733,5389,52912,620,42247,59229,3107,32196,42621,9892,18211,24310,30248,20912,25002,56501,60841,49705,58953,18481,965,56845,2076,3734,43676,24985,46912,30791,13480,63487,58663,46875,14619,61356,46269,56554,15065,34147,47223,63219,35449,12236,53007,7547,42903,48262,63087,45394,32553,34731,28153,65310,16796,53745,22666,13327,5950,1730,38452,36882,4364,5717,63869,9524,25331,8657,37146,30700,59671,29787,65224,64512,25716,32258,30684,23109,22304,56291,46239,42061,54560,44929,7007,16435,59447,17439,56848,10454,65486,12039,53001,19926,17922,55120,36174,33842,59579,27269,40722,399,57901,50354,38730,256,33968,51566,18962,26767,32316,26093,29581,4186,14898,26706,49459,27348,34005,24756,59672,46480,63179,40918,25004,7185,50203,14708,9871,50800,35300,41577,44749,40644,6779,21259,53821,702,5469,5670,47389,23774,100,36304,28160,63787,3855,60347,11984,4399,25214,64912,41930,13654,10431,62802,7522,30071,59679,7233,63428,43039,46549,8394,48215,29883,61942,23327,57802,24630,64224,22594,39377,32336,12451,7825,63990,20133,46082,38267,8830,8583,39563,11475,52456,37284,61013,15048,45813,5958,9240,34891,37677,46365,42060,65166,28724,23594,22528,1268,58498,4682,29249,57320,26077,28738,11833,42967,2441,36219,25808,36553,43244,11237,41109,26082,10416,55837,63004,59082,47140,60105,28216,42607,27996,17006,63288,61830,35228,51378,43337,908,49362,33457,60667,208,21010,59463,20466,27655,40274,8766,33618,14371,47312,55407,2475,31095,31945,44250,37501,37709,41317,38023,23045,26040,14909,18337,30964,27137,56066,15372,11385,62285,12036,853,4475,24450,9744,34597,23159,53597,28060,28539,6615,64680,26396,47858,12632,55426,20178,22766,51916,50174,17072,30658,58840,51767,52299,7413,1490,36149,18155,9936,10202,56859,22059,45209,32917,61573,57073,51079,61055,6610,15792,58331,13869,31197,58975,37387,19358,58868,22364,33338,49242,33417,26807,58395,8862,41065,58457,21512,11582,16491,63643,11699,43162,46712,19612,914,28249,9183,42918,34522,30892,47515,60938,56509,23424,17811,36452,486,43143,64623,6341,19867,10301,31588,29883,10344,19852,55819,39805,19310,18915,19975,32533,54394,8882,33308,13886,24362,8723,40532,11118,28905,65252,7411,59967,17724,42033,25708,33566,62128,12798,17246,4785,36507,54296,39177,42764,51346,53878,56131,55838,4265,12586,13986,35735,5368,63483,16655,787,65241,62740,96,34023,63584,2763,17688,46711,32645,58869,65532,25632,32755,51763,54163,63804,33809,60765,49990,8178,24784,12021,43037,60617,9661,11392,22558,43887,51716,46253,52933,40339,45435,16956,36242,65036,64546,12780,34142,2050,45646,58255,33612,51171,1490,52234,20149,49721,23016,30448,59919,1260,56150,37479,62857,32405,24972,34547,46341,26387,29272,61312,3893,24735,1968,6636,10238,3336,30377,9754,54836,35129,12722,47151,6038,20676,64219,55055,1590,3945,29541,15488,191,31320,22777,42470,32782,44543,57658,54046,27752,16797,7474,9973,13689,49127,37501,61422,23384,59079,2534,20584,7566,65504,18437,32591,28188,59643,8911,63525,60240,40961,37986,42072,63232,41235,28858,27426,17411,5415,53639,49477,41439,3643,65462,13190,60513,47269,27424,33438,28917,43057,15819,513,19967,46876,61367,60631,41520,48362,39871,45533,21273,46562,64263,24981,59658,5264,25387,35306,33368,36249,41511,33155,61321,38607,54048,51234,21376,33128,6661,4768,61874,39541,50806,6283,29618,16400,43694,12523,46841,35505,54452,18139,22778,46808,8531,952,36312,12877,9238,20522,55565,54856,29910,10187,30701,32229,6072,51518,64462,24587,13785,2754,42520,52231,23554,55927,59167,59571,21742,20322,25562,18406,64263,62222,63208,7695,35559,32296,41694,58564,49875,40756,61219,38192,58780,719,22820,52488,52031,61279,31044,39327,32272,24162,22153,17746,36676,56234,47516,61193,25982,46357,20010,28205,54786,10734,41292,11903,52411,56912,50505,23333,5553,65124,54132,25342,30604,32495,53092,14872,16137,33050,64726,2594,28730,13143,65506,4630,49766,50198,17503,17783,37615,15310,12833,60422,34747,41684,43067,28588,56049,21664,31183,30980,52702,60613,27424,50507,13985,63864,15994,51884,61378,41922,38540,31734,25485,59694,60259,51704,51570,2866,49484,21967,3124,33638,44643,58608,54700,3631,64023,57796,33159,25512,36259,14143,21780,47167,50283,36965,49296,1806,23295,29085,50670,37202,45863,63930,27441,61006,2861,12131,12084,11374,18789,6205,62858,59888,21602,29825,44446,30481,7203,21945,23169,41901,41418,34330,39633,24430,51667,59491,14693,6201,12913,42689,35178,31549,59343,49039,57572,63386,15344,12067,15585,43453,57642,43768,14141,20335,12175,27607,24247,10230,64341,26025,7097,44741,43795,19184,57840,37145,11666,51717,32915,38914,27889,4991,56368,51171,56591,39294,63317,12009,38588,22957,57471,57494,52214,12814,47542,62699,37477,60604,31167,29293,21070,34482,50081,32613,46991,10605,9578,58500,63461,14356,41230,42233,9621,33731,63850,14902,15016,16464,6539,36642,60976,61547,60353,40926,6417,63008,43821,56467,38986,13186,5017,23398,32298,7774,62246,38511,43033,51401,27211,21999,63878,34753,27417,48675,58773,59454,57918,33526,57830,1046,56528,12387,60513,31758,25061,59733,64751,24578,17902,62416,60434,23746,30973,59994,17842,24061,26889,30568,25904,47061,38877,62672,51258,16211,1850,51366,35019,19048,41168,65147,10350,44896,21947,29266,45322,59139,36761,23518,49063,9976,59426,54552,45277,57178,63790,36169,18089,26059,30906,2532,14343,19794,22326,20980,44359,41190,4838,5194,20709,38618,50418,19460,20620,24091,11707,4785,4749,5810,14754,25558,24527,11383,18175,32148,22764,15838,27709,14464,45465,51122,30540,8751,1687,10839,55210}, } ; static void test_encode_1277xint16_impl(long long impl) { unsigned char *s = test_encode_1277xint16_s; unsigned char *x = test_encode_1277xint16_x; unsigned char *s2 = test_encode_1277xint16_s2; unsigned char *x2 = test_encode_1277xint16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_1277xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_1277xint16(impl); printf("encode_1277xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_1277xint16_implementation(impl),ntruprime_dispatch_encode_1277xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_1277xint16; printf("encode_1277xint16 selected implementation %s compiler %s\n",ntruprime_encode_1277xint16_implementation(),ntruprime_encode_1277xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_1277xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_1277xint16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_1277xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_1277xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_1277xint16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_1277xint16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_1277xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"1277xint16")) return; storage_encode_1277xint16_s = callocplus(crypto_encode_STRBYTES); test_encode_1277xint16_s = aligned(storage_encode_1277xint16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_1277xint16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_1277xint16_x = aligned(storage_encode_1277xint16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_1277xint16_s2 = callocplus(maxalloc); test_encode_1277xint16_s2 = aligned(storage_encode_1277xint16_s2,crypto_encode_STRBYTES); storage_encode_1277xint16_x2 = callocplus(maxalloc); test_encode_1277xint16_x2 = aligned(storage_encode_1277xint16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_1277xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_1277xint16();++impl) forked(test_encode_1277xint16_impl,impl); ++test_encode_1277xint16_s; ++test_encode_1277xint16_x; ++test_encode_1277xint16_s2; ++test_encode_1277xint16_x2; } free(storage_encode_1277xint16_x2); free(storage_encode_1277xint16_s2); free(storage_encode_1277xint16_x); free(storage_encode_1277xint16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_653x1541.c0000644000000000000000000010341614705505543022377 0ustar rootroot/* ----- encode/653x1541, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_653x1541_checksums[] = { "1b20d01f7809f5516f698fdfb9bcf69a9b077a03bc594f94f427983eed219924", "e9661445e5dc394398e8c9fc031cde1c405c4e325fce3297c6e8bdb53310aa70", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_653x1541_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_653x1541_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_653x1541_ITEMBYTES static void *storage_encode_653x1541_s; static unsigned char *test_encode_653x1541_s; static void *storage_encode_653x1541_x; static unsigned char *test_encode_653x1541_x; static void *storage_encode_653x1541_s2; static unsigned char *test_encode_653x1541_s2; static void *storage_encode_653x1541_x2; static unsigned char *test_encode_653x1541_x2; #define precomputed_encode_653x1541_NUM 4 static const unsigned char precomputed_encode_653x1541_s[precomputed_encode_653x1541_NUM][crypto_encode_STRBYTES] = { {149,195,1,228,193,163,144,202,166,89,25,95,67,77,255,97,121,61,183,220,136,37,54,82,180,191,124,73,163,67,14,216,147,226,235,250,89,213,106,178,204,225,133,31,118,106,174,124,97,114,55,0,178,160,170,164,234,207,121,39,123,180,57,51,186,14,152,228,53,222,82,15,86,215,81,8,1,110,144,142,141,242,100,65,204,197,244,111,80,178,140,36,236,142,200,64,146,0,255,91,252,220,184,51,61,226,14,40,230,2,150,64,101,111,92,22,210,177,130,197,155,119,77,116,3,88,234,197,33,169,227,192,160,54,152,55,70,198,115,109,243,150,68,166,122,9,193,132,140,209,183,225,71,123,205,146,213,146,126,165,255,151,17,141,168,128,26,70,223,213,139,58,197,71,181,34,15,38,44,42,140,112,124,23,108,117,54,150,8,182,36,114,225,189,244,36,222,1,77,194,157,161,132,11,244,110,82,141,132,215,1,42,42,129,177,224,228,143,125,220,212,88,152,119,134,1,254,159,214,0,205,113,24,22,167,24,76,66,121,70,173,127,16,58,40,64,207,80,187,33,239,109,56,146,20,105,137,9,126,126,22,59,21,18,117,54,167,156,137,5,189,233,70,147,135,151,145,200,172,32,208,16,6,107,250,204,24,119,201,243,5,202,113,136,63,142,93,139,32,253,79,100,90,131,225,245,228,205,255,109,91,125,233,19,133,86,91,84,22,41,74,236,12,3,27,20,135,128,231,153,118,208,202,60,215,42,7,162,1,239,153,65,151,70,213,235,243,91,244,154,206,122,14,152,204,35,60,178,131,233,116,22,121,9,92,24,234,66,195,181,71,38,120,14,130,135,85,221,136,161,167,20,205,236,204,86,171,20,12,114,253,147,250,18,190,105,221,82,231,227,205,136,18,204,40,126,177,10,14,248,221,153,78,114,137,243,216,16,255,163,222,0,217,94,200,193,58,227,60,157,104,247,204,28,120,175,239,160,131,142,88,138,217,31,251,107,35,113,206,113,192,251,33,82,40,50,236,225,85,174,179,35,233,197,245,10,203,81,32,105,207,30,174,4,82,214,204,46,221,98,66,118,154,206,154,35,239,162,120,28,123,240,27,24,47,177,206,191,212,20,182,248,235,175,146,121,114,15,65,56,169,254,27,78,92,58,50,226,83,81,168,43,70,10,6,221,21,117,7,12,249,13,71,223,212,235,242,144,72,49,114,126,155,138,14,213,201,252,136,205,54,215,65,252,127,95,83,171,200,222,196,221,91,72,171,76,83,205,157,101,136,10,126,83,247,42,102,53,124,202,178,212,92,92,79,123,84,163,86,48,164,74,138,78,72,203,86,141,242,171,25,21,15,77,111,119,219,52,237,213,179,148,189,254,75,111,108,101,226,198,95,38,50,195,136,18,48,92,110,179,107,44,218,31,180,2,93,99,126,153,13,147,191,222,14,184,94,113,208,202,145,42,216,200,17,3,250,64,116,49,139,54,102,107,245,160,220,42,3,174,241,127,227,106,59,27,232,124,63,234,198,73,219,39,103,32,80,203,212,187,216,135,7,88,204,146,185,52,102,75,143,158,111,85,225,128,246,111,214,227,186,6,23,157,61,216,104,121,56,157,152,252,148,120,6,218,34,133,63,205,126,102,72,52,182,84,103,211,159,2,253,93,210,61,134,169,0,103,150,101,37,75,172,168,243,10,112,167,191,21,98,245,33,215,81,53,235,30,67,167,141,84,42,210,93,119,159,1,122,104,241,22,57,68,47,169,193,103,90,190,61,44,224,189,21,88,147,53,135,169,45,174,218,18,7,130,19,216,35,126,11,145,228,73,153,245,219,39,150,1,96,56,164,143,13,61,164,101,250,228,175,250,132,19,149,251,14,175,255,81,200,250,20,23,163,38,250,207,245,230,166,201,23,175,171,61,59,145,67,50,80,189,177,56,20}, {97,245,128,229,171,89,93,105,173,56,255,68,131,89,98,225,219,32,11,248,241,30,158,141,135,32,77,114,120,161,208,216,142,45,44,95,47,62,115,143,74,114,153,94,16,117,234,128,221,134,117,193,253,193,45,215,240,151,212,120,213,175,185,141,157,63,240,151,106,102,220,117,115,114,121,222,3,25,6,179,167,240,217,150,86,212,153,234,218,237,206,241,41,145,191,129,217,52,186,164,231,132,106,210,133,42,82,202,167,51,72,105,169,207,243,18,221,205,185,30,199,27,110,80,126,238,114,121,233,81,52,164,111,27,20,222,113,175,136,60,136,195,253,22,178,29,237,199,149,123,67,39,109,62,68,5,172,230,92,110,95,87,191,173,53,128,222,180,61,231,234,247,135,248,19,168,133,219,252,247,38,134,176,202,4,29,65,128,181,47,88,214,157,45,133,197,197,203,126,118,34,167,89,174,187,29,255,170,241,59,132,120,85,140,187,49,171,31,134,20,47,161,76,192,30,171,130,241,10,176,237,216,159,23,221,14,227,210,123,25,133,55,210,103,255,247,90,169,113,30,176,10,244,64,27,38,134,16,175,45,111,174,221,151,234,125,244,127,231,93,101,112,78,63,60,47,17,34,248,76,237,43,226,2,228,46,101,177,93,7,15,63,198,184,30,41,42,146,76,0,145,189,31,37,192,226,73,2,34,83,249,179,37,215,15,91,237,152,249,146,119,111,48,55,142,204,173,236,47,197,146,100,149,62,192,81,64,203,191,152,111,87,96,218,48,32,83,48,199,185,152,40,61,68,173,178,104,22,62,55,54,73,251,187,213,75,101,49,236,13,62,96,10,33,101,235,139,62,254,17,51,249,224,94,80,2,16,170,229,96,19,175,69,52,67,177,217,178,82,3,0,157,140,13,104,35,76,196,68,140,43,244,7,169,184,215,238,212,98,1,183,101,102,96,225,225,115,108,93,72,214,100,238,211,31,65,74,88,47,177,187,162,62,53,86,153,228,24,115,58,45,156,4,178,84,194,97,170,216,214,175,95,26,178,228,79,1,236,121,179,238,196,146,191,41,36,85,248,100,202,94,20,137,164,146,19,23,137,254,32,72,228,32,154,72,129,195,199,238,188,82,112,196,47,131,76,52,253,67,205,226,62,159,182,9,190,119,135,190,58,112,156,119,72,244,91,49,248,217,128,13,175,189,142,53,254,135,102,179,18,112,160,175,159,248,162,25,116,168,235,26,199,138,206,214,126,28,225,247,53,64,186,202,27,2,97,159,18,32,96,114,228,62,73,61,161,245,171,106,165,168,140,99,234,252,170,193,183,200,32,192,120,168,128,59,145,14,136,101,173,21,215,56,114,50,225,72,232,165,206,48,235,214,70,117,3,14,157,92,62,174,158,220,236,107,83,4,211,244,239,243,227,96,131,217,117,33,243,64,237,185,74,132,201,225,247,145,249,180,224,230,118,122,127,0,143,89,76,217,160,127,49,127,207,119,145,147,240,158,166,103,205,134,226,71,154,202,192,194,72,179,119,177,128,78,51,104,92,128,19,48,162,66,103,137,17,39,25,209,150,142,146,70,132,81,24,75,148,248,106,92,217,16,236,82,136,120,138,32,124,219,245,143,38,46,72,11,6,156,135,82,121,224,215,206,64,200,81,86,77,153,53,31,144,100,232,25,6,187,160,133,104,81,245,237,224,187,135,89,110,42,103,25,56,39,48,4,162,154,216,92,106,184,203,205,143,63,206,133,80,28,79,71,96,246,128,56,122,97,1,23,10,224,132,37,78,72,25,166,102,208,171,13,59,117,187,110,215,164,80,204,67,112,38,144,145,13,157,254,93,105,91,135,221,9,175,111,236,161,82,207,37,92,100,85,254,154,151,129,169,215,242,166,42,51,215,71,137,236,166,14,231,2,75,93,198,231,219,199,108,31,119,98,63,35}, {11,241,176,168,3,187,54,170,104,67,126,159,134,53,132,12,124,226,152,192,56,104,116,63,207,228,46,239,63,231,73,172,183,91,99,199,237,224,15,41,164,51,106,95,139,179,132,228,4,5,150,29,37,114,178,169,124,233,178,241,14,189,62,216,174,47,97,157,58,125,241,88,242,109,56,93,20,116,84,217,160,85,212,15,19,201,34,21,132,211,160,26,119,18,147,9,15,175,207,68,156,181,78,255,30,37,126,3,223,221,254,1,89,8,92,96,4,18,25,181,15,93,85,214,155,224,255,226,41,253,188,80,94,94,15,14,55,80,71,46,83,152,136,211,69,233,185,197,96,218,39,76,87,178,121,17,29,218,179,17,81,160,20,185,227,121,2,91,191,86,7,141,109,5,174,127,34,111,168,29,214,16,244,98,8,246,96,24,31,174,199,13,41,195,194,175,53,225,44,6,103,154,133,169,90,182,183,52,209,171,46,156,12,83,150,222,207,209,130,60,185,69,18,250,15,38,38,49,222,94,200,60,159,71,54,114,239,222,71,255,229,181,13,217,167,161,10,87,195,113,79,78,225,235,58,48,195,206,159,215,243,62,180,128,18,218,113,198,91,120,150,96,176,123,59,174,215,202,181,124,194,44,231,227,15,13,246,89,217,236,236,38,195,247,125,238,17,246,143,52,42,163,221,91,207,87,125,115,147,93,203,235,197,126,34,187,98,3,93,72,68,116,2,228,118,158,85,78,70,243,123,82,50,199,96,180,37,45,16,126,74,99,87,202,68,48,63,123,127,223,33,150,184,133,221,61,105,113,181,217,102,176,150,16,136,101,237,191,7,213,171,244,250,167,12,196,29,189,3,211,122,212,11,219,26,124,223,33,249,230,53,124,99,135,123,203,20,188,155,15,125,93,200,21,96,181,6,93,42,161,17,186,138,102,111,47,68,73,83,120,66,45,252,159,46,39,135,154,146,164,164,104,100,191,5,171,47,95,53,1,217,51,50,229,180,47,148,46,139,52,183,0,199,43,189,63,34,152,15,161,8,224,187,243,230,150,132,32,122,91,24,141,248,85,234,65,2,78,133,204,173,21,85,92,17,252,188,169,0,104,58,153,167,91,212,209,120,210,161,247,47,47,164,249,130,140,113,146,255,193,104,11,135,127,97,5,6,169,161,213,75,234,113,245,234,230,105,201,117,115,169,120,36,48,126,136,192,30,4,187,135,201,2,165,125,18,144,101,164,230,27,136,219,62,213,134,81,234,229,100,36,19,216,93,203,184,65,175,129,45,245,249,164,132,214,202,66,26,251,94,110,218,76,0,78,173,201,28,4,203,155,91,184,94,36,192,161,239,98,125,108,22,219,105,31,11,110,152,145,115,86,189,82,34,191,86,13,197,12,219,128,24,64,100,236,116,221,143,51,168,245,106,199,121,187,218,244,119,19,255,189,92,150,243,161,191,190,120,71,119,61,72,205,171,129,235,217,245,231,115,146,157,93,220,49,220,242,16,53,180,171,231,172,175,80,127,202,140,83,122,125,22,48,146,226,20,40,75,230,78,248,190,237,3,45,170,154,126,76,34,230,22,126,3,140,141,67,150,189,75,137,80,253,221,11,15,79,16,175,105,212,154,168,63,139,194,59,254,130,198,203,99,89,84,98,108,74,95,123,31,186,12,30,200,54,146,128,131,205,171,56,195,229,128,211,131,95,204,218,204,74,226,104,106,90,99,69,168,143,156,16,120,1,130,71,167,71,56,97,5,86,108,164,206,61,183,30,159,242,18,254,129,30,238,222,227,136,90,15,14,117,115,72,147,145,49,234,73,100,93,7,94,100,204,197,23,91,229,15,240,71,6,7,121,144,87,204,115,104,14,69,139,211,12,84,220,11,196,97,67,242,68,162,112,57,22,231,111,111,96,93,91,94,78,128,24,123,75,87,134,65,40,245,251,15}, {153,191,212,239,198,31,55,51,203,108,237,223,29,194,159,88,237,223,205,6,202,5,205,17,132,65,182,179,96,139,112,227,255,191,84,143,191,29,90,168,89,200,165,74,65,211,60,181,84,100,202,57,80,108,58,35,140,192,169,39,15,23,119,32,202,182,44,191,89,199,121,1,22,248,6,236,252,84,48,244,240,172,94,61,94,233,236,172,196,9,248,94,25,230,44,89,91,24,117,215,166,157,250,117,3,119,152,162,113,34,52,127,15,61,105,116,43,230,129,135,43,239,85,186,23,70,254,140,244,209,229,69,90,80,79,157,226,34,55,5,27,3,227,60,158,248,180,96,177,60,203,138,3,206,97,119,111,111,180,238,251,49,142,62,72,76,209,20,170,177,84,173,161,124,242,182,199,96,176,235,136,162,77,10,166,184,187,190,77,33,92,243,179,152,112,241,44,25,206,16,74,70,162,224,80,210,38,226,198,241,212,122,8,58,170,196,115,43,228,37,71,9,196,102,14,122,106,70,241,85,146,227,125,111,57,38,236,127,244,142,56,136,209,6,232,155,24,223,89,162,141,163,202,18,129,126,129,186,3,121,20,218,184,222,216,128,113,96,23,67,69,165,138,255,43,56,90,121,138,245,210,45,231,227,162,171,110,89,222,117,255,94,103,54,53,193,234,112,116,251,173,182,25,28,123,123,177,66,56,54,202,68,112,12,240,186,255,221,234,238,177,209,105,209,6,28,81,233,73,202,236,224,242,47,53,87,25,177,237,4,69,143,200,1,189,175,108,197,191,161,185,9,4,223,91,160,2,212,189,16,122,0,66,155,187,88,92,128,225,41,78,40,204,106,113,209,108,106,12,101,212,108,208,37,245,27,68,60,148,125,150,173,104,12,12,254,184,151,165,237,252,177,150,120,188,119,17,20,245,133,137,44,187,236,103,90,249,251,122,60,94,201,3,31,216,161,224,181,9,39,139,161,195,183,5,207,188,178,26,205,88,160,41,74,38,39,78,117,74,66,150,105,161,147,87,108,179,223,123,100,64,208,74,59,99,40,252,46,170,222,149,186,39,43,100,239,102,104,114,237,141,20,172,108,254,135,99,133,181,78,77,234,68,104,201,26,68,104,93,48,9,92,65,94,108,164,36,230,51,7,11,210,22,200,150,100,76,230,15,239,150,225,65,151,123,121,120,164,142,102,21,26,106,248,193,154,19,166,208,155,214,226,166,210,244,81,252,183,248,68,16,240,228,97,115,179,81,89,226,114,175,2,201,88,229,167,82,118,137,34,139,236,183,162,172,53,108,108,159,221,75,103,129,85,78,54,21,70,236,247,125,178,109,79,120,4,22,25,197,135,52,127,198,208,159,136,151,19,116,68,115,83,215,182,1,82,212,244,178,8,73,172,229,105,162,248,191,100,102,225,102,198,247,122,130,179,33,237,127,108,230,246,39,182,193,102,102,70,119,39,125,140,80,125,39,252,123,172,137,129,65,243,96,254,132,116,180,239,203,199,116,79,117,11,30,243,171,144,111,107,68,62,121,127,83,108,237,178,209,148,132,30,98,155,222,239,82,148,122,194,19,81,228,8,160,122,40,108,148,10,3,74,159,115,247,127,169,95,93,50,222,177,177,148,155,147,86,200,25,122,107,232,167,87,133,232,113,138,89,72,185,148,89,207,140,135,167,66,35,84,139,21,161,254,96,59,186,228,191,8,63,55,96,147,156,210,78,122,230,161,216,42,194,76,165,85,219,207,233,160,243,203,45,172,35,253,241,66,136,71,57,199,236,246,218,106,1,112,205,99,230,201,183,103,118,1,38,6,181,68,253,49,3,25,205,212,89,112,184,175,1,156,12,41,23,32,30,122,140,27,9,237,37,57,49,36,30,232,209,160,28,124,127,76,129,48,252,170,98,69,192,158,82,44,177,252,208,61,231,97,12,74,179,28,1}, } ; static const int16_t precomputed_encode_653x1541_x[precomputed_encode_653x1541_NUM][crypto_encode_ITEMS] = { {-23786,14210,30180,8105,13150,21276,-8289,11107,-25022,31483,-5443,11880,-69,31327,-13439,1985,-25591,-19825,23156,-3868,-14611,-22669,-28577,18515,10802,17330,-22299,-15520,-17076,31670,4627,10185,22332,-28054,31736,8993,-6555,7353,-1581,23738,25027,-19523,1248,-15696,3914,15935,-1539,15507,21410,-596,28130,14042,-26386,-3000,-24687,-31734,32459,27443,-21387,-244,-36,-31838,-1381,-26223,24582,29725,-9607,16695,25127,-28083,6694,32033,-3232,-31972,15159,-6034,894,17644,-23077,-31688,-26695,-25880,-19288,11256,-7589,-17301,-24332,-30143,11081,32460,18137,-6692,-8984,29440,12404,-18488,9115,14050,-1483,29493,18373,5005,-8639,2746,25268,5236,25441,25569,-3050,5262,-10788,1738,-3268,-13498,-27224,16622,29664,14869,-2025,-6285,-137,20012,13888,22309,16548,31842,-4257,3436,16607,828,-21108,10573,-29171,-14867,32217,14065,28054,-9631,-25425,12023,28904,-24015,27997,29116,-2238,13549,-25527,-16172,11909,-10275,-31526,15827,-29514,15729,30234,7734,2100,-17032,1326,-7047,-19785,10232,8397,-17311,4997,-3197,-6551,-27944,-10210,-29893,11593,11464,17545,-30555,-15521,21342,-4740,19935,27331,31140,-28898,-27782,31919,18565,-1384,15107,4523,-2054,4791,-31462,-30197,5663,-5166,13965,-1799,-19818,-29825,31250,19435,9114,18668,-30621,2556,6373,9478,8499,-673,1848,-10492,-30843,25394,-14370,397,24754,-1433,-21865,-18421,8679,-12331,-25750,15780,20430,-22826,-2673,21846,-26739,-8908,-26062,12978,27048,2229,-9449,-31631,28718,14866,10235,-24076,11236,22437,1513,-19306,6457,-25165,24453,-12731,-2942,7463,28471,-964,-3599,-30713,-5381,22679,-29131,-22337,-31364,-11282,-21639,-32040,-12595,-20860,-9574,4037,-11707,-7244,-23292,-30627,519,2937,-16271,-15416,19137,11316,-13388,-7757,-4325,32681,5916,18992,-15770,-13652,14287,-28795,-2349,2412,26382,18945,31428,-23258,-3626,-21419,-20292,-5467,30131,-10986,-12937,-14162,30150,3962,-29140,-32567,-3111,-5140,7097,10253,3054,22489,32230,-27896,-705,-7978,11149,9659,-23365,-1738,-32185,16155,5338,-6119,29477,25979,12819,30651,23035,-28688,4563,8677,-12971,-28930,-9685,20806,26784,-6715,-5406,18337,-32662,4671,-19597,-5014,3071,29812,22837,32069,27458,-25683,-12160,6962,-7603,-1735,-21258,-19779,5405,10875,-10568,-31790,-17332,-15068,5288,5773,26616,-22705,-22260,-31909,-10196,22623,-12649,13140,15145,7077,31871,-3535,-11516,29977,-16927,29032,-31680,-12040,-15411,1225,1087,-15674,21940,-721,30979,-32518,-20402,12601,-13727,-4701,-29281,12928,-22282,-5643,-31718,-6571,23938,-15258,-30648,17158,-18835,-310,4913,-16153,-1800,23973,11458,2523,-965,12889,-26142,-6392,14752,28637,-31488,-10612,16076,-214,-6592,21568,26990,-13614,-15561,10633,27946,-22829,-26595,29583,6186,8063,-26293,16549,-31445,24925,26479,22488,32087,-18161,-14577,29038,-22117,3314,-7863,20344,27006,-14224,-348,-16466,18003,-30956,1556,-32190,-6060,-16260,13793,26115,-11175,-21086,-21620,31270,-14246,-27707,-11289,-30279,3866,8323,-6214,-13543,31746,17611,3535,-9197,26935,31192,32354,-19777,-16491,13939,11411,-9987,139,14353,-12501,20558,28062,-10689,24312,-19484,23280,-1496,9993,-21526,-25000,-10037,11904,-18378,-17941,-25087,22634,6778,24718,4245,-12794,23044,-26669,-2637,-16341,10630,-2453,23042,11883,8857,-17485,-23299,641,326,-10921,19100,32449,30142,-839,27918,-8085,24531,-27764,18436,5740,32260,17104,-26927,-4124,18593,-28730,433,32623,-21558,29129,-2543,18761,8486,2141,8809,495,10152,11621,-4234,8664,-3573,-6575,91,-16020,32338,17629,-24737,10610,-9730,-21697,-1589,-16737,18960,-3368,-27387,-31114,-8605,20053,15194,-5551,12415,24403,-11955,-19226,10604,-18081,999,6107,9829,31481,623,19906,-3838,-28071,-30267,6409,10753,29554,10876,30501,17819,-16748,25363,-24240,-16384,12366,-17794,28849,27192,9437,16810,-4630,23400,10570,-18023,25356,27448,14225,27201,-12816,530,-13806,-19530,10384,1524,-11171,18818,-12899,23715,-3141,21696,24992,3009,-14469,21989,1077,-20785,-10877,-13290,2587,-15031,-27811,3371,19162,-8037,-1162,-20578,-15088,-12415,-10836,-12224,17248,-29552,7517,26100,-32215,-6368,-16101,13094,-20947,27270,22190,-27955,12717,2062,-16175,23256}, {6720,-9997,-27559,-30136,-15722,20010,-22401,-5578,-10394,27110,26667,22822,5126,14179,14819,23667,-5020,-29261,18386,-13224,-9074,32681,-12155,419,-15791,-9824,-6128,-30779,32697,13122,26235,2766,11441,-2009,18945,27099,-27154,29394,-30901,-4940,16028,16134,17909,4316,-1384,9122,5587,-20290,14118,-29014,5702,-23911,10489,-32367,4600,5441,-7574,15917,26838,28975,27299,-8924,-31524,-22141,-28586,27760,-18348,-31280,17113,-8677,11773,-16999,-27501,-29191,-947,-18878,-23240,19610,-24463,-16122,15393,29216,-11981,27086,-30925,11699,3519,-23285,26691,16785,-16133,17627,-5909,-11585,-13986,24883,-1961,1593,18313,-15773,24791,5603,3168,22005,9462,-7686,-7671,-1940,28082,-28788,26812,-4830,-17761,-21909,6208,16764,-5399,1151,-16293,15970,15376,12303,15898,14020,-26045,11510,-287,-3961,28936,-8207,538,-12159,-30549,-3480,15006,5122,-12056,-22364,-18419,-7321,308,-11864,12025,-23128,-1153,602,21722,15685,32626,22317,27169,18962,29179,4196,-1019,6664,-17804,31053,-5124,4147,-23432,-14779,21378,-14787,1387,-28775,227,-16805,-30064,-25276,20049,-22474,16099,-29707,25398,176,16190,1547,11308,-30438,15050,8219,10190,2249,-21711,14345,20931,-11529,7232,15968,-12730,11781,5154,-9149,-15113,-17687,11366,-9488,-21486,9817,18127,-8612,-29889,30576,7859,14870,-7998,13343,19533,1440,29016,-25292,-30685,-2062,1188,-7136,-19784,11013,-24128,16370,21372,3954,8451,-12795,23245,25859,28090,-27772,31779,-10055,3311,26786,12274,29724,-9080,5723,-5595,12233,9882,12012,-14235,29737,-20884,13147,9708,3188,27283,-12378,8036,26214,-10738,6840,16604,27307,31221,30841,-25,13963,-11091,-24568,-25182,7418,-24432,115,-10089,16567,2979,13699,-20940,-22992,7122,-30379,-8001,27518,-25937,-20366,-1679,9013,-27217,764,29722,17938,10078,-983,19596,-25737,21036,29286,-3028,-4208,-26407,16353,21973,4854,-4692,10062,29953,-5806,-16418,-4481,29951,15547,7338,25533,21068,16120,433,-6609,-31786,-25865,-16241,-21434,-29022,-28350,-13789,-29776,20602,3200,-2030,31699,25614,18891,18974,-28172,31526,32664,22131,4938,4398,17065,18295,611,-24322,18661,29038,30082,-18888,23161,-19006,24208,-23159,26270,-29495,8856,-24204,-13259,-22966,16257,-12978,12072,-12865,21459,-4506,9678,31443,-13535,-1260,18318,-14536,-1611,14396,-22215,-13096,-32737,-25642,-20116,-15741,8282,10092,-12724,-743,-24160,-22074,6497,-32184,18334,-27456,-7973,23115,-22112,-2747,25070,31899,-19722,-3150,1434,-9645,-2659,13295,11239,31762,-6239,-10136,21697,-18851,26464,-14190,-31293,-12387,-3910,10051,-18687,-22238,27427,-28524,7186,-25632,12650,-29012,-7507,-8485,1657,-26542,-31255,30651,9120,4001,18642,19181,-7697,1324,18650,4217,-6871,-32578,32007,-15438,195,-28015,26138,-32000,19173,-16383,-32518,-32038,-12830,7324,-3335,-17364,-17718,-14469,-19613,-23247,13393,30244,22253,6160,-31127,27373,-30347,-20622,26953,2587,10153,23327,-22499,10996,11931,-23291,-260,31624,-7877,-24251,-19755,-26813,-26498,-23828,-27023,9272,-14886,3897,-32469,-22944,1083,-32593,-12460,13531,32280,25725,-26948,5472,17361,29066,7321,14701,2913,16654,17000,31402,-8899,6049,-11923,-5635,-13877,-32004,-11526,24848,17824,-124,-22747,-19296,-11913,-19560,-9962,1461,23143,-15315,-10574,-13091,28331,-13995,7219,22068,27149,17073,-20614,12206,-28198,-6166,14823,25654,-21351,-25761,-841,-25378,1567,14467,-20474,26840,-31192,-19578,11716,-7010,14188,-9136,-5323,-23302,25528,-14093,-31334,24541,6102,16077,-32337,13277,18992,21805,-8066,-17249,19351,20678,-24234,9760,27186,-22636,-16092,25150,-21938,-11694,-5149,1190,13107,24369,7638,-13353,-5186,14340,-27294,27606,19494,-6198,6586,-27851,-30625,-22920,3045,-28560,-20349,22108,-27311,28589,11385,-2024,-10726,7620,20964,25463,8886,31884,29937,-905,45,-14468,14177,22005,-31660,22060,28805,16734,-3710,26006,14387,-10855,-24397,-5644,16706,6180,-1220,347,-17881,22503,-4423,22816,-788,5568,572,-8054,31730,954,14240,17653,-18644,26593,28421,2387,-3789,27643,-29521,20662,11129,-11589,-17448,-12366,14795,8524,17222,27031,6001,-18103,13175,24855,1597,-8885,-1439,28794,-18074,-30364,-20474,7457,-24197,22211,30952,-19077}, {-146,30800,23953,26374,-10242,3941,-18263,-10230,32606,-9445,1848,26259,4127,28335,9123,24331,19572,21946,24053,32189,-12191,-9779,-5558,23679,2861,-1880,-16002,-5528,9189,233,-23375,14660,-18972,23063,21524,-10523,23365,8980,26391,5019,26667,12256,27141,20125,-7153,-24107,-3849,24199,-25653,-8320,10985,-7699,30710,-31568,20939,2453,19088,14338,-25227,14856,-12066,31634,24163,-32230,-14715,-15845,20289,2647,23105,8386,-25480,1266,-23268,17078,-15584,23110,31903,-11907,-7761,9045,29317,-1879,-18446,5507,31450,27611,6734,28297,-1559,-31918,-29029,-10272,5300,-27458,17373,29066,-24633,-4345,32036,-22947,21741,-7080,4275,-32383,13511,24910,-28136,-7724,22495,-20681,-31421,28804,-813,5145,29435,3515,11473,16956,589,-32441,-7889,-11323,21056,-23612,6608,-9688,-10625,1277,18528,-5655,-31806,5206,7797,-14974,-12361,18124,8072,-29132,4044,14875,2884,-899,28975,17138,-23763,-11747,25298,15275,-564,5210,-14907,-22875,-5696,-14830,29808,-20029,-19108,29210,15015,8538,3227,-26103,-4432,-657,-23068,14002,-25612,-28512,28230,6237,28161,25050,2569,-31884,17873,6927,84,29957,-28996,-174,21873,-22870,-18989,1708,-3084,-31370,29111,12974,-22501,-8065,2317,-11472,19487,28207,19328,-1564,17183,-14736,27797,32518,2645,24697,27898,-4145,32428,27244,9173,27600,-3188,-21572,8745,22331,-16700,3205,-16898,22935,-16053,-19035,-9078,15972,-7043,24032,25395,31574,12879,6072,24154,12116,13439,28183,14543,19414,-29252,10045,-32492,5480,-822,-2693,-4802,22771,30778,21086,1071,20213,-14190,-29628,-15932,26860,1440,11626,-25469,-13721,11003,-10912,-28811,-27285,-26945,27832,26458,-25883,27371,11119,-12848,11622,9865,-1000,5784,-953,-20228,-21143,7289,25989,1680,24061,8174,-8608,18308,9944,-31288,-15277,32347,30030,-24952,3129,9302,-15710,-28660,-19645,-30325,-15761,28506,-909,-19009,-20363,-20838,18103,10243,-24781,-16917,-12927,9604,30711,-10920,-11754,23935,4220,14934,9608,-11992,20947,-20387,15756,-20548,-28904,-1623,-32626,-27452,19262,-11508,-3532,-30387,10164,-28646,7100,6580,13282,29552,8377,25956,-3576,-20767,24956,1442,11228,-1956,15902,13414,1573,23770,9782,16870,8655,-2721,11939,20166,-27628,30253,-15320,-30362,5762,-26684,-19631,12644,-14751,-15611,1903,23239,-18837,32216,32735,-11337,-26743,-12847,6975,6130,-2725,17785,20919,-4459,-26859,-25134,7830,15424,19854,-32153,-12198,-12400,-19114,-6225,32217,14876,3487,-28309,11398,-29446,32582,-6161,-10022,30998,-30306,26206,-22961,-15347,-4430,-7708,-14303,-26245,31791,-3535,5723,31749,-24213,-8270,14387,24911,22585,-20465,20778,-15295,23893,-15255,-16354,-24766,-10815,1392,11113,23119,-16382,-32138,5499,-22732,26072,1270,-9792,10915,-24505,2266,19662,-520,23178,-20347,-15670,-19762,-6579,-7602,-20582,26904,11485,27946,-18512,17916,14955,-2810,21692,-28925,-18683,8720,2700,14994,-12570,-31137,24061,-23802,-31934,-3907,-15478,-26390,-4324,14573,-6908,-3208,20620,-11580,-27095,20578,26539,10148,9987,29861,-1900,14185,4343,-9449,-26492,19509,22184,-22996,7760,-6116,-26380,-20963,-30697,8566,-8625,22171,23369,9025,29756,11324,9195,8923,-12702,32420,13280,1595,12937,8855,2642,31605,-13632,-31957,6484,-6823,-13493,10047,9024,-14967,-14383,-26341,32433,18339,14480,2240,-12421,10355,-16494,-16830,-14056,3414,20433,7977,6686,32609,19826,20120,-9810,-31448,-7515,7023,30344,-32111,-23097,-10511,19264,15156,-4660,-17859,191,-25772,1585,-9722,26964,4780,4318,3292,27805,-26029,11007,-32485,29719,31799,-28636,-15711,-6257,-15928,26698,-20905,25634,12032,16812,25622,-31893,15679,-17299,-21369,10909,-21958,-802,7810,21738,3096,13359,-29429,-26535,8499,-2266,2132,29137,-1541,-784,27535,29342,4222,-2211,19496,21862,-31073,572,14899,-29022,-11543,30709,27068,-10684,1335,-28131,21565,-17956,-18932,15486,-26816,-6958,21729,2096,-20773,-25977,-9655,-6315,-30134,-7116,-11027,31742,21334,-614,-2047,-32448,-28677,21485,-24298,13256,-29631,-25752,4285,28717,12193,-28335,30184,-9705,-5464,26195,24865,18942,-20915,12273,28234,-12767,-29061,-17229,26556,18994,-7388,15694,14524,-14260,7577,3855,-17626,15227,-15376,-5001,15866,-7590,-27826}, {-15405,-3437,-13617,-9456,-30823,-3135,-5650,-26943,20620,-31046,28048,-7338,3025,2494,8559,31694,3980,88,-26135,-17652,14913,19732,-2378,-30527,8284,-8968,24166,-24691,10338,10924,-25977,30997,15062,-2057,22402,-26164,18294,-23356,2052,-414,28207,-3119,-17618,22004,-19571,12223,19180,15368,-14212,-9218,-25002,-13295,-27968,-11864,5439,5310,28578,-15700,1994,-11022,29679,-29835,4971,4050,-16311,-22498,8824,-22596,-18499,-31071,23286,17234,-5809,-17468,19219,-6496,10652,19216,-2473,9754,-6981,-19703,24895,4403,8177,-21714,-15830,-12310,-24402,32664,-14787,-25595,-27813,-10741,-7972,-11051,-10338,-15552,15655,30510,15496,-31092,-20888,24021,-21635,-29116,26519,-7294,6759,26120,11136,-25149,11149,23141,12030,24839,9337,26133,27497,-31594,-2024,9932,-18262,-8629,-22713,25038,3139,-15310,11923,-5752,-27153,-5730,11325,31752,-27206,-1003,11974,14652,9785,-11468,-29449,25310,2517,-27133,-18844,1985,7606,17156,-5511,14208,-13558,23326,-24662,4206,-4145,-1329,20155,16574,-5180,-20737,-81,-3943,1912,-17131,32681,-21333,4415,-1313,-30870,19127,-12080,-23819,-26974,31284,-10856,-12477,-25496,-13119,-5704,-18061,710,24066,29494,7104,73,-8557,-14991,-29689,-16043,29547,12806,25543,26818,5489,-6946,-5360,-21915,22265,-15987,-14189,28735,18307,8775,16253,-8459,13613,-29704,-27018,9334,-9807,-6398,-21490,12693,-17917,4984,-4848,5505,-26280,29610,16211,16196,1139,1581,-22722,-24594,57,-30804,5013,-25783,-31035,23173,27993,29440,27771,31613,-22882,7869,-20292,-5135,11802,-23966,27391,6368,-15215,-27911,27898,22602,3932,8332,-26593,28390,-6616,-8580,-23585,-16810,-27998,-10449,2178,-30927,-22879,-25159,27127,17995,-19230,23835,3165,-551,-32155,22328,10219,-12353,8190,-3299,27260,-23120,-21012,-8579,4303,29043,-25933,23310,2158,-31590,-16471,21660,15152,15650,-14364,25123,21943,28987,27829,-7048,4224,-17538,1205,-23512,-29912,21296,25262,28764,-4152,31334,12806,3762,13529,-25093,-11811,6875,6511,-1158,18525,20141,29977,1860,1377,-20233,11419,-9495,-21720,-24949,-7511,18026,-31536,-4661,-31655,-18766,-31389,-19750,13407,20654,-9672,3591,-18774,-3498,-5593,9775,-1859,-8164,-28937,13252,22994,-8271,19160,3128,-8778,3495,-19881,25503,-23087,-25736,-10162,-11884,-16709,-12477,-6669,27305,11124,-10979,-1252,-28428,11804,-13871,7577,-20830,2874,-23278,-12905,-1166,7547,-27787,15186,31686,30377,-25026,23699,9970,-25044,-7128,23609,2990,-30859,24514,-12647,29913,30215,20839,23259,-10853,30391,17891,-19413,-19972,30691,-26348,5176,10632,-1241,9393,-13343,-12279,-27254,-26062,1305,21606,-16569,3620,-31981,-15690,21357,6656,12613,-29457,-12883,-5274,17211,31939,-5045,3931,-7663,-18960,10722,-11222,-21444,-28110,-12555,32170,31228,8597,26588,-29507,-2639,-17006,-14047,-18909,12300,-10637,-23187,22172,28912,-3213,-2699,14051,-23905,-41,-9046,15669,-21664,22827,-9222,18502,31030,31738,8252,-28107,12927,18791,-4746,4981,-5507,30962,-17631,-1129,30256,23050,-29577,-30610,-5235,10616,-14177,-25385,3915,10696,5061,31821,107,-28474,-11113,23841,9340,-19438,-15335,27099,20767,4005,-23005,15971,11294,28310,-2252,-22322,-6251,-17520,-12461,25294,26863,-13701,-3509,9853,26639,28827,22882,-31909,-13391,-24222,6548,-31753,12396,1214,4745,22020,25926,29378,-7545,2992,-8736,29423,-17460,-11348,8891,-29171,25807,22340,27452,22665,3611,-20541,-25102,-13667,29941,-3044,-6694,21840,6958,7663,-22729,-26248,14626,24838,-23213,11091,-15495,-4667,-31638,32063,-17088,909,-32035,-17559,-12751,-19678,-23991,-1450,-31969,-10922,-4968,4115,-13291,-22533,8540,811,-12280,13510,-9849,-78,19603,31665,2194,-10866,-20109,-10223,18936,17462,3071,22680,-29986,-25401,11710,31400,-28744,12747,-10954,2190,24138,32578,4703,14564,-13535,-20882,-7061,19938,-31372,-12192,1601,-29451,29606,14077,20287,1968,4665,-18209,-1840,-6762,-4074,1555,-14382,-23458,27896,-17792,17348,13625,-26209,23715,24696,-24048,-13178,-30425,-27527,5013,-15977,12265,-20053,3,30499,-30957,929,25444,-8211,-7954,-474,-28862,-10454,1753,-7218,-23804,-9755,19132,11719,-3723,22283,9963,9014,30659,-23778,-30419,-23965,-24265,20487,-19408,-7691,13895,-4560,-18204}, } ; static void test_encode_653x1541_impl(long long impl) { unsigned char *s = test_encode_653x1541_s; unsigned char *x = test_encode_653x1541_x; unsigned char *s2 = test_encode_653x1541_s2; unsigned char *x2 = test_encode_653x1541_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_653x1541_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x1541(impl); printf("encode_653x1541 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x1541_implementation(impl),ntruprime_dispatch_encode_653x1541_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x1541; printf("encode_653x1541 selected implementation %s compiler %s\n",ntruprime_encode_653x1541_implementation(),ntruprime_encode_653x1541_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_653x1541_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_653x1541_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_653x1541_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_653x1541_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_653x1541_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_653x1541_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_653x1541(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x1541")) return; storage_encode_653x1541_s = callocplus(crypto_encode_STRBYTES); test_encode_653x1541_s = aligned(storage_encode_653x1541_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_653x1541_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_653x1541_x = aligned(storage_encode_653x1541_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_653x1541_s2 = callocplus(maxalloc); test_encode_653x1541_s2 = aligned(storage_encode_653x1541_s2,crypto_encode_STRBYTES); storage_encode_653x1541_x2 = callocplus(maxalloc); test_encode_653x1541_x2 = aligned(storage_encode_653x1541_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_653x1541 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x1541();++impl) forked(test_encode_653x1541_impl,impl); ++test_encode_653x1541_s; ++test_encode_653x1541_x; ++test_encode_653x1541_s2; ++test_encode_653x1541_x2; } free(storage_encode_653x1541_x2); free(storage_encode_653x1541_s2); free(storage_encode_653x1541_x); free(storage_encode_653x1541_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_653x1541round.c0000644000000000000000000010404114705505543023442 0ustar rootroot/* ----- encode/653x1541round, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_653x1541round_checksums[] = { "d2bf70e2ae1f712bcc35b342c7a4b9ca35dd41f3bc48badd81cb089c820a3e8b", "a81054ade0c8798b3b305e7ba21c764c63f4ce82a5f318828adc6a99c42fd820", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_653x1541round_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_653x1541round_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_653x1541round_ITEMBYTES static void *storage_encode_653x1541round_s; static unsigned char *test_encode_653x1541round_s; static void *storage_encode_653x1541round_x; static unsigned char *test_encode_653x1541round_x; static void *storage_encode_653x1541round_s2; static unsigned char *test_encode_653x1541round_s2; static void *storage_encode_653x1541round_x2; static unsigned char *test_encode_653x1541round_x2; #define precomputed_encode_653x1541round_NUM 4 static const unsigned char precomputed_encode_653x1541round_s[precomputed_encode_653x1541round_NUM][crypto_encode_STRBYTES] = { {32,99,173,238,170,58,22,225,172,196,119,166,57,45,163,22,161,87,53,6,131,62,90,52,210,178,36,176,12,246,102,97,70,156,106,153,23,186,130,58,169,156,233,127,26,225,124,224,45,181,218,67,171,45,113,191,135,30,21,251,244,236,29,57,43,9,232,145,175,94,89,16,54,4,181,134,181,175,57,159,137,127,51,35,10,50,89,121,25,108,39,201,107,158,41,89,58,16,62,109,196,128,173,59,116,136,182,176,77,84,34,16,223,110,212,107,60,185,220,117,146,123,156,143,103,184,12,55,88,66,196,103,13,157,164,119,166,29,126,41,130,36,144,209,44,171,2,87,103,34,108,133,9,94,211,176,193,30,119,211,41,197,237,53,201,229,191,128,35,47,11,159,88,78,22,32,122,78,85,118,87,225,46,75,168,28,124,117,127,209,208,149,7,21,100,231,153,154,241,31,171,19,21,133,184,218,89,73,7,7,194,163,106,190,53,186,71,128,229,18,216,108,171,221,168,25,132,153,52,183,183,33,185,166,158,82,131,157,227,133,16,142,131,218,232,112,247,141,1,35,130,230,195,169,144,180,54,91,195,121,210,89,31,104,235,174,96,180,200,167,23,83,86,173,81,94,66,102,101,104,83,86,47,32,172,15,96,200,47,18,213,172,223,150,153,200,95,115,220,79,70,79,203,132,51,185,163,107,3,234,190,59,236,51,232,98,178,133,146,68,253,231,167,211,139,203,110,236,119,80,3,172,132,28,78,45,90,128,109,120,30,14,37,231,201,145,66,23,164,95,60,204,27,73,198,5,149,208,149,135,48,184,159,139,29,211,0,129,215,214,125,243,70,50,252,162,96,227,155,226,40,4,50,202,179,217,70,151,126,194,113,8,21,116,100,71,238,142,174,162,244,80,71,171,200,145,98,119,40,59,71,72,83,200,112,109,128,223,122,21,107,68,13,54,171,65,251,71,191,145,98,196,236,91,101,210,196,28,194,138,155,159,133,47,244,66,4,104,232,124,114,168,87,233,202,150,253,49,10,175,210,41,19,227,81,245,193,116,63,150,212,176,85,0,79,13,199,205,211,108,154,41,190,62,176,188,62,161,223,87,152,49,8,216,8,146,63,137,136,235,10,224,78,183,226,186,112,213,152,99,74,184,151,21,173,254,217,215,30,85,159,0,35,190,94,117,67,1,173,222,134,80,233,122,147,170,108,34,82,11,159,177,13,106,162,228,84,248,254,198,77,88,114,89,180,40,248,164,237,79,237,102,190,23,62,175,116,215,63,201,108,60,245,92,40,119,112,220,1,250,104,162,79,183,101,219,56,128,251,239,120,74,230,103,167,48,55,240,20,130,103,52,103,189,251,239,128,25,15,238,30,116,108,61,1,122,184,84,233,224,216,87,33,232,120,17,34,198,61,184,216,252,150,57,52,173,41,83,238,53,77,212,44,207,136,162,46,147,233,41,179,20,0,127,223,49,18,2,171,163,8,105,155,128,223,203,163,20,187,92,243,220,20,229,94,85,247,237,156,23,228,254,128,253,114,130,141,149,246,235,170,148,105,3,91,2,224,185,29,92,126,16,58,201,90,237,63,197,240,105,187,63,228,95,85,76,182,62,25,52,255,222,163,207,85,210,174,202,99,39,171,77,157,143,102,10,10,120,138,66,114,250,135,59,140,181,179,232,91,219,247,73,242,69,40,245,234,85,95,56,86,144,65,75,172,219,28,28,101,211,127,243,49,176,144,161,11,215,13,123,144,20,163,107,228,101,87,99,232,201,0,175,28,198,86,15,106,53,144,52,184,146,56,28,196,13,16,86,51,118,233,201,213,98,235,129,190,56,72,32,192,189,70,110,103,114,48,88,233,224,111,2,154,155,138,141,179,66,253,37,128,112,88,42,80,220,82,15,252,102,109,139,48,171,144,147,93,127,13,165,189,187,137,34,22}, {211,156,35,196,20,204,225,201,101,97,11,223,156,148,88,117,193,48,222,16,24,205,0,202,231,143,65,74,179,5,217,13,27,219,244,138,142,148,198,142,177,143,231,147,43,200,166,201,202,238,245,148,110,84,115,118,69,11,54,172,195,121,179,175,32,243,135,241,13,38,89,157,88,28,164,176,9,249,27,72,4,21,118,148,134,82,102,110,249,165,214,86,89,139,139,139,251,146,146,246,47,234,222,136,251,25,96,203,40,81,243,35,32,188,100,20,122,20,107,189,46,3,236,160,119,44,175,20,107,19,66,177,64,16,62,185,205,39,161,43,2,0,125,191,236,214,73,126,118,136,102,221,236,10,179,94,51,133,170,77,191,30,54,20,201,136,201,134,195,162,192,242,228,110,242,207,51,184,178,150,223,131,215,71,67,59,240,119,48,65,157,77,49,140,115,86,18,224,192,21,22,12,244,247,32,156,26,45,122,112,190,118,163,226,246,211,108,159,246,131,4,160,79,127,134,19,202,145,32,34,88,171,246,145,16,36,62,16,79,193,247,85,79,23,91,250,91,178,120,170,104,73,133,133,51,10,70,202,146,225,150,157,125,218,157,128,84,180,185,63,119,126,153,160,46,111,208,97,27,50,2,149,210,250,18,242,242,89,226,124,210,67,21,234,98,89,212,83,215,85,63,59,171,201,146,64,173,69,143,76,41,70,198,68,76,46,88,120,217,253,58,140,102,54,90,137,137,105,234,2,242,133,194,180,167,176,255,94,9,121,247,231,30,124,113,62,154,41,162,202,166,70,129,74,110,89,168,36,25,179,206,212,238,251,188,254,188,13,154,110,44,164,147,57,92,167,143,183,231,169,84,198,52,219,89,185,179,48,184,44,113,46,235,83,111,232,242,203,15,117,231,109,162,70,190,234,19,27,35,167,170,163,94,100,16,4,152,193,202,243,226,209,138,223,189,134,242,44,55,184,70,95,232,129,153,147,28,255,44,15,250,251,142,214,241,253,26,123,71,12,38,226,63,53,104,49,235,46,142,185,199,8,45,25,221,25,2,13,76,142,175,165,235,126,10,0,128,211,10,4,0,22,137,181,103,229,169,30,197,145,14,121,212,132,44,101,102,13,53,164,230,111,126,93,235,84,117,245,219,121,84,222,102,216,195,4,30,37,132,144,94,80,185,13,59,37,167,136,129,217,110,210,6,203,183,89,171,53,86,8,44,101,27,169,225,71,61,44,69,121,218,85,125,115,160,135,169,190,201,115,15,142,126,229,58,15,67,82,27,101,116,224,162,108,159,115,153,16,3,107,177,114,95,76,64,160,187,244,61,228,139,211,33,89,14,224,52,71,13,135,168,245,53,129,151,94,193,2,21,156,117,112,12,236,38,124,159,108,92,19,150,80,137,152,119,50,92,172,27,153,22,17,189,226,242,159,179,135,210,99,117,115,21,172,42,149,224,133,210,2,229,218,164,1,79,78,0,9,52,249,171,160,106,240,211,148,47,130,10,151,55,145,141,146,255,89,5,253,231,97,224,2,218,255,107,231,134,30,181,87,67,104,4,72,229,189,221,149,88,7,168,83,200,191,223,180,21,144,147,22,64,90,45,232,88,45,90,26,56,246,66,197,44,108,157,86,0,215,147,65,89,4,115,243,38,227,11,39,206,43,208,53,6,76,150,91,29,57,9,175,247,138,4,177,193,169,125,241,100,69,249,3,25,233,220,235,59,202,130,196,198,85,168,204,5,64,214,190,106,193,21,22,229,250,243,100,200,7,81,11,40,225,242,74,222,68,129,101,241,131,167,224,111,20,11,76,249,16,206,255,97,73,36,53,65,147,126,90,133,48,146,12,254,104,109,89,145,208,141,167,136,105,93,137,162,2,220,186,103,72,253,34,92,141,104,188,8,127,219,185,254,147,23,64,174,207,231,102,146,87,223,190,90,64,27}, {235,218,92,61,128,86,209,13,124,219,179,113,32,116,249,183,75,245,196,112,222,100,79,123,98,10,228,57,117,229,136,190,246,42,93,234,94,136,31,25,29,175,28,93,245,79,216,231,153,62,177,199,101,29,7,160,189,46,72,248,134,128,45,219,26,187,138,233,100,40,58,236,65,35,160,245,100,171,125,55,223,61,222,86,13,35,41,16,127,50,93,172,69,115,93,154,198,191,86,197,199,177,161,182,39,213,52,130,52,105,158,211,239,20,178,204,228,40,176,3,84,13,179,178,138,16,240,216,253,73,99,223,246,47,165,159,135,79,246,0,84,66,215,57,102,237,38,188,87,178,244,250,241,105,18,70,58,44,240,43,251,142,147,90,178,236,222,122,95,67,100,246,58,233,58,112,123,22,117,39,166,144,189,101,156,47,112,248,66,82,139,104,197,13,89,13,208,215,51,130,248,178,77,182,236,210,78,67,110,133,109,35,186,183,81,174,193,134,24,87,25,3,178,103,239,210,234,169,139,219,193,5,141,208,149,41,117,246,186,225,8,237,137,157,158,17,47,81,229,204,194,134,106,15,92,253,170,140,50,254,132,234,190,140,126,204,255,32,124,83,1,55,101,72,84,253,231,218,13,104,147,150,210,26,84,76,82,183,204,80,29,164,13,55,0,172,70,156,8,218,169,56,122,197,149,124,211,149,221,62,58,25,202,159,197,34,136,22,87,126,145,176,150,164,47,250,175,235,61,101,55,242,234,183,14,140,129,34,133,151,165,176,162,131,147,142,16,74,233,213,49,235,254,65,198,106,190,146,20,100,157,214,96,47,64,155,179,59,182,115,255,26,32,236,102,72,81,145,176,192,124,81,56,34,170,146,162,243,221,7,207,1,165,26,236,67,75,118,37,138,0,171,80,24,176,47,252,121,168,223,143,177,189,68,25,158,96,188,160,72,148,182,164,28,221,72,254,30,37,39,167,21,232,95,29,219,215,7,79,99,172,252,9,253,210,245,41,237,188,178,180,152,107,119,171,161,155,44,45,172,45,177,151,182,204,65,137,103,235,180,44,234,234,179,66,113,115,1,213,7,73,107,188,255,27,248,47,114,227,83,116,72,92,21,14,227,234,111,202,238,127,77,38,61,155,176,77,168,238,93,152,6,119,173,13,109,137,226,31,20,52,90,59,248,37,202,241,65,142,221,79,43,25,223,169,115,9,98,230,85,33,98,85,63,106,180,248,96,128,134,205,122,223,142,181,174,213,153,193,223,86,238,76,120,130,89,39,19,51,80,134,164,126,84,39,198,232,99,205,114,166,171,5,225,127,91,232,151,68,157,196,14,56,77,182,103,22,196,15,150,42,182,252,65,36,19,12,93,238,231,231,249,160,133,141,189,166,10,191,13,237,169,51,82,183,238,227,153,105,129,252,29,124,172,57,181,255,163,59,177,200,202,66,136,161,194,253,119,143,35,214,149,83,215,249,248,68,226,49,90,125,2,138,49,248,196,30,26,216,148,190,219,85,201,225,132,118,230,2,186,70,54,185,171,245,31,7,30,160,48,235,96,223,117,212,52,136,140,86,99,58,149,121,177,217,134,73,233,225,28,103,230,13,95,136,80,110,238,249,167,88,243,24,78,95,150,11,236,244,180,152,149,200,143,21,192,171,228,92,46,65,161,135,75,130,22,70,12,231,109,57,114,170,180,161,23,159,78,99,1,54,201,81,60,39,135,225,2,79,250,47,161,121,80,122,236,149,211,70,50,33,247,33,181,185,3,124,55,45,49,151,241,178,248,128,195,166,29,73,170,129,25,113,200,138,44,48,222,196,145,199,206,75,2,151,152,47,199,65,38,158,14,78,60,42,93,198,118,47,70,53,62,145,212,246,211,183,247,109,43,13,65,243,219,109,163,135,158,210,15,63,71,165,181,157,38,121,30,63,152,101,129,90,199,32}, {104,221,47,27,49,99,222,26,242,239,241,249,53,141,239,201,177,129,30,196,147,180,67,227,181,208,84,153,90,15,63,119,54,250,203,236,200,220,224,56,38,40,189,242,92,87,88,137,80,185,119,56,157,45,38,249,81,141,154,198,200,197,230,161,244,88,42,59,13,246,47,163,202,67,6,61,36,8,214,36,145,12,38,72,178,14,191,44,29,216,35,187,239,178,110,77,215,156,240,129,144,213,160,165,141,111,87,31,187,157,154,116,38,76,94,148,12,114,248,82,234,104,228,60,11,142,54,20,82,222,183,55,106,73,231,116,242,18,90,221,249,253,252,122,241,228,218,190,101,255,30,247,41,52,113,226,25,13,54,28,33,71,158,154,45,104,229,117,7,137,120,234,83,212,130,169,212,189,66,209,3,119,208,94,69,235,231,250,131,199,235,95,35,251,188,173,152,11,96,112,129,252,72,101,49,132,249,79,248,243,185,161,158,144,77,193,86,58,0,56,31,234,55,104,24,9,216,73,79,189,15,120,21,133,106,119,115,4,62,41,241,11,27,175,141,125,139,177,64,206,31,47,144,240,26,105,136,31,192,189,45,130,157,94,249,17,107,54,223,136,214,125,108,232,164,9,218,41,220,15,235,69,50,166,148,44,60,1,12,25,142,239,167,209,123,194,168,187,33,204,192,137,161,64,232,226,171,48,151,149,67,179,71,162,8,47,54,222,78,135,243,153,85,60,26,20,133,164,162,19,224,14,56,140,240,172,124,34,89,98,160,0,130,24,100,232,105,213,67,180,58,180,187,136,101,24,109,228,127,101,51,230,31,178,5,100,63,98,34,78,12,254,77,42,141,24,13,135,44,194,14,84,172,43,113,231,240,83,143,207,19,49,157,144,187,53,67,40,103,188,136,255,54,116,204,103,211,29,82,168,96,151,17,212,75,60,185,199,86,64,178,138,128,159,29,132,245,89,184,113,212,176,249,15,171,90,161,74,236,141,103,35,77,237,84,95,99,184,28,115,44,245,246,180,51,146,97,231,41,230,194,177,145,17,228,192,42,241,171,247,46,16,78,146,139,108,222,101,18,81,104,4,243,234,34,49,179,151,80,59,209,133,127,16,69,176,155,64,104,89,243,164,97,108,18,40,48,236,129,80,190,227,174,69,134,194,15,190,170,9,65,130,129,230,136,169,255,209,138,103,179,13,171,57,142,0,201,9,171,26,9,219,160,3,87,114,195,36,156,131,251,241,189,219,238,158,52,118,255,199,29,96,15,100,145,48,100,61,236,99,96,65,23,212,184,51,5,4,38,211,136,94,198,67,179,18,190,159,181,227,89,13,136,240,250,135,36,80,174,146,140,152,154,49,120,202,250,157,207,120,210,29,50,222,219,88,180,185,207,249,193,133,72,124,243,137,173,107,4,50,176,36,140,236,3,93,67,52,131,155,51,85,46,147,32,141,176,116,174,215,128,205,33,140,245,30,95,204,8,62,82,144,161,238,71,104,149,249,227,214,37,158,17,85,16,78,15,31,125,38,135,130,55,233,112,231,169,10,69,43,42,84,233,48,176,66,55,73,253,118,151,145,252,152,109,214,37,54,64,157,88,47,189,22,38,220,99,211,74,106,136,94,118,128,196,232,201,3,67,155,150,95,217,235,32,179,99,239,148,155,227,212,163,21,96,120,216,108,191,164,193,236,11,213,141,67,126,76,83,19,144,111,11,82,255,237,123,68,86,90,213,95,160,134,224,254,94,85,41,253,250,50,20,73,102,47,8,167,77,101,66,20,29,166,67,14,16,10,234,189,145,114,107,33,89,158,220,182,150,43,206,183,19,174,173,112,48,75,253,228,153,254,195,10,144,39,233,74,223,81,179,154,79,63,176,177,138,247,243,20,89,191,169,69,226,162,126,92,130,1,3,163,28,165,170,120,105,205,204,101,135,189,222,85,33}, } ; static const int16_t precomputed_encode_653x1541round_x[precomputed_encode_653x1541round_NUM][crypto_encode_ITEMS] = { {5165,24118,2917,1773,-28166,4860,21109,-4291,18122,-1636,-26642,-1196,2188,24249,-26278,-12330,-2845,5529,25697,552,-8245,4733,1194,20693,-20173,-28806,5966,-9724,-2843,-7172,-9714,11422,16459,-3868,4469,-15697,20209,-24443,-28089,-30631,18787,-6502,-13534,10980,-7486,7175,28510,-12334,25824,-32538,-595,15223,-24748,-30054,30866,27156,-10054,-15346,-27514,-31984,28041,4635,17230,-14659,9428,10436,11503,91,16389,-2964,89,13737,7851,-14722,-20787,-28297,-8405,-21848,-21937,5235,-11531,-14954,-21586,-23087,-26043,-11452,-5231,18371,2467,7656,12375,-10744,-27370,10662,-23246,-3414,1840,-6748,-25647,13883,10957,17544,24418,-23125,29497,-21928,15408,-2957,-20106,6590,22905,-31044,-32407,3229,29908,-9093,25207,18774,-24355,-5018,18397,6496,-26661,25436,-8483,10872,-18210,-9693,-29325,4092,15838,31339,-2461,-29889,32521,23427,-19371,-28895,-6570,30446,-12917,5189,-28064,-30939,27252,-29537,-24386,21003,-6302,-3553,-31685,-449,-25886,7787,-13319,3787,14898,10922,-664,16147,-16117,20862,30054,-5070,-10029,5510,25835,6112,7333,3294,-5899,-31461,19805,20047,16297,-11538,2758,26746,14107,-1176,-22591,7044,-11571,-14927,3365,17613,19419,-25603,-9866,2247,-22005,2503,-15493,-16381,16501,19436,5317,17196,21138,-11593,-12052,-9460,-24511,9939,9318,5146,-4627,-16861,9992,-18011,31917,-6615,8019,-15888,-1880,-16062,-26757,-24252,-19253,-15664,18574,-12506,-8875,-9589,-25815,-32338,4016,-10829,-2934,1732,-7948,-27175,-924,-18627,5382,-25904,-8817,-9476,-4367,-24353,-32668,-25332,-19069,-25606,-7604,19632,27207,12659,-29825,-16301,26239,-28797,-4426,18755,27281,22525,-11107,-31778,-1651,31748,14966,-23463,23583,-3483,-2903,8364,16391,1930,26052,26831,29488,16286,2646,-31972,25995,2849,9016,-5676,7730,-12076,24973,6802,6982,20839,-19672,-30390,-18980,3967,-16010,-6914,-16473,-20978,-16971,-29734,7051,30381,-31545,25564,-5615,-29990,-26886,1800,28188,19935,-29733,-22775,-14712,28388,-31342,603,-18247,25918,-21500,-18935,9862,-1346,-26425,16104,-23270,-21335,23998,-16504,-30523,6881,-7232,29282,14188,7530,-18181,6003,27373,-1145,-12322,22591,26774,27741,27932,-31835,-13394,2649,-21069,-22048,-9702,9504,12167,14766,-8050,8664,28544,13396,-17197,8317,-23878,-13178,-18783,316,2827,-21920,17864,17996,26407,-1039,-29774,-5487,4764,-32316,-10403,13433,7125,-32715,-5639,1701,-16417,-22554,-12387,-3755,53,-15097,1862,15978,1853,-19654,-13483,-28655,23510,-28049,13152,-3649,-23130,-6892,-16567,-32750,-556,-12502,-21618,-3322,5791,4509,-23379,-18247,21774,24159,-15443,-24347,-21875,4126,-12698,10395,17301,14463,-5113,-5304,-3632,1797,-1824,-29139,14737,-24757,19358,23620,15220,9406,28287,18858,24196,24863,-13471,32752,23375,-23539,11459,22798,12877,21987,-19880,-1892,-12384,-12290,3039,5078,-18311,-28725,-30615,5926,9877,-7049,13990,19704,21003,-2928,-30879,-19925,-22437,30467,20607,6306,-10360,10800,-28828,-30992,-29658,16635,21477,-27473,11754,-25028,20765,19596,-26783,-3976,15438,-2481,-25067,-6793,6019,-29889,32127,31644,15623,-13853,10626,-22908,30750,2324,-3665,-10407,-14931,29736,-26076,23626,2444,31571,-15364,6082,9136,32707,-10452,14118,-250,2981,-862,-24073,5200,12147,28934,-25182,-10543,11214,6137,22763,-10684,9252,-4992,8499,-18836,12467,-21303,-19894,3691,-24068,-14912,18053,-28615,-5494,-1493,21764,6399,22225,-20546,-27394,367,-1511,-3517,-2778,1415,-7502,-22417,-15882,-24614,7219,22012,1186,-7246,-8951,11496,29183,15059,5278,-5271,-31106,2775,-17195,19916,-8917,-4837,9111,14531,9333,9933,28123,20736,12844,-11485,1982,28818,-16696,31830,25340,-21141,10058,22133,30291,2248,9586,31018,16695,-10704,-10124,1288,-23341,-18391,-13711,-21616,-23226,-6702,-887,9143,-19920,-13088,24565,10457,-29675,-10027,8915,-9427,19817,-7128,-25735,-24248,-18505,-29424,-6880,18542,7597,-15332,-30709,3466,14997,-17781,-4561,-30957,-21502,21977,-27189,-20189,15003,-30164,11917,12351,10719,-392,25939,725,2955,-8325,-402,-5573,6924,18057,7786,-12347,29299,-1573,-26974,7766,-26105,-20999,8941,23925,-18316,6933,4901,12003,-18345,30640,7585,24834,29715,27394,-18047,9265,22633,-8640}, {9689,-5761,-27129,-5135,-1800,681,-6713,-27829,-29265,-11089,-3121,-20095,-1134,32202,-21991,13625,30409,12762,24703,-31614,-4415,-8025,774,7191,5844,-19408,25364,23426,17838,-7720,27119,20907,26787,-26134,-18523,18370,20525,18756,-2550,-2713,-29404,9780,-5623,16500,-10762,558,-5647,-21128,32591,28380,-9004,17906,-13643,24318,-13558,26608,-12479,22462,-25069,-5332,17623,-30893,2643,4847,6864,13689,25613,-9043,-4256,-29674,-11209,-26199,11393,-14283,6580,12896,-3434,16980,-1750,-15649,9962,14646,31536,-12524,4017,9312,-11510,-27667,13494,10684,-19563,28142,-23404,19368,-23925,-427,-7305,22516,-21097,10550,-23534,-14402,-30037,-18944,-12332,2629,3367,-20340,16248,14067,19986,-21287,-23098,8853,28416,17973,29136,3313,30503,31014,-25983,-4114,7111,-24751,-1237,-15881,29070,-7303,-26980,-28842,2601,-996,-25315,-21124,-12547,30603,1868,-32062,15119,-21438,27531,5959,-6467,-8296,-10301,28425,-23361,-24038,-1581,8241,16663,-32108,-8325,-3559,16572,19563,1186,29982,-3256,16253,4825,-16430,-19585,-14558,-18153,8712,690,7469,-26138,11344,9356,21314,31258,-29797,16627,-21541,-9894,26902,22986,2150,19563,22321,-2333,5528,-25138,12346,-2744,-28659,6975,26279,-18635,25668,226,-23297,-17113,-7400,20262,-31464,-5190,-8959,-22395,-1746,14511,16586,18604,-26939,2237,-3392,29435,-11785,7929,-10281,-26741,32227,-10335,-23107,-32722,-25691,-6338,21945,14418,28897,-8491,-16719,-13945,18673,1494,-11662,-5334,24211,6019,-7906,29450,8205,18441,31134,22181,-3354,30093,-25109,-26916,16925,-21047,-18986,-21284,18523,-18118,-31867,-22260,-5364,-24394,-14504,23552,31586,-4224,-19831,-13150,19329,-25554,1173,-8116,-8482,-23979,-4372,-29481,-25251,-4058,6600,-29101,28891,30044,-23873,22417,1675,-182,7271,3054,14176,30773,-10744,-12618,-10230,4222,-6636,27554,-19571,31057,4442,-3159,15259,-23467,9322,-11796,19037,-11238,-40,26282,24914,-14366,13189,-26803,-5695,13938,27085,-20270,4700,-29159,1428,23909,20511,23703,12718,8748,-9355,-27046,5074,-15790,-2583,6957,-26591,-5473,6065,20213,-15908,29083,710,-17910,-8700,-6229,7452,-16781,-26006,14146,13464,29172,-3508,8746,3276,30699,-32261,26872,12756,6558,19205,-671,4105,15872,14398,-2078,-31905,-27236,31472,-28395,-25475,-14447,176,748,-15972,18778,-28553,22788,-22707,14358,476,30504,26482,2722,-17967,-6499,25193,8884,29074,30404,-10601,-12811,3803,-31668,-4293,-26521,-24304,4071,13404,501,-20231,19679,-10721,20100,12390,-23475,25188,11502,31280,-3208,-19884,30271,-28964,2616,9877,3117,-21094,20080,31575,-8179,-31334,-25542,7295,-18100,-7144,-25141,32178,-32246,-6569,1591,-15004,28823,8746,-10156,-1025,24358,17616,-26540,-28989,-2750,-21143,-16210,22893,-8932,19631,1526,31067,-25383,-29207,-9818,-24496,-30885,-3615,30224,1828,22572,9280,30039,-6985,-23893,9680,-17112,187,30726,18244,21800,6364,-20807,25365,-32534,21369,2877,23723,-32243,-26099,-286,5906,-9015,7788,8882,29602,29819,1908,-16160,-31807,23469,17582,-22838,8781,3591,-9083,10880,-3504,17539,5645,32306,-24883,-6830,-12930,-5190,4409,24545,-32360,170,21887,5989,-7241,-28155,16987,-9058,5187,30339,22143,-9704,17878,14080,-18436,-19671,-12342,-4141,9876,-15211,-8865,3727,7161,14453,-3379,30539,-3805,31772,13289,22929,14576,-19162,19122,-3046,-12318,-14797,29360,-24896,-17409,-22184,-27288,-5450,-11074,7961,-29816,-8040,-13373,2266,21044,26336,15110,22748,-2245,10077,22542,17503,-28162,20522,17930,31928,21860,-22715,-32076,-29332,-14745,20525,-31843,-17165,10718,-19817,-9552,-20664,-2820,28113,15754,-14020,14833,-19009,31329,-13570,-18363,-28077,16360,23151,-23516,13649,21472,27452,24907,-28199,7582,26664,5292,-21399,9620,9549,-27645,30104,21048,-7761,12873,-28778,15261,-15363,-6706,-24019,29736,-15158,23632,-29951,-6612,27466,15212,-17989,-12791,-32439,-24659,12803,-6473,-8354,24398,17825,19436,10257,-1971,18132,-30010,-14187,-15037,-5203,7014,14023,-2264,-21293,-8655,-14216,-9425,1946,-19142,22670,28143,24860,-32275,-24364,-29645,-13491,-18475,12889,-7395,8236,12549,-15848,3550,8625,25402,-12347,-6564,26213,-3987,-7157,8192,-30014,9459,27885,-9421,19981,5345,10057}, {18418,-2833,3030,21894,-31930,29016,-8855,16445,9264,21822,16346,25346,-28256,-4724,-28644,22165,25815,14722,-29789,-20181,14191,-29769,4233,-11792,-30551,20256,-5488,-16502,960,28315,18604,-496,1123,-5664,-7511,-7420,-16404,17882,-5268,-17010,620,30773,-11116,-4634,-2966,18351,12550,-3927,16696,-5948,-22726,3060,5363,30342,-23683,-25799,-28541,19903,-10372,-17146,-822,12067,-21851,27365,-23097,-24727,-24485,32665,15844,20844,-7864,-6740,-19920,-984,-6230,22108,-11910,7873,-23323,-19438,-10638,3162,-21162,-18859,-963,-17255,-22142,-3868,915,4873,12999,5273,29618,10840,-25650,-28989,-9053,29136,-12604,3881,12625,-4524,7512,9670,29110,-30187,-18261,14775,-20377,6583,-28545,31858,1049,-18329,-17920,-21991,26713,-16414,-29008,26681,-30500,16467,26223,-18841,-9987,124,22771,8371,-4093,-26305,-1502,253,9613,-2155,-31054,13460,-28872,-14036,-3962,18833,-31996,-29819,19275,-6228,-11524,15754,-12932,-15984,-32423,-24911,-15828,-30126,30589,6018,-24740,-22602,3353,-31832,29180,-4786,-12299,-1457,19628,-27702,-4835,21727,-16355,11558,-359,-18000,-1803,8977,7199,18955,-3949,-27417,2584,1242,-20292,18522,19339,-7095,29503,28911,13724,-7114,29627,9088,27268,-23067,25427,-15494,-21924,27078,-25565,19813,-5504,19938,-9861,-6211,29810,-6974,6056,8719,-22075,-3224,-31495,-25545,29647,-30947,1561,6567,-10063,30045,29767,-22623,30733,-10269,-22846,20294,6085,17100,14833,15742,-3918,-23140,27444,5935,23630,4642,19810,30406,4422,32474,-8942,-8330,8099,9385,1079,-9079,-20217,29431,-4081,5221,13414,-20910,4534,-4903,-26213,-14084,27164,-6403,9074,-10842,-8537,29685,-26411,-3378,-28877,-14820,-3454,28904,-2511,-7819,-8963,-4057,3239,28046,-20003,14080,13427,14402,22267,-28030,31722,10848,10633,1085,-20113,28287,5819,11627,12386,-9613,6103,22353,26442,-32138,24382,10127,-11237,5249,-22300,-19944,-24882,4213,-6495,6668,-14270,17292,-6271,28173,22808,-14759,-30558,3076,26869,3642,4787,-17337,16433,21480,23053,13594,-21875,16223,18663,-14245,-19826,16428,16412,24202,13204,-21350,-22645,-12490,30958,-13055,27042,-18261,-17141,21740,-1667,-24779,18861,-12971,-14104,31133,-9209,7199,-23386,-7762,21190,11161,-403,18028,14813,31680,-31150,14862,19071,-23259,-939,-12903,-10521,6360,-11953,-12291,-24546,-23179,1986,-13924,9941,21696,1196,9391,-22620,-12523,4900,-24596,-3153,26816,-19880,-2773,-9144,11289,-9821,-8755,5019,-502,90,21511,14445,-10411,7460,-305,-4163,25002,-12123,26791,-19688,2455,23423,18936,27591,14575,-461,-16727,16266,-9838,2332,5973,3276,-32398,10439,14336,15927,12789,-5166,-5435,-23989,10960,21149,3234,17142,-8515,-29326,17753,12626,-5319,23160,5001,-2474,-5635,3677,18364,5055,-3620,16000,-17492,31422,-23336,21238,21205,-16274,-24420,15085,-17805,-9966,6289,-5288,-21920,-18045,-442,-16027,11240,5737,16982,-12682,20697,28672,-1879,943,7165,-381,15943,-9233,11089,-11223,-17597,5463,-11991,31062,25631,-25538,3240,23195,-11637,-23934,29600,27809,-4980,-6445,2375,-7201,13971,18867,-5562,3782,2904,10377,-19021,27154,23581,-14918,25077,16896,20209,-28983,12387,-3297,22525,23533,11340,-19500,24987,9230,17740,9228,-25432,-7960,9329,-14205,14334,8127,13792,-8210,-17861,21721,-30099,12845,24097,12835,-25253,11945,10590,-26117,7601,-15305,-15379,-28378,15119,29310,27912,27791,-21268,-26890,7349,24781,11445,-9312,-2066,-31040,21102,-9421,8756,-12583,13132,-20791,31951,-15755,19326,-12091,-27761,-30766,-29733,-2566,-21515,22268,10234,-9075,24285,3353,13898,-18817,25699,29887,21364,-17889,-5889,14669,886,24184,-13712,6646,-12677,29195,-10336,6057,-11867,-3082,-15932,9885,9584,27033,17892,-11404,31579,27587,-509,11194,12210,11760,-27653,8800,-8620,-6405,-17890,-137,-31823,22310,28352,18748,-16054,26507,-10641,-25922,15014,-25817,25104,-17539,-20613,28645,-26283,10001,28122,14912,29693,-8884,-8892,-5186,-6266,-8394,9887,-2681,-1121,-28889,31042,20461,32597,-25236,6047,-3506,-6048,21219,21831,5390,11298,-4246,25741,-31143,-13007,6204,7897,5596,25255,23006,12084,22114,-26778,-27751,-12237,7157,26110,-12004,27418,-21719,-30276,-12182,-4146,13724,9225,-20195}, {4632,-8500,9754,16403,27627,18304,-5426,-12882,-9516,20716,6266,32641,12906,-26464,-27075,-18588,17933,23278,15104,17699,-3969,-26817,4010,11627,-23337,20976,-31376,16033,30346,9938,-29449,-21640,28926,15513,-18972,-23779,1710,16363,-4844,-12128,-5759,-12130,-4783,9147,-24264,19939,21452,15348,-15469,16456,-8404,32672,-887,8976,28935,-18499,18981,5212,13074,-12853,-8211,-2933,-15683,-23472,-3258,-29527,29688,-30520,-31210,-22671,-5144,-18187,-10945,-26059,14345,27208,-21274,-29868,-26867,26290,-27913,20192,8446,-13141,5881,22687,-29921,-2273,-31990,11874,-24032,15607,-55,-32556,1667,664,5825,29700,23550,-21039,-22090,26755,22911,-12131,26547,15517,-8143,-13558,25549,3406,20984,-32620,-9094,-27115,7850,-265,-20729,-5649,27964,17866,13877,-25750,82,-30060,2068,22399,15371,19443,30843,-8794,-14223,-25624,-16883,-7355,-27104,-10575,7469,23186,-28509,-13255,-16980,-27864,30060,13024,25118,17979,29537,-7614,18855,28022,-19811,18277,9832,30255,11154,379,-22222,-28300,31090,8338,-5139,10888,-20329,31818,-9943,-9055,-19011,11108,-6545,-7805,11104,-31297,-28014,-25927,31523,-3366,5307,3096,29274,21917,-11570,-24343,-30632,-3496,4490,9989,-6540,-20810,20023,4708,16886,-16905,21487,16716,-9606,-32498,-27243,-17657,-20215,-2285,-23449,-24104,-8177,1398,-24494,4426,-7473,3992,-23822,30595,-11733,-716,-24907,-19084,-17967,7701,16367,27093,-32559,-15723,13712,30726,13388,1838,3236,3669,31627,-22360,25228,-28187,16383,-25311,-27198,17728,-9940,-21551,24474,13117,-21231,28711,-16751,-18480,12309,-2507,-27740,5883,5297,-2360,10072,-20496,9136,15404,58,9537,-27029,-2063,15511,22440,20779,-11760,-16641,-2711,28955,9338,17160,13572,-12765,-25771,24540,-19826,-21922,8646,31122,-8081,-21288,-12531,22951,-31573,-24454,-25700,-2029,-13224,5051,-19345,3603,-27044,24521,25883,-29923,-31968,15181,12965,14721,-19406,18303,-25975,-996,17253,1157,12662,-13504,20735,-1472,-10725,-25268,-24263,16004,29233,-16474,-30688,-25579,-5249,6048,-14051,1813,-6301,-29518,24976,-22390,-2782,-18604,31382,5500,31550,22603,10671,-18645,-17534,18808,304,24037,5284,22337,-3312,-20382,-15263,-26626,-15155,-17875,22441,-29926,26328,18729,-6121,14011,-10848,1911,-13266,-4844,-9712,-13289,-22690,-17692,3147,12899,10276,-10025,32296,20180,-10420,-3637,-27178,-16574,14798,-26700,9043,-351,-32492,-651,-28608,-12082,22724,-22120,24219,-26952,11267,13930,-16947,-25314,-27693,29625,16177,18826,3556,26369,2624,6371,1942,-9537,-15956,-31274,-3376,9298,-25477,27896,15312,-29690,21349,32710,-21020,-2601,32694,-24350,9213,4738,-297,-4687,-2287,-19933,12816,9087,2708,28740,5504,13961,5236,-27879,-15222,-26368,-8154,-26437,28433,27433,30494,-23281,-1809,31490,9090,1814,2749,8046,22718,4954,6273,-25786,-25686,402,-16317,-15951,-28218,9031,-9577,23960,-24470,-1408,19457,5213,9151,31766,17976,21113,-333,18860,-17370,29531,-9605,10733,13408,-29610,6388,-14891,-22464,-12839,-22195,-19252,-392,509,-32181,-19900,10387,27607,5347,28361,-19893,430,2367,-10102,-613,19514,29448,-15846,-3297,-9278,-39,23104,14284,-2308,-6148,-26038,30171,14181,-4814,-27224,-26116,32041,-15678,21460,-8151,-25553,-2348,-28389,-4958,12112,28883,-21697,-1060,26615,23232,17619,5446,-25526,2447,-5305,28682,14342,8100,-27466,3043,27310,-29468,-23160,6393,-9893,-21704,-22825,-31134,-20041,-22357,8301,26386,-18889,7981,-13625,18040,16229,4051,24535,20410,30688,1720,-19031,-10408,21209,29312,29876,2121,-29309,-11259,8993,-7186,-29273,3448,6133,-26496,-23754,13574,-2369,23385,4688,-28325,-15210,-5272,9490,-8876,31896,16735,20789,-13484,-21344,18176,-25105,26547,22467,30405,29886,27656,21435,7898,-601,11954,-2951,3075,-6293,-28348,1616,-16000,16303,-15480,8251,28472,8792,-1035,-15058,-4113,22678,-31921,18331,-14763,29654,-13392,29218,-29387,17841,-17366,23753,-25395,29408,-32419,-20429,-19433,10873,22020,18273,-15128,-26804,10503,6898,-24077,-20498,1009,-5335,-26033,-2940,18252,15411,19073,-2591,9160,-5429,878,17653,-17691,-5145,-7238,14497,-15878,11287,-26380,29823,25445,-10347,23150,190,1122,-32438,15749,31229,-18504,9181,-8841,-30308,22196,12821}, } ; static void test_encode_653x1541round_impl(long long impl) { unsigned char *s = test_encode_653x1541round_s; unsigned char *x = test_encode_653x1541round_x; unsigned char *s2 = test_encode_653x1541round_s2; unsigned char *x2 = test_encode_653x1541round_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_653x1541round_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x1541round(impl); printf("encode_653x1541round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x1541round_implementation(impl),ntruprime_dispatch_encode_653x1541round_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x1541round; printf("encode_653x1541round selected implementation %s compiler %s\n",ntruprime_encode_653x1541round_implementation(),ntruprime_encode_653x1541round_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_653x1541round_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_653x1541round_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_653x1541round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_653x1541round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_653x1541round_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_653x1541round_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_653x1541round(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x1541round")) return; storage_encode_653x1541round_s = callocplus(crypto_encode_STRBYTES); test_encode_653x1541round_s = aligned(storage_encode_653x1541round_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_653x1541round_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_653x1541round_x = aligned(storage_encode_653x1541round_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_653x1541round_s2 = callocplus(maxalloc); test_encode_653x1541round_s2 = aligned(storage_encode_653x1541round_s2,crypto_encode_STRBYTES); storage_encode_653x1541round_x2 = callocplus(maxalloc); test_encode_653x1541round_x2 = aligned(storage_encode_653x1541round_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_653x1541round offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x1541round();++impl) forked(test_encode_653x1541round_impl,impl); ++test_encode_653x1541round_s; ++test_encode_653x1541round_x; ++test_encode_653x1541round_s2; ++test_encode_653x1541round_x2; } free(storage_encode_653x1541round_x2); free(storage_encode_653x1541round_s2); free(storage_encode_653x1541round_x); free(storage_encode_653x1541round_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_653x3.c0000644000000000000000000004232614705505543022151 0ustar rootroot/* ----- encode/653x3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_653x3_checksums[] = { "601a6ccdda0496001dd407588f0a0e86e7538fbb1916d7192d65165eb33f8607", "29700e201920e207a92db544a0e850f0de968596d8d53fafddee93ce95ee0181", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_653x3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_653x3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_653x3_ITEMBYTES static void *storage_encode_653x3_s; static unsigned char *test_encode_653x3_s; static void *storage_encode_653x3_x; static unsigned char *test_encode_653x3_x; static void *storage_encode_653x3_s2; static unsigned char *test_encode_653x3_s2; static void *storage_encode_653x3_x2; static unsigned char *test_encode_653x3_x2; #define precomputed_encode_653x3_NUM 4 static const unsigned char precomputed_encode_653x3_s[precomputed_encode_653x3_NUM][crypto_encode_STRBYTES] = { {211,38,140,13,214,6,104,179,230,36,166,253,73,215,72,223,6,246,122,54,180,115,17,157,48,192,123,170,194,148,61,189,185,253,106,106,26,175,74,163,254,209,189,1,141,232,15,3,199,15,0,184,103,252,145,208,109,75,231,136,40,181,122,236,94,201,231,238,221,143,201,248,132,28,149,144,1,188,217,46,156,161,62,55,58,29,237,117,217,59,125,93,3,229,69,61,147,47,105,77,204,248,67,39,221,77,242,189,246,225,88,247,192,134,10,14,82,145,0,62,230,102,44,117,210,130,196,121,197,229,49,85,157,139,148,12,124,230,125,201,39,254,138,80,183,40,184,231,250,99,35,202,58,105,166,175,222,85,229,18,71,57,97,188}, {59,234,204,122,129,33,244,66,17,228,114,66,235,154,79,169,29,181,117,157,53,151,158,49,89,139,103,81,7,74,135,91,6,64,11,153,121,122,90,210,68,238,226,13,24,60,28,205,139,8,100,229,242,168,235,64,121,160,255,144,83,4,108,212,244,26,122,3,96,15,14,182,238,192,140,74,253,222,37,208,127,191,53,114,24,30,210,80,48,120,157,61,11,121,79,22,201,66,193,65,176,7,141,92,13,196,46,71,193,36,7,159,179,125,157,172,185,180,215,30,30,73,219,215,214,219,109,243,150,216,26,255,89,97,243,254,136,82,128,104,114,89,228,125,177,64,198,228,35,49,218,16,121,34,96,190,12,237,87,83,179,116,178,19}, {253,79,253,183,67,49,189,45,245,0,80,201,72,155,157,120,74,123,250,179,43,189,115,78,117,170,82,33,25,88,138,97,94,31,229,28,161,212,195,225,92,245,127,184,50,202,3,135,156,165,207,229,129,144,16,81,84,213,244,254,86,90,203,47,212,244,185,187,169,61,196,40,214,154,223,178,226,71,199,231,161,117,3,98,10,32,218,223,4,61,176,156,88,7,213,88,108,180,189,45,76,52,42,46,102,126,11,51,40,121,94,41,122,200,15,197,4,248,215,97,97,224,45,152,6,77,91,254,222,69,79,14,216,159,213,242,17,185,152,222,138,35,136,11,123,203,214,4,232,19,49,185,40,98,86,197,30,205,178,115,247,132,152,129}, {62,168,251,195,207,208,232,101,114,155,2,26,13,29,43,164,34,31,27,58,128,37,64,65,45,187,251,177,107,54,2,204,169,121,9,93,19,206,45,140,113,65,51,120,157,58,48,16,31,138,231,135,114,182,188,223,195,41,208,13,174,52,35,217,126,153,216,97,39,225,211,20,44,72,5,47,106,223,84,167,211,168,0,126,8,147,1,130,108,145,133,47,38,245,161,36,177,68,96,221,207,231,71,108,55,57,131,181,62,96,31,196,167,173,202,103,219,88,74,17,166,80,144,40,219,42,190,167,10,120,236,148,158,117,62,27,85,164,43,215,62,169,59,38,112,36,206,92,109,90,254,172,68,173,162,176,156,240,225,135,241,243,101,171}, } ; static const unsigned char precomputed_encode_653x3_x[precomputed_encode_653x3_NUM][crypto_encode_ITEMS] = { {166,126,10,161,9,210,76,91,235,183,27,79,216,176,206,69,109,53,184,207,209,104,228,104,147,116,83,122,250,49,142,175,177,156,19,137,99,83,234,162,89,26,153,168,172,215,54,185,216,103,212,181,146,76,112,55,71,255,215,249,242,78,54,152,25,166,252,129,229,187,245,138,117,116,42,145,225,248,150,63,135,14,46,27,38,242,151,67,228,254,14,220,72,96,68,197,171,56,25,247,195,2,46,255,122,111,35,75,177,177,38,98,237,128,192,86,55,194,52,135,132,13,103,99,224,82,188,154,228,32,184,218,144,134,164,215,37,56,73,102,229,64,175,33,201,247,114,156,114,78,103,213,201,3,234,30,38,138,56,106,181,17,59,68,112,11,150,126,100,197,3,227,20,78,46,194,64,90,141,127,191,85,232,152,38,185,171,176,154,97,197,73,230,163,116,63,66,238,220,200,187,92,112,190,175,37,30,85,222,65,91,174,31,138,154,219,44,180,92,210,179,214,75,119,188,167,208,191,202,183,161,53,106,14,51,95,131,228,130,148,215,235,13,66,168,146,139,11,65,181,201,26,175,206,75,240,157,227,50,75,64,133,154,90,46,41,124,168,225,126,0,119,240,66,185,180,214,249,248,56,252,6,86,252,155,78,69,46,87,26,191,122,195,213,43,40,60,229,27,175,15,15,55,158,172,244,255,1,3,249,220,215,104,143,226,27,25,64,48,103,247,44,58,156,36,254,175,193,133,209,130,148,170,66,15,69,121,43,104,49,4,181,175,32,184,200,128,15,240,52,94,70,168,143,126,87,54,208,247,220,172,115,207,251,176,18,209,252,158,44,22,136,60,129,181,128,240,44,81,225,56,116,214,206,126,176,56,82,178,246,41,251,20,192,136,254,236,35,164,165,15,6,41,171,63,101,57,181,166,158,209,199,126,129,73,143,252,159,225,80,0,142,184,149,161,135,26,81,240,50,239,79,125,169,180,189,24,61,80,190,235,54,176,189,54,71,201,63,111,79,56,9,9,162,166,193,157,214,72,69,109,247,139,219,225,11,119,26,96,3,77,28,131,178,62,202,113,66,91,159,165,19,98,174,101,135,197,33,75,223,129,172,168,122,89,52,133,134,194,163,113,183,142,24,223,128,77,143,120,67,130,166,16,120,36,165,100,39,141,39,92,220,129,4,116,79,245,64,96,246,189,45,86,236,95,65,43,25,83,202,91,247,132,101,27,23,15,195,97,72,117,159,160,130,172,243,196,224,55,171,82,72,214,140,229,233,122,102,65,185,49,96,119,81,124,154,158,245,43,209,95,177,67,58,79,1,129,108,38,87,245,31,137,59,63,185,134,10,218,75,62,192,137,160,245,60,41,80,145,9,15,85,200,3,124,146,245,83,69,47,114,30,167,196,233,216,80,21,92,161,42,186,148,103,102,156,137,253,60,26,126,169,57,121,4,12,123,164,56,129,21,162,187}, {194,117,229,232,165,164,94,190,167,12,86,213,117,184,117,222,84,134,164,222,212,146,135,69,47,116,118,169,141,108,91,56,180,110,169,87,71,202,6,131,5,54,20,168,141,76,187,178,58,223,202,181,137,215,90,239,82,206,79,94,84,108,113,213,24,8,113,246,208,224,217,14,192,248,96,34,144,114,11,181,76,109,246,26,222,161,234,217,81,214,218,168,220,152,110,187,68,236,141,61,214,116,149,117,194,188,90,95,12,100,158,214,26,178,37,66,213,12,79,112,86,19,249,128,2,217,246,245,213,151,96,238,203,252,99,188,134,76,36,31,188,86,27,2,20,0,17,72,197,224,102,126,85,148,250,147,149,110,139,238,251,45,224,129,157,127,52,59,141,140,65,219,172,187,226,148,211,180,154,202,179,169,253,239,115,221,54,214,240,66,52,185,86,244,245,223,103,223,125,232,123,145,241,25,132,79,49,31,13,176,125,28,15,21,235,97,190,174,30,245,67,78,175,6,48,81,211,214,227,242,102,133,142,59,155,226,79,39,197,64,78,124,148,166,243,91,157,34,219,79,188,45,155,73,204,40,143,96,193,146,69,96,108,229,37,192,140,141,62,108,80,71,55,45,26,242,130,106,181,69,169,56,139,154,133,7,60,28,241,146,118,12,27,216,95,172,207,174,43,12,73,99,142,21,80,38,216,113,33,194,30,206,228,115,10,190,47,87,47,88,234,44,253,63,86,121,231,27,196,215,24,13,185,177,218,76,167,87,156,44,249,0,85,138,237,44,54,222,7,161,79,202,231,65,211,111,243,24,209,155,104,64,154,197,252,47,103,11,186,115,83,36,128,181,13,8,210,238,91,195,117,239,5,33,236,238,57,149,105,233,166,82,76,24,172,36,164,94,189,76,115,150,17,34,182,131,147,27,0,90,221,100,39,72,180,130,176,230,99,117,91,213,164,146,29,51,87,74,118,207,192,149,48,183,42,11,51,71,124,139,14,245,61,104,22,253,0,77,198,162,189,141,32,150,135,189,160,222,55,15,27,211,203,253,196,176,106,105,239,32,255,84,66,92,137,133,201,228,15,14,13,163,247,139,200,67,178,8,142,170,233,187,242,224,117,15,37,7,188,42,74,71,150,223,220,95,156,88,194,79,2,234,141,145,235,83,19,4,146,117,93,246,237,119,110,231,234,104,220,206,183,2,104,193,98,234,198,94,210,109,157,167,71,236,7,59,252,146,121,241,236,252,71,229,69,252,139,34,224,56,145,235,18,171,236,194,57,138,51,75,167,191,180,117,118,225,84,82,80,235,231,221,181,101,237,213,39,123,27,121,137,40,42,29,235,206,224,179,167,43,101,236,47,34,171,248,59,242,244,160,243,110,237,136,160,195,155,176,155,136,29,131,0,73,251,3,51,210,48,198,141,142,34,144,18,222,58,133,111,79,174,28,116,64,55,98,142,250,141,20,4,33,18}, {64,82,146,28,150,101,205,28,216,120,247,58,46,129,23,187,250,53,218,234,248,49,90,82,240,206,76,118,216,244,203,18,188,17,78,83,11,228,221,57,11,160,75,171,72,51,234,79,39,199,47,171,126,230,15,221,216,48,159,27,27,234,46,226,129,93,24,6,170,127,20,165,9,199,120,212,102,58,221,137,90,35,239,92,136,108,199,179,10,1,117,139,221,31,54,97,36,115,127,201,153,155,181,68,157,52,33,210,92,236,132,58,176,213,116,66,35,216,184,240,161,93,94,121,240,63,250,18,81,214,62,50,102,137,240,185,160,52,54,243,191,206,181,202,224,63,19,81,27,45,235,28,46,228,159,195,176,115,85,55,95,246,21,158,52,243,174,15,194,42,204,60,135,63,198,14,169,49,251,43,17,93,135,94,10,117,9,93,118,39,202,14,167,224,246,23,236,149,209,52,34,46,130,254,252,21,228,208,48,119,166,19,247,113,236,199,23,225,186,34,4,90,165,145,183,182,35,41,144,4,30,108,219,125,201,181,137,56,152,199,5,151,222,87,81,205,184,192,242,81,128,197,174,99,90,44,147,47,175,5,255,180,101,170,216,67,128,234,74,155,107,20,172,66,190,63,80,34,137,110,119,98,155,99,131,212,196,227,193,40,50,184,61,34,100,5,30,79,27,182,17,71,87,255,73,193,108,250,110,221,253,217,98,220,174,171,70,7,55,139,56,205,90,29,56,18,250,0,186,41,57,243,181,222,86,110,209,233,244,4,119,181,128,146,241,65,253,43,14,207,168,143,59,41,177,191,244,225,187,171,219,240,60,244,111,202,31,11,151,203,196,192,250,230,206,17,204,93,108,46,219,126,15,177,235,211,166,122,167,38,146,28,220,115,212,238,236,115,226,240,127,122,225,18,55,34,94,125,145,249,254,50,165,73,193,212,1,92,14,255,25,8,107,97,26,159,138,2,74,73,243,33,191,61,222,137,204,74,7,79,45,215,232,204,200,151,171,168,165,32,40,198,127,61,208,164,110,119,87,20,152,34,149,64,47,132,255,214,115,244,254,158,186,106,138,246,20,182,58,170,8,181,139,178,127,15,105,57,152,56,210,173,39,151,124,132,229,247,11,125,188,75,5,219,90,239,135,74,141,3,153,30,129,250,250,22,208,228,137,24,14,51,138,162,245,93,29,162,111,57,243,176,70,245,231,51,208,184,253,72,97,123,145,209,200,177,91,58,76,246,76,38,203,130,131,73,217,8,29,163,9,203,192,24,26,181,218,165,163,0,173,115,118,148,207,192,170,223,4,211,162,141,174,151,101,223,234,220,87,118,176,90,247,107,163,15,2,135,202,100,52,218,40,211,180,88,241,201,119,59,251,227,5,58,230,171,89,202,172,19,32,40,187,52,213,205,224,203,84,97,254,219,193,211,129,157,78,20,152,180,114,120,69,216,131,35,2,60,71,95,144,102,128}, {145,10,167,51,171,82,226,121,138,47,66,13,246,186,193,38,38,253,186,71,107,188,118,167,191,37,0,189,184,222,62,204,137,105,183,246,18,121,173,226,1,87,121,7,33,193,210,22,136,32,119,213,252,127,101,94,146,53,7,108,67,31,237,247,29,64,183,93,30,19,6,244,238,178,133,215,133,232,232,153,187,164,166,246,144,140,129,36,115,30,160,220,232,17,16,135,156,143,92,241,250,99,26,133,26,251,106,36,240,255,179,85,226,245,34,33,9,54,68,119,121,25,253,52,163,65,101,86,148,44,113,236,88,147,76,175,68,248,245,101,172,119,64,130,70,22,250,162,45,135,191,89,200,104,167,228,135,136,173,15,144,111,157,168,80,195,181,13,38,210,127,230,103,95,228,188,108,195,129,243,1,65,34,111,43,24,81,5,107,0,225,77,206,151,90,44,117,80,180,185,250,122,75,44,34,56,111,225,41,181,90,126,97,28,217,252,223,110,101,226,62,179,116,221,178,179,43,97,228,192,223,244,31,135,172,110,240,6,71,57,13,143,93,125,87,78,29,174,110,164,129,195,20,52,90,248,169,232,254,232,156,234,128,20,115,88,19,222,240,59,191,5,86,115,187,32,88,217,221,172,230,166,68,195,183,90,238,163,159,90,173,208,211,64,86,55,216,122,231,42,10,176,61,85,65,113,205,37,86,13,168,166,235,153,95,59,118,171,227,220,142,36,134,156,243,40,140,252,243,158,220,206,113,2,83,22,143,1,234,110,186,153,246,247,200,197,61,68,1,119,53,180,79,30,241,157,100,42,71,19,172,89,34,0,230,93,244,5,249,246,200,14,20,107,250,93,176,135,204,147,195,103,19,137,224,235,141,36,31,172,162,160,35,174,127,145,144,242,99,100,158,235,231,115,138,6,23,42,210,96,170,152,19,81,228,62,170,34,191,243,56,99,42,186,206,116,221,43,164,75,105,20,173,47,36,57,163,10,64,133,50,154,27,210,51,7,74,126,14,109,145,186,52,97,42,224,9,59,208,198,50,124,139,57,230,148,133,152,59,130,136,13,33,185,71,82,176,23,195,186,33,16,115,143,51,242,0,144,135,229,42,74,175,105,192,110,18,13,192,61,201,35,140,135,117,129,11,1,134,251,50,91,21,240,218,49,79,77,50,90,55,176,234,40,215,14,187,14,205,187,73,200,252,5,217,178,229,21,91,248,66,149,223,81,196,143,176,156,219,197,210,29,230,204,124,60,254,221,137,38,169,52,151,60,116,20,141,75,58,187,156,112,161,112,171,39,51,90,148,181,83,55,118,65,177,126,81,31,103,28,255,189,44,11,80,151,217,219,108,80,249,248,5,70,59,199,144,196,63,92,184,103,84,161,184,136,17,7,90,126,99,190,64,204,95,90,216,60,187,192,98,227,144,59,1,0,190,85,66,248,172,44,228,112,202,5,208,127,84,103,94,1,170}, } ; static void test_encode_653x3_impl(long long impl) { unsigned char *s = test_encode_653x3_s; unsigned char *x = test_encode_653x3_x; unsigned char *s2 = test_encode_653x3_s2; unsigned char *x2 = test_encode_653x3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_653x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x3(impl); printf("encode_653x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x3_implementation(impl),ntruprime_dispatch_encode_653x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x3; printf("encode_653x3 selected implementation %s compiler %s\n",ntruprime_encode_653x3_implementation(),ntruprime_encode_653x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_653x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_653x3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_653x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_653x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_653x3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_653x3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_653x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x3")) return; storage_encode_653x3_s = callocplus(crypto_encode_STRBYTES); test_encode_653x3_s = aligned(storage_encode_653x3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_653x3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_653x3_x = aligned(storage_encode_653x3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_653x3_s2 = callocplus(maxalloc); test_encode_653x3_s2 = aligned(storage_encode_653x3_s2,crypto_encode_STRBYTES); storage_encode_653x3_x2 = callocplus(maxalloc); test_encode_653x3_x2 = aligned(storage_encode_653x3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_653x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x3();++impl) forked(test_encode_653x3_impl,impl); ++test_encode_653x3_s; ++test_encode_653x3_x; ++test_encode_653x3_s2; ++test_encode_653x3_x2; } free(storage_encode_653x3_x2); free(storage_encode_653x3_s2); free(storage_encode_653x3_x); free(storage_encode_653x3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_653x4621.c0000644000000000000000000010712514705505543022402 0ustar rootroot/* ----- encode/653x4621, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_653x4621_checksums[] = { "0b8bea4448ae678f4152f1aed36bd50c1d538a1a0fef1134f480b956223c1aa7", "045c8b06a6e1591bf38ff18e8b0f4cd7130ade473cbf7c1088c23257fca300ea", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_653x4621_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_653x4621_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_653x4621_ITEMBYTES static void *storage_encode_653x4621_s; static unsigned char *test_encode_653x4621_s; static void *storage_encode_653x4621_x; static unsigned char *test_encode_653x4621_x; static void *storage_encode_653x4621_s2; static unsigned char *test_encode_653x4621_s2; static void *storage_encode_653x4621_x2; static unsigned char *test_encode_653x4621_x2; #define precomputed_encode_653x4621_NUM 4 static const unsigned char precomputed_encode_653x4621_s[precomputed_encode_653x4621_NUM][crypto_encode_STRBYTES] = { {127,196,241,102,68,91,30,143,194,226,46,97,107,172,165,94,91,68,142,22,188,177,211,46,100,186,42,201,200,210,54,118,210,228,149,117,242,209,108,223,223,246,127,126,74,44,216,161,165,101,204,183,248,130,220,21,237,26,195,144,86,191,80,34,50,157,35,227,153,120,114,243,18,54,210,47,177,67,206,220,23,60,103,56,27,188,236,28,50,78,145,7,4,19,86,156,215,37,72,111,43,231,42,42,50,54,45,41,6,204,23,143,52,231,4,186,165,213,12,54,187,202,144,160,40,119,215,38,13,168,0,230,236,251,80,155,178,10,86,110,86,243,8,13,51,224,112,36,120,149,223,182,19,223,59,99,47,71,146,167,124,211,32,199,189,227,217,220,117,78,191,91,211,239,226,75,87,25,91,104,48,188,103,19,93,4,98,176,169,187,49,254,148,178,35,44,1,106,172,104,115,34,63,131,168,64,191,150,57,56,242,20,101,235,63,202,240,104,172,214,87,153,47,190,255,189,32,225,58,174,56,214,113,130,190,7,96,4,138,245,153,86,159,128,13,248,1,42,127,133,43,210,23,207,244,147,73,55,166,190,146,146,36,135,195,178,125,13,236,195,61,132,136,113,193,160,15,48,216,219,89,16,219,209,148,200,100,45,71,14,105,158,44,163,186,102,152,191,194,18,230,194,118,56,200,69,169,54,62,90,179,115,79,46,235,15,165,113,42,225,213,34,0,168,219,53,166,156,174,204,115,218,138,191,45,237,188,44,161,59,181,20,119,97,238,43,84,110,94,96,181,255,222,193,60,184,172,193,41,210,122,119,75,77,62,119,96,228,127,59,229,172,99,78,218,55,239,186,87,189,113,175,244,205,43,122,72,217,246,155,206,11,2,206,185,83,70,219,164,243,245,241,0,14,97,243,253,109,250,23,100,79,103,23,12,211,129,188,136,248,80,121,171,209,94,168,205,143,236,56,167,0,38,25,158,27,157,14,210,20,171,80,107,39,13,35,147,97,251,225,245,190,243,196,214,129,189,180,81,228,202,216,211,94,185,251,58,183,245,221,91,69,157,33,74,221,51,105,10,118,147,219,80,241,170,65,227,225,54,133,13,22,177,169,82,102,27,145,16,130,124,155,165,48,62,85,92,217,37,106,40,64,26,57,208,23,194,68,222,153,145,35,175,232,220,57,138,171,222,55,156,222,209,155,254,58,104,15,212,66,171,86,52,253,239,114,11,106,231,104,117,239,20,22,2,44,4,75,147,69,186,95,201,156,21,80,9,209,112,206,48,238,24,112,230,69,157,240,127,211,133,2,9,223,74,165,21,130,240,144,208,146,85,142,71,196,208,162,154,141,157,43,77,26,200,20,107,103,27,70,125,224,21,190,26,155,32,118,72,248,41,40,11,99,2,13,159,201,40,127,70,85,88,145,130,1,94,71,141,188,255,159,21,251,254,138,62,161,148,72,176,7,200,29,106,137,204,78,70,156,133,21,231,123,131,142,242,154,65,101,52,33,78,231,158,95,141,17,198,75,138,201,239,42,33,242,107,90,176,45,166,27,171,163,34,83,164,138,61,253,39,210,250,63,245,3,226,57,134,144,89,35,219,251,9,212,76,184,158,1,103,58,68,244,142,121,84,48,42,128,241,68,135,88,25,104,13,21,90,213,153,153,100,0,61,215,106,123,130,38,232,237,194,195,149,142,27,86,116,219,187,233,128,45,217,173,117,194,119,195,187,226,187,221,89,195,174,183,175,73,225,221,111,18,226,73,176,223,229,32,229,253,114,10,192,122,106,131,180,94,100,190,194,92,212,243,124,175,196,178,31,16,238,103,4,174,245,207,56,67,36,114,37,181,157,154,70,124,245,122,167,56,122,240,146,94,147,48,121,25,86,128,57,155,114,4,253,225,235,133,238,89,18,196,1,160,74,32,108,154,232,62,42,52,73,178,101,168,22,126,146,19,110,226,150,84,192,236,90,112,82,129,47,246,96,126,170,56,82,52,249,244,242,223,112,46,31,90,184,234,102,250,120,141,114,77,21,90,200,30,127,234,7,132,47,97,164,169,252,67,116,254,119,245,223,73,202,119,215,150,74,16,66,228,53,79,101,162,56,13,139,87,112,101,110,212,19,120,115,117,110,226,213,245,112,30,120,108,242,91,72,86,205,27,218,13,253,227,241,62,94,18,41,2,150,14,148,201,39,92,239,51,135,243,32,217,179,233,197,215,148,51,83,185}, {251,133,127,129,67,73,56,113,140,219,220,52,50,199,96,8,189,191,206,142,221,158,27,95,164,229,245,226,132,72,233,93,173,224,126,103,18,94,24,247,63,192,79,151,36,114,88,25,231,132,68,51,227,35,212,229,51,91,224,194,100,137,82,171,18,246,156,214,157,239,8,211,6,255,162,150,215,200,103,213,33,113,107,122,154,107,159,157,14,242,15,37,33,101,214,181,206,181,97,225,46,160,71,133,70,81,188,183,191,70,26,254,30,124,249,203,117,247,152,198,123,69,124,187,253,164,159,157,186,48,100,71,74,193,193,111,81,139,44,70,63,229,247,104,185,237,130,171,143,91,153,117,148,57,145,203,186,214,189,209,255,132,100,175,55,186,138,6,243,163,242,146,39,38,39,99,28,188,206,79,200,88,243,45,245,45,65,238,78,128,61,168,62,174,116,217,86,138,62,127,169,99,74,170,217,30,74,81,154,220,35,39,105,92,98,31,187,166,20,140,225,61,183,181,72,245,110,169,66,168,23,148,53,98,234,82,40,227,250,212,103,171,75,172,27,165,184,19,51,205,219,58,196,190,164,153,180,251,152,102,189,253,128,210,244,104,100,23,38,77,61,35,196,166,113,197,217,72,236,47,212,81,169,88,215,48,141,56,180,230,188,16,83,120,55,145,40,149,218,30,168,139,190,36,173,124,173,25,251,185,111,218,243,68,28,122,78,230,141,15,144,138,154,226,75,219,23,254,26,103,66,172,90,11,242,226,71,170,201,98,82,147,106,152,121,137,174,13,81,200,101,245,202,138,8,206,247,51,123,192,66,3,66,209,105,105,90,172,69,160,35,22,133,58,92,149,55,254,196,71,208,53,72,81,125,24,167,28,176,84,74,239,54,31,229,237,101,52,99,73,231,131,84,111,24,139,67,150,76,71,245,200,143,239,1,41,74,117,99,153,204,240,79,127,195,1,102,146,242,115,50,131,181,247,105,11,203,204,251,191,6,204,127,3,241,136,210,46,47,248,14,225,180,103,117,102,30,42,221,103,159,89,33,120,54,107,174,39,127,153,243,147,204,201,19,145,17,65,5,140,89,119,165,122,65,156,211,43,213,252,107,127,250,12,8,151,33,240,97,171,52,155,51,102,18,194,171,95,131,7,33,63,189,7,144,172,192,139,33,118,23,179,225,22,71,242,5,21,192,158,204,204,232,253,207,19,230,191,235,197,150,45,244,57,215,102,134,219,202,33,48,197,232,118,27,252,239,173,82,212,225,117,63,77,192,252,112,249,55,219,105,109,165,187,186,190,108,185,185,24,213,248,110,132,95,33,242,7,28,67,32,25,42,149,91,251,251,151,7,231,157,129,235,154,3,222,84,44,163,8,155,75,255,45,13,154,254,139,115,180,246,57,54,110,235,56,216,143,3,112,17,141,5,184,153,43,63,185,55,88,183,13,112,69,207,150,225,235,230,236,190,210,39,136,225,157,159,200,203,203,165,144,109,201,218,194,208,222,219,81,255,243,7,21,191,230,49,33,72,170,34,192,43,153,131,92,227,38,172,42,80,177,40,81,161,248,199,191,13,96,198,193,228,62,127,157,241,106,81,174,178,253,245,189,47,221,17,77,219,234,107,95,204,143,128,110,81,171,239,148,220,9,21,67,33,148,158,20,137,61,53,117,149,171,246,191,15,90,205,26,66,244,95,188,202,180,127,113,109,42,52,82,76,185,47,114,191,101,155,11,2,203,138,88,102,191,237,251,119,152,139,208,106,0,206,161,99,86,120,72,98,39,41,82,70,238,152,209,32,203,84,60,91,34,43,231,198,220,144,143,174,7,197,43,224,150,233,107,161,182,90,41,141,187,7,8,219,48,65,128,144,133,8,162,89,90,88,155,245,166,195,17,45,213,59,6,13,138,157,189,149,72,69,197,247,204,222,17,19,75,24,71,120,150,214,171,74,137,133,73,208,117,51,150,55,79,91,167,154,203,231,131,197,66,12,131,49,171,93,68,86,145,211,27,181,227,30,108,196,84,249,90,28,44,177,28,176,47,189,158,194,230,150,248,91,223,178,118,59,227,47,145,101,253,46,130,212,218,190,82,163,119,246,250,126,235,120,201,53,196,118,112,122,173,85,196,239,89,53,240,183,124,51,239,16,214,124,206,169,41,132,189,251,78,206,14,172,182,30,185,241,0,183,134,142,48,49,203,90,98,216,68,171,84,35,3,54,0,62,77,113,100,43,53}, {141,34,129,175,57,230,213,180,28,71,92,5,58,251,117,0,116,135,35,40,130,146,38,192,30,56,148,83,103,124,203,159,182,230,209,251,31,50,24,207,5,205,181,1,232,18,107,16,119,227,150,173,198,86,213,179,101,12,238,199,176,79,240,88,15,196,42,44,122,64,213,166,3,194,96,216,55,193,15,16,33,68,189,81,205,173,37,216,251,19,198,121,229,131,251,42,13,205,70,99,139,215,2,228,185,128,134,158,37,168,199,50,244,4,202,160,205,148,255,198,113,83,199,144,226,46,81,7,175,141,153,110,193,165,172,143,164,74,16,22,49,1,27,124,151,149,222,240,71,32,21,50,237,30,200,125,238,217,184,172,46,78,157,237,146,148,236,96,42,183,9,236,166,246,247,211,118,123,114,218,5,179,206,220,187,146,173,27,28,103,70,110,56,32,21,232,24,128,30,220,232,105,146,114,33,239,139,179,222,17,225,52,9,47,74,164,9,0,39,193,232,187,87,229,192,250,216,205,85,137,118,124,147,32,153,118,81,238,82,252,169,33,58,140,151,100,124,212,42,142,139,159,109,58,221,191,192,64,142,203,187,132,37,133,2,213,115,110,177,37,232,70,247,28,187,131,180,229,31,87,246,76,100,248,165,14,226,143,99,29,53,35,17,60,92,99,9,84,201,202,61,57,162,122,134,116,145,151,208,84,200,221,57,49,119,81,198,65,104,199,97,246,196,10,28,160,168,149,24,29,111,49,22,27,105,102,23,97,166,146,175,221,14,145,62,180,236,81,0,142,42,95,105,183,8,159,115,105,2,66,181,190,216,144,211,118,16,187,165,128,225,73,214,72,193,234,231,101,223,45,0,37,3,61,127,199,93,221,230,144,115,97,85,127,95,167,145,144,168,132,52,27,140,34,207,213,184,228,174,72,41,129,155,64,120,175,219,255,170,149,141,187,202,138,153,76,137,18,11,171,206,4,177,192,138,121,169,254,61,0,34,225,11,253,70,13,127,45,218,29,76,251,25,200,245,228,54,61,44,55,190,113,42,12,198,129,92,137,128,65,192,153,124,253,152,167,169,6,3,130,28,38,185,54,183,239,82,170,164,209,230,213,76,76,104,186,221,221,193,236,145,114,94,4,254,178,83,111,43,224,155,175,97,81,188,239,70,131,26,77,132,48,2,174,63,254,70,204,189,180,61,152,33,199,210,37,29,205,61,148,181,207,199,174,47,252,249,145,40,222,113,155,139,164,149,77,154,219,14,255,158,89,86,8,116,144,215,124,51,211,154,243,2,246,250,6,213,112,171,74,254,52,234,196,39,202,72,1,34,247,43,63,247,149,126,96,211,194,3,149,167,40,18,192,181,193,63,53,230,186,238,61,148,200,95,68,171,38,27,144,16,45,251,149,169,228,187,44,146,101,3,191,171,87,40,109,27,23,0,161,138,36,20,45,181,3,226,61,78,200,239,179,69,243,21,206,77,218,7,88,92,185,78,58,251,34,38,47,101,130,211,32,19,219,10,189,58,23,128,230,227,175,44,72,86,88,48,159,251,196,129,192,251,83,81,59,233,120,211,73,200,38,151,182,231,114,26,23,65,213,125,107,57,28,28,129,107,48,31,102,151,246,252,115,80,119,167,187,177,239,103,151,138,35,38,101,46,25,201,10,98,145,193,153,159,28,198,148,185,146,53,3,4,237,48,211,73,127,195,246,91,214,250,133,145,216,17,163,169,235,118,110,58,183,61,202,210,187,47,225,237,66,241,104,228,190,197,219,220,140,137,161,203,226,10,192,66,93,230,172,6,227,7,26,131,253,182,14,31,59,104,220,44,191,172,66,219,20,4,147,170,45,145,46,168,66,165,227,117,242,118,147,167,227,112,81,59,38,94,62,11,149,155,58,88,81,127,158,148,36,189,99,122,56,61,198,34,31,87,107,214,185,67,116,78,80,220,230,34,150,160,3,203,189,204,249,82,194,53,12,168,128,118,243,111,212,97,59,15,38,236,44,166,222,42,120,131,203,179,163,17,51,213,48,126,171,20,50,126,249,21,38,201,255,33,74,226,201,93,187,169,214,75,89,140,56,74,105,95,198,42,132,195,149,39,186,142,148,153,242,38,78,71,173,111,175,50,91,125,233,189,138,211,179,204,155,253,142,132,220,80,149,192,153,154,222,93,86,95,109,249,2,147,9,19,17,149,245,133,120,67,219,143,155,34,229,98,19,165,222,178,69,144,140}, {35,35,117,118,151,180,53,163,92,160,204,78,104,215,164,110,109,218,241,66,21,188,42,142,34,217,27,47,95,223,192,48,244,107,102,134,175,34,83,129,81,241,4,138,167,247,149,46,108,58,96,70,146,117,218,189,3,113,213,43,211,68,174,114,87,42,71,22,160,229,152,227,213,116,180,230,113,80,18,99,128,170,35,162,206,20,219,153,129,224,98,48,9,173,153,4,251,102,28,154,90,59,201,205,14,95,82,51,10,8,30,49,151,127,105,54,18,204,250,143,83,109,69,36,3,64,27,160,152,8,143,124,107,12,207,32,54,247,0,92,9,107,182,73,95,196,103,230,77,29,174,101,91,131,108,85,193,215,103,22,242,64,124,32,81,23,206,229,39,191,162,223,123,61,177,43,137,82,157,186,189,9,179,74,242,106,27,121,173,227,221,45,12,2,12,206,55,143,4,102,181,117,5,107,194,252,138,48,231,106,104,148,192,90,56,106,25,20,208,31,199,19,37,86,59,110,43,54,180,201,13,73,31,76,234,168,34,61,56,108,17,130,231,254,27,87,196,232,238,18,98,252,127,247,252,245,5,253,161,29,4,162,222,89,42,82,103,243,24,56,147,200,114,134,103,92,146,231,64,203,254,2,175,190,29,49,215,27,246,169,62,50,33,30,173,165,120,196,214,237,140,164,13,149,203,151,205,208,169,160,120,222,73,235,34,4,115,250,104,53,58,3,75,226,53,38,65,202,17,90,248,118,156,41,216,31,124,106,4,174,28,15,171,177,110,214,32,204,159,201,229,189,133,54,165,111,185,33,221,33,183,27,120,18,133,220,49,192,119,181,252,58,111,154,96,248,203,109,145,239,137,5,86,49,196,100,169,141,185,121,237,192,90,117,156,0,19,90,147,62,43,66,57,90,9,143,83,198,254,153,116,238,212,179,147,179,95,181,15,81,143,125,201,172,155,234,164,25,74,241,128,140,168,173,39,69,231,243,15,191,221,192,234,140,37,11,195,121,37,37,110,2,221,59,155,137,104,82,115,215,141,197,96,41,181,130,120,233,110,239,238,151,231,49,3,241,145,33,3,106,75,149,9,96,165,245,188,97,202,54,128,96,206,241,173,106,11,57,225,195,131,210,221,214,187,168,187,30,72,52,245,230,8,0,233,105,9,32,77,200,98,155,39,45,185,91,51,82,125,171,56,238,65,184,234,239,124,63,146,169,73,21,33,92,236,116,57,97,66,55,61,173,14,44,192,103,164,87,23,253,181,139,39,251,146,226,120,250,155,119,222,92,123,100,205,52,92,146,126,195,5,71,156,69,174,141,189,97,202,41,91,178,29,50,195,131,10,126,182,221,113,195,161,64,64,179,98,229,190,128,193,127,166,212,197,15,192,16,63,84,204,37,112,144,142,236,157,206,29,90,236,200,141,166,167,217,117,235,141,54,241,22,140,9,39,5,126,41,35,177,32,133,251,228,32,41,199,168,14,168,148,55,192,209,16,2,25,178,9,76,82,53,56,167,11,242,65,246,188,162,48,209,73,67,181,36,120,137,119,187,249,138,204,68,237,68,157,175,43,175,139,21,223,210,251,134,233,25,96,231,207,80,147,40,191,232,205,250,96,169,81,155,45,105,107,220,131,229,150,55,202,156,18,70,233,131,84,164,60,124,61,83,213,24,32,156,145,185,126,20,114,157,236,61,184,106,48,15,86,163,38,105,157,20,0,53,238,121,43,38,164,180,141,110,147,251,79,29,48,250,71,52,214,162,40,97,190,59,97,198,179,228,109,171,13,41,30,131,122,204,162,65,87,69,243,216,26,49,222,69,45,64,200,161,254,206,224,128,44,198,64,235,123,208,116,204,41,106,181,143,191,210,113,20,99,63,54,161,181,38,220,126,26,254,129,81,95,151,200,30,65,169,40,157,203,125,143,40,118,156,50,169,247,206,240,225,80,136,5,25,85,229,112,195,54,193,241,159,253,35,154,169,110,58,246,198,247,203,187,132,207,242,145,136,178,127,114,6,33,79,183,205,142,243,123,146,236,213,192,158,30,250,64,227,163,237,130,180,130,23,61,163,221,18,210,144,195,16,132,98,195,200,45,5,175,7,30,79,59,37,241,246,215,18,135,167,82,134,175,74,71,234,85,246,168,158,125,231,105,194,36,33,63,177,127,181,181,237,234,66,153,15,65,93,52,210,180,81,254,82,20,1,36,211,221,145,70,150,16,71,57,41,18,244}, } ; static const int16_t precomputed_encode_653x4621_x[precomputed_encode_653x4621_NUM][crypto_encode_ITEMS] = { {-6296,-3057,-31961,16334,18370,-26522,-10828,-23570,-8471,24409,-23954,-14564,-12045,-16204,-5722,-1641,-9779,9378,9565,9233,27965,10007,22429,-7702,17069,-3793,31565,1133,3041,24863,24648,1410,25787,-23793,-18245,-30434,-13364,-16230,-32294,22198,8323,552,11605,10926,-2140,18714,-27250,27214,22369,-22608,9467,1073,26648,-5188,29701,-9265,-17746,-32297,-2787,19482,29612,-4306,-15877,-25915,3530,14436,-3229,-17380,7091,16986,-29532,-32286,22242,-692,14677,-30835,4091,4202,29729,-6531,-27306,7137,-29290,15409,19314,-25751,22196,-22924,-26768,-18266,-3249,27686,17123,-19775,-10619,-15567,2181,-23178,-9767,12231,-27061,31164,-31002,4272,-6979,-6043,22085,-5660,25131,30435,30790,-10191,-31342,-18682,-8013,-31567,-29436,-4799,8014,26002,-6493,25556,21825,-23257,-31251,-23613,-16480,16047,26892,17697,-5826,-26970,7179,20865,-27749,10149,21169,25121,3933,16121,15038,-5548,24195,17845,26561,17686,17717,-13885,17083,-31539,-9820,-16445,17693,-16470,22444,5735,253,22998,2436,-14814,-14325,-26799,-24691,21883,-29685,-28330,17301,-24912,4823,17906,26884,-13501,10389,-18414,11500,-26454,16340,811,29068,24231,-24754,-12474,19952,-14865,-12949,-8810,29836,-28406,-2660,16733,27199,-20842,-15133,-3439,15869,2202,4104,-23047,-2968,9648,29256,21107,11128,-25217,-25868,-20256,-7551,-9966,-29867,-1840,-12563,6965,11068,18665,-21053,-1848,15256,16916,8189,-31225,273,-19654,-28182,19061,4549,32254,-22083,-16245,-9176,-17098,26010,3826,-2783,-1044,-7754,8580,-11560,31492,16053,-21691,2084,-26267,-24156,-26493,-21877,31334,-31383,-31148,29474,-17683,-18119,-30826,14610,11061,-14562,-23030,18039,26358,19152,26890,1159,-12333,-1776,-15680,15858,-20943,159,3122,-6330,20762,20621,-31796,-4650,11606,4828,-5483,-15273,-32268,11906,10378,13068,9629,6352,-22829,-5100,27612,5269,2215,-2036,7363,569,-4532,-2209,19997,19853,14589,19494,-5098,-25506,18512,25965,22393,-27424,10186,-3611,12043,-31422,5535,-26323,-9359,754,19937,9912,-6001,23910,22965,-22980,-3799,-32610,-9960,8969,25944,-18392,28308,-27480,-21093,-12807,-7043,-3728,-25582,26520,25571,3580,-14430,11304,-32203,13481,18427,12433,172,7588,26993,-24001,17268,2436,-20242,16623,-22507,-1320,9594,-10393,26978,24721,-1635,-1647,-1293,30969,-27877,-30244,31901,2883,-10321,-27583,-26098,32321,13325,-28793,29785,16493,2614,23911,20818,3781,-9742,-8199,10625,11088,14007,8709,7030,11165,-8320,-10580,10180,-29596,-13441,-3006,17146,-1298,2180,-29290,15988,-27821,-26105,1901,-31784,-17170,-18668,25131,7033,-31557,-15618,30552,3236,3639,3758,-31279,-2248,-20140,794,-14710,17694,-22484,6595,25280,-2088,7782,11299,23166,-27890,17422,20774,1652,-19793,25487,9383,979,-21314,-7754,-24086,15152,-14865,14307,-17941,21133,-31887,-6917,-24826,-23414,1220,19285,-24438,-21750,-32767,31360,-29219,20658,-31103,26806,-13451,7661,-14204,16615,27288,25800,16674,30247,11978,27653,8152,2357,-2299,5421,-19942,-15128,14385,30783,30851,7979,18126,30361,12454,-30003,-29844,-2149,28935,-29079,-11570,-302,-9356,15453,-13846,-11492,11104,-1040,-25218,19957,31618,14561,-18747,-15064,31125,-21391,24476,14984,10190,-10561,13864,-12828,29496,14349,-2617,-24871,-168,-25046,4032,-4941,1897,134,14519,-26267,30059,24962,1364,25518,29574,14754,19708,-31714,14876,16090,21039,27400,-32033,17858,-29346,-16744,27542,-22100,470,6991,25501,4857,-21612,29305,-30795,-31498,24342,5054,-16054,11264,-26893,20685,-865,31722,-28619,-12859,-14534,20997,12614,-16075,5276,28926,3914,15065,15849,-8614,-27602,23956,-18281,19865,31937,-3481,29382,21330,-7317,16232,-9663,-20562,-16218,-28023,-26401,7227,25197,-25366,5960,19633,-3592,-16357,-26288,6069,12140,30619,-17150,30444,-27726,-32100,-32391,-3406,-5358,24219,9765,-18607,-7312,8501,21046,22372,-26760,-30015,6745,-560,-10211,-4767,-8456,-31344,-11404,-6959,13790,-8940,25535,16318,25687,-24942,-7893,-9902,15428,8109,-22565,-22391,20311,26957,-4952,-12225,-15272,15729,1009,-30195,-16202,-6963,2403,-22963,-12551,-15030,27682,-23139,28821,16606,-548,-2785,-25342,-16738,-1791,-10551,31704,19080,8234,30399,9495,24634,-32098,-18747,1587,7664}, {28652,10983,-23772,7523,11260,-9985,11658,-1470,-29258,11018,-19655,-23605,-18699,-26547,20026,17562,-30681,19402,-14367,28093,-13042,-23129,4955,18460,-29611,27431,-21536,7301,-16883,-8465,2903,-24650,26281,-11664,4534,-8124,31120,28006,12259,-15067,-26263,10250,-14163,6150,19774,10842,28589,4595,15004,-21229,22677,-1529,-4859,7730,-12486,-9762,-10276,25423,4763,24181,-4014,-24522,-31558,20564,22969,31193,9593,29003,-28382,13827,24270,9726,30888,-29774,664,-7922,15540,14411,29600,-28801,32442,-9569,30628,29823,-29657,-27429,27990,-28279,505,-18043,-21003,-25506,-20870,24543,17440,-31126,-13645,11555,-21280,-20319,-10908,-32050,-10048,21823,-21332,-24610,7427,-17991,10003,-4936,29182,7912,-21441,-6153,2451,7642,28001,-4416,16467,19573,6513,-9970,12455,20293,12039,-13398,-26998,-21371,-16264,-18394,21080,-8296,-3989,-4873,-13263,-25812,13825,9196,-14246,-6154,5942,-2487,6486,-28607,19648,18681,5526,-5128,-32011,-23586,28397,12216,30669,-20609,-2851,26080,-23214,-7580,10063,-29694,21035,-13696,31148,13300,3588,25755,8582,10608,20861,14890,-28767,5809,-20103,-4286,-174,3141,11671,-23115,-19380,-32666,-13870,-30550,-16386,5861,26437,25292,-15172,-21323,-2412,-20098,13531,-8250,685,4081,-2196,19844,-4743,-28819,30765,-1679,30434,-31105,2019,-30049,473,20060,18204,15042,15974,-5280,-7824,17435,14775,-30634,468,-23646,28465,12942,19629,-25697,-5101,-10014,903,7244,-18938,-31962,-4852,19654,24086,-24264,-29065,-11908,-15987,-16732,-21201,-13757,17274,1602,-24000,32382,16180,-23397,29511,3440,17594,-3071,-15796,30072,-30061,-15748,17589,12442,7312,-160,-11151,8603,-11027,26751,-19562,5606,8384,-22515,-2600,-5468,-4700,25068,-31307,-29433,24769,8981,23804,-9887,12543,-26123,4749,22224,31043,17354,8172,-12964,-19697,-6411,-2828,-19547,3553,11434,-32342,24075,26480,7344,11883,29105,-28433,15696,13071,4644,13807,-20423,-26602,-7632,6425,22887,-23559,-12043,-8462,-7613,-32217,24442,24833,-21058,22779,19360,1758,-123,-10021,8289,-24860,-22034,14574,22967,7918,26886,-2488,-20362,-2453,-8772,23394,11941,-19043,11917,26365,18293,-10798,3844,-20788,-6502,4402,1669,4200,-4607,31360,-20746,22578,18548,11318,9707,3407,31351,28083,-24334,28277,5132,31844,-9766,24447,-1847,-14844,15707,31766,-25835,31201,257,-4331,-6659,3372,-11187,31403,27911,-12709,32366,30245,978,-3346,26767,15698,29966,-7736,4807,-4683,16103,23309,14699,1825,-7841,-1104,-31971,-20560,-21649,11550,2230,30093,1997,26201,-25747,18155,29630,11450,26611,2543,16800,-23218,-2791,32421,-6137,23978,23298,29652,28871,30158,-25774,-24926,29499,-21498,25033,-11058,-4965,10092,20786,-6986,25213,-20370,11698,-31841,-21556,-17956,-6625,-16573,6987,-11637,-31329,5383,2163,-32653,6950,2575,16286,31010,-13719,31498,-26927,6723,-21397,-3927,-31734,22376,18377,29075,-27945,-8480,-21721,-13739,-6727,24751,-8139,8592,-619,-14468,15366,27942,-32721,-2649,19252,3623,17086,13608,32290,19871,-281,15448,-32673,26554,-3783,-29859,-825,13264,9707,29907,-28398,9884,13097,-5763,30632,10370,22091,-17829,-9382,31591,4216,25769,-6344,17048,28603,15679,-9149,19056,20052,350,-25237,-3480,16633,-9800,12744,-16198,32633,-1528,-6898,18864,11139,-30178,-2027,-10313,2542,13572,4537,20118,18110,13085,22219,-30961,3638,-12192,-14289,-6061,30882,-25632,-29025,-15439,-15616,-15928,26676,31280,-8344,21856,-12796,8753,5106,-24544,14522,-30083,24834,-3500,28454,10216,12440,-32638,14533,951,17319,-30702,26612,-11878,-2102,-13434,-18490,-20530,20637,6367,29356,-18581,20255,31512,-6647,1283,9096,14084,-2296,21663,24113,-30927,28154,26112,-25303,15999,-27750,31077,5061,-9642,-20150,11373,9176,18193,-18128,-18567,-3611,24470,-30455,-4812,14738,8532,-25532,24054,15534,-2444,10090,22323,-20444,17964,-6745,-25555,3870,2841,-24336,-31509,27484,18914,-31039,19226,18174,-11082,-12611,7570,5705,-19977,3972,9699,-9810,-16478,20520,-14372,-7793,28090,-2168,1913,-22323,-11894,-26879,-20437,-18051,-9900,9735,-27706,6163,-9206,-13949,-24308,-2083,-19542,-15099,17989,-23402,29971,9104,-1418,26558,7134,-6959,23326,1899,6408,-4302,-26349,-7693,-15940}, {-11677,9646,-15556,19061,29834,11527,22266,15075,105,18715,-10499,-8073,15143,-4101,-20287,-15648,-29081,93,5126,-11347,-11060,17002,-10973,15019,-21936,17634,-29202,-8678,29721,18786,16356,-25057,13217,-14203,11360,-21679,7240,-8241,24959,25,2588,9897,2466,-14341,21358,-29122,549,-32454,-15908,7587,13569,-31739,25540,5606,10976,-8731,21055,-15206,3142,-31324,-31422,-21502,-1507,22971,-6055,-26518,-29928,18486,-20087,18641,-16934,-30077,-11249,2592,-22899,-1861,-17840,-7905,27685,22638,22893,18912,-9448,1621,-12335,-8120,27252,-19823,25312,2851,20879,-31825,7588,-1695,17579,30956,18420,-10855,18056,914,-24836,-18585,31901,2581,-23159,10572,32317,-32375,6469,12220,-12353,-11644,26657,-28741,24458,29596,-12888,-1835,26483,-27624,27904,-8623,12526,-21671,6933,-10723,4120,-6087,5751,-25740,8128,-10663,-19900,-1907,-12026,15130,-28113,11109,-31014,-17942,-29936,-20287,28903,-29600,26894,11977,-22776,-26870,-26357,-24952,-12473,11746,-8455,9248,-26940,13168,-30261,19531,31948,-4616,-25303,-19915,20302,17447,-24514,-19968,-26837,19169,7437,12717,-23815,13996,7933,7785,26415,4932,-4765,30203,5616,-29338,17781,3372,-125,19475,9822,-787,-12204,-6951,7644,-9316,-29362,-972,-2479,20511,13757,-25836,-4670,8586,5082,2480,171,-10931,-1039,-27839,-30068,8197,28581,-15014,-333,371,-6514,10043,9558,6171,32558,7144,17056,11049,8121,-8446,-4254,-22406,-15530,29729,7441,18695,-6418,-6290,13561,30760,-20989,-16421,8093,-15702,15565,-14504,25534,-15237,26051,3431,-17215,-15388,6662,20320,-14777,-12052,-1153,5133,17286,7568,28191,-10888,3954,-11133,10919,22506,-13357,-11331,13832,-10886,4103,31712,-24924,10913,-10647,5401,-18429,-24180,28491,-24102,-23715,-9389,-3914,5985,-154,20165,10373,18055,8776,-17713,-1016,-21374,-14639,18299,935,-25902,-17677,-12985,-17329,-24128,-19333,10878,15897,-29388,20340,-4380,23935,11662,4102,22891,8791,9306,-31401,-15341,-17085,10219,1636,4349,18424,-16492,7319,-19439,-29739,13136,3285,-6650,-5719,-22611,15900,13528,-2746,6947,-11621,-7959,7111,-12603,-12900,32408,-1771,22443,24410,9093,31183,27903,-9319,-28820,20463,-28380,617,6221,-26014,-23651,26348,-15994,25099,25243,20017,-8125,19719,26873,2044,15298,-8349,16890,1359,13497,3364,-1497,-13286,-26396,-16276,6025,17001,19655,18902,-2035,2485,31843,19257,-5768,17649,-13812,11995,32643,-31977,-17618,-20010,-25999,-27114,30473,-13487,29959,-7460,12639,-19173,21584,2222,23559,-2299,29569,26080,31099,-5498,-19289,10816,31287,-22429,4290,9045,1595,6405,-24697,-3620,-19252,-2502,-30971,-2535,-11849,31558,28260,31896,19697,-13643,-166,16228,-21312,-21576,24651,-5653,23383,-13605,-29098,-2312,-10762,7944,6641,16309,27264,9099,17116,-6551,-25323,-7859,5456,31136,-23442,-21991,4140,-7738,-32017,-6874,-18872,20100,7999,-6385,31151,-25861,27888,-32272,-3986,30388,-22956,-16256,16921,-24150,2579,14417,32149,-1860,-30324,-3694,-20680,-31737,9291,18235,20051,5168,-18376,19261,25323,13343,-16831,-22332,3828,-22541,-19627,12063,4750,6264,-18093,-5290,32698,11908,2597,-28916,25843,7321,14521,-26307,14495,-26494,27472,13912,-11744,-5560,-6660,-22931,-6516,8810,-14769,-23884,3693,12587,26523,5009,18493,-19171,20714,17282,-18583,22748,29271,-32642,8203,31553,-23549,21954,13296,-20345,7803,-16553,-20227,14874,3812,28668,23275,-3972,-26674,29418,-14149,19212,-4079,15842,20183,-31492,-13814,-31620,11585,-28407,-7072,-25802,22295,871,-8644,5620,11459,-2013,-6390,-2691,-29453,14980,-4163,15948,24535,-12367,-12848,-22428,28138,-24789,11019,1995,6331,2235,13219,13760,-1568,11412,25835,-17133,-15364,-23227,16581,-32755,-283,2962,-11164,30520,12077,-6568,-27333,29704,17066,-26370,6648,-17507,-23154,-5909,6381,-31454,30556,-30826,32517,8955,18760,17551,12359,12390,1853,-7866,-22067,-10928,13135,5758,27712,13226,-28717,-31282,-13487,-28334,-5056,-20270,9192,-1444,20084,24830,769,-12167,-5674,29673,18390,32006,-4850,-4561,11608,-23624,17105,-22745,30784,-16901,-14193,25559,13880,22930,29337,-7079,30887,-4021,7020,19062,3470,-26310,12780,11972,12524,9003,-16498,19399,-12253,-25153,-3737,23096,-9425,5300}, {-24503,-6370,-3576,-16067,-7378,-12503,13860,14193,-29945,-23611,-32261,9777,-12357,381,21724,29764,-8989,4238,-15622,19055,30571,19502,380,10050,-13703,12649,19433,-5418,-20137,2436,-23191,-29873,-6507,21367,-7568,-3670,-24299,-3874,-1494,11241,3522,20071,17177,5171,-25711,-7606,-28800,-7035,18895,557,-13841,19537,-5276,-17726,5110,10704,-14403,-14278,720,-30155,27108,11079,-22975,-5827,-7355,1590,-2640,-23153,21063,19673,-16786,20142,-10237,-15626,-27122,21786,16350,25211,19535,-23189,-25812,-1792,-4713,-744,13016,-6230,12755,-21628,8840,-26119,-3193,-27165,8703,-19442,-27498,21419,-4654,-23063,-108,-30716,-18638,4132,6276,14197,-14599,-32379,-4083,32117,-29221,14215,1049,-8651,-9140,27155,1033,-16068,31774,-3040,20027,18775,-21938,-13259,20900,24385,8543,-32368,19413,24378,10992,12196,-9443,-28138,-9183,7758,32190,17777,18549,-31775,-423,8927,-27749,27906,17955,-24197,-15679,25586,-11275,-30954,8206,-11561,-15018,16660,29517,34,18440,-17584,28709,18536,-9315,-19762,11797,-8851,-17907,-15161,-30397,30242,-21587,1217,17890,2933,14268,-18086,9737,24598,11308,-25931,-11159,-29700,-17075,-21524,-4975,16440,-19003,-16254,10483,-1385,15354,21441,-25440,1629,-21513,31578,-13582,7262,26344,-29680,-20651,7750,6264,14872,15808,-14107,31831,-28350,27034,-25820,10816,-29618,10490,5309,-22268,20816,-28126,-14606,-23715,18403,19488,-13319,-21071,-15561,29301,-18058,-18595,-29372,27977,3990,-28813,10484,-4730,21698,-11796,30145,26552,-11105,-5817,-26165,-10993,-18437,22421,17099,29969,32348,-26912,-24897,-21714,-22851,-13889,-10187,10243,2099,6573,11941,-9307,-23522,-1888,-15064,19696,14725,14159,-11658,-14679,-29085,-29716,20630,-12460,-3062,19478,-30031,-28549,-27347,-13832,11939,18800,-14362,6309,-18010,-15870,-23252,27052,-31680,12637,-9663,-14045,-15848,-30838,-8325,123,6952,-19998,-11072,-14396,-23234,-32550,6399,13557,-25868,-17640,29756,-14395,-11151,2040,27456,27889,10984,-2156,-9297,-114,30423,15243,13682,1554,-29734,25538,23615,-15723,2781,5078,4141,-18096,-25644,-9643,-3691,-19038,1897,27650,27291,24247,30350,17201,-10308,23107,4261,5763,-9319,4027,-83,-29954,8530,21041,-30021,-12004,-19620,-31697,-12856,12564,13214,18101,-21325,-13573,-7792,-13416,-29027,8255,26938,6581,-24820,669,32232,-19222,-18341,-20680,28439,-27826,-12114,18799,-2742,15879,8110,-20623,-6150,-2197,18417,-30858,-15623,-27688,14852,-21680,-5629,9459,-12046,-20911,15220,6597,11249,21035,14617,-22673,8190,-20579,5352,363,13414,21287,-3429,16485,-17489,17505,18262,17268,-4041,-3750,-1487,26581,29776,-26322,-19741,-15870,-25679,18990,-6036,-12644,-24940,30604,196,-19452,23143,19818,30949,-20443,-13970,5420,13707,-32125,3386,-11301,-228,12754,31222,10062,31816,-10056,30276,-2113,-6743,-31882,5777,11429,-21722,32053,-7650,-180,-16911,28572,12898,22828,-8711,18217,9694,-10202,29079,-15568,4114,-979,16332,-2267,-1494,4048,23636,4409,-2,12284,8689,-27967,-26185,-6105,21666,24420,-20800,22578,-4472,19586,-26760,13100,18243,27695,25728,24369,-28356,20714,14745,1476,1087,-15350,15511,-32630,24355,-4220,628,-8167,-16495,-29080,18900,8710,580,-30678,-4053,10465,9646,27291,30778,-5674,-6531,-30295,22112,17902,-24291,-15172,-3433,13114,-19166,10632,24125,7338,23730,31709,-17256,-17784,-6751,21623,-22262,1953,-17183,29699,-6640,4207,-23218,-20702,-14991,-8859,-18988,5366,-15066,16115,15970,-25277,-5153,8477,4215,-25932,-27086,-14389,18258,20726,6515,8376,14688,-11749,-14478,19178,32020,-12068,-8191,20147,22627,24381,-4565,-24234,-20638,-11352,-11321,24586,23539,25443,-18640,-29202,-28784,14549,9163,-450,32237,19169,-20211,26052,-11217,21595,-29418,-15110,-7738,-22024,-22150,31464,11181,-11062,-6410,13699,-25997,-10724,15425,21964,2002,-21699,-8334,23731,-20498,-6204,-17257,-20178,29352,-3405,-1365,-24850,14891,8421,30984,8350,-5114,5448,22878,4244,-14930,-821,3242,14189,-6599,9445,-1092,-5124,-18384,6643,-5672,7604,22484,-13318,13354,-12428,-9634,15461,8820,9849,10896,-18848,-27880,-3447,-19344,-27604,-18173,24822,-15081,-31188,-15359,5256,-15319,-23914,170,8507,-3592,24403,-11149,80,13243,-2629,-28139,10946}, } ; static void test_encode_653x4621_impl(long long impl) { unsigned char *s = test_encode_653x4621_s; unsigned char *x = test_encode_653x4621_x; unsigned char *s2 = test_encode_653x4621_s2; unsigned char *x2 = test_encode_653x4621_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_653x4621_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653x4621(impl); printf("encode_653x4621 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653x4621_implementation(impl),ntruprime_dispatch_encode_653x4621_compiler(impl)); } else { crypto_encode = ntruprime_encode_653x4621; printf("encode_653x4621 selected implementation %s compiler %s\n",ntruprime_encode_653x4621_implementation(),ntruprime_encode_653x4621_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_653x4621_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_653x4621_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_653x4621_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_653x4621_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_653x4621_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_653x4621_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_653x4621(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653x4621")) return; storage_encode_653x4621_s = callocplus(crypto_encode_STRBYTES); test_encode_653x4621_s = aligned(storage_encode_653x4621_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_653x4621_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_653x4621_x = aligned(storage_encode_653x4621_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_653x4621_s2 = callocplus(maxalloc); test_encode_653x4621_s2 = aligned(storage_encode_653x4621_s2,crypto_encode_STRBYTES); storage_encode_653x4621_x2 = callocplus(maxalloc); test_encode_653x4621_x2 = aligned(storage_encode_653x4621_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_653x4621 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_653x4621();++impl) forked(test_encode_653x4621_impl,impl); ++test_encode_653x4621_s; ++test_encode_653x4621_x; ++test_encode_653x4621_s2; ++test_encode_653x4621_x2; } free(storage_encode_653x4621_x2); free(storage_encode_653x4621_s2); free(storage_encode_653x4621_x); free(storage_encode_653x4621_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_653xfreeze3.c0000644000000000000000000007131614705505543023353 0ustar rootroot/* ----- encode/653xfreeze3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_653xfreeze3_checksums[] = { "2af9cde3800c6d3ab447ef1153b456f24387915970704887562d60dba892d8ea", "a4142003bb2d13fc4e6fb515d06420bd4304cfae48831b80fe21ca6665e41701", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_653xfreeze3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_653xfreeze3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_653xfreeze3_ITEMBYTES static void *storage_encode_653xfreeze3_s; static unsigned char *test_encode_653xfreeze3_s; static void *storage_encode_653xfreeze3_x; static unsigned char *test_encode_653xfreeze3_x; static void *storage_encode_653xfreeze3_s2; static unsigned char *test_encode_653xfreeze3_s2; static void *storage_encode_653xfreeze3_x2; static unsigned char *test_encode_653xfreeze3_x2; #define precomputed_encode_653xfreeze3_NUM 4 static const unsigned char precomputed_encode_653xfreeze3_s[precomputed_encode_653xfreeze3_NUM][crypto_encode_STRBYTES] = { {0,0,255,0,1,0,255,255,2,0,0,1,255,0,2,255,254,0,255,255,0,0,254,1,0,255,255,255,0,1,1,1,0,254,255,255,255,255,0,254,0,0,254,254,2,254,0,254,254,1,0,1,0,2,255,2,1,0,0,255,255,1,1,0,0,255,1,0,1,0,1,0,255,255,1,255,0,255,254,0,254,0,0,255,1,255,254,255,255,0,255,255,0,1,1,0,1,0,255,2,2,255,255,0,255,0,0,255,0,1,1,0,0,0,1,0,0,2,255,0,0,255,0,1,0,254,0,1,255,0,255,255,1,255,0,255,255,1,0,0,2,1,0,1,0,255,0,1,255,1,0,0,1,1,1,0,1,0,255,2,255,255,1,1,255,0,255,255,0,2,0,255,0,0,2,0,2,0,0,255,0,0,255,0,1,254,1,1,255,1,255,0,0,0,255,0,0,255,0,0,1,0,255,0,1,254,0,255,0,255,255,0,1,2,255,0,255,0,255,1,255,1,2,254,255,1,0,1,0,0,0,255,2,254,0,0,1,255,255,0,255,1,0,0,1,254,255,1,0,0,0,0,255,0,0,1,1,2,0,1,1,254,1,0,1,0,254,255,0,255,2,1,1,255,255,255,0,0,1,0,254,1,255,1,1,2,255,255,255,255,1,254,1,254,0,0,0,255,255,255,0,0,0,0,0,2,0,0,1,255,255,255,0,255,0,2,0,0,255,255,2,1,255,254,255,1,0,255,255,1,1,1,0,255,0,1,0,0,255,255,0,1,255,0,2,255,255,1,0,255,0,255,1,1,255,0,254,1,1,0,255,0,255,255,255,254,0,2,255,2,0,255,0,255,254,255,0,255,1,1,0,0,255,0,0,0,2,1,0,254,1,0,255,2,1,254,0,1,0,254,2,0,255,0,0,0,255,0,0,1,0,1,1,254,255,0,1,1,0,255,1,254,254,1,0,0,2,0,1,0,255,254,0,254,2,0,255,254,0,255,254,0,1,1,0,1,0,0,0,1,255,0,0,1,2,255,1,255,0,255,0,255,1,1,0,255,0,1,1,1,2,1,255,0,1,1,255,0,2,2,254,0,1,255,255,0,255,2,2,255,255,2,1,0,255,1,2,2,255,0,1,1,1,255,254,1,0,255,255,255,255,254,0,0,254,255,255,254,1,1,254,2,2,255,2,0,0,0,2,254,0,0,255,255,255,255,0,0,255,0,255,255,0,255,1,0,1,1,255,255,2,254,1,1,254,0,255,1,0,0,1,1,1,1,255,255,0,1,254,1,0,255,2,0,0,1,0,1,1,254,255,1,1,0,0,1,255,1,255,0,0,0,0,255,0,0,1,255,255,2,255,255,254,1,1,2,1,255,0,0,0,0,255,1,0,1,1,0,255,0,0,255,0,255,0,255,0,1,0,0,0,1,255,254,0,1,1,255,254,1,255,0,255,0,255,0,1,1,0,254,255,1,255}, {0,254,1,0,1,255,1,0,1,1,0,255,255,255,2,1,254,1,255,1,1,255,1,0,255,255,0,255,0,1,255,255,0,0,2,0,0,255,0,0,0,1,254,1,255,0,255,255,1,0,1,0,2,255,2,1,255,2,1,1,0,1,2,255,0,255,0,0,255,255,1,1,0,0,1,2,255,1,255,255,0,1,2,0,1,255,255,0,255,255,0,254,255,0,1,255,0,1,1,255,255,2,1,255,255,254,2,1,0,255,0,1,255,0,255,1,254,255,254,1,1,1,0,1,0,0,0,1,254,1,1,255,0,1,1,2,2,0,255,1,0,255,0,0,255,1,0,1,2,255,254,0,1,2,255,0,0,0,0,2,1,255,2,1,2,1,1,0,0,255,0,255,0,1,0,255,2,255,255,1,0,0,255,1,255,1,1,1,255,0,255,1,255,0,0,255,0,0,255,255,255,0,255,0,255,0,1,1,1,0,0,0,0,1,255,0,0,255,255,255,0,0,255,1,0,1,1,2,254,0,1,2,0,1,0,254,255,2,0,255,0,0,254,2,2,2,255,0,0,255,255,255,2,0,254,0,254,0,1,1,0,0,0,255,255,255,0,255,0,0,1,254,2,0,0,0,0,255,2,0,1,0,1,0,0,1,255,0,0,1,255,0,1,255,0,1,254,0,1,1,255,1,255,2,255,0,0,255,1,2,254,0,1,0,255,255,0,0,0,2,255,255,1,0,0,255,255,0,1,255,1,2,0,1,0,1,0,1,255,255,254,0,255,254,255,0,1,1,0,0,0,2,255,1,255,0,0,1,255,1,1,0,0,0,0,1,0,254,0,1,254,1,1,2,2,254,2,1,255,2,0,255,0,1,254,255,255,0,255,0,1,254,0,0,255,1,2,255,0,0,255,0,255,0,255,0,1,2,255,0,255,0,0,0,255,1,2,255,1,255,254,2,255,255,0,255,255,0,0,0,0,1,255,2,255,255,1,1,255,2,255,1,255,255,255,254,255,0,254,0,255,1,0,1,1,1,2,0,255,255,1,255,0,255,0,255,0,254,255,255,1,1,255,255,255,254,255,0,0,0,1,255,2,0,0,0,0,2,2,1,1,1,0,1,254,0,0,1,1,0,0,0,1,254,1,0,254,2,255,0,0,0,1,0,0,254,255,2,0,255,0,0,0,0,1,254,255,0,0,0,0,1,1,254,255,255,1,255,2,255,0,255,2,1,0,255,1,1,255,0,1,0,1,2,255,255,0,1,1,0,1,1,254,1,0,0,0,1,255,0,0,255,0,255,254,1,1,254,255,1,254,255,0,1,2,0,255,0,0,255,0,1,254,255,2,0,0,2,1,0,255,0,1,0,254,0,0,0,254,1,2,255,2,1,0,1,255,0,0,0,254,0,0,1,1,255,2,0,1,1,255,0,255,0,1,255,0,0,2,0,255,1,255,2,255,0,1,1,0,0,0,0,2}, {2,0,1,255,1,255,2,0,255,2,0,255,1,0,2,254,0,2,1,1,2,254,0,0,1,2,255,1,0,2,1,255,1,0,0,0,255,0,1,0,2,255,1,1,1,0,1,255,255,1,1,0,0,255,254,0,255,0,0,0,1,255,254,0,0,0,0,254,0,1,255,0,0,0,254,1,0,0,2,255,1,0,254,0,255,254,0,255,255,255,2,0,255,0,0,0,255,254,255,0,0,0,1,255,255,1,0,0,1,255,1,0,254,0,255,1,1,1,1,0,0,255,1,0,2,1,1,1,255,1,0,1,1,255,1,254,0,0,1,255,1,0,255,0,0,1,255,255,0,1,254,1,255,1,255,254,254,0,254,1,0,255,0,255,1,1,1,0,2,0,255,0,255,0,0,255,255,255,255,0,2,255,2,1,255,255,255,254,1,0,255,0,0,1,1,2,0,0,2,0,0,0,1,0,0,2,255,1,0,255,0,0,254,0,1,255,1,255,0,255,1,255,0,0,0,1,0,0,255,0,255,254,255,255,255,1,0,255,0,0,0,255,1,1,0,1,255,255,255,0,1,0,255,0,255,0,255,0,0,1,255,1,254,255,0,255,2,2,254,0,2,255,0,255,1,1,2,254,0,1,2,0,255,255,1,0,0,2,1,0,1,2,0,255,254,255,0,0,1,0,2,0,255,1,255,0,2,0,255,1,255,1,0,0,2,1,0,1,255,255,0,255,0,255,1,0,1,0,2,1,1,255,0,254,1,1,255,0,1,255,255,0,255,0,0,1,1,255,2,254,0,0,254,0,255,0,0,1,255,1,0,1,0,1,0,255,2,0,255,1,0,0,255,1,255,255,0,1,1,1,0,255,255,1,0,254,254,1,2,255,255,0,1,2,1,1,0,255,1,2,1,0,0,0,0,255,1,0,2,1,1,1,0,1,255,255,1,1,0,1,0,0,255,1,2,2,255,1,2,0,0,1,0,0,0,254,1,1,2,1,2,255,255,0,255,255,0,0,0,255,0,0,0,0,1,255,255,1,255,0,0,0,0,1,255,254,0,0,0,255,255,0,0,255,1,0,255,1,0,255,255,0,1,1,255,0,255,1,254,1,0,1,255,254,0,0,254,0,1,2,1,255,254,0,1,0,2,254,0,0,255,255,1,0,1,255,0,0,2,1,254,255,0,1,254,1,254,255,255,0,0,254,254,0,255,1,0,255,254,1,1,0,255,1,0,0,255,2,1,0,2,1,255,1,254,0,0,255,255,2,255,0,0,1,0,0,2,255,254,0,1,255,254,1,0,255,255,0,0,0,0,1,0,2,0,1,1,255,2,0,2,2,0,0,0,0,0,1,254,255,1,1,0,2,255,1,255,1,1,1,0,0,1,255,1,0,0,2,1,1,254,255,254,0,254,0,255,255,0,255,255,0,254,255,0,1,255,1,2,1,255,255,255,254,0,0,0,255,1,255,254,2,0}, {2,1,1,1,0,0,0,1,255,0,255,1,1,0,1,2,1,255,0,1,1,2,2,1,254,1,1,0,255,255,0,255,255,0,0,0,2,0,0,1,0,1,0,254,255,254,255,1,255,0,255,1,2,254,1,0,2,0,1,0,1,1,255,255,254,2,2,2,0,1,0,254,2,255,255,2,255,0,255,255,0,1,255,2,0,255,0,0,255,0,255,1,2,254,0,255,0,255,1,0,0,2,0,1,254,1,255,0,0,255,0,0,255,0,0,0,255,255,0,0,255,254,0,254,1,255,1,0,0,1,255,255,255,1,255,1,0,1,254,255,254,1,254,0,255,1,0,0,0,1,254,0,255,254,0,0,254,1,255,0,255,255,254,1,1,1,1,255,255,1,255,0,2,1,255,254,255,255,1,2,0,0,254,0,255,1,255,255,1,1,255,0,0,255,1,0,255,255,1,1,1,254,0,1,0,0,255,1,2,255,0,0,254,255,255,1,255,2,1,0,0,2,255,0,255,0,0,1,0,0,1,254,1,1,1,2,0,0,254,1,0,2,1,0,0,255,2,0,1,0,1,255,254,0,1,0,1,0,2,0,1,1,0,1,1,1,0,255,1,0,0,2,0,1,0,0,1,255,1,255,0,255,0,0,0,255,1,254,255,1,255,1,254,0,255,1,0,0,0,0,255,0,0,255,0,255,255,0,0,254,1,0,0,0,1,255,0,255,1,255,0,1,2,254,1,255,0,255,255,0,1,1,255,1,0,0,1,2,0,2,255,1,0,254,0,0,0,254,255,255,2,254,1,0,255,0,255,255,0,0,0,254,1,1,1,1,1,0,0,255,1,255,0,254,0,255,2,1,0,1,255,0,2,0,0,1,1,1,0,255,1,0,1,255,255,255,1,0,255,0,1,255,1,0,255,255,0,1,2,2,2,0,2,0,1,0,255,255,0,0,254,2,1,0,1,255,1,0,1,254,255,1,1,255,254,0,0,255,2,255,1,255,255,2,1,2,1,1,254,0,254,255,255,2,0,2,0,1,254,254,0,0,1,0,2,0,255,1,0,0,2,1,2,254,255,1,255,0,0,0,255,2,1,254,1,1,2,255,2,0,255,255,255,254,1,2,1,255,255,0,0,0,255,255,0,0,0,1,0,0,255,254,0,1,2,0,2,0,255,255,0,255,254,254,0,0,2,1,254,255,2,0,0,0,2,255,1,0,255,1,2,255,0,1,255,2,255,1,0,0,0,0,0,255,255,255,1,2,0,254,0,0,0,255,254,255,0,255,0,1,1,0,1,255,1,1,0,0,1,255,255,0,1,255,255,0,1,1,0,0,1,255,255,0,1,254,0,255,1,1,1,255,1,0,255,0,1,254,2,255,255,255,0,254,0,255,255,1,255,1,1,255,0,255,0,1,1,1,1,1,0,2,2,255,255,255,1,254,0,0,254,0,1,255,1,0,255,255,1,0,2,255,1}, } ; static const int16_t precomputed_encode_653xfreeze3_x[precomputed_encode_653xfreeze3_NUM][crypto_encode_ITEMS] = { {-1518,6891,18677,4155,-3662,-20499,12176,-2677,-17218,-28578,6723,-5339,-4936,-15954,-29557,-775,21373,29955,-8857,12650,-8823,25158,26305,-6449,9699,24356,-14719,-631,-19947,-7262,-9785,8935,23295,29245,16004,24428,-2647,-12961,9501,32311,-2049,-3042,18370,22576,-31750,22672,-15552,19345,26755,-2228,14913,-4871,21591,-16867,-14512,-18874,-16541,23910,30588,-8998,9365,-32510,-21869,-25491,-28299,-10255,13678,22602,3394,19785,-1511,-21519,27578,31853,736,-5629,30936,-9052,20443,2394,27220,31404,29580,-13690,1399,-6541,22663,-10924,13370,-8379,-6739,6587,19251,-30134,-8540,-20007,-11945,23142,25028,-30664,-30916,7976,-2164,2919,-8920,-29244,31224,1751,-16620,14053,5005,-18078,23928,-27189,-23522,-31170,-7458,-31417,30140,-10029,-28680,17414,7563,-21905,-348,17161,-28641,-24305,6689,-10518,25379,8642,15040,14054,4782,13292,1598,-15527,831,17469,-28138,-24716,1308,-6308,4962,24866,-12777,-16022,16070,-14639,24747,-31821,-20087,-20345,12799,10812,2935,-24234,24005,-25684,5054,2147,-11567,-9605,32351,26877,18329,12893,26631,-16687,2124,-13,-28656,-1494,-21607,24663,-29011,-30363,-6765,18326,25050,-18672,-3544,-4656,5395,31288,-10154,15766,13118,-32291,-4207,23904,-22848,8283,-15217,-1482,-13596,-3013,-26817,14772,796,-9348,5489,-10245,-6848,32578,9693,419,13779,31961,2486,8736,-18872,-31960,-12163,-15936,-16039,-16416,20930,-13364,19634,-32501,-18532,23059,-10240,-20945,-18057,-29177,-57,-5799,18210,29168,-24256,24019,25908,-19128,-18980,23594,-16204,-26382,21782,-30743,8397,26949,-4586,18163,-3964,6613,14133,6768,-31227,-29259,17117,16686,1755,1924,7201,-31285,-6567,5026,-19376,32626,-29780,8340,3526,-15966,19675,-76,-8820,27920,-30607,-1241,-12356,1553,19976,1043,17256,-8580,15784,-16419,31138,13657,25370,-28748,-28115,-31837,-1849,19436,-7111,2636,2731,21148,-26786,24688,31602,25665,-29772,21065,-8131,-43,11769,-8721,-21249,-24867,30864,-18094,-4452,23475,-29822,23090,7814,23099,-28008,-5701,24879,-31042,-558,31992,-10513,23675,-26044,-10985,8015,27448,20612,-31319,11634,-14533,26639,-13937,-25712,-31916,17286,16925,3618,-7055,-25056,14469,24302,25202,17550,10762,26585,28458,-26638,6794,-2029,-29441,-8673,6986,-31140,-14944,-26378,13339,-3622,-3687,29134,-7142,9565,24378,-15757,-29586,14075,7004,9830,19093,-8982,-20203,31994,-26569,-1770,18149,-7971,27533,20242,16115,564,3524,11773,6535,3075,825,5750,-18975,14067,29535,-26941,13951,3510,21499,-10706,-31593,1097,-19510,-17423,27334,24129,-5369,32223,23647,-29509,-9078,10412,10836,-31200,15438,14654,10041,-27351,5722,-17244,-4127,-14900,22162,8756,21957,-25205,-6548,-29295,794,-2894,24820,21373,7519,13584,22431,-30964,17547,-26396,-2910,-8563,22555,12393,26011,-25342,-29154,24356,18991,-16392,19916,18745,17004,-5015,-20441,29160,2098,2619,31515,23388,-9800,21458,30165,2568,-17726,-21442,-15580,6679,-13096,-18777,18581,-2193,7400,-17087,-27869,-14403,14999,-8244,-17174,16222,-10325,-29665,730,3998,23511,-9617,-16367,5396,13542,-26671,-21796,27658,32391,-11576,25733,13583,-13401,1850,-22108,-24475,19433,9041,-30439,15646,-21507,29909,-8729,-22882,-32479,14909,-4956,9748,-26240,5302,24914,28675,-27602,-12558,-13633,21677,-9637,31253,23344,19044,-28902,31627,5192,-6409,27214,-7178,-20987,22471,-22663,-23434,-5629,-27178,15828,-9681,-258,-29491,26476,-20091,10368,3158,3980,2165,21656,14043,13863,14348,27003,26951,13781,14217,-5014,-19697,-16824,-7715,4549,30017,21443,-21457,16855,-28886,-26987,22087,-25416,-2416,15028,23499,13824,-19220,15391,-29558,2971,19925,-9292,-9717,-23897,21799,-6212,21225,527,-30598,19851,20928,-1436,-13074,-4829,-404,31498,-940,-23387,13957,27753,30039,-23393,-1168,-1451,21173,-6927,-29418,2046,12117,16826,-17235,6678,16162,19472,21095,-29569,23177,11693,25522,169,-7553,-30085,-3347,-5950,-15633,15183,1344,-17859,16358,8452,-18282,-23225,10141,-28890,3458,-4146,-30039,16934,18543,32732,-30783,-8719,31683,-25982,-17835,18417,21453,-26861,30107,29638,-8733,-31190,4495,5654,26947,-18326,-4696,-15093,10325,18351,16169,-8616,-2099,-11519,-4812,17176,18890,-26960,7850}, {17283,28633,5956,-23586,-22445,-7462,9448,20019,-1091,-28628,-13758,23387,24884,28463,-22111,13153,20701,-3008,31772,-15236,4465,-1126,8044,30996,15503,12665,29052,-13624,-13665,-26285,-2119,32333,31089,27921,-19537,-5526,-8937,-3736,-25611,28236,30138,3337,26503,14659,-5209,25302,4421,20831,-26702,-12876,-4871,-23994,-29689,-8761,-28531,-32501,8093,-27880,11197,-26027,24528,-27884,-27790,7106,21129,-2005,-8016,-15831,30710,12080,-2069,11083,30483,-3027,4657,-32227,5765,-29228,-11167,29,-5556,7684,-25486,17655,-3782,21341,-9358,4818,449,2033,18894,25051,1742,-22638,-11279,11168,-14157,-10982,3424,-13387,-11995,-23446,14083,6386,21284,17194,-21376,-6089,11742,10079,-28197,-2966,18380,23253,11135,10987,20785,-1888,20485,13693,-6530,-12260,12960,-31250,-25083,-21318,-15288,-23420,22378,-15299,8779,3674,25620,-27326,-14204,-26098,-18172,-9948,239,-22490,9651,18665,-753,-5409,23219,6238,14031,-5366,-20788,3830,28987,9195,-5492,-23584,25556,30915,-2364,5694,-25110,-20359,-22082,23171,-30739,3892,-21787,-12668,-27833,-12741,2856,-3118,5466,8063,31545,-26813,-31545,30566,-26788,-4894,27428,-1262,4089,-16848,-4573,7648,-13195,-21374,-24500,-14540,-11350,-7416,4499,-19811,-3523,-18906,28389,23744,17829,-28353,15725,-15835,2264,17937,-3547,-22692,9470,-8808,-31946,12895,-20141,-5751,14415,-5949,-25287,-30713,-15817,-19593,11337,18806,15236,-9331,-4836,-26004,-12712,-10178,26298,-23669,-17210,-25066,21361,22317,-22097,-25570,-15627,11308,-18069,24115,19919,-22039,15567,23924,-11976,-12039,20446,-28702,-16444,-25675,-12022,-24438,29316,12743,18278,28706,-18670,17217,23563,3282,32392,3564,-7883,-28154,-29079,7548,-3159,22424,-9607,24824,5226,32048,-5910,-24675,8572,23698,-16834,-5901,-2598,19569,12906,-13639,-22729,4581,10480,-16563,-23156,-12552,28896,-27650,24605,30468,7962,7228,-9598,-18726,3703,14174,11439,919,21922,-15348,10231,-5141,-7363,14536,9200,-21832,-7153,15462,11196,-8740,-15638,-22933,17110,23196,-28514,23970,-15088,23684,25680,-5751,-11316,-30250,-1606,20276,-21395,-20982,20052,-8392,5234,-31527,-25895,15572,-20687,-19483,23709,-32507,12408,-2291,3702,-9455,20768,-7426,17239,-24810,6407,29380,9560,-8418,-24056,15877,31089,-16566,-31224,-28135,20054,-19865,12707,-7161,-20901,-30206,-7981,2743,9013,-26076,-15087,29943,-25554,-8420,-1716,20461,13563,-13349,26668,-7022,3889,-18292,-31471,29605,-18118,-4199,27392,-30154,22071,22373,-21642,-8177,21736,-6328,19139,-25980,23009,17373,-18236,23302,21915,-5454,-1840,-248,-21679,1181,16287,-18390,-232,27891,24905,18825,30689,2115,-15761,-19117,-682,-20115,12932,9753,9357,31758,20114,-16352,-31405,25361,-19406,-5047,30412,-24103,24251,-8434,27558,-12721,-7474,28593,25005,-24438,-855,-10127,-6583,-25762,17114,14675,-15527,-14609,12509,-27430,19988,-10520,1547,13658,-16108,24427,4922,-1431,21139,-22332,9707,11104,-15645,-1745,-4550,4837,-31246,-15699,-1477,-8221,-8276,15686,-8334,3506,1332,12188,-22773,30466,12587,218,-21704,-13412,-9247,22964,-12442,25213,-3481,-26565,-5910,11370,-22520,12611,-31408,-1380,26559,-29538,-16467,-26281,-22750,16039,670,-15572,-19119,-98,22018,8706,24624,-10763,4705,22353,-13854,8346,-24215,27640,-2630,-5478,20095,-21475,9335,32730,-4530,-4944,1321,18348,3423,23926,13958,-25849,24015,13385,-4590,-19305,-29883,-7791,10276,32035,25649,4557,-15837,12273,-5409,-10121,-13304,31393,4667,31049,5224,13358,-23923,-2338,-2634,11177,-19123,-21707,16488,-4015,5305,-25202,15098,-29469,-9398,24570,-4019,-26020,-4369,16712,7776,-16928,10456,-28170,-1964,-25697,32410,-10478,15780,-22947,3462,13591,11579,-27834,11826,-2929,1968,23753,30118,-29315,-18089,28186,23078,5332,26926,-6784,21417,-23303,-17311,-9879,-10831,-1875,27324,19721,-23901,4597,24184,-7150,-19789,-4590,-13425,-25639,-11519,27636,1379,-30363,-17693,384,23935,-12612,24141,-29157,31228,-10535,-17458,31805,-23710,-21971,29715,-3410,8042,-25071,11049,31800,22990,351,13947,-11462,-9386,-8002,-22042,-3132,12271,-21326,12563,15051,32069,-3381,-29888,-10564,32313,-28782,-32611,-23016,16091,-30602,22145,-30172,-11086,12102,13684,-3401,-24675,-1260,-13569,1497,-29863}, {-25105,16959,-6395,11504,-29849,5132,-29992,22998,-12163,-19111,-14286,26852,13249,16752,-25762,23533,-22209,-18400,7972,5650,-17299,30904,-9483,14577,-20483,-16789,-15709,-2786,-4038,-29347,7414,31739,-31664,-10659,-21033,4488,6392,-27564,9184,-5673,-22153,6242,-10457,8488,11284,7980,-10691,12890,812,14665,-7643,22182,8892,19040,19918,16656,-15220,-29481,-3834,-18609,15178,251,19426,-24723,-300,19170,16704,27397,-25080,-18770,25022,-8793,14628,-2874,26044,202,-15171,-28776,-25876,25496,-29570,-26232,28138,32565,32036,26704,18552,-8602,16142,4763,-20251,-24210,17312,-12813,19569,-29604,24713,27640,-5032,10929,24384,27372,-18494,1259,851,-13469,-8409,13011,-27665,-3253,-21809,-14361,18367,22485,17540,-9314,-16271,-13448,14866,13890,19608,1727,-31934,-2961,-23461,-21722,-10388,-437,27866,-13988,20967,9994,3670,2915,-17672,29341,6372,11388,-10664,17759,-7757,12570,22478,29418,27831,-23348,10406,-8266,23391,-5075,27757,-25883,6287,-30116,-10402,22393,26815,13425,25189,-26696,-25296,-7711,13008,15554,1558,-6386,-7979,-12783,-18040,21837,9926,-10923,25655,22710,-15900,8783,2036,28808,9869,-31260,-29527,-7378,-23392,7876,13307,23603,16658,16477,4615,32619,27650,29196,543,7804,-21788,-32077,30690,31887,-18130,3126,-288,-18768,8605,14895,-26238,-29308,13439,-13409,-28746,25715,-27750,-7053,20314,24096,1267,-6877,-830,-11797,-10413,-11161,13117,-14521,-25050,-13263,-14970,-2381,-22152,29772,-9460,19098,-3364,22069,21242,19832,30965,4741,31995,29606,-456,22611,26844,27596,-30038,1771,-22089,-25589,28370,15986,11069,-19974,-9056,-29823,-8758,1158,-9019,10125,26627,309,-14589,-15317,15263,-11108,28252,-3391,-11511,-1837,-29461,-18337,17092,-1284,-17107,29852,21252,18257,10984,-2513,-23875,29332,-702,-24773,-16951,22983,30056,10538,310,27078,14883,-20617,-17210,-16098,-11822,-29080,29967,27917,16669,19565,-177,-22488,-5450,-14964,-23218,-14634,9074,-15620,15338,28014,-29224,18054,19847,12796,-7111,4774,23760,-25584,-22075,-23654,3969,-10118,-15373,8126,-10947,26240,-18249,30200,-31439,23115,-24812,23937,-17908,-7298,-2783,14291,-2472,25168,-25697,-13295,10904,17163,-11435,19331,17405,31533,-7228,13977,22998,6148,6169,2870,-28183,22051,-16512,-2559,17860,-30828,809,-31827,-16608,-14987,31361,-21359,-9591,-16154,31266,-15167,22590,4841,-23278,-11265,-4801,-29165,27375,-17238,11468,15058,-97,32321,24222,-6443,11272,-16424,-1689,-2167,-382,-10109,-29451,31324,20668,9997,-27952,-1435,9764,6165,-21509,-29107,8089,-23717,4380,10037,-14390,-20146,1123,-28173,11076,25260,633,29378,-28934,23169,-24202,5719,-29087,13789,31368,-22523,-16231,12077,-9089,-17981,4209,-10070,-16959,20241,-613,1630,-21400,-28399,-5791,-26843,-23779,4509,19485,-1502,-18357,-22251,-22206,21985,778,3016,-20080,-12515,-20725,26015,-13501,31986,2747,1382,28245,16983,5022,-2146,-30984,150,-24213,17946,-20489,-9700,3959,-9926,-12115,30843,28983,23400,-1710,-14576,15968,23836,-13431,-5232,5871,6905,-12985,15954,25593,-5293,15472,13668,12140,-5555,1458,18665,24191,-15354,4282,-15896,4841,7629,1433,3913,18508,-13370,-22125,271,22688,24421,18858,29085,31825,-13626,-13826,-31216,-13136,11378,25096,-87,-31301,-6948,-16849,21256,22602,-10479,19112,1871,-10742,20595,6337,-10204,-31002,-22356,-19168,3904,20608,13553,-24141,2281,21682,1564,19264,5708,31190,18426,4506,28390,29653,13026,18377,-29654,-16731,29009,31030,-9317,-27275,14178,20873,-20630,28971,-23694,16775,-28045,5488,14439,-16492,12469,31970,6325,23326,21144,3399,15209,-8518,-24145,7127,5706,26694,-4619,-15861,13485,-21151,28763,23701,23325,-19478,21836,18907,-13457,-23409,16820,-1273,-8901,23472,-6009,17370,-22907,5619,-21397,-20001,9664,6844,16019,-18028,-5916,-30523,-26452,2505,-24837,-7536,23952,-9021,-5174,17731,-11512,-16598,-20327,-17520,-26383,25463,10843,-5116,3124,-29789,-18578,-30243,-10926,-3977,-658,-19646,21639,20187,-29617,-27272,13714,24247,-8065,21289,-15168,22189,2775,11126,287,27972,8243,29285,32334,32647,22133,16491,10114,8384,-12968,-28663,-21518,5846,15101,536,25519,2220,-29712,32253,1703,-28328,56,19408,-18247,3720}, {-27721,-14759,-6089,-3281,10761,7665,-26943,-4529,524,13392,1586,4450,-10973,-20721,4621,-18751,11860,10211,-26448,6922,2011,-20215,-19657,15622,17740,-27344,2365,3273,22700,15668,-21000,-9496,6677,-18540,-20088,-789,-19342,-32004,25410,11878,21294,-13142,29676,21448,1436,31411,18950,-3482,30506,-1419,-5737,-22718,-25492,16969,5371,-2313,-22780,-6291,-28907,-6021,-12173,-15893,28262,-12409,30556,-24439,-20590,-20155,-31236,-3491,24291,23926,-19258,-4729,26321,-30559,18140,26091,8246,-4009,3582,-3680,19934,-28195,21963,24653,29661,7818,14141,-29445,23108,1252,-26755,24211,28263,4340,10458,3464,1117,25794,16023,-30988,18723,3580,22744,-29057,26138,13971,23022,15164,-32094,-21855,10922,6234,16800,22374,18425,18644,-3966,5064,-4600,27976,-28317,26032,-25586,-1639,-10934,-1071,1269,-10547,15116,-7759,28337,-15002,-14908,4375,28152,-14342,24163,-12397,27520,-31004,24637,8412,15446,-10610,5982,17664,31251,4342,25450,-32253,32093,31579,-30468,11181,19342,-21164,-10261,-12435,23756,25277,29137,-18341,1615,13033,-13379,-15691,13955,15559,10979,11694,-31369,4615,12734,24136,23537,1418,6106,-23050,31044,-12741,26632,-3945,8231,-1757,-4516,-700,-16712,-18974,26750,17871,-19176,14582,-28688,7056,-5104,-16072,-20351,-24008,10381,19867,-26424,-1085,32100,18204,-7390,3568,-25252,12113,13713,-23586,30913,21068,8690,10210,26804,-24613,13714,31554,5181,-29131,-14536,-900,10484,-10020,17562,-7799,-10068,-16641,526,28222,5830,-22598,5374,-23704,-11769,-25491,27079,8041,-8952,-19042,-13922,-8790,-31548,-7471,-25903,-13503,-9323,-10425,2908,10958,17428,-11439,-3752,5409,14932,-32754,-28264,10437,-11768,8791,-17040,-6782,-6680,-1049,-26691,12377,-15938,19950,17955,-19090,6141,-16871,23685,-22278,15082,7541,10579,22145,11562,110,-19191,2595,29328,10265,4561,18361,19076,1090,32000,-12011,29179,7896,6740,-23,-31923,25371,18546,-13398,4052,14721,-11859,-10480,-8772,-10804,-6571,-21129,6777,25954,-15053,4428,-12441,-26448,-377,6710,-10344,-15502,8791,31223,-17697,2218,-31690,21817,-1616,14843,1080,4739,29951,-17895,5254,3601,14960,-19748,19836,-12192,7462,-27604,-31131,-22141,3266,-5096,-27396,31957,-3840,-3645,-17961,21997,-3595,-7480,-21373,31705,-19592,5010,29681,-28389,-7918,12083,-2529,-16992,-6630,16870,10417,-22847,-77,8107,-28466,-3690,28749,14753,-19067,31703,-9426,18937,31077,-14980,-24034,-3380,-25584,10351,11300,-30987,-29086,-10572,-30363,-9977,-24953,3550,-18039,18458,5941,-26337,14953,30953,-4486,-2842,14320,3942,-10573,24576,-18461,-13000,-10787,7824,-2371,-9568,20625,-218,-16720,-28408,-25099,1647,-19540,1563,14437,-27033,26903,18722,-28938,624,21727,-29776,-32618,-21231,-7046,-5002,-1616,-19830,-9968,21175,29483,-25460,-26753,-4396,20716,-20649,-18300,6023,-23644,-160,-15989,22793,-7297,-22258,-22745,-25201,-29609,-13958,32410,21594,21370,-9931,7256,-32314,-16953,-17734,-6222,-25937,30679,31324,-21372,-29682,14245,2529,-20956,30471,25274,-14888,15789,-26469,-31711,-3332,-26722,21793,4601,5140,24950,-19827,16806,-6333,1913,-30715,-10436,28354,-31079,3862,-18748,-13150,-22879,30546,3176,-15232,-1063,26932,10948,-27316,10216,-4999,24374,-5070,-26544,7449,-3199,-14299,4749,1893,-9354,8317,-4080,2229,17612,28312,-24726,-1136,-31039,3360,-23929,-32601,15428,-10288,23238,-11701,20341,26047,1521,18255,-24385,-24143,19306,4298,-23380,18135,-2019,25362,-28135,16559,9619,-19665,28367,-10811,-21757,2597,-18354,-10106,5786,-21280,16937,-28874,24735,31866,-10308,4368,2823,-9475,-8671,-9178,5095,-26968,15630,19927,11916,-2736,11151,-13051,25645,31868,14532,3506,20757,12784,-31634,3423,-9482,-9028,-23516,-10694,-2724,-25710,12943,-8764,12278,15150,-8105,27932,4712,-11682,-8171,-29177,7950,18003,-21182,-8572,-10483,3102,-548,22396,-25497,-1336,8728,-20180,-9593,8441,3103,10578,31727,1422,-9089,24106,-16591,17741,10211,26357,-25776,18004,-31764,-15172,7358,-2801,31601,-25058,14527,7064,-32097,25394,21246,16231,14404,-9188,4075,-25127,15435,-17482,-29380,-5089,18284,-11155,-7193,26725,14889,15825,28099,5385,14551,7793,1906,17799,10385,26669,-887,-12297,-27028,-3547,-25016}, } ; static void test_encode_653xfreeze3_impl(long long impl) { unsigned char *s = test_encode_653xfreeze3_s; unsigned char *x = test_encode_653xfreeze3_x; unsigned char *s2 = test_encode_653xfreeze3_s2; unsigned char *x2 = test_encode_653xfreeze3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_653xfreeze3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653xfreeze3(impl); printf("encode_653xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653xfreeze3_implementation(impl),ntruprime_dispatch_encode_653xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_653xfreeze3; printf("encode_653xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_653xfreeze3_implementation(),ntruprime_encode_653xfreeze3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_653xfreeze3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_653xfreeze3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_653xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_653xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_653xfreeze3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_653xfreeze3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_653xfreeze3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653xfreeze3")) return; storage_encode_653xfreeze3_s = callocplus(crypto_encode_STRBYTES); test_encode_653xfreeze3_s = aligned(storage_encode_653xfreeze3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_653xfreeze3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_653xfreeze3_x = aligned(storage_encode_653xfreeze3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_653xfreeze3_s2 = callocplus(maxalloc); test_encode_653xfreeze3_s2 = aligned(storage_encode_653xfreeze3_s2,crypto_encode_STRBYTES); storage_encode_653xfreeze3_x2 = callocplus(maxalloc); test_encode_653xfreeze3_x2 = aligned(storage_encode_653xfreeze3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_653xfreeze3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_653xfreeze3();++impl) forked(test_encode_653xfreeze3_impl,impl); ++test_encode_653xfreeze3_s; ++test_encode_653xfreeze3_x; ++test_encode_653xfreeze3_s2; ++test_encode_653xfreeze3_x2; } free(storage_encode_653xfreeze3_x2); free(storage_encode_653xfreeze3_s2); free(storage_encode_653xfreeze3_x); free(storage_encode_653xfreeze3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_653xint16.c0000644000000000000000000011625114705505543022747 0ustar rootroot/* ----- encode/653xint16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_653xint16_checksums[] = { "17a6405c12d612963247bbf6aa8ed3cfe97cb9d2c4cbc5fed58415acee973cc8", "95a98a488011bfe4be2945e897c1e74d3ab4caae7a3985c5a91df7a40fa12bb0", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_653xint16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_653xint16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_653xint16_ITEMBYTES static void *storage_encode_653xint16_s; static unsigned char *test_encode_653xint16_s; static void *storage_encode_653xint16_x; static unsigned char *test_encode_653xint16_x; static void *storage_encode_653xint16_s2; static unsigned char *test_encode_653xint16_s2; static void *storage_encode_653xint16_x2; static unsigned char *test_encode_653xint16_x2; #define precomputed_encode_653xint16_NUM 4 static const unsigned char precomputed_encode_653xint16_s[precomputed_encode_653xint16_NUM][crypto_encode_STRBYTES] = { {44,222,168,17,122,80,58,73,108,94,6,99,24,102,145,146,2,196,109,41,138,224,18,231,48,3,242,32,253,196,140,115,247,118,61,16,231,81,180,182,245,6,75,8,152,242,238,71,153,25,210,86,30,186,72,33,221,162,1,223,11,225,234,186,211,32,78,239,156,62,230,252,149,184,34,125,168,13,46,17,32,191,230,133,255,66,19,217,121,237,95,13,35,53,99,86,225,154,162,41,207,209,159,158,37,85,159,130,246,165,137,206,21,189,43,97,120,41,203,187,185,204,9,81,136,113,50,67,135,210,104,46,111,236,65,142,202,95,3,30,37,226,230,62,54,41,29,129,107,125,172,34,144,28,90,19,239,8,2,247,51,231,70,235,112,221,21,121,75,14,198,99,141,24,198,7,189,121,110,178,56,104,175,235,240,141,104,41,62,91,172,51,41,22,235,25,112,130,146,148,64,73,159,64,10,83,84,233,3,202,157,99,185,231,57,213,102,251,68,187,190,112,60,5,177,137,148,50,253,233,253,21,105,130,177,175,29,164,72,177,100,5,36,193,100,184,50,237,168,153,114,92,1,95,11,18,18,210,81,147,126,253,165,6,29,160,182,64,30,69,78,63,48,218,212,93,152,225,242,11,252,211,165,24,245,246,97,34,131,72,110,140,152,88,101,75,126,107,136,227,171,131,0,223,187,182,151,40,220,161,88,40,235,118,81,172,75,61,187,15,118,89,55,34,51,161,152,127,94,160,130,48,43,17,4,130,111,48,157,239,59,108,64,161,171,75,102,180,74,190,75,132,197,170,157,159,122,180,170,111,221,150,100,21,220,136,191,224,31,0,63,82,235,121,148,233,213,231,36,154,99,38,248,123,88,41,156,20,152,229,72,43,250,21,239,66,106,142,243,90,114,237,130,188,117,96,224,197,90,202,230,163,102,218,99,140,222,111,179,201,144,79,15,37,139,181,145,26,228,162,200,194,41,41,3,41,106,69,19,172,8,133,34,149,177,205,108,186,220,232,48,73,192,21,221,146,112,68,193,184,174,215,201,230,19,65,235,66,122,23,50,5,92,76,174,162,237,167,114,132,133,217,244,187,222,209,227,1,92,69,87,39,147,159,193,252,143,240,66,87,135,1,200,31,141,246,197,106,42,173,184,197,117,226,123,138,105,215,93,87,31,241,247,95,51,246,91,251,43,12,63,122,198,188,127,88,195,74,76,62,15,246,26,238,151,102,21,96,91,10,213,183,123,254,179,135,99,218,139,102,4,103,30,209,209,73,15,142,3,53,168,249,140,71,70,239,53,221,2,209,222,128,26,38,31,251,123,106,114,231,34,236,150,155,143,132,178,67,54,124,103,67,166,33,134,17,95,155,131,142,207,241,111,181,5,197,155,202,16,64,193,229,244,186,224,39,3,216,96,104,210,86,206,95,81,124,211,132,8,121,39,199,51,2,70,93,124,75,33,229,8,203,231,238,29,132,97,26,50,26,61,20,68,197,251,44,92,160,221,123,111,9,25,31,165,11,234,3,56,74,209,230,48,243,102,242,49,97,63,19,253,43,48,189,6,157,17,5,88,211,206,199,246,82,116,183,50,233,50,16,185,60,129,183,205,150,113,155,8,6,210,63,243,41,111,63,239,124,250,224,134,187,90,164,77,181,153,91,2,89,49,242,214,36,140,138,102,30,99,200,191,212,226,124,20,42,62,168,21,245,173,66,197,2,126,87,219,252,185,18,237,58,116,184,67,83,25,163,174,192,124,95,250,65,103,111,174,47,130,18,184,204,147,39,71,97,145,95,204,128,99,57,221,236,245,155,250,54,55,25,148,250,221,40,66,202,121,153,115,83,5,141,119,218,237,250,197,235,249,71,139,75,155,40,52,146,70,47,227,51,14,132,90,93,62,204,53,55,238,198,164,185,237,24,191,17,96,70,39,71,137,93,185,17,185,109,186,36,137,241,242,48,162,101,2,14,60,142,127,225,19,26,78,0,194,59,210,212,133,148,66,246,139,10,13,154,185,164,234,253,103,79,199,135,32,228,255,110,12,67,203,211,186,200,200,23,127,102,104,4,150,69,91,154,164,139,232,238,211,150,61,153,17,186,184,152,165,244,125,222,55,233,163,86,208,248,6,251,194,76,176,196,202,137,204,145,175,161,8,216,185,107,5,208,255,131,169,108,165,187,138,84,156,241,255,191,178,187,248,82,32,34,107,110,187,118,86,129,154,178,176,69,216,177,87,174,158,207,83,100,26,202,140,182,70,62,31,111,41,218,221,219,192,120,143,14,182,248,54,83,94,240,50,197,88,114,144,148,247,143,218,177,186,0,247,187,136,45,41,42,240,76,123,126,114,253,102,5,82,140,161,126,37,75,243,89,105,234,113,199,53,245,224,239,211,2,170,148,20,197,228,242,254,11,128,226,98,128,146,247,113,53,65,143,18,178,155,107,49,248,37,204,41,138,28,24,244,63,207,144,134,114,216,115,48,80,71,92,1,182,83,34,175,198,213,10,243,71,254,227,84,115,255,211,111,111,5,54,47,19,119,47,181,213,206,190,21,3,126,245,150,118,145,197,118,137,20,93,136,196,242,165,151,11,133,0,167,118,4,107,13,241,87,78,34,85,44,26,184,202,230,196,58,137,132,142,172,223,11,112,156,182,50,62,144,184,113,98,134,77,119,42,240,74,9,225,162,52,164,216,76,89,108,149,255,160,203,0,154,14,225,182,192,178,173,219,198,224,249,71,254,175,235,1,91,132,213,13,25,222,212,143,32,38,43,74,96,12,88,98,9,200,250,186,243,25,0,149,143,12,186,12,138,229,111,241,218,249,154,60,199,8,0,109,191,160,253,169,175,248,44,252,18,80,33,251,40,93,118,135,42,23,231,227,93,224,93,136,173,57,69,184,195,107,136,47,185,19,178,173,252,156,181,105,45,199}, {35,77,101,149,237,8,83,239,238,158,63,200,149,65,97,36,137,210,164,252,128,236,146,208,152,27,21,15,114,219,103,99,32,142,192,159,229,134,92,200,107,249,234,64,41,81,169,180,111,121,249,61,207,145,17,27,76,65,61,145,0,211,191,142,52,99,85,192,45,202,94,72,179,141,25,42,175,128,236,3,80,35,50,174,57,185,125,5,89,241,77,175,249,50,235,67,229,244,83,9,28,126,29,250,99,70,120,48,103,169,198,165,205,40,192,172,186,15,163,207,220,17,190,167,134,130,201,52,56,163,95,252,173,140,92,211,9,81,60,225,144,207,118,72,240,143,32,11,105,30,181,10,197,192,59,191,252,185,40,221,77,242,5,165,203,92,147,214,46,13,104,213,215,31,182,135,138,230,240,62,100,50,111,151,116,149,111,81,6,179,40,190,158,56,86,215,44,151,81,183,53,33,24,124,137,203,242,53,38,81,166,195,104,62,254,8,46,22,63,85,13,239,243,251,212,53,158,205,129,45,217,32,134,112,253,213,174,115,113,15,74,72,184,54,9,199,192,9,211,215,3,58,248,94,254,20,187,76,65,58,78,73,69,239,159,98,66,112,247,4,251,200,181,76,202,64,16,50,128,27,109,254,132,81,134,200,170,178,61,1,243,245,245,122,35,89,162,24,220,228,84,105,65,130,224,202,198,105,166,62,118,128,23,107,63,12,22,129,185,84,47,183,21,135,207,91,190,154,88,126,118,153,117,17,3,194,236,166,202,27,105,66,49,4,115,154,127,111,106,222,125,153,218,234,35,220,64,19,183,103,86,45,37,67,230,108,237,29,39,115,187,224,192,212,196,171,190,130,69,209,101,69,103,201,115,71,172,236,52,249,110,237,174,27,196,155,212,131,162,24,190,82,96,206,54,217,209,213,148,126,115,163,230,138,8,182,170,1,190,255,31,5,87,134,204,31,53,12,109,76,107,112,21,192,237,62,226,158,110,149,89,11,180,218,208,174,12,176,57,172,94,8,6,210,99,232,170,68,207,140,119,193,8,51,145,50,12,208,148,153,98,226,113,29,184,187,231,205,53,192,93,158,243,104,31,110,73,215,15,234,211,35,231,41,14,205,242,52,107,142,199,120,243,143,250,205,228,72,205,187,172,236,93,10,92,153,42,222,117,118,210,91,194,176,225,110,181,182,196,39,208,18,172,162,127,57,39,154,186,253,255,239,21,193,191,33,163,252,79,138,28,180,158,221,182,98,219,62,77,150,136,156,5,237,15,148,232,249,147,254,111,72,7,210,85,212,125,43,176,255,209,157,114,246,83,92,148,44,44,226,77,13,15,181,23,130,105,45,111,175,123,93,204,18,3,7,165,17,181,220,165,168,152,76,25,199,207,39,210,126,251,222,97,79,30,110,191,156,80,11,18,237,53,31,121,179,75,174,171,216,255,107,211,42,110,61,198,201,30,70,55,129,110,151,105,124,76,28,102,202,165,2,100,174,86,161,27,226,25,164,76,39,91,157,12,10,163,133,160,14,125,10,251,195,52,255,218,149,244,140,162,228,164,253,253,14,184,226,222,91,221,83,234,145,110,244,7,237,195,80,104,62,119,227,83,113,85,151,85,26,151,220,239,33,114,232,17,179,242,8,154,166,95,247,247,0,161,170,238,253,13,159,181,1,231,38,59,176,83,130,189,107,236,140,232,233,128,111,170,154,92,130,121,91,100,221,150,249,59,30,161,9,12,254,122,237,44,97,108,116,159,58,95,116,38,49,64,56,242,20,117,182,23,226,19,84,68,204,45,89,61,142,93,54,117,165,243,134,219,182,179,23,24,250,188,209,174,95,56,182,45,51,29,183,74,6,132,139,22,240,52,153,255,197,175,40,97,41,1,22,169,231,183,141,70,31,129,143,101,252,73,10,253,131,89,55,159,157,58,4,190,144,226,198,110,113,180,162,94,129,155,147,198,238,51,210,33,27,173,84,29,67,210,142,87,89,4,72,213,33,52,216,200,163,129,75,9,212,219,71,190,94,3,130,60,66,215,232,75,17,77,43,251,98,64,109,136,110,10,215,230,254,159,245,117,191,125,122,90,70,93,65,50,235,94,42,163,252,29,211,171,54,55,241,227,115,88,38,155,44,236,16,89,232,228,231,223,220,193,155,190,200,113,129,68,117,236,220,152,83,251,53,213,169,71,164,245,59,89,56,90,145,249,183,56,53,112,15,150,12,91,7,35,113,0,173,52,86,233,149,127,149,84,82,170,175,138,101,99,173,25,3,138,233,171,205,124,151,169,255,199,81,58,1,218,244,154,232,136,120,50,112,93,33,177,233,252,122,45,168,214,160,74,30,142,157,54,70,46,94,224,242,139,190,23,32,84,97,64,214,166,140,221,40,234,99,1,6,244,25,245,155,95,54,182,49,236,128,140,118,65,91,9,159,251,225,223,198,121,1,39,176,88,205,3,97,49,61,249,58,132,252,209,95,50,48,237,132,147,212,204,141,45,21,161,92,173,221,149,225,85,37,129,126,105,84,250,162,20,12,215,112,70,245,80,150,170,116,151,45,232,203,161,7,144,72,2,11,170,38,64,205,183,229,101,62,203,205,236,225,140,100,111,29,163,208,242,98,154,66,53,51,210,2,47,166,251,33,66,212,88,221,28,111,73,100,187,241,165,223,89,105,184,140,42,51,200,131,83,68,75,212,142,77,97,11,46,8,106,247,117,198,193,107,103,73,112,253,232,113,251,52,29,251,31,200,211,65,146,142,99,85,48,39,64,216,246,55,45,36,75,0,242,25,79,40,77,153,87,129,151,97,152,138,214,199,164,82,204,186,138,104,207,67,222,59,186,86,35,2,30,107,221,76,148,118,131,1,122,180,28,48,18,127,32,149,58,219,51,137,121,67,78,82,25,128,181,79,142,63,120,206,251,175,155,207}, {45,144,242,172,95,100,253,135,19,221,127,218,247,145,180,81,212,206,11,237,174,36,69,226,215,104,123,37,13,17,105,138,236,240,69,142,54,61,6,208,226,134,207,19,82,66,246,72,14,198,201,206,227,169,151,62,214,253,247,167,201,143,127,20,52,194,48,138,209,117,81,65,145,86,56,155,184,152,215,69,89,140,111,90,152,193,217,143,205,46,109,162,91,29,154,7,59,238,99,155,155,119,240,63,99,25,46,251,232,194,244,208,129,119,112,109,144,139,211,97,203,176,205,108,110,77,49,205,205,168,207,138,81,21,243,87,235,193,225,178,203,207,184,72,112,183,55,97,159,107,144,120,209,154,132,32,250,239,252,209,223,38,234,233,30,208,98,186,211,223,172,74,148,54,111,0,250,104,11,9,147,96,76,154,190,212,113,113,162,231,139,203,117,0,137,165,63,245,246,64,88,124,212,131,9,29,190,248,123,241,68,69,60,68,189,175,170,186,187,68,200,248,55,178,123,15,72,234,233,199,179,235,151,174,97,40,189,140,128,89,221,12,126,46,166,123,140,245,235,29,100,125,224,219,127,46,70,49,38,62,193,231,118,20,47,187,94,213,168,70,168,132,23,136,164,171,131,180,127,133,120,64,98,98,124,181,9,77,78,54,33,38,91,190,106,221,94,208,249,17,74,113,171,166,204,209,154,194,104,212,66,17,148,67,184,90,208,182,120,68,205,31,254,40,136,236,63,20,124,99,148,77,157,108,52,110,47,178,99,102,14,216,229,67,112,201,208,213,152,151,218,228,66,255,92,146,12,138,254,117,68,254,202,114,254,222,214,81,144,247,253,24,8,78,226,161,155,251,113,242,215,191,12,173,149,23,43,151,50,253,91,163,49,202,82,159,60,32,248,126,194,95,203,162,24,30,111,14,189,27,49,16,21,67,239,106,236,74,169,118,42,107,248,141,8,182,209,133,96,90,38,240,180,176,168,34,209,11,136,100,38,241,69,255,181,118,66,251,58,7,101,99,228,193,236,95,77,94,128,150,64,150,139,8,62,53,2,203,39,77,219,11,35,39,130,235,78,26,93,148,137,86,219,157,32,68,194,90,4,103,18,176,118,252,244,81,42,220,45,255,26,202,53,179,212,251,15,168,37,223,102,252,72,231,190,182,209,157,209,123,80,225,175,6,198,150,100,2,39,187,227,31,3,235,184,120,21,159,103,217,6,129,174,87,9,138,252,184,103,147,27,153,234,80,135,33,103,109,74,34,133,18,36,141,178,180,208,90,124,40,15,77,215,111,183,181,45,3,29,144,7,74,196,244,250,145,92,204,193,175,139,251,42,52,48,205,223,111,181,184,75,60,207,219,108,38,222,160,8,161,63,147,219,196,155,20,237,120,5,197,31,254,184,204,95,178,244,73,237,220,195,68,101,35,175,189,31,29,19,186,139,7,10,25,232,75,104,86,65,92,170,250,221,236,215,39,219,180,193,171,161,97,84,246,240,124,57,154,127,70,212,180,101,69,201,208,111,249,229,69,63,0,62,124,159,111,86,181,9,158,122,187,75,141,57,12,155,244,112,203,56,127,192,128,235,130,33,128,219,109,189,210,35,132,225,16,181,143,187,85,103,117,184,86,111,88,46,46,85,211,90,166,43,140,83,144,191,36,34,55,239,62,164,166,46,92,97,44,7,162,252,71,164,91,239,246,123,143,110,94,99,4,219,92,76,61,80,182,192,206,9,107,202,109,125,142,86,161,237,163,105,110,232,66,22,180,99,148,180,16,33,254,60,66,12,193,51,62,23,11,99,114,182,122,50,7,242,81,85,208,93,176,81,222,67,232,37,36,210,190,224,235,238,130,163,177,120,173,77,103,160,218,199,251,45,201,116,8,145,167,200,196,254,186,227,174,99,55,38,242,29,209,5,239,93,170,166,240,174,72,71,31,13,80,238,196,13,126,122,168,90,228,177,1,190,183,154,184,53,192,133,154,35,223,184,206,100,78,221,112,54,97,79,93,182,169,137,214,197,43,90,30,239,57,154,239,159,168,186,250,233,161,150,187,188,129,89,151,73,113,107,162,96,50,223,204,209,17,31,96,139,15,18,114,126,164,131,185,210,115,79,145,98,101,140,92,107,214,111,126,168,243,160,94,55,229,28,76,115,229,63,105,251,217,6,154,90,91,18,180,63,88,165,240,28,32,10,84,160,2,250,82,90,179,243,21,135,16,141,92,48,217,249,58,106,152,209,236,251,213,194,217,107,148,146,49,242,45,70,54,219,229,130,120,4,11,76,165,149,207,5,17,188,188,93,195,38,144,1,252,87,174,95,0,30,244,206,120,214,33,146,168,22,248,154,174,151,63,137,152,125,155,226,245,22,255,67,163,179,38,56,128,23,164,209,62,66,68,142,244,200,101,116,240,56,131,35,97,77,234,106,34,235,146,76,63,64,151,236,30,87,192,174,75,184,117,181,241,185,9,25,75,219,140,55,106,186,64,165,104,144,82,224,234,61,127,220,2,124,63,94,81,145,90,144,58,224,18,19,239,116,60,0,202,146,44,70,172,248,23,85,68,227,22,215,9,91,174,151,25,241,31,38,79,128,19,86,245,63,29,127,161,28,123,192,144,63,233,4,31,148,134,134,217,156,180,205,82,190,135,126,60,140,9,96,97,108,19,223,137,189,90,187,148,174,70,94,193,233,211,247,57,4,17,23,67,101,120,138,229,27,105,120,218,47,29,147,105,214,189,111,13,97,73,46,236,44,169,227,127,143,51,104,4,124,88,67,213,166,123,174,200,116,99,119,183,81,192,212,67,58,20,26,222,193,173,99,91,20,137,179,124,209,51,48,219,229,228,64,83,83,141,86,143,174,44,99,195,114,113,159,244,107,63,115,97,165,156,137,176,88,244,53,126,56,251,102,75,191,165,196,199,175,154,92,165}, {36,81,67,226,109,100,200,140,89,21,99,135,41,254,177,155,245,174,7,37,17,137,49,152,177,238,178,4,96,193,178,204,70,144,200,45,113,88,203,84,191,144,119,21,10,217,94,187,7,75,221,223,134,101,223,239,92,248,234,215,244,200,126,132,89,78,187,222,215,169,122,131,107,44,201,187,221,177,170,148,70,60,187,205,82,250,239,21,210,31,103,148,165,16,10,177,216,65,169,193,213,251,247,100,246,230,109,166,75,135,203,97,57,16,60,5,217,155,84,29,206,32,226,13,170,65,228,151,175,184,252,203,47,142,143,158,12,100,233,55,89,238,26,111,116,14,62,95,11,197,141,119,224,227,237,161,115,252,171,118,228,46,19,19,148,214,50,200,247,147,5,97,31,49,239,138,111,181,150,139,110,223,61,153,201,193,14,72,59,250,138,238,6,4,32,150,234,90,107,146,157,166,154,232,63,235,37,251,249,78,11,196,164,214,11,170,251,221,142,37,19,181,200,122,145,211,58,138,108,181,170,101,1,91,7,171,207,142,254,77,204,255,66,87,100,56,226,210,57,170,10,191,91,54,20,193,182,166,12,67,216,9,128,130,116,190,221,74,104,180,29,60,0,22,125,153,169,127,200,15,93,71,47,104,200,223,64,41,247,203,229,73,135,94,105,233,122,188,109,175,223,230,224,58,94,173,142,157,35,42,234,243,43,91,170,158,179,68,222,41,255,207,9,11,1,39,7,14,52,153,69,126,138,250,210,4,163,130,110,3,240,139,34,121,25,65,46,208,208,46,79,124,136,231,225,225,104,154,167,107,162,208,162,38,122,204,120,102,99,99,23,30,105,49,22,0,111,89,172,211,14,230,184,20,244,200,219,17,206,187,91,144,201,100,72,98,148,132,219,179,5,111,188,90,178,122,174,214,202,77,188,152,249,82,182,56,89,234,43,174,243,90,202,185,204,23,104,86,81,190,16,59,40,133,131,12,184,89,154,219,1,60,241,149,17,208,88,193,100,159,112,185,168,35,75,66,142,91,175,5,235,96,34,193,218,141,229,82,45,175,235,44,249,184,182,149,198,109,87,105,38,79,127,208,97,45,198,207,224,163,41,251,7,248,62,117,219,138,244,155,169,89,62,184,28,45,243,180,10,19,33,38,27,88,230,126,111,22,151,95,0,152,154,211,18,249,27,114,155,135,6,107,118,0,244,232,77,117,23,72,254,199,251,74,129,33,152,48,32,32,145,43,168,118,137,95,14,82,65,223,232,193,198,76,53,4,44,224,123,132,5,11,138,126,53,155,105,246,138,65,48,255,130,237,7,89,58,216,6,125,241,5,106,102,252,249,253,233,129,65,121,131,32,103,14,49,122,129,245,212,83,174,226,58,233,53,18,5,118,52,175,83,248,26,182,39,104,246,47,61,216,133,159,182,86,255,224,194,215,189,34,16,156,128,25,98,49,93,114,181,94,122,196,167,153,41,48,180,133,123,175,136,35,192,185,117,68,44,87,174,149,49,62,186,66,211,39,227,99,169,211,114,173,208,69,111,60,236,247,184,40,150,76,26,232,7,93,126,169,53,134,19,172,235,111,14,132,161,100,194,81,204,25,174,225,12,201,72,211,171,183,31,17,235,207,204,91,25,43,62,72,209,207,208,209,255,219,195,99,159,98,17,154,12,28,190,5,205,208,33,239,121,117,111,79,91,218,240,46,11,223,108,181,67,125,236,32,180,23,131,248,126,43,16,27,45,85,48,19,36,249,238,156,29,27,21,166,104,213,110,82,217,193,126,205,100,6,76,13,218,137,83,99,215,159,48,68,53,220,174,25,74,123,127,81,239,51,172,103,164,96,224,204,14,65,114,72,228,229,200,223,138,100,45,5,102,43,247,177,107,197,248,184,192,83,235,71,62,98,50,65,135,138,200,102,172,109,255,40,7,72,184,81,251,253,137,223,207,190,50,32,87,148,164,1,83,218,187,204,180,181,255,36,95,106,172,28,243,194,35,116,154,119,78,226,222,174,5,133,216,119,127,87,110,107,169,105,74,105,56,24,244,22,40,96,16,238,125,90,255,131,132,92,162,53,196,179,117,71,48,149,211,95,125,120,117,28,52,49,30,31,151,147,63,9,133,107,195,189,9,172,207,25,147,94,238,155,79,165,208,184,190,68,121,7,201,181,173,205,144,137,225,150,120,28,237,208,132,65,117,148,141,92,88,119,89,214,143,166,94,149,109,59,15,97,35,224,210,176,182,8,150,28,35,218,131,20,245,140,180,203,104,129,106,181,80,17,186,137,180,30,42,194,157,82,89,20,145,25,50,197,221,79,80,219,19,199,236,224,156,67,232,139,227,219,152,3,120,33,103,134,188,223,242,2,113,210,236,203,170,151,54,196,39,185,49,86,216,180,49,165,53,119,163,115,136,228,164,212,213,178,188,115,212,88,148,187,113,199,254,170,89,222,231,172,169,122,190,109,235,37,7,23,179,26,159,115,128,207,47,176,204,173,13,103,244,177,174,201,12,156,38,164,70,76,59,175,41,171,115,53,177,163,36,62,182,102,154,55,79,68,35,147,145,238,194,227,79,112,129,211,205,78,127,19,19,243,195,164,98,87,188,1,248,242,104,109,60,31,115,187,129,211,81,166,57,117,36,206,242,47,57,4,100,83,131,94,37,18,189,199,137,152,15,113,103,204,22,227,237,26,193,2,20,234,217,145,53,56,153,13,149,57,131,130,173,91,254,203,129,223,32,102,169,81,254,208,95,56,131,189,14,80,165,18,11,153,224,127,181,15,9,135,56,33,81,142,17,18,91,35,124,56,82,238,78,175,89,131,191,145,129,219,197,238,107,21,219,115,133,164,124,112,123,198,225,117,217,6,167,75,129,195,255,10,108,233,31,193,230,243,193,21,171,78,91,174,9,177,35,4,21,222,172,138,3}, } ; static const uint16_t precomputed_encode_653xint16_x[precomputed_encode_653xint16_NUM][crypto_encode_ITEMS] = { {56876,4520,20602,18746,24172,25350,26136,37521,50178,10605,57482,59154,816,8434,50429,29580,30455,4157,20967,46772,1781,2123,62104,18414,6553,22226,47646,8520,41693,57089,57611,47850,8403,61262,16028,64742,47253,32034,3496,4398,48928,34278,17151,55571,60793,3423,13603,22115,39649,10658,53711,40607,21797,33439,42486,52873,48405,24875,10616,48075,52409,20745,29064,17202,53895,11880,60527,36417,24522,7683,57893,16102,10550,33053,32107,8876,7312,4954,2287,63234,59187,60230,56688,30997,3659,25542,6285,1990,31165,45678,26680,60335,36336,10600,23358,13228,5673,6635,33392,38034,18752,16543,21258,59732,51715,25501,59321,54585,64358,47940,28862,1340,35249,12948,59901,5629,33385,44977,42013,45384,1380,49444,47204,60722,39336,23666,24321,4619,53778,37713,64894,1701,40989,16566,17694,16206,55856,24020,57752,3058,54268,6309,63221,8801,18563,35950,22680,19301,27518,58248,33707,57088,46779,10391,41436,10328,30443,44113,15691,4027,22902,8759,41267,32664,41054,12418,4395,33284,12399,61341,27707,41280,19371,46182,48714,33867,43717,40861,46202,28586,38621,5476,35036,57535,31,21055,31211,59796,59349,39460,9827,31736,10584,5276,58776,11080,5626,17135,36458,23283,60786,48258,24693,50656,51802,41958,55910,35939,28638,51635,20368,9487,46475,6801,41700,49864,10537,10499,17770,44051,34056,38178,52657,47724,59612,18736,5568,37597,17520,47297,55214,59081,16659,17131,6010,1330,19548,41646,42989,33906,55685,48116,53726,483,17756,10071,40851,64705,61583,22338,391,8136,63117,27333,44330,50616,57973,35451,55145,22365,61727,24567,63027,64347,3115,31295,48326,22655,19139,15948,62991,60954,26263,24597,2651,47061,65147,34739,55907,26251,26372,53534,18897,36367,13571,63912,18316,61254,56629,53506,32990,9754,64287,27259,59250,60450,39830,33935,17330,31798,17255,8614,4486,39775,36483,61903,46447,50437,51867,16400,58817,47860,10208,55299,26720,22226,24526,31825,34003,30984,50983,563,23878,19324,58657,51976,61159,33821,6753,6706,5181,50500,11515,41052,31709,2415,7961,2981,1002,19000,59089,62256,62054,24881,4927,11261,48432,40198,1297,54104,51150,21238,46964,59698,4146,15545,46977,38605,39793,1544,16338,10739,16239,31983,57594,48006,42074,46413,23449,22786,62001,9430,35468,7782,51299,54463,31970,10772,43070,62741,17069,709,22398,64731,4793,15085,47220,21315,41753,49326,24444,16890,28519,12206,4738,52408,10131,24903,24465,32972,14691,60637,39925,14074,6455,64148,10461,51778,39289,21363,36101,55927,64237,60357,18425,19339,10395,37428,12102,13283,33806,23898,52286,14133,50926,47524,6381,4543,18016,18215,23945,4537,28089,9402,61833,12530,26018,3586,36412,57727,6675,78,15298,54482,38021,63042,2699,39437,42169,65002,20327,34759,58400,28415,17164,54219,51386,6088,26239,1128,17814,39515,35748,61160,38611,39229,47633,39096,62629,56957,59703,22179,63696,64262,19650,50352,35274,37324,41391,55304,27577,53253,33791,27817,48037,21642,61852,49151,48050,21240,8736,28267,30395,33110,45722,17840,45528,44631,53150,25683,51738,46732,15942,28447,55849,56285,30912,3727,63670,21302,61534,50482,29272,38032,36855,45530,186,48119,11656,10793,19696,32379,64882,1382,35922,32417,19237,23027,60009,51057,62773,61408,723,38058,50452,62180,3070,57984,32866,63378,13681,36673,45586,27547,63537,52261,35369,6172,16372,37071,29318,29656,20528,23623,46593,8787,50863,2773,18419,58366,29524,54271,28527,13829,4911,12151,54709,48846,789,62846,30358,50577,35190,23828,50312,42482,2967,133,30375,27396,61709,20055,21794,6700,51896,50406,35130,36484,57260,28683,46748,15922,47248,25201,19846,10871,19184,57609,13474,55460,22860,38252,41215,203,3738,46817,45760,56237,57542,18425,45054,491,33883,3541,56857,36820,9760,18987,3168,25176,51209,47866,6643,38144,3215,3258,58762,61807,63962,15514,2247,27904,41151,43517,63663,64556,20498,64289,23848,34678,5930,58343,57437,34909,14765,47173,27587,12168,5049,44466,40188,27061,50989}, {19747,38245,2285,61267,40686,51263,16789,9313,53897,64676,60544,53394,7064,3861,56178,25447,36384,40896,34533,51292,63851,16618,20777,46249,31087,15865,37327,6929,16716,37181,54016,36543,25396,49237,51757,18526,36275,10777,32943,1004,9040,44594,47417,1405,61785,44877,13049,17387,62693,2387,32284,64029,18019,12408,43367,42438,10445,44224,4026,53155,4572,42942,33414,13513,41784,64607,36013,54108,20745,57660,53136,18550,36848,2848,7785,2741,49349,48955,47612,56616,62029,42245,23755,54931,3374,54632,8151,34742,59018,16112,12900,38767,38260,20847,45830,48680,14494,55126,38700,46929,8501,31768,52105,13810,20774,50086,15976,2302,5678,21823,61197,64499,13780,52638,11649,8409,28806,54781,29614,3953,18506,14008,50953,2496,55251,14851,24312,5374,19643,14913,18766,61253,25247,28738,1271,51451,19637,16586,12816,7040,65133,20868,51334,45738,317,62963,31477,22819,6306,58588,26964,33345,51936,27078,16038,32886,27415,3135,33046,21689,46895,34581,23503,39614,32344,39286,4469,49667,42732,7114,17001,1073,39539,28543,56938,39293,60122,56355,4928,26551,11606,17189,27878,7661,29479,57531,54464,43972,33470,53573,17765,51559,18291,60588,63796,60782,7086,39876,33748,6306,21182,52832,55606,54737,32404,41843,35558,46600,426,65470,1311,34391,8140,3125,19565,28779,49173,16109,40674,38254,2905,55988,44752,45068,44089,2142,53766,59491,17578,36047,49527,13064,12945,53260,39316,57954,7537,48056,52711,49205,40541,26867,28191,55113,59919,9171,10727,52494,13554,36459,30919,36851,52730,18660,48077,60588,2653,39260,56874,30325,23506,45250,28385,46773,10180,4816,41644,14719,39463,64954,61439,49429,8639,64675,35407,46108,56734,25270,16091,38477,40072,60677,37903,63976,65171,18543,53767,54357,11133,65456,40401,63090,23635,11412,57900,3405,46351,33303,11625,44911,23931,4812,1795,4517,56501,43173,19608,50969,10191,32466,57083,20321,28190,40127,2896,60690,7989,45945,44619,55467,27647,10963,15726,51654,17950,33079,38766,31849,7244,51814,677,44644,41302,57883,42009,10060,40283,2572,34211,3744,2685,50171,65332,38362,36084,58530,64932,3837,58040,23518,21469,37354,62574,60679,20675,15976,58231,29011,38741,6741,56471,8687,59506,45841,2290,42650,63327,247,43681,65006,40717,437,9959,45115,33363,27581,36076,59880,28544,39594,33372,23417,56676,63894,7739,2465,65036,60794,24876,29804,15007,29791,12582,14400,5362,46709,57879,21523,52292,22829,36413,13917,42357,34547,46811,6067,64024,53692,24494,46648,13101,46877,1610,35716,61462,39220,50687,10415,10593,5633,59305,36279,8006,36737,64613,2633,33789,14169,40351,1082,37054,50914,29038,41652,33118,37787,61126,53811,6945,21677,17181,36562,22871,18436,8661,55348,41928,19329,54281,18395,24254,33283,16956,59607,4427,11085,25339,27968,28296,55050,65254,62879,49013,31357,18010,16733,60210,10846,64675,54045,13995,61751,29667,9816,11419,4332,59481,59364,56543,39873,51390,33137,30020,56556,21400,13819,43477,42055,15349,14425,37210,47097,13624,3952,3222,1883,28963,44288,22068,38377,38271,21076,44970,25994,44387,793,59786,52651,38780,65449,20935,314,62682,59546,30856,28722,8541,59825,31484,43053,41174,7754,40334,17974,24110,62176,48779,8215,24916,54848,36006,10461,25578,1537,6644,39925,13919,12726,33004,30348,23361,40713,57851,50911,377,45095,52568,24835,15665,15097,64644,24529,12338,34029,54419,36300,5421,23713,56749,57749,9557,32385,21609,41722,3092,28887,62790,38480,29866,11671,52200,1953,18576,2818,9898,52544,58807,15973,52683,57836,25740,7535,53411,25330,17050,13109,722,42543,8699,54338,56664,28444,25673,61883,57253,26969,36024,13098,33736,17491,54347,19854,2913,2094,63338,50805,27585,18791,64880,29160,13563,64285,51231,16851,36498,21859,10032,55360,14326,9261,75,6642,10319,39245,33111,24983,35480,51158,21156,47820,26762,17359,15326,22202,547,27422,19677,30356,387,46202,12316,32530,38176,56122,35123,17273,21070,32793,20405,16270,52856,45051,53147}, {36909,44274,25695,34813,56595,55935,37367,20916,52948,60683,9390,57925,26839,9595,4365,35433,61676,36421,15670,53254,34530,5071,16978,18678,50702,52937,43491,16023,64982,42999,36809,5247,49716,35376,30161,16721,22161,39736,39096,17879,35929,23151,49560,36825,11981,41581,7515,1946,60987,39779,30619,16368,6499,64302,49896,53492,30593,28016,35728,25043,45259,27853,19822,52529,43213,35535,5457,22515,49643,45793,53195,18616,46960,24887,27551,30864,39633,8324,61434,53756,9951,59882,53278,47714,57299,19116,13972,111,26874,2315,24723,39500,54462,29041,59298,52107,117,42377,62783,16630,31832,33748,7433,63678,61819,17732,17468,44989,47786,17595,63688,45623,3963,59976,51177,60339,44695,10337,36029,22912,3293,11902,31654,62860,7659,32100,56288,11903,12614,15910,59329,5238,47919,54622,18088,33960,34839,43940,46211,34175,16504,25186,46460,19721,13902,9761,48731,56682,53342,4601,29002,42667,53708,49818,54376,4418,17300,23224,46800,17528,8141,10494,60552,5183,25468,19860,27805,28212,45615,26211,55310,17381,51568,54736,38808,58586,65346,37468,35340,30206,65092,29386,57086,20950,63376,6397,19976,41442,64411,62065,49111,44300,6037,38699,64818,41819,51761,40786,8252,32504,24514,41675,7704,3695,7101,4145,17173,27375,19180,30377,27434,36344,46600,34257,23136,61478,45236,8872,3025,25736,61734,65349,30389,64322,1850,25445,49636,24556,24141,38528,38464,2187,13630,51970,19751,3035,10019,60290,6734,37981,22153,40411,17440,23234,26372,45074,64630,20980,56362,65325,51738,45877,64468,43023,57125,64614,59208,46782,40401,31697,57680,1711,38598,612,47911,8163,60163,30904,40725,55655,33030,22446,35337,47356,37735,39195,20714,8583,28007,8778,4741,36132,46258,23248,10364,19727,28631,46519,813,36893,18951,62660,37370,52316,44993,64395,13354,52528,28639,47285,15435,56271,9836,41182,41224,37695,50395,5275,30957,50437,65055,52408,45663,18932,56557,17603,9061,48559,7455,47635,1931,6410,19432,22120,23617,64170,60637,10199,46299,43969,24993,63060,31984,39481,18047,46292,17765,53449,63855,17893,63,31806,28575,46422,40457,47994,36171,3129,62619,52080,32568,32960,33515,32801,28123,53949,33827,4321,36789,21947,30055,22200,22639,11822,54101,42586,35883,36947,9407,14114,16111,42660,23598,11361,41479,18428,23460,63215,36731,24174,1123,23771,15692,46672,52928,27401,28106,36477,41302,41965,28265,17128,46102,37987,4276,65057,16956,49420,15923,2839,29283,31414,1842,20978,53333,45149,56913,59459,9253,48850,60384,33518,45475,44408,26445,55968,64455,51501,2164,42897,50376,47870,44771,14179,61990,53533,61189,43613,61606,18606,8007,20493,50414,32269,43130,58458,433,47038,47258,49205,39557,57123,52920,20068,28893,24886,23887,43446,54921,11205,7770,14831,61338,43167,64186,41449,48022,33212,38745,29001,41579,12896,52447,4561,24607,3979,29202,42110,47491,29650,37199,25954,23692,54891,32367,62376,24224,58679,19484,58739,26943,55803,39430,23386,46098,22591,61605,8220,21514,672,21242,45914,5619,4231,23693,55600,15097,39018,60625,54779,55746,37995,12690,11762,13894,58843,30850,2820,42316,53141,4357,48316,50013,36902,64513,44631,95,62494,30926,8662,43154,63510,44698,16279,39049,39805,62946,65302,41795,9907,32824,42007,16081,17474,62606,26056,61556,33592,24867,59981,8810,37611,16204,38720,7916,49239,19374,30136,61877,2489,19225,36059,27191,16570,26789,21136,60128,32573,732,16252,20830,23185,14992,4832,61203,15476,51712,11410,44102,6136,17493,5859,2519,44635,6551,8177,20262,4992,62806,7487,41343,31516,37056,59711,7940,34452,55686,46236,21197,34750,15486,2444,24928,4972,35295,23229,38075,18094,49502,54249,14839,4356,17175,30821,58762,26907,55928,7471,27027,48598,3439,18785,60462,43308,32739,13199,1128,22652,54595,31654,51374,25460,46967,49233,17364,5178,56858,44481,23395,35092,31923,13265,56112,58597,21312,36179,36694,11438,50019,29042,62623,16235,24947,40101,45193,62552,32309,64312,19302,42431,51140,39599,42332}, {20772,57923,25709,36040,5465,34659,65065,39857,44789,9479,35089,38961,61105,1202,49504,52402,36934,11720,22641,21707,37055,5495,55562,47966,19207,57309,25990,61407,63580,55274,51444,33918,20057,57019,43479,33658,11371,48073,45533,38058,15430,52667,64082,5615,8146,37991,4261,45322,16856,49577,64469,25847,59126,42605,34635,25035,4153,1340,39897,7508,8398,3554,16810,38884,47279,52220,36399,40591,25612,14313,61017,28442,3700,24382,50443,30605,58336,41453,64627,30379,12004,4883,54932,51250,37879,24837,12575,35567,46447,35734,57198,39229,49609,18446,64059,61066,1030,38432,23274,37483,42653,59546,60223,64293,20217,50187,54948,43531,56827,9614,46355,31432,54161,35386,46444,26026,23297,43783,36559,19966,65484,22338,14436,53986,43577,48906,13915,49428,42678,17164,2520,33408,48756,19165,46184,15389,5632,39293,32681,4040,18269,26671,57288,10560,52215,18917,24199,59753,48250,44909,59103,15072,44382,40334,10787,62442,23339,40618,17587,10718,53247,2825,9985,3591,39220,32325,64138,1234,33443,878,35824,31010,16665,53294,11984,31823,59272,57825,39528,27559,53410,9890,52346,26232,25443,7703,12649,22,22895,54188,58894,5304,51444,4571,48078,36955,25801,25160,33940,46043,28421,23228,31410,54958,19914,39100,21241,14518,59993,44587,23283,47562,6092,22120,48721,15120,34088,3203,22968,56218,15361,38385,53265,49496,40804,47472,9128,16971,23438,1455,24811,49442,36314,21221,44845,11499,47353,38326,28102,26967,20262,53375,11617,53190,41952,64297,63495,30014,35547,39924,22953,47166,11548,46323,4874,9761,22555,32486,5743,24471,38912,54170,63762,29211,34715,27398,118,59636,30029,18455,51198,19195,8577,12440,8224,11153,30376,24457,21006,57153,49640,19654,1077,57388,33915,2821,32394,39733,63081,16778,65328,60802,22791,55354,32006,1521,26218,63996,59901,16769,33657,26400,12558,33146,54517,44627,15074,13801,1298,13430,21423,6904,10166,63080,15663,34264,46751,65366,49888,48599,4130,32924,25113,23857,46450,31326,42948,10649,46128,31621,34991,49187,30137,11332,44631,12693,47678,54082,58151,43363,29395,53421,28485,60476,47351,38440,6732,2024,32349,13737,4998,60332,3695,41348,49764,52305,44569,3297,18633,43987,8119,60177,52431,6491,15915,53576,53455,65489,50139,40803,4450,3226,48668,52485,8656,31215,28533,23375,61658,2862,27871,17333,60541,46112,33559,32504,4139,11547,12373,9235,61177,7580,5403,26790,28373,55634,32449,25805,19462,55821,21385,55139,12447,13636,44764,18969,32635,61265,44083,42087,57440,3788,29249,58440,51429,35551,11620,26117,63275,27569,63685,49336,60243,15943,12898,34625,51338,44134,65389,1832,47176,64337,35325,53215,12990,22304,42132,21249,48090,46284,65461,24356,44138,62236,9154,39540,20087,57058,1454,55429,32631,28247,43371,19049,14441,62488,10262,4192,32238,65370,33923,41564,50229,30131,12359,54165,32095,30072,13340,7729,38687,16275,34057,50027,2493,53164,37657,61022,20379,53413,48824,31044,51463,44469,37069,57737,30870,60700,34000,30017,36244,22620,22903,36822,24230,28053,3899,9057,53984,46768,38408,8988,33754,62740,46220,26827,27265,20661,47633,46217,10782,40386,22866,37140,12825,56773,20559,5083,60615,40160,59459,58251,39131,30723,26401,48262,62175,28930,60626,43723,13975,10180,12729,55382,12724,13733,41847,34931,42212,54740,48306,54387,37976,29115,65223,22954,59358,43436,48762,60269,1829,45847,40730,32883,12239,52400,3501,62567,44721,3273,9884,18084,15180,10671,29611,45365,9379,46654,39526,20279,9028,37267,49902,20451,33136,52691,32590,4883,50163,25252,48215,63489,26866,15469,29471,33211,20947,14758,9333,62158,14639,25604,33619,9566,48402,35271,3992,26481,5836,60899,49434,5122,55786,13713,39224,38157,33593,44418,65115,33227,8415,43366,65105,24528,33592,3773,42320,2834,57497,46463,2319,14471,20769,4494,23314,31779,21048,20206,22959,49027,33169,50651,27630,56085,34163,31908,31600,57798,55669,42758,33099,65475,27658,8169,59073,49651,43797,23374,2478,9137,5380,44254,906}, } ; static void test_encode_653xint16_impl(long long impl) { unsigned char *s = test_encode_653xint16_s; unsigned char *x = test_encode_653xint16_x; unsigned char *s2 = test_encode_653xint16_s2; unsigned char *x2 = test_encode_653xint16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_653xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_653xint16(impl); printf("encode_653xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_653xint16_implementation(impl),ntruprime_dispatch_encode_653xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_653xint16; printf("encode_653xint16 selected implementation %s compiler %s\n",ntruprime_encode_653xint16_implementation(),ntruprime_encode_653xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_653xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_653xint16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_653xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_653xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_653xint16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_653xint16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_653xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"653xint16")) return; storage_encode_653xint16_s = callocplus(crypto_encode_STRBYTES); test_encode_653xint16_s = aligned(storage_encode_653xint16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_653xint16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_653xint16_x = aligned(storage_encode_653xint16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_653xint16_s2 = callocplus(maxalloc); test_encode_653xint16_s2 = aligned(storage_encode_653xint16_s2,crypto_encode_STRBYTES); storage_encode_653xint16_x2 = callocplus(maxalloc); test_encode_653xint16_x2 = aligned(storage_encode_653xint16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_653xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_653xint16();++impl) forked(test_encode_653xint16_impl,impl); ++test_encode_653xint16_s; ++test_encode_653xint16_x; ++test_encode_653xint16_s2; ++test_encode_653xint16_x2; } free(storage_encode_653xint16_x2); free(storage_encode_653xint16_s2); free(storage_encode_653xint16_x); free(storage_encode_653xint16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_761x1531.c0000644000000000000000000011462414705505543022401 0ustar rootroot/* ----- encode/761x1531, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_761x1531_checksums[] = { "55bac32e896eeda274c06a45e55b1df05006e43780b35a6a3e1c0b3e52407838", "9a3fb7d7bd06856c18640990282f267f81500881d97c9fcb94d3a358cb24b9a7", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_761x1531_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_761x1531_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_761x1531_ITEMBYTES static void *storage_encode_761x1531_s; static unsigned char *test_encode_761x1531_s; static void *storage_encode_761x1531_x; static unsigned char *test_encode_761x1531_x; static void *storage_encode_761x1531_s2; static unsigned char *test_encode_761x1531_s2; static void *storage_encode_761x1531_x2; static unsigned char *test_encode_761x1531_x2; #define precomputed_encode_761x1531_NUM 4 static const unsigned char precomputed_encode_761x1531_s[precomputed_encode_761x1531_NUM][crypto_encode_STRBYTES] = { {157,21,141,197,21,64,227,213,228,147,254,229,237,86,41,161,248,102,130,26,122,219,206,27,65,244,65,228,107,226,104,76,203,10,39,116,106,4,79,141,161,170,126,23,88,123,186,166,141,223,199,167,171,54,120,8,229,127,197,113,111,47,161,6,174,173,86,17,98,21,114,79,66,202,2,236,136,253,120,125,88,109,137,108,59,11,50,70,141,99,70,164,140,135,116,56,188,37,254,240,52,103,67,35,241,100,4,59,133,189,154,162,17,10,248,27,240,30,226,41,157,112,63,236,219,154,61,7,51,104,135,17,9,104,231,38,171,6,115,173,194,177,165,206,212,82,168,238,195,143,179,36,253,72,127,18,13,94,89,168,176,208,253,44,33,162,20,7,83,102,40,196,25,74,142,96,55,167,136,169,142,188,149,199,156,155,135,69,145,67,240,210,79,4,177,16,56,101,12,56,10,150,29,216,128,211,156,233,40,202,64,242,29,176,90,46,121,106,234,5,41,40,86,119,5,157,97,81,214,189,203,86,116,16,123,173,245,48,248,89,217,116,45,248,163,168,49,50,206,11,69,88,118,184,215,85,42,145,223,42,129,170,136,11,13,221,101,86,33,193,147,98,102,205,82,116,117,140,152,55,98,244,172,208,149,90,179,24,229,89,92,22,21,69,180,93,0,173,129,52,49,43,149,47,241,129,131,209,76,28,42,180,221,198,9,3,192,233,182,99,180,230,102,170,60,61,98,87,30,224,193,165,143,240,118,48,238,200,211,28,225,79,96,213,101,172,208,27,171,106,159,204,149,29,180,157,50,80,93,51,121,249,250,204,156,236,75,33,49,207,48,52,227,103,102,172,134,210,80,115,158,17,221,177,239,234,130,235,221,174,135,153,217,126,124,4,213,55,59,205,224,49,167,52,1,151,9,48,156,159,116,133,4,152,211,94,60,105,186,215,113,185,38,125,166,28,161,213,173,27,81,189,212,95,96,40,158,196,18,241,185,0,226,244,91,59,33,174,54,133,155,223,229,117,66,224,107,198,250,138,134,85,69,245,12,121,49,76,47,113,53,90,55,0,247,198,69,246,255,189,31,225,60,20,171,101,206,168,170,233,220,169,76,222,54,251,109,168,244,25,154,181,62,56,223,238,101,98,176,57,29,5,70,27,40,246,126,4,70,37,54,246,243,153,137,19,204,72,10,74,237,197,84,251,156,196,32,199,20,11,127,27,187,68,52,210,143,72,160,152,208,17,0,146,182,115,56,51,48,138,96,123,108,98,111,198,158,158,161,41,222,255,2,73,1,40,85,15,117,82,65,245,75,110,90,167,55,175,58,252,224,59,142,249,216,208,153,43,85,158,195,184,95,166,82,108,198,96,65,31,49,131,41,86,132,130,126,78,218,23,131,172,250,225,171,70,113,13,133,241,9,154,239,40,204,234,229,251,70,184,218,233,183,208,239,249,221,108,94,22,252,184,163,251,93,153,35,144,185,224,82,10,42,125,220,118,78,114,218,223,164,106,123,239,193,247,224,1,47,3,233,173,108,59,206,192,5,170,66,87,33,84,36,51,198,128,228,19,77,27,135,226,121,175,39,101,229,103,81,244,40,57,112,214,2,247,31,14,48,132,250,113,131,70,92,166,52,240,87,34,151,134,125,140,217,237,248,156,219,185,84,166,92,79,212,141,224,85,239,162,106,16,9,117,131,67,94,185,6,42,51,61,94,244,211,248,65,99,49,148,156,127,43,231,43,214,197,222,1,114,133,178,55,163,241,36,133,56,161,114,14,190,131,9,126,132,149,226,206,114,144,253,13,92,175,30,26,164,83,231,106,28,251,49,227,4,70,4,97,241,138,95,34,227,128,232,110,139,89,40,184,91,150,106,161,107,68,185,7,144,148,209,187,198,176,35,121,223,134,198,131,81,254,128,18,138,33,185,48,54,240,142,34,237,152,171,40,156,37,173,156,162,167,67,66,156,225,12,6,122,217,214,239,162,55,214,42,106,219,231,221,209,82,80,167,225,121,184,248,35,35,29,190,203,15,215,204,3,198,144,181,153,57,161,8,159,171,145,229,100,19,103,141,58,133,195,129,217,202,115,65,148,154,174,26,221,132,187,115,163,26,47,125,209,77,133,37,39,107,215,219,141,184,113,173,69,14,243,216,240,57,245,110,9,5,194,29,70,169,211,131,248,186,120,8,25,253,145,34,197,167,68,96,13,120,203,245,64,226,141,61,36,110,229,27,30,152,17,116,239,138,203,42,108,28,236,17}, {1,73,16,96,163,45,234,205,116,143,26,93,46,77,165,144,35,118,94,151,163,9,123,139,224,235,119,126,47,177,211,170,127,244,62,63,48,14,213,186,208,27,253,118,47,57,90,141,226,35,22,217,156,235,227,245,190,93,31,233,49,235,153,90,57,28,220,36,131,252,131,94,40,234,182,55,76,126,140,106,124,205,247,219,218,79,64,161,214,38,192,130,130,93,122,95,88,247,100,19,17,239,141,171,86,139,113,203,126,242,207,48,38,1,224,225,129,242,80,236,40,92,69,102,161,219,230,73,88,132,246,8,185,8,49,170,105,62,84,109,238,133,205,154,193,198,183,241,125,156,159,10,157,45,74,136,141,31,16,173,252,5,186,11,156,177,91,72,175,164,12,150,240,198,105,97,44,217,0,83,201,223,79,99,188,0,29,125,64,200,37,208,85,1,102,83,220,163,224,12,104,95,148,102,141,224,71,232,142,232,217,131,10,214,63,191,208,159,237,161,151,77,52,229,119,136,26,230,230,155,106,197,162,29,43,135,191,77,141,61,51,215,198,208,178,77,47,215,61,38,184,82,239,229,213,206,92,166,233,50,246,147,239,238,63,164,225,165,236,206,79,151,84,82,138,23,9,84,76,113,76,173,12,81,244,142,15,74,48,179,238,155,222,205,101,53,219,39,200,39,224,177,109,94,181,15,197,17,83,145,12,236,185,224,228,179,110,194,95,126,45,77,167,84,164,46,233,75,96,190,5,131,128,154,193,21,235,155,112,243,5,0,49,120,114,237,239,7,60,238,245,142,18,252,51,46,118,126,62,119,187,126,167,60,14,63,191,117,202,162,223,254,16,114,211,244,231,31,105,221,240,229,91,116,60,53,66,182,13,39,189,147,76,69,152,5,4,172,56,183,31,13,81,68,154,154,204,195,52,29,52,83,178,155,93,126,16,7,137,41,236,117,183,253,81,244,234,132,76,183,212,82,65,178,209,187,34,222,178,34,158,129,250,227,14,141,164,240,160,209,68,225,96,104,131,120,80,21,124,68,77,119,67,24,226,85,84,13,207,36,93,186,107,63,44,92,166,104,202,105,53,109,187,41,165,147,131,168,122,100,248,224,152,243,231,26,104,209,225,73,116,54,7,142,188,82,1,106,180,248,241,146,180,106,156,84,5,128,200,143,158,45,44,78,72,164,176,92,226,79,62,48,145,94,21,141,163,247,110,186,77,172,233,44,236,158,254,137,115,250,102,65,19,238,96,209,110,17,245,28,49,226,182,97,167,16,109,10,108,180,128,41,90,7,114,142,1,17,243,165,252,112,227,117,56,50,122,124,12,18,107,237,59,12,144,175,41,154,233,60,48,193,218,4,10,168,132,91,55,198,110,25,252,244,78,127,112,99,44,71,170,15,163,141,139,182,65,117,23,77,67,128,159,33,91,51,36,85,107,255,230,165,253,145,50,57,38,174,23,46,191,47,76,230,90,130,152,203,138,131,164,225,140,238,149,228,221,217,36,84,95,144,184,223,227,124,80,121,156,83,204,144,60,147,216,210,255,120,133,242,199,128,234,108,107,171,62,101,118,200,218,44,229,151,179,185,78,17,170,170,116,202,68,79,219,173,85,66,76,60,207,95,68,41,32,234,149,114,66,186,225,21,225,160,59,11,99,156,178,84,216,78,234,207,78,184,231,227,238,19,77,235,63,156,208,73,85,13,213,44,111,218,184,168,115,25,150,119,150,79,28,154,6,192,13,83,78,171,167,117,188,52,180,190,232,192,91,232,15,44,78,237,86,62,96,125,210,204,0,160,146,70,152,158,155,154,58,35,105,100,227,40,144,230,37,141,115,44,51,138,230,163,99,96,168,48,191,241,78,147,228,151,17,96,79,84,172,198,83,217,171,85,16,13,61,232,203,52,8,205,66,249,209,90,21,130,77,137,223,40,76,135,139,71,13,211,162,97,195,73,77,250,42,107,81,187,189,225,1,242,153,113,96,159,198,171,189,17,159,21,193,119,91,112,148,247,41,87,144,145,250,191,115,221,77,196,46,233,206,161,140,42,198,157,47,65,116,63,88,196,199,231,71,25,33,32,58,156,14,13,150,26,74,152,81,227,98,151,235,8,63,30,42,114,37,10,69,25,53,145,131,119,69,223,167,209,175,124,68,147,160,100,144,164,95,42,63,187,108,141,51,108,205,29,255,211,167,177,21,183,188,147,241,143,77,251,8,150,133,5,192,218,188,195,29,171,213,56,207,9,246,239,194,210,203,181,33}, {192,214,189,149,220,92,156,43,60,211,7,14,158,27,237,105,91,140,83,255,187,83,196,196,71,172,218,29,126,213,76,194,5,114,187,230,11,71,153,152,109,180,59,36,136,108,224,61,30,233,65,198,42,7,246,161,246,184,143,253,82,15,204,184,143,90,199,144,174,49,90,178,129,178,246,54,193,254,93,149,213,149,100,123,48,162,251,68,204,87,198,80,199,247,85,223,220,39,126,183,254,212,166,137,173,171,204,184,195,4,99,123,190,20,126,156,248,42,1,71,144,112,166,54,196,26,232,149,17,0,75,23,244,121,189,31,161,71,168,191,155,108,216,133,124,94,103,104,200,49,115,169,124,188,84,147,175,204,142,169,9,183,118,211,16,101,71,149,227,71,54,52,43,193,76,45,142,172,64,63,139,116,70,207,78,200,220,8,16,249,23,240,230,233,114,90,120,217,101,72,203,67,26,147,40,190,161,134,218,111,254,238,129,201,255,117,25,250,8,248,181,41,173,42,71,219,10,60,156,94,122,105,81,246,191,15,174,193,97,158,247,242,40,113,4,201,195,113,209,79,48,202,180,104,17,156,179,194,103,126,179,49,69,233,78,79,145,80,51,88,224,50,24,105,195,117,194,23,158,13,148,73,10,230,223,116,144,34,91,191,229,251,117,183,243,233,157,79,228,146,202,204,72,32,11,69,70,163,116,29,11,70,225,141,173,230,245,180,43,251,245,176,182,3,126,117,141,131,111,246,192,29,139,244,184,163,186,183,211,65,59,128,249,137,136,113,72,13,210,37,6,110,232,233,199,91,226,143,154,102,124,116,167,152,100,71,57,13,233,214,136,108,97,180,173,55,245,54,226,42,51,161,118,157,174,180,8,79,26,161,134,108,116,106,91,135,253,219,217,128,203,35,59,17,15,214,16,2,211,99,106,185,11,15,0,10,175,65,128,38,208,51,12,59,136,113,189,98,19,128,182,143,45,190,111,29,137,1,211,204,171,149,90,194,182,231,214,181,197,101,127,200,188,141,159,198,159,217,107,134,184,50,85,215,168,56,92,255,16,11,177,156,167,20,215,42,154,227,181,1,0,73,247,38,46,254,27,60,5,163,116,216,132,188,5,6,247,29,251,253,45,92,104,145,179,160,77,143,93,161,151,240,23,29,73,48,14,221,121,236,72,222,155,54,172,213,96,253,34,200,36,94,21,241,95,144,188,9,109,49,4,99,33,219,211,202,95,155,132,14,252,235,232,51,207,254,10,230,123,54,30,158,153,148,162,6,212,217,240,211,134,232,10,103,55,171,63,130,241,64,173,163,141,94,85,245,216,64,211,189,119,87,202,202,67,221,46,210,85,142,242,128,35,33,172,0,151,45,158,76,104,248,77,182,68,31,249,57,255,1,28,151,161,199,227,152,190,11,4,48,68,138,180,178,18,106,14,227,101,151,16,168,72,135,141,141,103,221,8,4,68,0,185,206,66,93,231,165,139,187,37,189,224,7,142,67,254,150,201,20,173,97,28,141,238,186,209,153,216,230,118,61,91,14,136,204,141,118,237,50,18,185,17,123,185,75,6,198,35,221,172,21,115,83,12,73,81,234,51,226,52,30,117,238,79,109,53,229,50,225,78,39,69,238,96,70,24,106,122,188,245,57,87,216,250,5,148,178,98,188,252,252,85,179,73,172,67,152,185,99,149,243,156,93,223,169,4,236,114,154,225,214,240,135,217,191,20,109,250,153,25,24,97,140,249,57,15,204,5,0,195,191,46,154,106,38,101,123,82,230,196,120,95,109,171,202,92,76,97,23,115,183,110,209,160,95,181,216,116,87,240,167,152,127,95,46,138,65,157,26,109,162,151,31,166,6,95,241,97,109,40,20,103,79,160,241,90,18,61,117,207,59,141,103,73,255,83,20,162,187,163,20,230,210,23,94,43,226,251,38,92,137,28,114,21,181,19,178,149,212,154,13,236,141,11,4,122,214,0,31,97,58,59,253,61,122,136,149,119,252,109,179,175,199,176,196,251,53,90,107,178,79,31,174,207,88,6,113,145,176,44,61,176,227,223,110,241,227,51,83,221,174,131,124,211,18,110,36,200,157,118,74,180,79,218,174,252,61,47,141,134,14,140,189,140,113,73,109,239,205,133,119,127,85,145,100,207,232,78,216,166,134,212,206,129,169,93,95,203,0,174,83,38,98,66,64,170,78,177,247,128,77,77,10,33,40,220,172,97,227,1,149,247,111,75,26,200,2,219,24,248,35,178,55,53,230,7}, {6,109,105,251,7,119,49,199,106,51,153,191,207,120,110,102,134,82,44,2,105,158,48,212,167,11,25,195,46,101,6,166,226,184,127,55,147,135,43,149,97,207,75,203,48,203,221,252,198,35,182,100,136,148,54,255,30,186,222,172,239,76,221,4,62,64,163,135,155,90,110,170,223,156,213,240,224,79,214,204,116,86,77,33,25,235,199,4,148,119,132,191,93,18,137,241,35,113,60,111,232,157,73,88,121,215,94,24,72,234,102,63,239,115,72,109,127,179,135,8,226,139,110,17,11,16,225,81,244,120,8,134,19,12,131,205,68,250,20,19,226,200,108,196,181,66,226,43,31,48,146,107,5,185,137,188,2,90,204,32,201,26,198,208,44,173,78,180,184,220,157,42,169,202,165,34,2,104,8,216,133,171,78,17,15,226,3,135,127,144,186,33,253,183,195,116,15,239,9,87,173,156,160,24,214,168,243,74,96,64,17,169,79,21,152,2,62,20,8,216,79,223,14,112,22,15,50,135,75,202,70,74,94,200,227,228,57,131,113,86,141,114,245,0,248,51,6,149,23,25,95,227,141,37,20,84,102,41,13,121,203,20,212,7,54,110,184,210,83,254,221,40,64,156,248,45,55,88,239,11,93,151,246,196,49,71,8,128,149,110,24,156,169,147,44,151,144,43,190,67,45,67,32,169,251,217,152,124,138,64,224,47,6,239,240,76,77,17,218,96,129,10,69,136,196,14,57,249,192,148,166,61,206,62,170,81,225,59,78,94,245,20,172,90,44,61,97,67,117,253,85,30,79,219,143,77,27,100,115,36,65,114,62,97,110,155,187,93,175,175,232,169,119,147,135,193,215,23,49,5,190,53,200,206,170,161,94,62,130,91,110,139,116,43,10,220,95,135,103,38,207,82,0,251,127,154,86,158,148,57,202,189,107,250,123,148,99,172,152,231,250,194,115,244,148,82,24,152,150,199,118,66,200,230,182,108,200,81,28,27,194,211,15,173,105,231,39,82,208,185,86,172,45,213,238,82,115,55,72,79,108,247,87,86,179,77,102,59,138,55,192,159,171,52,50,99,23,30,61,110,20,215,186,67,241,82,62,123,71,67,22,153,125,207,216,228,57,70,130,213,168,100,96,156,30,81,27,72,90,59,226,145,215,242,230,196,20,159,200,44,109,218,88,244,248,77,47,24,60,160,33,153,126,104,91,136,151,242,121,123,57,90,207,22,149,99,166,136,218,27,73,137,170,130,212,106,153,148,120,148,124,152,74,97,156,135,198,203,168,247,161,107,206,201,209,251,199,199,147,47,76,90,56,235,194,244,214,210,61,177,103,160,3,43,29,116,88,151,119,216,208,93,73,255,219,221,222,164,64,231,13,122,57,20,132,111,143,121,130,221,217,185,134,195,67,96,30,198,103,88,89,90,162,46,55,66,128,98,139,229,118,223,207,211,155,145,230,203,139,215,155,73,199,198,19,203,63,78,147,37,232,57,48,109,161,156,250,155,83,192,28,174,59,95,128,22,27,213,171,96,129,62,125,190,67,230,86,74,91,104,245,254,147,1,2,138,137,160,78,124,134,129,107,44,234,37,88,236,184,219,182,78,227,152,163,54,82,113,223,231,6,43,132,110,79,51,246,14,185,35,150,5,169,206,140,179,116,232,150,78,176,188,252,145,93,243,238,86,247,156,66,174,95,238,220,211,107,129,155,119,82,11,255,107,190,104,155,176,48,104,142,169,167,28,162,113,194,229,249,126,231,120,209,147,112,47,6,209,11,63,237,24,173,122,103,5,48,74,222,187,169,165,8,5,113,185,199,1,55,76,157,185,221,249,34,61,167,25,38,30,124,198,163,214,152,160,33,254,115,57,204,161,163,237,38,28,228,244,89,65,140,43,6,239,242,194,117,203,74,206,50,10,160,195,75,221,98,179,223,137,20,241,252,28,0,3,29,19,137,143,153,41,146,110,106,60,158,204,245,15,67,199,96,97,175,71,89,192,182,131,20,71,43,38,122,187,112,149,157,60,177,52,15,247,232,139,210,28,239,39,166,5,30,182,144,215,192,231,175,110,142,125,23,215,184,100,83,245,75,140,53,207,246,12,250,189,67,24,55,22,87,169,125,45,40,17,194,174,84,149,8,238,170,57,236,213,51,227,231,212,90,73,153,150,253,89,97,214,135,67,120,145,154,48,182,221,28,107,149,35,118,115,44,243,24,26,135,205,179,162,180,214,252,161,204,62,91,250,56,149,216,15,27,43,130,174,17}, } ; static const int16_t precomputed_encode_761x1531_x[precomputed_encode_761x1531_NUM][crypto_encode_ITEMS] = { {-31828,-31590,-27362,9832,18701,7606,-24993,-6644,28472,25709,9616,5272,-5205,-26973,-24014,10539,23301,-15743,-3530,-1965,-17360,32120,-10594,-22985,16643,21523,-13486,-3098,-32149,20791,13503,11521,-8968,27556,23362,10404,15916,-5950,-31355,-20513,24285,20511,-3783,-23152,-4359,17290,29382,9965,-22455,6026,24312,-11096,17673,2377,25947,10847,-8900,-7111,14209,-31949,-29904,16596,22628,-17016,21810,-9576,19519,-29375,-12438,-15304,-20317,-14108,-7568,-30906,-9250,-25346,-4558,17173,25903,19133,-10623,-11635,-20333,-29915,-10165,16179,26656,12339,10338,27623,-1278,-28174,-9173,12243,10109,-27765,-2798,-22294,27608,-6585,7568,-31365,10300,-2590,21112,9759,-5247,18588,-21873,8566,-32715,-27531,-8262,8406,-520,-23877,-31297,-22599,-4337,29639,-6684,17652,13143,32150,-32454,-14106,-17535,7914,-28436,19919,8590,18467,-22163,9604,-4025,1854,-7657,5075,12388,20392,-3459,-10942,-2385,-14239,-19140,-12615,-2802,-30473,23697,-31605,-5977,-21604,-5984,-31068,-16808,-21785,1468,10061,7021,4101,-15999,-11282,-1907,-32746,-26939,-22152,-29583,25411,25662,-24027,11,-7010,-913,27391,3246,3074,-25697,-18835,-12164,-25677,-6831,-29509,17303,-31754,2325,-13999,-18597,-5227,14147,-4605,-17126,15749,9420,18316,18439,5005,-4347,-15658,7144,-9408,31477,-5759,13916,-30347,19806,-14197,-27743,27821,-17248,-11011,25746,-18966,-2140,-23054,-10637,-4203,-5143,-29209,-29867,-2852,10417,-22320,-29258,4454,1395,9492,5069,9310,-12220,-19327,-5087,17867,-23410,-32723,-25406,-8162,4163,-30988,19284,11776,2231,-8038,-19234,19647,-4639,-20310,-19608,-12658,-5630,21945,-26683,21204,-27839,-30122,818,28532,-10187,-10712,-13838,6444,19869,29604,17843,-7031,-6927,1895,-7615,-25845,-24597,3960,20692,-19634,-23403,7615,19255,10102,-21837,8269,-19712,58,-30215,14636,8234,933,14268,-26524,28251,29239,-22981,764,-30744,7428,24275,-18840,-3413,-28311,20189,2956,-20824,-20473,27713,-18672,3405,13569,3483,-31447,-11109,27694,-28755,7338,13052,22217,19833,10980,-26019,27363,-29215,22117,23438,-23002,-23475,-12013,-11038,-23521,-20219,-12790,28113,-20765,-27818,-16021,-31567,-17770,10107,-30136,23680,6531,-9579,-1293,-1117,7864,-15246,-23495,6062,950,-13457,-11506,1035,-12833,5495,21861,-6815,-20920,-31337,10399,-4395,-13465,24815,29362,-11977,-15902,13052,21990,21207,6083,-235,14872,-471,30872,23190,-25195,-14715,16940,15597,10676,-27441,27707,3279,-7358,31961,-9820,-16216,-23347,-16623,14375,18840,28970,4546,-1082,-4719,30447,-15165,14784,23905,-15365,5127,20428,-29157,-12282,23440,18846,18841,-11436,-4220,9109,22120,11890,21012,-9896,5861,-32740,-24141,27052,-135,-31498,15032,25505,8147,22299,-25383,-32326,-30628,18165,-5936,3950,-20043,1153,28374,8904,14728,14472,12414,-16071,-20638,22740,-22339,4027,-2952,-12293,-24407,6438,13616,22315,-7760,-2284,-19815,14631,-13810,-30933,3450,-31613,-21976,7141,-19255,-32265,6398,16395,-5478,-21184,16982,474,5653,-22996,14430,5095,25802,18975,-17066,-21846,-3104,14366,12174,2031,10860,957,28451,-14146,32299,21218,-1358,15299,-20377,13877,-6748,-29059,28960,-27815,-21309,-27237,57,1764,18594,-1956,-7778,-31990,22435,-19137,-22411,11478,31753,7939,3542,214,23413,30751,30390,24191,-6589,-21389,23671,9632,19508,10104,27969,-12703,16816,15471,-32647,-22732,-24574,-11076,13834,-1757,-4062,32219,-24190,-21142,15002,10476,-3123,28406,-13037,-30072,-22556,12741,-3374,-23606,27292,30074,-13399,-29054,-6395,26135,-10473,26884,30274,29862,15366,10895,29206,6516,17725,-12031,-21192,20481,5587,-23893,-14212,-30727,-23845,-25785,-2150,13037,12427,32043,-13332,6351,26881,-6415,-30239,-32496,163,30041,-23402,-17682,25461,2115,13961,6349,26087,9269,11384,-9392,-15768,-21131,14571,1015,5849,21821,-5064,-24460,10614,2537,-31992,-22620,-1297,-10748,28176,18212,28068,16548,11730,27464,28222,26413,-5483,-11368,-12435,-26008,28463,-14413,-30448,-13840,6367,6117,20858,17314,7944,-18518,7118,-26132,19854,-5109,22712,-11531,32049,22107,18549,-28606,-17223,2447,30315,25780,19034,-12582,5560,-17247,26941,-18061,-27633,-25494,21123,1461,18043,26570,-23993,13991,-14899,-29032,-19647,-13021,22422,-4145,18629,-31140,981,-22940,-19169,-18281,30543,-24276,7546,29460,8464,9588,28060,32569,-21699,22148,31681,5710,-10101,-9466,-3706,-1438,31150,32025,-11050,-435,-24791,1126,-5846,21590,29289,-19322,170,15292,22471,-26755,-19826,26600,16624,-23600,-18023,25617,9354,-31367,18250,19274,12717,32183,767,22132,21776,-27197,-1240,-29872,-29522,-897,16776,-22345,-29746,979,26154,3007,2211,-14293,-10724,2620,-5270,-18024,-4626,-1553,10545,30179,-6169,9273,-30408,-15106,21143,-28368,29066,29079,-18187,-12327,20202,21590,-24512,-13985,-20890,28780,11696,23003,28972,-31196,-28149,-5450,-7696,-15469,-5950,-2267,28322,30605,29204,24097,9369,15067,-1530,13938,21280,-4560,20160}, {-25402,32558,8157,11886,-30202,29029,9023,5133,14723,1114,-8593,-12387,7422,20500,23661,-7670,-26445,17127,-15006,2041,17911,-25558,15100,-30922,-15540,20066,28811,-18083,-3501,4636,5148,-3758,1384,-17349,4546,-21784,17978,-343,-26271,294,17622,-7164,19064,20608,27964,-5532,4794,6875,-23927,-10134,28202,-18147,29104,19941,29392,-10318,8083,-31017,-16884,-10900,26838,25269,-16981,-19618,-23214,-4403,25075,-11712,6875,-9049,23046,-15695,22711,4623,8206,-8293,16582,-11856,27684,22074,-17093,3273,11269,-32212,-5641,-15915,-7448,-24439,-20516,26649,9703,7444,-10915,10264,5757,23603,-3553,22969,-7037,-30451,507,15099,24575,24812,31539,-14565,24930,-3288,20530,-14455,-13488,-4731,-23330,8233,-12107,19648,-25017,22686,8229,1976,-26871,-26694,12136,31683,10885,5626,-27314,-17642,23141,-24837,-31357,-12885,8984,-18962,14006,9086,-3221,23862,-2782,-21589,-24296,-21927,29577,32286,-21506,7459,14720,14691,-32318,1525,6366,31097,-8593,-32476,13767,28285,21217,18349,1221,-10511,-515,2748,3059,-6058,-10579,-2308,-16591,-27402,-16121,28449,-28652,-10223,14880,8731,-5542,-31455,30864,-5826,31470,17492,20885,-15591,784,-26999,4297,-16976,8843,-19682,15338,11091,-6756,11708,-9635,22603,30738,17681,3410,26537,28080,20871,-31286,-1855,8616,-24268,13441,-9318,-22983,21011,16786,1574,-23233,-5490,-21725,16997,4752,29048,-32250,-9897,-7726,-14174,12262,-26898,4465,-16586,-20475,-17933,14379,30531,10255,-16918,11161,-4603,17465,18373,2282,-17601,12445,28816,-20528,23922,20024,-1593,-2560,21712,5697,21792,-13691,-31821,-13289,26591,-13103,4987,-17603,8841,28013,-11791,15192,-438,7863,-2747,5435,-25985,24007,-14089,5246,10163,-20148,30687,4833,16715,7955,27405,6877,23235,11071,32648,-21909,10271,-12157,25312,-23813,7185,-5341,31832,-18299,32578,12064,31409,18318,16202,-1899,-7812,16013,18512,22257,8256,-22527,-26948,20467,-15191,13222,28924,-30373,26850,-26745,-11733,11559,-14090,-29502,12752,29815,-13464,19841,-24934,-27515,15580,-17685,21190,3600,11530,31372,6644,-15365,4662,-32619,-74,18762,1553,-8123,19641,-13259,29045,-23523,13016,-19022,13926,19868,-2165,-18833,-17221,-5300,-2237,-22240,-32435,21505,14354,-15428,28446,31026,-5422,-17821,24341,4530,-22357,-3224,-2509,8187,24787,30538,-21735,-8060,27919,-4567,-31758,23720,19655,25149,-10688,-14089,16892,-11591,-29345,-16659,16933,-3135,16969,23265,18343,-6826,5180,10149,29458,-17484,-17029,-16558,-21941,-27840,31764,-13211,-3823,-16134,32470,26547,-30707,4375,12766,-4106,-4839,-20857,19534,-25891,18474,-19239,-16954,24429,20983,-12461,8871,-30757,25003,20018,-14863,-8779,-15050,-15025,16065,-1518,-16611,31424,-16323,18879,-6177,30416,-30493,-7830,-27676,9337,32211,1492,5490,-19389,1033,-9279,-22556,7082,-21149,-379,-10144,-13418,-21359,6180,30695,10388,-15421,-24233,28052,-25174,6,-15291,-29848,19525,21853,-1426,-7462,-12557,-3767,17492,-28223,21400,-29391,-10580,17490,23205,-11752,8671,18796,20449,-17576,10069,-5173,-12542,-32380,14842,8493,-29438,-24461,-9307,-19908,-17988,10250,13172,21914,30317,-16943,15352,-17468,6975,-22889,16693,21417,21702,-24371,29708,-25668,-3819,8536,27266,7064,-24781,-106,-17125,-19347,-18885,-19588,-23502,-25060,7750,15346,21598,18535,-50,-32741,-28550,-29052,334,-9804,-19494,8207,17657,-688,-2626,-13312,-1750,-18505,18481,-21271,26591,-12327,-18415,18713,10627,-21518,15477,14693,24986,16630,28764,-1806,22086,-17818,-17604,-26293,-18974,4367,29408,-32356,-3380,-8296,9178,-13547,-18403,14286,-28442,30563,16824,26566,23814,-14474,1144,28072,19923,16286,6045,5876,11639,-27982,31580,-23830,-26900,13477,-21236,78,-8295,-2940,-20134,9557,17526,9576,-11062,-10350,10618,-15624,21527,-24298,20160,-6230,25518,-10987,12563,-32305,-3400,-9510,19470,-27052,11275,13605,-3557,-1695,8167,29522,-17269,-26620,-28617,-20978,-1686,-15397,17723,374,-670,-10014,-7126,-1681,15515,27619,22303,-20526,24793,-11979,3805,28585,26439,-31677,23893,19442,-30225,-23762,-12028,5354,13670,-27092,-3788,21722,-20634,-29017,-18214,-5031,14390,8462,-8921,7877,-7788,20081,-13180,-28019,-23063,-3015,-2490,-6582,28172,2727,792,-10102,-29789,-21859,-9685,32536,32156,-3808,-11143,-19384,-6925,-2967,-10032,740,-10224,21849,-10503,-5769,10856,6365,13808,18679,18738,3256,-21456,-20146,31435,11963,7161,-26251,12020,-29283,-1213,32226,31720,-4788,31533,-9782,25236,15328,-26174,-13356,-16099,-27931,-7193,-26778,14338,25164,-25832,-29365,21173,-5274,-23872,-27995,20723,-17822,-19017,26977,-24696,-3427,-8300,18750,26860,-12200,930,3037,31145,-27593,-570,3202,-7102,19057,29393,-32078,6382,-28052,-13517,-27153,-7985,28507,-19835,-7682,1451,22098,-9344,-22359,13485,4121,-17592,3971,-6556,22831,-24935,1577,2117,-24820,10255,23598,-7356,30614,-14360,-17192,-1994,-25003,22936,-32235,9317,3037,5427,-16192,-7235}, {9983,-32722,13817,-30586,-6648,7526,27740,7873,14177,17201,7104,-12398,-28688,-17342,3976,-4701,18616,-32504,22753,-26850,5909,-19141,-15298,17369,3943,-22544,1620,-26309,15842,9126,-13212,25566,19024,-30137,-19326,19456,26019,-6050,-26296,-29161,23229,32342,10383,-21518,26614,-18698,-2632,-15280,-21157,9045,29491,32377,6174,-28123,21458,-12154,7335,2013,28090,3605,21999,-30454,13638,8149,-31213,5692,-3300,-6762,-2050,7779,20763,-20655,29977,-29587,27734,86,-20123,14375,-20335,-7684,9685,-27969,-3158,-17678,20287,-31093,-2727,-10287,14890,-8770,-11885,4221,13006,-19235,-15925,25818,-14694,-23991,-26690,-20933,-11753,-3968,27054,14566,-13301,-9181,27139,12908,31441,31133,28229,5505,-12493,-17741,-12290,26010,5175,27480,-28359,7958,18752,19273,-31694,30678,-6117,25234,-15803,25460,8443,11903,-24727,-6681,23955,-5918,11106,1374,-3083,11625,-40,-17029,12494,-9476,23392,1302,26604,28495,28393,-27699,-17474,-17816,-4047,5514,2801,28049,-31443,-19439,-10315,-28070,-12582,24743,26946,-5022,24697,-18746,28322,-30587,3688,-22574,-15800,8852,8435,-13403,16445,-20763,-4474,-3130,27858,-10670,-24119,20680,-28616,6403,-26871,24897,-11080,7707,-24855,11118,6044,-4619,765,950,-8802,29450,-30003,16306,2433,-10127,1505,-13882,-4824,16094,18297,-5675,27258,-24540,-23849,-31518,-9683,7082,-18028,-23669,-2554,-28274,5828,-11480,25930,-23134,12045,-9055,-24074,19454,-13153,1962,21441,-4265,-7195,30763,19161,5709,-17885,6526,14021,-25805,-502,-6824,9433,-11418,-30968,-24916,-9277,-5364,27004,-26096,-18888,-10166,8517,-931,-23998,-9209,21555,7323,7755,-10357,-11583,-20061,1239,-2775,23372,-12829,-10496,19981,17282,30945,-11015,14709,-8795,-11860,-2289,-1332,-22456,20280,-30488,-26410,-13162,-29854,-30431,-4949,5711,-31579,-6327,23071,21792,3944,12152,8300,31889,21360,-23285,11967,-25523,1708,-19891,29505,-28957,28919,-3984,9281,25557,-2026,-1341,2743,-13503,6935,17958,21701,20945,-31040,25099,18391,-25695,-3837,-30530,31123,13112,26112,28665,-15234,2591,-30962,-3298,-9155,-28023,26448,-26530,8403,-30502,5557,-178,2882,4232,23936,28230,22712,2848,25014,27538,-7831,-31405,-14611,-11636,7069,26002,18898,-4344,-24540,-8313,20347,7286,23333,31897,14500,26802,21156,-19422,-1728,-31435,-4168,14024,-759,32293,-17169,-16621,-18335,28850,20071,976,10064,-13515,13591,6832,2945,1161,-24827,-514,12649,-15142,32247,-14932,23138,-22064,13347,22495,-28456,-5333,28449,11887,-12755,15249,-23687,-14463,-16352,-570,-5349,5851,-20968,17843,-23619,15981,-22899,-11450,5789,17789,-15059,3221,-14059,14789,1445,20763,-7998,-28595,-22517,-11004,32374,-19062,-19500,-14669,21211,-19087,-27171,-1799,12090,30697,-11249,-16435,7447,-15067,-31850,10201,19507,-13247,-10444,25833,12481,-28953,-21856,5410,24841,8659,32054,22685,20461,26412,22521,11161,-2573,-18701,-4218,-27818,-15583,-8664,-18188,-28070,23776,3861,-3197,-6464,-11722,-12651,-1144,19001,-21864,4298,14013,19823,-20907,14556,108,-19108,-25380,14159,-1214,-26933,2913,-19649,27042,15535,3312,-29373,26192,32251,217,-15316,20916,27527,-244,-28795,22802,-3024,3292,21388,-31727,13813,-15420,-11536,24206,21329,-25905,5787,-2516,-6860,2192,-30673,613,18322,9043,-4979,-4789,-13058,12489,-18975,27811,16077,-8866,-4523,-8897,-25156,-29150,-21150,-30973,28061,28605,-2381,476,-20362,-22334,-3562,25269,4894,-13907,-11387,-1038,9552,7054,13395,16412,-21916,-7018,29954,28730,-22368,-26053,-5733,-19446,6167,28669,-26128,-17415,5919,8754,-30971,-13629,19975,-19871,18295,22751,14951,30449,-3141,18571,9407,13474,-4789,-13948,-11715,-6692,-24218,24569,-5907,-30952,-30589,-30397,23868,-1961,10344,-23953,1998,19503,20156,10940,15533,14701,-9157,12054,-13931,-26504,-9092,741,-10497,18805,29715,22452,-4256,3569,-10276,2871,-13471,6599,-28447,-20616,-6753,30740,-26345,17709,-26312,-27211,-9201,31274,30936,-5229,-16239,-23710,8700,12152,9384,-19768,-24816,9822,7964,5116,-24326,-9318,-135,-3697,-6839,10538,-9709,-3758,-10965,-6948,9538,-27305,3408,-14765,30610,-2632,-22622,-9151,-20773,13162,-5923,-20676,16708,3960,12396,25368,-23636,-19877,24025,4071,-9001,-23828,885,27083,-8373,18531,10416,1565,-6318,-27209,20378,-27622,19948,20007,-5913,-25066,6391,-16472,-27304,-22408,8244,-26908,4548,1268,-19552,8070,-22994,11207,-9701,-10316,22284,-24549,32344,15923,20396,-2668,23107,29020,-7120,-7539,-28822,-21902,-32332,-8652,26290,-12253,-31365,8764,29875,30538,9615,-2321,-10590,-128,-13943,17047,-19982,31967,-21060,-22857,-20079,17339,-910,-3945,2189,-13412,3060,-4796,28025,-6429,-6513,21671,-13870,14674,-4461,-12403,6405,23727,-18482,28662,-26919,20591,15737,17918,27169,24072,31134,-1842,-24262,21343,20185,16610,-28724,11197,10489,11111,30918,-16085,-12062,13211,-29607,-24482,-30816,-14135,19836,-20274,6572,28170,25561,29109,263}, {-22363,-8002,-4087,29999,-13896,-27872,-31913,-124,25783,-4976,19114,-9450,-21626,11116,-29884,13675,-2534,15718,-17219,-3057,2747,15468,22357,-28147,-25573,15709,27825,-79,-9295,13648,-18798,-29413,26106,-27518,-5152,-12489,22266,8378,12560,-17860,-12230,17006,-5623,-1927,-4695,-4082,-9899,11775,23185,-7744,25197,23831,8881,-9545,-20042,32287,25833,4941,-28573,16557,-22733,11841,9961,-27180,19004,-32217,11229,25286,14771,-3258,-24397,6718,23102,24713,31967,31768,31835,5478,-22896,-19047,20639,-14509,14955,15520,10421,-26882,-30354,29349,-3846,-27671,15228,13019,10706,-17287,8023,-31152,-3051,6702,-31206,-17159,-27535,-23222,-25364,25494,-16364,10374,-13269,-8468,20429,-14984,-7671,-24411,4062,-3446,-1326,-20694,24151,-4819,-20027,31842,-31956,-21681,16184,10061,-1700,-15159,-10860,-6672,-19931,2691,-28335,15705,27292,13612,-19346,24218,-16045,23279,-19266,19500,7394,18419,-10422,23012,31707,-16721,-14607,-26814,10108,8352,10675,-30768,18405,31355,-31100,-13631,-28163,-23981,-5567,30516,-3919,7655,-17338,-1463,27390,24229,13191,-8534,-26561,-22472,15283,-9057,-18953,20880,30515,20240,-10661,17294,-2047,294,-18657,22462,853,24895,23159,6376,-27811,-32700,-5625,14468,5836,28780,-32135,10404,-16364,16328,3268,26840,3657,20897,9825,22058,-22283,-294,29925,6206,-17572,17178,14590,-28276,-14183,4160,4884,11528,6397,-5126,15757,-5179,5809,-5985,-8968,14435,1045,28545,13082,-6684,-25478,8770,-9149,-3605,-12002,-12186,20965,-994,27064,27175,-30497,6678,29920,30717,7716,-4677,6114,4065,20179,10378,14044,32350,-5456,-24131,25260,16007,30708,10981,17933,-31270,-19669,-19380,28836,12103,10168,20263,14629,12173,-12853,-24384,16986,-27270,28282,-12079,-30174,7929,19305,-1292,4713,-4523,8357,20815,18050,11389,-31909,-1800,5213,-12228,9911,-31150,-24701,16352,28247,-22816,13859,13493,-29378,27534,-5234,17059,28704,-3486,-8110,-11985,17885,-4798,-25532,-27844,-2354,-4817,-28401,26830,9547,3832,-18143,-25852,7287,-32686,5829,22111,-5122,3366,14134,18227,-11501,-1901,-14880,-12558,-23389,-5402,7818,-4954,-10785,-25368,-15381,-21604,-29324,342,28572,27324,19337,-19532,-14078,-430,28732,-9547,8589,-5160,-5947,-10088,20738,26971,-14030,21218,24036,-22496,4314,1177,-6447,2701,3268,11715,22579,-17723,8750,-30323,-22936,7556,1775,-7620,-6868,27961,-32417,990,15223,2098,-21452,-5051,23345,18165,-14396,20245,-26342,-23114,-29503,-8770,5042,22142,-8235,16334,-12626,-12047,3508,-1864,-26985,17019,15741,23626,-30792,-26518,27783,-18248,862,30030,-11159,31414,-11642,20165,22380,23639,-22117,-6274,13159,-26262,32694,3885,-10223,29460,31408,21606,-2613,17398,-32586,25914,11,11058,18888,-19611,-32369,23950,-6569,-29581,-15588,-14772,-5845,-17803,-29798,-30667,-20708,-11212,3016,-7943,16978,-617,23682,-30580,-25077,29010,12343,11378,-18494,20356,-31833,-10212,-27600,11171,-6348,-18547,2406,-26061,13011,-1122,-5423,2386,-2894,-31333,17412,2473,-10048,13508,-9122,-8440,29419,21934,-15396,-6792,5193,14170,9222,-8467,11325,20278,-11189,-13393,-6930,-4894,-27928,-14,14435,5307,31370,-21673,-31715,1606,-11300,-6942,-104,-1707,-20527,-17551,30643,-6062,-118,1966,11520,22940,-22410,15717,-26064,3568,-18666,5826,-19873,29712,-31688,-8991,13209,-8113,32503,-30840,-9445,-28615,-16594,-15108,-18352,11320,13461,-20710,9899,30941,-18978,30768,-28964,25415,-24273,20636,-28039,14052,5039,9185,-24173,13352,-6512,-31399,14157,24568,-25240,-6600,-6345,20052,27293,1788,3058,-20469,16993,-8602,1887,-13881,29783,-24756,-13517,3817,-14721,30799,4043,-15776,-12277,-17949,-1475,8166,-11757,25186,-29340,-22119,32027,-17182,8439,5223,12449,12712,31823,14884,-7086,21104,32036,17152,-21347,-22581,11411,-25356,30093,10494,17211,5061,9849,25336,-17066,22313,-9501,18818,-8765,-8977,-31326,-17665,22651,-16840,25350,26131,-13240,-8548,9773,-14522,-1846,4095,-24972,32207,1155,-2155,9349,420,-11132,-18328,-17237,-29590,-20113,-27446,32108,-5784,-9990,-4657,-17217,-29230,-21664,-24232,7736,15742,2060,4061,-6025,-14776,-19806,25920,-18569,21733,9385,30583,28706,-21701,6532,11258,7833,-12127,32328,14804,3854,-16689,11983,-6179,-3282,-17745,-3080,3476,29952,-17744,2000,14850,-10464,31773,-7624,27852,10503,-27779,-2541,25049,-10830,17148,-4512,-17823,3676,20470,21349,-25515,22484,-2311,-20896,-27308,-17519,20299,-3076,27246,-21818,27437,-2419,1545,20121,3637,14034,-19721,956,7378,-26235,-17750,-14310,-32496,-15966,26255,16330,30597,-11267,27658,-7616,-10146,28389,16404,27989,-11490,4609,-20488,22652,281,-29273,-7606,-10840,13537,12165,-18128,17636,30655,-17665,5397,20810,13891,32757,1014,26972,32342,21440,24970,-12768,-7106,-32436,-26195,-18521,11148,-31139,-3593,30383,5164,-26645,17698,83,-31604,6348,31968,10578,8920,-27924,-26699,14563,10843,-6391,17746,8073,20616,19986}, } ; static void test_encode_761x1531_impl(long long impl) { unsigned char *s = test_encode_761x1531_s; unsigned char *x = test_encode_761x1531_x; unsigned char *s2 = test_encode_761x1531_s2; unsigned char *x2 = test_encode_761x1531_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_761x1531_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x1531(impl); printf("encode_761x1531 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x1531_implementation(impl),ntruprime_dispatch_encode_761x1531_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x1531; printf("encode_761x1531 selected implementation %s compiler %s\n",ntruprime_encode_761x1531_implementation(),ntruprime_encode_761x1531_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_761x1531_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_761x1531_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_761x1531_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_761x1531_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_761x1531_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_761x1531_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_761x1531(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x1531")) return; storage_encode_761x1531_s = callocplus(crypto_encode_STRBYTES); test_encode_761x1531_s = aligned(storage_encode_761x1531_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_761x1531_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_761x1531_x = aligned(storage_encode_761x1531_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_761x1531_s2 = callocplus(maxalloc); test_encode_761x1531_s2 = aligned(storage_encode_761x1531_s2,crypto_encode_STRBYTES); storage_encode_761x1531_x2 = callocplus(maxalloc); test_encode_761x1531_x2 = aligned(storage_encode_761x1531_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_761x1531 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x1531();++impl) forked(test_encode_761x1531_impl,impl); ++test_encode_761x1531_s; ++test_encode_761x1531_x; ++test_encode_761x1531_s2; ++test_encode_761x1531_x2; } free(storage_encode_761x1531_x2); free(storage_encode_761x1531_s2); free(storage_encode_761x1531_x); free(storage_encode_761x1531_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_761x1531round.c0000644000000000000000000011536714705505543023456 0ustar rootroot/* ----- encode/761x1531round, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_761x1531round_checksums[] = { "f674dd6b79402fc0c6546f3716d5bc6498485e3943167d4901f3150f01ceafbc", "96687a4792184335a94adc906f4ec93dacf1286d3b83eff1196b48df80063634", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_761x1531round_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_761x1531round_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_761x1531round_ITEMBYTES static void *storage_encode_761x1531round_s; static unsigned char *test_encode_761x1531round_s; static void *storage_encode_761x1531round_x; static unsigned char *test_encode_761x1531round_x; static void *storage_encode_761x1531round_s2; static unsigned char *test_encode_761x1531round_s2; static void *storage_encode_761x1531round_x2; static unsigned char *test_encode_761x1531round_x2; #define precomputed_encode_761x1531round_NUM 4 static const unsigned char precomputed_encode_761x1531round_s[precomputed_encode_761x1531round_NUM][crypto_encode_STRBYTES] = { {66,224,23,200,251,224,133,12,241,194,97,242,126,218,24,219,240,71,223,12,90,102,159,10,188,19,31,131,125,112,159,19,150,195,120,250,23,148,157,134,101,51,16,170,135,0,62,10,225,242,153,63,108,106,186,167,205,240,10,48,168,9,69,45,9,183,6,209,241,211,50,170,38,190,223,26,40,217,70,229,205,117,19,78,31,117,109,185,137,221,215,190,139,101,59,187,118,242,215,35,160,241,112,72,241,94,88,222,14,221,129,238,55,113,100,247,109,102,212,218,228,57,34,68,221,74,226,255,43,148,226,164,20,216,29,226,198,152,172,130,135,102,11,119,164,63,27,157,123,52,57,4,124,236,18,48,228,168,144,247,71,93,64,115,93,45,57,201,54,215,213,27,66,153,103,176,104,195,174,2,231,49,244,28,178,245,88,166,103,211,114,96,88,208,195,253,190,181,123,112,15,152,215,151,9,103,125,27,127,3,97,69,97,133,115,78,175,189,205,103,53,154,210,101,99,207,103,194,76,160,127,72,218,151,26,77,233,150,101,71,1,214,156,253,206,170,171,126,233,202,218,211,162,149,206,58,54,33,80,91,228,210,202,13,24,235,54,222,92,78,220,150,230,47,142,79,102,87,137,68,63,102,1,10,246,150,50,168,13,117,140,160,79,191,77,87,4,20,109,224,61,186,178,223,118,107,58,193,84,250,219,16,216,114,110,127,245,159,74,237,187,117,174,232,137,246,171,81,128,91,53,46,146,45,131,82,36,67,71,8,205,14,176,210,80,167,13,30,202,120,145,120,230,91,230,75,237,57,255,169,218,81,50,44,173,22,131,20,70,232,84,62,181,203,219,140,94,33,55,193,168,30,96,169,178,81,13,209,94,182,135,138,192,181,40,24,243,130,249,96,33,192,25,93,60,132,42,198,0,110,137,223,111,85,57,150,88,63,164,200,28,209,118,98,139,7,93,236,187,64,56,233,8,54,113,40,122,165,253,135,42,114,50,14,186,174,21,223,19,128,151,254,226,230,251,247,248,222,174,83,156,204,31,63,43,209,123,127,141,197,11,2,254,79,64,142,201,196,199,95,172,210,131,23,194,18,209,109,196,248,124,31,86,8,210,200,11,6,66,0,161,221,222,53,209,150,111,176,199,84,148,69,88,106,34,118,100,152,236,96,43,28,145,245,100,178,47,12,178,126,146,191,219,147,48,231,72,77,37,255,211,70,0,178,162,39,178,233,171,79,199,201,251,211,167,126,8,164,85,57,187,210,166,90,133,204,63,207,213,2,88,202,104,73,68,41,230,115,42,115,121,166,189,8,106,191,24,247,208,195,226,67,100,159,10,204,81,189,218,182,50,20,2,246,242,241,226,175,134,47,234,192,126,21,4,133,195,202,183,114,35,36,96,123,180,24,198,94,215,47,229,79,247,216,41,206,139,183,3,57,47,185,29,145,188,90,85,112,123,57,219,239,110,7,99,102,156,48,89,161,213,214,92,185,44,92,147,218,39,189,85,200,57,12,169,79,124,222,220,175,135,126,108,157,70,16,212,65,39,78,235,196,221,146,134,22,72,220,121,139,149,171,139,142,185,181,101,92,83,158,182,243,86,239,119,60,23,225,190,208,202,249,153,2,213,38,194,151,33,155,112,71,60,105,241,234,145,227,224,109,55,159,252,22,218,66,30,23,179,34,176,225,131,66,50,30,92,45,202,249,52,71,85,124,114,86,241,100,72,25,120,194,75,124,77,237,127,36,64,226,238,151,81,108,85,191,94,70,173,93,67,16,63,245,74,226,196,96,102,8,95,57,221,77,11,110,25,27,158,124,126,102,176,141,8,148,245,34,239,179,79,225,242,128,156,227,91,213,69,6,211,20,153,243,95,219,164,28,20,77,142,3,113,56,75,199,198,89,68,14,121,149,140,154,46,187,221,13,38,159,128,249,94,0,184,26,196,203,15,47,29,177,180,229,106,127,241,47,134,3,85,10,191,24,63,214,213,130,208,216,222,238,166,238,103,150,149,26,171,162,115,234,108,204,55,153,33,52,197,191,120,254,135,72,146,247,133,215,150,184,11,165,215,121,17,2,188,254,104,97,115,20,21,55,229,189,66,116,149,144,157,200,190,172,132,117,254,159,224,192,188,194,129,145,226,225,15,22,218,97,74,145,149,161,21,109,212,97,161,50,227,0,106,26,30,174,161,160,164,88,30,114,137,205,18,250,131,116,41,174,238,199,45,222,144,184,193,24,3,207,29,99,4,107,155,247,47}, {3,193,3,115,2,143,141,53,17,199,207,158,143,21,6,197,187,66,190,73,215,56,20,74,67,212,224,90,252,105,249,7,166,211,60,140,175,143,17,169,207,84,15,246,196,19,54,132,206,85,174,209,206,95,162,75,201,69,250,54,7,7,237,110,122,81,201,154,51,101,192,153,147,49,163,238,138,233,178,227,245,185,252,153,170,65,60,139,57,61,158,51,112,155,10,146,253,57,171,22,221,51,88,86,175,50,32,176,156,197,145,38,19,70,223,230,10,45,166,147,213,114,86,138,15,40,146,201,187,170,104,175,224,49,69,76,223,239,214,150,230,85,70,11,105,53,0,192,63,150,197,106,248,195,68,151,162,152,162,148,157,137,23,164,54,120,126,247,203,114,175,252,210,162,213,74,84,62,246,186,132,254,165,40,212,102,58,235,65,73,51,226,111,178,18,128,169,168,161,184,142,54,46,124,23,201,19,156,224,43,246,41,187,59,101,162,13,120,132,25,242,126,206,73,99,109,154,85,23,96,220,109,173,122,99,242,182,22,114,55,32,241,251,255,237,104,223,22,10,56,9,72,180,207,161,144,157,145,207,130,206,142,101,115,132,214,95,188,172,123,176,93,104,142,9,170,214,227,158,60,81,24,225,234,231,200,168,163,207,162,132,212,44,228,65,53,69,197,26,119,187,136,101,20,189,222,153,99,113,221,75,227,144,116,24,244,95,7,76,133,160,142,17,227,250,148,231,118,134,41,110,252,72,180,79,180,25,161,36,94,150,148,22,244,216,199,53,134,92,240,24,56,54,117,154,147,247,5,111,30,25,159,109,109,41,0,35,217,119,90,188,70,69,241,102,193,247,211,77,16,166,132,106,226,90,182,165,90,65,101,153,75,207,84,93,160,202,101,104,125,37,39,151,97,221,14,23,52,10,179,144,167,191,104,151,53,51,28,123,230,223,96,139,162,254,89,74,66,49,135,180,48,75,211,115,5,40,34,148,32,49,250,124,161,173,51,213,40,72,45,210,65,148,236,15,122,201,139,206,10,217,95,90,66,143,233,135,126,238,210,167,144,147,107,130,248,181,248,183,121,55,103,84,23,232,112,103,1,163,68,191,27,52,168,125,114,81,200,164,149,61,244,44,102,73,129,147,215,203,9,31,85,147,212,167,234,155,38,171,82,74,16,212,126,151,25,44,97,215,110,183,216,44,157,23,116,75,46,113,212,186,187,163,10,173,146,155,18,242,124,192,228,206,222,40,33,34,142,166,232,163,238,122,44,214,152,252,152,58,23,176,184,136,99,59,25,239,160,156,27,45,171,58,225,95,13,142,108,209,135,172,8,98,164,155,241,220,42,143,255,231,4,32,15,111,179,128,216,241,71,120,212,116,59,156,183,50,175,8,166,102,68,148,0,105,8,234,83,247,176,141,113,144,105,1,125,162,42,206,0,6,110,103,80,137,70,219,57,206,242,137,2,49,89,254,43,93,105,233,138,185,208,71,25,161,124,100,190,182,248,164,254,83,166,76,97,213,131,151,249,193,153,184,182,125,255,82,52,24,103,41,137,175,59,129,254,37,102,57,58,159,15,236,113,39,247,59,37,224,30,222,22,242,116,91,193,192,81,92,165,155,214,47,140,7,8,198,236,73,152,221,21,39,140,40,196,67,160,8,205,233,53,95,68,45,210,185,42,162,212,166,31,125,221,173,216,176,226,112,245,222,198,222,203,26,124,210,193,246,173,73,163,73,172,124,94,57,143,173,12,155,102,75,25,83,205,147,35,23,86,218,151,137,25,32,58,17,111,120,77,102,191,198,9,76,21,239,130,155,206,96,221,92,225,157,123,149,131,86,43,32,34,43,236,91,61,22,116,72,94,62,15,150,142,207,239,236,158,205,19,205,2,41,45,215,121,30,64,25,40,218,28,151,205,74,141,77,254,224,170,73,126,142,23,100,67,7,44,238,0,131,198,66,220,126,210,65,18,7,203,150,109,160,41,195,64,249,228,106,95,238,43,144,98,123,253,71,162,23,140,37,25,68,30,169,6,169,249,21,128,176,196,111,249,15,231,6,8,196,125,226,30,11,43,49,176,49,52,94,162,247,78,208,158,69,101,120,166,176,53,17,254,162,246,52,79,44,250,76,17,165,182,163,84,171,175,158,160,74,240,132,142,200,116,108,22,236,29,196,66,69,0,82,200,134,54,174,124,5,39,195,61,191,162,160,58,224,139,195,83,3,239,217,150,57,181,32,8,142,34,68,241,198,47,176,225,45}, {39,189,223,11,49,167,183,179,128,203,73,243,121,225,30,131,188,85,172,105,210,35,29,177,79,202,5,83,99,177,84,48,118,190,55,17,99,213,59,244,170,26,162,200,224,204,199,217,225,206,141,41,183,69,114,254,180,67,178,88,77,66,187,254,83,10,171,68,177,221,218,78,69,42,184,195,41,243,103,173,127,94,248,142,42,234,86,23,181,91,58,105,224,128,42,151,205,114,29,18,128,142,55,87,12,149,162,157,83,194,126,96,53,214,248,244,251,91,234,68,179,189,15,33,190,122,54,6,59,111,40,35,110,163,146,210,75,149,175,125,113,132,223,116,71,191,79,228,60,230,69,198,136,5,184,84,245,209,112,206,224,195,137,13,114,186,43,176,197,170,186,239,40,61,41,242,151,71,28,71,194,79,102,88,195,122,20,205,11,87,224,70,107,56,241,155,12,94,129,92,131,250,65,161,124,200,23,200,174,227,206,155,89,66,43,95,114,139,36,111,52,246,213,77,48,147,64,222,55,250,226,145,188,252,212,106,231,75,79,144,55,205,13,22,149,4,197,107,135,74,63,131,168,139,118,1,240,191,6,197,88,23,31,45,108,146,116,215,123,54,231,34,158,219,156,220,43,108,84,82,96,241,153,102,234,194,217,215,27,49,13,181,28,31,3,225,187,223,39,86,55,166,211,85,4,147,248,45,2,210,213,149,56,169,183,21,153,46,8,114,23,118,56,15,173,7,107,194,109,196,213,249,175,30,10,149,88,157,219,164,196,105,152,158,29,189,245,165,242,45,5,236,176,98,16,239,2,250,25,194,41,205,22,32,82,126,212,211,229,74,53,67,220,212,72,179,157,142,155,195,172,112,9,236,77,166,213,136,215,134,13,220,192,105,220,106,232,63,219,201,232,132,133,229,214,245,119,93,151,203,210,12,177,197,213,0,52,180,245,69,204,49,167,134,99,30,63,139,93,36,37,119,58,168,167,242,227,31,2,182,251,136,79,250,81,203,64,105,229,200,38,79,162,251,215,165,50,222,107,233,20,60,24,186,205,160,208,18,226,173,167,163,45,235,201,94,35,101,8,228,69,185,90,18,249,106,103,20,91,224,177,49,1,250,33,66,12,67,239,169,53,147,46,93,250,107,204,90,124,64,60,248,238,164,6,66,38,157,14,112,162,183,241,16,95,76,10,250,48,117,75,77,88,66,85,131,25,226,26,54,106,6,162,241,240,111,130,41,233,116,23,220,232,208,122,241,189,158,102,242,197,7,203,219,65,180,14,240,173,70,237,157,194,221,20,186,17,148,114,16,246,152,132,184,111,34,253,216,47,7,123,190,21,144,120,84,159,196,159,110,175,69,194,203,36,143,182,103,243,140,81,70,194,21,168,54,121,84,135,7,239,218,199,74,13,242,121,128,28,218,67,118,209,25,133,88,229,115,198,123,97,13,230,89,219,45,138,239,212,180,201,176,123,22,208,205,76,157,80,155,11,77,250,206,140,196,250,77,161,65,6,152,118,251,57,20,198,179,52,29,163,85,12,225,137,158,189,136,158,219,81,80,9,32,217,166,60,242,163,7,28,11,165,109,164,110,205,81,55,253,253,111,6,176,41,17,254,63,217,219,22,51,159,70,7,153,78,226,235,85,90,23,230,54,103,128,140,125,118,3,79,135,0,165,184,8,30,83,218,85,165,181,229,84,8,146,159,33,43,132,79,128,76,105,148,82,194,214,177,134,28,140,101,20,117,109,48,83,198,91,243,72,249,71,150,191,0,61,124,196,51,156,46,64,191,191,84,17,246,242,173,253,86,80,99,169,58,229,63,199,226,111,5,248,90,166,72,58,127,93,157,181,141,51,142,28,83,237,20,21,141,102,105,131,128,250,231,109,108,4,40,104,231,141,160,121,176,152,12,174,72,211,69,132,141,51,47,187,183,51,183,135,82,201,59,22,219,114,18,17,161,178,224,200,185,213,83,225,195,167,218,168,182,92,81,71,228,237,133,222,125,212,164,50,50,255,85,111,212,171,136,107,91,16,174,237,85,19,231,72,74,253,13,83,127,94,244,76,87,20,231,90,204,117,146,209,39,179,58,160,96,254,137,166,61,233,244,142,28,104,138,56,70,200,165,223,169,58,215,165,117,236,26,49,173,225,232,43,73,95,216,191,74,226,50,68,22,209,52,23,10,234,236,250,60,115,42,63,218,166,43,131,91,50,29,106,141,126,0,243,222,80,215,31,129,39,6,45,45,53,115,103,174,248,49,83,32}, {157,209,193,198,227,253,67,95,222,227,84,35,13,104,74,35,111,94,175,33,182,120,111,121,2,239,127,4,111,95,210,147,238,252,80,9,76,13,71,178,76,152,227,126,142,97,159,191,254,29,23,171,164,75,40,213,251,197,45,101,228,187,76,87,12,42,244,177,251,170,155,103,140,95,90,146,208,36,39,211,222,220,97,30,229,199,79,198,102,55,123,62,93,33,131,126,63,150,213,160,137,218,3,80,100,164,87,49,34,184,78,49,18,67,176,177,25,228,24,25,49,9,151,234,248,82,48,159,59,227,53,83,211,84,141,87,245,238,236,36,203,214,181,249,118,60,219,173,126,205,209,249,224,216,229,50,239,16,145,46,9,40,3,125,197,167,52,77,249,45,254,70,82,44,200,207,121,245,202,240,100,65,16,76,218,177,149,14,74,198,220,248,62,31,230,106,97,221,99,48,132,124,120,149,24,226,232,35,15,251,103,19,63,183,213,176,171,30,237,102,90,219,249,118,199,255,118,203,247,165,48,2,172,206,88,241,238,221,154,210,27,217,231,235,61,46,39,123,144,206,252,18,56,91,143,131,201,47,7,186,229,84,110,38,39,162,59,71,155,18,150,207,55,222,23,213,117,144,140,183,226,22,142,3,90,3,237,47,229,104,27,114,179,132,214,78,202,73,106,237,95,28,85,26,22,132,97,183,91,12,175,80,65,230,242,41,81,54,183,196,149,231,41,104,144,76,207,71,89,186,143,160,111,146,212,4,250,209,120,75,97,211,173,37,137,197,167,188,201,164,33,1,167,46,191,182,40,223,69,114,183,232,63,94,130,252,18,250,245,143,196,40,221,99,24,30,170,159,174,96,132,181,6,56,76,31,81,172,102,208,18,16,14,170,6,240,151,144,107,88,237,230,163,172,179,103,240,205,83,160,5,43,162,168,144,147,228,54,243,199,109,244,217,173,149,188,171,178,218,67,17,155,130,96,46,226,181,57,243,158,75,68,231,66,192,24,82,161,42,159,108,66,241,147,105,247,227,146,185,196,11,214,13,56,150,227,179,145,120,155,26,72,153,190,46,141,62,72,73,24,208,48,15,195,93,1,88,134,74,96,48,213,208,240,107,31,202,85,81,226,116,126,6,203,31,39,109,47,21,148,109,126,125,231,128,158,35,158,130,200,228,247,127,152,243,3,195,211,85,206,26,88,120,81,113,46,92,184,127,79,77,146,248,235,174,219,64,101,133,230,6,182,80,27,249,181,18,251,7,88,84,158,66,191,170,83,230,226,43,206,245,138,231,67,2,207,237,181,167,136,69,79,65,234,240,228,143,232,200,117,6,132,113,165,5,147,188,11,9,53,20,33,253,225,105,3,212,229,209,31,28,54,11,26,18,146,62,105,110,129,74,25,127,37,180,109,165,168,225,84,238,42,233,115,248,244,147,214,12,143,211,156,83,248,221,183,53,103,37,95,165,8,110,83,74,46,139,41,42,163,64,128,144,123,158,167,105,93,77,12,42,68,36,76,92,137,255,67,115,154,130,124,116,250,111,101,156,189,212,195,185,216,31,67,51,13,151,184,53,106,238,39,241,244,102,191,114,76,174,160,21,214,163,195,69,196,209,49,42,218,234,134,64,3,95,192,184,50,198,246,140,186,95,134,237,200,42,119,83,145,101,176,27,113,4,151,227,198,150,184,99,45,67,150,180,58,237,113,62,239,198,82,106,3,27,188,69,64,82,212,198,95,20,246,140,193,67,214,159,218,47,48,25,238,48,64,207,151,157,187,50,173,231,155,217,248,168,243,163,151,87,130,75,101,215,153,224,184,233,200,81,76,223,122,30,98,69,236,161,14,165,14,171,186,236,232,18,78,205,225,164,32,23,111,131,185,51,252,218,40,2,248,8,241,248,194,242,158,154,74,61,255,196,87,177,129,231,231,50,41,40,189,3,101,218,187,21,144,93,153,115,44,120,62,84,150,118,118,143,159,79,154,82,38,142,216,121,22,145,27,72,13,42,195,145,19,14,4,19,114,108,113,11,223,18,91,35,92,179,191,102,221,56,152,14,88,130,11,229,239,119,49,253,249,30,112,168,76,191,68,241,204,46,83,115,127,245,65,17,90,129,193,190,14,83,174,53,108,242,49,23,22,57,166,120,171,48,65,254,111,84,16,61,182,64,60,60,122,64,115,8,102,241,144,77,238,239,76,27,118,29,153,30,165,228,123,5,152,234,196,240,137,41,123,53,160,213,73,78,143,123,128,151,111,63,156,3}, } ; static const int16_t precomputed_encode_761x1531round_x[precomputed_encode_761x1531round_NUM][crypto_encode_ITEMS] = { {-29418,4170,-29733,5242,6719,-25897,-4454,28182,26204,-27719,25973,-17510,-4764,14489,-29638,318,-3140,-2097,11881,11790,1287,-27028,15819,19052,10978,5967,5781,-22669,-12780,-24218,-21118,2973,17615,25402,5181,-8164,-14390,-12731,-14043,-29994,31982,7477,-13160,-22804,19657,-28206,-16749,29370,-20524,19650,24539,2240,-12952,30115,22090,9824,20717,-10361,-13563,3577,-26317,25726,623,26335,-22778,-6942,30753,18944,-21167,-16891,8372,32304,-4419,2078,-26674,9737,-4679,-973,400,-7314,17258,9798,-3569,13753,-15585,-15765,-20696,6158,-523,-10878,23605,3910,-22869,-8903,22514,-15923,-454,17548,20742,31657,30571,-64,-19940,17537,-17282,-29010,-3917,32747,-902,-15133,-28229,22268,11877,5946,11906,9003,-2409,2029,11686,-13147,22837,-16720,24412,20449,-25564,-13135,10131,-11919,3755,-24331,495,-15465,20073,24037,26808,-5507,17092,-24619,-6757,-13041,-22554,17482,-14855,31288,10282,-418,-15555,24431,-3194,10958,25902,-12644,-26962,7902,-19677,-15118,6956,-1100,-12636,15163,4654,-1181,3082,-522,27141,-8554,-26143,364,439,-1000,12894,-25334,-20469,-23760,-3537,21308,-7486,6159,23679,11777,-21889,30418,-14589,5629,23948,-8648,15561,-18291,-3977,-23093,-24471,-7916,26389,16940,-28409,29099,-30375,29184,25942,-24416,-22251,-18515,30788,-17070,28143,30604,30621,1993,-16308,-12820,32434,-18340,-32669,-19120,-5879,-7651,9218,-24165,21966,27206,6614,-28132,-14521,25837,-21014,-3152,16752,14708,-26945,2339,29435,-4698,-11679,3802,20537,6305,32453,21579,-14420,-26814,-11846,-20620,1204,27198,23000,-11694,-11759,-9347,-901,-20936,7376,15981,-4803,-8204,1515,5995,15110,-121,8379,4360,17180,-12667,-29407,-5359,24691,24800,4132,8691,21946,-4068,-6595,24513,28230,-18272,-5494,-28367,-11897,31266,5062,-13753,-21582,9844,28286,-26906,-18096,5033,25067,-25257,-12833,25298,16212,-30679,8660,-25973,10478,-6388,-27612,32657,-3846,-30127,-9600,11929,11522,7071,-705,-28825,7813,20885,-5319,20590,9128,-9510,-22870,26376,-17430,-23083,9731,7703,9246,15483,28504,30141,-26383,28211,-8705,4270,-11804,-28533,30422,-21250,2470,-19235,6884,-15801,-17771,-15700,25721,-21706,-23574,31259,-9057,5032,-2275,31230,19546,-14247,3169,13605,-6265,28032,14629,30781,-5873,11108,23109,27912,362,3970,3207,3872,20521,-29766,-16550,-1899,-2313,-14170,-24009,-254,-31726,18030,32345,-12152,-3967,-9798,-26537,24912,-15199,21328,1716,-23018,-1074,10476,-20284,-5643,7784,31361,12619,-16281,-4865,2041,23655,-32532,9832,-291,16732,-25424,27761,-249,11415,23215,-14214,16049,-6770,-18230,-28163,-10362,32485,-14525,3157,-13447,-27758,-19992,23780,1873,-5569,16235,-15635,-18451,-15719,30348,-23220,-1522,19008,-1353,21449,19959,-31416,-30878,-11544,-24179,16788,18268,-19470,-15973,26220,-29523,15730,14911,-21992,-22985,-29296,-868,29410,-15400,-2415,31909,-1095,-1963,10195,17450,25196,17723,-29671,-22985,-25366,-30473,15350,5745,-30295,-7530,5864,20562,-28429,3903,-21088,15371,25697,15861,-5380,-18898,7802,-21413,-22430,32551,-27618,18407,-14267,-31782,-32548,26685,-8809,-5031,-6790,6252,-27499,10028,24373,-30852,-25723,15681,2983,16734,2365,-12781,-21298,-16155,-18821,-25040,20491,19551,-17059,3887,-15797,16998,29013,28958,23574,9188,-27323,-20273,-25607,-25217,-2747,-32061,9717,3775,-4616,-29531,-16912,-18941,8657,18755,6912,4949,9015,-6245,10641,4278,-17958,29426,18680,17172,1958,26583,-22746,-10664,-4026,1040,16557,2146,-31263,-4379,32021,-17844,-31861,29029,9702,-12007,-23686,32047,6098,-30203,18127,18063,-16126,-10387,24807,-11240,21759,-30189,13077,-11955,-25634,16681,12127,24499,26989,8726,30212,-7615,-18992,17829,-14770,-31696,-12257,1653,-24674,1465,30472,1015,27043,-27639,18378,31388,-2663,-6921,-10085,9600,32324,-4531,22427,31012,-3937,-6516,-563,-15580,22567,20022,-461,-11074,-10716,7248,-10383,32174,-23007,-31219,-32425,-15212,-28717,-8418,3176,-28960,-27244,-29230,6693,-2864,-17824,-640,1055,28895,-9614,31079,28313,-11234,-13584,-22957,-18075,21514,-4984,13434,12390,-11669,21592,-21571,-29421,-31110,19248,-3868,9923,-20625,23313,27035,27579,-25367,-25461,14217,-22181,-27401,-9930,-4570,-25116,-15916,9255,-14780,7269,26398,18813,3028,6133,-18275,-8231,-4178,-27119,-9592,-27734,32466,31411,29919,-31705,-27096,-2743,75,-15164,31155,23918,25385,3102,31050,-16259,-12516,-19561,-4335,-22401,-24241,19532,-237,-29906,12740,-24778,-2386,30275,5758,17988,22389,7951,27641,6318,-17691,-1235,-24628,-17447,11688,22941,5546,7984,-19472,-8969,-3735,5777,19252,32600,17696,-29055,17454,11908,-1331,21515,-19136,-12001,-21077,19219,-8875,17220,-30949,-23774,-24692,-12485,30917,-24816,28017,-26408,12939,-19276,-1520,24976,14873,18520,-12765,15736,44,-17965,8856,29694,9391,31850,28388,13929,-7106,-5656,-26751,32484,30790,26900,-3269,-2513,-30311,10202,13074,28711,22120,-2379}, {25835,-1791,-15762,23160,-19011,-4257,15256,6624,-13706,14057,-4085,-27005,-25432,-2705,31506,24864,7309,-230,-30685,-3178,-16056,103,-22776,-29934,-9450,-15842,28407,-10605,30139,-14551,9021,31851,5228,-2847,19307,16936,-12713,-26762,-3840,-18774,-11192,-158,-23624,-24512,-4813,31390,-1246,-7913,-17730,30776,27619,2127,-19204,31052,27374,-8855,25516,-20945,11993,-19669,32744,-23696,-26374,4353,32755,-10641,28992,-11369,-24888,21311,14229,11318,-6512,-15581,-31660,-25250,-8889,-5364,-9967,16500,3605,22826,7561,-9230,14050,-5896,26181,130,-1357,-5860,16248,1966,23728,-32243,10800,27690,325,-29591,-26051,13587,13284,9318,-22494,-28064,30144,26392,31346,29415,1752,-13666,30968,25665,-27041,-10591,23379,16367,12942,-25865,-3831,9089,8284,22498,-15581,9073,29098,9626,-27369,24931,12582,-10707,6596,32510,-32755,-2518,18762,-6778,27745,-24833,-4374,-31800,18112,3924,32132,-2054,-25208,-26573,12290,9349,-20778,27908,-18756,30979,12472,17113,6220,-30425,23255,-876,-24586,-22964,16281,-11474,18840,-9851,-32520,-9104,23324,13284,-3597,4151,-31560,2668,-19421,3408,-17409,31566,27602,14149,-19001,32574,8508,846,25628,14832,32266,15766,30143,-5730,-27630,11933,-23405,18023,13657,8577,11519,21735,-18830,15085,17107,-31243,31734,19740,-9507,15741,11572,-11965,10254,-11920,28267,20506,26049,31913,19019,27958,-1889,906,-19510,1181,27533,32428,23492,-17499,-26484,-22770,20511,27497,-8289,-21196,-32041,-6381,-11206,1213,28113,30098,19495,-27401,5870,14702,-31453,-31354,13453,31036,-12273,-23249,27994,-22962,-6985,20186,31511,-3272,-21595,-29013,22396,22115,-21838,-1460,16410,-12337,-8254,-20790,-26312,14703,18745,14611,-14569,12062,23714,26122,-5757,-24531,-15650,-13972,-25802,-17419,-9743,15121,-5056,-7940,11579,-29304,1950,-30510,4179,-5606,-8310,25184,-2628,-24022,-4622,-32312,-5288,20576,-12582,-13159,-15924,4900,24903,-23105,3818,-7254,-1586,12473,15509,19380,-21273,-19856,-8439,-23605,30141,-29893,19976,-28751,21621,4028,-24807,-18407,-16912,-18576,5976,-13120,9838,27636,6787,1744,-8039,-18815,-3474,21793,-5805,7620,-19945,-6973,30332,-351,-11168,-20036,23426,-9098,-3346,1164,10067,-20557,-11197,-25575,-10419,-4558,-23863,-5784,26992,20691,-12501,-25422,31275,-27731,-14879,1652,-25707,-6510,27870,7723,-6096,18524,8044,-2224,28258,23275,1640,22226,-7707,12059,-14117,16784,-30655,23383,21861,30095,-27981,29292,10797,-22654,10421,24590,-6886,-8776,17391,-13,-14700,-27151,-7709,26563,32060,21090,1278,22076,-18447,8557,-23184,290,-12836,9821,11537,-17378,-15432,-5466,6390,-28589,32647,-6182,31891,-3048,27036,-16055,507,-6610,-3222,-987,-10875,-11415,-24884,16254,-4585,3142,-18137,-6921,-8352,-6741,28200,2182,-27459,14321,-7536,25899,10001,27908,6981,31948,-20116,-31997,13071,27592,31135,-15465,22628,-6294,21170,-14928,-29125,29058,-10566,-25049,16889,-3437,3893,-10466,-8733,-23905,8430,-11477,-21709,-1832,24582,-11642,-18661,-17356,-31754,29393,-4542,15309,5795,-24746,-3906,10192,-15681,19650,24773,6125,-16026,26071,856,-3489,-11515,8181,28372,-351,11789,15375,15749,3567,32752,31094,27912,-26676,11272,-15946,14777,-26796,4306,-4309,-5664,10718,6698,-15195,-21822,7067,-12779,13214,-616,-26860,21304,-17178,-29098,9869,26070,4462,11249,-1978,15374,-17931,13763,-28548,-16150,-6315,-3457,19813,-31869,3967,24029,6075,7418,8631,-23522,-19364,-32380,-30433,1543,24575,-15837,5851,9148,-3562,-10746,19717,27563,-21362,-18437,-20636,1689,-202,9911,-5491,-12917,-27867,21803,6493,-24362,4471,4149,-6732,-8331,-18026,26116,-25484,18305,-32082,19167,25416,32692,26529,16584,-27019,-7993,24249,-31015,11469,-19113,-12974,-24475,20538,4579,-24413,25798,-11192,24524,9494,22576,-18798,744,28384,28634,-3980,16274,16799,24999,-21708,-16039,24024,32532,5014,10429,23937,3281,14786,-11711,-32367,-29619,11327,22383,4882,-15645,23492,19693,-13236,-3663,-5321,31178,25538,22870,30779,-27836,-27142,-10640,-31039,21901,4199,27973,-5849,12986,-2327,-26714,5811,12420,-6820,24283,-26626,27468,30532,-22260,2369,-12399,29858,-2628,15670,-2153,-25134,24619,21100,-14029,-32423,-12348,-21657,9627,-31382,-11682,30813,-32469,-16847,-10946,21240,-32071,-22967,-4294,23814,4477,-20800,10779,30586,23047,-31225,29245,27366,-27746,23433,-2105,-29353,2714,-27856,11705,19019,-18756,-29706,30279,28605,17458,31825,-20956,23195,-24330,-22002,7455,28352,-5315,-17661,12203,21566,30564,14644,-30337,24655,-1957,30703,23360,3999,-31384,-9375,5502,10752,7692,-2211,-16178,19258,-32561,-3060,9429,-1020,-11086,604,-19606,-2597,-22138,18654,13675,27561,-24651,21299,-3321,20936,26523,21119,-6942,24706,-3699,19697,3657,-19146,-22198,-25707,3761,8828,-18194,-19810,-14307,22686,14023,-20933,10273,5552,6674,-32490,-18196,20576,-22717,16291,-11039,-7930,-8390,-27447,26905,-2082,-24157,18873,29650}, {-20442,20983,-4660,-2779,-25090,5708,-521,-29337,-12717,-31286,-29349,-7190,4437,-13754,-4962,31113,-25313,12480,15257,734,8524,21893,6018,-25555,-27825,-16689,3327,-1919,22719,-12516,-12343,25876,8656,-20233,13529,-11723,-7410,22539,-20083,29004,25097,-2626,-13417,-24658,19423,26814,5403,30523,-5526,8735,32115,25818,-27600,-15193,22653,20976,7709,-18426,-14506,-3203,-11109,-19619,5954,-25297,2166,-19494,5125,9365,-29311,20430,-13310,21758,19492,3795,10540,-22638,-5527,8747,-25660,18281,7648,26881,20025,-18581,-9775,31235,-24923,28440,-2544,-29510,-7243,5553,-16806,-20981,-23538,12322,-10198,5872,-31245,8176,-12338,24181,-6513,6412,12019,27134,-17341,14162,188,24657,22643,1259,7149,31026,-25938,19101,15866,-13667,-33,17408,-1262,17783,-15054,19077,29397,-1650,32524,8716,29476,-19898,-8748,-23865,-32473,-21742,-3686,28722,-32705,-31315,618,-1077,-26169,-801,-3181,-27860,23637,-20596,-22271,-12458,-6787,-28183,11265,-9172,-16935,9549,2216,25445,16581,7050,-2698,20409,5150,-10353,-10221,-17810,-29862,10883,-9665,-8053,31941,-11036,16791,-13824,24891,-5665,-11983,3792,-31535,4600,27133,23250,31311,-27402,-27250,-490,2745,31960,-23627,28126,6057,22340,-25075,32073,-27734,-13804,-3450,1911,11230,-25308,21050,22844,-6992,-21586,26924,29475,23748,-23024,-8815,-5392,-16472,-3344,26760,15920,14413,22506,-15620,8666,-9653,-10010,30551,-29325,20575,-19401,-27005,-15434,1240,20141,-17396,-13636,31388,18425,-23008,-22505,-21506,-18983,-29816,19384,-26145,13480,8447,-28804,9609,12421,16952,8915,16968,-16421,-22346,-18459,-5076,23762,-19842,-4340,-21600,-19806,22473,-5946,30077,-24987,25185,-17599,27694,-25452,-15007,28780,-29323,-2290,-17822,16162,17904,18604,-5273,-19141,-25377,-19805,23101,-18755,-2650,-26276,2618,32455,24085,-22991,-20560,-15244,-12517,-1350,-19819,27205,-28286,18936,-2945,-25576,14930,6887,32230,23059,25603,6424,-10239,29772,-22011,-1416,-22875,29619,-12349,-16572,-6604,-1418,11196,10583,32325,-10372,14754,-17309,-15236,-17807,-8782,-31918,-9796,7039,-4681,-14784,12063,17458,24447,17614,28510,31200,1943,6317,15277,20513,-11250,6384,27831,12788,-13218,-8180,-8243,-15619,-32043,-27656,-8076,-1854,-25769,2305,-30559,11778,-18535,-16524,24231,-18024,-2221,14168,20603,-12809,141,-23683,-12542,16965,21772,-14494,-11604,31993,23022,-24118,-1993,-23226,-22517,-58,-21423,32514,-6903,3119,-16154,31470,3160,-3308,-26287,-21377,30847,-15051,24190,-26477,-7668,28055,14414,-19208,454,26015,-245,5240,-26972,-26383,-11040,-15210,-18951,-9543,19359,31624,4912,8897,-24189,18572,-12994,-12203,-22012,-13553,23278,-7544,-10047,19996,22244,-28835,-2054,-7230,2860,2624,8274,-7639,24429,8865,-26657,-3419,4925,-13141,11371,10535,6117,17130,-1171,14000,25429,-23031,-8224,30790,13554,20771,-3086,-1700,12303,12266,-21417,31980,12104,-13161,21670,710,20792,-12911,-10265,-19181,-7377,-20244,-12173,-19455,-30648,-26683,828,-20148,-26393,-1925,13095,6073,-26985,-2431,-11065,14540,-28798,15215,-21969,-12744,22657,30256,15865,22694,-25793,-1257,-3877,27716,-303,-7406,-30146,-30822,18695,-8089,15909,-11261,-15393,8871,27906,-22469,-30314,-1463,-1359,22661,-3576,24094,-32520,-18929,-4357,10362,22387,-26566,-9785,15614,4970,28055,15132,-26320,-30787,32403,-17152,-291,20900,-8060,-19247,17250,27746,24382,-7891,2422,7295,-23017,2131,24327,-27202,2475,22910,30075,-16772,31688,28061,-6892,-6912,-12922,22113,-11158,14575,-10473,-25872,-1672,-1311,-14507,-5633,10203,-26610,-19370,17061,-14184,28747,-7585,32766,10272,629,3295,-4167,-5535,18440,22130,-25976,14775,30599,-13576,4283,25299,24382,20850,-25649,19978,17071,-19988,17587,24028,-22900,-31682,-11596,-20450,-17483,-30090,-31961,-13457,25265,5361,30698,-19978,1632,-14533,-18125,-20512,18104,29656,32317,4413,26220,-4,-12317,-28589,245,6456,-23544,-2429,30709,-7670,-5495,24588,-25902,-10446,26972,-9960,4494,4964,10250,-6181,-896,3949,-7334,-8578,-19671,13714,-17117,-11121,-32742,-31461,-2640,31343,-20395,32689,1545,-407,-7264,-10109,31661,19920,-32604,2316,24688,-9651,-8692,11921,201,23177,9388,-27573,-14690,27448,-27521,28952,-29430,22177,8751,-91,32146,31357,5969,-30605,24785,-27764,3043,-5901,4462,31851,30922,-23754,-6588,-2287,21861,-2550,-2678,-17480,6828,27805,16531,-14556,-10749,-18108,3423,26315,20383,-28369,15173,-20368,8401,29223,-30453,-7710,-19879,20565,6174,23601,-28290,-17129,12658,-22847,24555,-21240,-27570,-19114,19915,-28084,13370,-29164,8583,4348,19968,-15766,11908,-28593,-20985,32356,-21911,-14501,-17379,11635,23225,21142,-7710,28403,-27623,-2715,-6054,-15717,-4633,-26537,25399,-13817,-23372,18097,-31262,32104,-23251,14842,14553,-30794,-6893,-19312,-25317,29110,5207,19848,-12421,-18940,23302,18350,5827,-19283,-15707,15,-18564,-19874,4118,26172,-8118,-15584,-8263,-20775,-16413,22130,7227,-354,8563}, {-28867,30541,22036,-13373,5957,4156,18968,8085,-22813,-25068,2814,-21901,25805,4155,-25429,23640,19088,6405,-10907,27334,18553,11757,-22301,-30687,9010,-22055,-581,11503,-17052,-19879,-972,-27291,17058,-30387,30046,6983,195,-26988,30508,-619,24389,15887,11985,11242,-22520,6443,15545,-14465,-19172,1036,-4474,14331,-4480,-13765,-30406,16247,-6244,-489,19295,18915,-30154,18017,-1063,-1983,4470,25746,-5947,-19148,30106,-20231,14086,-5576,5691,-25981,-4907,-625,-25034,-21730,11917,-24492,31294,-23115,3194,2091,16708,-26377,4316,4634,16028,31696,-5343,25454,3470,-3489,925,31462,29288,17439,-32365,-31314,1285,2247,22603,-6633,-30249,-10901,16323,22325,2403,27140,12258,24091,11505,-29992,-5668,-31809,13631,28155,-4193,-24850,-17870,23177,17904,13102,16237,-15070,-22085,16939,-8805,-28330,-10629,-22877,-27748,24929,-6836,-8737,5705,-3559,-1945,-5962,28948,9340,-7819,27413,-20543,21672,6853,22928,9480,-13305,20353,868,-29316,-22824,6284,16705,-18687,-9897,-3019,11617,-19808,25916,-19095,20683,-28325,16454,-26600,21907,-1480,-29352,-29789,-285,-18508,23754,-22565,12066,-26758,-17846,16870,-24859,-10566,-23680,25060,-1675,30491,22792,-26189,4988,25485,-3729,13592,31272,-11432,-8359,23002,1548,-31931,-24579,-16241,7006,18479,-8820,28776,7116,-2518,25922,-12680,9763,18911,24672,-24946,29532,-15305,30789,24090,24661,-22391,-20106,13907,19216,-16907,17162,4527,-14270,2779,-11991,23853,9295,12935,26092,22767,29543,-17105,8910,-19597,18428,-5316,-30867,25812,-11281,4289,-12936,23376,-30289,-32632,27080,14526,-10438,28870,-14182,21900,23897,-31288,12409,22449,-32254,26655,-26286,7081,1286,-20236,-19533,-12175,20717,-31687,-17822,-7317,-10773,-24603,-1824,-32038,4401,15280,-31283,-17925,-16060,-16178,-709,11482,-3042,599,13983,-26194,18652,14104,24276,28405,-25894,17803,17066,3939,-17159,-17262,-29226,-3172,-13530,28840,-27730,-13754,2254,-4162,-6683,-8401,-22709,6280,15824,-11318,-15340,30782,5464,-19391,-6052,13220,-6195,6521,19224,-8735,-30700,-21706,-28576,-31900,14103,-2610,26341,3782,6137,29506,-7837,-17781,15380,12669,-9027,-18732,-29676,-27797,4641,19047,-1914,-22912,-30199,-10909,-279,25915,-278,-1720,3914,13296,-25516,23352,-17253,23040,31986,-804,-13997,23882,26806,-20190,13613,-6331,2182,-25616,-1694,-8130,-30840,-26443,2337,9437,3847,13280,29515,-10378,19484,-551,-17189,-16438,17295,20117,26002,-21428,30368,24735,-17909,10040,-21835,-6366,-16560,23713,-1463,20210,12614,-24551,-10802,24553,-30108,14016,28585,27480,10462,-11566,15024,4319,-4838,-13181,25405,27379,-2013,-28804,30714,-27037,-4801,23741,-14734,28584,-17301,28359,16001,-25662,27788,-2503,2172,-4882,4090,-15000,-30036,-15101,-31925,-6122,8248,-27632,24971,29004,-25271,5393,24435,-8959,4240,20963,21620,2621,16241,-11599,-24483,-20404,-1954,-1497,22242,16073,7555,12921,-5464,-16898,-19189,10291,4451,-2821,-20950,-6486,24520,2395,16773,16144,15086,-13831,-6037,-31100,15855,22081,-27133,12427,-18960,-10460,-30183,2057,8723,-6443,26082,1756,-23745,-9950,-15369,1713,-13130,22862,28464,18249,-19008,-25529,25532,-20666,15090,-16964,29765,4058,-11902,-8522,-17794,-12725,-30116,-26850,2909,5319,15309,29190,-8757,-24552,32234,-24777,13992,5776,-8242,-2051,-25873,-10175,-8343,21438,21368,-29220,15256,27360,-13372,-4473,-29439,-17503,27790,-29010,-13232,8561,-18219,-24965,21308,5223,-21213,-29433,21018,-26953,-32098,-30003,-763,-10509,-21917,25230,-18790,6499,-7675,23465,-24770,28250,24009,-10011,29481,-19680,-15577,28654,-5544,-14325,5863,31036,-24741,10639,29929,10634,15159,-10448,-7982,-10808,-193,7821,2185,-17284,-5244,-8993,-28518,9956,-24610,-13020,32497,-4984,-9317,16956,-7570,-18463,-3138,13558,-21974,-30477,21196,-2209,-1896,-5084,-8716,-10158,11343,-17905,-21970,9350,21906,-29521,-20960,-28069,18726,-10796,26821,-8556,-6072,-26901,-19654,12770,13604,-21215,-26620,29179,-18504,5392,1489,-24584,-7322,7563,-6009,-22979,-24972,-17824,-3868,-6324,28340,18509,12681,19430,-598,-24691,-26066,-1569,8424,-23656,-32060,19483,20667,-19035,-26435,17459,-18684,-13911,873,29201,9651,6910,-17167,30224,-13823,-23404,-5066,-10996,2269,922,11281,-24869,32315,-17457,-260,-10362,17791,21359,15459,16007,-5949,-6677,-6976,5360,-5867,28817,32217,11401,18976,21884,-21057,-1188,-24979,-2222,-32661,-1907,7876,-26994,-22292,-10857,-26095,-25138,12027,27165,-21868,10219,4120,30427,4080,15196,23272,11449,-20596,3986,-15699,20274,-2487,-23334,-9595,22805,-30860,15356,21924,16024,29347,-8502,-25612,-10349,27321,-13031,16424,8778,-10145,-18022,32253,30535,-32350,3522,-3185,3260,2516,-15677,18186,-25698,5358,-1493,20776,-12676,-11331,27679,21865,-5605,-24607,-9401,20098,-20498,-10630,-4712,16151,24446,3285,134,2819,-24175,26346,23283,-4565,12925,20496,-22041,-20270,-6776,26666,-27004,29266,-25636,-32466,-1187}, } ; static void test_encode_761x1531round_impl(long long impl) { unsigned char *s = test_encode_761x1531round_s; unsigned char *x = test_encode_761x1531round_x; unsigned char *s2 = test_encode_761x1531round_s2; unsigned char *x2 = test_encode_761x1531round_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_761x1531round_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x1531round(impl); printf("encode_761x1531round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x1531round_implementation(impl),ntruprime_dispatch_encode_761x1531round_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x1531round; printf("encode_761x1531round selected implementation %s compiler %s\n",ntruprime_encode_761x1531round_implementation(),ntruprime_encode_761x1531round_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_761x1531round_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_761x1531round_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_761x1531round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_761x1531round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_761x1531round_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_761x1531round_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_761x1531round(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x1531round")) return; storage_encode_761x1531round_s = callocplus(crypto_encode_STRBYTES); test_encode_761x1531round_s = aligned(storage_encode_761x1531round_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_761x1531round_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_761x1531round_x = aligned(storage_encode_761x1531round_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_761x1531round_s2 = callocplus(maxalloc); test_encode_761x1531round_s2 = aligned(storage_encode_761x1531round_s2,crypto_encode_STRBYTES); storage_encode_761x1531round_x2 = callocplus(maxalloc); test_encode_761x1531round_x2 = aligned(storage_encode_761x1531round_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_761x1531round offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x1531round();++impl) forked(test_encode_761x1531round_impl,impl); ++test_encode_761x1531round_s; ++test_encode_761x1531round_x; ++test_encode_761x1531round_s2; ++test_encode_761x1531round_x2; } free(storage_encode_761x1531round_x2); free(storage_encode_761x1531round_s2); free(storage_encode_761x1531round_x); free(storage_encode_761x1531round_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_761x3.c0000644000000000000000000004623014705505543022147 0ustar rootroot/* ----- encode/761x3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_761x3_checksums[] = { "174595681ec51d85de90246ab033f588d23586e48cee89ef360c213c47987ec4", "e77793e4a45e5582c3f32e346f5cf7d1f91f9ed3c531e41918c09d70d4d3815f", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_761x3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_761x3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_761x3_ITEMBYTES static void *storage_encode_761x3_s; static unsigned char *test_encode_761x3_s; static void *storage_encode_761x3_x; static unsigned char *test_encode_761x3_x; static void *storage_encode_761x3_s2; static unsigned char *test_encode_761x3_s2; static void *storage_encode_761x3_x2; static unsigned char *test_encode_761x3_x2; #define precomputed_encode_761x3_NUM 4 static const unsigned char precomputed_encode_761x3_s[precomputed_encode_761x3_NUM][crypto_encode_STRBYTES] = { {121,156,222,233,6,254,216,163,86,105,152,175,19,230,157,87,160,7,189,250,27,235,14,169,236,218,159,191,193,62,245,141,253,6,59,20,63,3,65,136,213,218,219,230,28,234,23,43,80,1,68,227,199,8,89,208,64,118,167,175,51,62,131,163,201,119,206,74,108,172,80,238,179,63,185,109,120,228,120,121,229,244,236,57,214,234,156,201,213,0,59,160,148,21,67,38,177,101,183,79,181,59,164,112,16,49,153,236,87,22,118,165,248,49,160,238,217,164,210,137,77,194,144,139,228,15,182,96,50,155,155,173,27,174,249,165,194,59,101,254,145,117,38,255,125,201,80,37,209,79,221,237,186,205,214,3,206,226,170,181,14,147,171,248,58,133,140,242,209,195,170,204,103,139,166,186,199,152,141,173,242,116,53,96,32,238,28,199,236,165,23}, {37,1,149,122,75,14,160,247,122,112,85,200,254,180,179,225,195,7,183,98,45,110,108,69,20,95,246,227,20,197,218,75,149,215,115,19,38,69,70,82,68,204,137,142,255,102,100,171,66,69,77,66,32,222,144,234,2,143,151,14,126,243,233,13,131,42,217,183,121,251,30,141,220,96,201,182,96,247,212,67,181,170,141,193,106,218,203,169,20,59,85,253,170,166,206,209,115,55,0,180,129,99,168,140,14,42,88,136,234,251,185,64,127,26,234,183,147,177,1,30,109,184,56,10,178,172,92,40,191,220,255,237,62,133,60,122,35,123,80,193,50,48,174,55,132,194,116,107,169,57,42,64,26,33,90,182,165,46,176,205,123,215,102,18,25,76,22,3,190,207,29,118,202,63,63,76,22,216,175,74,66,127,115,5,87,10,252,195,106,38,164}, {195,247,144,71,184,75,65,123,255,249,148,14,113,13,25,94,90,23,65,15,180,129,208,157,170,134,66,194,193,166,186,186,131,213,62,33,87,69,74,106,163,199,81,119,141,225,131,246,220,114,33,33,198,45,36,179,5,77,207,200,173,84,217,17,151,186,224,66,127,78,245,76,106,11,22,7,158,240,34,152,255,236,91,89,137,254,140,72,139,2,63,68,193,109,134,122,104,88,230,13,232,42,199,236,179,77,75,211,103,150,189,48,87,53,242,91,113,185,78,208,203,85,139,4,113,28,244,164,162,55,109,63,0,241,121,55,120,253,117,125,102,253,92,39,63,63,129,7,11,38,56,97,100,145,160,177,72,175,155,218,217,33,135,223,206,64,51,228,230,198,82,6,109,110,40,97,64,101,210,144,160,131,207,106,43,18,253,238,78,27,229}, {137,244,174,97,11,227,141,226,165,253,101,255,135,46,58,202,237,107,125,132,42,169,245,233,239,138,252,91,19,132,112,100,38,2,13,178,161,184,170,109,106,92,240,109,139,50,11,244,133,31,69,49,51,197,44,25,20,221,120,8,135,122,2,139,29,67,251,15,105,152,179,202,105,56,199,174,60,150,34,97,229,4,112,50,4,113,138,223,162,7,180,23,40,193,246,225,139,205,221,80,180,100,89,103,58,219,35,131,101,171,142,215,21,91,209,1,192,212,42,166,91,231,136,142,72,99,182,104,66,53,151,172,39,222,136,180,202,238,167,148,230,250,24,223,156,73,126,168,63,42,3,212,32,123,139,219,189,172,140,70,250,51,48,118,236,183,100,106,94,195,151,1,112,74,246,153,40,37,177,47,205,167,29,130,105,22,191,132,84,132,54}, } ; static const unsigned char precomputed_encode_761x3_x[precomputed_encode_761x3_NUM][crypto_encode_ITEMS] = { {236,22,206,208,179,117,224,199,141,247,38,171,156,154,1,202,73,202,12,166,237,159,240,249,83,248,93,198,26,177,251,183,25,22,121,120,176,45,199,241,15,89,81,79,26,148,123,109,38,54,132,42,97,0,3,168,212,1,95,194,50,96,53,0,211,118,214,13,26,174,46,128,236,71,206,178,85,248,127,22,78,142,252,158,226,53,154,221,93,151,4,199,128,65,193,115,15,210,108,150,41,231,104,17,66,82,76,16,138,216,252,11,240,71,94,210,161,98,20,222,124,165,201,176,40,136,251,21,52,177,43,108,165,123,170,206,134,112,34,10,107,237,22,225,170,96,192,131,182,70,250,53,56,193,7,177,59,14,100,106,200,34,251,102,117,88,115,114,106,187,151,71,157,173,120,159,187,163,16,174,173,82,118,249,26,226,78,197,62,226,81,104,227,30,234,76,180,178,239,37,59,81,75,167,242,15,86,212,234,202,10,215,215,147,69,73,136,199,162,153,119,77,153,121,31,155,206,202,41,10,237,252,10,126,109,42,78,179,188,158,58,213,157,230,105,160,172,213,22,146,117,98,110,124,243,27,48,213,231,246,54,107,236,58,85,53,45,242,209,9,244,219,239,86,45,192,55,192,30,169,239,31,185,104,45,71,41,155,218,73,226,85,42,76,73,124,60,66,14,109,140,51,192,199,31,185,154,134,195,171,86,95,151,79,161,205,76,250,7,18,4,135,239,194,227,179,183,138,167,16,215,37,16,201,79,91,233,42,163,167,45,66,6,164,179,193,161,210,40,23,215,250,180,35,252,182,195,62,215,78,234,131,183,34,43,212,233,37,63,68,211,191,172,241,237,182,50,123,245,14,101,91,168,106,164,218,149,84,12,141,237,120,82,180,116,24,206,255,95,169,180,235,60,29,226,21,83,82,151,150,122,211,139,140,62,58,255,127,240,207,180,98,106,184,28,162,186,16,187,103,92,110,106,230,180,127,41,114,33,39,41,58,157,45,160,160,167,247,51,76,56,111,84,198,23,176,139,64,4,94,117,125,107,106,104,155,179,230,199,194,4,237,97,15,190,132,88,7,192,3,4,125,60,97,69,34,126,175,155,100,9,114,154,47,110,224,51,107,223,179,122,28,217,245,153,102,139,110,99,166,221,53,21,242,108,141,178,65,173,215,246,72,203,198,48,94,63,255,170,51,17,41,133,225,161,153,0,53,17,119,96,108,152,171,5,178,22,245,26,87,23,8,208,92,81,99,29,59,122,128,120,149,35,101,224,84,223,128,225,244,254,65,194,166,77,34,16,142,34,63,212,140,83,245,215,53,125,170,60,157,110,177,136,77,12,216,94,47,130,111,132,209,4,222,104,108,116,97,181,60,20,6,96,46,138,235,237,41,155,45,102,202,166,131,173,47,121,230,9,69,27,15,61,90,47,223,252,165,81,7,101,97,53,38,122,117,27,13,222,166,230,166,163,244,195,204,245,8,117,178,176,144,92,150,211,237,59,92,105,237,128,246,168,213,172,255,22,130,29,154,109,142,207,79,255,170,221,92,174,181,237,139,186,111,248,173,109,21,249,200,113,137,209,131,206,85,25,251,235,22,100,159,0,98,55,65,68,153,27,104,105,69,190,125,31,176,176,33,12,121,119,22,175,247,196,157,163,54,17,49,17,90,78,5,11,159,244,116,86,51,49,225,247,132,237,7,204,41,198,114,22}, {148,255,80,125,244,106,49,220,8,94,56,237,225,213,7,214,230,96,213,233,165,33,229,229,151,1,27,64,230,247,6,206,197,152,8,230,39,157,204,199,252,129,20,135,251,214,94,233,193,26,60,207,51,195,206,117,110,48,199,227,200,189,181,98,158,116,104,62,54,75,77,26,214,11,206,94,25,49,179,12,128,194,169,107,249,204,183,14,51,141,183,185,96,148,80,61,115,163,16,127,34,178,46,229,1,28,103,171,94,216,145,103,115,123,210,57,100,111,169,151,105,167,0,246,222,10,7,206,128,144,132,97,150,211,194,254,150,62,137,8,154,169,4,61,81,164,15,188,24,250,251,93,237,145,192,155,101,98,57,230,111,248,82,230,203,227,10,138,192,201,177,177,9,140,108,253,54,177,215,101,253,5,172,129,75,209,12,75,154,23,246,196,77,148,209,237,168,142,25,74,36,133,200,149,137,253,99,149,251,156,230,220,221,83,194,41,223,251,235,235,197,12,34,34,145,31,66,42,202,4,206,46,190,121,206,103,81,58,192,126,13,151,236,228,46,100,50,87,80,25,238,244,4,117,146,23,214,90,251,181,209,9,102,58,92,118,201,223,242,196,46,134,240,33,187,160,250,187,40,61,197,45,33,121,160,22,208,89,159,186,80,180,251,156,138,16,188,86,234,15,81,152,83,134,83,110,156,201,46,169,9,193,207,88,97,145,158,24,15,88,168,162,179,148,225,129,127,110,180,205,165,204,148,58,95,24,193,225,85,102,77,110,20,253,202,131,114,10,244,12,211,56,11,233,185,162,42,47,244,15,216,42,208,50,36,205,197,144,197,64,197,189,245,251,71,88,169,124,190,152,128,183,42,90,254,148,61,124,190,33,134,157,87,81,21,255,23,74,70,27,220,176,25,64,250,137,11,209,155,122,193,19,27,211,233,165,61,87,190,169,85,44,5,110,39,207,34,214,187,166,226,63,201,119,239,204,138,163,237,87,52,40,189,43,147,178,229,241,26,252,74,238,73,247,174,107,77,102,35,178,22,47,37,69,30,156,239,39,120,5,229,74,128,47,243,249,21,1,91,236,232,108,80,110,219,170,150,70,127,33,254,44,109,142,21,115,133,246,100,107,115,197,157,32,171,83,65,152,83,156,213,43,254,231,41,225,83,13,108,153,6,77,183,20,244,173,207,180,13,91,235,51,104,122,22,130,7,60,219,137,225,245,159,42,2,3,80,203,122,159,151,207,99,194,165,129,244,234,121,129,145,71,55,239,251,248,204,61,173,127,183,133,62,33,58,66,3,75,8,70,201,81,70,188,227,119,230,240,210,121,26,15,152,235,61,233,224,129,168,30,253,90,235,107,167,225,52,250,33,137,128,90,248,165,136,15,169,171,255,235,81,124,78,33,28,125,88,87,29,179,51,15,187,132,161,202,180,57,206,20,26,183,223,217,74,250,61,246,173,121,196,53,201,221,52,229,148,228,130,254,247,68,79,80,41,154,123,90,222,176,45,1,53,57,73,227,218,204,211,145,32,154,216,175,133,191,122,24,241,61,125,119,170,172,117,41,250,60,184,46,251,191,176,108,189,85,231,113,167,167,76,198,130,238,230,235,25,115,233,150,237,232,70,224,86,41,119,131,90,17,64,222,244,191,96,119,46,81,53,173,229,188,142,24,239,234,69,151,254,244,138,196,233,203,236,125,197,111,109,178,163}, {22,186,127,214,178,60,168,86,179,86,79,77,66,28,108,238,63,125,131,188,10,63,107,25,80,87,144,145,202,35,105,41,210,70,244,66,24,27,86,211,115,215,43,139,113,166,95,119,188,156,171,217,196,5,174,176,20,96,147,148,241,38,168,216,121,107,130,115,66,28,17,88,224,67,64,152,62,183,174,223,55,138,32,64,120,61,236,168,35,206,190,205,200,236,129,103,149,80,244,145,113,204,189,115,73,217,144,165,97,71,119,78,136,161,66,137,137,6,199,33,65,213,241,247,117,108,164,116,242,219,81,203,188,33,80,101,49,66,59,244,152,133,94,69,10,206,212,186,20,231,188,122,85,80,246,120,241,41,176,246,98,183,25,70,26,82,85,123,208,231,161,250,158,253,201,104,112,22,187,139,116,234,203,167,86,122,15,20,29,121,126,203,147,49,219,62,245,34,162,194,224,87,1,86,80,43,121,105,173,145,136,32,0,18,241,38,19,187,205,56,182,186,124,20,44,69,187,3,144,150,233,74,190,143,68,57,211,132,33,166,152,44,193,36,155,225,190,136,36,40,88,193,124,0,60,202,138,10,9,8,133,88,240,202,207,235,205,101,173,88,134,106,222,95,125,112,133,53,250,4,232,126,92,24,95,66,217,60,101,64,251,64,146,33,102,105,93,253,239,50,6,11,116,137,221,39,173,160,91,96,8,217,213,206,48,163,135,15,176,130,186,140,240,235,219,99,159,173,142,50,83,18,8,151,190,199,144,17,246,16,61,227,126,40,11,251,28,174,11,26,32,74,134,112,55,6,109,196,15,201,214,189,34,16,239,156,29,243,16,31,222,172,208,30,53,82,93,101,56,91,197,8,208,217,87,111,144,8,23,107,4,200,205,69,251,224,200,200,17,135,71,47,53,221,161,77,132,95,82,188,55,115,123,95,30,147,86,130,192,44,124,103,34,191,98,61,178,94,134,82,107,228,114,244,149,58,89,134,181,10,140,103,208,241,111,67,86,148,150,99,198,178,128,160,86,86,153,249,202,126,38,28,207,186,12,208,193,183,252,194,238,42,37,21,80,246,79,79,43,201,14,14,99,136,44,221,202,79,174,146,92,254,67,63,247,176,16,159,101,145,99,93,47,252,167,242,127,1,255,152,87,138,21,254,208,121,98,172,93,172,196,85,76,37,78,251,35,54,63,11,52,52,48,243,194,214,208,249,103,144,66,16,30,170,107,6,150,137,180,157,176,14,216,182,207,206,24,200,39,138,253,49,117,12,216,80,5,109,63,2,12,208,14,169,226,20,206,95,34,50,122,208,239,5,84,166,228,156,94,153,215,158,58,131,223,102,185,50,69,40,119,67,38,12,240,119,60,130,111,112,130,91,8,1,187,226,111,119,196,27,236,236,172,92,55,211,131,137,98,102,6,116,14,10,213,207,225,241,26,133,20,224,151,178,204,244,103,39,182,75,153,215,10,8,42,243,73,20,42,125,135,197,189,62,46,152,93,206,123,89,35,130,73,246,23,248,17,212,81,216,225,31,86,233,21,127,198,229,236,211,202,5,213,193,92,82,231,167,177,113,140,60,165,1,179,166,38,133,12,201,166,206,145,47,163,172,167,9,147,237,195,254,53,13,250,233,57,152,202,212,122,11,65,233,115,180,234,131,174,192,253,180,179,67,96,146,248,30,233,120,229,102,45,135,167,77,118,56,215,92,228}, {104,159,125,250,175,16,191,83,229,237,16,43,100,86,37,52,50,61,129,6,146,155,201,172,88,0,14,172,109,196,189,89,172,105,136,130,212,41,51,212,200,250,78,86,14,43,147,179,98,196,216,69,25,200,178,66,173,138,241,144,37,96,21,202,64,102,64,183,118,116,205,236,32,26,10,36,39,86,27,172,161,33,227,174,192,89,171,226,196,243,73,54,20,76,217,187,118,185,56,23,165,24,235,30,175,222,120,60,234,199,96,204,74,5,66,61,83,211,221,227,251,32,174,255,215,78,132,171,233,178,30,21,41,1,188,31,56,172,93,248,93,224,92,243,192,139,210,93,115,100,94,138,153,139,33,70,72,176,1,156,37,176,111,245,39,20,201,132,187,164,181,196,244,161,102,129,62,62,72,198,197,230,188,3,138,191,83,56,79,124,142,182,48,28,157,87,190,219,34,2,192,232,213,173,124,12,191,189,50,235,104,166,148,255,138,1,23,124,25,173,100,44,239,235,207,116,178,192,248,12,146,117,111,9,105,60,219,182,92,89,62,149,58,36,65,5,149,50,161,23,135,233,146,133,65,222,144,134,118,35,146,15,250,106,118,208,151,62,166,145,249,133,48,233,36,36,103,75,171,156,154,121,86,30,225,61,242,34,160,197,14,242,255,169,188,102,206,221,171,10,21,89,66,183,171,55,230,228,201,14,220,38,125,172,78,3,140,192,92,187,112,100,181,129,135,66,218,206,147,246,147,210,201,201,179,155,159,156,238,251,16,131,176,100,209,121,8,212,34,210,178,128,209,123,53,1,74,246,69,129,47,28,76,164,254,145,176,142,3,56,167,34,28,72,107,194,193,200,12,88,220,76,196,73,30,46,194,233,0,138,157,94,64,78,173,129,111,231,31,104,203,197,144,242,167,86,41,102,188,26,138,45,162,80,179,112,213,212,4,70,142,146,147,190,158,232,109,223,170,221,201,182,52,179,161,0,110,86,173,59,193,34,171,57,162,72,232,73,32,136,88,156,218,87,37,238,172,128,145,39,224,99,112,17,123,104,57,247,87,242,214,16,173,238,91,23,233,82,166,199,146,157,48,160,138,186,170,18,243,84,95,152,169,140,30,182,47,153,138,251,158,172,88,237,57,226,42,112,135,47,21,54,165,90,218,49,36,63,144,167,6,227,211,214,191,182,0,95,34,8,213,13,101,241,54,28,207,117,97,250,151,22,239,18,185,11,37,165,101,129,167,191,178,20,49,181,139,53,206,148,121,202,151,222,249,27,96,77,39,155,63,1,190,51,252,221,99,117,17,160,196,36,90,124,233,188,77,78,143,53,83,179,46,147,143,162,77,78,13,54,42,201,202,15,43,61,66,77,135,97,196,158,158,18,192,117,174,158,5,55,150,32,7,140,236,227,155,197,231,28,224,248,103,56,63,240,65,172,148,83,173,222,212,21,18,183,183,46,63,75,247,28,181,235,160,75,103,124,224,241,118,191,59,101,135,30,245,199,25,27,125,247,141,203,73,215,10,13,247,91,138,110,12,157,204,96,38,112,159,199,230,240,193,241,211,105,109,229,234,56,236,34,209,63,107,126,107,155,168,22,61,244,244,154,40,218,194,178,201,79,64,6,42,106,82,172,241,9,148,245,10,39,153,69,148,77,236,110,203,87,149,107,204,211,18,70,20,36,15,108,91,255,227,39,184,176,227,123,210,117,53}, } ; static void test_encode_761x3_impl(long long impl) { unsigned char *s = test_encode_761x3_s; unsigned char *x = test_encode_761x3_x; unsigned char *s2 = test_encode_761x3_s2; unsigned char *x2 = test_encode_761x3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_761x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x3(impl); printf("encode_761x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x3_implementation(impl),ntruprime_dispatch_encode_761x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x3; printf("encode_761x3 selected implementation %s compiler %s\n",ntruprime_encode_761x3_implementation(),ntruprime_encode_761x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_761x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_761x3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_761x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_761x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_761x3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_761x3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_761x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x3")) return; storage_encode_761x3_s = callocplus(crypto_encode_STRBYTES); test_encode_761x3_s = aligned(storage_encode_761x3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_761x3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_761x3_x = aligned(storage_encode_761x3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_761x3_s2 = callocplus(maxalloc); test_encode_761x3_s2 = aligned(storage_encode_761x3_s2,crypto_encode_STRBYTES); storage_encode_761x3_x2 = callocplus(maxalloc); test_encode_761x3_x2 = aligned(storage_encode_761x3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_761x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x3();++impl) forked(test_encode_761x3_impl,impl); ++test_encode_761x3_s; ++test_encode_761x3_x; ++test_encode_761x3_s2; ++test_encode_761x3_x2; } free(storage_encode_761x3_x2); free(storage_encode_761x3_s2); free(storage_encode_761x3_x); free(storage_encode_761x3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_761x4591.c0000644000000000000000000012105114705505543022402 0ustar rootroot/* ----- encode/761x4591, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_761x4591_checksums[] = { "a4335af893b0527c4fc259b93b8660d5f29b012ee4111218c11654b27fc6c61b", "263487954e950086897d620987560480180d05b8564ad7744b53b24c5e0f7aaa", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_761x4591_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_761x4591_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_761x4591_ITEMBYTES static void *storage_encode_761x4591_s; static unsigned char *test_encode_761x4591_s; static void *storage_encode_761x4591_x; static unsigned char *test_encode_761x4591_x; static void *storage_encode_761x4591_s2; static unsigned char *test_encode_761x4591_s2; static void *storage_encode_761x4591_x2; static unsigned char *test_encode_761x4591_x2; #define precomputed_encode_761x4591_NUM 4 static const unsigned char precomputed_encode_761x4591_s[precomputed_encode_761x4591_NUM][crypto_encode_STRBYTES] = { {168,250,236,177,67,17,240,45,61,118,74,195,241,65,119,231,136,228,199,34,8,77,249,114,86,91,248,98,240,69,50,182,138,169,208,140,103,247,132,104,59,1,214,179,34,244,24,224,208,66,16,26,164,64,239,14,20,219,8,210,246,229,163,163,138,148,154,219,182,85,188,153,177,147,254,174,198,49,80,16,187,50,2,171,203,14,149,107,203,179,143,52,226,254,250,90,34,208,165,87,69,184,42,81,168,129,34,240,165,170,243,189,149,189,123,99,116,73,231,66,148,65,107,8,24,255,58,38,36,82,106,112,59,29,238,145,4,121,125,205,182,253,163,189,53,150,242,110,64,69,64,243,229,73,91,120,247,152,88,237,126,164,81,69,5,38,65,48,50,251,50,113,221,33,28,163,205,244,162,212,50,128,208,255,131,97,167,246,59,144,173,55,97,70,136,221,185,182,159,104,139,22,97,28,60,224,18,98,144,26,162,122,139,13,153,30,5,243,146,232,140,1,226,57,36,29,207,28,93,228,201,154,110,183,161,15,42,97,127,17,125,229,4,88,88,28,58,19,6,238,186,238,145,30,135,234,243,8,115,242,17,115,181,88,188,193,243,132,13,20,243,138,192,171,153,206,251,215,169,174,147,36,8,75,78,60,234,86,116,164,132,177,35,166,193,86,54,111,254,129,126,179,94,58,59,193,219,88,62,109,134,149,86,125,121,46,242,127,220,183,53,246,115,174,16,148,64,188,235,203,179,225,108,110,186,97,123,103,233,129,152,154,158,101,242,250,168,2,200,74,243,180,172,88,96,192,252,156,55,225,38,136,115,115,102,20,170,213,227,215,177,62,25,58,73,98,108,157,9,32,159,110,233,17,116,183,236,191,182,3,62,210,30,234,53,188,202,148,33,129,64,161,75,202,27,29,70,235,101,176,100,138,208,147,57,24,169,243,27,142,154,188,22,24,239,125,65,250,130,189,236,202,53,56,139,210,13,198,121,33,231,21,9,9,243,199,221,103,236,211,88,69,129,2,152,210,247,116,28,182,69,19,159,111,244,103,181,12,78,230,48,82,111,0,252,95,254,251,46,175,188,66,3,91,116,122,117,101,24,59,197,236,206,205,196,219,226,98,181,107,171,230,233,112,16,208,88,53,40,165,85,45,70,181,114,139,191,211,96,124,74,211,237,209,254,9,230,13,237,212,235,5,218,209,28,32,47,242,17,145,46,117,111,121,79,182,99,224,227,197,193,202,167,56,227,25,222,60,125,66,102,5,41,251,100,104,166,11,202,72,46,234,140,137,30,164,161,13,253,249,112,151,188,207,81,178,111,71,197,49,136,150,254,51,253,8,255,250,76,212,83,188,172,199,196,103,242,55,6,172,176,63,232,127,170,218,212,48,90,127,169,158,89,137,85,42,43,112,210,61,56,39,167,52,194,228,186,68,239,34,92,20,49,188,125,36,173,81,216,148,167,239,162,43,181,76,24,233,184,136,96,134,17,4,185,69,105,114,109,18,155,188,187,56,216,121,118,181,35,183,102,63,9,16,130,173,165,194,255,65,69,207,153,43,224,106,110,255,37,161,162,64,250,254,205,34,145,191,195,145,14,206,103,3,71,6,72,119,243,125,33,45,26,71,83,89,13,147,248,65,95,250,133,121,174,41,148,244,98,194,105,112,180,215,129,193,111,64,59,20,235,92,93,49,156,138,117,22,249,47,60,49,255,223,25,33,83,103,133,146,169,80,0,219,220,142,113,244,142,95,145,1,112,23,208,38,81,241,50,210,180,163,8,30,18,133,255,15,147,144,53,196,36,248,244,142,217,106,203,81,158,114,150,149,179,27,240,157,138,120,200,240,95,94,194,66,98,167,151,173,245,148,149,80,1,88,196,57,208,121,170,26,109,174,14,241,152,115,146,84,194,145,199,72,130,15,182,202,203,191,12,207,3,192,188,108,107,182,10,152,192,10,151,184,189,3,136,212,219,191,220,109,43,91,247,41,16,143,45,122,123,240,6,105,67,5,196,196,96,232,62,221,168,216,172,31,127,16,247,88,167,11,219,126,126,44,183,190,179,45,255,21,115,119,97,84,85,47,101,173,245,86,138,229,196,219,140,105,242,234,203,202,76,204,32,148,237,26,234,244,17,172,9,199,32,208,222,158,152,123,200,132,129,126,199,46,208,88,57,111,114,204,147,64,232,52,78,59,150,183,106,252,138,128,236,17,123,82,54,11,51,219,111,116,73,118,191,83,114,42,43,143,20,211,30,78,143,37,185,245,69,195,133,182,187,34,40,114,158,203,127,124,231,105,124,113,197,217,4,108,150,187,229,16,13,94,209,47,247,93,183,144,63,150,108,32,221,5,19,13,94,131,115,106,171,38,150,33,147,206,19,97,70,107,101,191,214,239,9,111,123,41,174,162,250,47,14,117,165,208,156,177,198,113,28,100,177,215,15,140,204,41,98,16,128,222,81,32,251,129,63,178,131,95,202,25,86,160,241,54,22,144,13,227,58,169,121,106,116,54,131,162,7,50,72,225,178,164,34,190,73,238,231,63,138,53,142,141,114,15,23,232,83,64,30,194,2,98,137,201,105,186,179,198,111,197,153,14}, {78,120,221,48,93,30,217,143,79,35,98,91,191,214,47,201,190,118,64,171,156,35,172,104,119,25,52,41,3,201,181,193,68,0,105,42,2,226,89,106,7,76,201,157,60,101,198,67,255,49,21,202,230,20,254,156,165,196,149,96,203,212,133,212,115,137,1,186,214,22,147,8,105,223,247,68,126,73,91,245,4,108,231,54,89,40,29,181,225,83,189,62,32,51,90,219,110,147,230,221,53,57,27,205,250,184,34,142,23,57,152,187,242,167,104,183,182,10,102,167,25,151,139,78,242,183,197,61,185,57,120,134,54,214,164,132,172,142,238,173,190,157,187,180,236,122,149,170,73,150,183,38,99,151,35,70,140,240,37,87,245,8,9,98,54,235,106,20,157,133,224,13,121,111,221,118,125,120,203,220,239,144,224,6,126,6,188,3,128,166,221,114,80,145,133,141,139,0,140,74,226,21,18,250,222,114,195,135,247,187,75,141,2,247,88,247,189,186,84,61,109,60,24,94,17,169,226,222,41,140,130,44,66,7,254,160,1,106,224,94,227,190,190,21,63,229,52,129,99,236,206,92,196,63,27,202,222,134,72,180,35,143,20,113,44,227,160,136,162,122,31,100,152,98,55,62,13,43,54,129,86,99,78,134,41,41,9,207,194,44,49,144,98,207,106,213,69,33,172,142,131,92,192,120,119,111,112,3,129,46,249,98,157,58,105,229,180,226,221,65,59,39,44,236,93,246,214,38,185,21,15,48,148,148,77,139,70,9,210,60,221,200,123,12,56,23,228,91,195,113,249,34,27,144,166,79,108,247,249,203,110,84,210,8,240,176,221,66,80,88,254,213,121,39,204,6,49,19,152,30,12,244,206,11,87,150,220,111,71,105,127,210,60,170,94,117,166,98,177,9,12,248,52,202,20,25,34,201,250,164,173,140,55,151,245,154,154,153,250,29,34,92,196,173,25,219,208,3,109,244,177,222,27,214,66,134,123,212,215,234,182,187,180,96,45,253,177,242,157,142,130,53,239,178,237,253,143,247,101,38,119,98,13,51,78,30,89,57,106,101,118,224,236,206,58,62,236,123,56,34,165,190,3,72,168,161,103,144,154,218,12,236,236,228,125,227,98,153,213,37,215,91,42,81,112,128,69,15,250,116,226,157,3,122,14,253,83,224,28,49,167,196,113,230,202,1,123,60,49,231,169,95,84,62,16,136,214,187,98,166,89,141,83,209,87,12,36,18,61,217,163,124,187,226,119,168,188,195,231,33,114,209,73,178,53,170,84,77,235,216,3,178,71,217,226,119,224,56,153,184,135,69,127,168,204,207,124,25,11,139,224,108,104,158,248,89,143,137,144,197,0,181,4,238,231,144,139,134,205,77,103,217,74,245,125,12,189,58,93,142,134,75,103,207,143,204,202,21,31,115,223,233,208,155,21,210,65,135,120,220,40,104,218,25,79,62,15,143,194,28,102,86,215,11,225,129,108,164,174,39,30,74,65,246,89,80,221,175,58,198,18,49,188,168,93,89,4,153,224,72,190,218,32,153,145,210,66,132,47,201,111,129,25,204,20,149,80,210,11,183,165,117,75,149,193,18,202,97,122,25,56,13,116,97,17,252,198,178,10,176,139,236,149,7,41,200,122,38,158,19,78,51,201,37,243,221,112,115,58,165,92,77,35,189,149,46,159,125,124,210,169,186,41,60,110,82,105,238,0,203,232,147,208,241,95,157,26,138,31,236,181,186,252,242,153,211,222,178,167,135,72,210,57,106,183,194,196,218,211,119,5,126,110,144,202,236,68,111,16,246,228,49,11,99,187,169,78,93,218,116,119,42,91,231,201,183,124,68,153,121,146,128,216,79,96,227,76,24,185,171,11,10,251,39,212,63,170,157,186,254,247,40,108,66,192,102,33,89,113,63,185,7,94,90,188,222,214,215,65,59,68,143,162,213,243,135,16,177,219,80,206,1,230,195,38,30,220,12,184,173,9,58,60,37,45,97,8,240,247,39,84,14,29,254,16,70,102,192,193,21,110,100,67,180,121,114,157,247,234,242,246,80,224,45,53,91,35,160,58,165,47,176,166,6,251,108,65,94,252,122,218,64,235,121,158,199,43,65,113,182,119,134,120,78,222,94,0,254,211,156,8,188,193,68,20,187,254,21,118,111,189,174,109,181,172,180,229,112,203,179,141,221,167,82,102,245,31,254,116,109,4,125,125,106,22,62,135,202,8,94,174,243,233,87,142,164,174,37,165,131,235,107,146,16,224,99,7,113,174,109,252,244,211,5,203,78,38,70,31,13,133,43,248,96,198,194,122,29,242,245,73,93,138,45,147,63,60,70,122,7,239,48,209,161,85,37,40,49,218,34,135,149,164,16,82,28,13,222,18,105,12,32,17,206,145,121,249,255,121,104,58,223,148,174,108,32,214,75,150,127,154,26,138,25,166,158,114,132,172,20,214,141,206,99,126,55,241,75,25,189,208,168,167,227,252,244,247,178,183,76,221,217,212,218,69,106,59,198,122,66,18,25,254,126,31,130,8,158,153,48,216,67,228,53,98,80,133,196,82,194,73,31,206,190,213,183,199,243,152,29,161,51,253,153,120,33,34,3}, {167,76,52,119,125,238,198,24,138,172,185,3,160,3,129,99,121,218,86,183,176,140,155,194,203,151,76,52,167,61,219,89,55,9,105,168,183,101,212,248,16,179,44,241,169,74,182,182,137,203,37,236,193,106,114,189,79,131,10,222,41,181,251,19,6,17,74,173,101,163,135,132,177,20,171,162,7,74,103,175,165,98,177,15,92,201,155,114,3,65,243,194,169,47,253,97,178,68,91,241,205,71,221,202,187,88,216,41,47,63,242,21,130,242,2,138,185,241,85,19,174,192,66,174,221,112,81,139,239,96,71,189,128,187,180,187,229,159,171,2,71,210,28,116,156,24,140,250,57,16,195,171,90,80,92,217,46,4,143,122,144,227,90,22,96,44,173,204,197,73,162,70,192,141,17,192,150,18,237,6,202,117,52,102,208,187,160,138,164,156,34,239,22,144,5,191,164,78,114,240,129,221,100,24,1,50,146,223,65,129,132,231,190,92,99,159,111,52,167,8,202,253,255,194,5,233,29,243,47,222,234,230,70,83,98,227,79,225,64,42,226,146,98,14,2,84,226,173,179,110,17,44,228,85,247,174,47,210,183,66,201,170,20,86,192,58,51,193,91,127,219,145,196,215,92,196,208,34,104,35,76,124,123,182,134,40,98,50,111,72,90,65,239,253,208,87,77,170,111,207,83,174,239,197,97,200,227,184,27,77,252,207,158,164,105,103,65,230,174,240,180,154,148,71,151,58,211,250,69,3,199,242,70,43,235,132,14,19,194,197,155,125,5,124,98,70,201,87,175,235,130,167,115,195,31,99,121,60,247,230,7,144,111,99,99,168,87,3,86,110,40,244,47,220,31,144,144,134,124,148,67,107,42,235,116,120,239,21,95,17,243,105,100,26,205,191,117,218,7,215,213,152,233,19,61,234,133,176,127,87,120,252,190,152,228,167,71,46,219,192,45,174,235,237,1,252,103,130,163,59,89,86,185,249,14,50,180,57,4,42,89,156,116,192,171,119,249,46,153,207,133,31,63,175,254,177,41,151,225,82,142,170,79,89,235,177,65,129,155,72,127,236,111,166,209,36,57,79,20,159,113,149,27,241,134,244,59,52,25,4,25,156,139,2,8,206,194,214,130,188,62,168,176,39,67,183,244,9,225,110,72,173,0,187,115,245,201,12,206,153,196,126,74,16,37,255,145,198,73,84,84,77,56,37,184,143,176,211,184,205,219,239,225,177,177,194,210,163,144,172,105,174,22,146,38,166,116,97,149,115,151,59,180,164,229,157,22,222,172,221,168,152,123,214,38,254,53,130,40,104,248,175,54,64,241,243,131,15,156,51,125,22,253,9,139,106,149,198,167,122,29,26,178,97,3,192,36,168,185,183,243,181,135,147,61,202,126,231,60,55,144,57,166,97,116,153,255,0,9,132,161,34,207,138,22,2,64,237,117,32,203,185,170,235,111,110,119,111,192,244,202,240,172,162,28,223,252,33,112,111,89,33,109,159,156,59,0,231,74,3,32,4,255,102,90,11,172,36,153,72,60,76,41,111,107,165,170,205,237,236,230,135,101,145,82,245,73,141,21,34,217,224,124,91,188,202,220,224,219,237,18,172,229,242,225,237,40,99,233,151,159,235,224,216,123,145,197,48,139,79,224,38,29,205,163,48,102,251,253,245,184,117,72,223,88,193,84,52,237,189,79,161,102,220,143,242,152,126,5,206,51,136,227,215,21,220,149,17,65,185,108,149,207,181,145,171,156,167,42,59,140,27,171,31,214,141,191,40,34,146,38,208,211,195,104,43,79,144,180,70,100,6,71,207,234,228,213,87,187,185,158,143,104,238,123,48,139,31,118,205,97,155,27,114,212,254,58,78,144,166,230,126,57,38,158,11,48,55,242,74,206,197,158,14,156,69,7,172,74,19,217,155,1,174,204,103,129,165,59,243,167,251,205,201,215,85,100,102,45,117,205,227,207,27,255,219,90,242,89,13,97,40,209,254,32,138,20,228,8,51,77,161,150,211,24,31,147,76,16,124,165,49,151,253,170,69,148,67,131,242,132,215,7,18,33,54,32,208,120,82,251,190,87,223,185,118,112,43,150,19,62,59,82,95,106,157,175,105,35,254,152,15,72,138,77,145,139,192,189,224,243,146,28,46,232,235,128,221,193,134,202,231,199,68,166,48,64,146,122,1,199,140,72,149,100,166,251,167,220,104,205,59,213,114,108,43,89,12,53,184,96,68,164,50,89,131,217,118,68,13,143,33,191,23,127,100,111,156,55,239,36,234,237,222,183,107,127,45,231,87,71,213,37,185,236,190,148,210,137,244,80,245,30,177,99,19,243,250,1,80,200,30,172,14,67,148,231,173,250,105,198,172,80,109,107,165,184,157,217,60,95,73,176,40,81,238,128,47,170,25,192,28,141,183,146,110,158,218,66,227,20,187,26,238,223,18,106,124,197,44,37,125,27,191,50,143,211,185,136,26,39,112,24,222,161,109,5,245,182,228,54,116,45,63,220,74,198,17,110,244,204,60,54,55,38,182,138,148,27,97,187,214,63,125,171,53,43,79,85,191,7,143,152,86,148,177,175,140,156,0,110,124,178,135,189,197,8,4}, {188,87,56,102,238,173,212,87,178,242,25,53,255,143,221,67,219,226,226,94,221,58,51,255,221,44,222,247,193,103,130,1,9,132,166,219,186,124,153,244,153,48,162,26,248,105,82,168,22,120,49,151,52,166,163,9,117,247,196,83,142,123,250,248,196,222,215,179,43,246,204,234,132,118,102,65,27,148,113,12,217,156,186,120,32,40,174,42,12,131,40,198,38,251,254,211,138,116,53,207,101,109,172,216,89,91,187,101,239,52,170,47,145,130,47,189,77,189,23,116,158,29,205,50,172,214,58,117,165,76,117,101,17,26,14,2,254,160,76,106,237,191,191,230,195,175,163,127,116,175,74,25,78,137,199,158,119,32,118,85,42,108,33,143,177,167,145,203,18,195,75,120,43,4,165,132,82,81,67,53,4,120,97,220,54,39,251,188,202,72,140,73,190,41,48,31,196,157,83,20,91,7,245,121,130,234,85,14,63,176,167,87,50,165,212,48,3,35,111,46,107,84,54,164,10,141,22,204,93,78,34,157,161,235,35,114,156,75,65,244,39,230,94,209,212,253,187,80,179,245,41,157,173,222,62,237,98,81,225,135,38,92,83,43,48,130,71,199,210,128,228,193,47,63,96,229,143,162,192,158,35,69,183,245,117,113,252,127,98,73,180,110,62,147,165,51,117,53,212,166,30,34,228,214,7,31,154,131,166,146,31,67,209,164,254,86,90,218,81,169,205,101,192,83,176,163,255,176,164,32,104,27,29,208,92,222,162,36,120,63,93,89,30,114,208,37,90,229,250,100,146,232,148,252,93,211,218,162,15,65,89,165,245,183,58,32,98,89,41,151,37,66,63,210,41,188,147,254,22,255,186,117,146,125,229,109,214,171,139,216,145,2,251,45,8,129,40,176,220,131,150,68,186,222,129,97,49,253,130,203,40,41,251,149,233,29,148,222,133,208,248,131,242,83,21,106,177,198,122,227,227,81,124,16,41,90,138,155,108,58,105,102,186,130,240,116,26,227,155,99,165,134,206,201,194,137,217,57,115,244,53,210,13,84,90,24,241,214,232,8,212,213,157,218,130,3,39,16,111,105,157,172,228,77,253,12,204,63,173,122,13,83,193,157,1,195,69,180,253,213,106,238,12,184,107,98,186,145,255,77,202,152,85,94,97,232,188,134,76,52,1,255,144,145,157,142,41,165,184,1,14,135,166,92,244,187,150,202,197,172,212,176,75,13,245,145,21,16,20,48,182,243,85,232,36,45,108,173,10,115,172,180,1,93,184,140,185,180,50,234,130,3,86,160,109,82,120,200,53,170,88,136,23,44,201,150,128,62,139,195,220,15,147,151,150,214,90,195,6,133,230,104,40,49,255,123,26,69,241,105,158,103,65,222,223,244,77,36,248,92,234,84,119,44,12,24,92,2,201,31,24,67,23,30,169,142,45,131,171,24,238,165,89,61,5,224,142,62,176,45,16,92,63,108,184,177,137,94,61,146,217,118,77,137,193,103,247,244,178,0,57,212,39,197,252,43,230,218,152,106,155,46,174,224,2,35,67,95,240,100,20,150,59,186,192,254,65,10,149,177,126,26,124,64,180,86,35,102,227,215,90,18,70,243,22,173,194,55,121,223,89,53,121,208,118,136,73,135,47,217,187,124,21,43,240,141,253,237,101,67,109,206,1,22,86,175,194,95,32,210,2,40,178,148,240,227,83,19,172,95,142,16,121,142,193,28,134,200,235,102,129,211,8,221,33,208,68,48,244,125,133,146,205,49,168,188,213,51,27,207,97,177,157,77,247,126,238,70,203,196,72,107,156,201,215,171,3,73,195,10,136,78,213,189,242,220,221,131,58,62,98,147,111,198,77,55,52,214,161,255,229,84,224,168,238,14,231,199,149,113,184,124,218,65,47,54,181,69,179,33,5,148,250,167,112,107,62,64,28,5,174,102,52,0,237,113,241,77,241,123,193,1,181,153,109,73,238,189,204,106,95,207,234,210,155,206,86,56,32,201,127,24,190,113,4,56,16,35,96,44,237,144,140,161,83,161,214,128,88,201,131,10,154,244,100,58,36,188,174,109,205,188,170,125,91,214,26,122,139,61,99,124,76,223,206,90,146,154,13,106,39,138,204,43,28,205,84,103,245,240,223,43,138,10,137,171,190,112,71,101,171,120,191,66,135,203,68,13,215,244,81,156,229,215,38,237,155,64,158,174,134,134,169,25,188,0,254,110,237,91,14,43,42,75,249,46,157,27,244,113,14,204,239,54,192,1,76,98,22,3,115,197,94,142,201,240,76,45,147,108,224,42,245,136,48,101,218,245,19,95,192,131,48,151,88,219,65,26,165,220,124,187,160,186,22,113,133,59,142,220,3,34,9,136,12,174,63,142,55,138,244,219,87,77,120,176,49,165,46,170,143,201,134,242,246,85,201,163,253,181,111,8,123,75,213,227,58,46,69,187,126,199,83,30,176,197,211,184,171,40,111,94,112,202,205,131,49,72,181,222,155,242,141,135,93,80,61,12,86,100,116,178,136,3,101,86,23,60,48,63,103,51,116,140,115,173,58,53,239,44,227,1,193,182,117,71,199,237,103,234,240,199,194,199,224,154,49,22}, } ; static const int16_t precomputed_encode_761x4591_x[precomputed_encode_761x4591_NUM][crypto_encode_ITEMS] = { {-2396,17868,7883,4479,-12168,117,27840,-26784,-6796,30295,7126,-13988,-32597,22186,-19937,-21064,-1185,-31753,27595,23124,-11680,-12952,-24435,26084,1792,-15206,28762,13010,22823,6743,-13063,21735,-31744,10918,18331,-15189,-32430,-15925,32542,20618,-11161,14844,32726,24976,-28261,1657,30824,22752,13588,28564,4142,974,12894,22954,-29413,13564,-21070,22606,-24363,-8563,-14252,-5106,-17324,-2511,8365,2179,29813,12731,18413,18775,-15318,8990,18109,-17444,-4006,-10964,-14503,19187,11280,13648,-15939,14962,-13034,-28060,23070,9395,-11037,-27650,9171,23832,-3812,-20403,-12496,19198,-24851,-19629,-9710,20608,-32571,19632,18223,-19494,-204,-32518,15361,-2727,-26388,-28742,-10163,-24392,-16336,-21763,68,14927,-25013,4960,-5401,-1837,24767,-25112,-3472,-13140,15761,10838,-8954,-24930,241,27095,10213,4673,-31488,-23866,5028,-8087,29317,-3657,14416,-31716,26473,-27460,20387,20397,12085,-7166,-16204,-27361,-20242,-21556,16740,15220,-12602,-30026,-30653,-30706,20108,23473,110,-21865,30381,2197,-8925,13029,15490,-21327,20006,7841,-29834,-25483,-27204,-6790,10549,-27037,25881,22796,-6314,-15318,-28048,-32253,-15229,-5535,-9819,-3885,10645,12805,7867,-6328,-3258,9535,-20391,-12850,28312,-24885,19947,-15750,19469,-21819,22364,-11005,-30925,-14620,18111,24196,-18467,-21172,-31787,2713,-9518,-32176,-31286,15146,24406,-13564,11427,-29912,12732,8067,9794,19453,6004,15442,-4154,20010,6774,26852,6405,-2463,5427,-19532,32454,-31639,25694,-31531,3746,21892,-27495,13064,-5868,-8998,10485,22438,18576,-16269,-28552,8900,17135,-26697,22335,26693,-10309,-15627,-5916,-5350,20375,-14282,-20528,8521,-19369,14004,3669,-9902,-15544,18263,-29721,11170,23162,-9106,-14341,16408,-15614,-19403,-29529,-10236,2454,-10234,-30600,-29057,8067,-872,29235,-16774,28063,29148,-27817,-31249,10748,-3490,-20327,-24241,7307,4407,-13104,24604,-21827,-8566,-19055,14176,-22295,-13037,17514,-19140,-15461,15069,3846,22456,27771,-13104,24522,31375,24152,-31990,-6895,19819,21941,1279,16577,-9384,28252,-9382,-2604,7176,31190,-15839,11270,13043,-6921,-29433,32314,26090,-30137,16940,-4001,15740,-16058,-30518,8383,-3259,-31813,28112,31903,1766,25758,20790,-29464,9786,-32634,-540,3973,11165,-2107,10685,-8061,-18400,10619,1647,18802,-31870,-20338,9730,-19298,-22649,-31579,-30945,-17404,-30703,-28450,-19832,-27458,8036,-104,-24331,30070,-4347,-12833,32502,-22523,29580,-21437,-17417,-18403,10340,18065,-15262,-31539,-14796,-24081,2395,8532,6264,20502,15344,-15094,32668,1800,-7718,27588,-18129,-6400,-6554,-21947,22644,-10103,29513,-6895,22006,20504,-28739,-15198,11564,-30039,6036,27358,7274,25447,-20297,23677,-24172,-10648,2399,23009,14070,32165,9963,11237,6511,-8196,-563,15678,-8259,-24653,-6223,23351,-32213,-31114,-32063,-11567,-23690,13065,9932,24276,-12741,-13639,29506,-19539,-32268,8419,28544,32094,5633,-23904,-27388,-25454,-6358,22759,30614,27910,-27874,-14371,27670,-28098,-27246,-9067,31200,-19935,-2574,-31658,-11822,24565,-19248,1923,17013,-16733,21459,24752,-19263,-28566,18718,11789,-27729,26902,26872,10608,27908,-27194,-4829,-26511,2749,-6555,22400,-24803,18501,-11221,30870,18261,-13401,8545,22621,4441,-32361,-1799,23188,-3979,-24390,3927,-10466,891,-11445,13939,-10757,-19369,-305,32363,5958,9102,30552,32243,-7423,19308,-26259,13956,22900,2115,9721,-26369,24962,-6726,27020,-25544,13506,-3154,19265,-6125,3384,-30065,25077,15843,-5145,22983,2984,-19724,16963,-2103,32635,-6346,31719,9857,6306,-10564,12633,29286,-32029,-8156,15811,6333,30278,-3961,28148,-1182,14292,-24244,-2961,7006,29704,6968,-7761,-31009,15707,9835,-27899,5232,6358,9388,8750,16413,5649,17219,-3739,-3313,-4578,10676,-20777,-3403,19333,14415,-21005,-17494,21593,3849,-3702,-26955,31616,-9128,-4512,17801,-4245,-19522,-26815,2335,25008,28723,-6137,27496,21077,-30268,32296,-14748,27184,23,-30107,-26756,-21594,17185,13553,6483,6475,-20220,21578,-10137,15603,27521,-3001,1166,19493,-20124,-8725,-28474,-22543,-11536,23301,-8560,25710,-27166,-26726,15191,-32448,-30881,-23203,-2105,32461,-7066,-23401,2170,8654,-11306,25061,-2069,15390,22377,-19572,30353,18105,-3494,-31213,-24283,31715,31200,-3829,18258,-16854,-25538,17078,6001,-14191,-6075,21124,11306,10225,-7423,-31576,-30166,-14211,-15556,-27359,9335,-18036,-11834,-1890,-30507,-12289,1009,16254,19518,23784,-22628,27891,-23609,-2427,-21770,11217,1313,-13166,1573,32368,10438,-30995,-11180,-31804,21787,-26771,-21860,-4969,1391,13453,6792,-24002,5632,-4461,27332,26259,15439,-17572,9974,-10248,24066,-10373,26798,-31097,-15300,28484,-2545,24556,27524,-26941,21461,18331,-1595,-15134,30509,6064,-13699,25797,-21285,-11188,3280,-27349,-10362,11752,-18923,513,-6929,13901,-3512,5759,18514,22094,11080,30695,-1381,-3844,-19696,-14827,26065,-32234,-1968,1619,-32635,-22551,-23759,-30068,3214,-22571,-8052}, {8046,10928,9895,-29510,-9775,30148,20173,324,-27471,5842,4630,-764,-32657,-3008,4564,741,22487,-20455,-2106,-5194,-21239,3885,-13853,2135,-31215,-14710,-6962,-6774,-18685,9104,21989,14016,-697,2915,-1291,348,-27459,-12901,29343,-5258,-22611,-22314,23506,3593,19976,21916,22114,-28052,-1932,-11339,-24432,13659,-25009,-15511,-6505,20633,911,-7206,-14625,13626,790,-16341,9457,-7364,11484,15721,-2382,23089,-9844,-12570,-4451,-1798,6862,2469,-15053,-14836,9970,-18492,-15166,-7289,-31968,20204,21670,-27553,-2193,-2746,-22806,20877,-9927,3432,21047,-8342,-28294,-9142,9303,17853,17786,-29988,7196,-28058,12358,-12655,-12095,-12074,-5752,26430,-25012,8474,-14806,-13709,-28170,8206,24593,-22337,-18388,22036,-5758,-21604,296,6450,-7771,-25764,21144,-51,19511,-19323,-2104,-1949,32428,-7085,27671,32319,11773,-14873,24033,4605,12385,15093,23224,5050,-6439,-25093,12698,24959,-17869,30055,31808,-29301,23011,11658,-17636,21157,26283,-30632,18698,-8441,21008,10964,21715,606,-14374,21797,2605,-6284,27139,-29043,-717,3273,-18356,-5553,-17257,-16937,23851,-16862,-27912,-16133,-12999,21132,-28023,26990,-19532,-25851,-19422,-19278,-11286,20540,16344,-7188,6171,32379,-28345,19290,28707,-32717,23774,31321,29472,-25131,-10534,-30978,-19550,-26800,-31408,26350,2743,15065,-25129,-14748,5817,-13774,-23231,4134,5268,-12286,738,-14726,358,11433,6897,-4003,2759,-13238,22835,28667,27681,-26720,4433,-20977,-1755,-22836,-8002,-1524,15938,-9072,-24226,-20496,10209,21872,6618,3818,2183,-3852,-29862,-14996,-17269,7196,19614,-6054,-11927,31798,32156,-27778,29130,14646,-30689,16212,2119,-17559,1573,8349,-13507,24074,-19641,-12909,28376,27260,4979,-21453,27345,-12337,-8105,13896,-28267,-29763,-5763,7798,-9285,-15010,19008,-5126,-25650,-20856,-14485,-25635,-11509,1874,11261,32580,28871,-6075,22894,-15875,-5210,31124,4429,15427,-7383,-6860,10775,15179,-3399,10854,22481,-18799,-6995,22886,-7691,-9531,-22907,-9900,-23684,-10525,10391,20970,23436,-11645,3504,17612,-26412,25111,18907,-20944,3416,-6148,6139,-18610,12682,4356,-31653,-16366,-20694,13307,-20959,15693,-13147,18792,20437,24623,13841,-2081,19868,-29857,22092,-2735,-24558,7882,10445,-12567,23397,2834,4716,26323,-21790,-26393,1319,30209,-3262,-10746,11022,-32171,18013,30095,-21821,27505,-28697,10775,-12359,-5972,10393,15433,32380,28718,15456,-28409,-2877,-14057,8420,24851,-10483,9653,-25231,6053,-1118,-15324,27730,31963,-22964,29952,-12935,-29534,15219,19268,-25541,-7009,-13563,1479,9479,-11039,6923,8010,26702,1970,16546,-4322,16739,26095,-22976,15054,10673,29655,-20261,-16162,-5217,-9352,-16216,-1773,10189,22931,12812,-8574,-30538,-2844,-5469,24959,10797,28516,16062,-21602,30202,-6835,30202,-27831,5457,17254,15491,27329,-22885,9648,-3359,-17670,-18108,-7106,969,-31147,12381,26048,13018,-12759,15869,-4368,2418,31360,26513,9746,15046,20441,27013,-13786,30595,11982,-12889,24000,-1985,-25182,-5400,9866,-583,29680,3365,-19813,2502,23008,-3467,7049,-18154,30380,28614,-9782,16492,27780,-5437,-26162,9507,176,-8221,-7909,-14327,-18158,-16648,3598,-30956,-10216,-23720,28988,-26590,-20763,12405,29811,22797,-696,6126,5431,-27824,-22698,9873,31905,22865,-7460,24639,7045,4149,-9293,-212,809,18819,14773,2098,-9089,-28495,-1323,-14314,12047,5509,3940,24861,-1869,-22532,19457,29787,-29158,29743,13238,15563,4503,15031,-11577,28302,17608,15707,10233,2549,7276,21845,8050,-17319,2930,-26621,23167,21058,-12987,-26099,23130,2517,-9974,-25218,20263,7273,27245,-7082,-16881,2411,30969,-11628,21035,-21150,-21267,21277,22985,7435,-2128,26646,25459,-1094,-5677,-31831,14823,-15498,-1850,23175,-7522,6007,-10112,17950,-18881,-31912,29788,-7426,-13070,-19648,22901,-15213,-29933,5059,17979,-7291,-21171,-13681,1680,-13091,3853,-32181,28459,10295,17811,19738,10131,18587,9888,-16175,25684,-16075,-21890,-136,-14626,-20760,-11701,-5592,-28853,32219,-14546,-13429,9285,20791,-21920,-782,26819,18044,-28382,-1649,17664,2404,19397,26778,-19526,-15697,2698,12137,29496,-24408,-6464,-26877,10171,-1073,30517,27897,6042,24516,31221,14948,-238,21272,23842,-29169,-25528,7470,-23795,-23213,-761,-19568,-30382,-16682,-22840,27861,24292,21128,-32305,4643,-23178,-29313,30597,-14507,-28509,18162,-3482,-22605,16518,14461,26745,-24084,16860,-21823,11875,-25745,8175,-27396,-19893,13542,-6156,-30204,18453,-12789,27756,-8877,298,1581,-32743,5882,3482,-7932,-29959,-11576,-30333,19864,28685,9457,-27456,-22926,1976,27570,-21432,27636,15500,-32328,15764,15392,431,-26474,20064,12717,9731,-3095,-32498,22210,-1811,197,-10132,-5572,-7374,13133,18255,-84,-2546,31915,-23470,-14965,19368,18774,-16618,28840,29726,-26521,-12053,22291,-8064,-18163,8328,21439,10672,23928,-6964,-9811,20564,-22849,-26426,-5841,-31935,-18264,30943,15585,3169,-34}, {-3543,-22286,26580,-9168,9166,-5935,24946,22396,-23630,-11720,30378,-21391,10062,18526,-28332,-24781,19626,-2127,-4117,-15403,-21537,3791,-24513,-15116,21330,28071,29422,20498,24442,21299,15508,30649,32064,-7159,-3284,-17117,7782,-12209,22437,-1455,27947,32507,328,14316,-6514,-24027,-29198,11532,-11587,17796,-12459,-27200,26890,-13751,-9044,28458,-15235,-29218,-24924,6794,-9068,18251,-11573,-10400,-5194,-10944,31151,-30043,-381,6350,6656,15993,24358,-26699,11676,-31631,2031,-4872,7154,23147,-24678,25141,24529,17328,-16433,-16941,11686,235,-54,31975,-18920,17765,-15577,-5330,-17510,-5027,-31397,18089,-26226,-11373,17175,-1478,-27556,-31713,22993,-30906,756,28908,-6186,10439,-8252,-1982,-3027,32139,-20609,6717,15570,14873,-22216,13891,-21396,-16530,5997,11531,10435,-16106,10402,4305,-21443,-27138,-8575,-11990,21126,-29130,9473,20749,-15049,23490,-14483,-11214,850,-26901,24199,-9653,-18957,-7561,694,-26342,-5646,16057,21809,12830,15137,26855,-22625,-30557,-18975,1299,11248,-27679,-13193,-23289,29043,18969,-453,-25925,-21302,2781,-328,-27565,9627,-4103,-13694,3122,-3052,21091,-1303,29107,22322,12421,463,-20411,10980,-8384,-10656,-18656,19607,-8937,-19298,23530,-853,25993,23483,-10779,-26576,-25333,4110,15962,-27935,-8689,6378,21865,23410,-11842,7634,-18607,-5720,-16314,10413,19004,19694,25178,-16119,-27093,19614,8219,20170,-25797,31082,803,-16864,21126,11466,-31829,-10421,29046,-22904,-27829,-488,-19991,11424,-24090,-1668,31334,-5059,-24133,16097,4098,24988,11052,-26001,2893,3839,-7331,-9508,31946,3960,8134,25208,23557,-21258,30501,-8268,-3488,-329,10576,29356,-23235,10545,17002,-17745,6422,12080,12524,-21323,1845,2625,-18498,-24808,-20355,-19455,18262,-23415,25861,25176,1996,-1199,10497,-5272,-8816,11248,-2316,25744,8533,-18146,-23384,15092,-29950,22674,19587,12875,-13711,30326,-9561,15395,11699,24136,31451,-26424,21593,-18143,23934,-15025,-272,9427,-32542,6953,-23178,-15506,-24653,510,28018,11353,21147,29145,18688,24834,26433,5568,24450,8316,5848,-6099,-18535,25100,-6987,31315,-8944,-30336,10523,19433,-32110,-19864,-28526,-17070,-889,26061,-18081,-26679,7207,19264,-18459,-8368,-23253,28253,11995,-25366,-5215,-4435,25262,-23153,-9779,-13422,30911,-676,-15619,-29435,-32420,-27544,16113,-26141,21932,16928,7217,-29980,-11519,31763,-18804,19518,-29448,32669,-30539,18739,-428,3364,4421,22835,26371,-26530,-16046,-8117,-11752,-2694,-5408,9372,-2248,1806,20927,-13847,-23686,-14558,11471,-13395,19785,3331,-3738,13484,12631,-13052,-23875,8671,11258,26426,26321,1584,-29869,-15250,26089,-4817,24640,1442,-13798,-7308,-10522,-17954,-2582,25457,30234,5723,-27888,-14504,7435,-31404,-20119,-26083,26092,-31277,26172,-26840,1989,18299,-9582,23839,29846,29171,-31195,-23310,18158,-32202,16546,-25146,18221,-5921,-18357,835,12200,13268,-25157,11857,-3896,-6468,20055,-6650,-19225,-10982,6892,26426,-26735,-23737,-28266,-6270,-8380,-27395,-24482,26073,5278,3285,9188,24361,-21186,-13140,31213,22307,5892,7117,-28468,-8516,30179,26851,12143,-12337,17422,14317,25922,-23310,828,5118,-15837,-9497,-22146,17359,-23578,691,-13512,-2965,-16701,26117,31139,24528,-20994,31959,-5223,5047,22055,1292,-7735,4869,-32623,-1855,-24208,4620,-1516,11352,-1688,15433,-3834,-9784,3999,-12759,21819,-12172,7232,-26973,-16039,-9939,-22760,-28719,-30000,16425,-7312,15391,-1877,23482,-5646,-3580,14108,22027,-15557,-711,-28671,5835,23936,-13485,28130,20409,10776,28481,30479,24400,7248,-31197,-24662,-29983,-7509,31847,-30015,6267,-3801,8401,25356,-4678,20099,-6950,1366,-14328,-14717,13227,-12075,26373,5209,-20192,-12664,21039,-19964,-14416,-23430,-26103,27684,9841,-13751,-12112,-11576,-14530,17432,-2878,-943,-3158,27719,-5807,-12555,20554,22925,-6098,-23631,-17047,-11122,18961,-27316,-31596,1965,1777,12580,-23047,27239,13477,-23022,-22362,-27662,3305,26560,31456,-27987,28536,-31375,6699,-20322,-21284,-8434,-26068,22912,-11591,5929,26915,23613,-448,-11876,18654,-17281,-21593,23886,-19620,2971,-9479,24858,22748,20982,11646,19438,-23794,31129,-31893,9520,6095,-4507,15379,29940,44,-17931,-1989,21083,15658,-1040,6281,-15203,19651,24007,-32757,-16465,20144,-32560,9210,20769,-25419,22104,19043,-13081,29012,-2396,-25090,24836,1268,-15068,7213,-32290,-20472,31070,2719,-2733,27730,-5959,16951,-8997,-4830,7929,-12788,-26847,1753,-14129,21586,-2651,-12685,23117,671,-7894,-19392,-20578,27818,8673,18030,32601,24851,-16342,16809,24557,10659,-17657,340,-10616,-21223,23278,17843,14369,14679,2786,-22366,10049,-6217,-16849,-5961,894,-5310,1027,-23730,17182,-15523,3922,-7478,-2491,12915,-15880,3552,3216,-1818,24521,-7394,-28325,-24120,31698,-26273,26834,8391,-849,5265,-28343,-16536,-23904,17640,-26396,-32076,-7449,-31821,-588,-8373,22821,26278,19767,17399,-7681,21486,30697,-32121}, {-5020,-10312,-11156,-892,-29949,8277,-20009,-26525,32483,12721,14307,18874,-23164,25029,5455,9698,2956,17969,21897,22215,9822,19457,-29990,-9273,-10855,26252,-12343,28619,-32221,12242,-18641,30573,22746,20561,-7756,-23362,-2510,-8312,198,-6675,15264,1319,-29797,-7687,14182,-27106,3136,1182,7512,27826,-31170,31437,-9598,12030,-18154,26323,-32446,-22131,-2661,-24841,32380,-19554,-1926,-25328,-24641,-2085,30359,11344,2160,4741,-15131,-9959,-26215,18005,-17715,11655,-8046,16279,-7822,7553,-22586,30893,-10565,-10623,-31257,11239,18952,-12982,27499,-27393,22986,-10990,-5754,-16912,-32162,-16912,-18726,25312,15639,19282,22438,-8511,25940,4024,25856,-1593,14564,12585,-29894,26667,5559,461,27024,-13921,-3069,6948,29222,-30759,28114,-23397,15637,8855,-20059,-20760,2101,2441,-18822,-32048,12902,25153,-15804,-11665,-27057,-14354,4670,12992,-16537,18537,-30207,-9995,-31958,-25603,-7225,23064,-30142,1311,-10565,-15576,-29462,15782,-29965,26537,105,11259,3351,20192,-13215,-16166,13335,27937,-30551,-6369,-15723,11716,31454,-17171,-30403,31868,-22969,9333,-11229,-17432,-1119,30630,-31101,21390,-23801,-21771,18198,-15565,-15883,-27791,-25030,1241,15427,16589,2173,-20750,-5840,8598,28661,-28567,-9683,19471,-27398,3258,4551,-28061,29115,21624,-1649,16516,11643,8886,8822,10820,29635,28190,-5270,24331,3939,17804,5551,-19139,-26953,1603,-28968,-15595,-23684,8397,-30747,-16534,10888,11458,19047,5149,31832,1970,22632,-8213,-23650,-6068,23699,3426,-14394,-1533,-28009,-25125,-26645,15514,11523,684,-22730,-10776,12435,-9889,-2889,-21044,27744,10349,-16659,-22764,-10507,-24232,-1769,-4391,-8386,6572,-17008,32079,-4070,1604,-11576,9397,-16545,3279,2000,10377,14305,2223,20364,-32584,-10395,3174,22257,8465,-19716,26157,27363,2179,11613,10282,-27680,3113,-20379,13696,-24999,25885,6818,4816,20954,30806,20245,6391,-14267,48,32137,-10140,-22438,20662,-4721,31985,29760,-3796,30031,8024,-9265,-13963,29707,-28763,-11961,-1736,-28525,-29902,32727,-17447,-20233,-26275,27615,6462,24859,-31234,-4501,-31093,27084,-12820,-29000,-32071,-1981,-28609,-20878,5626,-29407,-29100,1197,-30255,403,30321,-19226,15902,-21914,28937,-875,-25193,-49,19615,30309,-18709,2687,-3643,22522,1656,11876,23136,-17491,10464,25952,-15946,22278,-20201,-23522,30469,1038,11033,16779,-11055,18795,24585,-12631,-10992,14234,21173,12322,15939,6345,18480,-18525,-4704,28868,-2466,-17853,-4983,-3313,27197,24520,4675,17216,-19366,4152,6509,-12648,30247,19604,5529,-31221,21347,-66,28102,23556,-23752,3888,-15222,-5924,25490,2855,22230,10033,24464,-29182,-4080,-17510,22242,31184,-1259,25628,4499,-9488,-8148,-12135,-12188,-4111,11513,-29661,-8783,-3111,3860,13104,14111,-24802,756,-321,-30548,6142,-5390,-32049,9686,18352,12630,19867,-32049,10631,-16178,-4542,24728,-24963,-29363,28283,19937,1863,-15748,22709,-2400,9029,31895,-18288,382,16332,21843,-15448,20597,-1679,-17140,-7816,-29365,3926,-28468,2019,19810,3879,13535,-22666,29458,-8905,-886,-18883,19867,17959,-5232,31050,14523,-453,10062,31218,-5442,-14541,-12698,15511,-6485,406,26857,-2379,30392,-28220,-11677,1711,-6050,4501,-12832,-13389,20966,-30576,-16554,7711,4979,27888,-14651,12684,-20926,-29675,-19386,-4265,27213,-13666,-10167,15605,23780,-24591,31349,-17270,-27666,-4231,9864,-10949,-24693,1707,-18754,-25138,-3355,12932,-8804,7902,8288,32183,6289,8090,-20266,-28097,7593,9776,-1717,20507,21863,5032,-13027,-5582,-7939,-21123,5240,17495,11939,-9071,16827,-29580,-11073,-22816,-6260,-9104,-8108,32414,25572,29101,17793,1602,-21055,11796,29996,-23158,11345,-17142,744,19720,-26442,-19237,-3899,-13196,-15321,2746,14770,-26923,-26576,6719,32263,-82,13495,29307,19490,-12809,-11625,-12287,-17242,-29314,7954,-27622,24231,15687,25649,13431,-29731,-2119,-18925,-22175,-16549,-18782,-20118,18856,937,-169,8957,-12220,20403,30693,-2457,-5538,14045,7031,-25944,-19209,-9830,-1392,8616,19966,14692,10853,-354,27741,-26671,-4370,28418,-27929,-20274,-4371,-15595,12024,31585,944,-12505,700,18735,18613,-23814,31749,-28873,-8765,27994,-22681,-13102,-10330,-6872,-17675,23941,78,28654,-7584,-29535,-15136,28216,4103,-22226,-15149,8390,-31296,-21753,6171,24958,10123,14010,-17077,21668,8830,-16740,30657,22680,-6261,32180,-3298,-12142,-142,21852,-29733,-21597,-19049,-24372,24577,6323,-3726,3328,28539,19016,4535,2791,-14103,-9707,-11355,-10662,15923,-18733,11440,24079,18117,10176,-11881,-23015,13781,-32679,-9728,18460,-584,13013,-21845,21464,-21662,-18920,22960,4954,-8322,22904,-21561,22597,27115,3810,-30739,-1308,-14076,-22933,-8696,2050,25175,-5698,-18156,9765,220,-1375,-18220,1119,-6372,24572,9453,-4736,-10432,-837,-1557,814,-17046,-16023,-17767,30115,-6991,-26481,-15150,29474,-22256,-20546,-30640,-22194,-3579,341,15748,12209,11371,-27809,30303}, } ; static void test_encode_761x4591_impl(long long impl) { unsigned char *s = test_encode_761x4591_s; unsigned char *x = test_encode_761x4591_x; unsigned char *s2 = test_encode_761x4591_s2; unsigned char *x2 = test_encode_761x4591_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_761x4591_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761x4591(impl); printf("encode_761x4591 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761x4591_implementation(impl),ntruprime_dispatch_encode_761x4591_compiler(impl)); } else { crypto_encode = ntruprime_encode_761x4591; printf("encode_761x4591 selected implementation %s compiler %s\n",ntruprime_encode_761x4591_implementation(),ntruprime_encode_761x4591_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_761x4591_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_761x4591_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_761x4591_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_761x4591_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_761x4591_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_761x4591_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_761x4591(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761x4591")) return; storage_encode_761x4591_s = callocplus(crypto_encode_STRBYTES); test_encode_761x4591_s = aligned(storage_encode_761x4591_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_761x4591_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_761x4591_x = aligned(storage_encode_761x4591_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_761x4591_s2 = callocplus(maxalloc); test_encode_761x4591_s2 = aligned(storage_encode_761x4591_s2,crypto_encode_STRBYTES); storage_encode_761x4591_x2 = callocplus(maxalloc); test_encode_761x4591_x2 = aligned(storage_encode_761x4591_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_761x4591 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_761x4591();++impl) forked(test_encode_761x4591_impl,impl); ++test_encode_761x4591_s; ++test_encode_761x4591_x; ++test_encode_761x4591_s2; ++test_encode_761x4591_x2; } free(storage_encode_761x4591_x2); free(storage_encode_761x4591_s2); free(storage_encode_761x4591_x); free(storage_encode_761x4591_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_761xfreeze3.c0000644000000000000000000010054214705505543023345 0ustar rootroot/* ----- encode/761xfreeze3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_761xfreeze3_checksums[] = { "86a1be02df02f23f8ca5945147a0828fcf2fca756cb71c59f23c8e77ad236fbd", "eea69494ef8944ba675ce29a3b004c6e03e1356459dcd1e7bf0afd07d8a62b62", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_761xfreeze3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_761xfreeze3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_761xfreeze3_ITEMBYTES static void *storage_encode_761xfreeze3_s; static unsigned char *test_encode_761xfreeze3_s; static void *storage_encode_761xfreeze3_x; static unsigned char *test_encode_761xfreeze3_x; static void *storage_encode_761xfreeze3_s2; static unsigned char *test_encode_761xfreeze3_s2; static void *storage_encode_761xfreeze3_x2; static unsigned char *test_encode_761xfreeze3_x2; #define precomputed_encode_761xfreeze3_NUM 4 static const unsigned char precomputed_encode_761xfreeze3_s[precomputed_encode_761xfreeze3_NUM][crypto_encode_STRBYTES] = { {1,0,1,255,1,2,255,2,255,0,1,0,254,1,255,1,2,0,0,1,255,2,1,0,0,0,1,0,0,1,1,0,2,255,0,0,0,255,1,255,0,0,0,2,255,0,255,255,0,0,255,254,0,2,1,2,0,2,0,0,2,254,0,255,1,254,255,0,255,255,1,255,0,1,2,1,1,254,255,0,0,2,0,1,0,0,0,255,0,1,1,0,0,0,255,0,0,254,0,255,0,255,255,0,254,0,0,255,1,0,254,1,1,2,0,1,0,255,1,254,0,255,0,1,2,0,0,0,255,2,0,1,0,0,255,0,0,254,255,0,255,0,255,255,1,0,254,1,2,1,0,255,1,255,254,2,2,255,1,0,0,255,255,1,0,255,255,0,1,255,0,0,255,0,0,0,255,1,0,255,0,0,1,255,0,255,254,255,1,1,0,0,0,254,1,255,254,255,0,255,255,255,255,255,255,0,255,1,1,0,1,0,0,0,1,0,0,0,255,255,1,255,1,255,1,0,0,255,2,255,255,0,0,255,255,0,1,1,0,1,255,255,255,2,0,255,254,1,1,255,0,0,1,255,255,1,2,1,1,254,254,1,2,255,2,255,0,255,0,255,1,1,254,255,255,0,1,0,0,1,1,254,0,0,0,0,0,254,0,0,255,0,255,254,0,0,0,0,0,0,254,1,1,0,255,255,1,0,0,255,2,0,1,1,255,255,0,255,2,255,2,0,1,0,254,255,0,254,255,0,1,255,1,255,255,255,0,255,255,0,1,255,2,1,0,1,1,254,0,255,255,1,0,2,255,0,0,2,255,1,255,0,1,1,255,255,1,0,0,1,0,0,1,0,255,0,1,0,0,0,0,0,254,255,2,255,0,0,254,1,1,1,1,1,255,255,1,1,0,1,255,1,0,255,255,0,0,2,0,255,0,255,0,0,1,255,0,1,255,255,254,255,255,0,0,0,0,255,0,255,0,0,0,0,1,255,1,0,1,0,1,0,1,0,254,0,255,0,0,254,1,0,2,1,1,0,0,1,0,2,1,1,255,1,255,2,1,255,255,255,255,255,255,1,0,255,255,254,255,255,255,0,2,255,0,2,1,1,255,0,0,255,255,0,255,0,2,255,0,1,255,1,255,255,0,1,2,0,254,0,0,1,1,0,0,255,1,1,254,0,0,0,255,255,0,254,2,0,255,255,2,254,1,0,0,0,254,0,1,255,0,0,255,1,255,0,0,1,1,1,0,255,1,0,0,0,0,1,0,255,0,255,0,0,1,1,0,255,0,255,255,1,0,2,254,255,0,1,0,1,0,1,1,0,0,254,0,1,1,0,1,0,1,255,0,255,255,254,255,1,0,2,255,255,1,0,255,254,1,255,2,0,254,0,255,1,0,255,0,0,255,1,0,254,255,0,0,0,1,0,255,1,0,0,255,255,0,1,254,1,1,0,1,255,0,1,0,0,0,255,1,255,0,0,254,1,255,255,0,0,255,0,0,255,0,1,255,255,254,255,1,0,255,255,1,0,1,254,1,255,255,255,0,0,0,0,255,254,1,255,255,0,255,255,0,1,1,255,2,254,1,255,1,254,0,0,0,255,1,0,254,255,255,0,254,255,255,0,2,0,2,255,255,2,0,0,2,1,2,0,255,1,255,255,255,1,254,0,1,0,0,1,1,2,0,1,255,0,2,0,254,254,0,2,1,0,0,2,1,1,254}, {0,0,1,0,0,255,254,1,2,255,1,1,1,1,0,1,0,255,254,1,0,254,0,1,0,0,255,0,2,0,0,254,0,2,1,1,2,0,255,0,1,255,254,0,1,254,254,2,255,0,1,1,0,1,255,0,0,0,0,0,0,0,255,1,0,1,255,2,255,0,0,255,0,254,0,1,1,0,255,0,1,0,0,254,255,2,255,2,2,2,255,1,255,0,0,1,0,0,255,1,254,1,0,255,255,0,0,0,0,1,255,0,1,255,0,255,2,255,255,0,0,1,0,0,0,0,255,0,1,255,1,254,0,255,2,254,1,0,1,255,255,0,254,0,0,1,255,0,255,254,255,2,0,1,1,0,1,0,1,2,1,255,0,0,1,255,2,1,1,255,0,0,255,0,255,254,1,255,254,0,0,0,1,1,255,1,255,1,255,0,1,255,254,0,255,254,1,254,0,2,0,254,2,254,255,255,255,0,0,1,255,254,1,254,2,2,0,0,0,255,255,255,2,0,2,1,254,255,0,254,255,2,1,2,1,1,1,254,1,255,0,1,255,0,254,255,0,255,254,255,255,1,0,255,1,0,255,0,1,255,1,1,1,2,0,255,0,0,0,1,254,0,1,0,255,0,1,1,0,255,0,0,1,1,0,255,0,1,0,1,254,0,1,254,0,2,255,1,1,0,0,0,255,255,254,0,0,255,0,0,0,0,0,0,0,0,0,255,2,255,255,0,0,1,255,255,1,255,1,1,1,255,1,2,1,0,0,1,255,0,1,0,255,2,1,1,1,0,0,255,1,255,2,255,254,1,1,1,0,0,0,1,0,0,0,0,0,0,2,255,255,255,255,1,0,255,1,254,255,1,0,254,1,1,1,255,0,2,255,2,255,1,1,0,0,0,255,2,2,255,255,1,0,0,1,0,2,2,0,1,255,1,1,255,255,255,0,1,255,1,254,0,0,255,255,1,0,0,0,0,255,254,0,1,0,0,255,0,0,255,255,0,0,0,0,2,254,0,1,1,255,2,255,2,255,0,255,1,2,0,254,1,255,0,1,1,1,1,0,0,1,0,255,254,1,0,255,0,255,1,0,255,1,2,2,1,2,2,255,255,1,1,255,255,0,0,1,2,255,0,254,255,1,255,255,1,0,0,0,0,0,254,0,254,255,1,0,2,254,1,1,0,0,0,255,1,1,0,255,0,255,0,0,255,0,255,1,0,0,0,2,1,0,2,1,1,2,255,255,1,255,1,255,1,0,1,0,0,255,0,0,1,1,0,0,1,255,254,1,255,0,1,255,1,254,255,0,255,1,1,1,2,255,0,0,0,255,255,2,0,2,2,1,254,255,0,255,255,0,1,0,0,255,0,0,255,0,0,1,1,0,254,0,1,255,255,254,0,0,0,0,0,255,0,255,0,0,1,0,1,0,2,0,1,1,255,0,255,255,255,0,0,0,2,1,254,0,1,255,0,0,0,2,1,1,1,0,0,254,1,0,255,1,254,254,0,1,0,0,1,255,255,1,2,254,0,0,0,255,0,2,255,254,0,0,2,0,1,0,255,255,255,1,255,255,255,0,1,1,0,1,1,0,0,0,0,0,1,255,0,1,255,1,1,255,0,0,0,255,0,0,1,0,0,255,0,0,254,2,255,1,2,255,0,0,1,255,255,255,254,0,255,1,254,255,255,254,1,255,1,1,255,254,0,0,255,1,254,2,1,0}, {255,255,255,0,255,1,0,255,1,254,0,0,0,255,255,0,255,0,1,0,255,0,254,0,0,1,255,1,255,254,1,2,255,1,1,1,1,0,255,255,254,1,1,1,255,254,1,2,1,0,2,0,0,255,254,1,255,0,2,1,1,1,255,0,0,1,2,0,0,254,0,1,254,1,1,0,1,0,255,0,0,255,0,255,255,254,0,0,2,0,1,255,255,255,254,0,255,1,1,255,255,0,1,1,255,0,2,0,255,1,0,0,0,2,0,254,254,1,255,1,1,254,0,255,2,2,0,0,1,255,1,255,1,0,1,0,254,255,1,255,0,0,2,1,0,255,0,254,0,1,254,1,1,1,255,255,255,2,0,255,255,1,0,0,1,2,254,2,2,1,2,255,0,255,1,1,0,0,2,0,0,2,255,1,0,0,0,2,1,255,0,0,2,254,1,255,254,254,255,255,254,0,2,255,255,2,254,255,255,1,1,0,1,0,255,0,255,0,1,0,1,255,0,0,0,255,254,255,0,1,1,0,255,2,0,255,0,255,1,255,1,0,1,0,2,0,255,0,255,255,0,1,255,255,255,0,0,255,1,0,254,254,255,2,255,1,1,0,0,0,255,0,1,1,255,254,0,255,0,0,1,1,2,255,0,255,0,1,1,0,0,0,1,0,1,255,255,254,2,255,2,0,1,255,254,254,254,254,254,254,0,0,255,0,255,0,1,0,255,255,2,1,255,0,1,1,255,0,1,0,2,1,1,0,2,255,0,2,2,2,255,255,254,255,1,1,0,2,1,255,1,1,254,255,255,255,2,0,1,1,1,255,255,0,0,255,0,255,2,0,255,0,1,2,2,0,1,255,1,1,1,1,0,254,0,1,0,0,0,0,0,1,1,0,1,1,0,2,255,1,1,255,1,255,1,255,255,255,1,0,1,0,255,255,0,2,1,255,255,2,255,1,0,255,0,0,1,1,2,0,0,1,0,1,254,1,2,255,0,0,254,1,1,1,255,255,0,0,0,255,1,255,0,0,0,0,255,255,0,0,0,2,2,0,0,1,255,1,1,1,255,255,255,0,1,254,0,1,255,0,1,0,0,1,1,1,2,254,0,0,0,254,1,0,1,1,1,1,0,255,255,1,1,1,255,0,2,1,0,1,0,255,0,1,0,1,0,1,1,1,1,1,0,255,1,2,2,255,1,1,2,0,255,1,1,1,2,1,0,2,1,254,0,255,0,255,0,255,0,255,0,2,0,1,255,1,1,0,0,255,0,2,0,0,1,255,0,0,255,1,255,255,2,255,1,255,1,255,254,0,254,255,255,0,255,254,0,0,2,1,2,2,0,1,254,0,2,255,2,0,1,255,255,0,2,254,1,0,254,0,0,255,255,0,1,0,0,0,255,2,2,1,1,0,0,0,2,1,1,0,1,1,255,0,0,254,0,0,255,254,0,0,255,0,255,1,0,0,254,0,254,0,1,2,0,255,255,254,0,0,0,1,254,254,255,255,0,0,0,1,254,255,0,2,255,255,2,1,1,0,0,1,0,0,2,1,2,0,1,0,0,254,0,1,254,0,255,0,254,255,255,0,255,0,1,1,0,0,254,0,255,1,2,1,0,1,0,0,1,255,2,255,1,255,255,0,254,255,255,0,1,2,255,0,2,1,0,255,1,1,255,0,254,255,254,255,255,1,0,254,1,2,1,255,1,0,0,255,255,1,0}, {254,1,1,2,0,1,255,0,255,1,0,255,0,0,0,255,1,1,0,1,255,0,0,2,255,2,2,2,0,1,255,0,0,1,1,0,1,255,0,255,1,255,0,255,254,255,0,254,1,1,0,1,255,255,1,255,0,0,1,0,1,255,1,1,0,255,1,1,255,0,255,1,0,0,255,0,2,1,1,2,0,2,1,255,1,1,0,0,1,0,0,1,255,0,0,0,255,0,0,255,1,1,255,0,0,255,255,1,1,2,0,0,1,0,1,1,0,1,0,2,0,255,1,254,0,2,254,0,254,0,254,1,255,0,1,1,0,255,1,0,1,0,255,1,0,1,1,0,0,2,255,0,2,2,0,0,1,2,255,2,255,255,1,0,0,0,255,255,2,255,254,0,255,254,0,0,255,254,1,1,1,0,255,0,255,0,0,1,0,2,254,1,1,255,1,1,2,255,254,254,2,1,255,2,0,0,0,1,1,255,2,0,255,1,0,2,255,1,1,1,255,0,1,0,0,254,1,255,0,255,254,0,0,0,2,255,255,255,255,255,255,1,1,0,0,2,255,1,255,1,0,0,0,1,1,254,1,0,2,1,2,2,255,255,0,0,0,0,2,0,0,0,1,0,1,0,0,2,254,255,0,1,1,255,0,254,2,255,255,0,1,0,2,0,255,255,255,0,0,1,0,0,1,0,255,1,255,255,0,255,254,0,0,0,1,1,255,2,0,0,1,0,1,1,255,0,0,0,0,1,1,0,0,1,0,2,0,255,0,1,255,2,255,0,1,255,0,2,1,1,0,2,255,1,255,2,255,1,254,0,254,0,254,1,0,254,255,0,0,0,0,255,1,0,255,255,0,255,1,1,255,2,1,1,255,0,0,1,0,0,2,1,254,1,255,0,1,0,255,255,1,255,254,0,255,255,1,2,0,1,255,254,0,255,254,2,0,1,255,0,1,1,1,255,0,255,0,254,2,0,0,0,0,255,0,255,0,255,0,2,0,0,255,254,0,0,0,1,255,1,0,0,254,255,0,2,255,255,1,255,1,255,0,254,1,255,2,255,0,0,2,254,1,255,1,0,255,1,0,255,0,0,1,1,0,1,255,255,255,255,1,1,0,1,0,2,255,255,0,2,0,255,0,255,0,0,254,1,0,255,1,0,1,1,1,2,0,254,1,0,255,1,0,0,0,1,0,254,255,255,0,254,255,0,1,0,0,1,0,255,255,0,0,255,255,2,254,0,2,0,254,255,1,2,0,2,0,1,2,0,1,1,0,2,0,0,0,1,0,0,0,2,0,2,255,255,255,255,0,2,1,255,0,255,255,0,1,1,0,254,0,0,255,0,0,255,255,0,0,1,0,0,255,2,1,1,255,1,0,255,1,255,254,1,0,1,255,1,0,1,0,1,255,1,254,0,255,0,0,255,0,2,255,255,1,255,1,255,255,0,255,255,0,1,255,0,255,1,2,1,2,255,1,255,0,0,0,0,1,0,0,0,255,0,0,0,0,254,1,0,0,255,255,1,0,1,254,1,2,0,2,0,1,1,1,255,1,255,0,0,2,0,2,1,255,0,0,255,1,1,254,255,1,0,0,0,0,0,0,1,1,0,1,0,255,0,254,255,0,0,1,0,255,254,0,1,1,0,1,0,255,0,0,255,2,255,255,2,1,1,0,255,0,0,1,1,1,1,2,255,0,255,0,0,1,0,0,0,1,255,1}, } ; static const int16_t precomputed_encode_761xfreeze3_x[precomputed_encode_761xfreeze3_NUM][crypto_encode_ITEMS] = { {-27413,23394,-10631,-7306,-10499,-32089,20882,-22609,-13018,-28578,-4385,-1839,29404,13069,18095,-2438,-30805,30048,19329,-6803,-4975,-30181,10672,30816,22791,21408,-212,-20175,-30993,-8453,7258,27852,-20938,3584,6369,8349,21876,-13,-3497,6800,7494,-11565,-16590,-21781,18683,-2616,-10978,-11098,-2199,23202,8927,30796,-15645,-22525,-27686,-23392,-27753,-29500,8361,-13224,-27016,28555,12210,25568,-20114,24538,19562,12312,-12787,16844,-16178,-1072,-8817,142,-22759,-13535,-19715,32599,16400,-29025,-6654,-24358,-29469,-6917,-4923,-23967,-16692,22319,-2985,12391,-32525,12564,18636,-150,32294,684,10398,29557,28368,25589,-29673,5333,10112,-2361,16663,19263,-26040,1427,-4391,26211,24130,8251,-31274,-22303,-10740,12646,3654,-8503,-20240,20053,-2928,12251,-31182,-24452,-17272,18870,-11166,16512,13175,-28006,-3789,1243,-25545,-1851,31727,1542,-25938,17233,-13096,21807,-7552,6999,16235,8498,1780,13476,18400,-3686,-21193,14656,-27789,206,10570,27719,25783,-27901,-24883,24791,3241,27135,15909,-13123,4211,-24965,23508,26060,26111,8853,-11021,30923,29289,-26055,27281,1290,13479,15600,13727,-4136,2751,22103,-23574,28836,-32648,-15046,15801,-13288,26293,16700,-23846,7747,31983,22605,20106,18190,-8861,-15949,22144,13892,24132,-5599,1388,30524,1913,32447,19397,28854,17147,-24311,-30998,24186,-16256,-21885,19014,12741,-1535,32559,-11655,-25287,29942,1406,9961,-4768,13051,-199,2983,14877,16101,31991,-32242,-14611,-8119,27444,9666,15695,-8299,12564,1396,10405,10797,-13055,-4039,-1555,24260,-28735,-25842,24356,28060,-1136,10543,18020,-6678,-9330,-9182,17336,10688,-13091,-19627,-4019,9250,22696,28183,-2267,-20317,764,-17821,25052,31350,10352,4830,-13786,-23174,-4997,30169,-8437,-8344,18687,-20228,24678,-201,-14639,-31337,22855,-15390,14316,25155,-13281,20601,17818,18339,-5433,26018,4002,-7333,24673,-14343,-5496,-3477,16260,-27480,-28743,27844,6052,6367,-19368,9797,-1387,16075,-18939,-17904,-12403,-22942,28965,-30404,-16934,13289,18164,-14490,4820,-31063,32300,-25687,29265,-9890,-7530,22039,27002,-18933,30352,28838,-4914,14533,19133,-19166,8477,-9676,19802,-15666,30323,19700,-12474,3460,15617,-16960,-3095,-29460,14281,-11144,22252,-20184,-8392,3902,-21773,-20013,-19249,-9082,-29451,-22836,-20131,-16252,-20417,509,-60,15742,-14789,28274,-8728,-21317,2016,-13323,-18326,-18717,-5532,-5543,12291,28442,-18033,13942,24189,-7131,16092,-19293,24300,19078,1649,-21136,-11449,21999,-4455,23887,-8366,-14447,-23084,-20609,1636,4814,4910,-11732,-17231,-17382,10138,25655,-2234,-846,11786,-10087,-8928,-4584,-32071,7650,29651,2196,16895,10524,18717,16351,16106,-8553,-19388,29,-604,21409,-14542,20174,-10896,19518,-31137,-8850,7697,9018,30080,20859,-9951,18855,-23214,-31589,10466,-14561,-4536,13057,14157,-12653,-21579,-9809,30915,32212,-23448,21800,12264,3900,21013,1369,-15279,-29122,-10775,-28241,-9843,-5151,5902,24921,-31177,-10700,-2246,-4852,-1193,-7804,-24910,559,-14800,25847,-9961,14570,1160,14555,11650,-1179,12365,16334,32035,-11179,13787,16208,24753,-19843,19883,17229,-17560,-11135,-16529,-3994,-17241,29367,-8446,10256,13272,17942,-3594,-32728,-10780,9300,-26951,10397,976,2333,-4795,-21852,12103,-31720,5394,24580,-29607,-18525,5287,-28757,-5148,20628,32327,14698,2104,32395,30732,-17901,-25977,5381,23564,-32427,32074,-29359,-11415,-14134,25826,-25978,16810,1798,-17253,-14649,26982,18517,-31032,-2936,-1783,-7839,21978,29114,5701,-5092,2151,25602,-29447,-15164,-32342,-3648,21557,11410,18753,27732,30351,6348,-7169,-11298,22358,-11847,26231,-11574,-14538,-32612,-3452,6132,-11794,26250,-1579,-11059,-23288,-4782,-22849,32113,16139,-16176,-17903,13962,-27947,15477,-17462,-28160,9144,-14166,24001,-36,-11711,-3293,-31644,7909,30876,-12803,425,-24390,5249,-16006,28129,30581,16309,-30390,-28834,1061,28970,-20711,-11727,-3583,16744,-27956,-7093,-30706,-23091,29338,21858,-9574,-1748,834,15587,16458,29562,-11839,-10868,13056,31696,25496,-11097,26352,-16806,-10766,21861,-7990,7735,-6795,7815,15491,1895,-32379,-28667,24325,-28505,-17294,-30729,-26693,-8734,2559,-4886,25653,29739,-2472,-10804,-23174,17855,2382,14874,29191,13153,15584,3017,-7002,29439,-11758,-30051,-15303,-3703,15504,-15527,-15829,27371,22741,-2122,-25994,-1989,1370,11888,-30116,-5085,14779,21994,1912,-1759,19445,20708,4020,-17715,16395,22584,26804,20113,-21404,-2188,28844,26196,71,-2629,24822,11521,15661,30359,-31225,22717,-18038,32429,-29432,22975,-3585,-1176,29718,-7087,7081,27720,25996,-2920,2108,4476,28516,16163,7832,-2232,-23596,-21726,-32239,5354,-13678,-31900,-7719,-18951,-30172,1516,-30499,18138,-10180,-15587,-13453,8132,3020,-9587,30385,21708,10738,-27294,14367,-19940,4636,-19045,13311,-2120,28742,-13347,-29125,-17502,26593,32764,-4926,-28336,-5348,31722,-543,-31624,12343,-17024,25888}, {18600,-15099,-14003,-14784,-23292,12665,23773,10579,-22339,30746,-7787,2311,-30413,-10175,-27888,-14861,-24693,4142,29281,-6422,-30510,26164,7938,-2570,-32316,-25575,-127,8625,-28279,-28566,-24423,16756,21516,-21229,-26930,-13907,-28354,4230,20906,15870,-26207,-8479,23164,-12993,6850,27247,26548,-29764,17264,-25443,1381,-24632,1179,-16133,24341,18723,-16653,-2061,-12699,12240,-22206,-20430,21467,-18290,-1347,-22490,24335,-27229,13118,15687,29616,-13810,12816,23821,-24159,15229,-23054,-5664,25571,24744,-24260,-10878,16995,32380,18053,-28093,6104,-23680,-31858,-28993,6164,14839,4100,4755,24708,-20648,4782,-15747,12311,-21884,27451,-20855,-981,-6541,13337,22311,17838,-14097,-20808,-5795,6332,29394,10888,18725,26901,-1255,-22942,-9697,25412,-24786,22542,-14396,5529,825,-26487,12477,-12751,-13089,15727,-3148,2935,29104,28656,7820,-19930,18745,-7676,-7401,2005,16991,10514,27999,31291,-27189,26982,9436,5762,-6246,2903,25699,7868,-32497,1824,-29261,6124,4836,1285,1659,-1232,-30028,-8747,13121,969,-23286,-176,30725,-31348,-15368,9880,1046,24219,9129,20786,29361,22259,27586,-14858,-916,23128,7788,18162,31974,-7301,-23789,29906,-2048,4745,-22319,26348,27813,-7412,-9700,19081,-21663,-4951,25930,13711,27649,6411,-17560,4026,17368,-17290,31669,31628,116,-649,-16305,-2607,-995,413,26557,-19715,22969,-30985,-28771,-25632,2742,-10539,14954,-3715,15491,-17044,31560,-25639,994,31228,-7861,-15975,22915,12650,-26995,-14690,-30835,-8831,-23471,7981,17518,3679,9446,22848,385,-4435,23955,25309,23744,-25539,15296,30322,21998,29405,-21674,-29769,2411,-25478,-7407,11648,-3318,5896,-12589,-20639,-29420,-386,-30802,25593,5927,-10461,-4668,-25812,16285,26518,-5895,-983,-18768,17555,14097,-20246,10261,-31026,23504,27549,25149,-24101,-31841,-16728,7757,-29619,-6182,-13950,3529,32494,14616,-12152,29494,32028,-31837,19796,-12074,13417,16245,27000,19494,2783,18473,22330,-4284,11889,21761,-29952,-477,-32091,-6024,-31095,-22221,-14184,18525,-18426,-8167,-29563,9242,15584,5094,32763,1729,-5170,15095,3799,-13795,11866,-24341,2551,11720,-21053,-22531,-788,-31158,-17112,7060,29144,2247,-13553,31017,-13804,-28249,-15839,-29903,-23453,23727,12963,22433,-27161,-5857,-17830,19355,32416,15634,-25601,2215,-8421,-8151,-2511,682,-15498,-10680,-2181,-432,2469,-4218,-17383,16724,27080,32699,8063,-25214,-15921,22022,-27533,29332,21767,643,27057,20047,-22601,-12404,-30416,15395,-23790,-18394,21398,-21823,9563,-25553,-15374,24963,-21039,-20178,-10405,-28345,-17830,23045,-12994,397,-6432,21798,-14054,3864,-23926,-29299,-10092,-9287,-661,12445,-28400,-775,29975,25538,-16485,-14141,-607,-30821,23860,12267,14415,11540,-5530,5497,-21849,-11496,-9972,29868,12209,24196,14913,766,-19452,-26154,10760,12495,17484,24704,-6430,16026,-15501,-3294,13887,-23866,19309,-17772,-863,-3722,-11032,-18139,8687,-21127,2354,-8463,31280,-31157,-18289,-21276,23635,12115,899,27141,-5003,-12422,-7064,-23468,-18045,2622,-15899,-31071,-8623,18034,11290,23760,19715,-17820,2831,12430,28128,31208,-5837,-28117,-19198,7900,-21397,-16741,11438,-6634,15076,-12035,-2965,-13264,-7491,396,11581,-20749,-12613,-24258,32623,2987,-14822,3065,27791,-15635,393,26268,-32730,5613,9453,21214,-14229,21436,-6091,13066,9852,-31627,22351,-32204,-26336,-16686,15975,3903,6890,10705,-16052,-15096,29123,-13635,-12307,-4182,-1299,-5608,7578,21488,-725,27096,-31896,28119,-25396,-12290,-2265,-23452,-15050,11581,-24166,-5326,1064,-20516,17303,-29672,28292,-20207,-18933,-5072,-12666,-18279,19079,31995,-31209,8626,-22946,5175,-20265,-26186,12794,26794,-4139,6413,27315,-15995,15590,4075,31822,-5527,26451,11654,-17498,-11468,-30770,-23605,18059,-19161,-6669,-29607,23483,26135,-27550,-7410,-23716,-26548,9016,32287,-8353,30267,23759,15884,3141,-7916,31830,14907,1520,10242,-6528,-15013,16980,-6213,-479,-5813,-19794,29848,-10869,12253,18038,31298,16720,-4326,19473,-22212,28680,15156,6170,22326,17699,18816,3420,-2585,-16092,-1595,-26550,-19228,7719,8743,9319,14738,-28908,-8530,-12769,-4669,-26586,8001,9966,-18958,-25601,30595,20034,-28508,31451,29934,4785,15243,-32722,4063,2275,-18278,-27954,6969,19522,6883,26967,-14257,11284,30793,17152,12516,-26306,9825,21153,-19184,21593,25703,-21713,-18808,23083,25983,16653,-6546,1448,25722,-19156,3593,30502,23052,20046,-19588,-15471,-155,28692,22367,12971,24032,-31319,19985,15707,16316,4608,-10673,-1469,-14730,-11189,12880,-5064,2634,-22089,-7641,16470,6259,-2095,14967,-30551,-322,-5534,-18674,29633,1239,10791,-24234,32081,-30129,28089,-5195,-2472,-13962,21656,-21783,-30285,22906,-25906,-15364,-16670,-22291,26123,32067,2697,16183,18461,-262,27065,32095,22620,-11860,-24509,26377,25907,-1465,21958,-8525,-1189,-773,11566,-1984,29758,-8598,1071,16202,-32021,17791,-26545,-3959,-2805}, {1016,11192,-10402,-2976,22802,-10130,-6402,665,1726,30211,12111,20421,6561,29585,17057,18564,-5959,-1194,-13208,4344,-12118,-15666,26719,3546,5289,3406,-10897,-28298,9767,27742,-2174,-28015,32015,10264,-18143,16240,-392,24441,-5119,10358,22393,-25754,-30308,-566,16382,26869,-18584,-19849,-27329,28686,-27619,18909,-28680,6965,27496,10894,689,-14412,-29266,-24824,-27347,-21140,3194,-11103,-6474,10903,-30040,-25107,-23778,27025,11001,8920,18010,-1577,-7352,15894,-2192,19491,-15754,-17985,25434,29033,-2040,26969,-5587,18517,-7341,-24699,-21814,-22281,12694,-1018,-11626,4922,29140,-12954,27581,-23300,-14555,11543,-2872,18132,-31277,13075,9794,1221,-28639,-435,22031,-2051,-26292,8130,636,-19963,-10233,18346,31210,-3278,-1189,-10334,11800,28927,19692,11459,-24820,-21715,-17262,3330,3331,-5434,-4679,-2275,-15530,17442,14785,27927,32155,24305,1804,31829,8736,8139,-20128,-24653,-6993,12155,12531,30736,25539,-27383,31687,7717,11950,-12116,-7372,26405,-14935,-17140,-16431,32291,1634,-5192,-17097,3645,-28097,-28219,30649,-26776,-23683,-28073,-21892,-4516,29295,14177,-12470,7546,25509,20496,-25819,20676,10305,-27949,27296,-2435,-20244,13407,-7800,-23365,6352,10892,-20211,-32190,-27841,19483,-5360,-9187,31585,17164,-5548,4811,22570,-25266,-24217,27500,-11200,-22993,26122,-508,9311,-25229,-1385,29304,6544,-12423,24542,13311,3440,32001,-22538,4857,-1574,29174,-8763,-28266,-4056,21452,26842,14951,-30474,-14843,-24731,26898,11309,-19645,15471,4808,-6171,-4480,13390,-11638,-2018,-9429,6628,-15681,-22663,-18357,-5617,2337,-15241,-10642,25389,1270,16385,13256,-13618,5040,-12381,10334,-30950,-23790,29377,26506,23117,-20251,13439,-19358,9580,12555,22959,19161,-14731,-8403,-16964,-10421,3284,31093,31017,3329,25962,18051,-22793,-26897,-26011,12110,22050,-922,11979,14605,-65,-7974,-9813,11337,14719,15840,15196,23030,17831,27331,-19939,-1546,-30346,21324,-22682,-15160,30703,25780,19903,32596,28291,18454,27051,-29898,18989,-29172,-11443,-13170,-28430,-22086,-529,9035,-30652,-10865,2141,-6423,-13664,-25298,14564,6654,-21197,-22569,-28672,-31052,-29726,-32238,-24400,9776,31539,-29848,-26698,-23227,-11776,908,21049,22661,4423,-25571,27495,-30658,-2228,-7570,11695,13789,19624,-2458,6710,6275,-17752,28392,-25367,-7259,-28073,29090,15962,2637,26130,3383,-11511,-2068,-23749,31038,-7633,-7551,-19883,-29023,-28720,-20610,-17903,28109,-21059,-14897,3229,-1508,-1431,24559,14718,7999,24708,29100,342,20220,6534,694,-20051,-11877,-22691,13903,14304,-22141,-12877,2107,-1934,26558,-16727,1379,12208,-12691,30398,-6730,-11867,-21636,-7790,20529,7106,6146,23526,-26677,5029,27134,-14482,-23008,22295,-11798,14610,1322,-27144,-4479,-31949,-19598,-17827,20205,20493,-21770,6429,-25127,19753,-15653,-27484,24140,28998,20151,30040,-5666,-7346,12961,-2212,-16246,19911,-30330,9924,5105,9835,-2614,-4374,14673,2274,27576,27845,-934,-13431,708,17841,-16390,-21400,-3111,-27099,11656,-5224,-1739,-14633,-29114,-11341,-7636,-8362,-1407,-27893,21835,-16209,-9737,30629,-22683,10642,-12450,135,-22562,-29084,5332,-32389,20230,-14409,-26139,3672,29956,-26201,-20418,8377,8722,-27677,-24083,9447,10205,28853,-22919,-21758,-3674,31718,19005,-23551,11761,-26514,-6251,-2958,-6232,3159,-29651,-11166,-29843,2529,-11033,-7193,11083,15661,-32111,5067,5861,-14516,-17908,-23080,-7228,7033,-18353,-16516,13023,2864,1852,-3368,15208,-17389,8692,5661,-21166,4279,23455,15216,27761,-7362,-5347,2220,7493,22731,14210,-20556,-26434,-15708,-3404,-937,-8216,-12641,-31017,13287,24683,29211,-27943,15303,12324,8452,27554,1680,11445,3503,8029,7022,-5917,-22576,26588,211,11135,-9413,8522,30739,13959,18985,28685,5003,14061,11921,22540,1887,-31011,-27331,-18401,-31015,-30562,6639,-7310,19390,-14196,-25600,10082,-21874,-19347,-12485,2825,25406,-25935,-24931,25102,2890,-30366,21538,-8595,-2166,5129,18842,20472,-116,10365,-20982,-15207,17096,-30139,-18784,7480,-21644,-17967,-7290,-31458,-23428,9283,-21140,30027,-22937,-18248,-5173,-20508,24783,26554,7047,30690,24008,30901,22854,20631,-4312,1725,-12082,-19634,-31464,22032,32182,26139,17965,2628,11818,-23641,-20673,19559,7442,24973,29481,-19758,-1512,-13070,18547,16510,-15376,23021,-25800,-12546,22674,-74,20965,-15973,-10887,-17962,1526,-4207,-30487,-24338,10942,28602,-28317,-26567,-6762,24045,-26545,8788,-31339,13554,-104,6477,-18741,25930,-3930,-6098,23512,3267,19661,-14490,21619,263,21269,-2559,-4069,-9585,-18068,-15194,1830,2106,19792,23025,32408,-2507,-18736,-5732,23751,-20612,4095,-19998,-22565,25418,-32113,-7273,10927,31727,7793,-21228,17926,23429,22745,11241,14812,-31450,6428,23316,-26131,-5894,5145,-3523,-19529,-31427,-1987,19275,23353,9110,19192,5156,-10315,5938,24423,19264,3373,-26503,-14795,-11581,-15575,-2580,17748,21176,7718,6862,-32292}, {26284,7579,-28388,-27667,20217,-27815,5132,-6333,-14017,6364,-8358,-15244,-11211,-5979,30492,-2026,-5651,-15884,32688,-10862,6716,12849,-17682,-29479,11402,-17917,-31459,-24226,11343,13873,-2020,-26622,25899,-29486,-2435,22671,-23237,9479,29241,23285,-24059,12035,-29283,-10942,28099,-142,-3591,27286,-5360,-2651,6855,676,11333,-1783,-15485,5135,-22188,-11721,-17441,3438,11863,11405,1765,1891,8583,-3187,-20552,-19757,-14509,31635,7442,-22802,-7143,23217,-9667,-14919,-32509,5707,364,-27205,18843,-20164,-20579,31280,7648,3604,-21804,-7149,-10112,-26268,-32007,2971,-10405,26868,-32118,-24780,7571,22950,-3141,21758,-5750,-30485,-10189,28752,-32175,17489,12311,-10103,6013,-29533,29070,10548,-17120,3156,14869,11134,29022,-5912,-22770,-17032,20274,-1804,12385,31780,-19257,-30739,27013,-2088,32479,19422,30787,3355,1217,20208,9508,-5795,16389,21914,3886,29709,8845,18984,24011,1921,-15318,-13178,4270,-7290,-21267,-28354,-5995,15294,-20347,-25330,-30330,-6600,-23948,-28996,5456,-20674,27092,-3229,-8081,-17226,-8265,30510,20411,18431,-25561,23420,21343,3036,-10282,25612,-28122,-9177,23963,20527,-26525,11668,-31352,13962,-15103,-19158,2669,17775,14322,10480,-14811,-26416,26947,4777,2308,-1570,-16154,-12092,-24745,19607,30676,24262,-31831,-26702,-7195,-23491,14733,-11607,3084,-20234,-6704,32393,-20959,-30360,25268,-18257,-7296,-32767,-2251,-9179,5236,-3599,2555,-26538,3178,-25275,8643,22705,12772,15902,6459,-9241,23341,17544,-31503,-2550,-17350,-6880,19385,-7384,27257,25421,11468,-31601,-18413,18942,21843,-31843,-7567,-27926,2285,-2915,-11529,-2052,-25116,-458,-3521,17650,-1529,32106,-20917,5134,-23725,-16966,20108,12095,1275,-29040,-27066,11577,-18913,20196,-24492,-18585,-1394,25182,-15614,3396,-26754,-21622,18433,11588,6285,-1247,10153,-7366,-26865,19174,-24748,23378,22454,-12822,7957,-27858,-26059,9840,24032,24911,16382,8070,23790,3493,-12087,19431,-16739,6489,-14914,14035,18446,14342,-13131,11816,32767,-32592,-13656,3216,8458,-10439,794,-25777,-13713,25800,-1742,21642,5929,9658,12611,3201,29664,28518,-32004,5518,-21164,-10212,11337,-5435,21654,-23974,23178,-12238,-6879,-31529,-15313,-25048,2861,19350,-32072,32597,10899,-19471,-28805,1324,14121,-30343,16841,12571,7241,-25900,-14950,-14972,30751,-8373,19741,-15912,30109,3787,24552,26383,-10315,26772,-12276,3234,23268,-8356,241,651,26861,29420,-32409,27581,-4445,-716,-3655,-27247,-26201,8431,-6220,4377,-13914,-30449,22839,17823,-19000,9214,28210,-2864,3539,-16536,-25475,16518,-10747,-7576,12727,-775,30703,10239,3152,15362,3028,-22981,16719,10540,-11944,24604,-14148,4658,18649,-21838,-552,-23903,-11155,-25185,-20570,-28838,4153,-2125,30717,31154,-13515,22456,-24070,17349,-10311,-1956,13134,-6577,-22599,6227,7041,15425,13713,-27577,6405,19371,20543,22393,2940,-14394,-7479,-6641,8507,577,17559,-14970,24721,-6808,22134,-24187,11297,10904,-2516,20297,7327,-2659,-12639,20287,7645,-13042,-31987,-1786,-28581,-19116,-32095,24607,-2612,15992,2737,-15567,13163,-29828,5361,29480,5010,279,7153,16270,-25401,-27461,-10270,19385,16745,-16345,-4418,-15428,17862,-9761,24564,-23083,12854,16739,29553,-25786,13842,-2530,7800,5492,-29436,1308,20476,-31823,-567,12176,-11594,-12756,-5912,-11156,12592,-19474,-2595,26611,-11231,8187,5840,-12731,-32079,-2442,-13827,-1406,-26469,17101,14189,8858,21138,31222,-13009,-13200,-11684,13917,-24990,-15755,28407,-4255,32189,-25965,14916,4706,-1297,-28048,26710,516,-30634,19134,25810,-5767,5896,-31879,-8298,-16924,7164,-21527,-28777,-31809,-29984,6232,-22740,-27049,-5991,24231,31440,-23096,30294,-5595,-9363,-31045,2757,-25558,-775,4235,15146,31499,-24042,-18775,-12203,26675,14421,2135,9596,609,14272,4759,20229,23332,7869,28104,9761,28890,-22980,32174,20183,-19887,-27510,2356,-27522,-25026,17090,-20476,-10304,-20699,11855,-7751,-2085,29945,11938,1115,30601,15307,528,-29468,410,-32528,28995,-15593,23820,-32225,-12316,-6656,24478,23211,-10987,-4650,28848,5921,-31707,-17869,16211,24725,7225,29324,5236,24911,17183,5565,-2095,19751,21639,10201,12665,-8931,26363,3925,-18502,1552,-16960,1931,9910,941,-24978,-12411,-28641,-3261,2986,-31671,27729,-15834,31571,9876,-22053,8700,-8511,23518,-24782,9279,-17517,8780,-4693,-32324,-9735,-32141,20845,-5957,-27346,25968,-16420,20211,-32063,15010,-31142,-9520,-2537,-15910,-8322,26763,-19465,17106,-30256,10810,30779,-2661,2217,17021,5347,8617,31798,9797,-31115,-11013,5859,22218,24627,31098,-11583,-3314,12853,-17406,-428,-32262,14906,-8847,32308,-13795,1740,-26736,-10256,-6444,13751,22900,714,10366,-24167,-3360,9625,-16185,12194,14097,5184,2501,-28663,-1,13313,-22675,9505,-2852,22638,15578,-26262,4308,15832,4327,-12533,-8267,-28750,-4345,23325,18551,-8679,-15381,-26681,-32199,4962,-32655,-24836,8960,15103}, } ; static void test_encode_761xfreeze3_impl(long long impl) { unsigned char *s = test_encode_761xfreeze3_s; unsigned char *x = test_encode_761xfreeze3_x; unsigned char *s2 = test_encode_761xfreeze3_s2; unsigned char *x2 = test_encode_761xfreeze3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_761xfreeze3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761xfreeze3(impl); printf("encode_761xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761xfreeze3_implementation(impl),ntruprime_dispatch_encode_761xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_761xfreeze3; printf("encode_761xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_761xfreeze3_implementation(),ntruprime_encode_761xfreeze3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_761xfreeze3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_761xfreeze3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_761xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_761xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_761xfreeze3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_761xfreeze3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_761xfreeze3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761xfreeze3")) return; storage_encode_761xfreeze3_s = callocplus(crypto_encode_STRBYTES); test_encode_761xfreeze3_s = aligned(storage_encode_761xfreeze3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_761xfreeze3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_761xfreeze3_x = aligned(storage_encode_761xfreeze3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_761xfreeze3_s2 = callocplus(maxalloc); test_encode_761xfreeze3_s2 = aligned(storage_encode_761xfreeze3_s2,crypto_encode_STRBYTES); storage_encode_761xfreeze3_x2 = callocplus(maxalloc); test_encode_761xfreeze3_x2 = aligned(storage_encode_761xfreeze3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_761xfreeze3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_761xfreeze3();++impl) forked(test_encode_761xfreeze3_impl,impl); ++test_encode_761xfreeze3_s; ++test_encode_761xfreeze3_x; ++test_encode_761xfreeze3_s2; ++test_encode_761xfreeze3_x2; } free(storage_encode_761xfreeze3_x2); free(storage_encode_761xfreeze3_s2); free(storage_encode_761xfreeze3_x); free(storage_encode_761xfreeze3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_761xint16.c0000644000000000000000000013125714705505543022752 0ustar rootroot/* ----- encode/761xint16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_761xint16_checksums[] = { "49e6aca48717c2e93b56d9706189b6c5b21781086c569bf421628343fec2bc06", "fd2f7ecff81bea4ae8e08a3bf1b6d4e57d328c481f773c60d3f1a773c25dbfca", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_761xint16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_761xint16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_761xint16_ITEMBYTES static void *storage_encode_761xint16_s; static unsigned char *test_encode_761xint16_s; static void *storage_encode_761xint16_x; static unsigned char *test_encode_761xint16_x; static void *storage_encode_761xint16_s2; static unsigned char *test_encode_761xint16_s2; static void *storage_encode_761xint16_x2; static unsigned char *test_encode_761xint16_x2; #define precomputed_encode_761xint16_NUM 4 static const unsigned char precomputed_encode_761xint16_s[precomputed_encode_761xint16_NUM][crypto_encode_STRBYTES] = { {141,131,73,65,97,98,63,147,220,42,18,92,152,205,18,2,192,106,61,229,118,30,176,239,24,209,32,9,179,216,35,138,157,2,237,203,80,178,244,27,126,46,60,151,59,20,61,178,33,116,91,138,122,242,149,184,10,246,245,57,120,207,0,17,123,214,63,58,79,84,159,57,147,12,47,71,104,109,80,62,69,69,35,70,228,193,168,25,56,97,72,194,182,214,151,19,40,193,78,25,55,34,5,110,245,74,38,247,88,166,96,33,219,126,85,255,11,135,6,203,127,8,232,159,194,255,0,216,203,57,73,184,141,10,222,124,104,66,26,210,184,206,32,224,89,187,188,232,101,167,123,187,36,78,249,63,199,153,246,6,172,87,23,199,5,178,132,99,39,64,206,179,116,52,212,106,55,130,11,224,162,211,175,243,235,160,179,143,175,66,155,20,89,105,91,69,147,106,225,47,11,229,166,50,184,250,219,232,105,248,235,228,120,38,154,33,253,64,219,247,220,229,58,97,11,15,240,42,79,7,177,71,204,2,27,127,226,234,169,82,158,228,136,192,200,63,137,92,101,116,43,255,212,34,93,135,20,173,106,251,61,9,115,101,85,153,32,36,221,164,120,106,108,189,178,150,236,219,136,107,25,197,228,45,142,66,46,67,71,245,205,52,167,236,231,112,4,143,234,138,101,64,225,11,132,175,129,62,234,40,31,64,191,28,19,107,144,117,68,19,191,237,186,235,254,54,151,249,164,75,38,133,95,62,68,21,115,145,174,129,47,218,161,251,33,200,218,219,89,72,92,201,183,207,99,163,177,85,129,84,124,104,98,55,93,63,251,142,11,54,167,186,212,133,133,17,214,183,217,196,127,24,77,58,246,87,194,148,235,15,117,0,196,36,62,118,17,100,204,63,128,182,226,33,98,162,222,243,27,184,161,221,250,183,252,22,253,167,46,251,109,231,37,170,222,113,158,97,182,128,39,119,5,7,227,139,165,26,180,235,115,95,105,97,241,202,0,168,78,99,114,2,139,105,202,230,193,225,35,77,224,72,193,147,6,81,79,161,211,93,77,183,25,31,2,42,228,211,83,79,178,130,214,148,113,235,69,223,248,69,20,163,167,164,237,212,178,247,77,236,63,235,131,18,68,242,68,140,249,6,243,46,106,240,39,70,13,144,251,128,32,226,234,238,99,225,74,224,165,93,74,95,99,63,241,172,35,192,145,103,53,66,72,89,5,194,172,17,228,36,176,151,32,14,49,166,236,1,247,157,138,140,116,175,251,226,39,171,116,67,141,30,64,135,230,90,0,125,243,159,195,75,133,227,90,198,235,168,145,239,185,139,221,77,29,5,91,191,228,55,92,200,250,246,236,163,236,120,144,245,172,61,188,14,106,23,166,142,166,96,218,47,87,71,242,230,224,144,153,36,74,36,205,71,19,178,120,0,149,20,145,190,142,68,240,89,112,162,250,88,45,135,79,104,18,57,217,88,169,237,191,190,238,120,246,155,163,27,75,172,107,41,111,97,75,109,75,15,1,215,199,237,28,63,22,200,9,94,14,155,236,248,84,234,48,22,58,201,137,10,15,114,185,52,55,233,213,21,37,91,198,94,181,4,119,27,18,212,104,195,219,37,18,152,52,45,201,154,204,55,183,165,110,168,80,140,90,57,245,65,44,25,93,101,47,190,54,133,177,132,69,206,190,188,39,138,17,82,148,10,153,119,251,82,150,179,248,102,215,144,1,176,107,253,104,208,240,7,189,140,11,63,175,167,199,237,180,103,123,107,112,47,41,97,169,107,193,205,78,39,249,162,62,217,254,80,168,141,144,84,44,144,3,218,162,194,195,28,23,52,53,151,188,84,29,166,250,8,215,216,158,86,238,86,245,139,159,174,117,72,158,99,72,168,115,191,79,153,164,54,96,215,115,7,159,51,117,236,9,24,122,247,248,34,37,47,128,225,134,124,45,64,212,57,17,119,53,188,75,99,127,149,178,159,184,134,146,94,161,39,11,191,38,24,118,223,161,187,72,106,80,77,25,87,244,94,204,215,71,187,251,199,66,120,65,230,94,194,251,111,244,57,237,209,137,225,201,223,149,131,161,77,64,248,233,120,106,47,73,104,79,114,89,249,83,223,203,170,124,16,154,158,122,86,243,250,61,6,51,38,30,98,84,68,15,110,156,168,73,140,233,12,253,253,102,97,27,215,76,51,119,19,42,103,195,245,175,132,73,41,128,248,164,78,215,11,105,57,197,1,9,232,226,55,34,249,225,191,253,149,200,1,145,91,130,105,181,200,216,19,183,140,189,170,50,237,237,201,141,24,181,111,244,1,30,207,151,6,57,196,105,55,175,148,248,205,156,217,23,81,77,206,98,202,94,0,25,169,196,192,152,173,96,199,227,107,103,204,112,88,248,187,142,23,243,217,167,232,184,81,83,35,81,46,126,165,80,203,62,28,35,186,153,163,45,155,134,149,35,248,49,122,180,128,11,51,98,62,130,124,187,196,150,74,98,59,2,223,19,117,92,32,44,75,206,253,101,139,239,75,7,141,207,188,47,139,215,128,211,174,203,231,206,36,145,247,24,142,182,162,132,164,33,155,118,51,209,146,72,224,236,109,2,69,45,251,229,49,179,94,129,116,127,80,147,34,118,19,90,64,161,164,252,53,85,44,13,250,185,199,164,90,89,66,197,24,178,215,37,116,135,93,194,3,145,88,143,204,199,13,211,181,236,56,114,175,21,90,204,60,117,153,156,199,37,81,83,4,229,8,194,120,190,191,41,28,44,59,168,237,161,191,106,10,3,174,247,49,203,229,77,156,164,182,42,80,109,205,123,231,110,206,94,13,127,243,61,222,41,217,114,149,148,240,131,214,160,21,122,191,119,20,237,215,255,155,55,205,161,88,105,166,150,213,229,8,196,191,243,128,183,90,168,20,79,42,16,143,239,78,130,193,245,60,114,103,106,0,154,234,242,120,216,164,52,224,229,52,150,133,185,19,200,27,154,193,226,100,17,19,120,175,202,217,112,72,248,111,226,222,70,247,23,249,173,57,4,222,245,113,5,80,130,232,157,151,178,152,76,142,219,246,4,192,73,88,59,140,237,54,240,181,47,128,208,5,51,162,5,105,172,237,124,231,9,184,41,123,255,252,106,76,243,108,86,129,117,180,15,53,215,99,198,156,128,28,172,106,147,33,224,21,78,58,77,178,167,242,228,158,213,32,95,141,246,181,182,154,60,63,160,252,149,27,167,81,46,135,143,33,64,246,135,100,248,204,206,145,143,240,58,185,170,201,149,224,43,121,26,203,156,213,168,0,219,6,173,108,69,83,185,93,97,42,253,79,97,217,25,13,64,73,135,140,39,186,182,178,213,110,129,35,73,22,140,180,168,176,206,98,169,181,123,228,112,169,226,105,186,199,183,42}, {150,128,141,209,113,41,189,240,160,243,217,187,122,196,221,26,74,77,81,232,231,55,132,214,239,1,134,195,186,108,95,182,199,47,154,9,210,116,84,244,6,179,21,99,45,49,21,232,229,249,86,234,12,208,171,160,207,11,234,206,247,144,26,20,97,107,119,87,62,250,23,201,24,197,216,4,249,242,36,227,185,247,227,148,65,31,239,3,153,27,135,118,231,252,54,250,254,47,239,124,250,158,136,203,173,160,166,254,5,212,162,69,100,185,26,0,137,29,227,215,144,228,106,1,161,132,153,129,10,75,17,7,227,200,202,171,4,42,132,110,219,211,133,177,38,23,72,197,151,103,221,122,185,62,177,159,25,47,2,133,241,37,50,205,98,117,120,110,224,179,216,160,126,169,191,113,193,195,1,235,177,127,33,116,241,107,221,64,107,212,43,211,168,196,32,120,209,9,246,153,172,94,117,235,147,199,145,120,126,212,213,137,17,65,169,202,185,17,150,172,235,231,2,4,167,172,167,77,204,43,233,128,117,27,206,200,95,23,116,22,189,132,161,104,246,155,188,215,229,8,252,209,218,10,59,168,190,87,30,219,240,103,113,144,89,240,161,186,118,124,196,187,171,104,7,129,141,102,192,11,170,32,97,86,123,169,50,213,156,230,169,134,123,245,156,127,138,138,225,135,69,123,17,125,244,185,176,47,78,199,46,230,108,157,217,236,169,237,214,108,24,74,12,236,8,175,40,203,165,92,102,60,55,11,187,251,5,173,62,214,228,112,33,229,175,185,98,25,161,134,98,70,128,20,41,163,41,222,251,159,98,122,152,190,197,201,97,171,168,96,105,214,45,75,164,227,243,42,121,40,84,175,23,33,144,216,45,225,156,251,75,142,222,162,170,49,127,222,5,52,4,232,174,230,80,69,182,102,83,136,175,253,222,101,43,126,157,70,88,63,195,189,254,148,140,214,171,175,142,28,44,110,150,58,36,37,218,104,42,203,82,204,182,235,39,227,222,34,63,239,5,117,234,251,84,203,46,115,76,220,6,254,212,128,156,133,254,146,197,231,102,214,181,121,211,92,129,127,4,81,165,129,35,205,52,74,193,187,28,191,152,176,176,224,70,73,175,94,166,126,72,243,35,10,7,203,116,171,41,47,25,237,132,82,207,51,80,93,78,112,145,151,114,170,74,78,118,26,79,188,243,8,48,244,230,255,94,196,194,158,40,81,73,15,185,243,226,0,193,119,164,129,207,107,4,123,192,216,139,236,173,7,254,84,158,47,226,145,183,119,15,67,22,120,48,122,217,56,46,144,26,143,248,226,31,51,132,48,167,255,39,25,7,128,157,199,156,227,223,218,13,133,40,91,0,10,183,224,197,182,161,114,151,109,197,245,102,114,181,183,157,224,140,68,48,128,8,200,252,155,17,172,201,51,188,149,162,156,2,105,52,248,129,194,62,9,90,233,245,158,134,188,229,149,172,136,203,108,173,122,26,125,214,234,41,43,221,156,135,115,249,176,32,195,247,233,147,239,157,3,230,38,127,45,216,37,87,219,198,129,66,74,203,200,64,21,106,192,129,179,248,165,71,165,13,173,51,237,235,108,93,28,106,69,27,206,163,78,118,151,163,215,37,105,147,200,46,36,40,221,105,66,114,179,69,20,205,116,101,134,20,202,132,212,110,155,55,211,162,147,81,60,32,183,19,198,204,75,82,10,5,224,113,234,201,98,62,133,48,81,31,7,215,59,104,40,184,239,18,102,101,159,233,81,55,213,191,173,162,31,70,89,75,46,248,173,116,190,4,198,120,42,146,65,177,235,37,246,22,204,201,57,115,80,33,166,152,39,58,4,175,255,96,44,135,238,181,100,85,133,51,204,1,167,199,145,239,24,94,223,77,82,250,213,78,168,52,222,216,191,163,94,236,180,6,87,80,221,154,86,148,176,63,88,46,151,48,190,206,125,87,105,227,28,251,70,132,136,227,244,171,243,16,155,109,236,56,185,21,70,49,232,121,93,231,238,82,182,250,208,13,243,118,28,99,67,169,180,174,41,237,130,236,46,227,124,194,20,61,171,146,26,213,25,140,205,70,174,96,9,70,28,56,135,160,146,141,98,46,106,140,72,225,10,243,42,200,10,163,224,51,18,69,175,27,53,155,183,150,96,142,31,217,112,152,174,115,224,43,92,42,47,127,166,156,184,232,27,189,159,165,172,160,135,196,238,94,51,17,148,109,117,165,14,156,24,55,92,236,232,156,159,208,64,164,209,245,35,106,33,86,165,169,10,133,242,198,149,23,54,190,12,67,127,107,53,144,56,98,228,40,10,73,91,35,71,7,86,151,54,132,19,113,112,10,58,18,190,13,203,132,0,11,170,222,13,50,52,227,163,177,58,77,41,240,112,5,237,151,212,216,154,131,242,218,111,8,86,75,81,115,75,174,100,73,39,162,211,236,168,133,132,99,245,81,114,170,189,103,224,180,59,58,17,238,125,60,128,122,126,174,204,161,117,247,228,18,87,197,112,52,117,10,74,160,217,145,71,211,229,87,101,238,141,248,99,1,232,2,45,102,179,17,0,125,117,44,125,225,126,44,168,21,194,232,129,25,50,74,56,60,77,43,43,144,145,31,230,73,241,86,233,194,215,86,217,149,151,165,23,9,167,107,56,3,84,241,9,178,204,15,28,3,148,100,174,181,31,196,243,126,196,103,25,75,249,6,67,229,65,27,122,215,105,244,94,6,195,161,119,157,80,40,109,142,12,165,23,33,200,144,3,123,29,58,56,248,47,31,134,28,36,124,165,149,80,65,151,135,69,201,26,0,163,233,236,102,27,202,82,75,187,71,37,201,142,190,228,204,249,13,117,173,234,30,140,63,14,199,203,83,95,13,176,165,233,208,107,82,239,122,181,222,110,104,225,92,16,65,8,226,211,181,133,30,13,81,232,156,152,227,12,25,240,153,0,126,216,105,224,117,181,90,23,40,5,184,19,21,31,17,230,127,220,110,216,81,33,1,206,241,175,57,206,58,219,248,165,198,163,87,218,101,110,53,157,157,140,198,135,55,220,246,202,86,168,181,68,99,126,112,109,236,190,54,14,103,185,105,243,147,123,113,29,145,69,79,55,227,221,40,33,109,96,76,166,177,59,8,17,168,47,67,43,231,76,242,137,195,155,3,203,29,38,119,207,197,104,163,29,151,72,148,211,252,187,85,54,253,91,158,227,147,169,187,119,234,25,84,70,204,13,176,233,44,242,169,223,47,93,36,57,49,223,17,199,95,120,160,76,117,108,127,131,215,132,181,92,11,236,73,102,222,120,129,98,110,163,143,147,146,106,153,41,132,52,198,96,97,76,25,232,187,212,183,106,208,76,7,7,125,211,70,157,154,225,142,14,15,189,90,210,54,185,28,150,5,2,7,29,195,119}, {171,197,159,25,35,27,164,69,71,183,53,83,86,239,207,66,221,245,216,183,74,179,42,103,146,145,100,40,166,240,62,134,53,250,23,49,187,217,183,230,192,168,193,209,223,245,158,161,20,117,26,225,137,62,132,27,10,248,183,95,224,144,99,246,179,24,229,51,210,241,95,234,135,83,225,207,14,157,36,11,1,231,201,5,11,186,25,168,146,47,168,211,52,203,246,209,99,71,35,175,115,91,149,199,167,130,203,42,21,43,66,42,101,172,76,248,154,255,184,250,68,68,158,137,56,99,79,219,250,199,164,43,85,21,57,166,2,37,7,77,69,131,226,13,137,65,97,199,129,107,221,104,129,8,153,231,151,22,96,132,19,241,17,89,40,106,240,222,116,180,131,249,139,169,27,186,137,19,15,214,139,4,217,203,1,115,167,106,199,120,171,200,246,181,47,235,122,246,165,57,130,142,64,153,45,115,76,45,118,183,165,236,232,147,38,14,22,32,135,87,79,47,215,167,125,180,67,114,33,89,106,23,238,43,176,147,155,237,88,114,1,28,59,243,202,25,36,101,63,143,250,103,165,64,120,245,24,237,102,60,224,30,246,169,61,248,78,24,214,175,104,218,91,140,110,18,163,252,30,200,227,160,26,241,167,152,65,167,202,184,160,215,102,154,17,138,98,233,217,113,196,186,69,55,20,238,4,35,100,146,254,199,171,43,124,33,114,0,171,63,35,72,79,181,189,184,23,20,55,8,148,27,186,207,117,182,74,101,20,127,58,34,237,196,184,85,222,7,24,87,40,83,9,246,188,150,118,126,150,226,22,122,228,165,80,17,68,163,34,84,48,24,214,20,77,211,232,201,218,16,222,173,164,78,108,224,226,188,110,232,150,234,25,205,78,157,166,253,244,54,100,93,91,82,178,174,27,228,235,3,73,38,82,5,218,103,202,21,222,98,15,58,196,150,250,160,195,232,130,166,42,106,148,247,21,226,241,43,136,49,126,109,227,31,144,126,97,59,109,92,7,222,209,93,6,52,221,204,235,46,82,223,54,72,112,161,58,30,109,245,119,4,179,124,2,16,99,242,5,153,241,107,3,95,1,248,213,243,6,102,58,192,228,8,150,171,59,234,13,0,4,26,152,196,168,50,170,164,118,156,65,209,66,166,176,86,182,123,85,210,117,129,195,65,79,24,102,183,55,193,191,233,116,16,207,135,151,70,69,28,143,228,36,43,208,63,45,139,229,183,141,222,50,108,254,227,197,14,179,50,253,103,45,212,29,50,248,97,172,136,239,88,179,83,236,58,138,64,42,138,111,166,53,85,234,215,242,127,20,40,33,108,209,14,174,160,223,92,66,207,182,104,128,129,225,54,219,245,38,115,181,126,177,216,16,164,18,21,224,29,149,233,116,55,247,138,183,35,41,106,177,85,216,118,63,120,70,172,42,210,128,85,155,128,125,128,167,176,243,57,193,128,83,92,225,55,235,27,221,174,246,162,252,16,24,156,233,9,47,232,174,14,31,213,124,102,121,170,197,4,71,83,241,10,149,15,77,165,10,79,104,197,177,160,125,22,28,69,78,136,157,245,35,205,143,21,177,144,242,155,91,20,143,40,198,96,242,152,123,148,229,202,67,168,230,155,165,150,26,66,91,197,15,157,173,178,185,98,174,5,76,82,239,208,34,48,220,8,177,48,33,101,24,166,92,209,97,112,81,226,41,100,44,19,176,192,249,36,96,85,214,244,230,180,146,224,73,238,175,178,131,138,16,121,163,223,19,185,14,36,115,19,98,173,254,191,235,107,32,113,174,190,175,66,154,38,150,108,222,242,79,152,207,59,19,215,12,151,235,68,84,228,198,48,0,98,60,207,115,155,15,78,60,252,127,69,77,192,221,114,218,9,72,79,15,208,63,165,126,173,226,195,162,189,255,190,142,109,61,222,74,123,75,119,95,90,27,20,33,6,18,16,104,194,21,203,167,57,192,70,230,181,223,63,62,87,135,58,32,98,241,188,74,93,2,102,153,206,20,137,26,251,1,77,53,30,68,168,179,189,61,227,205,65,1,212,59,86,216,107,117,155,190,130,180,194,109,137,165,143,185,169,80,104,67,145,76,248,242,136,70,100,9,53,162,51,205,86,221,136,52,1,191,95,164,0,208,175,19,48,82,151,120,148,184,40,238,116,246,245,74,131,195,209,90,73,213,98,220,174,178,252,12,72,20,142,5,87,30,86,122,254,5,149,121,87,41,161,25,85,127,108,205,137,161,122,76,0,184,85,188,185,223,134,149,104,35,177,210,146,177,70,156,136,113,243,50,96,47,42,184,107,137,140,252,65,182,167,122,196,60,178,121,81,182,116,167,164,58,222,131,191,25,65,232,70,27,98,131,68,168,87,130,58,244,211,139,95,204,101,180,142,17,249,82,142,120,189,138,34,170,241,248,106,170,200,95,49,79,33,227,53,6,39,214,25,77,240,20,123,203,109,88,170,139,16,64,172,12,236,29,4,15,188,245,8,222,184,97,181,140,222,164,104,20,50,252,127,99,29,210,128,174,130,27,218,227,147,123,169,51,12,146,207,49,151,242,207,17,171,127,226,176,19,33,255,223,167,0,29,137,31,73,123,247,123,140,150,118,43,6,45,99,174,114,38,215,210,26,124,25,42,33,97,194,27,181,67,66,175,137,131,186,29,97,42,210,142,15,127,12,216,151,113,93,142,227,202,185,209,27,95,254,212,188,226,1,132,86,88,248,73,45,168,105,253,178,41,16,90,209,1,27,127,160,99,250,42,159,241,135,79,234,63,218,64,142,159,161,62,196,174,185,86,170,234,197,11,205,105,100,127,82,178,180,124,175,44,55,203,137,166,236,232,69,233,97,66,164,48,138,24,127,188,15,254,241,35,56,216,160,255,208,125,53,199,40,36,25,247,119,218,132,118,201,243,39,115,100,158,139,140,87,36,131,59,255,232,38,78,179,8,249,249,179,233,10,106,28,162,58,74,192,197,120,239,120,38,186,206,45,86,229,27,166,4,78,57,127,51,203,233,69,192,106,240,60,112,33,255,14,235,178,172,103,86,97,214,66,240,238,157,20,21,139,29,152,79,146,101,22,204,241,153,93,173,155,203,165,124,114,133,97,170,114,184,75,189,140,101,141,135,50,62,214,216,108,185,15,177,100,174,110,167,59,44,251,141,178,150,162,118,159,64,210,70,222,47,182,195,151,5,112,212,48,52,243,242,226,153,40,97,69,67,56,157,144,10,200,59,195,106,215,197,22,242,123,82,86,103,191,152,199,152,169,202,234,47,124,50,184,34,121,136,0,249,198,236,110,239,190,46,190,43,54,123,99,146,156,117,160,47,117,183,36,76,179,23,2,15,244,212,13,43,13,26,233,4,231,92,10,21,75,172,50,148,251,219,47,6,84,72}, {252,190,16,151,91,250,141,33,46,46,93,186,193,237,186,161,250,149,171,137,226,225,106,106,222,141,127,114,94,112,167,19,137,105,43,159,133,95,30,249,89,135,248,95,130,162,166,109,36,91,249,176,225,55,180,227,164,247,162,222,124,124,211,114,44,103,35,215,156,60,72,83,167,249,204,235,73,35,179,216,135,149,241,3,59,135,211,117,228,238,244,73,109,35,220,134,77,76,170,203,230,17,97,103,53,13,244,99,88,147,84,242,21,140,110,165,206,43,60,104,246,94,197,225,220,139,99,234,127,112,77,153,10,127,67,246,153,230,70,126,150,39,201,124,139,186,154,115,192,89,105,82,129,168,137,190,241,17,255,108,56,6,107,144,21,146,163,118,223,75,103,123,135,84,126,148,26,235,173,48,222,202,102,124,152,36,216,178,207,217,189,14,17,205,43,229,208,118,54,226,196,213,67,17,23,29,210,212,69,44,201,192,180,205,33,212,86,97,186,46,58,249,162,129,123,236,18,113,202,76,89,244,51,140,26,8,254,116,245,232,147,52,104,55,168,241,9,67,199,241,184,90,121,127,80,8,85,107,185,106,100,104,160,59,99,22,205,125,96,253,241,8,50,247,225,109,115,81,150,213,145,194,222,36,203,228,219,121,113,22,120,72,230,74,28,11,120,65,2,203,98,166,1,58,50,214,158,166,214,241,143,195,50,216,32,23,209,26,236,103,165,118,251,250,44,67,107,205,254,222,100,75,40,22,70,111,55,139,120,4,117,250,177,35,204,28,132,164,114,160,83,173,89,213,177,53,7,182,8,160,166,62,46,113,4,187,197,81,16,57,114,16,233,244,94,125,119,87,159,47,78,214,28,240,202,71,64,240,235,170,15,130,186,145,37,132,199,29,104,248,143,172,5,203,184,72,69,28,74,102,103,112,47,115,63,201,29,38,27,24,233,83,115,167,102,8,232,221,158,173,196,159,93,108,63,222,25,57,229,137,150,150,6,68,173,0,152,184,52,68,168,113,175,177,166,21,246,251,55,5,33,26,230,58,136,121,29,230,172,136,220,165,116,251,173,38,86,170,15,37,37,98,168,16,168,197,128,213,216,19,246,27,245,118,64,150,95,84,6,15,244,227,74,209,235,29,146,97,77,38,194,162,175,57,187,218,239,167,197,242,53,15,37,141,76,212,248,11,188,97,77,75,155,132,142,222,203,233,197,162,200,235,27,108,2,44,251,22,121,133,174,113,151,220,188,130,104,139,138,92,152,44,231,130,101,216,209,151,74,194,125,74,144,69,199,255,27,82,27,141,57,125,13,60,171,96,87,225,130,79,230,34,160,44,196,17,234,132,220,152,51,115,40,124,149,198,192,70,0,25,7,75,88,49,100,158,41,79,137,40,75,239,126,188,107,22,138,80,164,218,153,236,163,49,102,236,150,51,55,120,170,134,181,235,67,251,148,118,212,86,117,63,97,220,50,214,0,254,93,183,40,125,30,147,52,241,168,47,26,175,97,91,201,9,232,99,214,172,106,229,222,109,249,150,205,160,16,101,173,116,202,75,237,166,191,1,51,152,75,57,175,180,248,11,197,176,156,187,121,74,127,179,56,204,119,131,194,215,192,227,246,114,69,26,17,6,33,176,234,190,198,92,153,182,79,28,85,74,105,147,10,93,229,235,97,140,205,197,134,208,0,68,195,193,60,57,208,162,95,39,142,138,95,22,96,66,184,228,240,163,106,185,181,101,41,217,90,139,20,14,129,163,122,180,38,231,227,253,184,213,163,207,144,169,239,148,20,73,74,68,252,123,98,11,104,214,236,144,84,143,183,72,108,209,38,75,253,214,123,13,73,73,127,190,42,111,36,162,200,166,68,213,82,104,104,241,239,179,185,241,156,40,240,46,134,30,47,201,177,39,246,20,202,237,91,48,144,208,38,25,64,224,85,29,80,45,17,120,14,72,242,229,252,67,134,235,242,62,153,47,223,80,117,124,32,174,32,138,1,118,139,177,162,4,236,222,39,24,53,71,91,103,88,156,148,145,207,94,195,124,85,4,173,165,214,220,137,28,105,143,114,7,137,131,232,65,51,217,71,12,90,148,4,218,15,217,175,23,137,88,5,86,213,96,68,253,26,229,9,148,78,44,57,245,174,113,167,204,72,82,12,132,85,170,4,28,251,201,18,87,193,8,8,14,29,8,160,241,170,62,45,74,241,222,165,196,15,199,87,151,64,62,197,64,228,193,37,197,154,34,39,119,186,40,84,33,151,29,205,248,27,161,41,175,38,102,56,158,210,78,138,91,154,5,209,191,176,12,144,191,68,156,82,9,139,180,74,227,32,14,105,218,38,63,129,44,186,106,222,4,187,106,132,147,47,63,207,69,46,177,113,255,213,126,180,202,141,77,143,230,176,12,147,199,102,199,20,24,87,73,208,50,74,132,240,249,38,164,105,226,243,13,177,226,159,73,233,150,253,145,104,235,0,202,25,77,225,213,183,79,175,80,224,212,94,123,171,66,18,140,137,78,178,73,157,4,15,67,252,22,85,103,88,196,239,71,123,133,241,54,233,135,153,69,214,147,238,138,180,100,202,169,21,39,184,190,224,25,151,150,239,21,190,75,91,59,157,144,211,64,116,131,154,127,100,165,78,36,246,150,142,42,129,15,55,202,37,146,180,5,111,214,131,104,130,127,20,238,118,216,148,102,136,222,241,49,155,220,157,177,252,91,7,111,9,128,213,175,52,76,236,97,5,230,241,100,176,81,242,161,25,139,44,159,48,24,218,207,237,75,181,144,169,13,75,137,164,161,135,233,32,161,43,127,58,211,242,39,90,214,45,60,159,106,183,20,188,60,237,91,149,162,31,211,24,99,167,196,108,170,46,168,100,183,133,9,125,72,175,36,232,25,147,129,237,155,130,95,95,147,130,119,188,14,39,120,80,106,17,94,53,25,11,73,95,59,171,220,41,104,9,203,159,101,178,10,74,202,104,167,185,105,114,104,231,85,34,197,204,186,7,185,93,22,100,52,120,86,214,66,246,136,11,1,53,119,106,12,139,99,85,81,45,204,29,68,184,0,89,224,91,75,138,59,72,87,103,205,115,165,122,23,189,237,108,165,194,76,114,81,106,129,177,97,253,157,45,103,40,17,254,84,85,132,72,236,204,38,126,155,28,236,221,142,61,156,247,154,202,207,225,216,22,110,70,49,5,181,227,215,145,185,128,225,192,233,247,8,7,230,233,189,73,184,169,51,22,177,100,16,233,15,229,115,135,59,193,81,159,99,235,27,92,139,137,134,225,106,1,175,202,1,36,4,150,101,192,191,139,44,173,3,65,88,51,145,223,90,145,144,110,218,102,97,43,110,142,225,6,198,141,12,221,40,251,141,207,253,190,64,196,217,10,79,46,245,27,144,95,69,81,8}, } ; static const uint16_t precomputed_encode_761xint16_x[precomputed_encode_761xint16_NUM][crypto_encode_ITEMS] = { {33677,16713,25185,37695,10972,23570,52632,530,27328,58685,7798,61360,53528,2336,55475,35363,669,52205,45648,7156,11902,38716,5179,45629,29729,35419,62074,47253,62986,14837,53112,4352,54907,14911,21583,14751,3219,18223,28008,15952,17733,17955,49636,6568,24888,49736,54966,5015,49448,6478,8759,28165,19189,63270,42584,8544,32475,65365,34571,51974,2175,40936,65474,55296,14795,47177,2701,31966,17000,53786,52920,57376,47961,59580,42853,47995,20004,16377,39367,1782,22444,50967,45573,25476,16423,46030,13428,27348,33335,57355,54178,62383,41195,36787,17071,5275,26969,17755,27283,12257,58635,12966,64184,59611,63593,58603,9848,8602,16637,63451,58844,24890,3851,10992,1871,18353,716,32539,60130,21161,58526,49288,16328,23689,29797,65323,8916,34653,44308,64362,2365,25971,39253,9248,42205,27256,48492,38578,56300,27528,50457,11748,17038,17198,62791,13517,60583,28903,36612,35562,16485,3041,44932,16001,10474,16415,7359,27411,30096,4932,60863,60346,14078,63895,19364,34086,15967,5444,37235,33198,55855,64417,51233,56282,18521,51548,53175,41827,21937,21633,26748,14178,16221,36603,13835,47783,34260,4485,47062,50393,6271,14925,22518,38082,4075,117,9412,30270,25617,16332,46720,8674,41570,62430,47131,56737,47098,5884,43005,64302,59245,43557,29150,24990,32950,30503,1797,35811,6821,60340,24435,24937,51953,43008,25422,626,27019,59082,57793,19747,18656,37825,20742,41295,24019,46925,7961,10754,54244,20307,33458,38102,60273,57157,17912,41748,42151,54509,63410,60493,60223,4739,62020,35908,1785,12019,61546,17959,36877,33019,57888,61162,57699,57418,23973,24394,16227,44273,49187,26513,16949,22856,49669,4524,9444,38832,3616,42545,492,40439,35978,44916,58107,43815,17268,7821,34624,23270,32000,40947,19395,58245,50778,43243,61329,35769,19933,1309,48987,14308,51292,63226,41964,30956,62864,15788,3772,5994,36518,24742,12250,18263,59122,37088,9369,9290,18381,45587,120,5269,48785,17550,23024,41584,22778,34605,26703,14610,22745,60841,48831,30958,39926,7075,44107,10603,24943,27979,3915,55041,60871,16156,51222,24073,39694,63724,59988,5680,51514,2697,29199,13497,59703,5589,23333,24262,1205,7031,54290,50024,9691,38930,11572,39625,14284,42423,43118,35920,14682,16885,6444,25949,48687,34102,33969,52805,48318,35367,21009,2708,30617,21243,45974,26360,37079,45057,64875,53352,2032,36029,16139,42927,60871,26548,27515,12144,24873,27561,52673,10062,41721,55614,20734,36264,21648,36908,55811,49826,7363,13335,38709,21692,42525,2298,55511,22174,22254,35829,44703,18549,25502,43080,49011,39247,13988,55136,1907,13215,60533,6153,63354,8952,12069,57728,31878,16429,14804,30481,48181,25419,38271,40882,34488,24210,10145,48907,6182,57206,48033,27208,19792,22297,24308,55244,47943,51195,30786,58945,49758,28667,14836,53741,57737,57289,33685,19873,63552,30953,12138,26697,29263,63833,57171,43723,4220,40602,22138,64243,1597,9779,25118,17492,28175,43164,35913,3305,65021,24934,55067,13132,4983,26410,62915,33967,10569,63616,20132,3031,14697,453,59401,14306,63778,49121,38397,456,23441,27010,51381,5080,36023,43709,60722,51693,6285,28597,500,53022,1687,50233,14185,38063,52728,55708,20759,52813,51810,94,43289,49348,44440,51040,27619,52327,22640,48120,6030,55795,59559,20920,9043,11857,42366,52048,7230,47651,41881,39725,38278,63523,31281,32948,13067,15970,31874,50363,19094,15202,57090,29971,8284,19244,64974,35685,19439,36103,48335,35631,32983,44755,59339,9422,63377,36376,41654,42116,39713,13174,37585,57416,28140,17666,64301,12773,24243,29825,20607,8851,4982,16474,42145,13820,11349,64013,51129,23204,16985,6341,55218,29733,23943,962,22673,52367,3527,46547,14572,44914,23061,15564,39285,51100,20773,1107,2277,30914,49086,7209,15148,60840,49057,2666,44547,12791,58827,40013,46756,20522,52589,59259,52846,3422,62335,56893,55593,38258,61588,54915,5536,49018,5239,55277,39935,52535,22689,42601,54678,2277,49092,33011,23223,5288,10831,36624,20207,49538,15605,26482,106,60058,30962,42200,57396,13541,34198,5049,7112,49562,25826,4881,44920,55754,18544,28664,57058,63302,63767,14765,56836,29173,20485,59522,38813,39090,36428,63195,49156,22601,35899,14061,46576,32815,1488,41523,26885,60844,59260,47113,31529,64767,19562,27891,33110,46197,13583,25559,40134,7296,27308,8595,5600,14926,45645,62119,40676,8405,36191,46582,39606,16188,64672,7061,20903,34606,8591,63040,25735,52472,37326,61583,47418,51626,57493,31019,51994,54684,168,1755,27821,21317,23993,10849,20477,55649,3353,18752,35975,47655,45750,28373,9089,5705,46220,45224,25294,46505,58491,43376,27106,51130,10935}, {32918,53645,10609,61629,62368,48089,50298,6877,19786,59473,14311,54916,495,50054,27834,46687,12231,2458,29906,62548,45830,25365,12589,59413,63973,59990,53260,41131,3023,52970,37111,5146,27489,22391,64062,51479,50456,1240,62201,58148,63417,38115,8001,1007,7065,30343,64743,64054,12286,31983,40698,52104,41133,65190,54277,17826,47460,26,7561,55267,58512,362,33953,33177,19210,1809,51427,43978,10756,28292,54235,45445,5926,50504,26519,31453,16057,40881,12057,34050,9713,52530,30050,28280,46048,41176,43390,29119,50113,60161,32689,29729,27633,16605,54379,54059,50344,30752,2513,39414,24236,60277,51091,30865,54398,35285,16657,51881,4537,44182,59371,1026,44199,19879,11212,33001,7029,51406,5983,5748,33981,26785,39926,55228,2277,53756,2778,43067,22462,56094,26608,36977,61529,47777,31862,48068,26795,33031,26253,3008,8362,22113,43387,54578,59036,34473,62843,32668,35466,34785,31557,32017,47604,12208,51022,58926,40300,60633,60841,27862,18968,60428,44808,52008,23717,15462,2871,64443,44293,54846,28900,58657,47535,6498,34465,18018,5248,41769,56873,40955,31330,48792,51653,43873,24744,54889,19245,58276,10995,10361,44884,8471,55440,57645,64412,36427,41694,12714,56959,13317,59396,59054,17744,26294,34899,64943,26078,32299,18077,16216,48579,38142,54924,44971,7310,28204,14998,9508,26842,52010,52306,60342,58151,8926,61247,29957,64490,52052,29486,56396,65030,32980,34204,37630,59333,54886,31157,23763,32641,20740,33189,52515,18996,48065,48924,45208,57520,18758,24239,32422,62280,2595,51975,43892,12073,60697,21124,13263,23888,28750,38801,43634,20042,6774,48207,2291,62512,65510,50270,40642,20776,3913,62393,226,30657,33188,27599,31492,55488,60555,1965,21758,12190,37346,30647,17167,30742,31280,14553,36910,36634,58104,13087,12420,65447,6439,32775,51101,58268,56031,34061,23336,2560,57527,46789,29345,28055,62917,29286,47029,57501,17548,32816,51208,39932,44049,13257,38332,40098,26882,63540,49793,2366,59738,40693,48262,38373,34988,27851,31405,32026,60118,11049,40157,29575,45305,49952,59895,61331,925,9958,11647,9688,56151,33222,19010,51403,5440,49258,45953,42488,42311,44301,60723,27883,7261,17770,52763,20131,38774,55203,26917,51347,9262,56616,17001,45938,5189,29901,34405,51732,54404,39790,54071,37794,15441,46880,50707,19404,2642,57349,60017,25289,34110,20784,1823,15319,10344,61368,26130,40805,20969,54583,44479,8098,22854,11851,44536,48756,50692,10872,16786,60337,63013,52246,14793,20595,42529,10136,1082,65455,11360,61063,25781,34133,52275,42753,37319,6383,57182,21069,54778,43086,56884,49112,24227,46316,22278,56656,22170,45204,22591,38702,48688,32206,26967,7395,18171,34948,62691,62379,39696,60525,47416,17941,59441,23929,61159,46674,53498,62221,7286,17251,46249,10670,33517,12012,31971,5314,43837,6802,6613,52620,44614,2400,7238,34616,37536,25229,27182,18572,2785,10995,2760,57507,4659,44869,13595,47003,24726,8078,28889,44696,57459,23595,12074,42623,47260,7144,40893,44197,34720,61124,13150,37905,30061,3749,6300,23607,59628,40860,16592,53668,9205,8554,42326,2729,62085,38342,13847,3262,32579,13675,14480,58466,2600,23369,18211,22023,13975,4996,28785,14858,48658,51981,132,43531,3550,13362,41955,15025,10573,28912,60677,54423,39640,62083,28634,22024,20811,19315,25774,10057,54178,43244,33925,62819,29265,48554,57447,15284,4410,32238,32828,32378,52398,30113,58615,22290,28869,30004,18954,55712,18321,58835,25943,36334,25592,59393,11522,45926,17,30077,32044,32481,43052,49685,33256,12825,14410,19772,11051,37264,58911,61769,59734,55234,55638,38805,6053,42761,14443,21507,2545,52402,7183,37891,44644,8117,62404,50302,6503,63819,17158,16869,31259,27095,24308,49926,30625,20637,27944,3214,6053,51233,912,7547,14394,12280,34335,9244,42364,20629,38721,17799,6857,41728,60649,7014,21194,47947,9543,36553,58558,63948,29965,60077,35870,3647,52167,24403,45069,59813,27600,61266,46458,28382,57704,4188,2113,54242,34229,3358,59473,39068,3299,61465,153,55422,57449,46453,5978,1320,5048,7957,58897,56447,55406,8529,52737,45041,52793,56122,42488,41926,55895,28261,40245,35997,34758,56375,51958,43094,17589,32355,28016,48876,3638,47463,62313,31635,7537,17809,14159,56803,8488,24685,42572,15281,4360,12200,11075,19687,35314,39875,51971,9757,53111,26821,7587,18583,54164,48124,13909,23549,58270,43411,30651,6634,18004,3532,59824,61996,57257,23855,14628,57137,50961,30815,19616,27765,33663,34007,23733,60427,26185,30942,25217,41838,37775,27282,10649,13444,24774,19553,59417,54459,27319,19664,1799,54141,40262,57754,3726,48399,53850,47414,38428,517,7431,30659}, {50603,6559,6947,17828,46919,21301,61270,17103,62941,47064,45898,26410,37266,10340,61606,34366,64053,12567,55739,59063,43200,53697,62943,41374,29972,57626,16009,7044,63498,24503,37088,63075,6323,13285,61906,59999,21383,53217,40206,2852,59137,1481,47627,43033,12178,54184,52020,53750,18275,44835,23411,51093,33447,10955,11029,10818,44133,63564,65434,64184,17476,35230,25400,56143,51194,11172,5461,42553,9474,19719,33605,3554,16777,51041,27521,26845,2177,59289,5783,33888,61715,22801,27176,57072,46196,63875,43403,47643,5001,54799,1163,52185,29441,27303,30919,51371,46582,60207,63098,14757,36482,39232,29485,11596,46966,60581,37864,3622,8214,22407,12111,42967,46205,29251,22817,5994,11246,37808,60827,29272,7169,62267,6602,25892,36671,26618,16549,62840,60696,15462,7904,43510,63549,6222,45014,55912,35931,4718,64675,51230,41187,61722,39079,42817,47306,55200,39526,35345,59746,29145,47812,14149,60948,8964,37476,51198,11179,8572,114,16299,18467,46415,47293,5143,2103,7060,53178,46709,25930,32532,8762,50413,21944,2014,22296,21288,62985,38588,32374,58006,31254,42468,4432,41796,21538,6192,5334,54093,51688,4314,44510,20132,57452,48354,59502,60054,52505,40270,64934,14068,23908,21083,44722,58395,1003,9801,1362,26586,5578,25310,14863,38596,41210,59587,42626,27178,63380,57877,11249,12680,28030,8163,32400,15201,23661,56839,24017,13318,52445,12011,57170,18486,41328,7738,62829,1143,31923,4098,62051,39173,27633,24323,63489,62421,26118,49210,2276,43926,59963,13,6660,50328,12968,42154,40054,53569,42562,22192,31670,53845,33141,16835,6223,46950,49463,59839,4212,34767,18071,7237,58511,11044,16336,35629,47077,56973,27698,58366,3781,12979,26621,54317,12829,25080,34988,22767,21427,15084,16522,35370,42607,21813,55274,32754,10260,27681,3793,41134,23775,53058,26806,33152,14049,62939,29478,32437,55473,42000,5394,7648,59797,14196,35575,9143,27177,21937,30424,30783,44102,53802,21888,32923,32893,45223,14835,32961,23635,14305,7147,44765,41718,4348,39960,2537,59439,3758,54559,26236,43641,1221,21319,2801,3989,42317,20234,50536,41137,5757,17692,34894,62877,52515,5519,37041,39922,5211,10383,24774,39154,38011,51941,43075,39910,38565,16922,50523,40207,45741,25273,1454,21068,53487,12322,2268,12465,25889,42520,53596,28769,57937,25641,4908,49328,9465,21856,62678,46310,57490,61001,45743,35459,30992,57251,47379,9230,4979,44386,49150,27627,28960,48814,17071,9882,27798,62174,38991,15311,55059,38668,17643,58452,12486,25088,53052,39795,19983,64572,17791,49229,29405,2522,20296,53263,42303,44414,50146,48546,48895,28046,56893,31562,30539,23135,5147,1569,4114,49768,51989,14759,18112,46566,16351,22334,14983,25120,48369,23882,26114,52889,35092,64282,19713,7733,43076,48563,58173,16845,54273,22075,27608,39797,33470,49844,35181,36773,43449,26704,37187,63564,35058,25670,13577,13218,22221,35037,308,24511,164,45008,12307,38738,38008,10424,29934,62966,33610,53699,18778,25301,44764,64690,18444,36372,22277,22046,65146,38149,22393,41257,21785,27775,35277,31393,76,21944,47548,34527,26773,45347,37586,18097,34972,62321,24626,10799,27576,35977,16892,42934,50298,45628,20857,29878,42151,56890,49027,16665,18152,25115,17539,22440,14978,54260,24459,26060,36532,63761,36434,48504,8842,61866,27384,51370,12639,8527,13795,9990,6614,61517,31508,28107,43608,4235,44096,60428,1053,48143,2293,47326,46433,56972,26788,12820,32764,7523,32978,33454,55835,37859,43387,3123,53138,38705,53234,43793,57983,5040,65313,42975,7424,8073,31561,31735,38540,11126,11526,44643,9842,53975,31770,10777,24865,7106,17333,44866,33673,7610,10849,36562,32527,55308,29079,36445,51939,53689,24347,54526,58044,33793,22614,18936,43053,64873,10674,23056,465,32539,25504,11002,61855,20359,16362,16602,40846,16033,44740,22201,60074,3013,27085,32612,45650,31924,11439,52023,42633,59628,59717,16993,12452,6282,48255,65039,9201,55352,65440,32208,50997,9256,63257,55927,30340,62409,29479,40548,35979,9303,15235,59647,20006,2227,63993,59827,27146,41500,19002,50624,61304,9848,52922,22061,7141,1190,14670,13183,59851,49221,61546,28732,65313,60174,44210,22119,54881,61506,40430,5396,7563,20376,26002,52246,39409,44381,52123,31909,34162,43617,47218,48459,25996,34701,15922,55510,47468,45327,44644,42862,11323,36347,38578,30370,16543,18130,12254,50102,1431,54384,13360,62195,39394,24872,17221,40248,2704,15304,27331,50647,61974,21115,26454,39103,39111,51881,12266,12924,8888,34937,63744,60614,61294,11966,11198,31542,37475,30108,12192,46965,19492,6067,3842,54516,11021,6669,1257,23783,5386,44107,37938,56315,1583,18516}, {48892,38672,64091,8589,11822,47709,60865,41402,38394,35243,57826,27242,36318,29311,28766,5031,27017,40747,24453,63774,34649,24568,41602,28070,23332,45305,14305,58292,63396,56994,31868,29395,26412,55075,15516,21320,63911,60364,9033,55475,38279,1009,34619,30163,61156,18932,9069,34524,19533,52138,4582,26465,3381,25588,37720,62036,35861,42350,11214,26684,24310,57797,35804,60003,28799,39245,32522,63043,59033,32326,10134,31945,47755,29594,22976,21097,43137,48777,4593,27903,1592,36971,37397,30371,19423,31591,21639,38014,60186,12461,51934,31846,9368,45784,55759,3773,52497,58667,30416,57910,54724,4419,7447,54482,11333,49353,52660,54305,24918,11962,63802,33186,60539,28946,19658,62553,35891,2074,29950,59637,13459,14184,61864,17161,61895,23224,32633,2128,27477,27321,26724,15264,5731,32205,64864,2289,63282,28129,20851,54678,49809,9438,58571,31195,5745,18552,19174,2844,16760,51970,42594,14849,54834,42654,61910,50063,55346,5920,6865,26604,30373,64251,17196,52587,57086,19300,5672,28486,35639,1144,64117,9137,7372,42116,41074,44371,54617,13745,46599,40968,16038,28974,47876,20933,14608,4210,62697,32094,22391,12191,54862,61468,18378,61504,43755,33295,37306,33829,7623,63592,44175,51973,18616,7237,26186,28775,29487,51519,9757,6171,21481,42867,2150,56808,44446,40900,27741,56895,14617,35301,38550,17414,173,47256,17460,29096,45487,5542,64502,1335,6689,15078,31112,58909,34988,42460,64372,9901,43606,9487,25125,4264,50600,54656,5080,7158,30453,38464,21599,3846,58356,53578,7659,24978,9805,41666,14767,55995,42991,62149,3893,36133,54348,3064,25020,19277,33947,56974,59851,41669,60360,27675,11266,5883,34169,29102,56471,33468,35688,23690,11416,33511,55397,38865,49738,19069,17808,65479,21019,36123,32057,15373,24747,57687,20354,8934,11424,4548,34026,39132,29491,31784,50837,18112,6400,19207,12632,40548,20265,10377,61259,48254,5739,20618,55972,60569,12707,60518,13206,30775,34474,60341,64323,30356,22228,16245,56417,54834,65024,46941,32040,37662,61748,12200,44826,23393,2505,25576,44246,58730,28126,38649,41165,25872,29869,19402,42733,447,38963,14667,46255,3064,45253,48028,19065,45951,52280,33655,55234,58304,29430,6725,1553,45089,48874,23750,46745,7247,19029,37737,23818,60389,35937,50637,53382,17408,49603,14652,41680,10079,35470,5727,16992,58552,41968,47466,26037,55593,35674,3604,41857,46202,59174,64995,54712,53155,43408,38127,18708,17482,31740,2914,54888,37100,36692,18615,53612,19238,55037,3451,18761,48767,28458,41508,42696,54596,26706,61800,46063,61881,10396,12016,7814,51503,10161,5366,60874,12379,53392,6438,57408,7509,11600,30737,18446,58866,17404,60294,16114,12185,20703,31861,44576,35360,30209,45451,1186,57068,6183,18229,26459,40024,37268,24271,31939,1109,42413,56534,7305,36713,1906,33673,16872,55603,3143,37978,55812,55567,6063,22665,22021,24789,64836,58650,37897,11342,62777,29102,52391,21064,33804,43605,7172,51707,22290,2241,3592,2077,61856,16042,18989,57073,50341,50959,38743,15936,16581,49636,50469,8858,30503,10426,8532,7575,63693,41243,44841,26150,40504,20178,23434,1434,49105,3248,49040,40004,2386,46219,58186,3616,55913,16166,11393,27322,1246,27323,37764,16175,17871,45358,65393,32469,51892,19853,59023,3248,51091,51046,6164,18775,13008,33866,63984,42022,57961,3571,58033,18847,38633,37373,60264,51712,19737,54753,20407,20655,54496,31582,17067,35858,20105,18866,1181,17167,5884,26453,50264,18415,34171,14065,34793,17817,37846,35566,25780,43466,10005,48824,6624,38551,5615,19390,15195,37021,16595,33652,32666,42340,9294,38646,10894,3969,51767,37413,1460,54895,26755,32642,60948,55414,26260,56968,12785,56475,45469,23548,28423,32777,45013,19508,25068,58885,25841,20912,41458,35609,40748,6192,53210,19437,37045,3497,35147,41380,59783,41248,32555,54074,10226,54874,15405,27295,5303,15548,23533,41621,54047,25368,50343,43628,43054,46948,2437,18557,9391,6632,33171,39917,24450,37727,30594,3772,30759,27216,24081,6453,18699,15199,56491,26665,51977,26015,2738,51786,42856,27065,26738,21991,50466,47820,47367,5725,13412,22136,17110,35062,267,30517,3178,25483,20821,52269,17437,184,57433,19291,15242,22344,52583,42355,6010,60861,42348,19650,20850,33130,25009,40445,26413,4392,21758,33877,60488,9932,39806,60444,36573,39997,39671,53194,55521,28182,12614,46341,55267,47505,57728,59840,2295,58887,48617,47177,13225,45334,4196,4073,29669,15239,20929,25503,7147,35676,34441,27361,44801,458,1060,26006,49088,11403,941,22593,37171,23263,37009,55918,24934,28203,57742,50694,3213,10461,36347,64975,16574,55748,20234,62766,36891,17759,2129}, } ; static void test_encode_761xint16_impl(long long impl) { unsigned char *s = test_encode_761xint16_s; unsigned char *x = test_encode_761xint16_x; unsigned char *s2 = test_encode_761xint16_s2; unsigned char *x2 = test_encode_761xint16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_761xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_761xint16(impl); printf("encode_761xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_761xint16_implementation(impl),ntruprime_dispatch_encode_761xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_761xint16; printf("encode_761xint16 selected implementation %s compiler %s\n",ntruprime_encode_761xint16_implementation(),ntruprime_encode_761xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_761xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_761xint16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_761xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_761xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_761xint16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_761xint16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_761xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"761xint16")) return; storage_encode_761xint16_s = callocplus(crypto_encode_STRBYTES); test_encode_761xint16_s = aligned(storage_encode_761xint16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_761xint16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_761xint16_x = aligned(storage_encode_761xint16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_761xint16_s2 = callocplus(maxalloc); test_encode_761xint16_s2 = aligned(storage_encode_761xint16_s2,crypto_encode_STRBYTES); storage_encode_761xint16_x2 = callocplus(maxalloc); test_encode_761xint16_x2 = aligned(storage_encode_761xint16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_761xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_761xint16();++impl) forked(test_encode_761xint16_impl,impl); ++test_encode_761xint16_s; ++test_encode_761xint16_x; ++test_encode_761xint16_s2; ++test_encode_761xint16_x2; } free(storage_encode_761xint16_x2); free(storage_encode_761xint16_s2); free(storage_encode_761xint16_x); free(storage_encode_761xint16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_857x1723.c0000644000000000000000000012534014705505543022407 0ustar rootroot/* ----- encode/857x1723, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_857x1723_checksums[] = { "a2c1b7ffa60681087da6204f1669281950ae2bce4bfd23b3f34ee7464c298aa9", "e6c3186f85c9ee4f61bc3ec2f12f5cab699b269f414ceb8125753b5ff3526919", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_857x1723_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_857x1723_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_857x1723_ITEMBYTES static void *storage_encode_857x1723_s; static unsigned char *test_encode_857x1723_s; static void *storage_encode_857x1723_x; static unsigned char *test_encode_857x1723_x; static void *storage_encode_857x1723_s2; static unsigned char *test_encode_857x1723_s2; static void *storage_encode_857x1723_x2; static unsigned char *test_encode_857x1723_x2; #define precomputed_encode_857x1723_NUM 4 static const unsigned char precomputed_encode_857x1723_s[precomputed_encode_857x1723_NUM][crypto_encode_STRBYTES] = { {77,130,166,189,46,150,246,244,138,18,73,254,59,101,231,69,20,27,74,194,32,149,7,195,7,70,185,200,162,89,54,65,78,17,114,203,35,157,231,185,147,253,194,49,246,246,110,141,243,138,83,214,194,245,141,58,154,33,86,9,127,153,29,41,255,43,198,75,25,235,134,207,239,62,69,131,248,110,134,133,5,87,84,35,207,25,15,39,210,52,149,72,239,201,254,211,88,138,7,132,166,70,40,20,180,93,148,95,103,11,171,197,109,236,112,83,175,106,97,22,130,235,90,139,206,218,71,245,0,166,189,158,70,97,154,205,123,142,56,152,220,130,32,124,50,47,155,113,183,160,44,34,29,38,144,33,158,58,20,70,227,25,231,84,157,175,140,104,174,65,255,111,117,93,43,202,7,109,205,40,226,116,244,96,141,249,87,30,229,68,102,36,77,192,242,143,88,89,85,154,143,106,96,97,137,195,238,126,93,240,105,231,83,62,247,162,95,56,193,97,20,224,212,22,125,162,151,233,1,141,169,169,87,228,84,8,19,240,173,151,96,194,99,70,214,94,31,19,169,95,164,191,241,5,28,177,222,231,162,229,81,6,138,184,233,61,105,225,191,138,149,32,252,223,253,80,85,82,88,209,40,250,129,251,152,246,22,198,200,22,95,226,8,196,72,216,43,148,222,230,5,57,130,164,202,142,85,37,239,242,1,137,92,40,213,179,201,28,206,169,82,8,70,85,242,223,84,122,169,208,47,248,217,137,63,96,49,22,138,50,194,208,52,244,62,252,163,138,162,251,255,231,192,121,237,172,125,137,34,229,39,214,56,155,61,25,16,84,178,241,199,76,55,36,70,245,124,243,152,78,100,176,148,46,21,125,170,153,139,85,8,243,186,159,124,32,130,238,34,123,22,227,120,11,87,236,198,146,59,153,233,66,83,242,117,153,226,206,5,239,154,250,239,144,94,192,205,245,129,175,226,58,75,66,147,152,72,176,29,221,19,82,61,197,241,238,22,213,137,69,82,23,13,184,180,232,67,198,81,207,23,45,155,79,68,227,9,193,115,171,181,202,53,156,163,145,53,222,219,203,39,49,57,19,26,113,90,223,22,203,92,159,39,164,20,52,74,16,2,104,21,139,185,201,22,70,98,5,237,156,174,70,210,167,76,215,242,196,94,129,210,41,83,58,227,144,69,42,66,76,87,101,137,53,38,54,107,132,162,53,129,209,231,133,162,115,139,216,180,197,86,17,4,22,186,177,52,153,123,92,160,189,106,245,30,211,10,159,94,47,106,153,178,136,240,208,71,230,196,73,192,169,20,181,3,141,13,113,250,94,29,62,92,66,135,182,156,84,80,46,48,164,151,10,168,163,69,239,231,187,21,165,166,99,6,61,66,171,116,75,129,105,188,182,111,164,135,170,223,141,30,50,141,123,29,173,223,232,194,86,165,189,186,26,230,43,109,194,35,241,76,182,251,118,178,190,142,54,252,242,66,206,43,185,31,81,116,232,252,131,222,118,176,184,207,229,71,79,70,211,58,218,159,58,42,230,189,244,35,150,158,0,85,119,244,79,125,137,167,144,21,28,100,5,194,143,14,20,154,179,254,52,82,168,0,192,215,173,131,206,33,161,26,30,127,193,185,166,176,236,81,170,255,208,6,154,155,76,239,62,106,142,115,12,3,92,107,228,28,13,44,22,129,198,253,4,73,97,216,15,247,171,218,154,11,219,169,222,45,117,141,228,163,226,170,176,19,82,86,231,204,179,78,190,30,44,172,42,41,177,238,12,189,60,191,73,207,15,192,206,20,222,110,145,200,17,4,89,105,202,135,207,14,1,248,195,146,193,90,48,16,196,182,55,13,187,193,176,3,219,122,194,202,205,38,228,64,108,130,169,133,64,22,8,95,212,46,222,126,71,230,19,60,84,46,118,202,94,85,52,236,229,98,45,182,0,49,54,180,106,96,24,151,240,113,224,198,107,34,78,194,136,199,36,208,41,174,217,59,189,88,9,31,16,120,217,123,82,160,145,125,11,97,45,250,33,78,239,238,142,85,141,28,220,117,168,64,53,60,241,243,169,51,185,245,65,119,179,220,96,163,5,176,226,60,110,99,120,204,169,161,39,151,45,223,252,225,26,189,239,10,21,32,183,72,129,197,93,211,107,249,51,24,93,18,157,48,154,207,109,84,67,106,15,204,202,93,67,94,213,174,69,68,222,70,47,252,171,216,221,21,222,71,235,77,224,152,75,233,42,150,162,44,116,229,203,29,138,225,119,221,118,137,215,145,90,77,233,64,23,9,168,206,100,52,198,131,163,171,59,228,58,135,255,161,119,115,5,136,16,226,202,27,34,42,197,53,158,7,114,111,1,67,130,148,219,183,136,112,144,208,248,111,91,231,107,148,44,169,226,84,122,186,168,164,5,15,14,17,189,153,168,160,42,178,10,229,209,148,116,237,169,82,131,189,175,93,93,79,164,39,130,236,4,86,45,76,93,144,182,20,87,13,126,218,117,198,120,247,239,162,201,26,236,0,132,10,172,239,19,69,9,244,151,182,54,100,150,125,243,153,202,50,187,140,178,132,120,69,135,125,117}, {45,22,198,186,229,248,19,201,146,71,89,8,141,159,60,204,91,235,29,225,68,36,12,12,5,154,105,232,148,125,173,61,167,100,224,196,121,113,0,128,170,5,129,248,177,221,4,129,54,36,104,56,193,60,180,91,179,187,217,216,237,107,186,18,59,175,129,185,249,52,149,2,114,46,168,39,90,85,138,83,86,108,62,196,193,16,53,198,30,71,77,112,43,162,3,236,17,189,223,197,164,122,20,199,68,169,209,74,68,149,105,231,77,111,133,227,240,154,246,69,43,44,188,87,72,111,3,130,179,125,115,41,250,242,1,76,248,167,51,183,222,239,68,49,1,91,149,223,204,210,183,57,45,143,70,164,8,179,30,206,62,95,202,39,56,178,238,203,198,118,254,64,163,214,207,1,242,208,126,249,249,154,22,30,60,203,20,147,30,150,136,0,151,119,202,207,40,69,249,49,18,234,79,102,102,162,141,235,113,85,143,28,19,81,216,139,31,197,215,239,153,235,109,116,117,173,146,181,99,74,210,35,68,50,116,91,36,203,123,68,99,180,205,231,155,90,136,221,72,119,91,5,185,65,22,18,201,79,232,35,210,125,166,181,226,127,184,125,239,190,94,139,183,30,75,142,170,202,34,193,45,190,192,190,92,220,120,121,193,131,111,183,153,187,50,131,229,170,219,145,101,204,121,5,134,158,39,91,59,187,120,201,7,253,156,169,19,168,193,103,95,69,131,2,32,56,241,127,70,195,88,76,215,21,112,27,74,227,134,172,153,194,209,100,126,179,42,197,249,70,128,188,214,37,222,154,173,123,251,4,14,110,141,46,157,226,2,255,28,162,144,57,68,77,97,75,163,156,3,111,19,33,123,232,86,63,161,64,32,71,239,228,65,163,183,137,170,189,93,244,113,75,36,238,137,56,214,74,146,111,194,241,160,186,90,36,50,159,64,19,65,14,39,7,152,100,181,244,30,147,123,215,126,223,201,66,76,129,149,151,19,134,180,180,130,39,19,42,183,106,35,58,14,201,55,220,121,94,236,94,231,207,97,103,236,40,88,155,188,242,51,165,36,47,156,238,98,190,132,15,46,22,82,201,109,132,167,7,35,134,28,110,152,7,22,155,206,99,169,230,131,20,204,1,20,44,131,205,91,50,206,205,80,21,56,161,187,176,7,187,15,119,106,251,210,27,41,63,52,176,132,232,105,185,107,114,194,194,236,4,189,131,117,111,96,69,177,176,153,205,95,167,127,199,48,244,252,75,10,3,169,225,55,77,0,144,4,150,225,181,90,178,243,173,224,186,18,235,117,80,142,177,255,230,94,82,252,214,2,225,151,113,188,159,50,41,35,150,166,29,83,189,49,45,52,129,14,165,57,116,184,190,12,222,37,138,126,251,3,108,157,33,202,151,231,70,11,218,84,118,139,62,53,194,165,160,70,149,163,235,106,245,128,86,124,140,191,248,65,70,244,206,147,4,86,177,222,146,63,25,124,255,72,221,46,197,92,184,188,131,32,133,95,255,82,188,215,78,55,87,140,174,97,255,66,231,182,212,127,212,98,233,64,199,79,135,47,225,227,225,15,93,203,66,148,244,181,160,97,69,54,104,96,145,233,146,81,183,197,156,22,231,179,186,203,5,56,51,75,136,183,220,71,244,213,91,115,112,220,60,57,36,187,15,74,129,14,187,36,72,137,2,143,240,41,90,195,159,46,148,143,197,102,59,215,203,33,101,133,154,14,8,5,27,154,115,232,4,148,150,207,41,120,118,54,255,195,252,102,169,146,67,160,105,170,71,148,47,153,169,43,56,230,61,179,115,230,59,172,230,244,4,30,193,252,197,86,180,90,124,248,43,63,189,200,109,40,182,197,30,224,106,161,45,248,167,128,7,49,130,150,202,194,54,25,98,52,17,61,207,183,69,22,243,23,239,138,247,211,15,222,94,113,120,101,188,67,38,72,7,13,141,133,151,224,127,185,33,177,180,77,147,25,70,24,76,226,127,144,184,158,33,95,248,205,217,107,243,199,122,27,40,122,206,243,0,242,173,175,101,121,114,81,14,68,119,160,212,220,171,36,244,143,71,169,187,182,109,112,252,255,201,63,221,30,171,228,248,140,95,45,71,104,191,116,151,16,46,218,191,16,77,190,151,72,144,24,247,168,162,107,6,210,11,160,42,227,51,248,224,2,219,92,231,247,85,230,89,5,81,15,229,240,22,156,206,108,8,97,85,75,112,183,50,204,86,151,93,48,54,182,164,100,50,80,100,240,64,215,253,66,12,83,2,156,120,135,25,71,134,178,103,250,246,136,229,222,232,181,185,9,142,60,107,228,124,5,215,195,228,206,122,95,206,21,67,129,62,95,214,39,238,69,224,72,119,48,174,23,254,85,252,52,14,131,182,55,181,218,79,210,7,104,202,203,240,233,210,120,18,82,106,73,161,177,91,10,114,210,57,125,150,163,53,234,208,110,151,133,87,255,178,78,75,166,148,165,200,242,171,179,240,250,253,54,134,134,70,83,92,230,195,58,34,160,209,91,66,90,122,147,131,38,23,114,96,109,43,37,200,69,180,99,178,203,193,50,144,73,101,92,243}, {43,64,76,129,244,247,53,121,50,127,20,157,90,197,125,251,14,81,27,252,255,204,55,158,220,14,238,194,93,129,60,30,230,201,150,106,125,148,250,118,251,222,178,171,52,212,65,197,101,117,231,134,208,236,228,118,169,38,185,143,88,209,253,58,63,210,143,11,180,246,221,227,74,16,78,162,8,28,35,212,38,140,90,51,8,127,55,27,112,107,70,58,47,216,12,164,113,44,77,196,63,163,162,3,232,225,247,188,106,47,232,152,49,145,34,224,152,240,0,187,185,49,114,170,30,113,162,232,40,119,106,235,46,86,175,8,11,73,28,214,234,24,80,73,163,186,99,137,18,97,27,208,157,165,247,96,179,236,44,0,45,4,30,130,147,11,129,165,242,231,224,210,33,233,59,13,153,56,128,92,154,15,135,207,120,111,114,146,247,164,19,157,46,248,33,37,17,7,216,215,122,32,35,129,113,222,109,0,118,131,0,87,74,28,131,235,0,120,132,216,87,23,182,174,88,110,199,130,27,154,128,110,236,162,158,102,48,42,105,23,163,47,197,37,215,180,159,207,237,103,18,177,184,27,89,195,154,193,178,6,70,58,127,50,225,204,145,132,59,167,225,227,153,118,119,231,114,179,215,209,156,110,175,149,188,216,55,248,90,43,148,152,46,57,188,127,194,43,176,228,151,226,185,86,58,111,81,221,101,170,199,105,75,98,217,127,198,23,207,140,58,110,237,200,255,240,200,137,224,179,65,56,129,162,235,226,90,188,126,109,120,207,223,6,150,173,137,222,235,120,239,199,119,244,151,112,111,98,68,240,59,183,162,239,148,243,204,209,13,236,21,82,234,4,1,59,201,31,185,54,36,88,230,77,217,124,138,6,49,6,18,63,54,38,238,166,96,250,50,13,172,206,213,200,72,56,243,104,3,158,94,162,4,19,1,30,41,52,226,135,53,105,74,82,111,37,175,203,152,41,92,222,123,16,229,16,126,183,17,165,213,129,56,91,166,26,113,199,21,2,163,54,211,195,71,96,113,158,96,27,63,219,79,136,88,9,158,88,60,223,148,121,170,228,116,51,138,173,23,90,213,235,62,210,136,101,207,66,123,143,117,208,181,250,202,233,135,193,236,217,22,161,4,253,183,163,161,153,0,38,230,35,71,21,35,41,10,110,247,192,154,109,81,174,74,199,90,93,130,87,62,180,43,173,109,211,118,68,73,73,185,242,111,190,31,121,20,231,203,211,243,86,194,163,187,208,85,29,118,215,9,124,250,11,90,164,203,27,91,150,218,123,102,110,52,152,30,247,84,201,157,97,186,147,109,58,71,7,173,200,132,216,81,205,77,62,74,187,162,113,25,6,255,158,73,127,171,74,234,165,183,55,158,222,16,132,229,153,249,190,144,25,208,207,11,71,47,12,21,10,239,23,82,20,1,10,250,97,35,253,199,142,30,8,7,35,209,172,43,4,191,182,231,69,112,37,232,0,170,91,46,176,101,188,192,229,152,124,1,63,171,163,226,246,58,174,139,68,184,145,208,215,12,255,135,113,246,17,123,40,125,154,155,98,8,19,66,231,28,230,131,74,171,175,104,67,174,139,50,60,71,173,156,16,16,147,201,117,226,165,247,91,155,6,0,209,14,118,99,223,61,229,230,115,155,83,167,198,41,155,78,218,126,7,175,28,167,31,17,34,175,184,210,226,107,198,6,109,255,8,240,120,105,154,40,62,215,133,227,213,132,209,49,10,70,184,58,186,147,152,102,142,180,17,98,139,145,41,114,60,222,55,46,43,203,163,90,39,190,59,91,0,162,53,48,188,89,93,107,159,21,17,234,49,111,0,223,188,170,133,92,171,116,172,68,133,228,155,25,43,125,161,214,207,71,238,1,108,138,80,160,57,221,74,194,71,159,233,209,95,169,16,233,21,105,249,249,3,16,6,211,180,39,71,130,229,102,199,125,113,142,159,79,161,60,237,225,168,212,25,90,11,87,101,197,28,112,111,8,85,131,44,115,91,14,113,170,184,235,44,67,201,212,187,215,51,63,3,217,207,137,137,5,70,81,53,152,147,106,174,238,93,123,88,182,86,159,239,0,26,197,127,234,133,201,224,123,173,235,45,231,239,210,182,86,28,216,19,188,178,43,27,195,230,186,208,87,255,155,248,169,221,230,105,241,31,116,182,46,171,36,105,181,99,140,182,101,233,54,215,15,136,169,222,102,81,125,252,255,175,74,108,205,176,180,199,118,199,15,126,113,32,108,3,221,123,11,74,235,19,96,217,47,143,118,129,28,192,192,209,91,97,160,153,254,145,161,188,250,1,243,182,167,165,185,152,84,1,69,181,31,13,187,47,83,242,157,90,201,117,57,245,172,226,185,174,9,126,12,26,103,88,202,66,18,68,246,220,155,107,59,85,146,2,201,239,211,75,254,219,79,223,8,186,185,48,54,89,88,207,195,152,136,123,50,170,70,248,13,53,42,86,148,196,228,2,118,2,185,180,181,34,95,102,22,22,164,136,163,41,91,70,10,206,163,81,223,235,242,188,136,55,46,14,222,39,233,144,223,172,29,38,200,227,196,54,216,56,44,197,97,60}, {104,23,70,225,98,32,199,216,163,118,162,208,155,136,26,112,48,133,46,89,211,183,154,238,14,171,120,88,20,99,230,239,126,186,84,178,10,255,76,237,164,225,194,213,12,11,132,149,133,201,118,130,108,102,97,28,47,224,208,140,124,179,0,148,174,163,216,115,59,153,94,248,19,255,170,155,124,209,153,16,84,28,92,130,156,130,240,111,167,227,145,105,58,66,143,98,26,30,229,232,125,148,234,124,95,30,107,19,22,107,56,46,12,29,23,234,139,38,158,72,11,24,56,13,218,78,193,87,17,211,75,8,97,156,134,47,226,27,184,242,30,219,253,251,115,7,7,4,253,27,128,212,224,249,100,44,124,86,219,154,199,61,81,221,82,113,91,10,47,3,43,43,193,226,200,178,63,27,154,0,80,249,170,241,109,95,3,77,172,129,43,221,74,19,71,116,210,230,116,235,121,90,53,252,164,83,193,6,125,207,150,127,104,32,82,243,131,145,67,116,18,25,161,83,59,238,110,94,47,109,152,192,176,48,230,47,105,229,0,137,176,164,45,188,131,151,38,250,143,124,126,201,177,137,199,165,63,89,161,174,29,32,18,65,110,197,110,236,105,116,197,190,209,145,188,194,59,130,131,149,18,136,51,24,144,209,204,209,127,248,170,87,100,92,64,139,207,179,244,144,242,66,46,164,156,81,190,76,24,76,163,245,66,208,14,171,61,77,235,180,238,220,95,17,196,115,200,143,7,160,219,104,117,97,62,147,64,49,245,252,15,79,85,237,48,234,12,138,139,42,195,203,114,54,221,181,156,41,124,51,21,175,90,229,56,23,234,62,93,25,4,235,188,150,157,134,235,157,235,251,75,162,20,30,77,117,118,237,0,2,187,100,109,38,212,224,98,105,96,239,90,25,174,10,248,162,166,195,3,174,183,250,154,53,184,21,217,225,30,7,91,47,137,25,99,95,13,25,23,210,164,86,51,206,172,116,42,239,73,97,135,234,153,134,181,170,201,183,123,18,143,48,220,221,142,198,212,228,179,35,183,216,169,31,51,184,79,167,81,243,183,67,166,43,237,207,64,51,193,14,128,109,97,168,160,87,76,227,114,55,216,93,219,186,41,166,33,9,57,191,243,153,106,11,212,14,191,23,165,146,34,123,217,161,4,94,169,145,69,159,253,107,53,235,148,141,125,179,161,227,227,38,169,80,103,202,224,177,165,183,13,49,89,28,2,143,44,103,71,105,227,58,233,83,96,228,0,38,184,253,145,247,105,64,28,240,157,13,60,168,194,163,3,17,119,15,112,231,125,249,159,50,193,155,220,4,195,227,236,16,73,74,97,244,214,124,196,62,41,129,129,65,176,127,125,21,204,224,247,37,231,249,255,119,212,50,135,219,164,142,159,15,190,225,144,204,180,50,24,27,37,92,88,236,90,54,222,66,164,195,186,97,52,35,184,204,216,231,150,19,59,249,150,22,154,226,132,254,129,209,125,11,121,240,17,34,82,220,141,67,27,200,22,215,128,179,71,155,231,238,17,35,0,63,21,205,167,195,27,11,9,74,90,228,229,5,3,4,162,54,46,154,164,219,4,149,254,230,122,227,140,250,58,35,79,243,50,143,92,189,97,240,172,239,2,158,98,78,240,205,252,226,195,102,65,44,19,247,68,245,226,90,95,61,216,92,196,240,130,27,100,199,88,224,235,72,24,204,161,12,184,54,115,150,189,211,19,6,186,52,255,221,13,24,154,152,119,56,86,241,138,157,135,194,57,248,75,246,154,137,75,66,197,162,113,148,134,139,182,83,116,206,254,226,28,176,138,112,33,65,206,71,84,159,33,201,192,208,231,137,86,17,140,197,249,28,1,72,106,89,73,222,208,154,76,194,219,165,125,172,117,146,93,141,255,6,144,205,104,105,85,180,235,105,229,208,141,26,43,65,219,135,139,78,82,150,190,15,39,165,195,179,43,30,31,50,84,55,84,158,174,135,243,17,134,179,147,194,30,42,213,52,126,38,67,162,12,95,197,20,117,249,54,184,49,0,197,160,70,145,209,101,158,226,124,189,10,36,163,32,93,224,0,234,146,248,11,92,21,150,41,230,218,105,237,171,13,43,121,206,254,192,76,205,49,9,158,189,64,249,174,60,180,238,239,85,136,8,197,196,179,30,235,206,141,74,117,59,224,172,194,188,68,211,170,60,198,26,200,77,214,29,138,159,250,170,254,236,93,137,219,128,75,106,233,127,223,21,44,249,60,191,70,55,60,239,207,78,172,137,86,13,96,196,69,113,86,80,57,92,197,97,60,253,151,101,115,128,157,243,227,175,191,43,104,105,199,131,7,112,235,20,40,23,183,180,181,188,71,198,115,115,252,136,107,175,160,21,244,195,129,11,105,177,218,156,173,39,48,163,180,197,52,231,8,122,149,109,29,136,222,241,191,162,161,190,181,70,234,21,13,108,244,165,24,35,62,205,77,208,47,29,147,124,246,77,23,69,228,133,85,109,190,87,19,236,141,212,17,3,42,224,174,180,152,231,11,152,32,241,113,171,127,178,50,65,136,250,229,187,121,23,169,185,210,3,255,119,142,210,53,180}, } ; static const int16_t precomputed_encode_857x1723_x[precomputed_encode_857x1723_NUM][crypto_encode_ITEMS] = { {-3600,3324,32582,-19626,-22869,-30881,-27216,-1760,26458,-25819,-1974,-24451,-21224,32595,-9676,28684,-15962,9188,9157,19404,23970,-11755,-10850,7375,-16369,13148,3846,-13825,-30869,22739,28747,7392,-20839,-19903,-6691,-5968,14224,7328,10912,28826,-5782,-21481,27327,-10629,12991,-10326,20232,2735,-26869,-123,19355,-13634,-20506,-27386,-27660,-25752,27128,-19726,-4102,12857,-13080,16021,32475,-31169,12534,7728,-9982,-103,-3700,21586,5185,-14231,-3212,3467,-8049,20577,572,-26410,-24760,2304,24263,-10817,-11565,22580,-10698,23096,6815,17687,21234,-19381,-6800,-28496,5896,19118,25996,16310,-5701,-25585,2355,-21849,-27016,17146,10763,-14353,-5155,-11329,-14997,31525,24778,10205,11056,-5213,16247,-23010,-5820,28660,11349,10061,20193,-10358,-4903,5186,14234,25356,-9810,-12813,12201,-13845,5319,13784,16589,-26907,-13226,-24145,-16545,-19857,-1626,21428,-22727,7598,31809,-8853,-468,-32056,5583,23472,-10214,-9382,16686,-7986,8574,-2426,11999,-29050,20943,11451,-119,24851,6293,-17464,12549,24851,280,-10113,-13677,26676,4586,6280,-10814,8523,14118,-29159,-4008,-10569,25351,16894,1311,-4949,-32662,16767,-3290,12598,-17876,10686,-4961,-10970,-8650,7731,8005,343,-24826,17586,9404,-12129,-16635,18371,19412,-31429,-19499,-19509,-24375,13029,16409,-32222,-13252,19337,29072,-28851,26321,-28232,-2564,28457,-15286,-32052,-30617,-7594,-21468,3357,10667,-3458,-19279,7671,1014,14480,4060,-11752,12304,-16668,13192,7648,22477,3674,-13971,21993,4322,-30770,22104,25005,13103,13059,11496,26256,-32535,-4989,4434,-17655,-5175,-5615,30834,-19601,25456,-11506,11654,-18697,-32145,-17204,-6445,-15155,-9304,-5421,-15948,-29983,-23326,-16271,-13193,-29093,-19513,16221,-21398,1920,-13657,4308,-9263,5467,2479,16840,-21225,-25187,-15926,-17259,735,9700,-4730,-9093,-6003,9936,-29060,14333,-12776,5653,-3585,-29998,-93,20543,6544,-19807,-19392,-17573,16219,4948,21699,22573,-12650,-17684,-17664,-26083,-26177,-2,-23747,31039,-7031,-29336,-14835,13086,-30007,28392,-1103,-26504,-7824,9743,-12647,-5972,-30062,11440,-15446,22892,-9106,2910,19780,31135,-11798,16436,28858,-11854,-27417,-15139,21986,-9983,-32215,-3019,25839,12228,3520,-1697,-28322,3591,16616,15652,-32442,-25349,5757,11175,-2879,-19657,-25715,26146,17337,-8282,-25247,-29974,-17274,-22936,4376,-8698,29909,-20179,14203,-8269,15501,-26838,22354,-19119,18115,-8134,-18164,8580,12121,-11093,19470,-31531,9510,26106,-24937,-9800,-20364,-8412,24940,-19760,28541,32260,22071,1405,-6591,30574,-29825,-3974,-8905,2414,-11766,-29932,2464,-6944,-12115,10936,-17992,6734,-11844,-2483,2860,-22555,22084,-30509,-6560,27929,27639,-9132,-32603,20172,27886,-17637,-12995,29332,6711,-7378,-26979,10446,-3298,-29526,-3620,-889,25099,15351,-22983,20711,-4425,-26292,-20633,19050,14336,-7743,7681,23945,6874,-10758,7234,12311,32667,-21234,8681,8772,-25308,-5726,13819,5204,-7359,24277,-32335,21469,23347,-15184,-29754,25419,11508,-15175,6329,-4448,25407,8819,-24530,30496,-15579,11569,-29235,-4354,-21372,24478,14714,12128,-4950,-29912,30475,-6679,-20117,-11275,9316,-30073,32622,-7693,29767,-20457,4135,-19664,-24142,-23335,-10163,127,23834,-16869,-5733,-26771,29690,190,-7974,-20863,-25555,15771,1978,-7882,-20737,6967,-19929,128,-29070,-653,980,9359,-5192,9253,-28377,-25452,8176,-20382,25207,12599,12962,4016,-1474,-2918,-5152,29175,4760,2921,16136,32241,29468,-30547,19886,3398,-11435,-24250,-11006,-926,-22356,-1962,-12784,4608,-29476,21178,-31357,-7645,-32437,8743,30758,-28911,20208,4909,20556,20208,-14667,2147,-13246,-15656,1669,-24013,1101,-28969,-32156,-18707,32634,9489,22336,-10917,-2912,-12735,-18815,-27298,14543,7315,-31574,-4132,-4127,23663,14927,-21475,5469,-28521,28593,-25059,30140,26011,23457,-10177,-19994,15158,-9170,-12220,-7355,-26710,21161,-19694,-9226,-31023,-29456,29845,19558,-28939,-2246,-19714,-12765,12937,2135,-4667,-10467,-4723,-26878,-26881,23000,-32232,-27068,-4052,-10064,-22589,20028,10791,-7010,-22916,-26603,5901,23472,-22409,3534,3911,1302,-28011,-26258,-22296,1012,25610,-24545,25961,21327,14721,-15278,8558,32185,31926,18723,10830,19877,26124,-20375,12529,8646,10710,-27902,24088,30899,-29971,27383,-19357,-20256,-11213,-22800,-22046,-29792,7463,-19017,22248,-12224,-3678,-8943,-17980,13362,-29655,-8220,14401,11101,-7364,4879,2222,-6043,424,8801,12856,20687,16415,23511,-17478,-16328,-10527,32405,4929,-16691,-24817,28081,-13811,12284,-10598,-27910,-32515,-12312,32632,-26974,28050,14527,8583,-14561,-12897,-13693,-6111,17551,19747,-21832,21460,32060,-30142,7477,16140,-11417,2515,-20153,4928,12273,23479,-5865,-17877,6792,6496,-10249,26069,7808,32171,-10797,-4400,16109,-14139,-4865,209,-17105,-21720,-18729,-23901,13714,1247,21588,-18210,-1104,5642,-17775,-20677,-18995,-15190,-22901,-5569,-15946,11855,13925,-21632,-16279,5512,-6949,6904,5336,-16221,-16911,1081,-22692,-25818,-32158,23374,-21500,-5827,30808,29452,-7323,18651,19448,-1038,29003,23779,20575,18607,25946,4885,-1018,-17036,-19522,20214,-3873,-25609,-7872,-22935,-32391,17235,-16299,-26474,-24681,-20105,-23427,-8938,-2221,28375,-9043,9672,20313,9784,27208,-7920,23851,3715,-9175,-11465,-32542,18777,4988,-27511,-26203,22893,-14340,25350,31618,21781,18993,-17047,18510,-12468,14100,-14943,-7671,4521,-17658,-1913,17180,4871,-14816,697,22563,-21890,-7539,13769,20247,17073,-17475,-18164,25849,-11056,22710,-27704,-13148,-25988,-6161,21471,-16032,-25556,22903,-1714,9544}, {-20875,18207,-5823,-31621,-2849,-5341,21718,25373,2956,-15423,-19747,2042,13555,-25222,-31462,-18886,-19887,31962,26666,28889,-498,7996,-19482,25072,5863,-26297,-3008,-5117,14609,13890,-30351,-26715,-10824,1028,15285,-27168,-17853,-31997,-2714,-30237,14650,-4820,14704,-10550,21997,13643,-23180,19108,24943,-30090,6944,-20060,20925,24342,10503,-4584,29696,-15491,8328,-4110,15198,29031,-14185,31988,10453,-2457,-9207,7872,-20047,-22172,4245,-10806,2296,-2896,31515,-22479,22465,5601,22365,9269,6180,-7294,6062,2831,924,3419,-22949,-6420,1995,-29202,1907,-28248,-10958,26728,-11289,10011,-14473,27111,-30433,5023,3309,27207,13050,17856,30133,-2721,-30656,11184,10539,3545,-6340,-2492,21838,-6713,-9772,-10405,-3293,-20174,19294,-30350,-19788,-30460,2736,-584,31169,27787,-30677,-27514,4896,-21833,31553,7225,-29004,377,26068,681,19316,-25986,23177,-3952,31485,-27345,21950,-8352,8116,-9522,-23546,-25376,-12037,19004,-28188,23197,-6220,-8446,-13111,25559,30543,14982,-13280,-26123,10531,22325,21850,-6477,11118,14009,-16372,-21930,26927,15619,-25265,29096,-32305,25976,-29231,-31864,-28790,-15866,-11491,10045,23328,16352,28322,-974,23313,-28213,-1247,25991,-16389,-10158,32052,-18504,-30196,3470,-5515,-22597,9649,2572,4189,-26435,-8975,8765,-32712,7358,29050,-32582,-21823,-23165,18551,-28104,-9963,-16805,25392,6292,5447,22351,-32585,17155,861,-101,23564,-3290,-6690,-21090,-22246,5408,-32715,-9405,-11661,15261,23362,-11814,-14692,-528,-22736,-1649,10792,-7530,-29960,-6871,23372,11480,9237,-13709,-25703,4150,13603,-3953,-15471,23790,11943,296,25302,22629,-8403,28162,16034,-5762,32259,20516,18858,20503,29880,-23788,-12674,-2613,31531,-25012,23143,9386,-5562,-6654,25052,-6803,11413,15656,-11209,-11878,-25719,23184,-32517,-20247,2876,23966,11275,18106,-25080,-17172,27420,-22720,-10917,-17718,-11032,-15319,12414,-22653,7654,-10589,-1786,-29748,29562,19532,-25729,22221,-23370,14943,-19697,7567,-30862,-32729,-5893,20696,6965,-16523,22339,-9034,-20235,11482,16950,32726,19194,6332,-16230,-15904,-20391,-5958,19776,-8117,-17744,-31262,-24460,17101,20762,14359,-8370,-19566,-27948,13332,22068,-28892,10483,-20948,3488,10460,20899,-11000,-4145,-32284,-12200,13547,12631,-31924,9487,26478,-22934,-7354,8030,1808,-13708,27913,30032,28842,31238,-12436,-20027,30395,-5259,31720,18179,3212,-27437,-24482,-23970,-32203,11555,30172,-404,-1550,-5188,5191,-2469,-17411,27267,5794,20653,15966,14720,11239,17277,-17011,-31842,-5256,-22933,-20257,-12348,-23047,-20641,32748,-5640,19624,-12716,27138,-10356,-28546,6974,-13033,-28308,-10130,2136,13700,-10735,32580,-31406,28867,14873,1408,-19198,-4246,-13805,20350,-2213,5853,-7839,3121,30236,-12899,-45,27124,-26893,-25609,-2876,-8766,2981,29218,-16893,1324,22009,-5511,-28804,21610,-8930,13873,8055,6356,-14297,-28453,24461,-15099,-3779,-24894,27625,-8434,17985,-16374,1063,4720,-5879,11994,-16519,-6156,-20017,-28147,-22332,-30309,9447,-14987,-6292,-10892,-7508,3978,-6205,24479,-22802,12848,899,13620,-5820,319,-31874,7328,-12978,-13720,5468,14266,-13868,21379,21192,13042,79,19311,31005,29770,9524,18023,-5630,-5527,3653,22917,22039,5023,-5743,-32492,31180,31379,-14198,719,28099,9108,7736,-12038,82,2165,-4355,-13130,-2270,21306,-4286,-24452,12119,-12399,17287,-27407,16612,8350,29755,-6967,-2168,-28195,-15140,-4550,-24269,-32557,14522,25202,3431,-10580,13690,-26286,31039,-16067,-26018,-22519,-8,-14349,-13443,-31359,-17500,-13738,-8078,-32680,22645,3939,-30077,23510,-409,25712,8948,5809,-2874,-14288,20965,30555,-9676,-6586,-11344,25157,20313,29581,-24425,700,-1955,-23108,8216,13930,-23731,14211,29127,-12752,-20649,-12303,-31550,-27898,-18751,11138,-30782,29600,10567,-25307,-15358,9745,6158,-4165,8654,-22643,16415,26164,3644,8363,-5816,17035,-19314,26317,-4564,15293,11941,30713,17917,-20053,7896,28451,26894,15021,26026,-20794,20003,-13,-1836,18139,-14762,7131,-960,28302,-30698,16532,13732,28620,-25572,-10021,15197,-8067,-26656,31786,-6953,16000,26639,15538,8268,25226,-31582,-12015,25338,-22733,11735,23267,5497,11321,31552,-31891,-10501,-14605,-26242,-16409,17719,7849,-7666,11123,-5837,9449,-30541,15721,14785,-2694,17228,-17328,-25262,13438,29150,9115,8666,636,-24635,19578,4806,-16035,12044,-27645,13288,26727,-16965,-14636,-20052,13929,19531,8277,17036,7886,17230,27215,29198,25485,-26647,23192,21071,28708,-15373,-20504,14844,8921,13311,10079,-29450,21395,25658,5975,7142,-22130,-567,32296,-6666,22963,-23803,12883,-10709,-25778,-22921,-4265,-17695,-28987,13251,29025,18220,-4688,-15570,-23907,-29152,-7250,-26333,24795,26739,-28825,-9180,32621,26877,8326,8704,7854,13500,3806,-8993,-1375,-12463,-4542,-11458,-29044,-10133,19213,15138,-12294,-22631,21394,-18321,24638,-21197,13399,22409,-26696,4063,26342,-14129,-6891,18860,22367,5826,10983,23766,-26596,19469,21210,-23856,25073,5776,18239,-616,-8915,-30094,11793,19002,9614,26493,27394,20965,1740,-18255,-7478,26892,-26704,11039,-21702,21357,-18908,-10646,31614,-2566,26184,-15689,-18693,-29244,-8508,1801,-18992,-6430,-29608,-17528,-7050,2589,9490,-12091,16341,-22390,13482,11785,-2954,-5440,7100,-19533,7371,13015,-22988,32201,31714,12018,-3759,31952,31469,-27926,6679,-20758,-4716,18985,-29068,-294,21035,-11501,-27819,-30005,-20820,26305,-8670,469,-524,-21580,-18747,-13573,-7757,-7477,9715,4419,-31764,-10743,-1834,-27811,-24572,3121,-7950,-29587,-4634,-19127}, {-20756,-29307,-24693,25419,-21244,6568,-31582,4892,29727,5986,1461,5412,-3852,986,-11087,-8440,8078,1554,1775,19780,-18163,32177,-12871,10254,6759,21915,24718,-12983,-13181,-1002,10536,15583,-5095,-18888,18156,-13151,-26595,9942,-17859,-16323,-3061,-18356,-25167,-29213,12960,-4907,28858,18678,22441,14630,-7659,-29066,9015,-25186,-26924,31180,-25252,10249,-15177,-9301,21590,22850,28559,15929,-20456,-26174,27770,7196,25129,2129,-12378,25423,-23873,14909,25494,25996,31723,27860,-447,25447,26450,-12939,-28341,28664,14286,32212,18014,-20671,24357,-29967,-14687,20445,-3398,25477,19079,20961,28768,6803,18738,19635,-30723,-9693,-12164,-24739,-26573,-8197,-3372,-29993,-488,29061,8983,8376,31972,19665,28336,3260,-21097,4995,13733,-23532,-8347,-10290,-16515,-27765,31423,-17756,26419,982,11399,3518,6807,-2365,-24055,5812,24573,-21337,-9851,-23729,368,1200,19354,-16835,19837,1369,879,-1165,-7131,-19974,-16097,27309,-3793,-31797,-851,26,-13869,-20485,-14994,17609,10555,-7366,-22625,-673,-19011,7744,-3704,-31316,19946,-20828,18812,-30435,23206,-28630,13625,-5889,-14886,-23682,-20411,20103,-13280,29005,5558,-1265,-9471,14016,-2847,-29620,-25352,16708,32580,-4439,30637,4552,-3294,14604,21908,20697,2125,-13769,30838,18078,-28561,-24815,-12919,1717,-23209,-24764,3808,22644,27110,-2209,2245,5313,-25400,-9059,1685,20457,26354,-29141,-27677,-26126,11416,30313,-8647,-8237,28763,-10705,-18217,-19350,15774,-26029,-20395,-27462,22573,1846,13627,26615,-28707,27187,13048,15012,9420,-17597,-15710,-29505,27044,10749,19158,23411,12214,32435,18207,24791,-22520,-15538,5788,14493,-26680,-3049,-1818,-12126,-21003,-6330,-1461,-18537,-9625,3405,-11573,-15312,16200,28153,-15022,4998,15017,14576,-14063,-19398,-32400,-2842,25887,16629,-1868,17031,-27165,26331,19949,7778,3692,-7079,22896,-31017,16969,14708,-26501,6847,1957,-23926,-3411,8852,-891,23182,-17676,-27697,4351,23244,24790,-8953,-9838,-17316,1618,26896,29941,-7194,29894,30801,13367,-5934,-19821,-32577,20528,-25480,21346,22580,-21626,21960,-25357,-24500,1917,-24927,-11158,18194,-1249,-31135,-3180,-154,-9954,-24084,17200,20520,-16781,21280,23470,25163,-4998,20539,-30780,7145,32513,16163,22606,5133,-9780,-20503,-12550,1145,-3203,-16693,28062,19458,-4568,-11649,-10951,-28539,744,-24172,-22078,29392,-24275,-12460,6049,-24979,-19351,-21388,-13635,-7486,15742,-25411,16452,718,-13440,-20596,32134,-31517,12245,9314,7421,29139,-21247,-25652,-24613,23072,7624,-8691,20552,-26216,-20526,25748,10579,26328,-7632,-10953,-10499,20031,11307,867,-9746,-16452,7362,27463,-902,-18046,15861,-21861,1050,26827,30910,10272,-17025,28674,31501,-29904,-27701,-3997,-23302,29946,5771,-13115,19039,9892,30650,-23662,-28356,-709,25357,-17730,-27000,8732,14330,-30562,-1785,-4729,13721,-25346,-20541,22240,20418,31130,82,17071,-22911,545,-20933,14163,18229,19445,4811,7035,6646,-16406,29760,-10682,13524,-31016,-8491,-15325,-62,239,13119,922,12199,1008,26274,-30421,-27322,26438,14845,31368,2315,-15862,19311,25757,-29999,19036,-29037,22986,14205,-15662,-31813,27620,26264,3968,10185,32478,-8126,-25828,-23874,-22505,-4780,12093,13480,32607,-27796,-20026,-23417,-20359,12672,-27378,-23250,32052,-4134,522,-17319,15321,-10912,17662,-7073,-1818,-12030,32003,-1437,-12751,-111,-8761,8989,-25813,16591,19391,-9930,11560,22356,-22024,7978,-7914,-27673,-22612,7412,-3644,17350,8999,-8875,-9868,335,-7113,5524,30071,-32748,-29009,-6492,23907,-9226,-3726,9722,-17796,3130,-23907,22358,18593,27852,17557,-5820,1573,19383,-11645,-17602,15353,2292,-26416,112,132,3969,2302,-16542,-23781,-4706,-16992,7530,-27601,8233,-22296,-5172,-22442,7227,29576,-15210,-6018,-18507,-19272,-29046,-6833,4645,-5692,10512,9867,4538,-15010,23770,13210,-14079,30404,6438,4040,-15358,-28115,-12239,14858,3426,-28960,27757,-4476,20114,10397,10393,1252,-15152,-15565,31738,-31486,-4517,-29256,-32724,2256,-6256,-21483,2590,4879,-10092,23712,2152,-26781,7184,17852,-24368,-19636,-11810,21144,3542,-28839,-28324,32426,9411,-32345,-31813,-7120,8919,-19138,-4275,-18474,-32640,-14972,25009,-22088,24099,-8911,-12870,-19967,-9764,-24759,25832,-10319,-6445,-5624,-15077,13556,11268,-960,26237,10425,-1040,30857,-2790,-17906,26489,-449,-5659,-2048,16081,24589,3362,-12286,-31373,-9520,12601,22565,-32673,27845,-21839,-16743,-13818,-32404,-11900,-25771,-31403,2444,-16986,30231,-21632,-25790,11159,-30630,24870,-2016,27097,816,-15766,-28377,26582,-16058,6687,14973,23989,-12604,-6479,17385,29920,6797,-2509,9124,2698,-1874,14769,4457,-16396,7035,10395,-15982,-25534,29108,-19365,-2895,-27893,24344,24309,-26137,30281,-11083,-25636,-2595,-26354,20433,22046,-32615,-363,-2830,30253,28359,-2652,26294,-1073,-28562,-15958,401,-27562,-4888,-8837,12571,2314,-10670,-31036,22349,-15188,9468,2443,5659,-31152,29988,5883,-22583,17081,-1359,17985,1465,8755,-14276,-31887,1713,-106,-1744,21739,-24306,6466,-8328,7949,14053,29184,2146,-28666,-23524,-31473,-12300,4066,6977,-14865,7776,-21986,10364,-41,23646,12923,16027,-9391,16822,-2375,-11078,22763,-24810,1132,-8559,-20815,-24308,24807,2494,-14593,-4991,11821,-13237,-31451,-2018,32465,-12099,30310,-10858,-21174,7146,25238,3064,-10169,-3079,20630,-32190,6420,23281,-4702,11581,-12193,-4311,-8797,-24976,17636,-23507,-17941,-1036,7426,11407,-15168,23368,-9818,27300,-6899,4391,28438,32585,-25941,-29306,7409,10256,5221,21307,-8701}, {7886,5400,-7356,21370,-3653,-11569,-4621,9636,10470,853,9790,-1202,18190,-31366,708,4513,-26155,-7165,-25215,-7793,25492,17004,-20955,-18132,31289,10716,1677,-8826,26300,-18019,17127,-7769,-27918,15988,-24267,31209,-20344,-5393,16153,-18356,8875,-14189,-13945,-14194,29561,-712,-16769,16940,17626,-7036,-18603,-27316,20211,-25845,10544,-25982,23290,-2757,-22019,-29863,29422,-17248,-12329,13308,-32601,-5821,-29626,-23487,-8321,-6750,2094,30668,2135,-11807,-7237,-964,-2336,26323,-26261,4584,-7431,14897,7900,28781,23402,-13861,-12824,-6577,19152,-7113,-9207,-15407,4739,9094,2537,7836,-6679,10280,20275,25998,-11325,29045,-9763,-11135,3629,-7729,-25704,-23384,17324,31868,10170,-29245,19871,-1551,30203,-1869,325,-11176,-25312,-27821,3327,-7645,-11800,-5735,-17962,-7820,-7851,-5810,-10387,14876,-13289,-17198,30871,-23361,-25191,2491,-3747,14277,12165,17160,-30703,21012,6782,-5607,22598,-1487,-32382,-68,-6241,13379,-1906,-6251,32567,2043,31488,18353,-10581,1385,9676,-19467,-28487,-20819,-21304,-23571,1904,-12248,11013,-10104,-4739,12687,-7948,10794,-10036,-13984,-4181,-22976,-9586,-2342,3902,29325,-14911,19020,11404,-347,-14612,-14176,-26143,-30744,-9937,-26066,-10092,-12641,31924,-10070,1765,5528,-15616,-14287,32702,19426,-19166,-24893,15817,2495,-22363,9282,19218,19072,22774,24603,14598,17207,-29507,-7455,30239,25667,-26763,-27502,25492,19532,13714,16873,-31078,-2857,-2878,2202,26046,15925,26645,19352,32630,26093,-17593,-2044,12634,28111,30679,-28203,-2690,-5655,-19476,-25270,-24509,16339,12878,-14871,14174,26195,-32447,-19925,16148,-24790,-8971,25247,-25739,22086,-1103,26223,7912,-20438,14674,-6703,-15833,4797,28464,-3419,6614,8342,-1195,13281,17362,-13674,-11065,-31293,19353,29218,-16773,-17985,7389,-28048,17281,-6385,3763,-28991,-8140,23343,7015,-17659,69,-27248,8145,11040,-26677,-19641,-15250,3727,-2099,25575,-8231,-25500,-12778,7218,-17673,28104,7106,-19146,-16474,-21101,-25398,-16766,-20800,-8173,-18941,-15042,26457,8806,-20054,-6821,12201,3892,-27739,-487,3418,-14385,-9260,-30617,-3116,-11244,-24895,-21290,-27351,-25254,13112,-15115,-27283,-27252,-1566,-7579,-23343,-20317,25468,-32043,-32571,3822,14598,-13855,23039,17165,8199,22520,9246,-514,1415,-29252,20986,28587,20901,29414,-18951,-30932,-17826,20895,8752,15113,-24516,-10334,-6747,-2127,25105,-8745,8550,21195,-3716,-19247,-25334,219,-31551,8595,30595,8058,26740,-20115,-27401,13429,20138,2405,20533,-14752,-28753,-30693,-9326,-10696,-11849,18247,-10590,-19913,5915,26799,14556,-20135,-22623,-6088,-22772,30842,-16261,13248,-22882,14763,32140,2971,8604,-11172,525,32726,12644,11941,5068,-8487,-13351,2833,-13121,-22827,21722,4416,-29603,16886,3175,-4892,23232,5052,28520,9930,-25290,7108,-20582,-5424,24947,-5718,-23877,18637,10490,-18320,-270,19087,-1111,32650,23130,26601,-22830,2727,9800,-17440,16442,-32200,-25846,32567,-21110,-529,-15742,-15852,-28067,18853,-5816,14819,-9912,23264,31973,22886,14616,9386,11236,13554,10658,-5321,-31803,-29286,17649,-4296,-28164,-6167,9004,-17291,29090,7750,-5370,9211,32505,22409,28358,31905,-3670,-14154,22015,1343,-575,-29378,20725,15677,-27293,-2759,18914,3663,12693,23687,20337,5186,-22928,4582,-29958,17757,18213,17465,-29496,-6005,-28464,32509,-10271,-21150,-19199,32159,27599,2081,24356,9724,13922,-3516,-6969,11069,31666,1986,-2924,-15493,18166,28242,28030,-29688,18592,5685,18012,29052,-13933,-27126,12891,-9535,-13843,16582,8493,-32568,-27601,-4281,-16055,21794,31057,29338,19777,7827,3173,-18778,24077,4607,-561,-17958,4275,17012,26441,7672,5759,-4410,15193,-6485,-685,18396,-14144,-30170,27191,32507,27969,8814,16524,-7472,-5662,26921,12265,-1892,-27898,26138,-19874,-14505,31867,-11142,-17906,11907,5032,10374,-7967,164,9712,25101,-12733,-13428,-3830,5406,20105,21358,21502,23418,-6779,24513,-23642,-9921,-10298,28081,12151,4512,-12974,27666,-374,-27550,17075,30987,-8637,-7781,18097,-9154,18677,14314,-25316,-20144,5090,7122,-15185,-1967,-6687,24362,-2514,9135,20268,-29591,20679,20905,29409,-4314,-7654,-9885,31719,-22197,10350,32531,-9776,-11984,1621,-26667,-8979,32026,16285,-19003,2241,32337,-29224,8608,-24918,833,-29614,22107,974,2206,-2878,20265,-11085,-30931,20916,-27717,-19157,12675,-8159,-31566,-16433,-12118,22196,-17976,19616,-21410,11496,-8748,2718,-31959,7058,586,-19017,-1033,-17238,6147,13175,-11981,-24642,-29413,-24174,-30664,-13960,-20666,23560,-17976,-8810,-27989,-29074,26431,-4419,-28441,-16117,-17032,31508,-15737,18018,-17486,-25210,-26090,17551,30323,-31735,23481,-15573,-16380,-7105,3872,26266,-26190,29968,-10493,20389,24301,20169,-23762,-13978,-6627,14384,-16123,-10829,-22682,1851,20166,15417,18501,1681,2967,-18202,-15201,2531,-19288,9044,-10667,24435,26984,-26282,9381,-13299,-30779,13324,15192,-3733,-32570,16608,-21009,20613,-4338,-22616,-19183,4628,-18196,-32400,29168,-18041,-22141,25622,24621,-14019,21253,6756,-13912,-1177,22759,13829,-26932,16113,7419,30558,-845,5420,13805,10060,-2663,-24589,9919,-18750,10997,-11874,-32113,11874,24046,-21062,31519,15505,-19781,-28142,-4559,-655,-12235,29522,-30291,3934,-20987,15447,9401,-27140,8215,-18335,690,-30505,-12163,30286,-17936,13695,-30937,27545,-6346,17505,-25485,-22571,7507,4521,-11357,-19591,21242,-20299,29738,15883,-35,-25571,12797,21170,-13694,18973,18737,14094,-10103,321,21250,-27517,30433,-19484,3987,21604,22449,11094,-14472,-6465,2283,11601}, } ; static void test_encode_857x1723_impl(long long impl) { unsigned char *s = test_encode_857x1723_s; unsigned char *x = test_encode_857x1723_x; unsigned char *s2 = test_encode_857x1723_s2; unsigned char *x2 = test_encode_857x1723_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_857x1723_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x1723(impl); printf("encode_857x1723 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x1723_implementation(impl),ntruprime_dispatch_encode_857x1723_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x1723; printf("encode_857x1723 selected implementation %s compiler %s\n",ntruprime_encode_857x1723_implementation(),ntruprime_encode_857x1723_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_857x1723_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_857x1723_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_857x1723_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_857x1723_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_857x1723_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_857x1723_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_857x1723(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x1723")) return; storage_encode_857x1723_s = callocplus(crypto_encode_STRBYTES); test_encode_857x1723_s = aligned(storage_encode_857x1723_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_857x1723_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_857x1723_x = aligned(storage_encode_857x1723_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_857x1723_s2 = callocplus(maxalloc); test_encode_857x1723_s2 = aligned(storage_encode_857x1723_s2,crypto_encode_STRBYTES); storage_encode_857x1723_x2 = callocplus(maxalloc); test_encode_857x1723_x2 = aligned(storage_encode_857x1723_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_857x1723 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x1723();++impl) forked(test_encode_857x1723_impl,impl); ++test_encode_857x1723_s; ++test_encode_857x1723_x; ++test_encode_857x1723_s2; ++test_encode_857x1723_x2; } free(storage_encode_857x1723_x2); free(storage_encode_857x1723_s2); free(storage_encode_857x1723_x); free(storage_encode_857x1723_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_857x1723round.c0000644000000000000000000012601214705505543023454 0ustar rootroot/* ----- encode/857x1723round, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_857x1723round_checksums[] = { "c594e45623de22d6a6353b86c6ded45616e77d4d47101d80700e9dc975163966", "674a993b7f62eeefa79c7f0fe26c5b522e030c651c763e3dc097a280068a951f", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_857x1723round_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_857x1723round_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_857x1723round_ITEMBYTES static void *storage_encode_857x1723round_s; static unsigned char *test_encode_857x1723round_s; static void *storage_encode_857x1723round_x; static unsigned char *test_encode_857x1723round_x; static void *storage_encode_857x1723round_s2; static unsigned char *test_encode_857x1723round_s2; static void *storage_encode_857x1723round_x2; static unsigned char *test_encode_857x1723round_x2; #define precomputed_encode_857x1723round_NUM 4 static const unsigned char precomputed_encode_857x1723round_s[precomputed_encode_857x1723round_NUM][crypto_encode_STRBYTES] = { {155,113,199,109,148,238,213,168,43,33,97,132,141,228,252,188,109,78,29,104,209,166,7,150,177,237,113,150,110,139,142,75,31,67,187,205,226,235,130,94,107,22,16,255,24,179,10,251,6,41,66,90,14,173,163,24,165,196,62,6,59,22,166,41,245,71,149,209,42,70,102,81,98,204,211,90,57,62,139,61,70,230,114,233,255,45,55,226,57,240,152,227,158,33,92,11,127,123,73,241,160,172,155,230,52,131,42,26,25,197,98,82,80,125,58,78,17,219,69,133,185,205,241,100,106,224,22,133,126,38,76,36,155,143,170,165,236,17,241,238,147,104,159,244,49,150,214,164,137,21,121,7,40,15,107,249,4,230,156,12,209,125,12,174,146,160,139,196,57,69,23,243,2,160,181,252,200,213,111,68,128,117,243,234,238,38,135,46,242,5,4,118,111,8,247,249,237,221,255,12,44,247,33,7,5,62,254,149,207,158,238,217,119,30,218,230,218,126,158,250,32,138,90,187,25,150,221,114,180,79,49,136,153,150,225,85,61,45,160,172,77,123,59,248,3,113,229,173,150,183,85,188,251,54,54,240,184,194,184,112,219,118,190,70,135,168,64,112,36,188,170,205,255,48,121,205,35,230,172,221,139,35,85,134,124,208,225,96,24,52,97,224,244,94,245,113,226,180,37,203,67,220,130,86,120,82,145,185,208,158,245,216,139,210,211,143,47,198,9,192,211,182,233,151,226,147,126,200,103,35,163,215,41,217,223,2,169,82,242,128,122,12,172,145,77,79,230,108,94,117,106,199,9,137,223,135,214,255,131,39,188,200,61,229,53,163,126,197,18,20,67,151,126,94,147,81,70,73,159,219,145,74,27,217,22,54,58,42,15,192,232,213,80,254,221,8,140,59,165,194,85,11,6,130,254,100,49,142,206,177,150,162,186,179,216,69,20,159,251,241,185,221,153,125,85,179,222,81,113,192,221,92,79,179,6,45,118,74,133,103,131,174,234,64,171,54,111,183,111,61,214,208,77,194,133,28,240,157,145,128,101,103,170,202,246,31,1,27,33,242,101,161,55,153,6,4,151,8,240,26,134,7,15,233,67,236,211,89,4,158,161,138,250,110,51,132,120,78,179,46,27,239,67,12,78,147,98,199,249,81,227,64,213,109,57,160,199,193,232,203,220,189,115,65,207,149,66,16,2,4,2,156,86,120,45,186,126,119,67,193,53,197,203,138,8,107,107,52,226,155,17,247,125,75,70,38,38,24,57,172,80,223,238,15,157,61,208,108,128,82,138,112,186,172,191,234,121,8,147,105,209,52,180,216,242,128,96,210,122,123,156,215,92,243,35,47,52,186,242,234,55,209,114,106,48,35,35,245,251,30,150,35,247,165,108,114,43,105,177,32,164,245,85,200,233,228,203,168,200,130,59,245,248,209,203,105,160,153,154,123,118,146,198,194,130,252,231,253,234,85,221,206,192,211,139,198,13,249,239,82,44,145,23,97,229,161,0,167,156,151,71,8,202,74,20,12,22,248,147,135,236,186,115,3,201,250,9,49,188,179,190,201,247,186,238,220,56,204,229,103,31,236,25,49,174,133,217,52,72,248,196,103,208,115,130,135,10,96,182,77,6,67,22,127,171,10,107,70,226,59,224,236,90,254,132,1,203,185,139,21,249,155,70,60,31,168,109,116,72,114,194,161,191,111,121,214,150,216,132,133,69,6,153,204,119,239,249,190,232,119,137,112,222,137,105,52,216,216,123,38,186,196,188,136,221,195,72,137,16,126,110,137,82,134,185,211,29,160,163,4,122,72,49,35,113,12,248,175,148,138,187,180,178,1,37,172,16,213,130,153,115,62,211,30,207,81,44,233,212,67,90,213,148,89,207,112,189,151,164,78,114,198,134,227,199,108,241,152,227,28,60,51,119,228,80,41,51,99,15,223,121,62,153,236,158,44,149,51,247,138,245,34,169,46,141,36,148,107,158,32,213,80,115,206,21,120,115,173,136,120,133,237,144,24,134,138,124,151,89,219,8,127,23,80,221,33,45,175,41,220,253,191,1,48,214,226,234,204,31,131,168,0,34,214,218,227,99,221,116,163,89,121,159,243,46,80,81,193,1,131,245,149,88,220,154,111,62,104,85,159,232,78,186,118,77,201,30,153,100,165,208,14,132,103,55,230,152,57,30,212,255,195,0,173,84,134,223,160,162,23,143,66,58,32,175,65,238,245,25,97,92,129,125,143,186,94,165,82,53,197,160,137,194,132,28,189,244,186,103,174,193,114,213,208,10,174,81,204,189,42,65,180,233,142,189,26,20,145,155,73,28,71,11,132,26,125,212,69,188,64,164,203,227,227,165,65,105,138,48,250,33,70,179,252,64,135,106,21,25,129,180,29,172,154,142,176,26,108,62,120,38,190,214,79,200,143,113,137,132,14,234,6,240,27,125,161,170,184,79,80,191,67,35,157,163,182,107,228,105,148,164,31,38,252,49,47,101,164,121,195,1,138,102,179,64,175,66,14,32,215,150,211,234,18,195,182,151,138,147,88,113,106,227,85,106,155,155,235,226,17,138,57,20,47,174,78,154,88,201,51,102,208}, {229,229,142,253,159,5,235,59,238,245,75,3,14,184,144,48,16,6,124,167,59,14,41,220,41,97,9,7,163,235,89,199,114,2,112,179,172,59,194,255,21,121,31,132,52,14,2,167,197,20,175,29,29,194,175,24,184,247,75,219,67,17,100,131,197,143,127,3,160,213,175,210,215,208,192,175,172,139,211,56,1,184,79,11,125,235,17,15,226,50,74,69,115,0,185,231,170,87,126,8,204,128,48,226,13,71,98,138,249,181,45,199,67,30,42,137,134,217,103,122,94,130,81,38,118,80,77,183,147,168,161,83,41,212,45,134,207,127,251,233,9,136,143,26,219,223,229,80,147,138,55,145,129,12,221,101,106,84,80,205,210,210,25,142,34,16,197,173,64,51,158,211,207,172,247,95,24,105,128,135,11,125,106,232,138,191,46,38,87,8,73,116,116,30,252,51,174,136,112,78,32,245,251,250,31,118,97,62,8,129,91,215,58,159,5,171,202,248,125,136,125,249,10,80,220,245,41,177,19,221,77,51,181,217,48,97,211,202,102,122,132,44,37,4,241,181,187,253,78,118,21,211,178,240,145,44,244,126,203,178,157,55,145,207,118,223,243,195,216,195,40,3,215,167,16,216,178,17,180,82,152,12,12,128,176,59,105,255,115,234,75,89,44,249,169,247,100,49,60,190,255,31,42,63,254,123,229,239,114,170,24,54,31,192,255,64,209,202,39,147,84,89,10,228,249,214,134,129,179,133,214,127,126,187,0,75,253,37,201,206,99,2,189,220,179,237,56,170,19,101,143,95,252,102,136,117,113,13,77,90,139,254,181,67,77,185,63,168,253,49,177,139,207,31,46,244,241,128,197,77,211,9,90,38,104,74,143,9,61,217,169,186,232,17,208,48,204,220,40,200,51,168,139,177,186,169,117,236,120,242,100,211,131,209,135,190,254,20,221,53,226,64,24,111,80,219,200,8,70,196,158,229,155,9,61,224,244,29,161,178,42,97,18,107,206,43,224,130,134,151,64,12,19,170,148,52,212,56,4,93,98,15,183,72,184,63,83,139,170,57,74,123,106,229,35,60,46,199,186,77,99,239,253,178,164,50,22,76,5,4,164,147,60,71,222,156,183,187,114,185,200,101,75,40,188,133,157,79,225,208,231,222,214,18,75,205,253,60,5,17,177,21,193,37,215,180,118,140,168,149,8,137,217,104,118,216,157,7,116,170,202,213,16,110,123,84,162,15,24,95,179,152,1,52,84,112,196,172,230,8,27,58,181,157,133,112,252,137,72,234,115,2,58,127,61,93,123,1,143,191,65,68,57,20,211,98,251,187,108,73,227,234,220,224,176,17,109,150,123,139,5,71,48,6,201,170,31,97,80,18,22,51,240,121,3,217,158,210,254,29,201,86,207,17,107,175,128,176,5,5,115,118,126,173,154,162,195,20,128,60,70,229,201,186,54,251,36,68,118,196,51,174,51,67,67,153,12,107,60,128,165,138,189,17,3,209,87,181,111,189,139,248,36,235,59,204,191,210,48,154,134,255,131,169,135,222,7,78,37,145,207,110,16,140,179,22,18,73,41,214,111,73,31,75,39,252,39,22,14,243,136,112,72,219,106,116,200,86,127,80,92,111,216,42,109,138,214,72,189,115,255,107,53,122,24,63,210,236,18,117,87,240,140,245,16,213,117,15,194,243,110,133,37,34,229,12,120,23,199,33,78,186,18,36,230,40,4,9,220,204,143,31,118,170,107,142,20,150,210,82,8,196,125,65,49,112,83,15,50,112,20,152,199,46,236,78,211,195,19,188,206,149,161,70,179,118,139,136,123,160,242,51,22,235,244,199,19,130,223,42,63,222,230,216,162,85,25,86,142,88,120,29,142,148,130,45,98,102,53,233,167,235,51,44,135,123,21,153,82,102,102,124,136,223,230,23,228,25,166,158,136,194,55,91,156,164,109,169,186,48,98,4,247,247,28,97,138,130,183,178,240,62,113,107,77,101,156,106,183,163,14,16,147,56,252,93,73,72,208,21,55,120,213,202,148,86,162,68,253,110,196,32,83,168,40,244,137,183,41,56,156,35,190,79,27,82,193,25,150,79,247,175,38,93,109,158,49,82,35,184,114,139,48,81,23,208,124,145,201,90,225,26,169,61,53,181,211,165,203,133,103,77,35,221,202,176,45,60,142,120,106,250,10,28,102,92,18,240,226,34,32,34,78,204,26,118,146,209,36,3,162,28,236,165,211,16,120,204,241,200,158,107,242,44,7,79,38,138,5,78,4,153,61,152,114,29,25,214,223,244,6,125,230,72,211,240,155,0,38,71,215,87,247,131,89,23,254,58,134,4,110,73,166,31,223,108,83,23,177,32,128,128,33,51,143,180,222,173,184,47,115,199,155,92,24,75,238,253,218,47,209,242,133,241,122,21,65,186,105,31,120,48,120,164,176,125,47,32,231,34,56,156,111,76,132,219,234,196,149,25,213,190,95,126,0,147,246,172,134,141,45,208,160,151,133,140,45,68,207,41,248,175,133,146,233,136,56,1,3,22,71,178,103,255,63,172,156,183,43,60,223,16,169,230,166,191,109,1,189,154,162,122}, {169,2,197,229,79,32,156,105,193,137,230,213,115,71,243,14,62,57,206,169,110,191,93,17,195,73,128,88,216,18,104,62,220,65,246,23,221,243,157,204,126,170,178,12,94,245,159,220,135,136,26,160,113,0,25,43,149,223,160,43,251,109,90,71,64,150,106,48,102,111,149,248,80,75,129,69,249,219,24,84,84,77,73,35,240,100,127,185,202,123,78,188,212,48,158,149,89,54,26,73,227,2,252,45,62,255,162,169,232,87,90,176,134,58,184,63,58,166,24,69,54,17,129,241,58,72,121,202,62,109,53,103,85,187,73,200,236,58,26,177,216,9,198,138,253,211,249,67,192,30,168,150,74,181,202,87,56,216,118,69,80,85,52,32,113,241,194,214,149,148,83,124,248,131,63,64,25,54,60,229,234,110,133,175,99,143,253,64,83,65,244,168,110,161,78,72,146,152,190,30,0,172,51,247,131,159,226,68,77,183,219,29,232,136,125,30,107,53,106,33,199,224,54,143,201,31,234,52,199,22,235,185,234,68,249,36,254,38,212,228,38,26,32,203,138,222,16,132,14,8,171,200,127,98,215,253,57,65,249,81,172,53,208,74,18,240,207,155,178,87,79,79,214,30,184,61,79,217,177,123,104,72,18,163,15,183,129,14,0,70,60,66,228,140,95,14,120,160,30,88,122,227,168,14,214,239,21,21,34,28,233,41,254,137,140,190,245,48,13,99,193,85,115,254,0,110,252,4,10,73,191,87,165,199,228,117,220,217,137,120,12,222,102,232,201,45,47,12,100,85,162,94,220,79,106,234,24,164,192,15,189,185,91,223,238,117,235,253,9,172,24,230,0,249,79,145,40,126,235,180,67,171,147,217,194,196,145,235,196,138,237,34,178,196,121,123,59,106,130,62,208,5,192,190,107,43,5,244,227,133,17,225,127,203,140,170,168,134,108,85,114,187,58,45,236,59,18,24,126,173,160,18,210,114,147,197,34,145,90,126,195,24,219,63,220,79,15,185,82,205,217,213,101,52,60,251,178,228,49,202,14,152,116,250,245,43,120,11,36,10,239,16,218,65,34,187,221,76,220,228,3,11,173,158,87,87,200,232,32,85,121,223,210,171,7,188,88,65,50,234,173,94,78,131,191,84,47,179,255,223,63,191,100,248,192,23,201,195,142,23,62,230,76,171,240,22,73,167,154,220,162,87,249,243,40,124,132,72,217,251,240,57,63,148,180,240,6,108,109,89,175,81,198,20,116,110,229,123,36,160,111,219,106,125,197,47,183,101,175,107,96,49,85,243,116,205,119,17,244,3,157,232,145,70,69,194,5,95,239,85,4,185,79,111,54,231,8,117,174,52,0,116,15,248,216,54,137,166,20,137,179,154,202,218,248,195,232,149,48,47,199,181,193,26,34,124,152,94,58,189,93,217,27,125,120,84,167,248,115,169,16,242,43,226,159,96,221,70,166,227,4,229,215,239,192,122,112,247,193,136,12,222,242,192,189,17,58,201,111,113,197,200,175,73,190,250,10,149,28,224,249,224,204,120,52,107,9,246,165,182,105,147,213,208,68,83,96,34,204,71,9,234,97,203,246,46,78,201,189,91,140,167,202,133,30,10,211,185,38,66,126,62,180,244,41,45,6,210,191,206,166,28,145,42,53,122,218,20,76,81,174,108,192,100,12,80,135,146,201,81,0,119,98,103,113,117,203,96,168,148,179,164,6,107,98,247,171,125,47,13,152,196,35,199,175,193,68,118,47,38,7,48,187,206,136,146,47,7,255,211,18,80,152,253,126,220,184,170,183,46,131,20,48,85,88,246,184,248,203,230,53,40,190,92,77,230,162,106,251,17,46,228,169,241,87,183,236,79,132,223,152,174,88,147,219,109,213,31,108,211,199,107,245,221,135,210,98,102,129,136,56,102,62,239,147,19,114,194,70,207,34,31,18,9,214,85,235,70,113,217,175,109,42,225,80,134,88,185,193,156,199,35,174,246,89,173,18,179,116,1,180,217,252,56,205,205,88,182,27,26,243,215,214,104,164,122,214,241,36,164,174,47,176,28,168,199,151,23,95,128,164,34,206,45,70,20,119,231,85,88,59,187,112,170,186,61,189,161,250,241,223,42,53,121,127,153,48,111,128,147,8,18,245,143,220,181,105,185,104,233,91,111,188,124,143,72,132,47,7,50,171,166,143,239,175,199,152,146,17,157,200,114,100,90,79,11,182,163,209,53,27,49,156,138,59,31,40,109,87,65,120,203,254,35,13,237,13,141,118,138,66,148,240,25,247,83,250,160,41,185,255,185,94,93,82,172,98,218,14,109,121,71,245,76,19,137,86,11,162,19,131,122,51,167,11,248,149,58,51,47,224,38,147,107,135,176,114,74,98,38,109,99,248,11,220,158,188,155,233,163,230,35,236,207,83,68,36,114,240,203,20,129,25,33,52,112,182,246,92,176,129,114,67,96,42,62,193,52,212,44,191,74,51,203,62,155,128,164,163,12,235,116,113,72,186,19,139,19,44,187,95,91,161,0,70,190,187,131,58,182,51,167,57,22,246,23,75,220,50,210,115,246,105,74,158,219,88,186,29,144,128,176}, {233,175,119,41,202,231,176,10,239,216,85,183,211,9,106,198,73,68,88,202,254,18,243,111,58,124,111,184,212,75,193,150,222,244,71,121,121,80,12,128,157,87,176,189,147,153,54,91,173,15,173,54,102,64,125,108,180,161,129,77,197,235,149,32,225,18,214,168,159,117,242,8,150,126,255,185,115,69,42,135,117,252,60,198,255,222,72,233,134,197,122,136,3,43,125,70,163,224,99,41,6,15,124,210,126,142,132,177,34,195,251,44,248,205,75,74,98,164,153,104,21,44,87,238,242,59,211,79,49,3,197,28,195,56,21,41,74,43,62,218,19,37,196,62,212,139,212,102,11,163,81,151,72,38,238,54,67,159,138,128,168,239,169,136,162,222,54,165,212,94,47,73,84,211,82,234,171,247,28,120,112,119,82,53,19,171,68,17,40,176,221,229,136,186,228,231,130,93,13,55,30,66,208,183,37,226,196,146,199,80,57,196,48,69,102,108,128,237,49,70,233,147,74,158,124,255,13,165,108,143,142,98,104,205,240,186,196,169,227,57,232,33,190,19,164,162,17,113,116,229,245,117,109,196,60,152,235,234,72,151,93,139,184,5,83,87,93,251,198,246,83,2,44,164,96,185,161,94,198,181,81,205,208,255,51,36,17,207,29,54,83,199,86,158,23,252,90,96,19,244,89,68,108,227,39,40,138,234,96,16,140,22,15,147,75,219,247,6,62,72,102,0,158,176,203,187,220,37,177,107,95,124,218,45,107,124,207,144,83,118,153,8,7,24,212,106,74,166,94,148,184,45,241,230,78,116,175,7,125,123,208,67,166,42,63,243,1,12,251,63,156,80,47,78,211,161,35,179,45,193,7,230,253,12,34,251,80,24,215,239,4,59,62,236,96,178,138,43,207,131,25,31,88,17,63,61,41,7,202,205,209,18,71,202,251,28,133,178,237,141,197,145,223,40,93,17,12,120,118,108,36,135,224,44,68,1,92,163,66,199,50,186,25,51,126,236,4,38,123,74,148,150,61,44,156,163,18,254,6,163,224,199,3,77,225,50,121,134,236,62,76,119,61,31,59,73,29,27,35,87,58,8,102,45,74,86,161,74,66,192,111,18,28,4,6,27,160,158,204,67,183,10,243,246,156,28,112,214,175,45,218,89,224,117,80,172,76,33,49,48,37,67,9,159,66,142,19,146,106,95,133,180,254,153,172,88,37,148,226,186,120,51,19,227,109,129,3,217,180,106,150,139,162,183,18,132,209,177,122,162,87,133,230,121,230,146,200,226,161,138,70,93,20,42,174,212,18,59,142,118,15,172,99,82,227,254,81,156,185,97,149,13,26,23,36,232,249,178,29,135,126,77,126,177,31,62,75,128,157,179,79,202,130,94,103,39,9,73,18,175,156,95,130,31,20,104,95,184,202,64,173,174,164,68,57,124,87,86,109,170,32,171,249,220,92,199,215,231,240,13,218,28,192,7,11,237,158,201,33,38,180,50,9,107,184,214,61,82,108,110,190,238,132,58,188,30,60,106,246,41,159,27,166,204,182,165,112,217,54,240,118,166,145,47,110,62,9,103,134,64,41,120,110,3,205,144,172,233,230,0,20,177,124,223,230,159,255,75,42,220,188,247,232,133,220,159,167,72,111,41,173,233,206,158,181,121,176,69,35,178,94,83,84,173,103,246,174,56,87,157,165,172,127,102,10,202,195,168,55,69,28,103,106,29,125,183,136,55,186,138,221,192,22,15,125,109,106,18,124,150,130,25,123,80,196,73,226,175,226,153,105,177,166,136,245,119,198,120,85,23,49,47,120,197,74,126,198,179,67,150,187,21,228,15,172,25,57,229,254,8,123,213,35,139,250,62,189,174,230,44,180,106,100,26,106,100,92,84,24,164,71,142,17,103,155,88,23,219,165,180,135,163,155,151,86,33,157,192,182,128,26,158,65,119,154,115,223,133,102,42,84,170,91,106,157,143,125,159,49,139,211,233,120,108,48,167,254,174,253,116,35,54,104,177,222,87,101,3,177,117,15,160,71,108,239,185,40,146,181,162,99,92,50,149,55,49,73,176,171,147,4,71,237,174,218,70,112,65,65,21,183,64,244,236,9,237,185,95,125,101,65,19,117,185,31,255,196,126,89,159,58,32,18,115,249,90,148,96,11,39,159,103,162,217,205,39,232,103,245,29,46,68,37,90,75,43,30,106,246,85,3,208,235,112,29,54,182,136,9,158,99,73,112,199,72,64,85,47,160,172,115,162,6,106,126,255,114,244,66,33,208,97,246,156,211,87,138,34,29,169,150,2,50,169,204,82,222,74,36,220,113,141,61,213,212,188,118,213,124,218,219,216,18,117,205,77,66,78,253,85,76,116,120,248,201,53,158,225,3,108,221,178,205,165,75,230,187,20,11,254,203,186,55,50,217,159,47,10,150,81,26,80,228,204,123,153,115,141,124,76,137,115,171,167,98,75,123,92,34,18,122,46,43,183,157,105,68,203,138,249,26,108,32,76,253,88,171,141,181,80,207,74,109,155,46,30,149,228,93,164,237,249,190,145,6,30,6,22,22,6,82,36,0,20,156,103,57,9,112,30,23,94}, } ; static const int16_t precomputed_encode_857x1723round_x[precomputed_encode_857x1723round_NUM][crypto_encode_ITEMS] = { {7056,9160,17754,23893,18143,-2294,-5411,-20452,-10776,20036,7957,16726,25073,-15151,-26703,-27806,32173,16477,-27133,-4479,-10986,-4640,27090,-13814,17886,26053,24296,9747,-18961,-6099,-31045,-32065,-1404,6957,-24010,-25793,19349,-4819,-13614,-808,-26731,-3045,-6559,-24133,5309,-2392,31502,28530,29414,-449,1166,-10564,-16845,6758,-8879,10558,10240,-18616,12258,-8861,-25896,-8751,10104,21439,20856,9562,-24690,-7428,20444,32054,-6129,-25453,-22460,-19467,-14712,16548,-1915,659,25707,-488,-10212,-858,19262,-9516,-30136,29849,21566,13523,26580,-28775,-7137,31060,-21709,-20493,-19104,1437,-5165,5318,-12867,-26013,-10149,-30438,-21585,807,2807,-29170,-2473,-6607,31571,-30214,26144,-3073,-20086,446,-783,-22663,12858,30740,25026,8297,11225,-17620,32404,-7861,-13923,-15561,18921,-17389,9125,15152,24863,26569,-5326,-12563,-9731,-27520,22628,16310,-28707,-10615,16837,13707,7094,-6519,-30466,-7336,22814,-7303,19506,-6048,14389,6504,14807,31043,1304,27367,24747,-5378,-20391,-16202,-6977,6146,31115,-19939,-26137,25406,-25278,-13867,1016,5473,6561,2789,11342,-31176,1759,-18579,17057,2181,-6104,-22282,-856,11650,-27105,3959,6102,-11679,25608,-8099,-29541,29654,-30679,-9783,19387,-6982,-12927,-20773,20764,-20637,31289,-27707,5450,-5245,6583,-23135,18626,-18745,-17680,-1006,-25561,-24591,24333,-14290,-11796,-14947,2837,26813,20299,-18025,-15136,25971,17662,4235,31052,29939,31933,29963,4310,-29320,-5219,-18401,-21484,7553,11389,5577,-12037,-13064,-3487,-26879,11787,19170,-22129,-1165,4122,-11221,10326,-28227,21138,24232,27476,-15833,20785,-14477,-9735,-12333,-29773,-27593,-22684,-32698,18266,-11567,-17033,-24717,-7302,-10051,-17876,-6246,20933,11583,-12518,23016,5210,-15855,-29394,20189,32606,-9660,9726,11330,2868,9462,11153,10520,12789,26797,-29235,-4436,32248,-17777,2463,11569,-2571,-8532,-7506,-24506,-20211,18345,-27770,-14500,31601,31263,31180,27790,21504,3562,-17068,20761,-18566,-29978,-10142,4263,7786,28668,-31377,30976,1975,-312,30346,352,11343,-17338,-9331,-27672,29010,23067,24818,1917,4854,20369,21231,-28191,18328,-15891,-19484,-20009,-27194,-15073,9997,8962,15418,8411,17103,15485,-3022,-10086,-22072,27708,8590,7390,-15133,-30581,31437,20620,-14070,7186,10100,-21228,-22343,21867,-29615,-4305,-27123,-5341,30573,-10050,-21467,-16181,-1703,-9370,20181,-3703,-11979,18286,-4824,-30720,-23863,30227,11846,-18221,-5123,3216,21803,-16101,-31719,27975,-4451,-13173,27854,-30392,-6142,-23407,-7118,3478,-19531,-27526,-15583,149,-20630,29686,30405,-26441,5350,4354,-5814,21930,-25218,9562,-4847,2117,-16895,21700,14852,-16948,-16355,-20540,-22915,-18679,2842,19792,-31039,-31587,18976,17652,8277,29400,18043,-846,5718,-9375,-26180,15430,22849,1623,20789,-2045,-24181,-32577,-10082,-12944,-7007,-27883,21395,-19680,26637,17822,-14394,-30877,-6124,-17508,-26134,11762,4801,29819,24969,1475,10556,-9264,3147,-3721,11596,-25763,6208,27472,1807,17554,14066,-4222,-14611,25412,2401,-3665,21202,-21554,-22164,-11221,-2023,5259,-24933,-8839,-32477,14081,7545,-23808,-19671,-24108,-1409,20605,-16331,6627,32304,23939,24133,-9248,31987,16023,-3626,25214,25154,-1400,-18932,4533,16657,-5504,-9628,26118,3952,-27395,-19636,257,-10088,-29956,1159,-2093,-24287,-22764,23647,-16038,-13647,31868,29313,14458,-17674,6799,15920,-10625,29110,-10526,4723,7860,166,-8860,-5301,-17216,31676,14179,-20458,-6801,29375,27838,27591,-3727,-27704,1839,7127,-302,18241,32264,14296,27541,8749,31458,-24631,26458,18532,2260,23512,-8060,-12843,24102,31176,-12026,-6032,-18305,-16600,-6110,-13206,20471,7460,7564,-12925,-13607,12941,-20962,-11941,-12051,30038,-20023,-22851,7660,-29360,-24045,-4137,5162,-26679,-31215,4954,20845,25363,-15175,4046,-19770,21391,-25181,-241,-30982,-31113,-7783,28377,-4900,-6339,28725,-5461,-27118,25746,1633,-15123,1987,7248,-20340,6371,-13598,26747,-24244,26624,26993,-6726,24778,-19396,20670,19162,1428,-792,19081,-11704,-13226,-27855,-19764,-7539,-17229,-8477,-3363,-12414,26969,25795,11345,2048,20983,19264,9718,8895,-12407,-31723,16973,-2105,11497,-20573,-4939,3130,-24197,11183,18456,-10416,-28618,-25982,3668,-4969,-27063,-7479,-28273,16787,-29397,-15043,-21798,21767,5025,7956,-2343,-30119,14948,-203,15297,28117,-30566,25722,-22927,-26551,28952,6742,13192,18199,-11329,-5827,12182,-7049,23857,-758,25430,21415,8953,-32228,-10977,17830,10617,-17079,-5324,-16603,26842,-17128,16341,-6717,24860,14593,22613,6385,-32522,-3941,-2310,-3330,6799,25851,25410,23044,16568,31448,-25355,31462,9846,21292,25437,-3731,6929,-21671,-13232,20657,26380,-30584,-22258,-3424,23378,1839,-25626,32301,27259,-4582,1715,-31611,26681,-13446,-10117,10562,18032,-23051,-9174,21944,-3874,17586,-174,4682,14739,21107,7546,23110,-28849,6152,-25118,-6192,-26886,-9978,-16227,-23089,-22391,-7193,-20447,-27907,626,18625,6469,-19318,-27433,3289,-9166,-8576,10177,21779,-27990,32308,22880,24138,628,22619,12007,-404,2090,32653,-29222,25288,12684,-20919,30460,25022,24708,15861,-13261,-18476,12523,-11625,3765,15846,-25977,-5549,31906,15005,-4339,27141,-9202,1936,21614,24388,4409,-24182,1340,27114,-20957,-26505,-7665,-18209,-6227,-2141,-10132,-6045,-3047,26290,-20538,-5076,-12139,-16133,-21913,9528,-10583,-22837,20552,-14912,-19143,10784,-12618,16334,-828,20782,10796,-5404,18674,9920,-13774,-8050,159,6057,19932,29339,-548,13046,15149,11513,7042,-18304,-5989,-12778,7898,12501}, {-16546,-432,-26183,-3215,2574,-24148,14882,-330,-29030,26376,22193,18241,29290,-14167,10503,-29195,6435,7066,21465,10285,19867,17160,12867,25992,16022,8066,-21817,-16907,8461,-22205,-29364,1542,23779,-6613,32712,12357,-17440,23402,7326,-17238,-11756,16131,16443,20695,15854,22368,-20775,21884,13544,24875,-7338,-18657,37,19849,29921,-21913,-2962,-3115,12309,-1320,18082,8127,-9821,-7311,29112,12659,-15876,31108,-25119,-23462,-798,1353,22283,-15644,-28812,-31771,-27532,-1099,12143,-26641,5963,10173,-13828,9584,-542,28745,-22071,9747,2996,6488,30458,1572,-27364,-15488,9298,21570,26476,18830,31609,-32580,23107,19282,-7182,-28823,-15914,22381,-17970,19951,20186,-28685,19026,-14596,2419,-28584,4367,30021,10568,9947,-11254,-10182,3346,-15556,-30532,-14634,4963,31827,8614,-29694,13598,21028,-962,-31000,2406,30186,13297,28880,-17837,-14381,25013,8901,11565,9013,-8345,4406,-28428,24734,-4525,29851,8244,26874,-18664,22013,23350,14880,4449,6227,-17180,-17045,-26495,-21900,10036,9731,-6371,-9109,-23460,17055,7315,11986,21606,21278,20191,-16868,21884,14141,-22659,-6262,-1981,22426,-28446,6485,21015,20191,30508,-22692,3263,-14256,-12585,-23436,-25165,13129,10265,-30152,3120,15649,9983,-3371,-606,7837,27889,-18149,24151,22124,26158,-6548,-17711,-10681,-18361,13980,-8699,16577,12658,24448,-32694,25680,9651,31013,12875,-26109,23638,-3359,-29502,12537,24817,25216,18434,-660,3915,18771,-13930,-4660,31978,-4442,14447,-6976,2947,29601,-1468,8292,6827,-2118,31124,-30262,-2264,28994,-14225,-13881,31197,15863,-17252,-3988,-17954,-31854,24610,12050,17123,27565,29603,25321,-16244,-7425,-18133,-30057,-24338,-14624,11596,6179,25582,-3488,-22898,8136,-19810,-27138,6183,27144,10175,-7812,-19674,-30290,22372,-22867,38,-7888,1374,-24922,31859,-8542,11071,17094,-308,16774,7311,2525,30768,-12267,20498,-1599,-18616,-10576,-30533,30949,-12916,-3888,7012,5509,18684,12063,-13928,-12705,24027,-14864,13839,-27683,-27742,-20873,-7697,-7085,5504,-9101,-18354,-7102,-11030,-6561,-22066,-6952,417,-271,-12424,-6645,-3184,-27720,-23288,-2587,-14094,20688,-24787,32077,30071,25044,-27070,-4746,32142,26925,-29322,-27433,3191,-18010,23704,15641,-25989,-5607,9296,19768,-16476,12723,5443,-7824,22023,-31785,-4827,-17064,-10091,30302,-32062,15536,9081,29205,1085,353,12162,-16597,-30623,-63,-31477,7533,-29528,-24145,25767,6325,-24405,7282,6515,1496,-9490,-8192,-18043,2945,-31650,1709,-4267,23810,-7575,-28262,-28515,-399,17744,-32415,22162,-11026,-16933,11945,-1691,5831,23410,-30578,16897,4452,-25591,2367,1076,-9076,32727,9337,-4778,-22124,10177,9185,8601,12704,-12150,10721,-17516,1185,29104,30275,30447,13524,29418,28579,-23771,28940,10362,5433,-19165,-17692,-26567,24972,29259,-3776,-13390,23015,24235,27449,-10239,-25305,25297,19244,6797,-21347,6494,12388,4410,6580,-24532,-9763,-21107,32543,-10900,9388,-11880,23957,26357,-18498,-2063,-10367,-12765,-11459,-2524,-12440,18189,11090,6829,20234,-30615,-23124,179,-6668,22741,17757,20072,-13637,-17048,679,23917,-23059,-22149,29974,-27349,-17292,11766,-13861,32118,22259,9211,-5813,26100,-813,11962,-26725,26693,-32495,-7079,9420,-27951,20722,6695,24958,-28036,-10468,13552,-30557,-12626,-30304,27457,21301,-24394,8557,-15788,-14765,20451,-32667,-22082,-25302,-30043,-12448,21322,23744,-18129,21987,4806,9384,-14695,-23453,370,25420,-16433,31303,2559,10528,-14232,4121,21403,-24099,19004,-15584,-6860,-23072,-20981,13322,-4247,-13344,-21841,-6948,-30322,15738,11699,10401,-1413,-4633,30719,-9079,24779,4783,14851,-14654,19593,-6373,105,1258,-27459,-21050,-3589,-6056,16979,-30397,-16979,15468,-1414,18767,26404,-20027,7187,-16212,-17878,19457,-262,17696,-11880,-16046,3724,-14618,-15355,-32202,-19541,-1057,7766,-20598,-14425,5739,17950,-29140,-26567,-14598,-28983,-6921,-15429,15522,2527,1472,28927,12885,-8530,-2258,-28022,21390,10868,-2787,21507,-574,6886,-10032,-1788,-19420,-14514,23492,-15666,1860,-31963,-12414,514,29896,-16146,27997,-29511,11016,-12573,16457,-7521,-30931,23596,-22802,-5605,-12121,-27546,-14695,-17829,673,21374,32177,-6256,11637,12252,-1241,-14546,-13977,-2019,-15514,-31921,-10208,24792,6830,-9366,31439,-20208,-6799,15911,6479,22061,23252,-19476,-1673,8492,-20620,-4509,-8315,-20106,9045,-17334,30889,-16479,-18093,26669,-30913,-6917,30827,27479,-29269,-15279,11807,7547,-4835,-14777,-18692,1061,-775,25457,-31392,-20269,18994,1812,-31304,-16974,-2871,19358,27413,-26327,-21215,23558,28364,-27529,22579,2427,-21245,-18632,-6756,-2555,4942,-15955,931,-23802,9233,23050,-28053,-6886,-2764,-28059,-15352,-15013,-29951,19689,-875,29823,-2370,19015,29592,6289,24652,23635,-23741,25572,4120,-24698,-4540,-23246,-5686,11440,-14866,-14651,5059,-17149,20627,7140,-12290,-3664,11086,-17141,-22771,-20684,-3056,-641,-13631,25804,-7861,18868,30170,22085,10577,1351,-2728,-30394,-30695,-12807,-32278,3370,21472,31461,11336,-18816,-30018,-27504,-9923,-22533,11131,-23093,7015,26424,-22786,10960,-4478,2816,4976,-4348,-10118,30226,-18696,16680,17662,-15059,554,6752,-6773,8053,17203,-4430,13548,-5853,-30813,-27479,-27506,9751,-16802,23647,-17751,23761,-19871,-23457,31960,-11199,-9074,-15540,-27896,-12944,-14098,22805,-15373,10078,-29092,19555,17092,7263,-8745,-32700,-24066,-7262,22787,-12821,-24607,16518,-28639,16962,-14527,26634,654,-8033,-26287,6442,-13183,-4441,25126,-4255,14546,7893,-3830,18908,-24386,-32099,-15825,-31381}, {310,16776,7136,-22731,-8120,-25694,-2811,-16026,7911,22342,26178,9972,-26961,9752,-21304,22539,21858,-24175,-16785,-16690,-11855,-4626,1421,-14375,32126,15352,30797,-24400,-1911,-11643,4808,4647,-10011,-3657,17670,9368,32332,-23139,24362,-6164,-28853,-5252,-21122,-15430,20907,21502,-15999,-6401,21980,-20735,-1719,27946,10496,19105,4643,25602,23105,-13588,6505,21792,-8447,32302,31148,-24863,-7173,8899,-24561,27480,-21293,-22354,-21054,-19370,31348,28379,-14502,1811,398,31724,-22871,-8721,-21173,-7413,-21451,29613,-5251,-23727,25743,18026,-9799,-13273,1422,27896,15220,-22757,21391,-18986,1368,-30722,15642,-30952,17789,-20242,15055,-13167,13205,16507,31816,28873,3409,-27561,-9093,19897,844,432,23617,-1560,-8973,-25728,-1575,22542,17961,5969,-20522,-23116,-20997,14853,23236,23096,-13268,-7690,-9058,-4671,-6339,-20867,18686,32669,443,-31079,-17514,-29632,25589,5828,-138,-3380,9050,4996,16353,-9093,-2843,7283,25580,23296,-30993,25006,12675,-16162,-10784,19762,-11311,23269,21926,-31316,-22581,-1267,30876,31315,-27291,5190,-20871,-23149,1120,-4691,-24350,-6512,22829,22563,26657,-4497,14839,23228,643,21580,-32600,22226,-25311,27740,-19023,30886,21965,10974,11646,31176,5513,134,12538,-2432,-20583,-12343,-24365,28549,26058,9640,25476,-6688,-19876,25770,3293,4479,-28651,-29822,21112,-19370,884,-17831,4940,19391,19296,-29436,-11927,-20592,26184,21868,5327,14933,-28202,28513,-25660,7038,4506,-8098,-7975,-27389,5271,19946,4088,-14735,17135,18179,-12310,-18827,-5956,-20759,-20455,1805,21586,30105,-20183,-17842,-22247,31964,12173,8659,30157,8333,-16112,18820,15735,11668,27400,-10014,-17420,31307,-17507,13505,28187,23925,-18919,23990,30370,4285,-31108,-8908,1365,-398,24265,-27529,30673,7753,8050,-21922,-26934,-13612,15264,-8005,32637,-8266,268,13724,3158,372,27273,-4532,-11428,7377,-20196,-7374,-22098,1297,29855,-32501,28666,-25679,-24731,-21065,-10530,-14329,16264,31681,20831,-14188,23525,12903,-11734,-24528,-32666,-19659,-10568,-24868,-21410,1200,19887,29869,29701,-6428,3677,-26256,-15820,-8871,3002,-32033,13726,-25126,-15114,-32007,-17031,786,-18377,-13676,-183,17725,-14421,-13039,21466,-19260,30311,-12409,-26856,-20672,-2596,-28503,31770,-3175,17185,-23436,-31687,16268,-9240,-10069,-25919,1239,20743,2504,-1496,27470,9253,-7002,16252,2832,-9341,17164,3410,-13053,-2107,29335,-12816,-21637,-12253,-20040,22502,18767,-3239,-6059,7393,8028,855,-24897,16411,10861,-31317,15561,-27657,-15473,17681,1063,-1846,1852,-10917,3636,-10590,23983,17903,15275,-32007,-28562,16552,14553,-26693,29132,21173,16965,-18218,-23391,14226,-28295,-8246,32096,8955,-32356,-5113,-9970,5225,2072,-22766,-7444,-7973,3009,-15330,-32553,20529,-3602,-11941,-17884,10983,-19451,23463,31971,8013,-1066,-26359,-1842,4436,-4202,31773,-26140,-24301,29342,6026,-7462,10106,-19913,-31577,21680,2302,24391,17668,31965,-21292,2644,28826,31870,-22346,-12322,17599,3097,27760,30878,23151,-23995,-24409,-23056,-15322,2309,4923,-26779,13466,-6870,21474,-14680,-26737,31846,-6559,-15047,-8063,-21355,19284,12510,-4883,22679,2394,18210,5997,-22321,-245,-26711,19803,-13699,102,-9568,22081,-16087,-12099,-1388,-2683,8542,10148,1692,-25832,23865,19264,14228,19010,-1194,13565,10827,25135,12815,30732,-4300,8099,-19436,-12967,26726,18472,-17910,10439,-28914,-16510,24385,14448,-16275,32433,-14091,8396,30835,-16857,-6810,-32296,10553,-18336,-4568,-19156,-15083,-4126,22407,11367,-25928,2480,14720,200,17474,-17599,-20749,19324,-7847,21839,-11269,-26831,30322,-4358,11246,9113,23950,-1771,-13126,29140,-18020,-24161,21548,-31942,29835,-3937,-29496,24553,32450,-24411,21050,22581,21165,-9602,20280,27171,-19809,-19918,6875,-4156,15823,24742,-3152,20206,-25677,2871,958,-16103,-10247,-32318,-13464,20792,-9907,28836,6247,-24775,-15311,-32686,12406,17428,-30460,22660,25894,23370,-19547,-447,14970,-23605,-22913,-10330,16977,-18767,-31795,-26972,-31231,-30420,13239,24693,9515,25370,21417,18427,23668,24096,-9274,-21200,4970,-14697,-6815,30389,27639,-28416,31487,14516,11671,-17847,28501,32406,11826,6881,-2296,-7612,-30886,-14638,1854,29785,15321,19683,-20192,4492,21896,-7007,1184,-8048,16940,-17055,-18466,32331,-15211,22679,-26221,-2516,25716,-7209,16057,29791,6036,-14446,-32388,10189,-7325,30140,-5834,-17452,-22676,26807,-28414,-18332,-325,-1102,17570,-17612,-21048,-7856,15213,-19973,-26157,16714,1964,449,-25186,16803,3334,-7321,20189,20568,-20152,-6792,2254,2587,-12958,15829,693,5046,22445,9879,6681,-10903,16322,26841,24067,-26797,8152,17479,-20758,20861,-23144,549,31047,-29218,30026,-31124,31471,-27940,-32434,-5594,15640,9903,-5205,-12328,-28028,1127,31998,-26310,28984,26329,26737,-25071,-4146,-27451,-25627,16391,24693,-27264,-5262,23466,-19064,-28999,-12497,-16033,-12619,16973,-23258,-16116,4406,-31431,-4053,26667,-26466,-8657,30583,6097,-25449,18060,18953,-10839,-19900,10609,27567,-20447,-8753,-19819,17557,28091,9984,-7988,-12228,-14831,-16468,13986,17304,-8093,548,23470,1659,-8499,-20041,-19681,4085,-12911,-32205,31259,20389,15584,5109,-24305,-11391,11312,-32687,-18013,-21642,-8338,19770,23377,-10396,-24400,-11965,5797,-18520,15466,13347,26613,29016,22441,30949,25304,-13336,4757,27501,7046,17687,17851,-3800,-17117,8302,-1680,-27552,21462,-24126,7924,513,-3722,516,464,-8386,-2195,6835,-32501,255,-2185,4566,-1202,32162,24911,-21862,-22883,23786,-23691,-31183,-5408,-31692,19542}, {-4207,-26507,7592,-15999,-23254,21217,16441,8250,-17068,-6804,20433,16872,-20023,13124,-4855,-13309,21919,-1987,24251,-32734,-12215,25660,12393,-14584,-11277,15674,-15328,21591,-26565,17877,4356,18334,23931,-10342,20285,15942,5798,4648,-15843,-29124,-11775,-2588,-8176,-5720,-11348,3250,-4480,1706,-30587,1369,25115,-22523,-20546,6186,-21664,-16071,4532,28921,-19180,-12168,5575,20155,-7705,-29191,12659,28582,6182,29924,-16271,-13210,-10395,-30021,-25807,-16783,-9383,17744,-16856,-16976,17171,8958,-23999,-15023,11199,22535,-24426,21834,29786,-19631,-20092,27440,9839,16502,-982,22538,17745,25019,3830,17093,-15043,-29850,4027,8234,-11410,-5391,24743,24954,-20924,-27741,9029,6038,1699,-31139,23427,26679,-28933,-16743,27768,-31634,30319,22537,26620,15328,17997,17302,-7422,-8721,-16272,-29991,12835,27272,-7,-26741,17545,879,-8891,-12827,-18308,-25329,-27429,4037,-5159,-31964,31051,10297,-22960,-16233,-31091,10596,-30321,228,10736,-26460,-10214,8390,8445,17386,-13661,-3108,-30944,28541,-2203,-13967,-1558,4768,-17278,31332,8621,-6591,-4472,-31221,-26997,-15816,-4313,24063,32234,-30085,-3086,-26530,24890,9079,28975,30690,-18318,-12006,544,-4174,12252,29875,-6729,-3000,10191,26606,-11835,7732,-20651,-26207,27574,5182,30070,-45,8377,-5374,-27502,16898,10105,22216,31849,26874,-30336,13511,8820,9173,10603,4313,-27226,-28070,2,2061,-28675,-10106,5843,8860,25476,-26244,12099,-32330,1274,21018,5472,-5495,-29148,-30964,-1278,-32573,1025,31154,20369,27926,15071,-27132,-19001,-22568,4624,-27867,-6493,667,290,9370,-30644,-28945,19677,25272,16625,-10464,28002,-32018,22954,21056,3712,8082,-10246,29635,-28828,15667,28396,23901,-17978,10751,12842,21905,-15099,-2294,-10229,-189,16225,30796,22799,1753,9588,27971,20429,26253,-25035,7559,-25629,24998,-21047,13103,13701,-31605,11881,7214,30683,13286,-9127,-30447,10458,-13446,22201,-12507,12073,12740,7304,7561,-3181,1682,11583,3454,-18556,7262,-18692,25613,-32226,-10165,-23404,-10451,5956,30580,-32323,-13829,-19101,15724,-5817,-11718,2281,23582,22507,-13237,392,-29089,1735,26320,-7923,-13065,-10240,-18702,12938,11222,-24846,-26508,11395,-18041,16160,9479,-19259,-14685,4843,11217,31494,-10536,-10381,9286,31040,19016,-27682,24710,14627,27660,19337,20789,-6214,-8457,-10859,-1301,26277,15327,17780,31831,12221,24279,8006,4386,5188,18465,-14149,-24450,-16433,-31639,20464,23284,-26368,-29385,-22547,12050,16113,-10367,-8113,-27453,-27020,4628,22902,13766,-12700,-26916,2391,-30760,3352,-7226,24597,25642,5118,-14872,-16781,18116,4811,10559,-18640,-30976,19113,-24208,-28227,16934,16216,19851,1587,12141,10337,-25663,-16306,21851,-32516,19596,12945,-30824,6889,10765,-16030,2956,-11358,-6983,-6947,25280,19228,15233,13591,-24805,30867,-5113,12246,3529,-2150,-8230,-3625,8731,-10625,-21207,8925,3386,11787,-26941,-7998,2951,18894,9334,31802,23779,8360,-9163,15115,32434,-28851,-16062,23453,-23915,-23637,8145,-1830,-14101,10688,10064,9474,-13480,16733,-2715,24522,-2947,-16991,-10222,27095,19267,-10823,29192,21819,4722,30541,-360,-25061,1383,16801,-29625,24302,14962,13269,22223,4778,12,9470,-934,-608,-21304,-3015,-18534,4097,9051,-12990,-23735,30260,13403,9951,-28345,18853,-23984,-21143,21877,-17288,5100,-26218,28679,-15341,-20620,-12061,-24076,6820,7853,-31924,17716,-5753,28308,-28403,-29709,10719,5285,-8168,22279,27584,22284,24533,-4306,-16568,-11607,16710,7395,26786,16628,-28120,-25672,8492,-28317,-8430,8530,21436,-25485,-837,5772,-17228,-8884,-15001,-2779,6102,2655,5842,16091,-18780,2208,-8952,22209,-16787,7723,-21875,24146,-28601,29069,-24190,12772,8292,22688,3737,5498,11705,-20272,23088,453,2700,-4127,1238,17127,14923,-29650,-22996,14494,5075,-19722,18362,28869,-8078,-12123,-12148,-15539,-21230,-23378,-24236,2849,20753,6408,5609,-13821,-1390,-8840,19222,1858,29846,4748,-29540,18645,-26130,235,16068,-4402,21472,-26488,-16419,5483,-29927,27738,-13821,8420,-29631,9570,13820,22247,-31733,2848,-20541,29634,10186,19040,14721,29462,-23027,27166,25368,20008,5418,29879,4195,6012,23983,-3288,31286,-10266,-29249,-24027,-27168,4949,15293,7678,-2663,-27316,-19116,29426,10961,8518,-28619,2873,18026,28724,-26157,-12969,2066,-20160,1212,-21954,8707,-15449,-28919,-25356,-4989,8,-9327,10218,-4398,-11805,17551,-18911,-13834,-31867,-13676,31575,-31310,-13908,1413,-7249,-16923,22499,-27811,-20655,1767,-22399,31961,-15475,-14600,3595,-29716,-32253,2248,28408,-739,-10478,32506,-15629,15107,32259,10644,19951,27321,32463,-7129,3204,-5754,-16742,9041,29710,-2072,3353,-12875,-18460,32370,-22419,-5554,-32397,-8313,12765,-28841,-975,-2157,-19525,-14525,24484,-6692,-15475,29442,-32046,-2839,-14407,11886,-24188,-29539,-22789,-14174,14098,-25051,15037,18448,11150,28986,-26967,-19658,-11438,18381,3709,24115,16666,4317,-22971,-10716,3791,-19663,-30836,-2340,-1135,-9014,15105,-31131,24045,-24802,26687,-22849,-5037,23201,-6709,-6005,11372,15845,-31059,-25707,-14311,8680,-24099,3408,10501,3028,-26193,-4466,16045,-23318,-20026,16462,7042,17305,-2715,22723,14765,9406,5748,-28880,16885,-3896,8330,-31446,-16763,14975,-25550,18451,-5812,-20905,-3910,219,-13458,2916,-12305,-17899,4646,-18701,-5484,-1679,-32521,26313,-29587,-31139,-24211,9446,5260,1204,28265,-1605,-7819,-13332,1129,930,27859,26667,-27479,-22563,15006,-26113,-4005,27363,17258,-21476,8623,-27918,-23121,27097,-28087,-5488,-28770,-15911}, } ; static void test_encode_857x1723round_impl(long long impl) { unsigned char *s = test_encode_857x1723round_s; unsigned char *x = test_encode_857x1723round_x; unsigned char *s2 = test_encode_857x1723round_s2; unsigned char *x2 = test_encode_857x1723round_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_857x1723round_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x1723round(impl); printf("encode_857x1723round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x1723round_implementation(impl),ntruprime_dispatch_encode_857x1723round_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x1723round; printf("encode_857x1723round selected implementation %s compiler %s\n",ntruprime_encode_857x1723round_implementation(),ntruprime_encode_857x1723round_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_857x1723round_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_857x1723round_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_857x1723round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_857x1723round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_857x1723round_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_857x1723round_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_857x1723round(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x1723round")) return; storage_encode_857x1723round_s = callocplus(crypto_encode_STRBYTES); test_encode_857x1723round_s = aligned(storage_encode_857x1723round_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_857x1723round_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_857x1723round_x = aligned(storage_encode_857x1723round_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_857x1723round_s2 = callocplus(maxalloc); test_encode_857x1723round_s2 = aligned(storage_encode_857x1723round_s2,crypto_encode_STRBYTES); storage_encode_857x1723round_x2 = callocplus(maxalloc); test_encode_857x1723round_x2 = aligned(storage_encode_857x1723round_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_857x1723round offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x1723round();++impl) forked(test_encode_857x1723round_impl,impl); ++test_encode_857x1723round_s; ++test_encode_857x1723round_x; ++test_encode_857x1723round_s2; ++test_encode_857x1723round_x2; } free(storage_encode_857x1723round_x2); free(storage_encode_857x1723round_s2); free(storage_encode_857x1723round_x); free(storage_encode_857x1723round_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_857x3.c0000644000000000000000000005140714705505543022157 0ustar rootroot/* ----- encode/857x3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_857x3_checksums[] = { "743e5116e742b3998cbce11a5e58019bdb9b81cf0d5df538d1ceb897c9804c6b", "2d4dcd2e56605c0e00dde04746a1199c739d1e7dd3e928a117533f0937270469", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_857x3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_857x3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_857x3_ITEMBYTES static void *storage_encode_857x3_s; static unsigned char *test_encode_857x3_s; static void *storage_encode_857x3_x; static unsigned char *test_encode_857x3_x; static void *storage_encode_857x3_s2; static unsigned char *test_encode_857x3_s2; static void *storage_encode_857x3_x2; static unsigned char *test_encode_857x3_x2; #define precomputed_encode_857x3_NUM 4 static const unsigned char precomputed_encode_857x3_s[precomputed_encode_857x3_NUM][crypto_encode_STRBYTES] = { {228,78,117,7,7,13,127,223,106,62,129,14,86,24,153,68,93,148,140,220,42,207,149,142,57,16,45,253,99,71,168,75,160,166,186,56,70,95,79,211,113,77,156,142,96,208,77,113,138,240,38,48,235,128,44,136,125,75,99,174,5,254,164,17,16,111,90,112,31,97,251,67,68,171,252,223,58,241,171,107,143,194,57,87,45,213,107,213,68,181,95,14,126,84,225,117,157,99,83,180,194,140,48,180,180,167,204,213,127,193,212,114,46,91,197,88,203,144,100,154,92,201,1,144,104,213,213,162,193,44,85,220,248,195,79,44,70,215,217,11,18,22,13,9,139,8,225,129,223,231,161,166,216,115,104,154,173,2,148,84,138,208,151,12,127,67,59,194,177,44,201,145,137,236,69,22,91,233,182,252,3,32,132,185,108,129,93,212,79,74,111,213,184,100,89,160,98,169,5,119,150,167,134,165,197,102,163,78,152,184,193,23,146,246,19}, {9,44,166,19,235,254,160,135,215,143,89,128,184,161,188,202,70,192,58,30,29,39,173,31,148,109,121,193,188,172,39,178,173,94,132,81,44,127,52,1,109,186,254,162,60,120,229,64,144,232,204,116,157,73,94,103,247,19,242,171,179,212,200,45,223,30,33,28,3,241,117,255,5,105,10,207,174,26,154,166,40,63,168,114,183,133,191,146,142,197,82,84,216,17,105,97,77,217,228,165,70,44,218,96,64,216,208,128,41,222,207,79,65,101,84,159,103,219,232,52,224,158,121,14,194,140,175,204,132,176,176,75,57,220,236,57,204,150,97,114,33,110,230,26,131,60,104,246,15,146,10,145,81,232,26,98,160,189,52,175,8,223,92,25,125,87,140,229,199,170,190,14,68,115,82,83,91,228,41,143,220,65,182,38,246,168,229,70,254,233,229,132,233,54,217,98,167,179,193,212,22,92,18,44,94,95,136,198,145,242,13,94,233,112,64}, {91,89,139,131,65,249,32,65,69,127,71,20,144,75,196,246,42,136,186,92,82,221,247,59,188,201,214,233,61,191,117,240,143,41,76,196,208,203,5,200,170,196,55,120,227,251,115,65,156,88,55,206,0,74,94,250,197,41,124,144,79,196,15,184,74,133,254,33,51,216,3,39,14,187,100,55,143,197,130,182,80,80,79,88,154,147,216,2,89,109,65,106,32,106,2,15,192,0,230,181,164,70,25,2,208,35,20,17,114,203,199,70,195,79,32,26,206,42,225,173,142,152,21,158,20,148,189,193,20,199,251,99,132,69,216,17,218,144,105,254,20,92,14,48,164,210,75,83,36,4,173,237,66,32,93,51,255,33,101,87,138,8,83,162,174,230,197,8,46,52,175,180,182,101,139,107,106,147,206,44,236,59,174,147,223,186,50,92,204,50,216,26,192,202,129,194,114,28,83,89,129,197,64,241,160,143,75,177,19,195,147,86,193,20,247}, {125,215,130,89,120,122,243,9,134,226,25,250,6,68,74,40,167,206,190,218,143,28,143,32,24,76,112,241,154,180,43,254,138,255,15,140,255,176,252,171,26,198,5,153,226,4,130,19,75,46,243,140,40,71,46,59,235,18,53,94,141,156,14,112,200,106,114,55,26,138,32,196,47,131,47,39,83,100,152,90,124,91,167,39,145,140,159,215,236,226,25,226,3,176,133,0,10,138,73,190,128,1,33,120,200,164,242,253,191,1,123,51,102,157,130,89,75,210,169,37,32,59,123,151,31,182,95,30,39,154,223,183,63,57,165,126,199,62,54,132,40,210,77,105,42,242,57,6,232,253,79,171,79,174,250,213,113,66,1,75,178,228,234,117,210,78,10,47,128,251,219,84,245,167,33,125,227,58,84,183,125,97,40,108,238,98,45,53,242,34,119,40,133,104,121,231,9,226,19,158,23,1,195,223,158,125,26,8,208,132,132,156,19,211,210}, } ; static const unsigned char precomputed_encode_857x3_x[precomputed_encode_857x3_NUM][crypto_encode_ITEMS] = { {203,153,26,171,89,244,185,45,88,170,114,148,162,164,204,95,254,109,24,146,44,119,55,21,66,130,18,111,106,208,194,31,249,91,215,237,141,79,214,75,36,194,136,26,233,36,88,99,1,232,50,33,203,186,109,45,236,158,90,65,59,165,98,192,20,109,196,168,31,220,7,21,131,157,176,253,103,196,101,135,253,250,47,12,202,36,14,241,28,1,18,232,201,192,163,73,4,196,13,204,115,166,119,13,32,174,24,110,80,10,255,185,186,173,242,182,158,189,254,110,15,237,193,14,46,182,159,212,151,61,52,82,101,83,38,169,45,10,201,6,247,79,11,152,109,237,201,217,174,59,119,60,10,108,64,69,194,187,121,185,220,208,72,86,172,235,154,80,3,93,85,170,193,134,186,35,135,161,212,203,119,117,143,217,96,38,68,167,64,151,104,12,205,2,50,33,75,240,117,129,57,186,147,58,27,156,105,107,182,192,10,1,43,36,11,223,215,204,213,186,107,238,209,4,228,49,56,164,174,74,114,40,214,218,169,109,101,41,125,238,60,85,46,133,117,241,43,55,123,65,121,213,212,66,18,155,87,1,78,194,106,16,7,168,193,45,161,250,203,152,239,104,58,108,26,245,160,127,187,139,38,100,7,162,166,206,221,201,159,48,105,8,194,241,25,137,103,160,200,241,2,62,145,142,177,29,144,127,164,110,152,123,30,130,163,244,54,212,213,245,86,89,48,98,133,190,227,143,156,134,107,22,234,226,9,4,64,14,102,12,220,13,99,1,34,101,42,11,208,20,206,162,27,29,174,118,76,201,223,164,122,64,57,116,165,109,130,45,229,177,168,84,195,255,204,122,180,246,104,62,224,84,71,18,12,187,97,17,166,242,174,107,250,93,205,39,23,218,130,91,233,141,173,198,251,115,131,57,19,170,106,106,151,110,245,203,87,218,110,111,146,96,52,84,35,69,224,121,224,20,73,135,78,195,73,25,216,61,54,109,87,234,164,61,73,97,233,159,109,211,146,196,82,229,34,152,132,151,157,163,71,223,192,201,218,75,83,141,7,45,140,51,47,200,168,125,201,107,105,205,179,157,162,23,132,64,35,127,108,132,87,47,203,212,178,80,91,142,196,177,204,173,12,97,212,71,109,115,61,96,197,137,216,121,235,144,43,91,180,232,56,50,228,127,55,92,118,66,183,235,84,228,166,126,41,29,6,93,140,127,183,156,3,74,173,229,119,37,130,8,174,164,188,94,41,75,254,18,179,49,245,2,60,148,245,167,3,224,120,4,219,114,20,92,215,111,170,227,192,216,75,58,44,127,124,200,123,149,16,243,229,48,66,202,138,166,206,121,118,22,8,45,193,42,221,133,134,44,47,229,92,32,14,44,210,85,123,182,140,92,145,161,207,53,88,120,210,176,17,135,208,70,67,63,184,190,63,116,239,60,9,71,241,40,119,89,250,24,86,147,158,103,71,176,19,190,218,40,103,245,90,225,145,84,162,133,95,53,5,6,249,183,44,32,171,184,123,7,176,121,28,26,111,160,52,246,119,7,64,5,230,178,159,118,146,68,108,97,0,60,37,51,125,236,22,56,29,101,20,144,68,16,189,121,40,137,83,145,157,41,194,151,53,129,43,192,134,133,211,243,137,36,20,224,141,76,219,59,1,93,240,203,89,138,200,44,197,13,95,172,143,130,78,175,111,140,165,72,11,118,206,19,36,155,188,185,134,62,175,53,222,184,183,242,189,63,52,248,3,127,115,166,192,153,29,60,28,197,248,207,214,183,64,188,0,158,114,196,246,173,37,171,131,45,122,46,178,68,5,195,214,251,104,10,84,246,8,218,212,251,157,105,89,157,166,58,132,182,189,11,85,115,19,16,175,80,75,198,240,156,228,90,54,195,194,212,11,236,129,111,12,117,233,154,241,21,18}, {212,28,239,126,3,189,134,130,125,101,128,165,130,83,167,42,66,25,231,114,213,37,240,117,231,161,66,239,182,135,206,246,190,73,78,239,194,238,148,150,196,200,134,179,67,186,92,21,243,60,0,142,4,206,65,224,243,33,159,156,149,28,51,89,245,155,209,238,83,214,204,12,185,191,31,173,173,171,39,156,8,200,134,209,222,185,1,228,4,177,253,239,186,40,11,67,167,110,218,13,100,129,215,193,56,127,151,210,212,246,4,130,127,150,169,192,139,3,100,134,206,153,222,71,165,198,46,179,180,193,146,26,153,44,20,206,155,249,75,176,8,97,203,131,11,207,113,230,102,61,233,81,107,161,107,9,0,3,150,229,132,225,41,14,41,131,87,123,73,124,91,127,193,11,54,240,231,124,21,131,143,89,179,4,84,27,117,86,83,26,219,2,135,61,132,250,251,34,117,171,191,230,202,226,199,170,75,248,128,42,114,212,140,10,144,245,65,226,24,219,166,59,52,137,226,224,128,181,74,57,9,88,121,153,56,249,154,163,83,36,46,172,84,125,223,0,146,90,79,189,27,58,248,184,168,10,210,178,251,189,1,46,93,117,216,233,169,139,123,187,178,185,90,133,0,253,244,78,27,235,96,52,151,138,150,129,185,18,164,155,174,31,8,127,225,132,249,155,173,66,78,119,173,50,33,254,40,135,193,49,240,81,89,83,18,254,41,106,120,148,67,132,244,181,54,165,146,140,111,17,114,10,57,197,89,25,90,62,205,137,128,248,201,193,34,26,70,246,41,249,131,88,221,203,151,171,156,193,73,129,237,36,48,14,187,85,223,228,235,254,50,118,160,51,41,167,64,173,82,12,132,210,68,80,12,163,58,27,148,36,202,43,99,111,167,0,236,1,238,82,145,68,145,189,127,118,120,100,13,74,157,34,151,77,212,96,203,60,35,128,75,146,255,40,75,44,20,29,187,120,225,38,172,130,210,212,109,103,136,144,238,95,157,177,114,34,16,204,108,40,122,245,204,245,139,111,207,100,30,35,94,55,189,93,110,9,228,1,126,94,129,170,147,200,214,90,59,57,232,181,211,66,55,25,189,15,69,172,148,188,114,118,13,107,240,220,221,116,124,72,255,142,80,180,174,131,250,12,143,214,173,123,203,225,90,217,63,167,4,57,63,187,203,66,250,147,71,1,100,212,63,225,79,242,55,172,211,173,65,136,128,73,100,84,223,166,8,50,233,106,27,120,148,254,188,115,45,136,205,240,232,37,41,219,109,95,7,255,25,62,72,116,141,210,175,124,70,250,144,188,39,220,93,34,71,63,221,104,105,34,31,71,66,90,89,146,105,145,253,15,157,102,244,5,24,129,78,217,124,132,103,100,239,169,52,43,145,181,214,124,213,18,231,214,67,118,59,78,28,199,83,248,95,84,203,118,138,204,154,176,203,118,73,70,174,203,47,7,27,3,226,195,100,156,87,122,244,65,19,100,150,183,141,87,31,118,224,141,192,184,63,244,190,5,178,162,221,74,145,193,77,59,47,1,97,102,180,94,211,39,172,39,238,96,131,26,213,226,202,176,178,131,200,103,14,218,77,159,55,182,48,162,8,199,23,153,102,17,193,194,67,141,113,32,4,234,60,106,217,214,23,171,249,130,229,250,121,198,209,220,183,67,101,225,96,224,255,147,81,144,50,77,81,74,67,28,232,235,96,184,40,2,118,244,23,146,81,127,52,152,24,38,25,138,238,7,236,218,55,207,33,19,210,246,170,138,40,72,158,212,247,84,164,126,5,6,79,84,26,81,149,107,220,43,59,135,131,138,121,65,64,53,111,206,191,73,153,124,104,208,206,199,90,234,15,249,48,189,101,151,95,31,128,11,141,87,21,186,130,10,244,217,142,178,181,157,94,248,64,69,60,138,135,53,32,15,63}, {58,251,194,23,16,37,242,1,62,70,206,212,154,81,85,52,160,239,161,210,148,248,103,107,43,208,142,82,188,92,104,145,224,116,96,9,90,152,115,73,214,127,70,71,103,206,222,37,231,41,111,183,106,191,69,189,99,83,220,124,41,106,229,50,5,16,205,151,147,200,44,95,41,51,127,194,139,255,180,113,233,57,7,159,148,149,174,191,122,6,41,58,154,183,79,70,31,242,224,90,120,171,117,76,197,223,228,232,180,36,121,103,104,196,19,97,26,160,237,156,200,14,186,166,255,147,85,80,22,37,89,76,132,72,159,149,63,58,37,102,167,202,242,50,195,50,119,230,78,10,44,229,192,80,151,133,19,64,70,124,105,223,171,43,203,189,59,128,178,168,41,220,111,45,168,202,18,15,116,76,186,75,116,206,126,176,126,144,8,81,66,186,47,18,169,89,139,158,104,170,74,38,12,245,185,56,126,188,187,80,123,76,169,187,118,176,145,6,34,241,161,73,42,209,188,53,78,64,172,158,179,78,155,111,101,18,63,255,200,98,182,89,234,93,3,151,121,102,246,133,255,27,187,246,117,118,217,191,34,84,52,119,158,37,61,123,200,132,204,0,220,201,42,109,92,197,91,58,108,78,170,97,208,62,246,79,98,146,93,31,142,128,38,204,169,174,207,100,87,65,94,17,40,187,94,19,249,184,84,43,123,7,225,171,190,171,245,203,168,215,83,174,127,176,91,244,153,25,222,171,155,191,247,243,180,112,125,106,246,103,2,155,101,138,51,68,164,64,161,35,12,43,200,199,66,192,64,182,164,147,24,29,70,120,149,120,150,17,167,125,211,164,169,11,168,95,105,157,133,126,18,70,41,124,47,151,22,14,123,8,185,126,145,52,107,226,104,94,56,128,111,64,134,118,213,127,42,6,224,13,59,188,57,189,24,128,59,28,33,195,58,77,190,214,155,81,82,67,128,123,77,70,245,46,219,19,222,6,12,175,66,252,236,50,185,222,72,233,190,72,117,173,250,156,221,227,195,194,76,77,125,34,192,235,209,146,118,184,89,199,34,149,144,71,94,112,84,113,212,232,173,227,88,198,239,137,219,10,92,97,122,121,49,138,135,194,63,148,15,49,103,218,83,245,204,147,117,104,204,72,240,106,131,191,196,128,94,181,216,39,138,95,18,58,10,5,219,133,239,12,177,244,156,77,254,77,235,122,143,119,60,144,120,167,9,251,177,38,15,139,36,47,192,169,115,78,49,150,138,114,195,31,116,177,23,88,1,114,145,62,95,77,139,36,228,202,159,16,43,223,61,236,49,30,106,139,98,165,114,231,119,62,63,248,71,37,199,210,50,102,32,150,206,216,124,127,170,70,117,158,112,128,47,179,217,21,216,248,141,54,250,121,116,47,34,94,185,146,80,11,77,54,4,243,208,105,158,61,195,217,205,218,180,171,127,37,194,246,242,191,221,105,253,0,245,192,13,15,193,124,25,42,253,108,160,96,153,251,219,10,247,217,201,212,8,13,91,17,92,110,2,90,19,35,203,153,243,168,221,45,157,192,252,221,14,203,230,116,172,195,14,206,149,234,205,118,35,173,142,72,137,24,201,72,181,105,147,89,62,8,203,11,250,8,174,238,128,246,65,74,107,21,234,141,114,192,30,163,214,162,181,120,69,234,65,91,163,216,63,174,21,211,163,189,198,26,209,183,219,158,47,141,6,127,77,150,74,138,99,90,82,194,17,181,117,169,136,133,149,185,137,221,191,190,77,168,175,129,255,110,53,223,170,173,218,44,132,120,194,182,68,18,130,2,56,150,210,167,191,143,35,183,216,229,3,100,3,30,169,177,130,146,31,14,122,119,218,80,48,211,250,169,102,206,126,181,54,230,18,110,66,59,229,95,165,99,69,210,232,201,110,226,11,161,139,42,246}, {240,254,8,155,170,126,94,20,189,104,137,209,36,168,164,60,155,50,76,124,65,61,31,164,114,103,205,19,4,52,62,4,1,144,83,207,9,189,97,122,252,58,222,160,153,219,14,251,105,50,112,2,55,166,190,73,245,0,44,157,27,74,121,20,194,220,182,235,141,227,110,98,53,221,180,218,209,121,245,54,186,56,34,2,59,183,27,76,142,51,250,221,127,171,194,2,191,101,111,82,227,181,212,8,43,32,243,165,60,88,112,44,217,147,254,81,247,130,10,211,210,209,240,219,93,27,182,58,153,27,179,196,22,157,98,96,178,146,240,87,119,104,122,142,122,132,214,71,239,91,132,115,23,20,52,156,182,84,69,8,141,34,51,146,89,66,153,10,112,180,87,100,92,14,87,113,45,232,24,233,243,23,142,98,197,66,66,205,138,241,231,168,86,28,95,121,213,161,212,213,194,211,145,90,3,173,168,164,139,66,76,246,54,31,28,254,85,245,171,216,174,42,45,135,106,255,7,155,137,65,59,90,184,82,118,22,109,11,187,199,48,230,159,154,99,137,196,66,1,122,125,188,223,123,13,218,179,220,65,193,161,173,36,122,89,181,59,221,202,242,49,161,29,122,140,228,161,93,146,48,31,135,169,60,239,212,7,27,122,192,74,79,238,80,40,174,170,120,113,213,34,176,195,243,194,71,222,25,67,103,87,155,51,68,156,25,205,26,57,121,231,216,226,159,118,156,2,148,194,8,67,193,6,3,136,61,224,175,150,197,187,143,100,84,154,168,129,44,58,142,193,204,35,249,253,31,225,7,141,139,56,27,186,134,73,197,207,77,170,197,83,35,199,5,192,234,220,221,238,4,31,247,187,52,125,126,16,157,217,123,175,166,104,203,2,197,101,181,51,168,63,223,11,31,80,139,75,30,104,97,26,93,251,34,42,232,207,225,134,107,231,182,9,36,141,168,131,205,24,220,82,44,122,140,40,229,224,39,99,116,82,197,156,136,162,43,145,70,61,237,90,106,140,127,212,194,1,63,99,120,204,226,47,51,42,99,196,152,233,233,215,46,60,10,95,152,96,76,228,180,7,169,26,30,222,210,4,54,82,5,80,91,210,172,96,171,30,167,249,150,33,64,208,57,10,244,159,253,145,206,240,60,82,16,184,43,217,19,42,126,166,13,67,238,190,245,253,172,194,170,160,178,184,111,99,117,180,71,92,127,53,217,33,198,70,23,141,4,201,64,142,185,21,179,16,4,15,224,6,5,27,10,145,114,65,179,63,102,196,189,220,178,44,186,216,22,97,249,77,211,81,243,68,177,56,115,142,132,141,21,165,78,255,53,156,0,164,37,131,181,34,78,74,104,46,98,130,38,78,75,160,2,41,220,240,191,205,110,218,158,152,166,81,65,92,220,197,52,125,24,245,163,8,253,39,69,226,89,15,119,97,107,197,156,123,221,106,144,73,59,94,238,132,3,9,184,173,24,67,1,97,86,108,62,197,200,217,109,58,160,102,43,183,145,123,90,114,133,186,254,42,67,173,202,87,78,143,10,116,199,149,179,78,185,186,162,124,12,118,175,220,15,201,190,122,249,207,205,85,0,93,3,7,154,197,109,98,16,232,125,216,252,130,105,212,42,249,156,171,198,49,60,255,170,199,148,85,37,135,29,177,83,197,47,68,105,27,65,0,32,22,140,93,192,24,183,113,187,35,205,250,154,8,65,71,7,111,130,36,39,83,149,95,137,129,186,0,245,213,128,30,241,111,163,188,58,237,13,25,113,171,24,34,223,6,195,21,145,211,183,146,104,125,43,180,22,222,247,226,159,241,128,198,145,208,138,241,74,231,183,112,118,174,128,233,219,3,249,243,72,146,226,155,8,120,241,139,133,13,191,227,219,246,18,155,123,176,231,134,198,182,15,18,155,196,15,209}, } ; static void test_encode_857x3_impl(long long impl) { unsigned char *s = test_encode_857x3_s; unsigned char *x = test_encode_857x3_x; unsigned char *s2 = test_encode_857x3_s2; unsigned char *x2 = test_encode_857x3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_857x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x3(impl); printf("encode_857x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x3_implementation(impl),ntruprime_dispatch_encode_857x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x3; printf("encode_857x3 selected implementation %s compiler %s\n",ntruprime_encode_857x3_implementation(),ntruprime_encode_857x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_857x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_857x3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_857x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_857x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_857x3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_857x3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_857x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x3")) return; storage_encode_857x3_s = callocplus(crypto_encode_STRBYTES); test_encode_857x3_s = aligned(storage_encode_857x3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_857x3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_857x3_x = aligned(storage_encode_857x3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_857x3_s2 = callocplus(maxalloc); test_encode_857x3_s2 = aligned(storage_encode_857x3_s2,crypto_encode_STRBYTES); storage_encode_857x3_x2 = callocplus(maxalloc); test_encode_857x3_x2 = aligned(storage_encode_857x3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_857x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x3();++impl) forked(test_encode_857x3_impl,impl); ++test_encode_857x3_s; ++test_encode_857x3_x; ++test_encode_857x3_s2; ++test_encode_857x3_x2; } free(storage_encode_857x3_x2); free(storage_encode_857x3_s2); free(storage_encode_857x3_x); free(storage_encode_857x3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_857x5167.c0000644000000000000000000013211314705505543022411 0ustar rootroot/* ----- encode/857x5167, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_857x5167_checksums[] = { "3bc06d9dfd4200ecfb99af82babaeb6f536f7bf947ccd4b9624e5adeeef68cd6", "6761bf59312ec4ed003d0e17a39f234aefcd57e38dba5018eaafb2051b9c7ae0", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_857x5167_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_857x5167_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_857x5167_ITEMBYTES static void *storage_encode_857x5167_s; static unsigned char *test_encode_857x5167_s; static void *storage_encode_857x5167_x; static unsigned char *test_encode_857x5167_x; static void *storage_encode_857x5167_s2; static unsigned char *test_encode_857x5167_s2; static void *storage_encode_857x5167_x2; static unsigned char *test_encode_857x5167_x2; #define precomputed_encode_857x5167_NUM 4 static const unsigned char precomputed_encode_857x5167_s[precomputed_encode_857x5167_NUM][crypto_encode_STRBYTES] = { {105,50,41,84,95,89,68,19,137,228,172,136,53,165,176,176,152,139,228,183,228,141,246,25,218,136,34,47,12,126,214,149,219,216,147,48,185,186,23,131,177,224,109,156,178,211,195,221,142,108,88,88,149,248,88,156,54,153,182,162,27,49,65,73,102,149,229,95,31,221,140,102,18,75,157,212,12,50,116,147,82,102,186,119,9,191,169,115,98,61,5,201,9,172,182,132,17,149,234,117,85,159,42,229,208,41,38,126,103,144,253,143,183,243,219,40,116,191,135,93,184,204,58,87,188,37,66,78,63,137,104,173,110,240,83,123,121,28,175,253,124,83,127,2,80,249,196,85,144,56,208,87,153,53,162,48,171,56,152,162,7,0,9,111,118,110,193,155,106,243,236,2,217,199,52,150,8,71,141,214,150,173,61,179,8,10,184,227,179,124,173,172,177,186,15,153,5,135,66,176,148,126,186,122,168,85,73,199,26,152,154,95,124,161,230,134,250,28,226,171,248,219,171,69,249,90,84,68,86,213,50,70,183,244,81,254,159,115,215,7,253,86,208,171,177,169,81,113,169,170,67,120,0,232,86,224,221,0,184,250,216,91,54,254,211,40,94,126,10,197,41,169,25,13,76,62,197,88,252,172,225,84,5,37,154,51,148,234,143,113,68,219,100,15,143,142,56,236,126,245,238,71,40,6,203,233,213,62,121,225,252,39,199,213,100,165,25,61,191,120,211,4,46,130,155,90,40,20,97,215,173,216,161,179,246,19,144,203,111,137,166,234,151,215,23,8,146,98,144,146,178,249,219,140,206,213,201,77,145,183,189,28,64,89,47,241,39,71,227,35,249,5,177,189,53,220,175,197,148,118,154,138,138,74,211,168,238,173,62,162,186,126,37,5,117,28,75,124,177,187,223,139,76,89,46,37,174,217,145,114,56,34,60,56,16,147,155,25,130,168,209,233,16,237,177,153,41,30,240,54,7,238,90,136,129,221,185,53,62,105,205,238,108,247,132,67,77,230,154,208,77,48,121,35,95,236,58,57,79,244,191,202,62,195,120,4,213,229,250,33,53,187,145,112,142,193,34,69,214,53,101,128,177,28,96,98,210,149,161,232,104,247,161,138,117,66,153,172,141,22,189,63,93,57,233,56,145,7,188,244,163,49,5,26,112,56,168,106,248,98,35,114,240,168,33,129,128,133,57,220,253,203,243,169,65,242,196,101,5,92,89,114,178,73,62,218,223,161,231,215,125,1,81,34,66,8,198,175,56,210,190,216,199,243,27,113,21,36,216,86,233,111,245,30,55,60,121,139,2,133,16,39,199,118,212,198,167,0,77,124,238,113,198,29,228,108,18,243,166,206,245,156,130,179,35,255,67,210,5,9,122,100,113,253,162,56,143,237,191,65,176,47,16,47,244,55,239,102,104,35,93,140,255,109,236,174,144,105,138,109,116,143,61,161,187,213,49,70,86,4,83,45,5,213,244,122,228,195,232,232,114,62,101,37,67,115,95,133,196,95,19,68,133,191,107,82,145,76,119,33,152,199,85,117,237,92,100,30,255,92,239,98,110,52,27,47,165,227,58,155,86,38,105,28,132,115,181,28,102,117,106,254,67,215,52,160,236,63,21,95,234,137,167,195,178,165,67,80,75,84,231,156,81,198,82,135,233,71,196,152,50,46,120,150,163,121,190,42,48,176,206,91,46,148,115,17,200,49,132,74,203,5,77,178,255,251,54,74,167,193,135,230,72,111,2,197,217,82,223,234,221,199,254,92,246,189,253,233,173,194,210,76,31,34,145,213,150,234,235,111,222,115,176,131,251,159,58,130,161,51,135,102,59,62,153,218,107,41,244,29,215,241,74,212,33,223,132,235,7,117,209,218,169,135,245,133,184,115,130,18,69,1,139,130,149,67,66,167,5,197,45,209,130,99,99,69,42,253,101,201,78,57,216,172,45,125,203,134,187,13,61,5,244,147,136,112,206,226,224,240,92,106,199,165,91,18,58,180,70,88,239,247,100,211,243,201,234,254,138,94,113,236,175,173,194,6,187,85,162,53,4,161,240,245,232,224,29,214,1,40,131,27,196,189,239,177,255,86,58,240,81,42,226,157,104,118,59,40,204,75,246,110,42,106,244,168,162,89,108,159,17,5,190,93,231,119,134,138,145,224,102,213,241,182,68,107,37,215,65,73,222,8,122,36,130,122,77,83,225,114,247,205,129,241,169,102,193,177,49,123,159,124,17,119,186,25,73,16,50,199,76,69,186,200,229,96,223,88,68,93,164,72,91,46,146,116,21,23,45,119,142,0,208,144,217,116,172,53,80,73,249,227,46,156,206,217,186,174,234,9,224,167,49,212,77,209,101,147,88,11,52,86,247,104,106,88,238,149,180,124,139,161,85,14,109,126,104,160,68,56,212,81,241,221,112,172,30,249,229,162,145,27,95,47,221,24,8,134,176,143,21,53,150,21,129,243,214,81,88,104,21,102,167,43,144,50,218,99,18,218,176,177,30,130,217,37,164,36,2,90,59,174,212,213,11,125,68,98,200,77,84,204,37,104,163,91,18,166,70,114,160,158,246,208,187,62,107,246,53,12,99,197,29,1,86,194,96,51,186,155,142,25,240,39,103,112,19,170,194,157,84,181,63,40,1,149,37,209,1,56,154,33,54,219,109,114,191,118,91,100,243,139,251,116,246,151,67,241,206,171,128,145,122,163,50,13,21,63,15,136,131,100,34,82,251,74,32,201,1,118,173,173,15,143,146,214,10,211,35,19,87,74,72,180,194,241,214,27,97,13,171,212,172,241,174,159,67,99,221,47,222,200,211,252,144,107,19,76,191,155,168,5,162,180,37,140,11,122,110,191,50,80,235,153,29,54,185,82,169,104,47,199,228,228,201,248,159,37,252,205,182,122,19,242,9,101,101,141,22,149,129,237,115,139,150,125,186,74,196,71,193,63,237,212,159,137,3,114,153,73,50,44}, {253,16,69,88,212,112,126,109,90,36,175,177,91,153,238,201,161,136,107,64,178,237,30,101,4,254,21,63,90,163,105,219,170,33,242,83,21,23,27,237,199,235,186,174,109,236,34,187,72,40,220,89,82,222,53,123,243,96,143,235,37,80,170,249,5,210,74,36,100,41,124,96,90,154,179,142,142,179,213,21,193,94,25,235,135,86,227,243,247,196,156,167,223,251,46,79,219,69,230,108,197,143,156,25,18,46,221,2,99,80,72,38,48,160,81,115,131,248,172,155,205,140,235,249,245,46,205,82,209,152,237,125,72,7,41,255,3,238,218,3,58,188,22,241,144,13,196,146,115,166,4,182,220,188,223,189,179,7,41,27,240,3,7,171,58,92,103,14,31,112,83,14,131,175,108,36,42,30,160,41,10,174,40,60,2,243,215,181,152,180,190,200,233,70,139,222,61,156,53,8,239,157,128,26,63,190,72,172,69,137,75,223,19,167,141,150,169,193,212,188,183,226,241,12,157,173,235,135,23,128,178,170,162,112,13,186,133,117,13,203,162,111,192,53,173,138,201,169,86,34,133,50,226,66,74,79,141,209,239,84,153,108,148,176,186,167,237,190,61,238,4,251,6,91,201,148,138,227,182,23,204,228,229,9,163,154,143,241,213,34,31,208,172,182,144,157,194,103,63,40,146,21,235,73,214,247,225,236,117,236,209,246,24,110,219,148,81,217,149,98,239,219,198,58,202,180,95,181,86,206,80,210,241,79,229,143,35,150,66,114,142,138,243,192,128,246,10,137,66,100,106,174,81,223,164,108,14,124,112,83,84,79,111,207,18,125,179,16,235,175,236,66,149,26,99,119,135,114,40,50,168,242,125,56,70,204,184,179,148,135,86,49,48,149,165,22,166,213,109,99,211,45,41,2,164,182,245,202,55,208,101,90,180,109,12,168,47,155,211,191,164,74,154,242,235,253,192,251,237,34,193,26,99,233,230,60,10,104,215,3,75,186,23,113,47,134,80,14,114,36,46,211,241,74,163,58,240,175,193,59,178,3,22,101,21,104,107,81,10,154,12,222,49,82,24,124,89,219,201,242,246,160,199,48,219,44,206,79,32,249,179,167,197,165,210,7,190,186,210,103,252,14,14,26,108,244,12,31,75,81,144,112,215,74,228,121,121,26,250,60,154,141,83,193,199,184,129,4,242,148,160,101,195,210,248,98,233,129,88,141,45,102,107,174,5,108,154,133,254,109,181,109,250,233,58,165,67,54,120,167,20,222,173,135,49,91,109,226,84,213,228,29,3,54,104,50,203,211,2,114,166,166,32,109,36,50,41,222,207,131,158,122,216,234,33,0,254,176,73,208,45,211,253,235,58,78,66,74,188,166,198,55,237,86,196,211,124,27,238,187,200,174,223,30,56,242,138,115,67,187,148,172,235,36,69,148,134,7,192,158,223,128,51,155,230,243,84,23,9,142,162,215,25,46,68,23,154,149,90,250,229,114,170,222,232,190,228,39,182,159,53,112,49,195,140,244,164,235,43,17,132,218,23,12,69,216,217,124,133,8,161,202,140,15,72,20,12,223,210,200,62,56,132,209,78,30,144,228,56,129,96,120,194,14,114,249,123,32,113,197,140,78,72,173,154,152,72,115,18,172,151,219,118,20,217,44,41,180,231,174,52,12,147,222,241,80,52,122,193,168,111,188,69,192,96,85,60,201,70,118,66,49,36,234,72,211,226,103,136,79,241,137,204,143,139,194,39,222,137,114,207,14,243,223,241,129,35,132,58,240,25,103,64,246,50,78,15,73,26,253,222,38,61,95,23,126,56,103,86,200,109,163,161,61,43,148,94,207,11,124,143,217,58,88,241,85,173,19,68,252,82,46,221,21,27,233,225,23,51,137,231,184,186,11,233,65,69,55,81,139,195,151,250,50,139,132,158,230,100,108,184,41,169,117,83,202,148,66,196,61,185,206,69,164,151,151,153,107,210,254,206,1,161,228,83,37,113,3,39,117,241,206,187,83,101,114,180,79,47,49,232,58,76,217,96,234,15,173,245,18,152,97,117,136,177,128,208,110,255,24,185,58,255,84,175,159,153,61,196,160,197,242,229,223,106,9,124,241,83,100,123,136,86,28,251,12,106,69,224,49,55,46,68,67,190,42,143,238,166,215,232,96,195,80,226,95,151,168,223,243,46,88,69,202,228,236,108,99,41,198,243,116,141,192,178,67,64,197,52,53,96,208,70,218,175,112,216,102,240,223,207,145,226,121,152,198,100,66,210,202,56,227,139,244,244,207,33,180,186,160,27,124,18,27,84,150,250,239,185,27,5,148,34,187,232,246,107,173,33,178,167,238,62,48,136,165,91,198,87,50,211,171,101,215,134,23,190,229,219,25,181,21,246,210,203,118,178,143,36,192,100,5,245,244,169,191,31,209,254,254,26,99,204,67,219,6,227,6,186,214,28,22,114,26,125,130,151,210,154,28,240,136,219,14,70,5,114,21,226,60,151,73,91,132,209,162,69,97,51,70,129,251,84,81,245,251,165,102,159,8,190,249,66,195,10,170,115,96,97,214,161,197,85,74,29,63,199,212,136,253,56,64,162,61,14,91,161,174,81,1,231,86,112,156,177,127,4,122,5,12,28,66,160,28,149,239,132,90,2,67,89,150,87,155,237,83,109,0,105,24,86,218,61,184,61,247,3,130,167,224,6,137,239,82,113,17,53,19,245,60,226,125,39,5,38,54,85,218,150,35,189,106,204,23,77,78,126,30,32,146,76,52,176,66,139,49,210,65,217,195,16,148,3,11,61,182,36,156,27,28,21,255,228,205,78,54,221,177,8,207,59,153,168,96,93,26,69,44,61,185,133,228,41,60,58,111,17,241,174,201,152,102,100,74,115,38,8,167,237,43,9,190,130,53,13,161,42,37,115,38,182,103,88,145,96,109,104,40,48,227,220,121,241,23,132,76,15,134,134,76,216,48}, {53,92,20,244,25,25,109,91,11,78,131,200,82,210,63,86,213,148,233,152,148,20,128,194,29,224,143,242,8,234,127,241,218,19,10,16,114,66,130,155,45,34,172,53,97,114,76,124,70,201,143,169,36,190,185,189,57,104,213,107,23,29,31,1,91,49,204,154,82,119,197,129,42,200,190,16,84,230,115,61,93,19,116,138,236,8,200,15,91,189,75,149,96,187,14,221,186,225,238,131,176,40,136,246,122,205,95,42,110,178,147,183,215,202,111,82,138,70,132,76,214,15,151,227,229,101,133,30,116,156,127,37,187,147,124,191,188,7,3,212,225,74,160,185,249,109,91,20,143,21,134,61,65,216,114,41,100,8,170,102,52,157,99,222,244,202,53,191,128,178,1,197,27,149,220,44,250,195,183,77,50,14,242,220,16,226,174,238,169,37,216,74,24,36,131,70,192,168,211,98,132,40,236,226,201,71,191,59,17,209,40,185,160,255,161,177,66,5,154,19,7,41,59,159,24,60,140,139,115,96,253,123,246,84,221,128,162,241,83,3,149,27,37,70,171,37,247,186,57,240,235,166,181,67,179,4,187,163,47,57,125,39,182,93,6,173,34,29,12,30,7,82,212,113,9,130,237,154,25,214,64,128,5,136,202,44,171,124,147,101,30,89,91,32,6,225,167,158,158,201,216,201,19,130,68,134,189,212,85,154,9,222,107,179,230,8,118,168,240,207,112,94,200,79,143,98,165,126,83,104,194,232,109,132,221,31,148,89,20,203,182,192,78,53,43,184,212,197,209,242,126,98,159,23,103,173,135,52,222,59,203,69,195,44,190,14,96,243,133,207,113,156,113,53,104,178,170,93,96,38,94,61,217,52,239,163,195,239,224,162,191,147,230,65,95,246,124,149,235,199,204,207,123,64,33,155,36,162,12,11,9,177,168,151,160,100,86,152,241,20,72,123,242,128,48,204,175,69,194,73,78,23,234,129,122,122,139,166,216,192,109,4,162,247,72,222,0,128,97,8,154,65,44,182,202,179,150,246,194,99,148,87,113,70,4,112,1,7,84,33,117,172,92,206,64,161,138,251,244,92,28,175,24,181,51,229,64,232,173,196,107,173,198,183,210,203,57,117,203,182,63,110,210,215,173,188,226,98,48,169,49,168,58,146,232,250,6,114,192,146,23,96,100,234,6,26,113,201,245,175,87,233,174,106,57,224,43,6,252,63,151,38,224,180,207,131,150,111,26,110,111,99,138,216,32,227,26,174,179,118,132,101,187,170,99,8,177,73,24,198,97,204,121,187,66,207,136,110,3,41,53,64,116,155,68,233,190,126,51,129,126,77,113,71,69,196,83,171,238,99,63,173,226,55,61,233,7,123,58,78,156,123,44,29,120,18,55,205,60,170,28,53,220,69,247,136,246,203,51,255,107,230,234,42,106,200,2,141,200,81,179,59,48,165,195,244,10,190,250,65,158,134,157,153,147,49,21,105,205,110,50,193,38,131,82,86,31,29,140,185,153,60,203,52,203,169,107,103,21,52,193,69,190,61,175,72,7,170,173,235,169,239,234,184,89,220,93,250,79,110,177,122,157,116,244,188,158,209,219,85,73,2,114,249,98,137,185,217,116,148,111,0,20,194,34,129,131,169,46,200,24,23,181,81,23,4,248,33,11,200,149,49,250,135,9,237,114,255,248,201,131,157,52,169,244,214,18,45,84,135,119,185,63,69,195,109,108,243,11,86,182,130,54,42,47,144,209,117,107,244,241,35,185,181,229,204,132,174,204,221,60,130,155,62,218,160,146,130,212,236,169,106,235,0,121,32,62,155,68,71,235,215,28,222,106,209,16,82,33,30,65,40,89,25,119,130,26,81,26,91,214,94,192,200,116,151,45,242,218,191,198,173,193,27,31,66,182,247,113,78,44,140,224,38,143,12,186,163,157,174,88,119,246,30,18,198,186,204,177,67,53,132,21,243,229,29,249,136,248,162,174,194,136,179,197,189,62,102,24,184,20,231,100,29,243,165,8,199,233,144,44,145,179,118,64,139,38,136,24,146,62,201,238,170,205,185,222,158,120,203,23,138,236,169,226,25,87,35,13,11,199,233,227,47,244,111,204,226,218,37,106,132,54,52,161,182,240,83,154,49,177,191,33,29,174,82,175,40,24,200,210,65,85,202,116,150,42,10,76,248,230,145,146,161,209,132,113,152,108,217,33,2,181,206,251,41,232,172,128,106,21,150,195,33,49,139,186,4,100,30,165,240,52,165,36,31,135,237,83,88,52,242,169,136,88,113,175,174,212,138,168,57,70,72,137,187,225,153,54,206,29,115,174,253,42,0,57,247,22,245,232,186,243,155,77,98,20,166,14,29,135,209,151,4,191,151,40,182,54,110,153,111,95,218,45,25,90,191,19,210,121,33,86,105,210,16,73,44,35,151,36,189,102,223,203,203,253,17,54,57,27,34,255,208,163,19,138,132,25,55,238,103,153,42,73,22,229,189,237,116,223,81,243,52,231,175,45,102,249,136,222,155,207,164,92,252,232,217,3,30,48,204,37,57,134,3,33,247,115,101,110,73,221,14,219,134,192,210,157,169,230,212,222,213,60,93,169,169,231,185,47,61,133,178,150,64,226,239,222,124,211,73,98,182,116,64,105,12,227,93,38,153,145,77,143,24,230,122,108,153,103,236,101,137,88,86,189,190,8,0,191,167,129,12,34,50,86,253,19,114,208,236,44,17,3,239,241,135,204,243,45,2,198,135,118,177,148,238,217,31,73,68,218,60,9,76,250,129,56,6,156,85,203,143,140,250,141,12,204,45,32,207,193,39,165,161,37,162,253,246,166,236,232,7,102,109,173,213,251,49,68,225,141,106,65,38,14,43,52,118,111,22,241,157,160,191,48,219,32,186,70,243,244,67,140,26,174,6,143,148,47,16,254,75,220,211,58,32,230,210,116,4,96,87,82,7,77,96,195,190,16,75}, {65,72,247,17,144,226,202,145,138,142,210,75,239,180,143,240,63,151,57,31,206,85,168,247,141,166,158,95,18,192,233,90,65,96,231,139,91,11,78,185,236,250,91,22,134,147,190,118,88,90,185,223,50,12,92,209,249,19,45,251,14,227,176,64,242,188,185,156,34,116,81,99,48,239,168,61,94,42,150,103,103,165,249,214,67,6,73,197,232,119,185,62,234,23,32,209,82,4,114,53,75,138,101,34,181,158,154,106,110,173,139,233,96,236,18,164,63,215,144,36,142,9,79,175,243,60,195,154,64,159,61,144,170,218,134,20,82,96,154,60,133,116,174,142,17,43,232,166,167,173,132,157,237,161,188,124,227,118,118,71,227,141,46,150,132,201,211,91,167,31,134,12,22,82,16,184,237,238,225,12,97,12,138,78,30,44,172,81,74,158,197,185,131,128,183,82,30,168,141,96,179,87,30,47,216,144,44,115,26,236,174,139,54,243,136,41,228,58,179,52,44,179,120,219,152,62,186,133,63,69,228,1,107,130,145,92,178,1,209,43,84,112,144,184,125,180,25,23,149,123,88,37,61,183,160,82,238,85,54,146,227,233,61,205,250,119,204,199,60,151,121,103,155,66,107,71,139,227,135,83,105,111,49,9,195,72,127,144,159,181,72,190,145,91,66,103,204,112,50,145,5,201,114,178,220,253,177,3,98,38,38,81,251,125,182,64,133,176,136,144,22,197,205,66,213,240,58,131,31,228,223,237,48,47,254,24,94,189,184,198,197,179,45,121,233,224,158,42,22,69,202,95,235,127,137,222,152,34,218,88,24,68,244,201,246,7,246,1,165,245,190,11,10,110,122,86,114,41,192,88,89,37,19,55,184,114,123,150,235,151,143,150,193,59,73,222,216,135,165,96,33,89,243,179,88,224,18,224,78,207,25,246,61,86,161,73,103,185,121,62,55,61,19,229,198,154,139,26,13,146,94,1,215,130,138,220,242,2,125,253,152,72,69,151,134,60,75,59,143,35,214,233,235,183,175,234,194,65,8,254,206,6,249,15,51,163,213,118,215,149,195,34,18,35,30,110,6,252,92,136,113,217,184,69,36,174,193,199,141,103,108,175,102,128,45,22,190,13,54,206,56,157,37,106,84,253,42,25,162,127,114,231,18,255,224,180,64,195,157,130,148,196,178,85,82,77,211,84,149,220,74,233,37,194,174,12,248,86,126,16,78,106,185,139,2,133,12,44,186,108,180,211,205,195,183,21,203,99,173,176,81,33,91,77,39,11,151,192,80,2,54,70,174,252,190,74,46,73,58,112,126,59,8,219,27,84,49,91,23,176,72,238,26,81,204,147,234,159,135,111,120,46,199,48,250,50,0,174,193,39,7,203,69,40,145,107,49,90,46,173,70,120,169,43,234,185,146,109,22,105,119,249,255,239,236,242,7,79,24,184,126,247,245,143,44,160,154,116,9,21,251,212,55,96,194,60,83,140,253,240,243,58,127,64,56,32,208,5,250,93,29,194,133,137,68,28,226,82,2,204,175,214,111,11,163,244,11,144,24,186,140,169,20,46,199,167,22,42,92,50,156,30,67,1,125,218,81,19,68,239,211,178,105,195,160,39,222,230,56,46,25,145,88,234,98,94,242,240,225,13,131,93,24,137,137,177,223,142,46,216,123,85,123,118,35,82,221,126,78,12,238,75,174,176,86,86,86,198,147,12,33,48,221,170,183,66,44,16,190,10,115,141,9,160,249,4,76,79,207,1,85,105,67,132,66,237,149,218,96,253,7,35,45,115,48,243,158,124,85,33,113,230,16,54,218,148,47,173,213,80,255,247,9,185,206,175,136,141,6,153,152,255,163,250,248,190,164,94,133,76,95,50,154,210,214,170,6,248,215,66,58,156,129,136,15,141,255,118,231,88,190,116,169,16,31,152,116,162,114,122,250,97,234,227,71,195,95,121,210,101,17,29,72,94,226,106,17,237,118,244,182,248,174,110,11,102,156,14,208,24,196,117,217,139,27,55,218,13,209,182,139,104,81,181,139,233,179,156,96,104,3,207,18,136,1,166,241,109,97,97,4,170,196,27,227,46,83,148,251,26,23,123,207,211,214,145,139,252,223,41,74,126,28,87,249,36,199,98,50,132,193,155,30,9,73,78,207,131,192,9,159,102,86,145,243,45,66,138,164,174,97,107,210,115,67,12,201,197,27,97,34,163,78,77,152,82,98,246,130,195,228,244,245,79,187,152,201,183,165,169,78,242,22,199,11,244,250,101,74,95,99,103,103,156,161,58,233,12,185,254,13,250,126,3,205,7,173,243,150,205,194,89,21,19,72,239,72,92,83,81,183,185,234,25,199,93,80,68,151,151,223,215,45,40,176,180,250,86,206,25,34,77,85,107,223,55,225,20,161,8,231,54,104,120,124,238,80,140,252,12,4,201,179,211,32,107,157,93,202,239,92,10,29,214,173,4,214,116,161,67,160,87,82,242,54,82,126,193,61,155,107,23,62,128,208,62,20,118,54,173,184,186,124,90,15,226,100,187,165,161,179,46,65,22,69,196,26,194,191,159,69,155,191,95,248,95,107,217,30,112,216,45,14,10,121,176,242,219,238,2,96,173,232,91,10,201,183,222,83,8,7,16,62,252,35,209,161,63,217,238,123,31,98,183,204,85,164,55,66,96,84,175,217,199,218,82,29,91,252,115,63,114,38,189,244,39,37,163,189,158,82,56,251,178,201,104,226,112,74,159,64,231,129,131,39,161,82,58,126,54,194,106,113,53,51,209,40,96,46,173,54,60,55,69,208,16,111,27,200,221,85,233,233,8,13,69,192,3,127,130,39,57,192,255,138,67,255,208,47,243,3,195,188,208,183,244,219,7,58,122,154,215,236,178,122,185,241,125,209,154,91,48,113,205,180,187,71,123,217,91,100,139,53,7,244,252,26,160,111,42,40,125,146,110,9,200,108,99,97,11,147,63}, } ; static const int16_t precomputed_encode_857x5167_x[precomputed_encode_857x5167_NUM][crypto_encode_ITEMS] = { {21453,-14476,-12694,-15679,16221,-1298,31433,8389,3128,19151,-24427,-18455,17786,32133,-17823,-6351,3518,26262,19392,18540,23060,5248,19817,-16557,-11492,-8206,2416,-12738,-24427,8329,12202,-15132,-9878,28079,-4386,19115,9517,21380,24865,-28358,3789,3756,25222,-231,-13206,-15736,-26399,-23026,-7132,4358,-31303,27617,-5802,12609,-20067,-7547,22376,-32542,-32605,-27987,-32533,26144,17342,23101,1988,14670,-14814,-17923,-14451,17502,-12772,29152,-7827,30139,-23365,27406,32630,666,22524,5464,30903,-2651,-13923,-32061,25768,5567,-6331,-9172,14419,5233,-1707,24224,17269,1788,-695,-25997,-26951,-6024,19214,28468,-10632,-7165,3893,-21909,-21632,-28160,25885,3991,-22696,-3983,-15399,10348,-27326,2539,6838,-1733,17557,-18527,-28474,-11937,-16285,8715,23602,23240,-15442,-27486,16321,-1121,-13726,3587,-9583,18729,3119,27713,31471,-6100,-1737,13742,20584,2489,-26432,-15020,-31806,-19421,-398,-15150,-8973,-28081,1043,-21917,23520,9824,-23059,4964,-30077,28769,29433,11838,-23425,10119,28182,25391,12295,9710,23202,-16452,26861,-12100,27006,-21212,-3421,-937,-24743,20176,-11182,14606,-31915,781,5524,-17753,-1179,30447,-9572,11135,-2412,29212,-5456,31944,-28828,24625,-11544,24475,5267,32146,-7446,4411,-30859,5312,16503,23157,10324,-13040,32462,6948,-13306,32078,21937,-9928,213,-9701,5253,-8373,32720,-24220,-15922,7608,9359,-27691,-22652,29522,-10958,-19094,-14026,-29717,-21487,19688,-12127,21261,2275,-27059,-24846,-13296,31120,473,20879,9262,12424,3305,28159,-6920,12387,-26154,-13848,2536,14235,-9446,27253,-11468,-28736,-27721,30119,25460,-32033,-14593,564,-12082,-20992,14851,-32574,31034,24184,-20496,541,2439,-22114,-31445,20058,10892,4212,-24422,-10086,-24335,-19445,3490,-28987,7033,-11315,17368,-18370,4338,-22307,-20852,5611,6486,23390,-8236,18658,21054,-25362,-20609,2085,21345,17901,-2935,-7822,-3133,20464,32136,-1160,26154,17311,-18127,8004,2476,28688,-31867,-1362,-14119,22953,-16256,28067,24391,22025,-18958,11624,-29676,-10131,-29084,4460,20845,3106,30831,15850,-30132,-10788,13249,-8835,-5739,-20893,4274,15823,25810,21359,7102,26340,-15138,8830,2270,-29986,-1905,-1021,6941,-3652,12645,-17665,5560,-2969,-13803,-23752,18296,26461,15371,-12099,-14446,27040,1154,-20200,5231,-13847,18984,14101,-11736,-14667,13237,-5315,-24066,-7033,-29008,5391,13500,-652,-4901,-27028,-30181,-14572,5887,-29340,-1547,-11408,364,5290,-29600,-9522,-24492,28035,-6912,10699,-16995,23110,-3880,5354,32384,-16585,-10558,-120,31987,26554,-32113,797,-18692,-17166,10995,21946,-18850,24434,-5548,-21276,31398,-20591,-944,-21225,-18689,-14321,3507,15280,-2576,18930,-17673,13288,-21546,-29475,8348,-31098,27878,32131,5250,29273,7296,1214,10686,-5145,18224,9387,-10287,7251,32642,-4759,-6144,-31242,9864,2473,-8340,28841,23805,-4306,-29478,19513,19836,29771,8497,31961,21020,-8808,16959,14570,1259,-30464,-24010,1618,26851,31539,-18044,1984,1586,-32668,892,-29215,-27236,-13658,-27588,-31673,-19006,9997,2316,-22003,671,4549,16771,12858,-3468,25933,-6216,-3344,17503,2713,-6343,-24072,-12138,1065,31832,14994,-13222,5261,-3716,17018,20805,-8831,29624,-30337,-9822,-32442,-12407,-21704,14651,29236,5547,-30913,-27234,-26329,-2357,-16507,-20078,-17549,2910,28392,-11192,23137,22201,2656,25144,-5537,-24884,-9888,1216,-3404,883,8299,9547,12269,-1852,-7906,-14431,32307,-4208,-7585,2830,18884,29520,25204,-21105,32735,-3082,-8203,31011,-6054,28332,23837,-13266,-30181,20292,17933,16096,-16589,-28526,-10445,26737,-3846,11844,-26973,5835,11279,-24879,-13947,24238,-29339,15226,-3906,-12119,8155,12259,6705,3864,-7344,-15429,14637,14438,-25978,-9779,14001,29903,-9116,18532,30844,5109,-514,90,12963,-4980,-11893,-31186,-2243,-27025,25141,2959,20306,15454,7323,14217,-11221,-8507,19933,-19528,17053,21115,-28889,21524,24485,-9966,17205,-23936,-2291,21619,23255,-8746,27872,29998,23537,27154,-9302,13387,25227,-5573,-1495,29721,-281,15059,-27024,-19455,23389,13877,28473,26476,24065,6578,29284,20808,-2282,13302,-5902,-18888,-20890,-31326,-16714,-10119,24491,26176,-20827,-20092,17362,-32244,16042,-29705,-19723,-1472,-11044,3256,11284,-3968,-27761,13383,-6085,-15415,-8734,30781,22979,-21040,18445,10398,-5468,-31696,29272,27525,809,-10828,30653,-25086,-24419,412,-16200,6081,9068,-6428,-3860,-24009,-7936,3571,-6975,-16355,4828,22429,5058,-8525,24109,16351,-23749,-5776,-19998,-7683,-7372,-30678,-25454,-820,-19591,2400,-30506,-12798,24921,1716,-32684,15582,20310,2172,-21692,-3967,-1109,7191,12438,474,-11417,-17150,-9111,-13153,5253,-28722,-22469,137,-16842,-20013,-19529,20220,31318,-27505,-13510,-27415,30240,-1346,-19966,8985,-24432,-5796,23362,-16544,-9621,-22573,31122,12047,-28037,893,5059,-27277,-30563,-6673,-3249,-3679,27584,-16115,-10929,-18649,21824,26956,-9461,-8048,11036,-19985,-20868,4669,16002,-21028,-18203,-14290,-10444,10605,23376,-6952,15852,22042,10150,13197,3961,-7478,28134,-13303,-24814,-1756,-4758,18564,-14443,12648,-9020,-18249,-2736,30062,3678,14943,7670,-13403,29999,-25703,-7190,13855,-5907,14895,11944,8392,-19975,26350,-3050,-31124,1899,23290,-22492,-10403,-3095,11166,3154,-1863,26192,-10203,2197,-23263,25883,21332,-994,-3356,24562,21585,18258,-26690,31988,7341,-18652,-3533,-5201,-15754,13669,21440,19786,-25022,6334,-29492,276,-14097,-872,-27443,29378,24557,12046,26972,31022,-24535,27016,-10309,-21139,-23477,-3346,5611,-9657}, {-19414,21485,-12507,-20432,533,10689,-8401,-12495,31373,26131,-27183,-3118,-23253,25120,-27175,17995,5405,32524,14626,13655,-11229,-22543,23891,629,-30095,-18131,-15450,-29679,-7391,-24729,-8737,-31258,-31558,-10912,20769,26703,10291,-25586,19776,-26779,-13780,-32347,-21274,-3652,3798,-17815,-8002,11820,-3090,-2026,30236,30608,-25268,20266,19521,-4452,-2229,-12760,12471,-27656,10837,17024,-10669,8361,15827,-6210,-14124,4026,-19190,-2026,24052,11080,9349,28811,2373,12098,13625,20491,12773,15968,-16316,-24477,-22272,25479,29860,3037,2637,-17510,21582,27127,-1730,-5806,-13467,-10762,30288,1746,-22502,-28577,13891,-11491,5744,-31477,-13107,-26447,18468,-2366,-19959,-11588,8823,18724,-15090,-32458,-1561,-31145,9113,29976,-12254,26559,13089,-587,-18616,28635,1462,-8149,22231,11154,-30175,-5532,-23096,21911,-10134,-17859,11708,20356,17828,-13349,5528,-19499,-20681,-10979,21010,-2648,-10739,28055,-29832,28856,-15756,-24576,-14067,-16182,4996,-2864,-2253,25847,8728,-7367,-19590,-29849,-26010,765,14166,21462,-16483,-25082,21270,-1172,-7294,-1925,-1005,-17148,-21409,-5220,512,29245,-2299,9113,-27794,-2732,-4533,8971,4774,32044,-17386,-7714,26656,16398,-29877,3716,-31473,279,23965,-7937,-7526,-9935,-22717,4744,-6808,-117,-20193,17946,469,-9130,15826,-17406,-5574,14683,-21396,10804,7954,-7027,-22187,15674,-24855,-8890,11632,30659,12742,-547,-12536,12100,-26929,-16408,-12155,17060,-10157,-17882,-13641,-2980,20399,872,15364,-13822,4645,-8093,-11921,-15598,29732,-8513,-18752,-15469,-10360,-8106,1278,8238,3316,6631,-31056,4743,1521,-261,20722,27437,1002,10712,21716,24762,-31276,-5145,-29258,2151,23170,-4631,8323,7951,22902,-8116,23707,5022,3818,6509,15490,-16786,13367,7857,-7578,-23715,21121,6039,-10870,10468,17490,26102,8255,-6006,17296,-4691,2164,-11739,18759,29986,-27795,-22722,1479,21115,7813,-20683,-19597,-30415,18951,-4456,-28257,30413,9343,27044,-32320,-10470,28361,29880,29480,-4461,22335,6750,-791,-32175,65,-29738,-3512,-24169,24469,-17328,-25789,29284,176,-27878,27088,-31882,-5269,924,-20094,-14660,5889,12849,-15230,31761,-26972,-29473,-7829,24600,23057,12527,30574,-31184,-31079,4630,-15054,-5790,31470,-4108,-25537,-24643,21586,-26440,-204,-20285,29983,28123,10106,-25860,-31110,-10694,-31605,-30249,-19322,-27721,-14770,24524,2518,-14845,30959,15636,-20540,7336,-18413,-26002,12758,22099,-4018,15719,4381,11573,-12722,-14314,1299,-27130,-5939,-8153,-2076,6076,-14528,-1220,-11726,-14996,4448,-15232,17963,30198,30523,-12843,4574,28657,29635,25152,14421,-22084,4708,-24816,-5507,88,-17672,19265,-13200,-19861,-18140,28608,29590,-14662,-4458,16647,19248,13597,-31127,-16123,14713,29439,-10393,31756,-8984,-4104,12613,-14808,-16943,-27296,4433,-13858,-4398,22908,-11644,25258,-4038,-27325,-24681,20188,-5543,7922,32055,16344,-19250,4974,-5096,13334,2552,-12806,11744,-24049,20246,4179,23535,28191,23620,-4253,-21862,-13896,3440,-9590,-26923,528,-19330,15603,-24000,8102,18617,17261,-1991,32472,-29570,24790,-27385,-4194,-25040,22791,-17856,-22406,14648,-22031,-84,-31151,2270,-29856,-20316,9108,-27547,-22686,8448,9371,-624,32430,16242,-26172,18093,-27077,-20312,-17092,6774,-21704,954,-3266,24996,-31128,-13172,29633,-29033,10663,-27686,-4125,22719,22075,-15715,4660,5018,-31760,18691,17257,-25431,10438,-12028,3069,-16756,-1429,17474,-21088,-9831,26361,32288,21789,-23227,-5875,-17461,7570,9146,-28142,2741,-2728,14470,23931,7460,-14017,-21445,24865,-31847,-28421,-12137,-2414,3752,-21858,-24104,-20594,-10342,-9225,23847,14543,-22110,15230,17217,31396,17798,31381,-32515,14560,-26432,-19716,7285,-23023,-658,-5685,-24884,-7564,27636,-31703,-10243,21339,11422,3016,563,20211,-10734,-31266,-26208,15383,-2160,-31679,-28426,-12760,-13362,7270,-30960,-31217,-12830,-21772,-11316,8803,5712,-4093,-1554,14193,-32358,-15184,21134,476,21205,17689,20286,25928,30789,-22232,-32404,5240,-20289,18467,5037,-29217,-279,4769,-9724,16997,6618,24402,3565,-23741,565,28066,-29416,31892,28167,31148,10637,-30184,29613,32199,1119,-10817,-16371,-17122,31605,22002,10693,29183,-14769,3163,-22132,-17821,-9856,28878,-20837,562,-663,15717,-23408,-21914,-16022,-1696,23024,-10389,-25691,14939,-8074,29054,-993,11675,31589,-16689,32110,15417,28988,-4501,-11747,-27375,-1709,-28465,-12870,27055,4069,13281,-26614,12243,9685,-2080,11407,12070,-15336,-4749,-14144,17983,-23036,29768,-7394,17478,1723,-13617,-19048,-20682,-19095,13195,32115,-25841,-20369,-19295,10607,20735,-7871,-23031,-7883,12565,-29397,22121,-13176,5254,-8748,-28071,-14311,-26248,16442,26526,-13767,22129,-12564,-8446,20138,-30958,31410,-17424,-20090,-6897,3511,-28223,-13694,-11863,-4620,-20949,25979,1444,8992,-20868,23412,-23711,-12606,-32431,8687,26907,-12246,-4247,-14833,1776,-6518,-7291,29509,-5851,18241,-20667,-20242,20856,8631,1717,-2322,1018,-28396,-16548,4401,-17809,10100,-8324,-29706,-3259,30742,-14470,2687,-1788,-11215,26938,-4400,-3097,5921,4354,29780,-7455,9361,4080,-13571,-20214,-27416,-21858,17132,-9805,324,7956,5022,5372,-25154,-6193,22531,19177,-31410,-27968,-5818,-4087,27392,-791,-9340,11740,-21371,-24753,-13700,19503,-1262,3825,-30723,-7038,4322,-29292,18816,-27723,2268,1549,29808,13222,-9946,-25227,32433,-16620,27746,19214,25066,-6296,-7781,29870,12868,-23255,-12363,740,-19569,-10516,-24238,-17717,-26870,-13920,-8080,16935,181,-12864,16926,-2675,-2235,-20174,-23587,29123,13005,1010,-24975}, {-16766,-14067,-29999,637,16522,6385,-28627,26640,-10267,-31734,-27664,2093,-13365,-19335,-23168,1985,-16046,11325,31961,8256,-26060,-32016,-8600,28344,12042,13229,23467,-26196,29114,-28062,-28262,-27781,-1374,9112,-11143,19343,-15799,-19849,-27876,1482,-8161,29858,23253,-16087,9579,-10694,15382,-14598,-14166,17780,24757,19350,21563,13495,13313,-25832,-9156,10979,-8438,-29323,-26743,2338,-8511,13650,-18539,-19862,-23262,26566,14629,-8269,-16950,19781,32500,19962,-26581,1069,-11450,-19550,14761,21414,16520,-23669,-31081,22787,17399,-5269,-3631,18441,2719,19796,31950,-31133,23239,19719,-6326,-12084,-7697,-13707,-27312,-25326,-3795,-30659,8521,-29887,-7800,-25602,-15903,-5838,7984,31346,-18471,-5450,18459,15700,3583,1504,-7850,-13220,15431,6819,-12472,-478,-25909,1092,28922,-16555,-6872,23427,-18725,22535,-14883,18254,26270,-19517,17330,7078,-24330,21866,30107,13672,-21292,9683,19017,5289,-1120,-22713,-27380,11825,16425,-30518,4823,-16175,-4925,22066,1113,-3961,32151,-10989,-3138,-27612,-9207,-22763,24385,32718,5951,-1877,-26729,-3054,18768,15648,-21050,-25083,-28215,670,-14175,-7931,13309,-6429,-18978,14791,-3224,-21338,-7462,30904,2044,3452,15861,5863,29976,9871,-16568,2240,10849,14409,-5399,-2858,24099,-12733,12389,-11710,5388,15704,6280,-468,18707,-28550,22105,14538,1769,-10840,28531,17067,-4487,19417,16350,-7683,23631,25037,-21070,-14872,-25607,-9822,-28664,20365,-32702,15706,20510,6466,-27759,-8690,-11469,-346,28544,-6726,-29739,200,-28489,-11435,22071,16628,9566,-23607,15037,-10136,-25834,-2101,-23872,25033,-25623,-25600,-8687,19350,-12356,-18521,-3831,-22074,30920,16333,-13766,-24213,-24777,-5142,20178,-7764,-1243,22079,219,-30023,24667,-15505,-24404,15845,29304,692,-31611,21772,-11604,-21025,25596,-317,-23568,5120,21597,-7128,-5600,-21818,-6277,-28384,-26411,-1806,-5916,8758,21696,14245,12364,18870,-17243,-19730,-1879,8043,8035,32235,-28633,17700,24663,-31757,21955,3958,9735,-10654,-15155,28372,21003,-29712,27286,-19968,17711,-19527,23588,-14012,-20202,-28906,-27224,-12496,6444,-17315,19532,26439,-16655,-5746,-18556,-17294,-29417,6618,-4031,18036,-21313,10635,15489,-29139,-541,3565,-16265,-14551,-17135,-4778,26688,-24068,-16853,3466,-2816,29746,13284,-1659,-26475,26910,-23721,21792,-7428,4622,16426,3711,-20091,4722,-4729,10441,9597,-24611,-17876,13383,-2630,23369,-7246,14017,15285,16397,28490,20208,-26797,17619,32726,8264,22399,24342,27257,-11846,-12090,18403,3492,-3372,20218,-7013,30274,16620,25872,31793,-13591,-11731,10467,-2360,16538,23742,19364,1833,-24398,15633,20689,-30867,22931,12839,13690,9713,4702,-13786,24657,31025,5261,24791,-1029,-13766,-32189,25691,-13460,682,28064,-6720,-32004,29709,32764,8810,25422,23376,2572,-10286,-23268,12882,-30768,11909,24016,13000,-17190,9517,26918,15764,-18336,1512,9063,-12025,-29040,-24241,-10371,18115,1610,-5362,-29881,26429,16064,-16038,-12180,15834,-4357,1287,394,9241,13657,26005,25882,22297,-10153,15843,29449,21924,-24260,-13264,-21007,-17871,8457,12191,-8579,-28791,-18330,6266,5688,-14736,1285,20610,-7705,-11449,-4714,30953,-13427,19922,18540,27926,15802,-23368,-21164,-21637,-16164,6545,-639,-11022,26223,5213,-25643,19960,-20384,2670,-9854,-18174,15330,-28367,-19623,-1729,-32509,-26245,-26726,1188,-15717,-26821,-2293,-10236,-1760,-21172,22453,-32561,18204,3083,-7331,28216,32599,1360,9319,185,19340,20787,-17537,2148,-2380,-8056,16583,-15744,-25000,5960,-15950,11971,15169,31243,-31338,23052,-30627,30430,-15067,-2053,-25968,23488,-11458,16180,6374,-19949,-18853,-3209,-17809,29892,29977,-25562,3216,-20737,-19826,4070,672,9311,-26611,-29788,-17310,21104,-3641,-7841,14255,23100,7759,-23478,6732,-12632,-26582,-18602,-32099,8191,170,23,-28735,9507,31176,-8969,5093,-4880,-20049,-3348,-21190,-3364,4502,-20745,25199,23885,-8623,31780,-23164,-30147,-25204,26626,-163,5185,-26649,-29669,-19390,18682,-30174,10059,-6793,-23397,-15970,-29134,-1191,9533,31278,1495,-6487,17043,-23673,-14492,-14193,-21452,2958,8884,1590,16220,4759,12757,-467,12197,1773,26474,20149,709,447,-10356,-13845,16993,27335,18317,-18697,-27303,16155,25198,19067,23480,-24116,30039,26430,23025,-26721,9005,1737,-30589,-17258,22100,-25398,-4597,3416,-2724,16317,-716,2877,9506,-31900,-17767,-28910,24903,-19139,20472,17932,11435,3314,23620,-19453,-8604,-29641,-30080,-16572,-1481,22271,-19258,-18715,27483,18723,-23558,-26068,-5905,3546,-22549,16646,-26987,-5762,-9375,-30245,-32121,23017,29867,-11762,-5101,15683,-29910,6415,5469,9492,9826,29224,8079,-17818,7330,-15211,-30570,-1630,10110,-27275,10803,-29647,18590,6240,29410,1867,8211,-16691,26856,-31969,18392,-25209,30895,-8919,-24562,23695,-17622,14638,24132,-8964,-11309,29008,8398,8094,-24042,-11297,-7444,4674,24830,-25615,7357,-11528,-426,-3044,-30312,-15709,-13124,27499,6588,-28032,28797,9738,-14962,11306,-8641,8414,23800,4320,-10278,21753,15354,-8993,16126,-3529,16220,-28746,12549,15892,-30789,21970,3501,-11113,-12301,6222,23602,-10977,-19517,-21038,-7209,21709,22483,-27345,6237,-28807,20965,32272,-16121,29992,26621,-25379,-3468,-18292,-24258,-27699,10889,-32263,20990,20311,-17765,724,26266,30774,-30058,-15628,4787,23141,-17356,11441,15144,-16659,24550,-15523,5411,11944,894,27941,20335,24358,18134,-26569,7075,438,-17015,26322,23752,-19857,-30551,28242,31249,-822,30987,26487,-32703,11632,12575,8451,14199,-18460,1300,-23679,-16990,-19313}, {9341,17100,-1240,11953,29988,8612,15419,11249,18991,-25883,-7241,17189,20841,13482,-420,-9075,-24503,19514,-30936,5903,-6535,28427,-31136,-1912,-5614,-827,-21963,16695,-12,-31854,9693,19460,14209,-15728,-2416,-29015,2616,-28515,30852,-22874,9310,2082,8042,-29137,16768,3626,-24546,-25936,17051,11043,-8124,14571,-8048,15182,8454,-3878,-23018,16349,9886,23793,-11181,16005,-2081,-15793,-2852,-6886,1827,20378,-14873,-18683,-17523,32460,8240,-20400,-16929,-6953,5365,24887,1835,-5163,3336,4641,-4875,20620,-1746,32075,-25462,20417,15804,12516,15578,-8031,26006,-22212,-25840,9792,686,10988,28734,-5028,-15216,-2171,9801,8692,23641,28596,-23197,17609,-8038,22204,-23622,-27313,-28946,-23938,25435,24905,7351,-3256,-14316,-12396,29951,-8975,-29874,24095,-22003,17226,-16299,10818,-12338,20606,13021,-28688,23210,-12464,-5438,23756,-31095,27351,-2354,22340,22714,28277,-11559,2699,25334,25381,15064,4160,1415,-32464,-23598,-1474,4847,19122,-22385,-5709,23154,24751,31489,-17429,30512,-24563,-14172,13798,29768,13012,-8380,13553,-13003,-642,14079,-10887,-21109,-15947,-32004,-7556,-25594,-18919,-30704,17999,-21118,21409,13923,-2855,5531,-9923,-19527,31949,3279,-2107,7379,31486,-30253,26528,-13286,4675,19082,25084,23044,-26089,4742,18611,9801,19851,10798,-31034,2204,22976,-24224,-12362,-20907,27719,24261,-5969,-18367,-14919,-14175,-13955,1725,-31430,-22246,30686,-904,24656,-15751,14945,-10020,13010,-18936,-9527,5708,-200,8143,-15500,19782,-27915,27203,-4079,-12200,10279,27192,-18444,-4475,21557,30614,-5095,13787,19570,-12737,-15398,23199,-8985,20711,-25894,-20264,28680,27714,6500,14767,-15751,21383,7092,-27190,-9395,32259,-5111,13206,29434,15649,-20187,-31453,24282,23540,-20903,23661,11954,10386,-8025,-15048,-28879,-20364,-28309,-26507,12116,-6946,20347,8965,-22282,10214,2535,10846,-25210,14505,22760,30821,-8701,-21641,14603,7197,21835,11817,-16588,-12916,-28342,-30685,8679,25150,20813,10006,5572,4919,20881,16483,-29384,31735,29633,-19761,-32390,13481,-6495,-19212,16078,-2738,-30975,30378,-16875,20297,-24273,-7452,-11259,-29084,2501,-29781,-15909,6120,15386,21036,-32578,-8754,-10106,-19808,13883,-24563,-8144,21128,-24129,6759,27081,12155,3493,-24011,13515,-31798,24575,-1970,16133,-28372,-604,26164,-20598,23980,-1884,-15945,8867,6420,7182,29599,9641,9992,-13757,16439,16249,11798,-4708,-1365,31153,21589,-29757,27895,30935,-6902,-719,4708,-6447,22064,29000,20666,-22433,-24434,-17021,10769,-6862,-5729,23758,31225,-29696,-15710,-28166,-5253,-32698,5944,-9033,7786,31511,-21626,-14050,26511,-10435,20057,12139,-8030,10377,19359,-16110,21822,-32419,19335,-22672,13440,-15961,23934,-10265,18755,11392,-5876,-26442,-13289,-22756,-5426,22849,-5553,-23951,-21711,-9590,-5012,-27758,5643,15385,20047,-20094,-5782,386,-32009,-18846,14617,7795,8116,-9111,12735,-18816,-21809,-23559,30719,-10460,-19725,-26540,-28423,17367,3566,-30634,28932,-24154,-14085,-11598,6596,7697,-6882,-24503,-13397,24804,29300,-29391,-31523,-10709,21904,26146,23519,27865,-3430,2862,-16998,-12247,-24039,27361,-26001,-26453,23977,2232,-21434,-25671,27389,-11503,27048,20210,8464,27587,19376,-2910,15386,-5132,23502,-6138,19928,31635,18958,28906,3591,-6499,26713,9559,-8428,28498,-4251,17971,-19186,28190,21289,-20503,874,8077,-27099,2321,4657,5791,5823,9773,-12046,-7105,2827,-3610,-23269,-8367,-28302,-23027,-31279,-31229,824,1936,20816,-24190,22271,-26063,16575,-31882,-5329,-22803,27502,27410,-11466,-18164,-20474,-6910,3298,23893,-17367,29986,1726,5843,24646,12441,-24510,-26511,2403,-2856,-27677,18252,-9013,6468,-25615,9249,-16009,13249,2444,3022,-32666,-9096,7137,-17773,18282,12160,2307,-22843,-23258,1294,19022,-31213,-28170,3077,26767,13896,28769,31513,-10797,23481,17518,22610,-29633,23701,-19140,6133,-32217,30415,15931,18052,-23279,20663,25947,-31045,-6050,26205,-17511,1346,-29648,-25013,16717,-31668,-9021,-2238,-8948,-306,-19209,-21967,-6718,29465,-19286,3600,17608,16038,-23684,10966,21438,12775,431,-7680,13159,9691,23254,-27409,-14896,-30840,14509,-5041,-22409,23090,17668,-11096,11773,-11709,9598,9909,8906,30447,2130,7035,-8205,-30543,-30678,28279,8890,-21123,-3783,16566,-26958,-23021,-7303,31681,-103,21449,-10751,9127,-32608,-4765,3242,-13723,-32101,4343,22175,-24707,-28507,-1661,8517,-19450,-31545,-16088,-9797,8424,-6235,-23094,-30035,19669,-29903,24805,501,19041,1513,-12846,10234,15348,31380,-1528,13090,2806,-21304,-6971,-19782,3069,-28485,12954,13045,-16079,-23976,-5947,13058,-3943,-9741,-6093,-5091,-31905,-249,18927,-20386,-29563,-13669,25379,23298,2544,-29726,-6336,26113,-12944,19424,-6115,13853,28229,-7000,-21697,30469,11414,-13043,16639,26932,31417,30851,23256,-6330,-24061,-14182,-14979,-24510,-31484,-9335,-5381,-26963,-14305,26355,-18851,29604,28990,2142,-28629,-9703,-4152,11861,20808,-28453,-26572,-4751,27269,-8002,17744,-30380,29281,26929,6136,0,30375,22915,3799,-3125,11404,-16447,5628,-7513,13428,30833,22095,20728,-16573,12057,-1863,12619,15956,-6608,-1565,-23604,18732,32684,-9474,5430,27233,29681,9424,2028,-6548,-12413,7849,-11152,-8255,-28514,14793,1759,-14288,-12930,-5451,-1095,1611,-4789,-13661,-586,-15104,-29505,3783,-32571,-2606,-24194,-18186,1485,-7383,31106,-15171,-20492,-5675,-1775,-2281,7778,-14052,-23974,-4764,-11112,577,-11888,25286,7214,23661,-23363,-4706,16652,-6963,5687,23456,-15834,-22472,-32061,-18358,29155,-3628,27270}, } ; static void test_encode_857x5167_impl(long long impl) { unsigned char *s = test_encode_857x5167_s; unsigned char *x = test_encode_857x5167_x; unsigned char *s2 = test_encode_857x5167_s2; unsigned char *x2 = test_encode_857x5167_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_857x5167_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857x5167(impl); printf("encode_857x5167 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857x5167_implementation(impl),ntruprime_dispatch_encode_857x5167_compiler(impl)); } else { crypto_encode = ntruprime_encode_857x5167; printf("encode_857x5167 selected implementation %s compiler %s\n",ntruprime_encode_857x5167_implementation(),ntruprime_encode_857x5167_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_857x5167_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_857x5167_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_857x5167_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_857x5167_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_857x5167_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_857x5167_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_857x5167(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857x5167")) return; storage_encode_857x5167_s = callocplus(crypto_encode_STRBYTES); test_encode_857x5167_s = aligned(storage_encode_857x5167_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_857x5167_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_857x5167_x = aligned(storage_encode_857x5167_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_857x5167_s2 = callocplus(maxalloc); test_encode_857x5167_s2 = aligned(storage_encode_857x5167_s2,crypto_encode_STRBYTES); storage_encode_857x5167_x2 = callocplus(maxalloc); test_encode_857x5167_x2 = aligned(storage_encode_857x5167_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_857x5167 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_857x5167();++impl) forked(test_encode_857x5167_impl,impl); ++test_encode_857x5167_s; ++test_encode_857x5167_x; ++test_encode_857x5167_s2; ++test_encode_857x5167_x2; } free(storage_encode_857x5167_x2); free(storage_encode_857x5167_s2); free(storage_encode_857x5167_x); free(storage_encode_857x5167_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_857xfreeze3.c0000644000000000000000000010731014705505543023353 0ustar rootroot/* ----- encode/857xfreeze3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_857xfreeze3_checksums[] = { "bc89dd0c9bcace09ff3a4df7c6b657a8eea2467796bba9fbe9d0de4d1ee28703", "be3badaab03db87e3efd3597607b22d613e0e05242d021e616ed641ced8160fa", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_857xfreeze3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_857xfreeze3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_857xfreeze3_ITEMBYTES static void *storage_encode_857xfreeze3_s; static unsigned char *test_encode_857xfreeze3_s; static void *storage_encode_857xfreeze3_x; static unsigned char *test_encode_857xfreeze3_x; static void *storage_encode_857xfreeze3_s2; static unsigned char *test_encode_857xfreeze3_s2; static void *storage_encode_857xfreeze3_x2; static unsigned char *test_encode_857xfreeze3_x2; #define precomputed_encode_857xfreeze3_NUM 4 static const unsigned char precomputed_encode_857xfreeze3_s[precomputed_encode_857xfreeze3_NUM][crypto_encode_STRBYTES] = { {254,2,254,0,255,1,255,255,0,0,1,255,255,1,255,0,0,255,255,255,2,255,1,0,255,0,0,1,255,2,255,255,254,0,0,255,1,0,255,1,0,1,2,254,0,0,0,0,2,0,255,0,254,255,255,1,2,255,255,1,1,2,0,0,2,255,0,255,255,255,254,255,255,1,254,255,255,1,0,2,1,0,0,1,0,2,1,255,1,255,255,2,255,1,1,254,1,1,2,1,255,2,255,1,0,0,1,1,1,0,0,0,255,255,2,0,254,1,0,1,1,0,255,254,0,1,0,0,1,0,0,0,0,254,1,255,2,0,0,0,1,1,0,1,0,255,2,0,255,0,0,255,1,255,254,0,1,1,254,0,1,2,1,2,0,255,1,0,254,2,255,1,0,2,255,2,255,0,254,255,1,1,0,255,1,255,255,1,2,1,255,0,0,254,0,0,0,0,0,1,254,0,0,1,254,1,254,0,0,0,255,0,2,2,0,0,0,0,0,0,0,0,0,255,0,1,2,0,1,255,255,1,1,0,0,2,0,255,255,0,254,2,255,2,0,1,0,0,255,1,1,2,255,1,0,1,255,254,1,2,2,1,255,254,255,1,0,1,254,254,0,0,0,0,255,0,255,254,0,1,0,1,255,1,0,255,255,0,2,1,1,1,0,1,254,1,0,255,0,2,1,0,0,255,1,0,1,255,0,1,255,1,0,255,254,1,255,0,255,255,0,1,1,255,254,1,255,254,255,255,0,255,1,2,0,0,255,255,255,254,1,1,1,255,1,254,0,0,0,255,1,1,1,1,254,254,255,0,0,254,254,0,254,255,0,2,254,0,0,255,0,254,255,1,255,1,255,254,0,0,255,0,255,1,1,254,254,0,1,255,1,254,0,0,254,255,254,0,1,0,1,1,254,255,255,0,0,2,0,0,1,0,1,0,0,0,255,255,0,255,1,1,0,254,0,1,1,0,0,254,255,0,254,255,255,254,2,1,0,255,1,2,254,0,0,1,0,255,255,1,1,1,2,1,0,1,0,254,255,255,254,254,1,2,0,255,1,0,0,2,1,255,255,0,255,2,2,255,1,0,254,255,0,1,254,1,1,255,1,255,255,255,2,0,2,255,1,1,0,1,255,255,0,254,0,254,0,0,0,1,0,255,1,255,2,255,254,2,1,0,255,255,254,1,255,0,0,1,0,1,255,1,1,0,0,0,255,2,255,0,0,0,0,255,255,0,2,254,0,0,254,255,1,2,255,0,254,1,255,1,1,0,0,2,0,0,1,255,255,255,0,0,0,255,0,255,0,255,1,2,0,2,2,1,0,1,0,255,0,0,254,1,1,0,255,0,1,254,0,0,1,254,254,1,1,0,255,254,255,1,0,1,0,254,255,255,1,255,1,255,255,0,255,0,0,255,2,255,1,0,1,2,254,0,0,0,0,255,1,1,1,0,0,2,0,0,1,0,254,0,255,0,0,0,255,0,255,0,0,1,0,254,1,1,0,0,255,0,0,254,0,255,0,255,255,0,255,1,0,0,1,255,0,255,1,255,0,255,255,2,0,2,0,255,0,0,0,1,1,1,255,255,0,0,2,1,0,0,0,255,254,0,1,0,1,2,1,0,0,254,0,0,0,0,0,255,1,1,1,254,1,0,254,255,0,0,255,255,0,1,0,1,254,0,1,0,1,0,2,255,255,0,0,0,0,1,2,1,254,0,255,1,1,255,1,0,2,0,2,254,0,2,1,0,254,254,1,1,255,0,255,1,0,0,0,0,255,255,1,0,255,1,0,0,2,255,2,0,0,255,0,255,1,1,255,1,0,255,0,1,0,0,255,254,0,254,0,1,0,255,1,0,254,0,2,254,1,0,1,1,0,0,1,1,0,255,255,0,255,0,254,1,1,1,255,255,1,1,1,2,0,1,255,0,255,255,0}, {1,2,255,0,255,0,2,1,254,255,0,0,0,0,0,0,255,1,0,0,0,0,255,1,255,255,0,1,1,1,255,255,0,2,0,255,2,0,1,1,255,254,0,255,255,255,2,0,255,254,2,0,0,0,255,1,0,255,254,0,0,1,1,254,1,255,254,1,254,0,255,255,2,0,0,255,254,255,254,0,1,0,2,0,0,255,2,1,1,2,1,2,1,255,0,255,0,255,1,0,254,255,1,0,1,0,255,2,0,0,1,1,0,1,255,254,0,1,0,254,1,1,0,1,0,0,0,1,2,2,0,0,1,255,1,1,0,255,255,255,1,1,255,0,1,1,1,0,1,1,255,1,0,255,1,254,255,1,255,0,2,0,1,2,0,1,1,0,255,0,0,1,255,1,2,255,0,0,0,0,1,255,255,255,0,254,254,0,255,1,2,2,255,255,2,1,255,0,0,0,255,255,0,0,0,254,255,0,255,254,0,255,0,0,1,254,1,254,255,0,0,0,255,0,2,255,2,255,255,0,2,1,255,0,254,254,2,1,254,255,255,0,255,1,1,1,0,255,1,0,0,255,255,1,0,0,0,1,0,1,255,255,255,255,1,0,2,1,255,255,1,0,254,1,1,0,0,1,0,254,0,1,255,255,0,0,1,2,255,255,0,1,254,255,0,255,255,1,255,254,255,0,1,0,2,254,255,0,254,0,1,0,255,0,0,0,255,1,2,254,0,255,255,0,1,255,0,255,1,1,0,255,255,2,0,2,1,255,2,0,0,2,1,0,0,1,255,255,1,1,1,255,0,255,2,0,0,255,0,255,1,0,2,0,0,0,1,1,1,2,1,255,255,1,254,0,255,254,0,1,0,0,2,2,1,0,254,0,0,0,1,255,255,1,0,2,0,0,0,0,0,0,255,255,1,2,255,0,0,2,0,254,254,0,1,1,0,255,1,0,1,1,0,0,255,255,0,255,0,2,0,255,1,255,254,255,1,1,255,1,255,1,0,255,0,0,0,255,0,0,0,0,0,0,0,1,2,1,0,255,1,255,255,1,1,255,0,255,0,254,0,255,1,1,0,0,2,0,0,1,0,1,255,1,0,255,254,1,254,255,1,1,1,0,255,1,2,254,1,0,255,255,0,254,255,0,0,255,2,1,0,1,1,1,255,2,1,1,2,255,1,1,2,1,255,1,0,254,0,255,1,2,255,255,0,1,0,255,0,0,1,0,254,2,1,255,0,0,255,0,254,1,2,0,1,0,255,254,0,1,254,1,255,0,0,254,255,1,254,1,0,255,254,255,254,2,255,255,255,0,254,0,254,2,1,0,2,1,0,2,0,0,0,1,0,1,1,1,2,0,255,1,255,1,255,2,2,254,0,1,1,255,254,255,1,1,0,255,1,1,254,255,1,0,0,255,1,0,1,0,255,1,0,255,255,1,0,1,1,2,2,1,2,255,0,0,255,1,1,1,1,254,0,0,2,2,1,1,0,0,0,255,0,0,2,0,0,0,0,255,0,254,254,0,255,1,1,0,255,255,0,255,2,255,0,1,0,255,1,0,1,0,0,1,255,1,1,255,0,1,0,1,1,0,1,2,1,255,1,255,1,0,1,254,254,0,255,255,0,1,254,2,1,0,1,255,0,0,1,255,2,255,254,1,0,255,255,255,255,255,1,1,0,254,1,1,0,1,2,255,0,2,255,0,1,1,1,255,0,0,255,0,1,254,1,0,255,1,1,1,0,0,1,0,255,0,0,255,254,254,254,1,1,1,0,0,0,1,0,1,254,254,0,255,1,255,2,255,1,1,255,1,1,0,0,0,255,255,254,2,0,0,0,2,255,255,255,2,0,0,0,0,1,255,1,1,254,1,0,2,1,0,255,255,255,1,0,0,0,1,1,255,255,255,1,0,255,1,255,0,1,255,2,254,0,0,0}, {1,255,0,0,0,1,0,255,0,0,255,1,255,0,2,0,254,1,255,254,0,255,1,255,255,0,0,1,1,255,1,1,0,0,255,1,0,1,1,0,0,1,0,0,0,255,255,255,255,0,1,0,1,1,0,255,1,255,0,0,1,0,1,255,1,0,1,1,1,0,1,0,0,0,255,254,1,2,0,0,255,0,1,1,1,0,0,1,255,255,255,1,0,0,1,1,0,0,254,254,1,0,255,1,1,0,1,2,254,0,2,254,254,1,255,0,1,0,0,1,0,0,0,1,1,0,255,255,255,0,2,1,255,0,255,0,255,254,0,1,255,0,1,0,1,0,0,0,2,2,1,0,0,1,1,255,1,1,0,0,2,0,255,0,1,0,0,255,2,255,0,1,0,0,254,0,0,0,2,0,0,0,0,0,0,0,1,0,1,1,1,1,0,255,0,1,1,254,255,255,0,255,0,0,0,1,1,1,255,0,255,254,0,254,2,1,0,0,2,0,0,255,0,0,1,0,1,0,1,0,0,254,255,1,0,1,255,0,0,0,255,1,255,0,0,0,254,255,1,0,254,254,1,1,255,0,0,2,1,255,254,0,1,254,255,0,2,254,255,2,255,1,0,255,254,0,255,1,1,1,255,1,255,0,1,255,1,0,2,254,255,255,0,1,255,0,255,1,0,255,2,255,2,0,1,1,254,0,0,1,1,1,254,1,0,0,255,255,2,255,0,0,0,0,2,255,0,0,0,255,0,0,1,255,255,0,2,255,0,0,0,1,0,1,0,0,255,1,1,255,0,0,2,255,2,2,254,1,255,1,0,254,1,2,0,255,0,255,0,255,255,0,0,254,0,0,1,1,255,254,255,1,1,0,0,1,0,0,1,1,254,0,0,0,255,1,1,1,1,254,1,254,255,254,1,0,255,1,1,2,0,255,0,255,0,0,0,0,1,1,0,255,254,255,0,254,0,255,1,254,1,1,1,255,0,1,0,255,254,0,255,1,1,255,0,254,2,255,0,0,255,255,255,1,254,0,0,255,0,0,1,0,0,0,254,255,254,0,0,0,0,1,0,0,1,1,2,1,1,1,1,255,1,255,0,255,0,1,0,0,254,255,1,255,254,0,255,0,2,0,1,0,2,0,0,1,0,0,1,255,1,0,0,255,0,255,0,0,2,1,0,1,0,255,1,2,0,1,255,1,254,255,0,255,1,255,254,254,0,0,0,255,254,0,255,0,0,255,1,1,1,0,0,2,255,255,0,255,1,255,0,0,0,2,255,254,0,0,255,1,254,0,0,255,255,0,0,0,0,0,1,255,0,255,0,1,1,0,1,255,255,254,0,254,254,2,255,0,1,255,255,255,1,0,2,255,255,1,254,255,0,255,255,0,1,255,2,1,0,1,0,1,0,255,0,0,1,255,0,0,1,254,255,0,254,254,0,0,255,255,255,0,255,1,0,1,0,0,1,0,2,0,1,1,1,255,255,0,1,254,255,0,0,2,2,255,1,254,255,1,254,0,1,1,2,1,0,255,0,0,0,0,0,255,0,1,1,1,1,0,1,0,0,255,255,1,1,255,0,254,0,0,255,254,1,1,0,254,2,2,1,255,255,255,254,1,254,2,255,0,1,255,255,2,254,2,0,0,1,0,1,0,255,255,255,0,1,0,0,255,254,254,0,255,1,1,1,2,255,0,255,1,0,255,0,0,0,2,2,255,255,255,0,2,2,1,1,0,2,0,254,0,255,0,1,255,255,255,255,1,254,0,1,254,1,255,1,0,254,255,1,2,1,2,255,255,0,1,1,255,1,2,2,255,254,2,0,255,1,0,2,254,255,0,1,0,254,0,1,2,255,1,2,1,0,0,0,0,0,255,255,2,255,1,254,1,2,255,1,254,0,1,2,255,254,1,1,1,0,0,1,254,254,1,2,1,1}, {2,0,255,1,1,0,255,255,0,2,0,254,1,255,255,2,1,2,254,254,255,1,254,0,0,255,255,255,255,255,1,255,1,254,1,0,0,1,2,0,0,0,0,255,0,254,0,1,0,0,1,255,0,255,0,0,0,1,2,255,0,0,255,255,0,255,1,1,1,0,1,1,255,254,0,2,255,1,0,255,2,2,255,1,1,1,1,255,1,0,2,1,254,1,255,2,1,1,254,2,255,2,255,0,1,0,255,1,2,0,1,0,255,255,1,1,255,2,1,255,0,1,255,0,1,254,254,255,254,254,0,2,0,0,0,0,1,1,0,0,255,2,0,0,1,0,2,2,1,0,1,0,0,1,0,1,254,1,1,255,255,254,255,2,0,2,0,0,1,255,0,255,255,0,255,255,255,2,0,0,254,0,255,254,255,2,254,0,255,255,1,255,255,1,0,255,1,2,1,254,0,0,0,255,255,0,0,255,255,0,255,1,1,2,2,1,1,0,2,1,1,0,0,255,254,255,0,0,0,0,0,255,0,0,0,0,255,0,0,254,0,0,255,255,2,0,254,1,0,0,0,254,1,255,0,0,1,0,255,255,255,254,254,0,0,0,1,0,255,1,0,0,255,1,0,255,255,0,255,0,0,1,1,0,1,0,0,0,254,2,0,0,1,255,1,2,0,1,0,1,254,0,1,255,2,0,1,254,255,1,0,255,1,0,254,1,254,255,255,1,255,255,0,255,0,0,0,254,0,255,255,0,0,0,255,1,1,1,2,2,0,0,0,2,1,255,0,255,254,1,2,0,0,1,1,1,255,255,1,0,255,255,2,1,1,1,255,254,254,1,0,1,255,0,0,1,1,1,1,255,0,2,255,1,255,255,0,1,255,255,0,255,255,0,255,2,1,0,254,2,1,0,255,0,1,0,1,0,255,2,254,1,0,0,255,255,1,255,255,1,255,255,255,255,0,255,255,255,255,1,0,0,0,0,2,1,0,255,255,0,1,255,1,254,255,1,0,0,255,0,255,0,0,1,0,1,255,0,2,1,255,255,254,1,0,254,0,2,1,0,255,255,1,0,1,1,1,0,0,254,255,0,254,255,254,0,1,255,255,0,255,1,0,2,1,255,0,1,255,0,255,2,1,2,255,0,0,255,255,0,0,0,255,0,255,255,0,0,255,0,0,0,255,0,255,255,0,0,0,1,0,1,255,255,0,0,1,255,255,0,1,0,255,255,0,255,2,0,1,255,1,0,1,255,1,1,254,1,255,2,254,1,255,1,1,0,0,1,255,255,2,1,1,0,1,0,0,0,1,2,0,1,1,2,255,0,1,0,255,255,1,2,1,0,1,0,254,0,1,0,254,2,2,255,0,0,0,1,0,0,0,0,2,1,255,255,1,1,255,254,1,1,255,0,255,1,255,0,255,1,255,0,2,0,254,0,255,0,2,0,2,0,1,1,0,254,0,1,0,0,255,254,1,254,0,255,255,0,255,2,0,1,255,0,255,254,0,255,0,2,255,0,0,1,255,1,255,1,0,0,0,255,0,255,0,254,0,254,255,1,254,255,0,2,2,255,2,255,255,0,1,255,1,255,1,255,1,0,0,2,0,254,1,1,0,1,254,255,1,0,254,1,1,0,0,254,0,0,255,1,0,0,255,255,1,254,0,0,255,1,0,1,0,255,0,0,254,0,1,0,1,1,0,254,0,255,255,1,254,254,0,1,255,255,2,1,1,1,1,255,255,0,1,255,254,0,0,1,1,1,2,1,255,1,0,1,0,1,0,0,1,255,0,0,254,0,2,1,255,1,255,0,1,0,254,255,255,0,0,0,1,2,2,255,1,2,255,2,0,1,2,255,0,1,0,255,0,1,1,1,255,255,2,2,0,0,2,1,0,1,0,0,1,0,0,2,1,254,1,1,0,0,255,0,255,0,0}, } ; static const int16_t precomputed_encode_857xfreeze3_x[precomputed_encode_857xfreeze3_NUM][crypto_encode_ITEMS] = { {24271,-23740,20041,16275,-7546,4321,7415,-7735,-25305,-21240,-1769,25847,17213,-22712,-13876,4623,-9732,17243,-15688,12998,-18370,14519,-11216,27591,-13537,-28503,-18663,14611,-7279,-25846,8762,19448,17191,16809,27597,1037,-25640,30522,-8404,-12092,7065,-1667,-20641,19105,8346,32604,-30927,-7557,-25063,20898,21608,19674,31207,22631,32117,-20891,-30349,27944,21299,-19487,-26687,-31435,-9624,-28098,-28453,9536,27990,-11935,-7462,9629,24358,22634,-9136,-27056,17113,-2164,4664,4384,21795,-28348,1303,31482,11460,14203,-24525,-17980,3397,19772,-31226,-10801,21098,-25942,12860,-22409,-21194,31777,-7019,-29573,-25702,-15254,-5176,-20989,16694,-1208,-9963,4341,-12431,7672,-28928,-15816,1167,24744,1511,6482,-27715,-9114,30454,-28241,9117,-1061,14380,31659,-14035,28327,-3288,-2159,29265,-15246,-14684,2322,6648,24039,-14052,17887,-21167,20267,-20809,23772,-7686,-1146,-14048,12847,-18846,-18119,3990,-15970,-20212,10314,10478,28905,16806,338,-785,24245,23089,21660,-6698,148,22432,22443,-2495,-17794,15430,-29413,11550,17030,-10880,-4893,18580,-17446,-7423,15343,-14658,-19156,2951,-29233,24617,-18231,20194,-9772,913,10273,-32181,12041,-18200,26978,11633,16192,-21802,-1064,-11215,-7620,6147,29788,-18504,-5712,-27264,-32235,-13272,-29093,27031,11601,-8019,13447,17173,-16067,26005,-4653,633,-17145,3833,-11232,-31951,-29500,32442,29298,597,-114,-22899,21600,-21843,28500,16005,10241,12708,-1244,-19861,-2139,-6803,14810,-7921,7972,-22019,-8706,28002,-18052,-14793,12020,16406,-303,19795,-17509,6902,-20350,-31212,-16529,-21600,-23427,-6499,-10484,5989,-20830,31541,12820,-22572,-28730,4928,30589,-25994,-27343,-32584,1147,-7861,26263,26126,12763,23469,7948,30442,30766,-28221,18831,18384,-4695,-14680,16737,29774,26461,-30006,-32498,-21624,1684,13061,4456,19809,-1948,-3331,-2598,-26668,-12734,-29462,-30356,-22605,7270,20431,-1628,-10821,-9136,-14181,-21310,1366,-16767,18570,-5068,16312,-14316,-6788,-10843,27117,-6359,30227,9997,18960,-3967,26080,-2114,14768,-4941,-3523,-4639,-27327,-10640,-22274,16169,22396,-13244,485,18103,31907,-2623,-32100,18764,-28013,-26419,1704,-25719,-3091,1862,14570,27550,-8339,-23897,-4934,16121,1978,24706,-1086,4212,-22716,-14884,-9503,-1205,-18728,-779,23824,16801,27608,10779,-23478,17887,17056,-11706,31090,28331,-6492,-22696,32017,19491,-27027,1964,31131,20701,-12574,-21938,-7624,-17828,24230,25795,20481,25113,28214,7191,-3760,-32198,-3827,28999,32587,-5025,-31754,10577,11779,20053,-17379,-27549,28465,6005,23566,-16101,-24893,2886,2914,10807,24898,1979,9923,-25404,-5292,-27088,-15348,-7536,-23882,-24369,-28796,26691,24975,-3744,11072,-1702,-5814,26273,-31034,1420,-11970,32137,28170,-12674,-3932,-3273,-7410,17260,1559,972,28456,28247,-7009,32443,-31627,-22301,-3672,-14782,-4136,-24160,25597,-25890,19446,-29903,21948,-14356,-9127,-7817,13282,-6245,-19123,-4979,-22314,-19145,14583,18796,21911,17837,28957,17128,-6821,-29020,27930,-6544,-12413,-21036,24642,-30499,10327,18884,15068,-25566,16625,-19912,-31489,-3421,3310,-8580,31765,1790,-20115,11707,19954,-13724,-8093,2786,-22724,3872,8105,3386,-22006,7407,-25297,31451,15190,-31175,-17304,-25121,4718,-5797,3696,27607,19377,17626,-10752,14856,5091,-30329,-11391,6011,-17396,-4378,-21877,-4375,19660,-30619,-24071,-5877,18695,2024,32602,-31502,-10756,-7974,-20346,-3311,2766,-15707,-4465,8017,-18983,-27363,-25872,-4323,-136,-27886,-6457,17679,31911,4716,19797,20036,-4492,-24855,-20068,26392,-24513,17724,24814,-2659,-28685,-22822,24815,10734,17041,2467,21794,6790,-28847,27393,-3543,-26998,-1215,-8883,7636,13139,26249,4652,4029,-10542,2655,-4945,-11478,23864,11892,23285,12076,-18745,-2859,-27715,-18340,-9401,14709,-7895,-2745,6221,-11319,-6237,17338,-2957,-12320,7845,16457,-18663,10129,27097,2580,31812,1687,31735,29569,-10208,11185,5040,-2491,29635,10481,-24188,7872,7528,18729,24001,-15559,-16042,-29477,5873,-6905,-14941,1550,31737,16907,-26232,4680,11993,-17365,5222,-23837,15786,-4532,-20590,29200,14613,31434,11724,13671,25754,-24722,-31748,12133,1149,-26445,-30949,-1293,-10674,-32048,-14604,18889,27192,23246,-14562,-20292,-28791,-6541,-5082,27440,-18486,-28959,7036,31581,20770,-14108,11476,-18870,27840,-979,5517,24237,26098,1017,17114,24912,-3280,23999,-6141,18788,-12065,-25041,-16083,8260,29348,18894,29891,-10001,-6481,21816,29714,16742,-24577,-14415,-18418,6918,32441,-31986,7077,2538,-8105,-16913,-4634,28190,-6631,10935,-15228,-20080,-3224,12648,-25788,17193,13913,23386,-17880,5284,192,-24809,-28474,9820,-11427,-26553,31951,-5703,31392,-23478,7596,23385,-9934,-13958,-27194,7033,29053,-12656,29091,27946,25745,-26193,22278,31523,-856,10764,-25838,-14604,-17357,25360,-429,-566,-2670,-22571,27498,-27562,30086,3881,27270,-26409,-8217,25917,-25922,-18190,12820,25585,-9315,21566,-14333,-27749,11207,-1133,28851,-22663,13233,-27268,17980,-31074,-21883,4129,-12504,17161,16993,-28367,-18296,8102,29463,-11842,-32345,-27879,19017,645,22137,-5596,-6061,373,19086,31196,-29798,2337,24540,-23320,30968,-17572,25653,18768,731,-26991,24239,-7223,9142,23114,-17009,-30972,28526,32628,-8825,13338,25455,17975,23413,25776,23920,26061,-21260,-22674,31514,9250,30393,20626,-23163,-16615,31396,2632,1533,-2585,-17966,21705,-7191,-13409,-6812,13050,-14647,-2131,-32463,31256,-8304,29332,-5447,7402,13219,22919,395,8671,-21539,3382,-24154,-19800,-10682,-15241,-8007,-685,-13105,-19434}, {-32045,-26341,3914,-19077,9362,-6492,-18712,-23936,24376,8258,-25491,-31770,27546,-14004,-6267,32622,5999,10468,-2649,27639,-19539,12843,7604,-30269,-3967,2858,7518,12220,-27893,12796,-15340,-7534,-8787,-30217,-19197,-6559,-24370,-4617,-23720,-16514,-235,18223,3726,1742,30947,14069,-23080,18225,-8920,17608,-27685,-4947,32424,-3843,-4984,-9377,22377,5222,26146,-11067,24771,4435,-2528,19588,-31337,-12178,19357,-19484,19867,-18006,8312,-14338,-21655,-11274,-8271,13340,23890,25082,19561,10632,-6560,-20241,-18073,-1725,-672,21905,-19477,-30656,-10754,-19168,-25064,-32026,-3227,10895,-126,13655,27096,-13507,-13337,9702,18481,11651,-28778,23880,13909,-11742,-6574,-24184,-14454,-20544,-2048,15307,8106,6820,617,30910,-5892,2812,-12603,23818,10171,-1031,-30177,-26015,-10272,31653,-7662,10495,-26527,-32317,-15135,-3747,-22472,26255,-19967,-8552,-30135,15863,26033,25787,14227,13027,30458,-2919,8491,4786,-18161,-32013,-22028,8566,14975,12373,17976,-5821,3562,17377,-784,-12962,25541,21279,-30070,27063,-31649,-32044,-21108,14629,-14252,11634,12377,-24333,3363,-27344,-8920,-3185,-27493,12791,-17199,-15519,20784,-3075,-21617,25295,9266,10205,-27405,26182,30631,25905,7160,16243,-22489,-21745,20432,16796,-24901,7816,18080,17997,10485,-21456,26039,-3595,-1377,32400,-9321,32656,5048,19560,-11815,23500,-21246,-2827,30867,21552,-10805,23107,-27392,23002,17360,-13050,21453,3618,-12943,16482,-21034,5207,-20941,17807,-3520,2064,-29875,3559,22784,8394,25903,25396,-22543,9103,28468,-3262,10784,-15684,12728,-32462,-28271,7600,8643,9239,-776,-12288,-8184,23153,11060,-1544,11346,12354,30090,-4310,20829,3160,-10393,32378,665,13382,-25496,19389,-19705,2320,3668,-10960,-5822,-2997,19516,13447,-27818,31665,-11343,-16871,10581,26767,-23925,-3512,10067,-3151,6633,13713,1618,-29617,-9073,-15784,-8493,-9110,31660,1058,6756,158,-7696,-3953,-1213,19405,19991,-17922,-26873,20130,-31531,30910,-880,19116,24817,-9438,-12890,-1275,19826,-14424,-6057,12690,14567,-20867,-20248,31579,1488,27515,-14368,-16749,9622,-1573,-8775,29309,13984,-31475,6504,-8755,-14635,-18307,-24942,-23074,-27167,-8020,-30385,5874,-126,-23830,-14393,-6741,-15666,5812,4379,29138,-30566,-23375,-21461,19262,11664,9494,-24310,29793,11253,11102,-8883,13706,-10250,-14718,-24427,-14895,23607,-13578,-16025,2893,-17393,-21757,3688,8867,-10348,6070,27745,99,5579,20971,26676,-19514,-4968,27852,-27058,-30346,-29468,30033,20782,32145,26259,-23727,6178,1097,8339,-22817,618,-23425,-17733,22974,1170,7137,16245,31980,8639,-14923,-18626,-27931,18224,-2841,32214,-22057,30609,30715,23416,9885,4300,-6113,-9678,18200,9163,13506,15157,12865,13980,26718,25904,-11926,-12513,17981,25911,-29608,4257,14924,10786,-12073,19210,27908,-29705,9385,-9325,-25703,14087,-3683,21819,-8560,-6291,25938,-13002,14948,24747,-7530,28305,2901,17961,-4116,-8562,-21365,-32086,-13610,27156,17330,15478,17006,16766,-2990,-24521,-5665,17862,31574,-32586,31924,28098,7082,-21065,-25211,7539,-5127,-24310,27147,7440,9259,-31350,7585,12149,-560,-15528,-16243,30826,-5480,25309,14141,-24407,15010,-4613,27363,-8395,-27491,-31948,27220,13618,-11847,14993,19991,27144,20065,2894,22203,-4917,20927,-17653,-176,-25497,-13409,-17444,-284,13490,-21646,-17777,-8180,-22297,-8809,-17078,5683,-26179,-1271,25823,-15887,-12288,24886,-19284,-15817,-19601,-18553,30518,-2914,-408,-6680,-25401,21734,16662,14118,4360,10866,27610,-16783,-19622,-16339,5610,-28341,-6001,32658,27073,11728,-19834,11118,-20186,-23109,19058,25639,2001,12595,21613,4045,28790,7530,31251,22309,-5680,-7070,26500,-13232,7248,19994,24631,26012,16657,-24145,2354,17915,29606,-219,18016,2988,30325,-27415,2824,-18474,-32284,15067,4977,-25996,-30216,28155,8844,-32582,567,-26978,-18347,5749,-28792,25188,27308,-19130,29711,-6191,16088,-20107,-20092,31579,-13029,-176,-12791,24314,21217,-4783,-26147,7216,-6990,28187,-9341,10672,20236,24152,-7739,17904,30978,95,2401,468,15769,-19278,2324,7204,11610,-94,29096,-21914,-19059,5116,-1601,-26410,-18211,8539,-23377,23171,30045,-19248,-13984,-1001,-11039,5794,-25622,18493,-22284,-32301,-23608,-16780,-4586,-3233,-7668,18558,-4197,-14611,-14523,30195,-27802,8205,-23487,9876,23172,-15856,19113,26086,30826,-21357,-8824,-9749,-2912,8574,185,27839,6111,-6538,-29032,17165,-14598,-5621,-8577,14621,6880,7062,-9389,-13569,29472,-18035,26435,-11141,10558,31022,-19332,-18071,-18339,8626,-10454,-26697,-12410,-27709,-1340,14186,-10031,30422,15274,7146,12478,27043,26062,-10455,-16183,10349,8637,-10148,31939,-27340,-6989,-10227,10885,19406,-12348,-7626,-23273,4904,-23437,-6688,31000,-12872,-5223,28475,11207,-9385,-16144,30230,-14837,-8384,21153,19441,7702,-27503,-26703,-16478,-32128,11969,-6714,-17980,23579,-1158,12784,-24863,5857,22451,-306,-23586,13907,23469,6445,18883,-15593,26634,-2341,1153,-30596,-3077,13902,-8601,-2324,31743,-3190,-15099,14658,12680,29365,32473,28138,-29444,15583,6511,30468,-23037,-24576,-8585,23301,-25091,18625,31828,16704,-13633,-29594,18365,-26248,19718,-23474,-18056,25838,-4658,-11864,6801,21888,-32730,26747,17375,19525,-23698,28302,-23550,3951,-22138,24083,-9037,1757,-24184,1362,22644,6999,5004,-23291,5945,-19439,-16268,32638,8860,32532,-19897,-11168,20133,9812,18611,29381,-1829,27966,9141,3555,-10148,-5093,29765,-14905,15425,-14870,-135,12206,11371,512,3276,6148,-14437,-16549,20662,-14532,2115,-10845}, {-12728,-1135,32430,-30621,-30327,13738,4530,9377,30753,31437,-6805,-27113,32465,-20040,-26716,18456,27490,-8069,137,19924,23649,13172,-13547,24176,-1357,11790,8391,-23909,2155,11042,-24434,-19175,-29976,-13152,12770,-18599,-17544,5392,-2912,-17274,-7041,-22025,-24948,11730,-9675,5630,-8065,5372,17339,30306,-9521,-18681,-32129,-17849,-5928,30041,13465,15263,9324,-10389,-26315,-25449,9160,32720,-3977,18441,11482,1927,-12722,32652,-32393,32487,-4893,2202,-10936,28354,-32552,-28300,20118,-28824,9413,7185,13384,364,-15818,-30534,1275,12832,-3670,3182,22040,10036,-9816,7965,-8729,676,-21570,12000,27181,29947,14806,4866,24134,-16991,4426,32733,13894,-26968,16456,-8625,-16615,17272,20728,-21089,-4792,-81,-17810,-15270,13662,5368,28980,-13023,2043,-740,-28430,-10323,-583,-4318,-6748,14424,-25561,12181,-16135,23871,18950,15525,2684,21403,-7272,-13712,15533,-13827,-4322,1197,-18965,-5259,10743,-30696,-16387,-26722,9760,17088,3264,-6728,-27269,22730,2572,3451,-17409,-30822,-23869,-22035,2291,-13659,-18518,-27243,-11304,8576,-31270,11426,-16764,-12878,12633,-27453,28735,-12357,-16485,5829,-21472,4011,9312,11970,-6033,-17925,9165,-16398,-6437,-9396,-23396,11998,-26063,8179,-24474,1553,14118,-30677,9358,21601,-9052,21017,2022,27464,2583,-16851,18390,-26855,-8843,-25355,17030,-14154,10943,22426,21045,21241,-25246,-31421,2730,22884,-28000,31584,960,-7741,27972,-4128,12865,-6921,-27509,17187,14617,-27753,19740,27286,-10216,-31475,5148,-18905,11303,-23727,20007,-24681,-14869,-32654,20864,-14181,4854,6255,18859,3617,-27215,29430,19714,28369,-15074,14203,31952,-23802,-20562,-29884,6784,-12496,18238,-1200,6874,24187,-4588,-9447,-18424,31936,31457,-20692,-5470,14386,-13473,4055,19534,3618,2597,4999,-30533,9598,-3082,-18626,24305,32166,-13793,-2449,-5264,-28014,-18568,32470,15845,18050,31341,-21440,29744,1602,26801,-12650,-8103,17240,-30394,-9901,-21754,-24369,-29024,14368,18373,7680,-9042,-19913,-28259,-7769,17791,-21872,26016,-6321,-3313,15128,-19156,5120,10902,31716,25884,-6600,-23062,7142,5700,-5154,-13452,20795,-22656,-13617,-287,15743,-9301,5502,-19537,20663,-8493,7788,26634,-27080,6369,-9887,-16092,-26832,-1117,9955,-28286,-8431,-27267,-16329,-26593,-2413,-16402,-30409,22339,-11183,1256,-7133,27780,32761,3301,-17875,-7467,30200,6900,-4651,21090,1385,12413,22653,-17037,30952,9675,-22263,-4589,-9047,29432,26473,-1456,6601,-9422,12213,-22368,7477,19668,-27996,-28775,-21653,24061,-19374,14979,-17694,13700,10564,8143,-20294,-17783,23095,7408,24913,23576,30247,3778,-5217,-13981,-26588,-9290,-16966,-25494,-1906,-2670,15185,-21660,27345,10917,-8436,13612,-18671,-14931,17249,27667,12485,-12672,28030,21690,-11983,-338,21313,-8426,-7967,-25166,22616,-3885,-3809,7539,12764,24916,-16059,12509,-30434,-29054,-5467,-16671,26998,-21937,-3844,32157,-28365,20198,10865,18314,-5723,20623,28932,-6186,18746,11550,15432,-3179,-3573,25242,31650,20050,-16222,19618,-21294,17085,-1257,15420,-749,-3723,1914,-14702,-21458,-18109,-6317,-23456,-11957,14914,24251,-26450,13889,-11022,25289,-11175,-29294,-24021,-20127,23596,10919,-29210,30035,32620,2181,-2002,30660,-28456,-9591,-32483,-2382,-25123,8166,25527,-30107,26139,-17781,2362,26195,-25937,25863,28335,7127,-22986,12881,-18435,-14673,-31768,-1565,-2853,11134,-13575,16106,-6266,-27043,-11235,2743,5591,12592,27673,3731,-12072,19799,-12983,22559,31402,23902,18249,11529,-23175,7523,23566,19446,-5323,-21528,14322,13931,-16970,-30827,15058,-17361,-24597,-27037,-4177,-4876,8892,30221,9574,8525,-18882,-30102,-2808,-30700,28370,23761,-11925,-5352,27122,-4418,17572,-14388,12162,26882,28829,-6723,-20466,-6717,-4017,-12549,-56,-6550,-21807,23759,-28158,-21791,-28451,-13908,-8570,4373,1145,18784,14796,20284,25393,-17254,8408,14607,-17519,4700,-6694,15137,10852,19563,-32458,11006,23921,-24308,22990,29819,23169,31037,10685,11805,14158,28430,-17452,-16874,2058,11905,29022,10093,3735,-316,-8985,14580,11443,23768,18651,-25944,16057,16939,4466,-16188,31711,24448,4350,-23892,9293,-10369,-16096,-17694,22538,-31985,-16143,-20312,-16440,2115,8974,-30783,-28381,16134,-7775,10054,-11102,9464,9515,21555,4342,30883,-7153,28287,-24372,-22144,-22657,25640,9508,17353,21857,-9590,29710,-10923,-15056,-28850,-19684,2248,1509,4715,-11997,21945,7188,-23634,2823,23150,-3555,-10862,-6803,10480,-25298,-13929,3460,16077,5385,-13630,8876,-8186,-362,-1573,-18009,25879,-4971,31641,-5263,18688,-20129,-15128,32442,22675,-20071,-30562,15871,18947,-14680,8372,32626,1147,24820,-18346,27605,2016,-4433,-12004,2567,-19345,32281,-16693,6192,22218,-18389,-21423,4240,-16503,23939,-2836,10205,-19443,15754,23328,-2616,-13717,25513,19423,29487,-9769,-25052,-11108,-5105,-17908,1250,20163,25103,10153,-9963,6296,10767,4410,-6264,-28318,-32365,-15508,23333,-5584,12411,-27706,-20608,-11810,-24023,-2421,-26611,-22344,22732,-2460,-10837,2925,10492,-562,31022,-4378,26432,-7145,27250,-6150,-20741,25918,-25151,28823,-15689,29532,30805,-5848,-3119,-17371,-10772,-32329,590,4322,-31512,-3725,823,-10540,-1679,-28432,-31609,22742,22246,-30334,-30222,-15388,-449,12828,-29959,18163,-3451,-18633,-24497,5925,23032,-11859,5788,-19072,9944,-7892,-31693,-12665,27168,-14385,-20172,-2505,2592,-15322,6128,-26335,19565,8146,23593,943,-30211,-1936,-24041,30217,-21339,-7163,-29824,30734,32566,-6002,-22826,2311,7380,9660,-536,30619,25279,-30302,-30019,-11756,-11183}, {-23893,-19197,-817,-19517,-6815,3093,28739,3695,10629,-29797,-2010,30076,-5075,19679,10784,-27157,7507,-28810,16633,25219,-5065,11116,25096,15462,-5535,22874,20438,11819,12761,6260,-29432,29342,-12158,23059,13150,-31524,6258,-12653,-26146,30648,939,-27426,27918,-9451,24489,18142,-18894,-31673,-24240,-25038,-27812,11930,5004,31136,363,-7527,9660,-16595,-26905,-5065,2241,-12150,-9523,20900,28179,6149,-3140,12511,-31232,-6753,8062,-12608,18425,29509,-13383,-26551,11165,5848,11349,-2797,-22468,-16903,32222,-5483,-4052,-7829,1918,-15382,-16064,-25797,-24277,-20273,28165,-5459,23951,-21601,-11282,-2399,19648,-20692,-6223,-21886,17759,-18234,-26759,13077,7868,-305,-21439,3165,-17684,31539,-5461,25076,6445,-491,13505,-30850,15646,2102,-25932,-758,-15304,-22485,-14144,20044,32266,4556,23896,29080,21246,-17926,-3567,-32382,-11691,23022,-22739,-20930,-15438,-19440,26255,-17368,18960,7719,-1712,-10464,-26386,-22672,-26261,7674,15466,11439,-10068,-2873,14154,7291,30307,-25376,-22547,-1849,2198,32365,2366,-21322,7800,-28057,12483,22959,-15473,14417,966,7262,-5701,12576,-13174,11432,31745,-31153,7683,-32508,20794,15759,18440,25516,27800,-23338,22525,6165,-646,-2473,-30929,-5671,15605,-2231,-25365,-7816,-17858,-22768,-3014,22201,-16149,18189,8085,-12679,31724,23094,-15645,3317,-706,13272,4349,-815,-29966,-25159,-23089,5941,-19478,8082,-20578,-19235,3952,23313,20259,7166,17335,32123,981,31599,63,11487,-14145,28232,29454,11838,32124,19374,22667,8904,-25245,27607,-29184,-17109,-15259,28442,-28684,18000,22597,-13400,-7098,23037,-20670,26281,-21410,16040,16497,-24075,-30887,-18276,27482,2879,-12190,24517,27469,7986,-5607,11619,-509,25575,23147,4264,22587,10353,-13903,-30563,29784,26213,10367,18813,-10171,18573,19992,-25622,-30497,-9420,15112,2745,-9507,20454,29164,-23236,10239,-18090,-1043,26654,-30647,-28198,27267,15952,5553,-32597,26917,-31779,-22676,29504,-23341,-30816,-27677,24424,-3097,-527,31467,-7939,10318,-27759,28120,5176,29029,14174,28025,3130,16565,-5668,-22866,-9796,6438,21171,28500,22504,-16458,11738,-11722,-23523,-26958,-6582,-9982,6733,1888,-13736,-32593,-30301,-31224,18150,19509,-32374,-917,12797,1101,5696,25357,-18506,-22924,25359,-29751,13771,9775,-7046,28316,13280,15658,9243,16874,8177,-31513,8755,15031,16264,5627,26764,20389,-15416,-6309,-22406,23333,32412,1773,-24038,4759,-24854,-18467,21317,4488,-29788,-15523,-5264,1058,14096,29577,6832,9986,-8521,9381,31463,23966,-14826,11426,-19594,13198,6363,31696,-28909,-29207,32610,-1621,-12399,-13727,22779,14821,8040,-517,-32110,22057,7432,5352,20334,1112,7658,-20765,-3847,9356,-14312,-1951,7178,19517,-7858,28587,6581,7313,-16324,-3310,-6593,-24582,-11739,11643,17856,-19876,-11471,-7167,32741,308,-19884,-14435,-13948,-4202,24187,28043,6235,-2238,-372,31502,-5922,-1819,26529,-11937,16114,18657,15181,-3205,-21897,-22954,2896,6149,-12580,23578,-19970,18897,17044,-9432,-17176,12454,17760,4940,77,-19226,15645,-18953,-27884,16264,-22524,24381,19762,737,1902,31423,12782,28303,-13176,-32531,15596,28484,16722,9107,-22850,-22311,-26545,-25481,-5890,2859,16252,-14194,17598,-2650,-20164,-30368,-26353,17837,14568,22257,-8365,-13954,-6798,20739,-11346,-1087,-28329,21464,9680,6693,23724,-10207,10962,11874,1353,12635,-4695,10283,19682,-19251,-22863,-24828,-31259,13746,-24632,5123,27473,20979,-29385,-21893,4445,-3793,8718,-9431,26205,-2413,-3229,-32127,-10144,-20638,-5358,-23522,-10504,-20228,-21525,3964,23795,-15293,-8045,17488,7960,1361,-26329,21103,2449,11060,8551,-29582,-25803,16842,-2075,21923,13226,-19735,2497,-10292,17880,10264,17454,-8124,-10299,-23183,-32500,28788,-13247,-31844,-30958,32099,-32478,-21263,1101,30938,-15226,7033,-22480,6838,3237,-6734,32541,16513,23769,8170,-297,26179,-26860,-23071,21056,6654,-1911,54,-8684,-27156,-27468,6807,-19185,-20965,-13301,23570,-8224,-3806,-24380,-12952,20548,-27704,-11768,25157,32100,-8350,-14477,17795,8868,-8539,11698,21326,12984,-22315,-27732,32515,525,7265,-16167,-29893,16599,-18673,11808,-16238,-14030,-12465,17287,-7779,-728,-22722,921,24437,28132,-3821,26725,-924,31778,3473,-27099,-16003,-28156,-9255,-24440,5234,-8022,30485,24193,-15066,30833,10542,-18034,28910,24009,-16794,-17663,14438,-20855,-2068,-28535,-27960,-12612,-32328,29618,24942,4199,26358,30628,10710,21616,-10693,-1352,30472,-1387,5172,-18241,-25348,-11383,-22927,15407,11639,30891,-6641,590,13357,14348,-13622,-4984,-32405,-19005,-7869,-25648,23469,26110,16255,-31409,-1659,-11711,31174,10844,-31061,-16431,30454,-380,1753,2085,-4440,18226,2739,-22122,31850,9571,-19497,6609,4820,-16207,3490,28231,16680,13389,-13441,-11282,15606,5407,5619,13070,-18579,25302,30877,31332,-20318,-18207,-6401,-13247,-21204,17944,-798,-8071,-151,-32093,22144,26827,31239,-227,-10411,11564,-26503,-20153,-10517,13045,850,3962,3557,21027,-28139,596,21109,-21141,2178,-6860,-28097,2239,-21625,4468,5111,-19244,13254,-26654,-31104,-1736,-13701,-23616,1501,10286,-11370,-8853,32083,-2919,-26200,3007,16805,5689,25484,-4179,-30797,7140,19633,-10954,-2788,-13479,22302,12336,-15173,-20494,-28177,16787,12523,-24427,-10462,-23716,32121,-22478,-22507,-10351,15990,-11699,-25170,3482,12456,-27188,-30584,-9821,19031,14471,-22555,-20824,-13134,10917,-29653,259,-1293,-24977,3369,-13134,-14504,-32499,13599,-27313,11986,17794,-27641,-21875,-27093,-3585,12401,-26337,1217,-10212,10545}, } ; static void test_encode_857xfreeze3_impl(long long impl) { unsigned char *s = test_encode_857xfreeze3_s; unsigned char *x = test_encode_857xfreeze3_x; unsigned char *s2 = test_encode_857xfreeze3_s2; unsigned char *x2 = test_encode_857xfreeze3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_857xfreeze3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857xfreeze3(impl); printf("encode_857xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857xfreeze3_implementation(impl),ntruprime_dispatch_encode_857xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_857xfreeze3; printf("encode_857xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_857xfreeze3_implementation(),ntruprime_encode_857xfreeze3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_857xfreeze3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_857xfreeze3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_857xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_857xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_857xfreeze3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_857xfreeze3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_857xfreeze3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857xfreeze3")) return; storage_encode_857xfreeze3_s = callocplus(crypto_encode_STRBYTES); test_encode_857xfreeze3_s = aligned(storage_encode_857xfreeze3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_857xfreeze3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_857xfreeze3_x = aligned(storage_encode_857xfreeze3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_857xfreeze3_s2 = callocplus(maxalloc); test_encode_857xfreeze3_s2 = aligned(storage_encode_857xfreeze3_s2,crypto_encode_STRBYTES); storage_encode_857xfreeze3_x2 = callocplus(maxalloc); test_encode_857xfreeze3_x2 = aligned(storage_encode_857xfreeze3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_857xfreeze3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_857xfreeze3();++impl) forked(test_encode_857xfreeze3_impl,impl); ++test_encode_857xfreeze3_s; ++test_encode_857xfreeze3_x; ++test_encode_857xfreeze3_s2; ++test_encode_857xfreeze3_x2; } free(storage_encode_857xfreeze3_x2); free(storage_encode_857xfreeze3_s2); free(storage_encode_857xfreeze3_x); free(storage_encode_857xfreeze3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_857xint16.c0000644000000000000000000014307014705505543022754 0ustar rootroot/* ----- encode/857xint16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_857xint16_checksums[] = { "f1975f4d5aa9b69374c1b286295468accd26c0ea75cf76cceafcdd4142155810", "5e1d78e028b3f6eaa1be2526e5f3165ebd75ab25ad76cd4df3bd2376e70ab631", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_857xint16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_857xint16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_857xint16_ITEMBYTES static void *storage_encode_857xint16_s; static unsigned char *test_encode_857xint16_s; static void *storage_encode_857xint16_x; static unsigned char *test_encode_857xint16_x; static void *storage_encode_857xint16_s2; static unsigned char *test_encode_857xint16_s2; static void *storage_encode_857xint16_x2; static unsigned char *test_encode_857xint16_x2; #define precomputed_encode_857xint16_NUM 4 static const unsigned char precomputed_encode_857xint16_s[precomputed_encode_857xint16_NUM][crypto_encode_STRBYTES] = { {60,115,234,207,5,46,216,231,185,243,91,59,77,65,51,163,186,108,105,179,57,128,188,70,234,121,111,211,227,31,21,55,28,177,23,131,3,131,156,69,2,98,146,55,103,67,134,251,195,42,228,217,101,242,84,30,107,229,121,36,174,86,193,60,214,245,85,133,0,235,213,156,232,125,24,54,204,196,149,155,76,128,51,196,16,255,228,214,76,189,45,172,202,45,251,250,52,194,29,30,253,134,42,227,159,243,41,201,255,210,141,66,178,1,110,244,2,131,99,204,254,77,251,166,155,3,167,244,93,83,104,20,67,207,188,248,27,69,237,99,115,158,44,155,5,79,222,91,0,240,250,15,144,91,209,77,124,39,32,140,3,190,215,41,229,69,60,184,127,165,176,127,137,51,76,27,73,21,217,60,200,107,11,75,103,171,164,122,64,42,24,227,239,192,195,93,118,26,9,227,249,211,52,224,230,185,123,247,65,65,167,234,205,201,82,164,136,117,217,215,212,44,195,116,119,185,146,119,89,149,163,113,97,209,156,56,61,186,97,232,151,161,212,215,93,61,166,75,59,103,108,38,30,148,89,19,215,68,132,108,103,75,0,89,188,33,101,233,57,179,150,251,99,142,159,170,180,64,210,61,124,240,24,182,227,213,251,237,196,159,95,79,12,6,98,240,142,211,0,252,189,168,149,207,106,217,168,148,33,45,205,253,116,72,226,164,78,17,9,117,85,75,161,139,157,160,97,180,4,33,8,39,78,101,85,45,122,65,45,86,21,110,81,177,16,172,164,16,206,154,154,157,66,152,77,69,19,153,88,180,56,19,170,170,246,84,176,207,7,238,58,132,164,153,4,48,66,43,226,219,144,39,145,157,241,115,29,128,143,248,49,98,251,184,223,82,61,17,12,249,113,109,30,6,246,226,73,195,5,78,130,154,215,222,27,86,143,29,92,65,184,134,146,22,24,70,251,235,220,191,236,215,100,155,229,4,50,41,237,189,234,148,149,176,165,53,127,31,142,144,91,29,111,166,232,216,182,87,150,252,197,63,133,83,213,110,232,108,24,182,92,143,172,109,229,214,184,212,242,108,192,59,176,13,37,120,223,151,180,231,244,178,22,103,13,27,200,63,35,57,181,39,191,143,5,11,181,202,76,97,206,54,172,60,129,175,241,85,156,99,206,187,251,116,228,57,89,178,48,166,145,1,32,137,207,77,40,45,1,10,143,119,159,233,37,210,190,215,197,113,212,27,198,91,158,85,159,104,211,87,175,161,45,3,55,130,226,58,58,95,198,125,64,4,235,120,138,233,185,70,224,81,96,239,182,218,79,172,201,229,150,218,131,205,175,250,135,155,184,4,40,219,36,208,87,38,92,176,226,90,78,184,195,164,52,2,176,19,245,242,33,238,171,23,55,45,165,125,52,5,145,17,22,127,201,111,156,242,26,175,45,252,176,104,67,244,145,241,124,67,21,122,82,209,14,161,85,6,69,62,197,107,217,78,141,42,70,123,29,96,57,39,237,117,114,199,102,117,34,176,54,172,238,33,131,214,105,74,0,120,206,152,14,120,84,56,4,44,55,254,251,224,104,136,3,235,166,46,236,197,255,15,71,145,110,238,244,224,94,249,155,189,172,32,121,195,235,98,243,43,25,240,124,249,95,119,145,108,71,12,17,82,182,120,116,167,5,131,0,185,230,12,61,125,148,56,125,199,220,133,140,110,66,100,143,247,123,124,215,31,91,181,175,10,197,30,23,177,114,20,53,40,25,117,80,189,68,13,21,169,254,230,232,11,146,179,250,41,198,176,109,176,198,155,65,111,86,113,40,11,4,170,88,248,12,108,134,224,93,35,220,108,121,152,59,143,58,217,84,74,25,249,123,75,143,211,34,132,13,230,157,100,229,85,140,25,246,207,4,98,121,227,242,122,173,254,152,235,219,157,145,55,246,18,216,73,204,169,108,92,180,229,161,160,236,172,71,167,235,191,32,232,185,201,149,196,94,170,20,242,66,100,224,3,103,152,112,114,42,240,115,172,255,254,30,220,69,139,112,87,32,10,124,87,175,91,121,135,181,98,65,144,46,40,247,107,88,90,173,40,228,36,213,204,25,38,242,26,56,107,223,222,30,127,56,190,113,35,210,189,48,116,146,124,15,185,253,150,84,35,42,166,21,140,40,161,156,201,149,48,49,167,248,80,62,186,147,89,230,140,226,170,223,35,120,135,125,160,9,159,15,42,86,85,35,210,14,214,87,37,67,49,14,252,179,30,61,148,247,239,162,162,59,192,146,147,150,10,85,76,146,198,15,138,204,231,234,102,252,154,5,25,165,189,140,245,230,101,125,174,41,21,24,219,155,239,193,49,212,116,172,7,25,16,25,146,86,62,82,248,252,120,10,121,174,184,240,16,74,234,248,99,65,58,155,27,246,165,143,20,219,181,201,237,107,252,193,57,94,84,156,202,85,201,198,155,135,147,0,75,205,199,117,34,116,20,87,111,119,186,97,100,144,140,6,93,16,38,167,75,125,77,171,233,80,180,168,62,133,135,146,172,243,155,160,35,106,101,63,153,127,19,76,181,231,179,237,31,71,157,195,155,70,180,84,140,195,151,59,95,182,107,79,89,164,124,215,179,113,25,76,158,74,116,98,173,102,47,180,98,160,249,13,12,41,169,210,74,105,36,47,48,148,238,216,230,224,144,4,11,139,24,20,193,246,30,241,36,161,220,129,196,0,4,12,161,212,109,46,246,144,138,27,206,169,34,122,215,18,146,178,71,87,0,75,29,118,164,59,240,132,152,254,84,199,204,159,73,85,254,63,148,230,102,14,246,153,28,162,15,113,41,231,252,40,58,181,185,136,175,87,142,106,120,169,228,102,83,239,243,96,31,243,54,117,229,176,98,100,33,190,63,246,15,208,187,58,220,11,131,211,160,135,242,134,113,247,221,33,171,83,46,67,160,222,184,171,240,140,159,25,90,215,242,120,3,88,141,204,32,199,227,215,219,114,161,215,145,61,68,195,205,183,211,94,219,72,101,36,145,251,100,117,236,139,97,197,229,84,248,94,116,122,9,69,64,74,171,176,231,235,157,75,239,90,18,248,184,136,221,190,205,175,3,225,42,149,93,16,162,207,247,8,59,106,54,76,221,224,176,74,140,245,186,37,250,162,62,205,179,212,69,58,0,108,74,64,79,66,214,31,25,52,74,161,95,214,59,152,18,139,109,45,245,91,156,229,216,167,3,136,234,60,242,169,135,207,74,164,180,232,36,102,58,19,202,31,45,148,181,135,205,30,107,14,247,162,228,239,69,221,119,150,239,163,238,114,103,60,227,117,0,90,39,136,129,158,38,128,132,109,65,19,216,79,212,91,190,74,36,127,51,39,28,152,151,227,7,64,231,20,132,53,187,214,253,209,134,65,222,79,179,198,136,29,215,206,49,249,91,30,4,14,95,250,228,140,52,23,186,102,39,41,148,214,180,233,170,84,111,142,42,57,178,239,87,7,75,122,193,189,55,210,45,228,36,158,112,121,54,45,190,32,202,231,198,53,134,50,22,86,242,119,122,128,26,192,134,55,231,216,99,242,129,236,186,67,250,6,207,77,166,32,65,251,213,246,78,231,254,234,247,108,224,130,214,27,176,245,113,38,211,139,166,253,92,98,143,153,110,14,19,177,104,117,80,230,131,156,177,94,151,144,128,220,17,252,74,126,237,248,192,2,126,188,223,1,31,39,194,20,75,5,22,10,116,184,172,146,90,216,222,186,72,186,4,235,186,122,115,210,149,232,78,175,180,61,239,96,149,211,10,87,196,40,184,177,195,66,167,198,127,207,206,54,171,138,107,164,91,15,157,17,241}, {41,107,144,67,47,208,165,215,101,223,197,127,106,151,220,162,236,223,184,154,21,168,228,107,16,53,210,210,130,148,63,245,13,1,45,103,162,201,17,239,182,185,52,160,249,147,46,108,112,30,55,50,204,52,117,48,51,76,84,145,6,46,191,61,40,38,163,201,155,126,162,176,131,159,218,50,29,234,20,113,199,249,61,169,151,19,139,73,87,135,153,75,196,150,92,232,207,39,5,42,1,65,64,120,137,178,200,129,39,183,74,162,112,128,123,240,146,187,227,246,194,170,241,124,45,56,121,175,198,231,139,41,170,143,166,16,218,133,145,86,190,37,141,255,241,127,4,37,19,103,133,244,59,119,0,116,119,157,109,27,237,195,113,252,177,76,198,225,136,235,99,79,255,46,59,34,213,163,119,174,17,160,132,225,100,0,110,173,57,219,49,54,197,72,167,219,237,135,46,42,110,174,1,89,30,196,32,194,157,100,216,252,12,110,206,192,30,103,18,155,61,9,245,111,170,22,218,17,19,233,104,138,94,144,207,58,231,76,56,23,205,28,15,105,170,169,79,220,59,38,81,192,237,242,113,108,191,171,130,208,44,71,31,36,186,9,48,17,111,227,147,120,116,9,193,63,243,123,8,154,91,189,2,141,0,44,145,88,248,49,203,34,187,0,206,169,105,81,157,37,95,78,2,240,114,45,216,34,231,19,27,88,61,37,248,165,27,195,182,181,168,191,3,125,175,191,46,141,103,185,27,120,73,12,169,192,58,118,221,58,58,90,129,67,185,90,205,131,120,159,40,111,174,91,114,242,202,94,183,166,27,207,156,126,76,214,89,82,144,177,133,217,66,100,200,98,41,44,127,23,12,255,236,48,91,9,216,254,114,245,245,228,84,215,196,35,193,53,58,75,153,69,251,188,220,22,209,98,198,60,169,3,27,140,26,107,165,150,84,36,76,232,21,197,28,57,48,44,27,41,209,47,155,180,57,87,249,214,1,17,195,147,150,94,25,186,80,97,89,26,123,93,32,61,9,90,193,27,35,80,244,145,10,122,177,140,131,195,253,186,108,139,135,117,178,76,102,146,216,2,188,48,195,58,65,63,190,224,122,65,17,143,229,152,243,21,90,67,164,49,155,149,218,202,182,73,102,34,26,64,79,157,195,83,200,157,215,237,251,192,52,254,28,35,176,90,142,119,130,101,216,247,40,192,106,25,116,21,29,106,205,203,151,24,88,159,226,53,201,103,155,112,43,60,155,196,198,209,46,102,76,237,164,8,244,176,73,43,44,52,182,105,65,99,158,25,207,138,50,6,50,174,117,165,113,15,13,214,99,170,72,9,99,252,86,243,37,37,38,82,229,135,152,90,32,245,37,218,100,61,246,181,231,11,122,121,118,248,52,106,166,10,161,4,7,208,44,111,65,81,186,19,223,185,58,31,27,123,123,183,48,88,243,109,71,180,105,36,77,17,32,103,174,225,247,228,233,235,221,203,231,65,226,232,208,235,214,57,122,189,228,137,29,40,146,47,199,204,30,198,38,53,33,24,214,183,71,126,245,6,195,115,152,99,128,29,215,173,241,205,195,185,201,252,10,176,7,36,250,36,255,6,143,40,201,16,138,236,210,50,99,158,135,19,152,228,234,25,71,7,202,23,76,53,111,138,133,223,91,175,13,207,138,43,61,126,34,239,50,34,112,136,192,88,46,19,73,200,118,211,242,152,204,252,200,43,48,245,11,72,21,249,225,85,251,74,26,85,62,146,104,206,3,10,56,254,209,120,144,162,223,223,239,119,42,181,103,101,2,26,38,211,173,34,236,250,144,217,210,185,112,29,48,224,145,39,57,146,145,55,8,181,98,72,40,171,13,7,250,114,80,85,123,104,148,153,139,81,128,98,86,14,167,91,224,225,179,114,30,243,181,213,197,111,49,77,205,245,67,169,134,176,30,83,246,86,172,29,180,204,76,229,61,25,228,142,9,194,207,136,226,240,239,72,36,143,31,154,123,192,248,218,122,227,53,224,154,175,185,81,42,232,54,180,217,248,198,120,39,87,110,31,172,91,92,88,195,187,69,101,69,222,210,93,244,109,175,200,162,168,20,65,155,5,247,27,194,239,21,59,145,32,147,107,203,151,174,78,212,53,159,75,75,82,56,97,10,38,198,106,61,180,81,11,192,77,52,22,212,39,55,219,218,52,65,193,163,217,33,95,61,245,146,150,88,213,15,4,132,81,70,142,8,88,112,130,45,213,163,207,224,80,87,46,191,228,178,182,209,67,38,46,144,159,245,97,24,218,19,246,47,129,213,234,197,236,122,69,56,166,217,10,233,190,155,156,102,76,69,79,55,134,139,255,217,26,21,151,47,167,94,93,219,129,175,28,236,177,4,189,201,139,157,140,208,8,53,203,51,19,115,108,157,120,223,154,119,41,143,79,56,37,95,236,155,209,102,63,111,242,143,150,88,205,145,84,163,189,40,167,110,152,7,203,40,210,254,146,104,21,133,164,114,186,98,175,193,51,125,130,111,189,6,92,56,129,38,135,93,250,39,13,92,238,21,175,168,154,145,208,118,20,184,249,217,242,6,240,154,0,164,174,170,208,131,251,91,226,195,63,191,33,192,214,41,68,40,132,185,191,34,5,175,62,174,147,69,58,249,118,103,44,230,228,67,213,222,55,35,13,57,117,210,148,192,57,58,107,195,80,83,170,14,126,22,51,77,72,113,79,145,156,49,146,82,12,10,104,175,231,234,99,30,250,235,42,59,49,188,234,241,174,123,85,231,85,138,194,43,137,1,127,209,182,77,169,91,19,150,212,11,234,109,11,55,102,26,131,219,185,170,205,20,214,87,43,79,189,135,224,232,70,99,63,68,121,184,140,218,112,0,30,179,221,82,148,81,173,155,147,81,177,35,14,207,185,44,62,108,35,95,122,225,242,216,40,12,102,146,116,164,97,184,188,187,133,234,217,228,185,227,51,162,88,81,194,18,229,145,189,175,25,134,24,19,55,234,78,167,48,226,138,163,0,35,94,196,202,227,203,101,184,68,104,53,75,164,157,26,207,130,60,105,196,157,82,223,195,68,37,204,222,151,152,55,66,188,238,218,137,244,142,31,35,244,34,152,204,47,210,157,66,96,26,127,172,89,98,57,40,45,155,80,185,239,225,11,36,246,253,234,97,145,13,228,48,25,46,183,179,80,52,201,105,212,253,245,44,41,44,240,143,204,112,115,174,133,235,43,46,130,192,100,152,191,2,180,95,179,67,211,154,106,117,78,138,45,68,9,78,108,159,233,154,67,141,74,51,61,170,177,153,114,225,108,156,23,22,144,79,217,232,89,245,183,189,110,143,113,139,192,49,199,25,76,11,174,188,96,136,132,172,75,10,88,5,65,89,188,212,147,57,37,172,159,69,30,240,158,137,119,94,96,87,34,98,230,33,15,234,189,22,21,167,21,75,234,134,144,175,16,19,77,87,236,183,174,198,60,205,43,52,161,134,90,221,35,147,29,14,35,66,74,80,157,75,8,124,203,10,19,183,247,81,113,221,113,152,169,170,20,214,190,31,163,61,44,100,181,28,27,98,199,77,155,239,221,131,14,192,95,136,241,107,99,192,232,223,207,200,186,40,26,129,95,37,93,151,225,108,142,85,63,101,12,59,195,36,71,173,58,236,126,80,139,215,154,35,101,190,173,168,220,150,232,246,161,148,248,128,193,172,56,18,133,212,197,78,43,103,91,49,6,34,3,45,113,180,72,135,95,174,200,188,245,95,28,239,28,65,78,108,206,206,233,7,89,144,109,208,208,147,249,215,252,93,211,111,216,96,1,16,187,244,202,128,176,12,128,150,248,194,148,246}, {32,170,132,211,101,148,101,202,87,45,187,21,180,109,253,68,214,214,201,15,190,22,243,223,213,97,15,208,42,144,54,115,139,176,112,240,75,192,73,87,94,240,153,13,50,248,212,70,37,5,9,32,204,115,13,40,175,153,249,43,48,246,43,109,235,136,198,102,110,28,131,68,177,25,3,108,16,164,217,36,71,220,103,245,107,208,166,119,18,49,202,170,233,87,18,200,18,147,234,151,54,20,183,67,185,169,167,147,237,91,12,17,196,32,52,183,243,8,103,214,69,15,60,218,101,202,92,58,244,144,3,245,102,147,209,29,61,199,205,37,245,187,19,118,25,190,41,255,139,218,147,58,94,68,75,9,104,96,246,44,133,207,199,246,170,224,79,230,53,228,136,92,10,155,246,122,25,195,38,250,13,250,187,0,214,97,195,4,136,146,141,35,56,151,21,114,249,36,163,126,249,44,17,2,23,52,163,12,72,52,191,41,213,138,115,172,84,8,164,10,90,11,73,44,108,58,71,139,246,251,54,84,87,134,24,42,33,48,85,107,50,56,178,148,254,181,90,230,190,214,90,138,2,135,132,73,221,246,28,161,103,178,91,65,128,123,212,178,129,128,119,78,70,186,164,183,133,251,5,58,208,58,76,70,127,109,222,121,16,41,127,194,247,22,192,58,57,235,116,8,1,232,37,14,249,169,5,50,62,168,90,99,122,65,157,55,67,241,115,218,245,204,19,5,38,104,226,133,234,171,122,206,163,19,59,153,96,175,150,213,23,50,72,28,164,233,54,41,110,157,131,12,116,237,10,236,62,68,152,217,195,236,29,7,29,235,99,126,53,192,17,98,59,78,70,22,101,152,205,250,199,169,189,44,124,198,124,126,75,163,90,130,20,52,255,10,214,140,179,179,40,138,37,254,66,198,0,143,168,79,1,11,142,70,104,37,162,81,93,220,224,198,79,29,215,254,96,111,178,143,229,72,194,247,12,50,181,66,247,227,201,55,108,158,247,147,8,197,68,47,58,249,122,179,111,220,176,176,254,235,228,232,248,62,142,46,211,77,158,232,46,163,212,255,156,239,238,157,198,142,194,68,124,39,135,204,245,28,20,21,122,74,96,71,74,45,80,149,122,165,111,204,205,147,76,219,36,173,26,58,124,189,58,169,37,222,13,104,126,204,98,211,185,0,70,89,73,132,227,111,5,149,4,176,111,229,52,129,192,3,157,149,219,211,94,196,139,251,120,119,47,50,98,75,186,141,57,238,241,217,108,204,204,96,166,173,209,132,153,74,17,126,254,17,226,191,246,114,102,28,237,54,50,126,97,238,255,55,82,45,123,216,226,23,158,155,34,62,146,26,223,58,242,52,159,47,42,240,32,26,203,131,117,156,66,197,113,240,20,92,167,136,154,117,253,150,123,168,169,6,218,100,242,202,94,246,62,179,44,168,26,180,166,100,201,159,9,198,132,159,162,23,73,40,237,19,40,131,105,80,52,104,246,240,36,81,61,245,104,236,117,186,162,214,163,219,125,145,38,196,10,132,87,246,197,166,22,140,151,59,139,11,255,44,197,105,49,135,30,90,24,16,43,210,23,36,117,131,28,159,237,224,225,224,102,244,116,236,156,25,226,153,63,210,77,146,195,12,19,70,162,239,253,215,230,58,179,46,84,142,224,13,95,60,112,254,130,22,230,49,105,200,119,208,37,41,95,206,242,75,192,175,45,51,103,41,33,211,4,40,255,19,191,206,215,183,200,8,153,201,57,46,104,168,109,214,134,116,128,221,44,63,150,3,199,42,205,229,0,16,74,40,131,22,89,20,142,89,214,48,150,131,238,147,45,222,27,58,56,237,194,141,70,142,127,67,100,101,64,253,101,245,44,118,227,118,147,101,64,71,158,200,142,206,245,15,10,167,193,211,44,214,11,84,63,250,204,2,6,109,166,196,241,64,171,131,101,119,20,29,225,81,139,190,211,213,210,184,253,178,145,66,234,185,84,187,217,43,232,40,193,77,209,63,144,78,71,66,22,238,176,51,170,48,172,185,240,117,104,118,243,201,139,186,98,43,143,98,138,34,125,162,212,130,59,199,82,85,122,16,0,83,121,137,216,209,160,115,181,63,180,224,97,72,183,148,14,112,166,21,140,243,200,22,89,16,43,13,15,140,15,233,254,202,47,66,83,255,63,112,183,86,66,202,63,21,202,152,86,131,92,10,67,58,222,168,79,97,152,54,129,240,85,30,101,235,73,123,55,204,16,80,116,140,130,22,195,177,224,98,66,75,245,162,222,210,220,20,59,69,161,248,121,33,248,178,49,236,81,236,216,150,124,221,85,175,32,50,120,211,21,209,51,236,200,56,242,153,158,99,251,127,213,40,122,59,203,235,119,69,167,151,160,16,164,189,113,111,6,243,190,133,120,121,225,139,137,41,51,124,244,189,213,190,90,105,152,119,39,168,211,255,112,17,54,108,92,11,120,107,118,179,66,194,5,206,199,107,69,197,231,118,117,38,144,133,252,164,156,136,14,144,158,83,170,32,211,172,164,64,205,188,202,95,121,162,181,68,26,52,190,243,174,194,247,166,162,218,58,67,108,105,95,231,246,16,85,160,108,30,62,228,4,186,187,31,133,116,6,168,194,107,199,45,211,169,107,18,22,36,163,53,125,132,203,110,170,188,183,32,20,133,45,17,131,123,233,235,31,1,126,59,190,88,95,110,134,150,230,49,120,177,88,246,53,250,36,88,217,89,133,41,193,84,111,134,229,8,147,26,155,41,251,76,190,32,32,103,125,33,202,28,82,38,244,25,17,147,244,251,229,75,216,46,149,217,40,59,89,14,12,141,41,66,255,182,26,217,181,149,177,123,61,72,158,98,99,105,121,76,229,228,102,115,105,148,169,98,6,193,191,246,136,241,210,251,139,202,133,81,84,29,3,128,51,226,248,131,156,5,42,189,188,31,219,28,211,46,208,118,190,233,247,154,17,121,39,162,208,0,211,4,162,98,248,125,21,73,168,248,112,76,15,227,205,158,127,9,27,129,255,102,219,145,149,242,17,18,228,25,65,215,55,169,79,50,204,32,45,21,77,93,224,101,95,90,88,190,202,160,100,125,238,2,242,255,123,155,45,114,77,39,82,210,70,137,30,151,72,124,194,30,140,17,116,252,58,49,189,44,210,115,71,204,158,100,77,207,132,72,170,70,234,171,177,249,146,32,96,175,197,15,245,114,175,215,78,23,75,20,200,79,96,175,9,230,47,59,68,4,137,89,132,125,19,50,236,100,136,60,175,49,71,54,231,27,195,249,120,203,203,60,13,242,208,13,27,124,255,3,24,237,246,11,156,31,73,89,53,227,246,248,83,198,236,77,221,1,240,190,59,79,59,207,97,74,99,37,163,79,5,123,58,122,34,239,119,162,11,139,227,88,35,189,169,66,96,4,117,102,78,253,35,23,80,162,24,198,169,232,180,24,34,127,58,131,168,229,201,34,42,104,44,228,198,173,8,153,144,46,85,229,188,166,194,58,247,210,16,45,30,234,38,252,195,222,172,149,118,98,126,141,7,166,141,70,230,35,41,221,110,91,146,84,68,137,79,37,124,183,187,218,106,224,130,249,143,229,251,107,159,147,50,90,48,12,193,139,224,179,157,8,72,246,192,36,123,92,29,12,102,239,210,63,135,154,181,54,207,139,11,106,101,101,19,252,243,44,79,99,204,226,102,56,214,7,158,136,66,56,158,46,209,227,60,100,131,220,60,209,153,20,236,106,136,26,59,55,29,193,246,1,142,193,168,239,104,27,239,209,94,61,13,244,182,115,83,229,112,26,154,4,60,143,162,149,77,185,61,178,72,195,121,141}, {80,115,129,111,200,37,223,254,103,169,245,176,219,109,125,183,130,85,174,106,178,41,14,99,72,248,170,1,113,146,27,207,101,73,227,148,193,238,158,128,69,125,109,169,190,40,206,105,185,143,245,166,141,8,200,111,30,67,210,26,96,143,142,190,190,255,2,148,178,132,111,132,136,245,214,118,126,42,12,92,45,164,223,125,109,211,175,12,148,106,229,92,200,218,214,183,22,163,21,133,161,62,143,93,177,185,121,173,178,57,230,221,121,98,119,68,187,197,14,240,238,22,30,66,46,9,89,150,208,133,197,151,21,82,71,70,92,160,165,180,100,180,224,230,22,161,107,211,12,82,218,230,133,157,205,238,134,209,189,175,206,57,64,68,231,182,198,116,102,212,155,201,191,71,221,205,71,179,166,232,22,72,113,141,176,26,123,104,89,162,93,120,199,152,96,60,78,171,186,34,25,135,59,124,79,224,27,255,85,41,127,122,137,14,9,204,176,161,120,177,228,5,80,248,86,79,170,14,162,74,202,28,115,52,111,246,240,24,248,246,245,218,36,188,69,78,17,17,118,203,211,241,145,186,137,57,76,43,78,114,97,92,11,132,73,36,165,127,203,173,154,218,9,175,156,253,253,228,198,5,253,155,176,137,197,211,2,176,224,232,228,66,10,220,149,246,59,144,31,6,26,224,46,141,120,168,154,11,247,203,159,11,192,29,24,183,94,60,209,207,184,64,6,107,154,15,248,157,11,234,160,77,173,26,140,53,106,132,150,90,178,71,48,173,49,176,127,147,99,177,59,130,221,176,64,171,191,86,70,213,206,195,12,167,186,130,87,116,72,88,150,2,178,182,211,197,44,129,38,71,15,164,86,88,119,119,172,161,169,135,88,58,111,140,89,85,89,182,135,26,94,19,35,70,65,202,227,189,105,5,187,204,76,21,120,246,153,240,47,38,27,52,198,10,252,65,17,212,252,22,129,48,79,249,152,34,165,76,235,144,41,83,46,91,229,175,165,174,252,30,48,218,254,24,144,182,234,93,126,48,241,84,144,52,111,143,139,84,220,93,17,168,61,79,55,127,117,196,172,125,169,90,172,42,189,73,136,150,140,102,204,246,216,238,212,148,245,166,94,48,6,230,148,162,119,112,155,119,191,172,234,129,241,223,58,65,69,8,90,207,77,74,101,120,79,239,124,232,187,218,221,87,169,47,221,190,2,245,44,27,162,127,243,167,167,118,111,234,199,80,42,2,234,223,180,201,144,155,98,24,77,175,175,7,228,255,238,30,144,197,40,142,225,14,155,87,3,202,73,217,123,222,59,221,45,234,125,242,192,144,91,188,178,219,109,65,6,224,44,158,25,78,152,208,27,197,208,27,17,129,159,27,213,159,179,45,183,51,201,49,70,67,32,54,199,206,65,188,147,61,114,109,33,249,241,228,166,132,48,55,145,94,208,200,217,118,254,137,131,166,110,145,235,102,53,40,113,137,201,66,229,144,79,63,87,209,164,114,57,106,159,248,152,17,0,10,29,108,15,118,43,213,113,177,231,139,190,227,182,48,119,63,19,124,119,191,231,133,135,160,70,99,116,215,234,206,176,226,107,141,28,168,177,195,243,96,9,162,81,92,135,210,164,124,109,132,50,1,94,128,28,77,203,12,95,71,1,142,202,229,160,232,219,200,128,169,104,68,106,101,223,244,253,37,66,42,14,153,118,179,181,91,117,118,36,156,106,5,189,102,93,37,71,16,183,189,83,249,157,128,129,0,235,198,126,119,236,96,253,183,142,184,58,80,134,61,145,143,204,237,184,173,164,226,213,140,134,53,112,144,232,164,116,59,228,50,109,41,251,224,133,131,159,136,52,84,119,236,178,151,190,6,113,199,123,178,148,247,93,36,161,48,166,238,76,11,199,170,235,166,79,233,105,34,176,226,107,137,243,162,222,65,52,204,21,253,68,11,163,171,83,226,145,197,208,116,209,174,66,136,216,239,190,220,20,133,201,228,144,237,252,82,28,166,95,181,91,76,185,199,222,128,183,42,39,112,25,181,17,247,181,139,119,101,40,42,156,23,114,3,58,204,187,230,152,125,5,53,75,49,123,220,179,202,106,164,200,8,113,49,244,153,177,93,45,139,226,207,200,88,164,172,152,190,37,84,132,11,146,139,146,28,94,83,141,204,172,247,242,139,128,148,245,43,151,45,27,135,56,175,207,84,8,168,234,241,143,68,90,66,58,215,23,63,22,214,40,125,69,137,146,92,50,11,189,209,84,161,123,242,171,85,41,210,249,54,84,208,215,88,179,183,163,244,154,46,49,118,50,172,81,145,173,200,238,57,108,112,86,74,141,225,117,234,73,6,23,161,33,59,2,239,152,197,153,236,162,143,16,247,27,62,179,146,145,214,212,100,150,242,85,8,219,23,236,55,70,248,172,89,141,245,89,149,97,72,80,148,104,53,199,162,243,25,128,118,225,247,174,228,149,227,241,211,109,78,109,230,1,235,139,88,230,185,9,176,175,39,99,4,92,0,159,30,35,206,90,24,58,103,96,49,111,143,93,19,172,88,225,130,215,15,18,57,131,17,148,47,161,248,227,239,179,156,248,207,85,173,243,15,153,49,251,60,173,196,38,70,126,199,20,161,147,102,241,222,84,134,237,249,102,121,186,230,128,114,26,3,13,134,3,189,96,110,169,219,224,198,14,43,236,146,245,77,84,198,249,31,226,81,80,74,74,71,77,82,97,35,78,179,151,175,132,189,42,121,169,114,36,175,4,170,86,69,165,243,28,221,192,11,155,189,216,215,176,237,7,164,121,175,187,162,4,48,78,211,26,77,1,21,106,13,42,42,152,155,228,184,76,40,136,64,145,239,189,211,82,231,252,25,171,134,151,123,9,232,117,55,179,11,226,10,107,64,169,235,77,41,37,71,106,105,174,153,171,173,30,134,233,35,219,23,122,10,94,57,91,33,13,108,171,219,174,155,218,15,4,192,187,26,44,229,177,138,132,57,77,170,65,153,35,237,36,169,218,169,43,107,49,167,81,186,246,240,147,63,201,117,137,26,155,14,43,57,216,173,227,251,194,29,10,130,75,219,187,148,215,4,178,26,22,103,183,232,149,254,243,64,80,216,34,15,253,65,52,113,215,53,152,152,248,69,78,19,156,127,172,143,90,40,105,243,109,13,122,222,140,148,59,159,189,238,209,86,109,71,136,83,196,234,241,206,142,241,144,165,195,56,41,144,109,165,58,120,119,20,229,173,9,111,3,54,178,175,96,144,21,246,134,11,129,38,38,208,135,215,173,105,48,86,206,54,200,16,52,159,172,250,223,63,8,199,20,232,204,135,127,14,161,89,199,144,160,112,133,44,176,237,199,28,202,85,133,111,226,218,53,71,183,206,14,231,128,128,84,220,174,220,168,221,91,194,248,138,232,136,244,25,173,98,106,61,24,164,13,13,181,63,109,74,197,92,19,9,172,56,76,59,171,167,147,77,3,24,14,246,118,226,195,234,50,193,200,165,40,171,188,163,90,102,39,61,234,141,253,15,65,115,98,74,148,242,8,142,197,71,246,113,172,128,163,183,22,169,218,194,249,172,254,156,127,6,40,98,39,67,87,65,98,246,104,250,3,77,205,23,133,76,221,182,41,89,197,173,58,205,229,211,253,227,17,142,69,85,145,157,214,152,67,14,150,196,47,194,139,230,70,116,40,51,70,147,64,73,143,165,175,175,95,33,104,57,64,151,162,99,195,49,21,47,112,10,16,106,232,42,44,70,181,189,99,40,110,30,169,222,24,31,5,137,51,236,7,138,7,207,137,203,76,193,175,235,254,207,226,226,3,200,73,252,146,34,212,101}, } ; static const uint16_t precomputed_encode_857xint16_x[precomputed_encode_857xint16_NUM][crypto_encode_ITEMS] = { {29500,53226,11781,59352,62393,15195,16717,41779,27834,45929,32825,18108,31210,54127,8163,14101,45340,33559,33539,17820,25090,14226,17255,64390,10947,55780,62053,7764,58731,9337,22190,15553,62934,34133,60160,40149,32232,13848,50380,39829,32844,50227,65296,55012,48460,44077,11722,64251,49716,7709,34557,58154,62367,51497,54015,17037,434,62574,33538,52323,19966,42747,923,62631,21341,5224,53059,63676,17691,25581,40563,39724,20229,23518,61440,4090,23440,19921,10108,35872,48643,10711,17893,47164,42367,32688,13193,6988,5449,15577,27592,19211,43879,31396,10816,58136,49391,24003,6774,58121,54265,57396,47590,63355,16705,60071,51661,42066,30088,55257,11476,29891,47479,30610,38233,29091,53601,14492,47677,59489,41367,55252,15709,19366,26427,9836,37918,4953,17623,27780,19303,22784,8636,59749,45881,64406,36451,43679,16564,15826,61564,46616,54755,60923,40900,20319,1548,61538,54158,64512,43197,53141,55658,38056,11553,64973,18548,42210,4430,29961,19285,35745,41117,46177,8452,9992,25934,11605,16762,22061,28181,45393,44048,4260,39630,40346,38978,17741,39187,46168,4920,43690,21750,53168,60935,33850,39332,12292,11074,56290,10128,40337,29681,32797,63631,25137,47355,21215,4413,63756,28017,1566,58102,49993,19973,39554,57047,22043,7567,16732,34488,5778,17944,60411,49116,55276,39780,1253,10546,48621,38122,45205,13733,8063,37006,7515,42607,55528,22454,64662,16325,21381,28373,27880,46616,36700,28076,55013,54456,27890,15296,3504,30757,38879,59316,45812,26390,6925,16328,14627,10165,36799,2821,51893,24908,14030,15532,44929,22001,25500,48078,29947,14820,45657,42544,401,35104,19919,11560,2561,30607,59807,53797,55230,29125,7124,23494,21918,26783,22483,41391,813,33335,15074,24378,32198,1088,30955,59786,18105,20960,61280,55990,44111,58825,55958,52611,64175,39815,1208,56104,53284,9815,45148,23266,47182,42179,564,5040,62197,60961,6059,11575,32165,1332,4497,32534,28617,62108,44826,64557,26800,62531,61841,17276,31253,53586,41230,1621,15941,27589,20185,10893,31558,24605,10041,30189,51058,30054,45090,44086,8686,54915,19049,30720,39118,30734,14420,11268,65079,57595,34920,60163,11942,50668,4095,37191,61038,57588,63838,48539,8364,50041,25323,11251,61465,63868,30559,27793,3143,21009,30902,42868,33541,47360,3302,32061,14484,51069,34268,28300,25666,63375,31867,8151,46427,2735,7877,45335,5234,10293,29977,48464,3396,43285,59134,3048,45970,10746,45254,45165,39878,28481,29014,2856,43524,63576,27660,57478,9053,27868,39033,36667,55610,19028,63769,19323,54159,33826,58893,25757,21989,6540,53238,25092,58233,31474,65197,60312,40411,14225,4854,18904,43468,23660,58804,41121,44268,42823,49131,59424,51641,50325,43614,61972,25666,992,39015,29296,61482,44147,65279,56350,35653,22384,2592,22396,23471,34681,25269,36929,10286,27639,23128,10413,9444,52437,9753,6898,27448,57055,32542,48696,9073,48594,29744,31890,47375,38653,9044,42538,35861,41256,51612,12437,42801,20728,47678,22931,36070,43746,9183,34680,41085,40713,10767,21846,53795,54798,9559,12611,64526,7859,37949,61431,41634,49211,37778,2710,19541,50834,35343,59340,26346,39676,6405,48549,62860,26086,44669,5417,56088,61339,12737,29908,1964,4121,37401,15958,63570,30972,30986,47278,4336,59978,25592,14913,7067,42486,5263,46555,60873,64619,14785,21598,51868,51541,39878,37767,19200,51149,8821,5236,28503,47735,25697,35984,23814,9744,19367,19837,59819,46160,16040,34693,44178,39923,9120,25962,39231,4991,46412,46055,8173,40263,39875,46150,35924,38851,24379,27574,22863,31908,46039,6513,40524,29770,44386,12134,25268,63904,3085,43305,19154,9321,12335,61076,59096,37088,2820,6283,49428,7926,9457,56481,50305,1024,41228,28116,63022,35472,52763,8873,55162,37394,18354,87,7499,42102,61499,39044,21758,52423,18847,65109,37951,26342,62990,7321,4002,10609,64743,14888,47541,44936,36439,30826,58537,21350,62447,8032,14067,58741,25264,8548,16318,4086,48080,56378,33547,41171,62087,29062,56823,43809,11859,41027,47326,61611,40844,23065,62167,888,36184,8396,58311,56279,41330,37335,17469,52675,54199,56158,25928,37156,25851,60533,24971,58821,63572,29790,2426,16453,43850,59312,40427,61259,4698,47352,56712,52670,943,10977,23957,41488,63439,15112,13930,56652,45280,35914,47861,64037,16034,46029,17876,58,19052,20288,54850,6431,18996,24481,15318,4760,28043,62765,40027,55525,935,60040,62012,34729,19151,46244,9448,14950,51731,11551,46484,52615,27422,63246,58530,17903,30685,61334,61091,26482,58172,117,10074,33160,9886,33920,16749,55315,54351,48731,9290,13183,7207,38808,2019,59200,33812,47925,64982,34513,56897,45903,35014,55069,12750,23545,1054,24334,58618,13452,47639,10086,37929,46294,43753,28500,10894,45625,22511,19207,49530,14269,11730,9444,28830,13945,48685,51744,50919,34357,5682,62038,31351,6784,34496,59191,25560,33266,47852,64067,52998,42573,16672,54779,20214,65255,63466,57452,54914,45083,29173,54054,42635,23805,36706,28313,4878,26801,20597,33766,45468,38750,32912,4572,19196,60798,49400,32258,57276,7937,49703,19220,5637,29706,44216,23186,57048,18618,1210,47851,29562,38354,20200,46255,61245,38240,2771,50263,47144,50097,42818,32710,52943,43830,27530,23460,40207,61713}, {27433,17296,53295,55205,57189,32709,38762,41692,57324,39608,43029,27620,13584,53970,38018,62783,269,26413,51618,61201,47542,41012,37881,27694,7792,12855,13516,12405,19507,37204,11782,15807,9768,51619,32411,45218,40835,13018,59933,28948,63943,43325,5015,18827,34647,19353,38596,59484,10191,10757,16641,30784,45705,33224,46887,41546,32880,61563,48018,63203,43714,31985,14381,44921,59334,10635,36778,4262,34266,22161,9662,65421,32753,9476,26387,62597,30523,29696,40311,7021,50157,64625,19633,57798,60296,20323,12031,8763,41941,44663,40977,57732,100,44398,56121,13873,18629,56231,34797,10798,44654,22785,50206,49696,25757,64728,28172,49358,26398,39698,2365,28661,5802,4570,59667,35432,36958,15055,19687,5944,7373,26895,43434,56399,9787,49233,62189,27761,43967,53378,18220,9247,2490,4400,58223,30867,2420,16321,31731,39432,48475,36098,11264,22673,12792,8907,187,43470,20841,9629,20063,61442,11634,8920,5095,22555,9533,42488,49947,46518,49064,32003,49071,36142,47463,30747,3145,49321,30266,15069,23098,17281,23225,33741,40824,28456,23470,62066,24266,42679,53019,32412,54860,21081,45456,55685,25666,25288,11305,6015,65292,12524,2395,65240,62834,58613,55124,9156,13761,19258,17817,48379,5852,25297,15558,937,35867,27418,38565,9300,59468,50453,14620,11312,10523,12241,46235,22329,55033,4353,37827,24214,47641,24912,6745,23931,15648,23049,7105,20515,37364,31242,36017,50051,47869,35692,30087,19634,37478,728,12476,15043,16193,57534,16762,36625,39141,5619,17242,12708,38299,51930,18870,8806,16410,40271,21443,40392,60887,49403,65076,8988,23216,30606,25986,63448,49192,6506,5492,27165,52173,6295,40792,13794,26569,28827,15403,50331,53702,26158,60748,2212,45300,11081,13356,27062,25409,6558,35535,1586,44594,42357,3953,54797,43619,2376,64611,62294,9509,21030,34789,23192,62752,55845,15716,46582,3047,31098,63606,27188,2726,1185,53255,28460,20801,5050,47583,7994,31515,46971,22576,28147,46151,9321,4429,26400,57774,58615,60393,52189,16871,59618,60368,14806,48506,35300,10269,12178,52423,50718,13606,6177,47062,32327,1781,29635,25496,7552,44503,52721,47555,64713,45066,9223,9466,1791,10383,4297,60554,13010,40547,4999,58520,6634,1863,6090,13644,35439,57221,44891,53005,11146,32317,61218,8754,34928,22720,4910,51273,54134,39154,64716,11208,62768,18443,63765,21985,19195,21786,37438,52840,2563,65080,30929,41616,57311,30703,46378,25959,6658,54054,8877,64236,55696,47570,7536,57392,10129,37433,14225,46344,18530,43816,1805,29434,21840,26747,39316,20875,25216,3670,23463,57824,29363,62238,54709,28613,19761,62925,43331,45190,21278,22262,7596,52404,58700,6461,36580,49673,35023,61666,18671,36644,39455,49275,56056,58234,57397,44954,20921,59434,46134,63705,30918,22311,8046,23468,22620,48067,25925,56901,24018,28148,51375,43170,16660,1435,7159,61378,15125,8337,27539,38859,20142,13780,19359,21067,24888,9738,27334,46141,2897,19904,5684,10196,56119,13530,49473,55715,24353,62781,38546,54616,1039,20868,36422,22536,33392,54573,53155,20704,11863,58559,46770,17361,11814,40848,25077,55832,62995,33071,60117,60613,17786,42552,2777,48873,40091,19558,20293,34359,65419,6873,38677,42799,23902,33243,7343,45548,48388,35785,35997,2256,52021,4915,27763,30877,39647,10615,20367,9528,60511,53659,16230,62063,38543,52568,21649,48547,42792,39022,51975,53800,37630,5480,42117,47730,44898,13249,33405,48495,23558,33080,34598,64093,3367,61020,44821,39592,53393,5238,63928,62169,61446,154,44708,53418,64387,57947,16323,8639,54976,17449,33832,49081,1314,16047,37806,14917,30457,11367,58598,54595,14302,3363,30009,38098,14784,27450,20675,43603,32270,13078,18509,20337,40081,37425,3154,26634,59311,25578,64030,10987,12603,60092,44785,21883,21991,49802,35115,32513,46801,43341,4955,54422,59915,2925,26167,33562,47579,52650,54804,11095,48463,57479,18152,16227,31044,36024,28890,7680,56755,37970,44369,37787,45393,3619,47567,15916,9068,31327,62177,10456,26124,29842,24996,48312,34235,55786,47588,13283,22690,49745,58642,48529,6575,6278,14099,20202,12455,35554,163,24099,51908,52195,47205,26692,19253,40356,53018,15490,50281,21149,50143,9540,57036,39063,16951,61116,35290,36596,8991,8948,52376,53807,17053,6752,44159,25177,10297,39725,47440,57839,9227,65014,25066,3473,12516,11801,46007,13392,27081,64980,11509,11305,36848,28876,44659,60293,11819,49282,39012,703,24500,17331,39635,30058,35406,17453,19977,40812,39657,36163,13130,43581,39345,57714,40044,5655,20368,59609,62809,48567,36718,35697,12736,6599,2892,48302,34912,44164,2635,1368,22849,54460,14739,44069,17823,61470,35230,24183,22368,25122,8678,59919,5821,42773,19221,34538,44944,4880,22349,47084,50862,52540,13355,34465,56666,37667,3613,16931,20554,19357,31752,2763,46867,20983,56689,39025,43689,54804,8126,15779,25644,7349,25115,19911,61339,33757,49166,34911,27633,49251,57320,51407,10426,33050,9567,38749,27873,21902,25919,15116,9411,44359,60474,20606,55179,9114,48741,43181,38620,63208,38049,33016,44225,4664,54405,20165,26411,12635,8710,11523,46193,34632,44639,48328,24565,61212,16668,27726,52942,2025,36953,53357,37840,55289,24060,28627,24792,4097,62651,32970,3248,38528,49912,63124}, {43552,54148,37989,51813,11607,5563,28084,17661,54998,4041,5822,57331,25045,53263,36906,29494,45195,61552,49227,22345,61534,3481,63538,18132,1317,8201,29644,10253,39343,11257,63024,27947,35051,26310,7278,17539,6577,27651,42000,9433,56391,62823,53355,30630,12562,43722,22505,51218,37650,38890,5174,17335,43449,37799,23533,4364,8388,46900,2291,54887,3909,55868,51813,14940,37108,62723,37734,7633,51005,9677,48117,30227,48665,65321,55947,14995,17502,2379,24680,11510,53125,63175,57514,58959,58421,23688,39690,31478,49945,64038,64013,187,25046,1219,37512,9101,38712,29205,9465,32419,11513,529,13335,3235,13384,10687,35541,44147,2132,2724,2906,11337,14956,35655,64502,21558,34391,10776,12321,27477,14386,38066,46590,58970,54974,35418,34562,18820,63197,41244,45671,16731,31616,45780,32897,20087,47686,47012,64389,14853,15056,17996,28031,31198,10512,49791,5879,15040,60217,2164,59393,3621,43513,12805,43070,25434,16762,14237,61763,55923,52469,1299,26662,34274,44010,52858,5027,39227,44896,54678,12823,7240,59812,10550,40302,3203,60788,60426,17470,55704,60611,1821,60189,32355,49205,25105,20027,5702,39013,64205,43463,11453,50812,32380,41803,33370,13332,2815,36054,46003,35368,65061,50754,36608,20392,2817,18062,9576,20898,56413,50912,7503,65239,28512,36786,18661,63426,12812,17077,58359,14281,40556,37879,50440,12100,63802,45946,56431,45232,60414,59620,16120,11918,19923,59550,41774,65492,61340,40430,36550,17602,10108,52359,7413,5396,19066,18272,11594,38224,42362,52335,37837,56140,44324,14874,48508,43322,56869,26637,52350,54114,185,22854,33865,28643,38149,45060,58735,33076,960,38301,54235,50270,64395,30584,12847,19298,36282,60985,55793,52332,24780,44454,34001,19097,32273,4606,49122,29430,7270,14061,32306,61025,14335,11602,55419,6114,39838,15906,6802,15071,13554,12191,61482,6688,33739,40053,50498,61553,23572,34983,30106,38653,43131,1705,25818,51954,63070,45886,43052,46106,25766,40905,50697,40836,6050,10313,5101,33576,20585,26676,61686,20772,62781,60520,47733,54946,56227,37245,50214,33802,63063,42693,35862,15255,2955,11519,27077,34609,23070,4120,53803,9239,33653,40732,57581,57569,62566,60532,6556,39394,53823,37453,3267,17939,61346,55293,15078,11955,36436,3552,15455,65136,5762,12774,51305,53367,10533,52831,19442,44992,13101,10599,54049,10244,5119,52927,47063,2248,51609,11833,43112,54893,29830,56704,16172,918,10951,58829,4096,10314,5763,5209,22926,12502,33686,37870,56877,14875,60728,36290,36422,17279,25956,64832,62821,30252,30435,26003,18240,51358,52878,4085,42762,54209,54828,21515,64063,716,27910,50342,16625,33707,30565,7444,20961,48779,54739,47314,45821,17041,47594,47956,11225,10472,19905,16337,20112,16967,60950,13232,12458,47532,30192,30312,51699,47755,11106,25231,8842,41597,33492,51003,21842,4218,21248,35193,53720,29600,16309,57524,18529,38071,28686,5542,62348,5832,4185,3371,35855,59663,51966,16943,65363,28735,22199,51778,5439,39114,33622,2652,14915,43230,24911,13976,61569,7765,60261,31561,52279,20496,35956,5762,45507,25312,19266,41717,53982,5340,17723,63649,8569,45816,60465,60497,38616,56700,44885,12832,54136,53525,60467,14536,39410,25502,32763,10453,15226,60363,17783,38823,4256,48548,28529,62214,34238,31096,35809,10633,31795,48628,48853,26970,30616,43047,65491,4464,27702,2908,27512,45942,49730,52741,27591,50501,30439,9845,34192,42236,34972,36878,21406,8362,44243,16548,48333,24522,41593,17589,13338,62398,49838,42743,55970,17210,26988,59231,4342,41045,7788,58430,47620,8123,29829,43014,27586,11719,43475,4715,9238,13731,33917,28363,48298,8375,34068,4397,31619,60393,287,15230,22718,28255,38534,12774,45432,63064,64053,22564,23001,10629,21697,34415,2277,6803,10651,19707,8382,26400,8573,7370,9810,6644,37649,64500,19429,11992,55701,15144,3673,36108,16937,46847,55578,38325,31665,18493,25246,26979,19577,58597,29542,37993,25257,49414,63167,61832,64466,51851,20869,7508,32771,57907,33784,1436,48426,8124,7387,11987,30416,59838,39671,30993,41511,208,1235,25250,32248,18709,63656,19568,58127,40653,2431,33051,26367,37339,62101,4625,6628,55105,43319,12879,8396,5421,23885,26080,23135,48728,41162,32100,750,65522,39803,29229,10061,53842,35142,38686,31816,7874,4492,64628,12602,11453,29650,52295,25758,53069,18564,18090,44010,63921,8338,44896,4037,29429,55215,5966,5195,20424,44896,58889,15151,1092,22921,32132,12819,25836,15496,12719,13895,7143,63939,52088,15563,61965,3536,31771,1023,60696,3062,8092,22857,58165,63734,50771,19948,477,48880,20283,53051,19041,9571,20387,31493,31290,61218,41591,35595,22755,48419,17065,1120,26229,64846,5923,41552,50712,59561,6324,32546,33594,58792,8905,26666,58412,44486,39176,11920,58709,42684,15042,54007,11536,59934,64550,57027,38316,25206,36222,42503,18061,9190,56617,23406,21650,35140,9551,46972,55995,57450,63874,58767,27643,37791,23090,3120,35777,46048,2205,63048,9408,23675,3101,61286,16338,39559,14005,35791,27147,25957,64531,11507,25423,58060,14438,2006,34974,14402,11934,58321,25660,56451,53564,5273,27372,6792,14139,49437,502,49550,61352,7016,53743,15710,62477,29622,58707,6768,1178,36668,38306,47437,45629,49992,36217}, {29520,28545,9672,65247,43367,45301,28123,46973,21890,27310,10674,25358,63560,426,37489,53019,18789,38115,61121,32926,32069,43373,10430,27086,36793,42741,2189,28616,17182,6866,36704,48782,65470,37890,33970,33903,62856,30422,10878,23564,42029,32223,54125,3247,27284,23781,56008,47062,41750,34069,16033,23951,47537,44409,14770,56806,25209,17527,50619,61454,5870,16926,2350,38489,34256,38853,21013,17991,41052,46245,46180,59104,41238,54123,21004,59098,40325,61133,53638,44989,14798,17472,46823,29894,54374,51611,18367,52701,45895,59558,18454,36209,6832,26747,41561,30813,39111,15456,43854,8890,34585,31803,57423,65307,10581,31359,3721,52233,41392,45432,1508,63568,20310,3754,19106,7370,13427,63087,6384,63224,56053,48164,20037,4369,52086,61907,47761,14729,11084,29262,23649,33803,9289,32677,44491,55962,44809,64924,58621,1478,39933,35248,54213,45058,59616,17124,56330,63125,36923,1567,57370,36142,43128,2970,52215,2975,7616,46872,15454,53201,16568,27398,3994,40440,59915,19872,6829,13708,33898,23190,18354,44336,45105,37759,45411,33339,45277,43840,22207,54598,50126,42764,33466,29783,22600,662,46770,50643,33068,18214,41999,22614,30583,41388,34729,14936,35951,21849,46681,6791,4958,17955,51777,48611,1385,52411,5452,63096,61593,9775,13339,2758,16892,54289,5884,12417,63823,8856,19621,37099,21289,23342,45029,44709,7932,55856,6398,46736,24042,12414,21745,13456,36719,21643,24028,43025,20285,32567,50293,32172,23209,10924,18877,38536,26252,63180,61144,38100,42741,12382,58886,41620,28791,30619,44223,33258,57329,16698,2117,53082,19021,30821,61263,59516,55995,22493,12201,48861,62722,6956,32674,42995,30375,60015,20679,554,57322,51636,39824,6242,44877,1967,65508,7918,50576,36392,3809,22427,51715,55625,56955,56635,59949,62077,37056,48219,56242,16749,57350,40492,19993,53400,50459,7120,33041,7071,40917,11699,13239,12745,17222,13856,52935,48193,15763,28018,63777,58609,33958,14128,24209,51408,30425,35326,42627,37230,26347,10293,35185,17097,37093,16207,53591,29348,27193,63647,4504,2560,27677,30223,54571,45425,35815,58302,12470,16247,31763,49015,34279,41095,25414,55156,52970,58032,36203,43036,50097,24819,41481,23633,53895,31908,33901,306,32862,19740,3275,18271,36353,58826,59552,51419,43392,17512,25962,62687,9725,10818,39182,45942,23477,30325,39972,1386,26301,9565,4167,48567,63827,32925,129,50923,30590,24812,47101,47246,20538,15750,36753,60876,44472,58020,36053,13702,36976,42216,15220,13028,10605,57595,33669,34975,21556,60535,38834,1726,51057,45691,63380,9309,12449,61094,2892,43719,42731,59727,8809,58032,35179,41715,16862,52276,64789,2884,43939,57939,50577,29904,44753,34882,61400,56510,34068,58569,60816,21244,42524,46431,19547,51129,32990,10935,28711,46361,63249,35765,25975,10792,6044,882,52282,59067,32152,13573,12619,56443,51891,42090,2248,12657,39412,23985,35629,53218,22728,44196,48792,21541,2948,35730,7314,21342,52365,63404,35826,38016,11253,11671,34587,44856,21711,43016,61930,17551,16986,55098,16151,54806,32040,35141,23698,2866,53693,41300,62075,21931,53801,14073,53332,22743,47027,62627,11930,30257,44082,37201,51373,14830,28780,19030,57741,60021,1609,41239,15137,61186,50584,60569,36770,63248,15899,37555,54929,25812,62102,2133,6107,14316,63558,22956,62861,38233,18529,37968,13672,41671,6643,30336,63457,58542,58261,54257,20077,58989,60161,22667,47590,45065,10159,1123,92,7839,52771,6234,26426,12640,36719,4957,22700,33505,4055,14610,4483,12180,63649,61411,40115,53240,44373,4083,12697,15611,50349,17958,51070,41236,26259,57073,34388,63981,31078,59066,29312,794,34317,48387,28256,56233,50912,11022,37612,19957,50772,8185,20962,19024,18250,21069,9057,45902,44951,48516,31018,29353,44836,43524,17750,62373,56604,3008,48539,55256,60848,41991,44921,41659,12292,54094,19738,5377,3434,10794,39832,47332,10316,16520,61329,54205,59218,6652,34475,31639,59401,14197,2995,2786,16491,60329,10573,18213,26986,39342,44459,34334,9193,6107,2682,14686,8539,27661,56235,39854,4058,49156,6843,58668,35505,14724,43597,39233,60707,43300,43482,27435,42801,47697,61686,16275,30153,6793,3739,14635,44504,64483,7618,33290,56139,38075,1239,6834,26390,59575,65173,16627,55376,3874,16893,28980,13783,39064,17912,4942,32668,36780,10330,62313,3437,56954,38028,40763,61117,22225,18285,21384,60100,52977,61838,42384,14531,36905,42349,30778,5239,44517,28425,13827,44978,36960,62997,2950,9857,53286,55175,27053,22064,14030,4296,40756,64172,16351,50952,59412,34764,3711,22945,37063,28832,11397,60848,7367,21962,28549,56034,18229,52919,59150,32896,56404,56494,56744,49755,35576,35048,6644,25261,15722,42008,3341,16309,19053,23749,2323,14508,15180,42923,19859,6147,62990,57974,60099,49458,42440,43816,41916,26202,15655,36330,4093,29505,19042,62100,36360,18373,29174,32940,47011,43286,49882,44281,40190,1663,25128,17191,16727,63074,64104,19715,6093,19589,46813,22825,44485,52538,54245,58365,36369,21829,40337,39126,3651,50326,49711,59019,29766,13096,37702,18752,42383,44975,8543,14696,38720,25506,12739,12053,2672,27152,10984,17964,48565,10339,7790,57001,7960,35077,60467,35335,52999,52105,49484,60335,53246,58082,51203,64585,8850,26068}, } ; static void test_encode_857xint16_impl(long long impl) { unsigned char *s = test_encode_857xint16_s; unsigned char *x = test_encode_857xint16_x; unsigned char *s2 = test_encode_857xint16_s2; unsigned char *x2 = test_encode_857xint16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_857xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_857xint16(impl); printf("encode_857xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_857xint16_implementation(impl),ntruprime_dispatch_encode_857xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_857xint16; printf("encode_857xint16 selected implementation %s compiler %s\n",ntruprime_encode_857xint16_implementation(),ntruprime_encode_857xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_857xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_857xint16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_857xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_857xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_857xint16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_857xint16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_857xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"857xint16")) return; storage_encode_857xint16_s = callocplus(crypto_encode_STRBYTES); test_encode_857xint16_s = aligned(storage_encode_857xint16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_857xint16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_857xint16_x = aligned(storage_encode_857xint16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_857xint16_s2 = callocplus(maxalloc); test_encode_857xint16_s2 = aligned(storage_encode_857xint16_s2,crypto_encode_STRBYTES); storage_encode_857xint16_x2 = callocplus(maxalloc); test_encode_857xint16_x2 = aligned(storage_encode_857xint16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_857xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_857xint16();++impl) forked(test_encode_857xint16_impl,impl); ++test_encode_857xint16_s; ++test_encode_857xint16_x; ++test_encode_857xint16_s2; ++test_encode_857xint16_x2; } free(storage_encode_857xint16_x2); free(storage_encode_857xint16_s2); free(storage_encode_857xint16_x); free(storage_encode_857xint16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_953x2115.c0000644000000000000000000013643114705505543022403 0ustar rootroot/* ----- encode/953x2115, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_953x2115_checksums[] = { "d71ba40baea7dc3af48fd849985de05aaee87f3037871db8dec7cc901b40c8a8", "b47986841715d5eef14df6916c2ab184f33a698537113c3bf4d2ea8f99428c70", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_953x2115_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_953x2115_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_953x2115_ITEMBYTES static void *storage_encode_953x2115_s; static unsigned char *test_encode_953x2115_s; static void *storage_encode_953x2115_x; static unsigned char *test_encode_953x2115_x; static void *storage_encode_953x2115_s2; static unsigned char *test_encode_953x2115_s2; static void *storage_encode_953x2115_x2; static unsigned char *test_encode_953x2115_x2; #define precomputed_encode_953x2115_NUM 4 static const unsigned char precomputed_encode_953x2115_s[precomputed_encode_953x2115_NUM][crypto_encode_STRBYTES] = { {100,76,181,84,250,217,215,153,21,226,193,101,2,163,43,180,170,132,16,239,115,0,8,190,137,208,185,198,213,46,151,97,219,8,206,120,188,69,203,123,95,132,182,114,145,27,106,254,38,40,242,18,167,156,224,205,167,105,237,234,116,63,190,198,180,125,236,254,171,27,7,146,87,112,86,73,121,113,181,201,178,241,110,102,22,170,129,19,180,247,130,102,41,193,228,8,156,176,61,157,208,44,178,95,155,95,138,105,251,232,249,99,249,158,243,95,176,21,154,238,40,217,115,129,226,206,159,48,45,171,95,205,38,227,206,79,157,202,10,84,234,255,206,102,174,241,133,21,125,173,33,22,162,34,112,126,99,225,4,27,120,1,219,189,128,156,250,45,92,62,172,186,8,5,78,84,97,16,240,164,78,97,136,170,24,99,167,71,105,182,2,118,174,131,62,154,65,197,241,116,202,169,28,15,61,165,38,229,53,175,163,196,53,113,7,181,34,98,135,181,214,11,50,78,191,199,118,147,18,0,125,176,117,237,13,35,155,234,224,164,166,47,69,193,83,57,241,154,114,78,169,51,243,36,45,21,162,214,251,233,26,5,151,150,180,94,66,251,194,64,45,67,138,128,119,226,43,242,161,83,241,155,142,130,181,178,36,197,52,251,21,217,99,189,129,125,134,24,213,124,209,221,22,132,41,88,38,46,174,35,181,52,88,22,224,159,63,68,233,47,201,164,94,118,198,13,171,112,213,31,34,51,235,10,108,54,72,227,61,118,30,254,6,198,181,173,122,142,77,219,87,107,225,92,171,156,11,41,145,166,203,118,193,171,250,87,160,121,140,104,252,192,121,5,186,42,248,181,146,78,138,26,232,44,236,200,11,81,78,139,10,232,238,124,140,158,181,53,15,38,155,252,190,43,42,71,195,186,50,56,160,6,77,119,193,79,175,135,54,224,6,142,132,207,40,63,180,39,96,222,241,253,149,184,156,155,224,192,65,189,252,255,147,62,91,223,97,235,144,58,81,205,49,78,163,21,132,181,83,130,122,141,74,36,232,192,4,202,92,16,185,254,208,55,169,59,86,182,90,13,226,228,77,144,173,122,7,95,210,223,188,191,37,16,87,199,222,146,163,128,170,47,174,16,28,170,201,12,112,224,204,226,180,186,49,217,190,119,72,6,217,145,16,187,37,207,67,195,10,164,246,93,214,190,157,186,79,25,143,140,255,29,240,123,23,18,244,152,135,205,43,142,202,166,8,131,19,153,188,249,249,87,247,170,205,40,218,159,15,161,222,228,4,152,192,135,237,247,173,15,60,178,44,176,213,29,82,41,46,54,83,103,36,27,49,33,215,3,177,210,107,30,193,86,127,217,168,253,116,161,4,178,99,86,132,62,69,150,73,47,97,214,83,122,35,132,59,206,110,59,142,11,229,5,149,219,106,228,160,6,247,85,217,118,186,234,39,245,13,169,254,8,45,25,27,119,222,181,24,24,237,151,30,185,0,197,82,153,27,244,17,78,5,113,254,169,183,251,249,23,237,180,215,35,163,105,7,224,189,189,238,18,21,70,121,235,193,45,180,22,220,73,190,192,191,141,99,217,248,64,189,235,47,73,218,152,191,6,253,62,111,146,3,99,69,40,177,33,202,119,128,199,210,129,43,247,168,13,43,224,239,150,223,217,136,107,236,26,57,11,30,30,217,132,161,70,208,190,34,241,104,140,170,194,57,149,44,195,47,129,1,110,47,30,74,42,203,230,85,203,177,252,86,167,34,70,85,30,82,196,139,141,73,69,249,71,87,130,134,227,89,122,231,5,117,12,99,20,233,246,242,217,185,140,117,39,227,173,74,151,27,55,182,172,72,82,219,150,67,254,165,133,59,31,66,114,87,22,8,160,227,36,52,184,156,206,14,198,24,89,184,67,203,146,68,130,81,26,4,156,68,220,88,39,94,240,125,142,70,169,8,83,43,9,40,5,167,178,169,208,125,33,46,117,194,39,228,180,198,210,242,176,242,107,96,211,215,131,178,143,65,174,49,239,119,254,86,173,10,235,133,126,125,226,112,233,38,36,175,51,135,241,209,9,251,245,73,247,107,224,69,173,8,127,187,142,199,57,100,74,184,232,185,139,53,178,63,193,65,29,44,90,238,248,236,198,176,100,2,33,254,87,162,235,204,40,233,181,161,58,22,251,50,210,194,88,14,82,249,242,142,198,130,122,156,163,16,77,152,253,162,67,232,142,157,58,241,143,21,84,179,32,236,224,80,37,240,121,227,13,130,235,31,112,96,113,203,83,82,55,248,27,24,178,156,76,211,231,224,79,15,18,221,89,253,180,208,144,190,85,250,66,145,148,114,201,165,221,158,32,58,43,66,32,220,163,18,173,244,86,165,99,205,78,157,52,195,38,46,58,19,162,33,8,27,70,195,173,244,155,101,129,6,47,190,193,234,91,43,45,59,17,19,142,130,162,159,240,25,112,194,15,66,142,220,185,9,26,43,159,67,74,238,121,59,47,152,159,194,217,175,247,85,114,50,211,251,246,104,176,248,28,14,181,102,157,84,200,14,179,169,75,130,227,12,228,235,229,22,62,56,231,185,68,134,151,164,104,127,157,106,213,206,115,218,239,70,251,17,63,151,30,47,120,233,184,229,77,124,117,213,140,17,65,79,63,55,48,246,139,29,116,44,254,168,35,39,70,133,83,154,220,238,102,215,82,213,224,115,239,175,138,49,195,187,48,207,245,133,176,151,30,222,6,97,46,117,169,33,117,56,176,47,57,241,144,246,137,186,221,235,37,1,157,226,188,102,170,109,155,108,224,196,213,37,177,137,113,165,111,101,16,59,183,23,24,8,199,246,254,190,239,131,84,253,29,218,218,163,106,116,137,195,177,220,79,14,108,58,175,85,219,232,68,208,113,45,155,101,215,80,154,246,26,98,230,121,97,23,174,5,218,231,136,240,75,249}, {41,87,66,167,222,240,108,104,108,251,12,248,106,182,145,150,14,81,231,45,22,127,165,174,206,104,30,145,173,139,30,172,253,150,129,229,235,233,200,170,114,245,227,97,194,197,71,104,186,24,201,118,78,170,168,79,153,29,117,57,157,200,146,215,27,79,239,26,156,17,51,139,142,4,20,11,2,104,99,113,120,160,45,135,46,201,33,55,241,213,246,197,197,98,98,114,164,13,52,35,238,109,178,150,150,79,113,98,107,113,166,58,88,25,39,123,167,27,28,34,187,10,91,20,146,47,101,33,61,228,176,178,124,57,209,44,86,108,57,149,14,113,12,132,128,70,227,165,162,233,84,87,84,183,5,39,120,254,91,5,229,17,212,75,76,35,252,171,9,161,58,44,57,78,154,200,15,168,51,112,77,87,228,63,195,50,17,166,235,193,195,235,67,51,174,149,68,95,102,223,125,11,11,26,176,139,177,151,153,96,244,247,28,56,190,85,237,168,71,140,185,220,240,249,245,209,156,143,3,101,26,55,36,14,56,121,194,159,190,212,170,78,112,79,255,51,96,63,206,46,15,232,154,213,165,125,145,95,87,22,147,34,57,105,61,92,3,112,99,73,201,167,74,197,208,121,151,79,80,152,121,241,71,177,68,18,122,241,25,242,108,217,134,47,174,13,23,109,243,61,134,231,185,149,123,159,237,219,149,109,63,162,141,23,178,14,50,41,27,107,79,99,204,145,69,129,35,38,23,77,117,113,156,72,65,170,218,135,100,189,88,41,249,136,232,203,65,172,237,227,32,40,25,245,217,176,112,140,65,13,152,208,222,239,170,127,132,214,26,220,210,165,45,18,127,14,207,92,218,212,125,245,20,248,240,177,155,37,25,184,188,158,19,198,28,124,138,214,169,185,83,238,255,178,96,64,42,94,173,178,93,66,79,128,167,47,185,207,167,249,166,62,227,223,117,18,63,207,245,237,188,59,56,134,246,130,28,88,110,180,52,217,97,116,18,118,225,48,53,9,149,233,216,232,165,245,2,178,35,87,229,183,178,17,16,204,212,40,4,194,107,39,12,230,9,163,14,123,125,53,107,158,39,208,66,209,180,222,98,163,130,216,85,156,46,139,71,183,152,214,0,92,17,98,180,130,158,78,17,124,55,55,224,159,136,221,147,244,236,255,253,52,182,48,114,136,163,5,144,26,30,162,126,177,44,154,109,153,124,183,86,64,86,5,219,181,152,205,231,27,103,180,115,51,48,168,199,3,66,95,107,245,229,105,85,142,173,56,89,193,155,62,165,182,248,44,74,250,106,192,60,219,125,120,181,121,120,53,81,214,71,216,230,150,8,20,48,71,143,219,194,96,40,42,142,136,247,105,207,15,96,247,244,150,45,2,155,5,190,171,89,229,125,216,153,66,158,141,112,37,239,244,138,211,207,90,17,143,167,205,51,143,117,99,76,114,41,50,174,174,119,126,212,148,121,184,54,33,177,81,45,42,55,22,232,169,185,47,92,213,132,111,78,187,226,179,9,125,158,95,73,189,86,213,211,190,134,64,72,4,106,244,17,224,254,197,192,148,49,243,27,60,122,179,213,133,83,172,21,179,66,201,78,25,252,97,159,114,209,71,96,101,2,144,205,117,153,3,68,240,143,115,163,71,115,227,135,108,93,243,80,199,65,211,16,239,113,160,111,169,234,40,156,116,27,33,220,64,215,235,13,53,153,53,202,101,95,202,162,169,89,140,140,243,171,218,80,3,177,249,94,190,35,131,140,10,120,67,111,189,215,208,191,197,128,79,69,248,61,9,186,243,204,163,183,23,180,32,158,194,93,226,6,29,228,126,25,237,190,224,155,73,105,37,155,179,157,176,161,195,18,230,226,94,28,158,122,145,4,173,51,235,159,99,186,211,72,38,205,10,41,169,249,165,241,175,243,196,99,196,89,200,100,71,225,78,80,120,126,63,208,214,173,175,22,61,204,96,171,31,23,237,152,249,32,211,139,194,201,178,242,172,23,84,60,55,227,121,254,71,161,127,70,87,195,159,242,158,117,46,116,9,133,186,181,183,155,6,29,253,34,137,16,60,161,2,41,27,127,162,13,42,173,229,95,41,98,26,50,101,164,145,186,177,216,217,225,99,31,214,121,228,97,80,253,9,62,105,89,231,235,170,123,3,83,156,164,219,48,62,172,155,170,228,22,177,142,164,9,191,2,156,213,188,13,59,64,55,86,118,131,120,176,249,42,132,74,45,225,203,3,91,241,236,159,237,24,19,222,26,228,66,36,145,149,109,157,225,38,50,69,180,136,132,81,112,165,179,179,34,229,152,137,198,167,30,206,13,226,227,146,150,21,157,181,115,147,67,132,209,18,229,151,243,151,236,104,149,152,56,71,189,59,147,133,34,229,205,203,199,218,198,25,174,67,6,187,244,176,185,206,238,0,224,115,21,86,133,68,212,161,92,233,40,244,117,49,199,114,39,1,2,87,71,103,53,124,0,24,91,33,33,38,208,225,95,125,120,215,146,48,126,219,2,210,185,185,60,77,214,192,65,80,126,162,62,179,77,29,94,141,103,144,39,55,59,126,14,150,91,8,16,35,177,185,218,148,110,11,13,65,196,202,234,44,53,120,157,183,227,26,228,208,174,42,16,222,10,13,76,52,116,188,50,200,136,56,75,65,209,10,93,10,186,235,198,57,44,64,167,178,145,228,20,252,186,186,192,178,157,193,143,2,9,116,2,253,178,102,235,110,145,89,249,174,210,32,42,1,64,32,113,129,230,57,250,96,131,17,133,8,25,19,27,3,212,140,131,182,14,203,73,137,116,16,73,28,79,143,104,243,161,228,182,191,59,123,191,67,13,203,97,194,152,57,34,8,17,36,249,218,186,8,44,197,234,41,41,5,151,172,138,186,89,73,225,115,192,120,33,5,43,87,238,144,226,92,48,182,44,214,45,129,93,120,39,42}, {122,84,189,60,193,6,58,159,62,176,194,43,56,228,78,5,236,176,2,241,97,246,81,56,163,241,112,86,227,74,66,217,234,133,159,28,5,16,65,222,28,18,187,240,243,101,40,20,214,68,5,195,234,207,131,67,174,252,175,143,130,149,104,77,156,43,152,163,104,248,2,202,121,61,24,76,142,3,136,26,58,200,225,172,253,135,211,253,30,196,223,119,67,233,190,149,255,104,5,108,118,57,185,11,53,107,209,230,227,63,90,212,169,143,240,182,66,136,25,157,183,252,119,213,86,22,177,131,186,181,31,2,46,229,193,188,183,162,64,239,75,133,142,244,40,52,96,73,85,32,109,82,205,133,196,8,56,102,254,147,189,64,210,45,145,103,134,153,117,254,163,114,195,183,225,156,169,68,25,247,28,69,9,98,137,52,63,185,255,76,124,30,8,133,151,189,76,164,253,139,225,30,145,218,208,194,41,96,252,134,137,60,110,198,208,123,201,24,140,155,129,55,243,90,193,127,108,45,73,212,77,49,95,204,171,27,90,110,254,89,24,22,159,223,184,137,82,150,6,62,255,158,178,167,167,127,161,24,186,49,82,192,234,250,127,242,14,121,87,104,43,167,211,193,204,35,249,209,84,202,204,137,22,138,46,33,113,30,198,137,127,99,83,191,233,226,208,48,208,200,63,23,247,27,164,55,162,103,207,138,22,10,191,124,100,234,41,164,43,134,229,14,127,72,199,95,229,170,101,159,132,46,65,49,91,76,6,216,208,31,189,25,122,213,180,62,28,18,112,58,70,194,199,125,21,200,30,70,175,126,231,92,46,132,140,133,35,210,68,35,149,115,50,49,6,215,71,250,72,77,39,48,78,196,212,231,218,33,31,52,180,125,129,4,246,94,55,36,151,23,216,81,119,186,252,37,238,23,46,37,58,218,142,245,120,79,86,126,97,234,251,47,113,0,145,51,38,237,165,207,252,170,11,32,71,167,40,229,80,152,207,245,188,146,18,164,142,193,224,139,14,131,91,7,22,158,175,233,217,80,169,91,117,195,161,87,59,67,98,208,9,156,129,139,54,3,146,100,151,219,148,41,66,58,221,55,160,215,14,226,228,84,215,157,121,183,93,213,133,237,136,213,92,188,214,245,214,206,240,64,126,216,233,71,8,46,97,183,85,212,22,85,50,159,193,134,217,198,50,127,248,238,36,221,193,93,75,152,99,40,232,35,2,147,70,67,16,226,196,105,146,143,96,213,247,156,195,110,193,139,81,170,147,205,75,150,119,44,177,219,67,208,134,143,56,41,10,207,149,3,151,124,105,240,254,43,17,34,72,104,184,85,235,18,75,40,238,140,240,46,132,38,184,53,49,194,32,108,236,180,52,0,53,130,219,116,82,99,86,52,220,43,53,2,247,20,206,89,193,91,221,239,248,233,240,113,71,226,56,87,45,234,0,1,166,56,207,240,198,211,166,52,98,155,179,37,187,124,111,6,120,43,85,222,171,117,197,125,106,183,149,240,252,195,78,36,49,253,147,88,70,110,174,221,194,7,185,11,49,69,132,86,201,213,36,229,188,48,140,209,71,72,173,176,186,58,194,67,91,94,77,80,146,206,33,191,166,224,201,113,39,136,188,229,146,223,100,86,122,106,18,80,247,202,76,172,162,153,57,202,62,227,99,0,132,69,154,166,10,143,149,223,144,157,75,39,13,104,173,69,240,27,37,167,204,202,14,128,173,56,140,9,200,86,189,27,173,143,139,40,133,198,107,43,224,201,146,11,228,34,53,6,53,11,56,169,125,77,16,37,107,111,240,182,16,112,16,44,86,48,167,229,43,186,170,47,14,28,159,2,30,164,148,103,114,203,148,135,6,151,64,153,153,135,117,110,172,140,156,235,105,133,174,96,29,101,155,176,125,140,255,3,205,131,158,192,250,133,220,4,109,38,138,175,123,158,249,79,123,156,56,209,5,21,12,215,81,218,206,80,62,213,24,11,75,60,218,114,144,64,240,143,214,201,25,162,111,111,40,3,148,189,164,185,93,243,194,245,244,142,206,202,106,202,76,80,167,249,116,63,57,35,137,32,163,170,64,105,197,25,136,254,43,10,255,53,249,45,40,9,251,39,222,208,77,231,191,62,245,192,132,194,137,57,195,119,117,105,235,88,39,7,53,183,124,249,206,116,245,246,114,150,185,112,133,213,87,153,249,205,99,226,23,79,64,6,192,0,86,27,82,50,135,60,216,9,105,42,187,130,125,25,25,136,6,161,198,251,177,176,25,233,227,130,168,248,204,242,19,139,248,163,88,0,168,7,82,54,125,160,187,250,205,123,83,160,141,216,54,66,73,9,205,235,87,88,224,107,220,251,156,28,81,74,209,118,199,181,153,212,154,28,119,156,90,69,154,9,210,12,240,145,17,126,167,97,47,72,188,175,180,200,15,85,50,220,226,245,86,208,147,28,110,144,146,208,197,76,15,26,155,50,225,243,233,217,87,187,19,6,75,24,193,83,60,54,29,254,31,80,238,156,55,102,104,215,46,55,47,110,112,157,165,175,222,237,46,194,202,22,212,216,129,164,117,140,39,67,28,145,26,140,28,162,11,231,112,92,47,253,182,90,163,142,43,9,151,222,138,136,172,87,36,166,24,38,192,108,40,56,97,58,195,161,0,166,148,11,152,99,224,21,136,82,59,251,69,8,94,19,190,57,192,71,171,86,230,200,13,130,172,19,79,198,50,90,210,24,16,52,127,84,40,38,102,118,170,47,135,58,95,184,199,77,195,228,99,43,124,14,239,189,167,82,153,172,98,231,196,40,174,248,73,218,246,233,192,47,171,157,59,113,203,135,236,238,215,123,225,39,142,14,82,76,99,164,13,63,89,237,201,91,61,133,144,164,72,129,28,38,21,226,114,70,205,211,187,19,160,41,71,39,109,4,13,152,249,166,159,186,245,20,169,142,100,5,120}, {240,41,63,59,108,55,150,76,229,248,187,249,211,96,116,227,207,45,21,127,121,74,127,58,30,199,13,169,11,66,59,84,76,213,94,190,253,175,68,169,246,94,121,155,134,239,58,102,63,65,48,1,69,48,144,126,162,72,1,84,39,204,25,7,211,35,221,236,241,232,188,175,246,168,15,85,134,23,205,121,246,235,38,25,21,206,146,130,87,207,243,253,10,56,224,72,176,238,102,193,48,147,17,163,122,14,28,34,73,204,17,170,240,249,196,164,255,111,29,196,197,233,183,34,230,39,47,164,183,241,112,110,221,129,85,173,155,65,160,40,144,143,113,234,98,45,119,73,44,126,65,157,240,178,175,27,137,239,39,119,107,92,58,208,42,228,79,204,31,82,227,199,40,37,181,19,2,253,190,39,136,97,229,177,133,236,155,71,145,104,33,189,201,119,34,254,49,58,91,176,90,102,126,70,44,109,6,52,22,92,69,177,199,15,81,227,92,55,50,197,106,10,110,20,215,192,96,21,155,109,242,132,123,148,40,30,183,229,13,4,109,74,11,37,95,101,236,254,23,192,240,7,175,38,168,203,66,74,163,197,99,222,111,45,16,120,182,99,180,71,141,182,101,249,34,151,240,147,60,147,216,198,176,139,245,6,77,2,111,31,82,10,236,144,59,96,147,232,113,155,55,166,232,38,18,88,69,129,100,50,85,23,200,210,138,82,123,21,155,148,47,132,29,56,119,93,120,157,84,171,35,245,63,167,22,233,133,1,14,58,52,111,144,198,85,141,56,204,220,89,74,54,0,58,26,15,228,223,135,12,202,43,79,20,129,236,223,155,182,144,168,141,55,13,60,150,142,70,36,147,97,210,30,234,133,94,15,225,35,69,175,113,9,77,12,219,172,122,197,85,120,219,57,201,164,137,250,93,168,205,188,145,168,90,144,66,142,242,36,13,188,69,71,147,118,238,198,92,130,233,57,183,65,238,66,246,176,93,83,135,230,22,29,143,3,87,180,195,177,95,245,14,120,15,195,22,199,32,175,38,29,175,1,135,75,205,202,128,237,7,16,131,238,54,108,241,76,142,244,36,154,65,12,230,81,78,28,96,125,65,24,208,150,9,0,84,206,165,157,70,170,111,175,17,61,61,94,200,245,150,33,97,193,116,56,241,123,253,95,190,76,193,40,215,196,208,134,255,163,252,154,241,26,187,111,86,192,248,164,205,3,95,29,110,144,168,98,165,130,45,135,196,114,127,224,243,219,196,216,215,231,42,200,2,150,238,100,164,0,37,186,130,252,56,120,220,198,209,100,249,100,43,219,243,134,210,190,36,40,179,165,49,48,140,83,179,240,38,103,113,213,31,194,181,230,173,90,232,57,48,161,238,197,230,111,165,237,236,184,226,141,3,187,236,65,219,213,142,222,80,119,236,160,115,88,51,172,59,230,43,154,0,58,230,217,179,240,253,245,248,76,18,186,70,62,88,97,25,172,238,155,238,194,144,175,109,176,199,70,60,194,169,131,43,68,151,92,141,193,205,161,77,203,232,59,70,106,214,169,200,208,117,23,122,252,190,121,71,233,212,142,16,218,53,162,103,2,189,65,183,148,175,96,170,190,137,162,209,44,72,238,82,216,123,126,126,78,39,230,204,55,13,243,155,185,245,104,211,46,56,33,136,2,34,193,155,214,132,36,224,218,205,126,119,151,33,242,47,41,219,115,31,98,115,2,119,163,32,99,141,3,171,18,69,152,133,153,1,129,19,99,172,122,22,21,153,227,195,251,171,240,135,168,116,250,205,165,186,213,10,24,113,133,1,70,169,73,220,179,60,253,64,87,81,167,27,52,154,21,222,110,51,172,106,102,170,48,61,197,196,98,167,45,229,94,18,111,247,141,81,170,156,132,24,160,0,245,93,144,139,4,239,78,99,169,127,20,53,237,211,126,121,107,130,183,109,171,113,232,251,231,128,212,126,46,158,180,17,80,126,174,91,121,29,166,253,248,138,155,95,69,85,153,224,64,43,138,187,193,111,167,55,215,13,118,37,92,6,214,84,0,188,229,8,41,36,82,136,71,218,222,198,15,14,35,143,19,38,179,66,28,150,202,120,185,227,223,179,190,143,124,135,203,83,40,16,168,143,151,6,175,115,223,133,45,38,64,4,176,126,73,111,86,117,122,95,166,13,85,40,121,105,20,59,208,199,208,180,41,47,129,3,59,4,212,213,239,66,196,201,149,204,25,25,45,0,183,47,214,156,44,159,33,122,120,69,70,48,119,80,208,102,69,215,167,201,214,129,160,110,203,89,215,125,13,152,10,136,116,135,45,165,180,151,27,158,23,221,39,158,238,116,204,137,56,255,217,42,63,70,71,211,15,134,138,200,34,141,106,243,7,159,82,3,19,72,45,53,191,212,126,113,116,113,31,70,61,1,45,209,25,119,77,16,165,65,155,232,119,142,223,221,78,246,133,0,208,154,53,204,55,126,148,67,37,241,246,36,68,194,14,177,86,19,149,119,4,84,168,252,195,42,83,101,42,115,155,170,236,80,89,234,230,92,73,107,64,248,196,71,221,117,42,236,226,124,159,81,2,205,95,116,98,189,81,205,181,198,111,22,145,150,11,78,101,29,214,25,19,218,226,115,13,217,166,190,217,131,2,52,192,72,100,96,92,181,181,121,154,61,246,131,95,95,213,38,121,70,145,99,167,16,19,54,234,211,6,139,77,151,57,109,39,244,171,160,14,150,251,135,58,198,184,215,61,161,194,11,171,141,18,231,46,16,100,224,218,25,221,243,236,151,179,101,253,49,244,68,131,85,64,35,5,134,4,246,217,107,20,189,27,188,10,49,174,45,249,247,67,119,222,195,26,17,15,183,122,5,167,191,106,116,121,65,119,69,65,77,225,66,133,206,18,139,113,45,87,210,227,34,52,49,156,209,153,63,194,24,141,153,25,219,10,79,8,223,57}, } ; static const int16_t precomputed_encode_953x2115_x[precomputed_encode_953x2115_NUM][crypto_encode_ITEMS] = { {-21081,-29781,3214,-17854,-28387,-4605,-21570,-705,11749,13383,-5466,-18873,-17964,142,-26564,22293,-7112,-28459,-12321,25475,-19135,26692,-2302,-23228,31550,-22755,-23432,-18930,277,27638,-7626,19565,-23488,30338,-11261,15392,-13979,664,-26227,-26045,-20676,17437,-14462,30194,-6990,32020,17553,-28319,-6281,2044,20014,11893,13002,-26313,-11386,7962,1041,-28280,31479,-21352,32609,14631,-26026,-32523,-8897,23667,-3881,-3295,6595,-23662,20183,-8815,20734,22825,15638,6988,2965,18458,-20282,26480,21163,26871,-21425,20774,9935,23589,29399,-23669,30691,9189,-12462,28771,-21358,30220,27159,9561,30162,15230,-10401,-15505,8811,23636,31812,-27538,-13760,-8274,8076,10434,-20072,1647,3204,-18869,-2167,27401,-18014,-10224,-25986,27162,2927,-6455,14230,-28236,-24661,2914,25295,-2171,-6474,-7180,4688,23312,-32071,28532,6907,26214,4837,32318,-30101,-8606,-23213,11542,-20535,17018,-28874,-10504,3475,31078,-24984,-23199,-23607,4044,11558,22418,-16086,24381,-3903,-23442,8511,23052,17880,-32304,8548,12629,2093,14302,8187,-4909,-11109,-27558,-15393,-23088,22015,-20907,-28176,13002,17456,-9113,17447,31741,21145,8507,-28317,-8832,23104,-18940,-30934,14641,-31073,9774,13541,-2917,30081,-20929,-14996,-11234,8027,3015,-8099,27318,-13893,-4177,30922,15599,-25390,11517,-10080,-32443,-19806,-20989,-15896,1169,-3870,15510,23222,27660,2516,-5827,-13814,-29306,-25861,15878,-28419,5291,13071,-13397,-1884,10288,-28211,-31612,4703,2033,31274,27501,23130,-11477,20483,-12109,-24734,1186,-4716,-24917,-32298,-21049,-18723,28623,16733,-16932,6393,-1445,-1943,-1098,-12399,-5130,7901,8551,-27419,21491,-12565,2855,8418,-9343,-26382,27526,-12995,-4630,16152,13246,29779,32293,-3284,-1295,21688,18626,-19411,23671,11777,4063,31311,-28787,-20134,-24852,1245,4880,31905,-16534,7259,-12800,-10698,58,4097,31451,20774,-21733,1385,31060,9328,-20839,-23114,-6352,-1610,19114,1941,-5625,19394,-19415,11336,-26523,2188,25034,-20535,-29890,1925,-8848,-32605,21215,7915,-8626,-25335,-15538,-23834,2885,8820,-12341,6456,9139,15358,15448,-12912,7651,14188,-14802,29446,17502,-17173,-29520,-23958,-14798,5019,-1605,-3245,25056,-21045,-16679,-9330,22483,25972,-12618,30017,-27892,17443,-29912,14893,-24187,31562,-29584,-18664,2464,2877,20105,14400,10275,-778,-5939,-1121,16435,-18135,32510,-11159,-26416,28490,14917,7969,17369,6242,-11563,23072,-24958,18850,-2176,2670,17236,22553,18238,-17150,-5596,2593,16073,-29068,-30984,-5494,8029,-15628,23242,-17056,-24181,9163,14940,11298,-27653,1797,25588,16518,-19092,-23393,-3835,16754,4011,14620,-499,-10215,22248,-32423,21673,24695,-31625,-21549,-19741,3599,-706,-1693,-22936,24410,6545,26296,-28712,9515,24385,-12794,-14522,-24660,-4976,-25624,11233,5418,-22396,-5133,-32078,-6938,-26671,-24880,14394,22150,-31946,32282,-18509,31641,1745,24921,8066,32329,-15071,-470,6572,25717,16582,-13116,7712,29274,-26118,25075,-29761,-6254,3846,-25635,-7554,608,-14372,26250,32361,3218,-29335,1845,-19186,23477,-28206,-5981,-18980,-20636,-15034,-27170,21582,9371,-7765,-1964,12314,9424,2724,-28320,-17478,31035,25938,-30021,-10841,10521,25391,-27486,-23692,26049,-14394,-10989,21529,-32288,-4664,-13884,-5142,-557,14483,8732,-31383,-13114,-18453,6636,9828,27951,28705,18688,-9810,13389,-32734,7994,-12771,-32232,-28636,-5151,12973,-18061,9362,-27395,15233,-3356,22096,-28717,-4372,29958,20348,12286,-28070,-24338,11987,14423,18842,2915,-14990,20867,-30506,17283,16938,11472,-18112,4296,-7957,-19278,-2004,-3768,-24357,23444,-11051,-31027,18379,4266,-12310,1454,-6511,-12201,513,2604,-28953,-21471,-19037,18166,24891,28445,31719,-556,-6021,-10996,-2567,-29797,-2804,-23384,19441,-1618,-874,-22590,-11224,97,-18893,-17028,933,-25712,19642,-19478,7000,22406,-30262,-9450,32488,-1445,-27850,7305,9451,-4887,32111,31818,14268,10269,28252,-24619,19529,-88,10831,10637,-10199,5716,-28753,32493,-28388,-18891,-21753,24230,-12849,8845,-2726,-30053,9608,-4479,-24928,7273,22208,-8601,-25975,-3651,-23114,-11907,23439,-28193,6110,3803,-15755,12694,31637,-29980,-16365,29681,-19814,27633,27795,-26117,-21445,22054,13736,-13183,27344,18543,-20964,-29741,6631,-27165,1169,-25698,5664,30844,-27797,27092,-1623,-6120,8608,-3945,-5284,-2232,-9984,-19146,22630,11223,-346,-3083,17088,27909,21107,25443,26602,-10634,16623,-7596,-9692,-10060,12387,8865,31161,-9007,-3873,-9198,8080,-20540,4006,-17067,-2341,27919,-11271,7821,-22269,29513,-10238,-8513,893,24888,12586,-1884,14035,1864,10888,-14693,-30648,16123,-19644,17165,-23149,-16897,-16857,-32078,-5868,6199,5337,25011,-21498,17097,12182,-685,-24492,-25473,19017,28662,-31040,18512,-23157,30715,-24044,-23286,8077,-26056,-15573,7312,-31704,1784,-8694,23044,16409,4208,30256,-30104,32575,-5291,15913,25193,14558,-31423,9309,-9480,7119,-7865,12809,20912,-30593,-29774,-25087,6086,17355,-29552,1082,-10825,31406,-26556,-13847,29179,-18620,18561,12274,5709,-25446,-4551,-17815,8359,-7475,-25115,-32164,-27720,28110,-26737,-20872,16911,28064,-32319,-32078,12916,-23372,13285,-24385,-24672,-12726,2851,7693,19467,25618,7522,26970,23377,-23017,22440,29695,-20496,16363,-27970,4529,-32081,-16623,-10027,31468,2071,-20819,9755,5525,23978,3445,13161,-20080,21115,24860,-32215,8223,31302,-16024,5159,19116,40,15082,-18645,8305,-21572,-26175,-5036,30206,32111,-2694,-5247,-2832,16129,-32145,31499,-24527,-21065,-26153,25666,-11170,14251,24143,-17563,6731,15597,-23660,12601,22746,8054,-23036,-24768,-22358,-30921,-3853,-18858,-18574,4437,28796,25526,-18787,-10866,-30918,-24254,-23856,4692,22665,-20242,8984,-8440,31651,-28608,-12544,28698,29304,3199,-13450,18800,24350,-2261,15136,-14706,-1089,22574,14030,26670,-23440,-10722,-29105,365,517,-16211,-16588,28890,22316,10086,-29839,4968,-4786,5249,-12819,-30183,348,-14118,-26374,-28865,14989,-6732,28380,23992,23709,-16807,-7652,-4143,12809,-28995,-23394,21804,9177,-8865,-1160,-23298,-16910,-29675,5618,-28255,-23835,16710,23092,-25840,7601,-22949,-23252,31985,11767,-15516,-14374,-7266,24096,2190,-12273,-6600}, {15043,-10971,-16963,-30209,13754,20552,3229,-31627,-12479,-20140,-14102,-18352,28403,-14848,17759,-9275,7538,-18692,9132,1023,28928,-22977,2230,15228,-31253,-22702,2926,24140,5441,-25388,20930,-15311,-32021,17728,-16268,5465,14587,-12033,24415,-22960,-27537,-10080,124,-17288,17847,21465,-7537,-24193,7556,5666,19084,16321,21265,-3599,12547,-2034,-2606,-16198,-32068,-3640,9825,21648,-23618,30694,-1523,15379,-22649,4734,17776,-26358,10293,-14583,-2121,-19763,-32128,-14531,-23693,8110,2022,9791,17371,-30676,8945,-58,29422,25456,-21855,6697,8323,-5353,-24899,-4429,-17153,7556,1060,-1922,27252,-16580,-18340,-28675,-452,-13565,21164,-12811,28609,21417,-3846,-26148,840,13903,-30364,21505,32277,-24774,4923,17532,12492,-6817,-4407,-24128,112,2130,-5493,5289,-1144,32588,-8772,-17222,10614,6761,13067,-28629,17191,-20115,-26036,2699,-6756,30282,-32506,-15969,-8879,26821,15535,1061,22414,-12190,-22846,26932,30144,-27765,32248,-4928,-15314,-9172,4456,-16010,-24858,-19094,-16926,5198,26082,-11838,-1002,2526,3587,28189,-20599,-19615,20926,12315,2365,-25885,-31413,8755,20646,-18740,4549,11295,11987,14550,5988,14077,10693,-15819,5128,2514,32662,24243,5199,-21278,-1592,15250,734,-31924,14647,19310,-1895,22266,7593,-26753,-25125,-8120,13385,-21520,18358,20699,-21140,20235,-28427,-9298,-24915,5559,5059,23363,11474,27274,18387,-8433,-11439,8405,-30884,26305,28543,2585,-21855,-4611,-11833,-11605,-10386,-14222,-31876,-5777,-2136,554,-10955,-20187,32602,-13641,-28311,-15762,-26034,-22621,-17478,-17573,2690,-645,25631,24850,21332,-19751,18462,21848,24974,3688,27049,29824,31973,21334,-7966,-29987,-30335,15268,28567,-10599,17988,22820,18222,-23909,-5700,-14793,24899,23217,-30716,10843,5802,22272,32127,-20758,22922,-22966,-21026,-13523,-445,3865,-5618,-29058,9478,-4320,27831,-3088,-17725,-12503,13150,-21147,-31528,-6259,24583,6440,22547,13417,7756,-17429,2199,-4071,27471,-21944,31009,15990,21313,19942,-9346,-5741,16261,-653,-19886,12073,32369,7348,7812,-1557,13854,26265,16613,27581,-32020,10634,23368,-22265,24171,-8655,-11256,16133,-6912,25413,-30180,-7967,12335,-3127,13021,-3411,-13531,13598,25050,-7890,5400,22300,11692,-32442,-9395,19985,20204,25125,6261,28078,-29715,-226,7764,-10864,-24896,-30082,-13211,-4236,21593,18131,-2299,31782,19592,-29355,20925,-26194,-5729,-6671,-18559,27070,-28111,-32403,19209,5598,3147,18493,17476,3983,-28299,25663,27837,-1533,-7718,8271,-13239,-1153,2342,12780,-25328,22112,-30154,-28367,-4732,-8422,-18744,12794,-24314,-12593,10698,-32626,30354,8193,31773,30002,-28921,-32343,24538,-11077,4019,32337,-29680,-14241,-16659,-8045,5415,9558,11120,-20119,-23226,-18829,-11557,19817,-31326,-3493,22381,-10270,31046,-5961,-25175,-25390,17480,-11514,-1909,-32747,17321,30963,-27149,-29728,9449,27473,-3457,-30790,32541,16299,23758,-104,-11404,-22379,29973,4536,-25644,4444,-31086,-14193,-4524,30831,-28823,-2177,26369,13680,-25589,-2637,10706,-24032,14978,14678,-2633,24663,-32759,-10362,-5868,7573,-29660,-29761,28813,10506,-31535,-9460,13320,-1886,13471,-1141,-30828,-18452,-16985,-26583,11779,-30102,-27829,1251,14314,-8162,-15000,54,24438,-1702,4814,-13574,-178,6346,29271,28778,-15857,26347,-29322,-22511,-10185,5026,4446,30674,9373,-23407,28594,4905,-20791,-15472,11524,11064,-30351,10509,28117,27943,21708,-10447,15524,-23380,-25902,13547,-18064,12140,-26529,30857,-22063,32249,-23234,5070,-4919,23270,9617,-15282,-2759,-6289,-31626,31065,-13082,22423,-12695,-7594,-27113,18898,-28368,-18381,-30178,-9050,-765,30654,-24867,10206,-7511,-6507,9921,-18393,-31967,-11170,-26614,10002,-2468,-9586,-13404,4608,30234,-830,-963,10119,-2636,-18091,12302,-5258,-23979,1609,13585,24599,30145,-19744,24739,20910,-12693,20726,26794,4501,-13647,180,28680,4842,1866,18589,-16692,15014,-8749,-19659,-4653,-21114,-18582,24592,-7588,29784,-1895,25110,-5149,3664,-10501,-30272,2427,25392,-18911,-8059,6954,14408,-6627,11591,-4,-15720,15055,9431,3503,16479,25397,18224,9698,7591,3636,19471,-20025,-14024,-23422,-22856,17141,8499,14489,-23446,-7225,-29861,25648,-21609,6600,979,-26262,-23811,6211,-9094,26765,-11405,21588,24750,11239,1036,4967,2420,-16147,-28122,21220,28889,-26320,14992,22351,6292,10145,-3253,-4866,32075,-27826,23409,10367,20039,-11148,28490,15342,-31966,31770,160,30551,-6286,3790,1684,5232,11700,-14985,-13612,3944,29676,-2098,9080,25151,-2284,14235,5563,-21159,3258,16937,30590,-12301,20418,-10373,16061,-17712,29454,-18928,5454,-24340,-4399,29917,25521,8799,19944,17337,27088,17353,24218,-18127,31044,8376,32610,-28401,-27480,-7040,14040,3006,29731,-22557,17046,-12197,6205,-14873,-10036,14535,12163,395,-25269,7308,-13255,18446,11231,-20851,20330,-10773,20895,81,6604,18545,-1272,-9870,23260,-27855,-8845,12893,20172,-25970,18993,-26936,13695,-28267,11178,-10863,-5077,26236,-32628,-21945,-23809,25116,17387,22166,10850,-898,-22087,19134,28825,-17118,-15024,-20934,7097,-3554,8726,24786,-828,16150,58,-5198,-22204,-17629,-24804,5118,-10606,22831,-32226,-6984,14140,14122,-26647,-21668,23956,23770,21399,-15218,21869,4793,15326,-22109,31161,11545,28092,2916,13142,23985,3696,21885,18961,-8757,-4565,18298,1768,-921,-10100,11816,10551,-16649,-4425,7156,-11202,16110,3836,13552,-21751,29064,4406,20577,-30579,-2031,-27116,-26800,-24936,8709,25183,29696,-8572,30242,14613,23176,19406,-615,24708,3662,31146,-15891,21835,24187,-19209,9541,14953,-11757,-9958,5345,-1751,-2650,-25855,-7395,-23929,-3826,-9164,-2901,-4431,24226,1308,30577,17059,-24405,-22266,15552,31913,-27483,9652,-20860,-1892,-24392,24993,-847,15138,-5907,25356,14419,-6044,14866,-16653,15028,-9565,-7814,19091,-5324,-18119,6478,27092,-27626,-2931,4422,3948,-795,12092,17858,-9979,30465,23043,-20799,2653,-28963,-8028,26807,-9335,26309,498,-2153,-18788,13225,22138,-29248,31184,-9065,-5836,9563,20566,18458,3511,17607,-17402,10212,27346,-10687,-23357,-32653,-11974,10414,-26584,-12794,-27030,-13860,-1836,19812,-13531,6283,-18361,15432}, {32672,1879,20050,15092,-25712,-1777,-2750,21453,2321,-9546,24045,17222,-23207,-31677,-16525,-18437,31619,30311,-12218,26962,-30909,27060,-28421,24293,-5726,30144,-5942,12566,-31707,-449,4097,21098,16702,-24643,-31084,1580,-3260,-10261,19879,9457,4219,13404,-11381,19062,-7577,-16454,-5813,15075,26259,12280,2834,-8237,31253,3039,19772,-11816,-23281,913,-14205,-15787,10728,26183,-23609,-9863,18541,16201,-9347,4971,25014,11882,30714,-10837,12571,-13032,-13279,28298,-27559,-18812,-1225,-13409,-14075,-19786,26722,9063,26730,-10494,-20401,31542,29363,4980,8574,17715,14686,-22282,-24729,-3516,15618,5883,24807,-11062,-7242,-29045,-28333,-27664,21577,-31442,-32074,-17242,-20424,31565,22279,31530,17146,-23897,-18393,3402,-27785,28227,-14952,12410,-9909,30150,-9632,31531,-26186,-4864,-2775,19211,-2857,26480,-26757,9097,2825,18687,13448,25554,-10545,5530,9689,-13153,-1462,-6865,16152,-11752,26486,-4483,-29313,9309,25429,26700,-16841,-9022,23401,-15512,30240,19725,-898,20128,-6204,-14022,-4437,6701,-23442,23914,-13121,-25585,5994,-11787,1904,13303,13725,18647,-2856,-11401,-18334,25449,-9590,1869,4150,25200,12347,-22905,-7813,26910,-16499,19181,-8970,-30762,-27317,-6238,-9266,-2699,-2100,26370,8755,13741,-13151,-13548,-26647,130,-23962,18982,-17710,-18360,-17539,28621,29999,768,26653,21531,-6355,-17865,-7366,-12051,13992,-13654,-20817,1014,7020,-20828,22197,-10707,-23114,3551,30189,-614,-18569,-830,3750,7780,-8729,-10988,-12794,1455,9286,-3376,19301,-436,-5464,-31356,-19584,-12118,-8618,-26752,25882,8216,23399,877,-4789,-21141,29747,28330,-3241,1809,21713,-21579,18476,21029,19927,-6246,32398,-23413,20421,-20697,17094,1935,28293,-20470,32633,-2112,12907,24795,-15419,18768,-30351,32675,19142,-9441,7408,-30292,32427,14842,-14942,-29198,-7371,-2512,4119,-25519,23148,-11978,-9027,32232,12858,-24815,20074,15895,28181,-9039,-7624,22949,-19743,5382,19129,32672,7919,19922,-5240,-17570,-32599,-27245,31515,3062,-11721,-23254,-23773,-9621,-9527,-20359,32418,18654,-23990,9845,30420,-24756,26360,-15994,13471,17646,28455,2922,10381,6974,6748,-26443,3487,4942,5670,2017,15305,-16010,2156,12268,19223,9732,-32202,3636,-29593,30904,12067,-14984,-14639,18301,4416,3844,-13740,15330,-9778,-13118,11110,20597,-579,18916,14682,18466,-17478,-7049,-1281,30604,-22245,4366,27916,-24562,19962,-13498,-16433,-32236,16980,-7939,26405,5497,-28518,24475,-22075,-31969,-28787,-22750,-14256,-4207,-23303,-3831,-3335,8117,-7413,24272,389,-22799,4297,-27748,4158,-24407,-14071,3923,-26072,-12613,11573,15080,-23309,-6629,-30944,-31094,-11550,11499,28386,12714,-16336,27558,-16931,-6774,-12352,-11105,11159,-9038,16587,-9238,-29278,14531,-8484,-29349,-19411,-11948,-31709,10649,-20022,32111,3525,14572,24834,9829,4886,11570,-26471,31450,32417,-26962,32520,-26397,20523,-4056,23977,21625,-312,6450,5426,23625,-23094,-11974,20231,21289,1456,-21968,-13138,20588,16434,-18462,4326,-259,-20822,-24021,-12666,-18551,6438,-19804,20562,-24178,-19750,-23487,-32584,-31535,417,13385,22631,16943,6192,17135,11830,15924,23657,23141,-1657,-18637,-13463,-17389,10963,19214,-17293,-6940,-23578,-13532,-22320,-15385,-8632,4524,28531,-10104,-27064,-10266,3910,-22853,17527,11631,-22392,20536,-29737,-30989,30777,-3364,14286,13465,-28807,-8790,-155,9222,-29626,-1257,26390,21624,-18608,26301,-1281,11097,-3531,29560,-28647,-24893,11033,13984,-26673,-29288,17720,-18332,-14405,-15919,-32740,28791,-1140,18816,31371,-12130,17862,-12267,21521,-19041,-27303,63,8290,21353,275,19110,-20481,-16257,12715,-5183,-4749,7402,-2924,27864,-5228,20847,-18062,-674,11269,-13165,22866,25811,25214,11063,26110,13469,-27115,-22091,16502,-32082,2674,30891,19351,22431,-22551,29698,26808,-16268,24459,-31821,-31588,-8673,31684,563,7628,-706,-4895,22519,20889,16293,-26761,4002,28065,14392,13241,4213,-30857,-5267,8104,5285,31633,6636,8509,-3899,-8552,-17572,-7966,-25700,3387,21873,4770,10491,32394,4272,24807,10709,-12026,26259,-22005,9366,15231,10485,-21976,-8737,-28530,28353,-17940,-10693,-26717,19337,12456,-31482,-27202,16484,11227,9645,27741,22393,26355,-17496,-29862,19031,2050,-30906,-1166,2173,16235,-10721,-19039,-4759,6080,23144,-31106,-9475,7717,-32458,17004,17370,13453,30243,13050,21178,10269,-4115,2136,25575,-14463,-13296,12329,2997,6621,5644,25425,-29061,12171,19998,27408,-28205,-25822,2806,24157,21095,-6810,1834,14125,-24023,23246,-23782,-8734,10703,-13035,-26673,25536,-4852,11570,-6801,-10029,-6510,-9953,-11348,-31137,-17807,13363,-11954,-16693,-30837,26101,25056,-18341,-27151,-2573,-14636,-21567,-7303,-21662,-27732,10282,-14316,29156,21229,-9189,26391,14549,-15122,-29648,7760,13364,-9627,-25703,26119,-17174,-14999,12924,-29972,-13987,-17544,-28829,4965,26984,-23034,-19762,-9185,-15116,27171,-15006,2814,22049,-2871,14330,31002,23542,-31793,-10699,-18462,-9174,-13657,23265,28661,14717,19446,-14455,8385,8041,24003,-19090,12593,10833,24750,24522,-1430,-11427,26613,-6539,32269,18178,-24967,19321,-17778,-32662,-20784,27378,-11934,-1776,12230,-16637,-6512,-28430,5672,-5695,31676,25939,14205,22871,20314,27324,30350,23478,31192,23833,30513,27811,14855,29956,-14704,988,18243,-31066,7334,12739,22469,-11205,11922,8179,2569,22759,26181,-16913,-30027,30728,-26587,22434,19767,-5394,4578,381,-9557,-13843,-8503,22927,17440,14183,23753,17943,211,6253,-29835,6064,7381,17147,-13697,16125,23394,-2578,-4426,-19399,14563,-29695,-8678,16027,-20959,30290,20993,-21922,-29286,6433,11543,24208,11848,29165,-23598,31039,12547,-13209,-22106,11771,-21828,-20302,22160,28699,32178,-10256,2778,-4974,-3154,30790,24875,32231,-3264,-4807,27483,10236,12607,-31056,25819,19783,32703,10982,21016,18432,20902,-29749,7028,-2199,12536,5730,-10359,-22983,-10955,10037,-32711,-5864,15605,24109,10426,-7488,22222,12085,28660,-27406,3067,26985,2040,-600,28521,19726,-14686,-6637,4177,11163,7420,-15833,-31567,22176,30449,-24543,-23936,12115,-14818,-14491,13506,32421,2575,-5760,18870,-26341,-18978,9851,28894,-10974,-1801,19332}, {-5169,-14060,-10481,-7731,-32500,27921,4442,-21876,18619,-17607,-22686,-4967,-9693,-28006,-31791,19245,-27878,15086,1596,1149,10467,-6890,8893,-27929,3729,29761,-8893,-14198,-23815,-12193,5973,-30798,103,-1049,-24559,-4246,-17726,13369,-11946,-27141,-11473,5133,-27451,-9461,-1494,8629,-28527,14642,27416,24478,-181,24555,-435,-16750,-11619,13721,23967,-28479,16014,1787,-6103,-8704,-28056,-15372,-18204,-2320,-27529,-3575,-13549,28540,20842,-2645,32361,26940,30944,20589,-19885,-20228,-16246,-20836,-15661,10113,-1071,-31095,-5926,-23693,9570,-7336,8640,12051,11934,-26650,917,11350,-839,23093,17206,-27300,-27086,29756,-4137,29436,-31694,13736,12714,12072,29798,-28490,-29072,-15113,-30580,1909,13760,-4777,-23011,26190,16213,4214,12803,21550,-12731,21569,9571,11711,-1915,-24861,447,-10664,7578,-25257,5413,20129,3994,-31897,-18214,25267,7312,5586,-17996,-14985,2079,23767,-1308,-28510,5421,27728,-2032,-31078,-7841,6539,-31650,12874,-2389,-25461,-6911,29208,-31724,-855,-10187,3284,-32588,-31444,-22391,-19020,30293,16736,27221,-25551,-18113,-14691,23483,-15582,-21234,-4766,19219,16194,-3172,-28790,7870,10877,-16371,-3903,23100,-6109,-25097,9924,4531,-9677,-11565,32328,-20284,32540,30929,-10774,-10037,-17699,-23153,-12567,30749,-18375,5717,26726,2457,24393,-12297,-5481,-30847,-25790,18741,21889,1544,-24257,-27830,-8491,3045,-15848,-23848,-30531,30406,-24061,9949,-11469,1128,2228,-19140,28714,2639,17775,29150,25145,-12894,-28829,-21524,8404,20111,23820,-6027,-24520,9231,7238,-8810,15374,15668,20663,24915,-9856,-3881,-3294,2231,13165,-22203,-7380,-11142,15641,24283,26203,30474,-30148,25408,-19487,22419,6852,-31998,-6805,-24487,24966,-2477,-13010,-11169,22438,8997,30868,-26419,-24417,30408,4787,12134,-9376,-27259,23116,-2832,3782,25661,-13096,-19523,-7094,12934,18226,14922,23637,9001,-20138,10171,16234,-16052,-2486,-25946,-31954,-10912,32718,9050,-27795,31823,-3551,-11201,-26800,28953,-4826,29398,-32209,28002,-16207,11382,-17997,-31225,5317,31913,-20778,-12345,9431,-1003,1338,-26234,28567,-16530,-13851,-23307,20515,-22662,8040,-24736,9836,-20322,-23801,-1995,29868,-9090,-15934,11855,24477,19519,-16356,1565,31619,1243,-332,-1051,-10093,21287,7735,-10727,-21141,1031,12837,-16910,-16760,-2717,-28886,-26670,3987,10556,-18615,-28860,15543,-31104,25941,30219,25262,28301,-28176,-247,-31239,5847,-18345,3290,-4814,-21662,-20394,-14246,-29286,15900,-19201,11475,-22103,-16073,9692,-5594,-19200,-13408,-3264,-2703,8304,-4817,26806,-8739,18772,-20127,15667,28140,-22157,-4946,12241,20949,14213,18868,25252,20980,30650,16356,32367,-9946,-21481,12383,7173,31946,-8096,3799,31448,-20290,4450,25300,7260,15667,-26125,-9732,31817,-14364,-16734,-23667,22311,-18616,-22113,-14942,27614,-25956,-27487,-17570,29817,25176,7005,-4752,-193,11299,-12445,-3925,-19066,9970,-15306,22720,-21779,23824,-11839,-18287,24561,-641,-747,-257,7067,18756,2327,27655,9901,10800,-5009,31416,-15668,5594,-4544,11687,-24972,-8336,-2476,21326,15740,26957,20453,9808,30852,-29463,-16476,5742,-25507,7404,-18266,29943,-261,-5121,-19920,3221,-22904,-29893,-4330,30267,13588,31438,19194,-27340,-24263,-21617,12374,30349,15949,21307,25860,25984,13115,-5447,10653,4284,-12065,-24806,-5953,30169,-28831,5372,9463,9667,17761,26777,19411,-18864,31619,-12337,19423,32518,-13996,-12717,-23299,10497,-203,6975,1281,7093,10650,2446,23932,-12699,20274,-30554,-28802,-1830,5603,4200,11554,28969,9897,8504,14476,-3383,19730,31463,16631,21219,30757,3675,-9708,-18392,-15113,-14761,-583,-21073,18986,-12470,5101,7270,14875,-1822,-14846,31839,27634,18436,-3125,29978,25690,-17559,6206,18032,-8419,4607,-22557,-9355,-31558,6190,29962,-12502,-587,-23634,7062,31590,-10194,16218,-25509,22738,6823,22022,28984,-32464,-11640,16338,5236,13231,2604,13462,10189,-5870,-6670,-7742,-4137,4658,-15449,-22172,8529,-15292,-1323,22572,7391,15505,22223,-14405,-31583,-22000,14789,17264,10580,-22274,-10091,20694,30391,2261,-29590,7369,-22564,-3514,23196,-1732,-22442,7446,7351,2374,22989,-13889,27993,29484,-27032,-10344,-3783,-29703,2033,-29888,28082,-12109,-2888,898,9867,-10890,31764,13315,-28771,14244,-14542,-25844,-3947,-27240,14284,-5554,20499,7989,32455,30603,30548,21466,14944,-27390,26240,-14385,-25752,-26208,-8816,-12256,18397,9860,-17207,-22917,-21452,-5873,29130,-22771,-13534,-3831,25549,-17649,-13004,16671,-17931,-23465,14300,31983,-27269,32046,22679,-1411,-14621,-14794,2052,-26757,4301,17732,-27970,-14073,12604,20451,-5177,-30696,-7316,29467,4401,-28712,-4329,-15326,-12278,189,23467,-3198,6442,19872,-10959,-12319,-15360,-32336,-1518,32699,-28405,-18518,18105,3529,24734,18248,2297,17321,27828,21106,-17928,32239,-8015,28001,23583,-13414,4404,-20608,-24245,-31963,28811,16067,29732,-23453,-21708,-24588,3721,-32600,20077,-21611,-15830,22207,585,20997,14461,24969,11058,3633,13541,32282,12323,-9629,-7355,31014,26461,-4519,9188,32578,-29890,-7804,-3021,11819,-3565,10000,23116,-21102,29360,17003,-18007,-30374,23951,10108,29821,8987,-5819,-27239,5166,27953,-22463,14795,6631,29896,30528,21524,-11501,-29217,-8602,-8490,17321,-19592,12371,14744,-8650,-12406,21494,4871,-423,-6756,-30006,6330,8558,27333,24681,20653,-16427,-22416,21876,1747,-12420,17989,328,21716,-19591,27319,13215,-6067,-23490,2351,-29126,8488,11290,31990,-25146,15161,-23947,12134,-22618,-32194,22093,30014,25944,23593,-16920,-20472,20131,-651,-19351,-12735,7595,-31983,-2569,30844,17259,-5087,13246,-28782,1143,23530,-6826,-9393,20041,25523,-341,30426,26935,-28172,19445,2049,16417,-13209,-12087,2685,17591,10312,23990,-17391,-16250,-14632,-7343,-12389,14543,-3137,28075,26177,14525,-1005,29271,2516,1143,-18977,24388,-24097,2315,25983,7155,15046,6870,-24857,7174,29469,-21005,1139,32294,-25125,8178,-19257,-26035,18566,7596,22520,-24993,-20634,-20415,-6546,21905,26721,91,-31832,-26249,1986,-702,-26093,-19049,20960,15618,1721,-29090,30375,-4070,24342,-24738,-16308,-15250,8270,-4959,-5805,28318,1370,30155,31079,8863,16198}, } ; static void test_encode_953x2115_impl(long long impl) { unsigned char *s = test_encode_953x2115_s; unsigned char *x = test_encode_953x2115_x; unsigned char *s2 = test_encode_953x2115_s2; unsigned char *x2 = test_encode_953x2115_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_953x2115_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x2115(impl); printf("encode_953x2115 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x2115_implementation(impl),ntruprime_dispatch_encode_953x2115_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x2115; printf("encode_953x2115 selected implementation %s compiler %s\n",ntruprime_encode_953x2115_implementation(),ntruprime_encode_953x2115_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_953x2115_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_953x2115_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_953x2115_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_953x2115_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_953x2115_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_953x2115_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_953x2115(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x2115")) return; storage_encode_953x2115_s = callocplus(crypto_encode_STRBYTES); test_encode_953x2115_s = aligned(storage_encode_953x2115_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_953x2115_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_953x2115_x = aligned(storage_encode_953x2115_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_953x2115_s2 = callocplus(maxalloc); test_encode_953x2115_s2 = aligned(storage_encode_953x2115_s2,crypto_encode_STRBYTES); storage_encode_953x2115_x2 = callocplus(maxalloc); test_encode_953x2115_x2 = aligned(storage_encode_953x2115_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_953x2115 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x2115();++impl) forked(test_encode_953x2115_impl,impl); ++test_encode_953x2115_s; ++test_encode_953x2115_x; ++test_encode_953x2115_s2; ++test_encode_953x2115_x2; } free(storage_encode_953x2115_x2); free(storage_encode_953x2115_s2); free(storage_encode_953x2115_x); free(storage_encode_953x2115_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_953x2115round.c0000644000000000000000000013740214705505543023452 0ustar rootroot/* ----- encode/953x2115round, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_953x2115round_checksums[] = { "bbb31bbccfccf662777eabe951a585b359eaf9916a7eb4657d33356f7cfbb81b", "cb28590264fec821fd69bb3c0e81141743256f5cd8111fc3ac369b32bd43d73f", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_953x2115round_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_953x2115round_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_953x2115round_ITEMBYTES static void *storage_encode_953x2115round_s; static unsigned char *test_encode_953x2115round_s; static void *storage_encode_953x2115round_x; static unsigned char *test_encode_953x2115round_x; static void *storage_encode_953x2115round_s2; static unsigned char *test_encode_953x2115round_s2; static void *storage_encode_953x2115round_x2; static unsigned char *test_encode_953x2115round_x2; #define precomputed_encode_953x2115round_NUM 4 static const unsigned char precomputed_encode_953x2115round_s[precomputed_encode_953x2115round_NUM][crypto_encode_STRBYTES] = { {82,233,1,95,247,84,69,20,120,128,214,129,28,148,50,169,221,166,109,4,196,54,93,197,112,252,67,132,171,117,175,235,24,212,161,171,197,41,117,106,171,25,179,245,7,122,241,242,208,232,47,204,120,49,220,139,124,218,89,135,31,213,153,86,189,193,65,148,118,210,194,255,89,150,81,250,245,53,251,255,213,91,204,179,100,0,63,133,164,182,101,186,173,232,154,199,83,125,31,132,167,79,196,17,189,153,24,206,41,50,1,196,120,104,162,182,71,24,28,151,152,152,125,165,136,250,6,175,151,255,98,35,167,118,42,6,196,189,227,25,9,234,120,166,209,201,27,103,225,192,254,209,158,89,195,121,110,53,20,198,230,56,107,70,178,233,172,157,137,123,101,144,99,178,64,221,119,218,255,223,234,236,54,235,101,202,217,64,232,229,151,10,105,83,81,7,93,253,38,101,139,44,29,24,116,120,95,2,1,23,173,255,42,55,189,117,56,220,229,93,217,21,11,104,237,184,215,37,116,185,74,104,112,198,137,193,14,157,15,220,71,74,138,98,3,103,144,51,133,165,79,5,70,6,109,250,205,1,213,184,76,44,22,29,144,64,140,16,176,78,147,212,193,160,167,213,139,243,223,205,28,125,31,186,60,41,47,27,221,128,152,52,131,102,118,152,74,91,189,53,67,82,25,206,7,211,166,184,39,49,205,153,196,44,18,178,23,39,254,180,237,207,40,196,232,241,227,169,111,76,232,229,126,22,88,144,247,196,74,120,189,129,19,75,211,221,246,154,26,54,176,231,166,254,211,116,18,238,235,55,128,227,134,16,225,112,12,187,177,40,3,168,57,42,32,36,24,251,166,95,18,180,128,26,24,126,241,68,213,199,237,130,211,247,101,195,181,222,114,53,134,126,215,169,255,17,118,109,55,65,107,151,143,138,233,168,89,110,38,93,3,73,209,209,133,152,211,226,144,169,248,253,91,171,171,105,75,69,192,119,34,135,207,116,85,192,145,126,126,2,223,171,15,26,72,109,161,148,186,113,154,133,227,109,105,16,8,154,87,251,0,221,150,56,207,43,24,239,252,7,73,51,19,165,188,31,207,181,16,217,205,36,58,205,200,226,52,126,173,248,179,148,185,8,175,228,122,172,222,9,228,120,254,220,68,247,111,149,65,124,1,133,98,140,206,120,247,225,211,185,34,152,188,251,182,248,155,152,63,76,171,125,220,220,127,229,224,53,202,240,150,22,156,232,185,4,47,165,28,147,149,78,132,139,96,230,99,75,60,224,177,140,201,167,73,243,223,138,46,216,162,202,175,55,223,250,45,188,172,199,28,90,241,159,103,54,70,186,129,149,110,180,145,78,255,112,205,2,121,94,235,81,132,163,47,213,196,203,79,175,250,255,134,103,119,61,154,15,91,134,118,12,251,207,4,45,159,124,88,151,170,236,41,123,150,113,228,137,151,95,215,246,106,122,176,146,160,93,135,194,116,113,198,219,25,106,253,210,224,186,225,204,120,132,186,110,75,73,164,84,20,89,225,119,167,4,29,113,244,138,89,69,235,120,44,35,219,203,241,183,148,184,124,73,250,201,92,142,128,0,29,255,246,76,40,16,95,178,26,208,200,233,156,118,213,87,43,132,25,28,165,202,72,221,191,8,56,31,76,214,89,8,130,222,26,144,254,53,18,182,77,197,223,120,178,104,70,39,156,164,183,14,193,152,125,107,134,45,215,18,98,149,122,111,224,238,109,36,125,0,117,206,212,146,171,145,127,93,111,235,142,217,189,192,149,92,168,171,47,149,220,104,184,53,134,241,227,143,151,98,143,203,140,255,122,60,137,114,44,218,62,188,146,45,20,108,172,83,143,44,47,57,28,137,92,42,80,167,6,142,106,248,79,238,247,183,245,108,64,70,186,1,83,2,159,178,70,109,103,117,61,34,34,66,140,195,213,61,183,171,118,198,8,31,2,212,161,225,91,18,71,182,188,137,178,198,157,55,118,38,38,173,20,252,160,180,252,184,169,30,166,239,19,0,167,59,46,239,147,65,14,16,57,178,196,159,221,215,152,7,75,101,232,152,77,142,95,37,190,86,102,84,253,28,164,249,140,24,108,113,176,107,35,22,255,200,13,49,160,160,42,40,255,79,51,71,215,58,174,31,111,89,37,72,83,98,159,147,146,175,213,126,129,105,192,73,153,81,111,214,171,16,228,99,61,71,93,12,148,149,198,54,47,211,46,210,114,250,210,16,31,190,182,8,97,109,89,202,214,37,251,205,66,102,10,250,35,105,5,66,55,242,235,122,159,222,135,217,37,224,127,21,106,207,70,163,176,31,19,224,71,108,74,2,128,173,254,224,128,46,117,241,53,144,130,108,71,168,24,1,166,73,220,172,232,104,243,94,254,129,5,147,52,148,251,83,134,130,85,96,231,110,207,222,170,24,114,10,108,241,131,81,201,17,159,217,182,205,226,249,106,95,69,254,130,30,138,155,152,199,157,132,132,8,180,152,154,198,251,4,98,145,27,219,227,41,6,199,90,1,222,145,234,46,177,84,74,207,146,193,45,148,247,213,83,184,52,76,253,23,197,177,162,82,116,134,67,34,35,32,233,40,131,130,35,121,47,70,85,59,150,49,58,136,244,179,242,187,138,86,134,237,138,0,208,79,201,219,197,140,248,141,52,195,244,180,143,192,117,61,31,118,213,89,75,40,86,19,47,201,128,4,191,68,235,245,12,160,70,197,34,162,106,134,239,29,43,198,45,41,172,221,0,200,90,211,223,125,199,159,179,34,179,44,121,87,75,117,119,238,149,143,204,34,247,19,239,222,96,12,48,35,209,142,21,29,54,5,127,130,24,69,67,19,11,236,62,85,183,194,252,213,90,66,55,3,100,99,141,246,107,48,12,87,16,117,77,243,128,145,100,36,92,175,246,9,176,166,99,233,13,123,85,22,235,57,32}, {254,59,67,218,50,38,20,73,240,5,245,51,203,253,106,122,220,168,229,94,253,177,25,215,110,85,110,175,63,72,241,95,150,9,7,168,200,111,152,101,45,214,183,89,125,198,216,231,191,187,6,105,238,30,202,246,43,165,122,44,102,146,97,124,92,168,93,246,108,186,31,11,225,214,223,138,66,15,99,254,174,45,86,55,47,34,169,132,69,33,123,120,58,186,129,188,219,82,236,171,42,161,66,118,134,252,195,244,25,82,132,192,208,50,164,219,38,14,23,223,164,154,28,190,214,37,212,219,46,100,24,29,63,151,240,169,19,12,116,136,204,226,185,157,232,96,1,129,204,232,12,132,12,29,112,103,78,192,141,146,94,229,133,137,108,136,149,91,3,45,181,217,59,56,103,59,154,29,140,237,146,108,188,217,229,42,246,152,94,255,145,153,115,50,5,60,71,78,183,41,132,13,122,215,98,182,196,148,143,109,51,154,10,114,239,66,223,181,158,146,192,20,223,161,11,87,232,38,170,78,180,93,126,127,234,191,138,255,252,97,222,141,142,242,64,25,61,127,184,14,15,42,104,140,136,101,77,72,187,61,25,116,214,107,95,123,36,148,237,137,60,18,120,196,162,155,97,199,118,159,142,32,163,92,153,41,229,49,28,146,201,247,95,77,26,110,14,113,137,36,1,140,231,161,27,237,40,150,94,236,39,115,125,38,249,240,64,237,179,98,8,251,124,104,245,51,100,54,242,176,174,130,18,90,32,38,139,187,5,206,230,78,190,16,105,92,239,181,137,85,197,78,236,8,201,168,57,251,52,118,147,254,1,18,94,135,4,118,1,39,44,5,139,236,111,163,160,62,85,140,216,148,173,105,157,141,4,250,236,85,117,77,186,237,98,11,2,44,196,153,231,226,250,88,194,22,37,109,237,240,25,32,57,141,72,35,119,159,141,149,84,231,132,116,205,69,36,87,197,234,9,197,63,229,24,76,125,217,8,178,117,212,15,218,240,216,246,74,22,68,139,191,235,162,80,202,84,23,29,235,37,84,117,190,162,118,39,184,222,5,250,28,219,221,198,233,138,81,171,184,234,241,63,188,112,10,254,232,156,20,106,163,33,20,154,114,104,86,62,167,226,226,213,120,93,36,202,243,195,136,223,144,7,143,189,212,173,8,75,2,91,154,136,39,118,224,116,45,76,180,255,224,100,234,89,198,69,135,30,52,215,250,91,181,144,52,82,41,1,251,169,169,175,162,140,250,38,113,153,204,33,231,89,24,134,154,62,133,247,215,34,122,114,167,130,97,151,254,241,65,134,57,97,15,65,224,173,117,152,225,17,57,116,151,93,5,48,149,79,141,104,144,187,120,45,176,59,105,196,177,45,130,56,244,57,178,48,161,159,140,170,146,248,93,83,105,97,226,32,238,13,2,164,44,218,50,44,129,22,99,209,30,50,70,249,53,182,73,26,153,198,114,100,31,157,239,243,174,240,178,136,37,67,16,99,181,82,162,81,42,62,157,188,207,78,214,83,10,35,253,227,224,225,25,138,159,233,207,32,249,211,153,220,207,132,186,160,36,48,194,87,234,8,255,232,31,15,64,48,53,29,99,85,237,158,117,133,28,98,189,32,6,102,9,223,130,91,188,157,27,160,3,168,80,127,20,23,135,146,122,247,23,20,186,148,42,238,129,183,173,240,112,236,247,98,196,160,180,22,241,31,118,34,61,242,191,89,221,234,2,15,53,216,125,111,163,200,39,211,72,13,228,234,201,233,68,133,93,190,125,228,181,45,69,74,99,254,173,29,67,204,40,241,91,170,192,85,148,10,84,4,232,238,37,251,184,231,53,145,238,34,202,121,142,148,168,125,43,49,15,169,204,230,66,75,156,19,182,194,144,92,87,251,33,88,162,201,65,43,215,129,51,41,128,65,121,100,100,138,156,36,115,211,148,99,119,86,23,252,230,219,31,199,166,93,180,65,176,189,137,236,147,220,114,210,108,135,212,99,15,238,82,126,196,118,4,213,56,91,97,34,104,176,28,225,200,14,40,33,12,162,247,156,254,205,173,108,45,30,35,122,127,168,12,65,153,83,166,190,76,134,227,129,155,126,57,90,174,210,46,112,251,161,105,241,17,69,252,151,116,189,100,205,233,170,17,96,0,142,27,209,179,163,184,216,139,90,205,234,9,179,72,101,82,56,114,156,56,26,1,87,38,211,250,249,47,255,255,221,248,11,14,246,152,193,66,219,180,107,204,242,176,94,221,172,238,219,57,161,153,184,87,47,106,56,58,26,205,177,254,245,134,129,150,96,184,96,141,209,30,183,207,117,223,180,161,216,34,62,220,249,194,107,123,52,132,235,15,180,169,29,85,209,8,76,229,9,162,1,2,8,40,75,120,79,14,130,248,58,158,92,169,123,88,30,33,107,67,254,145,187,91,5,96,23,155,194,244,108,16,210,170,30,125,101,243,125,76,200,77,62,72,58,117,144,173,108,189,173,236,200,68,26,174,160,4,229,43,230,202,199,141,7,215,74,111,27,140,103,132,197,158,148,3,113,53,151,37,211,47,109,228,13,77,51,143,40,214,221,81,52,186,144,206,125,90,140,122,32,150,176,9,149,200,198,242,2,12,231,22,51,11,67,85,115,93,187,15,253,23,90,117,77,33,231,3,122,165,22,142,8,178,62,99,156,42,56,69,94,157,187,154,107,122,162,165,182,113,158,46,28,25,63,194,51,11,171,110,52,45,89,217,159,8,231,197,226,252,91,158,230,82,108,238,96,88,200,249,248,48,231,167,89,108,218,195,181,26,61,200,29,111,64,160,235,124,6,143,230,136,202,11,184,83,159,244,188,136,133,46,2,30,198,185,244,211,202,162,84,188,205,156,244,162,29,239,193,139,94,218,240,114,92,189,197,126,48,95,211,167,220,241,55,3,26,44,147,67,245,171,49,157,67,186,84,112,243}, {62,32,143,20,252,110,50,253,180,229,175,154,8,193,143,195,13,102,145,198,236,153,176,187,177,228,4,233,166,189,208,94,227,73,9,128,178,136,35,53,191,187,246,53,23,199,206,165,1,62,94,106,79,122,140,70,197,28,49,129,23,197,187,128,169,45,163,204,229,110,238,252,233,59,241,177,114,83,148,164,8,149,165,253,135,152,178,214,204,126,150,59,148,146,164,49,165,94,187,176,11,200,26,188,36,41,137,103,57,105,103,0,205,111,208,99,239,92,147,163,194,48,200,108,134,177,225,90,100,29,172,46,134,184,94,42,28,147,248,216,65,138,221,121,10,42,225,195,238,197,175,191,91,48,194,191,161,245,255,56,57,215,156,161,241,11,156,209,251,34,51,248,175,158,156,233,53,190,160,33,24,246,126,97,165,223,43,240,181,172,43,209,52,154,202,34,242,40,79,213,146,37,68,187,243,179,32,230,63,131,205,255,171,30,82,180,104,243,255,79,42,132,139,90,65,153,232,218,48,91,128,207,13,11,220,82,8,241,31,195,242,241,4,86,158,18,23,5,127,94,126,215,151,121,115,207,243,111,90,102,123,95,3,183,204,103,254,164,76,189,16,5,250,209,68,173,114,157,51,16,208,97,214,206,199,179,58,56,144,185,163,78,219,197,117,112,178,1,194,58,127,98,251,136,152,98,240,43,203,185,247,228,194,110,51,179,193,186,185,94,243,40,100,51,31,240,199,214,157,102,66,83,198,129,54,177,164,192,167,149,109,227,239,54,181,35,94,118,162,191,53,192,147,214,151,194,24,81,102,176,114,136,147,197,72,249,107,11,62,221,101,198,229,132,113,194,242,158,187,168,155,162,137,90,105,130,41,227,14,135,4,3,97,135,184,61,239,86,91,168,149,23,143,225,233,12,159,114,83,9,198,238,153,225,83,99,249,248,243,230,253,202,37,171,73,143,170,52,217,115,123,156,220,101,75,245,131,128,170,72,138,71,78,59,37,208,182,88,82,182,15,149,163,187,242,112,18,228,137,230,14,198,155,247,175,130,158,106,141,81,204,9,131,94,251,245,226,182,182,208,212,56,87,103,54,207,85,5,89,127,3,251,201,156,224,243,219,194,225,196,49,113,239,177,201,193,176,90,188,164,1,45,135,165,139,9,150,37,158,135,238,178,74,200,240,53,90,228,189,8,193,116,62,144,102,226,144,171,161,244,235,232,152,110,75,251,229,49,206,77,240,100,2,24,4,30,144,75,10,71,164,223,20,124,230,193,26,218,72,51,153,64,35,8,195,204,176,126,15,78,194,193,79,152,207,223,106,27,230,142,9,206,20,232,59,253,154,27,211,14,237,130,253,230,88,218,205,97,242,33,204,55,77,197,178,12,237,42,82,144,54,80,92,77,161,221,31,53,151,55,164,218,96,30,5,135,156,17,46,213,164,193,101,131,52,123,62,159,69,185,65,245,231,80,112,212,105,207,217,214,233,242,137,4,165,37,121,177,179,2,170,255,32,154,254,100,123,207,222,27,132,56,12,186,2,131,5,217,115,52,252,127,104,230,224,9,21,29,221,119,170,107,171,106,113,224,125,0,154,71,222,129,77,212,234,210,94,204,101,143,154,80,166,129,139,100,191,222,79,14,239,239,100,149,249,31,105,218,176,170,107,37,212,183,167,206,22,74,22,226,16,149,69,237,200,83,163,85,135,32,116,222,236,136,53,39,78,238,46,89,180,172,64,78,90,207,187,192,157,20,134,59,55,59,14,120,144,205,112,30,78,123,84,226,88,26,220,107,235,203,59,187,72,225,128,64,48,85,226,233,192,99,140,153,203,187,193,52,94,134,216,244,184,31,79,27,161,224,201,107,239,20,22,40,99,193,251,64,185,161,5,222,132,28,128,137,52,60,245,210,105,48,57,78,130,38,117,70,139,40,78,224,129,96,76,113,133,169,100,61,96,204,83,118,190,54,13,27,12,48,18,189,188,217,75,63,233,226,18,165,16,65,165,99,96,188,112,231,104,243,179,184,254,221,164,250,205,114,203,185,108,31,207,248,75,228,230,144,37,169,169,168,209,11,195,255,92,114,161,157,14,120,248,175,199,58,161,69,128,186,64,134,13,86,217,179,164,153,249,140,120,185,44,75,74,203,40,169,57,156,26,192,159,76,22,202,230,95,155,162,129,17,7,15,78,170,142,78,111,133,244,110,197,192,255,34,30,23,72,230,10,234,117,225,206,146,148,5,133,172,210,117,184,226,183,109,137,56,254,53,155,254,30,148,28,163,72,63,55,6,137,19,187,255,112,173,83,82,112,59,211,124,131,34,223,20,146,101,175,25,27,54,135,203,144,161,142,63,26,215,249,122,105,150,214,31,165,224,156,46,63,31,19,65,233,134,232,180,91,132,188,210,124,90,120,163,66,130,169,249,175,64,234,216,118,53,139,115,64,149,146,238,33,195,162,83,221,223,27,68,111,26,164,182,193,85,71,48,77,99,117,14,116,118,130,134,47,198,253,146,230,235,83,161,160,183,118,183,162,177,107,243,79,20,214,149,53,128,41,58,116,79,54,197,120,205,164,14,74,6,43,141,30,112,193,2,120,113,180,240,81,36,178,63,65,219,237,253,95,162,167,240,197,186,203,120,98,197,102,82,82,2,91,126,216,37,54,11,183,129,138,235,31,120,47,205,228,221,200,221,74,37,234,209,82,151,128,220,32,43,65,239,31,170,105,164,1,136,176,240,34,208,1,239,150,105,43,11,154,241,161,100,151,236,33,122,62,81,125,59,175,2,180,183,74,244,242,241,242,212,233,10,171,62,210,4,213,238,98,227,42,92,207,156,6,220,238,21,243,4,62,136,124,37,134,57,200,184,125,215,73,185,189,24,244,110,125,229,236,142,1,179,247,216,104,206,69,208,236,66,149,198,149,208,87,97,160,208,87,41,226,5,130,220,192,82,0}, {150,66,199,170,181,61,15,55,113,132,136,0,246,119,126,171,7,220,131,9,179,97,55,175,33,36,199,134,16,244,36,184,235,154,169,30,2,17,47,253,63,112,41,50,155,159,44,126,89,105,48,37,114,248,51,117,124,27,124,163,80,226,132,180,111,212,32,95,87,147,109,100,218,129,93,179,209,228,210,81,122,54,126,221,77,66,134,236,201,234,82,52,115,116,22,3,230,74,79,123,96,32,76,188,37,91,46,209,142,189,178,118,240,122,178,86,59,135,235,209,222,16,162,236,48,204,238,77,129,54,220,81,46,223,3,171,215,43,143,29,124,195,58,41,247,97,231,196,167,52,49,71,100,23,186,164,104,115,184,6,116,225,210,223,59,168,229,134,224,179,20,131,76,67,35,59,243,166,92,26,193,155,253,0,115,193,214,133,24,219,62,5,94,251,44,207,97,162,138,199,50,191,26,225,214,137,62,248,192,105,187,82,108,168,90,141,225,223,46,152,223,208,249,87,46,155,58,80,127,56,15,48,73,35,74,11,73,108,11,174,112,175,127,57,33,116,186,42,136,87,70,195,136,254,221,84,214,109,80,92,200,195,47,102,230,160,114,245,119,98,109,157,217,170,244,157,83,14,47,139,251,160,33,25,147,4,4,35,29,67,154,92,132,104,145,211,182,133,60,80,139,230,65,91,167,13,60,74,132,179,68,208,131,199,133,216,248,47,112,113,1,8,10,124,200,130,40,108,158,152,222,191,204,200,218,248,199,170,14,104,228,94,94,67,204,248,240,141,140,155,132,47,1,3,56,52,134,72,238,250,65,113,27,243,81,151,127,235,230,201,109,198,80,94,84,34,39,126,38,218,58,37,209,125,95,138,128,212,175,246,10,183,107,144,73,242,213,45,65,172,73,158,141,112,137,246,7,171,148,86,11,165,20,94,121,213,118,7,205,65,76,193,168,108,55,134,156,203,114,206,88,79,14,125,21,103,138,123,95,185,57,73,130,131,187,18,78,143,76,8,183,154,207,143,111,252,95,99,59,20,204,148,172,194,49,132,129,14,211,172,160,106,8,193,101,20,236,102,115,61,125,0,6,130,62,178,55,195,240,85,210,69,76,73,215,171,189,52,242,203,202,213,145,225,209,19,182,21,128,227,74,12,193,11,101,151,123,74,214,14,219,136,114,112,207,142,60,171,17,93,131,245,9,102,182,253,179,213,170,5,31,140,157,175,91,156,38,83,136,60,20,242,198,228,48,44,35,72,77,75,201,236,205,4,127,82,171,136,214,165,156,7,223,125,158,157,21,244,153,36,208,213,32,55,170,106,229,96,112,158,219,145,219,188,175,248,109,74,4,129,42,155,117,82,212,99,230,101,18,58,110,124,200,138,230,128,76,207,59,240,21,121,178,212,152,249,161,219,179,18,37,31,20,207,225,106,228,152,83,198,228,246,175,100,17,56,227,195,64,220,14,46,22,158,190,121,247,173,124,178,214,154,113,174,149,178,157,227,135,194,132,101,10,224,80,26,159,209,196,34,195,145,7,152,131,195,65,86,98,176,49,53,27,153,81,112,4,117,134,70,54,164,135,0,99,179,244,219,32,122,164,129,92,149,18,25,11,172,245,18,11,95,100,184,62,11,179,63,101,57,124,92,204,135,101,226,184,82,224,69,158,137,22,122,47,10,185,249,128,83,218,52,197,215,220,11,39,10,209,159,227,191,215,233,126,25,197,246,51,70,70,156,40,59,78,25,32,58,92,248,17,178,154,1,242,45,95,100,190,141,48,178,169,159,38,131,99,182,255,22,96,110,52,78,189,97,255,36,197,166,20,57,215,109,236,174,130,30,214,190,227,77,251,145,191,77,123,147,33,133,204,114,246,157,7,180,37,242,249,8,161,242,91,77,102,133,99,232,184,23,79,101,19,203,18,55,80,188,107,95,192,221,36,217,93,217,114,5,209,31,57,22,86,211,84,231,77,202,164,170,95,137,207,20,89,176,176,23,13,93,255,181,141,45,148,127,59,96,240,236,22,31,208,48,5,229,146,71,81,38,78,22,212,164,37,182,47,106,23,185,46,120,138,222,129,78,156,113,73,9,117,239,104,221,76,240,95,31,39,131,191,28,203,103,127,165,10,197,210,97,249,201,48,5,35,122,84,7,124,129,144,240,94,128,83,212,3,189,136,239,27,242,111,120,89,18,88,29,213,240,37,229,50,220,29,79,207,220,248,20,62,12,65,36,146,254,5,130,120,46,67,192,26,129,51,228,151,144,93,83,141,106,123,107,165,123,92,3,147,205,254,121,201,153,116,79,14,186,228,19,19,204,120,233,166,211,120,17,86,154,47,119,160,188,210,238,33,98,255,64,190,241,183,115,145,164,214,144,6,5,2,45,222,38,233,213,4,217,107,109,132,108,214,126,76,49,155,193,148,192,194,150,237,164,145,184,253,2,15,159,5,76,136,252,193,170,6,180,51,36,143,77,128,91,72,97,157,132,30,194,163,221,188,243,170,185,5,209,251,46,75,10,56,152,188,76,211,171,38,87,18,189,244,20,100,168,142,108,241,47,104,49,238,176,135,61,187,3,106,149,29,30,242,198,184,25,197,9,93,15,225,228,123,205,141,71,116,149,201,72,102,28,230,250,217,7,72,100,202,212,250,156,193,34,111,117,60,99,149,236,15,234,43,214,248,64,16,174,42,174,31,184,168,14,40,72,172,171,106,57,190,6,103,81,168,29,167,182,20,3,179,111,130,146,96,28,251,149,181,157,15,72,251,89,204,119,13,230,89,45,190,41,127,65,68,207,116,236,160,68,75,147,59,100,183,12,209,133,194,58,196,147,19,135,140,248,200,126,17,207,179,50,11,193,96,165,25,8,92,13,205,115,208,45,19,106,84,244,147,196,51,177,147,70,25,120,124,140,28,144,180,53,245,76,187,225,51,70,140,176,188,0,38,147,201,38,63}, } ; static const int16_t precomputed_encode_953x2115round_x[precomputed_encode_953x2115round_NUM][crypto_encode_ITEMS] = { {-18730,-5154,-24168,-31537,26919,-11908,-2381,31835,18345,25065,-11975,405,23696,21909,-30383,-25000,-20870,18844,30292,22882,-10703,21596,-2061,-24245,-5268,28915,27602,-24090,-13322,15021,-7694,-15012,-24470,9542,15511,22850,4827,2232,-30492,-2949,-22231,-6350,-2399,-8495,19574,2076,-12301,-4130,12045,-30560,-4170,-3962,-21851,-14337,18150,-2099,23771,18588,-19608,18741,8475,-22571,14347,28862,-19313,22859,25720,-12905,-29191,-310,22672,-16305,-22425,-2659,8455,75,10354,13110,-2062,-13978,-27995,-13668,-25795,-1995,-9701,-25808,22882,-25015,7152,16530,25371,-24718,-17224,-23676,15608,-23779,30834,10259,14116,-30126,17617,26441,-22914,11051,-32691,-12064,-25069,14866,-120,-25135,10890,-25646,-26722,21335,-4987,25544,14205,25306,-24711,-15972,18190,17915,-18667,-13453,10706,14230,6603,-15125,16367,-26083,11742,3155,14627,-5009,-25044,26969,-6282,-29925,3579,-28680,-30736,7137,-2576,-28717,12316,-12795,-24905,-7716,-13460,-3311,-26694,26578,28746,13122,-8537,10441,-4690,20850,-30970,4985,-25616,31380,11175,-4197,-17915,3884,8663,14754,-18032,1706,20414,31970,-3161,24061,32024,-397,-24523,-15110,6050,-8229,32310,12158,12408,20171,3026,16818,32463,32315,14726,17293,15085,-29241,15905,-14970,20481,-14536,31567,-662,15094,-22699,30596,21597,17476,-1491,-8144,18550,-21083,-29527,7014,-11556,1956,11421,-31384,-13030,9365,5512,32439,-20892,-32674,25797,-24463,-13882,27661,-10598,-11820,30775,-28260,32116,24559,-8245,-27898,-720,-21915,18764,-2211,-1241,16926,-235,19411,8155,11281,-14699,-14722,-28000,20693,-3996,-22935,30910,-355,7670,-19616,10861,-1491,6963,31213,10863,-5493,10396,-25235,-31227,-2803,28846,-21516,21676,22367,-3453,21832,17585,-5102,14911,-8408,3501,14119,31794,-849,-25728,-28648,-26833,19993,2664,26553,-19236,-28501,-690,-32008,-3458,-28021,-5697,-10200,-18673,23267,-30623,18837,-25584,-19681,9706,18301,-11064,30536,15651,-9143,-10604,-13563,-22292,-4215,11307,-15781,-7589,-14059,4188,22940,20608,26292,6042,-19572,26658,14725,-32575,-20193,22941,-5461,19697,1020,13842,29885,28454,-32630,-12429,-10233,-7445,-25997,5459,-26139,30809,18461,-31517,29886,-30473,13286,590,15499,-26781,13500,-28845,12381,-9999,10049,24605,-26460,-2783,22519,-25166,-14508,29874,16622,-31805,-19080,-24045,-20472,-3738,11875,4807,-7909,-18437,-9450,27286,-15666,-2919,20037,18988,-28862,28330,569,-32389,-26543,-23100,-10992,-21998,-27930,31765,-27760,329,3359,-1955,14184,-2383,-2203,-18227,-30315,31713,20493,-7983,-5935,19060,6079,21367,31746,-8506,10582,-1112,24412,-25392,12094,-28073,-22294,-12583,-22366,4391,-16152,-10329,2812,-26494,-16661,-983,-31206,-31136,-1090,20225,-8695,-8928,23033,-20390,8721,-9164,-6991,-25848,-12597,29281,-16230,13274,18075,-22459,-13821,9344,-21103,-16455,11268,27548,12221,13717,2390,-32636,25036,5512,22896,18392,7018,8490,-32642,-7469,10261,24705,-4505,-23849,-21729,10341,9097,27205,32274,-26785,9643,-11702,-29869,12763,-14440,27997,-21521,12959,11750,-21815,11313,-25917,19989,-14239,-2557,-1761,-28586,-14173,-4131,23622,23568,748,22300,-32163,32411,-16847,28802,23778,25457,-10372,-12949,-3183,-1753,-15296,-10541,10664,-3000,-4264,-29232,10766,28492,-25107,-2824,-29148,-15333,3790,16943,22013,-13368,-18066,29134,-2297,-19973,31250,15978,264,21233,-7140,-28568,-6778,-20977,-24090,26196,3287,-30000,-24461,-26936,-29537,-5749,-26950,27134,21536,22616,10395,87,24085,-32436,-6486,27697,-29500,6676,8117,-17176,29283,-3590,-4141,-27683,-27648,20822,19711,-14822,10315,18630,-17425,20564,13187,7996,-27515,20585,-31516,15155,14636,-3597,-3430,16559,6113,21383,-7073,-19090,30144,4740,-23804,-2083,-2182,5571,-12218,15563,16238,-30885,-584,4601,-17438,22508,21874,25084,23431,-1375,-32523,26352,-21647,9091,26627,15401,3764,-26494,-12101,-25519,-13357,6206,-8535,7803,-2368,-17016,30367,-17961,-26229,18223,-25434,-28055,-11435,26493,-30335,-15399,14203,-862,-26100,-18130,6662,11862,19035,20747,-23668,21695,-4646,27986,11160,-1977,-8023,18615,-336,25382,23997,-1204,-13623,23532,2418,12391,-8455,-10938,10173,-10168,11597,31171,24507,9743,18082,16198,-11231,5824,27838,-44,-10076,5220,23386,4051,-31704,-20968,19840,21878,11677,29581,-21307,21455,-27030,-31033,4116,-18240,12709,-16158,-21739,19144,19143,-8040,-18024,29622,6351,-3173,28757,1937,23002,26596,-8187,-27143,-11893,-9039,-6635,-7617,25520,-8542,4217,-28491,-11260,-25730,13440,31223,20012,28272,31709,10147,4792,19196,6375,29138,-26528,-27026,27135,-29080,30669,-29734,-12214,-9899,-26646,2130,16493,8975,13495,12207,-21191,-13148,-11486,18746,-16590,-24210,7091,16001,-1840,18668,4591,-22883,-26823,3220,433,-16935,-10180,-7194,20742,-1187,-1,-8658,28346,14487,-7280,-31425,-4415,-18586,28790,212,26804,-20843,-8246,-19528,2851,28071,5605,21900,-20284,-8861,30071,-14479,20894,21117,-9141,-18548,-3697,-16882,863,25487,-15638,-31205,-32307,3515,-19316,18600,-31528,6354,-9897,4291,31186,29319,16738,-14151,-11766,-26259,-17830,-26640,-21199,-6425,5316,-1771,-4039,-11190,-12601,-12868,5541,12996,17701,-18020,7303,-3635,-32171,-22596,-15525,-3865,-5784,-11649,26776,-24955,1524,3173,26354,-2859,17286,-6695,-13333,506,-30897,3084,-13565,-18799,5645,30481,8053,27001,-836,-22738,-22332,13846,-28934,-30574,-32203,23922,-27553,2337,-24175,1451,-26442,1458,-25558,3941,4128,-22827,26871,5659,23149,-14043,22761,-6640,27842,-27007,-18880,10323,13768,-19433,28553,-3068,7769,25166,31956,7629,-25672,-1392,2697,-27747,-24297,25359,-23971,-5806,12556,-10848,22846,5743,-15302,-7642,25955,7800,-29544,12352,-13623,13003,-24595,9563,-12336,-18691,7290,-10635,1266,29489,11528,-3930,21307,-15563,31888,-18139,-27106,9166,19501,18811,-9265,22070,-17407,-26854,-31949,4524,-7380,32380,-30616,-26257,16179,-15877,-26710,7319,-4030,-1889,32171,-28589,28050,27408,2944,-24020,-2895,12385,18728,-14777,8781,13495,28046,10137,6504,-22340,32039,14137,-5487,-18598,12827,32263,25480,-8538,11984,-26024,-21213,1913,14833,3826,-8858,-15995,-30659,-3268,-17034,-7017,-16341,-8090,-2789,31217}, {-22114,-28576,-26855,-29167,-7180,24563,-25110,-5032,16204,21673,-2736,21507,30505,17210,-14905,-21763,-29423,22846,-18819,-626,24301,25452,-3953,7590,-13061,12568,-24457,32538,28542,31846,-5239,15660,31558,25767,20834,14202,3746,-26138,-6470,-4371,5290,-25080,12012,16399,17102,22859,1123,-19680,22318,-20347,31848,6068,1461,13318,-16547,-16769,5111,-24446,9945,5763,-28594,-8906,17036,16326,3312,-695,-25525,4909,-1603,-20160,759,1759,-25016,-1146,-27945,7379,28654,-3196,-1289,-25713,13261,23549,9509,-14800,13816,27077,-26455,-25295,-2404,9762,-27991,-20094,27670,-4155,-9943,-17445,29607,-19337,-29072,24986,25469,17172,-18349,-11889,-28358,-10170,16483,20830,11636,943,29206,18576,-4871,-30255,-17580,15154,-4618,-3566,-17539,-31207,19763,17916,-15663,32360,-5188,-1025,4590,6295,-27327,8854,-28370,-17315,-11354,-12624,24122,2650,-27277,-28498,-9510,26366,-30300,23892,28381,8407,-10408,15198,-17661,-26966,3593,11227,31135,1896,-334,30070,26767,-537,21657,19694,24157,29738,3055,-14176,28072,-20276,30580,6081,-7891,31299,9742,-3183,15257,27049,-23089,2143,-18615,-12469,15523,31094,-8185,-22563,-30012,-4550,-21095,-22199,-25595,-15732,-6041,-26498,6847,-20045,-1792,-16989,15009,-23556,-11280,-6243,-16640,-5862,-29377,-5876,11466,31827,31927,8527,-8396,12601,-32682,16612,-29942,22174,11211,15960,23700,-18494,-6914,30359,-19865,-25838,-4054,-20272,14722,31463,2846,-31512,23121,26626,-3327,4643,13990,29509,28410,26440,-2446,28971,3405,21368,16681,32292,29355,-26985,-22779,27481,-26544,-6736,-12424,-13228,-29838,23019,15824,-17038,-18381,-6618,-24150,30572,-7463,-537,11750,-3267,-14310,-24761,5235,-7802,-20134,17056,24074,28312,25200,-12441,21699,22462,-17382,-6907,4466,-8795,6664,-1166,-26145,895,-13907,32440,-18371,18337,18907,15383,18638,11622,-23613,-12104,4209,-9187,-17093,7794,10866,-4937,-12440,31028,17382,-2947,4885,27819,-16681,-16157,-31111,2555,-26199,-18357,29351,24324,2259,2026,8597,-28556,-14343,25682,26879,13388,15401,-19768,1181,-17754,15570,13398,24702,2532,-13732,-10242,25864,17226,16114,-22579,-1296,23580,24489,27651,14847,6044,21474,6376,23848,-17716,24086,18909,-27776,18236,23071,24306,7205,-19701,25623,15936,-30644,24766,16586,-15833,-32257,-13731,12451,19711,-15957,-14492,14290,17675,23817,23441,30374,28600,-24577,6998,-28851,-25048,19268,17768,22432,30888,-11815,-32070,28971,20666,4638,-23990,11354,-14580,-31439,-18959,-14497,22374,18952,-10264,26167,-3539,26794,-4381,6337,12341,-25380,8447,-15572,17969,30085,-32254,14322,-3947,5181,-26054,-10162,31461,-32001,7650,-23275,-21166,1563,11339,-23093,4124,-28838,-11736,14074,-4808,-1400,-30304,4466,-23678,9826,-19146,-3588,3167,-26553,30088,-4482,13572,-13742,10005,-19164,-24418,-29305,21141,24043,7872,2737,-24905,-18671,23980,99,-23123,-5672,27324,7547,15840,-9598,-14978,-23468,31149,-13957,-23423,-2162,15519,17472,11431,11551,21007,-23826,-20480,13714,26669,8233,-15706,12397,-13823,30705,-25523,-29771,7249,16274,-26560,20829,-2440,-29555,2711,27618,-2552,-22075,4348,23671,-18559,-3720,2031,-23794,31627,-27496,30717,-31522,11016,-12883,-26543,-12558,8860,23595,-30331,-28055,-29092,-1644,11971,10089,7278,-29056,28935,10481,-672,-20168,13723,5352,-1820,-13409,5988,13790,-24611,11223,-30641,-5713,13860,27455,-146,-27829,278,24184,6667,-15427,9394,16512,-3874,1258,-25445,-8694,-8225,20641,9354,-23756,-9658,-23565,-19935,-14836,-8496,13108,-19702,8077,-15543,17816,-20491,-20055,9647,-26284,-12618,20893,-25842,10446,-4688,31830,-10405,-21533,-25735,-19110,9835,8220,-28125,10156,968,24795,-10679,6315,8058,10132,-8081,13508,28333,-8467,-19152,-17082,-9796,23954,5587,23921,5491,-17661,23816,2080,22216,-29102,27942,13417,-1231,-28531,-14518,7096,-7884,-17272,-20410,21049,-13925,10863,-23063,-12008,28788,5146,5700,-18799,31054,28753,15199,-20848,27773,28087,22830,22417,14042,-16892,-4895,31256,12133,-4302,-15328,-19605,14469,-16495,9691,6618,14643,-17190,3881,-6349,8715,-16425,-7656,21241,-11827,7105,-9130,-21229,28965,-13438,10621,-11883,-32397,-4763,-28016,31227,-4105,21228,24484,-27015,-5095,-16588,-250,24881,26513,21832,1282,-25437,-32345,-27512,-3690,-4910,-4395,23604,-3750,23265,22572,-11974,16339,549,7253,31885,-31326,12430,-31220,-25991,12984,20957,10587,-30322,-7567,-2214,-28604,-12295,26699,26645,11753,29685,4714,2666,-11101,12483,21070,19346,21375,12470,4418,1915,-24864,24313,-23971,-6726,-17149,20985,-15095,8381,13501,-2303,-15348,-8703,24941,17363,-17195,-13824,-23488,20619,4119,-11211,14151,-19265,-13537,22946,-20973,-6699,11143,2238,10353,28269,6557,-25342,24560,6902,-23390,1053,-12089,20871,15079,-19070,5522,-32638,-26969,5750,-9417,31518,-27595,-12844,13878,-5129,-9660,-4005,-15593,16237,11741,-15691,13185,-29141,1637,-6006,24987,11787,-23492,-15933,-14586,-21320,-2505,10389,13930,-13577,-30096,18492,360,-24220,-15637,6554,1611,18952,-13547,12951,-1306,30241,1689,22680,27608,24078,24994,-2933,-20295,6582,8943,-17387,-6775,-14674,14951,10319,31289,-25830,-258,29586,-16244,-23508,-18420,-27733,7995,14373,3277,19241,-16977,-29371,9895,-8389,-9955,-13477,-5063,22962,-19172,-4221,-12894,31695,11721,-2222,-14541,-21518,-20997,21977,-30032,14206,-20630,-13895,-3459,11448,-32312,-29134,8426,-28377,26156,18508,-12155,16577,23505,6215,-28823,-29604,-32003,2138,-20494,10679,-25938,-12844,2986,-27751,-14367,14520,-28945,-3704,3748,3547,24224,-24038,-20475,6743,6270,-3195,-19913,12907,128,30976,31219,-1859,7807,-18699,-23489,-10396,-9971,-28419,26844,-22322,-31229,5716,26381,-30988,-23061,16767,29163,11156,-31532,2344,-27067,-21261,32456,-23347,25949,-22844,10240,4397,-8704,7551,-30176,-7725,20109,-1503,-15986,12223,-1931,-10733,-2608,-29864,-10280,-1790,1119,-9723,3058,-31504,-10822,-685,6589,30956,2469,-3977,10688,-25572,-31746,-24613,-24739,15628,21026,-20367,30297,-3336,-31980,-28808,-28011,-11004,-1791,5079,-25566,2292,27454,-13857,14669,28303,5577,-9329,18877,28525,-3440,27939,-7004,-4514,14416,-5904,26543,-23063,14362,-23345}, {-26126,-17128,-14378,-8208,-26149,-29857,26964,16553,23439,30978,3238,1717,-17415,13469,-29955,-7774,19009,32605,-20602,-8521,22692,-2191,-7879,-13541,1665,19524,21805,19058,20654,-7404,4443,28676,-3233,-26620,328,-13095,-15929,-22502,14476,14813,-7405,-23603,31056,-1106,24436,-17255,5775,-8250,-21085,-18422,-26830,23008,-12549,24783,1982,1779,-22975,6593,-24161,2170,-14212,-3009,31633,-1360,-5615,-26910,-5028,-32614,9591,-16731,20587,32752,-4492,2793,-26705,-12150,24800,31482,28092,17171,-8887,-10301,-22979,8163,8617,-25009,131,16450,27054,11556,30933,26806,20699,-32075,5392,24476,-10236,3553,-18386,-20905,27861,-13353,12041,-16983,-347,-15916,-17484,31028,10530,7550,24113,-20139,-9838,3650,-23350,-21683,2913,12383,-25477,30674,-26406,29495,-8937,211,31807,27778,-25857,-16736,-26402,-2794,513,-2691,-23303,-10383,-19355,4282,31667,16521,5874,18959,-28239,408,21964,6165,-1223,-30624,-9580,14210,23372,-17068,-18802,-12140,-18404,-14982,17234,23972,-1664,-32500,-15068,30916,3408,-19385,7679,-6950,9809,-3289,-27410,-2912,9171,21958,-7814,-1786,31949,2556,29951,5186,15877,988,27119,9571,-19817,-1415,-28427,-31720,-7378,14313,-17817,25478,-16003,12787,-2465,-27681,-11774,16241,2599,15269,19797,19454,14497,1089,28323,-21243,14830,22855,21291,-25648,25402,-22751,12698,-10125,-30701,-2152,4995,-16665,23670,-1902,-17926,-18071,-9665,20862,23785,29060,-28898,2622,-20279,-2565,30921,-17522,-2598,-6321,-22169,-13072,13705,-17783,11787,17792,-30658,15625,32645,14214,22836,25289,4212,-27450,-6566,21394,-10436,21207,15814,-28931,23734,16169,22370,15115,1771,-3678,-11545,-17564,-5791,-1652,-11246,5319,-27075,-7592,28947,10989,27446,24981,-948,708,17183,19908,-19525,-306,-28563,-23606,2568,-21288,-10768,17120,-20624,6525,-6383,3405,-21728,16806,-20320,-20028,11223,-18190,5840,11077,-31317,-27594,-32401,-19143,-21255,-13518,-7550,21504,-5364,1507,25495,1242,-31937,28865,2489,-26255,20832,-17537,9960,-31489,30690,-27531,27151,-32532,-27239,-11124,22064,-21868,-26920,23636,-31587,-32294,1048,-19582,-26406,-25729,23698,-14316,-2511,-12924,-17237,-802,-18005,-18095,20341,28155,8410,5617,16030,11040,-27211,-17678,-13342,31931,3857,-1645,28697,8789,5804,2659,22159,-15669,-6660,427,-3516,31570,-25455,-31136,10254,-19625,-26238,-3313,-14372,-17047,-9926,9471,463,-11295,9594,10467,-29147,-22227,1088,-13629,20372,-28353,-12797,-19888,22660,-27793,-12789,9687,-3630,-27251,-7033,-9159,-7968,16791,27954,20272,-21144,30011,-24611,-31270,28858,27182,24120,24517,4158,17960,-31418,-31860,5345,21488,1850,30193,-24082,-17789,-9155,-20516,-29574,-20241,-2346,-23073,-6872,14229,1045,-20330,24032,9539,-14853,-22491,26515,-1452,26094,-3644,-27369,-14960,-10815,-25286,15727,26358,-27734,-389,32504,4311,28507,22623,10482,287,-14606,-10054,18688,12706,-24574,26441,-23602,-28253,3434,20050,-14528,-22857,21902,15296,24874,-14271,4211,-14454,-26987,-32056,-28046,1843,-10369,32149,26340,-30233,-17419,482,-26859,25113,32556,-12921,-8300,-3088,29104,7949,-2724,-18176,15310,16952,-17982,15017,-11570,18864,-32196,20372,10406,-1271,14238,-20787,9368,3667,-17393,30892,-31707,19512,13344,-7211,15742,5700,-29931,-25090,-11809,12048,20885,-14320,24290,-4627,3482,6323,-13692,-21564,-21745,3053,11439,31278,-722,-5749,16777,-18840,22140,2568,3825,-9869,15709,-1415,-16676,24092,-19250,-21764,6690,-13371,-22955,-10275,290,21548,-25901,3885,-25243,16732,927,-14496,596,18880,5587,8090,12851,-23087,-31698,23754,9265,3246,24874,2225,-19722,7631,-18800,109,-31071,5739,15414,-31336,-18226,31432,19830,-17060,4303,26987,-6721,-23742,10375,-13793,25654,25645,-9527,-30783,14842,-18223,20069,-19788,-2409,15408,-15162,-16777,24003,24188,-11590,-2843,-7261,-12698,24306,32000,6249,-4779,13376,15362,-3650,15166,-10275,6262,-28727,18873,-3368,2849,18002,-12177,-20916,-24124,-30465,19273,24802,30034,-16501,20375,4403,-5970,5365,30483,-16021,-11719,26634,-4286,-2716,-30744,-17000,-2966,18348,26245,-5925,-10558,6410,27908,26762,11838,18734,5386,-16905,-19686,-31507,18301,31678,-31984,31384,-31617,30819,-2555,28253,-19121,6307,-18167,3324,-23919,-19676,14308,-30852,28904,-12399,19239,-22101,28354,-26728,-21717,-17253,-4667,4831,-11220,-23877,-9892,-24125,-5336,3242,17637,7628,-9204,9449,20905,-816,26796,-1410,-25320,10204,32447,12347,32425,-24415,-30,11208,-18984,-10882,-11888,-32312,-3761,7794,-25990,11515,-1773,30808,12582,-1758,-30414,23071,-26698,19212,-20798,19065,-2244,2359,2243,30412,-8723,-11397,-16691,-28596,-3400,-12973,-31123,-1345,13732,-23502,9030,-17599,6263,-19912,-15155,-27319,995,-16227,-4584,-13206,29960,-17732,18660,-17085,23263,4196,-10834,-10072,-11594,-4029,-2608,-5628,-28719,29374,16441,-10384,23554,18136,-31859,8820,-4911,18033,-12964,-16844,24864,13261,-3535,-6145,-7184,25688,3412,32276,-18482,-16486,28565,-23723,26309,15124,-32557,5337,7485,22887,-6329,7090,-9445,30019,-10931,26341,-26266,3428,14349,-30108,12094,-18268,15490,-18138,-15018,23895,-29143,20817,1796,-2504,-3949,16575,-8297,-24120,-27815,23192,14027,24103,-13078,-16821,-7018,-3582,28754,-6549,5407,-5859,-2071,-12232,-6506,32082,11757,-717,6006,31079,-11727,-17544,10078,-9789,4350,15235,16756,10762,-18807,21444,26119,18462,-1647,-30553,-31283,19740,25589,-6110,22017,29861,25600,20068,7016,32614,-16777,20329,5852,20855,32618,-1188,10235,4824,-1238,24043,-21329,29784,-169,30741,-25883,1213,-7073,5885,-32671,27973,25653,-853,31769,-5127,-9758,-3841,-12435,-16566,3356,-28659,7684,-20694,9880,-29011,471,25296,-17039,7728,-5320,7913,-11776,10022,5546,-3719,4747,19378,255,-7612,-21659,-6712,-6986,21586,-24099,-31549,-18742,-6700,-12783,5582,-18911,-9483,25268,-4042,32551,-15069,-15189,2672,10253,32174,13838,-23196,2225,-22696,27055,-13544,-31209,-4316,30573,27342,14942,4239,14946,-10579,26878,32279,-15836,30931,7933,-29883,-5092,-9930,20132,23272,-24257,-22960,-12288,-12856,-19831,-11307,15139,19049,22278,-5110,27741,-22631,1444,-21206,-10861,30769,26000,-7145,-32528,-19485}, {24885,-27645,-20736,-27235,-17280,4381,12417,-4575,20872,9236,23181,171,-19390,-25760,20797,-32065,-21844,-16691,-2223,-22361,-16583,22450,5614,-7131,-20014,-30073,7768,17255,10418,-3205,28946,18758,-32306,4878,124,30909,22274,17491,-29499,17578,11498,31491,6143,-31833,3532,-20542,-8357,16693,16403,12111,21346,14713,9012,-28044,-21121,-23352,-27088,-13226,-9258,-11599,-22674,5736,-19294,-30385,6815,11404,-27635,-18128,14678,-31794,15587,-30603,20542,685,5760,5721,16234,21568,32719,-353,26620,6881,-21154,-16227,-13658,-2499,-15569,-12685,-864,-19097,-18231,20855,3423,-28740,-24100,-9332,-30229,11541,-1568,8215,30027,25774,-26314,5538,-31040,15013,-27839,27137,19203,-3105,-419,26363,2402,26828,-8255,-14694,-20479,-29572,32358,19888,14170,-29887,-19966,-21450,13748,-31587,26213,-16927,19868,-15820,10931,17886,22419,7504,-9126,20430,28618,-6809,-16067,3810,22353,28341,-7015,13318,-12383,8575,27362,17369,-27659,-19074,-7560,-30989,17170,-20964,-14128,-28535,-7334,10715,-10061,28921,-4694,-6280,-25626,16450,2251,23498,-29350,28785,22271,29170,-22545,8768,-24061,15093,17250,-25599,-7896,32161,-12702,20749,-14672,20612,15621,18232,26972,14952,10686,10537,32623,-12411,-6845,-24877,-26469,10024,15257,2017,2534,8785,1442,32549,-5974,10464,-6780,31254,-17751,13147,-6053,-6457,-25647,30840,9513,-12652,14445,-1810,-18525,10081,-15020,-490,21427,11288,-28238,30134,17067,13525,-26718,-10484,-23695,18537,-5552,7905,-2779,25131,-31875,-15266,-19414,12729,-31354,22640,-12621,19875,-5908,-5366,13647,2893,15133,-30783,17683,-25977,-22951,16959,-22169,-16330,-4604,32750,19880,-20850,14910,-2946,-1292,2812,-5491,23318,30181,-4087,-9337,25909,15624,15533,23819,-1467,-3391,-32448,-6293,883,30426,26751,6700,30807,-4629,-25760,-6925,23399,7347,15823,1033,19257,31624,-13315,26514,-2966,17315,17056,-15004,9973,-16925,28164,-14910,16330,19456,-7816,-25166,-4510,9446,10801,23433,-12490,-23178,10235,-3197,-2091,-23320,-11210,-16700,1640,-20548,-23780,9675,-30626,10587,-32090,-13768,27157,23817,15578,-31722,-27989,31650,2073,-26940,-19129,8236,22946,26083,-20439,-4275,-31019,26421,-15501,596,-12731,-1657,-1465,-26967,-14514,-19360,-5334,17134,17075,427,31418,29453,-1859,-12033,14421,-14655,-15819,-13759,-6888,7614,24640,-604,-3898,-3481,26122,-8343,-32168,8023,-14453,25805,-9632,-28790,2939,-22188,12103,-28788,3811,20827,20508,18120,7969,-22224,29117,-5337,-22419,-27202,-19809,31035,23423,21961,167,-26878,-24162,28431,-18951,19615,12623,31933,4839,-1346,-32064,3212,-21286,-11268,-3808,4681,-31760,-16154,4792,1859,24678,19668,-12989,-13797,16499,-24971,20816,-7399,-12863,2253,13980,-26383,2937,14252,26731,27624,-6126,13908,7314,-1867,-23777,-18854,16589,-12354,-22322,1677,1699,11037,24871,32112,-2826,-16868,6615,-18696,25345,15948,-30261,-15018,-31609,19400,10586,29771,1627,28043,20509,-964,21486,-2309,-23073,-14370,24281,19613,26836,-26800,30501,-30724,4870,1268,-28775,-3569,-3231,14085,-7525,7564,-8147,32557,10406,-12566,-721,9687,32401,9453,20458,-20141,12115,19376,-31785,-11145,28897,-30957,-31723,31147,-11349,22388,6518,30928,-31876,-28984,-1202,-31158,3222,15823,-32698,-29677,-10550,-29156,5850,-10966,31460,-32630,-5809,-26847,29968,9417,16187,-11943,-21475,-9209,22625,7085,-11560,11011,5889,-32074,-22324,4551,-19039,6383,5161,-714,-29953,8406,-6641,32331,-6503,10707,-9151,-3635,-10281,-15470,-28870,-906,17354,6098,18666,-15695,28979,15619,-31259,3507,15093,26503,5090,5033,15991,32324,-29692,24535,-22716,-22966,-5496,7097,-28791,6240,-21716,-15222,-10695,22466,-21760,1282,-10199,-10148,16187,-21410,-13100,-27543,-7603,-9510,10207,22013,27073,-21322,-25174,16175,14627,1736,30564,6918,4576,21809,2459,-30751,25722,13142,-17540,-6752,-28509,25778,20208,-31518,-6496,21558,-32722,19771,10055,22598,-25028,6236,9411,-30453,-2037,-28345,-23252,-22271,-31524,-25083,-13469,8780,28249,1393,12902,11854,15205,1804,10196,23154,17668,27435,15613,-22630,27901,-20103,-1307,-15072,29277,-31995,31773,21202,14941,-4139,-31968,-1225,7607,30335,27287,-21738,562,17975,-29360,1085,10387,28324,-27838,13722,13643,15006,-9658,17563,6185,-28718,16436,18781,-30025,-23911,14761,-28301,6465,-21157,28349,-5750,32171,30544,4580,-22512,-22289,8082,32390,-30364,7036,-2989,-27928,6110,-4725,-11532,-2191,28121,31799,6048,-12834,-18740,11951,-21949,-11174,-21524,15031,-31472,2909,-12258,-19420,1356,18815,-14268,27121,-2343,26320,-5297,-32717,23941,-13158,-32551,-20649,11472,15859,-13936,-11415,-14132,11615,12473,12874,13505,12081,10704,-3816,19319,15697,-3143,-751,15533,12747,32038,-15723,24689,29418,14496,-4352,1381,17942,-24659,-20759,12156,20298,7345,13259,5756,15764,18165,-103,26545,-5061,-2500,20031,29282,-6900,9998,-2819,-13237,-26174,11830,9467,-2380,-1627,18906,31896,-23416,-3673,30301,-6158,1995,30055,-715,-18786,14411,1812,-22327,-5875,32333,7898,-25892,-16469,-23030,-2901,-19735,-19497,30212,4265,-14259,-14613,-19489,11367,-6834,-11700,-28163,-787,-3769,-23429,16412,-16996,26374,-22305,31263,-32396,14629,30565,-20999,-5218,-31798,-18312,-31168,1768,-3122,14483,-4150,-9502,-24687,-9201,10079,-21750,10259,738,30051,-2917,17914,-8094,-10712,-4073,30461,15102,-728,16427,29966,4034,-10487,26,-16972,-14663,-19710,31235,4869,-12406,1284,-567,12107,19801,-20949,-12748,2875,-21017,26022,-2349,-92,-19753,-1344,10251,-4848,12235,12258,5209,-31772,14211,-13295,7459,30146,-30743,8094,342,-27029,-6558,-2035,85,-28024,-8669,24619,-23105,22011,-20991,21635,-8133,18464,-24618,16063,-1715,-3585,4402,-28214,15265,4220,11671,5893,-192,-20980,26163,20433,19320,20467,15739,21307,11560,31519,12759,-13687,2026,6087,-3931,8067,-18610,20818,7227,674,27181,32682,21034,26429,-31750,-14137,20707,24808,14764,22009,-16358,-2537,-3870,8978,-24835,-7444,-19292,-14546,-14695,-10877,32237,9777,-12212,-10714,24080,25486,-6836,-32181,262,-31145,-28861,-7404,19763,21210,-1677,-28117,-3716,26098,-12715,20427,1730,-21047,203,-5768,15140,16319}, } ; static void test_encode_953x2115round_impl(long long impl) { unsigned char *s = test_encode_953x2115round_s; unsigned char *x = test_encode_953x2115round_x; unsigned char *s2 = test_encode_953x2115round_s2; unsigned char *x2 = test_encode_953x2115round_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_953x2115round_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x2115round(impl); printf("encode_953x2115round %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x2115round_implementation(impl),ntruprime_dispatch_encode_953x2115round_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x2115round; printf("encode_953x2115round selected implementation %s compiler %s\n",ntruprime_encode_953x2115round_implementation(),ntruprime_encode_953x2115round_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_953x2115round_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_953x2115round_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_953x2115round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_953x2115round_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_953x2115round_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_953x2115round_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_953x2115round(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x2115round")) return; storage_encode_953x2115round_s = callocplus(crypto_encode_STRBYTES); test_encode_953x2115round_s = aligned(storage_encode_953x2115round_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_953x2115round_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_953x2115round_x = aligned(storage_encode_953x2115round_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_953x2115round_s2 = callocplus(maxalloc); test_encode_953x2115round_s2 = aligned(storage_encode_953x2115round_s2,crypto_encode_STRBYTES); storage_encode_953x2115round_x2 = callocplus(maxalloc); test_encode_953x2115round_x2 = aligned(storage_encode_953x2115round_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_953x2115round offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x2115round();++impl) forked(test_encode_953x2115round_impl,impl); ++test_encode_953x2115round_s; ++test_encode_953x2115round_x; ++test_encode_953x2115round_s2; ++test_encode_953x2115round_x2; } free(storage_encode_953x2115round_x2); free(storage_encode_953x2115round_s2); free(storage_encode_953x2115round_x); free(storage_encode_953x2115round_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_953x3.c0000644000000000000000000005472014705505543022155 0ustar rootroot/* ----- encode/953x3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_953x3_checksums[] = { "10e5142e79d1a21b1a3b0284f3d31e258af25438003715cb3b2ae05175ed685c", "bb632a3b15fa172fb6b90dc7cdbca546cc677213571c71b52abf407208bff5d8", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_953x3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_953x3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_953x3_ITEMBYTES static void *storage_encode_953x3_s; static unsigned char *test_encode_953x3_s; static void *storage_encode_953x3_x; static unsigned char *test_encode_953x3_x; static void *storage_encode_953x3_s2; static unsigned char *test_encode_953x3_s2; static void *storage_encode_953x3_x2; static unsigned char *test_encode_953x3_x2; #define precomputed_encode_953x3_NUM 4 static const unsigned char precomputed_encode_953x3_s[precomputed_encode_953x3_NUM][crypto_encode_STRBYTES] = { {246,211,102,31,128,244,33,26,8,70,156,73,95,172,228,23,92,24,115,224,34,216,110,138,201,200,157,161,147,233,136,44,84,182,144,109,16,30,209,18,94,9,68,194,218,118,139,210,100,67,76,190,69,87,36,60,86,198,179,37,56,57,126,90,109,195,116,73,132,140,237,235,62,181,207,104,186,102,192,247,188,9,203,94,182,37,85,211,9,61,194,202,152,138,126,96,41,251,44,251,178,126,112,86,239,253,239,83,41,247,50,154,203,174,234,214,112,70,127,67,87,143,185,86,241,117,100,221,13,23,158,229,155,4,66,31,225,211,184,166,222,224,194,135,57,117,234,164,186,190,246,80,47,56,218,66,94,230,38,252,158,83,253,74,74,21,186,229,43,25,151,64,21,194,95,62,138,92,222,33,205,214,102,250,168,172,127,208,63,188,21,180,189,179,28,134,166,35,61,95,206,106,224,84,9,56,96,136,63,199,4,48,145,143,114,139,91,178,15,209,221,72,247,151,219,109,144,41,8,180,202,27,184,75,184,185,179,114,132}, {78,91,100,252,42,42,106,11,170,4,69,49,251,124,195,133,150,50,169,10,189,173,67,242,99,254,250,81,255,59,85,58,20,7,132,120,190,102,204,114,62,244,12,81,127,159,231,5,247,25,25,4,40,181,163,37,58,255,255,207,80,175,223,25,194,27,105,46,184,195,170,219,83,80,237,71,147,167,33,202,15,94,60,95,251,149,194,130,166,41,83,15,135,38,176,196,135,186,98,114,83,1,215,139,41,116,213,7,28,109,52,18,235,164,151,121,228,36,218,123,222,61,65,251,37,105,220,122,141,56,37,243,135,176,200,91,203,129,206,46,145,218,115,62,134,195,139,32,164,91,192,96,97,83,125,13,29,197,242,65,73,218,199,220,118,19,22,152,143,52,96,169,217,100,204,107,102,164,182,65,202,43,110,142,77,215,99,197,124,204,41,131,153,41,224,232,241,54,252,53,187,252,141,94,23,64,123,55,1,213,98,51,8,119,253,205,21,240,77,161,44,75,252,167,8,132,21,19,25,183,154,247,169,76,62,63,7,22,206}, {81,152,218,10,143,115,240,85,91,35,184,118,159,58,132,169,20,234,92,84,64,19,191,208,3,68,89,18,175,226,168,181,171,70,238,85,40,145,191,1,211,92,252,28,85,152,143,93,208,189,252,213,145,38,22,135,108,90,37,234,51,225,89,186,14,71,39,236,99,61,5,61,254,251,158,153,36,191,57,144,203,42,251,11,219,135,133,98,235,183,210,72,98,21,139,25,174,28,42,52,153,115,250,124,230,75,4,113,124,33,239,94,224,203,1,239,93,233,131,136,24,186,3,222,107,160,37,127,217,78,162,128,25,2,135,180,144,5,47,199,170,16,130,222,211,154,236,255,236,232,14,226,107,138,152,251,119,203,37,35,195,196,198,45,140,148,203,35,84,212,207,12,124,125,146,237,241,175,74,127,28,143,83,183,217,46,198,54,194,234,226,96,24,6,87,222,158,168,42,245,103,215,14,29,214,214,203,64,24,166,200,87,122,66,14,254,43,171,190,76,228,38,147,243,130,13,133,165,90,103,81,38,120,216,100,27,56,72,72}, {66,7,212,138,4,222,239,124,189,83,155,220,34,223,42,186,39,86,74,22,209,191,161,158,105,105,243,64,52,231,145,213,243,157,59,196,42,187,195,221,153,107,122,64,32,45,191,213,15,185,83,118,130,231,52,88,252,154,231,178,198,99,15,24,255,6,8,207,176,72,60,220,80,235,24,64,152,98,19,202,94,19,177,25,27,59,10,72,155,7,36,129,80,144,23,131,211,124,209,220,29,248,191,24,67,12,190,162,21,234,138,31,2,56,39,221,56,235,125,112,110,25,253,174,109,41,151,185,12,223,174,142,99,45,246,20,23,52,70,13,35,44,28,233,195,44,239,124,81,3,243,107,69,235,243,246,85,183,146,170,0,145,6,4,31,135,155,206,95,43,40,175,223,44,229,201,213,119,200,172,34,156,17,224,15,209,155,45,42,25,160,56,66,47,8,157,103,242,6,229,182,212,175,61,253,29,93,82,201,15,46,249,155,223,253,221,30,167,244,1,194,231,226,117,90,164,108,157,37,138,34,94,238,15,11,243,158,249,206}, } ; static const unsigned char precomputed_encode_953x3_x[precomputed_encode_953x3_NUM][crypto_encode_ITEMS] = { {161,44,177,81,30,132,205,226,169,98,50,251,134,65,172,238,255,63,227,208,231,158,36,184,204,68,155,61,165,176,126,214,183,55,46,5,45,169,58,74,215,44,44,80,208,193,102,159,242,142,114,51,127,246,72,102,23,166,234,69,42,18,1,129,47,166,196,236,15,209,19,125,122,157,251,202,215,121,233,157,133,122,194,221,203,198,242,206,97,106,37,187,229,100,32,15,160,93,78,130,151,7,152,245,196,113,16,247,72,201,218,177,46,104,211,133,80,193,188,198,235,130,60,2,71,196,236,199,15,40,21,68,233,2,3,141,211,206,195,228,112,10,240,154,63,99,163,159,53,213,208,89,52,174,33,70,81,167,5,14,149,225,23,114,60,2,211,133,71,6,37,253,101,66,32,52,81,201,181,55,185,174,219,164,246,104,122,140,141,200,101,162,103,222,55,187,22,206,50,146,227,253,74,94,229,41,94,20,88,22,224,33,38,155,195,173,127,240,9,112,111,130,23,104,29,173,191,65,173,169,70,15,234,221,56,74,0,88,223,250,123,158,35,151,156,206,169,206,21,65,29,81,165,28,107,69,112,70,201,224,66,79,251,109,247,158,75,96,156,226,133,2,131,111,159,168,171,7,171,91,76,235,34,50,158,198,254,244,93,247,79,199,60,101,141,135,18,118,21,33,67,100,28,22,173,94,128,253,237,245,9,59,23,25,103,130,214,143,177,178,191,46,255,212,8,171,52,11,90,211,81,27,213,41,193,54,93,77,237,216,96,184,249,128,128,144,184,187,46,236,78,179,104,171,134,169,76,23,64,253,221,232,103,78,13,210,94,145,107,166,196,8,109,158,145,93,109,55,102,114,59,76,50,202,28,206,48,226,122,243,118,68,27,147,7,160,10,175,250,165,113,43,24,63,229,97,160,99,235,40,77,155,177,8,207,181,242,166,197,11,148,17,245,186,34,66,19,141,194,199,22,83,232,23,101,133,242,220,192,73,105,161,243,139,9,111,16,6,218,39,116,195,133,41,91,226,237,250,204,244,217,82,14,54,255,191,162,248,225,180,96,93,98,126,245,2,162,79,5,167,170,82,53,111,114,6,131,86,124,82,222,99,113,252,178,22,236,108,148,147,24,114,236,182,203,77,197,215,160,222,7,236,136,208,179,91,74,18,87,23,177,86,224,57,92,13,236,125,74,215,142,163,231,130,224,15,181,18,23,18,226,150,161,50,184,233,31,153,202,237,224,240,99,252,65,92,193,88,15,41,141,155,169,0,123,100,172,203,101,234,70,92,198,163,102,122,112,65,255,226,96,244,47,160,93,210,35,115,43,237,43,103,237,54,38,65,181,157,40,47,165,3,91,109,163,90,111,44,142,3,112,1,159,125,169,67,233,11,7,92,185,145,235,145,229,153,184,241,141,69,199,14,57,142,106,159,15,246,80,223,189,79,57,47,142,168,41,129,112,18,255,56,13,182,229,3,13,122,28,13,240,224,161,61,197,140,15,146,80,60,69,136,122,39,72,77,132,60,97,209,174,173,118,230,155,28,214,2,140,77,160,200,49,219,133,214,114,226,65,104,209,34,241,250,57,123,193,128,199,12,49,160,161,30,143,22,140,252,241,9,228,1,65,114,149,7,13,108,61,113,137,198,141,226,205,183,179,24,252,158,95,246,58,110,222,123,210,57,227,190,194,6,58,60,140,60,127,238,171,198,88,142,67,96,127,212,25,48,20,25,239,32,42,41,85,41,191,38,23,184,253,53,190,42,209,60,221,135,106,209,190,93,244,133,98,67,14,163,23,248,57,148,167,86,161,121,185,224,167,185,64,92,135,70,110,202,48,169,130,123,71,51,57,93,147,78,148,80,167,35,68,187,210,150,248,193,234,202,110,150,31,196,220,147,59,52,77,224,192,91,197,171,2,246,122,135,137,73,47,198,118,44,237,165,38,20,245,153,125,104,252,230,66,58,45,211,52,30,181,198,172,115,177,68,111,13,217,255,66,56,152,100,82,212,10,4,22,168,197,186,104,84,254,18,115,138,174,135,180,228,181,53,103,135,199,99,147,119,79,92,77,146,230,250,54,176,29,224,243,196,182,80,18,221,251,131,139,70,64,247,144,237,242,140,50,247,217,203,161,219,169,142,131}, {13,39,21,148,194,9,42,254,115,195,181,181,11,43,183,58,241,165,9,151,61,222,18,76,201,99,152,137,214,208,230,61,253,22,12,233,187,225,151,68,8,170,8,155,232,97,19,29,86,156,158,192,47,26,233,228,30,76,238,73,172,89,242,184,61,85,187,232,9,237,82,184,0,93,242,171,141,198,253,145,72,160,150,1,144,102,55,75,174,76,29,1,45,132,138,51,178,247,236,91,129,154,200,65,241,41,237,53,104,129,113,142,10,140,179,137,30,194,80,99,232,54,196,164,161,69,251,218,95,68,205,38,70,191,87,128,135,170,128,252,71,63,170,45,137,88,180,237,17,144,228,186,19,1,226,109,57,213,113,154,93,143,101,68,239,120,229,250,95,86,20,95,216,181,209,117,202,184,64,150,22,157,88,213,58,102,28,160,80,184,32,154,162,232,26,99,144,61,8,175,224,193,94,52,191,104,5,168,55,223,202,2,192,60,147,102,10,33,168,17,52,35,141,37,177,33,35,210,106,204,1,120,230,237,173,165,74,124,176,57,235,112,97,73,198,225,69,183,158,123,252,37,92,154,4,67,213,134,128,6,98,93,251,149,0,141,218,221,45,119,21,2,183,239,27,97,186,25,33,149,161,153,57,203,6,160,136,230,226,187,47,149,131,190,36,109,252,47,102,186,10,122,180,63,170,5,4,69,94,205,76,84,140,140,181,247,221,90,51,112,206,239,119,15,105,212,253,214,203,79,158,204,202,144,240,44,222,198,151,197,188,237,17,131,137,1,242,71,25,253,170,186,229,43,144,135,108,114,70,57,150,182,153,0,186,188,29,185,70,207,91,64,21,119,194,207,39,237,124,7,195,51,42,33,62,149,130,94,197,72,228,185,177,35,165,110,125,220,255,45,90,109,203,33,208,191,154,13,218,226,214,127,254,46,48,94,24,127,208,23,187,245,29,39,80,128,195,136,50,208,232,195,227,165,57,79,160,42,217,229,87,26,170,98,29,104,212,111,34,37,6,146,151,122,237,252,94,221,195,181,148,164,56,246,211,159,160,133,91,45,12,168,93,222,183,13,74,195,9,29,205,239,68,243,176,186,149,140,228,98,132,117,110,14,92,173,12,149,67,53,220,34,67,218,191,170,78,109,249,127,151,171,164,93,30,205,223,149,27,60,232,42,228,32,214,34,108,70,66,228,26,235,167,57,93,24,119,107,129,197,214,128,119,31,78,146,138,53,72,97,202,119,165,5,100,114,93,223,220,125,184,201,138,151,145,177,247,95,218,49,60,107,5,237,227,84,77,229,237,122,30,128,125,34,34,209,125,32,15,107,241,100,35,143,191,60,118,24,187,42,119,125,148,3,235,148,17,247,164,30,171,213,6,182,242,56,56,128,151,206,232,232,55,171,188,27,182,117,208,72,212,169,157,32,244,213,156,200,147,216,240,45,185,87,101,60,87,67,202,74,140,79,203,123,229,186,185,70,141,242,102,106,139,144,253,141,17,122,175,221,30,185,74,48,7,75,215,162,4,145,143,35,79,64,116,232,96,189,208,253,192,7,75,141,205,103,211,221,75,190,178,221,211,71,193,140,106,162,35,83,158,96,69,31,146,142,144,91,115,3,245,188,233,244,190,190,38,219,245,41,40,56,201,244,138,48,52,1,76,168,70,163,231,21,174,216,208,188,84,63,182,167,211,205,210,116,39,100,72,37,132,0,193,189,234,221,73,161,216,207,143,177,52,112,58,213,191,51,100,55,147,36,207,214,128,47,142,138,181,111,243,225,63,58,248,96,80,240,37,130,202,103,72,26,95,222,145,47,196,249,153,28,13,11,13,184,174,145,89,65,151,97,177,59,118,224,179,128,130,160,106,161,248,177,175,180,140,41,221,62,129,143,241,253,106,105,105,73,203,202,192,71,198,7,140,42,236,55,18,159,200,84,70,160,184,222,29,219,67,170,167,121,24,128,62,4,244,222,182,26,151,80,232,214,242,185,38,255,175,222,28,227,206,85,243,120,167,11,158,56,119,242,39,170,148,51,174,182,174,104,247,76,120,127,181,240,246,67,82,81,181,152,247,23,210,100,208,157,172,62,175,111,15,78,11,224,145,190,218,255,26,8,19,6,82,180,121,232,225,184,60,45,205}, {252,216,174,183,71,111,156,138,229,16,38,192,37,12,42,171,118,13,157,211,126,88,144,173,15,79,233,95,24,190,187,153,186,119,19,197,206,100,127,74,255,13,51,88,217,106,150,101,110,115,165,239,157,126,69,0,47,120,18,228,152,231,146,92,83,175,35,90,181,80,118,197,219,3,222,165,175,176,73,28,211,194,17,52,50,79,117,60,198,169,96,184,215,9,12,223,10,201,196,49,91,17,245,212,76,62,124,32,125,192,128,145,174,235,184,230,145,199,82,31,199,163,160,148,216,38,23,242,142,218,186,47,225,236,62,14,5,253,138,100,104,94,82,28,39,191,223,99,200,109,164,214,254,235,4,162,80,227,129,127,166,178,133,71,67,233,58,170,123,71,85,31,7,20,171,211,164,99,109,64,143,121,217,249,134,241,187,45,44,247,112,96,219,240,10,85,112,122,85,171,163,217,102,73,60,161,12,244,136,89,197,228,85,159,16,112,65,68,203,139,162,232,59,233,107,167,137,238,185,167,207,15,8,50,36,143,45,106,148,6,186,109,11,143,120,65,69,63,168,203,107,78,73,239,230,60,93,187,203,39,118,71,186,11,198,123,190,57,3,21,164,88,74,9,122,12,92,207,197,248,204,97,78,102,40,220,113,97,73,236,143,135,62,194,62,230,117,137,155,108,12,62,232,151,243,7,132,166,114,18,187,76,240,49,223,161,103,133,84,178,198,36,186,146,113,189,47,194,94,110,69,217,58,35,175,16,170,223,10,75,146,200,140,63,116,107,201,22,13,32,52,33,178,45,127,245,122,14,15,35,17,183,217,84,99,240,109,228,141,212,183,219,216,2,166,30,130,189,232,29,48,121,127,147,165,225,119,247,187,247,59,90,153,43,17,158,175,128,191,13,132,120,30,184,222,188,73,183,233,59,245,154,47,250,161,68,221,85,118,48,174,46,97,102,131,211,118,62,188,196,237,62,7,188,59,110,72,33,60,85,6,229,20,203,137,76,61,158,243,2,125,115,98,57,91,58,8,249,48,87,254,159,130,16,104,140,71,100,112,233,88,92,58,73,73,233,23,127,30,13,199,187,169,222,213,84,120,163,86,166,152,129,9,76,157,70,110,46,231,174,151,169,109,197,212,47,212,24,142,183,20,154,212,156,76,38,21,209,138,32,249,1,241,189,79,199,212,162,104,51,85,217,85,218,143,44,94,69,184,189,203,21,228,152,143,211,194,141,184,18,163,234,198,225,69,253,106,202,122,193,93,198,206,40,147,30,47,139,249,49,191,62,89,228,138,132,62,128,148,200,233,139,99,96,35,133,138,59,78,11,195,204,23,92,53,255,151,75,193,255,245,61,181,22,109,136,60,33,18,53,19,124,209,93,39,234,143,173,88,122,222,166,175,101,38,79,192,3,210,153,188,182,60,93,126,125,222,208,151,33,202,249,156,252,235,165,143,140,33,104,119,193,128,186,187,27,51,65,228,123,195,27,101,31,126,218,173,183,54,122,91,224,167,194,197,152,43,29,6,170,202,32,255,237,7,108,248,98,215,124,18,209,164,237,225,231,57,225,80,254,20,133,91,183,220,84,103,244,22,97,4,14,201,7,189,157,90,144,65,42,23,248,109,224,182,193,188,219,42,153,207,198,70,67,177,44,156,174,199,163,77,251,246,245,105,222,65,254,157,177,148,117,185,141,112,90,85,80,172,241,5,186,214,49,179,198,8,15,175,201,67,203,53,63,120,244,178,140,90,110,229,229,97,92,237,235,11,160,39,75,180,51,17,109,41,230,112,132,22,55,150,31,48,80,2,128,56,216,69,253,156,59,96,26,124,49,25,190,135,184,121,94,61,247,218,255,194,150,251,120,1,108,183,167,119,8,45,101,65,238,67,12,52,55,158,217,4,67,137,55,136,37,73,53,169,109,197,181,78,57,137,148,253,216,114,101,193,95,162,237,224,48,213,253,166,37,235,171,198,124,11,145,188,82,113,76,3,56,2,27,97,71,78,224,33,15,73,181,29,161,76,135,237,134,124,61,44,112,216,90,61,249,13,178,183,7,14,245,3,152,192,63,164,48,145,52,183,92,119,59,136,5,27,182,129,2,83,27,13,206,218,219,216,224,151,11,42,94,71,27,44,138,71}, {41,205,197,121,70,107,148,66,131,11,173,148,109,226,0,121,19,75,143,138,125,115,76,162,150,121,30,233,159,210,12,122,184,72,161,222,242,243,184,7,118,184,243,95,15,254,152,164,69,70,75,95,150,225,107,163,129,181,184,144,205,70,40,36,34,68,50,10,93,201,32,14,61,14,192,18,137,238,176,158,176,215,179,117,86,45,46,70,164,30,139,122,29,103,225,162,8,239,5,228,80,49,88,182,218,201,198,217,71,121,40,145,215,134,163,107,98,108,164,81,176,235,206,216,124,209,28,152,254,240,198,110,156,199,65,10,246,200,233,129,183,206,68,229,173,246,5,220,186,67,26,204,138,185,40,58,100,21,81,35,212,28,220,221,190,102,96,135,157,22,171,170,123,44,152,9,179,154,203,180,176,54,61,222,90,96,157,103,120,250,230,71,74,56,89,8,248,239,227,42,254,52,111,33,225,92,185,77,81,83,21,197,134,71,23,246,163,63,136,255,215,75,160,248,207,82,133,153,157,214,73,139,46,137,56,11,149,198,87,101,21,247,104,252,90,77,16,254,202,116,62,157,83,36,102,206,62,43,108,244,145,60,47,165,11,186,120,197,86,141,251,1,191,51,217,9,247,67,183,230,191,198,177,204,39,188,183,172,19,206,83,234,206,14,57,60,223,117,221,141,75,172,91,137,79,169,69,156,141,44,189,116,122,253,117,200,205,26,116,84,9,248,114,36,150,186,64,61,128,227,21,60,152,215,233,181,70,124,61,219,50,93,8,47,53,192,172,11,167,35,48,19,38,120,60,70,98,140,94,169,31,188,92,140,244,82,215,122,207,195,242,132,15,79,227,59,130,104,110,183,6,138,36,203,210,239,151,234,19,105,159,198,108,140,22,94,219,223,231,183,184,56,15,29,171,206,104,1,218,232,207,36,107,66,221,222,206,160,110,47,143,46,111,142,93,239,249,251,65,175,197,204,44,21,148,124,121,87,88,121,49,5,7,38,194,98,168,24,137,213,249,213,47,1,223,55,62,45,218,201,56,244,28,251,215,91,34,234,66,89,19,187,16,186,19,168,31,167,62,158,93,235,169,186,24,207,183,64,188,59,140,49,57,20,245,38,96,198,246,177,208,153,74,252,242,108,246,57,112,109,124,178,171,171,134,200,30,27,44,5,213,105,238,204,157,23,28,94,86,50,191,144,4,137,67,134,205,73,195,242,175,212,24,233,58,234,46,188,167,226,211,42,77,93,191,117,188,99,191,62,106,117,37,29,247,116,193,60,87,176,75,192,164,172,100,148,170,77,197,93,255,162,241,105,110,35,126,107,115,137,117,141,236,100,140,67,62,96,179,123,142,196,76,121,210,69,27,18,208,228,125,135,174,174,155,38,46,88,29,241,13,145,201,139,176,8,211,52,106,158,32,110,45,220,90,68,245,244,201,112,79,67,101,108,48,243,40,99,65,204,176,237,159,200,15,128,166,9,168,194,174,213,139,94,222,18,162,140,229,113,233,245,78,11,5,85,190,58,247,127,127,229,108,204,142,247,119,150,114,90,47,171,247,144,242,246,64,104,247,177,228,196,164,205,144,4,74,185,46,89,41,144,79,37,29,95,99,61,36,231,193,19,108,216,79,86,222,23,244,250,46,252,63,139,170,186,126,27,165,254,32,91,139,21,250,71,159,73,80,230,51,139,125,194,53,172,88,111,255,75,99,222,151,140,139,154,19,143,241,183,106,62,202,52,56,3,115,112,176,166,44,83,177,255,206,129,88,207,33,71,150,132,209,164,77,210,136,242,156,86,185,174,3,203,11,25,213,191,222,219,81,4,12,95,34,201,192,214,85,233,96,194,114,137,220,35,74,76,97,175,222,136,64,253,204,150,142,115,226,93,213,225,188,187,200,155,179,17,142,170,181,99,102,249,224,125,172,215,194,62,192,138,2,218,133,81,160,220,250,114,105,180,3,171,203,101,176,55,6,187,97,47,173,250,82,12,109,49,145,211,87,13,208,180,84,233,5,28,177,106,139,105,66,144,231,0,83,28,132,65,116,82,208,124,33,96,81,61,227,123,89,149,174,49,73,200,110,67,101,117,186,155,166,133,76,49,30,50,73,237,50,219,44,41,25,180,222,78,88,151,175,220,205}, } ; static void test_encode_953x3_impl(long long impl) { unsigned char *s = test_encode_953x3_s; unsigned char *x = test_encode_953x3_x; unsigned char *s2 = test_encode_953x3_s2; unsigned char *x2 = test_encode_953x3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_953x3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x3(impl); printf("encode_953x3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x3_implementation(impl),ntruprime_dispatch_encode_953x3_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x3; printf("encode_953x3 selected implementation %s compiler %s\n",ntruprime_encode_953x3_implementation(),ntruprime_encode_953x3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_953x3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_953x3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_953x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_953x3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_953x3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_953x3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_953x3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x3")) return; storage_encode_953x3_s = callocplus(crypto_encode_STRBYTES); test_encode_953x3_s = aligned(storage_encode_953x3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_953x3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_953x3_x = aligned(storage_encode_953x3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_953x3_s2 = callocplus(maxalloc); test_encode_953x3_s2 = aligned(storage_encode_953x3_s2,crypto_encode_STRBYTES); storage_encode_953x3_x2 = callocplus(maxalloc); test_encode_953x3_x2 = aligned(storage_encode_953x3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_953x3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x3();++impl) forked(test_encode_953x3_impl,impl); ++test_encode_953x3_s; ++test_encode_953x3_x; ++test_encode_953x3_s2; ++test_encode_953x3_x2; } free(storage_encode_953x3_x2); free(storage_encode_953x3_s2); free(storage_encode_953x3_x); free(storage_encode_953x3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_953x6343.c0000644000000000000000000014370414705505543022413 0ustar rootroot/* ----- encode/953x6343, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_953x6343_checksums[] = { "48d66a44f8ff7a1467ce2d060028f1e50fdb82270a4e07c91afc8982c4d6229c", "f7cff68a1aeda002a4c4af92e4d33284bb29ab2344d097357b23522a14ebb07e", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_953x6343_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_953x6343_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_953x6343_ITEMBYTES static void *storage_encode_953x6343_s; static unsigned char *test_encode_953x6343_s; static void *storage_encode_953x6343_x; static unsigned char *test_encode_953x6343_x; static void *storage_encode_953x6343_s2; static unsigned char *test_encode_953x6343_s2; static void *storage_encode_953x6343_x2; static unsigned char *test_encode_953x6343_x2; #define precomputed_encode_953x6343_NUM 4 static const unsigned char precomputed_encode_953x6343_s[precomputed_encode_953x6343_NUM][crypto_encode_STRBYTES] = { {152,148,82,17,45,178,188,116,204,130,236,9,13,29,28,138,118,6,154,219,14,50,127,25,233,247,39,9,63,47,156,40,221,218,182,17,144,239,228,126,3,42,216,29,5,154,228,238,12,17,187,11,157,35,191,16,94,119,162,114,204,194,8,118,45,17,251,26,107,205,243,15,19,168,211,153,111,25,136,168,168,245,230,20,81,159,131,130,63,185,161,140,35,28,116,214,243,70,158,239,130,214,226,127,9,33,52,92,92,52,118,14,249,207,149,57,5,84,26,210,84,180,142,58,7,58,210,164,14,219,140,253,211,200,139,222,173,48,51,96,109,168,197,240,75,194,70,184,80,154,112,240,210,245,197,101,167,180,180,54,152,51,32,192,1,2,95,38,9,72,254,191,160,130,8,240,201,171,207,164,243,229,68,150,149,209,84,144,227,13,235,133,114,22,120,194,87,202,42,82,248,166,20,122,221,96,95,131,143,27,79,65,24,62,190,150,228,55,167,79,247,217,235,233,244,88,151,75,248,75,185,161,210,187,171,83,178,11,181,117,235,21,122,107,163,13,65,198,223,114,231,178,63,6,166,253,37,165,112,155,161,74,237,231,114,225,205,212,157,0,91,108,91,254,168,107,139,26,68,227,59,228,248,79,136,189,72,9,83,55,169,78,151,215,204,39,199,137,196,29,26,18,239,71,243,84,99,56,161,246,150,24,38,105,170,174,148,77,78,236,250,9,192,237,31,88,129,214,35,170,83,166,106,218,222,193,78,144,27,213,32,94,99,5,130,168,173,97,121,199,27,135,165,24,223,103,33,197,84,143,143,130,194,39,9,174,245,126,36,167,229,3,84,144,135,187,209,224,59,47,142,112,108,63,121,12,147,233,207,196,145,161,50,166,154,49,113,212,152,69,242,187,105,49,227,40,88,185,105,29,24,3,118,242,127,228,213,111,47,90,109,25,23,72,99,236,111,28,38,188,134,29,236,114,69,155,219,250,88,146,175,147,124,145,194,90,72,137,233,97,174,30,137,92,169,119,168,150,70,230,208,249,154,252,213,93,227,192,193,176,234,133,63,179,115,41,7,228,209,209,171,247,253,243,81,239,210,190,104,46,46,82,79,107,19,113,129,187,37,224,117,13,110,226,117,226,105,208,92,154,8,170,233,226,3,141,5,85,33,131,37,240,126,241,175,21,248,14,133,87,227,244,115,78,6,125,35,245,206,5,78,9,247,68,4,178,168,9,246,143,212,193,32,60,42,171,12,54,45,137,179,234,151,75,141,228,151,203,59,97,243,157,76,140,23,25,28,248,186,46,59,91,16,147,186,49,86,71,111,238,21,40,3,217,95,236,196,105,10,163,251,213,170,171,22,93,228,170,85,231,235,1,251,181,137,124,165,227,64,73,21,224,108,216,91,2,71,111,202,124,7,94,45,244,22,99,2,22,44,18,54,43,112,137,237,102,6,59,30,153,186,198,105,171,34,187,53,236,212,17,99,10,224,30,61,123,117,125,33,230,95,96,155,75,20,209,144,48,128,184,96,32,221,214,192,213,195,236,136,183,91,26,148,81,23,45,131,9,235,4,159,185,97,168,53,145,72,217,52,15,181,185,83,28,40,15,83,29,169,89,162,199,49,132,220,73,232,3,112,209,124,43,177,10,69,133,184,132,115,170,217,128,75,199,124,59,46,223,3,70,164,116,114,32,173,46,151,255,218,37,193,200,208,65,83,29,65,45,135,28,199,80,176,178,41,12,237,100,147,55,84,12,199,122,160,152,45,244,119,158,40,219,164,2,221,21,101,39,118,88,212,20,227,239,61,4,17,11,150,118,90,36,214,124,51,172,6,75,150,62,201,52,133,254,172,140,192,61,191,69,56,57,227,249,163,81,151,188,82,224,71,69,71,71,184,4,87,183,193,164,252,134,223,65,189,137,160,91,85,10,40,119,178,43,210,86,24,196,50,174,21,83,82,25,49,39,253,141,27,39,92,168,189,107,18,188,38,14,115,231,215,72,112,111,188,112,176,31,237,220,233,26,198,195,170,79,1,154,179,214,219,98,177,92,214,21,123,3,23,226,117,186,165,195,244,183,49,128,50,22,128,100,79,63,251,143,107,95,223,119,32,43,171,232,182,157,23,176,132,118,83,136,173,1,56,43,151,216,49,200,60,82,163,140,21,235,122,152,46,135,218,81,117,215,144,129,200,86,187,185,21,200,128,184,114,204,187,37,58,185,163,161,185,243,195,165,255,15,234,55,245,109,68,51,109,95,197,176,192,3,184,132,45,65,194,163,165,116,253,26,189,229,3,80,135,44,96,194,58,188,238,238,185,42,189,252,32,218,173,132,102,226,11,55,72,11,205,219,53,151,26,216,229,204,128,164,82,92,173,147,26,8,77,101,80,103,39,231,120,232,105,207,238,187,142,141,20,13,199,159,112,151,61,114,206,217,149,187,104,191,172,35,226,153,173,14,129,18,2,9,148,114,119,99,244,163,226,216,23,221,208,77,164,93,224,83,252,182,98,115,243,252,52,156,222,250,187,208,196,221,89,240,170,175,109,244,120,5,57,182,7,1,62,183,95,172,180,184,244,5,56,21,29,89,1,79,110,20,39,219,137,91,23,64,77,56,82,127,173,69,172,121,38,191,71,76,196,34,141,56,208,28,169,11,80,107,62,59,66,139,167,60,131,212,115,217,107,130,152,151,184,151,185,175,96,252,79,110,181,239,196,207,93,252,74,19,5,103,198,29,220,225,13,113,121,118,89,183,204,225,196,15,175,119,79,29,107,225,48,16,17,157,111,154,28,147,61,46,237,51,88,130,236,132,240,150,24,145,47,224,106,163,31,168,130,192,161,128,107,23,183,168,50,117,172,210,241,254,127,142,93,37,232,115,156,3,195,230,89,157,73,167,79,33,106,170,196,187,14,86,250,144,122,37,186,218,246,26,55,243,167,116,26,10,223,139,182,74,174,7,59,185,136,197,29,169,20,100,255,247,224,39,122,47,95,214,60,231,147,171,25,36,16,73,213,187,98,207,108,18,226,129,170,74,195,54,32,177,194,236,174,108,16,201,206,101,247,46,202,160,68,241,175,213,93,197,174,101,101,158,244,226,11,218,103,32,64,216,150,43,1,115,129,31,71,156,91,85,117,47,4,81,101,50,230,138,204,2,139,183,25,170,69,234,225,105,253,126,216,67,82,223,140,187,83,235,232,227,234,69,115,84,81,219,29,219,231,20,135,21,172,7,82,123,163,239,184,97,14,112,136,62,115,54,146,214,155,226,43,150,122,179,12,198,238,58,155,147,73,89,17,250,138,34,220,243,131,47,170,153,92,62,158,56,193,103,11,158,23,248,51,71,58,122,223,111,58,193,115,11,219,232,189,205,29}, {249,44,46,44,144,190,79,217,159,251,54,189,70,58,73,226,49,121,99,44,163,74,155,19,223,32,104,189,21,35,68,162,248,225,222,107,167,108,254,50,196,154,124,231,95,206,60,58,107,156,111,79,70,251,194,118,163,229,193,140,40,22,92,83,198,255,78,50,18,216,228,151,120,102,137,16,196,120,222,99,247,169,40,116,214,36,28,12,243,98,149,30,135,70,199,41,178,243,25,107,30,33,6,227,212,95,141,2,202,169,56,30,107,1,117,186,137,135,140,157,133,219,204,75,140,223,36,85,201,210,70,208,13,253,119,100,254,120,46,102,82,141,158,103,131,84,44,22,251,103,79,195,214,10,135,6,75,248,221,249,167,61,87,55,177,114,44,33,251,139,162,31,171,187,176,57,94,71,123,67,109,234,142,107,51,69,249,75,84,146,180,36,197,234,234,134,230,175,68,228,55,179,90,82,137,32,56,97,196,251,226,220,13,42,69,40,192,174,49,170,228,232,142,118,5,24,177,107,114,76,67,227,215,135,57,151,233,122,67,187,33,21,206,151,116,52,245,125,65,245,234,153,131,183,201,236,223,51,233,236,109,203,8,133,52,118,187,82,239,241,47,127,147,56,91,170,68,157,225,34,58,119,125,148,233,200,206,172,180,168,252,89,93,241,42,146,247,56,131,101,80,229,240,67,133,207,105,157,84,219,105,147,55,168,81,132,93,240,29,52,61,95,184,175,158,172,87,48,133,17,168,202,61,228,132,22,55,239,109,224,186,170,80,67,62,155,102,39,74,43,146,63,76,38,14,205,37,60,184,168,127,51,22,67,158,74,47,35,138,123,201,247,144,237,182,88,122,164,195,210,202,82,221,34,35,66,68,4,181,163,172,18,20,205,113,196,108,195,225,7,134,200,201,123,194,169,94,64,27,203,168,149,38,141,112,20,8,30,90,85,141,32,187,103,64,235,183,123,21,202,239,212,113,27,216,252,8,77,131,112,44,61,126,56,119,213,207,145,231,63,97,156,146,50,190,137,114,245,209,155,22,252,168,113,166,147,165,43,167,100,190,198,253,219,112,103,143,239,142,55,90,68,246,211,226,159,72,42,81,17,9,185,124,191,0,33,182,127,86,77,208,166,7,243,15,180,1,118,134,230,39,59,6,244,239,161,7,237,190,13,197,101,57,71,127,71,129,171,201,117,80,113,116,184,184,176,64,176,187,200,198,92,217,250,245,109,55,232,65,233,101,52,223,5,57,102,204,147,175,103,156,53,150,76,128,122,4,254,87,108,44,13,141,114,15,135,79,25,185,98,241,225,193,79,174,170,99,92,29,226,100,109,166,119,100,122,173,198,150,20,87,116,39,136,99,43,58,94,114,154,187,146,51,212,162,101,21,110,210,187,112,119,174,146,24,170,163,4,119,151,148,19,159,116,18,219,217,246,142,147,195,110,174,40,7,94,63,55,199,163,101,173,156,116,207,66,35,15,19,226,5,61,29,104,123,157,252,71,158,81,162,93,24,251,81,163,236,53,132,52,21,212,31,51,94,130,146,234,55,52,20,234,93,13,67,58,56,116,78,202,223,190,219,17,20,240,169,192,165,151,210,116,252,136,32,123,120,98,109,107,108,35,93,155,19,42,127,254,29,0,150,87,23,45,210,6,76,1,124,216,20,85,239,110,167,171,176,30,150,253,116,178,197,247,246,222,245,140,201,133,17,69,146,57,142,250,99,37,78,86,109,121,20,56,227,166,179,184,69,132,241,192,54,100,47,177,128,237,63,250,21,201,229,11,157,34,113,106,181,93,166,96,121,218,255,155,104,200,207,45,23,65,157,60,120,182,223,128,194,118,122,20,15,84,99,254,123,39,140,28,125,237,80,15,251,133,158,90,214,150,120,149,200,38,201,40,206,49,0,244,169,49,23,42,41,126,104,154,138,144,181,194,53,46,40,252,126,172,4,39,159,255,235,171,223,30,198,157,194,170,83,94,36,210,90,2,233,28,5,125,149,249,213,191,147,240,78,188,18,11,67,244,36,4,66,82,240,133,143,219,72,4,253,196,212,62,164,91,67,44,9,16,199,67,160,25,152,208,40,16,104,32,164,58,119,159,106,109,65,53,70,45,246,137,21,62,224,68,168,80,89,223,135,95,81,141,7,187,25,31,166,31,219,112,141,45,57,88,250,29,240,1,149,122,109,130,254,43,144,153,250,24,43,87,17,83,156,163,139,182,247,177,127,147,38,20,201,176,59,153,137,18,112,116,109,56,32,59,172,94,5,131,117,189,131,103,93,82,3,242,235,201,14,119,116,161,210,175,68,153,250,222,159,79,226,99,102,255,160,200,81,15,177,235,8,37,101,113,152,138,0,176,52,211,58,161,73,237,102,112,240,136,28,12,228,7,166,66,4,30,105,192,167,48,52,55,232,31,212,19,124,153,115,243,80,184,164,108,105,219,51,199,87,147,32,144,69,47,0,77,148,255,159,233,79,249,20,111,137,187,73,66,35,154,186,96,68,61,73,149,85,129,238,235,208,140,51,49,55,136,63,136,7,133,121,165,79,192,235,15,20,108,108,79,250,112,222,126,100,141,176,170,25,96,135,161,73,34,29,62,44,212,70,233,113,168,98,226,250,145,180,129,83,215,26,217,16,162,46,221,25,36,174,171,16,233,204,3,98,49,166,191,34,14,30,73,22,123,54,169,52,244,98,204,207,56,91,141,204,40,171,132,188,244,173,175,92,31,111,82,142,225,94,201,200,58,107,33,214,246,82,91,88,9,87,236,195,91,54,72,125,103,214,80,186,232,176,213,52,22,114,222,18,16,62,37,16,188,203,220,166,249,8,32,12,224,47,206,118,46,156,205,204,184,164,225,150,94,222,122,128,128,68,185,117,31,119,199,29,165,222,54,66,80,64,150,188,115,96,68,240,224,205,55,108,216,171,144,194,19,134,77,103,122,12,24,5,235,99,48,151,116,22,79,58,72,144,96,105,14,234,24,235,118,8,159,148,152,58,240,192,75,87,38,129,255,144,84,15,131,239,147,65,206,180,147,13,36,50,32,8,7,3,58,108,140,96,209,142,32,212,42,194,237,225,60,81,22,131,20,50,87,231,20,20,236,20,71,48,246,196,1,249,131,7,220,61,149,3,66,172,179,24,92,32,248,170,76,239,70,139,49,1,122,77,164,140,82,34,34,78,197,232,189,154,212,139,199,246,166,53,26,6,176,65,229,41,148,29,120,86,92,92,88,20,196,50,241,220,27,212,98,163,75,234,154,255,38,137,170,175,88,9,112,66,212,146,108,185,33,232,127,196,118,237,183,226,28,96,10,244,201,50,77,3,232,97,201,96,221,113,68,76,124,52,239,79,79,191,32,50,16,30,231,79}, {228,252,195,36,151,197,191,230,228,244,16,52,129,120,185,180,137,232,89,141,164,213,111,213,144,243,32,206,147,94,25,74,187,56,92,33,105,210,126,1,237,245,160,146,227,123,80,213,126,66,131,37,94,113,177,53,7,140,223,193,21,107,26,18,186,68,139,69,134,32,236,123,112,175,26,246,194,65,1,166,90,225,209,237,103,230,40,180,167,98,23,89,233,4,172,10,127,106,193,169,52,147,248,163,253,248,235,191,81,73,190,190,252,29,220,222,134,149,157,85,215,61,104,99,4,50,147,92,88,173,186,114,38,32,42,124,180,65,206,101,52,244,211,43,71,179,230,191,161,79,77,3,94,84,26,201,221,129,248,105,68,219,27,136,112,11,99,38,17,125,249,182,97,24,48,147,63,122,27,183,254,1,26,195,91,49,32,165,182,183,26,88,102,27,204,202,116,156,230,209,32,31,72,97,147,16,196,237,87,36,111,161,133,87,48,104,240,120,199,250,19,250,75,122,167,199,203,18,98,76,159,75,84,96,144,104,231,130,191,106,251,103,18,37,238,250,209,221,93,76,116,97,206,211,10,34,82,99,190,219,153,114,171,85,42,253,68,104,56,169,134,130,103,41,146,241,13,95,132,161,125,7,4,57,178,75,57,214,76,122,140,226,49,215,87,14,255,228,32,104,145,191,5,182,228,127,223,111,55,186,26,167,9,187,156,155,152,139,59,255,52,223,49,11,167,148,179,172,86,207,136,159,115,194,31,200,192,207,250,171,101,229,121,180,105,46,70,48,142,150,40,181,175,54,44,251,133,159,141,146,167,76,54,96,42,34,151,64,172,224,243,39,82,252,39,248,81,137,27,130,183,84,165,70,101,42,203,187,202,13,29,87,110,237,77,149,183,228,93,37,5,5,208,149,123,27,25,44,29,210,255,30,207,158,176,244,192,51,12,163,184,51,130,230,223,103,168,171,5,207,54,238,72,165,35,72,125,243,49,202,127,132,105,194,65,100,148,223,4,31,141,30,44,116,62,174,208,167,36,121,89,25,112,112,105,8,93,105,137,61,149,80,177,255,201,80,164,70,252,34,201,69,24,154,112,66,133,160,205,105,49,99,62,180,206,193,40,198,82,77,193,26,48,15,43,136,182,94,75,124,246,101,186,125,80,27,204,137,169,148,167,28,129,199,255,6,88,10,191,195,188,244,198,6,228,113,40,26,61,100,5,170,183,120,129,56,209,238,138,27,251,255,115,34,16,56,171,128,88,94,155,87,249,129,181,59,23,206,18,184,176,112,67,219,57,20,36,87,198,209,16,99,158,164,242,39,194,47,214,227,148,68,44,231,72,73,173,67,19,4,204,103,11,217,99,206,218,130,120,127,118,235,165,27,148,105,179,123,134,186,221,161,168,10,38,84,243,163,96,253,15,134,218,116,148,12,219,108,242,61,120,38,110,4,192,72,39,227,230,12,86,244,79,69,103,163,195,221,101,171,250,200,120,35,81,42,122,142,86,145,12,95,56,124,133,210,233,119,84,92,125,148,213,71,65,155,235,60,143,51,218,85,63,246,152,67,89,191,22,44,13,193,2,58,28,181,172,19,110,134,19,96,172,109,204,199,7,223,179,166,81,3,57,185,193,128,123,182,97,182,139,207,177,36,221,211,78,104,37,34,142,198,4,175,225,84,122,27,49,234,110,206,186,14,145,69,70,123,145,217,252,40,125,242,5,113,0,94,236,116,59,243,199,170,152,92,243,239,34,35,49,23,202,47,29,80,250,8,181,215,3,43,11,217,100,146,189,234,51,1,49,191,179,200,183,58,181,79,171,203,57,215,143,163,230,222,28,38,236,78,96,112,195,181,180,73,198,181,2,184,84,90,218,138,48,8,58,78,148,212,131,240,214,246,47,116,33,185,97,94,182,164,89,92,180,216,177,188,53,98,110,113,241,213,11,42,59,29,127,154,65,16,208,242,233,118,199,178,231,44,231,19,50,178,147,181,226,40,48,139,168,19,209,50,212,15,48,248,193,87,215,219,23,139,32,248,167,69,203,178,155,249,103,59,72,54,94,169,98,113,137,232,119,226,43,159,93,49,171,162,254,30,231,45,223,96,233,222,152,179,245,248,69,95,199,244,61,157,18,111,221,173,30,178,47,59,177,173,213,156,113,103,69,15,92,30,230,43,245,145,91,226,130,21,157,210,253,228,198,198,104,48,28,203,3,163,235,100,83,241,198,255,43,44,176,42,13,18,213,29,2,61,244,122,159,131,231,184,60,46,205,82,201,133,157,230,4,253,134,69,134,58,244,208,162,46,18,13,32,62,142,200,118,12,55,10,127,151,237,229,30,46,130,36,235,220,49,108,142,142,15,158,160,229,220,92,123,167,122,126,61,74,3,156,68,217,145,178,41,51,25,155,79,42,106,30,226,27,246,232,35,175,28,151,64,116,54,55,85,235,179,59,20,144,115,121,192,175,244,27,181,78,164,167,49,62,139,145,198,185,75,57,52,176,184,145,132,229,199,104,160,32,46,95,29,193,103,13,243,183,176,196,232,173,230,241,154,57,221,202,61,108,215,31,217,210,214,212,246,95,157,234,32,47,68,96,96,62,215,62,83,228,205,35,102,31,122,160,18,121,149,31,252,2,62,184,184,25,224,198,131,208,175,10,162,58,18,164,115,225,34,51,193,118,97,167,68,132,10,250,159,6,47,78,182,170,209,101,13,237,11,86,148,33,19,76,155,66,67,192,143,151,253,234,214,125,253,108,221,140,97,77,51,160,63,87,198,123,141,179,249,19,35,143,18,229,89,125,123,171,24,32,242,128,209,222,54,14,141,18,43,38,126,157,100,170,155,21,209,105,11,86,98,214,50,240,25,127,48,13,139,116,108,94,13,67,116,242,187,127,77,220,204,213,50,57,154,121,193,249,138,146,53,31,92,8,2,107,82,104,90,218,79,132,249,177,147,208,169,159,180,60,195,227,60,186,135,144,120,168,30,41,98,3,231,210,241,115,40,73,17,147,7,91,143,129,198,90,239,111,202,135,247,8,209,248,229,96,165,68,91,255,22,230,41,194,98,160,27,223,238,106,34,7,98,243,125,23,2,68,182,114,103,89,205,17,210,0,228,229,131,114,215,216,57,194,73,194,65,192,230,242,153,75,44,96,208,2,218,144,231,36,190,50,222,48,211,6,159,252,226,118,113,188,231,86,103,76,3,63,27,114,0,85,160,48,109,61,241,121,70,197,122,173,185,189,207,158,222,88,118,193,68,160,181,218,58,13,129,182,242,251,233,109,221,98,240,0,251,1,20,106,35,13,235,105,4,82,153,57,139,238,10,184,0,88,186,206,86,166,145,127,80,211,18,50,72,215,162,193,155,200,51,207,82}, {27,144,75,208,247,239,222,152,27,206,48,120,164,61,186,168,214,39,156,97,42,147,198,122,8,168,176,163,231,239,42,24,0,212,129,235,68,224,242,6,161,51,69,106,74,78,7,9,131,228,35,81,161,168,8,114,66,110,38,200,211,6,223,44,53,99,183,31,11,17,103,173,231,47,226,60,27,15,82,11,51,233,109,18,199,76,87,70,8,213,130,115,19,242,208,97,87,244,246,28,201,44,76,60,124,184,87,174,158,195,99,103,132,176,72,14,177,185,123,9,13,142,101,150,64,51,247,31,136,58,17,2,166,168,129,153,17,71,172,94,187,8,178,85,221,200,73,216,248,44,94,111,52,33,1,49,85,123,71,109,170,77,177,117,170,134,126,240,224,159,233,49,54,173,74,179,186,76,48,96,99,68,175,201,238,41,203,66,124,240,81,1,242,238,41,171,123,182,119,98,178,220,11,202,38,172,212,200,122,128,218,8,166,30,74,181,83,28,44,187,65,23,115,41,121,190,120,115,172,212,182,103,189,6,98,97,63,65,22,207,32,127,16,115,51,181,1,82,74,243,72,192,13,181,248,187,120,166,208,202,95,128,71,211,38,169,182,74,64,166,200,112,177,32,50,96,254,229,76,12,72,125,141,132,205,61,175,133,152,75,0,80,22,252,234,255,205,243,223,70,18,121,58,93,99,175,107,121,160,136,142,28,223,9,195,119,232,61,226,48,96,71,25,204,96,192,175,1,181,215,164,235,171,234,148,250,205,131,29,247,144,11,153,113,227,161,150,81,166,60,96,226,94,98,104,20,35,45,6,43,243,112,230,183,2,229,179,50,156,189,59,197,142,221,55,244,158,134,212,55,52,195,13,89,217,157,151,61,13,250,195,147,117,79,131,101,251,165,118,236,1,11,217,229,70,47,100,49,199,204,221,22,46,99,216,129,185,60,94,232,246,112,248,128,20,86,126,187,195,169,208,61,50,203,227,143,133,27,123,73,177,15,105,253,161,206,87,18,37,210,64,148,6,71,11,152,41,169,212,221,110,13,141,80,233,138,23,25,64,178,29,191,164,254,130,226,51,9,141,42,213,253,166,82,112,146,76,139,251,193,92,188,0,14,121,110,54,170,229,137,167,229,182,83,128,236,184,121,223,144,141,156,173,6,111,79,189,142,236,236,138,1,191,171,171,254,239,155,65,111,36,151,105,27,143,249,187,89,252,248,89,37,250,25,114,117,217,166,172,1,95,66,220,106,238,181,174,222,2,47,196,232,14,249,57,45,243,178,254,114,168,76,99,158,251,26,171,98,111,89,14,226,69,35,122,67,228,199,60,239,186,171,43,56,151,150,98,161,215,118,212,99,192,75,181,218,108,136,57,242,54,202,80,117,227,181,174,111,186,137,149,57,146,50,2,198,139,210,77,245,238,205,62,66,6,254,95,158,73,102,83,185,185,132,45,242,191,165,238,26,237,112,54,182,155,189,30,241,227,233,16,150,197,86,235,76,141,74,241,199,159,255,138,186,193,90,44,98,127,56,202,138,238,14,76,236,141,49,250,164,27,70,79,89,60,172,22,86,205,69,69,131,234,213,112,67,213,87,148,241,153,13,185,181,48,68,66,127,133,176,22,228,129,9,165,184,149,83,38,36,222,53,11,47,239,71,212,5,251,168,201,106,155,101,190,140,112,101,101,140,19,213,223,201,103,218,84,118,16,74,76,149,241,53,114,60,144,236,245,132,150,123,192,211,108,39,197,214,76,178,91,48,104,95,117,209,164,24,49,63,71,233,215,241,167,201,252,243,220,187,213,150,52,248,176,109,16,237,211,224,170,182,138,223,156,193,24,70,224,14,224,108,74,237,38,68,161,56,80,167,138,17,71,117,38,243,163,131,130,90,242,179,41,181,195,166,99,147,26,19,25,94,20,233,249,190,153,25,115,66,52,197,192,173,193,185,6,221,205,27,86,18,25,111,178,180,252,134,63,252,151,227,179,47,118,2,171,88,28,79,186,122,234,96,211,8,63,49,203,209,226,68,178,129,54,174,102,168,55,221,38,215,46,5,41,122,140,21,67,220,101,30,104,21,215,207,239,125,51,224,147,42,5,143,12,151,236,15,124,47,98,200,173,146,41,6,189,152,102,248,111,15,186,170,203,232,107,153,40,31,216,173,96,176,228,168,84,250,118,60,99,228,13,175,11,19,242,197,96,102,203,27,243,199,69,104,216,240,78,186,31,229,14,210,149,216,84,231,166,70,177,232,176,76,50,240,94,124,96,191,199,40,176,142,75,142,98,205,30,55,189,52,68,251,114,18,244,106,30,59,231,75,230,186,20,241,206,233,90,226,217,213,175,177,88,147,129,101,199,188,77,239,43,212,229,129,146,255,207,180,211,147,241,187,18,127,207,191,238,231,169,99,31,225,8,201,208,40,80,62,76,139,208,100,246,73,235,142,198,94,14,74,26,147,133,169,17,193,166,217,142,185,247,201,27,162,63,27,87,165,172,90,64,32,247,165,212,237,20,89,105,69,227,217,46,50,36,40,229,167,56,213,130,153,80,120,163,203,164,171,3,107,22,228,120,61,155,184,6,145,80,239,1,145,208,145,39,64,147,214,194,245,147,206,65,35,170,32,209,243,25,219,6,140,74,162,36,204,139,16,17,8,72,178,132,52,29,58,200,35,184,249,93,5,106,130,38,24,106,102,156,230,16,104,179,243,229,12,240,12,3,232,244,36,39,151,103,16,197,24,214,51,60,155,131,68,13,224,26,62,230,76,209,182,191,225,10,166,45,94,83,224,39,55,95,248,25,246,179,31,243,61,200,60,155,153,55,0,239,203,156,141,34,57,209,255,238,73,184,185,38,221,120,151,108,233,153,118,235,37,240,105,137,0,31,209,35,10,156,103,152,137,94,109,229,127,227,191,46,57,141,133,247,194,208,161,53,70,170,173,207,3,79,81,195,242,107,20,0,219,186,232,127,114,3,114,145,125,246,21,238,64,38,96,142,231,22,219,44,71,196,1,114,153,78,149,131,184,182,125,57,130,54,222,84,79,219,196,219,243,75,220,47,204,23,242,184,188,155,113,175,80,22,65,75,114,102,85,68,76,23,0,63,101,191,133,16,210,61,11,67,139,155,178,252,192,191,182,31,166,50,62,235,245,18,90,79,199,12,130,27,203,27,111,90,216,23,63,18,4,115,187,138,246,72,167,36,77,229,203,14,251,73,203,148,143,190,69,72,165,183,224,248,117,47,28,79,135,186,230,226,26,60,107,57,174,145,160,192,158,152,234,148,236,133,198,56,127,180,88,173,92,69,0,161,125,240,172,29,125,44,121,222,40,65,216,188,127,0,210,24,121,174,213,193,243,59,117,57,111,114,65,163,36,71}, } ; static const int16_t precomputed_encode_953x6343_x[precomputed_encode_953x6343_NUM][crypto_encode_ITEMS] = { {-2102,-32038,156,-10318,-11539,-20776,-32197,10895,-16974,17454,11004,25000,-27472,25043,-27637,-9601,-937,25601,18130,21776,650,-32652,10717,3430,-16352,17159,2884,-2531,8679,-6144,29899,-20801,-5865,-478,-11797,-13067,24990,-29546,29771,-22089,-11425,84,-7672,15816,26070,-18063,2815,-3573,-19859,-21631,27152,-17387,9714,21,30171,6676,-6245,-2755,19848,25646,31933,-18287,28092,-5780,11193,19204,2154,-26113,17598,-20733,26625,-23914,9627,-22048,18657,-20074,15568,-17023,15911,-27729,60,13132,24356,-2490,1448,-19929,6829,-6254,24702,21071,-6864,32287,-10210,-3861,19268,21352,-19528,-12795,-3060,20982,-21340,-25270,28452,8042,13452,15539,24330,23454,25004,-12312,-30244,18606,30881,-12800,5889,-15132,26603,-6866,-17701,-12831,2885,15761,27802,7812,25049,-29574,31057,-5745,14228,4814,-13747,-28191,-20762,21443,15640,1549,-28972,-26505,13267,22712,-30569,-20590,-5800,-17853,29192,28861,29196,6670,-20689,19695,619,30443,-12182,-8336,-7282,809,3936,6041,26847,-5989,-7291,-32147,-1170,-24618,6934,3285,-12395,-27394,10633,13720,13518,21352,14687,-25137,-2191,31177,-29340,9099,-30994,-31697,31176,23957,-2856,-22708,-17641,27562,30998,25834,10114,30639,-22710,-657,-9817,-22539,13210,4170,19286,14863,-1160,32214,28497,-28103,20680,108,24242,-10347,-26075,-24818,-11632,3617,16439,-27072,-27206,10954,32296,28882,13222,-28694,-32353,20944,-27229,21796,-24463,31950,18880,21316,-20369,-17488,11971,15931,-11095,-23928,-32327,-16841,26588,-23343,-22778,18956,-18294,17557,22885,23906,689,18951,32068,-21567,-2044,-29453,-6484,-15027,31207,-14568,19473,6778,15079,-31135,32084,-9537,-22288,16792,13425,12392,26941,-31768,-28901,-11767,-2445,24814,1060,2263,28459,-28312,9699,-23584,8821,-24499,-17473,-8468,7882,27086,-10535,422,24423,-29697,2679,-19073,-2277,-9853,-3674,-13821,8273,32512,-17484,-6115,-31689,9435,-9856,-19303,-26857,-32509,-6592,-22674,4269,10438,11526,-27197,-791,-17714,7203,1962,23643,7429,-23952,29106,-25509,-30127,29690,-13394,17657,795,19766,-14028,23432,-9184,-3339,29598,21400,-16665,12180,8209,-8586,9811,29705,-2129,-22381,-22667,-12666,-32752,23998,-17709,27297,-28767,-14283,16250,31764,5690,17682,6565,-30920,28367,-5198,-7577,-2293,-15442,-709,-13228,-12379,17084,-15528,30780,-17167,9098,31332,32202,-470,20545,9438,-29623,-6208,-28268,24690,-19443,-31600,-15820,-29034,-29537,24552,-28441,19766,25323,19666,25212,-16449,3,-15275,17108,-14130,-20949,-29920,-30735,-22026,-6491,-32339,19563,30102,4084,11468,20555,-30548,12236,21137,-25425,509,-22196,-27172,15321,6143,-25353,-23867,-940,-22199,-31023,-27901,-26611,-1214,23027,2203,-20210,-10392,-29159,23658,-25091,-18792,-15967,-2256,21581,-12821,-5772,-17210,28088,17264,-7342,29221,-8167,-7309,-3146,8416,-11963,-23010,17422,30745,5586,202,-19498,16836,-10966,-3772,-11276,-29117,-21182,10657,16291,22246,-20387,-29029,-11110,-1400,11000,-26778,8760,-950,21602,-2342,-27560,-15808,-21285,1375,-27532,18366,20989,29807,-25147,11088,-14415,13083,-2304,-24690,16599,-22860,-5869,-1124,21137,20368,13635,28852,-1645,-22,14832,28505,-2159,24539,-29139,30026,28395,-7475,15778,-31527,17456,-8319,-31148,-20871,19772,32318,-19864,5576,19203,-30694,9297,-20246,21782,-29532,916,-16541,32354,-16246,-18217,-15282,169,19884,9211,27819,29390,4269,22975,26493,-21930,29342,-3346,-27758,-12403,-1273,31580,-31167,16470,-17077,15749,-21160,-15115,882,-4388,-10881,-9007,-32345,14920,-29475,30905,-5998,-23470,9072,28002,20237,7705,-21897,14887,-6272,-24290,26236,19464,30724,16039,-12597,-2832,3155,-3404,13760,-2077,-10856,14625,15324,11969,11566,24107,23019,-29777,-28936,9217,-27123,15505,-28065,23525,-8281,9188,-5268,26452,-27697,-25131,-13424,9250,-18604,-5339,-6933,-6754,9950,29131,29123,29852,-21206,4270,-22579,-2061,3094,23563,13488,-7346,-2864,5026,19321,4181,-1387,-2728,22065,-30578,-9977,-26748,14159,25358,-22189,-8906,-14239,-2239,-11322,81,13162,-29434,24820,-25991,17964,-22235,-28304,-5138,8251,2028,-17140,24815,17537,4571,-26313,-22539,2674,-29554,-25246,32676,-31090,-24538,12229,-80,8714,-15556,-13810,-12152,8976,16670,-6328,-21521,3896,14046,-18792,2707,-29463,-299,23420,8441,14273,7937,-9361,-22566,24832,-31493,-24771,3604,783,20552,-13068,-11463,20591,-20661,27662,12678,20231,-3113,27356,-30092,-1123,-27944,10815,-22129,29852,-12871,12210,1938,-1100,-3271,18873,-11163,-1222,11347,30762,-4873,9561,3574,-30204,-20827,27202,20481,13664,-5477,14011,9763,-10545,-1653,19914,8149,32547,-3736,-26005,12915,-3938,-19781,827,7226,-30634,14956,10559,-26730,-18246,8166,22567,-22705,13465,-19575,11348,-18512,-7401,-12882,13104,-15781,-2379,17661,-25182,19903,3229,19964,15874,9607,-26655,-25947,25064,-10590,-7882,4579,27011,-4881,31216,-16506,-441,-21886,7860,-1251,1638,-32508,23460,-10477,-13307,26357,21457,-31610,14605,-31164,-9391,-7374,-6564,27989,-2054,23986,30528,-25369,7349,-18912,11305,7006,-29047,24309,-25012,15045,8429,-16947,29021,-312,-30031,-29662,-6622,-24350,5953,7325,31175,4434,15161,-14708,28678,19496,25594,14958,-27122,-869,13623,14050,18213,28876,15098,-21604,5984,23886,11088,-8094,9034,2279,-10242,-15152,-4821,-29099,5804,-25069,-7442,-16695,32443,9119,-29118,-13654,-26097,28392,32127,3991,-27044,-22695,-639,-31514,2494,16247,-5424,14470,-9838,-1093,-32010,-26049,-31338,486,26601,-9414,-8494,-26191,27746,17070,-19509,-17052,19208,-28485,28326,32078,13557,-6216,3910,4902,-9251,22171,-25743,15023,13120,18560,-7558,5792,1568,20603,-6818,18564,-24619,-32292,21234,-18507,19317,-23230,22272,-22564,-30068,30303,-22902,-12720,7631,17417,-25852,-24783,14117,27350,2678,-31410,16512,-3588,29173,24453,31722,23037,-10999,13112,-30366,-364,-22289,-24955,6645,29612,-3445,-5456,10924,21873,4272,1295,-8136,-19574,-16209,6892,28259,2756,-3562,-19519,581,7096,13143,-15469,32223,-10954,30122,-21680,-22304,-28808,14802,7091,27518,-15181,-8490,-24613,10355,-14004,-28093,19795,10616,31309,6450,884,14509,3934,30002,-8650,8473,-20210,630}, {26782,-19483,12844,-28666,17264,-11272,1903,-14536,21921,-8150,9308,4718,16744,5706,732,25155,15415,27982,-18560,-30947,28688,9197,4235,-17272,9393,-14214,-19356,-25868,-7306,641,-6200,5564,-5572,-20868,-24499,-9985,31970,26411,31721,-2725,23367,4531,25628,-13896,-21123,-11738,-518,31686,-26081,-24724,15100,31501,-9474,-21104,-28972,-16710,2459,5072,-20561,-7050,-24100,7532,-5108,30280,32457,-31693,-17458,23960,12541,-31397,-7118,-1834,-11840,-31328,10466,-7623,-6962,-1422,-3851,-28953,14072,21537,-21965,-21637,30484,-16826,21793,19525,130,-21729,6969,-6692,22375,16376,31273,10634,22548,7562,6998,30013,-17602,21304,-23867,11983,-4223,24621,-13454,-21723,2617,-6913,-27085,3307,28517,-9246,8940,25927,13907,21298,13007,19571,32287,21890,-1322,-10894,-32687,-7675,6195,-17249,20191,24286,-27704,-10838,-14824,5755,29675,32556,-22951,3403,6682,3940,18344,-28898,23747,-18075,6677,-10182,-30282,15858,-15165,-31968,9876,-18299,12826,1404,-29970,-3913,17976,-12179,25915,102,-6123,-6154,-27004,27565,16070,-26667,-4383,18037,4935,-8764,-4834,-6796,276,10185,30760,-15792,-22332,-24914,23113,-10410,14820,-31673,10970,5572,-17251,16594,-3020,-16597,-25471,28333,-10822,-13490,-26183,23212,-23874,-12660,21078,19976,-28716,-16344,19039,-20352,-32055,-19201,20204,20115,-22475,509,-24713,-8605,-3849,-24619,6456,19867,7631,-28686,18565,8965,27809,28168,25276,30896,13118,31304,2771,4950,-3711,-5016,-8247,18215,25228,4265,15298,14427,-3290,3693,-23654,23889,-14637,8232,-12390,-19111,20797,17919,-12959,-19603,19848,-14013,-28935,30608,-26515,16307,-30374,-1625,-24910,30793,13455,24136,21073,12480,-5374,-30891,-24056,-13032,-16349,23167,-1916,27433,-8883,102,26192,8001,13154,12895,-26038,28799,-2194,31122,13207,-1922,-11738,-4508,-267,-12720,20544,-9433,11588,-22978,27660,-12752,12859,19279,7823,-25382,21133,-20333,-16096,16521,-17098,-3485,-9008,-17512,-16450,9302,-18831,6756,-1477,27002,18185,-11147,-5016,-28145,15149,-13122,-32045,-5974,21514,21549,5489,-32756,15133,25336,14976,-7904,-17136,-26086,-23658,-16817,4807,-16022,28752,13056,-29329,30938,-21390,28534,17820,9381,10086,-23079,-18813,16681,-2444,4188,12911,16337,-253,14237,22857,3855,16382,-16412,-4252,16880,-8770,-20920,-16357,-14914,331,6723,20271,4424,-30352,22338,19540,-3714,18664,31385,-32616,14230,14522,-18543,-13239,-1127,-690,-18064,-14801,31349,-23668,-4567,19846,-17228,-24128,-23789,-5693,19640,-1261,3679,-8930,-17463,2295,11707,-13575,-30683,-15774,-25455,-763,-12935,12418,11457,936,-5558,7945,1368,-20466,5316,22373,30807,-14737,-22004,-4823,12961,-24071,-18301,-25702,3730,8604,-2996,19220,-24158,24383,-17830,-12723,314,-760,8224,-19137,-14880,-9199,-29196,2108,-32563,-20266,-25691,-568,-8056,-1287,-13167,-31978,-23485,-3921,-25421,29374,-11176,-594,-7417,-13732,28685,-10996,-9883,6321,-10520,-8191,-9729,-15427,-1265,-28811,14131,9676,-20757,-1931,-20369,-23910,-16742,-9429,32453,-6639,-30236,27525,-2074,-15766,5412,-27586,22881,-15510,-17950,23770,-9029,15655,-18055,26048,24238,-22523,-10849,-3242,-7380,4302,11470,-7605,22242,-11445,25194,-21154,-19702,30957,-5523,-6285,-5955,-4188,32470,30180,-9268,-16472,-20287,-26878,6051,-18199,14912,9022,12944,1298,-16805,23789,-18121,-5954,-24993,8482,18955,-21786,9856,26836,31903,26015,942,-7689,-432,4313,16432,-8019,1564,15279,-20881,22011,-3369,-21415,-26687,-47,23345,-29953,-18308,15327,24313,-223,-6496,-24577,-20366,-18746,-7137,18750,-23811,-20077,20662,8843,-476,15959,4902,-11466,-14126,1761,7898,25955,-26857,13290,30220,-17680,-9208,-25599,20733,-11599,-18622,-22232,-6156,532,13527,-8072,-25655,-24118,-24213,-11119,-20304,13792,-2945,-2308,-2517,32583,121,14372,22753,13572,-3273,28142,-3342,15752,-13558,-19874,30178,-567,-1004,17251,-26547,27690,-19581,-19989,23548,10104,18389,-17893,14849,801,-20673,-24092,16265,3076,-31375,-3899,-11949,23039,-9902,18024,8542,-5016,-21296,-26455,2795,-10508,8148,18842,9671,14536,31473,27760,27604,-28126,-26957,29511,-23307,2521,-3304,26221,-17681,-28357,1616,-27051,-7177,2476,-23579,-15406,28227,-23103,20450,23731,-3114,-3846,22886,-26717,-28788,20105,11438,-20735,-24970,-6909,16902,2496,-9261,30691,3520,24997,24073,4555,21677,-4134,13328,-21923,-23419,4798,-16915,-15688,20292,7185,5901,-3239,-644,29242,27915,-14204,26990,-23984,-28730,-20386,26231,27048,-12212,-28594,18833,10718,-7797,10270,1326,15783,-27335,-26685,25628,-3898,-17573,25578,-11106,-21484,-21541,-30840,23571,13017,22359,12105,3021,-7583,-16287,-20662,6522,3526,31801,-3683,28369,27045,-32608,-17909,8144,-24488,-2119,-30006,-19667,-279,7939,23343,20208,14940,-16910,-7038,24318,12546,28366,-11037,8031,-13854,-28765,22909,24222,23949,22749,-427,-18481,-21689,31875,-9958,-26859,30875,-15899,-32607,3364,-30512,-15273,19970,16273,18739,-29759,-26423,9515,-4186,-5773,4761,9147,5260,-15057,-19273,3795,-28144,-10323,14169,-6674,15302,-11615,12400,7311,7202,13156,18288,26465,14606,-3562,-18997,29700,29325,17744,9379,-1850,-32459,17264,-10042,-29675,10725,-14904,-1740,-6378,2620,15091,-1901,5452,10624,-26128,-31175,-5678,28176,15321,-15306,-29831,-11364,-30116,20088,-16007,-10626,18868,-12370,2284,-13604,-8115,-21223,-14722,-25471,-4274,-13547,-1559,30244,-26889,-4168,960,28514,32183,16732,-2362,5377,-11109,21655,-30417,-8665,17263,11543,-20266,-24415,8835,-2738,-10794,-1426,18949,21050,5715,-16418,-9611,24081,22537,20874,-12008,28536,24563,-5683,2160,14871,28287,-18317,30389,28000,1364,-30493,-18564,29662,-7005,26089,-4750,12327,-23423,29280,-346,13956,2257,-7749,9575,-26745,-28243,23401,31384,10436,-17713,17900,18471,20708,-1377,23849,4958,28609,11299,-14640,13254,-284,-24895,-11903,-9379,10587,-26887,-24105,-31689,-6588,11125,7755,-18637,8825,13684,-15564,-12424,8615,-31949,-24452,-743,16718,-18811,-26101,11388,20872,-26816,9052,3324,-24555,8813,15752,28216,17507,-30513,18390,-913,-13043,-13869,-11035,-7972,16016,2482,10299,-13435,8215,26666,10711,17863,-15937,4839,-15466,2365,-9234}, {-26550,10414,-11351,22574,27124,-21923,20446,-31953,30715,29927,31544,8320,-14779,-8196,29430,13117,14692,-13109,22144,23415,19753,11973,-12748,31237,-11610,-26146,-28997,-1397,-17680,25181,-11785,16614,32540,-1919,9374,4970,-14878,-2471,23736,-19678,23101,-280,-1725,2259,-23497,32524,386,5082,9375,12865,-13778,28443,-10662,30964,5192,11367,-25664,29849,-7976,-551,-30649,19674,2119,-1363,2655,-12827,21491,-7744,15614,20560,-11147,29673,-24117,-17845,18653,-18957,11925,-28541,25501,-2412,28288,-22418,25361,10072,18751,10672,-11332,12364,23607,-472,15834,22515,24449,-8336,-12768,-27860,-17284,-23299,13337,19760,7972,904,25273,5089,24853,22768,25104,-12699,3043,15674,15685,-25641,-25501,15031,24364,-1304,-18342,-12916,-26378,25913,-9505,-15008,9522,-16846,-19176,-20532,-14042,-12733,-12719,20441,-24212,27226,24473,-26589,9061,13867,12548,-7704,30449,-14509,-28967,-13595,-27208,5157,9434,-17597,31047,897,20087,-18530,-21621,-15290,9215,3009,-25496,14294,19992,811,10658,-13550,-19392,-29452,11105,3982,17246,-7818,-16535,-19634,17489,2392,25007,25214,15085,-27900,-30469,-5829,17811,-17908,23141,27570,15166,2904,-6818,-10116,24716,22481,19082,-24878,11850,16204,-20916,3546,-21077,8069,7186,28046,-19105,-15013,7849,-13,-21166,17882,-25978,7494,19592,-22859,-28353,-11157,-28480,1737,5191,-1616,-23759,-6876,-23548,-20852,-4187,30581,20987,17644,-17835,-18326,-2242,-15965,-27193,-6344,21354,22191,8164,9642,30633,-17806,-24897,22235,-5523,29661,17545,-23350,-14733,11628,8992,-20635,25865,30919,27094,1600,-15033,-31426,-5100,-10617,10265,22245,-29668,1238,3536,-25586,22215,6709,13861,-2377,13446,-23443,32735,28652,28672,19358,-19342,6070,-13494,6330,18461,-29849,-14075,-26970,-16225,14989,-5915,18608,4167,-3597,26590,8833,5100,21056,-15313,16253,163,-29742,13242,12022,-17191,8141,-10662,-4215,-21864,7521,5670,-31881,-25513,3847,11430,-16171,2998,12881,-1903,-28371,-12871,-21822,5904,19129,-29139,23747,27622,-25891,-11735,-25075,29163,-10749,31,-13284,7261,-25207,17140,-32013,12305,17618,-25706,-11501,-20608,28562,19175,-10385,-1419,11818,-4439,18674,-15197,-30445,24536,3302,-1984,-24885,27755,15770,17857,16944,2356,-30090,21908,-14002,25705,2145,24986,10075,15619,10663,-11083,-2360,-23508,12207,27779,-5420,22737,-3445,-23450,52,30820,-22195,-16489,15195,-22700,31105,-13193,-21403,-182,11603,-26347,12796,22953,7702,-11242,-29841,25542,17729,-3897,-12406,-6158,-27017,-9520,18254,-21932,9735,-1939,5135,-2415,20348,-5293,-14444,-23888,9475,9874,24845,2522,-32142,-23981,11696,-15379,10892,-11862,-20723,-23249,-28728,-6998,10699,-16558,13770,-27323,-22331,-28389,32671,-31498,13638,-31524,28482,23418,-31349,-8739,-12555,-11909,-18370,-9162,-23016,-17052,25876,-28922,-21741,-14423,29092,-8653,10794,21766,32215,-7776,-11769,31702,16213,-28067,8233,-19258,14826,31299,23422,-32434,3146,23248,14138,11042,-31750,14541,13321,-26914,-23355,-24403,-19139,-14534,-15247,5359,28218,4314,-783,10565,-2488,12991,-10858,30211,3362,7888,5540,-10018,15114,-30561,7070,-8479,-15831,-10309,-31557,-2761,16474,-7063,23444,-11398,18857,6794,-19260,941,-7697,31074,-29918,-9311,-24097,-24767,-20328,28737,30897,30153,-27482,3901,-8745,32087,-23164,3195,-27195,15976,-20426,25797,24629,-26017,-11709,14836,-27461,1869,12782,9194,-2359,2438,32727,30145,-16951,-28998,-18453,-31249,-18461,29624,-25958,10448,-21916,-156,31540,4860,21967,-28985,-32534,21436,11845,27603,29690,-6607,-9608,18750,-12436,-18474,-21557,4485,-29254,4669,16045,-12158,-6233,27816,14568,1301,-26782,6841,-6440,-20511,-11868,-27357,7044,3799,2053,11266,15354,-22217,12716,-1932,23339,-1630,4230,-7418,-23720,-31159,-7143,-14484,17238,-18441,2885,27819,23369,2586,-900,-22402,-28334,-21611,24265,-19162,-15130,27588,16871,14830,6603,-1278,20222,28562,-3113,-18346,22179,-17517,-23143,13019,15251,31819,17045,-18447,6852,6064,-5356,16376,-7803,9158,31576,9950,-13279,32205,-6299,-11749,-18251,-30564,-32503,-24732,-27076,-25049,18672,24716,-12454,16407,-25421,9878,-9045,-24062,31912,-26186,26438,16440,18482,-16293,-22133,22987,-4132,23351,-28687,-27458,17344,9547,-13324,31295,15792,15914,27831,-2689,14594,-18331,4059,-9676,-10060,-30943,-17560,-14785,28933,10999,-23103,-10303,-13963,-17784,26856,11888,-8101,-17499,19892,-20790,2110,-28260,30511,-24825,5850,-32560,-19681,-17628,-10471,9177,-8014,-12739,26771,-24219,-18834,24586,17946,-2962,-14123,-19137,-13943,-9493,8934,3554,-9480,5272,1908,4032,28876,-31634,30232,-22669,-21896,-4622,-27506,1938,4110,-12811,-12170,17667,-30488,-32135,-26496,-25969,28190,-18760,7879,-15736,-8307,1584,28511,-26622,-15033,-1541,-4686,-26604,-24825,11676,31190,-811,18504,-23811,-32513,22746,15006,-9913,22958,2688,14670,-30987,9980,-29614,28956,-2626,828,-10595,-19068,18299,14581,-12016,9359,20361,-29171,-32668,1591,4201,24220,26440,21408,5812,-4064,-3845,-3112,-2472,14129,-13443,16677,7217,26694,-25234,26820,-15737,-30690,3982,16892,-24449,10634,-15546,10436,-13286,12965,17130,-24521,1347,7696,-20174,-24746,21236,25351,-27672,-19595,-24428,-26221,27770,-5353,20881,27586,-30677,-25026,2317,-374,-21032,-25425,3935,616,30290,3812,4785,-17323,-21473,25571,29295,-19553,31876,-25631,-16555,8641,-9155,-27833,22873,-31449,-7305,-173,5433,-4497,11672,-3904,4550,-1020,-20227,30409,-26675,-12366,-1962,5528,10754,-24189,14485,-4308,-9830,-17383,-21490,-3536,31434,-32495,5841,21021,-22318,-13247,-19305,-1142,-2893,6277,25930,-11975,17695,-30772,-27907,23018,28848,-2351,27640,-3449,23947,21931,-10868,211,-17259,8790,12447,-3696,29306,4163,-4565,-15655,-13687,7870,-9964,14298,-1942,-27358,27712,3440,-23437,5322,21002,-2562,-29797,-11301,-25104,-1857,-24274,-30425,21341,-25458,-13067,-6507,-30076,20189,-14749,-8080,26473,-22954,3168,-16423,12437,32717,-1659,23159,-13571,-9333,15792,18295,22299,7644,-4380,13465,7041,32604,-28780,-13495,27095,-5959,-4368,8297,-22295,-2446,26189,-14692,-30028,-9196,-14035,8720,11419,-17890,-30114,-25753,22750,-26687,-25628,14714,680,-16325,7576}, {-5374,31543,-6484,-14207,1647,-26032,-1521,-26159,-22335,-24082,-10416,-32712,4497,1645,-26154,-14828,-9932,-2458,5675,-17889,-4516,15066,-23070,4116,-8680,-8536,17970,-4950,944,-14039,1014,-6588,4131,19027,20826,7097,7720,28956,-4492,22954,29273,1168,4636,16295,-27302,30632,4857,8090,31245,-4110,7206,-4045,-12582,16153,-27164,-28972,-15565,-21615,11627,2693,7786,28007,28723,29196,15343,7330,-25271,20538,-27514,13419,-8217,20120,22813,5374,27480,-15298,18242,17015,26890,-9328,4740,-32015,29851,-8778,12509,1758,-19421,14404,-23636,-14372,32025,28519,-5579,-12470,-31041,19839,-30951,24298,-28788,-30370,-11403,22564,10277,20921,16664,6548,-12527,-7006,2092,-19690,-7656,7029,-13350,-2018,10745,10321,20079,-27450,-23558,-24689,-13825,24986,5196,-18889,-3986,4278,-19583,-8718,11012,-24460,-16296,22935,13031,31585,-28076,-17277,-22103,10096,15294,27578,-12822,12223,26157,-5781,11654,-32503,-19155,-14308,-19555,-26907,30135,-32711,-13380,-16672,18420,27555,4536,30355,8968,17121,-832,-22050,27424,25087,-8998,8136,-99,-9937,-2757,13643,18602,-21535,-18021,2725,-15909,4657,-12056,20406,-20827,19765,9299,14216,-20698,19015,32569,-15173,8572,-15535,-7149,26983,-25779,-27148,25581,-19989,-27762,1701,18470,1051,3493,-20810,-17351,-15145,-15327,-13090,-32615,-27357,16249,-14619,4321,-25417,24989,-5133,10399,16601,-7798,22104,-22533,18688,-13447,1485,-17421,-12198,-27959,-2530,11075,306,21868,9644,31084,-27944,5006,-17744,-9688,21467,12478,22100,-1754,-16329,23588,-16490,-28343,6793,14709,5285,9675,9584,27513,13648,17826,21808,24572,20844,-13309,-3906,-340,19564,18945,5865,-24377,32455,7962,27051,5195,27964,-17530,-29320,-30512,-13054,-14073,25111,-11212,-1308,15869,25540,31268,-20582,11699,-12171,-32735,32149,-2059,-7379,-31379,28664,9706,19485,8816,-24095,10912,5984,6635,32347,-9184,20082,331,19329,-13798,-17459,-10061,13452,12880,-8890,-23879,25231,20278,-9341,10239,-2228,26790,-19890,27684,20062,-8648,-455,-23947,18010,6102,-11402,30531,14465,-21955,23773,23647,25742,23765,2869,32346,18203,-13423,-24876,-2590,-2490,17150,6147,-13520,24980,20287,27930,-13213,20878,-19339,-29915,7018,-14479,-28487,26526,-18218,10584,25301,6335,-25132,-13524,-11741,26885,-741,-29853,1752,29301,-21077,13029,14686,-3877,31954,-6044,-10862,27944,-10214,6583,3861,1113,-9647,-34,-19642,5008,5778,-5557,-10916,7878,16455,-22237,1356,-32016,15361,-4436,-27084,28747,-13888,-7031,-2095,-28676,26636,-12887,9433,-31588,-12316,15489,-10773,-14456,-14028,23750,21098,31177,-12778,11581,-30599,16355,-4637,-28273,18841,-13958,-17078,27885,30276,-21026,22487,-18673,681,3464,-19013,23389,13415,3601,-14949,-10541,28812,-432,7675,-1667,-5706,-9053,-13605,14971,-28073,-9371,-5055,14694,16252,-17209,2278,-8229,5226,-28263,12195,546,1012,23811,24850,22955,-14559,-30476,5146,-25406,16408,26554,24857,-25706,4825,20296,1429,-31519,5016,1426,20085,3392,11916,28115,22229,-14906,7340,31204,10289,17868,3017,4453,-15670,-7520,17067,-27312,14144,-28829,17994,22325,-17096,-6854,-11721,-22761,27150,-13590,-6037,29192,-24809,3499,-7936,13080,11517,-10564,-2486,16588,22722,-22307,-13946,21487,31079,16977,4603,-6549,10952,-20056,-32262,12043,4597,-32576,-30994,-7839,5789,10934,24962,-23547,-30057,-20453,878,21788,-11709,32444,-9516,13449,13404,-20755,-31,15800,5799,-14157,19417,-29688,26968,17705,9613,4218,28971,15039,29053,-20132,-28453,27905,27743,16749,1665,15616,-2269,23111,8601,-10462,-31593,-17237,1008,-3030,-28453,-26963,12512,2790,32579,15247,17428,-19122,-32437,-25926,-2943,-10218,-21569,7649,31398,-2042,-30389,-7616,-3513,11716,-18019,21658,-22206,-29821,-12823,32715,-16033,-21246,6991,405,22520,-23348,-11668,-11064,-30961,24853,-20098,16643,-27766,-32349,10727,1989,-10436,16037,31011,-24353,-2978,-6234,-32676,23543,-7561,-20613,-27256,-24865,-17921,-15063,9468,-22236,26211,31896,18842,-6812,31070,-3876,8926,-13655,-32155,2947,-19939,-15861,26629,-158,20910,-383,-5995,-1801,-20050,776,13581,-10153,27615,408,23531,14538,2976,6093,-16588,-23701,17609,-3180,6088,-9879,-30146,-7704,-12444,2887,-12061,813,-21546,-19157,-14661,9629,-15761,-1788,28825,-14871,15002,-21099,27054,-12301,-25748,10479,3881,20752,-9698,8079,-16703,-24825,-1118,26369,-2381,25047,25488,4785,25020,-27494,11636,-6962,26648,-18876,-11189,-27962,-20377,14829,26735,2316,-15790,15923,-20550,31110,27751,-10255,-10105,9890,10305,14580,-3720,-32234,4625,-32063,-28191,26244,23488,-2140,20168,-29761,16814,-2379,-24214,-15070,21225,-17929,-15600,11259,-32669,12749,-21452,21859,-19481,2922,8152,-17549,23553,-5173,7838,-18728,-23810,-3933,-4578,-10049,-19395,-26423,16470,-14517,28601,-31608,5635,21440,-26269,-29467,-9555,8765,-28476,-1937,22214,-21405,-20362,29799,-2623,-27582,-24946,-6110,23355,16283,22842,-29322,-9059,-10204,17787,-22423,3364,31052,-25881,-29798,-26824,-12598,-19273,-7737,27373,32417,-23022,-17203,-7164,3984,16773,26770,27032,-19512,13695,-19854,-22589,-26321,32318,-5491,4947,-10620,13349,-8490,-26999,-30198,28147,711,22528,-32420,5264,16555,27758,5154,-21789,-31773,7741,19885,-18982,26199,5033,30223,-25889,-32491,15526,-32398,-17022,16594,-25445,-28501,-31777,16399,13884,-26982,-18151,14755,32376,19879,-4121,26215,21496,32758,-10218,23135,20414,29040,27089,-15946,-13333,-19511,8974,29716,-26977,-12482,1417,-6386,9243,-6512,12242,-28016,-29618,-5387,-30590,1270,-14856,-20465,20721,-7632,-165,17472,11698,1670,15866,20514,-3075,14388,-8593,-31799,-4403,-3304,-28153,-21423,25267,-4478,-31995,32259,17784,7796,23350,-12345,-27796,-9835,-28329,-19748,-2698,-11496,15245,4106,13798,2866,-1369,21101,222,-27732,6017,28214,-32694,-29573,-23878,-9857,-26748,-16950,6745,-6409,1787,6661,1917,-3865,18193,-10558,16765,22055,20893,12543,-14054,30097,-24125,9991,-17868,-17263,-15762,-9367,22985,-6527,-15061,-3060,20266,-20437,25107,-18184,-5570,25115,-19164,10287,-15177,16411,-5875,-7871,-12186,-2478,6162,-23224,-17928,-6469,-21945,-218,16693,15440,-8779,28895,24518,-5081,22380}, } ; static void test_encode_953x6343_impl(long long impl) { unsigned char *s = test_encode_953x6343_s; unsigned char *x = test_encode_953x6343_x; unsigned char *s2 = test_encode_953x6343_s2; unsigned char *x2 = test_encode_953x6343_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_953x6343_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953x6343(impl); printf("encode_953x6343 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953x6343_implementation(impl),ntruprime_dispatch_encode_953x6343_compiler(impl)); } else { crypto_encode = ntruprime_encode_953x6343; printf("encode_953x6343 selected implementation %s compiler %s\n",ntruprime_encode_953x6343_implementation(),ntruprime_encode_953x6343_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_953x6343_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_953x6343_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_953x6343_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_953x6343_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_953x6343_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_953x6343_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_953x6343(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953x6343")) return; storage_encode_953x6343_s = callocplus(crypto_encode_STRBYTES); test_encode_953x6343_s = aligned(storage_encode_953x6343_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_953x6343_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_953x6343_x = aligned(storage_encode_953x6343_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_953x6343_s2 = callocplus(maxalloc); test_encode_953x6343_s2 = aligned(storage_encode_953x6343_s2,crypto_encode_STRBYTES); storage_encode_953x6343_x2 = callocplus(maxalloc); test_encode_953x6343_x2 = aligned(storage_encode_953x6343_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_953x6343 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_953x6343();++impl) forked(test_encode_953x6343_impl,impl); ++test_encode_953x6343_s; ++test_encode_953x6343_x; ++test_encode_953x6343_s2; ++test_encode_953x6343_x2; } free(storage_encode_953x6343_x2); free(storage_encode_953x6343_s2); free(storage_encode_953x6343_x); free(storage_encode_953x6343_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_953xfreeze3.c0000644000000000000000000011616314705505543023356 0ustar rootroot/* ----- encode/953xfreeze3, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_953xfreeze3_checksums[] = { "072c38c98e9744daf3b6761d57bf6ea58f590165eb3a418379211720cfcb7dc0", "6105c1a5693f0c92e5afdadd2c1990b5ca456f6362ac010e8051d59e8c420bfe", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_953xfreeze3_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_953xfreeze3_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_953xfreeze3_ITEMBYTES static void *storage_encode_953xfreeze3_s; static unsigned char *test_encode_953xfreeze3_s; static void *storage_encode_953xfreeze3_x; static unsigned char *test_encode_953xfreeze3_x; static void *storage_encode_953xfreeze3_s2; static unsigned char *test_encode_953xfreeze3_s2; static void *storage_encode_953xfreeze3_x2; static unsigned char *test_encode_953xfreeze3_x2; #define precomputed_encode_953xfreeze3_NUM 4 static const unsigned char precomputed_encode_953xfreeze3_s[precomputed_encode_953xfreeze3_NUM][crypto_encode_STRBYTES] = { {0,0,254,0,0,255,1,1,255,255,0,2,255,255,254,2,255,0,255,0,0,255,1,254,255,255,0,255,0,0,1,255,0,255,0,255,2,0,255,1,255,255,0,0,254,0,2,1,0,255,0,255,1,254,255,0,0,0,255,255,255,1,255,0,0,0,255,255,0,1,255,255,1,255,1,255,255,1,0,1,254,0,255,2,255,255,0,0,254,0,255,255,254,1,255,2,2,2,255,0,1,0,0,0,2,1,0,1,1,255,2,255,0,255,1,0,0,0,255,2,0,0,1,1,2,255,0,255,0,0,255,1,1,255,0,255,1,255,1,255,2,0,255,255,255,255,1,1,1,1,0,1,0,0,1,255,255,254,0,0,0,255,0,1,254,1,0,255,255,0,0,1,2,255,255,0,255,1,0,254,1,2,1,1,0,0,254,0,1,254,255,0,255,0,0,254,1,255,1,0,255,255,255,255,1,2,255,0,2,255,0,0,255,0,0,0,2,2,0,255,2,255,0,255,1,255,0,255,2,0,2,1,255,0,1,255,0,255,0,0,0,1,0,0,255,1,254,1,0,255,1,255,0,0,1,255,255,2,0,0,1,0,255,1,0,1,0,1,0,2,0,1,1,0,0,0,254,254,0,2,1,0,255,0,0,255,0,1,2,2,0,254,255,255,2,1,255,0,254,1,1,0,1,254,254,0,0,255,1,255,1,255,0,255,1,2,255,0,255,0,1,1,0,255,255,255,2,255,0,0,0,255,255,2,0,0,0,1,255,0,255,0,0,0,254,1,2,1,254,0,255,1,255,255,1,254,255,255,255,2,0,0,255,255,0,1,0,0,1,1,0,255,254,1,1,1,1,255,254,254,2,0,1,2,255,0,0,254,0,254,2,255,2,1,255,0,0,254,2,0,1,0,255,1,255,254,254,255,1,255,255,0,0,0,0,1,0,255,1,255,2,1,2,1,2,1,2,2,255,255,255,255,0,1,255,254,0,255,0,0,1,254,2,0,255,0,0,255,1,1,0,0,255,0,0,1,0,0,254,255,2,0,255,0,0,255,1,254,254,1,255,0,2,1,1,1,0,2,1,0,255,255,1,0,2,254,0,2,255,254,254,255,1,1,1,0,254,2,255,255,254,0,1,255,255,255,255,1,0,1,0,0,0,2,255,1,0,2,255,255,1,1,2,255,255,1,0,2,2,0,1,255,0,255,0,1,0,0,2,1,2,1,0,255,0,0,1,0,0,0,2,255,0,254,0,0,2,0,1,1,0,1,1,0,255,0,255,0,0,2,255,255,2,255,0,1,0,0,0,1,0,255,0,255,1,2,254,0,255,1,1,1,254,0,0,0,255,0,1,255,1,254,0,254,255,255,0,255,255,0,1,1,254,0,2,255,0,0,2,1,0,0,0,1,0,0,1,2,1,1,1,1,0,0,0,1,2,1,255,1,0,0,1,255,1,255,0,255,255,255,0,255,0,0,1,1,255,0,1,255,1,0,0,0,255,254,1,254,255,1,0,255,1,1,1,255,1,2,0,255,0,254,255,0,1,255,0,1,0,255,254,255,0,255,2,254,255,0,255,254,0,1,1,0,0,255,1,0,0,0,255,0,255,255,255,0,255,254,1,0,0,1,0,0,2,255,1,0,254,255,254,0,0,255,0,0,1,1,255,0,255,255,0,0,254,255,1,254,0,0,0,1,255,0,0,1,255,255,0,1,2,0,2,0,0,1,1,0,0,1,0,0,1,0,0,255,0,254,255,0,0,255,1,1,1,1,1,1,1,0,0,255,1,0,0,0,2,2,0,255,1,254,0,2,1,1,254,2,255,255,254,255,1,255,255,1,254,255,0,1,0,0,254,0,255,1,0,0,254,2,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,255,1,2,0,255,0,0,255,1,1,0,1,0,2,255,255,2,255,255,255,0,0,0,0,255,0,0,0,255,0,255,255,0,1,255,0,0,255,254,0,255,255,1,1,0,1,0,2,0,255,255,0,0,255,0,255,0,1,0,1,1,2,1,254,255,255,0,0,255,0,0,255,2,1,255,255,255,0,1,255,0,0,1,255,255,1,1,1,255,1,254,2,1,255,255,0,0,255,1,1,1,254,254,0,255,2,2,1}, {2,255,0,255,254,0,255,255,0,255,0,255,255,0,0,2,1,0,0,0,0,0,0,0,255,0,2,255,255,255,0,255,255,1,1,255,0,255,254,0,1,254,1,0,0,1,255,254,2,255,255,0,255,255,255,2,254,0,1,1,1,0,0,2,255,0,0,2,1,0,1,1,0,0,0,1,1,1,1,0,255,0,255,1,2,0,0,0,255,255,0,2,0,0,0,0,2,1,0,1,0,0,1,1,254,255,0,255,1,0,255,0,2,0,1,254,0,0,0,0,1,1,0,0,1,0,0,1,255,255,255,0,255,1,0,255,0,0,0,1,0,0,255,1,255,255,254,0,1,0,1,255,1,255,0,0,0,0,0,254,255,255,0,1,0,255,255,0,0,254,0,0,1,0,0,1,2,0,0,0,254,0,254,0,1,0,255,1,255,255,1,255,1,0,255,0,1,254,1,2,1,255,255,255,2,1,0,1,254,0,0,0,255,254,0,255,255,1,254,0,1,0,1,2,255,255,0,255,255,255,255,1,254,0,254,1,1,0,255,0,0,2,2,255,2,255,1,0,0,255,255,254,255,2,1,1,0,255,1,254,2,1,0,255,0,0,0,255,255,255,255,1,1,255,2,255,2,1,0,255,255,255,1,1,254,1,0,0,1,255,2,255,0,0,0,255,0,255,1,0,0,1,1,0,1,0,1,0,1,254,255,2,255,2,2,1,0,254,0,0,1,1,255,255,2,2,1,1,254,1,1,1,255,0,0,255,1,255,1,0,0,1,1,1,0,0,0,1,255,255,1,255,1,0,255,1,255,255,0,0,2,255,2,0,255,0,255,0,2,0,0,2,0,0,0,255,0,255,254,255,1,0,1,2,1,255,1,1,1,255,254,1,255,1,255,255,0,255,2,1,255,1,0,2,1,255,1,0,0,255,1,255,0,254,255,0,0,0,1,255,0,254,1,0,0,255,255,254,2,1,255,1,1,255,2,255,2,2,2,255,255,0,0,254,1,0,255,0,255,1,1,1,1,255,255,1,254,1,255,255,255,254,255,1,255,1,1,255,1,255,0,255,0,0,1,255,0,255,0,0,0,1,1,1,0,255,0,1,0,0,1,0,0,0,255,0,255,255,0,255,255,1,0,0,1,1,0,255,2,254,0,255,0,1,1,255,1,2,255,1,255,1,255,1,255,1,0,1,0,255,1,1,1,254,0,2,2,1,0,255,255,0,1,1,0,0,0,0,1,1,0,1,255,1,1,255,0,255,255,254,255,1,0,1,2,255,0,2,255,255,255,0,255,1,0,1,254,254,0,2,255,255,1,1,255,0,0,1,2,1,0,1,255,255,0,255,255,2,1,1,2,1,0,1,255,254,0,255,0,254,2,0,1,0,0,255,0,1,0,255,1,0,255,254,0,255,255,0,254,0,0,254,0,0,1,0,255,0,254,0,1,255,255,255,1,255,255,255,255,1,0,1,1,1,255,0,255,1,0,0,0,0,255,0,0,1,1,1,1,0,0,1,254,1,1,255,0,0,254,255,255,255,1,1,255,255,0,254,0,255,0,0,0,1,255,0,0,255,0,1,254,0,2,1,255,255,0,1,255,254,0,0,255,1,255,1,255,254,254,255,0,254,254,254,0,1,1,2,1,2,255,0,255,255,2,0,0,1,1,0,0,255,255,0,255,255,0,0,0,254,1,0,254,1,1,1,1,0,255,2,255,255,255,0,255,1,255,255,0,0,1,255,0,0,0,1,1,0,0,0,255,255,0,255,0,1,0,255,255,0,254,2,0,255,1,0,255,0,1,0,0,1,255,255,0,255,0,254,0,0,2,0,1,255,1,0,1,2,1,0,255,1,1,2,1,254,1,1,255,255,0,1,0,0,254,0,254,255,1,255,1,255,0,0,0,255,255,255,255,1,0,255,0,0,255,0,0,1,1,0,0,255,1,1,0,254,255,0,255,0,254,1,1,0,0,255,255,1,0,0,0,254,0,255,0,1,0,1,0,255,0,255,255,255,254,0,1,2,0,0,255,255,1,1,0,2,254,1,0,255,255,255,0,255,1,255,1,254,255,0,2,255,1,255,1,2,1,1,255,0,255,1,0,1,0,1,0,255,1,255,0,1,1,2,0,0,0,2,0,2,255,0,255}, {0,254,0,2,1,1,0,255,255,0,0,255,2,1,1,255,0,0,255,1,0,0,0,0,2,1,1,255,0,255,255,1,255,1,1,0,0,255,0,255,255,0,0,254,255,1,1,255,254,1,1,254,255,255,255,2,0,1,255,1,254,1,255,255,255,254,254,1,255,0,2,1,2,2,1,1,0,0,254,0,0,0,0,1,1,0,255,1,254,255,255,0,2,255,0,2,254,0,0,1,254,255,254,255,254,0,0,254,255,254,255,255,255,0,1,255,1,2,1,254,1,0,1,255,255,255,255,0,255,0,0,255,1,1,255,254,255,0,254,1,0,254,1,1,1,1,1,2,254,1,255,255,1,1,254,1,0,1,1,0,0,254,0,1,254,2,255,255,0,1,1,0,254,255,0,255,1,254,2,254,255,255,255,255,0,0,255,255,1,254,0,1,254,1,1,0,0,2,0,0,0,1,255,254,0,255,0,255,0,255,254,255,0,2,254,1,255,0,255,1,0,1,0,1,255,254,1,2,0,1,0,255,255,2,0,2,1,1,255,0,1,1,0,2,0,1,0,0,1,1,255,1,1,255,255,255,0,1,0,1,255,1,1,0,0,0,255,0,0,0,2,255,2,0,1,255,0,255,255,0,0,0,254,255,0,254,0,1,1,0,255,255,255,0,1,255,1,0,0,255,254,0,0,0,0,2,254,255,0,255,1,254,255,0,1,0,0,0,0,1,1,255,1,0,254,0,0,254,255,255,255,255,0,0,1,1,255,254,2,255,0,0,1,0,0,0,0,1,0,254,1,1,255,0,0,0,254,1,254,0,254,1,0,0,1,0,255,255,1,1,255,0,0,0,1,255,255,0,0,255,255,255,0,0,0,1,0,254,0,2,1,1,255,1,255,1,255,2,1,254,0,255,255,255,0,255,255,2,1,255,1,1,1,0,0,254,1,0,2,0,255,1,255,1,1,1,0,1,0,255,0,2,1,255,255,255,0,1,255,255,255,2,255,255,0,2,0,1,0,255,255,255,255,2,254,1,255,1,255,255,1,254,0,1,1,0,0,1,255,255,1,1,2,1,2,2,1,255,255,2,0,255,2,255,1,1,0,0,0,0,0,255,1,1,1,0,1,2,254,255,0,255,255,1,0,0,0,0,1,0,255,0,0,0,1,255,254,1,254,254,0,0,1,1,254,255,254,1,0,1,0,0,0,254,254,255,0,0,254,0,255,1,1,255,0,255,0,254,1,1,1,255,0,0,1,2,255,0,1,255,2,0,1,2,0,255,255,2,1,0,255,2,255,1,255,1,0,1,255,255,0,255,255,0,1,1,0,0,255,0,1,255,254,255,0,255,255,254,2,0,0,1,1,254,0,1,1,255,2,255,0,1,255,0,1,1,1,254,0,1,1,1,255,0,1,0,255,0,255,1,255,255,2,0,255,255,1,1,1,255,0,0,1,255,0,2,255,255,255,0,2,0,1,255,255,255,255,0,2,254,1,254,1,255,2,254,254,2,0,255,1,255,255,255,1,255,0,0,0,1,1,2,0,1,0,255,0,0,0,0,1,1,255,254,2,1,0,254,255,0,2,254,0,0,0,0,0,1,0,1,0,255,254,0,255,0,1,0,0,1,0,255,1,255,1,255,2,0,2,254,1,1,1,2,0,255,0,1,255,1,1,254,2,255,254,254,0,1,0,255,255,255,255,0,0,255,0,0,0,255,2,255,0,0,1,0,255,1,0,254,0,0,0,0,0,1,0,0,255,1,0,255,0,0,0,0,0,1,0,255,0,255,255,0,255,0,0,0,254,0,1,255,1,255,1,0,255,255,255,255,255,0,0,0,0,0,1,255,1,255,0,1,0,1,255,0,0,0,0,254,0,1,0,255,2,0,255,2,1,1,0,1,0,0,255,0,254,0,255,2,0,0,1,2,255,255,0,1,0,0,255,1,0,255,2,1,1,2,1,0,1,254,254,1,255,254,1,1,0,0,0,255,1,0,1,254,0,0,255,1,0,0,255,2,1,2,254,0,1,254,1,0,255,0,0,1,255,255,0,1,1,1,255,2,2,0,1,0,0,0,255,255,0,0,254,255,0,1,0,0,255,255,1,1,1,0,1,1,255,0,1,2,0,0,254,0,0,1,254,255,0,254,0}, {255,2,2,0,0,1,1,254,0,1,1,0,255,1,255,1,255,1,254,0,254,0,0,1,1,1,255,255,1,1,0,0,2,1,2,0,0,255,1,255,254,255,254,255,2,255,0,0,0,0,0,0,255,2,255,1,0,0,1,2,255,1,1,254,1,0,254,1,1,0,0,254,0,0,1,255,0,0,255,1,0,2,0,254,0,1,0,2,1,0,255,0,1,0,0,255,255,1,0,0,1,0,1,0,0,0,0,1,255,255,255,0,255,254,1,255,255,0,1,0,0,0,255,1,255,0,255,1,255,1,0,0,0,0,1,0,0,2,255,1,2,2,1,255,2,2,0,1,0,0,0,2,255,0,2,0,0,0,1,254,255,1,255,0,255,0,0,255,0,255,255,0,255,255,2,0,1,255,0,0,1,1,254,1,255,1,255,0,2,0,0,255,254,1,255,0,0,0,1,1,255,1,1,1,0,1,0,1,255,0,1,255,1,1,254,2,1,1,0,2,1,2,254,0,255,254,254,2,1,1,0,255,0,2,2,1,1,0,2,0,255,255,0,255,1,0,0,0,2,1,0,0,0,0,1,0,255,254,0,1,0,255,2,0,254,0,255,254,1,1,0,1,0,2,255,255,254,0,2,0,255,1,1,254,254,0,255,255,0,254,1,255,0,1,2,254,255,255,0,0,1,1,0,0,255,255,255,1,0,0,0,0,0,255,0,255,2,255,0,1,254,0,255,0,1,2,255,1,0,0,255,0,254,255,0,1,0,254,0,0,2,254,255,0,254,254,1,0,255,0,255,1,255,255,2,0,2,254,1,1,2,255,0,2,255,0,0,255,2,255,255,0,0,0,255,2,0,255,1,255,1,0,0,1,0,0,0,1,0,255,255,1,0,2,0,255,0,1,254,0,0,1,255,0,255,255,0,1,1,0,254,1,0,1,1,2,1,0,1,255,254,1,0,0,255,255,1,255,1,0,2,255,1,0,254,1,255,0,0,255,255,0,2,1,255,0,2,1,1,0,1,0,255,0,1,0,0,2,2,255,0,0,255,1,1,255,0,1,0,255,255,255,255,0,255,255,254,0,0,255,0,1,0,254,254,1,255,1,254,255,0,2,0,0,0,0,255,2,255,0,0,0,1,254,2,0,0,255,1,0,0,1,254,255,1,255,255,1,2,255,0,0,1,1,254,0,255,1,0,255,255,0,254,1,255,1,254,254,1,1,255,1,0,1,1,255,1,1,255,0,0,0,0,255,255,255,255,1,0,255,255,0,255,255,255,2,255,255,255,0,0,1,255,1,2,0,0,0,254,1,0,0,1,255,1,254,1,255,2,0,255,1,255,255,1,0,255,254,1,0,0,0,0,0,0,0,255,0,0,0,255,254,255,0,254,1,1,255,1,254,1,2,0,2,0,0,255,1,255,255,1,1,0,254,0,0,255,255,255,1,0,0,0,255,1,1,2,1,255,255,0,0,255,1,254,2,255,1,0,0,0,255,0,1,0,1,254,1,1,1,1,2,1,0,1,0,254,0,255,254,255,255,1,1,1,255,0,1,255,2,255,1,255,0,254,255,1,1,0,1,1,0,1,1,0,1,254,1,0,255,1,0,255,255,1,255,255,254,0,2,0,0,0,1,255,1,1,255,255,1,0,0,2,1,0,0,1,1,255,255,1,1,1,255,0,255,255,0,1,0,1,1,0,0,0,1,1,255,0,0,0,255,1,1,0,255,1,255,0,1,0,255,1,254,255,0,254,254,1,0,0,1,255,0,1,255,254,1,1,1,2,255,0,2,255,255,255,1,1,1,1,0,255,1,0,255,255,254,0,0,0,255,0,1,1,254,0,1,1,254,1,2,254,1,2,254,254,0,255,1,255,2,1,1,0,255,1,0,255,2,254,1,255,0,254,0,0,254,1,0,1,1,1,1,254,1,0,1,0,0,1,1,0,0,1,1,0,2,0,0,255,255,0,0,255,2,255,1,2,1,2,2,0,254,255,1,255,0,255,254,1,255,1,1,1,0,0,1,255,255,0,0,2,255,255,255,254,255,0,255,1,1,1,0,1,0,0,255,1,1,0,2,255,0,1,254,255,255,255,1,0,2,255,1,255,255,0,1,0,255,1,1,254,1,0,0,255,0,1,0,1,2,1}, } ; static const int16_t precomputed_encode_953xfreeze3_x[precomputed_encode_953xfreeze3_NUM][crypto_encode_ITEMS] = { {-20367,-2838,31933,-26736,7308,6242,10165,-29372,3965,15812,26997,-18658,25862,9041,26179,-24346,28958,10416,29216,-3285,-8697,-10816,-1754,27316,-6955,-5371,20067,-2017,30759,-30297,-22955,-11614,-13491,6878,-537,10868,-30388,-18336,16952,-17489,-7243,11111,20175,18867,26701,-10257,-24517,-10697,10656,-10663,-21708,-14425,-32276,29500,20069,30867,-32037,13695,20795,26495,24863,-26105,-12568,30996,-32421,6834,-3214,11978,-24741,-29426,10985,-8392,8377,-11203,-15176,29168,1073,-1868,-3720,-4364,20842,-21783,4229,-24280,-274,6077,27534,-6681,20359,108,6536,32600,24313,10972,29408,-31819,-25132,-29770,10805,-18861,-1892,8037,24147,24873,-28117,6301,-4890,-27518,-15428,22985,-32056,18911,19620,5642,10366,-26691,-5127,-2052,-502,-24844,-13308,9990,-27173,-21680,-25738,2816,-17526,25649,-5868,15588,-4936,91,-16214,10256,-24360,25670,2476,-6964,-10046,-13186,-19843,-23169,20570,3239,17813,6221,13918,2707,1246,-26378,-9873,1303,10581,16185,-18119,30335,21035,29602,16395,-5493,30129,-7852,-32514,6517,19402,-7406,-27609,-5521,28664,-28290,3747,15625,-25666,14375,-13090,-13110,24221,-11588,-4047,23923,-13646,-28561,-6602,-16709,26394,-8103,29581,-1299,9433,32746,24371,27441,22208,-9231,-22419,30871,-28595,-7489,7933,5370,30695,12149,-2893,25028,-6266,-20830,-15064,-32532,-28792,-15133,11331,-4992,3569,14088,28746,-1338,-31744,-17527,-9423,11,-21103,9215,-21435,-298,-24617,17084,-14787,-12061,-25537,5025,-17365,12124,-1939,16044,-9191,23510,-6537,7661,-31599,-28767,2550,13141,3501,-8271,16604,12388,28504,10945,10131,30176,-24683,-9943,-4758,-30594,8488,15290,18941,-21997,21675,-7314,-383,-32148,4571,-4655,-8094,7069,-3807,6157,18258,-22003,22032,-22760,-19349,24909,22761,-13209,28309,18556,-30729,-24817,-32618,669,10697,31911,15120,13385,19896,-2963,-20353,-26167,26640,23446,15695,16592,-20617,-30098,19010,29136,24238,-3668,-26771,4410,-27383,17239,21775,-25395,-25230,-5161,3124,15053,9598,-12931,7470,22109,-15401,-27871,-3319,-21786,-14656,-13476,4258,1882,28335,-13999,9170,-139,-20110,18299,-30966,-8028,-8901,29234,21491,-28402,-30687,-5505,-4512,9679,17405,29310,-9817,-32373,-10035,24972,26275,15304,-32524,14833,30712,29883,-10411,4567,25700,-10114,6358,30187,28943,24863,15281,-18988,-10212,-25782,4214,-7222,-19233,-23546,-12042,-23862,-12788,-3143,8568,10694,17287,-2489,-8984,-2483,-23489,4409,27454,32317,-23296,489,-21929,-17698,27443,20682,-14487,20491,23745,32362,-24679,-14212,-17650,15724,27368,32757,20277,31420,-16660,5361,-10442,-2058,14972,11869,-8413,19102,29482,6233,8188,-7195,-12604,-23553,-24213,13782,-18207,-4682,15165,12095,-25100,-13777,-30172,14128,-25753,-19913,-28588,-22688,-19468,-27280,12224,-14941,15125,6452,10803,12616,-14368,31513,5040,-8452,-30816,-10587,-31715,30802,-30301,-11454,5843,-9174,-9387,-10498,-23102,-9095,-30357,-1740,-8674,10356,-31095,-30911,23583,-14019,17725,16100,-25906,19149,-5056,-12120,-9372,-4882,-9995,31777,26083,-18530,19781,24687,-22714,-1400,-32570,8104,-5679,-26041,10495,2952,-4222,1304,-18767,11703,-27352,22816,7278,-23737,10175,25540,29422,12395,-791,-5489,-22352,-6147,24982,-30472,101,25763,18910,20895,-5954,9821,-9790,22715,-5383,14665,-13656,-23927,17643,-9810,9699,-26011,6308,-4412,-14073,-24919,20273,29045,-18134,-15128,-27673,-5992,25721,-21149,-17691,-19663,-31495,-14148,1270,-3619,23781,8381,11385,15364,-4572,-303,-22516,10816,-22420,-12404,6147,4925,29607,19287,-29633,32436,-12045,12351,-20950,21818,-16350,26260,25347,25113,-31963,16299,-31985,-18854,31152,-3614,5266,23940,19565,-17388,-6775,13074,13569,-32146,-15976,-2983,-26506,31520,-7740,-3278,24702,24228,8331,-2006,-21975,-385,21666,25511,-6380,-19444,25354,5589,-12226,475,1126,-5975,31873,-10062,7320,-7962,24191,-8112,10261,-9070,-12959,20068,-5040,18403,26378,29003,-31536,5696,12275,-16497,-44,10930,23320,-6780,-17134,8183,-26283,-1587,-18028,-3875,29532,-6648,-25008,6988,-26970,-24327,-617,-19975,-29189,-4634,-12509,-24644,-11991,-11235,30888,-14654,-24913,-5120,-8326,-30317,-19356,-28335,10657,-13744,-30254,665,-16200,7292,14354,14285,18558,950,-7725,12486,-1184,-24806,-3862,4572,-17744,134,-19319,27789,-852,-15714,-10465,32260,-32699,27121,-805,-8339,17751,23480,-5891,-15827,13099,-1285,-6623,-18589,-951,-15712,4437,21250,22754,7434,15199,10328,-31560,-7193,-28104,22037,31078,1997,3276,-3268,-22051,17731,-2992,11232,536,21364,-105,-7331,388,12456,24120,-13162,-8126,18390,-32454,15558,25598,-25383,-8821,22640,-10483,8922,-15136,25822,-29936,15492,-7290,-4997,-20865,13317,-28276,10994,-20720,22419,24478,8069,25243,-30822,-29829,32519,-23061,-18234,10759,-2888,-13537,-15720,-15259,29276,29997,26238,30013,26597,15490,28258,-31512,-3741,-14694,15454,25799,-11511,-15630,-15176,3614,2213,-25179,-80,-32365,-24510,-18265,-30966,-3156,-18146,-4676,-7575,12687,-1808,2637,6102,-10778,17151,-14196,29264,-31167,19309,4166,-13608,29142,27635,-24785,-21785,8425,-1214,-17816,10057,-27176,4068,25032,-8950,-28151,17868,-582,-27561,-19072,-28849,-19614,25049,-6416,30292,12564,-32224,-434,-7493,20710,-23011,20087,17315,25117,-10906,-16937,5588,1511,3052,29593,-9745,2631,25,-24069,-18399,23611,8649,15008,2662,-96,16416,27298,-27574,-22346,-8309,-17930,-17439,-14091,-18485,13464,8335,-18653,-17942,-10293,13297,10164,-29748,-16952,-2824,-899,-24322,-1605,20258,-8775,-16305,12674,-13145,-25082,3249,4918,-21933,-32107,28487,20399,-27391,-736,-559,-7813,-24810,18372,13626,-31056,-4393,-10155,-6165,18735,18779,-13635,22484,-6118,18198,8149,25973,1737,-11757,1400,28327,-8802,30977,-6397,895,-16601,-10614,-22541,459,-26665,-10596,11648,-2707,-3261,-19743,2666,17955,26972,19581,-16205,-18450,-30383,-26885,-24589,-13034,26884,31694,4016,17022,-29589,-2776,25299,-21672,24506,-17503,-14885,-8917,29153,8156,29544,13567,-14164,-30963,-15336,-17435,-15559,11489,-17837,-13199,-21815,6872,-26339,26428,-29569,-32159,27917,31364,-31686,-14847,-1363,1066,-31367,-260,26278,26185,13419,1166,-20518,-29452,-4463}, {-29944,28289,-18072,-12988,31141,16872,18236,26618,-19218,5417,32484,14000,25031,23001,-16113,-16546,7009,10209,24768,21597,-19131,9474,-19854,-26133,-1159,-672,-22747,14468,27059,-5401,-3900,-15742,-10936,-3056,-21194,5354,7887,24989,24118,-9867,2449,18811,-32471,-6300,14454,-27191,29150,17284,-17188,5009,1577,14733,-10438,8783,6809,-23173,25165,12960,-27380,-7319,14695,-7173,6663,-24448,-12277,-10116,-27609,-26842,-18896,10713,-26312,-23054,22536,11829,30396,12169,-28073,-14594,-15986,-18354,16961,-23988,3560,808,-23005,-2886,-13287,-13338,-9625,10949,22563,-16699,31089,-26922,-25674,-22914,-22936,3205,22923,-22655,13707,-10791,5032,-17078,18343,32414,28800,-10030,-29690,-15783,-5062,-31008,-16759,19632,14983,19930,28164,-28269,-17814,-28608,4813,-9890,-27255,3159,-26111,-324,25746,-18440,7388,-7708,25853,11601,19739,8728,-19638,29456,-15243,-14769,-9270,1552,28605,32322,6263,-27566,15056,-15232,17872,-28659,3181,-15912,15538,-1432,1876,16241,20790,32130,31134,-4500,24555,29911,-3691,-5530,6708,-3149,-25131,26630,6989,-12657,-16545,28114,17526,17355,-7991,-2217,-1299,-14495,-27625,16530,25779,-30375,31114,-20529,16384,-16464,-10757,243,-12685,-8963,-1981,30359,-28421,9053,-23657,15222,8138,21885,-23072,16546,-20828,-24604,-17867,19049,22886,20972,-22255,-8747,-846,-14402,31441,12594,12603,14586,-13450,24934,-22449,5867,-10921,6805,30157,-648,-23795,-16167,8506,-24676,7886,-5032,25689,11636,21707,16496,-12508,-21959,22138,20205,25975,14803,-14375,-32616,-4810,-2502,-435,-16420,-16489,-9778,-29239,17534,12070,19044,32739,9839,23726,20074,12608,-25699,-5834,3142,21912,21914,-11135,22306,-29506,11740,23040,980,-7683,-1437,-18063,2189,28256,23309,12275,-30914,-17297,14423,-30733,-16240,-24520,-20570,32685,-4264,5573,28940,-10835,-32249,21535,-13010,24447,24069,-23840,-4,-27955,-7561,-20787,5580,-31284,16541,-32745,24566,-21761,-16737,1950,-23612,16255,-2244,12835,17973,15304,28380,-22880,20440,21878,-25927,-14671,-18523,-23149,-27107,13848,29344,24753,11088,13057,10516,-15331,323,-16840,-23215,-9932,-9305,21283,15925,-11960,14014,7766,-27120,2556,-553,1378,3029,-6647,32757,5109,8233,-20573,-11195,12378,5322,24441,3214,-12517,13340,-1385,26075,-19910,20823,15041,-28211,7079,28019,14358,-1113,-23848,29258,-24424,19599,5192,-225,12446,20385,-23692,-16734,18108,-25414,930,10896,8907,15263,-25884,11309,16384,16439,5974,-25965,-13121,-25369,8668,17918,-31133,4537,-878,-4252,22006,-25325,-8674,-28931,16574,21701,-23022,22769,-29746,14305,-2671,9538,-17556,-29146,-32270,24911,-21398,4260,-19347,-15070,-17399,-9835,32127,19735,7388,27384,4593,1179,15175,-3682,1542,25426,2746,-25395,18021,5705,4430,26473,-31900,-15218,-15877,-19697,-32171,13595,-19171,14666,-23329,-16744,-27211,11060,17129,11184,30261,25843,-12941,1167,6482,-11334,29159,11167,-2711,-32339,-8891,-1420,27953,8980,27031,-17243,8564,19709,-13195,23686,20336,-29069,-11293,-29846,-15038,28271,6121,17540,7530,20924,1185,-20028,6517,9668,-32211,23144,-30525,12078,-8592,-17747,-11969,-32762,-25518,4943,25152,-25754,-13308,14199,7210,-30915,12228,28758,4952,-3138,-5689,-1708,-20508,-13192,8084,-9419,-22914,-16101,-12515,-19601,-24900,-2812,-16507,26641,-32136,17660,-25674,-32318,2692,-16372,4321,-29086,22616,-21734,24437,-5042,317,-10034,-4531,12835,16356,-5078,14409,-6460,-12797,5800,14974,17935,7656,-19369,-24028,421,25371,25781,-2266,-14931,8047,-4805,-30828,14847,-2097,-246,-28244,16261,6078,-3527,-14317,-1523,-20522,18071,-5193,28916,22178,20971,28202,-4199,-3144,-20921,-18445,458,12690,-17527,-658,31046,-3478,-17628,-2554,-31865,27828,79,26320,22309,-32112,-22231,-12238,74,-13757,-18461,24983,31206,4656,-31073,-16501,-21752,-29121,-10112,17780,2555,2106,4427,377,-26566,-32231,-29963,-22798,-22697,-5856,-11099,-6670,24220,5832,6737,-2028,31297,-23626,19485,-4976,24969,8340,-11356,-27528,-8213,-21066,-2716,-31583,-15198,14738,27190,9249,31586,7115,-13251,26296,-26805,13635,30400,-32496,4512,-4358,13479,-3367,-27438,29122,1053,-13415,30509,-14113,14657,-17597,-10075,6779,-7618,12218,-24302,24159,-25157,-6644,-24662,26003,3195,32747,6319,5151,-24321,-27360,-31875,1112,31095,25887,13549,16012,-25091,-8861,-2970,-5406,-22403,20806,-15086,-31151,18215,17460,-16818,17581,-16168,-5797,21914,-29315,-30062,-11860,6485,-16089,18865,-22170,-1828,24519,-5235,11094,11374,18650,-13932,-831,4562,26724,1723,19477,1641,-18118,-21368,7382,9113,-18474,-24158,-6829,16522,-17460,-26820,-12850,-11114,21296,11293,15878,31597,25189,-8365,-12393,16510,21811,30448,-6648,3151,-8240,-30919,-8633,-21661,-9004,-918,-6886,-11872,-27979,-5397,24450,-869,-9650,-8454,-3885,3980,1418,28107,13400,-13255,-7410,8418,27576,21880,-275,-17175,19183,-22367,-25928,-4949,-10286,-6081,-12994,-24406,13616,10895,13247,-26352,16478,-2702,104,3977,-14961,-20616,3361,25079,23748,7533,16788,-30383,-950,-5661,17481,-28008,29492,-7087,12714,-5929,14658,7633,-13098,-3331,9041,-3201,23392,-22840,-10638,-13486,-21806,28914,14528,-26247,-17891,-17172,8193,15481,4571,16850,-14421,23870,12375,23098,-17157,24657,-29377,15396,-23888,-6157,-32669,-13482,-12077,-29248,-20939,-6255,-8320,-1403,8656,-21187,-15572,16705,-1691,8059,29255,-6775,22065,12718,-4617,-23841,24577,24144,19144,26087,-30146,31337,-31766,24104,13599,26214,8550,-11362,15845,-8983,-1822,8002,13062,-2707,25323,25749,-5113,16563,-23277,517,-3923,30180,-17727,-3160,-4883,15166,16362,23194,20912,21204,-15331,-7539,22903,-2876,-13727,-24864,17037,22409,-13624,-16853,16779,-18837,15624,27889,12048,32420,20214,-24044,5412,-16979,15204,17357,28353,10883,13076,-8764,17068,-26277,-269,-21010,5937,15579,-3049,1730,-26420,-22247,-11487,-23971,19006,-7286,489,-8203,19751,11729,3054,24833,8131,2939,-16028,32263,-11023,4266,-30643,19568,-21020,6932,15274,-25843,4567,-2567,28058,-1113,11861,2914,12546,-17501,-6780,-5144,2481,28754,-4937,17162,-5613,-18002,-22799,-18295,-6450,-3165,28275,-25345,21846,-22813,-10015,8847,-16231}, {-8313,28684,28707,-17791,-9800,-11597,-28344,9956,9884,3066,3522,7457,-23293,15901,-1511,-5335,-29778,-31362,-16228,-17513,28317,25347,24063,7953,-21505,10648,-10364,26834,9057,-2254,-10591,6457,28682,-10760,-22247,22668,-25224,18419,-29049,16334,-11830,23847,7917,26503,25955,-22760,-2795,-4681,23902,-28913,8290,19591,30227,18506,17978,-30589,5025,-14066,31991,-25742,28804,3985,26306,30593,28295,32602,21277,7216,-13771,25224,-24283,-31481,-27046,-32044,-18389,-14969,3153,-81,30619,423,7362,30879,25692,7273,-8060,21768,-10771,-29879,20143,17921,2894,-3810,-17767,22133,-10401,-18613,25159,24975,13584,-19727,24646,-7990,19906,26828,22951,28725,-21453,29209,3365,32377,7754,647,-15532,-28236,-4214,7691,-6824,-31984,-19577,17314,-30812,22791,-28460,-4381,-11704,11123,2870,-13779,-13381,-20481,29199,17744,-15476,-9041,-3085,31315,-2341,13662,22942,-8264,-18237,24784,11482,-13643,4465,-25838,10345,-26752,31246,-7562,-4354,16802,8578,-1154,29521,-28700,-11445,-9746,3166,-24306,3369,28732,-28206,-10682,30244,-31246,-5887,8324,19752,15523,-19328,-18153,22336,-4606,2889,31196,-3605,28591,-24322,22099,29120,-7111,-1615,-8893,3993,22614,22565,-8101,11806,23416,28134,4726,23122,3109,-30752,17313,-11952,-25318,-2115,8586,-26598,-21647,6743,28618,-4593,16499,5850,23315,-21207,-4132,23038,-1567,-21507,-19057,17941,-24083,-400,-27516,-10762,-20348,6849,-1265,18651,-2945,19532,28240,-13214,-17215,-2973,4363,-13281,368,-13693,-32563,16731,-28579,-32597,-11171,-7075,7146,-2195,-10133,-4557,-27628,-588,-3236,31428,22002,9892,-10295,28568,-30023,-22355,8588,-8518,28586,6456,-14609,29700,-27791,-7501,5122,11980,23988,13695,28077,-15124,-1140,29115,-16314,-28870,20339,-17602,1164,-5921,-8491,13701,3851,-14764,-3357,-7032,-8097,18409,14807,-9588,21265,8841,-28817,-14537,-15693,-2965,-706,-7576,-15657,-25340,23879,-17660,6705,-28170,-3007,17965,-17181,21300,18630,-17124,-28135,25720,31583,-1110,25604,-9374,32326,26576,-22821,-10016,28077,20997,-2337,3720,7876,7807,-14212,15022,13254,17650,3561,21030,30331,-12052,-3352,26885,8561,-6576,27987,-1823,-24866,15941,27064,-18079,8501,-30396,-10638,-9770,18348,19545,-17949,11460,4912,2382,25249,-20120,10372,-7684,28695,7155,26490,29920,1318,27628,19908,24799,13603,-4215,-22497,9694,7725,422,-232,1498,-18257,-12256,-15015,20760,14184,15856,14834,22160,6432,-7662,-15559,-3274,737,31347,11535,-14802,7129,-15108,29263,-11598,-29593,-4193,-10181,-11287,-29612,25076,-32012,31688,-30655,-2978,25813,1701,27518,32285,2435,20721,9920,25376,-28882,-30647,-7204,12466,-5318,15595,-24714,-30936,20035,13429,27303,-17128,-28782,5747,2872,21035,-17087,-31367,-4523,-13965,-16028,-26592,14249,-21759,-29386,14500,8033,17819,18140,-3072,-15500,23552,-2413,1571,-16912,20852,4592,-25272,-21397,3138,-22790,-15957,-16324,31679,-13894,23996,-17770,31105,-24893,-15061,-4721,-139,3248,7639,16396,-7800,-31799,-23900,9501,4461,-13718,31949,-14917,-17435,9382,-31012,-21860,-26698,-17596,15853,3677,25829,-23308,23373,21641,-29242,-10564,-19262,-16424,-2601,-17313,5673,-15975,-14295,29582,-23285,-15911,-8735,-32376,-6161,-20161,21025,-3670,19662,8759,2126,14869,2724,21351,25287,-12438,16171,-678,32621,31281,-22869,6639,-24119,3545,24517,-116,19618,24601,-11109,13086,-31865,3856,19711,8204,25828,-18275,7635,-29333,2973,8709,-19008,24073,27544,6902,-18726,-28095,30301,-16053,17858,-284,-27434,7277,23289,8186,-32532,18388,-8837,-4208,-7364,26303,-16581,-22533,-21053,-26272,-13102,19824,-9779,-14581,-32197,2091,-22181,-21712,-15639,1193,-10198,-21916,-10019,-29064,32705,-30772,15104,7471,-8221,16357,-32088,-4463,-9067,-10729,17406,18401,13628,30471,-29909,-26264,-18144,15678,9092,501,-17792,-12580,28717,7124,-1263,28517,30299,19984,-20839,-22842,-3870,5758,-5303,20467,18165,5773,-6881,10352,-31081,4142,23721,-8261,-9517,26142,-9872,-30374,-28544,29710,-11403,-15479,6454,-14174,-6805,-20607,-17738,-24939,20942,6687,16676,9475,-12694,-5041,-31732,21690,14885,23183,1918,2380,-29906,-4645,30,26973,-1322,-4753,-27600,-23557,10814,5822,32102,-19320,-31444,-1878,-12752,22259,-10579,-15034,20135,14259,-19591,24412,-17096,19780,5242,12911,-20998,19993,29239,-22438,31758,30509,-31136,-13009,-12607,15563,13804,-4153,29772,7329,30459,-6035,-8996,-30919,-25467,-24917,22194,8852,-9330,17964,7428,15582,-12614,-5453,7589,24868,-27940,-24287,28251,21907,-9487,32037,-25777,28108,13341,12822,5184,14127,31833,-21974,-5724,-14822,-5556,-10045,19666,-21843,4034,-23919,13156,-22374,-4428,-22172,14970,-805,-2444,32240,-11483,-5254,-30937,14598,-18535,21724,-22325,-26006,-746,-23008,15120,5372,-21045,-12014,25232,-4547,-24455,26683,-24028,10946,32110,18754,-14592,13411,-30351,-9931,-8734,16409,20183,8634,-9453,-1549,28536,-30288,22959,6305,-16825,-9610,-4506,-9618,-25514,-32235,15044,-11042,-26550,16975,2586,-28602,-4338,7818,-14586,-4502,-6711,-14502,17351,-14489,84,12401,27528,-27909,-21495,16524,-15528,-2528,12255,7664,-15144,2642,-6745,-31770,12758,-6282,27783,-1284,27796,-2529,13696,-4708,-14171,14354,-29402,23508,27005,12065,3341,24803,-15541,-30942,-10143,4953,-12249,3429,-32321,23141,-13193,2369,-14439,-21155,8712,-8771,14006,-24291,-18960,17517,26139,25822,4854,-14774,-3015,1049,-21793,-1581,-9742,-29341,12238,12178,26469,-17615,20547,-13089,18245,19221,22066,23874,13082,-19357,-29916,4257,10144,-25009,8561,30884,-24954,883,10167,-32214,18620,13699,-25005,22121,-31612,-266,463,-25363,-9254,648,-32399,18151,20527,-28634,-15787,17800,-4838,-17237,-11424,-28722,7398,24224,-12398,-22575,-6614,25531,-3762,-927,28412,-13550,26250,31827,7880,-22786,-21050,-25423,18598,7842,1936,31504,5320,7572,31160,-16920,12666,-3554,8597,29297,-28884,-31280,-20483,4828,377,-26344,-16831,-2823,-27245,-4266,-13134,5181,1349,-16081,20298,12471,20041,27803,-28188,-3548,-6774,-6543,25745,-7966,-1619,-3611,-6974,-2760,14539,4315,30314,7218,-25010,-22450,-2286,-3555,19450,21924,-30465,-30704,20728,-7867,31377,28126,-31584}, {29135,-24802,-21907,-27462,8529,11641,-23318,26056,-8730,-20507,10354,11502,31412,5479,4427,-24572,-3439,-14105,16900,28722,30664,19578,-12276,-9365,-24017,-16886,6200,17255,-23198,-9764,-10083,-2742,-23347,-1703,-20203,20775,26841,11258,9469,-3094,29551,20021,24100,-12568,-29785,7271,4332,13194,2820,26889,-1323,32295,-8716,-21490,-11782,-22115,-25326,20268,-17099,-18925,-9088,-29696,-26471,21559,9613,28698,19891,-19697,5446,32634,7212,23584,-30120,-21168,-4325,-14044,30144,-29709,5576,10237,30948,-25648,10407,17659,-6213,-16541,30759,-30778,-29021,9303,-14770,8850,241,22209,-9939,28928,-10396,-28745,-20130,-14382,4336,-29811,2647,-26211,14376,4113,24885,5875,12929,10991,17711,-31872,1712,25192,4918,19943,884,5958,-27017,25668,-29445,-21468,17906,3745,10997,1476,-14278,-11321,30443,2899,-20955,30114,24135,-10548,-28547,7860,-5091,-24727,8729,9505,-22132,-21379,-6005,-15703,-22900,-22900,-2328,-1307,-8862,4506,-14562,-30352,-2356,-17643,-25855,-12894,-9537,9933,-9392,21379,-7078,-28175,-4201,-24771,7958,17049,-30465,-10795,-4752,-11572,-8488,-6489,30485,24923,-27562,-17457,-4802,-8464,-8709,3837,11146,-30161,29569,-10880,-2341,9874,-3901,-2817,-24631,22173,-20901,6287,19915,-15800,8969,-26865,-29964,18723,-11858,-28373,-4945,-10856,-24647,7186,2703,-23471,-22215,1387,8441,19317,4099,-11539,-17105,-17159,22888,-16729,-22685,2797,20199,-31168,6523,-32302,26335,9237,-11761,28888,17140,-22084,11164,595,11394,8408,26583,-20572,-18772,-21857,6856,8883,-18199,-20730,29084,-6781,-16047,31541,14524,-12480,20418,17103,-27283,3691,-30798,54,20037,-13533,-9968,6930,-2497,24133,3768,-23360,21420,32399,-20362,-32328,16915,255,-15499,24262,11767,5272,6885,-27341,17217,-29146,-7465,-526,21538,21561,-21202,-32400,4781,-19985,-10409,29284,17776,-2685,-5821,28985,8406,30073,-578,26420,1242,-2864,-28747,31741,22676,-5464,-12702,-32406,-32621,-2597,-5778,-3885,16154,1724,-14662,-9422,-1926,3525,12030,15618,-30168,-6817,-21378,3929,-20044,17543,1188,-9935,30748,-26550,11720,2604,-3275,-23182,17474,10846,-1098,6096,-16030,14802,26761,971,11439,-2072,4170,28027,8178,-6135,-18412,28351,-11419,-1872,27646,28876,-4616,-32442,-8872,22854,22640,7699,22298,6689,-24817,-31719,-19561,21355,-22871,10027,-19603,-6073,4398,-19306,30572,-16779,18378,-11764,-30655,15941,12995,-10419,30288,27969,20672,-32662,-11733,20066,-23045,28016,-25865,-18336,-4092,-13460,-17568,-12204,11223,-14981,-26820,31673,-13951,-16169,15882,-21139,-25782,29834,-22695,-15650,30979,-17709,12576,-2171,29294,13410,-190,-15805,23922,-24155,-13751,29871,27973,-18842,5979,12988,-29825,-25381,-12098,27918,7081,12437,30226,-7013,-9057,-16749,4085,28193,-16880,17159,-3320,-7785,-19576,2312,3076,4560,17257,-30896,28871,10761,-756,3803,23111,-27819,-26302,3481,25886,-16290,-28291,7864,13678,-22767,13240,8388,-3322,-32730,-18584,-17667,20472,-20047,-21526,-2815,-6783,-4527,-10537,1342,-15461,25538,4323,-869,22689,-8719,677,27215,3275,-25776,-6586,-4498,24406,-1614,-28782,10535,16521,-28421,24606,17617,18145,-15329,3794,6160,26629,-14026,-11874,-29584,6399,24552,2418,-5430,28766,-30820,23504,-1080,28299,17538,-17159,19795,-30166,-7632,11169,11702,-5963,1575,29766,6004,18352,-1756,-12383,-14161,-13939,-3644,-23518,27506,-17790,24894,2326,-13130,29374,-21240,32651,-20327,30858,-8617,-4768,15012,24670,-3152,13673,-3368,17728,31618,12982,-13640,29123,-22520,-32466,-2108,-15881,21011,1699,-15341,1454,14337,24018,5481,6240,17021,24026,14285,-8986,11665,-29436,-14299,14189,27888,12659,17369,22592,-24058,-3082,27473,-4447,22209,19842,-16907,21536,6601,-26560,-4101,20439,7212,24115,-22232,24117,17631,-22454,-8824,-13010,30568,-21497,284,-21658,13404,28520,13816,3287,2315,-15113,-7806,23345,28945,11590,21096,-30435,-21330,-84,1071,-27198,-25023,-3034,2814,-18096,12849,-11653,20953,24362,-30948,24607,-28214,-18437,24995,7129,26011,-31712,-23893,1602,-25993,-32238,14163,-2299,-28079,-16030,26012,-9326,-7838,-3090,20998,9648,10032,-7861,21974,488,964,17388,1833,-20271,4259,-1802,-20918,-20149,16045,-4924,-3415,-18237,-39,10181,-30875,23872,-31696,-1213,-8051,1170,-57,-3666,-6115,8913,-18878,942,-26468,28651,-3305,-17252,-30338,-3161,-22678,7087,-8916,-5846,17475,32488,7416,8432,23923,-11137,-4405,-26690,-19625,10324,26003,-387,-25106,-9358,-20323,-15916,-10829,-8140,-14979,28075,10955,-17660,-29279,8043,1546,3898,2001,1075,4891,-17742,-31697,31429,-2441,6648,530,15991,18729,22277,15107,15346,12704,2036,18241,16281,-31765,-26082,4173,-20646,7627,30821,14737,-16331,-14725,-3382,6052,28335,-14793,-29809,-5933,-10620,-8025,-12119,-737,-13459,15134,-12401,-8561,-26870,2495,-10791,-14833,19382,28335,-10571,25788,-2081,-3128,-1143,5868,8247,-8435,-9206,16922,21675,-1650,32001,2312,-14384,-29453,6489,4949,4969,-11896,-15264,-15059,-25521,-4789,-12161,30553,1046,-29190,21271,28468,-15143,-23484,13905,8590,28973,12924,-20684,-11614,28351,-5750,13453,-2210,-17905,-12484,-13788,-26746,4643,-9649,260,-1223,9553,-12383,-22556,16017,-6262,-18104,11265,6527,24650,25813,27354,-10869,15225,-6871,32295,-11126,-17546,28846,-23877,12898,13036,29824,-8303,-22318,25393,-17189,-32332,18961,22444,-26229,23849,-30791,2540,-22534,-16049,-15842,24636,-7318,-11834,-26085,-7951,-17452,25912,-2351,25274,5529,19195,5532,22134,26473,-25562,27666,-3182,-12656,3574,-26375,28300,-20861,-14673,-30356,-25905,1503,-22259,-5144,9813,555,4630,-16769,15219,-29560,-23508,-12219,30407,3167,16038,26460,-14398,-17467,7682,-23,-28999,6862,-28915,-17356,-5739,17698,26156,10987,2855,-20643,25661,32527,-26951,28199,-13688,-30251,-6854,-16212,-4821,-15596,9845,22526,-6738,4698,-18610,11372,5288,10739,18448,30635,18222,836,265,-6863,15811,13815,853,18366,22194,-13945,2668,9151,6342,-30949,26651,-14142,-22493,21226,29702,-10126,13682,-3392,-6465,-22846,25583,-857,-12259,20537,9897,14731,-30687,11186,5695,-19943,28975,-15362,-30735,27975,22277,-24498,-21623,-21453,-20375,-24931,-13145}, } ; static void test_encode_953xfreeze3_impl(long long impl) { unsigned char *s = test_encode_953xfreeze3_s; unsigned char *x = test_encode_953xfreeze3_x; unsigned char *s2 = test_encode_953xfreeze3_s2; unsigned char *x2 = test_encode_953xfreeze3_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_953xfreeze3_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953xfreeze3(impl); printf("encode_953xfreeze3 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953xfreeze3_implementation(impl),ntruprime_dispatch_encode_953xfreeze3_compiler(impl)); } else { crypto_encode = ntruprime_encode_953xfreeze3; printf("encode_953xfreeze3 selected implementation %s compiler %s\n",ntruprime_encode_953xfreeze3_implementation(),ntruprime_encode_953xfreeze3_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_953xfreeze3_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_953xfreeze3_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_953xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_953xfreeze3_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_953xfreeze3_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_953xfreeze3_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_953xfreeze3(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953xfreeze3")) return; storage_encode_953xfreeze3_s = callocplus(crypto_encode_STRBYTES); test_encode_953xfreeze3_s = aligned(storage_encode_953xfreeze3_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_953xfreeze3_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_953xfreeze3_x = aligned(storage_encode_953xfreeze3_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_953xfreeze3_s2 = callocplus(maxalloc); test_encode_953xfreeze3_s2 = aligned(storage_encode_953xfreeze3_s2,crypto_encode_STRBYTES); storage_encode_953xfreeze3_x2 = callocplus(maxalloc); test_encode_953xfreeze3_x2 = aligned(storage_encode_953xfreeze3_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_953xfreeze3 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_953xfreeze3();++impl) forked(test_encode_953xfreeze3_impl,impl); ++test_encode_953xfreeze3_s; ++test_encode_953xfreeze3_x; ++test_encode_953xfreeze3_s2; ++test_encode_953xfreeze3_x2; } free(storage_encode_953xfreeze3_x2); free(storage_encode_953xfreeze3_s2); free(storage_encode_953xfreeze3_x); free(storage_encode_953xfreeze3_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_953xint16.c0000644000000000000000000015466614705505543022766 0ustar rootroot/* ----- encode/953xint16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_953xint16_checksums[] = { "b85dffbe410d5d88bd60d7ea927e051ce0795e26b2524a9e8abefda128a92e7e", "7b1c952f6e7c01227dbbe8e0418cc4d5ea1860eba1f27166cdd9ba5af60586f9", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_953xint16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_953xint16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_953xint16_ITEMBYTES static void *storage_encode_953xint16_s; static unsigned char *test_encode_953xint16_s; static void *storage_encode_953xint16_x; static unsigned char *test_encode_953xint16_x; static void *storage_encode_953xint16_s2; static unsigned char *test_encode_953xint16_s2; static void *storage_encode_953xint16_x2; static unsigned char *test_encode_953xint16_x2; #define precomputed_encode_953xint16_NUM 4 static const unsigned char precomputed_encode_953xint16_s[precomputed_encode_953xint16_NUM][crypto_encode_STRBYTES] = { {142,66,99,203,191,57,39,173,13,9,248,209,40,43,242,50,201,126,61,105,54,114,146,173,59,165,226,217,223,238,35,15,145,184,25,164,78,150,123,199,82,1,80,235,255,61,6,233,47,56,171,2,15,99,166,26,98,99,241,167,102,139,30,107,183,48,216,115,237,239,120,195,71,67,221,131,105,152,86,93,41,39,121,140,36,242,149,36,64,54,228,68,245,206,21,49,81,223,95,221,230,179,142,176,110,209,7,30,29,133,223,77,155,112,30,253,50,68,245,167,217,166,67,24,186,170,158,158,218,226,113,109,31,148,154,83,157,219,209,194,129,140,75,191,56,174,132,251,212,226,160,135,181,153,181,51,91,211,35,45,243,103,171,58,223,29,29,109,189,13,117,231,218,156,188,134,152,16,249,237,32,63,185,112,117,49,208,48,20,217,211,56,134,212,92,98,63,19,143,172,174,191,87,197,14,85,220,166,19,251,212,204,122,73,164,84,20,162,90,22,99,48,220,163,228,132,249,225,232,86,1,169,126,94,169,103,148,158,180,223,199,227,177,78,125,153,252,220,11,252,12,98,49,77,94,214,45,2,223,120,197,106,101,19,157,227,162,158,166,15,222,233,7,56,131,40,157,110,226,113,144,153,194,241,26,37,141,149,89,198,90,83,115,94,44,39,218,103,81,175,72,230,156,137,84,27,92,159,196,17,20,185,174,216,209,197,157,54,124,184,2,185,53,240,213,156,8,201,30,119,163,236,210,241,30,212,147,207,139,43,235,186,98,44,167,103,182,89,207,158,94,105,1,81,135,204,106,111,148,30,25,231,192,41,139,99,241,124,178,180,19,54,24,135,230,81,97,24,47,14,44,125,178,182,67,224,193,215,78,106,23,92,42,130,60,46,23,119,240,121,236,138,79,128,65,80,209,14,16,106,158,251,64,9,223,253,182,208,167,232,32,11,99,198,195,194,26,87,243,252,240,10,136,177,59,223,192,97,248,57,95,118,15,161,170,244,35,39,104,184,206,250,28,190,107,82,72,23,86,136,177,50,5,249,128,103,229,245,112,9,184,55,99,143,252,161,75,240,230,69,44,151,13,235,204,74,245,92,170,81,227,159,142,2,202,25,101,51,232,113,18,131,63,3,214,190,210,166,13,41,211,54,101,228,167,92,150,229,138,147,219,254,168,87,72,111,189,147,17,82,205,88,164,224,5,139,200,103,41,130,156,142,51,134,161,135,196,207,196,51,78,2,220,68,36,173,145,213,218,101,167,218,188,94,190,58,198,235,181,198,144,47,105,109,192,48,162,144,154,108,169,193,92,245,12,55,112,13,41,255,238,205,243,13,147,183,75,213,7,57,39,45,102,111,58,191,57,183,188,202,40,23,203,103,129,229,247,230,245,25,55,156,54,1,190,98,247,124,28,11,154,184,195,203,239,32,68,83,42,222,152,72,158,184,203,60,149,204,218,178,11,128,203,138,85,246,143,84,122,246,171,125,222,235,147,53,150,136,191,51,67,187,26,220,219,115,77,33,79,20,167,235,10,34,253,216,157,118,38,91,118,129,240,46,142,106,240,83,90,57,93,85,21,1,22,138,33,232,55,227,32,56,153,12,182,65,196,86,101,215,158,145,253,16,5,33,128,145,162,220,154,205,156,161,203,240,135,214,246,89,206,174,57,181,124,107,111,200,243,221,79,209,123,223,161,50,77,108,65,119,1,83,176,241,165,124,74,80,59,94,52,107,65,193,191,136,202,151,244,128,55,194,17,230,19,120,223,121,107,253,121,90,5,139,207,205,247,77,143,159,20,199,129,30,124,184,175,228,67,115,7,192,96,28,232,12,106,92,27,99,204,247,40,237,59,46,246,134,197,82,28,233,78,66,203,182,32,27,193,71,64,20,182,125,72,53,175,216,205,85,172,77,196,58,117,14,78,172,53,82,156,156,177,136,228,174,197,84,162,38,80,247,134,196,131,229,135,214,6,41,115,234,10,213,77,183,13,10,95,254,242,111,96,223,91,40,62,127,184,145,88,102,198,200,149,195,96,110,106,184,235,117,51,40,69,7,94,186,105,109,26,51,182,195,223,238,191,60,189,118,46,246,129,151,14,201,202,213,234,81,165,114,219,238,116,250,52,77,17,119,177,222,71,82,199,93,0,199,247,98,236,176,238,32,221,226,29,172,45,186,14,202,152,242,83,169,167,163,98,58,134,143,162,176,29,24,24,131,167,1,18,32,240,125,75,154,96,16,64,144,102,49,166,132,38,239,51,24,74,114,13,230,20,71,89,76,209,200,23,48,158,29,5,157,56,154,255,113,121,3,141,229,150,81,93,101,181,208,81,217,215,250,236,152,120,216,108,203,140,202,84,190,11,3,116,164,28,167,180,220,167,33,255,80,72,199,23,247,115,82,253,90,244,209,51,120,243,167,11,71,135,206,207,61,227,24,53,43,201,176,69,48,97,133,105,121,237,189,38,173,38,47,192,219,159,138,73,47,38,241,206,147,149,174,129,55,53,188,103,86,223,219,146,185,113,172,248,195,10,172,97,61,135,22,53,148,81,94,128,129,252,216,67,20,182,239,229,254,22,114,0,4,234,255,0,3,219,134,228,160,130,90,49,171,54,86,88,90,144,44,111,145,117,113,64,137,72,82,76,127,182,182,41,131,46,36,100,65,237,233,80,72,155,94,204,142,234,253,126,59,133,7,149,87,193,251,141,200,19,147,68,27,17,68,94,98,229,64,3,218,122,70,54,9,196,142,12,226,94,37,251,35,50,126,83,132,198,24,36,214,140,235,238,145,12,103,107,22,18,1,106,105,156,89,234,47,186,27,208,151,253,199,180,84,25,125,151,204,134,157,94,89,238,88,28,81,197,244,17,74,107,25,204,204,40,115,87,23,42,122,9,137,21,212,246,189,79,129,125,163,162,160,14,206,36,79,61,141,151,106,210,233,76,163,41,177,106,253,23,175,6,225,89,81,40,158,157,60,206,75,118,182,184,205,110,183,180,76,120,201,225,125,223,55,28,19,104,182,171,51,202,195,39,229,132,195,73,185,92,177,21,255,25,42,137,47,62,29,8,21,54,210,73,99,80,133,1,133,84,120,65,15,220,115,239,126,239,55,18,107,78,249,85,63,205,73,24,45,202,73,254,81,94,96,184,177,131,28,212,98,64,180,138,158,117,219,240,134,248,163,140,18,29,214,188,28,98,144,228,164,239,10,141,159,191,118,123,161,46,150,54,28,37,67,109,177,45,88,199,44,209,230,108,51,230,108,171,130,155,150,217,166,159,210,156,186,71,137,37,192,26,169,32,114,123,169,204,7,75,2,246,248,55,31,130,231,207,151,46,199,215,24,115,207,60,52,127,215,245,204,96,167,152,244,186,121,12,85,141,8,95,129,239,66,9,98,82,255,197,111,7,131,214,44,78,158,208,137,10,158,167,56,165,153,162,22,179,98,241,144,186,248,68,66,102,228,184,78,118,214,94,216,236,37,219,242,92,138,96,58,180,24,171,180,245,13,50,252,39,121,11,204,85,119,68,142,212,247,39,70,126,190,238,116,163,216,80,201,141,45,39,21,219,120,236,87,113,240,26,247,161,32,68,3,112,151,38,114,126,219,134,63,108,219,35,188,98,182,235,244,175,254,182,55,250,91,156,219,196,34,142,164,41,35,57,251,234,228,222,137,173,57,57,121,111,217,4,69,50,117,239,132,125,92,243,96,230,213,225,133,230,106,162,47,158,68,226,228,98,217,141,190,80,87,250,254,100,226,29,33,223,181,132,99,116,33,141,57,59,46,71,245,158,150,59,62,19,180,124,193,249,48,97,234,23,20,168,202,242,241,91,212,199,156,131,117,153,19,74,107,110,60,113,233,83,96,90,31,12,101,9,235,110,76,90,180,68,240,79,67,66,254,142,132,50,101,204,226,216,146,107,198,251,19,8,158,216,161,35,177,43,111,209,130,4,99,151,6,142,16,51,110,148,226,198,225,144,218,82,26,148,179,166,124,9,224,161,159,253,219,134,243,74,159,11,103,82,200,45,155,147,170,58,85,11,75,249,82,6,138,124,149,147,159,147,75,26,220,122,209,78,198,66,227,161,194,162,6,242,81,143,37,226,24,64,122,8,198,62,163,74,234,124,86,235,253,91,72,123,90,184,218,71,69,159,193,101,224,63,144,240,21,44,135,89,134,163,177,247,251,63,6,221,114,192,54,63,199,54,212,215,52,204,47,5,135,35,45,171,166,45,96,188,170,66,105,101,109,163,156,161,50,254,83,73,164}, {89,2,151,167,27,28,67,100,35,187,55,117,75,75,177,104,103,47,15,11,177,71,116,236,18,217,32,157,58,159,118,106,8,13,192,101,72,222,24,104,162,54,34,125,107,164,134,57,97,182,164,25,96,147,197,119,51,41,101,55,154,197,244,60,90,18,64,52,144,76,66,121,69,30,213,206,3,33,20,95,148,20,246,35,44,103,111,84,104,44,181,169,18,71,254,161,34,151,175,3,68,91,254,128,92,162,26,190,33,117,54,16,99,107,252,210,121,201,97,115,126,180,240,39,243,108,65,10,110,166,99,15,194,92,182,173,69,31,28,80,96,157,209,133,225,11,183,91,24,107,141,109,46,224,110,206,74,72,45,176,216,69,178,185,164,229,245,13,236,152,22,0,168,89,231,129,78,243,52,186,175,222,111,114,109,227,185,239,179,197,232,103,175,13,229,29,40,247,244,209,96,106,147,13,95,56,255,44,109,193,112,22,253,244,48,191,59,206,114,217,167,90,150,172,191,203,18,38,216,133,15,238,205,68,187,27,62,83,148,121,57,183,104,161,70,210,44,40,172,154,102,118,195,198,98,191,188,6,22,247,72,55,15,179,218,217,241,56,44,84,153,203,164,176,244,232,243,237,53,88,100,79,127,167,221,234,181,14,111,232,195,215,205,91,252,68,34,36,23,138,253,48,111,182,109,35,92,247,189,132,8,72,233,159,51,204,142,220,45,3,19,216,39,154,185,79,246,49,151,181,108,141,120,235,220,235,195,155,2,216,76,210,252,233,51,146,142,155,41,58,100,79,174,64,169,62,44,100,3,6,194,196,6,200,91,164,159,159,0,159,251,66,9,15,84,76,247,33,111,170,97,40,156,134,133,199,250,114,83,116,185,255,21,182,142,208,55,116,131,81,57,10,84,60,130,89,219,225,232,48,77,160,160,89,51,203,166,150,39,178,203,75,162,20,155,216,132,120,232,151,4,40,142,24,63,198,185,16,222,153,194,7,118,169,83,252,160,81,150,63,106,117,7,77,43,15,209,4,28,247,211,118,71,104,216,131,203,39,160,25,4,78,49,10,69,63,246,193,240,104,71,102,59,145,184,170,102,81,103,83,93,40,142,78,56,203,217,135,235,67,216,229,201,140,168,226,28,61,215,111,146,220,172,74,66,12,37,45,153,189,195,90,251,193,87,60,75,193,239,107,5,174,209,210,255,22,74,154,231,45,185,138,245,234,189,70,131,30,219,114,11,186,178,177,194,167,166,144,90,51,155,40,170,147,9,60,15,130,159,7,79,127,16,75,134,119,38,165,81,161,102,250,0,148,190,36,213,50,42,223,59,70,83,74,231,92,122,51,160,143,62,241,157,227,80,35,232,224,96,100,152,18,132,15,141,2,252,252,157,91,155,22,90,56,187,211,130,164,49,3,110,91,93,207,56,94,211,255,14,8,122,129,1,12,168,206,250,65,134,203,197,243,201,136,62,56,186,97,121,133,236,254,47,50,171,39,240,118,141,55,44,71,249,250,66,130,119,212,137,123,48,86,216,9,221,238,25,153,67,89,28,205,102,237,59,18,111,88,12,230,214,172,126,143,55,197,11,6,205,49,151,156,93,146,47,103,7,76,55,52,189,242,189,158,188,24,236,244,199,28,246,19,106,141,170,193,32,179,83,143,125,233,195,12,5,247,41,232,74,126,94,155,188,245,244,50,19,211,50,162,67,189,18,105,186,60,43,25,189,181,121,51,230,162,214,72,112,126,121,57,141,80,126,103,24,67,137,161,171,82,131,10,160,51,46,24,112,56,96,60,160,167,38,73,241,18,2,155,205,217,250,55,21,46,231,143,218,230,129,103,42,221,165,231,226,45,246,28,107,172,54,67,32,68,138,208,121,211,37,232,182,7,135,202,76,81,233,14,117,151,18,128,123,49,224,163,121,229,43,161,126,125,194,64,102,199,202,200,205,133,221,129,62,173,148,225,14,130,228,200,217,24,225,11,243,187,126,244,9,186,201,180,28,137,6,240,3,101,163,80,2,153,19,10,130,123,199,213,73,21,11,81,163,215,128,103,63,85,90,145,81,34,65,25,119,13,42,43,158,97,4,79,93,215,22,130,207,118,139,172,137,11,136,134,234,38,235,188,247,214,51,198,126,248,153,139,104,163,69,6,40,234,207,158,211,34,11,59,102,232,55,100,110,249,156,171,252,186,105,221,133,237,17,36,239,194,198,91,213,54,128,81,247,84,174,143,103,36,191,12,48,176,157,232,18,113,131,61,36,189,24,67,208,36,211,174,46,172,167,18,132,254,63,101,197,254,233,4,156,113,71,140,201,122,171,70,237,132,118,188,179,66,112,157,150,25,109,188,130,206,176,66,219,60,10,240,202,20,182,62,176,55,232,16,95,139,221,236,123,228,199,161,12,96,109,63,224,199,186,182,56,193,116,97,71,1,158,73,182,137,181,82,88,14,113,232,244,140,203,115,201,9,177,92,206,69,184,156,41,54,147,165,187,213,237,84,213,213,85,24,173,148,50,185,222,35,253,236,190,162,9,16,161,45,39,202,187,202,24,104,254,176,240,172,66,88,120,32,116,192,124,126,232,139,189,5,53,138,211,65,37,195,100,102,108,155,82,112,183,235,6,0,241,225,194,167,189,176,82,220,149,250,180,239,250,205,46,86,246,243,169,108,44,231,177,140,145,35,209,33,189,134,81,242,157,27,232,84,194,162,40,160,61,214,241,206,141,83,96,239,24,120,66,155,161,164,165,154,215,245,235,222,78,72,41,119,60,33,210,8,95,158,165,100,18,97,156,94,100,149,79,228,49,239,196,188,40,41,34,178,62,171,12,253,57,66,126,29,231,131,249,228,150,63,161,50,51,154,43,46,25,51,130,52,73,200,19,242,19,54,51,45,174,186,15,59,49,104,196,123,6,187,238,81,151,148,48,145,159,123,41,81,250,227,107,127,240,248,105,74,207,159,217,175,191,216,109,231,231,181,204,149,156,184,180,241,231,153,210,184,133,111,69,69,236,37,179,207,238,169,77,236,79,149,193,173,187,25,250,175,106,134,150,92,134,108,151,62,146,210,128,9,219,152,228,218,53,67,64,69,207,73,212,53,182,240,179,229,195,31,15,224,102,183,153,214,29,222,69,43,119,138,231,133,49,236,231,86,79,34,44,226,239,175,141,69,121,211,235,255,241,11,34,169,181,67,79,55,201,119,107,245,56,228,13,152,91,185,107,134,78,115,175,88,195,82,219,199,174,106,172,33,25,245,200,96,207,38,10,64,85,5,2,12,240,241,19,219,89,222,89,59,129,182,199,135,252,22,205,70,159,167,140,117,1,186,13,197,233,233,26,245,208,152,147,228,32,245,82,160,99,56,79,148,204,217,76,204,199,132,44,199,222,234,170,97,158,86,16,31,0,218,58,195,246,30,224,77,80,12,202,11,152,169,195,218,142,161,171,34,84,126,9,127,177,94,86,61,183,18,222,232,123,166,38,176,117,159,87,179,230,240,249,181,79,132,53,71,209,71,77,83,39,211,195,232,243,230,143,143,191,68,104,129,148,253,76,172,116,33,65,93,86,192,251,52,242,220,35,38,36,123,203,127,50,74,148,224,172,253,249,190,89,73,65,202,74,43,167,45,40,120,169,24,58,140,19,166,182,26,81,138,172,97,197,177,77,34,11,149,14,63,3,109,236,130,169,191,95,108,32,246,183,75,78,116,48,70,24,90,96,236,186,137,11,194,221,70,196,23,139,123,168,220,102,235,6,230,31,86,137,83,188,255,19,68,10,37,78,11,186,229,245,65,107,70,146,32,225,173,40,17,58,142,92,217,94,206,105,55,214,13,78,1,48,86,253,20,156,53,245,45,223,176,218,60,99,81,231,231,80,2,106,182,234,175,185,110,234,15,21,224,33,80,95,119,231,201,221,199,79,161,25,198,230,121,104,85,221,137,185,102,1,99,45,233,141,174,11,22,57,186,228,119,24,225,154,120,198,251,41,16,255,238,112,113,65,142,233,117,127,69,212,84,11,103,53,161,204,23,133,137,197,53,18,14,115,33,134,62,11,243,118,77,17,171,243,183,241,117,70,161,38,147,129,54,212,4,102,175,213,236,102,204,188,86,99,209,200,105,17,166,148,56,163,122,249,151,147,2,219,11,74,25,63,75,255,233,137,226,180,184,85,176,164,163,71,38,52,43,200,34,9,52,61,93,184,77,173,139,122,26,22,107,173,212,155,198,29,107,181,241,1,11,14,155,68,140,146,64,7,149,101,100,126,202}, {10,233,25,94,153,250,69,92,240,57,200,35,170,59,124,178,142,4,126,113,87,168,248,73,18,245,223,115,74,141,130,25,90,154,246,145,105,198,169,211,255,139,143,250,151,6,236,179,121,99,232,31,108,10,47,247,179,6,204,60,107,2,198,162,223,173,170,174,45,212,73,83,159,101,211,147,166,95,238,95,223,54,94,177,88,163,18,201,222,87,96,53,134,217,108,178,165,227,241,249,1,189,69,90,166,216,67,112,228,174,123,169,53,14,138,132,27,195,35,32,141,47,67,8,100,188,45,241,226,158,205,51,78,238,123,160,139,234,100,112,148,16,63,34,222,19,139,68,229,169,48,165,207,117,76,31,219,164,144,28,242,185,8,2,81,121,192,142,38,66,139,126,76,125,2,7,171,234,164,180,4,126,100,150,28,127,91,176,34,98,133,214,28,197,148,54,198,220,168,100,7,166,232,228,93,199,119,109,86,13,102,84,227,107,71,242,23,242,19,129,53,194,211,108,3,193,228,170,114,237,204,139,200,84,255,87,223,182,148,101,211,200,113,194,201,112,33,63,95,8,190,26,162,198,1,55,143,225,53,65,245,28,200,247,68,236,171,151,5,21,208,149,202,131,155,22,124,77,149,201,168,214,45,210,127,154,167,138,41,31,16,10,181,5,9,23,224,23,23,126,215,136,225,148,171,1,36,31,227,179,23,215,64,104,10,68,245,206,233,250,193,171,129,68,231,224,197,148,21,218,238,75,4,250,232,99,43,185,161,56,171,228,243,204,210,134,110,124,124,72,130,170,137,250,228,234,101,129,90,160,225,218,0,185,195,68,60,181,204,25,56,179,56,113,154,58,43,31,255,201,150,38,209,56,183,111,200,246,49,196,51,170,49,177,243,189,29,142,132,149,243,49,226,6,103,172,173,58,215,250,213,48,186,142,222,135,205,53,67,135,197,1,94,119,214,53,147,170,181,106,194,54,215,223,197,243,101,178,193,204,167,16,134,221,205,115,70,178,116,47,209,92,20,69,59,94,7,215,49,209,49,30,178,53,92,251,35,122,112,216,121,167,79,18,232,250,254,84,128,167,207,79,242,9,128,132,179,16,216,198,118,246,164,41,1,222,249,36,249,29,24,118,55,181,70,6,118,112,198,148,98,135,135,176,99,33,169,55,144,54,243,57,151,179,192,50,85,30,84,56,70,158,64,252,123,65,230,77,33,187,81,63,54,31,26,128,166,134,121,54,109,96,195,155,30,245,95,151,167,230,228,216,140,42,137,119,95,91,254,57,44,92,240,116,119,227,189,231,53,55,195,119,17,117,223,14,91,239,80,172,146,34,204,12,154,140,205,157,159,244,38,150,88,37,219,78,70,11,232,223,85,218,1,161,89,136,183,195,117,188,175,243,223,40,184,68,85,26,93,197,235,125,208,195,80,135,124,5,152,171,200,118,5,213,68,131,140,43,159,59,159,149,62,105,105,92,212,130,126,100,82,249,35,48,24,43,211,5,67,138,139,43,59,45,91,32,173,81,65,99,109,181,47,10,71,55,72,47,187,80,134,152,162,139,183,95,187,199,245,66,232,128,122,201,58,156,60,254,94,137,141,126,125,136,151,66,139,74,25,6,63,12,180,73,40,114,11,68,48,240,72,40,225,14,239,228,94,245,23,159,221,62,208,157,235,166,187,160,204,219,203,171,53,180,50,238,225,72,164,248,200,62,26,22,91,235,61,32,227,93,26,48,237,186,3,235,238,3,51,187,130,30,208,23,186,187,128,92,137,106,60,237,25,21,217,10,106,84,219,42,244,60,145,10,226,121,92,21,39,240,177,229,114,117,201,242,0,142,29,66,91,211,234,235,72,222,238,181,12,11,220,3,165,119,123,21,18,234,210,78,209,169,74,24,78,178,176,205,170,254,103,63,209,46,101,154,119,6,223,45,83,31,77,212,247,85,130,206,43,112,149,2,68,156,197,180,103,243,211,51,158,67,116,148,18,94,153,89,170,136,113,115,78,251,162,231,109,229,133,19,66,11,94,239,190,49,36,235,140,124,166,124,178,93,14,62,211,26,170,23,20,156,105,120,115,177,71,86,118,163,251,248,156,134,78,196,144,88,130,160,14,48,75,85,17,241,86,65,199,28,92,94,183,1,44,169,221,10,201,136,148,43,112,227,94,52,198,85,68,190,7,35,22,4,197,195,48,151,37,186,218,18,50,158,88,212,193,149,151,64,155,135,77,99,209,187,70,223,116,13,180,79,228,225,67,226,241,182,102,232,186,242,89,170,20,96,114,48,213,172,9,29,80,191,143,139,112,131,238,198,12,193,107,16,223,253,126,192,197,17,66,145,105,50,74,116,41,114,38,40,98,248,98,168,141,200,190,236,47,174,255,105,158,226,103,31,33,225,25,151,58,123,230,12,74,210,99,154,112,221,25,61,240,213,118,139,203,154,60,242,34,191,193,240,173,33,43,131,235,212,62,32,198,113,95,78,38,83,7,188,113,134,255,143,17,16,54,218,138,47,125,22,81,108,94,49,68,8,69,72,27,246,198,200,230,89,180,162,1,61,145,150,150,56,151,167,33,203,160,239,17,51,79,0,7,218,187,134,209,152,214,178,97,255,112,235,28,71,35,78,236,128,12,60,182,68,103,16,59,221,179,50,200,130,81,50,181,57,241,20,208,26,250,167,234,228,28,252,149,196,34,81,4,134,58,222,167,43,57,192,16,109,121,43,214,29,40,34,248,71,152,168,148,168,95,125,250,115,134,105,100,159,167,221,145,29,229,190,106,48,52,184,213,102,200,84,26,99,186,131,101,138,17,19,67,191,178,181,125,87,133,242,208,4,7,122,130,244,22,103,85,153,221,110,116,166,45,188,226,179,6,173,4,40,121,60,250,158,151,152,184,155,212,52,119,214,228,62,82,81,186,173,151,133,220,44,23,40,117,206,78,62,125,212,209,180,3,241,109,252,67,81,173,91,159,142,66,113,116,78,100,233,11,253,89,19,201,170,147,10,251,117,147,226,242,144,78,246,63,22,138,177,45,205,10,209,125,249,149,253,15,209,228,186,250,16,72,183,119,153,211,234,141,166,32,60,23,56,37,92,144,135,215,170,138,28,11,118,225,95,22,23,64,200,31,107,155,16,101,112,161,249,12,38,65,125,147,205,113,193,144,157,192,228,134,226,212,22,142,88,211,128,127,18,55,5,250,101,140,198,59,235,233,114,16,29,160,158,141,38,106,36,131,121,113,62,216,13,160,178,76,210,152,170,152,182,164,241,91,224,94,252,34,61,144,89,222,171,153,110,218,159,63,59,80,111,79,165,210,124,192,1,87,140,114,79,214,249,110,15,210,220,115,194,70,195,193,76,199,153,112,140,74,121,176,116,102,201,77,64,188,241,116,246,144,211,132,110,201,213,88,140,198,124,79,87,227,219,181,193,58,57,223,167,179,177,149,5,255,106,198,143,15,27,139,189,187,163,151,36,161,213,56,123,155,2,50,23,252,14,206,24,215,34,161,31,0,118,37,101,185,63,232,74,183,183,155,175,211,120,10,94,47,39,250,78,240,166,81,83,14,229,233,74,36,24,246,68,14,232,23,52,58,25,86,23,213,169,190,138,173,96,72,22,242,59,188,238,25,40,212,103,202,244,210,37,60,184,60,249,176,1,205,6,67,231,250,128,183,185,55,199,187,7,49,30,156,242,43,164,159,141,132,10,46,198,223,246,70,130,65,72,91,92,40,9,116,161,152,180,252,236,91,209,66,115,116,243,208,224,22,194,113,76,192,142,198,53,16,227,108,56,21,191,47,139,104,163,232,141,184,170,199,189,220,159,238,255,251,44,5,168,184,46,124,95,89,194,252,88,174,3,36,254,179,195,139,84,233,179,77,113,20,211,146,79,0,133,138,123,38,113,116,207,194,181,181,162,19,33,176,70,239,39,134,174,174,5,96,67,182,94,239,94,96,51,19,155,235,19,201,226,2,194,57,93,193,171,163,113,214,88,160,167,17,176,243,50,161,4,185,2,182,111,122,46,227,226,232,114,224,56,59,185,200,90,149,56,101,99,102,180,9,150,57,228,74,218,160,190,121,197,0,186,9,21,142,117,179,19,213,87,3,74,123,79,75,195,25,105,46,72,182,230,216,195,247,12,187,199,0,27,66,57,32,151,41,64,57,87,84,218,233,224,206,191,179,7,101,203,55,226,50,135,184,67,191,211,205,173,191,87,58,35,159,92,169,40,141,88,233,98,190,71,4,48,177,240,230,227,124,144,75,11,49,253}, {178,231,220,79,153,97,241,100,186,226,232,64,216,239,166,114,237,99,34,14,85,61,252,36,172,183,109,201,127,170,4,38,49,84,102,240,101,83,65,122,218,70,62,49,171,206,147,4,74,160,132,36,245,93,219,211,101,187,186,187,27,31,162,3,160,148,120,116,133,129,154,174,173,132,13,154,130,52,191,143,133,18,209,25,86,170,141,65,50,65,48,220,22,45,82,138,1,190,226,215,118,160,114,8,193,244,132,37,228,99,155,192,138,81,227,84,188,170,55,147,211,114,206,136,65,82,147,186,220,18,190,95,91,31,164,207,163,130,59,60,98,153,29,1,33,59,126,236,165,243,34,196,21,152,237,55,112,14,236,173,231,160,225,222,211,153,30,66,19,51,50,122,233,135,141,78,194,23,69,39,165,245,73,91,213,38,0,249,113,54,197,35,60,10,76,52,218,167,86,18,129,118,73,130,222,175,37,44,210,207,212,62,115,14,155,100,233,155,179,215,38,58,71,185,36,116,159,224,155,178,158,64,10,192,153,210,73,151,208,6,252,46,197,196,207,214,219,179,107,30,105,164,140,242,23,0,72,95,213,97,40,146,219,11,199,37,186,176,73,127,194,83,31,73,19,103,59,97,225,82,34,233,244,219,173,1,230,81,196,76,104,209,16,137,25,189,40,122,176,218,49,186,241,189,227,180,69,165,58,56,102,129,43,161,36,132,69,208,94,240,93,250,85,244,196,227,215,14,181,93,234,82,102,15,104,87,111,229,163,64,152,136,171,203,129,113,98,114,248,122,68,156,177,116,5,90,27,68,171,186,253,88,216,102,101,210,93,58,120,135,14,24,105,21,23,132,242,76,159,85,100,255,89,134,40,48,168,75,183,224,198,223,110,70,151,59,92,95,142,215,151,161,126,154,105,58,26,199,134,190,47,101,121,142,176,60,167,37,141,116,221,54,91,233,251,68,110,116,134,124,247,32,101,33,113,19,99,94,232,214,199,220,84,153,220,196,185,19,169,62,151,213,75,214,3,236,145,247,143,4,49,141,247,190,13,207,96,147,68,9,242,125,65,130,147,27,13,119,242,98,17,220,25,171,189,19,168,47,114,109,156,124,198,64,254,161,142,161,201,6,53,73,249,241,125,86,107,154,252,148,33,192,149,144,108,176,19,133,26,164,172,51,125,194,28,67,83,246,61,107,238,195,130,36,206,34,227,212,68,167,105,4,164,15,10,135,194,53,195,174,54,172,233,255,175,235,32,234,230,32,23,51,239,130,204,143,6,202,58,44,116,107,22,89,86,237,223,43,97,245,141,225,82,155,0,66,255,134,34,59,108,221,161,162,14,172,38,207,227,138,77,84,102,171,72,50,245,13,25,128,148,8,35,44,115,157,110,138,0,43,146,48,234,152,181,214,166,187,95,184,164,234,68,152,165,70,134,60,219,112,250,178,244,174,22,128,115,148,17,4,9,42,97,209,51,57,124,200,154,44,248,238,181,174,160,197,177,87,152,68,141,145,147,229,213,141,186,234,127,215,1,40,77,91,188,57,233,168,154,47,0,161,253,67,131,237,81,171,101,230,116,83,150,18,16,186,160,58,75,75,80,11,154,33,175,84,92,203,36,234,223,212,250,174,238,30,125,227,189,242,126,161,121,71,242,122,184,146,25,94,165,2,130,143,121,35,227,57,132,85,179,168,117,201,11,105,135,178,33,117,47,186,28,72,187,208,167,139,20,151,38,4,100,163,177,8,64,26,78,58,194,15,127,69,7,16,175,149,20,154,222,91,69,225,52,238,18,95,52,3,213,51,196,113,219,117,194,156,81,249,100,132,0,115,70,2,219,166,159,72,203,93,225,66,197,254,11,175,150,237,109,177,240,252,158,25,164,12,222,155,109,246,0,10,249,129,109,248,200,193,53,80,78,241,3,181,100,126,187,18,114,221,56,201,115,126,186,2,0,59,37,218,108,197,214,229,148,148,215,251,171,3,10,178,27,243,156,236,152,156,111,178,118,17,119,157,252,130,7,166,116,210,149,89,129,101,153,194,75,18,111,253,77,182,23,56,245,117,13,165,131,41,138,232,41,6,78,159,51,1,128,211,100,255,95,227,8,109,85,183,140,64,81,139,88,66,213,17,18,165,43,190,26,184,209,161,71,144,152,245,70,75,200,14,177,156,202,228,244,205,208,186,135,96,29,75,40,25,22,15,219,242,78,128,166,251,80,3,216,94,188,230,182,12,154,129,116,195,62,146,109,236,77,140,188,152,126,216,26,255,165,151,79,130,37,220,3,130,238,51,46,236,42,53,209,234,53,140,120,142,106,64,168,237,139,114,193,144,132,164,52,93,255,78,239,135,178,84,223,161,139,214,147,240,194,47,223,196,92,129,7,205,141,74,60,20,180,116,101,177,69,120,157,2,202,254,64,115,60,81,14,89,36,179,122,67,153,234,180,42,217,198,207,16,22,145,151,178,57,210,163,227,45,179,196,34,204,148,245,200,209,240,139,54,45,93,0,191,135,184,55,62,44,160,234,50,110,120,151,47,224,204,224,99,118,169,239,238,93,85,171,233,57,245,212,246,205,111,193,184,54,221,205,78,209,21,90,135,186,119,22,59,120,196,25,223,60,47,176,229,88,51,191,134,1,141,147,180,246,50,37,211,35,121,160,211,163,174,17,183,89,180,76,14,198,248,47,81,112,227,245,226,206,50,166,116,248,32,71,120,9,102,160,111,32,234,91,32,247,119,251,154,46,123,182,10,103,72,201,143,19,121,58,76,113,149,179,82,129,239,217,186,202,136,207,203,246,135,134,159,234,75,4,220,79,165,72,48,84,97,245,51,121,157,47,204,21,250,158,193,137,134,140,103,185,10,178,224,218,204,48,72,45,127,251,1,223,235,230,38,162,251,1,117,225,9,46,96,215,62,255,95,108,4,202,91,16,110,63,224,42,191,122,178,245,123,112,19,109,249,30,79,170,195,54,138,73,30,165,45,0,172,126,44,165,83,128,72,159,234,204,219,45,18,182,135,69,193,137,217,207,43,71,15,213,234,135,247,115,244,37,45,232,250,201,79,118,126,150,111,247,11,103,255,121,43,66,28,136,32,59,107,104,112,24,69,200,193,225,137,188,223,70,64,210,57,49,205,139,223,93,243,15,241,150,170,14,7,177,237,113,47,135,54,198,231,23,243,167,135,219,222,140,168,81,63,173,166,114,19,14,250,192,45,130,129,149,134,15,29,176,221,69,136,50,129,197,172,153,129,255,172,202,201,109,185,149,111,39,46,224,157,182,120,114,168,239,147,143,212,28,254,10,73,111,165,27,192,213,209,236,78,70,37,178,53,146,245,224,8,11,169,148,123,48,14,248,154,225,71,6,154,166,183,215,242,241,102,140,154,254,80,84,81,217,251,92,135,204,137,242,98,54,34,41,16,157,89,197,247,74,163,215,22,49,211,51,213,59,110,19,214,88,78,246,97,76,214,203,143,236,141,106,49,151,181,24,133,232,43,10,207,151,241,234,55,246,151,255,37,131,182,227,235,52,31,169,167,50,128,95,151,184,101,248,90,157,44,172,63,196,163,101,178,186,152,161,231,147,77,31,117,157,111,225,45,219,212,162,180,10,59,44,65,224,13,98,218,158,64,191,143,11,197,139,11,46,89,58,116,216,241,171,105,158,151,26,195,102,213,4,4,29,151,238,163,98,189,180,29,185,5,242,133,153,119,146,41,86,128,223,79,248,60,23,165,0,18,233,180,125,109,86,62,50,63,42,24,130,57,169,235,211,132,124,125,0,76,212,130,35,237,204,106,64,219,92,198,243,233,133,93,187,33,210,78,2,82,35,21,85,63,2,250,159,218,66,34,71,26,22,253,134,140,62,137,81,250,101,47,125,58,64,192,185,103,190,33,126,86,154,223,244,226,109,50,123,187,114,123,172,59,106,83,182,60,92,128,204,221,13,96,162,176,144,29,193,11,55,29,246,70,180,52,54,1,7,73,172,179,175,221,130,215,101,116,21,72,28,160,30,189,226,204,136,57,242,225,74,127,199,2,9,183,92,247,178,156,72,66,185,5,55,158,143,10,168,181,178,2,57,30,248,55,107,198,105,57,3,108,184,227,226,65,2,82,27,159,233,13,72,20,240,97,163,0,110,204,253,123,212,173,139,140,245,159,254,206,2,225,121,103,155,141,91,45,230,42,39,88,252,89,238,55,111,109,246,141,211,142,99,149,203,85,83,150,184,30,92,61,36,161,104,168,27,68,170,134,153,209,24,1,124,227,64,161}, } ; static const uint16_t precomputed_encode_953xint16_x[precomputed_encode_953xint16_NUM][crypto_encode_ITEMS] = { {17038,52067,14783,44327,2317,53752,11048,13042,32457,26941,29238,44434,42299,55778,61151,3875,47249,42009,38478,51067,338,60240,15871,59654,14383,683,25359,6822,25442,42993,35686,27422,12471,29656,61421,50040,17223,33757,39017,23894,10025,35961,61988,9365,13888,17636,52981,12565,57169,56671,46054,45198,53614,7687,34077,19935,28827,64798,17458,42997,42713,6211,43706,40606,58074,28017,37919,21402,56221,49873,35969,48971,44600,64388,58068,34720,39349,13237,54107,11555,26611,15019,7647,27933,3517,59253,40154,34492,4248,60921,16160,28857,12661,12496,55572,14547,54406,25180,4927,44175,49070,50519,21774,42716,64275,52436,18810,21668,41492,5722,12387,41948,34020,57849,22248,43265,24190,26537,40596,57268,58311,20145,39293,56572,64523,25100,19761,54878,557,30943,27333,4965,58269,40610,4006,59870,14343,10371,28317,29154,39312,61890,9498,38285,50777,21338,24179,10028,26586,44881,58952,35228,6996,40796,4548,47380,55470,50641,13981,47228,47362,61493,40149,51464,30494,60579,61906,54302,53139,11147,47851,11362,26535,22966,40655,26974,20737,52359,28522,7828,59161,10688,25483,31985,46258,13843,34584,20966,6241,3631,32044,46770,57411,55233,27214,23575,33322,11836,30487,31216,35564,32847,20545,3793,27152,64414,2368,64991,53430,59559,2848,50787,49859,22298,64755,2800,45448,57147,25024,14840,30303,41231,62634,10019,47208,64206,48668,21099,5960,34902,12977,63749,26496,62949,2416,14264,36707,41468,61515,17894,38700,60173,19148,23797,20906,40931,654,6602,13157,29160,33554,831,48854,42706,10509,14035,58469,23719,58774,37770,65243,22440,28488,37821,21009,22733,57508,35589,26568,33321,36508,34355,34721,53188,13252,590,17628,44324,54673,26074,55975,24252,15038,60358,50869,12176,28009,12480,37026,27802,49577,62812,14092,3440,65321,52718,3571,46995,54603,14599,11559,28518,48954,46905,51900,5928,26571,58753,59127,6645,39991,310,25278,31991,2844,47258,52163,8431,21316,56874,18584,47262,15563,52373,45786,32779,35531,63061,21647,63098,32171,60382,13715,34966,13247,47939,56346,29659,8525,5199,60327,8714,55549,30365,23334,33142,12016,27278,21488,14682,21853,277,35350,59425,58167,14368,3225,16822,22212,55141,37278,4349,8453,37248,56482,52634,41372,61643,54919,23030,44750,46393,27516,51311,56819,53583,57211,12961,27725,30529,21249,61872,31909,20554,24123,27444,49473,35007,38858,33012,49719,58897,30739,31199,64875,23161,35589,52687,19959,40847,50964,7809,47228,58543,29507,49159,7264,3304,23658,25371,63436,60712,11835,34550,21189,59676,16974,46795,6944,18369,5184,32182,13640,55471,21965,19884,15044,3701,44110,21045,40092,34993,44772,21701,9890,63312,50310,58755,54919,10502,60019,54538,46925,2573,65119,28658,57184,10331,32574,37304,26200,51398,50069,28256,47210,30187,10291,1861,47710,28009,13082,50102,61151,15551,30397,63022,38785,51470,54730,20970,29349,61147,64116,19764,30481,57009,21063,24007,50944,25335,45292,8430,58077,44061,47661,51726,62104,43347,41895,14946,36742,45218,6173,33560,423,8210,32240,39499,4192,36928,12646,33958,61222,6195,29258,58893,18196,19545,51409,12311,7582,40197,39480,29183,889,58765,20886,25949,53429,55633,64215,39148,55416,52076,51852,48724,779,42100,42780,56500,8615,20735,51016,63255,21107,23293,53748,30771,42995,18187,52871,15823,6371,11061,45257,12357,34145,31081,48621,44326,12070,56256,35487,12105,61734,37838,44693,14209,48181,22119,56287,47506,44145,50168,44042,15713,5767,37941,24145,33152,55548,5187,61366,65253,29206,1024,65514,768,34523,41188,23170,43825,22070,23128,11408,37231,29045,35136,21064,32588,46774,33577,9262,16740,59885,18512,24219,36556,65002,15230,1925,22421,64449,51341,37651,6980,17425,25182,16613,55811,18042,2358,36548,57868,9566,9211,32306,33875,6342,54820,60300,37358,26380,5739,274,26986,22940,12266,7098,38864,51197,21684,32025,52375,40326,22878,22766,20764,62661,18961,6507,52428,29480,5975,31274,35081,54293,48630,33103,41853,41122,52750,20260,36157,27287,59858,41804,45353,64874,44823,57606,20825,40488,15517,19406,46710,52664,46958,19636,51576,32225,14303,4892,46696,13227,50122,58663,50052,47433,45404,65301,10777,12169,7486,5384,53814,25417,34128,34049,30804,3905,29660,32495,14319,27410,63822,16213,18893,11544,18890,20990,24670,45496,7299,25300,46144,40586,56181,34544,41976,4748,54813,7356,36962,42212,2799,40845,30399,41339,38446,7222,17189,45421,22573,11463,59089,13164,27878,33451,38555,42713,53919,47772,35143,49189,43290,29216,43387,1996,587,63734,7991,59266,38863,50990,6359,53107,13372,55167,52469,42848,62616,31162,21772,2189,33119,17135,25097,65362,28613,33543,11478,40526,35280,40458,14503,39333,5794,25267,37105,63674,16964,58470,20152,54902,55390,9708,62171,35420,14944,6324,46251,3573,64562,31015,52235,30549,36420,63444,17959,48766,29934,55459,51536,11661,5415,30939,22508,61553,63258,8353,836,38768,29222,56190,16262,56172,48163,46690,62699,65199,14262,23546,56220,8900,42126,9001,64313,58602,35294,14765,31033,55663,17668,30002,34031,23677,24819,54758,34273,27366,12194,17566,58594,55650,48781,22352,65274,57956,8477,46559,25476,8564,14733,11835,62791,38558,15931,46099,49532,12537,60001,5143,51880,61938,54363,40135,30083,5017,27466,15470,59761,24659,8026,25868,60169,19566,46170,61508,17231,65090,33934,25906,58060,37592,50795,5115,40456,41432,45347,28459,33489,25348,1687,4238,28211,58004,57798,55952,6738,45972,31910,57353,40865,56317,62342,40778,26379,51282,39725,43667,21818,19211,21241,35334,38268,40851,19347,56346,53626,50766,58178,49825,1698,20978,9615,6370,31296,50696,41790,59978,22140,65003,18523,23163,55992,17735,49567,57445,36927,5616,34604,34393,45475,64503,1599,29405,14016,51007,54326,13527,12236,34565,11555,42667,24621,43708,26946,28005,40099,12961,21502,42057}, {601,42903,7195,25667,47907,30007,19275,26801,12135,2831,18353,60532,55570,40224,40762,27254,3336,26048,56904,26648,13986,32034,42091,14726,46689,6564,37728,30661,10547,14181,50586,15604,4698,13376,19600,31042,7749,52949,8451,24340,5268,9206,26412,21615,11368,43445,18194,41470,38690,943,23364,33022,41564,48666,29985,4150,27491,54012,51577,29537,46206,10224,27891,2625,42606,3939,23746,44470,8005,20508,40288,34257,3041,23479,27416,28045,57390,52846,18506,45101,17880,47538,58788,3573,39148,22,22952,33255,62286,47668,57007,29295,58221,61369,50611,26600,3503,7653,63272,53748,27232,3475,14431,11519,49517,5744,62717,48944,52795,55666,23207,44182,52159,9746,34264,60943,17613,7099,21310,31124,46905,41320,53830,10284,39596,30310,50883,48994,1724,63254,14152,45839,55770,14577,21548,52121,45220,59636,60915,22581,20324,42879,60125,3765,59503,55235,23501,17660,9250,35351,12541,46703,9069,63324,33981,18440,40937,52275,56462,813,55315,39463,20409,12790,46487,36204,60280,60380,39875,55298,53836,59900,37427,39822,14889,20324,16558,16041,25644,1539,50370,51206,42075,40863,40704,17147,3849,19540,8695,43631,10337,34460,51077,29434,29779,65465,46613,53390,29751,20867,2617,15444,22914,57819,12520,41037,22944,52019,38566,45607,19403,5282,55451,30852,38888,10244,6286,50751,4281,39390,1986,43382,64595,20896,16278,30058,19719,3883,1233,63260,30419,26695,33752,10187,6560,19972,2609,16197,49654,26864,26183,37179,43704,20838,21351,10333,20110,52024,34777,17387,58840,36041,58024,15644,28631,56466,19116,3138,11557,48537,23235,49659,15447,49483,27631,44549,53969,5887,39498,11751,35513,60149,18109,7811,29403,47627,45490,42946,37030,13146,10395,37802,15369,33295,1951,32591,19216,30598,42278,41297,64102,37888,9406,13013,57130,17979,19027,23783,13178,36768,61758,58269,9040,57576,25696,4760,3972,653,64764,23453,5787,14426,54203,42114,817,23406,53085,24120,65491,2062,33146,3073,52904,16890,52102,62405,35017,14398,25018,34169,65260,12847,10155,30448,14221,18220,64249,33346,54391,31625,22064,2520,61149,39193,22851,52508,60774,4667,22639,58892,44246,36734,50487,1547,12749,40087,37469,26415,19463,13367,62141,40637,6332,62700,7367,5110,36202,49578,45856,36691,59773,3267,63237,59433,32330,39774,62908,13044,54035,41522,48451,26898,15546,6443,46525,13177,41702,18646,32368,14713,20621,26494,17176,41353,21163,2691,13216,6190,14448,15456,42912,18726,4849,39682,55757,14330,11797,36839,59098,26497,56618,59301,11746,7414,44139,17206,17440,53386,54137,59429,1974,51847,20812,3817,38773,32786,12667,41952,58745,41259,32126,16578,51046,51402,34253,33245,44350,57748,33294,51428,6361,3041,48115,62590,47625,46281,35100,61446,25859,20643,39170,2579,31618,54727,5449,20747,55203,26496,21823,37210,8785,6465,3447,11050,24990,20228,55133,33302,30415,44171,2953,34440,9962,48363,55031,50739,63614,35737,41832,1605,59944,40655,8915,15115,59494,25655,63854,43932,47868,56681,60805,9233,49903,23494,14037,20864,21751,36782,9319,3263,45104,59549,28946,15747,48420,17176,9424,44755,44078,4775,65156,25919,65221,1257,29084,35911,31433,18091,34029,48246,17075,40304,6550,48237,52866,17072,15579,61450,5322,16054,14256,4328,35679,60637,58491,41415,24588,16237,51168,46778,49464,24948,327,18846,35254,21173,3672,59505,36084,29643,2505,23729,17870,40120,13865,42387,54715,21741,54741,6229,38061,47410,9182,60669,41662,4105,11681,51751,51899,26648,45310,44272,22594,8312,49268,32380,35816,1469,35381,16851,49957,26212,39788,28754,60343,6,57841,42946,45245,56402,64149,61364,52730,22062,62454,27817,59180,36017,9105,8657,34493,62033,7069,21736,41666,41000,54845,52977,21389,61280,30744,39746,42145,39589,62935,57067,18510,30505,8508,2258,40543,25765,24850,24220,38244,58447,61233,48324,10536,45602,43838,64780,16953,7550,33767,58617,16278,12961,39475,11819,13081,13442,51273,61971,13843,11571,47790,15119,26673,31684,47878,20974,38039,37168,31647,20777,58362,32619,63728,19049,40911,45017,55487,59245,46567,38348,47260,61876,39399,47314,28549,17733,9708,53171,43502,60493,38223,44481,6587,45050,34410,23702,27782,16023,53906,2432,39131,56036,17205,17728,18895,13780,61622,58803,8131,57359,46950,54937,56861,11077,35447,34279,60465,22247,8783,57900,45039,17805,54137,65515,3057,43298,17333,14159,30665,62827,58424,38925,47451,34411,29518,22703,21187,51163,27310,8620,62745,24776,9935,16394,1365,3074,61936,56083,56921,15193,46721,34759,5884,18125,42911,30092,47617,50445,59881,62746,39120,58515,62752,41042,14435,37967,55756,52300,33991,50988,60126,25002,22174,7952,55808,49978,7926,19936,3152,3018,43416,56003,41358,8875,32340,32521,24241,15702,4791,59614,42619,45094,40821,45911,61670,46585,33871,18229,18385,21325,54055,59587,59123,36751,17599,33128,64916,44108,8564,23873,49238,13563,56562,9763,31524,32715,18994,57492,64940,48889,18777,51777,11082,11687,30760,6313,35898,42515,6838,35409,25004,45509,8781,38155,16142,27907,33516,49065,27743,63008,19383,29774,17968,23064,60512,35258,49675,18141,6084,31627,56488,60262,58886,22047,21385,65468,17427,9482,2894,58810,16885,18027,8338,44513,4392,36410,55644,52830,14185,3542,334,22064,5373,13724,11765,45279,15578,20835,59367,592,46698,45034,28345,4074,57365,20513,30559,51687,51165,41295,50713,31206,21864,35293,26297,25345,59693,44685,5643,47673,30692,57624,30874,64454,4137,61183,29040,36417,30185,17791,21716,26379,41269,6092,35205,13765,3602,8563,16006,62219,19830,43793,47091,30193,41286,37670,13953,1236,44902,60629,52326,22204,53603,27080,42513,14484,31395,38905,659,3035,6474,19263,59903,57993,47284,45141,41892,9799,11060,8904,13321,23869,19896,35757,6778,27414,54445,50843,27421,61877,2817,39694,35908,16530,38151,25701,51838}, {59658,24089,64153,23621,14832,9160,15274,45692,1166,29054,43095,18936,62738,29663,36170,6530,39514,37366,50793,54185,35839,64143,1687,46060,25465,8168,2668,63279,1715,15564,619,41670,44511,44714,54317,21321,26015,37843,24486,24558,14047,45406,41816,51474,22494,13664,55686,45676,58277,63985,48385,23109,55462,28739,44772,43387,3637,33930,49947,8227,12173,2115,48228,61741,40674,13261,61006,41083,60043,28772,4244,8767,5086,17547,43493,42288,30159,8012,42203,7312,47602,520,31057,36544,16934,32395,32076,1794,60075,46244,32260,38500,32540,45147,25122,54917,50460,13972,56518,25768,42503,58600,51037,28023,3414,21606,27619,62023,61975,33043,49717,27859,49411,43748,60786,35788,21704,22527,46815,26004,51411,49777,28873,16161,2143,6846,50850,14081,57743,16693,7413,63432,60484,38827,5381,38352,33738,5787,19836,51605,54952,53805,39551,35495,7977,2576,1461,5897,6112,32279,35031,38113,427,7972,46051,55063,26688,17418,52981,64233,43969,17537,57575,38085,55829,19438,64004,25576,47403,14497,58539,52467,34514,31854,18556,43650,64137,60132,33125,41050,56033,47360,17603,46396,6604,45880,28984,15002,7979,51711,9878,14545,28599,63176,50225,43571,45361,48627,36381,38276,12787,1762,44135,15021,64215,12501,36538,34782,13773,34627,453,30558,13782,43667,27317,14018,57303,62405,45669,52417,4263,56710,29645,45638,12148,23761,17684,24123,55047,53553,7729,13746,64348,31267,55408,42873,4687,64232,21758,42880,20431,2546,33920,4275,50904,63094,10660,56833,9465,7673,30232,46391,1606,28790,38086,34658,45191,8547,14249,13968,14835,45975,12992,7765,14420,40518,64576,16763,19942,47905,16209,7990,32794,34470,13945,24685,39875,62750,38751,59047,55524,10892,30601,23391,14846,23596,29936,58231,59325,14133,30659,29969,3807,61275,44112,8850,3276,35994,40397,62623,38438,9560,20187,2886,57320,55893,41217,34905,50103,48245,62383,10463,17592,6741,50525,32235,50128,34640,1404,43928,30408,54533,33604,11148,15263,38303,26942,23657,33492,25726,63826,12323,11032,1491,35395,11147,11579,8283,20909,25409,46445,2607,14151,12104,20667,39046,35746,24503,51131,17141,33000,51578,39994,65084,35166,32397,34941,17047,19083,1561,3135,18868,29224,17419,61488,10312,3809,58607,62814,40727,16093,40400,42731,41147,56268,43979,46133,60978,18657,63652,16072,5658,60251,8253,24035,12314,47853,60163,1006,47923,7810,6096,48058,23680,27273,60732,5401,2777,21610,10971,15604,2705,31202,5468,61479,58801,30066,62153,36352,16925,54107,60394,56904,46574,2828,988,30629,5499,59922,20178,43473,6218,45646,52656,65194,16231,11985,39525,1655,11743,8019,54349,22007,52866,28715,661,40004,46277,62311,13267,17310,38004,24082,22937,34986,29553,64334,59298,58733,4997,2882,61278,12734,60196,31884,31910,23986,15886,6867,6058,39956,30825,45427,22087,41846,63739,34460,50254,22672,41090,12302,21835,61713,16726,7367,24156,439,43308,2781,35017,11156,58224,13406,21958,48708,8967,1046,50117,38704,47653,4826,40498,54360,38337,16535,34715,25421,48081,57158,3444,20404,57828,57923,46833,59494,62138,43609,24596,12402,44245,7433,48976,35727,33648,50926,49420,4203,64991,49278,4549,37186,12905,29770,29225,10278,63586,43106,51341,60606,44591,27135,58014,8039,57633,38681,31546,3302,53834,39523,56688,15641,54768,35702,39627,62012,48930,61633,8621,33579,54507,8254,29126,20063,21286,48135,34417,36863,4113,55862,12170,5757,27729,12638,2116,18501,63003,51398,23014,41652,15617,38545,14486,42903,52001,61344,13073,79,55815,34491,39121,45782,65377,60272,18204,20003,33004,15372,17590,4199,56635,12979,33480,12881,14773,5361,6864,43002,58602,64540,50325,20770,34308,56890,11175,49209,27920,11129,7638,8744,18424,43160,43156,32095,29690,27014,40804,56743,7569,48869,12394,47156,26325,21704,25370,33722,35429,4881,48963,46514,22397,62085,1232,31239,62594,26390,39253,28381,42612,48173,46050,44294,10244,15481,40698,39063,39864,13524,54903,16100,20818,44474,34199,11484,10263,52853,15950,54397,46289,61699,64621,20803,23469,36511,28994,20084,59748,64779,4953,43721,2707,30203,58003,37106,63054,5695,45450,52525,53514,63869,64917,53519,47844,4346,46920,39287,60115,42637,15392,14359,23589,34704,43735,7306,30219,24545,5910,51264,27423,4251,28773,63905,9740,32065,52627,49521,40336,58560,57990,5844,22670,32979,4735,1335,26106,50828,60219,29417,7440,40608,9869,9322,31107,15985,3544,45728,53836,43672,46744,61860,57435,64606,15650,22928,43998,28313,40922,15167,28496,42319,31954,448,35927,20338,63958,3950,56530,49779,49990,19649,39367,35952,31050,29872,51558,16461,61884,63092,54160,28292,54729,35928,31942,22351,56291,49589,14650,42975,45491,1429,27391,36806,6927,48523,41915,9367,54689,31544,667,5938,3836,6350,8919,8097,30208,25893,16313,19176,47031,44955,30931,24074,10031,20218,42736,21329,58638,19177,6180,17654,59406,13335,6458,5974,43477,35518,24749,5704,15346,61116,10265,26580,62666,9682,47164,63804,432,1741,59203,33018,47543,50999,1979,7729,62108,42027,36255,2692,50734,63199,33350,18497,23643,2344,41332,46232,60668,53595,29506,62324,57552,49686,19569,36544,13766,58128,14444,48917,35631,41832,36328,43704,48583,40924,65518,11515,43013,11960,24444,49753,22780,942,65060,50099,21643,46057,29005,54036,20370,34048,31626,28966,53108,46530,41653,8467,18096,10223,44678,1454,17248,24246,24303,13152,39699,5099,58057,49666,23865,43969,29091,22742,42912,45073,13043,1185,697,28598,11898,58083,29416,14560,47419,23240,14485,25445,46182,38409,58425,55882,48800,50553,47616,5385,30094,5043,22485,18947,20347,49995,26905,18478,59062,50136,3319,51131,6912,14658,38688,16425,22329,55892,57577,49102,1971,52069,57911,34610,17336,54207,44493,22463,9018,23711,10409,22669,25321,18366,12292,61617,58342,36988,2891,64817}, {59314,20444,24985,25841,58042,16616,61400,29350,25581,3618,15701,9468,47020,51565,43647,9732,21553,61542,21349,31297,18138,12606,52907,1171,41034,9348,24053,54235,47973,48058,7963,930,38048,29816,33157,44698,33965,39437,13442,36799,4741,6609,43606,16781,16690,56368,11542,35410,48641,55266,41078,2162,62657,9604,25572,49307,20874,21731,43708,37687,29395,35022,21057,47763,4828,24510,8027,53156,33443,15419,39266,285,15137,60542,62373,50210,38933,14317,3696,44524,41191,57057,39379,16926,13075,31282,34793,20109,6082,10053,62885,23369,9941,63744,13937,9157,2620,13388,42970,4694,30337,33353,45022,11301,53202,16084,3699,25755,39913,55219,14886,47431,29732,57503,45723,16542,49162,53913,38729,1744,12028,50373,54991,46043,7787,42089,62092,23,24392,25045,37416,3035,9671,45242,32585,21442,18719,26387,24891,21217,59682,56308,429,20966,19652,53608,35088,48409,31272,55984,47665,48625,46307,42309,14394,33126,41259,33828,53317,61534,64093,62549,58308,3799,23989,21226,3942,22376,58735,16547,34968,52139,29057,29282,31480,40004,29873,23045,17435,47787,22781,26328,53861,14941,34680,6158,5481,33815,19698,21919,65380,34393,12328,19368,57527,57286,18030,15255,24412,55182,41367,39550,14953,50970,48774,25903,36473,15536,9639,29837,14045,59739,17659,29806,31878,8439,8549,4977,24163,55016,56519,39252,50396,5049,16041,54679,54859,60419,63377,1167,36145,48887,53005,37728,2372,32242,33345,7059,30477,25330,56337,43801,5053,12200,28018,31900,16582,41470,41358,1737,18741,61945,22141,39531,38140,49185,37013,45164,34067,42010,13228,49789,17180,63059,27453,50158,9346,8910,54499,42820,1129,4004,34570,13762,44739,44086,65513,60335,59936,8422,13079,33519,36812,51718,11322,27508,22806,60758,11231,62817,57741,39762,16896,34559,15138,56684,41633,44046,53030,35555,21581,43878,12872,3573,32793,2196,11299,40307,35438,11008,12434,39146,54965,48038,47199,60068,38980,18085,15494,28891,45818,44788,32790,38003,1041,10761,53601,14643,51324,11418,61176,44725,50592,22449,17560,37261,58771,36309,60090,55167,10241,23373,14780,43241,12186,41216,17405,60803,43857,58981,21364,4758,47632,15008,19275,2896,8602,21679,52060,59940,54495,44794,7918,58237,62141,41342,18297,31474,37560,24089,677,36738,9081,14819,21892,43187,51573,26891,45703,29985,47663,18460,53435,35751,38676,1062,41828,2225,6720,14926,4034,17791,4103,38319,39444,23518,57669,60980,24338,820,13269,29124,30171,40130,63825,33892,29440,582,42715,18591,24011,17121,65221,44811,60822,45421,64752,6558,3236,39902,63085,2560,33273,63597,49608,20533,61774,46339,32356,4795,56690,51512,32371,698,15104,55845,50540,58838,38036,64471,939,45578,62235,60572,40088,45679,4470,40311,33532,42503,53876,22933,25985,49817,4683,64879,46669,14359,30197,42253,10627,59530,1577,40782,307,54144,65380,58207,27912,46933,16524,35665,16984,4565,42258,48683,47130,41425,36935,62872,19270,3784,40113,58570,52724,47824,24711,19229,6440,3862,62171,32846,64422,848,24280,59068,3254,33178,50036,37438,60525,35917,39100,55422,65306,38821,33359,56357,33283,13294,60462,13610,60113,35893,36472,16490,60840,29323,37057,42116,23860,20223,34799,21682,41439,54923,61587,12226,50399,33116,52487,19085,5180,29876,45413,30789,669,65226,29504,20796,22798,45860,17274,60057,10932,50905,4303,37142,45719,53817,58275,45869,8900,38092,51445,61649,13963,23853,48896,47239,15927,41004,13034,30830,12183,52448,25568,43382,61167,21853,59819,62777,63188,28621,47297,56630,20173,5585,34650,30650,15126,50296,57113,12092,58800,13144,34495,36097,46227,13046,54053,31011,54176,44707,46865,46169,3660,63686,20783,58224,58101,13006,29862,8440,30791,26121,28576,59936,8283,30711,39675,31534,2742,18535,36809,30995,19514,38257,21171,61313,47833,35018,52175,34806,40838,19434,56324,42319,12360,24916,13301,40313,52271,64021,49566,34441,26508,2745,57522,52442,18480,32557,507,60383,9958,64418,29953,2529,24622,16087,24575,1132,23498,28176,57407,48938,45690,31733,4976,63853,20254,50090,35382,7753,11685,44032,11390,21413,18560,60063,56268,4653,34742,49477,55689,11215,3911,60117,63367,62579,11557,64232,20425,32374,28566,3063,65383,11129,7234,8328,27451,28776,17688,49608,35297,57276,16454,14802,52529,57227,62301,61711,43670,1806,60849,12145,13959,59334,62231,34727,57051,43148,16209,42669,4978,64014,11712,33154,34453,7439,56752,34885,33074,44229,33177,44287,51658,47469,28565,11815,40416,30902,43122,37871,54415,65052,18698,42351,49179,53717,20204,9542,13746,62866,2272,43275,31636,3632,39672,18401,39430,47014,62167,26353,39564,20734,20820,64473,34652,35276,25330,8758,4137,22941,63429,41802,5847,54065,54579,28219,54803,20056,25078,54860,36811,36332,12650,46487,34072,11240,53002,61847,14314,38902,9727,46723,60387,7988,42921,32818,38751,26040,23288,11421,16300,41924,45669,39098,59297,19859,29983,28573,11745,54491,46242,15114,16684,3552,55906,16542,36799,50443,2955,22830,29754,61912,27051,38814,49946,54630,1028,38685,41966,48482,7604,1465,34290,30617,10642,32854,20447,15608,42263,4608,46313,28029,15958,16178,6186,14722,60329,34003,32124,19456,33492,60707,27340,56128,50780,59891,23941,8635,20178,20994,5411,16213,64002,55967,8770,6727,64790,35974,35134,64081,12133,14973,49216,26553,8638,22142,57242,58100,12909,47995,31602,15276,21354,15542,32860,56780,24589,45218,7568,3009,7479,18166,13492,310,18695,45996,56751,55170,29797,18453,40988,48414,52450,14728,57842,32586,711,46857,63324,40114,16968,1465,40503,2703,46504,690,7737,14328,50795,14697,27651,58296,16866,20994,40731,3561,5192,25072,163,52334,31741,44500,35979,40949,52990,57602,26489,36251,11611,10982,22567,23036,14318,28015,36342,36563,38243,21963,38483,7864,15708,41252,43112,17435,34474,53657,280,58236,41280}, } ; static void test_encode_953xint16_impl(long long impl) { unsigned char *s = test_encode_953xint16_s; unsigned char *x = test_encode_953xint16_x; unsigned char *s2 = test_encode_953xint16_s2; unsigned char *x2 = test_encode_953xint16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_953xint16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_953xint16(impl); printf("encode_953xint16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_953xint16_implementation(impl),ntruprime_dispatch_encode_953xint16_compiler(impl)); } else { crypto_encode = ntruprime_encode_953xint16; printf("encode_953xint16 selected implementation %s compiler %s\n",ntruprime_encode_953xint16_implementation(),ntruprime_encode_953xint16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_953xint16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_953xint16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_953xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_953xint16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_953xint16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_953xint16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_953xint16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"953xint16")) return; storage_encode_953xint16_s = callocplus(crypto_encode_STRBYTES); test_encode_953xint16_s = aligned(storage_encode_953xint16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_953xint16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_953xint16_x = aligned(storage_encode_953xint16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_953xint16_s2 = callocplus(maxalloc); test_encode_953xint16_s2 = aligned(storage_encode_953xint16_s2,crypto_encode_STRBYTES); storage_encode_953xint16_x2 = callocplus(maxalloc); test_encode_953xint16_x2 = aligned(storage_encode_953xint16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_953xint16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_953xint16();++impl) forked(test_encode_953xint16_impl,impl); ++test_encode_953xint16_s; ++test_encode_953xint16_x; ++test_encode_953xint16_s2; ++test_encode_953xint16_x2; } free(storage_encode_953xint16_x2); free(storage_encode_953xint16_s2); free(storage_encode_953xint16_x); free(storage_encode_953xint16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_encode_int16.c0000644000000000000000000001422414705505543022316 0ustar rootroot/* ----- encode/int16, derived from supercop/crypto_encode/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *encode_int16_checksums[] = { "7f59625680d504bdd9bff199c54792455ddfd077779962836a92543c88bea2fa", "cdc27065db4d2f6e2356756b9a0bae31699e6255f0caf0011ba18ef3d2229ed8", } ; static void (*crypto_encode)(unsigned char *,const void *); #define crypto_encode_STRBYTES ntruprime_encode_int16_STRBYTES #define crypto_encode_ITEMS ntruprime_encode_int16_ITEMS #define crypto_encode_ITEMBYTES ntruprime_encode_int16_ITEMBYTES static void *storage_encode_int16_s; static unsigned char *test_encode_int16_s; static void *storage_encode_int16_x; static unsigned char *test_encode_int16_x; static void *storage_encode_int16_s2; static unsigned char *test_encode_int16_s2; static void *storage_encode_int16_x2; static unsigned char *test_encode_int16_x2; #define precomputed_encode_int16_NUM 16 static const unsigned char precomputed_encode_int16_s[precomputed_encode_int16_NUM][crypto_encode_STRBYTES] = { {122,133}, {137,93}, {10,58}, {63,76}, {103,228}, {99,188}, {142,131}, {155,71}, {15,238}, {223,68}, {57,25}, {23,39}, {83,38}, {147,10}, {141,21}, {210,235}, } ; static const uint16_t precomputed_encode_int16_x[precomputed_encode_int16_NUM][crypto_encode_ITEMS] = { {34170}, {23945}, {14858}, {19519}, {58471}, {48227}, {33678}, {18331}, {60943}, {17631}, {6457}, {10007}, {9811}, {2707}, {5517}, {60370}, } ; static void test_encode_int16_impl(long long impl) { unsigned char *s = test_encode_int16_s; unsigned char *x = test_encode_int16_x; unsigned char *s2 = test_encode_int16_s2; unsigned char *x2 = test_encode_int16_x2; long long slen = crypto_encode_STRBYTES; long long xwords = crypto_encode_ITEMS; long long xlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_encode_int16_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_encode = ntruprime_dispatch_encode_int16(impl); printf("encode_int16 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_encode_int16_implementation(impl),ntruprime_dispatch_encode_int16_compiler(impl)); } else { crypto_encode = ntruprime_encode_int16; printf("encode_int16 selected implementation %s compiler %s\n",ntruprime_encode_int16_implementation(),ntruprime_encode_int16_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xlen = xwords*crypto_encode_ITEMBYTES; output_prepare(s2,s,slen); input_prepare(x2,x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); secret(x,xlen); crypto_encode(s,x); public(x,xlen); endianness(x,xwords,crypto_encode_ITEMBYTES); public(s,slen); checksum(s,slen); output_compare(s2,s,slen,"crypto_encode"); input_compare(x2,x,xlen,"crypto_encode"); double_canary(s2,s,slen); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); secret(x2,xlen); crypto_encode(s2,x2); public(x2,xlen); endianness(x2,xwords,crypto_encode_ITEMBYTES); public(s2,slen); if (memcmp(s2,s,slen) != 0) fail("failure: crypto_encode is nondeterministic\n"); } checksum_expected(encode_int16_checksums[checksumbig]); } for (long long precomp = 0;precomp < precomputed_encode_int16_NUM;++precomp) { output_prepare(s2,s,crypto_encode_STRBYTES); input_prepare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x,precomputed_encode_int16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); memcpy(x2,precomputed_encode_int16_x[precomp],crypto_encode_ITEMS*crypto_encode_ITEMBYTES); crypto_encode(s,x); if (memcmp(s,precomputed_encode_int16_s[precomp],crypto_encode_STRBYTES)) { fail("failure: crypto_encode fails precomputed test vectors\n"); printf("expected s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",((unsigned char *) precomputed_encode_int16_s[precomp])[pos]); printf("\n"); printf("received s: "); for (long long pos = 0;pos < crypto_encode_STRBYTES;++pos) printf("%02x",s[pos]); printf("\n"); } output_compare(s2,s,crypto_encode_STRBYTES,"crypto_encode"); input_compare(x2,x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES,"crypto_encode"); } } void test_encode_int16(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"encode")) return; if (targetp && strcmp(targetp,"int16")) return; storage_encode_int16_s = callocplus(crypto_encode_STRBYTES); test_encode_int16_s = aligned(storage_encode_int16_s,crypto_encode_STRBYTES); if (crypto_encode_STRBYTES > maxalloc) maxalloc = crypto_encode_STRBYTES; storage_encode_int16_x = callocplus(crypto_encode_ITEMS*crypto_encode_ITEMBYTES); test_encode_int16_x = aligned(storage_encode_int16_x,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); if (crypto_encode_ITEMS*crypto_encode_ITEMBYTES > maxalloc) maxalloc = crypto_encode_ITEMS*crypto_encode_ITEMBYTES; storage_encode_int16_s2 = callocplus(maxalloc); test_encode_int16_s2 = aligned(storage_encode_int16_s2,crypto_encode_STRBYTES); storage_encode_int16_x2 = callocplus(maxalloc); test_encode_int16_x2 = aligned(storage_encode_int16_x2,crypto_encode_ITEMS*crypto_encode_ITEMBYTES); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("encode_int16 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_encode_int16();++impl) forked(test_encode_int16_impl,impl); ++test_encode_int16_s; ++test_encode_int16_x; ++test_encode_int16_s2; ++test_encode_int16_x2; } free(storage_encode_int16_x2); free(storage_encode_int16_s2); free(storage_encode_int16_x); free(storage_encode_int16_s); } #undef crypto_encode_STRBYTES #undef crypto_encode_ITEMS #undef crypto_encode_ITEMBYTES libntruprime-20241021/command/ntruprime-test_hash_sha512.c0000644000000000000000000001030314705505543022040 0ustar rootroot/* ----- hash/sha512, derived from supercop/crypto_hash/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *hash_sha512_checksums[] = { "8220572f58bd4730be165c9739d8d4b0fd2e0229dbe01e25b4aed23f00f23b70", "c1e322b7cbfc941260c5508967ba05bce22eeee94d425e708b7c3301ea1d5e2e", } ; static void (*crypto_hash)(unsigned char *,const unsigned char *,long long); #define crypto_hash_BYTES ntruprime_hash_sha512_BYTES static void *storage_hash_sha512_h; static unsigned char *test_hash_sha512_h; static void *storage_hash_sha512_m; static unsigned char *test_hash_sha512_m; static void *storage_hash_sha512_h2; static unsigned char *test_hash_sha512_h2; static void *storage_hash_sha512_m2; static unsigned char *test_hash_sha512_m2; static void test_hash_sha512_impl(long long impl) { unsigned char *h = test_hash_sha512_h; unsigned char *m = test_hash_sha512_m; unsigned char *h2 = test_hash_sha512_h2; unsigned char *m2 = test_hash_sha512_m2; long long hlen = crypto_hash_BYTES; long long mlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_hash_sha512_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_hash = ntruprime_dispatch_hash_sha512(impl); printf("hash_sha512 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_hash_sha512_implementation(impl),ntruprime_dispatch_hash_sha512_compiler(impl)); } else { crypto_hash = ntruprime_hash_sha512; printf("hash_sha512 selected implementation %s compiler %s\n",ntruprime_hash_sha512_implementation(),ntruprime_hash_sha512_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 512 : 64; long long maxtest = checksumbig ? 4096 : 128; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { mlen = myrandom() % (maxtest + 1); output_prepare(h2,h,hlen); input_prepare(m2,m,mlen); secret(m,mlen); crypto_hash(h,m,mlen); public(m,mlen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_hash"); input_compare(m2,m,mlen,"crypto_hash"); double_canary(h2,h,hlen); double_canary(m2,m,mlen); secret(m2,mlen); crypto_hash(h2,m2,mlen); public(m2,mlen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_hash is nondeterministic\n"); double_canary(h2,h,hlen); double_canary(m2,m,mlen); secret(m2,mlen); crypto_hash(m2,m2,mlen); public(m2,hlen); if (memcmp(m2,h,hlen) != 0) fail("failure: crypto_hash does not handle m=h overlap\n"); memcpy(m2,m,mlen); } checksum_expected(hash_sha512_checksums[checksumbig]); } } void test_hash_sha512(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"hash")) return; if (targetp && strcmp(targetp,"sha512")) return; storage_hash_sha512_h = callocplus(crypto_hash_BYTES); test_hash_sha512_h = aligned(storage_hash_sha512_h,crypto_hash_BYTES); if (crypto_hash_BYTES > maxalloc) maxalloc = crypto_hash_BYTES; storage_hash_sha512_m = callocplus(4096+crypto_hash_BYTES); test_hash_sha512_m = aligned(storage_hash_sha512_m,4096+crypto_hash_BYTES); if (4096+crypto_hash_BYTES > maxalloc) maxalloc = 4096+crypto_hash_BYTES; storage_hash_sha512_h2 = callocplus(maxalloc); test_hash_sha512_h2 = aligned(storage_hash_sha512_h2,crypto_hash_BYTES); storage_hash_sha512_m2 = callocplus(maxalloc); test_hash_sha512_m2 = aligned(storage_hash_sha512_m2,4096+crypto_hash_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("hash_sha512 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_hash_sha512();++impl) forked(test_hash_sha512_impl,impl); ++test_hash_sha512_h; ++test_hash_sha512_m; ++test_hash_sha512_h2; ++test_hash_sha512_m2; } free(storage_hash_sha512_m2); free(storage_hash_sha512_h2); free(storage_hash_sha512_m); free(storage_hash_sha512_h); } #undef crypto_hash_BYTES libntruprime-20241021/command/ntruprime-test_hashblocks_sha512.c0000644000000000000000000001144614705505543023247 0ustar rootroot/* ----- hashblocks/sha512, derived from supercop/crypto_hashblocks/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *hashblocks_sha512_checksums[] = { "f0bc623a9033f9f648336540e11e85be21aeb60905c7d8808d10ea20b39d58d1", "f1a2c46c9ce7fa4cd22f180907d77b6f7189badef4b9a1b5284d6fb9db859b76", } ; static int (*crypto_hashblocks)(unsigned char *,const unsigned char *,long long); #define crypto_hashblocks_STATEBYTES ntruprime_hashblocks_sha512_STATEBYTES #define crypto_hashblocks_BLOCKBYTES ntruprime_hashblocks_sha512_BLOCKBYTES static void *storage_hashblocks_sha512_h; static unsigned char *test_hashblocks_sha512_h; static void *storage_hashblocks_sha512_m; static unsigned char *test_hashblocks_sha512_m; static void *storage_hashblocks_sha512_h2; static unsigned char *test_hashblocks_sha512_h2; static void *storage_hashblocks_sha512_m2; static unsigned char *test_hashblocks_sha512_m2; static void test_hashblocks_sha512_impl(long long impl) { unsigned char *h = test_hashblocks_sha512_h; unsigned char *m = test_hashblocks_sha512_m; unsigned char *h2 = test_hashblocks_sha512_h2; unsigned char *m2 = test_hashblocks_sha512_m2; long long hlen = crypto_hashblocks_STATEBYTES; long long mlen; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_hashblocks_sha512_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_hashblocks = ntruprime_dispatch_hashblocks_sha512(impl); printf("hashblocks_sha512 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_hashblocks_sha512_implementation(impl),ntruprime_dispatch_hashblocks_sha512_compiler(impl)); } else { crypto_hashblocks = ntruprime_hashblocks_sha512; printf("hashblocks_sha512 selected implementation %s compiler %s\n",ntruprime_hashblocks_sha512_implementation(),ntruprime_hashblocks_sha512_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 32768 : 4096; long long maxtest = checksumbig ? 4096 : 128; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { int result; mlen = myrandom() % (maxtest + 1); input_prepare(m2,m,mlen); input_prepare(h2,h,hlen); secret(m,mlen); secret(h,hlen); result = crypto_hashblocks(h,m,mlen); public(&result,sizeof result); if (result != mlen % crypto_hashblocks_BLOCKBYTES) fail("failure: crypto_hashblocks returns unexpected value\n"); public(m,mlen); public(h,hlen); checksum(h,hlen); output_compare(h2,h,hlen,"crypto_hashblocks"); input_compare(m2,m,mlen,"crypto_hashblocks"); double_canary(h2,h,hlen); double_canary(m2,m,mlen); secret(m2,mlen); secret(h2,hlen); result = crypto_hashblocks(h2,m2,mlen); public(&result,sizeof result); if (result != mlen % crypto_hashblocks_BLOCKBYTES) fail("failure: crypto_hashblocks returns unexpected value\n"); public(m2,mlen); public(h2,hlen); if (memcmp(h2,h,hlen) != 0) fail("failure: crypto_hashblocks is nondeterministic\n"); } checksum_expected(hashblocks_sha512_checksums[checksumbig]); } } void test_hashblocks_sha512(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"hashblocks")) return; if (targetp && strcmp(targetp,"sha512")) return; storage_hashblocks_sha512_h = callocplus(crypto_hashblocks_STATEBYTES); test_hashblocks_sha512_h = aligned(storage_hashblocks_sha512_h,crypto_hashblocks_STATEBYTES); if (crypto_hashblocks_STATEBYTES > maxalloc) maxalloc = crypto_hashblocks_STATEBYTES; storage_hashblocks_sha512_m = callocplus(4096); test_hashblocks_sha512_m = aligned(storage_hashblocks_sha512_m,4096); if (4096 > maxalloc) maxalloc = 4096; storage_hashblocks_sha512_h2 = callocplus(maxalloc); test_hashblocks_sha512_h2 = aligned(storage_hashblocks_sha512_h2,crypto_hashblocks_STATEBYTES); storage_hashblocks_sha512_m2 = callocplus(maxalloc); test_hashblocks_sha512_m2 = aligned(storage_hashblocks_sha512_m2,4096); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("hashblocks_sha512 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_hashblocks_sha512();++impl) forked(test_hashblocks_sha512_impl,impl); ++test_hashblocks_sha512_h; ++test_hashblocks_sha512_m; ++test_hashblocks_sha512_h2; ++test_hashblocks_sha512_m2; } free(storage_hashblocks_sha512_m2); free(storage_hashblocks_sha512_h2); free(storage_hashblocks_sha512_m); free(storage_hashblocks_sha512_h); } #undef crypto_hashblocks_STATEBYTES #undef crypto_hashblocks_BLOCKBYTES libntruprime-20241021/command/ntruprime-test_kem_sntrup1013.c0000644000000000000000000002205014705505543022530 0ustar rootroot/* ----- kem/sntrup1013, derived from supercop/crypto_kem/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *kem_sntrup1013_checksums[] = { "1b5be888b85239e31dcd576507be93447dd8fa9791cd780f4146979406e763e5", "78eab8aab4e7ac97bac21dfe4dbf2a09b5e0264a006679d1da13b43ecd643c04", } ; static void (*crypto_kem_keypair)(unsigned char *,unsigned char *); static void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); static void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); #define crypto_kem_SECRETKEYBYTES ntruprime_kem_sntrup1013_SECRETKEYBYTES #define crypto_kem_PUBLICKEYBYTES ntruprime_kem_sntrup1013_PUBLICKEYBYTES #define crypto_kem_CIPHERTEXTBYTES ntruprime_kem_sntrup1013_CIPHERTEXTBYTES #define crypto_kem_BYTES ntruprime_kem_sntrup1013_BYTES static void *storage_kem_sntrup1013_p; static unsigned char *test_kem_sntrup1013_p; static void *storage_kem_sntrup1013_s; static unsigned char *test_kem_sntrup1013_s; static void *storage_kem_sntrup1013_k; static unsigned char *test_kem_sntrup1013_k; static void *storage_kem_sntrup1013_c; static unsigned char *test_kem_sntrup1013_c; static void *storage_kem_sntrup1013_t; static unsigned char *test_kem_sntrup1013_t; static void *storage_kem_sntrup1013_p2; static unsigned char *test_kem_sntrup1013_p2; static void *storage_kem_sntrup1013_s2; static unsigned char *test_kem_sntrup1013_s2; static void *storage_kem_sntrup1013_k2; static unsigned char *test_kem_sntrup1013_k2; static void *storage_kem_sntrup1013_c2; static unsigned char *test_kem_sntrup1013_c2; static void *storage_kem_sntrup1013_t2; static unsigned char *test_kem_sntrup1013_t2; static void test_kem_sntrup1013_impl(long long impl) { unsigned char *p = test_kem_sntrup1013_p; unsigned char *s = test_kem_sntrup1013_s; unsigned char *k = test_kem_sntrup1013_k; unsigned char *c = test_kem_sntrup1013_c; unsigned char *t = test_kem_sntrup1013_t; unsigned char *p2 = test_kem_sntrup1013_p2; unsigned char *s2 = test_kem_sntrup1013_s2; unsigned char *k2 = test_kem_sntrup1013_k2; unsigned char *c2 = test_kem_sntrup1013_c2; unsigned char *t2 = test_kem_sntrup1013_t2; long long plen = crypto_kem_PUBLICKEYBYTES; long long slen = crypto_kem_SECRETKEYBYTES; long long klen = crypto_kem_BYTES; long long clen = crypto_kem_CIPHERTEXTBYTES; long long tlen = crypto_kem_BYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_kem_sntrup1013_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup1013_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup1013_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup1013_dec(impl); printf("kem_sntrup1013 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup1013_implementation(impl),ntruprime_dispatch_kem_sntrup1013_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup1013_keypair; crypto_kem_enc = ntruprime_kem_sntrup1013_enc; crypto_kem_dec = ntruprime_kem_sntrup1013_dec; printf("kem_sntrup1013 selected implementation %s compiler %s\n",ntruprime_kem_sntrup1013_implementation(),ntruprime_kem_sntrup1013_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 64 : 8; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(p2,p,plen); output_prepare(s2,s,slen); crypto_kem_keypair(p,s); public(p,plen); public(s,slen); checksum(p,plen); checksum(s,slen); output_compare(p2,p,plen,"crypto_kem_keypair"); output_compare(s2,s,slen,"crypto_kem_keypair"); output_prepare(c2,c,clen); output_prepare(k2,k,klen); memcpy(p2,p,plen); double_canary(p2,p,plen); secret(p,plen); crypto_kem_enc(c,k,p); public(p,plen); public(c,clen); public(k,klen); checksum(c,clen); checksum(k,klen); output_compare(c2,c,clen,"crypto_kem_enc"); output_compare(k2,k,klen,"crypto_kem_enc"); input_compare(p2,p,plen,"crypto_kem_enc"); output_prepare(t2,t,tlen); memcpy(c2,c,clen); double_canary(c2,c,clen); memcpy(s2,s,slen); double_canary(s2,s,slen); secret(c,clen); secret(s,slen); crypto_kem_dec(t,c,s); public(c,clen); public(s,slen); public(t,tlen); if (memcmp(t,k,klen) != 0) fail("failure: crypto_kem_dec does not match k\n"); checksum(t,tlen); output_compare(t2,t,tlen,"crypto_kem_dec"); input_compare(c2,c,clen,"crypto_kem_dec"); input_compare(s2,s,slen,"crypto_kem_dec"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s2,slen); crypto_kem_dec(t2,c2,s2); public(c2,clen); public(s2,slen); public(t2,tlen); if (memcmp(t2,t,tlen) != 0) fail("failure: crypto_kem_dec is nondeterministic\n"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s,slen); crypto_kem_dec(c2,c2,s); public(c2,tlen); public(s,slen); if (memcmp(c2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle c=t overlap\n"); memcpy(c2,c,clen); secret(c,clen); secret(s2,slen); crypto_kem_dec(s2,c,s2); public(s2,tlen); public(c,clen); if (memcmp(s2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle s=t overlap\n"); memcpy(s2,s,slen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); } checksum_expected(kem_sntrup1013_checksums[checksumbig]); } } void test_kem_sntrup1013(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup1013")) return; storage_kem_sntrup1013_p = callocplus(crypto_kem_PUBLICKEYBYTES); test_kem_sntrup1013_p = aligned(storage_kem_sntrup1013_p,crypto_kem_PUBLICKEYBYTES); if (crypto_kem_PUBLICKEYBYTES > maxalloc) maxalloc = crypto_kem_PUBLICKEYBYTES; storage_kem_sntrup1013_s = callocplus(crypto_kem_SECRETKEYBYTES); test_kem_sntrup1013_s = aligned(storage_kem_sntrup1013_s,crypto_kem_SECRETKEYBYTES); if (crypto_kem_SECRETKEYBYTES > maxalloc) maxalloc = crypto_kem_SECRETKEYBYTES; storage_kem_sntrup1013_k = callocplus(crypto_kem_BYTES); test_kem_sntrup1013_k = aligned(storage_kem_sntrup1013_k,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup1013_c = callocplus(crypto_kem_CIPHERTEXTBYTES); test_kem_sntrup1013_c = aligned(storage_kem_sntrup1013_c,crypto_kem_CIPHERTEXTBYTES); if (crypto_kem_CIPHERTEXTBYTES > maxalloc) maxalloc = crypto_kem_CIPHERTEXTBYTES; storage_kem_sntrup1013_t = callocplus(crypto_kem_BYTES); test_kem_sntrup1013_t = aligned(storage_kem_sntrup1013_t,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup1013_p2 = callocplus(maxalloc); test_kem_sntrup1013_p2 = aligned(storage_kem_sntrup1013_p2,crypto_kem_PUBLICKEYBYTES); storage_kem_sntrup1013_s2 = callocplus(maxalloc); test_kem_sntrup1013_s2 = aligned(storage_kem_sntrup1013_s2,crypto_kem_SECRETKEYBYTES); storage_kem_sntrup1013_k2 = callocplus(maxalloc); test_kem_sntrup1013_k2 = aligned(storage_kem_sntrup1013_k2,crypto_kem_BYTES); storage_kem_sntrup1013_c2 = callocplus(maxalloc); test_kem_sntrup1013_c2 = aligned(storage_kem_sntrup1013_c2,crypto_kem_CIPHERTEXTBYTES); storage_kem_sntrup1013_t2 = callocplus(maxalloc); test_kem_sntrup1013_t2 = aligned(storage_kem_sntrup1013_t2,crypto_kem_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("kem_sntrup1013 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup1013();++impl) forked(test_kem_sntrup1013_impl,impl); ++test_kem_sntrup1013_p; ++test_kem_sntrup1013_s; ++test_kem_sntrup1013_k; ++test_kem_sntrup1013_c; ++test_kem_sntrup1013_t; ++test_kem_sntrup1013_p2; ++test_kem_sntrup1013_s2; ++test_kem_sntrup1013_k2; ++test_kem_sntrup1013_c2; ++test_kem_sntrup1013_t2; } free(storage_kem_sntrup1013_t2); free(storage_kem_sntrup1013_c2); free(storage_kem_sntrup1013_k2); free(storage_kem_sntrup1013_s2); free(storage_kem_sntrup1013_p2); free(storage_kem_sntrup1013_t); free(storage_kem_sntrup1013_c); free(storage_kem_sntrup1013_k); free(storage_kem_sntrup1013_s); free(storage_kem_sntrup1013_p); } #undef crypto_kem_SECRETKEYBYTES #undef crypto_kem_PUBLICKEYBYTES #undef crypto_kem_CIPHERTEXTBYTES #undef crypto_kem_BYTES libntruprime-20241021/command/ntruprime-test_kem_sntrup1277.c0000644000000000000000000002205014705505543022544 0ustar rootroot/* ----- kem/sntrup1277, derived from supercop/crypto_kem/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *kem_sntrup1277_checksums[] = { "d03baeaa474adaa64bb1cf309fe7c3cccd29c82265f1d44fa668bf921580c8f1", "8dd39f1e097cd413ed1ed1ecb6431e131535c906fa561283394b182c4ff09a5e", } ; static void (*crypto_kem_keypair)(unsigned char *,unsigned char *); static void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); static void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); #define crypto_kem_SECRETKEYBYTES ntruprime_kem_sntrup1277_SECRETKEYBYTES #define crypto_kem_PUBLICKEYBYTES ntruprime_kem_sntrup1277_PUBLICKEYBYTES #define crypto_kem_CIPHERTEXTBYTES ntruprime_kem_sntrup1277_CIPHERTEXTBYTES #define crypto_kem_BYTES ntruprime_kem_sntrup1277_BYTES static void *storage_kem_sntrup1277_p; static unsigned char *test_kem_sntrup1277_p; static void *storage_kem_sntrup1277_s; static unsigned char *test_kem_sntrup1277_s; static void *storage_kem_sntrup1277_k; static unsigned char *test_kem_sntrup1277_k; static void *storage_kem_sntrup1277_c; static unsigned char *test_kem_sntrup1277_c; static void *storage_kem_sntrup1277_t; static unsigned char *test_kem_sntrup1277_t; static void *storage_kem_sntrup1277_p2; static unsigned char *test_kem_sntrup1277_p2; static void *storage_kem_sntrup1277_s2; static unsigned char *test_kem_sntrup1277_s2; static void *storage_kem_sntrup1277_k2; static unsigned char *test_kem_sntrup1277_k2; static void *storage_kem_sntrup1277_c2; static unsigned char *test_kem_sntrup1277_c2; static void *storage_kem_sntrup1277_t2; static unsigned char *test_kem_sntrup1277_t2; static void test_kem_sntrup1277_impl(long long impl) { unsigned char *p = test_kem_sntrup1277_p; unsigned char *s = test_kem_sntrup1277_s; unsigned char *k = test_kem_sntrup1277_k; unsigned char *c = test_kem_sntrup1277_c; unsigned char *t = test_kem_sntrup1277_t; unsigned char *p2 = test_kem_sntrup1277_p2; unsigned char *s2 = test_kem_sntrup1277_s2; unsigned char *k2 = test_kem_sntrup1277_k2; unsigned char *c2 = test_kem_sntrup1277_c2; unsigned char *t2 = test_kem_sntrup1277_t2; long long plen = crypto_kem_PUBLICKEYBYTES; long long slen = crypto_kem_SECRETKEYBYTES; long long klen = crypto_kem_BYTES; long long clen = crypto_kem_CIPHERTEXTBYTES; long long tlen = crypto_kem_BYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_kem_sntrup1277_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup1277_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup1277_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup1277_dec(impl); printf("kem_sntrup1277 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup1277_implementation(impl),ntruprime_dispatch_kem_sntrup1277_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup1277_keypair; crypto_kem_enc = ntruprime_kem_sntrup1277_enc; crypto_kem_dec = ntruprime_kem_sntrup1277_dec; printf("kem_sntrup1277 selected implementation %s compiler %s\n",ntruprime_kem_sntrup1277_implementation(),ntruprime_kem_sntrup1277_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 64 : 8; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(p2,p,plen); output_prepare(s2,s,slen); crypto_kem_keypair(p,s); public(p,plen); public(s,slen); checksum(p,plen); checksum(s,slen); output_compare(p2,p,plen,"crypto_kem_keypair"); output_compare(s2,s,slen,"crypto_kem_keypair"); output_prepare(c2,c,clen); output_prepare(k2,k,klen); memcpy(p2,p,plen); double_canary(p2,p,plen); secret(p,plen); crypto_kem_enc(c,k,p); public(p,plen); public(c,clen); public(k,klen); checksum(c,clen); checksum(k,klen); output_compare(c2,c,clen,"crypto_kem_enc"); output_compare(k2,k,klen,"crypto_kem_enc"); input_compare(p2,p,plen,"crypto_kem_enc"); output_prepare(t2,t,tlen); memcpy(c2,c,clen); double_canary(c2,c,clen); memcpy(s2,s,slen); double_canary(s2,s,slen); secret(c,clen); secret(s,slen); crypto_kem_dec(t,c,s); public(c,clen); public(s,slen); public(t,tlen); if (memcmp(t,k,klen) != 0) fail("failure: crypto_kem_dec does not match k\n"); checksum(t,tlen); output_compare(t2,t,tlen,"crypto_kem_dec"); input_compare(c2,c,clen,"crypto_kem_dec"); input_compare(s2,s,slen,"crypto_kem_dec"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s2,slen); crypto_kem_dec(t2,c2,s2); public(c2,clen); public(s2,slen); public(t2,tlen); if (memcmp(t2,t,tlen) != 0) fail("failure: crypto_kem_dec is nondeterministic\n"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s,slen); crypto_kem_dec(c2,c2,s); public(c2,tlen); public(s,slen); if (memcmp(c2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle c=t overlap\n"); memcpy(c2,c,clen); secret(c,clen); secret(s2,slen); crypto_kem_dec(s2,c,s2); public(s2,tlen); public(c,clen); if (memcmp(s2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle s=t overlap\n"); memcpy(s2,s,slen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); } checksum_expected(kem_sntrup1277_checksums[checksumbig]); } } void test_kem_sntrup1277(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup1277")) return; storage_kem_sntrup1277_p = callocplus(crypto_kem_PUBLICKEYBYTES); test_kem_sntrup1277_p = aligned(storage_kem_sntrup1277_p,crypto_kem_PUBLICKEYBYTES); if (crypto_kem_PUBLICKEYBYTES > maxalloc) maxalloc = crypto_kem_PUBLICKEYBYTES; storage_kem_sntrup1277_s = callocplus(crypto_kem_SECRETKEYBYTES); test_kem_sntrup1277_s = aligned(storage_kem_sntrup1277_s,crypto_kem_SECRETKEYBYTES); if (crypto_kem_SECRETKEYBYTES > maxalloc) maxalloc = crypto_kem_SECRETKEYBYTES; storage_kem_sntrup1277_k = callocplus(crypto_kem_BYTES); test_kem_sntrup1277_k = aligned(storage_kem_sntrup1277_k,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup1277_c = callocplus(crypto_kem_CIPHERTEXTBYTES); test_kem_sntrup1277_c = aligned(storage_kem_sntrup1277_c,crypto_kem_CIPHERTEXTBYTES); if (crypto_kem_CIPHERTEXTBYTES > maxalloc) maxalloc = crypto_kem_CIPHERTEXTBYTES; storage_kem_sntrup1277_t = callocplus(crypto_kem_BYTES); test_kem_sntrup1277_t = aligned(storage_kem_sntrup1277_t,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup1277_p2 = callocplus(maxalloc); test_kem_sntrup1277_p2 = aligned(storage_kem_sntrup1277_p2,crypto_kem_PUBLICKEYBYTES); storage_kem_sntrup1277_s2 = callocplus(maxalloc); test_kem_sntrup1277_s2 = aligned(storage_kem_sntrup1277_s2,crypto_kem_SECRETKEYBYTES); storage_kem_sntrup1277_k2 = callocplus(maxalloc); test_kem_sntrup1277_k2 = aligned(storage_kem_sntrup1277_k2,crypto_kem_BYTES); storage_kem_sntrup1277_c2 = callocplus(maxalloc); test_kem_sntrup1277_c2 = aligned(storage_kem_sntrup1277_c2,crypto_kem_CIPHERTEXTBYTES); storage_kem_sntrup1277_t2 = callocplus(maxalloc); test_kem_sntrup1277_t2 = aligned(storage_kem_sntrup1277_t2,crypto_kem_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("kem_sntrup1277 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup1277();++impl) forked(test_kem_sntrup1277_impl,impl); ++test_kem_sntrup1277_p; ++test_kem_sntrup1277_s; ++test_kem_sntrup1277_k; ++test_kem_sntrup1277_c; ++test_kem_sntrup1277_t; ++test_kem_sntrup1277_p2; ++test_kem_sntrup1277_s2; ++test_kem_sntrup1277_k2; ++test_kem_sntrup1277_c2; ++test_kem_sntrup1277_t2; } free(storage_kem_sntrup1277_t2); free(storage_kem_sntrup1277_c2); free(storage_kem_sntrup1277_k2); free(storage_kem_sntrup1277_s2); free(storage_kem_sntrup1277_p2); free(storage_kem_sntrup1277_t); free(storage_kem_sntrup1277_c); free(storage_kem_sntrup1277_k); free(storage_kem_sntrup1277_s); free(storage_kem_sntrup1277_p); } #undef crypto_kem_SECRETKEYBYTES #undef crypto_kem_PUBLICKEYBYTES #undef crypto_kem_CIPHERTEXTBYTES #undef crypto_kem_BYTES libntruprime-20241021/command/ntruprime-test_kem_sntrup653.c0000644000000000000000000002167614705505543022476 0ustar rootroot/* ----- kem/sntrup653, derived from supercop/crypto_kem/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *kem_sntrup653_checksums[] = { "dda0bd7591a594a50d92d582175ec8465f5e17e464d115d3320de3b3baf82d1f", "573607988fa717eb6a3f951e4263581130b77f80b3c4b3a05c416069ae8c4cf3", } ; static void (*crypto_kem_keypair)(unsigned char *,unsigned char *); static void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); static void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); #define crypto_kem_SECRETKEYBYTES ntruprime_kem_sntrup653_SECRETKEYBYTES #define crypto_kem_PUBLICKEYBYTES ntruprime_kem_sntrup653_PUBLICKEYBYTES #define crypto_kem_CIPHERTEXTBYTES ntruprime_kem_sntrup653_CIPHERTEXTBYTES #define crypto_kem_BYTES ntruprime_kem_sntrup653_BYTES static void *storage_kem_sntrup653_p; static unsigned char *test_kem_sntrup653_p; static void *storage_kem_sntrup653_s; static unsigned char *test_kem_sntrup653_s; static void *storage_kem_sntrup653_k; static unsigned char *test_kem_sntrup653_k; static void *storage_kem_sntrup653_c; static unsigned char *test_kem_sntrup653_c; static void *storage_kem_sntrup653_t; static unsigned char *test_kem_sntrup653_t; static void *storage_kem_sntrup653_p2; static unsigned char *test_kem_sntrup653_p2; static void *storage_kem_sntrup653_s2; static unsigned char *test_kem_sntrup653_s2; static void *storage_kem_sntrup653_k2; static unsigned char *test_kem_sntrup653_k2; static void *storage_kem_sntrup653_c2; static unsigned char *test_kem_sntrup653_c2; static void *storage_kem_sntrup653_t2; static unsigned char *test_kem_sntrup653_t2; static void test_kem_sntrup653_impl(long long impl) { unsigned char *p = test_kem_sntrup653_p; unsigned char *s = test_kem_sntrup653_s; unsigned char *k = test_kem_sntrup653_k; unsigned char *c = test_kem_sntrup653_c; unsigned char *t = test_kem_sntrup653_t; unsigned char *p2 = test_kem_sntrup653_p2; unsigned char *s2 = test_kem_sntrup653_s2; unsigned char *k2 = test_kem_sntrup653_k2; unsigned char *c2 = test_kem_sntrup653_c2; unsigned char *t2 = test_kem_sntrup653_t2; long long plen = crypto_kem_PUBLICKEYBYTES; long long slen = crypto_kem_SECRETKEYBYTES; long long klen = crypto_kem_BYTES; long long clen = crypto_kem_CIPHERTEXTBYTES; long long tlen = crypto_kem_BYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_kem_sntrup653_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup653_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup653_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup653_dec(impl); printf("kem_sntrup653 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup653_implementation(impl),ntruprime_dispatch_kem_sntrup653_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup653_keypair; crypto_kem_enc = ntruprime_kem_sntrup653_enc; crypto_kem_dec = ntruprime_kem_sntrup653_dec; printf("kem_sntrup653 selected implementation %s compiler %s\n",ntruprime_kem_sntrup653_implementation(),ntruprime_kem_sntrup653_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 64 : 8; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(p2,p,plen); output_prepare(s2,s,slen); crypto_kem_keypair(p,s); public(p,plen); public(s,slen); checksum(p,plen); checksum(s,slen); output_compare(p2,p,plen,"crypto_kem_keypair"); output_compare(s2,s,slen,"crypto_kem_keypair"); output_prepare(c2,c,clen); output_prepare(k2,k,klen); memcpy(p2,p,plen); double_canary(p2,p,plen); secret(p,plen); crypto_kem_enc(c,k,p); public(p,plen); public(c,clen); public(k,klen); checksum(c,clen); checksum(k,klen); output_compare(c2,c,clen,"crypto_kem_enc"); output_compare(k2,k,klen,"crypto_kem_enc"); input_compare(p2,p,plen,"crypto_kem_enc"); output_prepare(t2,t,tlen); memcpy(c2,c,clen); double_canary(c2,c,clen); memcpy(s2,s,slen); double_canary(s2,s,slen); secret(c,clen); secret(s,slen); crypto_kem_dec(t,c,s); public(c,clen); public(s,slen); public(t,tlen); if (memcmp(t,k,klen) != 0) fail("failure: crypto_kem_dec does not match k\n"); checksum(t,tlen); output_compare(t2,t,tlen,"crypto_kem_dec"); input_compare(c2,c,clen,"crypto_kem_dec"); input_compare(s2,s,slen,"crypto_kem_dec"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s2,slen); crypto_kem_dec(t2,c2,s2); public(c2,clen); public(s2,slen); public(t2,tlen); if (memcmp(t2,t,tlen) != 0) fail("failure: crypto_kem_dec is nondeterministic\n"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s,slen); crypto_kem_dec(c2,c2,s); public(c2,tlen); public(s,slen); if (memcmp(c2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle c=t overlap\n"); memcpy(c2,c,clen); secret(c,clen); secret(s2,slen); crypto_kem_dec(s2,c,s2); public(s2,tlen); public(c,clen); if (memcmp(s2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle s=t overlap\n"); memcpy(s2,s,slen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); } checksum_expected(kem_sntrup653_checksums[checksumbig]); } } void test_kem_sntrup653(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup653")) return; storage_kem_sntrup653_p = callocplus(crypto_kem_PUBLICKEYBYTES); test_kem_sntrup653_p = aligned(storage_kem_sntrup653_p,crypto_kem_PUBLICKEYBYTES); if (crypto_kem_PUBLICKEYBYTES > maxalloc) maxalloc = crypto_kem_PUBLICKEYBYTES; storage_kem_sntrup653_s = callocplus(crypto_kem_SECRETKEYBYTES); test_kem_sntrup653_s = aligned(storage_kem_sntrup653_s,crypto_kem_SECRETKEYBYTES); if (crypto_kem_SECRETKEYBYTES > maxalloc) maxalloc = crypto_kem_SECRETKEYBYTES; storage_kem_sntrup653_k = callocplus(crypto_kem_BYTES); test_kem_sntrup653_k = aligned(storage_kem_sntrup653_k,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup653_c = callocplus(crypto_kem_CIPHERTEXTBYTES); test_kem_sntrup653_c = aligned(storage_kem_sntrup653_c,crypto_kem_CIPHERTEXTBYTES); if (crypto_kem_CIPHERTEXTBYTES > maxalloc) maxalloc = crypto_kem_CIPHERTEXTBYTES; storage_kem_sntrup653_t = callocplus(crypto_kem_BYTES); test_kem_sntrup653_t = aligned(storage_kem_sntrup653_t,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup653_p2 = callocplus(maxalloc); test_kem_sntrup653_p2 = aligned(storage_kem_sntrup653_p2,crypto_kem_PUBLICKEYBYTES); storage_kem_sntrup653_s2 = callocplus(maxalloc); test_kem_sntrup653_s2 = aligned(storage_kem_sntrup653_s2,crypto_kem_SECRETKEYBYTES); storage_kem_sntrup653_k2 = callocplus(maxalloc); test_kem_sntrup653_k2 = aligned(storage_kem_sntrup653_k2,crypto_kem_BYTES); storage_kem_sntrup653_c2 = callocplus(maxalloc); test_kem_sntrup653_c2 = aligned(storage_kem_sntrup653_c2,crypto_kem_CIPHERTEXTBYTES); storage_kem_sntrup653_t2 = callocplus(maxalloc); test_kem_sntrup653_t2 = aligned(storage_kem_sntrup653_t2,crypto_kem_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("kem_sntrup653 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup653();++impl) forked(test_kem_sntrup653_impl,impl); ++test_kem_sntrup653_p; ++test_kem_sntrup653_s; ++test_kem_sntrup653_k; ++test_kem_sntrup653_c; ++test_kem_sntrup653_t; ++test_kem_sntrup653_p2; ++test_kem_sntrup653_s2; ++test_kem_sntrup653_k2; ++test_kem_sntrup653_c2; ++test_kem_sntrup653_t2; } free(storage_kem_sntrup653_t2); free(storage_kem_sntrup653_c2); free(storage_kem_sntrup653_k2); free(storage_kem_sntrup653_s2); free(storage_kem_sntrup653_p2); free(storage_kem_sntrup653_t); free(storage_kem_sntrup653_c); free(storage_kem_sntrup653_k); free(storage_kem_sntrup653_s); free(storage_kem_sntrup653_p); } #undef crypto_kem_SECRETKEYBYTES #undef crypto_kem_PUBLICKEYBYTES #undef crypto_kem_CIPHERTEXTBYTES #undef crypto_kem_BYTES libntruprime-20241021/command/ntruprime-test_kem_sntrup761.c0000644000000000000000000002167614705505543022476 0ustar rootroot/* ----- kem/sntrup761, derived from supercop/crypto_kem/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *kem_sntrup761_checksums[] = { "4081ab3f61bac9aae91bff7f9b212855177591ec4427dff2a501be124c5bb97d", "730a572b64fa05a42bce7b1573edc04b70ef75909db309c012aa27f53f1f2f41", } ; static void (*crypto_kem_keypair)(unsigned char *,unsigned char *); static void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); static void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); #define crypto_kem_SECRETKEYBYTES ntruprime_kem_sntrup761_SECRETKEYBYTES #define crypto_kem_PUBLICKEYBYTES ntruprime_kem_sntrup761_PUBLICKEYBYTES #define crypto_kem_CIPHERTEXTBYTES ntruprime_kem_sntrup761_CIPHERTEXTBYTES #define crypto_kem_BYTES ntruprime_kem_sntrup761_BYTES static void *storage_kem_sntrup761_p; static unsigned char *test_kem_sntrup761_p; static void *storage_kem_sntrup761_s; static unsigned char *test_kem_sntrup761_s; static void *storage_kem_sntrup761_k; static unsigned char *test_kem_sntrup761_k; static void *storage_kem_sntrup761_c; static unsigned char *test_kem_sntrup761_c; static void *storage_kem_sntrup761_t; static unsigned char *test_kem_sntrup761_t; static void *storage_kem_sntrup761_p2; static unsigned char *test_kem_sntrup761_p2; static void *storage_kem_sntrup761_s2; static unsigned char *test_kem_sntrup761_s2; static void *storage_kem_sntrup761_k2; static unsigned char *test_kem_sntrup761_k2; static void *storage_kem_sntrup761_c2; static unsigned char *test_kem_sntrup761_c2; static void *storage_kem_sntrup761_t2; static unsigned char *test_kem_sntrup761_t2; static void test_kem_sntrup761_impl(long long impl) { unsigned char *p = test_kem_sntrup761_p; unsigned char *s = test_kem_sntrup761_s; unsigned char *k = test_kem_sntrup761_k; unsigned char *c = test_kem_sntrup761_c; unsigned char *t = test_kem_sntrup761_t; unsigned char *p2 = test_kem_sntrup761_p2; unsigned char *s2 = test_kem_sntrup761_s2; unsigned char *k2 = test_kem_sntrup761_k2; unsigned char *c2 = test_kem_sntrup761_c2; unsigned char *t2 = test_kem_sntrup761_t2; long long plen = crypto_kem_PUBLICKEYBYTES; long long slen = crypto_kem_SECRETKEYBYTES; long long klen = crypto_kem_BYTES; long long clen = crypto_kem_CIPHERTEXTBYTES; long long tlen = crypto_kem_BYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_kem_sntrup761_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup761_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup761_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup761_dec(impl); printf("kem_sntrup761 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup761_implementation(impl),ntruprime_dispatch_kem_sntrup761_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup761_keypair; crypto_kem_enc = ntruprime_kem_sntrup761_enc; crypto_kem_dec = ntruprime_kem_sntrup761_dec; printf("kem_sntrup761 selected implementation %s compiler %s\n",ntruprime_kem_sntrup761_implementation(),ntruprime_kem_sntrup761_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 64 : 8; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(p2,p,plen); output_prepare(s2,s,slen); crypto_kem_keypair(p,s); public(p,plen); public(s,slen); checksum(p,plen); checksum(s,slen); output_compare(p2,p,plen,"crypto_kem_keypair"); output_compare(s2,s,slen,"crypto_kem_keypair"); output_prepare(c2,c,clen); output_prepare(k2,k,klen); memcpy(p2,p,plen); double_canary(p2,p,plen); secret(p,plen); crypto_kem_enc(c,k,p); public(p,plen); public(c,clen); public(k,klen); checksum(c,clen); checksum(k,klen); output_compare(c2,c,clen,"crypto_kem_enc"); output_compare(k2,k,klen,"crypto_kem_enc"); input_compare(p2,p,plen,"crypto_kem_enc"); output_prepare(t2,t,tlen); memcpy(c2,c,clen); double_canary(c2,c,clen); memcpy(s2,s,slen); double_canary(s2,s,slen); secret(c,clen); secret(s,slen); crypto_kem_dec(t,c,s); public(c,clen); public(s,slen); public(t,tlen); if (memcmp(t,k,klen) != 0) fail("failure: crypto_kem_dec does not match k\n"); checksum(t,tlen); output_compare(t2,t,tlen,"crypto_kem_dec"); input_compare(c2,c,clen,"crypto_kem_dec"); input_compare(s2,s,slen,"crypto_kem_dec"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s2,slen); crypto_kem_dec(t2,c2,s2); public(c2,clen); public(s2,slen); public(t2,tlen); if (memcmp(t2,t,tlen) != 0) fail("failure: crypto_kem_dec is nondeterministic\n"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s,slen); crypto_kem_dec(c2,c2,s); public(c2,tlen); public(s,slen); if (memcmp(c2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle c=t overlap\n"); memcpy(c2,c,clen); secret(c,clen); secret(s2,slen); crypto_kem_dec(s2,c,s2); public(s2,tlen); public(c,clen); if (memcmp(s2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle s=t overlap\n"); memcpy(s2,s,slen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); } checksum_expected(kem_sntrup761_checksums[checksumbig]); } } void test_kem_sntrup761(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup761")) return; storage_kem_sntrup761_p = callocplus(crypto_kem_PUBLICKEYBYTES); test_kem_sntrup761_p = aligned(storage_kem_sntrup761_p,crypto_kem_PUBLICKEYBYTES); if (crypto_kem_PUBLICKEYBYTES > maxalloc) maxalloc = crypto_kem_PUBLICKEYBYTES; storage_kem_sntrup761_s = callocplus(crypto_kem_SECRETKEYBYTES); test_kem_sntrup761_s = aligned(storage_kem_sntrup761_s,crypto_kem_SECRETKEYBYTES); if (crypto_kem_SECRETKEYBYTES > maxalloc) maxalloc = crypto_kem_SECRETKEYBYTES; storage_kem_sntrup761_k = callocplus(crypto_kem_BYTES); test_kem_sntrup761_k = aligned(storage_kem_sntrup761_k,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup761_c = callocplus(crypto_kem_CIPHERTEXTBYTES); test_kem_sntrup761_c = aligned(storage_kem_sntrup761_c,crypto_kem_CIPHERTEXTBYTES); if (crypto_kem_CIPHERTEXTBYTES > maxalloc) maxalloc = crypto_kem_CIPHERTEXTBYTES; storage_kem_sntrup761_t = callocplus(crypto_kem_BYTES); test_kem_sntrup761_t = aligned(storage_kem_sntrup761_t,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup761_p2 = callocplus(maxalloc); test_kem_sntrup761_p2 = aligned(storage_kem_sntrup761_p2,crypto_kem_PUBLICKEYBYTES); storage_kem_sntrup761_s2 = callocplus(maxalloc); test_kem_sntrup761_s2 = aligned(storage_kem_sntrup761_s2,crypto_kem_SECRETKEYBYTES); storage_kem_sntrup761_k2 = callocplus(maxalloc); test_kem_sntrup761_k2 = aligned(storage_kem_sntrup761_k2,crypto_kem_BYTES); storage_kem_sntrup761_c2 = callocplus(maxalloc); test_kem_sntrup761_c2 = aligned(storage_kem_sntrup761_c2,crypto_kem_CIPHERTEXTBYTES); storage_kem_sntrup761_t2 = callocplus(maxalloc); test_kem_sntrup761_t2 = aligned(storage_kem_sntrup761_t2,crypto_kem_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("kem_sntrup761 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup761();++impl) forked(test_kem_sntrup761_impl,impl); ++test_kem_sntrup761_p; ++test_kem_sntrup761_s; ++test_kem_sntrup761_k; ++test_kem_sntrup761_c; ++test_kem_sntrup761_t; ++test_kem_sntrup761_p2; ++test_kem_sntrup761_s2; ++test_kem_sntrup761_k2; ++test_kem_sntrup761_c2; ++test_kem_sntrup761_t2; } free(storage_kem_sntrup761_t2); free(storage_kem_sntrup761_c2); free(storage_kem_sntrup761_k2); free(storage_kem_sntrup761_s2); free(storage_kem_sntrup761_p2); free(storage_kem_sntrup761_t); free(storage_kem_sntrup761_c); free(storage_kem_sntrup761_k); free(storage_kem_sntrup761_s); free(storage_kem_sntrup761_p); } #undef crypto_kem_SECRETKEYBYTES #undef crypto_kem_PUBLICKEYBYTES #undef crypto_kem_CIPHERTEXTBYTES #undef crypto_kem_BYTES libntruprime-20241021/command/ntruprime-test_kem_sntrup857.c0000644000000000000000000002167614705505543022504 0ustar rootroot/* ----- kem/sntrup857, derived from supercop/crypto_kem/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *kem_sntrup857_checksums[] = { "9b5d45689313eea407b627421e453bec7c563fd5430901d217cb4a868b5a2435", "26f05b6f705531a3605d19304d98ca013f8c163ec2cf39b18767d9ba0a5c744d", } ; static void (*crypto_kem_keypair)(unsigned char *,unsigned char *); static void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); static void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); #define crypto_kem_SECRETKEYBYTES ntruprime_kem_sntrup857_SECRETKEYBYTES #define crypto_kem_PUBLICKEYBYTES ntruprime_kem_sntrup857_PUBLICKEYBYTES #define crypto_kem_CIPHERTEXTBYTES ntruprime_kem_sntrup857_CIPHERTEXTBYTES #define crypto_kem_BYTES ntruprime_kem_sntrup857_BYTES static void *storage_kem_sntrup857_p; static unsigned char *test_kem_sntrup857_p; static void *storage_kem_sntrup857_s; static unsigned char *test_kem_sntrup857_s; static void *storage_kem_sntrup857_k; static unsigned char *test_kem_sntrup857_k; static void *storage_kem_sntrup857_c; static unsigned char *test_kem_sntrup857_c; static void *storage_kem_sntrup857_t; static unsigned char *test_kem_sntrup857_t; static void *storage_kem_sntrup857_p2; static unsigned char *test_kem_sntrup857_p2; static void *storage_kem_sntrup857_s2; static unsigned char *test_kem_sntrup857_s2; static void *storage_kem_sntrup857_k2; static unsigned char *test_kem_sntrup857_k2; static void *storage_kem_sntrup857_c2; static unsigned char *test_kem_sntrup857_c2; static void *storage_kem_sntrup857_t2; static unsigned char *test_kem_sntrup857_t2; static void test_kem_sntrup857_impl(long long impl) { unsigned char *p = test_kem_sntrup857_p; unsigned char *s = test_kem_sntrup857_s; unsigned char *k = test_kem_sntrup857_k; unsigned char *c = test_kem_sntrup857_c; unsigned char *t = test_kem_sntrup857_t; unsigned char *p2 = test_kem_sntrup857_p2; unsigned char *s2 = test_kem_sntrup857_s2; unsigned char *k2 = test_kem_sntrup857_k2; unsigned char *c2 = test_kem_sntrup857_c2; unsigned char *t2 = test_kem_sntrup857_t2; long long plen = crypto_kem_PUBLICKEYBYTES; long long slen = crypto_kem_SECRETKEYBYTES; long long klen = crypto_kem_BYTES; long long clen = crypto_kem_CIPHERTEXTBYTES; long long tlen = crypto_kem_BYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_kem_sntrup857_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup857_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup857_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup857_dec(impl); printf("kem_sntrup857 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup857_implementation(impl),ntruprime_dispatch_kem_sntrup857_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup857_keypair; crypto_kem_enc = ntruprime_kem_sntrup857_enc; crypto_kem_dec = ntruprime_kem_sntrup857_dec; printf("kem_sntrup857 selected implementation %s compiler %s\n",ntruprime_kem_sntrup857_implementation(),ntruprime_kem_sntrup857_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 64 : 8; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(p2,p,plen); output_prepare(s2,s,slen); crypto_kem_keypair(p,s); public(p,plen); public(s,slen); checksum(p,plen); checksum(s,slen); output_compare(p2,p,plen,"crypto_kem_keypair"); output_compare(s2,s,slen,"crypto_kem_keypair"); output_prepare(c2,c,clen); output_prepare(k2,k,klen); memcpy(p2,p,plen); double_canary(p2,p,plen); secret(p,plen); crypto_kem_enc(c,k,p); public(p,plen); public(c,clen); public(k,klen); checksum(c,clen); checksum(k,klen); output_compare(c2,c,clen,"crypto_kem_enc"); output_compare(k2,k,klen,"crypto_kem_enc"); input_compare(p2,p,plen,"crypto_kem_enc"); output_prepare(t2,t,tlen); memcpy(c2,c,clen); double_canary(c2,c,clen); memcpy(s2,s,slen); double_canary(s2,s,slen); secret(c,clen); secret(s,slen); crypto_kem_dec(t,c,s); public(c,clen); public(s,slen); public(t,tlen); if (memcmp(t,k,klen) != 0) fail("failure: crypto_kem_dec does not match k\n"); checksum(t,tlen); output_compare(t2,t,tlen,"crypto_kem_dec"); input_compare(c2,c,clen,"crypto_kem_dec"); input_compare(s2,s,slen,"crypto_kem_dec"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s2,slen); crypto_kem_dec(t2,c2,s2); public(c2,clen); public(s2,slen); public(t2,tlen); if (memcmp(t2,t,tlen) != 0) fail("failure: crypto_kem_dec is nondeterministic\n"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s,slen); crypto_kem_dec(c2,c2,s); public(c2,tlen); public(s,slen); if (memcmp(c2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle c=t overlap\n"); memcpy(c2,c,clen); secret(c,clen); secret(s2,slen); crypto_kem_dec(s2,c,s2); public(s2,tlen); public(c,clen); if (memcmp(s2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle s=t overlap\n"); memcpy(s2,s,slen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); } checksum_expected(kem_sntrup857_checksums[checksumbig]); } } void test_kem_sntrup857(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup857")) return; storage_kem_sntrup857_p = callocplus(crypto_kem_PUBLICKEYBYTES); test_kem_sntrup857_p = aligned(storage_kem_sntrup857_p,crypto_kem_PUBLICKEYBYTES); if (crypto_kem_PUBLICKEYBYTES > maxalloc) maxalloc = crypto_kem_PUBLICKEYBYTES; storage_kem_sntrup857_s = callocplus(crypto_kem_SECRETKEYBYTES); test_kem_sntrup857_s = aligned(storage_kem_sntrup857_s,crypto_kem_SECRETKEYBYTES); if (crypto_kem_SECRETKEYBYTES > maxalloc) maxalloc = crypto_kem_SECRETKEYBYTES; storage_kem_sntrup857_k = callocplus(crypto_kem_BYTES); test_kem_sntrup857_k = aligned(storage_kem_sntrup857_k,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup857_c = callocplus(crypto_kem_CIPHERTEXTBYTES); test_kem_sntrup857_c = aligned(storage_kem_sntrup857_c,crypto_kem_CIPHERTEXTBYTES); if (crypto_kem_CIPHERTEXTBYTES > maxalloc) maxalloc = crypto_kem_CIPHERTEXTBYTES; storage_kem_sntrup857_t = callocplus(crypto_kem_BYTES); test_kem_sntrup857_t = aligned(storage_kem_sntrup857_t,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup857_p2 = callocplus(maxalloc); test_kem_sntrup857_p2 = aligned(storage_kem_sntrup857_p2,crypto_kem_PUBLICKEYBYTES); storage_kem_sntrup857_s2 = callocplus(maxalloc); test_kem_sntrup857_s2 = aligned(storage_kem_sntrup857_s2,crypto_kem_SECRETKEYBYTES); storage_kem_sntrup857_k2 = callocplus(maxalloc); test_kem_sntrup857_k2 = aligned(storage_kem_sntrup857_k2,crypto_kem_BYTES); storage_kem_sntrup857_c2 = callocplus(maxalloc); test_kem_sntrup857_c2 = aligned(storage_kem_sntrup857_c2,crypto_kem_CIPHERTEXTBYTES); storage_kem_sntrup857_t2 = callocplus(maxalloc); test_kem_sntrup857_t2 = aligned(storage_kem_sntrup857_t2,crypto_kem_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("kem_sntrup857 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup857();++impl) forked(test_kem_sntrup857_impl,impl); ++test_kem_sntrup857_p; ++test_kem_sntrup857_s; ++test_kem_sntrup857_k; ++test_kem_sntrup857_c; ++test_kem_sntrup857_t; ++test_kem_sntrup857_p2; ++test_kem_sntrup857_s2; ++test_kem_sntrup857_k2; ++test_kem_sntrup857_c2; ++test_kem_sntrup857_t2; } free(storage_kem_sntrup857_t2); free(storage_kem_sntrup857_c2); free(storage_kem_sntrup857_k2); free(storage_kem_sntrup857_s2); free(storage_kem_sntrup857_p2); free(storage_kem_sntrup857_t); free(storage_kem_sntrup857_c); free(storage_kem_sntrup857_k); free(storage_kem_sntrup857_s); free(storage_kem_sntrup857_p); } #undef crypto_kem_SECRETKEYBYTES #undef crypto_kem_PUBLICKEYBYTES #undef crypto_kem_CIPHERTEXTBYTES #undef crypto_kem_BYTES libntruprime-20241021/command/ntruprime-test_kem_sntrup953.c0000644000000000000000000002167614705505543022501 0ustar rootroot/* ----- kem/sntrup953, derived from supercop/crypto_kem/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *kem_sntrup953_checksums[] = { "6f497ec200d79d3a509f5b6ba13489ca97ce9bf9238e07c9079b62e77112828c", "f09bd596d313fce6981b8d8135205442866823f295e68195257fa035188727c5", } ; static void (*crypto_kem_keypair)(unsigned char *,unsigned char *); static void (*crypto_kem_enc)(unsigned char *,unsigned char *,const unsigned char *); static void (*crypto_kem_dec)(unsigned char *,const unsigned char *,const unsigned char *); #define crypto_kem_SECRETKEYBYTES ntruprime_kem_sntrup953_SECRETKEYBYTES #define crypto_kem_PUBLICKEYBYTES ntruprime_kem_sntrup953_PUBLICKEYBYTES #define crypto_kem_CIPHERTEXTBYTES ntruprime_kem_sntrup953_CIPHERTEXTBYTES #define crypto_kem_BYTES ntruprime_kem_sntrup953_BYTES static void *storage_kem_sntrup953_p; static unsigned char *test_kem_sntrup953_p; static void *storage_kem_sntrup953_s; static unsigned char *test_kem_sntrup953_s; static void *storage_kem_sntrup953_k; static unsigned char *test_kem_sntrup953_k; static void *storage_kem_sntrup953_c; static unsigned char *test_kem_sntrup953_c; static void *storage_kem_sntrup953_t; static unsigned char *test_kem_sntrup953_t; static void *storage_kem_sntrup953_p2; static unsigned char *test_kem_sntrup953_p2; static void *storage_kem_sntrup953_s2; static unsigned char *test_kem_sntrup953_s2; static void *storage_kem_sntrup953_k2; static unsigned char *test_kem_sntrup953_k2; static void *storage_kem_sntrup953_c2; static unsigned char *test_kem_sntrup953_c2; static void *storage_kem_sntrup953_t2; static unsigned char *test_kem_sntrup953_t2; static void test_kem_sntrup953_impl(long long impl) { unsigned char *p = test_kem_sntrup953_p; unsigned char *s = test_kem_sntrup953_s; unsigned char *k = test_kem_sntrup953_k; unsigned char *c = test_kem_sntrup953_c; unsigned char *t = test_kem_sntrup953_t; unsigned char *p2 = test_kem_sntrup953_p2; unsigned char *s2 = test_kem_sntrup953_s2; unsigned char *k2 = test_kem_sntrup953_k2; unsigned char *c2 = test_kem_sntrup953_c2; unsigned char *t2 = test_kem_sntrup953_t2; long long plen = crypto_kem_PUBLICKEYBYTES; long long slen = crypto_kem_SECRETKEYBYTES; long long klen = crypto_kem_BYTES; long long clen = crypto_kem_CIPHERTEXTBYTES; long long tlen = crypto_kem_BYTES; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_kem_sntrup953_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_kem_keypair = ntruprime_dispatch_kem_sntrup953_keypair(impl); crypto_kem_enc = ntruprime_dispatch_kem_sntrup953_enc(impl); crypto_kem_dec = ntruprime_dispatch_kem_sntrup953_dec(impl); printf("kem_sntrup953 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_kem_sntrup953_implementation(impl),ntruprime_dispatch_kem_sntrup953_compiler(impl)); } else { crypto_kem_keypair = ntruprime_kem_sntrup953_keypair; crypto_kem_enc = ntruprime_kem_sntrup953_enc; crypto_kem_dec = ntruprime_kem_sntrup953_dec; printf("kem_sntrup953 selected implementation %s compiler %s\n",ntruprime_kem_sntrup953_implementation(),ntruprime_kem_sntrup953_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 64 : 8; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { output_prepare(p2,p,plen); output_prepare(s2,s,slen); crypto_kem_keypair(p,s); public(p,plen); public(s,slen); checksum(p,plen); checksum(s,slen); output_compare(p2,p,plen,"crypto_kem_keypair"); output_compare(s2,s,slen,"crypto_kem_keypair"); output_prepare(c2,c,clen); output_prepare(k2,k,klen); memcpy(p2,p,plen); double_canary(p2,p,plen); secret(p,plen); crypto_kem_enc(c,k,p); public(p,plen); public(c,clen); public(k,klen); checksum(c,clen); checksum(k,klen); output_compare(c2,c,clen,"crypto_kem_enc"); output_compare(k2,k,klen,"crypto_kem_enc"); input_compare(p2,p,plen,"crypto_kem_enc"); output_prepare(t2,t,tlen); memcpy(c2,c,clen); double_canary(c2,c,clen); memcpy(s2,s,slen); double_canary(s2,s,slen); secret(c,clen); secret(s,slen); crypto_kem_dec(t,c,s); public(c,clen); public(s,slen); public(t,tlen); if (memcmp(t,k,klen) != 0) fail("failure: crypto_kem_dec does not match k\n"); checksum(t,tlen); output_compare(t2,t,tlen,"crypto_kem_dec"); input_compare(c2,c,clen,"crypto_kem_dec"); input_compare(s2,s,slen,"crypto_kem_dec"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s2,slen); crypto_kem_dec(t2,c2,s2); public(c2,clen); public(s2,slen); public(t2,tlen); if (memcmp(t2,t,tlen) != 0) fail("failure: crypto_kem_dec is nondeterministic\n"); double_canary(t2,t,tlen); double_canary(c2,c,clen); double_canary(s2,s,slen); secret(c2,clen); secret(s,slen); crypto_kem_dec(c2,c2,s); public(c2,tlen); public(s,slen); if (memcmp(c2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle c=t overlap\n"); memcpy(c2,c,clen); secret(c,clen); secret(s2,slen); crypto_kem_dec(s2,c,s2); public(s2,tlen); public(c,clen); if (memcmp(s2,t,tlen) != 0) fail("failure: crypto_kem_dec does not handle s=t overlap\n"); memcpy(s2,s,slen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); c[myrandom() % clen] += 1 + (myrandom() % 255); crypto_kem_dec(t,c,s); checksum(t,tlen); } checksum_expected(kem_sntrup953_checksums[checksumbig]); } } void test_kem_sntrup953(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"kem")) return; if (targetp && strcmp(targetp,"sntrup953")) return; storage_kem_sntrup953_p = callocplus(crypto_kem_PUBLICKEYBYTES); test_kem_sntrup953_p = aligned(storage_kem_sntrup953_p,crypto_kem_PUBLICKEYBYTES); if (crypto_kem_PUBLICKEYBYTES > maxalloc) maxalloc = crypto_kem_PUBLICKEYBYTES; storage_kem_sntrup953_s = callocplus(crypto_kem_SECRETKEYBYTES); test_kem_sntrup953_s = aligned(storage_kem_sntrup953_s,crypto_kem_SECRETKEYBYTES); if (crypto_kem_SECRETKEYBYTES > maxalloc) maxalloc = crypto_kem_SECRETKEYBYTES; storage_kem_sntrup953_k = callocplus(crypto_kem_BYTES); test_kem_sntrup953_k = aligned(storage_kem_sntrup953_k,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup953_c = callocplus(crypto_kem_CIPHERTEXTBYTES); test_kem_sntrup953_c = aligned(storage_kem_sntrup953_c,crypto_kem_CIPHERTEXTBYTES); if (crypto_kem_CIPHERTEXTBYTES > maxalloc) maxalloc = crypto_kem_CIPHERTEXTBYTES; storage_kem_sntrup953_t = callocplus(crypto_kem_BYTES); test_kem_sntrup953_t = aligned(storage_kem_sntrup953_t,crypto_kem_BYTES); if (crypto_kem_BYTES > maxalloc) maxalloc = crypto_kem_BYTES; storage_kem_sntrup953_p2 = callocplus(maxalloc); test_kem_sntrup953_p2 = aligned(storage_kem_sntrup953_p2,crypto_kem_PUBLICKEYBYTES); storage_kem_sntrup953_s2 = callocplus(maxalloc); test_kem_sntrup953_s2 = aligned(storage_kem_sntrup953_s2,crypto_kem_SECRETKEYBYTES); storage_kem_sntrup953_k2 = callocplus(maxalloc); test_kem_sntrup953_k2 = aligned(storage_kem_sntrup953_k2,crypto_kem_BYTES); storage_kem_sntrup953_c2 = callocplus(maxalloc); test_kem_sntrup953_c2 = aligned(storage_kem_sntrup953_c2,crypto_kem_CIPHERTEXTBYTES); storage_kem_sntrup953_t2 = callocplus(maxalloc); test_kem_sntrup953_t2 = aligned(storage_kem_sntrup953_t2,crypto_kem_BYTES); for (long long offset = 0;offset < 2;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("kem_sntrup953 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_kem_sntrup953();++impl) forked(test_kem_sntrup953_impl,impl); ++test_kem_sntrup953_p; ++test_kem_sntrup953_s; ++test_kem_sntrup953_k; ++test_kem_sntrup953_c; ++test_kem_sntrup953_t; ++test_kem_sntrup953_p2; ++test_kem_sntrup953_s2; ++test_kem_sntrup953_k2; ++test_kem_sntrup953_c2; ++test_kem_sntrup953_t2; } free(storage_kem_sntrup953_t2); free(storage_kem_sntrup953_c2); free(storage_kem_sntrup953_k2); free(storage_kem_sntrup953_s2); free(storage_kem_sntrup953_p2); free(storage_kem_sntrup953_t); free(storage_kem_sntrup953_c); free(storage_kem_sntrup953_k); free(storage_kem_sntrup953_s); free(storage_kem_sntrup953_p); } #undef crypto_kem_SECRETKEYBYTES #undef crypto_kem_PUBLICKEYBYTES #undef crypto_kem_CIPHERTEXTBYTES #undef crypto_kem_BYTES libntruprime-20241021/command/ntruprime-test_sort_int32.c0000644000000000000000000000647214705505543022054 0ustar rootroot/* ----- sort/int32, derived from supercop/crypto_sort/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *sort_int32_checksums[] = { "3458da92fdba9924c019db57dd7079f7613df0e243f3b312d10d94781af8c29a", "7265f7d8ed54b4a3bd12db9648e246615363373e7044c8d1b7c789ebfc177629", } ; static void (*crypto_sort)(void *,long long); #define crypto_sort_BYTES ntruprime_sort_int32_BYTES static void *storage_sort_int32_x; static unsigned char *test_sort_int32_x; static void *storage_sort_int32_x2; static unsigned char *test_sort_int32_x2; static void test_sort_int32_impl(long long impl) { unsigned char *x = test_sort_int32_x; unsigned char *x2 = test_sort_int32_x2; long long xlen; long long xwords; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_sort_int32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_sort = ntruprime_dispatch_sort_int32(impl); printf("sort_int32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_sort_int32_implementation(impl),ntruprime_dispatch_sort_int32_compiler(impl)); } else { crypto_sort = ntruprime_sort_int32; printf("sort_int32 selected implementation %s compiler %s\n",ntruprime_sort_int32_implementation(),ntruprime_sort_int32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; long long maxtest = checksumbig ? 4096 : 128; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xwords = myrandom() % (maxtest + 1); xlen = xwords*crypto_sort_BYTES; input_prepare(x2,x,xlen); endianness(x,xwords,crypto_sort_BYTES); secret(x,xlen); crypto_sort(x,xwords); public(x,xlen); endianness(x,xwords,crypto_sort_BYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_sort"); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_sort_BYTES); secret(x2,xlen); crypto_sort(x2,xwords); public(x2,xlen); endianness(x2,xwords,crypto_sort_BYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_sort is nondeterministic\n"); } checksum_expected(sort_int32_checksums[checksumbig]); } } void test_sort_int32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"sort")) return; if (targetp && strcmp(targetp,"int32")) return; storage_sort_int32_x = callocplus(ntruprime_sort_int32_BYTES*4096); test_sort_int32_x = aligned(storage_sort_int32_x,ntruprime_sort_int32_BYTES*4096); if (ntruprime_sort_int32_BYTES*4096 > maxalloc) maxalloc = ntruprime_sort_int32_BYTES*4096; storage_sort_int32_x2 = callocplus(maxalloc); test_sort_int32_x2 = aligned(storage_sort_int32_x2,ntruprime_sort_int32_BYTES*4096); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("sort_int32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_sort_int32();++impl) forked(test_sort_int32_impl,impl); ++test_sort_int32_x; ++test_sort_int32_x2; } free(storage_sort_int32_x2); free(storage_sort_int32_x); } #undef crypto_sort_BYTES libntruprime-20241021/command/ntruprime-test_sort_uint32.c0000644000000000000000000000654214705505543022237 0ustar rootroot/* ----- sort/uint32, derived from supercop/crypto_sort/try.c */ #include #include #include #include #include #include "ntruprime_test.h" #define fail ((ok = 0),printf) static const char *sort_uint32_checksums[] = { "83fc714d7acc0375aa6657bd36d3324a6cbc503f68019345651be8a88534c3e2", "30921a0be2d73a185181f0ec842fa0fa73cd6e958fc03411d435f14a3fc64c89", } ; static void (*crypto_sort)(void *,long long); #define crypto_sort_BYTES ntruprime_sort_uint32_BYTES static void *storage_sort_uint32_x; static unsigned char *test_sort_uint32_x; static void *storage_sort_uint32_x2; static unsigned char *test_sort_uint32_x2; static void test_sort_uint32_impl(long long impl) { unsigned char *x = test_sort_uint32_x; unsigned char *x2 = test_sort_uint32_x2; long long xlen; long long xwords; if (targeti && strcmp(targeti,".") && strcmp(targeti,ntruprime_dispatch_sort_uint32_implementation(impl))) return; if (targetn && atol(targetn) != impl) return; if (impl >= 0) { crypto_sort = ntruprime_dispatch_sort_uint32(impl); printf("sort_uint32 %lld implementation %s compiler %s\n",impl,ntruprime_dispatch_sort_uint32_implementation(impl),ntruprime_dispatch_sort_uint32_compiler(impl)); } else { crypto_sort = ntruprime_sort_uint32; printf("sort_uint32 selected implementation %s compiler %s\n",ntruprime_sort_uint32_implementation(),ntruprime_sort_uint32_compiler()); } for (long long checksumbig = 0;checksumbig < 2;++checksumbig) { long long loops = checksumbig ? 4096 : 1024; long long maxtest = checksumbig ? 4096 : 128; checksum_clear(); for (long long loop = 0;loop < loops;++loop) { xwords = myrandom() % (maxtest + 1); xlen = xwords*crypto_sort_BYTES; input_prepare(x2,x,xlen); endianness(x,xwords,crypto_sort_BYTES); secret(x,xlen); crypto_sort(x,xwords); public(x,xlen); endianness(x,xwords,crypto_sort_BYTES); checksum(x,xlen); output_compare(x2,x,xlen,"crypto_sort"); double_canary(x2,x,xlen); endianness(x2,xwords,crypto_sort_BYTES); secret(x2,xlen); crypto_sort(x2,xwords); public(x2,xlen); endianness(x2,xwords,crypto_sort_BYTES); if (memcmp(x2,x,xlen) != 0) fail("failure: crypto_sort is nondeterministic\n"); } checksum_expected(sort_uint32_checksums[checksumbig]); } } void test_sort_uint32(void) { long long maxalloc = 0; if (targeto && strcmp(targeto,"sort")) return; if (targetp && strcmp(targetp,"uint32")) return; storage_sort_uint32_x = callocplus(ntruprime_sort_uint32_BYTES*4096); test_sort_uint32_x = aligned(storage_sort_uint32_x,ntruprime_sort_uint32_BYTES*4096); if (ntruprime_sort_uint32_BYTES*4096 > maxalloc) maxalloc = ntruprime_sort_uint32_BYTES*4096; storage_sort_uint32_x2 = callocplus(maxalloc); test_sort_uint32_x2 = aligned(storage_sort_uint32_x2,ntruprime_sort_uint32_BYTES*4096); for (long long offset = 0;offset < 1;++offset) { if (targetoffset && atol(targetoffset) != offset) continue; if (offset && valgrind) break; printf("sort_uint32 offset %lld\n",offset); for (long long impl = -1;impl < ntruprime_numimpl_sort_uint32();++impl) forked(test_sort_uint32_impl,impl); ++test_sort_uint32_x; ++test_sort_uint32_x2; } free(storage_sort_uint32_x2); free(storage_sort_uint32_x); } #undef crypto_sort_BYTES libntruprime-20241021/command/ntruprime_test.h0000644000000000000000000003441714705505543020055 0ustar rootroot#ifndef ntruprime_test_h #define ntruprime_test_h #define aligned ntruprime_test_aligned #define callocplus ntruprime_test_callocplus #define checksum ntruprime_test_checksum #define checksum_clear ntruprime_test_checksum_clear #define checksum_expected ntruprime_test_checksum_expected #define double_canary ntruprime_test_double_canary #define endianness ntruprime_test_endianness #define forked ntruprime_test_forked #define input_compare ntruprime_test_input_compare #define input_prepare ntruprime_test_input_prepare #define myrandom ntruprime_test_myrandom #define ok ntruprime_test_ok #define output_compare ntruprime_test_output_compare #define output_prepare ntruprime_test_output_prepare #define public ntruprime_test_public #define secret ntruprime_test_secret #define targeti ntruprime_test_targeti #define targetn ntruprime_test_targetn #define targetoffset ntruprime_test_targetoffset #define targeto ntruprime_test_targeto #define targetp ntruprime_test_targetp #define valgrind ntruprime_test_valgrind extern const char *targeto; extern const char *targetp; extern const char *targeti; extern const char *targetn; extern const char *targetoffset; extern int ok; extern int valgrind; extern unsigned long long myrandom(void); extern void forked(void (*)(long long),long long); extern void *aligned(void *,long long); extern void *callocplus(long long); extern void secret(void *,long long); extern void public(void *,long long); extern void double_canary(unsigned char *,unsigned char *,unsigned long long); extern void input_prepare(unsigned char *,unsigned char *,unsigned long long); extern void output_prepare(unsigned char *,unsigned char *,unsigned long long); extern void input_compare(const unsigned char *,const unsigned char *,unsigned long long,const char *); extern void output_compare(const unsigned char *,const unsigned char *,unsigned long long,const char *); extern void checksum_expected(const char *); extern void checksum(const unsigned char *,unsigned long long); extern void checksum_clear(void); extern void endianness(unsigned char *,unsigned long long,unsigned long long); #define test_hashblocks_sha512 ntruprime_test_hashblockssha512 extern void test_hashblocks_sha512(void); #define test_hash_sha512 ntruprime_test_hashsha512 extern void test_hash_sha512(void); #define test_decode_653x3 ntruprime_test_decode653x3 extern void test_decode_653x3(void); #define test_decode_653x1541 ntruprime_test_decode653x1541 extern void test_decode_653x1541(void); #define test_decode_653x4621 ntruprime_test_decode653x4621 extern void test_decode_653x4621(void); #define test_decode_653xint16 ntruprime_test_decode653xint16 extern void test_decode_653xint16(void); #define test_decode_653xint32 ntruprime_test_decode653xint32 extern void test_decode_653xint32(void); #define test_decode_761x3 ntruprime_test_decode761x3 extern void test_decode_761x3(void); #define test_decode_761x1531 ntruprime_test_decode761x1531 extern void test_decode_761x1531(void); #define test_decode_761x4591 ntruprime_test_decode761x4591 extern void test_decode_761x4591(void); #define test_decode_761xint16 ntruprime_test_decode761xint16 extern void test_decode_761xint16(void); #define test_decode_761xint32 ntruprime_test_decode761xint32 extern void test_decode_761xint32(void); #define test_decode_857x3 ntruprime_test_decode857x3 extern void test_decode_857x3(void); #define test_decode_857x1723 ntruprime_test_decode857x1723 extern void test_decode_857x1723(void); #define test_decode_857x5167 ntruprime_test_decode857x5167 extern void test_decode_857x5167(void); #define test_decode_857xint16 ntruprime_test_decode857xint16 extern void test_decode_857xint16(void); #define test_decode_857xint32 ntruprime_test_decode857xint32 extern void test_decode_857xint32(void); #define test_decode_953x3 ntruprime_test_decode953x3 extern void test_decode_953x3(void); #define test_decode_953x2115 ntruprime_test_decode953x2115 extern void test_decode_953x2115(void); #define test_decode_953x6343 ntruprime_test_decode953x6343 extern void test_decode_953x6343(void); #define test_decode_953xint16 ntruprime_test_decode953xint16 extern void test_decode_953xint16(void); #define test_decode_953xint32 ntruprime_test_decode953xint32 extern void test_decode_953xint32(void); #define test_decode_1013x3 ntruprime_test_decode1013x3 extern void test_decode_1013x3(void); #define test_decode_1013x2393 ntruprime_test_decode1013x2393 extern void test_decode_1013x2393(void); #define test_decode_1013x7177 ntruprime_test_decode1013x7177 extern void test_decode_1013x7177(void); #define test_decode_1013xint16 ntruprime_test_decode1013xint16 extern void test_decode_1013xint16(void); #define test_decode_1013xint32 ntruprime_test_decode1013xint32 extern void test_decode_1013xint32(void); #define test_decode_1277x3 ntruprime_test_decode1277x3 extern void test_decode_1277x3(void); #define test_decode_1277x2627 ntruprime_test_decode1277x2627 extern void test_decode_1277x2627(void); #define test_decode_1277x7879 ntruprime_test_decode1277x7879 extern void test_decode_1277x7879(void); #define test_decode_1277xint16 ntruprime_test_decode1277xint16 extern void test_decode_1277xint16(void); #define test_decode_1277xint32 ntruprime_test_decode1277xint32 extern void test_decode_1277xint32(void); #define test_decode_int16 ntruprime_test_decodeint16 extern void test_decode_int16(void); #define test_encode_653x3 ntruprime_test_encode653x3 extern void test_encode_653x3(void); #define test_encode_653x1541 ntruprime_test_encode653x1541 extern void test_encode_653x1541(void); #define test_encode_653x1541round ntruprime_test_encode653x1541round extern void test_encode_653x1541round(void); #define test_encode_653x4621 ntruprime_test_encode653x4621 extern void test_encode_653x4621(void); #define test_encode_653xfreeze3 ntruprime_test_encode653xfreeze3 extern void test_encode_653xfreeze3(void); #define test_encode_653xint16 ntruprime_test_encode653xint16 extern void test_encode_653xint16(void); #define test_encode_761x3 ntruprime_test_encode761x3 extern void test_encode_761x3(void); #define test_encode_761x1531 ntruprime_test_encode761x1531 extern void test_encode_761x1531(void); #define test_encode_761x1531round ntruprime_test_encode761x1531round extern void test_encode_761x1531round(void); #define test_encode_761x4591 ntruprime_test_encode761x4591 extern void test_encode_761x4591(void); #define test_encode_761xfreeze3 ntruprime_test_encode761xfreeze3 extern void test_encode_761xfreeze3(void); #define test_encode_761xint16 ntruprime_test_encode761xint16 extern void test_encode_761xint16(void); #define test_encode_857x3 ntruprime_test_encode857x3 extern void test_encode_857x3(void); #define test_encode_857x1723 ntruprime_test_encode857x1723 extern void test_encode_857x1723(void); #define test_encode_857x1723round ntruprime_test_encode857x1723round extern void test_encode_857x1723round(void); #define test_encode_857x5167 ntruprime_test_encode857x5167 extern void test_encode_857x5167(void); #define test_encode_857xfreeze3 ntruprime_test_encode857xfreeze3 extern void test_encode_857xfreeze3(void); #define test_encode_857xint16 ntruprime_test_encode857xint16 extern void test_encode_857xint16(void); #define test_encode_953x3 ntruprime_test_encode953x3 extern void test_encode_953x3(void); #define test_encode_953x2115 ntruprime_test_encode953x2115 extern void test_encode_953x2115(void); #define test_encode_953x2115round ntruprime_test_encode953x2115round extern void test_encode_953x2115round(void); #define test_encode_953x6343 ntruprime_test_encode953x6343 extern void test_encode_953x6343(void); #define test_encode_953xfreeze3 ntruprime_test_encode953xfreeze3 extern void test_encode_953xfreeze3(void); #define test_encode_953xint16 ntruprime_test_encode953xint16 extern void test_encode_953xint16(void); #define test_encode_1013x3 ntruprime_test_encode1013x3 extern void test_encode_1013x3(void); #define test_encode_1013x2393 ntruprime_test_encode1013x2393 extern void test_encode_1013x2393(void); #define test_encode_1013x2393round ntruprime_test_encode1013x2393round extern void test_encode_1013x2393round(void); #define test_encode_1013x7177 ntruprime_test_encode1013x7177 extern void test_encode_1013x7177(void); #define test_encode_1013xfreeze3 ntruprime_test_encode1013xfreeze3 extern void test_encode_1013xfreeze3(void); #define test_encode_1013xint16 ntruprime_test_encode1013xint16 extern void test_encode_1013xint16(void); #define test_encode_1277x3 ntruprime_test_encode1277x3 extern void test_encode_1277x3(void); #define test_encode_1277x2627 ntruprime_test_encode1277x2627 extern void test_encode_1277x2627(void); #define test_encode_1277x2627round ntruprime_test_encode1277x2627round extern void test_encode_1277x2627round(void); #define test_encode_1277x7879 ntruprime_test_encode1277x7879 extern void test_encode_1277x7879(void); #define test_encode_1277xfreeze3 ntruprime_test_encode1277xfreeze3 extern void test_encode_1277xfreeze3(void); #define test_encode_1277xint16 ntruprime_test_encode1277xint16 extern void test_encode_1277xint16(void); #define test_encode_int16 ntruprime_test_encodeint16 extern void test_encode_int16(void); #define test_sort_int32 ntruprime_test_sortint32 extern void test_sort_int32(void); #define test_sort_uint32 ntruprime_test_sortuint32 extern void test_sort_uint32(void); #define test_core_inv3sntrup653 ntruprime_test_coreinv3sntrup653 extern void test_core_inv3sntrup653(void); #define test_core_inv3sntrup761 ntruprime_test_coreinv3sntrup761 extern void test_core_inv3sntrup761(void); #define test_core_inv3sntrup857 ntruprime_test_coreinv3sntrup857 extern void test_core_inv3sntrup857(void); #define test_core_inv3sntrup953 ntruprime_test_coreinv3sntrup953 extern void test_core_inv3sntrup953(void); #define test_core_inv3sntrup1013 ntruprime_test_coreinv3sntrup1013 extern void test_core_inv3sntrup1013(void); #define test_core_inv3sntrup1277 ntruprime_test_coreinv3sntrup1277 extern void test_core_inv3sntrup1277(void); #define test_core_invsntrup653 ntruprime_test_coreinvsntrup653 extern void test_core_invsntrup653(void); #define test_core_invsntrup761 ntruprime_test_coreinvsntrup761 extern void test_core_invsntrup761(void); #define test_core_invsntrup857 ntruprime_test_coreinvsntrup857 extern void test_core_invsntrup857(void); #define test_core_invsntrup953 ntruprime_test_coreinvsntrup953 extern void test_core_invsntrup953(void); #define test_core_invsntrup1013 ntruprime_test_coreinvsntrup1013 extern void test_core_invsntrup1013(void); #define test_core_invsntrup1277 ntruprime_test_coreinvsntrup1277 extern void test_core_invsntrup1277(void); #define test_core_mult3sntrup653 ntruprime_test_coremult3sntrup653 extern void test_core_mult3sntrup653(void); #define test_core_mult3sntrup761 ntruprime_test_coremult3sntrup761 extern void test_core_mult3sntrup761(void); #define test_core_mult3sntrup857 ntruprime_test_coremult3sntrup857 extern void test_core_mult3sntrup857(void); #define test_core_mult3sntrup953 ntruprime_test_coremult3sntrup953 extern void test_core_mult3sntrup953(void); #define test_core_mult3sntrup1013 ntruprime_test_coremult3sntrup1013 extern void test_core_mult3sntrup1013(void); #define test_core_mult3sntrup1277 ntruprime_test_coremult3sntrup1277 extern void test_core_mult3sntrup1277(void); #define test_core_multsntrup653 ntruprime_test_coremultsntrup653 extern void test_core_multsntrup653(void); #define test_core_multsntrup761 ntruprime_test_coremultsntrup761 extern void test_core_multsntrup761(void); #define test_core_multsntrup857 ntruprime_test_coremultsntrup857 extern void test_core_multsntrup857(void); #define test_core_multsntrup953 ntruprime_test_coremultsntrup953 extern void test_core_multsntrup953(void); #define test_core_multsntrup1013 ntruprime_test_coremultsntrup1013 extern void test_core_multsntrup1013(void); #define test_core_multsntrup1277 ntruprime_test_coremultsntrup1277 extern void test_core_multsntrup1277(void); #define test_core_scale3sntrup653 ntruprime_test_corescale3sntrup653 extern void test_core_scale3sntrup653(void); #define test_core_scale3sntrup761 ntruprime_test_corescale3sntrup761 extern void test_core_scale3sntrup761(void); #define test_core_scale3sntrup857 ntruprime_test_corescale3sntrup857 extern void test_core_scale3sntrup857(void); #define test_core_scale3sntrup953 ntruprime_test_corescale3sntrup953 extern void test_core_scale3sntrup953(void); #define test_core_scale3sntrup1013 ntruprime_test_corescale3sntrup1013 extern void test_core_scale3sntrup1013(void); #define test_core_scale3sntrup1277 ntruprime_test_corescale3sntrup1277 extern void test_core_scale3sntrup1277(void); #define test_core_weightsntrup653 ntruprime_test_coreweightsntrup653 extern void test_core_weightsntrup653(void); #define test_core_weightsntrup761 ntruprime_test_coreweightsntrup761 extern void test_core_weightsntrup761(void); #define test_core_weightsntrup857 ntruprime_test_coreweightsntrup857 extern void test_core_weightsntrup857(void); #define test_core_weightsntrup953 ntruprime_test_coreweightsntrup953 extern void test_core_weightsntrup953(void); #define test_core_weightsntrup1013 ntruprime_test_coreweightsntrup1013 extern void test_core_weightsntrup1013(void); #define test_core_weightsntrup1277 ntruprime_test_coreweightsntrup1277 extern void test_core_weightsntrup1277(void); #define test_core_wforcesntrup653 ntruprime_test_corewforcesntrup653 extern void test_core_wforcesntrup653(void); #define test_core_wforcesntrup761 ntruprime_test_corewforcesntrup761 extern void test_core_wforcesntrup761(void); #define test_core_wforcesntrup857 ntruprime_test_corewforcesntrup857 extern void test_core_wforcesntrup857(void); #define test_core_wforcesntrup953 ntruprime_test_corewforcesntrup953 extern void test_core_wforcesntrup953(void); #define test_core_wforcesntrup1013 ntruprime_test_corewforcesntrup1013 extern void test_core_wforcesntrup1013(void); #define test_core_wforcesntrup1277 ntruprime_test_corewforcesntrup1277 extern void test_core_wforcesntrup1277(void); #define test_kem_sntrup653 ntruprime_test_kemsntrup653 extern void test_kem_sntrup653(void); #define test_kem_sntrup761 ntruprime_test_kemsntrup761 extern void test_kem_sntrup761(void); #define test_kem_sntrup857 ntruprime_test_kemsntrup857 extern void test_kem_sntrup857(void); #define test_kem_sntrup953 ntruprime_test_kemsntrup953 extern void test_kem_sntrup953(void); #define test_kem_sntrup1013 ntruprime_test_kemsntrup1013 extern void test_kem_sntrup1013(void); #define test_kem_sntrup1277 ntruprime_test_kemsntrup1277 extern void test_kem_sntrup1277(void); #endif libntruprime-20241021/command/print_cpuid.inc0000644000000000000000000000027514705505543017626 0ustar rootrootstatic void print_cpuid(void) { unsigned int cpuid[32]; ntruprime_cpuid(cpuid,32); printf("cpuid"); for (long long j = 0;j < 32;++j) printf(" %08x",cpuid[j]); printf("\n"); } libntruprime-20241021/command/sntrup1013-dec.c0000644000000000000000000000317414705505543017351 0ustar rootroot/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[sntrup1013_SECRETKEYBYTES]; static unsigned char c[sntrup1013_CIPHERTEXTBYTES]; static unsigned char k[sntrup1013_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup1013-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup1013-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"sntrup1013-dec: usage: sntrup1013-dec 7>sessionkey sessionkey #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup1013_PUBLICKEYBYTES]; static unsigned char c[sntrup1013_CIPHERTEXTBYTES]; static unsigned char k[sntrup1013_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup1013-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup1013-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"sntrup1013-enc: usage: sntrup1013-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup1013_PUBLICKEYBYTES]; static unsigned char sk[sntrup1013_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup1013-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup1013-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"sntrup1013-keypair: usage: sntrup1013-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"sntrup1013-keypair: usage: sntrup1013-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } sntrup1013_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } libntruprime-20241021/command/sntrup1277-dec.c0000644000000000000000000000317414705505543017365 0ustar rootroot/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[sntrup1277_SECRETKEYBYTES]; static unsigned char c[sntrup1277_CIPHERTEXTBYTES]; static unsigned char k[sntrup1277_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup1277-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup1277-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"sntrup1277-dec: usage: sntrup1277-dec 7>sessionkey sessionkey #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup1277_PUBLICKEYBYTES]; static unsigned char c[sntrup1277_CIPHERTEXTBYTES]; static unsigned char k[sntrup1277_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup1277-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup1277-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"sntrup1277-enc: usage: sntrup1277-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup1277_PUBLICKEYBYTES]; static unsigned char sk[sntrup1277_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup1277-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup1277-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"sntrup1277-keypair: usage: sntrup1277-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"sntrup1277-keypair: usage: sntrup1277-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } sntrup1277_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } libntruprime-20241021/command/sntrup653-dec.c0000644000000000000000000000316214705505543017277 0ustar rootroot/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[sntrup653_SECRETKEYBYTES]; static unsigned char c[sntrup653_CIPHERTEXTBYTES]; static unsigned char k[sntrup653_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup653-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup653-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"sntrup653-dec: usage: sntrup653-dec 7>sessionkey sessionkey #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup653_PUBLICKEYBYTES]; static unsigned char c[sntrup653_CIPHERTEXTBYTES]; static unsigned char k[sntrup653_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup653-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup653-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"sntrup653-enc: usage: sntrup653-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup653_PUBLICKEYBYTES]; static unsigned char sk[sntrup653_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup653-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup653-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"sntrup653-keypair: usage: sntrup653-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"sntrup653-keypair: usage: sntrup653-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } sntrup653_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } libntruprime-20241021/command/sntrup761-dec.c0000644000000000000000000000316214705505543017277 0ustar rootroot/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[sntrup761_SECRETKEYBYTES]; static unsigned char c[sntrup761_CIPHERTEXTBYTES]; static unsigned char k[sntrup761_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup761-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup761-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"sntrup761-dec: usage: sntrup761-dec 7>sessionkey sessionkey #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup761_PUBLICKEYBYTES]; static unsigned char c[sntrup761_CIPHERTEXTBYTES]; static unsigned char k[sntrup761_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup761-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup761-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"sntrup761-enc: usage: sntrup761-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup761_PUBLICKEYBYTES]; static unsigned char sk[sntrup761_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup761-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup761-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"sntrup761-keypair: usage: sntrup761-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"sntrup761-keypair: usage: sntrup761-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } sntrup761_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } libntruprime-20241021/command/sntrup857-dec.c0000644000000000000000000000316214705505543017305 0ustar rootroot/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[sntrup857_SECRETKEYBYTES]; static unsigned char c[sntrup857_CIPHERTEXTBYTES]; static unsigned char k[sntrup857_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup857-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup857-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"sntrup857-dec: usage: sntrup857-dec 7>sessionkey sessionkey #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup857_PUBLICKEYBYTES]; static unsigned char c[sntrup857_CIPHERTEXTBYTES]; static unsigned char k[sntrup857_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup857-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup857-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"sntrup857-enc: usage: sntrup857-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup857_PUBLICKEYBYTES]; static unsigned char sk[sntrup857_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup857-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup857-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"sntrup857-keypair: usage: sntrup857-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"sntrup857-keypair: usage: sntrup857-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } sntrup857_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } libntruprime-20241021/command/sntrup953-dec.c0000644000000000000000000000316214705505543017302 0ustar rootroot/* WARNING: auto-generated (by autogen/cli); do not edit */ #include #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char sk[sntrup953_SECRETKEYBYTES]; static unsigned char c[sntrup953_CIPHERTEXTBYTES]; static unsigned char k[sntrup953_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup953-dec: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup953-dec: fatal: %s\n",why); exit(111); } int main() { FILE *skfile; FILE *kfile; limits(); skfile = fdopen(8,"r"); if (!skfile) { fprintf(stderr,"sntrup953-dec: usage: sntrup953-dec 7>sessionkey sessionkey #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup953_PUBLICKEYBYTES]; static unsigned char c[sntrup953_CIPHERTEXTBYTES]; static unsigned char k[sntrup953_BYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup953-enc: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup953-enc: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *kfile; limits(); pkfile = fdopen(4,"r"); if (!pkfile) { fprintf(stderr,"sntrup953-enc: usage: sntrup953-enc >ciphertext 7>sessionkey 4ciphertext 7>sessionkey 4 #include #include #include #include "ntruprime.h" /* -lntruprime */ #include "limits.inc" static unsigned char pk[sntrup953_PUBLICKEYBYTES]; static unsigned char sk[sntrup953_SECRETKEYBYTES]; static void die_temp(const char *why,const char *why2) { if (why2) fprintf(stderr,"sntrup953-keypair: fatal: %s: %s\n",why,why2); else fprintf(stderr,"sntrup953-keypair: fatal: %s\n",why); exit(111); } int main() { FILE *pkfile; FILE *skfile; limits(); pkfile = fdopen(5,"w"); if (!pkfile) { fprintf(stderr,"sntrup953-keypair: usage: sntrup953-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 5 failed",strerror(errno)); } skfile = fdopen(9,"w"); if (!skfile) { fprintf(stderr,"sntrup953-keypair: usage: sntrup953-keypair 5>publickey 9>secretkey\n"); die_temp("fdopen 9 failed",strerror(errno)); } sntrup953_keypair(pk,sk); if (fwrite(pk,1,sizeof pk,pkfile) < sizeof pk) die_temp("write publickey failed",strerror(errno)); if (fflush(pkfile)) die_temp("write publickey failed",strerror(errno)); fclose(pkfile); if (fwrite(sk,1,sizeof sk,skfile) < sizeof sk) die_temp("write secretkey failed",strerror(errno)); if (fflush(skfile)) die_temp("write secretkey failed",strerror(errno)); fclose(skfile); return 0; } libntruprime-20241021/compilers/0000755000000000000000000000000014705505543015166 5ustar rootrootlibntruprime-20241021/compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma0000644000000000000000000000044514705505543026044 0ustar rootrootclang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake libntruprime-20241021/compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma.c0000644000000000000000000000310614705505543026262 0ustar rootroot/* gcc has __builtin_cpu_supports("avx2") but implemented it incorrectly until 2018: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85100 as of 2022, many machines still have buggy versions of gcc furthermore, why is checking just for avx2 enough? has intel guaranteed that it will never introduce a cpu with avx2 instructions and without (e.g.) sse4.2? so manually check cpuid and xgetbv here and include all the "lower" instruction sets rather than trying to guess which ones are implied */ #define CPUID(func,leaf,a,b,c,d) \ __asm("cpuid":"=a"(a),"=b"(b),"=c"(c),"=d"(d):"a"(func),"c"(leaf):) #define WANT_1_3 ((1<<23)|(1<<25)|(1<<26)) /* 23=mmx; 25=sse; 26=sse2 */ #define WANT_1_2 ((1<<0)|(1<<9)|(1<<12)|(1<<19)|(1<<20)|(1<<23)|(1<<27)|(1<<28)) /* 0=sse3; 9=ssse3; 12=fma; 19=sse41; 20=sse42; 23=popcnt; 27=osxsave; 28=avx */ #define WANT_7_1 ((1<<3)|(1<<5)|(1<<8)) /* 3=bmi1; 5=avx2; 8=bmi2 */ #define WANT_XCR ((1<<1)|(1<<2)) /* 1=xmm; 2=ymm */ int supports(void) { unsigned int cpuidmax,id0,id1,id2; unsigned int familymodelstepping; unsigned int feature0,feature1,feature2,feature3; unsigned int xcrlow,xcrhigh; CPUID(0,0,cpuidmax,id0,id1,id2); if (cpuidmax < 7) return 0; CPUID(1,0,familymodelstepping,feature1,feature2,feature3); if (WANT_1_2 != (WANT_1_2 & feature2)) return 0; if (WANT_1_3 != (WANT_1_3 & feature3)) return 0; CPUID(7,0,feature0,feature1,feature2,feature3); if (WANT_7_1 != (WANT_7_1 & feature1)) return 0; asm(".byte 15;.byte 1;.byte 208":"=a"(xcrlow),"=d"(xcrhigh):"c"(0)); if (WANT_XCR != (WANT_XCR & xcrlow)) return 0; return 1; } libntruprime-20241021/compilers/default0000644000000000000000000000011514705505543016532 0ustar rootrootclang -Wall -fPIC -fwrapv -Qunused-arguments -O2 gcc -Wall -fPIC -fwrapv -O3 libntruprime-20241021/configure0000755000000000000000000011360414705505543015105 0ustar rootroot#!/usr/bin/env python3 import os import shutil import sys import platform import subprocess import tempfile import hashlib import re def sha512(s): h = hashlib.sha512() h.update(s) return h.digest() prefix = '/usr/local' clean = True trim = True tryifunc = True valgrind = True darwin = platform.system() == 'Darwin' def hostsanitize(host): host = host.split('-')[0] host = ''.join(c for c in host if c in '_0123456789abcdefghijklmnopqrstuvwxyz') for prefix,result in ( ('amd64','amd64'), ('x86_64','amd64'), ('x86','x86'), ('i386','x86'), ('i486','x86'), ('i586','x86'), ('i686','x86'), ('arm64','arm64'), ('armv8','arm64'), ('aarch64','arm64'), ('arm','arm32'), ('riscv64','riscv64'), ('riscv','riscv32'), ('mips64big','mips64big'), ('mipsn32big','mipsn32big'), ('mips32big','mips32big'), ('mips64','mips64little'), ('mipsn32','mipsn32little'), ('mips32','mips32little'), ('ppc64little','ppc64little'), ('ppc64le','ppc64little'), ('ppc64','ppc64big'), ('powerpc64','ppc64big'), ('powerpc','ppc32big'), ('ppc','ppc32big'), ('sparc64','sparc64'), ('sparcv9','sparc64'), ('sun4u','sparc64'), ('sun4v','sparc64'), ('sparc','sparc32'), ('sun','sparc32'), ): if host.startswith(prefix): return result return host host = hostsanitize(platform.machine()) configurelog = '' def log(x): global configurelog configurelog += x+'\n' print(x) makefile = '' for arg in sys.argv[1:]: if arg.startswith('--prefix='): prefix = arg[9:] continue if arg.startswith('--host='): host = hostsanitize(arg[7:]) continue if arg == '--clean': clean = True continue if arg == '--no-clean': clean = False continue if arg == '--trim': trim = True continue if arg == '--no-trim': trim = False continue if arg == '--tryifunc': tryifunc = True continue if arg == '--no-tryifunc': tryifunc = False continue if arg == '--darwin': darwin = True continue if arg == '--no-darwin': darwin = False continue if arg == '--valgrind': valgrind = True continue if arg == '--no-valgrind': valgrind = False continue raise ValueError('unrecognized argument %s' % arg) echoargs = './configure' echoargs += ' --prefix=%s' % prefix echoargs += ' --host=%s' % host if clean: echoargs += ' --clean' if not clean: echoargs += ' --no-clean' if trim: echoargs += ' --trim' if not trim: echoargs += ' --no-trim' if tryifunc: echoargs += ' --tryifunc' if not tryifunc: echoargs += ' --no-tryifunc' if darwin: echoargs += ' --darwin' if not darwin: echoargs += ' --no-darwin' if valgrind: echoargs += ' --valgrind' if not valgrind: echoargs += ' --no-valgrind' log(echoargs) if prefix[0] != '/': raise ValueError('prefix %s is not an absolute path' % prefix) if clean: shutil.rmtree('build/%s' % host,ignore_errors=True) def dirlinksym(dir,source,target): with tempfile.TemporaryDirectory(dir=dir) as t: os.symlink(target,'%s/symlink' % t) os.rename('%s/symlink' % t,'%s/%s' % (dir,source)) os.makedirs('build/%s' % host,exist_ok=True) os.makedirs('build/%s/package/bin' % host,exist_ok=True) os.makedirs('build/%s/package/lib' % host,exist_ok=True) os.makedirs('build/%s/package/include' % host,exist_ok=True) if clean: os.symlink('../..','build/%s/src' % host) def copytree(src,dst,acceptfn=None): # starting with python 3.8 can use shutil.copytree # with dirs_exist_ok=True # but want to support older versions of python too # and want to symlink rather than copying os.makedirs(dst,exist_ok=True) for fn in sorted(os.listdir(src)): srcfn = '%s/%s' % (src,fn) if os.path.isdir(srcfn): dstfn = '%s/%s' % (dst,fn) copytree(srcfn,dstfn) else: if acceptfn is not None: if not acceptfn(fn): continue dirlinksym(dst,fn,'../'*(len(dst.split('/'))-2)+'src/'+srcfn) shutil.copystat(src,dst) def acceptfn_shared(fn): if fn.startswith('shared-'): return True if fn.endswith('.S'): return True if fn.endswith('.h'): return True if fn.endswith('.data'): return True return False def acceptfn_nonshared(fn): if fn.startswith('shared-'): if fn.endswith('.c'): return False return True if not fn.endswith('.S'): return True return False shutil.copy2('api','build/%s/api' % host) copytree('scripts-build','build/%s/scripts' % host) copytree('cpuid','build/%s/cpuid' % host) copytree('priority','build/%s/priority' % host) if valgrind: copytree('include-build-valgrind','build/%s/include-build' % host) else: copytree('include-build','build/%s/include-build' % host) with open('project/namespace') as f: projectnamespace = f.read().strip() with open('project/library') as f: projectlibrary = f.read().strip() # ----- shared-library variations so = 'dylib' if darwin else 'so' so1 = '1.dylib' if darwin else 'so.1' soname = 'install_name' if darwin else 'soname' sharedlibopts = '-shared -flat_namespace' if darwin else '-shared' with open(f'build/{host}/scripts/sharedlib-so1','w') as f: f.write(so1+'\n') with open(f'build/{host}/scripts/sharedlib-soname','w') as f: f.write(soname+'\n') with open(f'build/{host}/scripts/sharedlib-opts','w') as f: f.write(sharedlibopts+'\n') # ----- cryptoint os.makedirs(f'build/{host}/cryptoint',exist_ok=True) dirlinksym(f'build/{host}/cryptoint','include-build','../include-build') cryptoint_dep = [] def cryptoint_h(fn): if 'N' in fn: return False return fn.endswith('.h') def cryptoint_c(fn): global makefile global cryptoint_dep if 'N' in fn: return False if not fn.endswith('.c'): return False basename = fn[:-2] obj = basename+'.o' M = '\n' M += f'cryptoint/{obj}: cryptoint/{fn}\n' M += f'\tscripts/compiledefault cryptoint {basename} c -I include-build\n' makefile += M cryptoint_dep += [f'cryptoint/{obj}'] return True copytree('cryptoint',f'build/{host}/include-build',cryptoint_h) copytree('cryptoint',f'build/{host}/cryptoint',cryptoint_c) M = '\n' M += 'cryptoint-all: \\\n%s\n' % '\\\n'.join(cryptoint_dep) M += '\ttouch cryptoint-all\n' makefile += M # ----- compilers def compilerversion(c): try: p = subprocess.Popen(c.split()+['--version'],stdout=subprocess.PIPE,stderr=subprocess.STDOUT,universal_newlines=True) out,err = p.communicate() assert not err assert not p.returncode return out except: pass allarches = [] compilerversionline = {} compilers = {} for arch in sorted(os.listdir('compilers')): if arch.endswith('.c'): continue if arch == 'default' or arch == host or arch.startswith('%s+' % host): allarches += [arch] compilers[arch] = [] with open('compilers/%s' % arch) as f: for c in f.readlines(): c = c.strip() cv = compilerversion(c) if cv == None: log('skipping %s compiler %s' % (arch,c)) continue compilers[arch] += [c] cv = (c+'\n'+cv).strip().replace('\n','; ') compilerversionline[arch,c] = cv log('using %s compiler %s' % (arch,cv)) with open('build/%s/allarches' % host,'w') as f: for arch in allarches: f.write('%s\n' % arch) firstcompiler = compilers['default'][0] with open('build/%s/scripts/cdcompile' % host,'w') as f: f.write('#!/bin/sh\n') f.write('\n') f.write('cd "$1"; shift\n') f.write('exec %s "$@"\n' % firstcompiler) os.chmod('build/%s/scripts/cdcompile' % host,0o755) compilerabbrev = {} i = 0 for arch in allarches: for compiler in compilers[arch]: compilerabbrev[arch,compiler] = 'C%d'%i i += 1 log('abbreviating %s = %s %s' % (compilerabbrev[arch,compiler],arch,compiler)) if len(compilerabbrev) != len(sorted(compiler for arch in allarches for compiler in compilers[arch])): raise Exception('duplicate compilers not allowed; note: ok to add an arch with an empty compiler list') os.makedirs('build/%s/compilerarch' % host,exist_ok=True) for arch,compiler in compilerabbrev: with open('build/%s/compilerarch/%s' % (host,compilerabbrev[arch,compiler]),'w') as f: f.write('%s\n' % arch) os.makedirs('build/%s/compilerversion' % host,exist_ok=True) for arch,compiler in compilerabbrev: with open('build/%s/compilerversion/%s' % (host,compilerabbrev[arch,compiler]),'w') as f: f.write('%s\n' % compilerversionline[arch,compiler]) # ----- run-time checks for whether host actually supports compiler copytree('compilers','build/%s/compilers' % host) for arch in allarches: if arch == 'default': continue assert os.path.exists('compilers/%s.c'%arch) arch_csymbol = ''.join(x if x in '0123456789abcdefghijklmnopqrstuvwxyz' else '_' for x in arch) M = '\n' M += 'compilers/%s.o: compilers/%s.c\n' % (arch,arch) M += '\tscripts/compiledefault compilers %s c -Dsupports=%s_supports_%s\n' % (arch,projectnamespace,arch_csymbol) makefile = M + makefile M = '\n' M += 'compilers-all: %s\n' % ' '.join('compilers/%s.o'%arch for arch in allarches if arch != 'default') M += '\ttouch compilers-all\n' makefile = M + makefile # ----- build-time checks for ifunc copytree('dispatch','build/%s/dispatch' % host) with open('build/%s/dispatch/tryifunc' % host,'w') as f: f.write('1\n' if tryifunc else '0\n') M = '\n' M += 'dispatch/ifunc: dispatch/ifunc.do dispatch/tryifunc\n' M += '\tdispatch/ifunc.do\n' makefile = M + makefile # ----- crypto operations = [] primitives = {} sizes = {} exports = {} prototypes = {} with open('api') as f: for line in f: line = line.strip() if line.startswith('crypto_'): x = line.split() x = x[0].split('/') assert len(x) == 2 o = x[0].split('_')[1] if o not in operations: operations += [o] p = x[1] if o not in primitives: primitives[o] = [] primitives[o] += [p] continue if line.startswith('#define '): x = line.split(' ') x = x[1].split('_') assert len(x) == 4 assert x[0] == 'crypto' o = x[1] p = x[2] if (o,p) not in sizes: sizes[o,p] = '' sizes[o,p] += line+'\n' continue if line.endswith(');'): fun,args = line[:-2].split('(') rettype,fun = fun.split() fun = fun.split('_') o = fun[1] assert fun[0] == 'crypto' if o not in exports: exports[o] = [] exports[o] += ['_'.join(fun[1:])] if o not in prototypes: prototypes[o] = [] prototypes[o] += [(rettype,fun,args)] with open('doc/hdoc') as f: hfile = f.read() hfile += """ #ifndef %s_h #define %s_h #ifdef __cplusplus extern "C" { #endif """ % (projectnamespace,projectnamespace) with open('hdef') as f: hfile += '\n' hfile += f.read() with open('version') as f: version = f.readlines()[0].strip() def cstring(x): return '"%s"' % x.replace('\\','\\\\').replace('"','\\"').replace('\n','\\n') hfile += '\n' hfile += '#define %s_version %s\n' % (projectnamespace,cstring(version)) hfile += '#define %s_arch %s\n' % (projectnamespace,cstring(host)) hfile += '\n' hfile += 'extern void %s_cpuid(unsigned int *,long long);\n' % projectnamespace for o in operations: for ppos,p in enumerate(primitives[o]): if (o,p) not in sizes: sizes[o,p] = '' if len(sizes[o,p]) > 0: S = re.sub(' crypto_',' %s_'%projectnamespace,sizes[o,p]) if ppos == 0: hfile += '\n' hfile += re.sub('%s_%s_%s_'%(projectnamespace,o,p),'%s_%s_'%(projectnamespace,o),S) hfile += '\n' hfile += S for rettype,fun,args in prototypes[o]: shortfun = '_'.join(fun[1:]) pshortfun = '_'.join([o,p]+fun[2:]) if ppos == 0: hfile += '\n' hfile += '#define %s_%s %s_%s\n' % (projectnamespace,shortfun,projectnamespace,pshortfun) hfile += '#define %s_dispatch_%s %s_dispatch_%s\n' % (projectnamespace,shortfun,projectnamespace,pshortfun) hfile += '\n' hfile += 'extern %s %s_%s(%s);\n' % (rettype,projectnamespace,pshortfun,args) hfile += 'extern %s (*%s_dispatch_%s(long long))(%s);\n' % (rettype,projectnamespace,pshortfun,args) if ppos == 0: hfile += '\n' hfile += '#define %s_%s_implementation %s_%s_%s_implementation\n' % (projectnamespace,o,projectnamespace,o,p) hfile += '#define %s_%s_compiler %s_%s_%s_compiler\n' % (projectnamespace,o,projectnamespace,o,p) hfile += '#define %s_dispatch_%s_implementation %s_dispatch_%s_%s_implementation\n' % (projectnamespace,o,projectnamespace,o,p) hfile += '#define %s_dispatch_%s_compiler %s_dispatch_%s_%s_compiler\n' % (projectnamespace,o,projectnamespace,o,p) hfile += '#define %s_numimpl_%s %s_numimpl_%s_%s\n' % (projectnamespace,o,projectnamespace,o,p) hfile += '\n' hfile += 'extern const char *%s_%s_%s_implementation(void);\n' % (projectnamespace,o,p) hfile += 'extern const char *%s_%s_%s_compiler(void);\n' % (projectnamespace,o,p) hfile += 'extern const char *%s_dispatch_%s_%s_implementation(long long);\n' % (projectnamespace,o,p) hfile += 'extern const char *%s_dispatch_%s_%s_compiler(long long);\n' % (projectnamespace,o,p) hfile += 'extern long long %s_numimpl_%s_%s(void);\n' % (projectnamespace,o,p) hfile += """ #ifdef __cplusplus } #endif #endif """ with open('build/%s/package/include/%s.h' % (host,projectnamespace),'w') as f: f.write(hfile) os.chmod('build/%s/package/include/%s.h' % (host,projectnamespace),0o644) for o in operations: for p in primitives[o]: cryptoh = '' cryptoh += '#ifndef crypto_%s_%s_h\n' % (o,p) cryptoh += '#define crypto_%s_%s_h\n' % (o,p) cryptoh += '\n' for rettype,fun,args in prototypes[o]: pshortfun = '_'.join([o,p]+fun[2:]) cryptoh += '#define crypto_%s %s_%s\n' % (pshortfun,projectnamespace,pshortfun) cryptoh += '\n' cryptoh += sizes[o,p] cryptoh += '\n' for rettype,fun,args in prototypes[o]: pshortfun = '_'.join([o,p]+fun[2:]) cryptoh += 'extern %s crypto_%s(%s);\n' % (rettype,pshortfun,args) cryptoh += '\n' cryptoh += '#endif\n' with open('build/%s/include-build/crypto_%s_%s.h' % (host,o,p),'w') as f: f.write(cryptoh) doth = {} for o in operations: for p in primitives[o]: result = '' result += '#ifndef crypto_%s_h\n' % o result += '#define crypto_%s_h\n' % o result += '\n' for m in exports[o]: result += '#define crypto_%s CRYPTO_NAMESPACE(%s)\n' % (m,m) result += '\n' result += sizes[o,p] result += re.sub('crypto_%s_%s_'%(o,p),'crypto_%s_'%o,sizes[o,p]) result += '\n' for rettype,fun,args in prototypes[o]: result += 'extern %s %s(%s);\n' % (rettype,'_'.join(fun),args) result += '\n' result += '#endif\n' doth[o,p] = result impls = {} for o in operations: for p in primitives[o]: impls[o,p] = [] for i in sorted(os.listdir('crypto_%s/%s' % (o,p))): impldir = 'crypto_%s/%s/%s' % (o,p,i) if not os.path.isdir(impldir): continue if os.stat(impldir).st_mode & 0o1000 == 0o1000: log('skipping sticky %s' % impldir) continue implarch = None if os.path.exists('%s/architectures' % impldir): with open('%s/architectures' % impldir) as f: for line in f: line = line.strip().split() if len(line) == 0: continue if line[0] != host: continue implarch = line else: implarch = [host] if implarch == None: continue assert implarch[0] == host impls[o,p] += [(i,impldir,implarch)] undisciplined = set() file_hash = {} inclusions = {} namespace_defines = {} namespace_uses = {} namespace_definedin = {} def file_process(dir,fn,substitutes={}): if (dir,fn) in file_hash: return if fn in substitutes: x = substitutes[fn] else: with open(dir+'/'+fn) as f: x = f.read() file_hash[dir,fn] = sha512(x.encode('utf8')) inclusions[dir,fn] = [] namespace_defines[dir,fn] = [] namespace_uses[dir,fn] = [] for line in x.splitlines(): line = line.split() if line[:3] == ['//','linker','define']: for x in line[3:]: namespace_defines[dir,fn] += [x] if (dir,x) in namespace_definedin: undisciplined.add(dir) namespace_definedin[dir,x] = fn if line[:3] == ['//','linker','use']: for x in line[3:]: namespace_uses[dir,fn] += [x] if line[:1] != ['#include']: continue if len(line) < 2: continue subfn = line[1] if not subfn.startswith('"'): continue if not subfn.endswith('"'): continue subfn = subfn[1:-1] if subfn == 'randombytes.h': continue if subfn.startswith('crypto_') and subfn not in substitutes: continue inclusions[dir,fn] += [subfn] file_process(dir,subfn,substitutes) checksum_cache = {} checksum_inprogress = set() def checksum(dir,fn): if dir in undisciplined: return os.urandom(32) if (dir,fn) not in checksum_cache: if (dir,fn) in checksum_inprogress: undisciplined.add(dir) return os.urandom(32) checksum_inprogress.add((dir,fn)) result = file_hash[dir,fn] for subfn in inclusions[dir,fn]: result += checksum(dir,subfn) for symbol in namespace_uses[dir,fn]: if (dir,symbol) in namespace_definedin: result += checksum(dir,namespace_definedin[dir,symbol]) result = sha512(result) checksum_cache[dir,fn] = result checksum_inprogress.remove((dir,fn)) return checksum_cache[dir,fn] checksum_context = {} for o in operations: for p in primitives[o]: for i,impldir,implarch in impls[o,p]: for fn in sorted(os.listdir(impldir)): if fn.endswith('.c') or fn.endswith('.S'): file_process(impldir,fn,substitutes={'crypto_%s.h'%o:doth[o,p]}) for fn in sorted(os.listdir(impldir)): if fn.endswith('.c') or fn.endswith('.S'): c = checksum(impldir,fn) if c not in checksum_context: checksum_context[c] = [] checksum_context[c] += [(o,p,i,impldir,implarch,fn)] copywithinclusions_done = set() def copywithinclusions(targetdir,dir,fn,substitutes={}): if (targetdir,fn) in copywithinclusions_done: return copywithinclusions_done.add((targetdir,fn)) if fn in substitutes: with open(targetdir+'/'+fn,'w') as f: f.write(substitutes[fn]) shutil.copystat(dir,targetdir+'/'+fn) else: dirlinksym(targetdir,fn,'../'*(len(targetdir.split('/'))-2)+'src/'+dir+'/'+fn) for subfn in inclusions[dir,fn]: copywithinclusions(targetdir,dir,subfn,substitutes) unified_files = {} # crypto_o/p/i/fn will be unified across multiple (o,p,i,fn) # if fn in unified_files[o,p,i] for o in operations: for p in primitives[o]: for i,impldir,implarch in impls[o,p]: unified_files[o,p,i] = set() unified_symbols = set() for fn in sorted(os.listdir(impldir)): if not(fn.endswith('.S') or fn.endswith('.c')): continue if len(namespace_defines[impldir,fn]) == 0: continue c = checksum(impldir,fn) if c not in checksum_context: continue if len(checksum_context[c]) == 1: continue unified_files[o,p,i].add(fn) for symbol in namespace_defines[impldir,fn]: unified_symbols.add(symbol) progress = True while progress: progress = False for fn in sorted(unified_files[o,p,i]): if any(symbol not in unified_symbols for symbol in namespace_uses[impldir,fn]): progress = True unified_files[o,p,i].remove(fn) for symbol in namespace_defines[impldir,fn]: unified_symbols.remove(symbol) unified_built = set() checksum_unified = {} unified_counter = {} def unified_dir(o,p,i,fn): allowedchars = '0123456789' allowedchars += 'abcdefghijklmnopqrstuvwxyz' allowedchars += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' base = ''.join(c for c in fn if c in allowedchars) if len(base) == 0: base = 'x' if base not in unified_counter: unified_counter[base] = 0 unified_counter[base] += 1 return 'unified/%s/%d' % (base,unified_counter[base]) for o in operations: for p in primitives[o]: for i,impldir,implarch in impls[o,p]: if impldir in undisciplined: log('warning: undisciplined %s' % impldir) unified_files[o,p,i] = [] for fn in unified_files[o,p,i]: if acceptfn_shared(fn): c = checksum(impldir,fn) if c not in checksum_unified: checksum_unified[c] = unified_dir(o,p,i,fn) else: for arch in compilers: if any(implarchreq not in arch.split('+')[1:] for implarchreq in implarch[1:]): continue for compiler in compilers[arch]: c = checksum(impldir,fn) if (c,compiler) not in checksum_unified: checksum_unified[c,compiler] = unified_dir(o,p,i,fn) ofiles = [] opicdirs = [] builddirs = [] opicdir2dependencies = {} def impl2symbol(i): return i.replace('-','').replace('_','') for o in operations: for p in primitives[o]: for i,impldir,implarch in impls[o,p]: builtshared = False needshared = False shareddeps = [] for arch in compilers: if any(implarchreq not in arch.split('+')[1:] for implarchreq in implarch[1:]): continue for compiler in compilers[arch]: if not builtshared: shareddeps += ['%s/%s/%s/shared' % (o,p,i)] builddirs += ['%s/%s/%s/shared' % (o,p,i)] shared_builddir = 'build/%s/%s/%s/%s/shared' % (host,o,p,i) os.makedirs(shared_builddir,exist_ok=True) copytree(impldir,shared_builddir,acceptfn_shared) nonunified_shared_compiler = compiler for fn2 in sorted(unified_files[o,p,i]): if not acceptfn_shared(fn2): continue for symbol in namespace_defines[impldir,fn2]: c2 = checksum(impldir,fn2) nonunified_shared_compiler += ' -D%s_%s_%s_%s_%s_%s=%s_%s_%s_%s' % ( projectnamespace,o,p,impl2symbol(i),'shared',symbol, projectnamespace,checksum_unified[c2].replace('/','_'),'shared',symbol ) with open('%s/compiler' % shared_builddir,'w') as f: f.write(nonunified_shared_compiler+'\n') for fn in sorted(os.listdir(impldir)): if not acceptfn_shared(fn): continue if fn.endswith('.S') or fn.endswith('.c'): needshared = True base = fn[:-2] ext = fn[-1:] if fn in unified_files[o,p,i]: if not acceptfn_shared(fn): continue c = checksum(impldir,fn) shareddeps += ['%s/shared' % checksum_unified[c]] if checksum_unified[c] not in unified_built: builddirs += ['%s/shared' % checksum_unified[c]] unifieddir = 'build/%s/%s/shared' % (host,checksum_unified[c]) os.makedirs(unifieddir,exist_ok=True) copywithinclusions(unifieddir,impldir,fn,substitutes={'crypto_%s.h'%o:doth[o,p]}) unified_shared_compiler = compiler for fn2 in sorted(unified_files[o,p,i]): if not acceptfn_shared(fn2): continue for symbol in namespace_defines[impldir,fn2]: c2 = checksum(impldir,fn2) unified_shared_compiler += ' -D%s_%s_%s_%s=%s_%s_%s_%s' % ( projectnamespace,checksum_unified[c].replace('/','_'),'shared',symbol, projectnamespace,checksum_unified[c2].replace('/','_'),'shared',symbol ) with open('%s/compiler' % unifieddir,'w') as f: f.write(unified_shared_compiler+'\n') makefile += '\n' ofiles += ['%s/shared/%s.o' % (checksum_unified[c],base)] makefile += '%s/shared/%s.o: %s/shared/%s\n' % (checksum_unified[c],base,checksum_unified[c],fn) makefile += '\tscripts/compile %s/shared %s %s %s\n' % (checksum_unified[c],base,ext,projectnamespace) unified_built.add(checksum_unified[c]) else: makefile += '\n' ofiles += ['%s/%s/%s/shared/%s.o' % (o,p,i,base)] makefile += '%s/%s/%s/shared/%s.o: %s/%s/%s/shared/%s\n' % (o,p,i,base,o,p,i,fn) makefile += '\tscripts/compile %s/%s/%s/shared %s %s %s\n' % (o,p,i,base,ext,projectnamespace) builtshared = True dependencies = list(shareddeps) if needshared else [] compilerdir = compilerabbrev[arch,compiler] opicdir = '%s/%s/%s/%s' % (o,p,i,compilerdir) opicdirs += [opicdir] builddirs += [opicdir] builddir = 'build/%s/%s/%s/%s/%s' % (host,o,p,i,compilerdir) os.makedirs(builddir,exist_ok=True) copytree(impldir,builddir,acceptfn_nonshared) nonunified_nonshared_compiler = compiler for fn in sorted(unified_files[o,p,i]): for symbol in namespace_defines[impldir,fn]: c = checksum(impldir,fn) if acceptfn_shared(fn): nonunified_nonshared_compiler += ' -D%s_%s_%s_%s_%s_%s=%s_%s_%s_%s' % ( projectnamespace,o,p,impl2symbol(i),'shared',symbol, projectnamespace,checksum_unified[c].replace('/','_'),'shared',symbol ) else: nonunified_nonshared_compiler += ' -D%s_%s_%s_%s_%s_%s=%s_%s_%s_%s' % ( projectnamespace,o,p,impl2symbol(i),compilerdir,symbol, projectnamespace,checksum_unified[c,compiler].replace('/','_'),compilerdir,symbol ) with open('%s/crypto_%s.h' % (builddir,o),'w') as f: f.write(doth[o,p]) with open('%s/compiler' % builddir,'w') as f: f.write(nonunified_nonshared_compiler+'\n') for fn in sorted(os.listdir(impldir)): if not acceptfn_nonshared(fn): continue if fn.endswith('.c'): base = fn[:-2] ext = fn[-1:] if fn in unified_files[o,p,i]: if not acceptfn_nonshared(fn): continue c = checksum(impldir,fn) dependencies += ['%s/%s' % (checksum_unified[c,compiler],compilerdir)] if checksum_unified[c,compiler] not in unified_built: unifieddir = 'build/%s/%s/%s' % (host,checksum_unified[c,compiler],compilerdir) builddirs += ['%s/%s' % (checksum_unified[c,compiler],compilerdir)] os.makedirs(unifieddir,exist_ok=True) copywithinclusions(unifieddir,impldir,fn,substitutes={'crypto_%s.h'%o:doth[o,p]}) unified_nonshared_compiler = compiler for fn2 in sorted(unified_files[o,p,i]): for symbol in namespace_defines[impldir,fn2]: c2 = checksum(impldir,fn2) if acceptfn_shared(fn2): unified_nonshared_compiler += ' -D%s_%s_%s_%s=%s_%s_%s_%s' % ( projectnamespace,checksum_unified[c,compiler].replace('/','_'),'shared',symbol, projectnamespace,checksum_unified[c2].replace('/','_'),'shared',symbol ) else: unified_nonshared_compiler += ' -D%s_%s_%s_%s=%s_%s_%s_%s' % ( projectnamespace,checksum_unified[c,compiler].replace('/','_'),compilerdir,symbol, projectnamespace,checksum_unified[c2,compiler].replace('/','_'),compilerdir,symbol ) with open('%s/compiler' % unifieddir,'w') as f: f.write(unified_nonshared_compiler+'\n') makefile += '\n' ofiles += ['%s/%s/%s.o' % (checksum_unified[c,compiler],compilerdir,base)] makefile += '%s/%s/%s.o: %s/%s/%s\n' % (checksum_unified[c,compiler],compilerdir,base,checksum_unified[c,compiler],compilerdir,fn) makefile += '\tscripts/compile %s/%s %s %s %s\n' % (checksum_unified[c,compiler],compilerdir,base,ext,projectnamespace) unified_built.add(checksum_unified[c,compiler]) else: makefile += '\n' ofiles += ['%s/%s/%s/%s/%s.o' % (o,p,i,compilerdir,base)] makefile += '%s/%s/%s/%s/%s.o: %s/%s/%s/%s/%s\n' % (o,p,i,compilerdir,base,o,p,i,compilerdir,fn) makefile += '\tscripts/compile %s/%s/%s/%s %s %s %s\n' % (o,p,i,compilerdir,base,ext,projectnamespace) opicdir2dependencies[opicdir] = dependencies if len(dependencies) > 0: with open(builddir+'/dependencies','w') as f: f.write('\n'.join(dependencies)) # ----- compilerdirs compilerdirs = {} for o in operations: for p in primitives[o]: for i,impldir,implarch in impls[o,p]: for fn in sorted(os.listdir(impldir)): if not acceptfn_shared(fn): continue if not (fn.endswith('.S') or fn.endswith('.c')): continue if fn in unified_files[o,p,i]: c = checksum(impldir,fn) builddir = checksum_unified[c]+'/shared' else: builddir = f'{o}/{p}/{i}/shared' for arch in compilers: if any(implarchreq not in arch.split('+')[1:] for implarchreq in implarch[1:]): continue for compiler in compilers[arch]: compilerdir = compilerabbrev[arch,compiler] if builddir not in compilerdirs: compilerdirs[builddir] = [] compilerdirs[builddir] += [compilerdir] for builddir in compilerdirs: with open(f'build/{host}/{builddir}/compilerdirs','w') as f: for sharedcompilerdir in sorted(set(compilerdirs[builddir])): f.write(sharedcompilerdir+'\n') # ----- dispatch with open('build/%s/opicdirs'%host,'w') as f: for opicdir in opicdirs: f.write(opicdir+'\n') with open('build/%s/builddirs'%host,'w') as f: for builddir in builddirs: f.write(builddir+'\n') M = '' M += 'compiledimplementations: opicdirs scripts/compiledimplementations \\\n' for opicdir in opicdirs: M += '%s/allcompiled \\\n' % opicdir M += '\n' M += '\tscripts/compiledimplementations < opicdirs > compiledimplementations\n' M += '\n' M += 'result-impl: \\\n' for builddir in builddirs: M += '%s/result \\\n' % builddir M += '\n' M += '\tscripts/result-impl < builddirs > result-impl\n' M += '\n' for opicdir in opicdirs: if len(opicdir2dependencies[opicdir]) > 0: dependencies_compiled = ' '.join(builddir+'/allcompiled' for builddir in opicdir2dependencies[opicdir]) M += '%s/allcompiled: %s\n' % (opicdir,dependencies_compiled) M += '\n' builddir_ofiles = {} for builddir in builddirs: assert len(builddir.split('/')) == 4 builddir_ofiles[builddir] = [] for ofile in ofiles: builddir = ofile.split('/')[:4] if len(builddir) < 4: continue builddir = '/'.join(builddir) builddir_ofiles[builddir] += [ofile] for builddir in builddirs: M += '%s/allcompiled: %s\n' % (builddir,' '.join(builddir_ofiles[builddir])) M += '\ttouch %s/allcompiled\n' % builddir M += '\n' for builddir in builddirs: deps = [builddir+'/result-namespace',builddir+'/result-insns'] deps += builddir_ofiles[builddir] deps = ' '.join(deps) results = [builddir+'/result-namespace',builddir+'/result-insns'] for ofile in builddir_ofiles[builddir]: ofile = '/'.join(ofile.split('/')[4:]) results += [builddir+'/result-compile-'+ofile[:-2]] results = ' '.join(results) M += '%s/result: %s\n' % (builddir,deps) M += '\tcat %s > %s/result\n' % (results,builddir) M += '\n' for builddir in builddirs: M += '%s/result-insns: %s/allcompiled scripts/checkinsns\n' % (builddir,builddir) M += '\tscripts/checkinsns %s %s\n' % (host,builddir) M += '\n' for builddir in builddirs: M += '%s/result-namespace: %s/allcompiled scripts/checknamespace\n' % (builddir,builddir) M += '\tscripts/checknamespace %s %s\n' % (projectnamespace,builddir) M += '\n' makefile = M + makefile selectedlist = ' '.join('selected/%s_%s' % (o,p) for o in operations for p in primitives[o]) M = 'usedimplementations: scripts/usedimplementations %s\n' % selectedlist M += '\tscripts/usedimplementations %s > usedimplementations\n' % selectedlist M += '\n' makefile = M + makefile os.makedirs('build/%s/selected' % host,exist_ok=True) M = '' for o in operations: for p in primitives[o]: M += 'selected/%s_%s: scripts/selected compiledimplementations\n' % (o,p) M += '\tscripts/selected %s %s %s %s < compiledimplementations > selected/%s_%s\n' % (o,p,host,trim,o,p) M += '\n' makefile = M + makefile for goal in 'auto','manual': os.makedirs('build/%s/dispatch-%s' % (host,goal),exist_ok=True) M = '' for o in operations: for p in primitives[o]: M += 'dispatch-%s/%s_%s.c: scripts/dispatch selected/%s_%s dispatch/ifunc\n' % (goal,o,p,o,p) M += '\tscripts/dispatch %s %s %s %s %s < selected/%s_%s > dispatch-%s/%s_%s.c\n' % (goal,o,p,host,projectnamespace,o,p,goal,o,p) M += '\n' makefile = M + makefile M = '' for o in operations: for p in primitives[o]: M += 'dispatch-%s/%s_%s.o: dispatch-%s/%s_%s.c\n' % (goal,o,p,goal,o,p) M += '\tscripts/compiledefault dispatch-%s %s_%s c\n' % (goal,o,p) M += '\n' makefile = M + makefile M = 'dispatch-%s-all: \\\n' % goal for o in operations: for p in primitives[o]: M += 'dispatch-%s/%s_%s.o \\\n' % (goal,o,p) M += '\n' M += '\ttouch dispatch-%s-all\n' % goal M += '\n' makefile = M + makefile # ----- projectlibrary M = 'odirs: usedimplementations\n' M += '\t( cat usedimplementations; echo dispatch-auto; echo dispatch-manual; echo compilers; echo cpuid; echo cryptoint ) > odirs\n' M += '\n' makefile = M + makefile M = 'ofiles: scripts/ofiles odirs usedimplementations dispatch-auto-all dispatch-manual-all compilers-all cpuid-all cryptoint-all\n' M += '\tscripts/ofiles < odirs\n' M += '\n' makefile = M + makefile M = 'package/lib/lib%s.a: scripts/staticlib ofiles\n' % projectlibrary M += '\tscripts/staticlib lib%s\n' % projectlibrary M += '\n' makefile = M + makefile M = f'package/lib/lib{projectlibrary}.{so1}: scripts/sharedlib ofiles\n' M += '\tscripts/sharedlib lib%s -lrandombytes\n' % projectlibrary M += '\n' makefile = M + makefile M = f'package/lib/lib{projectlibrary}.{so}: package/lib/lib{projectlibrary}.{so1}\n' M += f'\trm -f package/lib/lib{projectlibrary}.{so}\n' M += f'\tln -s lib{projectlibrary}.{so1} package/lib/lib{projectlibrary}.{so}\n' M += '\n' makefile = M + makefile # ----- cpuid cpuid = host if not os.path.exists('cpuid/%s.c' % host): cpuid = 'default' M = '\n' M += 'cpuid-all: cpuid/%s.o\n' % cpuid M += '\ttouch cpuid-all\n' M += '\n' M += 'cpuid/%s.o: cpuid/%s.c\n' % (cpuid,cpuid) M += '\tscripts/compiledefault cpuid %s c\n' % cpuid makefile += M # ----- command copytree('command','build/%s/command'%host) dirlinksym('build/%s/command'%host,'bin','../package/bin') dirlinksym('build/%s/command'%host,'lib','../package/lib') dirlinksym('build/%s/command'%host,'include-build','../include-build') dirlinksym('build/%s/command'%host,'include','../package/include') with open('build/%s/command/link' % host,'w') as f: f.write('#!/bin/sh\n') f.write('target="$1"; shift\n') f.write('%s \\\n' % firstcompiler) f.write(' -fvisibility=hidden \\\n') f.write(' -o "$target" "$@"\n') os.chmod('build/%s/command/link' % host,0o755) subroutines = {} commands = [] for subroutine in True,False: for fn in sorted(os.listdir('command')): if not fn.endswith('.c'): continue if subroutine != ('_' in fn): continue base = fn[:-2] M = 'command/%s.o: command/%s.c\n' % (base,base) M += '\tscripts/compiledefault command %s c -I include -I include-build\n' % base M += '\n' makefile = M + makefile if subroutine: caller = fn.split('_')[0] if caller not in subroutines: subroutines[caller] = [] subroutines[caller] += [base] else: deps = 'command/%s.o'%base link = 'cd command && ./link bin/%s %s.o'%(base,base) syslink = '' if base in subroutines: for subbase in subroutines[base]: deps += f' \\\ncommand/{subbase}.o' link += f' \\\n{subbase}.o' with open('command/%s' % fn) as f: for line in f: line = line.strip().split() if len(line) < 1: continue if line[0] != '#include': continue if '-lcpucycles' in line: syslink += ' -lcpucycles' if '-lrandombytes' in line: syslink += ' -lrandombytes' if '-l%s'%projectlibrary in line: deps += f' \\\npackage/lib/lib{projectlibrary}.{so}' link += f' \\\nlib/lib{projectlibrary}.{so}' link += syslink M = 'package/bin/%s: %s\n' % (base,deps) M += '\t%s\n' % link M += '\n' makefile = M + makefile commands += ['package/bin/%s' % base] M = f'package/bin/{projectlibrary}-fulltest: scripts/fulltest-convert scripts/fulltest-top usedimplementations\n' M += f'\tscripts/fulltest-convert {projectlibrary} < usedimplementations > package/bin/{projectlibrary}-fulltest\n' M += '\n' makefile = M + makefile commands += [f'package/bin/{projectlibrary}-fulltest'] M = 'commands: %s\n' % ' '.join(commands) M += '\n' makefile = M + makefile # ----- manual pages for manpage in sorted(os.listdir('doc/man')): section = 'man%s' % manpage[-1] targetdir = 'build/%s/package/man/%s' % (host,section) os.makedirs(targetdir,exist_ok=True) shutil.copy2('doc/man/%s'%manpage,'%s/%s'%(targetdir,manpage)) # ----- make install M = 'install: scripts/install default\n' M += '\tscripts/install %s\n' % prefix M += '\n' makefile = M + makefile # ----- make default M = f'default: package/lib/lib{projectlibrary}.a package/lib/lib{projectlibrary}.{so} package/lib/lib{projectlibrary}.{so1} \\\n' M += 'commands result-impl\n' M += '\tcat result-impl\n' M += '\n' makefile = M + makefile with open('build/%s/Makefile' % host,'w') as f: f.write(makefile) # ----- build/0, build/Makefile dirlinksym('build','0',host) with open('build/Makefile','w') as f: f.write('default:\n') f.write('\tcd %s && $(MAKE)\n' % host) f.write('\n') f.write('install:\n') f.write('\tcd %s && $(MAKE) install\n' % host) f.write('\n') f.write('clean:\n') f.write('\trm -r %s\n' % host) log('configure done') with open('build/%s/configure.log'%host,'a') as f: f.write(configurelog) with open('build/%s/configure.log.latest'%host,'w') as f: f.write(configurelog) libntruprime-20241021/cpuid/0000755000000000000000000000000014705505543014275 5ustar rootrootlibntruprime-20241021/cpuid/amd64.c0000644000000000000000000000514014705505543015354 0ustar rootroot#include #define CPUID(func,leaf,a,b,c,d) \ __asm("cpuid":"=a"(a),"=b"(b),"=c"(c),"=d"(d):"a"(func),"c"(leaf):) __attribute__((visibility("default"))) void ntruprime_cpuid(unsigned int *result,long long resultlen) { unsigned int a,b,c,d; unsigned int cpuidmax,extendedcpuidmax; int havexgetbv = 0; CPUID(0,0,a,b,c,d); cpuidmax = a; if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } a = b = c = d = 0; CPUID(0x80000000,0,a,b,c,d); extendedcpuidmax = a; a = b = c = d = 0; if (extendedcpuidmax >= 0x80000002) CPUID(0x80000002,0,a,b,c,d); if (resultlen > 0) { *result++ = a; --resultlen; } if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } a = b = c = d = 0; if (extendedcpuidmax >= 0x80000003) CPUID(0x80000003,0,a,b,c,d); if (resultlen > 0) { *result++ = a; --resultlen; } if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } a = b = c = d = 0; if (extendedcpuidmax >= 0x80000004) CPUID(0x80000004,0,a,b,c,d); if (resultlen > 0) { *result++ = a; --resultlen; } if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } a = b = c = d = 0; if (cpuidmax >= 1) CPUID(1,0,a,b,c,d); if (resultlen > 0) { *result++ = a; --resultlen; } if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } /* 27=osxsave; 28=avx */ if (((1<<27)|(1<<28)) == (((1<<27)|(1<<28)) & c)) havexgetbv = 1; a = b = c = d = 0; if (cpuidmax >= 7) CPUID(7,0,a,b,c,d); if (resultlen > 0) { *result++ = a; --resultlen; } if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } a = b = c = d = 0; if (extendedcpuidmax >= 0x80000001) CPUID(0x80000001,0,a,b,c,d); if (resultlen > 0) { *result++ = a; --resultlen; } if (resultlen > 0) { *result++ = b; --resultlen; } if (resultlen > 0) { *result++ = c; --resultlen; } if (resultlen > 0) { *result++ = d; --resultlen; } a = b = c = d = 0; if (havexgetbv) asm(".byte 15;.byte 1;.byte 208":"=a"(a),"=d"(d):"c"(0)); if (resultlen > 0) { *result++ = a; --resultlen; } while (resultlen > 0) { *result++ = 0; --resultlen; } } libntruprime-20241021/cpuid/default.c0000644000000000000000000000026614705505543016071 0ustar rootroot#include __attribute__((visibility("default"))) void ntruprime_cpuid(unsigned int *result,long long resultlen) { while (resultlen > 0) { *result++ = 0; --resultlen; } } libntruprime-20241021/crypto_core/0000755000000000000000000000000014705505545015523 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/0000755000000000000000000000000014705505543020161 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/avx/0000755000000000000000000000000014705505552020757 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/avx/Makefile0000644000000000000000000000014314705505543022415 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py 1013 > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/crypto_core/inv3sntrup1013/avx/api.h0000644000000000000000000000016514705505543021703 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1014 #define CRYPTO_INPUTBYTES 1013 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/inv3sntrup1013/avx/architectures0000777000000000000000000000000014705505552032457 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/avx/r3_recip.c0000644000000000000000000004447614705505543022650 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p 1013 #define ppad 1024 #define numvec 4 typedef __m256i vec256; /* This code stores 1024-coeff poly as vec256[4]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } static inline void vec256_divx_1(vec256 *f) { vec256 f0 = f[0]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); } static inline void vec256_divx_2(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = low1 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); } static inline void vec256_divx_3(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = low2 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); } static inline void vec256_divx_4(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; vec256 f3 = f[3]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = (low2 >> 1) | crypto_uint64_shlmod(low3,63); low3 = low3 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); f[3] = _mm256_permute4x64_epi64(f3,0x39); } static inline void vec256_timesx_1(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = f0; } static inline void vec256_timesx_2(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = f0; f[1] = f1; } static inline void vec256_timesx_3(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); unsigned long long low0 = *(unsigned long long *) &f0; unsigned long long low1 = *(unsigned long long *) &f1; unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; *(unsigned long long *) &f0 = low0; *(unsigned long long *) &f1 = low1; f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = f0; f[1] = f1; f[2] = f2; } static inline void vec256_timesx_4(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); vec256 f3 = _mm256_permute4x64_epi64(f[3],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low3 = (low3 << 1) | crypto_int64_negative_01(low2); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = f0; f[1] = f1; f[2] = f2; f[3] = f3; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); F0[1] = _mm256_set1_epi32(0); F0[2] = _mm256_set1_epi32(0); F0[3] = _mm256_set_epi32(0,0,0,0,536870912,0,536870912,0); F1[0] = _mm256_set1_epi32(0); F1[1] = _mm256_set1_epi32(0); F1[2] = _mm256_set1_epi32(0); F1[3] = _mm256_set_epi32(0,0,0,0,536870912,0,536870912,0); V0[0] = _mm256_set1_epi32(0); V1[0] = _mm256_set1_epi32(0); V0[1] = _mm256_set1_epi32(0); V1[1] = _mm256_set1_epi32(0); V0[2] = _mm256_set1_epi32(0); V1[2] = _mm256_set1_epi32(0); V0[3] = _mm256_set1_epi32(0); V1[3] = _mm256_set1_epi32(0); R0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); R1[0] = _mm256_set1_epi32(0); R0[1] = _mm256_set1_epi32(0); R1[1] = _mm256_set1_epi32(0); R0[2] = _mm256_set1_epi32(0); R1[2] = _mm256_set1_epi32(0); R0[3] = _mm256_set1_epi32(0); R1[3] = _mm256_set1_epi32(0); for (loop = 256;loop > 0;--loop) { vec256_timesx_1(V0); vec256_timesx_1(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,1,swapvec); vec256_swap(V1,R1,1,swapvec); vec256_eliminate(V0,V1,R0,R1,1,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_2(V0); vec256_timesx_2(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,2,swapvec); vec256_swap(V1,R1,2,swapvec); vec256_eliminate(V0,V1,R0,R1,2,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 489;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,2,swapvec); vec256_swap(F1,G1,2,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,2,c0vec,c1vec); vec256_divx_2(G0); vec256_divx_2(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,1,swapvec); vec256_swap(F1,G1,1,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,1,c0vec,c1vec); vec256_divx_1(G0); vec256_divx_1(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); } libntruprime-20241021/crypto_core/inv3sntrup1013/avx/r3_recipgen.py0000777000000000000000000000000014705505552033731 2../../../src/core/inv3sntrupP/avx/r3_recipgen.pyustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/bits64/0000755000000000000000000000000014705505552021274 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/bits64/api.h0000777000000000000000000000000014705505552024146 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1013/bits64/params.h0000644000000000000000000000011614705505543022726 0ustar rootroot#ifndef params_H #define params_H #define p 1013 #define ppad64 1025 #endif libntruprime-20241021/crypto_core/inv3sntrup1013/bits64/recip.c0000777000000000000000000000000014705505552031753 2../../../src/core/inv3sntrupP/bits64/recip.custar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/0000755000000000000000000000000014705505543020175 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/avx/0000755000000000000000000000000014705505552020773 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/avx/Makefile0000644000000000000000000000014314705505543022431 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py 1277 > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/crypto_core/inv3sntrup1277/avx/api.h0000644000000000000000000000016514705505543021717 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1278 #define CRYPTO_INPUTBYTES 1277 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/inv3sntrup1277/avx/architectures0000777000000000000000000000000014705505552032473 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/avx/r3_recip.c0000644000000000000000000005507614705505543022662 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p 1277 #define ppad 1280 #define numvec 5 typedef __m256i vec256; /* This code stores 1280-coeff poly as vec256[5]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } static inline void vec256_divx_1(vec256 *f) { vec256 f0 = f[0]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); } static inline void vec256_divx_2(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = low1 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); } static inline void vec256_divx_3(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = low2 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); } static inline void vec256_divx_4(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; vec256 f3 = f[3]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = (low2 >> 1) | crypto_uint64_shlmod(low3,63); low3 = low3 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); f[3] = _mm256_permute4x64_epi64(f3,0x39); } static inline void vec256_divx_5(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; vec256 f3 = f[3]; vec256 f4 = f[4]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); unsigned long long low4 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f4)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = (low2 >> 1) | crypto_uint64_shlmod(low3,63); low3 = (low3 >> 1) | crypto_uint64_shlmod(low4,63); low4 = low4 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f4 = _mm256_blend_epi32(f4,_mm256_set_epi64x(0,0,0,low4),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); f[3] = _mm256_permute4x64_epi64(f3,0x39); f[4] = _mm256_permute4x64_epi64(f4,0x39); } static inline void vec256_timesx_1(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = f0; } static inline void vec256_timesx_2(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = f0; f[1] = f1; } static inline void vec256_timesx_3(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); unsigned long long low0 = *(unsigned long long *) &f0; unsigned long long low1 = *(unsigned long long *) &f1; unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; *(unsigned long long *) &f0 = low0; *(unsigned long long *) &f1 = low1; f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = f0; f[1] = f1; f[2] = f2; } static inline void vec256_timesx_4(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); vec256 f3 = _mm256_permute4x64_epi64(f[3],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low3 = (low3 << 1) | crypto_int64_negative_01(low2); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = f0; f[1] = f1; f[2] = f2; f[3] = f3; } static inline void vec256_timesx_5(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); vec256 f3 = _mm256_permute4x64_epi64(f[3],0x93); vec256 f4 = _mm256_permute4x64_epi64(f[4],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); unsigned long long low4 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f4)); low4 = (low4 << 1) | crypto_int64_negative_01(low3); low3 = (low3 << 1) | crypto_int64_negative_01(low2); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f4 = _mm256_blend_epi32(f4,_mm256_set_epi64x(0,0,0,low4),0x3); f[0] = f0; f[1] = f1; f[2] = f2; f[3] = f3; f[4] = f4; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); F0[1] = _mm256_set1_epi32(0); F0[2] = _mm256_set1_epi32(0); F0[3] = _mm256_set1_epi32(0); F0[4] = _mm256_set_epi32(0,0,0,0,-2147483648,0,-2147483648,0); F1[0] = _mm256_set1_epi32(0); F1[1] = _mm256_set1_epi32(0); F1[2] = _mm256_set1_epi32(0); F1[3] = _mm256_set1_epi32(0); F1[4] = _mm256_set_epi32(0,0,0,0,-2147483648,0,-2147483648,0); V0[0] = _mm256_set1_epi32(0); V1[0] = _mm256_set1_epi32(0); V0[1] = _mm256_set1_epi32(0); V1[1] = _mm256_set1_epi32(0); V0[2] = _mm256_set1_epi32(0); V1[2] = _mm256_set1_epi32(0); V0[3] = _mm256_set1_epi32(0); V1[3] = _mm256_set1_epi32(0); V0[4] = _mm256_set1_epi32(0); V1[4] = _mm256_set1_epi32(0); R0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); R1[0] = _mm256_set1_epi32(0); R0[1] = _mm256_set1_epi32(0); R1[1] = _mm256_set1_epi32(0); R0[2] = _mm256_set1_epi32(0); R1[2] = _mm256_set1_epi32(0); R0[3] = _mm256_set1_epi32(0); R1[3] = _mm256_set1_epi32(0); R0[4] = _mm256_set1_epi32(0); R1[4] = _mm256_set1_epi32(0); for (loop = 256;loop > 0;--loop) { vec256_timesx_1(V0); vec256_timesx_1(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,5,swapvec); vec256_swap(F1,G1,5,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,5,c0vec,c1vec); vec256_divx_5(G0); vec256_divx_5(G1); vec256_swap(V0,R0,1,swapvec); vec256_swap(V1,R1,1,swapvec); vec256_eliminate(V0,V1,R0,R1,1,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_2(V0); vec256_timesx_2(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,5,swapvec); vec256_swap(F1,G1,5,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,5,c0vec,c1vec); vec256_divx_5(G0); vec256_divx_5(G1); vec256_swap(V0,R0,2,swapvec); vec256_swap(V1,R1,2,swapvec); vec256_eliminate(V0,V1,R0,R1,2,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,5,swapvec); vec256_swap(F1,G1,5,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,5,c0vec,c1vec); vec256_divx_5(G0); vec256_divx_5(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,5,swapvec); vec256_swap(F1,G1,5,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,5,c0vec,c1vec); vec256_divx_5(G0); vec256_divx_5(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 505;loop > 0;--loop) { vec256_timesx_5(V0); vec256_timesx_5(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,5,swapvec); vec256_swap(F1,G1,5,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,5,c0vec,c1vec); vec256_divx_5(G0); vec256_divx_5(G1); vec256_swap(V0,R0,5,swapvec); vec256_swap(V1,R1,5,swapvec); vec256_eliminate(V0,V1,R0,R1,5,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_5(V0); vec256_timesx_5(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,5,swapvec); vec256_swap(V1,R1,5,swapvec); vec256_eliminate(V0,V1,R0,R1,5,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_5(V0); vec256_timesx_5(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,5,swapvec); vec256_swap(V1,R1,5,swapvec); vec256_eliminate(V0,V1,R0,R1,5,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_5(V0); vec256_timesx_5(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,2,swapvec); vec256_swap(F1,G1,2,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,2,c0vec,c1vec); vec256_divx_2(G0); vec256_divx_2(G1); vec256_swap(V0,R0,5,swapvec); vec256_swap(V1,R1,5,swapvec); vec256_eliminate(V0,V1,R0,R1,5,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_5(V0); vec256_timesx_5(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,1,swapvec); vec256_swap(F1,G1,1,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,1,c0vec,c1vec); vec256_divx_1(G0); vec256_divx_1(G1); vec256_swap(V0,R0,5,swapvec); vec256_swap(V1,R1,5,swapvec); vec256_eliminate(V0,V1,R0,R1,5,c0vec,c1vec); } c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); } libntruprime-20241021/crypto_core/inv3sntrup1277/avx/r3_recipgen.py0000777000000000000000000000000014705505552033745 2../../../src/core/inv3sntrupP/avx/r3_recipgen.pyustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/bits64/0000755000000000000000000000000014705505552021310 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/bits64/api.h0000777000000000000000000000000014705505552024162 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup1277/bits64/params.h0000644000000000000000000000011614705505543022742 0ustar rootroot#ifndef params_H #define params_H #define p 1277 #define ppad64 1281 #endif libntruprime-20241021/crypto_core/inv3sntrup1277/bits64/recip.c0000777000000000000000000000000014705505552031767 2../../../src/core/inv3sntrupP/bits64/recip.custar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/0000755000000000000000000000000014705505543020112 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/avx/0000755000000000000000000000000014705505552020710 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/avx/Makefile0000644000000000000000000000014214705505543022345 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py 653 > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/crypto_core/inv3sntrup653/avx/api.h0000644000000000000000000000016314705505543021632 0ustar rootroot#define CRYPTO_OUTPUTBYTES 654 #define CRYPTO_INPUTBYTES 653 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/inv3sntrup653/avx/architectures0000777000000000000000000000000014705505552032410 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/avx/r3_recip.c0000644000000000000000000003505014705505543022565 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p 653 #define ppad 768 #define numvec 3 typedef __m256i vec256; /* This code stores 768-coeff poly as vec256[3]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } static inline void vec256_divx_1(vec256 *f) { vec256 f0 = f[0]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); } static inline void vec256_divx_2(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = low1 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); } static inline void vec256_divx_3(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = low2 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); } static inline void vec256_timesx_1(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = f0; } static inline void vec256_timesx_2(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = f0; f[1] = f1; } static inline void vec256_timesx_3(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); unsigned long long low0 = *(unsigned long long *) &f0; unsigned long long low1 = *(unsigned long long *) &f1; unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; *(unsigned long long *) &f0 = low0; *(unsigned long long *) &f1 = low1; f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = f0; f[1] = f1; f[2] = f2; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); F0[1] = _mm256_set1_epi32(0); F0[2] = _mm256_set_epi32(0,0,0,0,8,0,8,0); F1[0] = _mm256_set1_epi32(0); F1[1] = _mm256_set1_epi32(0); F1[2] = _mm256_set_epi32(0,0,0,0,8,0,8,0); V0[0] = _mm256_set1_epi32(0); V1[0] = _mm256_set1_epi32(0); V0[1] = _mm256_set1_epi32(0); V1[1] = _mm256_set1_epi32(0); V0[2] = _mm256_set1_epi32(0); V1[2] = _mm256_set1_epi32(0); R0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); R1[0] = _mm256_set1_epi32(0); R0[1] = _mm256_set1_epi32(0); R1[1] = _mm256_set1_epi32(0); R0[2] = _mm256_set1_epi32(0); R1[2] = _mm256_set1_epi32(0); for (loop = 256;loop > 0;--loop) { vec256_timesx_1(V0); vec256_timesx_1(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,1,swapvec); vec256_swap(V1,R1,1,swapvec); vec256_eliminate(V0,V1,R0,R1,1,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_2(V0); vec256_timesx_2(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,2,swapvec); vec256_swap(V1,R1,2,swapvec); vec256_eliminate(V0,V1,R0,R1,2,c0vec,c1vec); } for (loop = 281;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,2,swapvec); vec256_swap(F1,G1,2,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,2,c0vec,c1vec); vec256_divx_2(G0); vec256_divx_2(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,1,swapvec); vec256_swap(F1,G1,1,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,1,c0vec,c1vec); vec256_divx_1(G0); vec256_divx_1(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); } libntruprime-20241021/crypto_core/inv3sntrup653/avx/r3_recipgen.py0000777000000000000000000000000014705505552033662 2../../../src/core/inv3sntrupP/avx/r3_recipgen.pyustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/bits64/0000755000000000000000000000000014705505552021225 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/bits64/api.h0000777000000000000000000000000014705505552024077 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup653/bits64/params.h0000644000000000000000000000011414705505543022655 0ustar rootroot#ifndef params_H #define params_H #define p 653 #define ppad64 705 #endif libntruprime-20241021/crypto_core/inv3sntrup653/bits64/recip.c0000777000000000000000000000000014705505552031704 2../../../src/core/inv3sntrupP/bits64/recip.custar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/0000755000000000000000000000000014705505543020112 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/avx/0000755000000000000000000000000014705505552020710 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/avx/Makefile0000644000000000000000000000014214705505543022345 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py 761 > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/crypto_core/inv3sntrup761/avx/api.h0000644000000000000000000000016314705505543021632 0ustar rootroot#define CRYPTO_OUTPUTBYTES 762 #define CRYPTO_INPUTBYTES 761 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/inv3sntrup761/avx/architectures0000777000000000000000000000000014705505552032410 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/avx/r3_recip.c0000644000000000000000000003511414705505543022566 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p 761 #define ppad 768 #define numvec 3 typedef __m256i vec256; /* This code stores 768-coeff poly as vec256[3]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } static inline void vec256_divx_1(vec256 *f) { vec256 f0 = f[0]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); } static inline void vec256_divx_2(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = low1 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); } static inline void vec256_divx_3(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = low2 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); } static inline void vec256_timesx_1(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = f0; } static inline void vec256_timesx_2(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = f0; f[1] = f1; } static inline void vec256_timesx_3(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); unsigned long long low0 = *(unsigned long long *) &f0; unsigned long long low1 = *(unsigned long long *) &f1; unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; *(unsigned long long *) &f0 = low0; *(unsigned long long *) &f1 = low1; f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = f0; f[1] = f1; f[2] = f2; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); F0[1] = _mm256_set1_epi32(0); F0[2] = _mm256_set_epi32(0,0,0,0,1073741824,0,1073741824,0); F1[0] = _mm256_set1_epi32(0); F1[1] = _mm256_set1_epi32(0); F1[2] = _mm256_set_epi32(0,0,0,0,1073741824,0,1073741824,0); V0[0] = _mm256_set1_epi32(0); V1[0] = _mm256_set1_epi32(0); V0[1] = _mm256_set1_epi32(0); V1[1] = _mm256_set1_epi32(0); V0[2] = _mm256_set1_epi32(0); V1[2] = _mm256_set1_epi32(0); R0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); R1[0] = _mm256_set1_epi32(0); R0[1] = _mm256_set1_epi32(0); R1[1] = _mm256_set1_epi32(0); R0[2] = _mm256_set1_epi32(0); R1[2] = _mm256_set1_epi32(0); for (loop = 256;loop > 0;--loop) { vec256_timesx_1(V0); vec256_timesx_1(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,1,swapvec); vec256_swap(V1,R1,1,swapvec); vec256_eliminate(V0,V1,R0,R1,1,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_2(V0); vec256_timesx_2(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,2,swapvec); vec256_swap(V1,R1,2,swapvec); vec256_eliminate(V0,V1,R0,R1,2,c0vec,c1vec); } for (loop = 497;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,2,swapvec); vec256_swap(F1,G1,2,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,2,c0vec,c1vec); vec256_divx_2(G0); vec256_divx_2(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,1,swapvec); vec256_swap(F1,G1,1,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,1,c0vec,c1vec); vec256_divx_1(G0); vec256_divx_1(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); } libntruprime-20241021/crypto_core/inv3sntrup761/avx/r3_recipgen.py0000777000000000000000000000000014705505552033662 2../../../src/core/inv3sntrupP/avx/r3_recipgen.pyustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/bits64/0000755000000000000000000000000014705505552021225 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/bits64/api.h0000777000000000000000000000000014705505552024077 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup761/bits64/params.h0000644000000000000000000000011414705505543022655 0ustar rootroot#ifndef params_H #define params_H #define p 761 #define ppad64 769 #endif libntruprime-20241021/crypto_core/inv3sntrup761/bits64/recip.c0000777000000000000000000000000014705505552031704 2../../../src/core/inv3sntrupP/bits64/recip.custar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/0000755000000000000000000000000014705505543020120 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/avx/0000755000000000000000000000000014705505552020716 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/avx/Makefile0000644000000000000000000000014214705505543022353 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py 857 > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/crypto_core/inv3sntrup857/avx/api.h0000644000000000000000000000016314705505543021640 0ustar rootroot#define CRYPTO_OUTPUTBYTES 858 #define CRYPTO_INPUTBYTES 857 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/inv3sntrup857/avx/architectures0000777000000000000000000000000014705505552032416 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/avx/r3_recip.c0000644000000000000000000004446514705505543022605 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p 857 #define ppad 1024 #define numvec 4 typedef __m256i vec256; /* This code stores 1024-coeff poly as vec256[4]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } static inline void vec256_divx_1(vec256 *f) { vec256 f0 = f[0]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); } static inline void vec256_divx_2(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = low1 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); } static inline void vec256_divx_3(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = low2 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); } static inline void vec256_divx_4(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; vec256 f3 = f[3]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = (low2 >> 1) | crypto_uint64_shlmod(low3,63); low3 = low3 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); f[3] = _mm256_permute4x64_epi64(f3,0x39); } static inline void vec256_timesx_1(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = f0; } static inline void vec256_timesx_2(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = f0; f[1] = f1; } static inline void vec256_timesx_3(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); unsigned long long low0 = *(unsigned long long *) &f0; unsigned long long low1 = *(unsigned long long *) &f1; unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; *(unsigned long long *) &f0 = low0; *(unsigned long long *) &f1 = low1; f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = f0; f[1] = f1; f[2] = f2; } static inline void vec256_timesx_4(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); vec256 f3 = _mm256_permute4x64_epi64(f[3],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low3 = (low3 << 1) | crypto_int64_negative_01(low2); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = f0; f[1] = f1; f[2] = f2; f[3] = f3; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); F0[1] = _mm256_set1_epi32(0); F0[2] = _mm256_set1_epi32(0); F0[3] = _mm256_set_epi32(0,0,0,0,0,4194304,0,4194304); F1[0] = _mm256_set1_epi32(0); F1[1] = _mm256_set1_epi32(0); F1[2] = _mm256_set1_epi32(0); F1[3] = _mm256_set_epi32(0,0,0,0,0,4194304,0,4194304); V0[0] = _mm256_set1_epi32(0); V1[0] = _mm256_set1_epi32(0); V0[1] = _mm256_set1_epi32(0); V1[1] = _mm256_set1_epi32(0); V0[2] = _mm256_set1_epi32(0); V1[2] = _mm256_set1_epi32(0); V0[3] = _mm256_set1_epi32(0); V1[3] = _mm256_set1_epi32(0); R0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); R1[0] = _mm256_set1_epi32(0); R0[1] = _mm256_set1_epi32(0); R1[1] = _mm256_set1_epi32(0); R0[2] = _mm256_set1_epi32(0); R1[2] = _mm256_set1_epi32(0); R0[3] = _mm256_set1_epi32(0); R1[3] = _mm256_set1_epi32(0); for (loop = 256;loop > 0;--loop) { vec256_timesx_1(V0); vec256_timesx_1(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,1,swapvec); vec256_swap(V1,R1,1,swapvec); vec256_eliminate(V0,V1,R0,R1,1,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_2(V0); vec256_timesx_2(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,2,swapvec); vec256_swap(V1,R1,2,swapvec); vec256_eliminate(V0,V1,R0,R1,2,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 177;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,2,swapvec); vec256_swap(F1,G1,2,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,2,c0vec,c1vec); vec256_divx_2(G0); vec256_divx_2(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,1,swapvec); vec256_swap(F1,G1,1,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,1,c0vec,c1vec); vec256_divx_1(G0); vec256_divx_1(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); } libntruprime-20241021/crypto_core/inv3sntrup857/avx/r3_recipgen.py0000777000000000000000000000000014705505552033670 2../../../src/core/inv3sntrupP/avx/r3_recipgen.pyustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/bits64/0000755000000000000000000000000014705505552021233 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/bits64/api.h0000777000000000000000000000000014705505552024105 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup857/bits64/params.h0000644000000000000000000000011414705505543022663 0ustar rootroot#ifndef params_H #define params_H #define p 857 #define ppad64 897 #endif libntruprime-20241021/crypto_core/inv3sntrup857/bits64/recip.c0000777000000000000000000000000014705505552031712 2../../../src/core/inv3sntrupP/bits64/recip.custar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/0000755000000000000000000000000014705505544020116 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/avx/0000755000000000000000000000000014705505552020713 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/avx/Makefile0000644000000000000000000000014214705505543022350 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py 953 > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/crypto_core/inv3sntrup953/avx/api.h0000644000000000000000000000016314705505543021635 0ustar rootroot#define CRYPTO_OUTPUTBYTES 954 #define CRYPTO_INPUTBYTES 953 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/inv3sntrup953/avx/architectures0000777000000000000000000000000014705505552032413 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/avx/r3_recip.c0000644000000000000000000004445514705505543022601 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p 953 #define ppad 1024 #define numvec 4 typedef __m256i vec256; /* This code stores 1024-coeff poly as vec256[4]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } static inline void vec256_divx_1(vec256 *f) { vec256 f0 = f[0]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); } static inline void vec256_divx_2(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = low1 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); } static inline void vec256_divx_3(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = low2 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); } static inline void vec256_divx_4(vec256 *f) { vec256 f0 = f[0]; vec256 f1 = f[1]; vec256 f2 = f[2]; vec256 f3 = f[3]; unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low0 = (low0 >> 1) | crypto_uint64_shlmod(low1,63); low1 = (low1 >> 1) | crypto_uint64_shlmod(low2,63); low2 = (low2 >> 1) | crypto_uint64_shlmod(low3,63); low3 = low3 >> 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = _mm256_permute4x64_epi64(f0,0x39); f[1] = _mm256_permute4x64_epi64(f1,0x39); f[2] = _mm256_permute4x64_epi64(f2,0x39); f[3] = _mm256_permute4x64_epi64(f3,0x39); } static inline void vec256_timesx_1(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f[0] = f0; } static inline void vec256_timesx_2(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f[0] = f0; f[1] = f1; } static inline void vec256_timesx_3(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); unsigned long long low0 = *(unsigned long long *) &f0; unsigned long long low1 = *(unsigned long long *) &f1; unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; *(unsigned long long *) &f0 = low0; *(unsigned long long *) &f1 = low1; f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f[0] = f0; f[1] = f1; f[2] = f2; } static inline void vec256_timesx_4(vec256 *f) { vec256 f0 = _mm256_permute4x64_epi64(f[0],0x93); vec256 f1 = _mm256_permute4x64_epi64(f[1],0x93); vec256 f2 = _mm256_permute4x64_epi64(f[2],0x93); vec256 f3 = _mm256_permute4x64_epi64(f[3],0x93); unsigned long long low0 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f0)); unsigned long long low1 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f1)); unsigned long long low2 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f2)); unsigned long long low3 = _mm_cvtsi128_si64(_mm256_castsi256_si128(f3)); low3 = (low3 << 1) | crypto_int64_negative_01(low2); low2 = (low2 << 1) | crypto_int64_negative_01(low1); low1 = (low1 << 1) | crypto_int64_negative_01(low0); low0 = low0 << 1; f0 = _mm256_blend_epi32(f0,_mm256_set_epi64x(0,0,0,low0),0x3); f1 = _mm256_blend_epi32(f1,_mm256_set_epi64x(0,0,0,low1),0x3); f2 = _mm256_blend_epi32(f2,_mm256_set_epi64x(0,0,0,low2),0x3); f3 = _mm256_blend_epi32(f3,_mm256_set_epi64x(0,0,0,low3),0x3); f[0] = f0; f[1] = f1; f[2] = f2; f[3] = f3; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); F0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); F0[1] = _mm256_set1_epi32(0); F0[2] = _mm256_set1_epi32(0); F0[3] = _mm256_set_epi32(0,0,0,0,16384,0,16384,0); F1[0] = _mm256_set1_epi32(0); F1[1] = _mm256_set1_epi32(0); F1[2] = _mm256_set1_epi32(0); F1[3] = _mm256_set_epi32(0,0,0,0,16384,0,16384,0); V0[0] = _mm256_set1_epi32(0); V1[0] = _mm256_set1_epi32(0); V0[1] = _mm256_set1_epi32(0); V1[1] = _mm256_set1_epi32(0); V0[2] = _mm256_set1_epi32(0); V1[2] = _mm256_set1_epi32(0); V0[3] = _mm256_set1_epi32(0); V1[3] = _mm256_set1_epi32(0); R0[0] = _mm256_set_epi32(0,0,0,0,0,0,0,1); R1[0] = _mm256_set1_epi32(0); R0[1] = _mm256_set1_epi32(0); R1[1] = _mm256_set1_epi32(0); R0[2] = _mm256_set1_epi32(0); R1[2] = _mm256_set1_epi32(0); R0[3] = _mm256_set1_epi32(0); R1[3] = _mm256_set1_epi32(0); for (loop = 256;loop > 0;--loop) { vec256_timesx_1(V0); vec256_timesx_1(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,1,swapvec); vec256_swap(V1,R1,1,swapvec); vec256_eliminate(V0,V1,R0,R1,1,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_2(V0); vec256_timesx_2(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,2,swapvec); vec256_swap(V1,R1,2,swapvec); vec256_eliminate(V0,V1,R0,R1,2,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_3(V0); vec256_timesx_3(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,3,swapvec); vec256_swap(V1,R1,3,swapvec); vec256_eliminate(V0,V1,R0,R1,3,c0vec,c1vec); } for (loop = 369;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,4,swapvec); vec256_swap(F1,G1,4,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,4,c0vec,c1vec); vec256_divx_4(G0); vec256_divx_4(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,3,swapvec); vec256_swap(F1,G1,3,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,3,c0vec,c1vec); vec256_divx_3(G0); vec256_divx_3(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,2,swapvec); vec256_swap(F1,G1,2,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,2,c0vec,c1vec); vec256_divx_2(G0); vec256_divx_2(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } for (loop = 256;loop > 0;--loop) { vec256_timesx_4(V0); vec256_timesx_4(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,1,swapvec); vec256_swap(F1,G1,1,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,1,c0vec,c1vec); vec256_divx_1(G0); vec256_divx_1(G1); vec256_swap(V0,R0,4,swapvec); vec256_swap(V1,R1,4,swapvec); vec256_eliminate(V0,V1,R0,R1,4,c0vec,c1vec); } c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); } libntruprime-20241021/crypto_core/inv3sntrup953/avx/r3_recipgen.py0000777000000000000000000000000014705505552033665 2../../../src/core/inv3sntrupP/avx/r3_recipgen.pyustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/bits64/0000755000000000000000000000000014705505552021230 5ustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/bits64/api.h0000777000000000000000000000000014705505552024102 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/inv3sntrup953/bits64/params.h0000644000000000000000000000011414705505544022661 0ustar rootroot#ifndef params_H #define params_H #define p 953 #define ppad64 961 #endif libntruprime-20241021/crypto_core/inv3sntrup953/bits64/recip.c0000777000000000000000000000000014705505552031707 2../../../src/core/inv3sntrupP/bits64/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/0000755000000000000000000000000014705505544020077 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/avx/0000755000000000000000000000000014705505552020674 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/avx/api.h0000644000000000000000000000016514705505544021621 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2027 #define CRYPTO_INPUTBYTES 1013 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/invsntrup1013/avx/architectures0000777000000000000000000000000014705505552032374 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/avx/params.h0000644000000000000000000000064214705505544022333 0ustar rootroot#ifndef params_H #define params_H #define p 1013 #define ppad 1025 #define q 7177 #define qinv 12857 /* reciprocal of q mod 2^16 */ #define q14 2 /* closest integer to 2^14/q */ #define q18 37 /* closest integer to 2^18/q */ #define q27 18701 /* closest integer to 2^27/q */ #define q31 299217 /* floor(2^31/q) */ #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #endif libntruprime-20241021/crypto_core/invsntrup1013/avx/recip.c0000777000000000000000000000000014705505552030753 2../../../src/core/invsntrupP/avx/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/portable/0000755000000000000000000000000014705505552021706 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/portable/api.h0000777000000000000000000000000014705505552024560 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/portable/params.h0000777000000000000000000000000014705505552026004 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup1013/portable/recip.c0000777000000000000000000000000014705505552032777 2../../../src/core/invsntrupP/portable/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/0000755000000000000000000000000014705505544020113 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/avx/0000755000000000000000000000000014705505552020710 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/avx/api.h0000644000000000000000000000016514705505544021635 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2555 #define CRYPTO_INPUTBYTES 1277 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/invsntrup1277/avx/architectures0000777000000000000000000000000014705505552032410 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/avx/params.h0000644000000000000000000000064214705505544022347 0ustar rootroot#ifndef params_H #define params_H #define p 1277 #define ppad 1281 #define q 7879 #define qinv 17143 /* reciprocal of q mod 2^16 */ #define q14 2 /* closest integer to 2^14/q */ #define q18 33 /* closest integer to 2^18/q */ #define q27 17035 /* closest integer to 2^27/q */ #define q31 272557 /* floor(2^31/q) */ #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #endif libntruprime-20241021/crypto_core/invsntrup1277/avx/recip.c0000777000000000000000000000000014705505552030767 2../../../src/core/invsntrupP/avx/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/portable/0000755000000000000000000000000014705505552021722 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/portable/api.h0000777000000000000000000000000014705505552024574 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/portable/params.h0000777000000000000000000000000014705505552026020 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup1277/portable/recip.c0000777000000000000000000000000014705505552033013 2../../../src/core/invsntrupP/portable/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup653/0000755000000000000000000000000014705505544020030 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup653/avx/0000755000000000000000000000000014705505552020625 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup653/avx/api.h0000644000000000000000000000016414705505544021551 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1307 #define CRYPTO_INPUTBYTES 653 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/invsntrup653/avx/architectures0000777000000000000000000000000014705505552032325 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/invsntrup653/avx/params.h0000644000000000000000000000063714705505544022270 0ustar rootroot#ifndef params_H #define params_H #define p 653 #define ppad 657 #define q 4621 #define qinv -29499 /* reciprocal of q mod 2^16 */ #define q14 4 /* closest integer to 2^14/q */ #define q18 57 /* closest integer to 2^18/q */ #define q27 29045 /* closest integer to 2^27/q */ #define q31 464722 /* floor(2^31/q) */ #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #endif libntruprime-20241021/crypto_core/invsntrup653/avx/recip.c0000777000000000000000000000000014705505552030704 2../../../src/core/invsntrupP/avx/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup653/portable/0000755000000000000000000000000014705505552021637 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup653/portable/api.h0000777000000000000000000000000014705505552024511 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup653/portable/params.h0000777000000000000000000000000014705505552025735 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup653/portable/recip.c0000777000000000000000000000000014705505552032730 2../../../src/core/invsntrupP/portable/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup761/0000755000000000000000000000000014705505544020030 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup761/avx/0000755000000000000000000000000014705505552020625 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup761/avx/api.h0000644000000000000000000000016414705505544021551 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1523 #define CRYPTO_INPUTBYTES 761 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/invsntrup761/avx/architectures0000777000000000000000000000000014705505552032325 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/invsntrup761/avx/params.h0000644000000000000000000000063614705505544022267 0ustar rootroot#ifndef params_H #define params_H #define p 761 #define ppad 769 #define q 4591 #define qinv 15631 /* reciprocal of q mod 2^16 */ #define q14 4 /* closest integer to 2^14/q */ #define q18 57 /* closest integer to 2^18/q */ #define q27 29235 /* closest integer to 2^27/q */ #define q31 467759 /* floor(2^31/q) */ #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #endif libntruprime-20241021/crypto_core/invsntrup761/avx/recip.c0000777000000000000000000000000014705505552030704 2../../../src/core/invsntrupP/avx/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup761/portable/0000755000000000000000000000000014705505552021637 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup761/portable/api.h0000777000000000000000000000000014705505552024511 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup761/portable/params.h0000777000000000000000000000000014705505552025735 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup761/portable/recip.c0000777000000000000000000000000014705505552032730 2../../../src/core/invsntrupP/portable/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup857/0000755000000000000000000000000014705505544020036 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup857/avx/0000755000000000000000000000000014705505552020633 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup857/avx/api.h0000644000000000000000000000016414705505544021557 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1715 #define CRYPTO_INPUTBYTES 857 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/invsntrup857/avx/architectures0000777000000000000000000000000014705505552032333 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/invsntrup857/avx/params.h0000644000000000000000000000063714705505544022276 0ustar rootroot#ifndef params_H #define params_H #define p 857 #define ppad 865 #define q 5167 #define qinv -19761 /* reciprocal of q mod 2^16 */ #define q14 3 /* closest integer to 2^14/q */ #define q18 51 /* closest integer to 2^18/q */ #define q27 25976 /* closest integer to 2^27/q */ #define q31 415615 /* floor(2^31/q) */ #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #endif libntruprime-20241021/crypto_core/invsntrup857/avx/recip.c0000777000000000000000000000000014705505552030712 2../../../src/core/invsntrupP/avx/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup857/portable/0000755000000000000000000000000014705505552021645 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup857/portable/api.h0000777000000000000000000000000014705505552024517 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup857/portable/params.h0000777000000000000000000000000014705505552025743 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup857/portable/recip.c0000777000000000000000000000000014705505552032736 2../../../src/core/invsntrupP/portable/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup953/0000755000000000000000000000000014705505544020033 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup953/avx/0000755000000000000000000000000014705505552020630 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup953/avx/api.h0000644000000000000000000000016414705505544021554 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1907 #define CRYPTO_INPUTBYTES 953 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/invsntrup953/avx/architectures0000777000000000000000000000000014705505552032330 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/invsntrup953/avx/params.h0000644000000000000000000000063614705505544022272 0ustar rootroot#ifndef params_H #define params_H #define p 953 #define ppad 961 #define q 6343 #define qinv 10487 /* reciprocal of q mod 2^16 */ #define q14 3 /* closest integer to 2^14/q */ #define q18 41 /* closest integer to 2^18/q */ #define q27 21160 /* closest integer to 2^27/q */ #define q31 338559 /* floor(2^31/q) */ #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #endif libntruprime-20241021/crypto_core/invsntrup953/avx/recip.c0000777000000000000000000000000014705505552030707 2../../../src/core/invsntrupP/avx/recip.custar rootrootlibntruprime-20241021/crypto_core/invsntrup953/portable/0000755000000000000000000000000014705505552021642 5ustar rootrootlibntruprime-20241021/crypto_core/invsntrup953/portable/api.h0000777000000000000000000000000014705505552024514 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup953/portable/params.h0000777000000000000000000000000014705505552025740 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/invsntrup953/portable/recip.c0000777000000000000000000000000014705505552032733 2../../../src/core/invsntrupP/portable/recip.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/0000755000000000000000000000000014705505544020347 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/avx/0000755000000000000000000000000014705505552021144 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/avx/api.h0000644000000000000000000000017014705505544022065 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1013 #define CRYPTO_INPUTBYTES 1013 #define CRYPTO_KEYBYTES 1013 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/mult3sntrup1013/avx/architectures0000777000000000000000000000000014705505552032644 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/avx/mult1024.c0000644000000000000000000001603614705505544022607 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(32))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); /* XXX: try arbitrary-degree Karatsuba */ for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_1013xint16.h" #define crypto_decode_pxint16 crypto_decode_1013xint16 #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #define p 1013 static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/crypto_core/mult3sntrup1013/avx/ntt.c0000777000000000000000000000000014705505552030701 2../../../src/core/mult3sntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/avx/ntt.h0000777000000000000000000000000014705505552030713 2../../../src/core/mult3sntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/avx/precomp7681.inc0000777000000000000000000000000014705505552034050 2../../../src/core/multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/compact/0000755000000000000000000000000014705505552021774 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/compact/api.h0000777000000000000000000000000014705505552024646 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/compact/mult.c0000777000000000000000000000000014705505552032711 2../../../src/core/mult3sntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1013/compact/params.h0000644000000000000000000000007214705505544023430 0ustar rootroot#ifndef params_H #define params_H #define p 1013 #endif libntruprime-20241021/crypto_core/mult3sntrup1277/0000755000000000000000000000000014705505544020363 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/avx/0000755000000000000000000000000014705505552021160 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/avx/api.h0000644000000000000000000000017014705505544022101 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1277 #define CRYPTO_INPUTBYTES 1277 #define CRYPTO_KEYBYTES 1277 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/mult3sntrup1277/avx/architectures0000777000000000000000000000000014705505552032660 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/avx/mult1280.c0000644000000000000000000003030514705505544022622 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0) #define mask2 _mm256_set_epi16(0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0) #define mask3 _mm256_set_epi16(0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0) #define mask4 _mm256_set_epi16(0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0) static void good(int16 fpad[5][512],const int16 f[1280]) { int j; int16x16 f0,f1,f2; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); j += 16; } for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)); j += 16; if (j == 512) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)); j += 16; } } static void ungood(int16 f[2560],const int16 fpad[5][512]) { int j; int16x16 f0,f1,f2,f3,f4,g0,g1,g2,g3,g4; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g1 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g2 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g3 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; /* same as (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g1 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g2 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g3 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g1 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g2 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g3 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g2 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g3 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g1 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g2 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g3 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; } } #define ALIGNED __attribute((aligned(32))) static void mult1280(int16 h[2560],const int16 f[1280],const int16 g[1280]) { ALIGNED int16 fgpad[10][512]; #define fpad fgpad #define gpad (fgpad+5) #define hpad fpad ALIGNED int16 h_7681[2560]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],10); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 f4 = squeeze_7681_x16(load_x16(&fpad[4][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 g4 = squeeze_7681_x16(load_x16(&gpad[4][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d4 = mulmod_7681_x16(f4,g4); int16x16 dsum; int16x16 h0,h1,h2,h3,h4; dsum = add_x16(add_x16(d0,d1),d2); dsum = squeeze_7681_x16(dsum); dsum = add_x16(add_x16(d3,d4),dsum); dsum = squeeze_7681_x16(dsum); /* could save one mult here using sum hi = (sum fi)(sum gi) */ h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f1),sub_x16(g1,g4))); h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f0),sub_x16(g0,g2))); h3 = add_x16(dsum,mulmod_7681_x16(sub_x16(f3,f0),sub_x16(g0,g3))); h4 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f0),sub_x16(g0,g4))); h0 = add_x16(h0,mulmod_7681_x16(sub_x16(f3,f2),sub_x16(g2,g3))); h1 = add_x16(h1,mulmod_7681_x16(sub_x16(f4,f2),sub_x16(g2,g4))); h2 = add_x16(h2,mulmod_7681_x16(sub_x16(f4,f3),sub_x16(g3,g4))); h3 = add_x16(h3,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); h4 = add_x16(h4,mulmod_7681_x16(sub_x16(f3,f1),sub_x16(g1,g3))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); store_x16(&hpad[4][i],squeeze_7681_x16(h4)); } invntt512_7681(hpad[0],5); ungood(h_7681,hpad); for (i = 0;i < 2560;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_1277xint16.h" #define crypto_decode_pxint16 crypto_decode_1277xint16 #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #define p 1277 static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1280]; ALIGNED int16 g[1280]; ALIGNED int16 fg[2560]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1280;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1280;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1280(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1280;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/crypto_core/mult3sntrup1277/avx/ntt.c0000777000000000000000000000000014705505552030715 2../../../src/core/mult3sntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/avx/ntt.h0000777000000000000000000000000014705505552030727 2../../../src/core/mult3sntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/compact/0000755000000000000000000000000014705505552022010 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/compact/api.h0000777000000000000000000000000014705505552024662 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/compact/mult.c0000777000000000000000000000000014705505552032725 2../../../src/core/mult3sntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup1277/compact/params.h0000644000000000000000000000007214705505544023444 0ustar rootroot#ifndef params_H #define params_H #define p 1277 #endif libntruprime-20241021/crypto_core/mult3sntrup653/0000755000000000000000000000000014705505544020300 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/avx/0000755000000000000000000000000014705505552021075 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/avx/api.h0000644000000000000000000000016514705505544022022 0ustar rootroot#define CRYPTO_OUTPUTBYTES 653 #define CRYPTO_INPUTBYTES 653 #define CRYPTO_KEYBYTES 653 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/mult3sntrup653/avx/architectures0000777000000000000000000000000014705505552032575 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/avx/mult768.c0000644000000000000000000001504114705505544022471 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0) #define mask2 _mm256_set_epi16(0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0) static void good(int16 fpad[3][512],const int16 f[768]) { int j; int16x16 f0,f1; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask0)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); j += 16; } for (;;) { f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask2); store_x16(&fpad[1][j],f0&mask0); store_x16(&fpad[2][j],f0&mask1); j += 16; if (j == 512) break; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask1); store_x16(&fpad[1][j],f0&mask2); store_x16(&fpad[2][j],f0&mask0); j += 16; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask0); store_x16(&fpad[1][j],f0&mask1); store_x16(&fpad[2][j],f0&mask2); j += 16; } } static void ungood(int16 f[1536],const int16 fpad[3][512]) { int j; int16x16 f0,f1,f2,g0,g1,g2; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2); g1 = (f0&mask1)|(f1&mask2)|(f2&mask0); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask2)|(f1&mask0)|(f2&mask1) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask2)|(f1&mask0)|(f2&mask1); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask1)|(f1&mask2)|(f2&mask0) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask0); g1 = (f0&mask2)|(f1&mask0)|(f2&mask1); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask0)|(f1&mask1)|(f2&mask2) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; } } #define ALIGNED __attribute((aligned(32))) static void mult768(int16 h[1536],const int16 f[768],const int16 g[768]) { ALIGNED int16 fgpad[6][512]; #define fpad fgpad #define gpad (fgpad+3) #define hpad fpad ALIGNED int16 h_7681[1536]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); } invntt512_7681(hpad[0],3); ungood(h_7681,hpad); for (i = 0;i < 1536;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_653xint16.h" #define crypto_decode_pxint16 crypto_decode_653xint16 #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #define p 653 static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[768]; ALIGNED int16 g[768]; ALIGNED int16 fg[1536]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 768;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 768;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult768(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 768;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/crypto_core/mult3sntrup653/avx/ntt.c0000777000000000000000000000000014705505552030632 2../../../src/core/mult3sntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/avx/ntt.h0000777000000000000000000000000014705505552030644 2../../../src/core/mult3sntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/compact/0000755000000000000000000000000014705505552021725 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/compact/api.h0000777000000000000000000000000014705505552024577 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/compact/mult.c0000777000000000000000000000000014705505552032642 2../../../src/core/mult3sntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup653/compact/params.h0000644000000000000000000000007114705505544023360 0ustar rootroot#ifndef params_H #define params_H #define p 653 #endif libntruprime-20241021/crypto_core/mult3sntrup761/0000755000000000000000000000000014705505544020300 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/avx/0000755000000000000000000000000014705505552021075 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/avx/api.h0000644000000000000000000000016514705505544022022 0ustar rootroot#define CRYPTO_OUTPUTBYTES 761 #define CRYPTO_INPUTBYTES 761 #define CRYPTO_KEYBYTES 761 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/mult3sntrup761/avx/architectures0000777000000000000000000000000014705505552032575 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/avx/mult768.c0000644000000000000000000001504114705505544022471 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0) #define mask2 _mm256_set_epi16(0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0) static void good(int16 fpad[3][512],const int16 f[768]) { int j; int16x16 f0,f1; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask0)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); j += 16; } for (;;) { f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask2); store_x16(&fpad[1][j],f0&mask0); store_x16(&fpad[2][j],f0&mask1); j += 16; if (j == 512) break; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask1); store_x16(&fpad[1][j],f0&mask2); store_x16(&fpad[2][j],f0&mask0); j += 16; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask0); store_x16(&fpad[1][j],f0&mask1); store_x16(&fpad[2][j],f0&mask2); j += 16; } } static void ungood(int16 f[1536],const int16 fpad[3][512]) { int j; int16x16 f0,f1,f2,g0,g1,g2; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2); g1 = (f0&mask1)|(f1&mask2)|(f2&mask0); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask2)|(f1&mask0)|(f2&mask1) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask2)|(f1&mask0)|(f2&mask1); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask1)|(f1&mask2)|(f2&mask0) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask0); g1 = (f0&mask2)|(f1&mask0)|(f2&mask1); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask0)|(f1&mask1)|(f2&mask2) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; } } #define ALIGNED __attribute((aligned(32))) static void mult768(int16 h[1536],const int16 f[768],const int16 g[768]) { ALIGNED int16 fgpad[6][512]; #define fpad fgpad #define gpad (fgpad+3) #define hpad fpad ALIGNED int16 h_7681[1536]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); } invntt512_7681(hpad[0],3); ungood(h_7681,hpad); for (i = 0;i < 1536;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_761xint16.h" #define crypto_decode_pxint16 crypto_decode_761xint16 #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #define p 761 static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[768]; ALIGNED int16 g[768]; ALIGNED int16 fg[1536]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 768;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 768;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult768(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 768;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/crypto_core/mult3sntrup761/avx/ntt.c0000777000000000000000000000000014705505552030632 2../../../src/core/mult3sntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/avx/ntt.h0000777000000000000000000000000014705505552030644 2../../../src/core/mult3sntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/compact/0000755000000000000000000000000014705505552021725 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/compact/api.h0000777000000000000000000000000014705505552024577 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/compact/mult.c0000777000000000000000000000000014705505552032642 2../../../src/core/mult3sntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup761/compact/params.h0000644000000000000000000000007114705505544023360 0ustar rootroot#ifndef params_H #define params_H #define p 761 #endif libntruprime-20241021/crypto_core/mult3sntrup857/0000755000000000000000000000000014705505544020306 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/avx/0000755000000000000000000000000014705505552021103 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/avx/api.h0000644000000000000000000000016514705505544022030 0ustar rootroot#define CRYPTO_OUTPUTBYTES 857 #define CRYPTO_INPUTBYTES 857 #define CRYPTO_KEYBYTES 857 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/mult3sntrup857/avx/architectures0000777000000000000000000000000014705505552032603 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/avx/mult1024.c0000644000000000000000000001603114705505544022541 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(32))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); /* XXX: try arbitrary-degree Karatsuba */ for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_857xint16.h" #define crypto_decode_pxint16 crypto_decode_857xint16 #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #define p 857 static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/crypto_core/mult3sntrup857/avx/ntt.c0000777000000000000000000000000014705505552030640 2../../../src/core/mult3sntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/avx/ntt.h0000777000000000000000000000000014705505552030652 2../../../src/core/mult3sntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/avx/precomp7681.inc0000777000000000000000000000000014705505552034007 2../../../src/core/multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/compact/0000755000000000000000000000000014705505552021733 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/compact/api.h0000777000000000000000000000000014705505552024605 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/compact/mult.c0000777000000000000000000000000014705505552032650 2../../../src/core/mult3sntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup857/compact/params.h0000644000000000000000000000007114705505544023366 0ustar rootroot#ifndef params_H #define params_H #define p 857 #endif libntruprime-20241021/crypto_core/mult3sntrup953/0000755000000000000000000000000014705505544020303 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/avx/0000755000000000000000000000000014705505552021100 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/avx/api.h0000644000000000000000000000016514705505544022025 0ustar rootroot#define CRYPTO_OUTPUTBYTES 953 #define CRYPTO_INPUTBYTES 953 #define CRYPTO_KEYBYTES 953 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/mult3sntrup953/avx/architectures0000777000000000000000000000000014705505552032600 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/avx/mult1024.c0000644000000000000000000001603114705505544022536 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(32))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); /* XXX: try arbitrary-degree Karatsuba */ for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_953xint16.h" #define crypto_decode_pxint16 crypto_decode_953xint16 #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #define p 953 static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/crypto_core/mult3sntrup953/avx/ntt.c0000777000000000000000000000000014705505552030635 2../../../src/core/mult3sntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/avx/ntt.h0000777000000000000000000000000014705505552030647 2../../../src/core/mult3sntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/avx/precomp7681.inc0000777000000000000000000000000014705505552034004 2../../../src/core/multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/compact/0000755000000000000000000000000014705505552021730 5ustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/compact/api.h0000777000000000000000000000000014705505552024602 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/compact/mult.c0000777000000000000000000000000014705505552032645 2../../../src/core/mult3sntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/mult3sntrup953/compact/params.h0000644000000000000000000000007114705505544023363 0ustar rootroot#ifndef params_H #define params_H #define p 953 #endif libntruprime-20241021/crypto_core/multsntrup1013/0000755000000000000000000000000014705505544020264 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/avx/0000755000000000000000000000000014705505552021061 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/avx/api.h0000644000000000000000000000017014705505544022002 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2026 #define CRYPTO_INPUTBYTES 2026 #define CRYPTO_KEYBYTES 1013 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/multsntrup1013/avx/architectures0000777000000000000000000000000014705505552032561 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/avx/mult1024.c0000644000000000000000000002465414705505544022531 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_7177_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7177))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_7177_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(12857)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7177)); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(512))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static const ALIGNED int16 y_10753[512] = { #include "precomp10753.inc" } ; /* can also compute these on the fly, and share storage, at expense of 2 NTTs on top of the 24 NTTs below: ... for (i = 0;i < 512;++i) y_7681[i] = 0; y_7681[1] = -3593; ntt512_7681(y_7681,1); ... for (i = 0;i < 512;++i) y_10753[i] = 0; y_10753[1] = 1018; ntt512_10753(y_10753,1); */ static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; ALIGNED int16 h_10753[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); stride(fpad,f); stride(gpad,g); ntt512_10753(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_10753_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_10753_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 d3 = mulmod_10753_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_10753_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_10753_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_10753_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_10753_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_10753_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_10753_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_10753[i]); h4 = mulmod_10753_x16(h4,twist); h5 = mulmod_10753_x16(h5,twist); h6 = mulmod_10753_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); store_x16(&hpad[3][i],squeeze_10753_x16(h3)); } invntt512_10753(hpad[0],4); unstride(h_10753,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_7177_x16(t,const_x16(-1022))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_1013xint16.h" #define crypto_decode_pxint16 crypto_decode_1013xint16 #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #define p 1013 #define q 7177 static inline int16x16 freeze_7177_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 1024;i += 16) { x = load_x16(&f[i]); x = freeze_7177_x16(squeeze_7177_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_7177_x16(squeeze_7177_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/crypto_core/multsntrup1013/avx/ntt.c0000777000000000000000000000000014705505552030533 2../../../src/core/multsntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/avx/ntt.h0000777000000000000000000000000014705505552030545 2../../../src/core/multsntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/avx/precomp10753.inc0000777000000000000000000000000014705505552034111 2../../../src/core/multsntrupP/avx/precomp10753.incustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/avx/precomp7681.inc0000777000000000000000000000000014705505552033765 2../../../src/core/multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/compact/0000755000000000000000000000000014705505552021711 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/compact/api.h0000777000000000000000000000000014705505552024563 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/compact/mult.c0000777000000000000000000000000014705505552032543 2../../../src/core/multsntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/multsntrup1013/compact/params.h0000644000000000000000000000054714705505544023354 0ustar rootroot#ifndef params_H #define params_H #define p 1013 #define q 7177 #define q18 37 /* closest integer to 2^18/q */ #define q27 18701 /* closest integer to 2^27/q */ #include "crypto_decode_1013xint16.h" #define crypto_decode_pxint16 crypto_decode_1013xint16 #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #endif libntruprime-20241021/crypto_core/multsntrup1277/0000755000000000000000000000000014705505544020300 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/avx/0000755000000000000000000000000014705505552021075 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/avx/api.h0000644000000000000000000000017014705505544022016 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2554 #define CRYPTO_INPUTBYTES 2554 #define CRYPTO_KEYBYTES 1277 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/multsntrup1277/avx/architectures0000777000000000000000000000000014705505552032575 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/avx/mult1280.c0000644000000000000000000003653314705505544022550 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_7879_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7879))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_7879_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(17143)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7879)); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0) #define mask2 _mm256_set_epi16(0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0) #define mask3 _mm256_set_epi16(0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0) #define mask4 _mm256_set_epi16(0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0) static void good(int16 fpad[5][512],const int16 f[1280]) { int j; int16x16 f0,f1,f2; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); j += 16; } for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)); j += 16; if (j == 512) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)); j += 16; } } static void ungood(int16 f[2560],const int16 fpad[5][512]) { int j; int16x16 f0,f1,f2,f3,f4,g0,g1,g2,g3,g4; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g1 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g2 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g3 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; /* same as (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g1 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g2 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g3 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g1 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g2 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g3 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g2 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g3 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g1 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g2 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g3 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; } } #define ALIGNED __attribute((aligned(512))) static void mult1280(int16 h[2560],const int16 f[1280],const int16 g[1280]) { ALIGNED int16 fgpad[10][512]; #define fpad fgpad #define gpad (fgpad+5) #define hpad fpad ALIGNED int16 h_7681[2560]; ALIGNED int16 h_10753[2560]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],10); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 f4 = squeeze_7681_x16(load_x16(&fpad[4][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 g4 = squeeze_7681_x16(load_x16(&gpad[4][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d4 = mulmod_7681_x16(f4,g4); int16x16 dsum; int16x16 h0,h1,h2,h3,h4; dsum = add_x16(add_x16(d0,d1),d2); dsum = squeeze_7681_x16(dsum); dsum = add_x16(add_x16(d3,d4),dsum); dsum = squeeze_7681_x16(dsum); /* could save one mult here using sum hi = (sum fi)(sum gi) */ h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f1),sub_x16(g1,g4))); h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f0),sub_x16(g0,g2))); h3 = add_x16(dsum,mulmod_7681_x16(sub_x16(f3,f0),sub_x16(g0,g3))); h4 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f0),sub_x16(g0,g4))); h0 = add_x16(h0,mulmod_7681_x16(sub_x16(f3,f2),sub_x16(g2,g3))); h1 = add_x16(h1,mulmod_7681_x16(sub_x16(f4,f2),sub_x16(g2,g4))); h2 = add_x16(h2,mulmod_7681_x16(sub_x16(f4,f3),sub_x16(g3,g4))); h3 = add_x16(h3,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); h4 = add_x16(h4,mulmod_7681_x16(sub_x16(f3,f1),sub_x16(g1,g3))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); store_x16(&hpad[4][i],squeeze_7681_x16(h4)); } invntt512_7681(hpad[0],5); ungood(h_7681,hpad); good(fpad,f); good(gpad,g); ntt512_10753(fgpad[0],10); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_10753_x16(load_x16(&fpad[3][i])); int16x16 f4 = squeeze_10753_x16(load_x16(&fpad[4][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_10753_x16(load_x16(&gpad[3][i])); int16x16 g4 = squeeze_10753_x16(load_x16(&gpad[4][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 d3 = mulmod_10753_x16(f3,g3); int16x16 d4 = mulmod_10753_x16(f4,g4); int16x16 dsum; int16x16 h0,h1,h2,h3,h4; dsum = add_x16(add_x16(d0,d1),d2); dsum = squeeze_10753_x16(dsum); dsum = add_x16(add_x16(d3,d4),dsum); dsum = squeeze_10753_x16(dsum); /* could save one mult here using sum hi = (sum fi)(sum gi) */ h0 = add_x16(dsum,mulmod_10753_x16(sub_x16(f4,f1),sub_x16(g1,g4))); h1 = add_x16(dsum,mulmod_10753_x16(sub_x16(f1,f0),sub_x16(g0,g1))); h2 = add_x16(dsum,mulmod_10753_x16(sub_x16(f2,f0),sub_x16(g0,g2))); h3 = add_x16(dsum,mulmod_10753_x16(sub_x16(f3,f0),sub_x16(g0,g3))); h4 = add_x16(dsum,mulmod_10753_x16(sub_x16(f4,f0),sub_x16(g0,g4))); h0 = add_x16(h0,mulmod_10753_x16(sub_x16(f3,f2),sub_x16(g2,g3))); h1 = add_x16(h1,mulmod_10753_x16(sub_x16(f4,f2),sub_x16(g2,g4))); h2 = add_x16(h2,mulmod_10753_x16(sub_x16(f4,f3),sub_x16(g3,g4))); h3 = add_x16(h3,mulmod_10753_x16(sub_x16(f2,f1),sub_x16(g1,g2))); h4 = add_x16(h4,mulmod_10753_x16(sub_x16(f3,f1),sub_x16(g1,g3))); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); store_x16(&hpad[3][i],squeeze_10753_x16(h3)); store_x16(&hpad[4][i],squeeze_10753_x16(h4)); } invntt512_10753(hpad[0],5); ungood(h_10753,hpad); for (i = 0;i < 2560;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_7879_x16(t,const_x16(2969))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_1277xint16.h" #define crypto_decode_pxint16 crypto_decode_1277xint16 #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #define p 1277 #define q 7879 static inline int16x16 freeze_7879_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1280]; ALIGNED int16 g[1280]; ALIGNED int16 fg[2560]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1280;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1280;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 1280;i += 16) { x = load_x16(&f[i]); x = freeze_7879_x16(squeeze_7879_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1280(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1280;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_7879_x16(squeeze_7879_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/crypto_core/multsntrup1277/avx/ntt.c0000777000000000000000000000000014705505552030547 2../../../src/core/multsntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/avx/ntt.h0000777000000000000000000000000014705505552030561 2../../../src/core/multsntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/compact/0000755000000000000000000000000014705505552021725 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/compact/api.h0000777000000000000000000000000014705505552024577 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/compact/mult.c0000777000000000000000000000000014705505552032557 2../../../src/core/multsntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/multsntrup1277/compact/params.h0000644000000000000000000000054714705505544023370 0ustar rootroot#ifndef params_H #define params_H #define p 1277 #define q 7879 #define q18 33 /* closest integer to 2^18/q */ #define q27 17035 /* closest integer to 2^27/q */ #include "crypto_decode_1277xint16.h" #define crypto_decode_pxint16 crypto_decode_1277xint16 #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #endif libntruprime-20241021/crypto_core/multsntrup653/0000755000000000000000000000000014705505544020215 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup653/avx/0000755000000000000000000000000014705505552021012 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup653/avx/api.h0000644000000000000000000000016714705505544021741 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1306 #define CRYPTO_INPUTBYTES 1306 #define CRYPTO_KEYBYTES 653 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/multsntrup653/avx/architectures0000777000000000000000000000000014705505552032512 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/multsntrup653/avx/mult768.c0000644000000000000000000002113314705505544022405 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_4621_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(7)),const_x16(4621))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_4621_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-29499)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(4621)); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0) #define mask2 _mm256_set_epi16(0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0) static void good(int16 fpad[3][512],const int16 f[768]) { int j; int16x16 f0,f1; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask0)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); j += 16; } for (;;) { f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask2); store_x16(&fpad[1][j],f0&mask0); store_x16(&fpad[2][j],f0&mask1); j += 16; if (j == 512) break; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask1); store_x16(&fpad[1][j],f0&mask2); store_x16(&fpad[2][j],f0&mask0); j += 16; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask0); store_x16(&fpad[1][j],f0&mask1); store_x16(&fpad[2][j],f0&mask2); j += 16; } } static void ungood(int16 f[1536],const int16 fpad[3][512]) { int j; int16x16 f0,f1,f2,g0,g1,g2; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2); g1 = (f0&mask1)|(f1&mask2)|(f2&mask0); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask2)|(f1&mask0)|(f2&mask1) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask2)|(f1&mask0)|(f2&mask1); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask1)|(f1&mask2)|(f2&mask0) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask0); g1 = (f0&mask2)|(f1&mask0)|(f2&mask1); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask0)|(f1&mask1)|(f2&mask2) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; } } #define ALIGNED __attribute((aligned(512))) static void mult768(int16 h[1536],const int16 f[768],const int16 g[768]) { ALIGNED int16 fgpad[6][512]; #define fpad fgpad #define gpad (fgpad+3) #define hpad fpad ALIGNED int16 h_7681[1536]; ALIGNED int16 h_10753[1536]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); } invntt512_7681(hpad[0],3); ungood(h_7681,hpad); good(fpad,f); good(gpad,g); ntt512_10753(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_10753_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_10753_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); } invntt512_10753(hpad[0],3); ungood(h_10753,hpad); for (i = 0;i < 1536;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_4621_x16(t,const_x16(1487))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_653xint16.h" #define crypto_decode_pxint16 crypto_decode_653xint16 #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #define p 653 #define q 4621 static inline int16x16 freeze_4621_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[768]; ALIGNED int16 g[768]; ALIGNED int16 fg[1536]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 768;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 768;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 768;i += 16) { x = load_x16(&f[i]); x = freeze_4621_x16(squeeze_4621_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult768(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 768;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_4621_x16(squeeze_4621_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/crypto_core/multsntrup653/avx/ntt.c0000777000000000000000000000000014705505552030464 2../../../src/core/multsntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/multsntrup653/avx/ntt.h0000777000000000000000000000000014705505552030476 2../../../src/core/multsntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup653/compact/0000755000000000000000000000000014705505552021642 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup653/compact/api.h0000777000000000000000000000000014705505552024514 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup653/compact/mult.c0000777000000000000000000000000014705505552032474 2../../../src/core/multsntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/multsntrup653/compact/params.h0000644000000000000000000000054214705505544023300 0ustar rootroot#ifndef params_H #define params_H #define p 653 #define q 4621 #define q18 57 /* closest integer to 2^18/q */ #define q27 29045 /* closest integer to 2^27/q */ #include "crypto_decode_653xint16.h" #define crypto_decode_pxint16 crypto_decode_653xint16 #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #endif libntruprime-20241021/crypto_core/multsntrup761/0000755000000000000000000000000014705505544020215 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup761/avx/0000755000000000000000000000000014705505552021012 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup761/avx/api.h0000644000000000000000000000016714705505544021741 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1522 #define CRYPTO_INPUTBYTES 1522 #define CRYPTO_KEYBYTES 761 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/multsntrup761/avx/architectures0000777000000000000000000000000014705505552032512 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/multsntrup761/avx/mult768.c0000644000000000000000000002113214705505544022404 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_4591_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(7)),const_x16(4591))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_4591_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(15631)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(4591)); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0) #define mask2 _mm256_set_epi16(0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0) static void good(int16 fpad[3][512],const int16 f[768]) { int j; int16x16 f0,f1; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask0)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); j += 16; } for (;;) { f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask2); store_x16(&fpad[1][j],f0&mask0); store_x16(&fpad[2][j],f0&mask1); j += 16; if (j == 512) break; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask1); store_x16(&fpad[1][j],f0&mask2); store_x16(&fpad[2][j],f0&mask0); j += 16; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask0); store_x16(&fpad[1][j],f0&mask1); store_x16(&fpad[2][j],f0&mask2); j += 16; } } static void ungood(int16 f[1536],const int16 fpad[3][512]) { int j; int16x16 f0,f1,f2,g0,g1,g2; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2); g1 = (f0&mask1)|(f1&mask2)|(f2&mask0); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask2)|(f1&mask0)|(f2&mask1) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask2)|(f1&mask0)|(f2&mask1); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask1)|(f1&mask2)|(f2&mask0) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask0); g1 = (f0&mask2)|(f1&mask0)|(f2&mask1); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask0)|(f1&mask1)|(f2&mask2) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; } } #define ALIGNED __attribute((aligned(512))) static void mult768(int16 h[1536],const int16 f[768],const int16 g[768]) { ALIGNED int16 fgpad[6][512]; #define fpad fgpad #define gpad (fgpad+3) #define hpad fpad ALIGNED int16 h_7681[1536]; ALIGNED int16 h_10753[1536]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); } invntt512_7681(hpad[0],3); ungood(h_7681,hpad); good(fpad,f); good(gpad,g); ntt512_10753(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_10753_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_10753_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); } invntt512_10753(hpad[0],3); ungood(h_10753,hpad); for (i = 0;i < 1536;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_4591_x16(t,const_x16(-710))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_761xint16.h" #define crypto_decode_pxint16 crypto_decode_761xint16 #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #define p 761 #define q 4591 static inline int16x16 freeze_4591_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[768]; ALIGNED int16 g[768]; ALIGNED int16 fg[1536]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 768;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 768;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 768;i += 16) { x = load_x16(&f[i]); x = freeze_4591_x16(squeeze_4591_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult768(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 768;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_4591_x16(squeeze_4591_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/crypto_core/multsntrup761/avx/ntt.c0000777000000000000000000000000014705505552030464 2../../../src/core/multsntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/multsntrup761/avx/ntt.h0000777000000000000000000000000014705505552030476 2../../../src/core/multsntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup761/compact/0000755000000000000000000000000014705505552021642 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup761/compact/api.h0000777000000000000000000000000014705505552024514 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup761/compact/mult.c0000777000000000000000000000000014705505552032474 2../../../src/core/multsntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/multsntrup761/compact/params.h0000644000000000000000000000054214705505544023300 0ustar rootroot#ifndef params_H #define params_H #define p 761 #define q 4591 #define q18 57 /* closest integer to 2^18/q */ #define q27 29235 /* closest integer to 2^27/q */ #include "crypto_decode_761xint16.h" #define crypto_decode_pxint16 crypto_decode_761xint16 #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #endif libntruprime-20241021/crypto_core/multsntrup857/0000755000000000000000000000000014705505544020223 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/avx/0000755000000000000000000000000014705505552021020 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/avx/api.h0000644000000000000000000000016714705505544021747 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1714 #define CRYPTO_INPUTBYTES 1714 #define CRYPTO_KEYBYTES 857 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/multsntrup857/avx/architectures0000777000000000000000000000000014705505552032520 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/avx/mult1024.c0000644000000000000000000002464714705505544022472 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_5167_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(6)),const_x16(5167))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_5167_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-19761)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(5167)); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(512))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static const ALIGNED int16 y_10753[512] = { #include "precomp10753.inc" } ; /* can also compute these on the fly, and share storage, at expense of 2 NTTs on top of the 24 NTTs below: ... for (i = 0;i < 512;++i) y_7681[i] = 0; y_7681[1] = -3593; ntt512_7681(y_7681,1); ... for (i = 0;i < 512;++i) y_10753[i] = 0; y_10753[1] = 1018; ntt512_10753(y_10753,1); */ static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; ALIGNED int16 h_10753[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); stride(fpad,f); stride(gpad,g); ntt512_10753(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_10753_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_10753_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 d3 = mulmod_10753_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_10753_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_10753_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_10753_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_10753_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_10753_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_10753_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_10753[i]); h4 = mulmod_10753_x16(h4,twist); h5 = mulmod_10753_x16(h5,twist); h6 = mulmod_10753_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); store_x16(&hpad[3][i],squeeze_10753_x16(h3)); } invntt512_10753(hpad[0],4); unstride(h_10753,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_5167_x16(t,const_x16(2146))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_857xint16.h" #define crypto_decode_pxint16 crypto_decode_857xint16 #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #define p 857 #define q 5167 static inline int16x16 freeze_5167_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 1024;i += 16) { x = load_x16(&f[i]); x = freeze_5167_x16(squeeze_5167_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_5167_x16(squeeze_5167_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/crypto_core/multsntrup857/avx/ntt.c0000777000000000000000000000000014705505552030472 2../../../src/core/multsntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/multsntrup857/avx/ntt.h0000777000000000000000000000000014705505552030504 2../../../src/core/multsntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/avx/precomp10753.inc0000777000000000000000000000000014705505552034050 2../../../src/core/multsntrupP/avx/precomp10753.incustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/avx/precomp7681.inc0000777000000000000000000000000014705505552033724 2../../../src/core/multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/compact/0000755000000000000000000000000014705505552021650 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/compact/api.h0000777000000000000000000000000014705505552024522 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup857/compact/mult.c0000777000000000000000000000000014705505552032502 2../../../src/core/multsntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/multsntrup857/compact/params.h0000644000000000000000000000054214705505544023306 0ustar rootroot#ifndef params_H #define params_H #define p 857 #define q 5167 #define q18 51 /* closest integer to 2^18/q */ #define q27 25976 /* closest integer to 2^27/q */ #include "crypto_decode_857xint16.h" #define crypto_decode_pxint16 crypto_decode_857xint16 #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #endif libntruprime-20241021/crypto_core/multsntrup953/0000755000000000000000000000000014705505544020220 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/avx/0000755000000000000000000000000014705505552021015 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/avx/api.h0000644000000000000000000000016714705505544021744 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1906 #define CRYPTO_INPUTBYTES 1906 #define CRYPTO_KEYBYTES 953 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/multsntrup953/avx/architectures0000777000000000000000000000000014705505552032515 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/avx/mult1024.c0000644000000000000000000002464614705505544022466 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_6343_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(5)),const_x16(6343))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_6343_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(10487)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(6343)); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(512))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static const ALIGNED int16 y_10753[512] = { #include "precomp10753.inc" } ; /* can also compute these on the fly, and share storage, at expense of 2 NTTs on top of the 24 NTTs below: ... for (i = 0;i < 512;++i) y_7681[i] = 0; y_7681[1] = -3593; ntt512_7681(y_7681,1); ... for (i = 0;i < 512;++i) y_10753[i] = 0; y_10753[1] = 1018; ntt512_10753(y_10753,1); */ static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; ALIGNED int16 h_10753[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); stride(fpad,f); stride(gpad,g); ntt512_10753(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_10753_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_10753_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 d3 = mulmod_10753_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_10753_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_10753_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_10753_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_10753_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_10753_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_10753_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_10753[i]); h4 = mulmod_10753_x16(h4,twist); h5 = mulmod_10753_x16(h5,twist); h6 = mulmod_10753_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); store_x16(&hpad[3][i],squeeze_10753_x16(h3)); } invntt512_10753(hpad[0],4); unstride(h_10753,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_6343_x16(t,const_x16(1308))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_953xint16.h" #define crypto_decode_pxint16 crypto_decode_953xint16 #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #define p 953 #define q 6343 static inline int16x16 freeze_6343_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 1024;i += 16) { x = load_x16(&f[i]); x = freeze_6343_x16(squeeze_6343_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_6343_x16(squeeze_6343_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/crypto_core/multsntrup953/avx/ntt.c0000777000000000000000000000000014705505552030467 2../../../src/core/multsntrupP/avx/ntt.custar rootrootlibntruprime-20241021/crypto_core/multsntrup953/avx/ntt.h0000777000000000000000000000000014705505552030501 2../../../src/core/multsntrupP/avx/ntt.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/avx/precomp10753.inc0000777000000000000000000000000014705505552034045 2../../../src/core/multsntrupP/avx/precomp10753.incustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/avx/precomp7681.inc0000777000000000000000000000000014705505552033721 2../../../src/core/multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/compact/0000755000000000000000000000000014705505552021645 5ustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/compact/api.h0000777000000000000000000000000014705505552024517 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/multsntrup953/compact/mult.c0000777000000000000000000000000014705505552032477 2../../../src/core/multsntrupP/compact/mult.custar rootrootlibntruprime-20241021/crypto_core/multsntrup953/compact/params.h0000644000000000000000000000054214705505544023303 0ustar rootroot#ifndef params_H #define params_H #define p 953 #define q 6343 #define q18 41 /* closest integer to 2^18/q */ #define q27 21160 /* closest integer to 2^27/q */ #include "crypto_decode_953xint16.h" #define crypto_decode_pxint16 crypto_decode_953xint16 #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #endif libntruprime-20241021/crypto_core/scale3sntrup1013/0000755000000000000000000000000014705505544020455 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1013/avx/0000755000000000000000000000000014705505552021252 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1013/avx/api.h0000644000000000000000000000016514705505544022177 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2026 #define CRYPTO_INPUTBYTES 2026 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/scale3sntrup1013/avx/architectures0000777000000000000000000000000014705505552032752 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1013/avx/core.c0000644000000000000000000000243314705505544022351 0ustar rootroot#include #include "crypto_core.h" #define p 1013 #define q 7177 #include "crypto_decode_1013xint16.h" #define crypto_decode_pxint16 crypto_decode_1013xint16 #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/crypto_core/scale3sntrup1013/ref/0000755000000000000000000000000014705505552021230 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1013/ref/api.h0000777000000000000000000000000014705505552024102 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1013/ref/core.c0000644000000000000000000000152014705505544022323 0ustar rootroot#include "crypto_core.h" #define p 1013 #define q 7177 #include "crypto_decode_1013xint16.h" #define crypto_decode_pxint16 crypto_decode_1013xint16 #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/crypto_core/scale3sntrup1277/0000755000000000000000000000000014705505544020471 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1277/avx/0000755000000000000000000000000014705505552021266 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1277/avx/api.h0000644000000000000000000000016514705505544022213 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2554 #define CRYPTO_INPUTBYTES 2554 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/scale3sntrup1277/avx/architectures0000777000000000000000000000000014705505552032766 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1277/avx/core.c0000644000000000000000000000243314705505544022365 0ustar rootroot#include #include "crypto_core.h" #define p 1277 #define q 7879 #include "crypto_decode_1277xint16.h" #define crypto_decode_pxint16 crypto_decode_1277xint16 #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/crypto_core/scale3sntrup1277/ref/0000755000000000000000000000000014705505552021244 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1277/ref/api.h0000777000000000000000000000000014705505552024116 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup1277/ref/core.c0000644000000000000000000000152014705505544022337 0ustar rootroot#include "crypto_core.h" #define p 1277 #define q 7879 #include "crypto_decode_1277xint16.h" #define crypto_decode_pxint16 crypto_decode_1277xint16 #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/crypto_core/scale3sntrup653/0000755000000000000000000000000014705505544020406 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup653/avx/0000755000000000000000000000000014705505552021203 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup653/avx/api.h0000644000000000000000000000016514705505544022130 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1306 #define CRYPTO_INPUTBYTES 1306 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/scale3sntrup653/avx/architectures0000777000000000000000000000000014705505552032703 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup653/avx/core.c0000644000000000000000000000242614705505544022304 0ustar rootroot#include #include "crypto_core.h" #define p 653 #define q 4621 #include "crypto_decode_653xint16.h" #define crypto_decode_pxint16 crypto_decode_653xint16 #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/crypto_core/scale3sntrup653/ref/0000755000000000000000000000000014705505552021161 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup653/ref/api.h0000777000000000000000000000000014705505552024033 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup653/ref/core.c0000644000000000000000000000151314705505544022256 0ustar rootroot#include "crypto_core.h" #define p 653 #define q 4621 #include "crypto_decode_653xint16.h" #define crypto_decode_pxint16 crypto_decode_653xint16 #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/crypto_core/scale3sntrup761/0000755000000000000000000000000014705505544020406 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup761/avx/0000755000000000000000000000000014705505552021203 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup761/avx/api.h0000644000000000000000000000016514705505544022130 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1522 #define CRYPTO_INPUTBYTES 1522 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/scale3sntrup761/avx/architectures0000777000000000000000000000000014705505552032703 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup761/avx/core.c0000644000000000000000000000242614705505544022304 0ustar rootroot#include #include "crypto_core.h" #define p 761 #define q 4591 #include "crypto_decode_761xint16.h" #define crypto_decode_pxint16 crypto_decode_761xint16 #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/crypto_core/scale3sntrup761/ref/0000755000000000000000000000000014705505552021161 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup761/ref/api.h0000777000000000000000000000000014705505552024033 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup761/ref/core.c0000644000000000000000000000151314705505544022256 0ustar rootroot#include "crypto_core.h" #define p 761 #define q 4591 #include "crypto_decode_761xint16.h" #define crypto_decode_pxint16 crypto_decode_761xint16 #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/crypto_core/scale3sntrup857/0000755000000000000000000000000014705505544020414 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup857/avx/0000755000000000000000000000000014705505552021211 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup857/avx/api.h0000644000000000000000000000016514705505544022136 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1714 #define CRYPTO_INPUTBYTES 1714 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/scale3sntrup857/avx/architectures0000777000000000000000000000000014705505552032711 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup857/avx/core.c0000644000000000000000000000242614705505544022312 0ustar rootroot#include #include "crypto_core.h" #define p 857 #define q 5167 #include "crypto_decode_857xint16.h" #define crypto_decode_pxint16 crypto_decode_857xint16 #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/crypto_core/scale3sntrup857/ref/0000755000000000000000000000000014705505552021167 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup857/ref/api.h0000777000000000000000000000000014705505552024041 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup857/ref/core.c0000644000000000000000000000151314705505544022264 0ustar rootroot#include "crypto_core.h" #define p 857 #define q 5167 #include "crypto_decode_857xint16.h" #define crypto_decode_pxint16 crypto_decode_857xint16 #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/crypto_core/scale3sntrup953/0000755000000000000000000000000014705505544020411 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup953/avx/0000755000000000000000000000000014705505552021206 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup953/avx/api.h0000644000000000000000000000016514705505544022133 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1906 #define CRYPTO_INPUTBYTES 1906 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/scale3sntrup953/avx/architectures0000777000000000000000000000000014705505552032706 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup953/avx/core.c0000644000000000000000000000242614705505544022307 0ustar rootroot#include #include "crypto_core.h" #define p 953 #define q 6343 #include "crypto_decode_953xint16.h" #define crypto_decode_pxint16 crypto_decode_953xint16 #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/crypto_core/scale3sntrup953/ref/0000755000000000000000000000000014705505552021164 5ustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup953/ref/api.h0000777000000000000000000000000014705505552024036 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/scale3sntrup953/ref/core.c0000644000000000000000000000151314705505544022261 0ustar rootroot#include "crypto_core.h" #define p 953 #define q 6343 #include "crypto_decode_953xint16.h" #define crypto_decode_pxint16 crypto_decode_953xint16 #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/crypto_core/weightsntrup1013/0000755000000000000000000000000014705505544020572 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1013/avx/0000755000000000000000000000000014705505552021367 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1013/avx/api.h0000644000000000000000000000016214705505544022311 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2 #define CRYPTO_INPUTBYTES 1013 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/weightsntrup1013/avx/architectures0000777000000000000000000000000014705505552033067 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1013/avx/params.h0000644000000000000000000000016314705505544023024 0ustar rootroot#define p 1013 #define endingmask _mm256_set_epi8(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0) libntruprime-20241021/crypto_core/weightsntrup1013/avx/weight.c0000777000000000000000000000000014705505552032513 2../../../src/core/weightsntrupP/avx/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup1013/ref/0000755000000000000000000000000014705505552021345 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1013/ref/api.h0000777000000000000000000000000014705505552024217 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1013/ref/params.h0000644000000000000000000000001714705505545023001 0ustar rootroot#define p 1013 libntruprime-20241021/crypto_core/weightsntrup1013/ref/weight.c0000777000000000000000000000000014705505552032447 2../../../src/core/weightsntrupP/ref/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/0000755000000000000000000000000014705505545020607 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/avx/0000755000000000000000000000000014705505552021403 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/avx/api.h0000644000000000000000000000016214705505545022326 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2 #define CRYPTO_INPUTBYTES 1277 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/weightsntrup1277/avx/architectures0000777000000000000000000000000014705505552033103 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/avx/params.h0000644000000000000000000000016314705505545023041 0ustar rootroot#define p 1277 #define endingmask _mm256_set_epi8(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0) libntruprime-20241021/crypto_core/weightsntrup1277/avx/weight.c0000777000000000000000000000000014705505552032527 2../../../src/core/weightsntrupP/avx/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/ref/0000755000000000000000000000000014705505552021361 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/ref/api.h0000777000000000000000000000000014705505552024233 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/weightsntrup1277/ref/params.h0000644000000000000000000000001714705505545023015 0ustar rootroot#define p 1277 libntruprime-20241021/crypto_core/weightsntrup1277/ref/weight.c0000777000000000000000000000000014705505552032463 2../../../src/core/weightsntrupP/ref/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/0000755000000000000000000000000014705505545020524 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/avx/0000755000000000000000000000000014705505552021320 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/avx/api.h0000644000000000000000000000016114705505545022242 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2 #define CRYPTO_INPUTBYTES 653 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/weightsntrup653/avx/architectures0000777000000000000000000000000014705505552033020 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/avx/params.h0000644000000000000000000000016214705505545022755 0ustar rootroot#define p 653 #define endingmask _mm256_set_epi8(1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) libntruprime-20241021/crypto_core/weightsntrup653/avx/weight.c0000777000000000000000000000000014705505552032444 2../../../src/core/weightsntrupP/avx/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/ref/0000755000000000000000000000000014705505552021276 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/ref/api.h0000777000000000000000000000000014705505552024150 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/weightsntrup653/ref/params.h0000644000000000000000000000001614705505545022731 0ustar rootroot#define p 653 libntruprime-20241021/crypto_core/weightsntrup653/ref/weight.c0000777000000000000000000000000014705505552032400 2../../../src/core/weightsntrupP/ref/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/0000755000000000000000000000000014705505545020524 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/avx/0000755000000000000000000000000014705505552021320 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/avx/api.h0000644000000000000000000000016114705505545022242 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2 #define CRYPTO_INPUTBYTES 761 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/weightsntrup761/avx/architectures0000777000000000000000000000000014705505552033020 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/avx/params.h0000644000000000000000000000016214705505545022755 0ustar rootroot#define p 761 #define endingmask _mm256_set_epi8(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0) libntruprime-20241021/crypto_core/weightsntrup761/avx/weight.c0000777000000000000000000000000014705505552032444 2../../../src/core/weightsntrupP/avx/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/ref/0000755000000000000000000000000014705505552021276 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/ref/api.h0000777000000000000000000000000014705505552024150 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/weightsntrup761/ref/params.h0000644000000000000000000000001614705505545022731 0ustar rootroot#define p 761 libntruprime-20241021/crypto_core/weightsntrup761/ref/weight.c0000777000000000000000000000000014705505552032400 2../../../src/core/weightsntrupP/ref/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/0000755000000000000000000000000014705505545020532 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/avx/0000755000000000000000000000000014705505552021326 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/avx/api.h0000644000000000000000000000016114705505545022250 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2 #define CRYPTO_INPUTBYTES 857 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/weightsntrup857/avx/architectures0000777000000000000000000000000014705505552033026 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/avx/params.h0000644000000000000000000000016214705505545022763 0ustar rootroot#define p 857 #define endingmask _mm256_set_epi8(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0) libntruprime-20241021/crypto_core/weightsntrup857/avx/weight.c0000777000000000000000000000000014705505552032452 2../../../src/core/weightsntrupP/avx/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/ref/0000755000000000000000000000000014705505552021304 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/ref/api.h0000777000000000000000000000000014705505552024156 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/weightsntrup857/ref/params.h0000644000000000000000000000001614705505545022737 0ustar rootroot#define p 857 libntruprime-20241021/crypto_core/weightsntrup857/ref/weight.c0000777000000000000000000000000014705505552032406 2../../../src/core/weightsntrupP/ref/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/0000755000000000000000000000000014705505545020527 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/avx/0000755000000000000000000000000014705505552021323 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/avx/api.h0000644000000000000000000000016114705505545022245 0ustar rootroot#define CRYPTO_OUTPUTBYTES 2 #define CRYPTO_INPUTBYTES 953 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/weightsntrup953/avx/architectures0000777000000000000000000000000014705505552033023 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/avx/params.h0000644000000000000000000000016214705505545022760 0ustar rootroot#define p 953 #define endingmask _mm256_set_epi8(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0) libntruprime-20241021/crypto_core/weightsntrup953/avx/weight.c0000777000000000000000000000000014705505552032447 2../../../src/core/weightsntrupP/avx/weight.custar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/ref/0000755000000000000000000000000014705505552021301 5ustar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/ref/api.h0000777000000000000000000000000014705505552024153 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/weightsntrup953/ref/params.h0000644000000000000000000000001614705505545022734 0ustar rootroot#define p 953 libntruprime-20241021/crypto_core/weightsntrup953/ref/weight.c0000777000000000000000000000000014705505552032403 2../../../src/core/weightsntrupP/ref/weight.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/0000755000000000000000000000000014705505545020571 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/avx/0000755000000000000000000000000014705505552021365 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/avx/api.h0000644000000000000000000000016514705505545022313 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1013 #define CRYPTO_INPUTBYTES 1013 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/wforcesntrup1013/avx/architectures0000777000000000000000000000000014705505552033065 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/avx/params.h0000644000000000000000000000020014705505545023013 0ustar rootroot#define p 1013 #define w 448 #include "crypto_core_weightsntrup1013.h" #define crypto_core_weight crypto_core_weightsntrup1013 libntruprime-20241021/crypto_core/wforcesntrup1013/avx/wforce.c0000777000000000000000000000000014705505552032503 2../../../src/core/wforcesntrupP/avx/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/simpler/0000755000000000000000000000000014705505552022242 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/simpler/api.h0000777000000000000000000000000014705505552025114 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/simpler/params.h0000777000000000000000000000000014705505552026340 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1013/simpler/wforce.c0000777000000000000000000000000014705505552034235 2../../../src/core/wforcesntrupP/simpler/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/0000755000000000000000000000000014705505545020605 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/avx/0000755000000000000000000000000014705505552021401 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/avx/api.h0000644000000000000000000000016514705505545022327 0ustar rootroot#define CRYPTO_OUTPUTBYTES 1277 #define CRYPTO_INPUTBYTES 1277 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/wforcesntrup1277/avx/architectures0000777000000000000000000000000014705505552033101 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/avx/params.h0000644000000000000000000000020014705505545023027 0ustar rootroot#define p 1277 #define w 492 #include "crypto_core_weightsntrup1277.h" #define crypto_core_weight crypto_core_weightsntrup1277 libntruprime-20241021/crypto_core/wforcesntrup1277/avx/wforce.c0000777000000000000000000000000014705505552032517 2../../../src/core/wforcesntrupP/avx/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/simpler/0000755000000000000000000000000014705505552022256 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/simpler/api.h0000777000000000000000000000000014705505552025130 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/simpler/params.h0000777000000000000000000000000014705505552026354 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup1277/simpler/wforce.c0000777000000000000000000000000014705505552034251 2../../../src/core/wforcesntrupP/simpler/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/0000755000000000000000000000000014705505545020522 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/avx/0000755000000000000000000000000014705505552021316 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/avx/api.h0000644000000000000000000000016314705505545022242 0ustar rootroot#define CRYPTO_OUTPUTBYTES 653 #define CRYPTO_INPUTBYTES 653 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/wforcesntrup653/avx/architectures0000777000000000000000000000000014705505552033016 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/avx/params.h0000644000000000000000000000017514705505545022757 0ustar rootroot#define p 653 #define w 288 #include "crypto_core_weightsntrup653.h" #define crypto_core_weight crypto_core_weightsntrup653 libntruprime-20241021/crypto_core/wforcesntrup653/avx/wforce.c0000777000000000000000000000000014705505552032434 2../../../src/core/wforcesntrupP/avx/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/simpler/0000755000000000000000000000000014705505552022173 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/simpler/api.h0000777000000000000000000000000014705505552025045 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/simpler/params.h0000777000000000000000000000000014705505552026271 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup653/simpler/wforce.c0000777000000000000000000000000014705505552034166 2../../../src/core/wforcesntrupP/simpler/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/0000755000000000000000000000000014705505545020522 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/avx/0000755000000000000000000000000014705505552021316 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/avx/api.h0000644000000000000000000000016314705505545022242 0ustar rootroot#define CRYPTO_OUTPUTBYTES 761 #define CRYPTO_INPUTBYTES 761 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/wforcesntrup761/avx/architectures0000777000000000000000000000000014705505552033016 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/avx/params.h0000644000000000000000000000017514705505545022757 0ustar rootroot#define p 761 #define w 286 #include "crypto_core_weightsntrup761.h" #define crypto_core_weight crypto_core_weightsntrup761 libntruprime-20241021/crypto_core/wforcesntrup761/avx/wforce.c0000777000000000000000000000000014705505552032434 2../../../src/core/wforcesntrupP/avx/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/simpler/0000755000000000000000000000000014705505552022173 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/simpler/api.h0000777000000000000000000000000014705505552025045 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/simpler/params.h0000777000000000000000000000000014705505552026271 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup761/simpler/wforce.c0000777000000000000000000000000014705505552034166 2../../../src/core/wforcesntrupP/simpler/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/0000755000000000000000000000000014705505545020530 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/avx/0000755000000000000000000000000014705505552021324 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/avx/api.h0000644000000000000000000000016314705505545022250 0ustar rootroot#define CRYPTO_OUTPUTBYTES 857 #define CRYPTO_INPUTBYTES 857 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/wforcesntrup857/avx/architectures0000777000000000000000000000000014705505552033024 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/avx/params.h0000644000000000000000000000017514705505545022765 0ustar rootroot#define p 857 #define w 322 #include "crypto_core_weightsntrup857.h" #define crypto_core_weight crypto_core_weightsntrup857 libntruprime-20241021/crypto_core/wforcesntrup857/avx/wforce.c0000777000000000000000000000000014705505552032442 2../../../src/core/wforcesntrupP/avx/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/simpler/0000755000000000000000000000000014705505552022201 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/simpler/api.h0000777000000000000000000000000014705505552025053 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/simpler/params.h0000777000000000000000000000000014705505552026277 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup857/simpler/wforce.c0000777000000000000000000000000014705505552034174 2../../../src/core/wforcesntrupP/simpler/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/0000755000000000000000000000000014705505545020525 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/avx/0000755000000000000000000000000014705505552021321 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/avx/api.h0000644000000000000000000000016314705505545022245 0ustar rootroot#define CRYPTO_OUTPUTBYTES 953 #define CRYPTO_INPUTBYTES 953 #define CRYPTO_KEYBYTES 0 #define CRYPTO_CONSTBYTES 0 libntruprime-20241021/crypto_core/wforcesntrup953/avx/architectures0000777000000000000000000000000014705505552033021 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/avx/params.h0000644000000000000000000000017514705505545022762 0ustar rootroot#define p 953 #define w 396 #include "crypto_core_weightsntrup953.h" #define crypto_core_weight crypto_core_weightsntrup953 libntruprime-20241021/crypto_core/wforcesntrup953/avx/wforce.c0000777000000000000000000000000014705505552032437 2../../../src/core/wforcesntrupP/avx/wforce.custar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/simpler/0000755000000000000000000000000014705505552022176 5ustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/simpler/api.h0000777000000000000000000000000014705505552025050 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/simpler/params.h0000777000000000000000000000000014705505552026274 2../avx/params.hustar rootrootlibntruprime-20241021/crypto_core/wforcesntrup953/simpler/wforce.c0000777000000000000000000000000014705505552034171 2../../../src/core/wforcesntrupP/simpler/wforce.custar rootrootlibntruprime-20241021/crypto_decode/0000755000000000000000000000000014705505546016017 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/0000755000000000000000000000000014705505545017113 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/avx/0000755000000000000000000000000014705505552017707 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/avx/Makefile0000644000000000000000000000015314705505545021350 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 1013 2393 2393 3588 True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/1013x2393/avx/api.h0000644000000000000000000000012214705505545020626 0ustar rootroot#define CRYPTO_STRBYTES 1423 #define CRYPTO_ITEMS 1013 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/1013x2393/avx/architectures0000777000000000000000000000000014705505552031407 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/avx/decode.c0000644000000000000000000003406314705505545021306 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[507],R2[254],R3[127],R4[64],R5[32],R6[16],R7[8],R8[4],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,4)-mulhi(mullo(a1,4749),276); a1 += *--s; /* -138...393 */ a1 -= 276; /* -414...117 */ a1 += 276&crypto_int16_negative_mask(a1); /* -138...275 */ a1 += 276&crypto_int16_negative_mask(a1); /* 0...275 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[14506]+[1243] */ i = 0; s -= 2; a2 = a0 = R10[0]; a0 = mulhi(a0,-6226)-mulhi(mullo(a0,-1157),14506); /* -8810...7253 */ a0 += s[2*i+1]; /* -8810...7508 */ a0 = mulhi(a0,-6226)-mulhi(mullo(a0,-1157),14506); /* -7967...8089 */ a0 += s[2*i+0]; /* -7967...8344 */ a0 += 14506&crypto_int16_negative_mask(a0); /* 0...14505 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,253); /* invalid inputs might need reduction mod 1243 */ a1 -= 1243; a1 += 1243&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 3*[1927]+[165] */ i = 0; s -= 1; a2 = a0 = R9[1]; a0 = mulhi(a0,754)-mulhi(mullo(a0,-8706),1927); /* -964...1152 */ a0 += s[1*i+0]; /* -964...1407 */ a0 += 1927&crypto_int16_negative_mask(a0); /* 0...1926 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 165 */ a1 -= 165; a1 += 165&crypto_int16_negative_mask(a1); R8[2] = a0; R8[3] = a1; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,754)-mulhi(mullo(a0,-8706),1927); /* -964...1152 */ a0 += s[1*i+0]; /* -964...1407 */ a0 += 1927&crypto_int16_negative_mask(a0); /* 0...1926 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 1927 */ a1 -= 1927; a1 += 1927&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 7*[11236]+[962] */ i = 0; s -= 2; a2 = a0 = R8[3]; a0 = mulhi(a0,1868)-mulhi(mullo(a0,-1493),11236); /* -5618...6085 */ a0 += s[2*i+1]; /* -5618...6340 */ a0 = mulhi(a0,1868)-mulhi(mullo(a0,-1493),11236); /* -5779...5798 */ a0 += s[2*i+0]; /* -5779...6053 */ a0 += 11236&crypto_int16_negative_mask(a0); /* 0...11235 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 962 */ a1 -= 962; a1 += 962&crypto_int16_negative_mask(a1); R7[6] = a0; R7[7] = a1; s -= 6; for (i = 2;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,1868)-mulhi(mullo(a0,-1493),11236); /* -5618...6085 */ a0 += s[2*i+1]; /* -5618...6340 */ a0 = mulhi(a0,1868)-mulhi(mullo(a0,-1493),11236); /* -5779...5798 */ a0 += s[2*i+0]; /* -5779...6053 */ a0 += 11236&crypto_int16_negative_mask(a0); /* 0...11235 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 11236 */ a1 -= 11236; a1 += 11236&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 15*[106]+[2322] */ i = 0; s -= 1; a2 = a0 = R7[7]; a0 = mulhi(a0,-40)-mulhi(mullo(a0,-27204),106); /* -63...53 */ a0 += s[1*i+0]; /* -63...308 */ a0 = mulhi(a0,28)-mulhi(mullo(a0,-618),106); /* -54...53 */ a0 += 106&crypto_int16_negative_mask(a0); /* 0...105 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,21021); /* invalid inputs might need reduction mod 2322 */ a1 -= 2322; a1 += 2322&crypto_int16_negative_mask(a1); R6[14] = a0; R6[15] = a1; s -= 0; for (i = 6;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,28)-mulhi(mullo(a0,-618),106); /* -53...60 */ a0 += 106&crypto_int16_negative_mask(a0); /* 0...105 */ a1 = (a2-a0)>>1; a1 = mullo(a1,21021); /* invalid inputs might need reduction mod 106 */ a1 -= 106; a1 += 106&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 31*[164]+[3624] */ i = 0; s -= 1; a2 = a0 = R6[15]; a0 = mulhi(a0,16)-mulhi(mullo(a0,28772),164); /* -82...86 */ a0 += s[1*i+0]; /* -82...341 */ a0 = mulhi(a0,-64)-mulhi(mullo(a0,-400),164); /* -83...82 */ a0 += 164&crypto_int16_negative_mask(a0); /* 0...163 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-25575); /* invalid inputs might need reduction mod 3624 */ a1 -= 3624; a1 += 3624&crypto_int16_negative_mask(a1); R5[30] = a0; R5[31] = a1; s -= 15; for (i = 14;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,16)-mulhi(mullo(a0,28772),164); /* -82...86 */ a0 += s[1*i+0]; /* -82...341 */ a0 = mulhi(a0,-64)-mulhi(mullo(a0,-400),164); /* -83...82 */ a0 += 164&crypto_int16_negative_mask(a0); /* 0...163 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-25575); /* invalid inputs might need reduction mod 164 */ a1 -= 164; a1 += 164&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 63*[3278]+[283] */ i = 0; s -= 1; a2 = a0 = R5[31]; a0 = mulhi(a0,412)-mulhi(mullo(a0,-5118),3278); /* -1639...1742 */ a0 += s[1*i+0]; /* -1639...1997 */ a0 += 3278&crypto_int16_negative_mask(a0); /* 0...3277 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-19113); /* invalid inputs might need reduction mod 283 */ a1 -= 283; a1 += 283&crypto_int16_negative_mask(a1); R4[62] = a0; R4[63] = a1; s -= 62; i = 15; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,412),mulhiconst(mulloconst(A0,-5118),3278)); /* -1639...1742 */ A0 = add(A0,S1); /* -1639...1997 */ A0 = sub(mulhiconst(A0,412),mulhiconst(mulloconst(A0,-5118),3278)); /* -1650...1651 */ A0 = add(A0,S0); /* -1650...1906 */ A0 = ifnegaddconst(A0,3278); /* 0...3277 */ A1 = add(add(shiftleftconst(A2,15),shiftleftconst(S1,7)),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-19113); /* invalid inputs might need reduction mod 3278 */ A1 = ifgesubconst(A1,3278); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 126*[916]+[283] */ R3[126] = R4[63]; s -= 63; i = 47; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-240),mulhiconst(mulloconst(A0,-18316),916)); /* -518...458 */ A0 = add(A0,S0); /* -518...713 */ A0 = ifnegaddconst(A0,916); /* 0...915 */ A1 = add(shiftleftconst(A2,6),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,-17171); /* invalid inputs might need reduction mod 916 */ A1 = ifgesubconst(A1,916); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 253*[7744]+[2393] */ i = 0; s -= 2; a2 = a0 = R3[126]; a0 = mulhi(a0,3712)-mulhi(mullo(a0,-2166),7744); /* -3872...4800 */ a0 += s[2*i+1]; /* -3872...5055 */ a0 = mulhi(a0,3712)-mulhi(mullo(a0,-2166),7744); /* -4092...4158 */ a0 += s[2*i+0]; /* -4092...4413 */ a0 += 7744&crypto_int16_negative_mask(a0); /* 0...7743 */ a1 = (a2<<10)+(s[2*i+1]<<2)+((s[2*i]-a0)>>6); a1 = mullo(a1,27081); /* invalid inputs might need reduction mod 2393 */ a1 -= 2393; a1 += 2393&crypto_int16_negative_mask(a1); R2[252] = a0; R2[253] = a1; s -= 252; i = 110; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,3712),mulhiconst(mulloconst(A0,-2166),7744)); /* -3872...4800 */ A0 = add(A0,S1); /* -3872...5055 */ A0 = sub(mulhiconst(A0,3712),mulhiconst(mulloconst(A0,-2166),7744)); /* -4092...4158 */ A0 = add(A0,S0); /* -4092...4413 */ A0 = ifnegaddconst(A0,7744); /* 0...7743 */ A1 = add(add(shiftleftconst(A2,10),shiftleftconst(S1,2)),signedshiftrightconst(sub(S0,A0),6)); A1 = mulloconst(A1,27081); /* invalid inputs might need reduction mod 7744 */ A1 = ifgesubconst(A1,7744); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 506*[88]+[2393] */ R1[506] = R2[253]; s -= 0; i = 237; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); A0 = sub(mulhiconst(A0,-24),mulhiconst(mulloconst(A0,-745),88)); /* -50...44 */ A0 = ifnegaddconst(A0,88); /* 0...87 */ A1 = signedshiftrightconst(sub(A2,A0),3); A1 = mulloconst(A1,-29789); /* invalid inputs might need reduction mod 88 */ A1 = ifgesubconst(A1,88); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 1013*[2393] */ R0[1012] = 3*R1[506]-3588; s -= 1012; i = 490; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-107),mulhiconst(mulloconst(A0,-7011),2393)); /* -1224...1196 */ A0 = add(A0,S1); /* -1224...1451 */ A0 = sub(mulhiconst(A0,-107),mulhiconst(mulloconst(A0,-7011),2393)); /* -1199...1198 */ A0 = add(A0,S0); /* -1199...1453 */ A0 = ifnegaddconst(A0,2393); /* 0...2392 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-20759); /* invalid inputs might need reduction mod 2393 */ A1 = ifgesubconst(A1,2393); A0 = mulloconst(A0,3); A1 = mulloconst(A1,3); A0 = subconst(A0,3588); A1 = subconst(A1,3588); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/1013x2393/avx/decodegen.py0000777000000000000000000000000014705505552030643 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/int16/0000755000000000000000000000000014705505552020052 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/int16/Makefile0000777000000000000000000000000014705505552024160 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/int16/api.h0000777000000000000000000000000014705505552022724 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/1013x2393/int16/decode.c0000644000000000000000000002162714705505545021453 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,4749); a1 = mulhi(a1,4)-mulhi(lo,276); a1 += *--s; /* -138...393 */ a1 -= 276; /* -414...117 */ a1 += crypto_int16_negative_mask(a1)&276; /* -138...275 */ a1 += crypto_int16_negative_mask(a1)&276; /* 0...275 */ R[0] = a1; /* reconstruct mod 1*[14506]+[1243] */ ri = R[0]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1157); a0 = mulhi(ri,-6226)-mulhi(lo,14506); /* -8810...7253 */ a0 += s1; /* -8810...7508 */ lo = mullo(a0,-1157); a0 = mulhi(a0,-6226)-mulhi(lo,14506); /* -7967...8089 */ a0 += s0; /* -7967...8344 */ a0 += crypto_int16_negative_mask(a0)&14506; /* 0...14505 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,253); /* invalid inputs might need reduction mod 1243 */ a1 -= 1243; a1 += crypto_int16_negative_mask(a1)&1243; R[0] = a0; R[1] = a1; /* reconstruct mod 3*[1927]+[165] */ ri = R[1]; s0 = *--s; lo = mullo(ri,-8706); a0 = mulhi(ri,754)-mulhi(lo,1927); /* -964...1152 */ a0 += s0; /* -964...1407 */ a0 += crypto_int16_negative_mask(a0)&1927; /* 0...1926 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 165 */ a1 -= 165; a1 += crypto_int16_negative_mask(a1)&165; R[2] = a0; R[3] = a1; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-8706); a0 = mulhi(ri,754)-mulhi(lo,1927); /* -964...1152 */ a0 += s0; /* -964...1407 */ a0 += crypto_int16_negative_mask(a0)&1927; /* 0...1926 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 1927 */ a1 -= 1927; a1 += crypto_int16_negative_mask(a1)&1927; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 7*[11236]+[962] */ ri = R[3]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1493); a0 = mulhi(ri,1868)-mulhi(lo,11236); /* -5618...6085 */ a0 += s1; /* -5618...6340 */ lo = mullo(a0,-1493); a0 = mulhi(a0,1868)-mulhi(lo,11236); /* -5779...5798 */ a0 += s0; /* -5779...6053 */ a0 += crypto_int16_negative_mask(a0)&11236; /* 0...11235 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 962 */ a1 -= 962; a1 += crypto_int16_negative_mask(a1)&962; R[6] = a0; R[7] = a1; for (i = 2;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1493); a0 = mulhi(ri,1868)-mulhi(lo,11236); /* -5618...6085 */ a0 += s1; /* -5618...6340 */ lo = mullo(a0,-1493); a0 = mulhi(a0,1868)-mulhi(lo,11236); /* -5779...5798 */ a0 += s0; /* -5779...6053 */ a0 += crypto_int16_negative_mask(a0)&11236; /* 0...11235 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 11236 */ a1 -= 11236; a1 += crypto_int16_negative_mask(a1)&11236; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 15*[106]+[2322] */ ri = R[7]; s0 = *--s; lo = mullo(ri,-27204); a0 = mulhi(ri,-40)-mulhi(lo,106); /* -63...53 */ a0 += s0; /* -63...308 */ lo = mullo(a0,-618); a0 = mulhi(a0,28)-mulhi(lo,106); /* -54...53 */ a0 += crypto_int16_negative_mask(a0)&106; /* 0...105 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,21021); /* invalid inputs might need reduction mod 2322 */ a1 -= 2322; a1 += crypto_int16_negative_mask(a1)&2322; R[14] = a0; R[15] = a1; for (i = 6;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-618); a0 = mulhi(a0,28)-mulhi(lo,106); /* -53...60 */ a0 += crypto_int16_negative_mask(a0)&106; /* 0...105 */ a1 = (ri-a0)>>1; a1 = mullo(a1,21021); /* invalid inputs might need reduction mod 106 */ a1 -= 106; a1 += crypto_int16_negative_mask(a1)&106; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 31*[164]+[3624] */ ri = R[15]; s0 = *--s; lo = mullo(ri,28772); a0 = mulhi(ri,16)-mulhi(lo,164); /* -82...86 */ a0 += s0; /* -82...341 */ lo = mullo(a0,-400); a0 = mulhi(a0,-64)-mulhi(lo,164); /* -83...82 */ a0 += crypto_int16_negative_mask(a0)&164; /* 0...163 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-25575); /* invalid inputs might need reduction mod 3624 */ a1 -= 3624; a1 += crypto_int16_negative_mask(a1)&3624; R[30] = a0; R[31] = a1; for (i = 14;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,28772); a0 = mulhi(ri,16)-mulhi(lo,164); /* -82...86 */ a0 += s0; /* -82...341 */ lo = mullo(a0,-400); a0 = mulhi(a0,-64)-mulhi(lo,164); /* -83...82 */ a0 += crypto_int16_negative_mask(a0)&164; /* 0...163 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-25575); /* invalid inputs might need reduction mod 164 */ a1 -= 164; a1 += crypto_int16_negative_mask(a1)&164; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 63*[3278]+[283] */ ri = R[31]; s0 = *--s; lo = mullo(ri,-5118); a0 = mulhi(ri,412)-mulhi(lo,3278); /* -1639...1742 */ a0 += s0; /* -1639...1997 */ a0 += crypto_int16_negative_mask(a0)&3278; /* 0...3277 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-19113); /* invalid inputs might need reduction mod 283 */ a1 -= 283; a1 += crypto_int16_negative_mask(a1)&283; R[62] = a0; R[63] = a1; for (i = 30;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-5118); a0 = mulhi(ri,412)-mulhi(lo,3278); /* -1639...1742 */ a0 += s1; /* -1639...1997 */ lo = mullo(a0,-5118); a0 = mulhi(a0,412)-mulhi(lo,3278); /* -1650...1651 */ a0 += s0; /* -1650...1906 */ a0 += crypto_int16_negative_mask(a0)&3278; /* 0...3277 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-19113); /* invalid inputs might need reduction mod 3278 */ a1 -= 3278; a1 += crypto_int16_negative_mask(a1)&3278; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 126*[916]+[283] */ R[126] = R[63]; for (i = 62;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-18316); a0 = mulhi(ri,-240)-mulhi(lo,916); /* -518...458 */ a0 += s0; /* -518...713 */ a0 += crypto_int16_negative_mask(a0)&916; /* 0...915 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-17171); /* invalid inputs might need reduction mod 916 */ a1 -= 916; a1 += crypto_int16_negative_mask(a1)&916; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 253*[7744]+[2393] */ ri = R[126]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2166); a0 = mulhi(ri,3712)-mulhi(lo,7744); /* -3872...4800 */ a0 += s1; /* -3872...5055 */ lo = mullo(a0,-2166); a0 = mulhi(a0,3712)-mulhi(lo,7744); /* -4092...4158 */ a0 += s0; /* -4092...4413 */ a0 += crypto_int16_negative_mask(a0)&7744; /* 0...7743 */ a1 = (ri<<10)+(s1<<2)+((s0-a0)>>6); a1 = mullo(a1,27081); /* invalid inputs might need reduction mod 2393 */ a1 -= 2393; a1 += crypto_int16_negative_mask(a1)&2393; R[252] = a0; R[253] = a1; for (i = 125;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2166); a0 = mulhi(ri,3712)-mulhi(lo,7744); /* -3872...4800 */ a0 += s1; /* -3872...5055 */ lo = mullo(a0,-2166); a0 = mulhi(a0,3712)-mulhi(lo,7744); /* -4092...4158 */ a0 += s0; /* -4092...4413 */ a0 += crypto_int16_negative_mask(a0)&7744; /* 0...7743 */ a1 = (ri<<10)+(s1<<2)+((s0-a0)>>6); a1 = mullo(a1,27081); /* invalid inputs might need reduction mod 7744 */ a1 -= 7744; a1 += crypto_int16_negative_mask(a1)&7744; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 506*[88]+[2393] */ R[506] = R[253]; for (i = 252;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-745); a0 = mulhi(a0,-24)-mulhi(lo,88); /* -50...44 */ a0 += crypto_int16_negative_mask(a0)&88; /* 0...87 */ a1 = (ri-a0)>>3; a1 = mullo(a1,-29789); /* invalid inputs might need reduction mod 88 */ a1 -= 88; a1 += crypto_int16_negative_mask(a1)&88; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 1013*[2393] */ R[1012] = 3*R[506]-3588; for (i = 505;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-7011); a0 = mulhi(ri,-107)-mulhi(lo,2393); /* -1224...1196 */ a0 += s1; /* -1224...1451 */ lo = mullo(a0,-7011); a0 = mulhi(a0,-107)-mulhi(lo,2393); /* -1199...1198 */ a0 += s0; /* -1199...1453 */ a0 += crypto_int16_negative_mask(a0)&2393; /* 0...2392 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-20759); /* invalid inputs might need reduction mod 2393 */ a1 -= 2393; a1 += crypto_int16_negative_mask(a1)&2393; R[2*i] = 3*a0-3588; R[2*i+1] = 3*a1-3588; } } libntruprime-20241021/crypto_decode/1013x2393/int16/decodegen.py0000777000000000000000000000000014705505552031151 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1013x3/0000755000000000000000000000000014705505545016655 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x3/avx/0000755000000000000000000000000014705505552017451 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x3/avx/api.h0000644000000000000000000000012114705505545020367 0ustar rootroot#define CRYPTO_STRBYTES 254 #define CRYPTO_ITEMS 1013 #define CRYPTO_ITEMBYTES 1 libntruprime-20241021/crypto_decode/1013x3/avx/architectures0000777000000000000000000000000014705505552031151 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/1013x3/avx/decode.c0000644000000000000000000000401314705505545021040 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1013 #define loops 8 #define overshoot 3 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/crypto_decode/1013x3/ref/0000755000000000000000000000000014705505552017427 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x3/ref/api.h0000777000000000000000000000000014705505552022301 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/1013x3/ref/decode.c0000644000000000000000000000064114705505545021021 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1013 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/crypto_decode/1013x7177/0000755000000000000000000000000014705505545017120 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/avx/0000755000000000000000000000000014705505552017714 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/avx/Makefile0000644000000000000000000000013414705505545021354 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 1013 7177 > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/1013x7177/avx/api.h0000644000000000000000000000012214705505545020633 0ustar rootroot#define CRYPTO_STRBYTES 1623 #define CRYPTO_ITEMS 1013 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/1013x7177/avx/architectures0000777000000000000000000000000014705505552031414 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/avx/decode.c0000644000000000000000000003376414705505545021322 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[507],R2[254],R3[127],R4[64],R5[32],R6[16],R7[8],R8[4],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,-78)-mulhi(mullo(a1,4305),274); a1 += *--s; /* -137...391 */ a1 -= 274; /* -411...117 */ a1 += 274&crypto_int16_negative_mask(a1); /* -137...273 */ a1 += 274&crypto_int16_negative_mask(a1); /* 0...273 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[91]+[769] */ i = 0; s -= 1; a2 = a0 = R10[0]; a0 = mulhi(a0,1)-mulhi(mullo(a0,12243),91); /* -46...45 */ a0 += s[1*i+0]; /* -46...300 */ a0 = mulhi(a0,16)-mulhi(mullo(a0,-720),91); /* -46...45 */ a0 += 91&crypto_int16_negative_mask(a0); /* 0...90 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,12243); /* invalid inputs might need reduction mod 769 */ a1 -= 769; a1 += 769&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 3*[152]+[1294] */ i = 0; s -= 1; a2 = a0 = R9[1]; a0 = mulhi(a0,64)-mulhi(mullo(a0,20696),152); /* -76...92 */ a0 += s[1*i+0]; /* -76...347 */ a0 = mulhi(a0,24)-mulhi(mullo(a0,-431),152); /* -77...76 */ a0 += 152&crypto_int16_negative_mask(a0); /* 0...151 */ a1 = (a2<<5)+((s[i]-a0)>>3); a1 = mullo(a1,-13797); /* invalid inputs might need reduction mod 1294 */ a1 -= 1294; a1 += 1294&crypto_int16_negative_mask(a1); R8[2] = a0; R8[3] = a1; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,64)-mulhi(mullo(a0,20696),152); /* -76...92 */ a0 += s[1*i+0]; /* -76...347 */ a0 = mulhi(a0,24)-mulhi(mullo(a0,-431),152); /* -77...76 */ a0 += 152&crypto_int16_negative_mask(a0); /* 0...151 */ a1 = (a2<<5)+((s[i]-a0)>>3); a1 = mullo(a1,-13797); /* invalid inputs might need reduction mod 152 */ a1 -= 152; a1 += 152&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 7*[197]+[1681] */ i = 0; s -= 1; a2 = a0 = R8[3]; a0 = mulhi(a0,-92)-mulhi(mullo(a0,-19628),197); /* -122...98 */ a0 += s[1*i+0]; /* -122...353 */ a0 -= 197; /* -319..>156 */ a0 += 197&crypto_int16_negative_mask(a0); /* -122...196 */ a0 += 197&crypto_int16_negative_mask(a0); /* 0...196 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,32269); /* invalid inputs might need reduction mod 1681 */ a1 -= 1681; a1 += 1681&crypto_int16_negative_mask(a1); R7[6] = a0; R7[7] = a1; s -= 3; for (i = 2;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,-92)-mulhi(mullo(a0,-19628),197); /* -122...98 */ a0 += s[1*i+0]; /* -122...353 */ a0 -= 197; /* -319..>156 */ a0 += 197&crypto_int16_negative_mask(a0); /* -122...196 */ a0 += 197&crypto_int16_negative_mask(a0); /* 0...196 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,32269); /* invalid inputs might need reduction mod 197 */ a1 -= 197; a1 += 197&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 15*[3586]+[120] */ i = 0; s -= 1; a2 = a0 = R7[7]; a0 = mulhi(a0,-1678)-mulhi(mullo(a0,-4679),3586); /* -2213...1793 */ a0 += s[1*i+0]; /* -2213...2048 */ a0 += 3586&crypto_int16_negative_mask(a0); /* 0...3585 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-1791); /* invalid inputs might need reduction mod 120 */ a1 -= 120; a1 += 120&crypto_int16_negative_mask(a1); R6[14] = a0; R6[15] = a1; s -= 14; for (i = 6;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,-1678)-mulhi(mullo(a0,-4679),3586); /* -2213...1793 */ a0 += s[2*i+1]; /* -2213...2048 */ a0 = mulhi(a0,-1678)-mulhi(mullo(a0,-4679),3586); /* -1846...1849 */ a0 += s[2*i+0]; /* -1846...2104 */ a0 += 3586&crypto_int16_negative_mask(a0); /* 0...3585 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-1791); /* invalid inputs might need reduction mod 3586 */ a1 -= 3586; a1 += 3586&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 31*[958]+[8200] */ i = 0; s -= 2; a2 = a0 = R6[15]; a0 = mulhi(a0,-238)-mulhi(mullo(a0,-17513),958); /* -539...479 */ a0 += s[2*i+1]; /* -539...734 */ a0 = mulhi(a0,-238)-mulhi(mullo(a0,-17513),958); /* -482...480 */ a0 += s[2*i+0]; /* -482...735 */ a0 += 958&crypto_int16_negative_mask(a0); /* 0...957 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-1505); /* invalid inputs might need reduction mod 8200 */ a1 -= 8200; a1 += 8200&crypto_int16_negative_mask(a1); R5[30] = a0; R5[31] = a1; s -= 15; for (i = 14;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,-238)-mulhi(mullo(a0,-17513),958); /* -539...479 */ a0 += s[1*i+0]; /* -539...734 */ a0 += 958&crypto_int16_negative_mask(a0); /* 0...957 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-1505); /* invalid inputs might need reduction mod 958 */ a1 -= 958; a1 += 958&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 63*[7921]+[265] */ i = 0; s -= 1; a2 = a0 = R5[31]; a0 = mulhi(a0,538)-mulhi(mullo(a0,-2118),7921); /* -3961...4095 */ a0 += s[1*i+0]; /* -3961...4350 */ a0 += 7921&crypto_int16_negative_mask(a0); /* 0...7920 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,4625); /* invalid inputs might need reduction mod 265 */ a1 -= 265; a1 += 265&crypto_int16_negative_mask(a1); R4[62] = a0; R4[63] = a1; s -= 62; i = 15; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,538),mulhiconst(mulloconst(A0,-2118),7921)); /* -3961...4095 */ A0 = add(A0,S1); /* -3961...4350 */ A0 = sub(mulhiconst(A0,538),mulhiconst(mulloconst(A0,-2118),7921)); /* -3994...3996 */ A0 = add(A0,S0); /* -3994...4251 */ A0 = ifnegaddconst(A0,7921); /* 0...7920 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,4625); /* invalid inputs might need reduction mod 7921 */ A1 = ifgesubconst(A1,7921); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 126*[89]+[265] */ R3[126] = R4[63]; s -= 0; i = 47; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); A0 = sub(mulhiconst(A0,32),mulhiconst(mulloconst(A0,-736),89)); /* -45...52 */ A0 = ifnegaddconst(A0,89); /* 0...88 */ A1 = signedshiftrightconst(sub(A2,A0),0); A1 = mulloconst(A1,18409); /* invalid inputs might need reduction mod 89 */ A1 = ifgesubconst(A1,89); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 253*[2414]+[7177] */ i = 0; s -= 2; a2 = a0 = R3[126]; a0 = mulhi(a0,-84)-mulhi(mullo(a0,-6950),2414); /* -1228...1207 */ a0 += s[2*i+1]; /* -1228...1462 */ a0 = mulhi(a0,-84)-mulhi(mullo(a0,-6950),2414); /* -1209...1208 */ a0 += s[2*i+0]; /* -1209...1463 */ a0 += 2414&crypto_int16_negative_mask(a0); /* 0...2413 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,6407); /* invalid inputs might need reduction mod 7177 */ a1 -= 7177; a1 += 7177&crypto_int16_negative_mask(a1); R2[252] = a0; R2[253] = a1; s -= 252; i = 110; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-84),mulhiconst(mulloconst(A0,-6950),2414)); /* -1228...1207 */ A0 = add(A0,S1); /* -1228...1462 */ A0 = sub(mulhiconst(A0,-84),mulhiconst(mulloconst(A0,-6950),2414)); /* -1209...1208 */ A0 = add(A0,S0); /* -1209...1463 */ A0 = ifnegaddconst(A0,2414); /* 0...2413 */ A1 = add(add(shiftleftconst(A2,15),shiftleftconst(S1,7)),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,6407); /* invalid inputs might need reduction mod 2414 */ A1 = ifgesubconst(A1,2414); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 506*[786]+[7177] */ R1[506] = R2[253]; s -= 253; i = 237; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,46),mulhiconst(mulloconst(A0,-21345),786)); /* -393...404 */ A0 = add(A0,S0); /* -393...659 */ A0 = ifnegaddconst(A0,786); /* 0...785 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-15175); /* invalid inputs might need reduction mod 786 */ A1 = ifgesubconst(A1,786); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 1013*[7177] */ R0[1012] = R1[506]-3588; s -= 1012; i = 490; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-2610),mulhiconst(mulloconst(A0,-2338),7177)); /* -4241...3588 */ A0 = add(A0,S1); /* -4241...3843 */ A0 = sub(mulhiconst(A0,-2610),mulhiconst(mulloconst(A0,-2338),7177)); /* -3742...3757 */ A0 = add(A0,S0); /* -3742...4012 */ A0 = ifnegaddconst(A0,7177); /* 0...7176 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,12857); /* invalid inputs might need reduction mod 7177 */ A1 = ifgesubconst(A1,7177); A0 = subconst(A0,3588); A1 = subconst(A1,3588); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/1013x7177/avx/decodegen.py0000777000000000000000000000000014705505552030650 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/int16/0000755000000000000000000000000014705505552020057 5ustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/int16/Makefile0000777000000000000000000000000014705505552024165 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/int16/api.h0000777000000000000000000000000014705505552022731 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/1013x7177/int16/decode.c0000644000000000000000000002163414705505545021456 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,4305); a1 = mulhi(a1,-78)-mulhi(lo,274); a1 += *--s; /* -137...391 */ a1 -= 274; /* -411...117 */ a1 += crypto_int16_negative_mask(a1)&274; /* -137...273 */ a1 += crypto_int16_negative_mask(a1)&274; /* 0...273 */ R[0] = a1; /* reconstruct mod 1*[91]+[769] */ ri = R[0]; s0 = *--s; lo = mullo(ri,12243); a0 = mulhi(ri,1)-mulhi(lo,91); /* -46...45 */ a0 += s0; /* -46...300 */ lo = mullo(a0,-720); a0 = mulhi(a0,16)-mulhi(lo,91); /* -46...45 */ a0 += crypto_int16_negative_mask(a0)&91; /* 0...90 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,12243); /* invalid inputs might need reduction mod 769 */ a1 -= 769; a1 += crypto_int16_negative_mask(a1)&769; R[0] = a0; R[1] = a1; /* reconstruct mod 3*[152]+[1294] */ ri = R[1]; s0 = *--s; lo = mullo(ri,20696); a0 = mulhi(ri,64)-mulhi(lo,152); /* -76...92 */ a0 += s0; /* -76...347 */ lo = mullo(a0,-431); a0 = mulhi(a0,24)-mulhi(lo,152); /* -77...76 */ a0 += crypto_int16_negative_mask(a0)&152; /* 0...151 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,-13797); /* invalid inputs might need reduction mod 1294 */ a1 -= 1294; a1 += crypto_int16_negative_mask(a1)&1294; R[2] = a0; R[3] = a1; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,20696); a0 = mulhi(ri,64)-mulhi(lo,152); /* -76...92 */ a0 += s0; /* -76...347 */ lo = mullo(a0,-431); a0 = mulhi(a0,24)-mulhi(lo,152); /* -77...76 */ a0 += crypto_int16_negative_mask(a0)&152; /* 0...151 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,-13797); /* invalid inputs might need reduction mod 152 */ a1 -= 152; a1 += crypto_int16_negative_mask(a1)&152; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 7*[197]+[1681] */ ri = R[3]; s0 = *--s; lo = mullo(ri,-19628); a0 = mulhi(ri,-92)-mulhi(lo,197); /* -122...98 */ a0 += s0; /* -122...353 */ a0 -= 197; /* -319..>156 */ a0 += crypto_int16_negative_mask(a0)&197; /* -122...196 */ a0 += crypto_int16_negative_mask(a0)&197; /* 0...196 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,32269); /* invalid inputs might need reduction mod 1681 */ a1 -= 1681; a1 += crypto_int16_negative_mask(a1)&1681; R[6] = a0; R[7] = a1; for (i = 2;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-19628); a0 = mulhi(ri,-92)-mulhi(lo,197); /* -122...98 */ a0 += s0; /* -122...353 */ a0 -= 197; /* -319..>156 */ a0 += crypto_int16_negative_mask(a0)&197; /* -122...196 */ a0 += crypto_int16_negative_mask(a0)&197; /* 0...196 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,32269); /* invalid inputs might need reduction mod 197 */ a1 -= 197; a1 += crypto_int16_negative_mask(a1)&197; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 15*[3586]+[120] */ ri = R[7]; s0 = *--s; lo = mullo(ri,-4679); a0 = mulhi(ri,-1678)-mulhi(lo,3586); /* -2213...1793 */ a0 += s0; /* -2213...2048 */ a0 += crypto_int16_negative_mask(a0)&3586; /* 0...3585 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-1791); /* invalid inputs might need reduction mod 120 */ a1 -= 120; a1 += crypto_int16_negative_mask(a1)&120; R[14] = a0; R[15] = a1; for (i = 6;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-4679); a0 = mulhi(ri,-1678)-mulhi(lo,3586); /* -2213...1793 */ a0 += s1; /* -2213...2048 */ lo = mullo(a0,-4679); a0 = mulhi(a0,-1678)-mulhi(lo,3586); /* -1846...1849 */ a0 += s0; /* -1846...2104 */ a0 += crypto_int16_negative_mask(a0)&3586; /* 0...3585 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-1791); /* invalid inputs might need reduction mod 3586 */ a1 -= 3586; a1 += crypto_int16_negative_mask(a1)&3586; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 31*[958]+[8200] */ ri = R[15]; s1 = *--s; s0 = *--s; lo = mullo(ri,-17513); a0 = mulhi(ri,-238)-mulhi(lo,958); /* -539...479 */ a0 += s1; /* -539...734 */ lo = mullo(a0,-17513); a0 = mulhi(a0,-238)-mulhi(lo,958); /* -482...480 */ a0 += s0; /* -482...735 */ a0 += crypto_int16_negative_mask(a0)&958; /* 0...957 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-1505); /* invalid inputs might need reduction mod 8200 */ a1 -= 8200; a1 += crypto_int16_negative_mask(a1)&8200; R[30] = a0; R[31] = a1; for (i = 14;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-17513); a0 = mulhi(ri,-238)-mulhi(lo,958); /* -539...479 */ a0 += s0; /* -539...734 */ a0 += crypto_int16_negative_mask(a0)&958; /* 0...957 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-1505); /* invalid inputs might need reduction mod 958 */ a1 -= 958; a1 += crypto_int16_negative_mask(a1)&958; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 63*[7921]+[265] */ ri = R[31]; s0 = *--s; lo = mullo(ri,-2118); a0 = mulhi(ri,538)-mulhi(lo,7921); /* -3961...4095 */ a0 += s0; /* -3961...4350 */ a0 += crypto_int16_negative_mask(a0)&7921; /* 0...7920 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,4625); /* invalid inputs might need reduction mod 265 */ a1 -= 265; a1 += crypto_int16_negative_mask(a1)&265; R[62] = a0; R[63] = a1; for (i = 30;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2118); a0 = mulhi(ri,538)-mulhi(lo,7921); /* -3961...4095 */ a0 += s1; /* -3961...4350 */ lo = mullo(a0,-2118); a0 = mulhi(a0,538)-mulhi(lo,7921); /* -3994...3996 */ a0 += s0; /* -3994...4251 */ a0 += crypto_int16_negative_mask(a0)&7921; /* 0...7920 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,4625); /* invalid inputs might need reduction mod 7921 */ a1 -= 7921; a1 += crypto_int16_negative_mask(a1)&7921; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 126*[89]+[265] */ R[126] = R[63]; for (i = 62;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-736); a0 = mulhi(a0,32)-mulhi(lo,89); /* -45...52 */ a0 += crypto_int16_negative_mask(a0)&89; /* 0...88 */ a1 = (ri-a0)>>0; a1 = mullo(a1,18409); /* invalid inputs might need reduction mod 89 */ a1 -= 89; a1 += crypto_int16_negative_mask(a1)&89; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 253*[2414]+[7177] */ ri = R[126]; s1 = *--s; s0 = *--s; lo = mullo(ri,-6950); a0 = mulhi(ri,-84)-mulhi(lo,2414); /* -1228...1207 */ a0 += s1; /* -1228...1462 */ lo = mullo(a0,-6950); a0 = mulhi(a0,-84)-mulhi(lo,2414); /* -1209...1208 */ a0 += s0; /* -1209...1463 */ a0 += crypto_int16_negative_mask(a0)&2414; /* 0...2413 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,6407); /* invalid inputs might need reduction mod 7177 */ a1 -= 7177; a1 += crypto_int16_negative_mask(a1)&7177; R[252] = a0; R[253] = a1; for (i = 125;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-6950); a0 = mulhi(ri,-84)-mulhi(lo,2414); /* -1228...1207 */ a0 += s1; /* -1228...1462 */ lo = mullo(a0,-6950); a0 = mulhi(a0,-84)-mulhi(lo,2414); /* -1209...1208 */ a0 += s0; /* -1209...1463 */ a0 += crypto_int16_negative_mask(a0)&2414; /* 0...2413 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,6407); /* invalid inputs might need reduction mod 2414 */ a1 -= 2414; a1 += crypto_int16_negative_mask(a1)&2414; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 506*[786]+[7177] */ R[506] = R[253]; for (i = 252;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-21345); a0 = mulhi(ri,46)-mulhi(lo,786); /* -393...404 */ a0 += s0; /* -393...659 */ a0 += crypto_int16_negative_mask(a0)&786; /* 0...785 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-15175); /* invalid inputs might need reduction mod 786 */ a1 -= 786; a1 += crypto_int16_negative_mask(a1)&786; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 1013*[7177] */ R[1012] = R[506]-3588; for (i = 505;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2338); a0 = mulhi(ri,-2610)-mulhi(lo,7177); /* -4241...3588 */ a0 += s1; /* -4241...3843 */ lo = mullo(a0,-2338); a0 = mulhi(a0,-2610)-mulhi(lo,7177); /* -3742...3757 */ a0 += s0; /* -3742...4012 */ a0 += crypto_int16_negative_mask(a0)&7177; /* 0...7176 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,12857); /* invalid inputs might need reduction mod 7177 */ a1 -= 7177; a1 += crypto_int16_negative_mask(a1)&7177; R[2*i] = a0-3588; R[2*i+1] = a1-3588; } } libntruprime-20241021/crypto_decode/1013x7177/int16/decodegen.py0000777000000000000000000000000014705505552031156 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1013xint16/0000755000000000000000000000000014705505545017454 5ustar rootrootlibntruprime-20241021/crypto_decode/1013xint16/ref/0000755000000000000000000000000014705505545020230 5ustar rootrootlibntruprime-20241021/crypto_decode/1013xint16/ref/api.h0000644000000000000000000000012214705505545021145 0ustar rootroot#define CRYPTO_STRBYTES 2026 #define CRYPTO_ITEMS 1013 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/1013xint16/ref/decode.c0000644000000000000000000000044314705505545021620 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < 1013;++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/crypto_decode/1013xint32/0000755000000000000000000000000014705505545017452 5ustar rootrootlibntruprime-20241021/crypto_decode/1013xint32/ref/0000755000000000000000000000000014705505545020226 5ustar rootrootlibntruprime-20241021/crypto_decode/1013xint32/ref/api.h0000644000000000000000000000012214705505545021143 0ustar rootroot#define CRYPTO_STRBYTES 4052 #define CRYPTO_ITEMS 1013 #define CRYPTO_ITEMBYTES 4 libntruprime-20241021/crypto_decode/1013xint32/ref/decode.c0000644000000000000000000000060514705505545021616 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < 1013;++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/crypto_decode/1277x2627/0000755000000000000000000000000014705505545017127 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/avx/0000755000000000000000000000000014705505552017723 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/avx/Makefile0000644000000000000000000000015314705505545021364 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 1277 2627 2627 3939 True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/1277x2627/avx/api.h0000644000000000000000000000012214705505545020642 0ustar rootroot#define CRYPTO_STRBYTES 1815 #define CRYPTO_ITEMS 1277 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/1277x2627/avx/architectures0000777000000000000000000000000014705505552031423 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/avx/decode.c0000644000000000000000000003672214705505545021326 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[639],R2[320],R3[160],R4[80],R5[40],R6[20],R7[10],R8[5],R9[3],R10[2],R11[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,16)-mulhi(mullo(a1,1986),264); a1 += *--s; /* -132...387 */ a1 -= 264; /* -396...123 */ a1 += 264&crypto_int16_negative_mask(a1); /* -132...263 */ a1 += 264&crypto_int16_negative_mask(a1); /* 0...263 */ R11[0] = a1; /* R11 ------> R10: reconstruct mod 1*[7744]+[2229] */ i = 0; s -= 2; a2 = a0 = R11[0]; a0 = mulhi(a0,3712)-mulhi(mullo(a0,-2166),7744); /* -3872...4800 */ a0 += s[2*i+1]; /* -3872...5055 */ a0 = mulhi(a0,3712)-mulhi(mullo(a0,-2166),7744); /* -4092...4158 */ a0 += s[2*i+0]; /* -4092...4413 */ a0 += 7744&crypto_int16_negative_mask(a0); /* 0...7743 */ a1 = (a2<<10)+(s[2*i+1]<<2)+((s[2*i]-a0)>>6); a1 = mullo(a1,27081); /* invalid inputs might need reduction mod 2229 */ a1 -= 2229; a1 += 2229&crypto_int16_negative_mask(a1); R10[0] = a0; R10[1] = a1; s -= 0; /* R10 ------> R9: reconstruct mod 2*[1408]+[2229] */ R9[2] = R10[1]; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R10[i]; a0 = mulhi(a0,-512)-mulhi(mullo(a0,-11916),1408); /* -832...704 */ a0 += s[1*i+0]; /* -832...959 */ a0 += 1408&crypto_int16_negative_mask(a0); /* 0...1407 */ a1 = (a2<<1)+((s[i]-a0)>>7); a1 = mullo(a1,-29789); /* invalid inputs might need reduction mod 1408 */ a1 -= 1408; a1 += 1408&crypto_int16_negative_mask(a1); R9[2*i] = a0; R9[2*i+1] = a1; } /* R9 ------> R8: reconstruct mod 4*[9604]+[2229] */ R8[4] = R9[2]; s -= 4; for (i = 1;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,-972)-mulhi(mullo(a0,-1747),9604); /* -5045...4802 */ a0 += s[2*i+1]; /* -5045...5057 */ a0 = mulhi(a0,-972)-mulhi(mullo(a0,-1747),9604); /* -4878...4876 */ a0 += s[2*i+0]; /* -4878...5131 */ a0 += 9604&crypto_int16_negative_mask(a0); /* 0...9603 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,23201); /* invalid inputs might need reduction mod 9604 */ a1 -= 9604; a1 += 9604&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 9*[98]+[5822] */ i = 0; s -= 1; a2 = a0 = R8[4]; a0 = mulhi(a0,8)-mulhi(mullo(a0,25412),98); /* -49...51 */ a0 += s[1*i+0]; /* -49...306 */ a0 = mulhi(a0,-26)-mulhi(mullo(a0,-669),98); /* -50...49 */ a0 += 98&crypto_int16_negative_mask(a0); /* 0...97 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,22737); /* invalid inputs might need reduction mod 5822 */ a1 -= 5822; a1 += 5822&crypto_int16_negative_mask(a1); R7[8] = a0; R7[9] = a1; s -= 0; for (i = 3;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,-26)-mulhi(mullo(a0,-669),98); /* -56...49 */ a0 += 98&crypto_int16_negative_mask(a0); /* 0...97 */ a1 = (a2-a0)>>1; a1 = mullo(a1,22737); /* invalid inputs might need reduction mod 98 */ a1 -= 98; a1 += 98&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 19*[158]+[9433] */ i = 0; s -= 1; a2 = a0 = R7[9]; a0 = mulhi(a0,-14)-mulhi(mullo(a0,24887),158); /* -83...79 */ a0 += s[1*i+0]; /* -83...334 */ a0 = mulhi(a0,-34)-mulhi(mullo(a0,-415),158); /* -80...79 */ a0 += 158&crypto_int16_negative_mask(a0); /* 0...157 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,5807); /* invalid inputs might need reduction mod 9433 */ a1 -= 9433; a1 += 9433&crypto_int16_negative_mask(a1); R6[18] = a0; R6[19] = a1; s -= 9; for (i = 8;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,-14)-mulhi(mullo(a0,24887),158); /* -83...79 */ a0 += s[1*i+0]; /* -83...334 */ a0 = mulhi(a0,-34)-mulhi(mullo(a0,-415),158); /* -80...79 */ a0 += 158&crypto_int16_negative_mask(a0); /* 0...157 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,5807); /* invalid inputs might need reduction mod 158 */ a1 -= 158; a1 += 158&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 39*[3211]+[752] */ i = 0; s -= 1; a2 = a0 = R6[19]; a0 = mulhi(a0,-259)-mulhi(mullo(a0,-5225),3211); /* -1671...1605 */ a0 += s[1*i+0]; /* -1671...1860 */ a0 += 3211&crypto_int16_negative_mask(a0); /* 0...3210 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-1245); /* invalid inputs might need reduction mod 752 */ a1 -= 752; a1 += 752&crypto_int16_negative_mask(a1); R5[38] = a0; R5[39] = a1; s -= 38; i = 3; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R6[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-259),mulhiconst(mulloconst(A0,-5225),3211)); /* -1671...1605 */ A0 = add(A0,S1); /* -1671...1860 */ A0 = sub(mulhiconst(A0,-259),mulhiconst(mulloconst(A0,-5225),3211)); /* -1613...1612 */ A0 = add(A0,S0); /* -1613...1867 */ A0 = ifnegaddconst(A0,3211); /* 0...3210 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-1245); /* invalid inputs might need reduction mod 3211 */ A1 = ifgesubconst(A1,3211); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R5[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R5[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R5 ------> R4: reconstruct mod 79*[14506]+[3395] */ i = 0; s -= 2; a2 = a0 = R5[39]; a0 = mulhi(a0,-6226)-mulhi(mullo(a0,-1157),14506); /* -8810...7253 */ a0 += s[2*i+1]; /* -8810...7508 */ a0 = mulhi(a0,-6226)-mulhi(mullo(a0,-1157),14506); /* -7967...8089 */ a0 += s[2*i+0]; /* -7967...8344 */ a0 += 14506&crypto_int16_negative_mask(a0); /* 0...14505 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,253); /* invalid inputs might need reduction mod 3395 */ a1 -= 3395; a1 += 3395&crypto_int16_negative_mask(a1); R4[78] = a0; R4[79] = a1; s -= 78; i = 23; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-6226),mulhiconst(mulloconst(A0,-1157),14506)); /* -8810...7253 */ A0 = add(A0,S1); /* -8810...7508 */ A0 = sub(mulhiconst(A0,-6226),mulhiconst(mulloconst(A0,-1157),14506)); /* -7967...8089 */ A0 = add(A0,S0); /* -7967...8344 */ A0 = ifnegaddconst(A0,14506); /* 0...14505 */ A1 = add(add(shiftleftconst(A2,15),shiftleftconst(S1,7)),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,253); /* invalid inputs might need reduction mod 14506 */ A1 = ifgesubconst(A1,14506); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 159*[1927]+[451] */ i = 0; s -= 1; a2 = a0 = R4[79]; a0 = mulhi(a0,754)-mulhi(mullo(a0,-8706),1927); /* -964...1152 */ a0 += s[1*i+0]; /* -964...1407 */ a0 += 1927&crypto_int16_negative_mask(a0); /* 0...1926 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 451 */ a1 -= 451; a1 += 451&crypto_int16_negative_mask(a1); R3[158] = a0; R3[159] = a1; s -= 79; i = 63; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,754),mulhiconst(mulloconst(A0,-8706),1927)); /* -964...1152 */ A0 = add(A0,S0); /* -964...1407 */ A0 = ifnegaddconst(A0,1927); /* 0...1926 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,3639); /* invalid inputs might need reduction mod 1927 */ A1 = ifgesubconst(A1,1927); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 319*[11236]+[2627] */ i = 0; s -= 2; a2 = a0 = R3[159]; a0 = mulhi(a0,1868)-mulhi(mullo(a0,-1493),11236); /* -5618...6085 */ a0 += s[2*i+1]; /* -5618...6340 */ a0 = mulhi(a0,1868)-mulhi(mullo(a0,-1493),11236); /* -5779...5798 */ a0 += s[2*i+0]; /* -5779...6053 */ a0 += 11236&crypto_int16_negative_mask(a0); /* 0...11235 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 2627 */ a1 -= 2627; a1 += 2627&crypto_int16_negative_mask(a1); R2[318] = a0; R2[319] = a1; s -= 318; i = 143; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,1868),mulhiconst(mulloconst(A0,-1493),11236)); /* -5618...6085 */ A0 = add(A0,S1); /* -5618...6340 */ A0 = sub(mulhiconst(A0,1868),mulhiconst(mulloconst(A0,-1493),11236)); /* -5779...5798 */ A0 = add(A0,S0); /* -5779...6053 */ A0 = ifnegaddconst(A0,11236); /* 0...11235 */ A1 = add(add(shiftleftconst(A2,14),shiftleftconst(S1,6)),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,-26807); /* invalid inputs might need reduction mod 11236 */ A1 = ifgesubconst(A1,11236); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 638*[106]+[2627] */ R1[638] = R2[319]; s -= 0; i = 303; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); A0 = sub(mulhiconst(A0,28),mulhiconst(mulloconst(A0,-618),106)); /* -53...60 */ A0 = ifnegaddconst(A0,106); /* 0...105 */ A1 = signedshiftrightconst(sub(A2,A0),1); A1 = mulloconst(A1,21021); /* invalid inputs might need reduction mod 106 */ A1 = ifgesubconst(A1,106); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 1277*[2627] */ R0[1276] = 3*R1[638]-3939; s -= 1276; i = 622; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,1194),mulhiconst(mulloconst(A0,-6386),2627)); /* -1314...1612 */ A0 = add(A0,S1); /* -1314...1867 */ A0 = sub(mulhiconst(A0,1194),mulhiconst(mulloconst(A0,-6386),2627)); /* -1338...1347 */ A0 = add(A0,S0); /* -1338...1602 */ A0 = ifnegaddconst(A0,2627); /* 0...2626 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,4715); /* invalid inputs might need reduction mod 2627 */ A1 = ifgesubconst(A1,2627); A0 = mulloconst(A0,3); A1 = mulloconst(A1,3); A0 = subconst(A0,3939); A1 = subconst(A1,3939); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/1277x2627/avx/decodegen.py0000777000000000000000000000000014705505552030657 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/int16/0000755000000000000000000000000014705505552020066 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/int16/Makefile0000777000000000000000000000000014705505552024174 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/int16/api.h0000777000000000000000000000000014705505552022740 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/1277x2627/int16/decode.c0000644000000000000000000002303514705505545021462 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,1986); a1 = mulhi(a1,16)-mulhi(lo,264); a1 += *--s; /* -132...387 */ a1 -= 264; /* -396...123 */ a1 += crypto_int16_negative_mask(a1)&264; /* -132...263 */ a1 += crypto_int16_negative_mask(a1)&264; /* 0...263 */ R[0] = a1; /* reconstruct mod 1*[7744]+[2229] */ ri = R[0]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2166); a0 = mulhi(ri,3712)-mulhi(lo,7744); /* -3872...4800 */ a0 += s1; /* -3872...5055 */ lo = mullo(a0,-2166); a0 = mulhi(a0,3712)-mulhi(lo,7744); /* -4092...4158 */ a0 += s0; /* -4092...4413 */ a0 += crypto_int16_negative_mask(a0)&7744; /* 0...7743 */ a1 = (ri<<10)+(s1<<2)+((s0-a0)>>6); a1 = mullo(a1,27081); /* invalid inputs might need reduction mod 2229 */ a1 -= 2229; a1 += crypto_int16_negative_mask(a1)&2229; R[0] = a0; R[1] = a1; /* reconstruct mod 2*[1408]+[2229] */ R[2] = R[1]; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-11916); a0 = mulhi(ri,-512)-mulhi(lo,1408); /* -832...704 */ a0 += s0; /* -832...959 */ a0 += crypto_int16_negative_mask(a0)&1408; /* 0...1407 */ a1 = (ri<<1)+((s0-a0)>>7); a1 = mullo(a1,-29789); /* invalid inputs might need reduction mod 1408 */ a1 -= 1408; a1 += crypto_int16_negative_mask(a1)&1408; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 4*[9604]+[2229] */ R[4] = R[2]; for (i = 1;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1747); a0 = mulhi(ri,-972)-mulhi(lo,9604); /* -5045...4802 */ a0 += s1; /* -5045...5057 */ lo = mullo(a0,-1747); a0 = mulhi(a0,-972)-mulhi(lo,9604); /* -4878...4876 */ a0 += s0; /* -4878...5131 */ a0 += crypto_int16_negative_mask(a0)&9604; /* 0...9603 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,23201); /* invalid inputs might need reduction mod 9604 */ a1 -= 9604; a1 += crypto_int16_negative_mask(a1)&9604; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 9*[98]+[5822] */ ri = R[4]; s0 = *--s; lo = mullo(ri,25412); a0 = mulhi(ri,8)-mulhi(lo,98); /* -49...51 */ a0 += s0; /* -49...306 */ lo = mullo(a0,-669); a0 = mulhi(a0,-26)-mulhi(lo,98); /* -50...49 */ a0 += crypto_int16_negative_mask(a0)&98; /* 0...97 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,22737); /* invalid inputs might need reduction mod 5822 */ a1 -= 5822; a1 += crypto_int16_negative_mask(a1)&5822; R[8] = a0; R[9] = a1; for (i = 3;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-669); a0 = mulhi(a0,-26)-mulhi(lo,98); /* -56...49 */ a0 += crypto_int16_negative_mask(a0)&98; /* 0...97 */ a1 = (ri-a0)>>1; a1 = mullo(a1,22737); /* invalid inputs might need reduction mod 98 */ a1 -= 98; a1 += crypto_int16_negative_mask(a1)&98; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 19*[158]+[9433] */ ri = R[9]; s0 = *--s; lo = mullo(ri,24887); a0 = mulhi(ri,-14)-mulhi(lo,158); /* -83...79 */ a0 += s0; /* -83...334 */ lo = mullo(a0,-415); a0 = mulhi(a0,-34)-mulhi(lo,158); /* -80...79 */ a0 += crypto_int16_negative_mask(a0)&158; /* 0...157 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,5807); /* invalid inputs might need reduction mod 9433 */ a1 -= 9433; a1 += crypto_int16_negative_mask(a1)&9433; R[18] = a0; R[19] = a1; for (i = 8;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,24887); a0 = mulhi(ri,-14)-mulhi(lo,158); /* -83...79 */ a0 += s0; /* -83...334 */ lo = mullo(a0,-415); a0 = mulhi(a0,-34)-mulhi(lo,158); /* -80...79 */ a0 += crypto_int16_negative_mask(a0)&158; /* 0...157 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,5807); /* invalid inputs might need reduction mod 158 */ a1 -= 158; a1 += crypto_int16_negative_mask(a1)&158; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 39*[3211]+[752] */ ri = R[19]; s0 = *--s; lo = mullo(ri,-5225); a0 = mulhi(ri,-259)-mulhi(lo,3211); /* -1671...1605 */ a0 += s0; /* -1671...1860 */ a0 += crypto_int16_negative_mask(a0)&3211; /* 0...3210 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-1245); /* invalid inputs might need reduction mod 752 */ a1 -= 752; a1 += crypto_int16_negative_mask(a1)&752; R[38] = a0; R[39] = a1; for (i = 18;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-5225); a0 = mulhi(ri,-259)-mulhi(lo,3211); /* -1671...1605 */ a0 += s1; /* -1671...1860 */ lo = mullo(a0,-5225); a0 = mulhi(a0,-259)-mulhi(lo,3211); /* -1613...1612 */ a0 += s0; /* -1613...1867 */ a0 += crypto_int16_negative_mask(a0)&3211; /* 0...3210 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-1245); /* invalid inputs might need reduction mod 3211 */ a1 -= 3211; a1 += crypto_int16_negative_mask(a1)&3211; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 79*[14506]+[3395] */ ri = R[39]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1157); a0 = mulhi(ri,-6226)-mulhi(lo,14506); /* -8810...7253 */ a0 += s1; /* -8810...7508 */ lo = mullo(a0,-1157); a0 = mulhi(a0,-6226)-mulhi(lo,14506); /* -7967...8089 */ a0 += s0; /* -7967...8344 */ a0 += crypto_int16_negative_mask(a0)&14506; /* 0...14505 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,253); /* invalid inputs might need reduction mod 3395 */ a1 -= 3395; a1 += crypto_int16_negative_mask(a1)&3395; R[78] = a0; R[79] = a1; for (i = 38;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1157); a0 = mulhi(ri,-6226)-mulhi(lo,14506); /* -8810...7253 */ a0 += s1; /* -8810...7508 */ lo = mullo(a0,-1157); a0 = mulhi(a0,-6226)-mulhi(lo,14506); /* -7967...8089 */ a0 += s0; /* -7967...8344 */ a0 += crypto_int16_negative_mask(a0)&14506; /* 0...14505 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,253); /* invalid inputs might need reduction mod 14506 */ a1 -= 14506; a1 += crypto_int16_negative_mask(a1)&14506; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 159*[1927]+[451] */ ri = R[79]; s0 = *--s; lo = mullo(ri,-8706); a0 = mulhi(ri,754)-mulhi(lo,1927); /* -964...1152 */ a0 += s0; /* -964...1407 */ a0 += crypto_int16_negative_mask(a0)&1927; /* 0...1926 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 451 */ a1 -= 451; a1 += crypto_int16_negative_mask(a1)&451; R[158] = a0; R[159] = a1; for (i = 78;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-8706); a0 = mulhi(ri,754)-mulhi(lo,1927); /* -964...1152 */ a0 += s0; /* -964...1407 */ a0 += crypto_int16_negative_mask(a0)&1927; /* 0...1926 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,3639); /* invalid inputs might need reduction mod 1927 */ a1 -= 1927; a1 += crypto_int16_negative_mask(a1)&1927; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 319*[11236]+[2627] */ ri = R[159]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1493); a0 = mulhi(ri,1868)-mulhi(lo,11236); /* -5618...6085 */ a0 += s1; /* -5618...6340 */ lo = mullo(a0,-1493); a0 = mulhi(a0,1868)-mulhi(lo,11236); /* -5779...5798 */ a0 += s0; /* -5779...6053 */ a0 += crypto_int16_negative_mask(a0)&11236; /* 0...11235 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 2627 */ a1 -= 2627; a1 += crypto_int16_negative_mask(a1)&2627; R[318] = a0; R[319] = a1; for (i = 158;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1493); a0 = mulhi(ri,1868)-mulhi(lo,11236); /* -5618...6085 */ a0 += s1; /* -5618...6340 */ lo = mullo(a0,-1493); a0 = mulhi(a0,1868)-mulhi(lo,11236); /* -5779...5798 */ a0 += s0; /* -5779...6053 */ a0 += crypto_int16_negative_mask(a0)&11236; /* 0...11235 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,-26807); /* invalid inputs might need reduction mod 11236 */ a1 -= 11236; a1 += crypto_int16_negative_mask(a1)&11236; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 638*[106]+[2627] */ R[638] = R[319]; for (i = 318;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-618); a0 = mulhi(a0,28)-mulhi(lo,106); /* -53...60 */ a0 += crypto_int16_negative_mask(a0)&106; /* 0...105 */ a1 = (ri-a0)>>1; a1 = mullo(a1,21021); /* invalid inputs might need reduction mod 106 */ a1 -= 106; a1 += crypto_int16_negative_mask(a1)&106; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 1277*[2627] */ R[1276] = 3*R[638]-3939; for (i = 637;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-6386); a0 = mulhi(ri,1194)-mulhi(lo,2627); /* -1314...1612 */ a0 += s1; /* -1314...1867 */ lo = mullo(a0,-6386); a0 = mulhi(a0,1194)-mulhi(lo,2627); /* -1338...1347 */ a0 += s0; /* -1338...1602 */ a0 += crypto_int16_negative_mask(a0)&2627; /* 0...2626 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,4715); /* invalid inputs might need reduction mod 2627 */ a1 -= 2627; a1 += crypto_int16_negative_mask(a1)&2627; R[2*i] = 3*a0-3939; R[2*i+1] = 3*a1-3939; } } libntruprime-20241021/crypto_decode/1277x2627/int16/decodegen.py0000777000000000000000000000000014705505552031165 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1277x3/0000755000000000000000000000000014705505545016671 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x3/avx/0000755000000000000000000000000014705505552017465 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x3/avx/api.h0000644000000000000000000000012114705505545020403 0ustar rootroot#define CRYPTO_STRBYTES 320 #define CRYPTO_ITEMS 1277 #define CRYPTO_ITEMBYTES 1 libntruprime-20241021/crypto_decode/1277x3/avx/architectures0000777000000000000000000000000014705505552031165 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/1277x3/avx/decode.c0000644000000000000000000000401414705505545021055 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1277 #define loops 10 #define overshoot 1 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/crypto_decode/1277x3/ref/0000755000000000000000000000000014705505552017443 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x3/ref/api.h0000777000000000000000000000000014705505552022315 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/1277x3/ref/decode.c0000644000000000000000000000064114705505545021035 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1277 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/crypto_decode/1277x7879/0000755000000000000000000000000014705505545017145 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/avx/0000755000000000000000000000000014705505552017741 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/avx/Makefile0000644000000000000000000000013414705505545021401 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 1277 7879 > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/1277x7879/avx/api.h0000644000000000000000000000012214705505545020660 0ustar rootroot#define CRYPTO_STRBYTES 2067 #define CRYPTO_ITEMS 1277 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/1277x7879/avx/architectures0000777000000000000000000000000014705505552031441 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/avx/decode.c0000644000000000000000000003632214705505545021340 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[639],R2[320],R3[160],R4[80],R5[40],R6[20],R7[10],R8[5],R9[3],R10[2],R11[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,1072)-mulhi(mullo(a1,-4539),3696); a1 += *--s; /* -1848...2107 */ a1 += 3696&crypto_int16_negative_mask(a1); /* 0...3695 */ R11[0] = a1; /* R11 ------> R10: reconstruct mod 1*[376]+[2516] */ i = 0; s -= 1; a2 = a0 = R11[0]; a0 = mulhi(a0,96)-mulhi(mullo(a0,20916),376); /* -188...212 */ a0 += s[1*i+0]; /* -188...467 */ a0 -= 376; /* -564..>91 */ a0 += 376&crypto_int16_negative_mask(a0); /* -188...375 */ a0 += 376&crypto_int16_negative_mask(a0); /* 0...375 */ a1 = (a2<<5)+((s[i]-a0)>>3); a1 = mullo(a1,18127); /* invalid inputs might need reduction mod 2516 */ a1 -= 2516; a1 += 2516&crypto_int16_negative_mask(a1); R10[0] = a0; R10[1] = a1; s -= 0; /* R10 ------> R9: reconstruct mod 2*[4962]+[2516] */ R9[2] = R10[1]; s -= 2; for (i = 0;i >= 0;--i) { a2 = a0 = R10[i]; a0 = mulhi(a0,694)-mulhi(mullo(a0,-3381),4962); /* -2481...2654 */ a0 += s[2*i+1]; /* -2481...2909 */ a0 = mulhi(a0,694)-mulhi(mullo(a0,-3381),4962); /* -2508...2511 */ a0 += s[2*i+0]; /* -2508...2766 */ a0 += 4962&crypto_int16_negative_mask(a0); /* 0...4961 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-24751); /* invalid inputs might need reduction mod 4962 */ a1 -= 4962; a1 += 4962&crypto_int16_negative_mask(a1); R9[2*i] = a0; R9[2*i+1] = a1; } /* R9 ------> R8: reconstruct mod 4*[1127]+[2516] */ R8[4] = R9[2]; s -= 2; for (i = 1;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,-433)-mulhi(mullo(a0,-14887),1127); /* -672...563 */ a0 += s[1*i+0]; /* -672...818 */ a0 += 1127&crypto_int16_negative_mask(a0); /* 0...1126 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-10409); /* invalid inputs might need reduction mod 1127 */ a1 -= 1127; a1 += 1127&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 9*[537]+[1199] */ i = 0; s -= 1; a2 = a0 = R8[4]; a0 = mulhi(a0,262)-mulhi(mullo(a0,-31242),537); /* -269...334 */ a0 += s[1*i+0]; /* -269...589 */ a0 -= 537; /* -806..>52 */ a0 += 537&crypto_int16_negative_mask(a0); /* -269...536 */ a0 += 537&crypto_int16_negative_mask(a0); /* 0...536 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,14889); /* invalid inputs might need reduction mod 1199 */ a1 -= 1199; a1 += 1199&crypto_int16_negative_mask(a1); R7[8] = a0; R7[9] = a1; s -= 4; for (i = 3;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,262)-mulhi(mullo(a0,-31242),537); /* -269...334 */ a0 += s[1*i+0]; /* -269...589 */ a0 -= 537; /* -806..>52 */ a0 += 537&crypto_int16_negative_mask(a0); /* -269...536 */ a0 += 537&crypto_int16_negative_mask(a0); /* 0...536 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,14889); /* invalid inputs might need reduction mod 537 */ a1 -= 537; a1 += 537&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 19*[5929]+[13244] */ i = 0; s -= 2; a2 = a0 = R7[9]; a0 = mulhi(a0,-1854)-mulhi(mullo(a0,-2830),5929); /* -3428...2964 */ a0 += s[2*i+1]; /* -3428...3219 */ a0 = mulhi(a0,-1854)-mulhi(mullo(a0,-2830),5929); /* -3056...3061 */ a0 += s[2*i+0]; /* -3056...3316 */ a0 += 5929&crypto_int16_negative_mask(a0); /* 0...5928 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,29977); /* invalid inputs might need reduction mod 13244 */ a1 -= 13244; a1 += 13244&crypto_int16_negative_mask(a1); R6[18] = a0; R6[19] = a1; s -= 18; for (i = 8;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,-1854)-mulhi(mullo(a0,-2830),5929); /* -3428...2964 */ a0 += s[2*i+1]; /* -3428...3219 */ a0 = mulhi(a0,-1854)-mulhi(mullo(a0,-2830),5929); /* -3056...3061 */ a0 += s[2*i+0]; /* -3056...3316 */ a0 += 5929&crypto_int16_negative_mask(a0); /* 0...5928 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,29977); /* invalid inputs might need reduction mod 5929 */ a1 -= 5929; a1 += 5929&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 39*[77]+[172] */ i = 0; s -= 0; a2 = a0 = R6[19]; a0 = mulhi(a0,9)-mulhi(mullo(a0,-851),77); /* -39...40 */ a0 += 77&crypto_int16_negative_mask(a0); /* 0...76 */ a1 = (a2-a0)>>0; a1 = mullo(a1,14469); /* invalid inputs might need reduction mod 172 */ a1 -= 172; a1 += 172&crypto_int16_negative_mask(a1); R5[38] = a0; R5[39] = a1; s -= 0; i = 3; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R6[i]); A0 = sub(mulhiconst(A0,9),mulhiconst(mulloconst(A0,-851),77)); /* -39...40 */ A0 = ifnegaddconst(A0,77); /* 0...76 */ A1 = signedshiftrightconst(sub(A2,A0),0); A1 = mulloconst(A1,14469); /* invalid inputs might need reduction mod 77 */ A1 = ifgesubconst(A1,77); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R5[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R5[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R5 ------> R4: reconstruct mod 79*[140]+[313] */ i = 0; s -= 1; a2 = a0 = R5[39]; a0 = mulhi(a0,36)-mulhi(mullo(a0,11235),140); /* -70...79 */ a0 += s[1*i+0]; /* -70...334 */ a0 = mulhi(a0,16)-mulhi(mullo(a0,-468),140); /* -71...70 */ a0 += 140&crypto_int16_negative_mask(a0); /* 0...139 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-20597); /* invalid inputs might need reduction mod 313 */ a1 -= 313; a1 += 313&crypto_int16_negative_mask(a1); R4[78] = a0; R4[79] = a1; s -= 39; i = 23; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,36),mulhiconst(mulloconst(A0,11235),140)); /* -70...79 */ A0 = add(A0,S0); /* -70...334 */ A0 = sub(mulhiconst(A0,16),mulhiconst(mulloconst(A0,-468),140)); /* -71...70 */ A0 = ifnegaddconst(A0,140); /* 0...139 */ A1 = add(shiftleftconst(A2,6),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,-20597); /* invalid inputs might need reduction mod 140 */ A1 = ifgesubconst(A1,140); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 159*[189]+[423] */ i = 0; s -= 1; a2 = a0 = R4[79]; a0 = mulhi(a0,64)-mulhi(mullo(a0,-23232),189); /* -95...110 */ a0 += s[1*i+0]; /* -95...365 */ a0 -= 189; /* -284..>176 */ a0 += 189&crypto_int16_negative_mask(a0); /* -95...188 */ a0 += 189&crypto_int16_negative_mask(a0); /* 0...188 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-1387); /* invalid inputs might need reduction mod 423 */ a1 -= 423; a1 += 423&crypto_int16_negative_mask(a1); R3[158] = a0; R3[159] = a1; s -= 79; i = 63; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,64),mulhiconst(mulloconst(A0,-23232),189)); /* -95...110 */ A0 = add(A0,S0); /* -95...365 */ A0 = subconst(A0,189); /* -284...176 */ A0 = ifnegaddconst(A0,189); /* -95...188 */ A0 = ifnegaddconst(A0,189); /* 0...188 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,-1387); /* invalid inputs might need reduction mod 189 */ A1 = ifgesubconst(A1,189); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 319*[3511]+[7879] */ i = 0; s -= 2; a2 = a0 = R3[159]; a0 = mulhi(a0,1658)-mulhi(mullo(a0,-4778),3511); /* -1756...2170 */ a0 += s[2*i+1]; /* -1756...2425 */ a0 = mulhi(a0,1658)-mulhi(mullo(a0,-4778),3511); /* -1800...1816 */ a0 += s[2*i+0]; /* -1800...2071 */ a0 += 3511&crypto_int16_negative_mask(a0); /* 0...3510 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,24583); /* invalid inputs might need reduction mod 7879 */ a1 -= 7879; a1 += 7879&crypto_int16_negative_mask(a1); R2[318] = a0; R2[319] = a1; s -= 318; i = 143; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,1658),mulhiconst(mulloconst(A0,-4778),3511)); /* -1756...2170 */ A0 = add(A0,S1); /* -1756...2425 */ A0 = sub(mulhiconst(A0,1658),mulhiconst(mulloconst(A0,-4778),3511)); /* -1800...1816 */ A0 = add(A0,S0); /* -1800...2071 */ A0 = ifnegaddconst(A0,3511); /* 0...3510 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,24583); /* invalid inputs might need reduction mod 3511 */ A1 = ifgesubconst(A1,3511); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 638*[948]+[7879] */ R1[638] = R2[319]; s -= 319; i = 303; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,460),mulhiconst(mulloconst(A0,-17697),948)); /* -474...589 */ A0 = add(A0,S0); /* -474...844 */ A0 = ifnegaddconst(A0,948); /* 0...947 */ A1 = add(shiftleftconst(A2,6),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,23781); /* invalid inputs might need reduction mod 948 */ A1 = ifgesubconst(A1,948); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 1277*[7879] */ R0[1276] = R1[638]-3939; s -= 1276; i = 622; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,2825),mulhiconst(mulloconst(A0,-2129),7879)); /* -3940...4645 */ A0 = add(A0,S1); /* -3940...4900 */ A0 = sub(mulhiconst(A0,2825),mulhiconst(mulloconst(A0,-2129),7879)); /* -4110...4150 */ A0 = add(A0,S0); /* -4110...4405 */ A0 = ifnegaddconst(A0,7879); /* 0...7878 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,17143); /* invalid inputs might need reduction mod 7879 */ A1 = ifgesubconst(A1,7879); A0 = subconst(A0,3939); A1 = subconst(A1,3939); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/1277x7879/avx/decodegen.py0000777000000000000000000000000014705505552030675 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/int16/0000755000000000000000000000000014705505552020104 5ustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/int16/Makefile0000777000000000000000000000000014705505552024212 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/int16/api.h0000777000000000000000000000000014705505552022756 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/1277x7879/int16/decode.c0000644000000000000000000002266614705505545021511 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,-4539); a1 = mulhi(a1,1072)-mulhi(lo,3696); a1 += *--s; /* -1848...2107 */ a1 += crypto_int16_negative_mask(a1)&3696; /* 0...3695 */ R[0] = a1; /* reconstruct mod 1*[376]+[2516] */ ri = R[0]; s0 = *--s; lo = mullo(ri,20916); a0 = mulhi(ri,96)-mulhi(lo,376); /* -188...212 */ a0 += s0; /* -188...467 */ a0 -= 376; /* -564..>91 */ a0 += crypto_int16_negative_mask(a0)&376; /* -188...375 */ a0 += crypto_int16_negative_mask(a0)&376; /* 0...375 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,18127); /* invalid inputs might need reduction mod 2516 */ a1 -= 2516; a1 += crypto_int16_negative_mask(a1)&2516; R[0] = a0; R[1] = a1; /* reconstruct mod 2*[4962]+[2516] */ R[2] = R[1]; for (i = 0;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3381); a0 = mulhi(ri,694)-mulhi(lo,4962); /* -2481...2654 */ a0 += s1; /* -2481...2909 */ lo = mullo(a0,-3381); a0 = mulhi(a0,694)-mulhi(lo,4962); /* -2508...2511 */ a0 += s0; /* -2508...2766 */ a0 += crypto_int16_negative_mask(a0)&4962; /* 0...4961 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-24751); /* invalid inputs might need reduction mod 4962 */ a1 -= 4962; a1 += crypto_int16_negative_mask(a1)&4962; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 4*[1127]+[2516] */ R[4] = R[2]; for (i = 1;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-14887); a0 = mulhi(ri,-433)-mulhi(lo,1127); /* -672...563 */ a0 += s0; /* -672...818 */ a0 += crypto_int16_negative_mask(a0)&1127; /* 0...1126 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-10409); /* invalid inputs might need reduction mod 1127 */ a1 -= 1127; a1 += crypto_int16_negative_mask(a1)&1127; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 9*[537]+[1199] */ ri = R[4]; s0 = *--s; lo = mullo(ri,-31242); a0 = mulhi(ri,262)-mulhi(lo,537); /* -269...334 */ a0 += s0; /* -269...589 */ a0 -= 537; /* -806..>52 */ a0 += crypto_int16_negative_mask(a0)&537; /* -269...536 */ a0 += crypto_int16_negative_mask(a0)&537; /* 0...536 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,14889); /* invalid inputs might need reduction mod 1199 */ a1 -= 1199; a1 += crypto_int16_negative_mask(a1)&1199; R[8] = a0; R[9] = a1; for (i = 3;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-31242); a0 = mulhi(ri,262)-mulhi(lo,537); /* -269...334 */ a0 += s0; /* -269...589 */ a0 -= 537; /* -806..>52 */ a0 += crypto_int16_negative_mask(a0)&537; /* -269...536 */ a0 += crypto_int16_negative_mask(a0)&537; /* 0...536 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,14889); /* invalid inputs might need reduction mod 537 */ a1 -= 537; a1 += crypto_int16_negative_mask(a1)&537; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 19*[5929]+[13244] */ ri = R[9]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2830); a0 = mulhi(ri,-1854)-mulhi(lo,5929); /* -3428...2964 */ a0 += s1; /* -3428...3219 */ lo = mullo(a0,-2830); a0 = mulhi(a0,-1854)-mulhi(lo,5929); /* -3056...3061 */ a0 += s0; /* -3056...3316 */ a0 += crypto_int16_negative_mask(a0)&5929; /* 0...5928 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,29977); /* invalid inputs might need reduction mod 13244 */ a1 -= 13244; a1 += crypto_int16_negative_mask(a1)&13244; R[18] = a0; R[19] = a1; for (i = 8;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2830); a0 = mulhi(ri,-1854)-mulhi(lo,5929); /* -3428...2964 */ a0 += s1; /* -3428...3219 */ lo = mullo(a0,-2830); a0 = mulhi(a0,-1854)-mulhi(lo,5929); /* -3056...3061 */ a0 += s0; /* -3056...3316 */ a0 += crypto_int16_negative_mask(a0)&5929; /* 0...5928 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,29977); /* invalid inputs might need reduction mod 5929 */ a1 -= 5929; a1 += crypto_int16_negative_mask(a1)&5929; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 39*[77]+[172] */ ri = R[19]; a0 = ri; lo = mullo(a0,-851); a0 = mulhi(a0,9)-mulhi(lo,77); /* -39...40 */ a0 += crypto_int16_negative_mask(a0)&77; /* 0...76 */ a1 = (ri-a0)>>0; a1 = mullo(a1,14469); /* invalid inputs might need reduction mod 172 */ a1 -= 172; a1 += crypto_int16_negative_mask(a1)&172; R[38] = a0; R[39] = a1; for (i = 18;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-851); a0 = mulhi(a0,9)-mulhi(lo,77); /* -39...40 */ a0 += crypto_int16_negative_mask(a0)&77; /* 0...76 */ a1 = (ri-a0)>>0; a1 = mullo(a1,14469); /* invalid inputs might need reduction mod 77 */ a1 -= 77; a1 += crypto_int16_negative_mask(a1)&77; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 79*[140]+[313] */ ri = R[39]; s0 = *--s; lo = mullo(ri,11235); a0 = mulhi(ri,36)-mulhi(lo,140); /* -70...79 */ a0 += s0; /* -70...334 */ lo = mullo(a0,-468); a0 = mulhi(a0,16)-mulhi(lo,140); /* -71...70 */ a0 += crypto_int16_negative_mask(a0)&140; /* 0...139 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-20597); /* invalid inputs might need reduction mod 313 */ a1 -= 313; a1 += crypto_int16_negative_mask(a1)&313; R[78] = a0; R[79] = a1; for (i = 38;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,11235); a0 = mulhi(ri,36)-mulhi(lo,140); /* -70...79 */ a0 += s0; /* -70...334 */ lo = mullo(a0,-468); a0 = mulhi(a0,16)-mulhi(lo,140); /* -71...70 */ a0 += crypto_int16_negative_mask(a0)&140; /* 0...139 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-20597); /* invalid inputs might need reduction mod 140 */ a1 -= 140; a1 += crypto_int16_negative_mask(a1)&140; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 159*[189]+[423] */ ri = R[79]; s0 = *--s; lo = mullo(ri,-23232); a0 = mulhi(ri,64)-mulhi(lo,189); /* -95...110 */ a0 += s0; /* -95...365 */ a0 -= 189; /* -284..>176 */ a0 += crypto_int16_negative_mask(a0)&189; /* -95...188 */ a0 += crypto_int16_negative_mask(a0)&189; /* 0...188 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-1387); /* invalid inputs might need reduction mod 423 */ a1 -= 423; a1 += crypto_int16_negative_mask(a1)&423; R[158] = a0; R[159] = a1; for (i = 78;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-23232); a0 = mulhi(ri,64)-mulhi(lo,189); /* -95...110 */ a0 += s0; /* -95...365 */ a0 -= 189; /* -284..>176 */ a0 += crypto_int16_negative_mask(a0)&189; /* -95...188 */ a0 += crypto_int16_negative_mask(a0)&189; /* 0...188 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-1387); /* invalid inputs might need reduction mod 189 */ a1 -= 189; a1 += crypto_int16_negative_mask(a1)&189; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 319*[3511]+[7879] */ ri = R[159]; s1 = *--s; s0 = *--s; lo = mullo(ri,-4778); a0 = mulhi(ri,1658)-mulhi(lo,3511); /* -1756...2170 */ a0 += s1; /* -1756...2425 */ lo = mullo(a0,-4778); a0 = mulhi(a0,1658)-mulhi(lo,3511); /* -1800...1816 */ a0 += s0; /* -1800...2071 */ a0 += crypto_int16_negative_mask(a0)&3511; /* 0...3510 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,24583); /* invalid inputs might need reduction mod 7879 */ a1 -= 7879; a1 += crypto_int16_negative_mask(a1)&7879; R[318] = a0; R[319] = a1; for (i = 158;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-4778); a0 = mulhi(ri,1658)-mulhi(lo,3511); /* -1756...2170 */ a0 += s1; /* -1756...2425 */ lo = mullo(a0,-4778); a0 = mulhi(a0,1658)-mulhi(lo,3511); /* -1800...1816 */ a0 += s0; /* -1800...2071 */ a0 += crypto_int16_negative_mask(a0)&3511; /* 0...3510 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,24583); /* invalid inputs might need reduction mod 3511 */ a1 -= 3511; a1 += crypto_int16_negative_mask(a1)&3511; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 638*[948]+[7879] */ R[638] = R[319]; for (i = 318;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-17697); a0 = mulhi(ri,460)-mulhi(lo,948); /* -474...589 */ a0 += s0; /* -474...844 */ a0 += crypto_int16_negative_mask(a0)&948; /* 0...947 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,23781); /* invalid inputs might need reduction mod 948 */ a1 -= 948; a1 += crypto_int16_negative_mask(a1)&948; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 1277*[7879] */ R[1276] = R[638]-3939; for (i = 637;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2129); a0 = mulhi(ri,2825)-mulhi(lo,7879); /* -3940...4645 */ a0 += s1; /* -3940...4900 */ lo = mullo(a0,-2129); a0 = mulhi(a0,2825)-mulhi(lo,7879); /* -4110...4150 */ a0 += s0; /* -4110...4405 */ a0 += crypto_int16_negative_mask(a0)&7879; /* 0...7878 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,17143); /* invalid inputs might need reduction mod 7879 */ a1 -= 7879; a1 += crypto_int16_negative_mask(a1)&7879; R[2*i] = a0-3939; R[2*i+1] = a1-3939; } } libntruprime-20241021/crypto_decode/1277x7879/int16/decodegen.py0000777000000000000000000000000014705505552031203 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/1277xint16/0000755000000000000000000000000014705505545017470 5ustar rootrootlibntruprime-20241021/crypto_decode/1277xint16/ref/0000755000000000000000000000000014705505545020244 5ustar rootrootlibntruprime-20241021/crypto_decode/1277xint16/ref/api.h0000644000000000000000000000012214705505545021161 0ustar rootroot#define CRYPTO_STRBYTES 2554 #define CRYPTO_ITEMS 1277 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/1277xint16/ref/decode.c0000644000000000000000000000044314705505545021634 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < 1277;++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/crypto_decode/1277xint32/0000755000000000000000000000000014705505545017466 5ustar rootrootlibntruprime-20241021/crypto_decode/1277xint32/ref/0000755000000000000000000000000014705505545020242 5ustar rootrootlibntruprime-20241021/crypto_decode/1277xint32/ref/api.h0000644000000000000000000000012214705505545021157 0ustar rootroot#define CRYPTO_STRBYTES 5108 #define CRYPTO_ITEMS 1277 #define CRYPTO_ITEMBYTES 4 libntruprime-20241021/crypto_decode/1277xint32/ref/decode.c0000644000000000000000000000060514705505545021632 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < 1277;++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/crypto_decode/653x1541/0000755000000000000000000000000014705505545017036 5ustar rootrootlibntruprime-20241021/crypto_decode/653x1541/avx/0000755000000000000000000000000014705505552017632 5ustar rootrootlibntruprime-20241021/crypto_decode/653x1541/avx/Makefile0000644000000000000000000000015214705505545021272 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 653 1541 1541 2310 True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/653x1541/avx/api.h0000644000000000000000000000012014705505545020547 0ustar rootroot#define CRYPTO_STRBYTES 865 #define CRYPTO_ITEMS 653 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/653x1541/avx/architectures0000777000000000000000000000000014705505552031332 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/653x1541/avx/decode.c0000644000000000000000000003101014705505545021216 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[327],R2[164],R3[82],R4[41],R5[21],R6[11],R7[6],R8[3],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,-48)-mulhi(mullo(a1,-6433),2608); a1 += *--s; /* -1304...1558 */ a1 += 2608&crypto_int16_negative_mask(a1); /* 0...2607 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[71]+[9402] */ i = 0; s -= 1; a2 = a0 = R10[0]; a0 = mulhi(a0,-13)-mulhi(mullo(a0,25845),71); /* -39...35 */ a0 += s[1*i+0]; /* -39...290 */ a0 = mulhi(a0,3)-mulhi(mullo(a0,-923),71); /* -36...35 */ a0 += 71&crypto_int16_negative_mask(a0); /* 0...70 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-22153); /* invalid inputs might need reduction mod 9402 */ a1 -= 9402; a1 += 9402&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 2*[134]+[9402] */ R8[2] = R9[1]; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,14)-mulhi(mullo(a0,5869),134); /* -67...70 */ a0 += s[1*i+0]; /* -67...325 */ a0 = mulhi(a0,10)-mulhi(mullo(a0,-489),134); /* -68...67 */ a0 += 134&crypto_int16_negative_mask(a0); /* 0...133 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,19563); /* invalid inputs might need reduction mod 134 */ a1 -= 134; a1 += 134&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 5*[2953]+[815] */ i = 0; s -= 1; a2 = a0 = R8[2]; a0 = mulhi(a0,1223)-mulhi(mullo(a0,-5681),2953); /* -1477...1782 */ a0 += s[1*i+0]; /* -1477...2037 */ a0 += 2953&crypto_int16_negative_mask(a0); /* 0...2952 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-9543); /* invalid inputs might need reduction mod 815 */ a1 -= 815; a1 += 815&crypto_int16_negative_mask(a1); R7[4] = a0; R7[5] = a1; s -= 4; for (i = 1;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,1223)-mulhi(mullo(a0,-5681),2953); /* -1477...1782 */ a0 += s[2*i+1]; /* -1477...2037 */ a0 = mulhi(a0,1223)-mulhi(mullo(a0,-5681),2953); /* -1505...1514 */ a0 += s[2*i+0]; /* -1505...1769 */ a0 += 2953&crypto_int16_negative_mask(a0); /* 0...2952 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-9543); /* invalid inputs might need reduction mod 2953 */ a1 -= 2953; a1 += 2953&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 10*[13910]+[815] */ R6[10] = R7[5]; s -= 10; for (i = 4;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,1756)-mulhi(mullo(a0,-1206),13910); /* -6955...7394 */ a0 += s[2*i+1]; /* -6955...7649 */ a0 = mulhi(a0,1756)-mulhi(mullo(a0,-1206),13910); /* -7142...7159 */ a0 += s[2*i+0]; /* -7142...7414 */ a0 += 13910&crypto_int16_negative_mask(a0); /* 0...13909 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-13437); /* invalid inputs might need reduction mod 13910 */ a1 -= 13910; a1 += 13910&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 20*[1887]+[815] */ R5[20] = R6[10]; s -= 10; for (i = 9;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,-101)-mulhi(mullo(a0,-8891),1887); /* -969...943 */ a0 += s[1*i+0]; /* -969...1198 */ a0 += 1887&crypto_int16_negative_mask(a0); /* 0...1886 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,5279); /* invalid inputs might need reduction mod 1887 */ a1 -= 1887; a1 += 1887&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 40*[695]+[815] */ R4[40] = R5[20]; s -= 20; i = 4; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-84),mulhiconst(mulloconst(A0,-24140),695)); /* -369...347 */ A0 = add(A0,S0); /* -369...602 */ A0 = ifnegaddconst(A0,695); /* 0...694 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,31495); /* invalid inputs might need reduction mod 695 */ A1 = ifgesubconst(A1,695); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 81*[6745]+[7910] */ i = 0; s -= 2; a2 = a0 = R4[40]; a0 = mulhi(a0,2401)-mulhi(mullo(a0,-2487),6745); /* -3373...3972 */ a0 += s[2*i+1]; /* -3373...4227 */ a0 = mulhi(a0,2401)-mulhi(mullo(a0,-2487),6745); /* -3497...3527 */ a0 += s[2*i+0]; /* -3497...3782 */ a0 += 6745&crypto_int16_negative_mask(a0); /* 0...6744 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-29207); /* invalid inputs might need reduction mod 7910 */ a1 -= 7910; a1 += 7910&crypto_int16_negative_mask(a1); R3[80] = a0; R3[81] = a1; s -= 80; i = 24; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,2401),mulhiconst(mulloconst(A0,-2487),6745)); /* -3373...3972 */ A0 = add(A0,S1); /* -3373...4227 */ A0 = sub(mulhiconst(A0,2401),mulhiconst(mulloconst(A0,-2487),6745)); /* -3497...3527 */ A0 = add(A0,S0); /* -3497...3782 */ A0 = ifnegaddconst(A0,6745); /* 0...6744 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-29207); /* invalid inputs might need reduction mod 6745 */ A1 = ifgesubconst(A1,6745); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 163*[1314]+[1541] */ i = 0; s -= 1; a2 = a0 = R3[81]; a0 = mulhi(a0,64)-mulhi(mullo(a0,-12768),1314); /* -657...673 */ a0 += s[1*i+0]; /* -657...928 */ a0 += 1314&crypto_int16_negative_mask(a0); /* 0...1313 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-399); /* invalid inputs might need reduction mod 1541 */ a1 -= 1541; a1 += 1541&crypto_int16_negative_mask(a1); R2[162] = a0; R2[163] = a1; s -= 81; i = 65; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,64),mulhiconst(mulloconst(A0,-12768),1314)); /* -657...673 */ A0 = add(A0,S0); /* -657...928 */ A0 = ifnegaddconst(A0,1314); /* 0...1313 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-399); /* invalid inputs might need reduction mod 1314 */ A1 = ifgesubconst(A1,1314); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 326*[9277]+[1541] */ R1[326] = R2[163]; s -= 326; i = 147; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,4400),mulhiconst(mulloconst(A0,-1808),9277)); /* -4639...5738 */ A0 = add(A0,S1); /* -4639...5993 */ A0 = sub(mulhiconst(A0,4400),mulhiconst(mulloconst(A0,-1808),9277)); /* -4950...5040 */ A0 = add(A0,S0); /* -4950...5295 */ A0 = ifnegaddconst(A0,9277); /* 0...9276 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-27883); /* invalid inputs might need reduction mod 9277 */ A1 = ifgesubconst(A1,9277); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 653*[1541] */ R0[652] = 3*R1[326]-2310; s -= 326; i = 310; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,349),mulhiconst(mulloconst(A0,-10887),1541)); /* -771...857 */ A0 = add(A0,S0); /* -771...1112 */ A0 = ifnegaddconst(A0,1541); /* 0...1540 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,-10547); /* invalid inputs might need reduction mod 1541 */ A1 = ifgesubconst(A1,1541); A0 = mulloconst(A0,3); A1 = mulloconst(A1,3); A0 = subconst(A0,2310); A1 = subconst(A1,2310); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/653x1541/avx/decodegen.py0000777000000000000000000000000014705505552030566 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/653x1541/int16/0000755000000000000000000000000014705505552017775 5ustar rootrootlibntruprime-20241021/crypto_decode/653x1541/int16/Makefile0000777000000000000000000000000014705505552024103 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/653x1541/int16/api.h0000777000000000000000000000000014705505552022647 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/653x1541/int16/decode.c0000644000000000000000000001664714705505545021404 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,-6433); a1 = mulhi(a1,-48)-mulhi(lo,2608); a1 += *--s; /* -1304...1558 */ a1 += crypto_int16_negative_mask(a1)&2608; /* 0...2607 */ R[0] = a1; /* reconstruct mod 1*[71]+[9402] */ ri = R[0]; s0 = *--s; lo = mullo(ri,25845); a0 = mulhi(ri,-13)-mulhi(lo,71); /* -39...35 */ a0 += s0; /* -39...290 */ lo = mullo(a0,-923); a0 = mulhi(a0,3)-mulhi(lo,71); /* -36...35 */ a0 += crypto_int16_negative_mask(a0)&71; /* 0...70 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-22153); /* invalid inputs might need reduction mod 9402 */ a1 -= 9402; a1 += crypto_int16_negative_mask(a1)&9402; R[0] = a0; R[1] = a1; /* reconstruct mod 2*[134]+[9402] */ R[2] = R[1]; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,5869); a0 = mulhi(ri,14)-mulhi(lo,134); /* -67...70 */ a0 += s0; /* -67...325 */ lo = mullo(a0,-489); a0 = mulhi(a0,10)-mulhi(lo,134); /* -68...67 */ a0 += crypto_int16_negative_mask(a0)&134; /* 0...133 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,19563); /* invalid inputs might need reduction mod 134 */ a1 -= 134; a1 += crypto_int16_negative_mask(a1)&134; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 5*[2953]+[815] */ ri = R[2]; s0 = *--s; lo = mullo(ri,-5681); a0 = mulhi(ri,1223)-mulhi(lo,2953); /* -1477...1782 */ a0 += s0; /* -1477...2037 */ a0 += crypto_int16_negative_mask(a0)&2953; /* 0...2952 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-9543); /* invalid inputs might need reduction mod 815 */ a1 -= 815; a1 += crypto_int16_negative_mask(a1)&815; R[4] = a0; R[5] = a1; for (i = 1;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-5681); a0 = mulhi(ri,1223)-mulhi(lo,2953); /* -1477...1782 */ a0 += s1; /* -1477...2037 */ lo = mullo(a0,-5681); a0 = mulhi(a0,1223)-mulhi(lo,2953); /* -1505...1514 */ a0 += s0; /* -1505...1769 */ a0 += crypto_int16_negative_mask(a0)&2953; /* 0...2952 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-9543); /* invalid inputs might need reduction mod 2953 */ a1 -= 2953; a1 += crypto_int16_negative_mask(a1)&2953; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 10*[13910]+[815] */ R[10] = R[5]; for (i = 4;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1206); a0 = mulhi(ri,1756)-mulhi(lo,13910); /* -6955...7394 */ a0 += s1; /* -6955...7649 */ lo = mullo(a0,-1206); a0 = mulhi(a0,1756)-mulhi(lo,13910); /* -7142...7159 */ a0 += s0; /* -7142...7414 */ a0 += crypto_int16_negative_mask(a0)&13910; /* 0...13909 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-13437); /* invalid inputs might need reduction mod 13910 */ a1 -= 13910; a1 += crypto_int16_negative_mask(a1)&13910; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 20*[1887]+[815] */ R[20] = R[10]; for (i = 9;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-8891); a0 = mulhi(ri,-101)-mulhi(lo,1887); /* -969...943 */ a0 += s0; /* -969...1198 */ a0 += crypto_int16_negative_mask(a0)&1887; /* 0...1886 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,5279); /* invalid inputs might need reduction mod 1887 */ a1 -= 1887; a1 += crypto_int16_negative_mask(a1)&1887; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 40*[695]+[815] */ R[40] = R[20]; for (i = 19;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-24140); a0 = mulhi(ri,-84)-mulhi(lo,695); /* -369...347 */ a0 += s0; /* -369...602 */ a0 += crypto_int16_negative_mask(a0)&695; /* 0...694 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,31495); /* invalid inputs might need reduction mod 695 */ a1 -= 695; a1 += crypto_int16_negative_mask(a1)&695; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 81*[6745]+[7910] */ ri = R[40]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2487); a0 = mulhi(ri,2401)-mulhi(lo,6745); /* -3373...3972 */ a0 += s1; /* -3373...4227 */ lo = mullo(a0,-2487); a0 = mulhi(a0,2401)-mulhi(lo,6745); /* -3497...3527 */ a0 += s0; /* -3497...3782 */ a0 += crypto_int16_negative_mask(a0)&6745; /* 0...6744 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-29207); /* invalid inputs might need reduction mod 7910 */ a1 -= 7910; a1 += crypto_int16_negative_mask(a1)&7910; R[80] = a0; R[81] = a1; for (i = 39;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2487); a0 = mulhi(ri,2401)-mulhi(lo,6745); /* -3373...3972 */ a0 += s1; /* -3373...4227 */ lo = mullo(a0,-2487); a0 = mulhi(a0,2401)-mulhi(lo,6745); /* -3497...3527 */ a0 += s0; /* -3497...3782 */ a0 += crypto_int16_negative_mask(a0)&6745; /* 0...6744 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-29207); /* invalid inputs might need reduction mod 6745 */ a1 -= 6745; a1 += crypto_int16_negative_mask(a1)&6745; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 163*[1314]+[1541] */ ri = R[81]; s0 = *--s; lo = mullo(ri,-12768); a0 = mulhi(ri,64)-mulhi(lo,1314); /* -657...673 */ a0 += s0; /* -657...928 */ a0 += crypto_int16_negative_mask(a0)&1314; /* 0...1313 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-399); /* invalid inputs might need reduction mod 1541 */ a1 -= 1541; a1 += crypto_int16_negative_mask(a1)&1541; R[162] = a0; R[163] = a1; for (i = 80;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-12768); a0 = mulhi(ri,64)-mulhi(lo,1314); /* -657...673 */ a0 += s0; /* -657...928 */ a0 += crypto_int16_negative_mask(a0)&1314; /* 0...1313 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-399); /* invalid inputs might need reduction mod 1314 */ a1 -= 1314; a1 += crypto_int16_negative_mask(a1)&1314; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 326*[9277]+[1541] */ R[326] = R[163]; for (i = 162;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1808); a0 = mulhi(ri,4400)-mulhi(lo,9277); /* -4639...5738 */ a0 += s1; /* -4639...5993 */ lo = mullo(a0,-1808); a0 = mulhi(a0,4400)-mulhi(lo,9277); /* -4950...5040 */ a0 += s0; /* -4950...5295 */ a0 += crypto_int16_negative_mask(a0)&9277; /* 0...9276 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-27883); /* invalid inputs might need reduction mod 9277 */ a1 -= 9277; a1 += crypto_int16_negative_mask(a1)&9277; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 653*[1541] */ R[652] = 3*R[326]-2310; for (i = 325;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10887); a0 = mulhi(ri,349)-mulhi(lo,1541); /* -771...857 */ a0 += s0; /* -771...1112 */ a0 += crypto_int16_negative_mask(a0)&1541; /* 0...1540 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-10547); /* invalid inputs might need reduction mod 1541 */ a1 -= 1541; a1 += crypto_int16_negative_mask(a1)&1541; R[2*i] = 3*a0-2310; R[2*i+1] = 3*a1-2310; } } libntruprime-20241021/crypto_decode/653x1541/int16/decodegen.py0000777000000000000000000000000014705505552031074 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/653x3/0000755000000000000000000000000014705505545016606 5ustar rootrootlibntruprime-20241021/crypto_decode/653x3/avx/0000755000000000000000000000000014705505552017402 5ustar rootrootlibntruprime-20241021/crypto_decode/653x3/avx/api.h0000644000000000000000000000012014705505545020317 0ustar rootroot#define CRYPTO_STRBYTES 164 #define CRYPTO_ITEMS 653 #define CRYPTO_ITEMBYTES 1 libntruprime-20241021/crypto_decode/653x3/avx/architectures0000777000000000000000000000000014705505552031102 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/653x3/avx/decode.c0000644000000000000000000000401314705505545020771 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 653 #define loops 6 #define overshoot 29 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/crypto_decode/653x3/ref/0000755000000000000000000000000014705505552017360 5ustar rootrootlibntruprime-20241021/crypto_decode/653x3/ref/api.h0000777000000000000000000000000014705505552022232 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/653x3/ref/decode.c0000644000000000000000000000064014705505545020751 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 653 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/crypto_decode/653x4621/0000755000000000000000000000000014705505545017040 5ustar rootrootlibntruprime-20241021/crypto_decode/653x4621/avx/0000755000000000000000000000000014705505552017634 5ustar rootrootlibntruprime-20241021/crypto_decode/653x4621/avx/Makefile0000644000000000000000000000013314705505545021273 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 653 4621 > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/653x4621/avx/api.h0000644000000000000000000000012014705505545020551 0ustar rootroot#define CRYPTO_STRBYTES 994 #define CRYPTO_ITEMS 653 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/653x4621/avx/architectures0000777000000000000000000000000014705505552031334 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/653x4621/avx/decode.c0000644000000000000000000003122514705505545021230 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[327],R2[164],R3[82],R4[41],R5[21],R6[11],R7[6],R8[3],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 -= 86; /* -86...169 */ a1 -= 86; /* -172...83 */ a1 += 86&crypto_int16_negative_mask(a1); /* -86...85 */ a1 += 86&crypto_int16_negative_mask(a1); /* 0...85 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[835]+[6708] */ i = 0; s -= 2; a2 = a0 = R10[0]; a0 = mulhi(a0,396)-mulhi(mullo(a0,-20092),835); /* -418...516 */ a0 += s[2*i+1]; /* -418...771 */ a0 = mulhi(a0,396)-mulhi(mullo(a0,-20092),835); /* -421...422 */ a0 += s[2*i+0]; /* -421...677 */ a0 += 835&crypto_int16_negative_mask(a0); /* 0...834 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,8555); /* invalid inputs might need reduction mod 6708 */ a1 -= 6708; a1 += 6708&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 2*[7396]+[6708] */ R8[2] = R9[1]; s -= 2; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,3088)-mulhi(mullo(a0,-2268),7396); /* -3698...4470 */ a0 += s[2*i+1]; /* -3698...4725 */ a0 = mulhi(a0,3088)-mulhi(mullo(a0,-2268),7396); /* -3873...3920 */ a0 += s[2*i+0]; /* -3873...4175 */ a0 += 7396&crypto_int16_negative_mask(a0); /* 0...7395 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,-18679); /* invalid inputs might need reduction mod 7396 */ a1 -= 7396; a1 += 7396&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 5*[86]+[78] */ i = 0; s -= 0; a2 = a0 = R8[2]; a0 = mulhi(a0,4)-mulhi(mullo(a0,-762),86); /* -43...44 */ a0 += 86&crypto_int16_negative_mask(a0); /* 0...85 */ a1 = (a2-a0)>>1; a1 = mullo(a1,-16765); /* invalid inputs might need reduction mod 78 */ a1 -= 78; a1 += 78&crypto_int16_negative_mask(a1); R7[4] = a0; R7[5] = a1; s -= 0; for (i = 1;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,4)-mulhi(mullo(a0,-762),86); /* -43...44 */ a0 += 86&crypto_int16_negative_mask(a0); /* 0...85 */ a1 = (a2-a0)>>1; a1 = mullo(a1,-16765); /* invalid inputs might need reduction mod 86 */ a1 -= 86; a1 += 86&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 10*[2370]+[78] */ R6[10] = R7[5]; s -= 10; for (i = 4;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,-14)-mulhi(mullo(a0,-7079),2370); /* -1189...1185 */ a0 += s[2*i+1]; /* -1189...1440 */ a0 = mulhi(a0,-14)-mulhi(mullo(a0,-7079),2370); /* -1186...1185 */ a0 += s[2*i+0]; /* -1186...1440 */ a0 += 2370&crypto_int16_negative_mask(a0); /* 0...2369 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-8351); /* invalid inputs might need reduction mod 2370 */ a1 -= 2370; a1 += 2370&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 20*[12461]+[78] */ R5[20] = R6[10]; s -= 20; for (i = 9;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,4710)-mulhi(mullo(a0,-1346),12461); /* -6231...7408 */ a0 += s[2*i+1]; /* -6231...7663 */ a0 = mulhi(a0,4710)-mulhi(mullo(a0,-1346),12461); /* -6679...6781 */ a0 += s[2*i+0]; /* -6679...7036 */ a0 += 12461&crypto_int16_negative_mask(a0); /* 0...12460 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-19675); /* invalid inputs might need reduction mod 12461 */ a1 -= 12461; a1 += 12461&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 40*[1786]+[78] */ R4[40] = R5[20]; s -= 20; i = 4; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-468),mulhiconst(mulloconst(A0,-9394),1786)); /* -1010...893 */ A0 = add(A0,S0); /* -1010...1148 */ A0 = ifnegaddconst(A0,1786); /* 0...1785 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-12843); /* invalid inputs might need reduction mod 1786 */ A1 = ifgesubconst(A1,1786); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 81*[676]+[7510] */ i = 0; s -= 2; a2 = a0 = R4[40]; a0 = mulhi(a0,248)-mulhi(mullo(a0,-24818),676); /* -338...400 */ a0 += s[2*i+1]; /* -338...655 */ a0 = mulhi(a0,248)-mulhi(mullo(a0,-24818),676); /* -340...340 */ a0 += s[2*i+0]; /* -340...595 */ a0 += 676&crypto_int16_negative_mask(a0); /* 0...675 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,-23655); /* invalid inputs might need reduction mod 7510 */ a1 -= 7510; a1 += 7510&crypto_int16_negative_mask(a1); R3[80] = a0; R3[81] = a1; s -= 40; i = 24; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,248),mulhiconst(mulloconst(A0,-24818),676)); /* -338...400 */ A0 = add(A0,S0); /* -338...655 */ A0 = ifnegaddconst(A0,676); /* 0...675 */ A1 = add(shiftleftconst(A2,6),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,-23655); /* invalid inputs might need reduction mod 676 */ A1 = ifgesubconst(A1,676); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 163*[416]+[4621] */ i = 0; s -= 1; a2 = a0 = R3[81]; a0 = mulhi(a0,-64)-mulhi(mullo(a0,25206),416); /* -224...208 */ a0 += s[1*i+0]; /* -224...463 */ a0 -= 416; /* -640..>47 */ a0 += 416&crypto_int16_negative_mask(a0); /* -224...415 */ a0 += 416&crypto_int16_negative_mask(a0); /* 0...415 */ a1 = (a2<<3)+((s[i]-a0)>>5); a1 = mullo(a1,20165); /* invalid inputs might need reduction mod 4621 */ a1 -= 4621; a1 += 4621&crypto_int16_negative_mask(a1); R2[162] = a0; R2[163] = a1; s -= 81; i = 65; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-64),mulhiconst(mulloconst(A0,25206),416)); /* -224...208 */ A0 = add(A0,S0); /* -224...463 */ A0 = subconst(A0,416); /* -640...47 */ A0 = ifnegaddconst(A0,416); /* -224...415 */ A0 = ifnegaddconst(A0,416); /* 0...415 */ A1 = add(shiftleftconst(A2,3),signedshiftrightconst(sub(S0,A0),5)); A1 = mulloconst(A1,20165); /* invalid inputs might need reduction mod 416 */ A1 = ifgesubconst(A1,416); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 326*[326]+[4621] */ R1[326] = R2[163]; s -= 163; i = 147; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-48),mulhiconst(mulloconst(A0,14072),326)); /* -175...163 */ A0 = add(A0,S0); /* -175...418 */ A0 = subconst(A0,326); /* -501...92 */ A0 = ifnegaddconst(A0,326); /* -175...325 */ A0 = ifnegaddconst(A0,326); /* 0...325 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-19701); /* invalid inputs might need reduction mod 326 */ A1 = ifgesubconst(A1,326); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 653*[4621] */ R0[652] = R1[326]-2310; s -= 652; i = 310; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-1635),mulhiconst(mulloconst(A0,-3631),4621)); /* -2720...2310 */ A0 = add(A0,S1); /* -2720...2565 */ A0 = sub(mulhiconst(A0,-1635),mulhiconst(mulloconst(A0,-3631),4621)); /* -2375...2378 */ A0 = add(A0,S0); /* -2375...2633 */ A0 = ifnegaddconst(A0,4621); /* 0...4620 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-29499); /* invalid inputs might need reduction mod 4621 */ A1 = ifgesubconst(A1,4621); A0 = subconst(A0,2310); A1 = subconst(A1,2310); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/653x4621/avx/decodegen.py0000777000000000000000000000000014705505552030570 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/653x4621/int16/0000755000000000000000000000000014705505552017777 5ustar rootrootlibntruprime-20241021/crypto_decode/653x4621/int16/Makefile0000777000000000000000000000000014705505552024105 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/653x4621/int16/api.h0000777000000000000000000000000014705505552022651 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/653x4621/int16/decode.c0000644000000000000000000001714514705505545021400 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 -= 86; /* -86...169 */ a1 -= 86; /* -172...83 */ a1 += crypto_int16_negative_mask(a1)&86; /* -86...85 */ a1 += crypto_int16_negative_mask(a1)&86; /* 0...85 */ R[0] = a1; /* reconstruct mod 1*[835]+[6708] */ ri = R[0]; s1 = *--s; s0 = *--s; lo = mullo(ri,-20092); a0 = mulhi(ri,396)-mulhi(lo,835); /* -418...516 */ a0 += s1; /* -418...771 */ lo = mullo(a0,-20092); a0 = mulhi(a0,396)-mulhi(lo,835); /* -421...422 */ a0 += s0; /* -421...677 */ a0 += crypto_int16_negative_mask(a0)&835; /* 0...834 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,8555); /* invalid inputs might need reduction mod 6708 */ a1 -= 6708; a1 += crypto_int16_negative_mask(a1)&6708; R[0] = a0; R[1] = a1; /* reconstruct mod 2*[7396]+[6708] */ R[2] = R[1]; for (i = 0;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2268); a0 = mulhi(ri,3088)-mulhi(lo,7396); /* -3698...4470 */ a0 += s1; /* -3698...4725 */ lo = mullo(a0,-2268); a0 = mulhi(a0,3088)-mulhi(lo,7396); /* -3873...3920 */ a0 += s0; /* -3873...4175 */ a0 += crypto_int16_negative_mask(a0)&7396; /* 0...7395 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,-18679); /* invalid inputs might need reduction mod 7396 */ a1 -= 7396; a1 += crypto_int16_negative_mask(a1)&7396; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 5*[86]+[78] */ ri = R[2]; a0 = ri; lo = mullo(a0,-762); a0 = mulhi(a0,4)-mulhi(lo,86); /* -43...44 */ a0 += crypto_int16_negative_mask(a0)&86; /* 0...85 */ a1 = (ri-a0)>>1; a1 = mullo(a1,-16765); /* invalid inputs might need reduction mod 78 */ a1 -= 78; a1 += crypto_int16_negative_mask(a1)&78; R[4] = a0; R[5] = a1; for (i = 1;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-762); a0 = mulhi(a0,4)-mulhi(lo,86); /* -43...44 */ a0 += crypto_int16_negative_mask(a0)&86; /* 0...85 */ a1 = (ri-a0)>>1; a1 = mullo(a1,-16765); /* invalid inputs might need reduction mod 86 */ a1 -= 86; a1 += crypto_int16_negative_mask(a1)&86; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 10*[2370]+[78] */ R[10] = R[5]; for (i = 4;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-7079); a0 = mulhi(ri,-14)-mulhi(lo,2370); /* -1189...1185 */ a0 += s1; /* -1189...1440 */ lo = mullo(a0,-7079); a0 = mulhi(a0,-14)-mulhi(lo,2370); /* -1186...1185 */ a0 += s0; /* -1186...1440 */ a0 += crypto_int16_negative_mask(a0)&2370; /* 0...2369 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-8351); /* invalid inputs might need reduction mod 2370 */ a1 -= 2370; a1 += crypto_int16_negative_mask(a1)&2370; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 20*[12461]+[78] */ R[20] = R[10]; for (i = 9;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1346); a0 = mulhi(ri,4710)-mulhi(lo,12461); /* -6231...7408 */ a0 += s1; /* -6231...7663 */ lo = mullo(a0,-1346); a0 = mulhi(a0,4710)-mulhi(lo,12461); /* -6679...6781 */ a0 += s0; /* -6679...7036 */ a0 += crypto_int16_negative_mask(a0)&12461; /* 0...12460 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-19675); /* invalid inputs might need reduction mod 12461 */ a1 -= 12461; a1 += crypto_int16_negative_mask(a1)&12461; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 40*[1786]+[78] */ R[40] = R[20]; for (i = 19;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-9394); a0 = mulhi(ri,-468)-mulhi(lo,1786); /* -1010...893 */ a0 += s0; /* -1010...1148 */ a0 += crypto_int16_negative_mask(a0)&1786; /* 0...1785 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-12843); /* invalid inputs might need reduction mod 1786 */ a1 -= 1786; a1 += crypto_int16_negative_mask(a1)&1786; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 81*[676]+[7510] */ ri = R[40]; s1 = *--s; s0 = *--s; lo = mullo(ri,-24818); a0 = mulhi(ri,248)-mulhi(lo,676); /* -338...400 */ a0 += s1; /* -338...655 */ lo = mullo(a0,-24818); a0 = mulhi(a0,248)-mulhi(lo,676); /* -340...340 */ a0 += s0; /* -340...595 */ a0 += crypto_int16_negative_mask(a0)&676; /* 0...675 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,-23655); /* invalid inputs might need reduction mod 7510 */ a1 -= 7510; a1 += crypto_int16_negative_mask(a1)&7510; R[80] = a0; R[81] = a1; for (i = 39;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-24818); a0 = mulhi(ri,248)-mulhi(lo,676); /* -338...400 */ a0 += s0; /* -338...655 */ a0 += crypto_int16_negative_mask(a0)&676; /* 0...675 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-23655); /* invalid inputs might need reduction mod 676 */ a1 -= 676; a1 += crypto_int16_negative_mask(a1)&676; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 163*[416]+[4621] */ ri = R[81]; s0 = *--s; lo = mullo(ri,25206); a0 = mulhi(ri,-64)-mulhi(lo,416); /* -224...208 */ a0 += s0; /* -224...463 */ a0 -= 416; /* -640..>47 */ a0 += crypto_int16_negative_mask(a0)&416; /* -224...415 */ a0 += crypto_int16_negative_mask(a0)&416; /* 0...415 */ a1 = (ri<<3)+((s0-a0)>>5); a1 = mullo(a1,20165); /* invalid inputs might need reduction mod 4621 */ a1 -= 4621; a1 += crypto_int16_negative_mask(a1)&4621; R[162] = a0; R[163] = a1; for (i = 80;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,25206); a0 = mulhi(ri,-64)-mulhi(lo,416); /* -224...208 */ a0 += s0; /* -224...463 */ a0 -= 416; /* -640..>47 */ a0 += crypto_int16_negative_mask(a0)&416; /* -224...415 */ a0 += crypto_int16_negative_mask(a0)&416; /* 0...415 */ a1 = (ri<<3)+((s0-a0)>>5); a1 = mullo(a1,20165); /* invalid inputs might need reduction mod 416 */ a1 -= 416; a1 += crypto_int16_negative_mask(a1)&416; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 326*[326]+[4621] */ R[326] = R[163]; for (i = 162;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,14072); a0 = mulhi(ri,-48)-mulhi(lo,326); /* -175...163 */ a0 += s0; /* -175...418 */ a0 -= 326; /* -501..>92 */ a0 += crypto_int16_negative_mask(a0)&326; /* -175...325 */ a0 += crypto_int16_negative_mask(a0)&326; /* 0...325 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-19701); /* invalid inputs might need reduction mod 326 */ a1 -= 326; a1 += crypto_int16_negative_mask(a1)&326; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 653*[4621] */ R[652] = R[326]-2310; for (i = 325;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3631); a0 = mulhi(ri,-1635)-mulhi(lo,4621); /* -2720...2310 */ a0 += s1; /* -2720...2565 */ lo = mullo(a0,-3631); a0 = mulhi(a0,-1635)-mulhi(lo,4621); /* -2375...2378 */ a0 += s0; /* -2375...2633 */ a0 += crypto_int16_negative_mask(a0)&4621; /* 0...4620 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-29499); /* invalid inputs might need reduction mod 4621 */ a1 -= 4621; a1 += crypto_int16_negative_mask(a1)&4621; R[2*i] = a0-2310; R[2*i+1] = a1-2310; } } libntruprime-20241021/crypto_decode/653x4621/int16/decodegen.py0000777000000000000000000000000014705505552031076 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/653xint16/0000755000000000000000000000000014705505545017405 5ustar rootrootlibntruprime-20241021/crypto_decode/653xint16/ref/0000755000000000000000000000000014705505545020161 5ustar rootrootlibntruprime-20241021/crypto_decode/653xint16/ref/api.h0000644000000000000000000000012114705505545021075 0ustar rootroot#define CRYPTO_STRBYTES 1306 #define CRYPTO_ITEMS 653 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/653xint16/ref/decode.c0000644000000000000000000000044214705505545021550 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < 653;++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/crypto_decode/653xint32/0000755000000000000000000000000014705505545017403 5ustar rootrootlibntruprime-20241021/crypto_decode/653xint32/ref/0000755000000000000000000000000014705505545020157 5ustar rootrootlibntruprime-20241021/crypto_decode/653xint32/ref/api.h0000644000000000000000000000012114705505545021073 0ustar rootroot#define CRYPTO_STRBYTES 2612 #define CRYPTO_ITEMS 653 #define CRYPTO_ITEMBYTES 4 libntruprime-20241021/crypto_decode/653xint32/ref/decode.c0000644000000000000000000000060414705505545021546 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < 653;++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/crypto_decode/761x1531/0000755000000000000000000000000014705505545017035 5ustar rootrootlibntruprime-20241021/crypto_decode/761x1531/avx/0000755000000000000000000000000014705505552017631 5ustar rootrootlibntruprime-20241021/crypto_decode/761x1531/avx/Makefile0000644000000000000000000000015214705505545021271 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 761 1531 1531 2295 True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/761x1531/avx/api.h0000644000000000000000000000012114705505545020547 0ustar rootroot#define CRYPTO_STRBYTES 1007 #define CRYPTO_ITEMS 761 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/761x1531/avx/architectures0000777000000000000000000000000014705505552031331 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/761x1531/avx/decode.c0000644000000000000000000003242214705505545021225 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[381],R2[191],R3[96],R4[48],R5[24],R6[12],R7[6],R8[3],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,-84)-mulhi(mullo(a1,-4828),3475); a1 += *--s; /* -1738...1992 */ a1 += 3475&crypto_int16_negative_mask(a1); /* 0...3474 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[593]+[1500] */ i = 0; s -= 1; a2 = a0 = R10[0]; a0 = mulhi(a0,60)-mulhi(mullo(a0,-28292),593); /* -297...311 */ a0 += s[1*i+0]; /* -297...566 */ a0 += 593&crypto_int16_negative_mask(a0); /* 0...592 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-31055); /* invalid inputs might need reduction mod 1500 */ a1 -= 1500; a1 += 1500&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 2*[6232]+[1500] */ R8[2] = R9[1]; s -= 2; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,672)-mulhi(mullo(a0,-2692),6232); /* -3116...3284 */ a0 += s[2*i+1]; /* -3116...3539 */ a0 = mulhi(a0,672)-mulhi(mullo(a0,-2692),6232); /* -3148...3152 */ a0 += s[2*i+0]; /* -3148...3407 */ a0 += 6232&crypto_int16_negative_mask(a0); /* 0...6231 */ a1 = (a2<<13)+(s[2*i+1]<<5)+((s[2*i]-a0)>>3); a1 = mullo(a1,12451); /* invalid inputs might need reduction mod 6232 */ a1 -= 6232; a1 += 6232&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 5*[1263]+[304] */ i = 0; s -= 1; a2 = a0 = R8[2]; a0 = mulhi(a0,-476)-mulhi(mullo(a0,-13284),1263); /* -751...631 */ a0 += s[1*i+0]; /* -751...886 */ a0 += 1263&crypto_int16_negative_mask(a0); /* 0...1262 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-22001); /* invalid inputs might need reduction mod 304 */ a1 -= 304; a1 += 304&crypto_int16_negative_mask(a1); R7[4] = a0; R7[5] = a1; s -= 2; for (i = 1;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,-476)-mulhi(mullo(a0,-13284),1263); /* -751...631 */ a0 += s[1*i+0]; /* -751...886 */ a0 += 1263&crypto_int16_negative_mask(a0); /* 0...1262 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-22001); /* invalid inputs might need reduction mod 1263 */ a1 -= 1263; a1 += 1263&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 11*[9097]+[2188] */ i = 0; s -= 2; a2 = a0 = R7[5]; a0 = mulhi(a0,2348)-mulhi(mullo(a0,-1844),9097); /* -4549...5135 */ a0 += s[2*i+1]; /* -4549...5390 */ a0 = mulhi(a0,2348)-mulhi(mullo(a0,-1844),9097); /* -4712...4741 */ a0 += s[2*i+0]; /* -4712...4996 */ a0 += 9097&crypto_int16_negative_mask(a0); /* 0...9096 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,17081); /* invalid inputs might need reduction mod 2188 */ a1 -= 2188; a1 += 2188&crypto_int16_negative_mask(a1); R6[10] = a0; R6[11] = a1; s -= 10; for (i = 4;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,2348)-mulhi(mullo(a0,-1844),9097); /* -4549...5135 */ a0 += s[2*i+1]; /* -4549...5390 */ a0 = mulhi(a0,2348)-mulhi(mullo(a0,-1844),9097); /* -4712...4741 */ a0 += s[2*i+0]; /* -4712...4996 */ a0 += 9097&crypto_int16_negative_mask(a0); /* 0...9096 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,17081); /* invalid inputs might need reduction mod 9097 */ a1 -= 9097; a1 += 9097&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 23*[1526]+[367] */ i = 0; s -= 1; a2 = a0 = R6[11]; a0 = mulhi(a0,372)-mulhi(mullo(a0,-10994),1526); /* -763...856 */ a0 += s[1*i+0]; /* -763...1111 */ a0 += 1526&crypto_int16_negative_mask(a0); /* 0...1525 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-18381); /* invalid inputs might need reduction mod 367 */ a1 -= 367; a1 += 367&crypto_int16_negative_mask(a1); R5[22] = a0; R5[23] = a1; s -= 11; for (i = 10;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,372)-mulhi(mullo(a0,-10994),1526); /* -763...856 */ a0 += s[1*i+0]; /* -763...1111 */ a0 += 1526&crypto_int16_negative_mask(a0); /* 0...1525 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-18381); /* invalid inputs might need reduction mod 1526 */ a1 -= 1526; a1 += 1526&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 47*[625]+[150] */ i = 0; s -= 1; a2 = a0 = R5[23]; a0 = mulhi(a0,-284)-mulhi(mullo(a0,-26844),625); /* -384...312 */ a0 += s[1*i+0]; /* -384...567 */ a0 += 625&crypto_int16_negative_mask(a0); /* 0...624 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,32401); /* invalid inputs might need reduction mod 150 */ a1 -= 150; a1 += 150&crypto_int16_negative_mask(a1); R4[46] = a0; R4[47] = a1; s -= 23; i = 7; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-284),mulhiconst(mulloconst(A0,-26844),625)); /* -384...312 */ A0 = add(A0,S0); /* -384...567 */ A0 = ifnegaddconst(A0,625); /* 0...624 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,32401); /* invalid inputs might need reduction mod 625 */ A1 = ifgesubconst(A1,625); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 95*[6400]+[1531] */ i = 0; s -= 2; a2 = a0 = R4[47]; a0 = mulhi(a0,2816)-mulhi(mullo(a0,-2621),6400); /* -3200...3904 */ a0 += s[2*i+1]; /* -3200...4159 */ a0 = mulhi(a0,2816)-mulhi(mullo(a0,-2621),6400); /* -3338...3378 */ a0 += s[2*i+0]; /* -3338...3633 */ a0 += 6400&crypto_int16_negative_mask(a0); /* 0...6399 */ a1 = (a2<<8)+s[2*i+1]+((s[2*i]-a0)>>8); a1 = mullo(a1,23593); /* invalid inputs might need reduction mod 1531 */ a1 -= 1531; a1 += 1531&crypto_int16_negative_mask(a1); R3[94] = a0; R3[95] = a1; s -= 94; i = 31; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,2816),mulhiconst(mulloconst(A0,-2621),6400)); /* -3200...3904 */ A0 = add(A0,S1); /* -3200...4159 */ A0 = sub(mulhiconst(A0,2816),mulhiconst(mulloconst(A0,-2621),6400)); /* -3338...3378 */ A0 = add(A0,S0); /* -3338...3633 */ A0 = ifnegaddconst(A0,6400); /* 0...6399 */ A1 = add(add(shiftleftconst(A2,8),S1),signedshiftrightconst(sub(S0,A0),8)); A1 = mulloconst(A1,23593); /* invalid inputs might need reduction mod 6400 */ A1 = ifgesubconst(A1,6400); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 190*[1280]+[1531] */ R2[190] = R3[95]; s -= 95; i = 79; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,256),mulhiconst(mulloconst(A0,-13107),1280)); /* -640...704 */ A0 = add(A0,S0); /* -640...959 */ A0 = ifnegaddconst(A0,1280); /* 0...1279 */ A1 = add(A2,signedshiftrightconst(sub(S0,A0),8)); A1 = mulloconst(A1,-13107); /* invalid inputs might need reduction mod 1280 */ A1 = ifgesubconst(A1,1280); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 380*[9157]+[1531] */ R1[380] = R2[190]; s -= 380; i = 174; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,1592),mulhiconst(mulloconst(A0,-1832),9157)); /* -4579...4976 */ A0 = add(A0,S1); /* -4579...5231 */ A0 = sub(mulhiconst(A0,1592),mulhiconst(mulloconst(A0,-1832),9157)); /* -4690...4705 */ A0 = add(A0,S0); /* -4690...4960 */ A0 = ifnegaddconst(A0,9157); /* 0...9156 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,25357); /* invalid inputs might need reduction mod 9157 */ A1 = ifgesubconst(A1,9157); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 761*[1531] */ R0[760] = 3*R1[380]-2295; s -= 380; i = 364; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,518),mulhiconst(mulloconst(A0,-10958),1531)); /* -766...895 */ A0 = add(A0,S0); /* -766...1150 */ A0 = ifnegaddconst(A0,1531); /* 0...1530 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,15667); /* invalid inputs might need reduction mod 1531 */ A1 = ifgesubconst(A1,1531); A0 = mulloconst(A0,3); A1 = mulloconst(A1,3); A0 = subconst(A0,2295); A1 = subconst(A1,2295); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/761x1531/avx/decodegen.py0000777000000000000000000000000014705505552030565 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/761x1531/int16/0000755000000000000000000000000014705505552017774 5ustar rootrootlibntruprime-20241021/crypto_decode/761x1531/int16/Makefile0000777000000000000000000000000014705505552024102 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/761x1531/int16/api.h0000777000000000000000000000000014705505552022646 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/761x1531/int16/decode.c0000644000000000000000000002020714705505545021366 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,-4828); a1 = mulhi(a1,-84)-mulhi(lo,3475); a1 += *--s; /* -1738...1992 */ a1 += crypto_int16_negative_mask(a1)&3475; /* 0...3474 */ R[0] = a1; /* reconstruct mod 1*[593]+[1500] */ ri = R[0]; s0 = *--s; lo = mullo(ri,-28292); a0 = mulhi(ri,60)-mulhi(lo,593); /* -297...311 */ a0 += s0; /* -297...566 */ a0 += crypto_int16_negative_mask(a0)&593; /* 0...592 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-31055); /* invalid inputs might need reduction mod 1500 */ a1 -= 1500; a1 += crypto_int16_negative_mask(a1)&1500; R[0] = a0; R[1] = a1; /* reconstruct mod 2*[6232]+[1500] */ R[2] = R[1]; for (i = 0;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2692); a0 = mulhi(ri,672)-mulhi(lo,6232); /* -3116...3284 */ a0 += s1; /* -3116...3539 */ lo = mullo(a0,-2692); a0 = mulhi(a0,672)-mulhi(lo,6232); /* -3148...3152 */ a0 += s0; /* -3148...3407 */ a0 += crypto_int16_negative_mask(a0)&6232; /* 0...6231 */ a1 = (ri<<13)+(s1<<5)+((s0-a0)>>3); a1 = mullo(a1,12451); /* invalid inputs might need reduction mod 6232 */ a1 -= 6232; a1 += crypto_int16_negative_mask(a1)&6232; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 5*[1263]+[304] */ ri = R[2]; s0 = *--s; lo = mullo(ri,-13284); a0 = mulhi(ri,-476)-mulhi(lo,1263); /* -751...631 */ a0 += s0; /* -751...886 */ a0 += crypto_int16_negative_mask(a0)&1263; /* 0...1262 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-22001); /* invalid inputs might need reduction mod 304 */ a1 -= 304; a1 += crypto_int16_negative_mask(a1)&304; R[4] = a0; R[5] = a1; for (i = 1;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-13284); a0 = mulhi(ri,-476)-mulhi(lo,1263); /* -751...631 */ a0 += s0; /* -751...886 */ a0 += crypto_int16_negative_mask(a0)&1263; /* 0...1262 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-22001); /* invalid inputs might need reduction mod 1263 */ a1 -= 1263; a1 += crypto_int16_negative_mask(a1)&1263; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 11*[9097]+[2188] */ ri = R[5]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1844); a0 = mulhi(ri,2348)-mulhi(lo,9097); /* -4549...5135 */ a0 += s1; /* -4549...5390 */ lo = mullo(a0,-1844); a0 = mulhi(a0,2348)-mulhi(lo,9097); /* -4712...4741 */ a0 += s0; /* -4712...4996 */ a0 += crypto_int16_negative_mask(a0)&9097; /* 0...9096 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,17081); /* invalid inputs might need reduction mod 2188 */ a1 -= 2188; a1 += crypto_int16_negative_mask(a1)&2188; R[10] = a0; R[11] = a1; for (i = 4;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1844); a0 = mulhi(ri,2348)-mulhi(lo,9097); /* -4549...5135 */ a0 += s1; /* -4549...5390 */ lo = mullo(a0,-1844); a0 = mulhi(a0,2348)-mulhi(lo,9097); /* -4712...4741 */ a0 += s0; /* -4712...4996 */ a0 += crypto_int16_negative_mask(a0)&9097; /* 0...9096 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,17081); /* invalid inputs might need reduction mod 9097 */ a1 -= 9097; a1 += crypto_int16_negative_mask(a1)&9097; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 23*[1526]+[367] */ ri = R[11]; s0 = *--s; lo = mullo(ri,-10994); a0 = mulhi(ri,372)-mulhi(lo,1526); /* -763...856 */ a0 += s0; /* -763...1111 */ a0 += crypto_int16_negative_mask(a0)&1526; /* 0...1525 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-18381); /* invalid inputs might need reduction mod 367 */ a1 -= 367; a1 += crypto_int16_negative_mask(a1)&367; R[22] = a0; R[23] = a1; for (i = 10;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10994); a0 = mulhi(ri,372)-mulhi(lo,1526); /* -763...856 */ a0 += s0; /* -763...1111 */ a0 += crypto_int16_negative_mask(a0)&1526; /* 0...1525 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-18381); /* invalid inputs might need reduction mod 1526 */ a1 -= 1526; a1 += crypto_int16_negative_mask(a1)&1526; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 47*[625]+[150] */ ri = R[23]; s0 = *--s; lo = mullo(ri,-26844); a0 = mulhi(ri,-284)-mulhi(lo,625); /* -384...312 */ a0 += s0; /* -384...567 */ a0 += crypto_int16_negative_mask(a0)&625; /* 0...624 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,32401); /* invalid inputs might need reduction mod 150 */ a1 -= 150; a1 += crypto_int16_negative_mask(a1)&150; R[46] = a0; R[47] = a1; for (i = 22;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-26844); a0 = mulhi(ri,-284)-mulhi(lo,625); /* -384...312 */ a0 += s0; /* -384...567 */ a0 += crypto_int16_negative_mask(a0)&625; /* 0...624 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,32401); /* invalid inputs might need reduction mod 625 */ a1 -= 625; a1 += crypto_int16_negative_mask(a1)&625; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 95*[6400]+[1531] */ ri = R[47]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2621); a0 = mulhi(ri,2816)-mulhi(lo,6400); /* -3200...3904 */ a0 += s1; /* -3200...4159 */ lo = mullo(a0,-2621); a0 = mulhi(a0,2816)-mulhi(lo,6400); /* -3338...3378 */ a0 += s0; /* -3338...3633 */ a0 += crypto_int16_negative_mask(a0)&6400; /* 0...6399 */ a1 = (ri<<8)+s1+((s0-a0)>>8); a1 = mullo(a1,23593); /* invalid inputs might need reduction mod 1531 */ a1 -= 1531; a1 += crypto_int16_negative_mask(a1)&1531; R[94] = a0; R[95] = a1; for (i = 46;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2621); a0 = mulhi(ri,2816)-mulhi(lo,6400); /* -3200...3904 */ a0 += s1; /* -3200...4159 */ lo = mullo(a0,-2621); a0 = mulhi(a0,2816)-mulhi(lo,6400); /* -3338...3378 */ a0 += s0; /* -3338...3633 */ a0 += crypto_int16_negative_mask(a0)&6400; /* 0...6399 */ a1 = (ri<<8)+s1+((s0-a0)>>8); a1 = mullo(a1,23593); /* invalid inputs might need reduction mod 6400 */ a1 -= 6400; a1 += crypto_int16_negative_mask(a1)&6400; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 190*[1280]+[1531] */ R[190] = R[95]; for (i = 94;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-13107); a0 = mulhi(ri,256)-mulhi(lo,1280); /* -640...704 */ a0 += s0; /* -640...959 */ a0 += crypto_int16_negative_mask(a0)&1280; /* 0...1279 */ a1 = ri+((s0-a0)>>8); a1 = mullo(a1,-13107); /* invalid inputs might need reduction mod 1280 */ a1 -= 1280; a1 += crypto_int16_negative_mask(a1)&1280; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 380*[9157]+[1531] */ R[380] = R[190]; for (i = 189;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1832); a0 = mulhi(ri,1592)-mulhi(lo,9157); /* -4579...4976 */ a0 += s1; /* -4579...5231 */ lo = mullo(a0,-1832); a0 = mulhi(a0,1592)-mulhi(lo,9157); /* -4690...4705 */ a0 += s0; /* -4690...4960 */ a0 += crypto_int16_negative_mask(a0)&9157; /* 0...9156 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,25357); /* invalid inputs might need reduction mod 9157 */ a1 -= 9157; a1 += crypto_int16_negative_mask(a1)&9157; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 761*[1531] */ R[760] = 3*R[380]-2295; for (i = 379;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10958); a0 = mulhi(ri,518)-mulhi(lo,1531); /* -766...895 */ a0 += s0; /* -766...1150 */ a0 += crypto_int16_negative_mask(a0)&1531; /* 0...1530 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,15667); /* invalid inputs might need reduction mod 1531 */ a1 -= 1531; a1 += crypto_int16_negative_mask(a1)&1531; R[2*i] = 3*a0-2295; R[2*i+1] = 3*a1-2295; } } libntruprime-20241021/crypto_decode/761x1531/int16/decodegen.py0000777000000000000000000000000014705505552031073 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/761x3/0000755000000000000000000000000014705505545016606 5ustar rootrootlibntruprime-20241021/crypto_decode/761x3/avx/0000755000000000000000000000000014705505552017402 5ustar rootrootlibntruprime-20241021/crypto_decode/761x3/avx/api.h0000644000000000000000000000012014705505545020317 0ustar rootroot#define CRYPTO_STRBYTES 191 #define CRYPTO_ITEMS 761 #define CRYPTO_ITEMBYTES 1 libntruprime-20241021/crypto_decode/761x3/avx/architectures0000777000000000000000000000000014705505552031102 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/761x3/avx/decode.c0000644000000000000000000000401214705505545020770 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 761 #define loops 6 #define overshoot 2 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/crypto_decode/761x3/ref/0000755000000000000000000000000014705505552017360 5ustar rootrootlibntruprime-20241021/crypto_decode/761x3/ref/api.h0000777000000000000000000000000014705505552022232 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/761x3/ref/decode.c0000644000000000000000000000064014705505545020751 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 761 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/crypto_decode/761x4591/0000755000000000000000000000000014705505545017046 5ustar rootrootlibntruprime-20241021/crypto_decode/761x4591/avx/0000755000000000000000000000000014705505552017642 5ustar rootrootlibntruprime-20241021/crypto_decode/761x4591/avx/Makefile0000644000000000000000000000013314705505545021301 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 761 4591 > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/761x4591/avx/api.h0000644000000000000000000000012114705505545020560 0ustar rootroot#define CRYPTO_STRBYTES 1158 #define CRYPTO_ITEMS 761 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/761x4591/avx/architectures0000777000000000000000000000000014705505552031342 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/761x4591/avx/decode.c0000644000000000000000000003262614705505545021244 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[381],R2[191],R3[96],R4[48],R5[24],R6[12],R7[6],R8[3],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,-656)-mulhi(mullo(a1,-10434),1608); a1 += *--s; /* -804...1056 */ a1 += 1608&crypto_int16_negative_mask(a1); /* 0...1607 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[9470]+[11127] */ i = 0; s -= 2; a2 = a0 = R10[0]; a0 = mulhi(a0,-3624)-mulhi(mullo(a0,-1772),9470); /* -5641...4735 */ a0 += s[2*i+1]; /* -5641...4990 */ a0 = mulhi(a0,-3624)-mulhi(mullo(a0,-1772),9470); /* -5011...5046 */ a0 += s[2*i+0]; /* -5011...5301 */ a0 += 9470&crypto_int16_negative_mask(a0); /* 0...9469 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-21121); /* invalid inputs might need reduction mod 11127 */ a1 -= 11127; a1 += 11127&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 2*[1557]+[11127] */ R8[2] = R9[1]; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,541)-mulhi(mullo(a0,-10775),1557); /* -779...913 */ a0 += s[1*i+0]; /* -779...1168 */ a0 += 1557&crypto_int16_negative_mask(a0); /* 0...1556 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-26307); /* invalid inputs might need reduction mod 1557 */ a1 -= 1557; a1 += 1557&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 5*[10101]+[282] */ i = 0; s -= 1; a2 = a0 = R8[2]; a0 = mulhi(a0,-545)-mulhi(mullo(a0,-1661),10101); /* -5187...5050 */ a0 += s[1*i+0]; /* -5187...5305 */ a0 += 10101&crypto_int16_negative_mask(a0); /* 0...10100 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,12509); /* invalid inputs might need reduction mod 282 */ a1 -= 282; a1 += 282&crypto_int16_negative_mask(a1); R7[4] = a0; R7[5] = a1; s -= 4; for (i = 1;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,-545)-mulhi(mullo(a0,-1661),10101); /* -5187...5050 */ a0 += s[2*i+1]; /* -5187...5305 */ a0 = mulhi(a0,-545)-mulhi(mullo(a0,-1661),10101); /* -5095...5093 */ a0 += s[2*i+0]; /* -5095...5348 */ a0 += 10101&crypto_int16_negative_mask(a0); /* 0...10100 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,12509); /* invalid inputs might need reduction mod 10101 */ a1 -= 10101; a1 += 10101&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 11*[1608]+[11468] */ i = 0; s -= 2; a2 = a0 = R7[5]; a0 = mulhi(a0,-656)-mulhi(mullo(a0,-10434),1608); /* -968...804 */ a0 += s[2*i+1]; /* -968...1059 */ a0 = mulhi(a0,-656)-mulhi(mullo(a0,-10434),1608); /* -815...813 */ a0 += s[2*i+0]; /* -815...1068 */ a0 += 1608&crypto_int16_negative_mask(a0); /* 0...1607 */ a1 = (a2<<13)+(s[2*i+1]<<5)+((s[2*i]-a0)>>3); a1 = mullo(a1,6521); /* invalid inputs might need reduction mod 11468 */ a1 -= 11468; a1 += 11468&crypto_int16_negative_mask(a1); R6[10] = a0; R6[11] = a1; s -= 5; for (i = 4;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,-656)-mulhi(mullo(a0,-10434),1608); /* -968...804 */ a0 += s[1*i+0]; /* -968...1059 */ a0 += 1608&crypto_int16_negative_mask(a0); /* 0...1607 */ a1 = (a2<<5)+((s[i]-a0)>>3); a1 = mullo(a1,6521); /* invalid inputs might need reduction mod 1608 */ a1 -= 1608; a1 += 1608&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 23*[10265]+[286] */ i = 0; s -= 1; a2 = a0 = R6[11]; a0 = mulhi(a0,4206)-mulhi(mullo(a0,-1634),10265); /* -5133...6184 */ a0 += s[1*i+0]; /* -5133...6439 */ a0 += 10265&crypto_int16_negative_mask(a0); /* 0...10264 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-19415); /* invalid inputs might need reduction mod 286 */ a1 -= 286; a1 += 286&crypto_int16_negative_mask(a1); R5[22] = a0; R5[23] = a1; s -= 22; for (i = 10;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,4206)-mulhi(mullo(a0,-1634),10265); /* -5133...6184 */ a0 += s[2*i+1]; /* -5133...6439 */ a0 = mulhi(a0,4206)-mulhi(mullo(a0,-1634),10265); /* -5462...5545 */ a0 += s[2*i+0]; /* -5462...5800 */ a0 += 10265&crypto_int16_negative_mask(a0); /* 0...10264 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-19415); /* invalid inputs might need reduction mod 10265 */ a1 -= 10265; a1 += 10265&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 47*[1621]+[11550] */ i = 0; s -= 2; a2 = a0 = R5[23]; a0 = mulhi(a0,-134)-mulhi(mullo(a0,-10350),1621); /* -844...810 */ a0 += s[2*i+1]; /* -844...1065 */ a0 = mulhi(a0,-134)-mulhi(mullo(a0,-10350),1621); /* -813...812 */ a0 += s[2*i+0]; /* -813...1067 */ a0 += 1621&crypto_int16_negative_mask(a0); /* 0...1620 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-14595); /* invalid inputs might need reduction mod 11550 */ a1 -= 11550; a1 += 11550&crypto_int16_negative_mask(a1); R4[46] = a0; R4[47] = a1; s -= 23; i = 7; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-134),mulhiconst(mulloconst(A0,-10350),1621)); /* -844...810 */ A0 = add(A0,S0); /* -844...1065 */ A0 = ifnegaddconst(A0,1621); /* 0...1620 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,-14595); /* invalid inputs might need reduction mod 1621 */ A1 = ifgesubconst(A1,1621); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 95*[644]+[4591] */ i = 0; s -= 1; a2 = a0 = R4[47]; a0 = mulhi(a0,-272)-mulhi(mullo(a0,-26052),644); /* -390...322 */ a0 += s[1*i+0]; /* -390...577 */ a0 += 644&crypto_int16_negative_mask(a0); /* 0...643 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-7327); /* invalid inputs might need reduction mod 4591 */ a1 -= 4591; a1 += 4591&crypto_int16_negative_mask(a1); R3[94] = a0; R3[95] = a1; s -= 47; i = 31; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-272),mulhiconst(mulloconst(A0,-26052),644)); /* -390...322 */ A0 = add(A0,S0); /* -390...577 */ A0 = ifnegaddconst(A0,644); /* 0...643 */ A1 = add(shiftleftconst(A2,6),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,-7327); /* invalid inputs might need reduction mod 644 */ A1 = ifgesubconst(A1,644); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 190*[406]+[4591] */ R2[190] = R3[95]; s -= 95; i = 79; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,78),mulhiconst(mulloconst(A0,24213),406)); /* -203...222 */ A0 = add(A0,S0); /* -203...477 */ A0 = subconst(A0,406); /* -609...71 */ A0 = ifnegaddconst(A0,406); /* -203...405 */ A0 = ifnegaddconst(A0,406); /* 0...405 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,25827); /* invalid inputs might need reduction mod 406 */ A1 = ifgesubconst(A1,406); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 380*[322]+[4591] */ R1[380] = R2[190]; s -= 190; i = 174; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,50),mulhiconst(mulloconst(A0,13433),322)); /* -161...173 */ A0 = add(A0,S0); /* -161...428 */ A0 = subconst(A0,322); /* -483...106 */ A0 = ifnegaddconst(A0,322); /* -161...321 */ A0 = ifnegaddconst(A0,322); /* 0...321 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-7327); /* invalid inputs might need reduction mod 322 */ A1 = ifgesubconst(A1,322); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 761*[4591] */ R0[760] = R1[380]-2295; s -= 760; i = 364; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,1702),mulhiconst(mulloconst(A0,-3654),4591)); /* -2296...2721 */ A0 = add(A0,S1); /* -2296...2976 */ A0 = sub(mulhiconst(A0,1702),mulhiconst(mulloconst(A0,-3654),4591)); /* -2356...2372 */ A0 = add(A0,S0); /* -2356...2627 */ A0 = ifnegaddconst(A0,4591); /* 0...4590 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,15631); /* invalid inputs might need reduction mod 4591 */ A1 = ifgesubconst(A1,4591); A0 = subconst(A0,2295); A1 = subconst(A1,2295); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/761x4591/avx/decodegen.py0000777000000000000000000000000014705505552030576 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/761x4591/int16/0000755000000000000000000000000014705505552020005 5ustar rootrootlibntruprime-20241021/crypto_decode/761x4591/int16/Makefile0000777000000000000000000000000014705505552024113 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/761x4591/int16/api.h0000777000000000000000000000000014705505552022657 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/761x4591/int16/decode.c0000644000000000000000000002054214705505545021401 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,-10434); a1 = mulhi(a1,-656)-mulhi(lo,1608); a1 += *--s; /* -804...1056 */ a1 += crypto_int16_negative_mask(a1)&1608; /* 0...1607 */ R[0] = a1; /* reconstruct mod 1*[9470]+[11127] */ ri = R[0]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1772); a0 = mulhi(ri,-3624)-mulhi(lo,9470); /* -5641...4735 */ a0 += s1; /* -5641...4990 */ lo = mullo(a0,-1772); a0 = mulhi(a0,-3624)-mulhi(lo,9470); /* -5011...5046 */ a0 += s0; /* -5011...5301 */ a0 += crypto_int16_negative_mask(a0)&9470; /* 0...9469 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-21121); /* invalid inputs might need reduction mod 11127 */ a1 -= 11127; a1 += crypto_int16_negative_mask(a1)&11127; R[0] = a0; R[1] = a1; /* reconstruct mod 2*[1557]+[11127] */ R[2] = R[1]; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10775); a0 = mulhi(ri,541)-mulhi(lo,1557); /* -779...913 */ a0 += s0; /* -779...1168 */ a0 += crypto_int16_negative_mask(a0)&1557; /* 0...1556 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-26307); /* invalid inputs might need reduction mod 1557 */ a1 -= 1557; a1 += crypto_int16_negative_mask(a1)&1557; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 5*[10101]+[282] */ ri = R[2]; s0 = *--s; lo = mullo(ri,-1661); a0 = mulhi(ri,-545)-mulhi(lo,10101); /* -5187...5050 */ a0 += s0; /* -5187...5305 */ a0 += crypto_int16_negative_mask(a0)&10101; /* 0...10100 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,12509); /* invalid inputs might need reduction mod 282 */ a1 -= 282; a1 += crypto_int16_negative_mask(a1)&282; R[4] = a0; R[5] = a1; for (i = 1;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1661); a0 = mulhi(ri,-545)-mulhi(lo,10101); /* -5187...5050 */ a0 += s1; /* -5187...5305 */ lo = mullo(a0,-1661); a0 = mulhi(a0,-545)-mulhi(lo,10101); /* -5095...5093 */ a0 += s0; /* -5095...5348 */ a0 += crypto_int16_negative_mask(a0)&10101; /* 0...10100 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,12509); /* invalid inputs might need reduction mod 10101 */ a1 -= 10101; a1 += crypto_int16_negative_mask(a1)&10101; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 11*[1608]+[11468] */ ri = R[5]; s1 = *--s; s0 = *--s; lo = mullo(ri,-10434); a0 = mulhi(ri,-656)-mulhi(lo,1608); /* -968...804 */ a0 += s1; /* -968...1059 */ lo = mullo(a0,-10434); a0 = mulhi(a0,-656)-mulhi(lo,1608); /* -815...813 */ a0 += s0; /* -815...1068 */ a0 += crypto_int16_negative_mask(a0)&1608; /* 0...1607 */ a1 = (ri<<13)+(s1<<5)+((s0-a0)>>3); a1 = mullo(a1,6521); /* invalid inputs might need reduction mod 11468 */ a1 -= 11468; a1 += crypto_int16_negative_mask(a1)&11468; R[10] = a0; R[11] = a1; for (i = 4;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10434); a0 = mulhi(ri,-656)-mulhi(lo,1608); /* -968...804 */ a0 += s0; /* -968...1059 */ a0 += crypto_int16_negative_mask(a0)&1608; /* 0...1607 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,6521); /* invalid inputs might need reduction mod 1608 */ a1 -= 1608; a1 += crypto_int16_negative_mask(a1)&1608; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 23*[10265]+[286] */ ri = R[11]; s0 = *--s; lo = mullo(ri,-1634); a0 = mulhi(ri,4206)-mulhi(lo,10265); /* -5133...6184 */ a0 += s0; /* -5133...6439 */ a0 += crypto_int16_negative_mask(a0)&10265; /* 0...10264 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-19415); /* invalid inputs might need reduction mod 286 */ a1 -= 286; a1 += crypto_int16_negative_mask(a1)&286; R[22] = a0; R[23] = a1; for (i = 10;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1634); a0 = mulhi(ri,4206)-mulhi(lo,10265); /* -5133...6184 */ a0 += s1; /* -5133...6439 */ lo = mullo(a0,-1634); a0 = mulhi(a0,4206)-mulhi(lo,10265); /* -5462...5545 */ a0 += s0; /* -5462...5800 */ a0 += crypto_int16_negative_mask(a0)&10265; /* 0...10264 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-19415); /* invalid inputs might need reduction mod 10265 */ a1 -= 10265; a1 += crypto_int16_negative_mask(a1)&10265; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 47*[1621]+[11550] */ ri = R[23]; s1 = *--s; s0 = *--s; lo = mullo(ri,-10350); a0 = mulhi(ri,-134)-mulhi(lo,1621); /* -844...810 */ a0 += s1; /* -844...1065 */ lo = mullo(a0,-10350); a0 = mulhi(a0,-134)-mulhi(lo,1621); /* -813...812 */ a0 += s0; /* -813...1067 */ a0 += crypto_int16_negative_mask(a0)&1621; /* 0...1620 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-14595); /* invalid inputs might need reduction mod 11550 */ a1 -= 11550; a1 += crypto_int16_negative_mask(a1)&11550; R[46] = a0; R[47] = a1; for (i = 22;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10350); a0 = mulhi(ri,-134)-mulhi(lo,1621); /* -844...810 */ a0 += s0; /* -844...1065 */ a0 += crypto_int16_negative_mask(a0)&1621; /* 0...1620 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-14595); /* invalid inputs might need reduction mod 1621 */ a1 -= 1621; a1 += crypto_int16_negative_mask(a1)&1621; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 95*[644]+[4591] */ ri = R[47]; s0 = *--s; lo = mullo(ri,-26052); a0 = mulhi(ri,-272)-mulhi(lo,644); /* -390...322 */ a0 += s0; /* -390...577 */ a0 += crypto_int16_negative_mask(a0)&644; /* 0...643 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-7327); /* invalid inputs might need reduction mod 4591 */ a1 -= 4591; a1 += crypto_int16_negative_mask(a1)&4591; R[94] = a0; R[95] = a1; for (i = 46;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-26052); a0 = mulhi(ri,-272)-mulhi(lo,644); /* -390...322 */ a0 += s0; /* -390...577 */ a0 += crypto_int16_negative_mask(a0)&644; /* 0...643 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-7327); /* invalid inputs might need reduction mod 644 */ a1 -= 644; a1 += crypto_int16_negative_mask(a1)&644; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 190*[406]+[4591] */ R[190] = R[95]; for (i = 94;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,24213); a0 = mulhi(ri,78)-mulhi(lo,406); /* -203...222 */ a0 += s0; /* -203...477 */ a0 -= 406; /* -609..>71 */ a0 += crypto_int16_negative_mask(a0)&406; /* -203...405 */ a0 += crypto_int16_negative_mask(a0)&406; /* 0...405 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,25827); /* invalid inputs might need reduction mod 406 */ a1 -= 406; a1 += crypto_int16_negative_mask(a1)&406; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 380*[322]+[4591] */ R[380] = R[190]; for (i = 189;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,13433); a0 = mulhi(ri,50)-mulhi(lo,322); /* -161...173 */ a0 += s0; /* -161...428 */ a0 -= 322; /* -483..>106 */ a0 += crypto_int16_negative_mask(a0)&322; /* -161...321 */ a0 += crypto_int16_negative_mask(a0)&322; /* 0...321 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-7327); /* invalid inputs might need reduction mod 322 */ a1 -= 322; a1 += crypto_int16_negative_mask(a1)&322; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 761*[4591] */ R[760] = R[380]-2295; for (i = 379;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3654); a0 = mulhi(ri,1702)-mulhi(lo,4591); /* -2296...2721 */ a0 += s1; /* -2296...2976 */ lo = mullo(a0,-3654); a0 = mulhi(a0,1702)-mulhi(lo,4591); /* -2356...2372 */ a0 += s0; /* -2356...2627 */ a0 += crypto_int16_negative_mask(a0)&4591; /* 0...4590 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,15631); /* invalid inputs might need reduction mod 4591 */ a1 -= 4591; a1 += crypto_int16_negative_mask(a1)&4591; R[2*i] = a0-2295; R[2*i+1] = a1-2295; } } libntruprime-20241021/crypto_decode/761x4591/int16/decodegen.py0000777000000000000000000000000014705505552031104 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/761xint16/0000755000000000000000000000000014705505545017405 5ustar rootrootlibntruprime-20241021/crypto_decode/761xint16/ref/0000755000000000000000000000000014705505546020162 5ustar rootrootlibntruprime-20241021/crypto_decode/761xint16/ref/api.h0000644000000000000000000000012114705505546021076 0ustar rootroot#define CRYPTO_STRBYTES 1522 #define CRYPTO_ITEMS 761 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/761xint16/ref/decode.c0000644000000000000000000000044214705505546021551 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < 761;++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/crypto_decode/761xint32/0000755000000000000000000000000014705505546017404 5ustar rootrootlibntruprime-20241021/crypto_decode/761xint32/ref/0000755000000000000000000000000014705505546020160 5ustar rootrootlibntruprime-20241021/crypto_decode/761xint32/ref/api.h0000644000000000000000000000012114705505546021074 0ustar rootroot#define CRYPTO_STRBYTES 3044 #define CRYPTO_ITEMS 761 #define CRYPTO_ITEMBYTES 4 libntruprime-20241021/crypto_decode/761xint32/ref/decode.c0000644000000000000000000000060414705505546021547 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < 761;++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/crypto_decode/857x1723/0000755000000000000000000000000014705505546017047 5ustar rootrootlibntruprime-20241021/crypto_decode/857x1723/avx/0000755000000000000000000000000014705505552017642 5ustar rootrootlibntruprime-20241021/crypto_decode/857x1723/avx/Makefile0000644000000000000000000000015214705505546021303 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 857 1723 1723 2583 True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/857x1723/avx/api.h0000644000000000000000000000012114705505546020561 0ustar rootroot#define CRYPTO_STRBYTES 1152 #define CRYPTO_ITEMS 857 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/857x1723/avx/architectures0000777000000000000000000000000014705505552031342 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/857x1723/avx/decode.c0000644000000000000000000003211314705505546021234 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[429],R2[215],R3[108],R4[54],R5[27],R6[14],R7[7],R8[4],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 -= 160; /* -160...95 */ a1 += 160&crypto_int16_negative_mask(a1); /* 0...159 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[743]+[14044] */ i = 0; s -= 2; a2 = a0 = R10[0]; a0 = mulhi(a0,276)-mulhi(mullo(a0,-22580),743); /* -372...440 */ a0 += s[2*i+1]; /* -372...695 */ a0 = mulhi(a0,276)-mulhi(mullo(a0,-22580),743); /* -374...374 */ a0 += s[2*i+0]; /* -374...629 */ a0 += 743&crypto_int16_negative_mask(a0); /* 0...742 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-3881); /* invalid inputs might need reduction mod 14044 */ a1 -= 14044; a1 += 14044&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 3*[436]+[8246] */ i = 0; s -= 1; a2 = a0 = R9[1]; a0 = mulhi(a0,-64)-mulhi(mullo(a0,27056),436); /* -234...218 */ a0 += s[1*i+0]; /* -234...473 */ a0 -= 436; /* -670..>37 */ a0 += 436&crypto_int16_negative_mask(a0); /* -234...435 */ a0 += 436&crypto_int16_negative_mask(a0); /* 0...435 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,2405); /* invalid inputs might need reduction mod 8246 */ a1 -= 8246; a1 += 8246&crypto_int16_negative_mask(a1); R8[2] = a0; R8[3] = a1; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,-64)-mulhi(mullo(a0,27056),436); /* -234...218 */ a0 += s[1*i+0]; /* -234...473 */ a0 -= 436; /* -670..>37 */ a0 += 436&crypto_int16_negative_mask(a0); /* -234...435 */ a0 += 436&crypto_int16_negative_mask(a0); /* 0...435 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,2405); /* invalid inputs might need reduction mod 436 */ a1 -= 436; a1 += 436&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 6*[334]+[8246] */ R7[6] = R8[3]; s -= 3; for (i = 2;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,62)-mulhi(mullo(a0,15305),334); /* -167...182 */ a0 += s[1*i+0]; /* -167...437 */ a0 -= 334; /* -501..>103 */ a0 += 334&crypto_int16_negative_mask(a0); /* -167...333 */ a0 += 334&crypto_int16_negative_mask(a0); /* 0...333 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-22761); /* invalid inputs might need reduction mod 334 */ a1 -= 334; a1 += 334&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 13*[292]+[7229] */ i = 0; s -= 1; a2 = a0 = R7[6]; a0 = mulhi(a0,64)-mulhi(mullo(a0,8080),292); /* -146...162 */ a0 += s[1*i+0]; /* -146...417 */ a0 -= 292; /* -438..>125 */ a0 += 292&crypto_int16_negative_mask(a0); /* -146...291 */ a0 += 292&crypto_int16_negative_mask(a0); /* 0...291 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-3591); /* invalid inputs might need reduction mod 7229 */ a1 -= 7229; a1 += 7229&crypto_int16_negative_mask(a1); R6[12] = a0; R6[13] = a1; s -= 6; for (i = 5;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,64)-mulhi(mullo(a0,8080),292); /* -146...162 */ a0 += s[1*i+0]; /* -146...417 */ a0 -= 292; /* -438..>125 */ a0 += 292&crypto_int16_negative_mask(a0); /* -146...291 */ a0 += 292&crypto_int16_negative_mask(a0); /* 0...291 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-3591); /* invalid inputs might need reduction mod 292 */ a1 -= 292; a1 += 292&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 26*[273]+[7229] */ R5[26] = R6[13]; s -= 13; for (i = 12;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,1)-mulhi(mullo(a0,4081),273); /* -137...136 */ a0 += s[1*i+0]; /* -137...391 */ a0 -= 273; /* -410..>118 */ a0 += 273&crypto_int16_negative_mask(a0); /* -137...272 */ a0 += 273&crypto_int16_negative_mask(a0); /* 0...272 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,4081); /* invalid inputs might need reduction mod 273 */ a1 -= 273; a1 += 273&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 53*[4225]+[438] */ i = 0; s -= 1; a2 = a0 = R5[26]; a0 = mulhi(a0,-259)-mulhi(mullo(a0,-3971),4225); /* -2178...2112 */ a0 += s[1*i+0]; /* -2178...2367 */ a0 += 4225&crypto_int16_negative_mask(a0); /* 0...4224 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,12161); /* invalid inputs might need reduction mod 438 */ a1 -= 438; a1 += 438&crypto_int16_negative_mask(a1); R4[52] = a0; R4[53] = a1; s -= 52; i = 10; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-259),mulhiconst(mulloconst(A0,-3971),4225)); /* -2178...2112 */ A0 = add(A0,S1); /* -2178...2367 */ A0 = sub(mulhiconst(A0,-259),mulhiconst(mulloconst(A0,-3971),4225)); /* -2122...2121 */ A0 = add(A0,S0); /* -2122...2376 */ A0 = ifnegaddconst(A0,4225); /* 0...4224 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,12161); /* invalid inputs might need reduction mod 4225 */ A1 = ifgesubconst(A1,4225); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 107*[65]+[1723] */ i = 0; s -= 1; a2 = a0 = R4[53]; a0 = mulhi(a0,1)-mulhi(mullo(a0,4033),65); /* -33...32 */ a0 += s[1*i+0]; /* -33...287 */ a0 = mulhi(a0,16)-mulhi(mullo(a0,-1008),65); /* -33...32 */ a0 += 65&crypto_int16_negative_mask(a0); /* 0...64 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,4033); /* invalid inputs might need reduction mod 1723 */ a1 -= 1723; a1 += 1723&crypto_int16_negative_mask(a1); R3[106] = a0; R3[107] = a1; s -= 0; i = 37; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); A0 = sub(mulhiconst(A0,16),mulhiconst(mulloconst(A0,-1008),65)); /* -33...36 */ A0 = ifnegaddconst(A0,65); /* 0...64 */ A1 = signedshiftrightconst(sub(A2,A0),0); A1 = mulloconst(A1,4033); /* invalid inputs might need reduction mod 65 */ A1 = ifgesubconst(A1,65); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 214*[2053]+[1723] */ R2[214] = R3[107]; s -= 214; i = 91; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,100),mulhiconst(mulloconst(A0,-8172),2053)); /* -1027...1051 */ A0 = add(A0,S1); /* -1027...1306 */ A0 = sub(mulhiconst(A0,100),mulhiconst(mulloconst(A0,-8172),2053)); /* -1029...1028 */ A0 = add(A0,S0); /* -1029...1283 */ A0 = ifnegaddconst(A0,2053); /* 0...2052 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-31539); /* invalid inputs might need reduction mod 2053 */ A1 = ifgesubconst(A1,2053); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 428*[11597]+[1723] */ R1[428] = R2[214]; s -= 428; i = 198; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-3643),mulhiconst(mulloconst(A0,-1447),11597)); /* -6710...5798 */ A0 = add(A0,S1); /* -6710...6053 */ A0 = sub(mulhiconst(A0,-3643),mulhiconst(mulloconst(A0,-1447),11597)); /* -6135...6171 */ A0 = add(A0,S0); /* -6135...6426 */ A0 = ifnegaddconst(A0,11597); /* 0...11596 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-11387); /* invalid inputs might need reduction mod 11597 */ A1 = ifgesubconst(A1,11597); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 857*[1723] */ R0[856] = 3*R1[428]-2583; s -= 428; i = 412; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,365),mulhiconst(mulloconst(A0,-9737),1723)); /* -862...952 */ A0 = add(A0,S0); /* -862...1207 */ A0 = ifnegaddconst(A0,1723); /* 0...1722 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,20083); /* invalid inputs might need reduction mod 1723 */ A1 = ifgesubconst(A1,1723); A0 = mulloconst(A0,3); A1 = mulloconst(A1,3); A0 = subconst(A0,2583); A1 = subconst(A1,2583); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/857x1723/avx/decodegen.py0000777000000000000000000000000014705505552030576 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/857x1723/int16/0000755000000000000000000000000014705505552020005 5ustar rootrootlibntruprime-20241021/crypto_decode/857x1723/int16/Makefile0000777000000000000000000000000014705505552024113 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/857x1723/int16/api.h0000777000000000000000000000000014705505552022657 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/857x1723/int16/decode.c0000644000000000000000000001772314705505546021411 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 -= 160; /* -160...95 */ a1 += crypto_int16_negative_mask(a1)&160; /* 0...159 */ R[0] = a1; /* reconstruct mod 1*[743]+[14044] */ ri = R[0]; s1 = *--s; s0 = *--s; lo = mullo(ri,-22580); a0 = mulhi(ri,276)-mulhi(lo,743); /* -372...440 */ a0 += s1; /* -372...695 */ lo = mullo(a0,-22580); a0 = mulhi(a0,276)-mulhi(lo,743); /* -374...374 */ a0 += s0; /* -374...629 */ a0 += crypto_int16_negative_mask(a0)&743; /* 0...742 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-3881); /* invalid inputs might need reduction mod 14044 */ a1 -= 14044; a1 += crypto_int16_negative_mask(a1)&14044; R[0] = a0; R[1] = a1; /* reconstruct mod 3*[436]+[8246] */ ri = R[1]; s0 = *--s; lo = mullo(ri,27056); a0 = mulhi(ri,-64)-mulhi(lo,436); /* -234...218 */ a0 += s0; /* -234...473 */ a0 -= 436; /* -670..>37 */ a0 += crypto_int16_negative_mask(a0)&436; /* -234...435 */ a0 += crypto_int16_negative_mask(a0)&436; /* 0...435 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,2405); /* invalid inputs might need reduction mod 8246 */ a1 -= 8246; a1 += crypto_int16_negative_mask(a1)&8246; R[2] = a0; R[3] = a1; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,27056); a0 = mulhi(ri,-64)-mulhi(lo,436); /* -234...218 */ a0 += s0; /* -234...473 */ a0 -= 436; /* -670..>37 */ a0 += crypto_int16_negative_mask(a0)&436; /* -234...435 */ a0 += crypto_int16_negative_mask(a0)&436; /* 0...435 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,2405); /* invalid inputs might need reduction mod 436 */ a1 -= 436; a1 += crypto_int16_negative_mask(a1)&436; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 6*[334]+[8246] */ R[6] = R[3]; for (i = 2;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,15305); a0 = mulhi(ri,62)-mulhi(lo,334); /* -167...182 */ a0 += s0; /* -167...437 */ a0 -= 334; /* -501..>103 */ a0 += crypto_int16_negative_mask(a0)&334; /* -167...333 */ a0 += crypto_int16_negative_mask(a0)&334; /* 0...333 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-22761); /* invalid inputs might need reduction mod 334 */ a1 -= 334; a1 += crypto_int16_negative_mask(a1)&334; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 13*[292]+[7229] */ ri = R[6]; s0 = *--s; lo = mullo(ri,8080); a0 = mulhi(ri,64)-mulhi(lo,292); /* -146...162 */ a0 += s0; /* -146...417 */ a0 -= 292; /* -438..>125 */ a0 += crypto_int16_negative_mask(a0)&292; /* -146...291 */ a0 += crypto_int16_negative_mask(a0)&292; /* 0...291 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-3591); /* invalid inputs might need reduction mod 7229 */ a1 -= 7229; a1 += crypto_int16_negative_mask(a1)&7229; R[12] = a0; R[13] = a1; for (i = 5;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,8080); a0 = mulhi(ri,64)-mulhi(lo,292); /* -146...162 */ a0 += s0; /* -146...417 */ a0 -= 292; /* -438..>125 */ a0 += crypto_int16_negative_mask(a0)&292; /* -146...291 */ a0 += crypto_int16_negative_mask(a0)&292; /* 0...291 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-3591); /* invalid inputs might need reduction mod 292 */ a1 -= 292; a1 += crypto_int16_negative_mask(a1)&292; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 26*[273]+[7229] */ R[26] = R[13]; for (i = 12;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,4081); a0 = mulhi(ri,1)-mulhi(lo,273); /* -137...136 */ a0 += s0; /* -137...391 */ a0 -= 273; /* -410..>118 */ a0 += crypto_int16_negative_mask(a0)&273; /* -137...272 */ a0 += crypto_int16_negative_mask(a0)&273; /* 0...272 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,4081); /* invalid inputs might need reduction mod 273 */ a1 -= 273; a1 += crypto_int16_negative_mask(a1)&273; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 53*[4225]+[438] */ ri = R[26]; s0 = *--s; lo = mullo(ri,-3971); a0 = mulhi(ri,-259)-mulhi(lo,4225); /* -2178...2112 */ a0 += s0; /* -2178...2367 */ a0 += crypto_int16_negative_mask(a0)&4225; /* 0...4224 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,12161); /* invalid inputs might need reduction mod 438 */ a1 -= 438; a1 += crypto_int16_negative_mask(a1)&438; R[52] = a0; R[53] = a1; for (i = 25;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3971); a0 = mulhi(ri,-259)-mulhi(lo,4225); /* -2178...2112 */ a0 += s1; /* -2178...2367 */ lo = mullo(a0,-3971); a0 = mulhi(a0,-259)-mulhi(lo,4225); /* -2122...2121 */ a0 += s0; /* -2122...2376 */ a0 += crypto_int16_negative_mask(a0)&4225; /* 0...4224 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,12161); /* invalid inputs might need reduction mod 4225 */ a1 -= 4225; a1 += crypto_int16_negative_mask(a1)&4225; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 107*[65]+[1723] */ ri = R[53]; s0 = *--s; lo = mullo(ri,4033); a0 = mulhi(ri,1)-mulhi(lo,65); /* -33...32 */ a0 += s0; /* -33...287 */ lo = mullo(a0,-1008); a0 = mulhi(a0,16)-mulhi(lo,65); /* -33...32 */ a0 += crypto_int16_negative_mask(a0)&65; /* 0...64 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,4033); /* invalid inputs might need reduction mod 1723 */ a1 -= 1723; a1 += crypto_int16_negative_mask(a1)&1723; R[106] = a0; R[107] = a1; for (i = 52;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-1008); a0 = mulhi(a0,16)-mulhi(lo,65); /* -33...36 */ a0 += crypto_int16_negative_mask(a0)&65; /* 0...64 */ a1 = (ri-a0)>>0; a1 = mullo(a1,4033); /* invalid inputs might need reduction mod 65 */ a1 -= 65; a1 += crypto_int16_negative_mask(a1)&65; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 214*[2053]+[1723] */ R[214] = R[107]; for (i = 106;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-8172); a0 = mulhi(ri,100)-mulhi(lo,2053); /* -1027...1051 */ a0 += s1; /* -1027...1306 */ lo = mullo(a0,-8172); a0 = mulhi(a0,100)-mulhi(lo,2053); /* -1029...1028 */ a0 += s0; /* -1029...1283 */ a0 += crypto_int16_negative_mask(a0)&2053; /* 0...2052 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-31539); /* invalid inputs might need reduction mod 2053 */ a1 -= 2053; a1 += crypto_int16_negative_mask(a1)&2053; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 428*[11597]+[1723] */ R[428] = R[214]; for (i = 213;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1447); a0 = mulhi(ri,-3643)-mulhi(lo,11597); /* -6710...5798 */ a0 += s1; /* -6710...6053 */ lo = mullo(a0,-1447); a0 = mulhi(a0,-3643)-mulhi(lo,11597); /* -6135...6171 */ a0 += s0; /* -6135...6426 */ a0 += crypto_int16_negative_mask(a0)&11597; /* 0...11596 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-11387); /* invalid inputs might need reduction mod 11597 */ a1 -= 11597; a1 += crypto_int16_negative_mask(a1)&11597; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 857*[1723] */ R[856] = 3*R[428]-2583; for (i = 427;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-9737); a0 = mulhi(ri,365)-mulhi(lo,1723); /* -862...952 */ a0 += s0; /* -862...1207 */ a0 += crypto_int16_negative_mask(a0)&1723; /* 0...1722 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,20083); /* invalid inputs might need reduction mod 1723 */ a1 -= 1723; a1 += crypto_int16_negative_mask(a1)&1723; R[2*i] = 3*a0-2583; R[2*i+1] = 3*a1-2583; } } libntruprime-20241021/crypto_decode/857x1723/int16/decodegen.py0000777000000000000000000000000014705505552031104 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/857x3/0000755000000000000000000000000014705505546016615 5ustar rootrootlibntruprime-20241021/crypto_decode/857x3/avx/0000755000000000000000000000000014705505552017410 5ustar rootrootlibntruprime-20241021/crypto_decode/857x3/avx/api.h0000644000000000000000000000012014705505546020326 0ustar rootroot#define CRYPTO_STRBYTES 215 #define CRYPTO_ITEMS 857 #define CRYPTO_ITEMBYTES 1 libntruprime-20241021/crypto_decode/857x3/avx/architectures0000777000000000000000000000000014705505552031110 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/857x3/avx/decode.c0000644000000000000000000000401314705505546021000 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 857 #define loops 7 #define overshoot 10 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/crypto_decode/857x3/ref/0000755000000000000000000000000014705505552017366 5ustar rootrootlibntruprime-20241021/crypto_decode/857x3/ref/api.h0000777000000000000000000000000014705505552022240 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/857x3/ref/decode.c0000644000000000000000000000064014705505546020760 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 857 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/crypto_decode/857x5167/0000755000000000000000000000000014705505546017055 5ustar rootrootlibntruprime-20241021/crypto_decode/857x5167/avx/0000755000000000000000000000000014705505552017650 5ustar rootrootlibntruprime-20241021/crypto_decode/857x5167/avx/Makefile0000644000000000000000000000013314705505546021310 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 857 5167 > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/857x5167/avx/api.h0000644000000000000000000000012114705505546020567 0ustar rootroot#define CRYPTO_STRBYTES 1322 #define CRYPTO_ITEMS 857 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/857x5167/avx/architectures0000777000000000000000000000000014705505552031350 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/857x5167/avx/decode.c0000644000000000000000000003210114705505546021237 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[429],R2[215],R3[108],R4[54],R5[27],R6[14],R7[7],R8[4],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,841)-mulhi(mullo(a1,-2695),6225); a1 += *--s; /* -3113...3370 */ a1 += 6225&crypto_int16_negative_mask(a1); /* 0...6224 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[5476]+[291] */ i = 0; s -= 1; a2 = a0 = R10[0]; a0 = mulhi(a0,-1248)-mulhi(mullo(a0,-3064),5476); /* -3050...2738 */ a0 += s[1*i+0]; /* -3050...2993 */ a0 += 5476&crypto_int16_negative_mask(a0); /* 0...5475 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-3351); /* invalid inputs might need reduction mod 291 */ a1 -= 291; a1 += 291&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 3*[74]+[1004] */ i = 0; s -= 1; a2 = a0 = R9[1]; a0 = mulhi(a0,10)-mulhi(mullo(a0,-30111),74); /* -37...39 */ a0 += s[1*i+0]; /* -37...294 */ a0 = mulhi(a0,-28)-mulhi(mullo(a0,-886),74); /* -38...37 */ a0 += 74&crypto_int16_negative_mask(a0); /* 0...73 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,7085); /* invalid inputs might need reduction mod 1004 */ a1 -= 1004; a1 += 1004&crypto_int16_negative_mask(a1); R8[2] = a0; R8[3] = a1; s -= 0; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,-28)-mulhi(mullo(a0,-886),74); /* -44...37 */ a0 += 74&crypto_int16_negative_mask(a0); /* 0...73 */ a1 = (a2-a0)>>1; a1 = mullo(a1,7085); /* invalid inputs might need reduction mod 74 */ a1 -= 74; a1 += 74&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 6*[2194]+[1004] */ R7[6] = R8[3]; s -= 6; for (i = 2;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,-302)-mulhi(mullo(a0,-7647),2194); /* -1173...1097 */ a0 += s[2*i+1]; /* -1173...1352 */ a0 = mulhi(a0,-302)-mulhi(mullo(a0,-7647),2194); /* -1104...1102 */ a0 += s[2*i+0]; /* -1104...1357 */ a0 += 2194&crypto_int16_negative_mask(a0); /* 0...2193 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,11769); /* invalid inputs might need reduction mod 2194 */ a1 -= 2194; a1 += 2194&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 13*[11991]+[5483] */ i = 0; s -= 2; a2 = a0 = R7[6]; a0 = mulhi(a0,1807)-mulhi(mullo(a0,-1399),11991); /* -5996...6447 */ a0 += s[2*i+1]; /* -5996...6702 */ a0 = mulhi(a0,1807)-mulhi(mullo(a0,-1399),11991); /* -6161...6180 */ a0 += s[2*i+0]; /* -6161...6435 */ a0 += 11991&crypto_int16_negative_mask(a0); /* 0...11990 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-23321); /* invalid inputs might need reduction mod 5483 */ a1 -= 5483; a1 += 5483&crypto_int16_negative_mask(a1); R6[12] = a0; R6[13] = a1; s -= 12; for (i = 5;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,1807)-mulhi(mullo(a0,-1399),11991); /* -5996...6447 */ a0 += s[2*i+1]; /* -5996...6702 */ a0 = mulhi(a0,1807)-mulhi(mullo(a0,-1399),11991); /* -6161...6180 */ a0 += s[2*i+0]; /* -6161...6435 */ a0 += 11991&crypto_int16_negative_mask(a0); /* 0...11990 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,-23321); /* invalid inputs might need reduction mod 11991 */ a1 -= 11991; a1 += 11991&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 26*[1752]+[5483] */ R5[26] = R6[13]; s -= 13; for (i = 12;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,64)-mulhi(mullo(a0,-9576),1752); /* -876...892 */ a0 += s[1*i+0]; /* -876...1147 */ a0 += 1752&crypto_int16_negative_mask(a0); /* 0...1751 */ a1 = (a2<<5)+((s[i]-a0)>>3); a1 = mullo(a1,-1197); /* invalid inputs might need reduction mod 1752 */ a1 -= 1752; a1 += 1752&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 53*[10713]+[131] */ i = 0; s -= 1; a2 = a0 = R5[26]; a0 = mulhi(a0,658)-mulhi(mullo(a0,-1566),10713); /* -5357...5521 */ a0 += s[1*i+0]; /* -5357...5776 */ a0 += 10713&crypto_int16_negative_mask(a0); /* 0...10712 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-14743); /* invalid inputs might need reduction mod 131 */ a1 -= 131; a1 += 131&crypto_int16_negative_mask(a1); R4[52] = a0; R4[53] = a1; s -= 52; i = 10; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,658),mulhiconst(mulloconst(A0,-1566),10713)); /* -5357...5521 */ A0 = add(A0,S1); /* -5357...5776 */ A0 = sub(mulhiconst(A0,658),mulhiconst(mulloconst(A0,-1566),10713)); /* -5411...5414 */ A0 = add(A0,S0); /* -5411...5669 */ A0 = ifnegaddconst(A0,10713); /* 0...10712 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-14743); /* invalid inputs might need reduction mod 10713 */ A1 = ifgesubconst(A1,10713); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 107*[1656]+[5167] */ i = 0; s -= 2; a2 = a0 = R4[53]; a0 = mulhi(a0,280)-mulhi(mullo(a0,-10131),1656); /* -828...898 */ a0 += s[2*i+1]; /* -828...1153 */ a0 = mulhi(a0,280)-mulhi(mullo(a0,-10131),1656); /* -832...832 */ a0 += s[2*i+0]; /* -832...1087 */ a0 += 1656&crypto_int16_negative_mask(a0); /* 0...1655 */ a1 = (a2<<13)+(s[2*i+1]<<5)+((s[2*i]-a0)>>3); a1 = mullo(a1,1583); /* invalid inputs might need reduction mod 5167 */ a1 -= 5167; a1 += 5167&crypto_int16_negative_mask(a1); R3[106] = a0; R3[107] = a1; s -= 53; i = 37; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,280),mulhiconst(mulloconst(A0,-10131),1656)); /* -828...898 */ A0 = add(A0,S0); /* -828...1153 */ A0 = ifnegaddconst(A0,1656); /* 0...1655 */ A1 = add(shiftleftconst(A2,5),signedshiftrightconst(sub(S0,A0),3)); A1 = mulloconst(A1,1583); /* invalid inputs might need reduction mod 1656 */ A1 = ifgesubconst(A1,1656); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 214*[651]+[5167] */ R2[214] = R3[107]; s -= 107; i = 91; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,295),mulhiconst(mulloconst(A0,-25771),651)); /* -326...399 */ A0 = add(A0,S0); /* -326...654 */ A0 = subconst(A0,651); /* -977...3 */ A0 = ifnegaddconst(A0,651); /* -326...650 */ A0 = ifnegaddconst(A0,651); /* 0...650 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,-10973); /* invalid inputs might need reduction mod 651 */ A1 = ifgesubconst(A1,651); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 428*[408]+[5167] */ R1[428] = R2[214]; s -= 214; i = 198; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-152),mulhiconst(mulloconst(A0,24415),408)); /* -242...204 */ A0 = add(A0,S0); /* -242...459 */ A0 = subconst(A0,408); /* -650...51 */ A0 = ifnegaddconst(A0,408); /* -242...407 */ A0 = ifnegaddconst(A0,408); /* 0...407 */ A1 = add(shiftleftconst(A2,5),signedshiftrightconst(sub(S0,A0),3)); A1 = mulloconst(A1,-1285); /* invalid inputs might need reduction mod 408 */ A1 = ifgesubconst(A1,408); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 857*[5167] */ R0[856] = R1[428]-2583; s -= 856; i = 412; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-33),mulhiconst(mulloconst(A0,-3247),5167)); /* -2592...2583 */ A0 = add(A0,S1); /* -2592...2838 */ A0 = sub(mulhiconst(A0,-33),mulhiconst(mulloconst(A0,-3247),5167)); /* -2585...2584 */ A0 = add(A0,S0); /* -2585...2839 */ A0 = ifnegaddconst(A0,5167); /* 0...5166 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-19761); /* invalid inputs might need reduction mod 5167 */ A1 = ifgesubconst(A1,5167); A0 = subconst(A0,2583); A1 = subconst(A1,2583); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/857x5167/avx/decodegen.py0000777000000000000000000000000014705505552030604 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/857x5167/int16/0000755000000000000000000000000014705505552020013 5ustar rootrootlibntruprime-20241021/crypto_decode/857x5167/int16/Makefile0000777000000000000000000000000014705505552024121 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/857x5167/int16/api.h0000777000000000000000000000000014705505552022665 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/857x5167/int16/decode.c0000644000000000000000000001777414705505546021425 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,-2695); a1 = mulhi(a1,841)-mulhi(lo,6225); a1 += *--s; /* -3113...3370 */ a1 += crypto_int16_negative_mask(a1)&6225; /* 0...6224 */ R[0] = a1; /* reconstruct mod 1*[5476]+[291] */ ri = R[0]; s0 = *--s; lo = mullo(ri,-3064); a0 = mulhi(ri,-1248)-mulhi(lo,5476); /* -3050...2738 */ a0 += s0; /* -3050...2993 */ a0 += crypto_int16_negative_mask(a0)&5476; /* 0...5475 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-3351); /* invalid inputs might need reduction mod 291 */ a1 -= 291; a1 += crypto_int16_negative_mask(a1)&291; R[0] = a0; R[1] = a1; /* reconstruct mod 3*[74]+[1004] */ ri = R[1]; s0 = *--s; lo = mullo(ri,-30111); a0 = mulhi(ri,10)-mulhi(lo,74); /* -37...39 */ a0 += s0; /* -37...294 */ lo = mullo(a0,-886); a0 = mulhi(a0,-28)-mulhi(lo,74); /* -38...37 */ a0 += crypto_int16_negative_mask(a0)&74; /* 0...73 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,7085); /* invalid inputs might need reduction mod 1004 */ a1 -= 1004; a1 += crypto_int16_negative_mask(a1)&1004; R[2] = a0; R[3] = a1; for (i = 0;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-886); a0 = mulhi(a0,-28)-mulhi(lo,74); /* -44...37 */ a0 += crypto_int16_negative_mask(a0)&74; /* 0...73 */ a1 = (ri-a0)>>1; a1 = mullo(a1,7085); /* invalid inputs might need reduction mod 74 */ a1 -= 74; a1 += crypto_int16_negative_mask(a1)&74; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 6*[2194]+[1004] */ R[6] = R[3]; for (i = 2;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-7647); a0 = mulhi(ri,-302)-mulhi(lo,2194); /* -1173...1097 */ a0 += s1; /* -1173...1352 */ lo = mullo(a0,-7647); a0 = mulhi(a0,-302)-mulhi(lo,2194); /* -1104...1102 */ a0 += s0; /* -1104...1357 */ a0 += crypto_int16_negative_mask(a0)&2194; /* 0...2193 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,11769); /* invalid inputs might need reduction mod 2194 */ a1 -= 2194; a1 += crypto_int16_negative_mask(a1)&2194; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 13*[11991]+[5483] */ ri = R[6]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1399); a0 = mulhi(ri,1807)-mulhi(lo,11991); /* -5996...6447 */ a0 += s1; /* -5996...6702 */ lo = mullo(a0,-1399); a0 = mulhi(a0,1807)-mulhi(lo,11991); /* -6161...6180 */ a0 += s0; /* -6161...6435 */ a0 += crypto_int16_negative_mask(a0)&11991; /* 0...11990 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-23321); /* invalid inputs might need reduction mod 5483 */ a1 -= 5483; a1 += crypto_int16_negative_mask(a1)&5483; R[12] = a0; R[13] = a1; for (i = 5;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1399); a0 = mulhi(ri,1807)-mulhi(lo,11991); /* -5996...6447 */ a0 += s1; /* -5996...6702 */ lo = mullo(a0,-1399); a0 = mulhi(a0,1807)-mulhi(lo,11991); /* -6161...6180 */ a0 += s0; /* -6161...6435 */ a0 += crypto_int16_negative_mask(a0)&11991; /* 0...11990 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-23321); /* invalid inputs might need reduction mod 11991 */ a1 -= 11991; a1 += crypto_int16_negative_mask(a1)&11991; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 26*[1752]+[5483] */ R[26] = R[13]; for (i = 12;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-9576); a0 = mulhi(ri,64)-mulhi(lo,1752); /* -876...892 */ a0 += s0; /* -876...1147 */ a0 += crypto_int16_negative_mask(a0)&1752; /* 0...1751 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,-1197); /* invalid inputs might need reduction mod 1752 */ a1 -= 1752; a1 += crypto_int16_negative_mask(a1)&1752; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 53*[10713]+[131] */ ri = R[26]; s0 = *--s; lo = mullo(ri,-1566); a0 = mulhi(ri,658)-mulhi(lo,10713); /* -5357...5521 */ a0 += s0; /* -5357...5776 */ a0 += crypto_int16_negative_mask(a0)&10713; /* 0...10712 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-14743); /* invalid inputs might need reduction mod 131 */ a1 -= 131; a1 += crypto_int16_negative_mask(a1)&131; R[52] = a0; R[53] = a1; for (i = 25;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1566); a0 = mulhi(ri,658)-mulhi(lo,10713); /* -5357...5521 */ a0 += s1; /* -5357...5776 */ lo = mullo(a0,-1566); a0 = mulhi(a0,658)-mulhi(lo,10713); /* -5411...5414 */ a0 += s0; /* -5411...5669 */ a0 += crypto_int16_negative_mask(a0)&10713; /* 0...10712 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-14743); /* invalid inputs might need reduction mod 10713 */ a1 -= 10713; a1 += crypto_int16_negative_mask(a1)&10713; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 107*[1656]+[5167] */ ri = R[53]; s1 = *--s; s0 = *--s; lo = mullo(ri,-10131); a0 = mulhi(ri,280)-mulhi(lo,1656); /* -828...898 */ a0 += s1; /* -828...1153 */ lo = mullo(a0,-10131); a0 = mulhi(a0,280)-mulhi(lo,1656); /* -832...832 */ a0 += s0; /* -832...1087 */ a0 += crypto_int16_negative_mask(a0)&1656; /* 0...1655 */ a1 = (ri<<13)+(s1<<5)+((s0-a0)>>3); a1 = mullo(a1,1583); /* invalid inputs might need reduction mod 5167 */ a1 -= 5167; a1 += crypto_int16_negative_mask(a1)&5167; R[106] = a0; R[107] = a1; for (i = 52;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-10131); a0 = mulhi(ri,280)-mulhi(lo,1656); /* -828...898 */ a0 += s0; /* -828...1153 */ a0 += crypto_int16_negative_mask(a0)&1656; /* 0...1655 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,1583); /* invalid inputs might need reduction mod 1656 */ a1 -= 1656; a1 += crypto_int16_negative_mask(a1)&1656; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 214*[651]+[5167] */ R[214] = R[107]; for (i = 106;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-25771); a0 = mulhi(ri,295)-mulhi(lo,651); /* -326...399 */ a0 += s0; /* -326...654 */ a0 -= 651; /* -977..>3 */ a0 += crypto_int16_negative_mask(a0)&651; /* -326...650 */ a0 += crypto_int16_negative_mask(a0)&651; /* 0...650 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-10973); /* invalid inputs might need reduction mod 651 */ a1 -= 651; a1 += crypto_int16_negative_mask(a1)&651; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 428*[408]+[5167] */ R[428] = R[214]; for (i = 213;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,24415); a0 = mulhi(ri,-152)-mulhi(lo,408); /* -242...204 */ a0 += s0; /* -242...459 */ a0 -= 408; /* -650..>51 */ a0 += crypto_int16_negative_mask(a0)&408; /* -242...407 */ a0 += crypto_int16_negative_mask(a0)&408; /* 0...407 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,-1285); /* invalid inputs might need reduction mod 408 */ a1 -= 408; a1 += crypto_int16_negative_mask(a1)&408; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 857*[5167] */ R[856] = R[428]-2583; for (i = 427;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3247); a0 = mulhi(ri,-33)-mulhi(lo,5167); /* -2592...2583 */ a0 += s1; /* -2592...2838 */ lo = mullo(a0,-3247); a0 = mulhi(a0,-33)-mulhi(lo,5167); /* -2585...2584 */ a0 += s0; /* -2585...2839 */ a0 += crypto_int16_negative_mask(a0)&5167; /* 0...5166 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-19761); /* invalid inputs might need reduction mod 5167 */ a1 -= 5167; a1 += crypto_int16_negative_mask(a1)&5167; R[2*i] = a0-2583; R[2*i+1] = a1-2583; } } libntruprime-20241021/crypto_decode/857x5167/int16/decodegen.py0000777000000000000000000000000014705505552031112 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/857xint16/0000755000000000000000000000000014705505546017414 5ustar rootrootlibntruprime-20241021/crypto_decode/857xint16/ref/0000755000000000000000000000000014705505546020170 5ustar rootrootlibntruprime-20241021/crypto_decode/857xint16/ref/api.h0000644000000000000000000000012114705505546021104 0ustar rootroot#define CRYPTO_STRBYTES 1714 #define CRYPTO_ITEMS 857 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/857xint16/ref/decode.c0000644000000000000000000000044214705505546021557 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < 857;++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/crypto_decode/857xint32/0000755000000000000000000000000014705505546017412 5ustar rootrootlibntruprime-20241021/crypto_decode/857xint32/ref/0000755000000000000000000000000014705505546020166 5ustar rootrootlibntruprime-20241021/crypto_decode/857xint32/ref/api.h0000644000000000000000000000012114705505546021102 0ustar rootroot#define CRYPTO_STRBYTES 3428 #define CRYPTO_ITEMS 857 #define CRYPTO_ITEMBYTES 4 libntruprime-20241021/crypto_decode/857xint32/ref/decode.c0000644000000000000000000000060414705505546021555 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < 857;++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/crypto_decode/953x2115/0000755000000000000000000000000014705505546017040 5ustar rootrootlibntruprime-20241021/crypto_decode/953x2115/avx/0000755000000000000000000000000014705505552017633 5ustar rootrootlibntruprime-20241021/crypto_decode/953x2115/avx/Makefile0000644000000000000000000000015214705505546021274 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 953 2115 2115 3171 True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/953x2115/avx/api.h0000644000000000000000000000012114705505546020552 0ustar rootroot#define CRYPTO_STRBYTES 1317 #define CRYPTO_ITEMS 953 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/953x2115/avx/architectures0000777000000000000000000000000014705505552031333 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/953x2115/avx/decode.c0000644000000000000000000003313714705505546021234 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[477],R2[239],R3[120],R4[60],R5[30],R6[15],R7[8],R8[4],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 -= 124; /* -124...131 */ a1 -= 124; /* -248...7 */ a1 += 124&crypto_int16_negative_mask(a1); /* -124...123 */ a1 += 124&crypto_int16_negative_mask(a1); /* 0...123 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[3846]+[2107] */ i = 0; s -= 2; a2 = a0 = R10[0]; a0 = mulhi(a0,964)-mulhi(mullo(a0,-4362),3846); /* -1923...2164 */ a0 += s[2*i+1]; /* -1923...2419 */ a0 = mulhi(a0,964)-mulhi(mullo(a0,-4362),3846); /* -1952...1958 */ a0 += s[2*i+0]; /* -1952...2213 */ a0 += 3846&crypto_int16_negative_mask(a0); /* 0...3845 */ a1 = (a2<<15)+(s[2*i+1]<<7)+((s[2*i]-a0)>>1); a1 = mullo(a1,-16597); /* invalid inputs might need reduction mod 2107 */ a1 -= 2107; a1 += 2107&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 3*[15876]+[8694] */ i = 0; s -= 2; a2 = a0 = R9[1]; a0 = mulhi(a0,-3716)-mulhi(mullo(a0,-1057),15876); /* -8867...7938 */ a0 += s[2*i+1]; /* -8867...8193 */ a0 = mulhi(a0,-3716)-mulhi(mullo(a0,-1057),15876); /* -8403...8440 */ a0 += s[2*i+0]; /* -8403...8695 */ a0 += 15876&crypto_int16_negative_mask(a0); /* 0...15875 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,12417); /* invalid inputs might need reduction mod 8694 */ a1 -= 8694; a1 += 8694&crypto_int16_negative_mask(a1); R8[2] = a0; R8[3] = a1; s -= 2; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,-3716)-mulhi(mullo(a0,-1057),15876); /* -8867...7938 */ a0 += s[2*i+1]; /* -8867...8193 */ a0 = mulhi(a0,-3716)-mulhi(mullo(a0,-1057),15876); /* -8403...8440 */ a0 += s[2*i+0]; /* -8403...8695 */ a0 += 15876&crypto_int16_negative_mask(a0); /* 0...15875 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,12417); /* invalid inputs might need reduction mod 15876 */ a1 -= 15876; a1 += 15876&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 7*[126]+[69] */ i = 0; s -= 0; a2 = a0 = R8[3]; a0 = mulhi(a0,16)-mulhi(mullo(a0,-520),126); /* -63...67 */ a0 += 126&crypto_int16_negative_mask(a0); /* 0...125 */ a1 = (a2-a0)>>1; a1 = mullo(a1,-4161); /* invalid inputs might need reduction mod 69 */ a1 -= 69; a1 += 69&crypto_int16_negative_mask(a1); R7[6] = a0; R7[7] = a1; s -= 0; for (i = 2;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,16)-mulhi(mullo(a0,-520),126); /* -63...67 */ a0 += 126&crypto_int16_negative_mask(a0); /* 0...125 */ a1 = (a2-a0)>>1; a1 = mullo(a1,-4161); /* invalid inputs might need reduction mod 126 */ a1 -= 126; a1 += 126&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 14*[2863]+[69] */ R6[14] = R7[7]; s -= 14; for (i = 6;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,36)-mulhi(mullo(a0,-5860),2863); /* -1432...1440 */ a0 += s[2*i+1]; /* -1432...1695 */ a0 = mulhi(a0,36)-mulhi(mullo(a0,-5860),2863); /* -1433...1432 */ a0 += s[2*i+0]; /* -1433...1687 */ a0 += 2863&crypto_int16_negative_mask(a0); /* 0...2862 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,7119); /* invalid inputs might need reduction mod 2863 */ a1 -= 2863; a1 += 2863&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 29*[856]+[5227] */ i = 0; s -= 2; a2 = a0 = R6[14]; a0 = mulhi(a0,-384)-mulhi(mullo(a0,-19600),856); /* -524...428 */ a0 += s[2*i+1]; /* -524...683 */ a0 = mulhi(a0,-384)-mulhi(mullo(a0,-19600),856); /* -433...431 */ a0 += s[2*i+0]; /* -433...686 */ a0 += 856&crypto_int16_negative_mask(a0); /* 0...855 */ a1 = (a2<<13)+(s[2*i+1]<<5)+((s[2*i]-a0)>>3); a1 = mullo(a1,-21437); /* invalid inputs might need reduction mod 5227 */ a1 -= 5227; a1 += 5227&crypto_int16_negative_mask(a1); R5[28] = a0; R5[29] = a1; s -= 14; for (i = 13;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,-384)-mulhi(mullo(a0,-19600),856); /* -524...428 */ a0 += s[1*i+0]; /* -524...683 */ a0 += 856&crypto_int16_negative_mask(a0); /* 0...855 */ a1 = (a2<<5)+((s[i]-a0)>>3); a1 = mullo(a1,-21437); /* invalid inputs might need reduction mod 856 */ a1 -= 856; a1 += 856&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 59*[468]+[2859] */ i = 0; s -= 1; a2 = a0 = R5[29]; a0 = mulhi(a0,-116)-mulhi(mullo(a0,29687),468); /* -263...234 */ a0 += s[1*i+0]; /* -263...489 */ a0 -= 468; /* -731..>21 */ a0 += 468&crypto_int16_negative_mask(a0); /* -263...467 */ a0 += 468&crypto_int16_negative_mask(a0); /* 0...467 */ a1 = (a2<<6)+((s[i]-a0)>>2); a1 = mullo(a1,-12323); /* invalid inputs might need reduction mod 2859 */ a1 -= 2859; a1 += 2859&crypto_int16_negative_mask(a1); R4[58] = a0; R4[59] = a1; s -= 29; i = 13; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-116),mulhiconst(mulloconst(A0,29687),468)); /* -263...234 */ A0 = add(A0,S0); /* -263...489 */ A0 = subconst(A0,468); /* -731...21 */ A0 = ifnegaddconst(A0,468); /* -263...467 */ A0 = ifnegaddconst(A0,468); /* 0...467 */ A1 = add(shiftleftconst(A2,6),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,-12323); /* invalid inputs might need reduction mod 468 */ A1 = ifgesubconst(A1,468); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 119*[346]+[2115] */ i = 0; s -= 1; a2 = a0 = R4[59]; a0 = mulhi(a0,22)-mulhi(mullo(a0,17047),346); /* -173...178 */ a0 += s[1*i+0]; /* -173...433 */ a0 -= 346; /* -519..>87 */ a0 += 346&crypto_int16_negative_mask(a0); /* -173...345 */ a0 += 346&crypto_int16_negative_mask(a0); /* 0...345 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,25381); /* invalid inputs might need reduction mod 2115 */ a1 -= 2115; a1 += 2115&crypto_int16_negative_mask(a1); R3[118] = a0; R3[119] = a1; s -= 59; i = 43; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,22),mulhiconst(mulloconst(A0,17047),346)); /* -173...178 */ A0 = add(A0,S0); /* -173...433 */ A0 = subconst(A0,346); /* -519...87 */ A0 = ifnegaddconst(A0,346); /* -173...345 */ A0 = ifnegaddconst(A0,346); /* 0...345 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,25381); /* invalid inputs might need reduction mod 346 */ A1 = ifgesubconst(A1,346); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 238*[4761]+[2115] */ R2[238] = R3[119]; s -= 238; i = 103; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-548),mulhiconst(mulloconst(A0,-3524),4761)); /* -2518...2380 */ A0 = add(A0,S1); /* -2518...2635 */ A0 = sub(mulhiconst(A0,-548),mulhiconst(mulloconst(A0,-3524),4761)); /* -2403...2401 */ A0 = add(A0,S0); /* -2403...2656 */ A0 = ifnegaddconst(A0,4761); /* 0...4760 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,8617); /* invalid inputs might need reduction mod 4761 */ A1 = ifgesubconst(A1,4761); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 476*[69]+[2115] */ R1[476] = R2[238]; s -= 0; i = 222; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); A0 = sub(mulhiconst(A0,-14),mulhiconst(mulloconst(A0,-950),69)); /* -38...34 */ A0 = ifnegaddconst(A0,69); /* 0...68 */ A1 = signedshiftrightconst(sub(A2,A0),0); A1 = mulloconst(A1,4749); /* invalid inputs might need reduction mod 69 */ A1 = ifgesubconst(A1,69); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 953*[2115] */ R0[952] = 3*R1[476]-3171; s -= 952; i = 460; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,1036),mulhiconst(mulloconst(A0,-7932),2115)); /* -1058...1316 */ A0 = add(A0,S1); /* -1058...1571 */ A0 = sub(mulhiconst(A0,1036),mulhiconst(mulloconst(A0,-7932),2115)); /* -1075...1082 */ A0 = add(A0,S0); /* -1075...1337 */ A0 = ifnegaddconst(A0,2115); /* 0...2114 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,-31637); /* invalid inputs might need reduction mod 2115 */ A1 = ifgesubconst(A1,2115); A0 = mulloconst(A0,3); A1 = mulloconst(A1,3); A0 = subconst(A0,3171); A1 = subconst(A1,3171); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/953x2115/avx/decodegen.py0000777000000000000000000000000014705505552030567 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/953x2115/int16/0000755000000000000000000000000014705505552017776 5ustar rootrootlibntruprime-20241021/crypto_decode/953x2115/int16/Makefile0000777000000000000000000000000014705505552024104 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/953x2115/int16/api.h0000777000000000000000000000000014705505552022650 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/953x2115/int16/decode.c0000644000000000000000000002103514705505546021371 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 -= 124; /* -124...131 */ a1 -= 124; /* -248...7 */ a1 += crypto_int16_negative_mask(a1)&124; /* -124...123 */ a1 += crypto_int16_negative_mask(a1)&124; /* 0...123 */ R[0] = a1; /* reconstruct mod 1*[3846]+[2107] */ ri = R[0]; s1 = *--s; s0 = *--s; lo = mullo(ri,-4362); a0 = mulhi(ri,964)-mulhi(lo,3846); /* -1923...2164 */ a0 += s1; /* -1923...2419 */ lo = mullo(a0,-4362); a0 = mulhi(a0,964)-mulhi(lo,3846); /* -1952...1958 */ a0 += s0; /* -1952...2213 */ a0 += crypto_int16_negative_mask(a0)&3846; /* 0...3845 */ a1 = (ri<<15)+(s1<<7)+((s0-a0)>>1); a1 = mullo(a1,-16597); /* invalid inputs might need reduction mod 2107 */ a1 -= 2107; a1 += crypto_int16_negative_mask(a1)&2107; R[0] = a0; R[1] = a1; /* reconstruct mod 3*[15876]+[8694] */ ri = R[1]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1057); a0 = mulhi(ri,-3716)-mulhi(lo,15876); /* -8867...7938 */ a0 += s1; /* -8867...8193 */ lo = mullo(a0,-1057); a0 = mulhi(a0,-3716)-mulhi(lo,15876); /* -8403...8440 */ a0 += s0; /* -8403...8695 */ a0 += crypto_int16_negative_mask(a0)&15876; /* 0...15875 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,12417); /* invalid inputs might need reduction mod 8694 */ a1 -= 8694; a1 += crypto_int16_negative_mask(a1)&8694; R[2] = a0; R[3] = a1; for (i = 0;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1057); a0 = mulhi(ri,-3716)-mulhi(lo,15876); /* -8867...7938 */ a0 += s1; /* -8867...8193 */ lo = mullo(a0,-1057); a0 = mulhi(a0,-3716)-mulhi(lo,15876); /* -8403...8440 */ a0 += s0; /* -8403...8695 */ a0 += crypto_int16_negative_mask(a0)&15876; /* 0...15875 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,12417); /* invalid inputs might need reduction mod 15876 */ a1 -= 15876; a1 += crypto_int16_negative_mask(a1)&15876; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 7*[126]+[69] */ ri = R[3]; a0 = ri; lo = mullo(a0,-520); a0 = mulhi(a0,16)-mulhi(lo,126); /* -63...67 */ a0 += crypto_int16_negative_mask(a0)&126; /* 0...125 */ a1 = (ri-a0)>>1; a1 = mullo(a1,-4161); /* invalid inputs might need reduction mod 69 */ a1 -= 69; a1 += crypto_int16_negative_mask(a1)&69; R[6] = a0; R[7] = a1; for (i = 2;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-520); a0 = mulhi(a0,16)-mulhi(lo,126); /* -63...67 */ a0 += crypto_int16_negative_mask(a0)&126; /* 0...125 */ a1 = (ri-a0)>>1; a1 = mullo(a1,-4161); /* invalid inputs might need reduction mod 126 */ a1 -= 126; a1 += crypto_int16_negative_mask(a1)&126; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 14*[2863]+[69] */ R[14] = R[7]; for (i = 6;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-5860); a0 = mulhi(ri,36)-mulhi(lo,2863); /* -1432...1440 */ a0 += s1; /* -1432...1695 */ lo = mullo(a0,-5860); a0 = mulhi(a0,36)-mulhi(lo,2863); /* -1433...1432 */ a0 += s0; /* -1433...1687 */ a0 += crypto_int16_negative_mask(a0)&2863; /* 0...2862 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,7119); /* invalid inputs might need reduction mod 2863 */ a1 -= 2863; a1 += crypto_int16_negative_mask(a1)&2863; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 29*[856]+[5227] */ ri = R[14]; s1 = *--s; s0 = *--s; lo = mullo(ri,-19600); a0 = mulhi(ri,-384)-mulhi(lo,856); /* -524...428 */ a0 += s1; /* -524...683 */ lo = mullo(a0,-19600); a0 = mulhi(a0,-384)-mulhi(lo,856); /* -433...431 */ a0 += s0; /* -433...686 */ a0 += crypto_int16_negative_mask(a0)&856; /* 0...855 */ a1 = (ri<<13)+(s1<<5)+((s0-a0)>>3); a1 = mullo(a1,-21437); /* invalid inputs might need reduction mod 5227 */ a1 -= 5227; a1 += crypto_int16_negative_mask(a1)&5227; R[28] = a0; R[29] = a1; for (i = 13;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-19600); a0 = mulhi(ri,-384)-mulhi(lo,856); /* -524...428 */ a0 += s0; /* -524...683 */ a0 += crypto_int16_negative_mask(a0)&856; /* 0...855 */ a1 = (ri<<5)+((s0-a0)>>3); a1 = mullo(a1,-21437); /* invalid inputs might need reduction mod 856 */ a1 -= 856; a1 += crypto_int16_negative_mask(a1)&856; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 59*[468]+[2859] */ ri = R[29]; s0 = *--s; lo = mullo(ri,29687); a0 = mulhi(ri,-116)-mulhi(lo,468); /* -263...234 */ a0 += s0; /* -263...489 */ a0 -= 468; /* -731..>21 */ a0 += crypto_int16_negative_mask(a0)&468; /* -263...467 */ a0 += crypto_int16_negative_mask(a0)&468; /* 0...467 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-12323); /* invalid inputs might need reduction mod 2859 */ a1 -= 2859; a1 += crypto_int16_negative_mask(a1)&2859; R[58] = a0; R[59] = a1; for (i = 28;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,29687); a0 = mulhi(ri,-116)-mulhi(lo,468); /* -263...234 */ a0 += s0; /* -263...489 */ a0 -= 468; /* -731..>21 */ a0 += crypto_int16_negative_mask(a0)&468; /* -263...467 */ a0 += crypto_int16_negative_mask(a0)&468; /* 0...467 */ a1 = (ri<<6)+((s0-a0)>>2); a1 = mullo(a1,-12323); /* invalid inputs might need reduction mod 468 */ a1 -= 468; a1 += crypto_int16_negative_mask(a1)&468; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 119*[346]+[2115] */ ri = R[59]; s0 = *--s; lo = mullo(ri,17047); a0 = mulhi(ri,22)-mulhi(lo,346); /* -173...178 */ a0 += s0; /* -173...433 */ a0 -= 346; /* -519..>87 */ a0 += crypto_int16_negative_mask(a0)&346; /* -173...345 */ a0 += crypto_int16_negative_mask(a0)&346; /* 0...345 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,25381); /* invalid inputs might need reduction mod 2115 */ a1 -= 2115; a1 += crypto_int16_negative_mask(a1)&2115; R[118] = a0; R[119] = a1; for (i = 58;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,17047); a0 = mulhi(ri,22)-mulhi(lo,346); /* -173...178 */ a0 += s0; /* -173...433 */ a0 -= 346; /* -519..>87 */ a0 += crypto_int16_negative_mask(a0)&346; /* -173...345 */ a0 += crypto_int16_negative_mask(a0)&346; /* 0...345 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,25381); /* invalid inputs might need reduction mod 346 */ a1 -= 346; a1 += crypto_int16_negative_mask(a1)&346; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 238*[4761]+[2115] */ R[238] = R[119]; for (i = 118;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3524); a0 = mulhi(ri,-548)-mulhi(lo,4761); /* -2518...2380 */ a0 += s1; /* -2518...2635 */ lo = mullo(a0,-3524); a0 = mulhi(a0,-548)-mulhi(lo,4761); /* -2403...2401 */ a0 += s0; /* -2403...2656 */ a0 += crypto_int16_negative_mask(a0)&4761; /* 0...4760 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,8617); /* invalid inputs might need reduction mod 4761 */ a1 -= 4761; a1 += crypto_int16_negative_mask(a1)&4761; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 476*[69]+[2115] */ R[476] = R[238]; for (i = 237;i >= 0;--i) { ri = R[i]; a0 = ri; lo = mullo(a0,-950); a0 = mulhi(a0,-14)-mulhi(lo,69); /* -38...34 */ a0 += crypto_int16_negative_mask(a0)&69; /* 0...68 */ a1 = (ri-a0)>>0; a1 = mullo(a1,4749); /* invalid inputs might need reduction mod 69 */ a1 -= 69; a1 += crypto_int16_negative_mask(a1)&69; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 953*[2115] */ R[952] = 3*R[476]-3171; for (i = 475;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-7932); a0 = mulhi(ri,1036)-mulhi(lo,2115); /* -1058...1316 */ a0 += s1; /* -1058...1571 */ lo = mullo(a0,-7932); a0 = mulhi(a0,1036)-mulhi(lo,2115); /* -1075...1082 */ a0 += s0; /* -1075...1337 */ a0 += crypto_int16_negative_mask(a0)&2115; /* 0...2114 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,-31637); /* invalid inputs might need reduction mod 2115 */ a1 -= 2115; a1 += crypto_int16_negative_mask(a1)&2115; R[2*i] = 3*a0-3171; R[2*i+1] = 3*a1-3171; } } libntruprime-20241021/crypto_decode/953x2115/int16/decodegen.py0000777000000000000000000000000014705505552031075 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/953x3/0000755000000000000000000000000014705505546016612 5ustar rootrootlibntruprime-20241021/crypto_decode/953x3/avx/0000755000000000000000000000000014705505552017405 5ustar rootrootlibntruprime-20241021/crypto_decode/953x3/avx/api.h0000644000000000000000000000012014705505546020323 0ustar rootroot#define CRYPTO_STRBYTES 239 #define CRYPTO_ITEMS 953 #define CRYPTO_ITEMBYTES 1 libntruprime-20241021/crypto_decode/953x3/avx/architectures0000777000000000000000000000000014705505552031105 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/953x3/avx/decode.c0000644000000000000000000000401314705505546020775 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 953 #define loops 8 #define overshoot 18 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/crypto_decode/953x3/ref/0000755000000000000000000000000014705505552017363 5ustar rootrootlibntruprime-20241021/crypto_decode/953x3/ref/api.h0000777000000000000000000000000014705505552022235 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/953x3/ref/decode.c0000644000000000000000000000064014705505546020755 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 953 void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/crypto_decode/953x6343/0000755000000000000000000000000014705505546017047 5ustar rootrootlibntruprime-20241021/crypto_decode/953x6343/avx/0000755000000000000000000000000014705505552017642 5ustar rootrootlibntruprime-20241021/crypto_decode/953x6343/avx/Makefile0000644000000000000000000000013314705505546021302 0ustar rootrootdecode.c: decodegen.py ./decodegen.py 953 6343 > decode.c touch -r decodegen.py decode.c libntruprime-20241021/crypto_decode/953x6343/avx/api.h0000644000000000000000000000012114705505546020561 0ustar rootroot#define CRYPTO_STRBYTES 1505 #define CRYPTO_ITEMS 953 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/953x6343/avx/architectures0000777000000000000000000000000014705505552031342 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_decode/953x6343/avx/decode.c0000644000000000000000000003272414705505546021244 0ustar rootroot/* auto-generated; do not edit */ /* 20240812 djb: more cryptoint usage */ #include #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } void crypto_decode(void *v,const unsigned char *s) { int16 *R0 = v; int16 R1[477],R2[239],R3[120],R4[60],R5[30],R6[15],R7[8],R8[4],R9[2],R10[1]; long long i; int16 a0,a1,a2; __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ a1 = mulhi(a1,-272)-mulhi(mullo(a1,-1336),12558); a1 += *--s; /* -6279...6532 */ a1 += 12558&crypto_int16_negative_mask(a1); /* 0...12557 */ R10[0] = a1; /* R10 ------> R9: reconstruct mod 1*[2383]+[1349] */ i = 0; s -= 1; a2 = a0 = R10[0]; a0 = mulhi(a0,896)-mulhi(mullo(a0,-7040),2383); /* -1192...1415 */ a0 += s[1*i+0]; /* -1192...1670 */ a0 += 2383&crypto_int16_negative_mask(a0); /* 0...2382 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,28079); /* invalid inputs might need reduction mod 1349 */ a1 -= 1349; a1 += 1349&crypto_int16_negative_mask(a1); R9[0] = a0; R9[1] = a1; s -= 0; /* R9 ------> R8: reconstruct mod 3*[781]+[442] */ i = 0; s -= 1; a2 = a0 = R9[1]; a0 = mulhi(a0,-226)-mulhi(mullo(a0,-21482),781); /* -447...390 */ a0 += s[1*i+0]; /* -447...645 */ a0 += 781&crypto_int16_negative_mask(a0); /* 0...780 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-31803); /* invalid inputs might need reduction mod 442 */ a1 -= 442; a1 += 442&crypto_int16_negative_mask(a1); R8[2] = a0; R8[3] = a1; s -= 1; for (i = 0;i >= 0;--i) { a2 = a0 = R9[i]; a0 = mulhi(a0,-226)-mulhi(mullo(a0,-21482),781); /* -447...390 */ a0 += s[1*i+0]; /* -447...645 */ a0 += 781&crypto_int16_negative_mask(a0); /* 0...780 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-31803); /* invalid inputs might need reduction mod 781 */ a1 -= 781; a1 += 781&crypto_int16_negative_mask(a1); R8[2*i] = a0; R8[2*i+1] = a1; } /* R8 ------> R7: reconstruct mod 7*[447]+[253] */ i = 0; s -= 1; a2 = a0 = R8[3]; a0 = mulhi(a0,-35)-mulhi(mullo(a0,28003),447); /* -233...223 */ a0 += s[1*i+0]; /* -233...478 */ a0 -= 447; /* -680..>31 */ a0 += 447&crypto_int16_negative_mask(a0); /* -233...446 */ a0 += 447&crypto_int16_negative_mask(a0); /* 0...446 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-4545); /* invalid inputs might need reduction mod 253 */ a1 -= 253; a1 += 253&crypto_int16_negative_mask(a1); R7[6] = a0; R7[7] = a1; s -= 3; for (i = 2;i >= 0;--i) { a2 = a0 = R8[i]; a0 = mulhi(a0,-35)-mulhi(mullo(a0,28003),447); /* -233...223 */ a0 += s[1*i+0]; /* -233...478 */ a0 -= 447; /* -680..>31 */ a0 += 447&crypto_int16_negative_mask(a0); /* -233...446 */ a0 += 447&crypto_int16_negative_mask(a0); /* 0...446 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,-4545); /* invalid inputs might need reduction mod 447 */ a1 -= 447; a1 += 447&crypto_int16_negative_mask(a1); R7[2*i] = a0; R7[2*i+1] = a1; } /* R7 ------> R6: reconstruct mod 14*[338]+[253] */ R6[14] = R7[7]; s -= 7; for (i = 6;i >= 0;--i) { a2 = a0 = R7[i]; a0 = mulhi(a0,-90)-mulhi(mullo(a0,15899),338); /* -192...169 */ a0 += s[1*i+0]; /* -192...424 */ a0 -= 338; /* -530..>86 */ a0 += 338&crypto_int16_negative_mask(a0); /* -192...337 */ a0 += 338&crypto_int16_negative_mask(a0); /* 0...337 */ a1 = (a2<<7)+((s[i]-a0)>>1); a1 = mullo(a1,-23655); /* invalid inputs might need reduction mod 338 */ a1 -= 338; a1 += 338&crypto_int16_negative_mask(a1); R6[2*i] = a0; R6[2*i+1] = a1; } /* R6 ------> R5: reconstruct mod 29*[4701]+[3519] */ i = 0; s -= 2; a2 = a0 = R6[14]; a0 = mulhi(a0,-653)-mulhi(mullo(a0,-3569),4701); /* -2514...2350 */ a0 += s[2*i+1]; /* -2514...2605 */ a0 = mulhi(a0,-653)-mulhi(mullo(a0,-3569),4701); /* -2377...2375 */ a0 += s[2*i+0]; /* -2377...2630 */ a0 += 4701&crypto_int16_negative_mask(a0); /* 0...4700 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,20981); /* invalid inputs might need reduction mod 3519 */ a1 -= 3519; a1 += 3519&crypto_int16_negative_mask(a1); R5[28] = a0; R5[29] = a1; s -= 28; for (i = 13;i >= 0;--i) { a2 = a0 = R6[i]; a0 = mulhi(a0,-653)-mulhi(mullo(a0,-3569),4701); /* -2514...2350 */ a0 += s[2*i+1]; /* -2514...2605 */ a0 = mulhi(a0,-653)-mulhi(mullo(a0,-3569),4701); /* -2377...2375 */ a0 += s[2*i+0]; /* -2377...2630 */ a0 += 4701&crypto_int16_negative_mask(a0); /* 0...4700 */ a1 = (s[2*i+1]<<8)+s[2*i]-a0; a1 = mullo(a1,20981); /* invalid inputs might need reduction mod 4701 */ a1 -= 4701; a1 += 4701&crypto_int16_negative_mask(a1); R5[2*i] = a0; R5[2*i+1] = a1; } /* R5 ------> R4: reconstruct mod 59*[1097]+[821] */ i = 0; s -= 1; a2 = a0 = R5[29]; a0 = mulhi(a0,-302)-mulhi(mullo(a0,-15294),1097); /* -624...548 */ a0 += s[1*i+0]; /* -624...803 */ a0 += 1097&crypto_int16_negative_mask(a0); /* 0...1096 */ a1 = (a2<<8)+s[i]-a0; a1 = mullo(a1,11769); /* invalid inputs might need reduction mod 821 */ a1 -= 821; a1 += 821&crypto_int16_negative_mask(a1); R4[58] = a0; R4[59] = a1; s -= 29; i = 13; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R5[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-302),mulhiconst(mulloconst(A0,-15294),1097)); /* -624...548 */ A0 = add(A0,S0); /* -624...803 */ A0 = ifnegaddconst(A0,1097); /* 0...1096 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,11769); /* invalid inputs might need reduction mod 1097 */ A1 = ifgesubconst(A1,1097); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R4[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R4[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R4 ------> R3: reconstruct mod 119*[8476]+[6343] */ i = 0; s -= 2; a2 = a0 = R4[59]; a0 = mulhi(a0,3212)-mulhi(mullo(a0,-1979),8476); /* -4238...5041 */ a0 += s[2*i+1]; /* -4238...5296 */ a0 = mulhi(a0,3212)-mulhi(mullo(a0,-1979),8476); /* -4446...4497 */ a0 += s[2*i+0]; /* -4446...4752 */ a0 += 8476&crypto_int16_negative_mask(a0); /* 0...8475 */ a1 = (a2<<14)+(s[2*i+1]<<6)+((s[2*i]-a0)>>2); a1 = mullo(a1,8567); /* invalid inputs might need reduction mod 6343 */ a1 -= 6343; a1 += 6343&crypto_int16_negative_mask(a1); R3[118] = a0; R3[119] = a1; s -= 118; i = 43; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R4[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,3212),mulhiconst(mulloconst(A0,-1979),8476)); /* -4238...5041 */ A0 = add(A0,S1); /* -4238...5296 */ A0 = sub(mulhiconst(A0,3212),mulhiconst(mulloconst(A0,-1979),8476)); /* -4446...4497 */ A0 = add(A0,S0); /* -4446...4752 */ A0 = ifnegaddconst(A0,8476); /* 0...8475 */ A1 = add(add(shiftleftconst(A2,14),shiftleftconst(S1,6)),signedshiftrightconst(sub(S0,A0),2)); A1 = mulloconst(A1,8567); /* invalid inputs might need reduction mod 8476 */ A1 = ifgesubconst(A1,8476); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R3[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R3[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R3 ------> R2: reconstruct mod 238*[1473]+[6343] */ R2[238] = R3[119]; s -= 119; i = 103; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R3[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,-254),mulhiconst(mulloconst(A0,-11390),1473)); /* -800...736 */ A0 = add(A0,S0); /* -800...991 */ A0 = ifnegaddconst(A0,1473); /* 0...1472 */ A1 = add(shiftleftconst(A2,8),sub(S0,A0)); A1 = mulloconst(A1,2625); /* invalid inputs might need reduction mod 1473 */ A1 = ifgesubconst(A1,1473); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R2[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R2[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R2 ------> R1: reconstruct mod 476*[614]+[6343] */ R1[476] = R2[238]; s -= 238; i = 222; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R2[i]); S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i))); A0 = sub(mulhiconst(A0,280),mulhiconst(mulloconst(A0,-27324),614)); /* -307...377 */ A0 = add(A0,S0); /* -307...632 */ A0 = subconst(A0,614); /* -921...18 */ A0 = ifnegaddconst(A0,614); /* -307...613 */ A0 = ifnegaddconst(A0,614); /* 0...613 */ A1 = add(shiftleftconst(A2,7),signedshiftrightconst(sub(S0,A0),1)); A1 = mulloconst(A1,-7685); /* invalid inputs might need reduction mod 614 */ A1 = ifgesubconst(A1,614); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R1[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R1[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } /* R1 ------> R0: reconstruct mod 953*[6343] */ R0[952] = R1[476]-3171; s -= 952; i = 460; for (;;) { A2 = A0 = _mm256_loadu_si256((__m256i *) &R1[i]); S0 = _mm256_loadu_si256((__m256i *) (s+2*i)); S1 = _mm256_srli_epi16(S0,8); S0 &= _mm256_set1_epi16(255); A0 = sub(mulhiconst(A0,-19),mulhiconst(mulloconst(A0,-2645),6343)); /* -3177...3171 */ A0 = add(A0,S1); /* -3177...3426 */ A0 = sub(mulhiconst(A0,-19),mulhiconst(mulloconst(A0,-2645),6343)); /* -3173...3172 */ A0 = add(A0,S0); /* -3173...3427 */ A0 = ifnegaddconst(A0,6343); /* 0...6342 */ A1 = add(shiftleftconst(S1,8),sub(S0,A0)); A1 = mulloconst(A1,10487); /* invalid inputs might need reduction mod 6343 */ A1 = ifgesubconst(A1,6343); A0 = subconst(A0,3171); A1 = subconst(A1,3171); /* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */ /* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */ B0 = _mm256_unpacklo_epi16(A0,A1); B1 = _mm256_unpackhi_epi16(A0,A1); /* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */ /* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */ C0 = _mm256_permute2x128_si256(B0,B1,0x20); C1 = _mm256_permute2x128_si256(B0,B1,0x31); /* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */ /* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */ _mm256_storeu_si256((__m256i *) (&R0[2*i]),C0); _mm256_storeu_si256((__m256i *) (16+&R0[2*i]),C1); if (!i) break; i = -16-((~15)&-i); } } libntruprime-20241021/crypto_decode/953x6343/avx/decodegen.py0000777000000000000000000000000014705505552030576 2../../../src/decode/PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/953x6343/int16/0000755000000000000000000000000014705505552020005 5ustar rootrootlibntruprime-20241021/crypto_decode/953x6343/int16/Makefile0000777000000000000000000000000014705505552024113 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_decode/953x6343/int16/api.h0000777000000000000000000000000014705505552022657 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_decode/953x6343/int16/decode.c0000644000000000000000000002052214705505546021400 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_decode.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int16 crypto_int16 #define int32 crypto_int32 static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } void crypto_decode(void *v,const unsigned char *s) { int16 *R = v; long long i; int16 a0,a1,ri,lo,s0,s1; s += crypto_decode_STRBYTES; a1 = 0; a1 += *--s; /* 0...255 */ lo = mullo(a1,-1336); a1 = mulhi(a1,-272)-mulhi(lo,12558); a1 += *--s; /* -6279...6532 */ a1 += crypto_int16_negative_mask(a1)&12558; /* 0...12557 */ R[0] = a1; /* reconstruct mod 1*[2383]+[1349] */ ri = R[0]; s0 = *--s; lo = mullo(ri,-7040); a0 = mulhi(ri,896)-mulhi(lo,2383); /* -1192...1415 */ a0 += s0; /* -1192...1670 */ a0 += crypto_int16_negative_mask(a0)&2383; /* 0...2382 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,28079); /* invalid inputs might need reduction mod 1349 */ a1 -= 1349; a1 += crypto_int16_negative_mask(a1)&1349; R[0] = a0; R[1] = a1; /* reconstruct mod 3*[781]+[442] */ ri = R[1]; s0 = *--s; lo = mullo(ri,-21482); a0 = mulhi(ri,-226)-mulhi(lo,781); /* -447...390 */ a0 += s0; /* -447...645 */ a0 += crypto_int16_negative_mask(a0)&781; /* 0...780 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-31803); /* invalid inputs might need reduction mod 442 */ a1 -= 442; a1 += crypto_int16_negative_mask(a1)&442; R[2] = a0; R[3] = a1; for (i = 0;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-21482); a0 = mulhi(ri,-226)-mulhi(lo,781); /* -447...390 */ a0 += s0; /* -447...645 */ a0 += crypto_int16_negative_mask(a0)&781; /* 0...780 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-31803); /* invalid inputs might need reduction mod 781 */ a1 -= 781; a1 += crypto_int16_negative_mask(a1)&781; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 7*[447]+[253] */ ri = R[3]; s0 = *--s; lo = mullo(ri,28003); a0 = mulhi(ri,-35)-mulhi(lo,447); /* -233...223 */ a0 += s0; /* -233...478 */ a0 -= 447; /* -680..>31 */ a0 += crypto_int16_negative_mask(a0)&447; /* -233...446 */ a0 += crypto_int16_negative_mask(a0)&447; /* 0...446 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-4545); /* invalid inputs might need reduction mod 253 */ a1 -= 253; a1 += crypto_int16_negative_mask(a1)&253; R[6] = a0; R[7] = a1; for (i = 2;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,28003); a0 = mulhi(ri,-35)-mulhi(lo,447); /* -233...223 */ a0 += s0; /* -233...478 */ a0 -= 447; /* -680..>31 */ a0 += crypto_int16_negative_mask(a0)&447; /* -233...446 */ a0 += crypto_int16_negative_mask(a0)&447; /* 0...446 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,-4545); /* invalid inputs might need reduction mod 447 */ a1 -= 447; a1 += crypto_int16_negative_mask(a1)&447; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 14*[338]+[253] */ R[14] = R[7]; for (i = 6;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,15899); a0 = mulhi(ri,-90)-mulhi(lo,338); /* -192...169 */ a0 += s0; /* -192...424 */ a0 -= 338; /* -530..>86 */ a0 += crypto_int16_negative_mask(a0)&338; /* -192...337 */ a0 += crypto_int16_negative_mask(a0)&338; /* 0...337 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-23655); /* invalid inputs might need reduction mod 338 */ a1 -= 338; a1 += crypto_int16_negative_mask(a1)&338; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 29*[4701]+[3519] */ ri = R[14]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3569); a0 = mulhi(ri,-653)-mulhi(lo,4701); /* -2514...2350 */ a0 += s1; /* -2514...2605 */ lo = mullo(a0,-3569); a0 = mulhi(a0,-653)-mulhi(lo,4701); /* -2377...2375 */ a0 += s0; /* -2377...2630 */ a0 += crypto_int16_negative_mask(a0)&4701; /* 0...4700 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,20981); /* invalid inputs might need reduction mod 3519 */ a1 -= 3519; a1 += crypto_int16_negative_mask(a1)&3519; R[28] = a0; R[29] = a1; for (i = 13;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-3569); a0 = mulhi(ri,-653)-mulhi(lo,4701); /* -2514...2350 */ a0 += s1; /* -2514...2605 */ lo = mullo(a0,-3569); a0 = mulhi(a0,-653)-mulhi(lo,4701); /* -2377...2375 */ a0 += s0; /* -2377...2630 */ a0 += crypto_int16_negative_mask(a0)&4701; /* 0...4700 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,20981); /* invalid inputs might need reduction mod 4701 */ a1 -= 4701; a1 += crypto_int16_negative_mask(a1)&4701; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 59*[1097]+[821] */ ri = R[29]; s0 = *--s; lo = mullo(ri,-15294); a0 = mulhi(ri,-302)-mulhi(lo,1097); /* -624...548 */ a0 += s0; /* -624...803 */ a0 += crypto_int16_negative_mask(a0)&1097; /* 0...1096 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,11769); /* invalid inputs might need reduction mod 821 */ a1 -= 821; a1 += crypto_int16_negative_mask(a1)&821; R[58] = a0; R[59] = a1; for (i = 28;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-15294); a0 = mulhi(ri,-302)-mulhi(lo,1097); /* -624...548 */ a0 += s0; /* -624...803 */ a0 += crypto_int16_negative_mask(a0)&1097; /* 0...1096 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,11769); /* invalid inputs might need reduction mod 1097 */ a1 -= 1097; a1 += crypto_int16_negative_mask(a1)&1097; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 119*[8476]+[6343] */ ri = R[59]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1979); a0 = mulhi(ri,3212)-mulhi(lo,8476); /* -4238...5041 */ a0 += s1; /* -4238...5296 */ lo = mullo(a0,-1979); a0 = mulhi(a0,3212)-mulhi(lo,8476); /* -4446...4497 */ a0 += s0; /* -4446...4752 */ a0 += crypto_int16_negative_mask(a0)&8476; /* 0...8475 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,8567); /* invalid inputs might need reduction mod 6343 */ a1 -= 6343; a1 += crypto_int16_negative_mask(a1)&6343; R[118] = a0; R[119] = a1; for (i = 58;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-1979); a0 = mulhi(ri,3212)-mulhi(lo,8476); /* -4238...5041 */ a0 += s1; /* -4238...5296 */ lo = mullo(a0,-1979); a0 = mulhi(a0,3212)-mulhi(lo,8476); /* -4446...4497 */ a0 += s0; /* -4446...4752 */ a0 += crypto_int16_negative_mask(a0)&8476; /* 0...8475 */ a1 = (ri<<14)+(s1<<6)+((s0-a0)>>2); a1 = mullo(a1,8567); /* invalid inputs might need reduction mod 8476 */ a1 -= 8476; a1 += crypto_int16_negative_mask(a1)&8476; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 238*[1473]+[6343] */ R[238] = R[119]; for (i = 118;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-11390); a0 = mulhi(ri,-254)-mulhi(lo,1473); /* -800...736 */ a0 += s0; /* -800...991 */ a0 += crypto_int16_negative_mask(a0)&1473; /* 0...1472 */ a1 = (ri<<8)+s0-a0; a1 = mullo(a1,2625); /* invalid inputs might need reduction mod 1473 */ a1 -= 1473; a1 += crypto_int16_negative_mask(a1)&1473; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 476*[614]+[6343] */ R[476] = R[238]; for (i = 237;i >= 0;--i) { ri = R[i]; s0 = *--s; lo = mullo(ri,-27324); a0 = mulhi(ri,280)-mulhi(lo,614); /* -307...377 */ a0 += s0; /* -307...632 */ a0 -= 614; /* -921..>18 */ a0 += crypto_int16_negative_mask(a0)&614; /* -307...613 */ a0 += crypto_int16_negative_mask(a0)&614; /* 0...613 */ a1 = (ri<<7)+((s0-a0)>>1); a1 = mullo(a1,-7685); /* invalid inputs might need reduction mod 614 */ a1 -= 614; a1 += crypto_int16_negative_mask(a1)&614; R[2*i] = a0; R[2*i+1] = a1; } /* reconstruct mod 953*[6343] */ R[952] = R[476]-3171; for (i = 475;i >= 0;--i) { ri = R[i]; s1 = *--s; s0 = *--s; lo = mullo(ri,-2645); a0 = mulhi(ri,-19)-mulhi(lo,6343); /* -3177...3171 */ a0 += s1; /* -3177...3426 */ lo = mullo(a0,-2645); a0 = mulhi(a0,-19)-mulhi(lo,6343); /* -3173...3172 */ a0 += s0; /* -3173...3427 */ a0 += crypto_int16_negative_mask(a0)&6343; /* 0...6342 */ a1 = (s1<<8)+s0-a0; a1 = mullo(a1,10487); /* invalid inputs might need reduction mod 6343 */ a1 -= 6343; a1 += crypto_int16_negative_mask(a1)&6343; R[2*i] = a0-3171; R[2*i+1] = a1-3171; } } libntruprime-20241021/crypto_decode/953x6343/int16/decodegen.py0000777000000000000000000000000014705505552031104 2../../../src/decode/PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/crypto_decode/953xint16/0000755000000000000000000000000014705505546017411 5ustar rootrootlibntruprime-20241021/crypto_decode/953xint16/ref/0000755000000000000000000000000014705505546020165 5ustar rootrootlibntruprime-20241021/crypto_decode/953xint16/ref/api.h0000644000000000000000000000012114705505546021101 0ustar rootroot#define CRYPTO_STRBYTES 1906 #define CRYPTO_ITEMS 953 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/953xint16/ref/decode.c0000644000000000000000000000044214705505546021554 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < 953;++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/crypto_decode/953xint32/0000755000000000000000000000000014705505546017407 5ustar rootrootlibntruprime-20241021/crypto_decode/953xint32/ref/0000755000000000000000000000000014705505546020163 5ustar rootrootlibntruprime-20241021/crypto_decode/953xint32/ref/api.h0000644000000000000000000000012114705505546021077 0ustar rootroot#define CRYPTO_STRBYTES 3812 #define CRYPTO_ITEMS 953 #define CRYPTO_ITEMBYTES 4 libntruprime-20241021/crypto_decode/953xint32/ref/decode.c0000644000000000000000000000060414705505546021552 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < 953;++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/crypto_decode/int16/0000755000000000000000000000000014705505546016760 5ustar rootrootlibntruprime-20241021/crypto_decode/int16/ref/0000755000000000000000000000000014705505552017531 5ustar rootrootlibntruprime-20241021/crypto_decode/int16/ref/api.h0000644000000000000000000000011414705505546020452 0ustar rootroot#define CRYPTO_STRBYTES 2 #define CRYPTO_ITEMS 1 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_decode/int16/ref/decode.c0000777000000000000000000000000014705505552027074 2../../../src/decode/int16/ref/decode.custar rootrootlibntruprime-20241021/crypto_encode/0000755000000000000000000000000014705505547016032 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/0000755000000000000000000000000014705505546017126 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/avx/0000755000000000000000000000000014705505552017721 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/avx/Makefile0000644000000000000000000000015314705505546021363 0ustar rootrootencode.c: encodegen.py ./encodegen.py 1013 2393 2393 3588 True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/1013x2393/avx/api.h0000777000000000000000000000000014705505552027141 2../../../crypto_decode/1013x2393/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/avx/architectures0000777000000000000000000000000014705505552031421 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/avx/encode.c0000644000000000000000000001541014705505546021326 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[507]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 32; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 12; writing -= 6; out -= 12; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3588)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3588)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2393)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2393)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[506] = (((R0[1012]+3588)&16383)*10923)>>15; for (i = 0;i < 253;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)88; R[i] = r2; } R[253] = R[506]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 2; writing -= 1; out -= 2; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(7744)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(7744)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(916)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[63] = R[126]; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 2; writing -= 1; out -= 2; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(3278)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(3278)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } r0 = R[62]; r1 = R[63]; r2 = r0+r1*(uint32)3278; *out++ = r2; r2 >>= 8; R[31] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(164)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)106; R[i] = r2; } r0 = R[14]; r1 = R[15]; r2 = r0+r1*(uint32)106; *out++ = r2; r2 >>= 8; R[7] = r2; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11236; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1927; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)14506; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1013x2393/avx/encodegen.py0000777000000000000000000000000014705505552030713 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/portable/0000755000000000000000000000000014705505552020733 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/portable/Makefile0000777000000000000000000000000014705505552025041 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/portable/api.h0000777000000000000000000000000014705505552030153 2../../../crypto_decode/1013x2393/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x2393/portable/encode.c0000644000000000000000000000430314705505546022337 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[507]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 506;++i) { r0 = (((R0[2*i]+3588)&16383)*10923)>>15; r1 = (((R0[2*i+1]+3588)&16383)*10923)>>15; r2 = r0+r1*(uint32)2393; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[506] = (((R0[1012]+3588)&16383)*10923)>>15; for (i = 0;i < 253;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)88; R[i] = r2; } R[253] = R[506]; for (i = 0;i < 127;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)7744; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 63;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)916; *out++ = r2; r2 >>= 8; R[i] = r2; } R[63] = R[126]; for (i = 0;i < 31;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3278; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[62]; r1 = R[63]; r2 = r0+r1*(uint32)3278; *out++ = r2; r2 >>= 8; R[31] = r2; for (i = 0;i < 16;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)164; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)106; R[i] = r2; } r0 = R[14]; r1 = R[15]; r2 = r0+r1*(uint32)106; *out++ = r2; r2 >>= 8; R[7] = r2; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11236; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1927; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)14506; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1013x2393/portable/encodegen.py0000777000000000000000000000000014705505552032737 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/0000755000000000000000000000000014705505546020176 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/avx/0000755000000000000000000000000014705505552020771 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/avx/Makefile0000644000000000000000000000016014705505546022431 0ustar rootrootencode.c: encodegen.py ./encodegen.py 1013 2393 2393 3588 True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/1013x2393round/avx/api.h0000777000000000000000000000000014705505552030211 2../../../crypto_decode/1013x2393/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/avx/architectures0000777000000000000000000000000014705505552032471 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/avx/encode.c0000644000000000000000000001577414705505546022413 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[507]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 32; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 12; writing -= 6; out -= 12; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x2 = _mm256_mulhrs_epi16(x2,_mm256_set1_epi16(10923)); x = _mm256_add_epi16(x,_mm256_add_epi16(x,x)); x2 = _mm256_add_epi16(x2,_mm256_add_epi16(x2,x2)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3588)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3588)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2393)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2393)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[506] = (((3*((10923*R0[1012]+16384)>>15)+3588)&16383)*10923)>>15; for (i = 0;i < 253;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)88; R[i] = r2; } R[253] = R[506]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 2; writing -= 1; out -= 2; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(7744)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(7744)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(916)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[63] = R[126]; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 2; writing -= 1; out -= 2; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(3278)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(3278)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } r0 = R[62]; r1 = R[63]; r2 = r0+r1*(uint32)3278; *out++ = r2; r2 >>= 8; R[31] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(164)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)106; R[i] = r2; } r0 = R[14]; r1 = R[15]; r2 = r0+r1*(uint32)106; *out++ = r2; r2 >>= 8; R[7] = r2; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11236; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1927; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)14506; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1013x2393round/avx/encodegen.py0000777000000000000000000000000014705505552031763 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/ref/0000755000000000000000000000000014705505552020747 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/ref/api.h0000777000000000000000000000000014705505552030167 2../../../crypto_decode/1013x2393/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x2393round/ref/encode.c0000644000000000000000000000054314705505546022355 0ustar rootroot#include "crypto_encode_1013x2393.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p 1013 void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_1013x2393(out,x); } libntruprime-20241021/crypto_encode/1013x3/0000755000000000000000000000000014705505546016670 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x3/avx/0000755000000000000000000000000014705505552017463 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x3/avx/api.h0000777000000000000000000000000014705505552026445 2../../../crypto_decode/1013x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x3/avx/architectures0000777000000000000000000000000014705505552031163 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1013x3/avx/encode.c0000644000000000000000000000400614705505546021067 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1013 #define loops 8 #define overshoot 3 static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/crypto_encode/1013x3/ref/0000755000000000000000000000000014705505552017441 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x3/ref/api.h0000777000000000000000000000000014705505552026423 2../../../crypto_decode/1013x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x3/ref/encode.c0000644000000000000000000000054714705505546021053 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1013 void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/crypto_encode/1013x7177/0000755000000000000000000000000014705505546017133 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/avx/0000755000000000000000000000000014705505552017726 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/avx/Makefile0000644000000000000000000000013414705505546021367 0ustar rootrootencode.c: encodegen.py ./encodegen.py 1013 7177 > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/1013x7177/avx/api.h0000777000000000000000000000000014705505552027153 2../../../crypto_decode/1013x7177/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/avx/architectures0000777000000000000000000000000014705505552031426 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/avx/encode.c0000644000000000000000000001551214705505546021336 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[507]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 32; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 12; writing -= 6; out -= 12; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3588)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3588)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(7177)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(7177)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[506] = ((R0[1012]+3588)&16383); reading = (uint16 *) R; writing = R; i = 32; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 6; writing -= 3; out -= 3; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(786)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[253] = R[506]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 2; writing -= 1; out -= 2; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2414)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2414)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } for (i = 0;i < 63;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)89; R[i] = r2; } R[63] = R[126]; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 2; writing -= 1; out -= 2; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(7921)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(7921)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } r0 = R[62]; r1 = R[63]; r2 = r0+r1*(uint32)7921; *out++ = r2; r2 >>= 8; R[31] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(958)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } r0 = R[30]; r1 = R[31]; r2 = r0+r1*(uint32)958; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[15] = r2; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3586; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[14]; r1 = R[15]; r2 = r0+r1*(uint32)3586; *out++ = r2; r2 >>= 8; R[7] = r2; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)197; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)152; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)91; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1013x7177/avx/encodegen.py0000777000000000000000000000000014705505552030720 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/portable/0000755000000000000000000000000014705505552020740 5ustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/portable/Makefile0000777000000000000000000000000014705505552025046 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/portable/api.h0000777000000000000000000000000014705505552030165 2../../../crypto_decode/1013x7177/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013x7177/portable/encode.c0000644000000000000000000000441514705505546022350 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[507]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 506;++i) { r0 = (R0[2*i]+3588)&16383; r1 = (R0[2*i+1]+3588)&16383; r2 = r0+r1*(uint32)7177; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[506] = (R0[1012]+3588)&16383; for (i = 0;i < 253;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)786; *out++ = r2; r2 >>= 8; R[i] = r2; } R[253] = R[506]; for (i = 0;i < 127;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2414; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 63;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)89; R[i] = r2; } R[63] = R[126]; for (i = 0;i < 31;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)7921; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[62]; r1 = R[63]; r2 = r0+r1*(uint32)7921; *out++ = r2; r2 >>= 8; R[31] = r2; for (i = 0;i < 15;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)958; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[30]; r1 = R[31]; r2 = r0+r1*(uint32)958; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[15] = r2; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3586; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[14]; r1 = R[15]; r2 = r0+r1*(uint32)3586; *out++ = r2; r2 >>= 8; R[7] = r2; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)197; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)152; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)91; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1013x7177/portable/encodegen.py0000777000000000000000000000000014705505552032744 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1013xfreeze3/0000755000000000000000000000000014705505546020071 5ustar rootrootlibntruprime-20241021/crypto_encode/1013xfreeze3/avx/0000755000000000000000000000000014705505552020664 5ustar rootrootlibntruprime-20241021/crypto_encode/1013xfreeze3/avx/api.h0000644000000000000000000000012214705505546021604 0ustar rootroot#define CRYPTO_STRBYTES 1013 #define CRYPTO_ITEMS 1013 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_encode/1013xfreeze3/avx/architectures0000777000000000000000000000000014705505552032364 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1013xfreeze3/avx/encode.c0000644000000000000000000000134114705505546022267 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 1013 void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/crypto_encode/1013xfreeze3/ref/0000755000000000000000000000000014705505552020642 5ustar rootrootlibntruprime-20241021/crypto_encode/1013xfreeze3/ref/api.h0000777000000000000000000000000014705505552023514 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013xfreeze3/ref/encode.c0000644000000000000000000000100514705505546022242 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 1013 /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/crypto_encode/1013xint16/0000755000000000000000000000000014705505546017467 5ustar rootrootlibntruprime-20241021/crypto_encode/1013xint16/ref/0000755000000000000000000000000014705505552020240 5ustar rootrootlibntruprime-20241021/crypto_encode/1013xint16/ref/api.h0000777000000000000000000000000014705505552027777 2../../../crypto_decode/1013xint16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/1013xint16/ref/encode.c0000644000000000000000000000036414705505546021647 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < 1013;++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/crypto_encode/1277x2627/0000755000000000000000000000000014705505546017142 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/avx/0000755000000000000000000000000014705505552017735 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/avx/Makefile0000644000000000000000000000015314705505546021377 0ustar rootrootencode.c: encodegen.py ./encodegen.py 1277 2627 2627 3939 True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/1277x2627/avx/api.h0000777000000000000000000000000014705505552027171 2../../../crypto_decode/1277x2627/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/avx/architectures0000777000000000000000000000000014705505552031435 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/avx/encode.c0000644000000000000000000001425614705505546021351 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[639]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 40; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 4; writing -= 2; out -= 4; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3939)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3939)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2627)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2627)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[638] = (((R0[1276]+3939)&16383)*10923)>>15; for (i = 0;i < 319;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)106; R[i] = r2; } R[319] = R[638]; reading = (uint16 *) R; writing = R; i = 10; while (i > 0) { __m256i x,x2,y,y2; --i; x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(11236)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(11236)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 10; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1927)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 16; writing -= 8; out -= 16; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(14506)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(14506)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } for (i = 0;i < 19;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3211; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[38]; r1 = R[39]; r2 = r0+r1*(uint32)3211; *out++ = r2; r2 >>= 8; R[19] = r2; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)158; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)98; R[i] = r2; } r0 = R[8]; r1 = R[9]; r2 = r0+r1*(uint32)98; *out++ = r2; r2 >>= 8; R[4] = r2; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9604; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[2] = R[4]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)1408; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)7744; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1277x2627/avx/encodegen.py0000777000000000000000000000000014705505552030727 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/portable/0000755000000000000000000000000014705505552020747 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/portable/Makefile0000777000000000000000000000000014705505552025055 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/portable/api.h0000777000000000000000000000000014705505552030203 2../../../crypto_decode/1277x2627/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x2627/portable/encode.c0000644000000000000000000000450714705505546022361 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[639]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 638;++i) { r0 = (((R0[2*i]+3939)&16383)*10923)>>15; r1 = (((R0[2*i+1]+3939)&16383)*10923)>>15; r2 = r0+r1*(uint32)2627; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[638] = (((R0[1276]+3939)&16383)*10923)>>15; for (i = 0;i < 319;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)106; R[i] = r2; } R[319] = R[638]; for (i = 0;i < 160;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11236; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 80;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1927; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 40;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)14506; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 19;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3211; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[38]; r1 = R[39]; r2 = r0+r1*(uint32)3211; *out++ = r2; r2 >>= 8; R[19] = r2; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)158; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)98; R[i] = r2; } r0 = R[8]; r1 = R[9]; r2 = r0+r1*(uint32)98; *out++ = r2; r2 >>= 8; R[4] = r2; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9604; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[2] = R[4]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)1408; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)7744; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1277x2627/portable/encodegen.py0000777000000000000000000000000014705505552032753 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/0000755000000000000000000000000014705505546020212 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/avx/0000755000000000000000000000000014705505552021005 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/avx/Makefile0000644000000000000000000000016014705505546022445 0ustar rootrootencode.c: encodegen.py ./encodegen.py 1277 2627 2627 3939 True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/1277x2627round/avx/api.h0000777000000000000000000000000014705505552030241 2../../../crypto_decode/1277x2627/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/avx/architectures0000777000000000000000000000000014705505552032505 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/avx/encode.c0000644000000000000000000001464214705505546022420 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[639]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 40; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 4; writing -= 2; out -= 4; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x2 = _mm256_mulhrs_epi16(x2,_mm256_set1_epi16(10923)); x = _mm256_add_epi16(x,_mm256_add_epi16(x,x)); x2 = _mm256_add_epi16(x2,_mm256_add_epi16(x2,x2)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3939)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3939)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2627)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2627)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[638] = (((3*((10923*R0[1276]+16384)>>15)+3939)&16383)*10923)>>15; for (i = 0;i < 319;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)106; R[i] = r2; } R[319] = R[638]; reading = (uint16 *) R; writing = R; i = 10; while (i > 0) { __m256i x,x2,y,y2; --i; x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(11236)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(11236)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 10; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1927)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 16; writing -= 8; out -= 16; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(14506)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(14506)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } for (i = 0;i < 19;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3211; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[38]; r1 = R[39]; r2 = r0+r1*(uint32)3211; *out++ = r2; r2 >>= 8; R[19] = r2; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)158; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)98; R[i] = r2; } r0 = R[8]; r1 = R[9]; r2 = r0+r1*(uint32)98; *out++ = r2; r2 >>= 8; R[4] = r2; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9604; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[2] = R[4]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)1408; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)7744; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1277x2627round/avx/encodegen.py0000777000000000000000000000000014705505552031777 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/ref/0000755000000000000000000000000014705505552020763 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/ref/api.h0000777000000000000000000000000014705505552030217 2../../../crypto_decode/1277x2627/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x2627round/ref/encode.c0000644000000000000000000000054314705505546022371 0ustar rootroot#include "crypto_encode_1277x2627.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p 1277 void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_1277x2627(out,x); } libntruprime-20241021/crypto_encode/1277x3/0000755000000000000000000000000014705505546016704 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x3/avx/0000755000000000000000000000000014705505552017477 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x3/avx/api.h0000777000000000000000000000000014705505552026475 2../../../crypto_decode/1277x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x3/avx/architectures0000777000000000000000000000000014705505552031177 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1277x3/avx/encode.c0000644000000000000000000000400714705505546021104 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1277 #define loops 10 #define overshoot 1 static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/crypto_encode/1277x3/ref/0000755000000000000000000000000014705505552017455 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x3/ref/api.h0000777000000000000000000000000014705505552026453 2../../../crypto_decode/1277x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x3/ref/encode.c0000644000000000000000000000054714705505546021067 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 1277 void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/crypto_encode/1277x7879/0000755000000000000000000000000014705505546017160 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/avx/0000755000000000000000000000000014705505552017753 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/avx/Makefile0000644000000000000000000000013414705505546021414 0ustar rootrootencode.c: encodegen.py ./encodegen.py 1277 7879 > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/1277x7879/avx/api.h0000777000000000000000000000000014705505552027225 2../../../crypto_decode/1277x7879/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/avx/architectures0000777000000000000000000000000014705505552031453 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/avx/encode.c0000644000000000000000000001404414705505546021362 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[639]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 40; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 4; writing -= 2; out -= 4; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3939)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3939)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(7879)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(7879)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[638] = ((R0[1276]+3939)&16383); reading = (uint16 *) R; writing = R; i = 40; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(948)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[319] = R[638]; reading = (uint16 *) R; writing = R; i = 10; while (i > 0) { __m256i x,x2,y,y2; --i; x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(3511)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(3511)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 10; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(189)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 5; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(140)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } for (i = 0;i < 20;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)77; R[i] = r2; } for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)5929; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)537; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1127; *out++ = r2; r2 >>= 8; R[i] = r2; } R[2] = R[4]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)4962; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)376; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1277x7879/avx/encodegen.py0000777000000000000000000000000014705505552030745 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/portable/0000755000000000000000000000000014705505552020765 5ustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/portable/Makefile0000777000000000000000000000000014705505552025073 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/portable/api.h0000777000000000000000000000000014705505552030237 2../../../crypto_decode/1277x7879/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277x7879/portable/encode.c0000644000000000000000000000410614705505546022372 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[639]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 638;++i) { r0 = (R0[2*i]+3939)&16383; r1 = (R0[2*i+1]+3939)&16383; r2 = r0+r1*(uint32)7879; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[638] = (R0[1276]+3939)&16383; for (i = 0;i < 319;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)948; *out++ = r2; r2 >>= 8; R[i] = r2; } R[319] = R[638]; for (i = 0;i < 160;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)3511; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 80;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)189; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 40;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)140; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 20;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)77; R[i] = r2; } for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)5929; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)537; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1127; *out++ = r2; r2 >>= 8; R[i] = r2; } R[2] = R[4]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)4962; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)376; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/1277x7879/portable/encodegen.py0000777000000000000000000000000014705505552032771 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/1277xfreeze3/0000755000000000000000000000000014705505546020105 5ustar rootrootlibntruprime-20241021/crypto_encode/1277xfreeze3/avx/0000755000000000000000000000000014705505552020700 5ustar rootrootlibntruprime-20241021/crypto_encode/1277xfreeze3/avx/api.h0000644000000000000000000000012214705505546021620 0ustar rootroot#define CRYPTO_STRBYTES 1277 #define CRYPTO_ITEMS 1277 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_encode/1277xfreeze3/avx/architectures0000777000000000000000000000000014705505552032400 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/1277xfreeze3/avx/encode.c0000644000000000000000000000134114705505546022303 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 1277 void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/crypto_encode/1277xfreeze3/ref/0000755000000000000000000000000014705505552020656 5ustar rootrootlibntruprime-20241021/crypto_encode/1277xfreeze3/ref/api.h0000777000000000000000000000000014705505552023530 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277xfreeze3/ref/encode.c0000644000000000000000000000100514705505546022256 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 1277 /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/crypto_encode/1277xint16/0000755000000000000000000000000014705505546017503 5ustar rootrootlibntruprime-20241021/crypto_encode/1277xint16/ref/0000755000000000000000000000000014705505552020254 5ustar rootrootlibntruprime-20241021/crypto_encode/1277xint16/ref/api.h0000777000000000000000000000000014705505552030027 2../../../crypto_decode/1277xint16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/1277xint16/ref/encode.c0000644000000000000000000000036414705505546021663 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < 1277;++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/crypto_encode/653x1541/0000755000000000000000000000000014705505546017051 5ustar rootrootlibntruprime-20241021/crypto_encode/653x1541/avx/0000755000000000000000000000000014705505552017644 5ustar rootrootlibntruprime-20241021/crypto_encode/653x1541/avx/Makefile0000644000000000000000000000015214705505546021305 0ustar rootrootencode.c: encodegen.py ./encodegen.py 653 1541 1541 2310 True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/653x1541/avx/api.h0000777000000000000000000000000014705505552027007 2../../../crypto_decode/653x1541/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x1541/avx/architectures0000777000000000000000000000000014705505552031344 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/653x1541/avx/encode.c0000644000000000000000000001440714705505546021256 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[327]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 41; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); x = _mm256_add_epi16(x,_mm256_set1_epi16(2310)); x &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1541)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[326] = (((R0[652]+2310)&16383)*10923)>>15; reading = (uint16 *) R; writing = R; i = 11; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 26; writing -= 13; out -= 26; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(9277)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(9277)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[163] = R[326]; reading = (uint16 *) R; writing = R; i = 11; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 12; writing -= 6; out -= 6; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1314)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 14; writing -= 7; out -= 14; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(6745)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(6745)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(695)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[20] = R[40]; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1887; *out++ = r2; r2 >>= 8; R[i] = r2; } R[10] = R[20]; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)13910; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[5] = R[10]; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2953; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[4]; r1 = R[5]; r2 = r0+r1*(uint32)2953; *out++ = r2; r2 >>= 8; R[2] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)134; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)71; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/653x1541/avx/encodegen.py0000777000000000000000000000000014705505552030636 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/653x1541/portable/0000755000000000000000000000000014705505552020656 5ustar rootrootlibntruprime-20241021/crypto_encode/653x1541/portable/Makefile0000777000000000000000000000000014705505552024764 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/653x1541/portable/api.h0000777000000000000000000000000014705505552030021 2../../../crypto_decode/653x1541/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x1541/portable/encode.c0000644000000000000000000000420014705505546022256 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[327]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 326;++i) { r0 = (((R0[2*i]+2310)&16383)*10923)>>15; r1 = (((R0[2*i+1]+2310)&16383)*10923)>>15; r2 = r0+r1*(uint32)1541; *out++ = r2; r2 >>= 8; R[i] = r2; } R[326] = (((R0[652]+2310)&16383)*10923)>>15; for (i = 0;i < 163;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9277; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[163] = R[326]; for (i = 0;i < 82;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1314; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 41;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)6745; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 20;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)695; *out++ = r2; r2 >>= 8; R[i] = r2; } R[20] = R[40]; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1887; *out++ = r2; r2 >>= 8; R[i] = r2; } R[10] = R[20]; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)13910; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[5] = R[10]; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2953; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[4]; r1 = R[5]; r2 = r0+r1*(uint32)2953; *out++ = r2; r2 >>= 8; R[2] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)134; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)71; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/653x1541/portable/encodegen.py0000777000000000000000000000000014705505552032662 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/0000755000000000000000000000000014705505546020121 5ustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/avx/0000755000000000000000000000000014705505552020714 5ustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/avx/Makefile0000644000000000000000000000015714705505546022362 0ustar rootrootencode.c: encodegen.py ./encodegen.py 653 1541 1541 2310 True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/653x1541round/avx/api.h0000777000000000000000000000000014705505552030057 2../../../crypto_decode/653x1541/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/avx/architectures0000777000000000000000000000000014705505552032414 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/avx/encode.c0000644000000000000000000001461114705505546022323 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[327]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 41; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_add_epi16(x,_mm256_add_epi16(x,x)); x = _mm256_add_epi16(x,_mm256_set1_epi16(2310)); x &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1541)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[326] = (((3*((10923*R0[652]+16384)>>15)+2310)&16383)*10923)>>15; reading = (uint16 *) R; writing = R; i = 11; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 26; writing -= 13; out -= 26; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(9277)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(9277)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[163] = R[326]; reading = (uint16 *) R; writing = R; i = 11; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 12; writing -= 6; out -= 6; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1314)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 14; writing -= 7; out -= 14; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(6745)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(6745)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(695)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[20] = R[40]; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1887; *out++ = r2; r2 >>= 8; R[i] = r2; } R[10] = R[20]; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)13910; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[5] = R[10]; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2953; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[4]; r1 = R[5]; r2 = r0+r1*(uint32)2953; *out++ = r2; r2 >>= 8; R[2] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)134; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)71; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/653x1541round/avx/encodegen.py0000777000000000000000000000000014705505552031706 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/ref/0000755000000000000000000000000014705505552020672 5ustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/ref/api.h0000777000000000000000000000000014705505552030035 2../../../crypto_decode/653x1541/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x1541round/ref/encode.c0000644000000000000000000000054014705505546022275 0ustar rootroot#include "crypto_encode_653x1541.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p 653 void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_653x1541(out,x); } libntruprime-20241021/crypto_encode/653x3/0000755000000000000000000000000014705505546016621 5ustar rootrootlibntruprime-20241021/crypto_encode/653x3/avx/0000755000000000000000000000000014705505552017414 5ustar rootrootlibntruprime-20241021/crypto_encode/653x3/avx/api.h0000777000000000000000000000000014705505552026327 2../../../crypto_decode/653x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x3/avx/architectures0000777000000000000000000000000014705505552031114 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/653x3/avx/encode.c0000644000000000000000000000400614705505546021020 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 653 #define loops 6 #define overshoot 29 static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/crypto_encode/653x3/ref/0000755000000000000000000000000014705505552017372 5ustar rootrootlibntruprime-20241021/crypto_encode/653x3/ref/api.h0000777000000000000000000000000014705505552026305 2../../../crypto_decode/653x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x3/ref/encode.c0000644000000000000000000000054614705505546021003 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 653 void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/crypto_encode/653x4621/0000755000000000000000000000000014705505546017053 5ustar rootrootlibntruprime-20241021/crypto_encode/653x4621/avx/0000755000000000000000000000000014705505552017646 5ustar rootrootlibntruprime-20241021/crypto_encode/653x4621/avx/Makefile0000644000000000000000000000013314705505546021306 0ustar rootrootencode.c: encodegen.py ./encodegen.py 653 4621 > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/653x4621/avx/api.h0000777000000000000000000000000014705505552027013 2../../../crypto_decode/653x4621/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x4621/avx/architectures0000777000000000000000000000000014705505552031346 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/653x4621/avx/encode.c0000644000000000000000000001352214705505546021255 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[327]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 21; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 20; writing -= 10; out -= 20; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(2310)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(2310)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(4621)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(4621)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[326] = ((R0[652]+2310)&16383); reading = (uint16 *) R; writing = R; i = 21; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 10; writing -= 5; out -= 5; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(326)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[163] = R[326]; reading = (uint16 *) R; writing = R; i = 11; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 12; writing -= 6; out -= 6; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(416)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 5; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(676)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } r0 = R[80]; r1 = R[81]; r2 = r0+r1*(uint32)676; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[40] = r2; reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1786)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[20] = R[40]; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)12461; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[10] = R[20]; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2370; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[5] = R[10]; for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)86; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)7396; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)835; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/653x4621/avx/encodegen.py0000777000000000000000000000000014705505552030640 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/653x4621/portable/0000755000000000000000000000000014705505552020660 5ustar rootrootlibntruprime-20241021/crypto_encode/653x4621/portable/Makefile0000777000000000000000000000000014705505552024766 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/653x4621/portable/api.h0000777000000000000000000000000014705505552030025 2../../../crypto_decode/653x4621/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653x4621/portable/encode.c0000644000000000000000000000412214705505546022263 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[327]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 326;++i) { r0 = (R0[2*i]+2310)&16383; r1 = (R0[2*i+1]+2310)&16383; r2 = r0+r1*(uint32)4621; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[326] = (R0[652]+2310)&16383; for (i = 0;i < 163;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)326; *out++ = r2; r2 >>= 8; R[i] = r2; } R[163] = R[326]; for (i = 0;i < 82;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)416; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 40;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)676; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[80]; r1 = R[81]; r2 = r0+r1*(uint32)676; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[40] = r2; for (i = 0;i < 20;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1786; *out++ = r2; r2 >>= 8; R[i] = r2; } R[20] = R[40]; for (i = 0;i < 10;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)12461; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[10] = R[20]; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2370; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[5] = R[10]; for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)86; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)7396; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)835; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/653x4621/portable/encodegen.py0000777000000000000000000000000014705505552032664 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/653xfreeze3/0000755000000000000000000000000014705505546020022 5ustar rootrootlibntruprime-20241021/crypto_encode/653xfreeze3/avx/0000755000000000000000000000000014705505552020615 5ustar rootrootlibntruprime-20241021/crypto_encode/653xfreeze3/avx/api.h0000644000000000000000000000012014705505546021533 0ustar rootroot#define CRYPTO_STRBYTES 653 #define CRYPTO_ITEMS 653 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_encode/653xfreeze3/avx/architectures0000777000000000000000000000000014705505552032315 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/653xfreeze3/avx/encode.c0000644000000000000000000000134014705505546022217 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 653 void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/crypto_encode/653xfreeze3/ref/0000755000000000000000000000000014705505552020573 5ustar rootrootlibntruprime-20241021/crypto_encode/653xfreeze3/ref/api.h0000777000000000000000000000000014705505552023445 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/653xfreeze3/ref/encode.c0000644000000000000000000000100414705505546022172 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 653 /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/crypto_encode/653xint16/0000755000000000000000000000000014705505546017420 5ustar rootrootlibntruprime-20241021/crypto_encode/653xint16/ref/0000755000000000000000000000000014705505552020171 5ustar rootrootlibntruprime-20241021/crypto_encode/653xint16/ref/api.h0000777000000000000000000000000014705505552027661 2../../../crypto_decode/653xint16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/653xint16/ref/encode.c0000644000000000000000000000036314705505546021577 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < 653;++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/crypto_encode/761x1531/0000755000000000000000000000000014705505546017050 5ustar rootrootlibntruprime-20241021/crypto_encode/761x1531/avx/0000755000000000000000000000000014705505552017643 5ustar rootrootlibntruprime-20241021/crypto_encode/761x1531/avx/Makefile0000644000000000000000000000015214705505546021304 0ustar rootrootencode.c: encodegen.py ./encodegen.py 761 1531 1531 2295 True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/761x1531/avx/api.h0000777000000000000000000000000014705505552027005 2../../../crypto_decode/761x1531/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x1531/avx/architectures0000777000000000000000000000000014705505552031343 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/761x1531/avx/encode.c0000644000000000000000000001520314705505546021250 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[381]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 48; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); x = _mm256_add_epi16(x,_mm256_set1_epi16(2295)); x &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1531)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[380] = (((R0[760]+2295)&16383)*10923)>>15; reading = (uint16 *) R; writing = R; i = 12; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 4; writing -= 2; out -= 4; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(9157)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(9157)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[190] = R[380]; reading = (uint16 *) R; writing = R; i = 12; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1280)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[95] = R[190]; reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,x2,y,y2; --i; x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(6400)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(6400)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(625)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1526)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } for (i = 0;i < 6;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9097; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1263; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)6232; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)593; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/761x1531/avx/encodegen.py0000777000000000000000000000000014705505552030635 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/761x1531/portable/0000755000000000000000000000000014705505552020655 5ustar rootrootlibntruprime-20241021/crypto_encode/761x1531/portable/Makefile0000777000000000000000000000000014705505552024763 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/761x1531/portable/api.h0000777000000000000000000000000014705505552030017 2../../../crypto_decode/761x1531/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x1531/portable/encode.c0000644000000000000000000000400414705505546022257 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[381]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 380;++i) { r0 = (((R0[2*i]+2295)&16383)*10923)>>15; r1 = (((R0[2*i+1]+2295)&16383)*10923)>>15; r2 = r0+r1*(uint32)1531; *out++ = r2; r2 >>= 8; R[i] = r2; } R[380] = (((R0[760]+2295)&16383)*10923)>>15; for (i = 0;i < 190;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9157; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[190] = R[380]; for (i = 0;i < 95;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1280; *out++ = r2; r2 >>= 8; R[i] = r2; } R[95] = R[190]; for (i = 0;i < 48;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)6400; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 24;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)625; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 12;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1526; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 6;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9097; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1263; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)6232; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)593; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/761x1531/portable/encodegen.py0000777000000000000000000000000014705505552032661 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/0000755000000000000000000000000014705505547020121 5ustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/avx/0000755000000000000000000000000014705505552020713 5ustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/avx/Makefile0000644000000000000000000000015714705505547022362 0ustar rootrootencode.c: encodegen.py ./encodegen.py 761 1531 1531 2295 True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/761x1531round/avx/api.h0000777000000000000000000000000014705505552030055 2../../../crypto_decode/761x1531/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/avx/architectures0000777000000000000000000000000014705505552032413 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/avx/encode.c0000644000000000000000000001540514705505547022325 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[381]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 48; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_add_epi16(x,_mm256_add_epi16(x,x)); x = _mm256_add_epi16(x,_mm256_set1_epi16(2295)); x &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1531)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[380] = (((3*((10923*R0[760]+16384)>>15)+2295)&16383)*10923)>>15; reading = (uint16 *) R; writing = R; i = 12; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 4; writing -= 2; out -= 4; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(9157)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(9157)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[190] = R[380]; reading = (uint16 *) R; writing = R; i = 12; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1280)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[95] = R[190]; reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,x2,y,y2; --i; x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(6400)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(6400)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(625)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1526)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } for (i = 0;i < 6;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)9097; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1263; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)6232; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)593; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/761x1531round/avx/encodegen.py0000777000000000000000000000000014705505552031705 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/ref/0000755000000000000000000000000014705505552020671 5ustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/ref/api.h0000777000000000000000000000000014705505552030033 2../../../crypto_decode/761x1531/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x1531round/ref/encode.c0000644000000000000000000000054014705505547022275 0ustar rootroot#include "crypto_encode_761x1531.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p 761 void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_761x1531(out,x); } libntruprime-20241021/crypto_encode/761x3/0000755000000000000000000000000014705505547016622 5ustar rootrootlibntruprime-20241021/crypto_encode/761x3/avx/0000755000000000000000000000000014705505552017414 5ustar rootrootlibntruprime-20241021/crypto_encode/761x3/avx/api.h0000777000000000000000000000000014705505552026327 2../../../crypto_decode/761x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x3/avx/architectures0000777000000000000000000000000014705505552031114 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/761x3/avx/encode.c0000644000000000000000000000400514705505547021020 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 761 #define loops 6 #define overshoot 2 static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/crypto_encode/761x3/ref/0000755000000000000000000000000014705505552017372 5ustar rootrootlibntruprime-20241021/crypto_encode/761x3/ref/api.h0000777000000000000000000000000014705505552026305 2../../../crypto_decode/761x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x3/ref/encode.c0000644000000000000000000000054614705505547021004 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 761 void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/crypto_encode/761x4591/0000755000000000000000000000000014705505547017062 5ustar rootrootlibntruprime-20241021/crypto_encode/761x4591/avx/0000755000000000000000000000000014705505552017654 5ustar rootrootlibntruprime-20241021/crypto_encode/761x4591/avx/Makefile0000644000000000000000000000013314705505547021315 0ustar rootrootencode.c: encodegen.py ./encodegen.py 761 4591 > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/761x4591/avx/api.h0000777000000000000000000000000014705505552027027 2../../../crypto_decode/761x4591/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x4591/avx/architectures0000777000000000000000000000000014705505552031354 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/761x4591/avx/encode.c0000644000000000000000000001417614705505547021272 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[381]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 24; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 8; writing -= 4; out -= 8; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(2295)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(2295)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(4591)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(4591)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[380] = ((R0[760]+2295)&16383); reading = (uint16 *) R; writing = R; i = 24; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(322)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[190] = R[380]; reading = (uint16 *) R; writing = R; i = 12; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(406)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[95] = R[190]; reading = (uint16 *) R; writing = R; i = 6; while (i > 0) { __m256i x,y; --i; x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(644)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 3; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1621)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } r0 = R[46]; r1 = R[47]; r2 = r0+r1*(uint32)1621; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[23] = r2; for (i = 0;i < 11;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)10265; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[22]; r1 = R[23]; r2 = r0+r1*(uint32)10265; *out++ = r2; r2 >>= 8; R[11] = r2; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1608; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[10]; r1 = R[11]; r2 = r0+r1*(uint32)1608; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[5] = r2; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)10101; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[4]; r1 = R[5]; r2 = r0+r1*(uint32)10101; *out++ = r2; r2 >>= 8; R[2] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)1557; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)9470; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/761x4591/avx/encodegen.py0000777000000000000000000000000014705505552030646 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/761x4591/portable/0000755000000000000000000000000014705505552020666 5ustar rootrootlibntruprime-20241021/crypto_encode/761x4591/portable/Makefile0000777000000000000000000000000014705505552024774 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/761x4591/portable/api.h0000777000000000000000000000000014705505552030041 2../../../crypto_decode/761x4591/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761x4591/portable/encode.c0000644000000000000000000000460314705505547022276 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[381]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 380;++i) { r0 = (R0[2*i]+2295)&16383; r1 = (R0[2*i+1]+2295)&16383; r2 = r0+r1*(uint32)4591; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[380] = (R0[760]+2295)&16383; for (i = 0;i < 190;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)322; *out++ = r2; r2 >>= 8; R[i] = r2; } R[190] = R[380]; for (i = 0;i < 95;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)406; *out++ = r2; r2 >>= 8; R[i] = r2; } R[95] = R[190]; for (i = 0;i < 48;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)644; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 23;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1621; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[46]; r1 = R[47]; r2 = r0+r1*(uint32)1621; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[23] = r2; for (i = 0;i < 11;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)10265; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[22]; r1 = R[23]; r2 = r0+r1*(uint32)10265; *out++ = r2; r2 >>= 8; R[11] = r2; for (i = 0;i < 5;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1608; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[10]; r1 = R[11]; r2 = r0+r1*(uint32)1608; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[5] = r2; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)10101; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[4]; r1 = R[5]; r2 = r0+r1*(uint32)10101; *out++ = r2; r2 >>= 8; R[2] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)1557; *out++ = r2; r2 >>= 8; R[0] = r2; R[1] = R[2]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)9470; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/761x4591/portable/encodegen.py0000777000000000000000000000000014705505552032672 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/761xfreeze3/0000755000000000000000000000000014705505547020023 5ustar rootrootlibntruprime-20241021/crypto_encode/761xfreeze3/avx/0000755000000000000000000000000014705505552020615 5ustar rootrootlibntruprime-20241021/crypto_encode/761xfreeze3/avx/api.h0000644000000000000000000000012014705505547021534 0ustar rootroot#define CRYPTO_STRBYTES 761 #define CRYPTO_ITEMS 761 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_encode/761xfreeze3/avx/architectures0000777000000000000000000000000014705505552032315 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/761xfreeze3/avx/encode.c0000644000000000000000000000134014705505547022220 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 761 void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/crypto_encode/761xfreeze3/ref/0000755000000000000000000000000014705505552020573 5ustar rootrootlibntruprime-20241021/crypto_encode/761xfreeze3/ref/api.h0000777000000000000000000000000014705505552023445 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/761xfreeze3/ref/encode.c0000644000000000000000000000100414705505547022173 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 761 /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/crypto_encode/761xint16/0000755000000000000000000000000014705505547017421 5ustar rootrootlibntruprime-20241021/crypto_encode/761xint16/ref/0000755000000000000000000000000014705505552020171 5ustar rootrootlibntruprime-20241021/crypto_encode/761xint16/ref/api.h0000777000000000000000000000000014705505552027661 2../../../crypto_decode/761xint16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/761xint16/ref/encode.c0000644000000000000000000000036314705505547021600 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < 761;++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/crypto_encode/857x1723/0000755000000000000000000000000014705505547017062 5ustar rootrootlibntruprime-20241021/crypto_encode/857x1723/avx/0000755000000000000000000000000014705505552017654 5ustar rootrootlibntruprime-20241021/crypto_encode/857x1723/avx/Makefile0000644000000000000000000000015214705505547021316 0ustar rootrootencode.c: encodegen.py ./encodegen.py 857 1723 1723 2583 True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/857x1723/avx/api.h0000777000000000000000000000000014705505552027027 2../../../crypto_decode/857x1723/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x1723/avx/architectures0000777000000000000000000000000014705505552031354 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/857x1723/avx/encode.c0000644000000000000000000001531314705505547021264 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[429]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 54; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); x = _mm256_add_epi16(x,_mm256_set1_epi16(2583)); x &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1723)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[428] = (((R0[856]+2583)&16383)*10923)>>15; reading = (uint16 *) R; writing = R; i = 14; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 20; writing -= 10; out -= 20; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(11597)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(11597)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[214] = R[428]; reading = (uint16 *) R; writing = R; i = 7; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 10; writing -= 5; out -= 10; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2053)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2053)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[107] = R[214]; for (i = 0;i < 53;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)65; R[i] = r2; } r0 = R[106]; r1 = R[107]; r2 = r0+r1*(uint32)65; *out++ = r2; r2 >>= 8; R[53] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 12; writing -= 6; out -= 12; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(4225)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(4225)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } r0 = R[52]; r1 = R[53]; r2 = r0+r1*(uint32)4225; *out++ = r2; r2 >>= 8; R[26] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 6; writing -= 3; out -= 3; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(273)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[13] = R[26]; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)292; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)334; *out++ = r2; r2 >>= 8; R[i] = r2; } R[3] = R[6]; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)436; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)743; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/857x1723/avx/encodegen.py0000777000000000000000000000000014705505552030646 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/857x1723/portable/0000755000000000000000000000000014705505552020666 5ustar rootrootlibntruprime-20241021/crypto_encode/857x1723/portable/Makefile0000777000000000000000000000000014705505552024774 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/857x1723/portable/api.h0000777000000000000000000000000014705505552030041 2../../../crypto_decode/857x1723/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x1723/portable/encode.c0000644000000000000000000000431114705505547022272 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[429]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 428;++i) { r0 = (((R0[2*i]+2583)&16383)*10923)>>15; r1 = (((R0[2*i+1]+2583)&16383)*10923)>>15; r2 = r0+r1*(uint32)1723; *out++ = r2; r2 >>= 8; R[i] = r2; } R[428] = (((R0[856]+2583)&16383)*10923)>>15; for (i = 0;i < 214;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11597; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[214] = R[428]; for (i = 0;i < 107;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2053; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[107] = R[214]; for (i = 0;i < 53;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)65; R[i] = r2; } r0 = R[106]; r1 = R[107]; r2 = r0+r1*(uint32)65; *out++ = r2; r2 >>= 8; R[53] = r2; for (i = 0;i < 26;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)4225; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[52]; r1 = R[53]; r2 = r0+r1*(uint32)4225; *out++ = r2; r2 >>= 8; R[26] = r2; for (i = 0;i < 13;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)273; *out++ = r2; r2 >>= 8; R[i] = r2; } R[13] = R[26]; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)292; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)334; *out++ = r2; r2 >>= 8; R[i] = r2; } R[3] = R[6]; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)436; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)743; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/857x1723/portable/encodegen.py0000777000000000000000000000000014705505552032672 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/0000755000000000000000000000000014705505547020132 5ustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/avx/0000755000000000000000000000000014705505552020724 5ustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/avx/Makefile0000644000000000000000000000015714705505547022373 0ustar rootrootencode.c: encodegen.py ./encodegen.py 857 1723 1723 2583 True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/857x1723round/avx/api.h0000777000000000000000000000000014705505552030077 2../../../crypto_decode/857x1723/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/avx/architectures0000777000000000000000000000000014705505552032424 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/avx/encode.c0000644000000000000000000001551514705505547022340 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[429]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 54; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_add_epi16(x,_mm256_add_epi16(x,x)); x = _mm256_add_epi16(x,_mm256_set1_epi16(2583)); x &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1723)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[428] = (((3*((10923*R0[856]+16384)>>15)+2583)&16383)*10923)>>15; reading = (uint16 *) R; writing = R; i = 14; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 20; writing -= 10; out -= 20; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(11597)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(11597)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[214] = R[428]; reading = (uint16 *) R; writing = R; i = 7; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 10; writing -= 5; out -= 10; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2053)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2053)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[107] = R[214]; for (i = 0;i < 53;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)65; R[i] = r2; } r0 = R[106]; r1 = R[107]; r2 = r0+r1*(uint32)65; *out++ = r2; r2 >>= 8; R[53] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 12; writing -= 6; out -= 12; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(4225)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(4225)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } r0 = R[52]; r1 = R[53]; r2 = r0+r1*(uint32)4225; *out++ = r2; r2 >>= 8; R[26] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 6; writing -= 3; out -= 3; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(273)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[13] = R[26]; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)292; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)334; *out++ = r2; r2 >>= 8; R[i] = r2; } R[3] = R[6]; for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)436; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)743; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/857x1723round/avx/encodegen.py0000777000000000000000000000000014705505552031716 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/ref/0000755000000000000000000000000014705505552020702 5ustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/ref/api.h0000777000000000000000000000000014705505552030055 2../../../crypto_decode/857x1723/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x1723round/ref/encode.c0000644000000000000000000000054014705505547022306 0ustar rootroot#include "crypto_encode_857x1723.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p 857 void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_857x1723(out,x); } libntruprime-20241021/crypto_encode/857x3/0000755000000000000000000000000014705505547016630 5ustar rootrootlibntruprime-20241021/crypto_encode/857x3/avx/0000755000000000000000000000000014705505552017422 5ustar rootrootlibntruprime-20241021/crypto_encode/857x3/avx/api.h0000777000000000000000000000000014705505552026343 2../../../crypto_decode/857x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x3/avx/architectures0000777000000000000000000000000014705505552031122 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/857x3/avx/encode.c0000644000000000000000000000400614705505547021027 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 857 #define loops 7 #define overshoot 10 static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/crypto_encode/857x3/ref/0000755000000000000000000000000014705505552017400 5ustar rootrootlibntruprime-20241021/crypto_encode/857x3/ref/api.h0000777000000000000000000000000014705505552026321 2../../../crypto_decode/857x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x3/ref/encode.c0000644000000000000000000000054614705505547021012 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 857 void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/crypto_encode/857x5167/0000755000000000000000000000000014705505547017070 5ustar rootrootlibntruprime-20241021/crypto_encode/857x5167/avx/0000755000000000000000000000000014705505552017662 5ustar rootrootlibntruprime-20241021/crypto_encode/857x5167/avx/Makefile0000644000000000000000000000013314705505547021323 0ustar rootrootencode.c: encodegen.py ./encodegen.py 857 5167 > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/857x5167/avx/api.h0000777000000000000000000000000014705505552027043 2../../../crypto_decode/857x5167/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x5167/avx/architectures0000777000000000000000000000000014705505552031362 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/857x5167/avx/encode.c0000644000000000000000000001614214705505547021273 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[429]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 27; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 8; writing -= 4; out -= 8; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(2583)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(2583)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(5167)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(5167)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[428] = ((R0[856]+2583)&16383); reading = (uint16 *) R; writing = R; i = 27; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(408)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[214] = R[428]; reading = (uint16 *) R; writing = R; i = 14; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 10; writing -= 5; out -= 5; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(651)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[107] = R[214]; reading = (uint16 *) R; writing = R; i = 7; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 6; writing -= 3; out -= 3; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1656)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } r0 = R[106]; r1 = R[107]; r2 = r0+r1*(uint32)1656; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[53] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 12; writing -= 6; out -= 12; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(10713)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(10713)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } r0 = R[52]; r1 = R[53]; r2 = r0+r1*(uint32)10713; *out++ = r2; r2 >>= 8; R[26] = r2; reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 6; writing -= 3; out -= 3; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1752)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[13] = R[26]; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11991; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2194; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[3] = R[6]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)74; R[0] = r2; r0 = R[2]; r1 = R[3]; r2 = r0+r1*(uint32)74; *out++ = r2; r2 >>= 8; R[1] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)5476; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/857x5167/avx/encodegen.py0000777000000000000000000000000014705505552030654 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/857x5167/portable/0000755000000000000000000000000014705505552020674 5ustar rootrootlibntruprime-20241021/crypto_encode/857x5167/portable/Makefile0000777000000000000000000000000014705505552025002 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/857x5167/portable/api.h0000777000000000000000000000000014705505552030055 2../../../crypto_decode/857x5167/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857x5167/portable/encode.c0000644000000000000000000000440714705505547022306 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[429]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 428;++i) { r0 = (R0[2*i]+2583)&16383; r1 = (R0[2*i+1]+2583)&16383; r2 = r0+r1*(uint32)5167; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[428] = (R0[856]+2583)&16383; for (i = 0;i < 214;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)408; *out++ = r2; r2 >>= 8; R[i] = r2; } R[214] = R[428]; for (i = 0;i < 107;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)651; *out++ = r2; r2 >>= 8; R[i] = r2; } R[107] = R[214]; for (i = 0;i < 53;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1656; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[106]; r1 = R[107]; r2 = r0+r1*(uint32)1656; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[53] = r2; for (i = 0;i < 26;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)10713; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[52]; r1 = R[53]; r2 = r0+r1*(uint32)10713; *out++ = r2; r2 >>= 8; R[26] = r2; for (i = 0;i < 13;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1752; *out++ = r2; r2 >>= 8; R[i] = r2; } R[13] = R[26]; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)11991; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 3;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2194; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[3] = R[6]; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)74; R[0] = r2; r0 = R[2]; r1 = R[3]; r2 = r0+r1*(uint32)74; *out++ = r2; r2 >>= 8; R[1] = r2; r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)5476; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/857x5167/portable/encodegen.py0000777000000000000000000000000014705505552032700 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/857xfreeze3/0000755000000000000000000000000014705505547020031 5ustar rootrootlibntruprime-20241021/crypto_encode/857xfreeze3/avx/0000755000000000000000000000000014705505552020623 5ustar rootrootlibntruprime-20241021/crypto_encode/857xfreeze3/avx/api.h0000644000000000000000000000012014705505547021542 0ustar rootroot#define CRYPTO_STRBYTES 857 #define CRYPTO_ITEMS 857 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_encode/857xfreeze3/avx/architectures0000777000000000000000000000000014705505552032323 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/857xfreeze3/avx/encode.c0000644000000000000000000000134014705505547022226 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 857 void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/crypto_encode/857xfreeze3/ref/0000755000000000000000000000000014705505552020601 5ustar rootrootlibntruprime-20241021/crypto_encode/857xfreeze3/ref/api.h0000777000000000000000000000000014705505552023453 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/857xfreeze3/ref/encode.c0000644000000000000000000000100414705505547022201 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 857 /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/crypto_encode/857xint16/0000755000000000000000000000000014705505547017427 5ustar rootrootlibntruprime-20241021/crypto_encode/857xint16/ref/0000755000000000000000000000000014705505552020177 5ustar rootrootlibntruprime-20241021/crypto_encode/857xint16/ref/api.h0000777000000000000000000000000014705505552027675 2../../../crypto_decode/857xint16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/857xint16/ref/encode.c0000644000000000000000000000036314705505547021606 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < 857;++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/crypto_encode/953x2115/0000755000000000000000000000000014705505547017053 5ustar rootrootlibntruprime-20241021/crypto_encode/953x2115/avx/0000755000000000000000000000000014705505552017645 5ustar rootrootlibntruprime-20241021/crypto_encode/953x2115/avx/Makefile0000644000000000000000000000015214705505547021307 0ustar rootrootencode.c: encodegen.py ./encodegen.py 953 2115 2115 3171 True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/953x2115/avx/api.h0000777000000000000000000000000014705505552027011 2../../../crypto_decode/953x2115/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x2115/avx/architectures0000777000000000000000000000000014705505552031345 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/953x2115/avx/encode.c0000644000000000000000000001461214705505547021256 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[477]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 30; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 8; writing -= 4; out -= 8; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3171)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3171)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2115)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2115)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[476] = (((R0[952]+3171)&16383)*10923)>>15; for (i = 0;i < 238;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)69; R[i] = r2; } R[238] = R[476]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 18; writing -= 9; out -= 18; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(4761)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(4761)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[119] = R[238]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(346)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 4; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(468)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(856)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } r0 = R[28]; r1 = R[29]; r2 = r0+r1*(uint32)856; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[14] = r2; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2863; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[7] = R[14]; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)126; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)15876; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)3846; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/953x2115/avx/encodegen.py0000777000000000000000000000000014705505552030637 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/953x2115/portable/0000755000000000000000000000000014705505552020657 5ustar rootrootlibntruprime-20241021/crypto_encode/953x2115/portable/Makefile0000777000000000000000000000000014705505552024765 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/953x2115/portable/api.h0000777000000000000000000000000014705505552030023 2../../../crypto_decode/953x2115/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x2115/portable/encode.c0000644000000000000000000000416414705505547022271 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[477]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 476;++i) { r0 = (((R0[2*i]+3171)&16383)*10923)>>15; r1 = (((R0[2*i+1]+3171)&16383)*10923)>>15; r2 = r0+r1*(uint32)2115; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[476] = (((R0[952]+3171)&16383)*10923)>>15; for (i = 0;i < 238;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)69; R[i] = r2; } R[238] = R[476]; for (i = 0;i < 119;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)4761; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[119] = R[238]; for (i = 0;i < 60;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)346; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 30;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)468; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 14;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)856; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[28]; r1 = R[29]; r2 = r0+r1*(uint32)856; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[14] = r2; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2863; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[7] = R[14]; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)126; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)15876; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)3846; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/953x2115/portable/encodegen.py0000777000000000000000000000000014705505552032663 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/0000755000000000000000000000000014705505547020123 5ustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/avx/0000755000000000000000000000000014705505552020715 5ustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/avx/Makefile0000644000000000000000000000015714705505547022364 0ustar rootrootencode.c: encodegen.py ./encodegen.py 953 2115 2115 3171 True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/953x2115round/avx/api.h0000777000000000000000000000000014705505552030061 2../../../crypto_decode/953x2115/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/avx/architectures0000777000000000000000000000000014705505552032415 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/avx/encode.c0000644000000000000000000001517614705505547022334 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[477]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 30; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 8; writing -= 4; out -= 8; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x2 = _mm256_mulhrs_epi16(x2,_mm256_set1_epi16(10923)); x = _mm256_add_epi16(x,_mm256_add_epi16(x,x)); x2 = _mm256_add_epi16(x2,_mm256_add_epi16(x2,x2)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3171)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3171)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846)); x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(2115)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(2115)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[476] = (((3*((10923*R0[952]+16384)>>15)+3171)&16383)*10923)>>15; for (i = 0;i < 238;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)69; R[i] = r2; } R[238] = R[476]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 18; writing -= 9; out -= 18; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(4761)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(4761)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[119] = R[238]; reading = (uint16 *) R; writing = R; i = 8; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 8; writing -= 4; out -= 4; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(346)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 4; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(468)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } reading = (uint16 *) R; writing = R; i = 2; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(856)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } r0 = R[28]; r1 = R[29]; r2 = r0+r1*(uint32)856; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[14] = r2; for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)2863; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[7] = R[14]; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)126; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)15876; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)3846; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/953x2115round/avx/encodegen.py0000777000000000000000000000000014705505552031707 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/ref/0000755000000000000000000000000014705505552020673 5ustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/ref/api.h0000777000000000000000000000000014705505552030037 2../../../crypto_decode/953x2115/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x2115round/ref/encode.c0000644000000000000000000000054014705505547022277 0ustar rootroot#include "crypto_encode_953x2115.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p 953 void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_953x2115(out,x); } libntruprime-20241021/crypto_encode/953x3/0000755000000000000000000000000014705505547016625 5ustar rootrootlibntruprime-20241021/crypto_encode/953x3/avx/0000755000000000000000000000000014705505552017417 5ustar rootrootlibntruprime-20241021/crypto_encode/953x3/avx/api.h0000777000000000000000000000000014705505552026335 2../../../crypto_decode/953x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x3/avx/architectures0000777000000000000000000000000014705505552031117 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/953x3/avx/encode.c0000644000000000000000000000400614705505547021024 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 953 #define loops 8 #define overshoot 18 static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/crypto_encode/953x3/ref/0000755000000000000000000000000014705505552017375 5ustar rootrootlibntruprime-20241021/crypto_encode/953x3/ref/api.h0000777000000000000000000000000014705505552026313 2../../../crypto_decode/953x3/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x3/ref/encode.c0000644000000000000000000000054614705505547021007 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p 953 void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/crypto_encode/953x6343/0000755000000000000000000000000014705505547017062 5ustar rootrootlibntruprime-20241021/crypto_encode/953x6343/avx/0000755000000000000000000000000014705505552017654 5ustar rootrootlibntruprime-20241021/crypto_encode/953x6343/avx/Makefile0000644000000000000000000000013314705505547021315 0ustar rootrootencode.c: encodegen.py ./encodegen.py 953 6343 > encode.c touch -r encodegen.py encode.c libntruprime-20241021/crypto_encode/953x6343/avx/api.h0000777000000000000000000000000014705505552027027 2../../../crypto_decode/953x6343/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x6343/avx/architectures0000777000000000000000000000000014705505552031354 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/953x6343/avx/encode.c0000644000000000000000000001426114705505547021265 0ustar rootroot/* auto-generated; do not edit */ #include #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[477]; long i; const uint16 *reading; uint16 *writing; uint16 r0,r1; uint32 r2; reading = (uint16 *) R0; writing = R; i = 30; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 8; writing -= 4; out -= 8; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); x = _mm256_add_epi16(x,_mm256_set1_epi16(3171)); x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(3171)); x &= _mm256_set1_epi16(16383); x2 &= _mm256_set1_epi16(16383); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(6343)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(6343)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } R[476] = ((R0[952]+3171)&16383); reading = (uint16 *) R; writing = R; i = 30; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(614)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[238] = R[476]; reading = (uint16 *) R; writing = R; i = 15; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 2; writing -= 1; out -= 1; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1473)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } R[119] = R[238]; reading = (uint16 *) R; writing = R; i = 4; while (i > 0) { __m256i x,x2,y,y2; --i; if (!i) { reading -= 8; writing -= 4; out -= 8; } x = _mm256_loadu_si256((__m256i *) (reading+0)); x2 = _mm256_loadu_si256((__m256i *) (reading+16)); y = x & _mm256_set1_epi32(65535); y2 = x2 & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x2 = _mm256_srli_epi32(x2,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(8476)); x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(8476)); x = _mm256_add_epi32(y,x); x2 = _mm256_add_epi32(y2,x2); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8( 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0, 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0 )); x = _mm256_permute4x64_epi64(x,0xd8); x2 = _mm256_permute4x64_epi64(x2,0xd8); _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31)); _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20)); reading += 32; writing += 16; out += 32; } reading = (uint16 *) R; writing = R; i = 4; while (i > 0) { __m256i x,y; --i; if (!i) { reading -= 4; writing -= 2; out -= 2; } x = _mm256_loadu_si256((__m256i *) reading); y = x & _mm256_set1_epi32(65535); x = _mm256_srli_epi32(x,16); x = _mm256_mullo_epi32(x,_mm256_set1_epi32(1097)); x = _mm256_add_epi32(y,x); x = _mm256_shuffle_epi8(x,_mm256_set_epi8( 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1, 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1 )); x = _mm256_permute4x64_epi64(x,0xd8); _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0)); *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4); *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6); reading += 16; writing += 8; out += 8; } for (i = 0;i < 15;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)4701; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)338; *out++ = r2; r2 >>= 8; R[i] = r2; } R[7] = R[14]; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)447; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)781; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)2383; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/953x6343/avx/encodegen.py0000777000000000000000000000000014705505552030646 2../../../src/encode/PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/953x6343/portable/0000755000000000000000000000000014705505552020666 5ustar rootrootlibntruprime-20241021/crypto_encode/953x6343/portable/Makefile0000777000000000000000000000000014705505552024774 2../avx/Makefileustar rootrootlibntruprime-20241021/crypto_encode/953x6343/portable/api.h0000777000000000000000000000000014705505552030041 2../../../crypto_decode/953x6343/avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953x6343/portable/encode.c0000644000000000000000000000376014705505547022301 0ustar rootroot/* auto-generated; do not edit */ #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int16 crypto_int16 #define uint16 crypto_uint16 #define uint32 crypto_uint32 void crypto_encode(unsigned char *out,const void *v) { const int16 *R0 = v; /* XXX: caller could overlap R with input */ uint16 R[477]; long i; uint16 r0,r1; uint32 r2; for (i = 0;i < 476;++i) { r0 = (R0[2*i]+3171)&16383; r1 = (R0[2*i+1]+3171)&16383; r2 = r0+r1*(uint32)6343; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } R[476] = (R0[952]+3171)&16383; for (i = 0;i < 238;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)614; *out++ = r2; r2 >>= 8; R[i] = r2; } R[238] = R[476]; for (i = 0;i < 119;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1473; *out++ = r2; r2 >>= 8; R[i] = r2; } R[119] = R[238]; for (i = 0;i < 60;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)8476; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 30;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)1097; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 15;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)4701; *out++ = r2; r2 >>= 8; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 7;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)338; *out++ = r2; r2 >>= 8; R[i] = r2; } R[7] = R[14]; for (i = 0;i < 4;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)447; *out++ = r2; r2 >>= 8; R[i] = r2; } for (i = 0;i < 2;++i) { r0 = R[2*i]; r1 = R[2*i+1]; r2 = r0+r1*(uint32)781; *out++ = r2; r2 >>= 8; R[i] = r2; } r0 = R[0]; r1 = R[1]; r2 = r0+r1*(uint32)2383; *out++ = r2; r2 >>= 8; R[0] = r2; r0 = R[0]; *out++ = r0; r0 >>= 8; *out++ = r0; r0 >>= 8; } libntruprime-20241021/crypto_encode/953x6343/portable/encodegen.py0000777000000000000000000000000014705505552032672 2../../../src/encode/PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/crypto_encode/953xfreeze3/0000755000000000000000000000000014705505547020026 5ustar rootrootlibntruprime-20241021/crypto_encode/953xfreeze3/avx/0000755000000000000000000000000014705505552020620 5ustar rootrootlibntruprime-20241021/crypto_encode/953xfreeze3/avx/api.h0000644000000000000000000000012014705505547021537 0ustar rootroot#define CRYPTO_STRBYTES 953 #define CRYPTO_ITEMS 953 #define CRYPTO_ITEMBYTES 2 libntruprime-20241021/crypto_encode/953xfreeze3/avx/architectures0000777000000000000000000000000014705505552032320 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_encode/953xfreeze3/avx/encode.c0000644000000000000000000000134014705505547022223 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 953 void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/crypto_encode/953xfreeze3/ref/0000755000000000000000000000000014705505552020576 5ustar rootrootlibntruprime-20241021/crypto_encode/953xfreeze3/ref/api.h0000777000000000000000000000000014705505552023450 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_encode/953xfreeze3/ref/encode.c0000644000000000000000000000100414705505547022176 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p 953 /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/crypto_encode/953xint16/0000755000000000000000000000000014705505547017424 5ustar rootrootlibntruprime-20241021/crypto_encode/953xint16/ref/0000755000000000000000000000000014705505552020174 5ustar rootrootlibntruprime-20241021/crypto_encode/953xint16/ref/api.h0000777000000000000000000000000014705505552027667 2../../../crypto_decode/953xint16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/953xint16/ref/encode.c0000644000000000000000000000036314705505547021603 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < 953;++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/crypto_encode/int16/0000755000000000000000000000000014705505547016773 5ustar rootrootlibntruprime-20241021/crypto_encode/int16/ref/0000755000000000000000000000000014705505552017543 5ustar rootrootlibntruprime-20241021/crypto_encode/int16/ref/api.h0000777000000000000000000000000014705505552026605 2../../../crypto_decode/int16/ref/api.hustar rootrootlibntruprime-20241021/crypto_encode/int16/ref/encode.c0000777000000000000000000000000014705505552027144 2../../../src/encode/int16/ref/encode.custar rootrootlibntruprime-20241021/crypto_hash/0000755000000000000000000000000014705505547015520 5ustar rootrootlibntruprime-20241021/crypto_hash/sha512/0000755000000000000000000000000014705505547016523 5ustar rootrootlibntruprime-20241021/crypto_hash/sha512/ref/0000755000000000000000000000000014705505547017277 5ustar rootrootlibntruprime-20241021/crypto_hash/sha512/ref/api.h0000644000000000000000000000003014705505547020212 0ustar rootroot#define CRYPTO_BYTES 64 libntruprime-20241021/crypto_hash/sha512/ref/hash.c0000644000000000000000000000326714705505547020376 0ustar rootroot/* 20080913 D. J. Bernstein Public domain. */ #include "crypto_hashblocks_sha512.h" #include "crypto_hash.h" #define blocks crypto_hashblocks_sha512 static const unsigned char iv[64] = { 0x6a,0x09,0xe6,0x67,0xf3,0xbc,0xc9,0x08, 0xbb,0x67,0xae,0x85,0x84,0xca,0xa7,0x3b, 0x3c,0x6e,0xf3,0x72,0xfe,0x94,0xf8,0x2b, 0xa5,0x4f,0xf5,0x3a,0x5f,0x1d,0x36,0xf1, 0x51,0x0e,0x52,0x7f,0xad,0xe6,0x82,0xd1, 0x9b,0x05,0x68,0x8c,0x2b,0x3e,0x6c,0x1f, 0x1f,0x83,0xd9,0xab,0xfb,0x41,0xbd,0x6b, 0x5b,0xe0,0xcd,0x19,0x13,0x7e,0x21,0x79 } ; typedef unsigned long long uint64; void crypto_hash(unsigned char *out,const unsigned char *in,long long inlen) { unsigned char h[64]; unsigned char padded[256]; int i; unsigned long long bytes = inlen; for (i = 0;i < 64;++i) h[i] = iv[i]; blocks(h,in,inlen); in += inlen; inlen &= 127; in -= inlen; for (i = 0;i < inlen;++i) padded[i] = in[i]; padded[inlen] = 0x80; if (inlen < 112) { for (i = inlen + 1;i < 119;++i) padded[i] = 0; padded[119] = bytes >> 61; padded[120] = bytes >> 53; padded[121] = bytes >> 45; padded[122] = bytes >> 37; padded[123] = bytes >> 29; padded[124] = bytes >> 21; padded[125] = bytes >> 13; padded[126] = bytes >> 5; padded[127] = bytes << 3; blocks(h,padded,128); } else { for (i = inlen + 1;i < 247;++i) padded[i] = 0; padded[247] = bytes >> 61; padded[248] = bytes >> 53; padded[249] = bytes >> 45; padded[250] = bytes >> 37; padded[251] = bytes >> 29; padded[252] = bytes >> 21; padded[253] = bytes >> 13; padded[254] = bytes >> 5; padded[255] = bytes << 3; blocks(h,padded,256); } for (i = 0;i < 64;++i) out[i] = h[i]; } libntruprime-20241021/crypto_hash/sha512/ref/implementors0000644000000000000000000000007614705505547021743 0ustar rootrootDaniel J. Bernstein (wrapper around crypto_hashblocks/sha512) libntruprime-20241021/crypto_hashblocks/0000755000000000000000000000000014705505547016716 5ustar rootrootlibntruprime-20241021/crypto_hashblocks/sha512/0000755000000000000000000000000014705505547017721 5ustar rootrootlibntruprime-20241021/crypto_hashblocks/sha512/avx2/0000755000000000000000000000000014705505547020601 5ustar rootrootlibntruprime-20241021/crypto_hashblocks/sha512/avx2/Makefile0000644000000000000000000000174014705505547022243 0ustar rootrootinner.S: \ round01.q \ round23.q \ round45.q \ round67.q \ round89.q \ round1011.q \ round1213.q \ round1415.q \ expand0.q \ expand4.q \ expand8.q \ expand12.q \ rer0.q \ rer4.q \ rer8.q \ rer12.q \ inner.q \ inner.S.do ./inner.S.do < inner.q > inner.S round01.q: round.py ./round.py 0 > round01.q round23.q: round.py ./round.py 1 > round23.q round45.q: round.py ./round.py 2 > round45.q round67.q: round.py ./round.py 3 > round67.q round89.q: round.py ./round.py 4 > round89.q round1011.q: round.py ./round.py 5 > round1011.q round1213.q: round.py ./round.py 6 > round1213.q round1415.q: round.py ./round.py 7 > round1415.q expand0.q: expand.py ./expand.py 0 > expand0.q expand4.q: expand.py ./expand.py 4 > expand4.q expand8.q: expand.py ./expand.py 8 > expand8.q expand12.q: expand.py ./expand.py 12 > expand12.q rer0.q: rer.py ./rer.py 0 > rer0.q rer4.q: rer.py ./rer.py 4 > rer4.q rer8.q: rer.py ./rer.py 8 > rer8.q rer12.q: rer.py ./rer.py 12 > rer12.q libntruprime-20241021/crypto_hashblocks/sha512/avx2/api.h0000644000000000000000000000007314705505547021523 0ustar rootroot#define CRYPTO_STATEBYTES 64 #define CRYPTO_BLOCKBYTES 128 libntruprime-20241021/crypto_hashblocks/sha512/avx2/architectures0000644000000000000000000000003614705505547023370 0ustar rootrootamd64 bmi2 avx2 x86 bmi2 avx2 libntruprime-20241021/crypto_hashblocks/sha512/avx2/constants.c0000644000000000000000000000471214705505547022765 0ustar rootroot#include "crypto_hashblocks.h" #include "inner.h" static const crypto_uint64 constants[84] = { 0x428a2f98d728ae22ULL , 0x7137449123ef65cdULL , 0xb5c0fbcfec4d3b2fULL , 0xe9b5dba58189dbbcULL , 0x3956c25bf348b538ULL , 0x59f111f1b605d019ULL , 0x923f82a4af194f9bULL , 0xab1c5ed5da6d8118ULL , 0xd807aa98a3030242ULL , 0x12835b0145706fbeULL , 0x243185be4ee4b28cULL , 0x550c7dc3d5ffb4e2ULL , 0x72be5d74f27b896fULL , 0x80deb1fe3b1696b1ULL , 0x9bdc06a725c71235ULL , 0xc19bf174cf692694ULL , 0xe49b69c19ef14ad2ULL , 0xefbe4786384f25e3ULL , 0x0fc19dc68b8cd5b5ULL , 0x240ca1cc77ac9c65ULL , 0x2de92c6f592b0275ULL , 0x4a7484aa6ea6e483ULL , 0x5cb0a9dcbd41fbd4ULL , 0x76f988da831153b5ULL , 0x983e5152ee66dfabULL , 0xa831c66d2db43210ULL , 0xb00327c898fb213fULL , 0xbf597fc7beef0ee4ULL , 0xc6e00bf33da88fc2ULL , 0xd5a79147930aa725ULL , 0x06ca6351e003826fULL , 0x142929670a0e6e70ULL , 0x27b70a8546d22ffcULL , 0x2e1b21385c26c926ULL , 0x4d2c6dfc5ac42aedULL , 0x53380d139d95b3dfULL , 0x650a73548baf63deULL , 0x766a0abb3c77b2a8ULL , 0x81c2c92e47edaee6ULL , 0x92722c851482353bULL , 0xa2bfe8a14cf10364ULL , 0xa81a664bbc423001ULL , 0xc24b8b70d0f89791ULL , 0xc76c51a30654be30ULL , 0xd192e819d6ef5218ULL , 0xd69906245565a910ULL , 0xf40e35855771202aULL , 0x106aa07032bbd1b8ULL , 0x19a4c116b8d2d0c8ULL , 0x1e376c085141ab53ULL , 0x2748774cdf8eeb99ULL , 0x34b0bcb5e19b48a8ULL , 0x391c0cb3c5c95a63ULL , 0x4ed8aa4ae3418acbULL , 0x5b9cca4f7763e373ULL , 0x682e6ff3d6b2b8a3ULL , 0x748f82ee5defb2fcULL , 0x78a5636f43172f60ULL , 0x84c87814a1f0ab72ULL , 0x8cc702081a6439ecULL , 0x90befffa23631e28ULL , 0xa4506cebde82bde9ULL , 0xbef9a3f7b2c67915ULL , 0xc67178f2e372532bULL , 0xca273eceea26619cULL , 0xd186b8c721c0c207ULL , 0xeada7dd6cde0eb1eULL , 0xf57d4f7fee6ed178ULL , 0x06f067aa72176fbaULL , 0x0a637dc5a2c898a6ULL , 0x113f9804bef90daeULL , 0x1b710b35131c471bULL , 0x28db77f523047d84ULL , 0x32caab7b40c72493ULL , 0x3c9ebe0a15c9bebcULL , 0x431d67c49c100d4cULL , 0x4cc5d4becb3e42b6ULL , 0x597f299cfc657e2aULL , 0x5fcb6fab3ad6faecULL , 0x6c44198c4a475817ULL /* constants for the AVX code: */ , 0x0001020304050607ULL , 0x08090a0b0c0d0e0fULL , 0x0001020304050607ULL , 0x08090a0b0c0d0e0fULL }; #define CUTOFF 65536 /* must be multiple of 128 */ int crypto_hashblocks(unsigned char *statebytes,const unsigned char *in,long long inlen) { while (inlen >= CUTOFF) { inner(statebytes,in,CUTOFF,constants); /* returns 0 */ in += CUTOFF; inlen -= CUTOFF; } if (inlen < 128) return inlen; return inner(statebytes,in,inlen,constants); } libntruprime-20241021/crypto_hashblocks/sha512/avx2/expand.py0000755000000000000000000000530714705505547022442 0ustar rootroot#!/usr/bin/env python3 import sys for i in (0,4,8,12): if len(sys.argv) > 1: if sys.argv[1] != str(i): continue i0 = (i+0)&15 i1 = (i+1)&15 i9 = (i+9)&15 i14 = (i+14)&15 print(' X%d = mem256[&w + %d]' % (i1,8*i1)) print(' W%d = mem128[&w + %d],0' % (i14,8*i14)) print('') print(' 4x X%dright1 = X%d unsigned>> 1' % (i1,i1)) print(' 4x X%dleft63 = X%d << 63' % (i1,i1)) print(' X%dsigma0 = X%dright1 ^ X%dleft63' % (i1,i1,i1)) print(' 4x X%dright8 = X%d unsigned>> 8' % (i1,i1)) print(' X%dsigma0 = X%dsigma0 ^ X%dright8' % (i1,i1,i1)) print(' 2x,0 W%dright19 = W%d unsigned>> 19' % (i14,i14)) print(' 4x X%dleft56 = X%d << 56' % (i1,i1)) print(' 2x,0 W%dleft45 = W%d << 45' % (i14,i14)) print(' X%dsigma0 = X%dsigma0 ^ X%dleft56' % (i1,i1,i1)) print(' 1x,0 W%dsigma1 = W%dright19 ^ W%dleft45' % (i14,i14,i14)) print(' 4x X%dright7 = X%d unsigned>> 7' % (i1,i1)) print(' 2x,0 W%dright61 = W%d unsigned>> 61' % (i14,i14)) print(' X%dsigma0 = X%dsigma0 ^ X%dright7' % (i1,i1,i1)) print(' 1x,0 W%dsigma1 ^= W%dright61' % (i14,i14)) print(' 4x X%d = X%d + X%dsigma0' % (i0,i0,i1)) print(' 2x,0 W%dleft3 = W%d << 3' % (i14,i14)) print(' 4x X%d = X%d + mem256[&w + %d]' % (i0,i0,8*i9)) print(' 1x,0 W%dsigma1 ^= W%dleft3' % (i14,i14)) print(' 2x,0 W%dright6 = W%d unsigned>> 6' % (i14,i14)) print(' 1x,0 W%dsigma1 ^= W%dright6' % (i14,i14)) print(' 4x X%d = W%dsigma1 + X%d' % (i0,i14,i0)) print('') print(' 2x,0 W%dright19 = X%d unsigned>> 19' % (i0,i0)) print(' 2x,0 W%dleft45 = X%d << 45' % (i0,i0)) print(' 1x,0 W%dsigma1 = W%dright19 ^ W%dleft45' % (i0,i0,i0)) print(' 2x,0 W%dright61 = X%d unsigned>> 61' % (i0,i0)) print(' 1x,0 W%dsigma1 ^= W%dright61' % (i0,i0)) print(' 2x,0 W%dleft3 = X%d << 3' % (i0,i0)) print(' 1x,0 W%dsigma1 ^= W%dleft3' % (i0,i0)) print(' 2x,0 W%dright6 = X%d unsigned>> 6' % (i0,i0)) print(' 1x,0 W%dsigma1 ^= W%dright6' % (i0,i0)) print(' W%dsigma1 = W%dsigma1[1],W%dsigma1[0]' % (i0,i0,i0)) print('') print(' 4x X%d = X%d + W%dsigma1' % (i0,i0,i0)) if i == 0: print(' mem256[&w + 128] = X%d' % (i0)) print(' mem256[&w + %d] = X%d' % (8*i0,i0)) print(' 4x D%d = X%d + mem256[constants + %d]' % (i0,i0,8*i0)) print(' wc%d%d%d%d = D%d' % (i,i+1,i+2,i+3,i0)) print('') libntruprime-20241021/crypto_hashblocks/sha512/avx2/expand0.q0000644000000000000000000000303614705505547022324 0ustar rootroot X1 = mem256[&w + 8] W14 = mem128[&w + 112],0 4x X1right1 = X1 unsigned>> 1 4x X1left63 = X1 << 63 X1sigma0 = X1right1 ^ X1left63 4x X1right8 = X1 unsigned>> 8 X1sigma0 = X1sigma0 ^ X1right8 2x,0 W14right19 = W14 unsigned>> 19 4x X1left56 = X1 << 56 2x,0 W14left45 = W14 << 45 X1sigma0 = X1sigma0 ^ X1left56 1x,0 W14sigma1 = W14right19 ^ W14left45 4x X1right7 = X1 unsigned>> 7 2x,0 W14right61 = W14 unsigned>> 61 X1sigma0 = X1sigma0 ^ X1right7 1x,0 W14sigma1 ^= W14right61 4x X0 = X0 + X1sigma0 2x,0 W14left3 = W14 << 3 4x X0 = X0 + mem256[&w + 72] 1x,0 W14sigma1 ^= W14left3 2x,0 W14right6 = W14 unsigned>> 6 1x,0 W14sigma1 ^= W14right6 4x X0 = W14sigma1 + X0 2x,0 W0right19 = X0 unsigned>> 19 2x,0 W0left45 = X0 << 45 1x,0 W0sigma1 = W0right19 ^ W0left45 2x,0 W0right61 = X0 unsigned>> 61 1x,0 W0sigma1 ^= W0right61 2x,0 W0left3 = X0 << 3 1x,0 W0sigma1 ^= W0left3 2x,0 W0right6 = X0 unsigned>> 6 1x,0 W0sigma1 ^= W0right6 W0sigma1 = W0sigma1[1],W0sigma1[0] 4x X0 = X0 + W0sigma1 mem256[&w + 128] = X0 mem256[&w + 0] = X0 4x D0 = X0 + mem256[constants + 0] wc0123 = D0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/expand12.q0000644000000000000000000000307614705505547022413 0ustar rootroot X13 = mem256[&w + 104] W10 = mem128[&w + 80],0 4x X13right1 = X13 unsigned>> 1 4x X13left63 = X13 << 63 X13sigma0 = X13right1 ^ X13left63 4x X13right8 = X13 unsigned>> 8 X13sigma0 = X13sigma0 ^ X13right8 2x,0 W10right19 = W10 unsigned>> 19 4x X13left56 = X13 << 56 2x,0 W10left45 = W10 << 45 X13sigma0 = X13sigma0 ^ X13left56 1x,0 W10sigma1 = W10right19 ^ W10left45 4x X13right7 = X13 unsigned>> 7 2x,0 W10right61 = W10 unsigned>> 61 X13sigma0 = X13sigma0 ^ X13right7 1x,0 W10sigma1 ^= W10right61 4x X12 = X12 + X13sigma0 2x,0 W10left3 = W10 << 3 4x X12 = X12 + mem256[&w + 40] 1x,0 W10sigma1 ^= W10left3 2x,0 W10right6 = W10 unsigned>> 6 1x,0 W10sigma1 ^= W10right6 4x X12 = W10sigma1 + X12 2x,0 W12right19 = X12 unsigned>> 19 2x,0 W12left45 = X12 << 45 1x,0 W12sigma1 = W12right19 ^ W12left45 2x,0 W12right61 = X12 unsigned>> 61 1x,0 W12sigma1 ^= W12right61 2x,0 W12left3 = X12 << 3 1x,0 W12sigma1 ^= W12left3 2x,0 W12right6 = X12 unsigned>> 6 1x,0 W12sigma1 ^= W12right6 W12sigma1 = W12sigma1[1],W12sigma1[0] 4x X12 = X12 + W12sigma1 mem256[&w + 96] = X12 4x D12 = X12 + mem256[constants + 96] wc12131415 = D12 libntruprime-20241021/crypto_hashblocks/sha512/avx2/expand4.q0000644000000000000000000000275214705505547022334 0ustar rootroot X5 = mem256[&w + 40] W2 = mem128[&w + 16],0 4x X5right1 = X5 unsigned>> 1 4x X5left63 = X5 << 63 X5sigma0 = X5right1 ^ X5left63 4x X5right8 = X5 unsigned>> 8 X5sigma0 = X5sigma0 ^ X5right8 2x,0 W2right19 = W2 unsigned>> 19 4x X5left56 = X5 << 56 2x,0 W2left45 = W2 << 45 X5sigma0 = X5sigma0 ^ X5left56 1x,0 W2sigma1 = W2right19 ^ W2left45 4x X5right7 = X5 unsigned>> 7 2x,0 W2right61 = W2 unsigned>> 61 X5sigma0 = X5sigma0 ^ X5right7 1x,0 W2sigma1 ^= W2right61 4x X4 = X4 + X5sigma0 2x,0 W2left3 = W2 << 3 4x X4 = X4 + mem256[&w + 104] 1x,0 W2sigma1 ^= W2left3 2x,0 W2right6 = W2 unsigned>> 6 1x,0 W2sigma1 ^= W2right6 4x X4 = W2sigma1 + X4 2x,0 W4right19 = X4 unsigned>> 19 2x,0 W4left45 = X4 << 45 1x,0 W4sigma1 = W4right19 ^ W4left45 2x,0 W4right61 = X4 unsigned>> 61 1x,0 W4sigma1 ^= W4right61 2x,0 W4left3 = X4 << 3 1x,0 W4sigma1 ^= W4left3 2x,0 W4right6 = X4 unsigned>> 6 1x,0 W4sigma1 ^= W4right6 W4sigma1 = W4sigma1[1],W4sigma1[0] 4x X4 = X4 + W4sigma1 mem256[&w + 32] = X4 4x D4 = X4 + mem256[constants + 32] wc4567 = D4 libntruprime-20241021/crypto_hashblocks/sha512/avx2/expand8.q0000644000000000000000000000275214705505547022340 0ustar rootroot X9 = mem256[&w + 72] W6 = mem128[&w + 48],0 4x X9right1 = X9 unsigned>> 1 4x X9left63 = X9 << 63 X9sigma0 = X9right1 ^ X9left63 4x X9right8 = X9 unsigned>> 8 X9sigma0 = X9sigma0 ^ X9right8 2x,0 W6right19 = W6 unsigned>> 19 4x X9left56 = X9 << 56 2x,0 W6left45 = W6 << 45 X9sigma0 = X9sigma0 ^ X9left56 1x,0 W6sigma1 = W6right19 ^ W6left45 4x X9right7 = X9 unsigned>> 7 2x,0 W6right61 = W6 unsigned>> 61 X9sigma0 = X9sigma0 ^ X9right7 1x,0 W6sigma1 ^= W6right61 4x X8 = X8 + X9sigma0 2x,0 W6left3 = W6 << 3 4x X8 = X8 + mem256[&w + 8] 1x,0 W6sigma1 ^= W6left3 2x,0 W6right6 = W6 unsigned>> 6 1x,0 W6sigma1 ^= W6right6 4x X8 = W6sigma1 + X8 2x,0 W8right19 = X8 unsigned>> 19 2x,0 W8left45 = X8 << 45 1x,0 W8sigma1 = W8right19 ^ W8left45 2x,0 W8right61 = X8 unsigned>> 61 1x,0 W8sigma1 ^= W8right61 2x,0 W8left3 = X8 << 3 1x,0 W8sigma1 ^= W8left3 2x,0 W8right6 = X8 unsigned>> 6 1x,0 W8sigma1 ^= W8right6 W8sigma1 = W8sigma1[1],W8sigma1[0] 4x X8 = X8 + W8sigma1 mem256[&w + 64] = X8 4x D8 = X8 + mem256[constants + 64] wc891011 = D8 libntruprime-20241021/crypto_hashblocks/sha512/avx2/implementors0000644000000000000000000000002414705505547023236 0ustar rootrootDaniel J. Bernstein libntruprime-20241021/crypto_hashblocks/sha512/avx2/inner.S0000644000000000000000000045312114705505547022046 0ustar rootroot#include "crypto_asm_hidden.h" // linker define inner # qhasm: int64 input_0 # qhasm: int64 input_1 # qhasm: int64 input_2 # qhasm: int64 input_3 # qhasm: int64 input_4 # qhasm: int64 input_5 # qhasm: stack64 input_6 # qhasm: stack64 input_7 # qhasm: int64 caller_r11 # qhasm: int64 caller_r12 # qhasm: int64 caller_r13 # qhasm: int64 caller_r14 # qhasm: int64 caller_r15 # qhasm: int64 caller_rbx # qhasm: int64 caller_rbp # qhasm: stack64 r11_stack # qhasm: stack64 r12_stack # qhasm: stack64 r13_stack # qhasm: stack64 r14_stack # qhasm: stack64 r15_stack # qhasm: stack64 rbx_stack # qhasm: stack64 rbp_stack # qhasm: int64 statebytes # qhasm: stack64 statebytes_stack # qhasm: int64 in # qhasm: stack64 in_stack # qhasm: int64 inlen # qhasm: stack64 inlen_stack # qhasm: int64 constants # qhasm: stack64 constants_stack # qhasm: int64 r0 # qhasm: int64 r1 # qhasm: int64 r2 # qhasm: int64 r3 # qhasm: int64 r4 # qhasm: int64 r5 # qhasm: int64 r6 # qhasm: int64 r7 # qhasm: int64 i # qhasm: stack256 state0123 # qhasm: stack256 state4567 # qhasm: reg256 X0 # qhasm: reg256 X4 # qhasm: reg256 X8 # qhasm: reg256 X12 # qhasm: reg256 X1 # qhasm: reg256 X5 # qhasm: reg256 X9 # qhasm: reg256 X13 # qhasm: reg256 bigendian64 # qhasm: reg256 D0 # qhasm: reg256 D4 # qhasm: reg256 D8 # qhasm: reg256 D12 # qhasm: reg256 W0 # qhasm: reg256 W2 # qhasm: reg256 W4 # qhasm: reg256 W6 # qhasm: reg256 W8 # qhasm: reg256 W10 # qhasm: reg256 W12 # qhasm: reg256 W14 # qhasm: stack1280 w # qhasm: stack256 wc0123 # qhasm: stack256 wc4567 # qhasm: stack256 wc891011 # qhasm: stack256 wc12131415 # qhasm: int64 r0andr1 # qhasm: int64 r2andr3 # qhasm: int64 r4andr5 # qhasm: int64 r6andr7 # qhasm: int64 ch0 # qhasm: int64 ch1 # qhasm: int64 ch2 # qhasm: int64 ch3 # qhasm: int64 ch4 # qhasm: int64 ch5 # qhasm: int64 ch6 # qhasm: int64 ch7 # qhasm: int64 maj0 # qhasm: int64 maj1 # qhasm: int64 maj2 # qhasm: int64 maj3 # qhasm: int64 maj4 # qhasm: int64 maj5 # qhasm: int64 maj6 # qhasm: int64 maj7 # qhasm: int64 r0Sigma0 # qhasm: int64 r1Sigma0 # qhasm: int64 r2Sigma0 # qhasm: int64 r3Sigma0 # qhasm: int64 r4Sigma0 # qhasm: int64 r5Sigma0 # qhasm: int64 r6Sigma0 # qhasm: int64 r7Sigma0 # qhasm: int64 r0Sigma1 # qhasm: int64 r1Sigma1 # qhasm: int64 r2Sigma1 # qhasm: int64 r3Sigma1 # qhasm: int64 r4Sigma1 # qhasm: int64 r5Sigma1 # qhasm: int64 r6Sigma1 # qhasm: int64 r7Sigma1 # qhasm: int64 r018 # qhasm: int64 r118 # qhasm: int64 r218 # qhasm: int64 r318 # qhasm: int64 r418 # qhasm: int64 r518 # qhasm: int64 r618 # qhasm: int64 r718 # qhasm: int64 r041 # qhasm: int64 r141 # qhasm: int64 r241 # qhasm: int64 r341 # qhasm: int64 r441 # qhasm: int64 r541 # qhasm: int64 r641 # qhasm: int64 r741 # qhasm: int64 r034 # qhasm: int64 r134 # qhasm: int64 r234 # qhasm: int64 r334 # qhasm: int64 r434 # qhasm: int64 r534 # qhasm: int64 r634 # qhasm: int64 r734 # qhasm: int64 r039 # qhasm: int64 r139 # qhasm: int64 r239 # qhasm: int64 r339 # qhasm: int64 r439 # qhasm: int64 r539 # qhasm: int64 r639 # qhasm: int64 r739 # qhasm: reg256 X1right1 # qhasm: reg256 X1left63 # qhasm: reg256 X1right8 # qhasm: reg256 X1left56 # qhasm: reg256 X1right7 # qhasm: reg256 X1sigma0 # qhasm: reg256 X5right1 # qhasm: reg256 X5left63 # qhasm: reg256 X5right8 # qhasm: reg256 X5left56 # qhasm: reg256 X5right7 # qhasm: reg256 X5sigma0 # qhasm: reg256 X9right1 # qhasm: reg256 X9left63 # qhasm: reg256 X9right8 # qhasm: reg256 X9left56 # qhasm: reg256 X9right7 # qhasm: reg256 X9sigma0 # qhasm: reg256 X13right1 # qhasm: reg256 X13left63 # qhasm: reg256 X13right8 # qhasm: reg256 X13left56 # qhasm: reg256 X13right7 # qhasm: reg256 X13sigma0 # qhasm: reg256 W0right19 # qhasm: reg256 W0right61 # qhasm: reg256 W0right6 # qhasm: reg256 W0left45 # qhasm: reg256 W0left3 # qhasm: reg256 W0sigma1 # qhasm: reg256 W2right19 # qhasm: reg256 W2right61 # qhasm: reg256 W2right6 # qhasm: reg256 W2left45 # qhasm: reg256 W2left3 # qhasm: reg256 W2sigma1 # qhasm: reg256 W4right19 # qhasm: reg256 W4right61 # qhasm: reg256 W4right6 # qhasm: reg256 W4left45 # qhasm: reg256 W4left3 # qhasm: reg256 W4sigma1 # qhasm: reg256 W6right19 # qhasm: reg256 W6right61 # qhasm: reg256 W6right6 # qhasm: reg256 W6left45 # qhasm: reg256 W6left3 # qhasm: reg256 W6sigma1 # qhasm: reg256 W8right19 # qhasm: reg256 W8right61 # qhasm: reg256 W8right6 # qhasm: reg256 W8left45 # qhasm: reg256 W8left3 # qhasm: reg256 W8sigma1 # qhasm: reg256 W10right19 # qhasm: reg256 W10right61 # qhasm: reg256 W10right6 # qhasm: reg256 W10left45 # qhasm: reg256 W10left3 # qhasm: reg256 W10sigma1 # qhasm: reg256 W12right19 # qhasm: reg256 W12right61 # qhasm: reg256 W12right6 # qhasm: reg256 W12left45 # qhasm: reg256 W12left3 # qhasm: reg256 W12sigma1 # qhasm: reg256 W14right19 # qhasm: reg256 W14right61 # qhasm: reg256 W14right6 # qhasm: reg256 W14left45 # qhasm: reg256 W14left3 # qhasm: reg256 W14sigma1 # qhasm: enter CRYPTO_SHARED_NAMESPACE(inner) .p2align 7 ASM_HIDDEN _CRYPTO_SHARED_NAMESPACE(inner) .global _CRYPTO_SHARED_NAMESPACE(inner) ASM_HIDDEN CRYPTO_SHARED_NAMESPACE(inner) .global CRYPTO_SHARED_NAMESPACE(inner) _CRYPTO_SHARED_NAMESPACE(inner): CRYPTO_SHARED_NAMESPACE(inner): mov %rsp,%r11 and $511,%r11 add $416,%r11 sub %r11,%rsp # qhasm: constants = input_3 # asm 1: mov constants=int64#5 # asm 2: mov constants=%r8 mov %rcx,%r8 # qhasm: bigendian64 = mem256[input_3+640] # asm 1: vmovupd 640(bigendian64=reg256#1 # asm 2: vmovupd 640(bigendian64=%ymm0 vmovupd 640(%rcx),%ymm0 # qhasm: X0 = mem256[input_0+0] # asm 1: vmovupd 0(X0=reg256#2 # asm 2: vmovupd 0(X0=%ymm1 vmovupd 0(%rdi),%ymm1 # qhasm: statebytes = input_0 # asm 1: mov statebytes=int64#4 # asm 2: mov statebytes=%rcx mov %rdi,%rcx # qhasm: X4 = mem256[input_0+32] # asm 1: vmovupd 32(X4=reg256#3 # asm 2: vmovupd 32(X4=%ymm2 vmovupd 32(%rdi),%ymm2 # qhasm: 2x 16x X0 = X0[bigendian64] # asm 1: vpshufb X0=reg256#2 # asm 2: vpshufb X0=%ymm1 vpshufb %ymm0,%ymm1,%ymm1 # qhasm: 2x 16x X4 = X4[bigendian64] # asm 1: vpshufb X4=reg256#3 # asm 2: vpshufb X4=%ymm2 vpshufb %ymm0,%ymm2,%ymm2 # qhasm: state0123 = X0 # asm 1: vmovapd state0123=stack256#1 # asm 2: vmovapd state0123=0(%rsp) vmovapd %ymm1,0(%rsp) # qhasm: r11_stack = caller_r11 # asm 1: movq r11_stack=stack64#1 # asm 2: movq r11_stack=320(%rsp) movq %r11,320(%rsp) # qhasm: state4567 = X4 # asm 1: vmovapd state4567=stack256#2 # asm 2: vmovapd state4567=32(%rsp) vmovapd %ymm2,32(%rsp) # qhasm: r13_stack = caller_r13 # asm 1: movq r13_stack=stack64#2 # asm 2: movq r13_stack=328(%rsp) movq %r13,328(%rsp) # qhasm: r12_stack = caller_r12 # asm 1: movq r12_stack=stack64#3 # asm 2: movq r12_stack=336(%rsp) movq %r12,336(%rsp) # qhasm: r14_stack = caller_r14 # asm 1: movq r14_stack=stack64#4 # asm 2: movq r14_stack=344(%rsp) movq %r14,344(%rsp) # qhasm: rbx_stack = caller_rbx # asm 1: movq rbx_stack=stack64#5 # asm 2: movq rbx_stack=352(%rsp) movq %rbx,352(%rsp) # qhasm: r15_stack = caller_r15 # asm 1: movq r15_stack=stack64#6 # asm 2: movq r15_stack=360(%rsp) movq %r15,360(%rsp) # qhasm: rbp_stack = caller_rbp # asm 1: movq rbp_stack=stack64#7 # asm 2: movq rbp_stack=368(%rsp) movq %rbp,368(%rsp) # qhasm: inlen_stack = input_2 # asm 1: movq inlen_stack=stack64#8 # asm 2: movq inlen_stack=376(%rsp) movq %rdx,376(%rsp) # qhasm: in = input_1 # asm 1: mov in=int64#1 # asm 2: mov in=%rdi mov %rsi,%rdi # qhasm: statebytes_stack = statebytes # asm 1: movq statebytes_stack=stack64#9 # asm 2: movq statebytes_stack=384(%rsp) movq %rcx,384(%rsp) # qhasm: r0 = state0123[0] # asm 1: movq r0=int64#2 # asm 2: movq r0=%rsi movq 0(%rsp),%rsi # qhasm: r2 = state0123[2] # asm 1: movq r2=int64#3 # asm 2: movq r2=%rdx movq 16(%rsp),%rdx # qhasm: constants_stack = constants # asm 1: movq constants_stack=stack64#10 # asm 2: movq constants_stack=392(%rsp) movq %r8,392(%rsp) # qhasm: r1 = state0123[1] # asm 1: movq r1=int64#4 # asm 2: movq r1=%rcx movq 8(%rsp),%rcx # qhasm: r3 = state0123[3] # asm 1: movq r3=int64#6 # asm 2: movq r3=%r9 movq 24(%rsp),%r9 # qhasm: r5 = state4567[1] # asm 1: movq r5=int64#8 # asm 2: movq r5=%r10 movq 40(%rsp),%r10 # qhasm: r4 = state4567[0] # asm 1: movq r4=int64#9 # asm 2: movq r4=%r11 movq 32(%rsp),%r11 # qhasm: r6 = state4567[2] # asm 1: movq r6=int64#10 # asm 2: movq r6=%r12 movq 48(%rsp),%r12 # qhasm: r7 = state4567[3] # asm 1: movq r7=int64#11 # asm 2: movq r7=%r13 movq 56(%rsp),%r13 # qhasm: new w # qhasm: nop9 .byte 0x66,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00 # qhasm: nop9 .byte 0x66,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00 # qhasm: nop2 .byte 0x66,0x90 # qhasm: outerloop: ._outerloop: # qhasm: X0 = mem256[in + 0] # asm 1: vmovupd 0(X0=reg256#2 # asm 2: vmovupd 0(X0=%ymm1 vmovupd 0(%rdi),%ymm1 # qhasm: 2x 16x X0 = X0[bigendian64] # asm 1: vpshufb X0=reg256#2 # asm 2: vpshufb X0=%ymm1 vpshufb %ymm0,%ymm1,%ymm1 # qhasm: ch7 = r6 # asm 1: mov ch7=int64#7 # asm 2: mov ch7=%rax mov %r12,%rax # qhasm: r4Sigma1 = r4>>>14 # asm 1: rorx $14,r4Sigma1=int64#12 # asm 2: rorx $14,r4Sigma1=%r14 rorx $14,%r11,%r14 # qhasm: ch7 ^= r5 # asm 1: xor D0=reg256#3 # asm 2: vpaddq 0(D0=%ymm2 vpaddq 0(%r8),%ymm1,%ymm2 # qhasm: r418 = r4>>>18 # asm 1: rorx $18,r418=int64#13 # asm 2: rorx $18,r418=%r15 rorx $18,%r11,%r15 # qhasm: r4Sigma1 ^= r418 # asm 1: xor >>41 # asm 1: rorx $41,r441=int64#13 # asm 2: rorx $41,r441=%r15 rorx $41,%r11,%r15 # qhasm: r4Sigma1 ^= r441 # asm 1: xor >>28 # asm 1: rorx $28,r0Sigma0=int64#13 # asm 2: rorx $28,r0Sigma0=%r15 rorx $28,%rsi,%r15 # qhasm: ch7 ^= r6 # asm 1: xor >>34 # asm 1: rorx $34,r034=int64#14 # asm 2: rorx $34,r034=%rbx rorx $34,%rsi,%rbx # qhasm: r039 = r0>>>39 # asm 1: rorx $39,r039=int64#15 # asm 2: rorx $39,r039=%rbp rorx $39,%rsi,%rbp # qhasm: inplace state4567[3] = r7 # asm 1: movq maj6=int64#7 # asm 2: mov maj6=%rax mov %rcx,%rax # qhasm: maj6 ^= r0 # asm 1: xor r0andr1=int64#14 # asm 2: mov r0andr1=%rbx mov %rcx,%rbx # qhasm: r0andr1 &= r0 # asm 1: and maj7=int64#12 # asm 2: mov maj7=%r14 mov %rdx,%r14 # qhasm: wc0123 = D0 # asm 1: vmovapd wc0123=stack256#3 # asm 2: vmovapd wc0123=64(%rsp) vmovapd %ymm2,64(%rsp) # qhasm: r7 += wc0123[0] # asm 1: addq ch6=int64#13 # asm 2: mov ch6=%r15 mov %r10,%r15 # qhasm: r3Sigma1 = r3>>>14 # asm 1: rorx $14,r3Sigma1=int64#15 # asm 2: rorx $14,r3Sigma1=%rbp rorx $14,%r9,%rbp # qhasm: ch6 ^= r4 # asm 1: xor X4=reg256#3 # asm 2: vmovupd 32(X4=%ymm2 vmovupd 32(%rdi),%ymm2 # qhasm: 2x 16x X4 = X4[bigendian64] # asm 1: vpshufb X4=reg256#3 # asm 2: vpshufb X4=%ymm2 vpshufb %ymm0,%ymm2,%ymm2 # qhasm: r7 += maj7 # asm 1: add >>18 # asm 1: rorx $18,r318=int64#12 # asm 2: rorx $18,r318=%r14 rorx $18,%r9,%r14 # qhasm: 4x D4 = X4 + mem256[constants + 32] # asm 1: vpaddq 32(D4=reg256#4 # asm 2: vpaddq 32(D4=%ymm3 vpaddq 32(%r8),%ymm2,%ymm3 # qhasm: ch6 &= r3 # asm 1: and >>41 # asm 1: rorx $41,r341=int64#12 # asm 2: rorx $41,r341=%r14 rorx $41,%r9,%r14 # qhasm: ch6 ^= r5 # asm 1: xor >>28 # asm 1: rorx $28,r7Sigma0=int64#14 # asm 2: rorx $28,r7Sigma0=%rbx rorx $28,%r13,%rbx # qhasm: inplace state4567[1] = r5 # asm 1: movq >>34 # asm 1: rorx $34,r734=int64#12 # asm 2: rorx $34,r734=%r14 rorx $34,%r13,%r14 # qhasm: inplace state0123[2] = r2 # asm 1: movq >>39 # asm 1: rorx $39,r739=int64#13 # asm 2: rorx $39,r739=%r15 rorx $39,%r13,%r15 # qhasm: r7Sigma0 ^= r734 # asm 1: xor ch5=int64#12 # asm 2: mov ch5=%r14 mov %r11,%r14 # qhasm: ch5 ^= r3 # asm 1: xor >>14 # asm 1: rorx $14,r2Sigma1=int64#7 # asm 2: rorx $14,r2Sigma1=%rax rorx $14,%rdx,%rax # qhasm: r6 += r7Sigma0 # asm 1: add >>18 # asm 1: rorx $18,r218=int64#13 # asm 2: rorx $18,r218=%r15 rorx $18,%rdx,%r15 # qhasm: mem256[&w + 32] = X4 # asm 1: vmovupd >>41 # asm 1: rorx $41,r241=int64#13 # asm 2: rorx $41,r241=%r15 rorx $41,%rdx,%r15 # qhasm: maj4 = r7 # asm 1: mov maj4=int64#14 # asm 2: mov maj4=%rbx mov %r13,%rbx # qhasm: maj4 ^= r6 # asm 1: xor >>28 # asm 1: rorx $28,r6Sigma0=int64#15 # asm 2: rorx $28,r6Sigma0=%rbp rorx $28,%r12,%rbp # qhasm: wc4567 = D4 # asm 1: vmovapd wc4567=stack256#4 # asm 2: vmovapd wc4567=96(%rsp) vmovapd %ymm3,96(%rsp) # qhasm: r2Sigma1 ^= r241 # asm 1: xor >>34 # asm 1: rorx $34,r634=int64#12 # asm 2: rorx $34,r634=%r14 rorx $34,%r12,%r14 # qhasm: in_stack = in # asm 1: movq in_stack=stack64#11 # asm 2: movq in_stack=400(%rsp) movq %rdi,400(%rsp) # qhasm: r6Sigma0 ^= r634 # asm 1: xor >>39 # asm 1: rorx $39,r639=int64#12 # asm 2: rorx $39,r639=%r14 rorx $39,%r12,%r14 # qhasm: r6andr7 = r7 # asm 1: mov r6andr7=int64#13 # asm 2: mov r6andr7=%r15 mov %r13,%r15 # qhasm: r6andr7 &= r6 # asm 1: and maj5=int64#12 # asm 2: mov maj5=%r14 mov %rsi,%r14 # qhasm: inplace state0123[1] = r1 # asm 1: movq ch4=int64#7 # asm 2: mov ch4=%rax mov %r9,%rax # qhasm: r1Sigma1 = r1>>>14 # asm 1: rorx $14,r1Sigma1=int64#15 # asm 2: rorx $14,r1Sigma1=%rbp rorx $14,%rcx,%rbp # qhasm: ch4 ^= r2 # asm 1: xor >>18 # asm 1: rorx $18,r118=int64#12 # asm 2: rorx $18,r118=%r14 rorx $18,%rcx,%r14 # qhasm: inplace state0123[0] = r0 # asm 1: movq >>41 # asm 1: rorx $41,r141=int64#12 # asm 2: rorx $41,r141=%r14 rorx $41,%rcx,%r14 # qhasm: X8 = mem256[in + 64] # asm 1: vmovupd 64(X8=reg256#4 # asm 2: vmovupd 64(X8=%ymm3 vmovupd 64(%rdi),%ymm3 # qhasm: r1Sigma1 ^= r141 # asm 1: xor >>28 # asm 1: rorx $28,r5Sigma0=int64#12 # asm 2: rorx $28,r5Sigma0=%r14 rorx $28,%r10,%r14 # qhasm: maj4 ^= r6andr7 # asm 1: xor >>34 # asm 1: rorx $34,r534=int64#7 # asm 2: rorx $34,r534=%rax rorx $34,%r10,%rax # qhasm: r4 += r1Sigma1 # asm 1: add X12=reg256#5 # asm 2: vmovupd 96(X12=%ymm4 vmovupd 96(%rdi),%ymm4 # qhasm: r0 += r4 # asm 1: add >>39 # asm 1: rorx $39,r539=int64#1 # asm 2: rorx $39,r539=%rdi rorx $39,%r10,%rdi # qhasm: r4 += maj4 # asm 1: add >>14 # asm 1: rorx $14,r0Sigma1=int64#1 # asm 2: rorx $14,r0Sigma1=%rdi rorx $14,%rsi,%rdi # qhasm: r4 += r5Sigma0 # asm 1: add ch3=int64#7 # asm 2: mov ch3=%rax mov %rdx,%rax # qhasm: r018 = r0>>>18 # asm 1: rorx $18,r018=int64#12 # asm 2: rorx $18,r018=%r14 rorx $18,%rsi,%r14 # qhasm: ch3 ^= r1 # asm 1: xor X8=reg256#4 # asm 2: vpshufb X8=%ymm3 vpshufb %ymm0,%ymm3,%ymm3 # qhasm: r0Sigma1 ^= r018 # asm 1: xor >>41 # asm 1: rorx $41,r041=int64#12 # asm 2: rorx $41,r041=%r14 rorx $41,%rsi,%r14 # qhasm: r4Sigma0 = r4>>>28 # asm 1: rorx $28,r4Sigma0=int64#13 # asm 2: rorx $28,r4Sigma0=%r15 rorx $28,%r11,%r15 # qhasm: 4x D8 = X8 + mem256[constants + 64] # asm 1: vpaddq 64(D8=reg256#6 # asm 2: vpaddq 64(D8=%ymm5 vpaddq 64(%r8),%ymm3,%ymm5 # qhasm: r0Sigma1 ^= r041 # asm 1: xor >>34 # asm 1: rorx $34,r434=int64#7 # asm 2: rorx $34,r434=%rax rorx $34,%r11,%rax # qhasm: r439 = r4>>>39 # asm 1: rorx $39,r439=int64#12 # asm 2: rorx $39,r439=%r14 rorx $39,%r11,%r14 # qhasm: maj2 = r5 # asm 1: mov maj2=int64#14 # asm 2: mov maj2=%rbx mov %r10,%rbx # qhasm: maj2 ^= r4 # asm 1: xor wc891011=stack256#3 # asm 2: vmovapd wc891011=64(%rsp) vmovapd %ymm5,64(%rsp) # qhasm: r4Sigma0 ^= r434 # asm 1: xor r4andr5=int64#1 # asm 2: mov r4andr5=%rdi mov %r10,%rdi # qhasm: r4andr5 &= r4 # asm 1: and maj3=int64#7 # asm 2: mov maj3=%rax mov %r12,%rax # qhasm: maj3 &= maj2 # asm 1: and X12=reg256#5 # asm 2: vpshufb X12=%ymm4 vpshufb %ymm0,%ymm4,%ymm4 # qhasm: ch2 = r1 # asm 1: mov ch2=int64#12 # asm 2: mov ch2=%r14 mov %rcx,%r14 # qhasm: maj3 ^= r4andr5 # asm 1: xor >>14 # asm 1: rorx $14,r7Sigma1=int64#7 # asm 2: rorx $14,r7Sigma1=%rax rorx $14,%r13,%rax # qhasm: 4x D12 = X12 + mem256[constants + 96] # asm 1: vpaddq 96(D12=reg256#6 # asm 2: vpaddq 96(D12=%ymm5 vpaddq 96(%r8),%ymm4,%ymm5 # qhasm: ch2 &= r7 # asm 1: and >>18 # asm 1: rorx $18,r718=int64#13 # asm 2: rorx $18,r718=%r15 rorx $18,%r13,%r15 # qhasm: r7Sigma1 ^= r718 # asm 1: xor >>41 # asm 1: rorx $41,r741=int64#13 # asm 2: rorx $41,r741=%r15 rorx $41,%r13,%r15 # qhasm: mem256[&w + 96] = X12 # asm 1: vmovupd >>28 # asm 1: rorx $28,r3Sigma0=int64#1 # asm 2: rorx $28,r3Sigma0=%rdi rorx $28,%r9,%rdi # qhasm: wc12131415 = D12 # asm 1: vmovapd wc12131415=stack256#5 # asm 2: vmovapd wc12131415=128(%rsp) vmovapd %ymm5,128(%rsp) # qhasm: r2 += ch2 # asm 1: add ch1=int64#7 # asm 2: mov ch1=%rax mov %rsi,%rax # qhasm: r334 = r3>>>34 # asm 1: rorx $34,r334=int64#12 # asm 2: rorx $34,r334=%r14 rorx $34,%r9,%r14 # qhasm: ch1 ^= r7 # asm 1: xor >>39 # asm 1: rorx $39,r339=int64#12 # asm 2: rorx $39,r339=%r14 rorx $39,%r9,%r14 # qhasm: r2 += maj2 # asm 1: add >>14 # asm 1: rorx $14,r6Sigma1=int64#12 # asm 2: rorx $14,r6Sigma1=%r14 rorx $14,%r12,%r14 # qhasm: r618 = r6>>>18 # asm 1: rorx $18,r618=int64#13 # asm 2: rorx $18,r618=%r15 rorx $18,%r12,%r15 # qhasm: r641 = r6>>>41 # asm 1: rorx $41,r641=int64#14 # asm 2: rorx $41,r641=%rbx rorx $41,%r12,%rbx # qhasm: ch1 &= r6 # asm 1: and >>28 # asm 1: rorx $28,r2Sigma0=int64#1 # asm 2: rorx $28,r2Sigma0=%rdi rorx $28,%rdx,%rdi # qhasm: r6Sigma1 ^= r641 # asm 1: xor >>34 # asm 1: rorx $34,r234=int64#13 # asm 2: rorx $34,r234=%r15 rorx $34,%rdx,%r15 # qhasm: maj0 = r3 # asm 1: mov maj0=int64#14 # asm 2: mov maj0=%rbx mov %r9,%rbx # qhasm: maj0 ^= r2 # asm 1: xor >>39 # asm 1: rorx $39,r239=int64#7 # asm 2: rorx $39,r239=%rax rorx $39,%rdx,%rax # qhasm: r2andr3 = r3 # asm 1: mov r2andr3=int64#13 # asm 2: mov r2andr3=%r15 mov %r9,%r15 # qhasm: r2andr3 &= r2 # asm 1: and maj1=int64#7 # asm 2: mov maj1=%rax mov %r11,%rax # qhasm: maj1 &= maj0 # asm 1: and ch0=int64#1 # asm 2: mov ch0=%rdi mov %r13,%rdi # qhasm: maj1 ^= r2andr3 # asm 1: xor >>14 # asm 1: rorx $14,r5Sigma1=int64#12 # asm 2: rorx $14,r5Sigma1=%r14 rorx $14,%r10,%r14 # qhasm: r1 += maj1 # asm 1: add >>18 # asm 1: rorx $18,r518=int64#7 # asm 2: rorx $18,r518=%rax rorx $18,%r10,%rax # qhasm: r5Sigma1 ^= r518 # asm 1: xor >>41 # asm 1: rorx $41,r541=int64#7 # asm 2: rorx $41,r541=%rax rorx $41,%r10,%rax # qhasm: r5Sigma1 ^= r541 # asm 1: xor >>28 # asm 1: rorx $28,r1Sigma0=int64#7 # asm 2: rorx $28,r1Sigma0=%rax rorx $28,%rcx,%rax # qhasm: r0 += ch0 # asm 1: add >>34 # asm 1: rorx $34,r134=int64#1 # asm 2: rorx $34,r134=%rdi rorx $34,%rcx,%rdi # qhasm: r1Sigma0 ^= r134 # asm 1: xor >>39 # asm 1: rorx $39,r139=int64#1 # asm 2: rorx $39,r139=%rdi rorx $39,%rcx,%rdi # qhasm: r1Sigma0 ^= r139 # asm 1: xor i=int64#1 # asm 2: mov $4,>i=%rdi mov $4,%rdi # qhasm: innerloop: ._innerloop: # qhasm: X1 = mem256[&w + 8] # asm 1: vmovupd X1=reg256#6 # asm 2: vmovupd X1=%ymm5 vmovupd 168(%rsp),%ymm5 # qhasm: 4x X1right1 = X1 unsigned>> 1 # asm 1: vpsrlq $1,X1right1=reg256#7 # asm 2: vpsrlq $1,X1right1=%ymm6 vpsrlq $1,%ymm5,%ymm6 # qhasm: r4Sigma1 = r4>>>14 # asm 1: rorx $14,r4Sigma1=int64#7 # asm 2: rorx $14,r4Sigma1=%rax rorx $14,%r11,%rax # qhasm: r7 += wc891011[0] # asm 1: addq X1left63=reg256#8 # asm 2: vpsllq $63,X1left63=%ymm7 vpsllq $63,%ymm5,%ymm7 # qhasm: ch7 = r6 # asm 1: mov ch7=int64#12 # asm 2: mov ch7=%r14 mov %r12,%r14 # qhasm: ch7 ^= r5 # asm 1: xor >>18 # asm 1: rorx $18,r418=int64#13 # asm 2: rorx $18,r418=%r15 rorx $18,%r11,%r15 # qhasm: ch7 &= r4 # asm 1: and maj6=int64#14 # asm 2: mov maj6=%rbx mov %rcx,%rbx # qhasm: maj6 ^= r0 # asm 1: xor W14=reg256#9%128 # asm 2: vmovupd W14=%xmm8 vmovupd 272(%rsp),%xmm8 # qhasm: r441 = r4>>>41 # asm 1: rorx $41,r441=int64#15 # asm 2: rorx $41,r441=%rbp rorx $41,%r11,%rbp # qhasm: r4Sigma1 ^= r418 # asm 1: xor X1sigma0=reg256#7 # asm 2: vpxor X1sigma0=%ymm6 vpxor %ymm6,%ymm7,%ymm6 # qhasm: 4x X1right8 = X1 unsigned>> 8 # asm 1: vpsrlq $8,X1right8=reg256#8 # asm 2: vpsrlq $8,X1right8=%ymm7 vpsrlq $8,%ymm5,%ymm7 # qhasm: r4Sigma1 ^= r441 # asm 1: xor >>28 # asm 1: rorx $28,r0Sigma0=int64#12 # asm 2: rorx $28,r0Sigma0=%r14 rorx $28,%rsi,%r14 # qhasm: r034 = r0>>>34 # asm 1: rorx $34,r034=int64#13 # asm 2: rorx $34,r034=%r15 rorx $34,%rsi,%r15 # qhasm: X1sigma0 = X1sigma0 ^ X1right8 # asm 1: vpxor X1sigma0=reg256#7 # asm 2: vpxor X1sigma0=%ymm6 vpxor %ymm6,%ymm7,%ymm6 # qhasm: r7 += r4Sigma1 # asm 1: add maj7=int64#7 # asm 2: mov maj7=%rax mov %rdx,%rax # qhasm: maj7 &= maj6 # asm 1: and > 19 # asm 1: vpsrlq $19,W14right19=reg256#8%128 # asm 2: vpsrlq $19,W14right19=%xmm7 vpsrlq $19,%xmm8,%xmm7 # qhasm: r039 = r0>>>39 # asm 1: rorx $39,r039=int64#13 # asm 2: rorx $39,r039=%r15 rorx $39,%rsi,%r15 # qhasm: 4x X1left56 = X1 << 56 # asm 1: vpsllq $56,X1left56=reg256#10 # asm 2: vpsllq $56,X1left56=%ymm9 vpsllq $56,%ymm5,%ymm9 # qhasm: r3 += r7 # asm 1: add r0andr1=int64#13 # asm 2: mov r0andr1=%r15 mov %rcx,%r15 # qhasm: r0andr1 &= r0 # asm 1: and W14left45=reg256#11%128 # asm 2: vpsllq $45,W14left45=%xmm10 vpsllq $45,%xmm8,%xmm10 # qhasm: r7 += r0Sigma0 # asm 1: add ch6=int64#12 # asm 2: mov ch6=%r14 mov %r10,%r14 # qhasm: ch6 ^= r4 # asm 1: xor > 61 # asm 1: vpsrlq $61,W14right61=reg256#12%128 # asm 2: vpsrlq $61,W14right61=%xmm11 vpsrlq $61,%xmm8,%xmm11 # qhasm: r3Sigma1 = r3>>>14 # asm 1: rorx $14,r3Sigma1=int64#15 # asm 2: rorx $14,r3Sigma1=%rbp rorx $14,%r9,%rbp # qhasm: X1sigma0 = X1sigma0 ^ X1left56 # asm 1: vpxor X1sigma0=reg256#7 # asm 2: vpxor X1sigma0=%ymm6 vpxor %ymm6,%ymm9,%ymm6 # qhasm: r7 += maj7 # asm 1: add >>18 # asm 1: rorx $18,r318=int64#7 # asm 2: rorx $18,r318=%rax rorx $18,%r9,%rax # qhasm: 4x X1right7 = X1 unsigned>> 7 # asm 1: vpsrlq $7,X1right7=reg256#6 # asm 2: vpsrlq $7,X1right7=%ymm5 vpsrlq $7,%ymm5,%ymm5 # qhasm: 1x,0 W14sigma1 = W14right19 ^ W14left45 # asm 1: vpxor W14sigma1=reg256#8%128 # asm 2: vpxor W14sigma1=%xmm7 vpxor %xmm7,%xmm10,%xmm7 # qhasm: ch6 &= r3 # asm 1: and >>41 # asm 1: rorx $41,r341=int64#7 # asm 2: rorx $41,r341=%rax rorx $41,%r9,%rax # qhasm: maj6 &= r7 # asm 1: and X1sigma0=reg256#6 # asm 2: vpxor X1sigma0=%ymm5 vpxor %ymm6,%ymm5,%ymm5 # qhasm: 1x,0 W14sigma1 ^= W14right61 # asm 1: vpxor X0=reg256#2 # asm 2: vpaddq X0=%ymm1 vpaddq %ymm1,%ymm5,%ymm1 # qhasm: r3Sigma1 ^= r341 # asm 1: xor W14left3=reg256#6%128 # asm 2: vpsllq $3,W14left3=%xmm5 vpsllq $3,%xmm8,%xmm5 # qhasm: r7Sigma0 = r7>>>28 # asm 1: rorx $28,r7Sigma0=int64#7 # asm 2: rorx $28,r7Sigma0=%rax rorx $28,%r13,%rax # qhasm: ch6 ^= r5 # asm 1: xor X0=reg256#2 # asm 2: vpaddq X0=%ymm1 vpaddq 232(%rsp),%ymm1,%ymm1 # qhasm: r734 = r7>>>34 # asm 1: rorx $34,r734=int64#13 # asm 2: rorx $34,r734=%r15 rorx $34,%r13,%r15 # qhasm: r5 += wc891011[2] # asm 1: addq >>39 # asm 1: rorx $39,r739=int64#12 # asm 2: rorx $39,r739=%r14 rorx $39,%r13,%r14 # qhasm: r2 += r6 # asm 1: add > 6 # asm 1: vpsrlq $6,W14right6=reg256#6%128 # asm 2: vpsrlq $6,W14right6=%xmm5 vpsrlq $6,%xmm8,%xmm5 # qhasm: r7Sigma0 ^= r739 # asm 1: xor ch5=int64#12 # asm 2: mov ch5=%r14 mov %r11,%r14 # qhasm: ch5 ^= r3 # asm 1: xor >>14 # asm 1: rorx $14,r2Sigma1=int64#7 # asm 2: rorx $14,r2Sigma1=%rax rorx $14,%rdx,%rax # qhasm: 1x,0 W14sigma1 ^= W14right6 # asm 1: vpxor >>18 # asm 1: rorx $18,r218=int64#13 # asm 2: rorx $18,r218=%r15 rorx $18,%rdx,%r15 # qhasm: r241 = r2>>>41 # asm 1: rorx $41,r241=int64#14 # asm 2: rorx $41,r241=%rbx rorx $41,%rdx,%rbx # qhasm: 4x X0 = W14sigma1 + X0 # asm 1: vpaddq X0=reg256#2 # asm 2: vpaddq X0=%ymm1 vpaddq %ymm7,%ymm1,%ymm1 # qhasm: ch5 ^= r4 # asm 1: xor > 19 # asm 1: vpsrlq $19,W0right19=reg256#6%128 # asm 2: vpsrlq $19,W0right19=%xmm5 vpsrlq $19,%xmm1,%xmm5 # qhasm: r6Sigma0 = r6>>>28 # asm 1: rorx $28,r6Sigma0=int64#13 # asm 2: rorx $28,r6Sigma0=%r15 rorx $28,%r12,%r15 # qhasm: r5 += ch5 # asm 1: add W0left45=reg256#7%128 # asm 2: vpsllq $45,W0left45=%xmm6 vpsllq $45,%xmm1,%xmm6 # qhasm: r634 = r6>>>34 # asm 1: rorx $34,r634=int64#12 # asm 2: rorx $34,r634=%r14 rorx $34,%r12,%r14 # qhasm: r2Sigma1 ^= r241 # asm 1: xor maj4=int64#14 # asm 2: mov maj4=%rbx mov %r13,%rbx # qhasm: X5 = mem256[&w + 40] # asm 1: vmovupd X5=reg256#8 # asm 2: vmovupd X5=%ymm7 vmovupd 200(%rsp),%ymm7 # qhasm: maj4 ^= r6 # asm 1: xor > 61 # asm 1: vpsrlq $61,W0right61=reg256#9%128 # asm 2: vpsrlq $61,W0right61=%xmm8 vpsrlq $61,%xmm1,%xmm8 # qhasm: 1x,0 W0sigma1 = W0right19 ^ W0left45 # asm 1: vpxor W0sigma1=reg256#6%128 # asm 2: vpxor W0sigma1=%xmm5 vpxor %xmm5,%xmm6,%xmm5 # qhasm: r6Sigma0 ^= r634 # asm 1: xor >>39 # asm 1: rorx $39,r639=int64#12 # asm 2: rorx $39,r639=%r14 rorx $39,%r12,%r14 # qhasm: 2x,0 W0left3 = X0 << 3 # asm 1: vpsllq $3,W0left3=reg256#7%128 # asm 2: vpsllq $3,W0left3=%xmm6 vpsllq $3,%xmm1,%xmm6 # qhasm: r6Sigma0 ^= r639 # asm 1: xor > 6 # asm 1: vpsrlq $6,W0right6=reg256#9%128 # asm 2: vpsrlq $6,W0right6=%xmm8 vpsrlq $6,%xmm1,%xmm8 # qhasm: 1x,0 W0sigma1 ^= W0left3 # asm 1: vpxor r6andr7=int64#7 # asm 2: mov r6andr7=%rax mov %r13,%rax # qhasm: r6andr7 &= r6 # asm 1: and >>14 # asm 1: rorx $14,r1Sigma1=int64#12 # asm 2: rorx $14,r1Sigma1=%r14 rorx $14,%rcx,%r14 # qhasm: r5 += r6Sigma0 # asm 1: add maj5=int64#13 # asm 2: mov maj5=%r15 mov %rsi,%r15 # qhasm: maj5 &= maj4 # asm 1: and W0sigma1=reg256#6 # asm 2: vpermq $0x4e,W0sigma1=%ymm5 vpermq $0x4e,%ymm5,%ymm5 # qhasm: maj5 ^= r6andr7 # asm 1: xor ch4=int64#15 # asm 2: mov ch4=%rbp mov %r9,%rbp # qhasm: 4x X5right1 = X5 unsigned>> 1 # asm 1: vpsrlq $1,X5right1=reg256#7 # asm 2: vpsrlq $1,X5right1=%ymm6 vpsrlq $1,%ymm7,%ymm6 # qhasm: ch4 ^= r2 # asm 1: xor >>18 # asm 1: rorx $18,r118=int64#13 # asm 2: rorx $18,r118=%r15 rorx $18,%rcx,%r15 # qhasm: ch4 &= r1 # asm 1: and >>41 # asm 1: rorx $41,r141=int64#13 # asm 2: rorx $41,r141=%r15 rorx $41,%rcx,%r15 # qhasm: 4x X0 = X0 + W0sigma1 # asm 1: vpaddq X0=reg256#2 # asm 2: vpaddq X0=%ymm1 vpaddq %ymm1,%ymm5,%ymm1 # qhasm: r4 += ch4 # asm 1: add >>28 # asm 1: rorx $28,r5Sigma0=int64#7 # asm 2: rorx $28,r5Sigma0=%rax rorx $28,%r10,%rax # qhasm: 4x D0 = X0 + mem256[constants + 128] # asm 1: vpaddq 128(D0=reg256#6 # asm 2: vpaddq 128(D0=%ymm5 vpaddq 128(%r8),%ymm1,%ymm5 # qhasm: r1Sigma1 ^= r141 # asm 1: xor >>34 # asm 1: rorx $34,r534=int64#13 # asm 2: rorx $34,r534=%r15 rorx $34,%r10,%r15 # qhasm: mem256[&w + 128] = X0 # asm 1: vmovupd >>39 # asm 1: rorx $39,r539=int64#12 # asm 2: rorx $39,r539=%r14 rorx $39,%r10,%r14 # qhasm: r3 += wc12131415[0] # asm 1: addq wc0123=stack256#3 # asm 2: vmovapd wc0123=64(%rsp) vmovapd %ymm5,64(%rsp) # qhasm: W2 = mem128[&w + 16],0 # asm 1: vmovupd W2=reg256#6%128 # asm 2: vmovupd W2=%xmm5 vmovupd 176(%rsp),%xmm5 # qhasm: r4 += r5Sigma0 # asm 1: add >>14 # asm 1: rorx $14,r0Sigma1=int64#7 # asm 2: rorx $14,r0Sigma1=%rax rorx $14,%rsi,%rax # qhasm: ch3 = r2 # asm 1: mov ch3=int64#12 # asm 2: mov ch3=%r14 mov %rdx,%r14 # qhasm: ch3 ^= r1 # asm 1: xor X5left63=reg256#9 # asm 2: vpsllq $63,X5left63=%ymm8 vpsllq $63,%ymm7,%ymm8 # qhasm: r018 = r0>>>18 # asm 1: rorx $18,r018=int64#13 # asm 2: rorx $18,r018=%r15 rorx $18,%rsi,%r15 # qhasm: maj2 = r5 # asm 1: mov maj2=int64#14 # asm 2: mov maj2=%rbx mov %r10,%rbx # qhasm: ch3 &= r0 # asm 1: and >>41 # asm 1: rorx $41,r041=int64#15 # asm 2: rorx $41,r041=%rbp rorx $41,%rsi,%rbp # qhasm: X5sigma0 = X5right1 ^ X5left63 # asm 1: vpxor X5sigma0=reg256#7 # asm 2: vpxor X5sigma0=%ymm6 vpxor %ymm6,%ymm8,%ymm6 # qhasm: r0Sigma1 ^= r018 # asm 1: xor > 8 # asm 1: vpsrlq $8,X5right8=reg256#9 # asm 2: vpsrlq $8,X5right8=%ymm8 vpsrlq $8,%ymm7,%ymm8 # qhasm: r4Sigma0 = r4>>>28 # asm 1: rorx $28,r4Sigma0=int64#13 # asm 2: rorx $28,r4Sigma0=%r15 rorx $28,%r11,%r15 # qhasm: r0Sigma1 ^= r041 # asm 1: xor >>34 # asm 1: rorx $34,r434=int64#12 # asm 2: rorx $34,r434=%r14 rorx $34,%r11,%r14 # qhasm: X5sigma0 = X5sigma0 ^ X5right8 # asm 1: vpxor X5sigma0=reg256#7 # asm 2: vpxor X5sigma0=%ymm6 vpxor %ymm6,%ymm8,%ymm6 # qhasm: r3 += r0Sigma1 # asm 1: add maj3=int64#7 # asm 2: mov maj3=%rax mov %r12,%rax # qhasm: maj3 &= maj2 # asm 1: and >>39 # asm 1: rorx $39,r439=int64#12 # asm 2: rorx $39,r439=%r14 rorx $39,%r11,%r14 # qhasm: 2x,0 W2right19 = W2 unsigned>> 19 # asm 1: vpsrlq $19,W2right19=reg256#9%128 # asm 2: vpsrlq $19,W2right19=%xmm8 vpsrlq $19,%xmm5,%xmm8 # qhasm: 4x X5left56 = X5 << 56 # asm 1: vpsllq $56,X5left56=reg256#10 # asm 2: vpsllq $56,X5left56=%ymm9 vpsllq $56,%ymm7,%ymm9 # qhasm: r7 += r3 # asm 1: add r4andr5=int64#12 # asm 2: mov r4andr5=%r14 mov %r10,%r14 # qhasm: r4andr5 &= r4 # asm 1: and W2left45=reg256#11%128 # asm 2: vpsllq $45,W2left45=%xmm10 vpsllq $45,%xmm5,%xmm10 # qhasm: r3 += r4Sigma0 # asm 1: add ch2=int64#13 # asm 2: mov ch2=%r15 mov %rcx,%r15 # qhasm: ch2 ^= r0 # asm 1: xor > 61 # asm 1: vpsrlq $61,W2right61=reg256#12%128 # asm 2: vpsrlq $61,W2right61=%xmm11 vpsrlq $61,%xmm5,%xmm11 # qhasm: r7Sigma1 = r7>>>14 # asm 1: rorx $14,r7Sigma1=int64#15 # asm 2: rorx $14,r7Sigma1=%rbp rorx $14,%r13,%rbp # qhasm: X5sigma0 = X5sigma0 ^ X5left56 # asm 1: vpxor X5sigma0=reg256#7 # asm 2: vpxor X5sigma0=%ymm6 vpxor %ymm6,%ymm9,%ymm6 # qhasm: r3 += maj3 # asm 1: add > 7 # asm 1: vpsrlq $7,X5right7=reg256#8 # asm 2: vpsrlq $7,X5right7=%ymm7 vpsrlq $7,%ymm7,%ymm7 # qhasm: r718 = r7>>>18 # asm 1: rorx $18,r718=int64#7 # asm 2: rorx $18,r718=%rax rorx $18,%r13,%rax # qhasm: 1x,0 W2sigma1 = W2right19 ^ W2left45 # asm 1: vpxor W2sigma1=reg256#9%128 # asm 2: vpxor W2sigma1=%xmm8 vpxor %xmm8,%xmm10,%xmm8 # qhasm: ch2 &= r7 # asm 1: and X5sigma0=reg256#7 # asm 2: vpxor X5sigma0=%ymm6 vpxor %ymm6,%ymm7,%ymm6 # qhasm: r741 = r7>>>41 # asm 1: rorx $41,r741=int64#7 # asm 2: rorx $41,r741=%rax rorx $41,%r13,%rax # qhasm: maj2 &= r3 # asm 1: and X4=reg256#3 # asm 2: vpaddq X4=%ymm2 vpaddq %ymm2,%ymm6,%ymm2 # qhasm: r7Sigma1 ^= r741 # asm 1: xor W2left3=reg256#7%128 # asm 2: vpsllq $3,W2left3=%xmm6 vpsllq $3,%xmm5,%xmm6 # qhasm: r3Sigma0 = r3>>>28 # asm 1: rorx $28,r3Sigma0=int64#7 # asm 2: rorx $28,r3Sigma0=%rax rorx $28,%r9,%rax # qhasm: ch2 ^= r1 # asm 1: xor >>34 # asm 1: rorx $34,r334=int64#12 # asm 2: rorx $34,r334=%r14 rorx $34,%r9,%r14 # qhasm: 4x X4 = X4 + mem256[&w + 104] # asm 1: vpaddq X4=reg256#3 # asm 2: vpaddq X4=%ymm2 vpaddq 264(%rsp),%ymm2,%ymm2 # qhasm: r1 += wc12131415[2] # asm 1: addq >>39 # asm 1: rorx $39,r339=int64#12 # asm 2: rorx $39,r339=%r14 rorx $39,%r9,%r14 # qhasm: r6 += r2 # asm 1: add > 6 # asm 1: vpsrlq $6,W2right6=reg256#6%128 # asm 2: vpsrlq $6,W2right6=%xmm5 vpsrlq $6,%xmm5,%xmm5 # qhasm: r3Sigma0 ^= r339 # asm 1: xor ch1=int64#12 # asm 2: mov ch1=%r14 mov %rsi,%r14 # qhasm: ch1 ^= r7 # asm 1: xor >>14 # asm 1: rorx $14,r6Sigma1=int64#7 # asm 2: rorx $14,r6Sigma1=%rax rorx $14,%r12,%rax # qhasm: 1x,0 W2sigma1 ^= W2right6 # asm 1: vpxor >>18 # asm 1: rorx $18,r618=int64#13 # asm 2: rorx $18,r618=%r15 rorx $18,%r12,%r15 # qhasm: r641 = r6>>>41 # asm 1: rorx $41,r641=int64#14 # asm 2: rorx $41,r641=%rbx rorx $41,%r12,%rbx # qhasm: 4x X4 = W2sigma1 + X4 # asm 1: vpaddq X4=reg256#3 # asm 2: vpaddq X4=%ymm2 vpaddq %ymm8,%ymm2,%ymm2 # qhasm: ch1 ^= r0 # asm 1: xor > 19 # asm 1: vpsrlq $19,W4right19=reg256#6%128 # asm 2: vpsrlq $19,W4right19=%xmm5 vpsrlq $19,%xmm2,%xmm5 # qhasm: r1 += ch1 # asm 1: add >>28 # asm 1: rorx $28,r2Sigma0=int64#12 # asm 2: rorx $28,r2Sigma0=%r14 rorx $28,%rdx,%r14 # qhasm: 2x,0 W4left45 = X4 << 45 # asm 1: vpsllq $45,W4left45=reg256#7%128 # asm 2: vpsllq $45,W4left45=%xmm6 vpsllq $45,%xmm2,%xmm6 # qhasm: r6Sigma1 ^= r641 # asm 1: xor >>34 # asm 1: rorx $34,r234=int64#13 # asm 2: rorx $34,r234=%r15 rorx $34,%rdx,%r15 # qhasm: maj0 = r3 # asm 1: mov maj0=int64#14 # asm 2: mov maj0=%rbx mov %r9,%rbx # qhasm: maj0 ^= r2 # asm 1: xor > 61 # asm 1: vpsrlq $61,W4right61=reg256#8%128 # asm 2: vpsrlq $61,W4right61=%xmm7 vpsrlq $61,%xmm2,%xmm7 # qhasm: X9 = mem256[&w + 72] # asm 1: vmovupd X9=reg256#9 # asm 2: vmovupd X9=%ymm8 vmovupd 232(%rsp),%ymm8 # qhasm: r2Sigma0 ^= r234 # asm 1: xor W4sigma1=reg256#6%128 # asm 2: vpxor W4sigma1=%xmm5 vpxor %xmm5,%xmm6,%xmm5 # qhasm: r239 = r2>>>39 # asm 1: rorx $39,r239=int64#13 # asm 2: rorx $39,r239=%r15 rorx $39,%rdx,%r15 # qhasm: 2x,0 W4left3 = X4 << 3 # asm 1: vpsllq $3,W4left3=reg256#7%128 # asm 2: vpsllq $3,W4left3=%xmm6 vpsllq $3,%xmm2,%xmm6 # qhasm: 1x,0 W4sigma1 ^= W4right61 # asm 1: vpxor > 6 # asm 1: vpsrlq $6,W4right6=reg256#8%128 # asm 2: vpsrlq $6,W4right6=%xmm7 vpsrlq $6,%xmm2,%xmm7 # qhasm: r2Sigma0 ^= r239 # asm 1: xor r2andr3=int64#7 # asm 2: mov r2andr3=%rax mov %r9,%rax # qhasm: r5Sigma1 = r5>>>14 # asm 1: rorx $14,r5Sigma1=int64#13 # asm 2: rorx $14,r5Sigma1=%r15 rorx $14,%r10,%r15 # qhasm: r2andr3 &= r2 # asm 1: and maj1=int64#12 # asm 2: mov maj1=%r14 mov %r11,%r14 # qhasm: maj1 &= maj0 # asm 1: and W4sigma1=reg256#6 # asm 2: vpermq $0x4e,W4sigma1=%ymm5 vpermq $0x4e,%ymm5,%ymm5 # qhasm: maj1 ^= r2andr3 # asm 1: xor ch0=int64#15 # asm 2: mov ch0=%rbp mov %r13,%rbp # qhasm: 4x X9right1 = X9 unsigned>> 1 # asm 1: vpsrlq $1,X9right1=reg256#7 # asm 2: vpsrlq $1,X9right1=%ymm6 vpsrlq $1,%ymm8,%ymm6 # qhasm: ch0 ^= r6 # asm 1: xor >>18 # asm 1: rorx $18,r518=int64#12 # asm 2: rorx $18,r518=%r14 rorx $18,%r10,%r14 # qhasm: maj0 &= r1 # asm 1: and X4=reg256#3 # asm 2: vpaddq X4=%ymm2 vpaddq %ymm2,%ymm5,%ymm2 # qhasm: r541 = r5>>>41 # asm 1: rorx $41,r541=int64#12 # asm 2: rorx $41,r541=%r14 rorx $41,%r10,%r14 # qhasm: mem256[&w + 32] = X4 # asm 1: vmovupd >>28 # asm 1: rorx $28,r1Sigma0=int64#7 # asm 2: rorx $28,r1Sigma0=%rax rorx $28,%rcx,%rax # qhasm: 4x D4 = X4 + mem256[constants + 32] # asm 1: vpaddq 32(D4=reg256#6 # asm 2: vpaddq 32(D4=%ymm5 vpaddq 32(%r8),%ymm2,%ymm5 # qhasm: wc4567 = D4 # asm 1: vmovapd wc4567=stack256#4 # asm 2: vmovapd wc4567=96(%rsp) vmovapd %ymm5,96(%rsp) # qhasm: r5Sigma1 ^= r541 # asm 1: xor >>34 # asm 1: rorx $34,r134=int64#12 # asm 2: rorx $34,r134=%r14 rorx $34,%rcx,%r14 # qhasm: r0 += r5Sigma1 # asm 1: add >>39 # asm 1: rorx $39,r139=int64#12 # asm 2: rorx $39,r139=%r14 rorx $39,%rcx,%r14 # qhasm: r4 += r0 # asm 1: add >>14 # asm 1: rorx $14,r4Sigma1=int64#12 # asm 2: rorx $14,r4Sigma1=%r14 rorx $14,%r11,%r14 # qhasm: W6 = mem128[&w + 48],0 # asm 1: vmovupd W6=reg256#6%128 # asm 2: vmovupd W6=%xmm5 vmovupd 208(%rsp),%xmm5 # qhasm: r0 += r1Sigma0 # asm 1: add ch7=int64#7 # asm 2: mov ch7=%rax mov %r12,%rax # qhasm: ch7 ^= r5 # asm 1: xor >>18 # asm 1: rorx $18,r418=int64#13 # asm 2: rorx $18,r418=%r15 rorx $18,%r11,%r15 # qhasm: 4x X9left63 = X9 << 63 # asm 1: vpsllq $63,X9left63=reg256#8 # asm 2: vpsllq $63,X9left63=%ymm7 vpsllq $63,%ymm8,%ymm7 # qhasm: ch7 &= r4 # asm 1: and maj6=int64#14 # asm 2: mov maj6=%rbx mov %rcx,%rbx # qhasm: maj6 ^= r0 # asm 1: xor >>41 # asm 1: rorx $41,r441=int64#15 # asm 2: rorx $41,r441=%rbp rorx $41,%r11,%rbp # qhasm: X9sigma0 = X9right1 ^ X9left63 # asm 1: vpxor X9sigma0=reg256#7 # asm 2: vpxor X9sigma0=%ymm6 vpxor %ymm6,%ymm7,%ymm6 # qhasm: r4Sigma1 ^= r418 # asm 1: xor > 8 # asm 1: vpsrlq $8,X9right8=reg256#8 # asm 2: vpsrlq $8,X9right8=%ymm7 vpsrlq $8,%ymm8,%ymm7 # qhasm: ch7 ^= r6 # asm 1: xor >>28 # asm 1: rorx $28,r0Sigma0=int64#13 # asm 2: rorx $28,r0Sigma0=%r15 rorx $28,%rsi,%r15 # qhasm: r7 += ch7 # asm 1: add X9sigma0=reg256#7 # asm 2: vpxor X9sigma0=%ymm6 vpxor %ymm6,%ymm7,%ymm6 # qhasm: r7 += r4Sigma1 # asm 1: add >>34 # asm 1: rorx $34,r034=int64#7 # asm 2: rorx $34,r034=%rax rorx $34,%rsi,%rax # qhasm: maj7 = r2 # asm 1: mov maj7=int64#12 # asm 2: mov maj7=%r14 mov %rdx,%r14 # qhasm: maj7 &= maj6 # asm 1: and > 19 # asm 1: vpsrlq $19,W6right19=reg256#8%128 # asm 2: vpsrlq $19,W6right19=%xmm7 vpsrlq $19,%xmm5,%xmm7 # qhasm: r039 = r0>>>39 # asm 1: rorx $39,r039=int64#7 # asm 2: rorx $39,r039=%rax rorx $39,%rsi,%rax # qhasm: r3 += r7 # asm 1: add X9left56=reg256#10 # asm 2: vpsllq $56,X9left56=%ymm9 vpsllq $56,%ymm8,%ymm9 # qhasm: r6 += wc0123[1] # asm 1: addq r0andr1=int64#7 # asm 2: mov r0andr1=%rax mov %rcx,%rax # qhasm: r0andr1 &= r0 # asm 1: and ch6=int64#13 # asm 2: mov ch6=%r15 mov %r10,%r15 # qhasm: 2x,0 W6left45 = W6 << 45 # asm 1: vpsllq $45,W6left45=reg256#11%128 # asm 2: vpsllq $45,W6left45=%xmm10 vpsllq $45,%xmm5,%xmm10 # qhasm: maj7 ^= r0andr1 # asm 1: xor > 61 # asm 1: vpsrlq $61,W6right61=reg256#12%128 # asm 2: vpsrlq $61,W6right61=%xmm11 vpsrlq $61,%xmm5,%xmm11 # qhasm: r3Sigma1 = r3>>>14 # asm 1: rorx $14,r3Sigma1=int64#15 # asm 2: rorx $14,r3Sigma1=%rbp rorx $14,%r9,%rbp # qhasm: r7 += maj7 # asm 1: add X9sigma0=reg256#7 # asm 2: vpxor X9sigma0=%ymm6 vpxor %ymm6,%ymm9,%ymm6 # qhasm: 4x X9right7 = X9 unsigned>> 7 # asm 1: vpsrlq $7,X9right7=reg256#9 # asm 2: vpsrlq $7,X9right7=%ymm8 vpsrlq $7,%ymm8,%ymm8 # qhasm: r318 = r3>>>18 # asm 1: rorx $18,r318=int64#12 # asm 2: rorx $18,r318=%r14 rorx $18,%r9,%r14 # qhasm: 1x,0 W6sigma1 = W6right19 ^ W6left45 # asm 1: vpxor W6sigma1=reg256#8%128 # asm 2: vpxor W6sigma1=%xmm7 vpxor %xmm7,%xmm10,%xmm7 # qhasm: ch6 &= r3 # asm 1: and >>41 # asm 1: rorx $41,r341=int64#12 # asm 2: rorx $41,r341=%r14 rorx $41,%r9,%r14 # qhasm: X9sigma0 = X9sigma0 ^ X9right7 # asm 1: vpxor X9sigma0=reg256#7 # asm 2: vpxor X9sigma0=%ymm6 vpxor %ymm6,%ymm8,%ymm6 # qhasm: maj6 &= r7 # asm 1: and X8=reg256#4 # asm 2: vpaddq X8=%ymm3 vpaddq %ymm3,%ymm6,%ymm3 # qhasm: r3Sigma1 ^= r341 # asm 1: xor W6left3=reg256#7%128 # asm 2: vpsllq $3,W6left3=%xmm6 vpsllq $3,%xmm5,%xmm6 # qhasm: r7Sigma0 = r7>>>28 # asm 1: rorx $28,r7Sigma0=int64#7 # asm 2: rorx $28,r7Sigma0=%rax rorx $28,%r13,%rax # qhasm: ch6 ^= r5 # asm 1: xor X8=reg256#4 # asm 2: vpaddq X8=%ymm3 vpaddq 168(%rsp),%ymm3,%ymm3 # qhasm: r734 = r7>>>34 # asm 1: rorx $34,r734=int64#12 # asm 2: rorx $34,r734=%r14 rorx $34,%r13,%r14 # qhasm: r5 += wc0123[2] # asm 1: addq >>39 # asm 1: rorx $39,r739=int64#12 # asm 2: rorx $39,r739=%r14 rorx $39,%r13,%r14 # qhasm: r2 += r6 # asm 1: add ch5=int64#12 # asm 2: mov ch5=%r14 mov %r11,%r14 # qhasm: 2x,0 W6right6 = W6 unsigned>> 6 # asm 1: vpsrlq $6,W6right6=reg256#6%128 # asm 2: vpsrlq $6,W6right6=%xmm5 vpsrlq $6,%xmm5,%xmm5 # qhasm: r6 += maj6 # asm 1: add >>14 # asm 1: rorx $14,r2Sigma1=int64#7 # asm 2: rorx $14,r2Sigma1=%rax rorx $14,%rdx,%rax # qhasm: 1x,0 W6sigma1 ^= W6right6 # asm 1: vpxor >>18 # asm 1: rorx $18,r218=int64#13 # asm 2: rorx $18,r218=%r15 rorx $18,%rdx,%r15 # qhasm: r241 = r2>>>41 # asm 1: rorx $41,r241=int64#14 # asm 2: rorx $41,r241=%rbx rorx $41,%rdx,%rbx # qhasm: 4x X8 = W6sigma1 + X8 # asm 1: vpaddq X8=reg256#4 # asm 2: vpaddq X8=%ymm3 vpaddq %ymm7,%ymm3,%ymm3 # qhasm: 2x,0 W8right19 = X8 unsigned>> 19 # asm 1: vpsrlq $19,W8right19=reg256#6%128 # asm 2: vpsrlq $19,W8right19=%xmm5 vpsrlq $19,%xmm3,%xmm5 # qhasm: ch5 ^= r4 # asm 1: xor >>28 # asm 1: rorx $28,r6Sigma0=int64#13 # asm 2: rorx $28,r6Sigma0=%r15 rorx $28,%r12,%r15 # qhasm: r5 += ch5 # asm 1: add W8left45=reg256#7%128 # asm 2: vpsllq $45,W8left45=%xmm6 vpsllq $45,%xmm3,%xmm6 # qhasm: r634 = r6>>>34 # asm 1: rorx $34,r634=int64#12 # asm 2: rorx $34,r634=%r14 rorx $34,%r12,%r14 # qhasm: r2Sigma1 ^= r241 # asm 1: xor maj4=int64#14 # asm 2: mov maj4=%rbx mov %r13,%rbx # qhasm: 2x,0 W8right61 = X8 unsigned>> 61 # asm 1: vpsrlq $61,W8right61=reg256#8%128 # asm 2: vpsrlq $61,W8right61=%xmm7 vpsrlq $61,%xmm3,%xmm7 # qhasm: maj4 ^= r6 # asm 1: xor W8sigma1=reg256#6%128 # asm 2: vpxor W8sigma1=%xmm5 vpxor %xmm5,%xmm6,%xmm5 # qhasm: r639 = r6>>>39 # asm 1: rorx $39,r639=int64#12 # asm 2: rorx $39,r639=%r14 rorx $39,%r12,%r14 # qhasm: 1x,0 W8sigma1 ^= W8right61 # asm 1: vpxor W8left3=reg256#7%128 # asm 2: vpsllq $3,W8left3=%xmm6 vpsllq $3,%xmm3,%xmm6 # qhasm: r6Sigma0 ^= r639 # asm 1: xor > 6 # asm 1: vpsrlq $6,W8right6=reg256#8%128 # asm 2: vpsrlq $6,W8right6=%xmm7 vpsrlq $6,%xmm3,%xmm7 # qhasm: 1x,0 W8sigma1 ^= W8left3 # asm 1: vpxor r6andr7=int64#7 # asm 2: mov r6andr7=%rax mov %r13,%rax # qhasm: r6andr7 &= r6 # asm 1: and >>14 # asm 1: rorx $14,r1Sigma1=int64#12 # asm 2: rorx $14,r1Sigma1=%r14 rorx $14,%rcx,%r14 # qhasm: 1x,0 W8sigma1 ^= W8right6 # asm 1: vpxor maj5=int64#13 # asm 2: mov maj5=%r15 mov %rsi,%r15 # qhasm: maj5 &= maj4 # asm 1: and W8sigma1=reg256#6 # asm 2: vpermq $0x4e,W8sigma1=%ymm5 vpermq $0x4e,%ymm5,%ymm5 # qhasm: maj5 ^= r6andr7 # asm 1: xor ch4=int64#15 # asm 2: mov ch4=%rbp mov %r9,%rbp # qhasm: ch4 ^= r2 # asm 1: xor X13=reg256#7 # asm 2: vmovupd X13=%ymm6 vmovupd 264(%rsp),%ymm6 # qhasm: 4x X13right1 = X13 unsigned>> 1 # asm 1: vpsrlq $1,X13right1=reg256#8 # asm 2: vpsrlq $1,X13right1=%ymm7 vpsrlq $1,%ymm6,%ymm7 # qhasm: r5 += maj5 # asm 1: add >>18 # asm 1: rorx $18,r118=int64#13 # asm 2: rorx $18,r118=%r15 rorx $18,%rcx,%r15 # qhasm: ch4 &= r1 # asm 1: and >>41 # asm 1: rorx $41,r141=int64#13 # asm 2: rorx $41,r141=%r15 rorx $41,%rcx,%r15 # qhasm: 4x X8 = X8 + W8sigma1 # asm 1: vpaddq X8=reg256#4 # asm 2: vpaddq X8=%ymm3 vpaddq %ymm3,%ymm5,%ymm3 # qhasm: mem256[&w + 64] = X8 # asm 1: vmovupd >>28 # asm 1: rorx $28,r5Sigma0=int64#7 # asm 2: rorx $28,r5Sigma0=%rax rorx $28,%r10,%rax # qhasm: 4x D8 = X8 + mem256[constants + 64] # asm 1: vpaddq 64(D8=reg256#6 # asm 2: vpaddq 64(D8=%ymm5 vpaddq 64(%r8),%ymm3,%ymm5 # qhasm: wc891011 = D8 # asm 1: vmovapd wc891011=stack256#3 # asm 2: vmovapd wc891011=64(%rsp) vmovapd %ymm5,64(%rsp) # qhasm: r534 = r5>>>34 # asm 1: rorx $34,r534=int64#15 # asm 2: rorx $34,r534=%rbp rorx $34,%r10,%rbp # qhasm: r1Sigma1 ^= r141 # asm 1: xor >>39 # asm 1: rorx $39,r539=int64#12 # asm 2: rorx $39,r539=%r14 rorx $39,%r10,%r14 # qhasm: r3 += wc4567[0] # asm 1: addq W10=reg256#6%128 # asm 2: vmovupd W10=%xmm5 vmovupd 240(%rsp),%xmm5 # qhasm: r5Sigma0 ^= r539 # asm 1: xor >>14 # asm 1: rorx $14,r0Sigma1=int64#12 # asm 2: rorx $14,r0Sigma1=%r14 rorx $14,%rsi,%r14 # qhasm: r4 += r5Sigma0 # asm 1: add ch3=int64#7 # asm 2: mov ch3=%rax mov %rdx,%rax # qhasm: ch3 ^= r1 # asm 1: xor X13left63=reg256#9 # asm 2: vpsllq $63,X13left63=%ymm8 vpsllq $63,%ymm6,%ymm8 # qhasm: r018 = r0>>>18 # asm 1: rorx $18,r018=int64#13 # asm 2: rorx $18,r018=%r15 rorx $18,%rsi,%r15 # qhasm: maj2 = r5 # asm 1: mov maj2=int64#14 # asm 2: mov maj2=%rbx mov %r10,%rbx # qhasm: maj2 ^= r4 # asm 1: xor X13sigma0=reg256#8 # asm 2: vpxor X13sigma0=%ymm7 vpxor %ymm7,%ymm8,%ymm7 # qhasm: r041 = r0>>>41 # asm 1: rorx $41,r041=int64#15 # asm 2: rorx $41,r041=%rbp rorx $41,%rsi,%rbp # qhasm: r0Sigma1 ^= r018 # asm 1: xor > 8 # asm 1: vpsrlq $8,X13right8=reg256#9 # asm 2: vpsrlq $8,X13right8=%ymm8 vpsrlq $8,%ymm6,%ymm8 # qhasm: r4Sigma0 = r4>>>28 # asm 1: rorx $28,r4Sigma0=int64#13 # asm 2: rorx $28,r4Sigma0=%r15 rorx $28,%r11,%r15 # qhasm: r0Sigma1 ^= r041 # asm 1: xor >>34 # asm 1: rorx $34,r434=int64#7 # asm 2: rorx $34,r434=%rax rorx $34,%r11,%rax # qhasm: X13sigma0 = X13sigma0 ^ X13right8 # asm 1: vpxor X13sigma0=reg256#8 # asm 2: vpxor X13sigma0=%ymm7 vpxor %ymm7,%ymm8,%ymm7 # qhasm: r3 += r0Sigma1 # asm 1: add maj3=int64#12 # asm 2: mov maj3=%r14 mov %r12,%r14 # qhasm: maj3 &= maj2 # asm 1: and > 19 # asm 1: vpsrlq $19,W10right19=reg256#9%128 # asm 2: vpsrlq $19,W10right19=%xmm8 vpsrlq $19,%xmm5,%xmm8 # qhasm: r4Sigma0 ^= r434 # asm 1: xor >>39 # asm 1: rorx $39,r439=int64#7 # asm 2: rorx $39,r439=%rax rorx $39,%r11,%rax # qhasm: 4x X13left56 = X13 << 56 # asm 1: vpsllq $56,X13left56=reg256#10 # asm 2: vpsllq $56,X13left56=%ymm9 vpsllq $56,%ymm6,%ymm9 # qhasm: r4Sigma0 ^= r439 # asm 1: xor r4andr5=int64#7 # asm 2: mov r4andr5=%rax mov %r10,%rax # qhasm: 2x,0 W10left45 = W10 << 45 # asm 1: vpsllq $45,W10left45=reg256#11%128 # asm 2: vpsllq $45,W10left45=%xmm10 vpsllq $45,%xmm5,%xmm10 # qhasm: r4andr5 &= r4 # asm 1: and ch2=int64#13 # asm 2: mov ch2=%r15 mov %rcx,%r15 # qhasm: 2x,0 W10right61 = W10 unsigned>> 61 # asm 1: vpsrlq $61,W10right61=reg256#12%128 # asm 2: vpsrlq $61,W10right61=%xmm11 vpsrlq $61,%xmm5,%xmm11 # qhasm: ch2 ^= r0 # asm 1: xor X13sigma0=reg256#8 # asm 2: vpxor X13sigma0=%ymm7 vpxor %ymm7,%ymm9,%ymm7 # qhasm: r7Sigma1 = r7>>>14 # asm 1: rorx $14,r7Sigma1=int64#15 # asm 2: rorx $14,r7Sigma1=%rbp rorx $14,%r13,%rbp # qhasm: 4x X13right7 = X13 unsigned>> 7 # asm 1: vpsrlq $7,X13right7=reg256#7 # asm 2: vpsrlq $7,X13right7=%ymm6 vpsrlq $7,%ymm6,%ymm6 # qhasm: r3 += maj3 # asm 1: add >>18 # asm 1: rorx $18,r718=int64#12 # asm 2: rorx $18,r718=%r14 rorx $18,%r13,%r14 # qhasm: 1x,0 W10sigma1 = W10right19 ^ W10left45 # asm 1: vpxor W10sigma1=reg256#9%128 # asm 2: vpxor W10sigma1=%xmm8 vpxor %xmm8,%xmm10,%xmm8 # qhasm: ch2 &= r7 # asm 1: and >>41 # asm 1: rorx $41,r741=int64#12 # asm 2: rorx $41,r741=%r14 rorx $41,%r13,%r14 # qhasm: X13sigma0 = X13sigma0 ^ X13right7 # asm 1: vpxor X13sigma0=reg256#7 # asm 2: vpxor X13sigma0=%ymm6 vpxor %ymm7,%ymm6,%ymm6 # qhasm: maj2 &= r3 # asm 1: and X12=reg256#5 # asm 2: vpaddq X12=%ymm4 vpaddq %ymm4,%ymm6,%ymm4 # qhasm: r7Sigma1 ^= r741 # asm 1: xor W10left3=reg256#7%128 # asm 2: vpsllq $3,W10left3=%xmm6 vpsllq $3,%xmm5,%xmm6 # qhasm: r3Sigma0 = r3>>>28 # asm 1: rorx $28,r3Sigma0=int64#7 # asm 2: rorx $28,r3Sigma0=%rax rorx $28,%r9,%rax # qhasm: ch2 ^= r1 # asm 1: xor >>34 # asm 1: rorx $34,r334=int64#12 # asm 2: rorx $34,r334=%r14 rorx $34,%r9,%r14 # qhasm: 4x X12 = X12 + mem256[&w + 40] # asm 1: vpaddq X12=reg256#5 # asm 2: vpaddq X12=%ymm4 vpaddq 200(%rsp),%ymm4,%ymm4 # qhasm: r1 += wc4567[2] # asm 1: addq >>39 # asm 1: rorx $39,r339=int64#12 # asm 2: rorx $39,r339=%r14 rorx $39,%r9,%r14 # qhasm: 2x,0 W10right6 = W10 unsigned>> 6 # asm 1: vpsrlq $6,W10right6=reg256#6%128 # asm 2: vpsrlq $6,W10right6=%xmm5 vpsrlq $6,%xmm5,%xmm5 # qhasm: r6 += r2 # asm 1: add ch1=int64#12 # asm 2: mov ch1=%r14 mov %rsi,%r14 # qhasm: r2 += maj2 # asm 1: add >>14 # asm 1: rorx $14,r6Sigma1=int64#7 # asm 2: rorx $14,r6Sigma1=%rax rorx $14,%r12,%rax # qhasm: 1x,0 W10sigma1 ^= W10right6 # asm 1: vpxor >>18 # asm 1: rorx $18,r618=int64#13 # asm 2: rorx $18,r618=%r15 rorx $18,%r12,%r15 # qhasm: ch1 ^= r0 # asm 1: xor X12=reg256#5 # asm 2: vpaddq X12=%ymm4 vpaddq %ymm8,%ymm4,%ymm4 # qhasm: r641 = r6>>>41 # asm 1: rorx $41,r641=int64#14 # asm 2: rorx $41,r641=%rbx rorx $41,%r12,%rbx # qhasm: 2x,0 W12right19 = X12 unsigned>> 19 # asm 1: vpsrlq $19,W12right19=reg256#6%128 # asm 2: vpsrlq $19,W12right19=%xmm5 vpsrlq $19,%xmm4,%xmm5 # qhasm: r6Sigma1 ^= r618 # asm 1: xor >>28 # asm 1: rorx $28,r2Sigma0=int64#12 # asm 2: rorx $28,r2Sigma0=%r14 rorx $28,%rdx,%r14 # qhasm: 2x,0 W12left45 = X12 << 45 # asm 1: vpsllq $45,W12left45=reg256#7%128 # asm 2: vpsllq $45,W12left45=%xmm6 vpsllq $45,%xmm4,%xmm6 # qhasm: r6Sigma1 ^= r641 # asm 1: xor >>34 # asm 1: rorx $34,r234=int64#13 # asm 2: rorx $34,r234=%r15 rorx $34,%rdx,%r15 # qhasm: maj0 = r3 # asm 1: mov maj0=int64#14 # asm 2: mov maj0=%rbx mov %r9,%rbx # qhasm: maj0 ^= r2 # asm 1: xor > 61 # asm 1: vpsrlq $61,W12right61=reg256#8%128 # asm 2: vpsrlq $61,W12right61=%xmm7 vpsrlq $61,%xmm4,%xmm7 # qhasm: r239 = r2>>>39 # asm 1: rorx $39,r239=int64#13 # asm 2: rorx $39,r239=%r15 rorx $39,%rdx,%r15 # qhasm: 1x,0 W12sigma1 = W12right19 ^ W12left45 # asm 1: vpxor W12sigma1=reg256#6%128 # asm 2: vpxor W12sigma1=%xmm5 vpxor %xmm5,%xmm6,%xmm5 # qhasm: 2x,0 W12left3 = X12 << 3 # asm 1: vpsllq $3,W12left3=reg256#7%128 # asm 2: vpsllq $3,W12left3=%xmm6 vpsllq $3,%xmm4,%xmm6 # qhasm: 1x,0 W12sigma1 ^= W12right61 # asm 1: vpxor > 6 # asm 1: vpsrlq $6,W12right6=reg256#8%128 # asm 2: vpsrlq $6,W12right6=%xmm7 vpsrlq $6,%xmm4,%xmm7 # qhasm: r5 += r1 # asm 1: add r2andr3=int64#7 # asm 2: mov r2andr3=%rax mov %r9,%rax # qhasm: r2andr3 &= r2 # asm 1: and >>14 # asm 1: rorx $14,r5Sigma1=int64#13 # asm 2: rorx $14,r5Sigma1=%r15 rorx $14,%r10,%r15 # qhasm: r1 += r2Sigma0 # asm 1: add maj1=int64#12 # asm 2: mov maj1=%r14 mov %r11,%r14 # qhasm: maj1 &= maj0 # asm 1: and W12sigma1=reg256#6 # asm 2: vpermq $0x4e,W12sigma1=%ymm5 vpermq $0x4e,%ymm5,%ymm5 # qhasm: maj1 ^= r2andr3 # asm 1: xor ch0=int64#15 # asm 2: mov ch0=%rbp mov %r13,%rbp # qhasm: ch0 ^= r6 # asm 1: xor >>18 # asm 1: rorx $18,r518=int64#12 # asm 2: rorx $18,r518=%r14 rorx $18,%r10,%r14 # qhasm: maj0 &= r1 # asm 1: and >>41 # asm 1: rorx $41,r541=int64#12 # asm 2: rorx $41,r541=%r14 rorx $41,%r10,%r14 # qhasm: 4x X12 = X12 + W12sigma1 # asm 1: vpaddq X12=reg256#5 # asm 2: vpaddq X12=%ymm4 vpaddq %ymm4,%ymm5,%ymm4 # qhasm: r0 += ch0 # asm 1: add >>28 # asm 1: rorx $28,r1Sigma0=int64#7 # asm 2: rorx $28,r1Sigma0=%rax rorx $28,%rcx,%rax # qhasm: 4x D12 = X12 + mem256[constants + 96] # asm 1: vpaddq 96(D12=reg256#6 # asm 2: vpaddq 96(D12=%ymm5 vpaddq 96(%r8),%ymm4,%ymm5 # qhasm: wc12131415 = D12 # asm 1: vmovapd wc12131415=stack256#5 # asm 2: vmovapd wc12131415=128(%rsp) vmovapd %ymm5,128(%rsp) # qhasm: r5Sigma1 ^= r541 # asm 1: xor >>34 # asm 1: rorx $34,r134=int64#12 # asm 2: rorx $34,r134=%r14 rorx $34,%rcx,%r14 # qhasm: r0 += r5Sigma1 # asm 1: add >>39 # asm 1: rorx $39,r139=int64#12 # asm 2: rorx $39,r139=%r14 rorx $39,%rcx,%r14 # qhasm: r4 += r0 # asm 1: add >>14 # asm 1: rorx $14,r4Sigma1=int64#1 # asm 2: rorx $14,r4Sigma1=%rdi rorx $14,%r11,%rdi # qhasm: ch7 = r6 # asm 1: mov ch7=int64#5 # asm 2: mov ch7=%r8 mov %r12,%r8 # qhasm: r418 = r4>>>18 # asm 1: rorx $18,r418=int64#7 # asm 2: rorx $18,r418=%rax rorx $18,%r11,%rax # qhasm: ch7 ^= r5 # asm 1: xor >>41 # asm 1: rorx $41,r441=int64#12 # asm 2: rorx $41,r441=%r14 rorx $41,%r11,%r14 # qhasm: r4Sigma1 ^= r418 # asm 1: xor >>28 # asm 1: rorx $28,r0Sigma0=int64#7 # asm 2: rorx $28,r0Sigma0=%rax rorx $28,%rsi,%rax # qhasm: r4Sigma1 ^= r441 # asm 1: xor >>34 # asm 1: rorx $34,r034=int64#12 # asm 2: rorx $34,r034=%r14 rorx $34,%rsi,%r14 # qhasm: maj6 = r1 # asm 1: mov maj6=int64#13 # asm 2: mov maj6=%r15 mov %rcx,%r15 # qhasm: maj6 ^= r0 # asm 1: xor r0andr1=int64#5 # asm 2: mov r0andr1=%r8 mov %rcx,%r8 # qhasm: r039 = r0>>>39 # asm 1: rorx $39,r039=int64#12 # asm 2: rorx $39,r039=%r14 rorx $39,%rsi,%r14 # qhasm: r0andr1 &= r0 # asm 1: and maj7=int64#1 # asm 2: mov maj7=%rdi mov %rdx,%rdi # qhasm: r6 += wc891011[1] # asm 1: addq ch6=int64#7 # asm 2: mov ch6=%rax mov %r10,%rax # qhasm: maj7 ^= r0andr1 # asm 1: xor >>14 # asm 1: rorx $14,r3Sigma1=int64#12 # asm 2: rorx $14,r3Sigma1=%r14 rorx $14,%r9,%r14 # qhasm: r7 += maj7 # asm 1: add >>18 # asm 1: rorx $18,r318=int64#1 # asm 2: rorx $18,r318=%rdi rorx $18,%r9,%rdi # qhasm: r3Sigma1 ^= r318 # asm 1: xor >>41 # asm 1: rorx $41,r341=int64#1 # asm 2: rorx $41,r341=%rdi rorx $41,%r9,%rdi # qhasm: r3Sigma1 ^= r341 # asm 1: xor >>28 # asm 1: rorx $28,r7Sigma0=int64#1 # asm 2: rorx $28,r7Sigma0=%rdi rorx $28,%r13,%rdi # qhasm: maj6 ^= r0andr1 # asm 1: xor >>34 # asm 1: rorx $34,r734=int64#5 # asm 2: rorx $34,r734=%r8 rorx $34,%r13,%r8 # qhasm: r7Sigma0 ^= r734 # asm 1: xor >>39 # asm 1: rorx $39,r739=int64#5 # asm 2: rorx $39,r739=%r8 rorx $39,%r13,%r8 # qhasm: r7Sigma0 ^= r739 # asm 1: xor in=int64#1 # asm 2: movq in=%rdi movq 400(%rsp),%rdi # qhasm: r5 += wc891011[2] # asm 1: addq >>14 # asm 1: rorx $14,r2Sigma1=int64#5 # asm 2: rorx $14,r2Sigma1=%r8 rorx $14,%rdx,%r8 # qhasm: ch5 = r4 # asm 1: mov ch5=int64#7 # asm 2: mov ch5=%rax mov %r11,%rax # qhasm: r218 = r2>>>18 # asm 1: rorx $18,r218=int64#12 # asm 2: rorx $18,r218=%r14 rorx $18,%rdx,%r14 # qhasm: ch5 ^= r3 # asm 1: xor >>41 # asm 1: rorx $41,r241=int64#13 # asm 2: rorx $41,r241=%r15 rorx $41,%rdx,%r15 # qhasm: r2Sigma1 ^= r218 # asm 1: xor >>28 # asm 1: rorx $28,r6Sigma0=int64#12 # asm 2: rorx $28,r6Sigma0=%r14 rorx $28,%r12,%r14 # qhasm: r2Sigma1 ^= r241 # asm 1: xor >>34 # asm 1: rorx $34,r634=int64#13 # asm 2: rorx $34,r634=%r15 rorx $34,%r12,%r15 # qhasm: maj4 = r7 # asm 1: mov maj4=int64#14 # asm 2: mov maj4=%rbx mov %r13,%rbx # qhasm: maj4 ^= r6 # asm 1: xor r6andr7=int64#7 # asm 2: mov r6andr7=%rax mov %r13,%rax # qhasm: r639 = r6>>>39 # asm 1: rorx $39,r639=int64#13 # asm 2: rorx $39,r639=%r15 rorx $39,%r12,%r15 # qhasm: r6andr7 &= r6 # asm 1: and maj5=int64#5 # asm 2: mov maj5=%r8 mov %rsi,%r8 # qhasm: r4 += wc891011[3] # asm 1: addq ch4=int64#12 # asm 2: mov ch4=%r14 mov %r9,%r14 # qhasm: maj5 ^= r6andr7 # asm 1: xor >>14 # asm 1: rorx $14,r1Sigma1=int64#13 # asm 2: rorx $14,r1Sigma1=%r15 rorx $14,%rcx,%r15 # qhasm: r5 += maj5 # asm 1: add >>18 # asm 1: rorx $18,r118=int64#5 # asm 2: rorx $18,r118=%r8 rorx $18,%rcx,%r8 # qhasm: r1Sigma1 ^= r118 # asm 1: xor >>41 # asm 1: rorx $41,r141=int64#5 # asm 2: rorx $41,r141=%r8 rorx $41,%rcx,%r8 # qhasm: r1Sigma1 ^= r141 # asm 1: xor >>28 # asm 1: rorx $28,r5Sigma0=int64#5 # asm 2: rorx $28,r5Sigma0=%r8 rorx $28,%r10,%r8 # qhasm: maj4 ^= r6andr7 # asm 1: xor >>34 # asm 1: rorx $34,r534=int64#7 # asm 2: rorx $34,r534=%rax rorx $34,%r10,%rax # qhasm: r5Sigma0 ^= r534 # asm 1: xor >>39 # asm 1: rorx $39,r539=int64#7 # asm 2: rorx $39,r539=%rax rorx $39,%r10,%rax # qhasm: r5Sigma0 ^= r539 # asm 1: xor inlen=int64#7 # asm 2: movq inlen=%rax movq 376(%rsp),%rax # qhasm: in += 128 # asm 1: add $128,>>14 # asm 1: rorx $14,r0Sigma1=int64#5 # asm 2: rorx $14,r0Sigma1=%r8 rorx $14,%rsi,%r8 # qhasm: ch3 = r2 # asm 1: mov ch3=int64#12 # asm 2: mov ch3=%r14 mov %rdx,%r14 # qhasm: r018 = r0>>>18 # asm 1: rorx $18,r018=int64#13 # asm 2: rorx $18,r018=%r15 rorx $18,%rsi,%r15 # qhasm: ch3 ^= r1 # asm 1: xor >>41 # asm 1: rorx $41,r041=int64#14 # asm 2: rorx $41,r041=%rbx rorx $41,%rsi,%rbx # qhasm: r0Sigma1 ^= r018 # asm 1: xor >>28 # asm 1: rorx $28,r4Sigma0=int64#13 # asm 2: rorx $28,r4Sigma0=%r15 rorx $28,%r11,%r15 # qhasm: r0Sigma1 ^= r041 # asm 1: xor >>34 # asm 1: rorx $34,r434=int64#14 # asm 2: rorx $34,r434=%rbx rorx $34,%r11,%rbx # qhasm: maj2 = r5 # asm 1: mov maj2=int64#15 # asm 2: mov maj2=%rbp mov %r10,%rbp # qhasm: maj2 ^= r4 # asm 1: xor r4andr5=int64#12 # asm 2: mov r4andr5=%r14 mov %r10,%r14 # qhasm: r439 = r4>>>39 # asm 1: rorx $39,r439=int64#14 # asm 2: rorx $39,r439=%rbx rorx $39,%r11,%rbx # qhasm: r4andr5 &= r4 # asm 1: and maj3=int64#5 # asm 2: mov maj3=%r8 mov %r12,%r8 # qhasm: r2 += wc12131415[1] # asm 1: addq ch2=int64#13 # asm 2: mov ch2=%r15 mov %rcx,%r15 # qhasm: maj3 ^= r4andr5 # asm 1: xor >>14 # asm 1: rorx $14,r7Sigma1=int64#14 # asm 2: rorx $14,r7Sigma1=%rbx rorx $14,%r13,%rbx # qhasm: r3 += maj3 # asm 1: add >>18 # asm 1: rorx $18,r718=int64#5 # asm 2: rorx $18,r718=%r8 rorx $18,%r13,%r8 # qhasm: r7Sigma1 ^= r718 # asm 1: xor >>41 # asm 1: rorx $41,r741=int64#5 # asm 2: rorx $41,r741=%r8 rorx $41,%r13,%r8 # qhasm: r7Sigma1 ^= r741 # asm 1: xor >>28 # asm 1: rorx $28,r3Sigma0=int64#5 # asm 2: rorx $28,r3Sigma0=%r8 rorx $28,%r9,%r8 # qhasm: maj2 ^= r4andr5 # asm 1: xor >>34 # asm 1: rorx $34,r334=int64#12 # asm 2: rorx $34,r334=%r14 rorx $34,%r9,%r14 # qhasm: r3Sigma0 ^= r334 # asm 1: xor >>39 # asm 1: rorx $39,r339=int64#12 # asm 2: rorx $39,r339=%r14 rorx $39,%r9,%r14 # qhasm: r3Sigma0 ^= r339 # asm 1: xor >>14 # asm 1: rorx $14,r6Sigma1=int64#5 # asm 2: rorx $14,r6Sigma1=%r8 rorx $14,%r12,%r8 # qhasm: ch1 = r0 # asm 1: mov ch1=int64#12 # asm 2: mov ch1=%r14 mov %rsi,%r14 # qhasm: r618 = r6>>>18 # asm 1: rorx $18,r618=int64#13 # asm 2: rorx $18,r618=%r15 rorx $18,%r12,%r15 # qhasm: ch1 ^= r7 # asm 1: xor >>41 # asm 1: rorx $41,r641=int64#14 # asm 2: rorx $41,r641=%rbx rorx $41,%r12,%rbx # qhasm: r6Sigma1 ^= r618 # asm 1: xor >>28 # asm 1: rorx $28,r2Sigma0=int64#13 # asm 2: rorx $28,r2Sigma0=%r15 rorx $28,%rdx,%r15 # qhasm: r6Sigma1 ^= r641 # asm 1: xor >>34 # asm 1: rorx $34,r234=int64#14 # asm 2: rorx $34,r234=%rbx rorx $34,%rdx,%rbx # qhasm: maj0 = r3 # asm 1: mov maj0=int64#15 # asm 2: mov maj0=%rbp mov %r9,%rbp # qhasm: maj0 ^= r2 # asm 1: xor r2andr3=int64#12 # asm 2: mov r2andr3=%r14 mov %r9,%r14 # qhasm: r239 = r2>>>39 # asm 1: rorx $39,r239=int64#14 # asm 2: rorx $39,r239=%rbx rorx $39,%rdx,%rbx # qhasm: r2andr3 &= r2 # asm 1: and maj1=int64#5 # asm 2: mov maj1=%r8 mov %r11,%r8 # qhasm: r0 += wc12131415[3] # asm 1: addq ch0=int64#13 # asm 2: mov ch0=%r15 mov %r13,%r15 # qhasm: maj1 ^= r2andr3 # asm 1: xor >>14 # asm 1: rorx $14,r5Sigma1=int64#14 # asm 2: rorx $14,r5Sigma1=%rbx rorx $14,%r10,%rbx # qhasm: r1 += maj1 # asm 1: add >>18 # asm 1: rorx $18,r518=int64#5 # asm 2: rorx $18,r518=%r8 rorx $18,%r10,%r8 # qhasm: r5Sigma1 ^= r518 # asm 1: xor >>41 # asm 1: rorx $41,r541=int64#5 # asm 2: rorx $41,r541=%r8 rorx $41,%r10,%r8 # qhasm: r5Sigma1 ^= r541 # asm 1: xor >>28 # asm 1: rorx $28,r1Sigma0=int64#5 # asm 2: rorx $28,r1Sigma0=%r8 rorx $28,%rcx,%r8 # qhasm: maj0 ^= r2andr3 # asm 1: xor >>34 # asm 1: rorx $34,r134=int64#12 # asm 2: rorx $34,r134=%r14 rorx $34,%rcx,%r14 # qhasm: r1Sigma0 ^= r134 # asm 1: xor >>39 # asm 1: rorx $39,r139=int64#12 # asm 2: rorx $39,r139=%r14 rorx $39,%rcx,%r14 # qhasm: r1Sigma0 ^= r139 # asm 1: xor inlen_stack=stack64#8 # asm 2: movq inlen_stack=376(%rsp) movq %rax,376(%rsp) # qhasm: r7 += state4567[3] # asm 1: addq constants=int64#5 # asm 2: movq constants=%r8 movq 392(%rsp),%r8 # qhasm: r0 += state0123[0] # asm 1: addq statebytes=int64#1 # asm 2: movq statebytes=%rdi movq 384(%rsp),%rdi # qhasm: X0 = state0123 # asm 1: vmovapd X0=reg256#2 # asm 2: vmovapd X0=%ymm1 vmovapd 0(%rsp),%ymm1 # qhasm: X4 = state4567 # asm 1: vmovapd X4=reg256#3 # asm 2: vmovapd X4=%ymm2 vmovapd 32(%rsp),%ymm2 # qhasm: 2x 16x X0 = X0[bigendian64] # asm 1: vpshufb X0=reg256#2 # asm 2: vpshufb X0=%ymm1 vpshufb %ymm0,%ymm1,%ymm1 # qhasm: 2x 16x X4 = X4[bigendian64] # asm 1: vpshufb X4=reg256#1 # asm 2: vpshufb X4=%ymm0 vpshufb %ymm0,%ymm2,%ymm0 # qhasm: mem256[statebytes+0] = X0 # asm 1: vmovupd caller_r11=int64#9 # asm 2: movq caller_r11=%r11 movq 320(%rsp),%r11 # qhasm: caller_r12 = r12_stack # asm 1: movq caller_r12=int64#10 # asm 2: movq caller_r12=%r12 movq 336(%rsp),%r12 # qhasm: caller_r14 = r14_stack # asm 1: movq caller_r14=int64#12 # asm 2: movq caller_r14=%r14 movq 344(%rsp),%r14 # qhasm: caller_r13 = r13_stack # asm 1: movq caller_r13=int64#11 # asm 2: movq caller_r13=%r13 movq 328(%rsp),%r13 # qhasm: caller_r15 = r15_stack # asm 1: movq caller_r15=int64#13 # asm 2: movq caller_r15=%r15 movq 360(%rsp),%r15 # qhasm: caller_rbx = rbx_stack # asm 1: movq caller_rbx=int64#14 # asm 2: movq caller_rbx=%rbx movq 352(%rsp),%rbx # qhasm: caller_rbp = rbp_stack # asm 1: movq caller_rbp=int64#15 # asm 2: movq caller_rbp=%rbp movq 368(%rsp),%rbp # qhasm: return inlen add %r11,%rsp ret .section .note.GNU-stack,"",@progbits libntruprime-20241021/crypto_hashblocks/sha512/avx2/inner.S.do0000644000000000000000000000045214705505547022442 0ustar rootroot#!/bin/sh cpp \ | qhasm-amd64avx \ | sed 's/\/CRYPTO_SHARED_NAMESPACE(inner)/' \ | sed 's/\<_inner\>/_CRYPTO_SHARED_NAMESPACE(inner)/' \ | sed 's/^\.p2align 5/.p2align 7/' \ | awk '{ found = 0 if (!found && $0 == "and $31,%r11") { found = 1 $0 = "and $511,%r11" } print }' libntruprime-20241021/crypto_hashblocks/sha512/avx2/inner.h0000644000000000000000000000032514705505547022065 0ustar rootroot#ifndef inner_h #define inner_h #define inner CRYPTO_SHARED_NAMESPACE(inner) #include "crypto_uint64.h" extern int inner(unsigned char *,const unsigned char *,unsigned long long,const crypto_uint64 *); #endif libntruprime-20241021/crypto_hashblocks/sha512/avx2/inner.q0000644000000000000000000006742714705505547022116 0ustar rootrootstack64 r11_stack stack64 r12_stack stack64 r13_stack stack64 r14_stack stack64 r15_stack stack64 rbx_stack stack64 rbp_stack int64 statebytes stack64 statebytes_stack int64 in stack64 in_stack int64 inlen stack64 inlen_stack int64 constants stack64 constants_stack int64 r0 int64 r1 int64 r2 int64 r3 int64 r4 int64 r5 int64 r6 int64 r7 int64 i stack256 state0123 stack256 state4567 reg256 X0 reg256 X4 reg256 X8 reg256 X12 reg256 X1 reg256 X5 reg256 X9 reg256 X13 reg256 bigendian64 reg256 D0 reg256 D4 reg256 D8 reg256 D12 reg256 W0 reg256 W2 reg256 W4 reg256 W6 reg256 W8 reg256 W10 reg256 W12 reg256 W14 stack1280 w stack256 wc0123 stack256 wc4567 stack256 wc891011 stack256 wc12131415 int64 r0andr1 int64 r2andr3 int64 r4andr5 int64 r6andr7 int64 ch0 int64 ch1 int64 ch2 int64 ch3 int64 ch4 int64 ch5 int64 ch6 int64 ch7 int64 maj0 int64 maj1 int64 maj2 int64 maj3 int64 maj4 int64 maj5 int64 maj6 int64 maj7 int64 r0Sigma0 int64 r1Sigma0 int64 r2Sigma0 int64 r3Sigma0 int64 r4Sigma0 int64 r5Sigma0 int64 r6Sigma0 int64 r7Sigma0 int64 r0Sigma1 int64 r1Sigma1 int64 r2Sigma1 int64 r3Sigma1 int64 r4Sigma1 int64 r5Sigma1 int64 r6Sigma1 int64 r7Sigma1 int64 r018 int64 r118 int64 r218 int64 r318 int64 r418 int64 r518 int64 r618 int64 r718 int64 r041 int64 r141 int64 r241 int64 r341 int64 r441 int64 r541 int64 r641 int64 r741 int64 r034 int64 r134 int64 r234 int64 r334 int64 r434 int64 r534 int64 r634 int64 r734 int64 r039 int64 r139 int64 r239 int64 r339 int64 r439 int64 r539 int64 r639 int64 r739 reg256 X1right1 reg256 X1left63 reg256 X1right8 reg256 X1left56 reg256 X1right7 reg256 X1sigma0 reg256 X5right1 reg256 X5left63 reg256 X5right8 reg256 X5left56 reg256 X5right7 reg256 X5sigma0 reg256 X9right1 reg256 X9left63 reg256 X9right8 reg256 X9left56 reg256 X9right7 reg256 X9sigma0 reg256 X13right1 reg256 X13left63 reg256 X13right8 reg256 X13left56 reg256 X13right7 reg256 X13sigma0 reg256 W0right19 reg256 W0right61 reg256 W0right6 reg256 W0left45 reg256 W0left3 reg256 W0sigma1 reg256 W2right19 reg256 W2right61 reg256 W2right6 reg256 W2left45 reg256 W2left3 reg256 W2sigma1 reg256 W4right19 reg256 W4right61 reg256 W4right6 reg256 W4left45 reg256 W4left3 reg256 W4sigma1 reg256 W6right19 reg256 W6right61 reg256 W6right6 reg256 W6left45 reg256 W6left3 reg256 W6sigma1 reg256 W8right19 reg256 W8right61 reg256 W8right6 reg256 W8left45 reg256 W8left3 reg256 W8sigma1 reg256 W10right19 reg256 W10right61 reg256 W10right6 reg256 W10left45 reg256 W10left3 reg256 W10sigma1 reg256 W12right19 reg256 W12right61 reg256 W12right6 reg256 W12left45 reg256 W12left3 reg256 W12sigma1 reg256 W14right19 reg256 W14right61 reg256 W14right6 reg256 W14left45 reg256 W14left3 reg256 W14sigma1 enter inner constants = input_3 bigendian64 = mem256[input_3+640] X0 = mem256[input_0+0] statebytes = input_0 X4 = mem256[input_0+32] 2x 16x X0 = X0[bigendian64] 2x 16x X4 = X4[bigendian64] state0123 = X0 r11_stack = caller_r11 state4567 = X4 r13_stack = caller_r13 r12_stack = caller_r12 r14_stack = caller_r14 rbx_stack = caller_rbx r15_stack = caller_r15 rbp_stack = caller_rbp inlen_stack = input_2 in = input_1 statebytes_stack = statebytes r0 = state0123[0] r2 = state0123[2] constants_stack = constants r1 = state0123[1] r3 = state0123[3] r5 = state4567[1] r4 = state4567[0] r6 = state4567[2] r7 = state4567[3] new w // interesting pads: 4,5,11,14,17,20,26 nop9 nop9 nop2 outerloop: X0 = mem256[in + 0] 2x 16x X0 = X0[bigendian64] ch7 = r6 r4Sigma1 = r4>>>14 ch7 ^= r5 4x D0 = X0 + mem256[constants + 0] r418 = r4>>>18 r4Sigma1 ^= r418 ch7 &= r4 r441 = r4>>>41 r4Sigma1 ^= r441 r0Sigma0 = r0>>>28 ch7 ^= r6 r034 = r0>>>34 r039 = r0>>>39 inplace state4567[3] = r7 r0Sigma0 ^= r034 r7 += ch7 maj6 = r1 maj6 ^= r0 r0Sigma0 ^= r039 r0andr1 = r1 r0andr1 &= r0 r7 += r4Sigma1 maj7 = r2 wc0123 = D0 r7 += wc0123[0] maj7 &= maj6 inplace state0123[3] = r3 r3 += r7 r7 += r0Sigma0 maj7 ^= r0andr1 ch6 = r5 r3Sigma1 = r3>>>14 ch6 ^= r4 X4 = mem256[in + 32] 2x 16x X4 = X4[bigendian64] r7 += maj7 r318 = r3>>>18 4x D4 = X4 + mem256[constants + 32] ch6 &= r3 r3Sigma1 ^= r318 maj6 &= r7 inplace state4567[2] = r6 r341 = r3>>>41 ch6 ^= r5 maj6 ^= r0andr1 r7Sigma0 = r7>>>28 inplace state4567[1] = r5 r6 += ch6 r3Sigma1 ^= r341 r734 = r7>>>34 inplace state0123[2] = r2 r5 += wc0123[2] r739 = r7>>>39 r7Sigma0 ^= r734 ch5 = r4 ch5 ^= r3 r6 += wc0123[1] r6 += r3Sigma1 mem256[&w + 0] = X0 # can skip &w+128 this time r7Sigma0 ^= r739 r2 += r6 r6 += maj6 inplace state4567[0] = r4 r2Sigma1 = r2>>>14 r6 += r7Sigma0 ch5 &= r2 r218 = r2>>>18 mem256[&w + 32] = X4 r2Sigma1 ^= r218 ch5 ^= r4 r241 = r2>>>41 maj4 = r7 maj4 ^= r6 r6Sigma0 = r6>>>28 wc4567 = D4 r2Sigma1 ^= r241 r5 += ch5 r634 = r6>>>34 in_stack = in r6Sigma0 ^= r634 r639 = r6>>>39 r6andr7 = r7 r6andr7 &= r6 r6Sigma0 ^= r639 maj5 = r0 inplace state0123[1] = r1 r5 += r2Sigma1 r4 += wc0123[3] maj5 &= maj4 r1 += r5 r5 += r6Sigma0 maj5 ^= r6andr7 ch4 = r3 r1Sigma1 = r1>>>14 ch4 ^= r2 r5 += maj5 ch4 &= r1 r118 = r1>>>18 inplace state0123[0] = r0 r1Sigma1 ^= r118 maj4 &= r5 ch4 ^= r3 r141 = r1>>>41 X8 = mem256[in + 64] r1Sigma1 ^= r141 r5Sigma0 = r5>>>28 maj4 ^= r6andr7 r4 += ch4 r534 = r5>>>34 r4 += r1Sigma1 r5Sigma0 ^= r534 r3 += wc4567[0] X12 = mem256[in + 96] r0 += r4 r539 = r5>>>39 r4 += maj4 r5Sigma0 ^= r539 r0Sigma1 = r0>>>14 r4 += r5Sigma0 ch3 = r2 r018 = r0>>>18 ch3 ^= r1 2x 16x X8 = X8[bigendian64] r0Sigma1 ^= r018 ch3 &= r0 r041 = r0>>>41 r4Sigma0 = r4>>>28 4x D8 = X8 + mem256[constants + 64] r0Sigma1 ^= r041 ch3 ^= r2 mem256[&w + 64] = X8 r3 += ch3 r434 = r4>>>34 r439 = r4>>>39 maj2 = r5 maj2 ^= r4 wc891011 = D8 r4Sigma0 ^= r434 r3 += r0Sigma1 r4andr5 = r5 r4andr5 &= r4 r2 += wc4567[1] r4Sigma0 ^= r439 maj3 = r6 maj3 &= maj2 r7 += r3 r3 += r4Sigma0 2x 16x X12 = X12[bigendian64] ch2 = r1 maj3 ^= r4andr5 ch2 ^= r0 r3 += maj3 r7Sigma1 = r7>>>14 4x D12 = X12 + mem256[constants + 96] ch2 &= r7 r718 = r7>>>18 r7Sigma1 ^= r718 maj2 &= r3 ch2 ^= r1 r741 = r7>>>41 mem256[&w + 96] = X12 r7Sigma1 ^= r741 maj2 ^= r4andr5 r3Sigma0 = r3>>>28 wc12131415 = D12 r2 += ch2 r2 += r7Sigma1 r1 += wc4567[2] ch1 = r0 r334 = r3>>>34 ch1 ^= r7 r3Sigma0 ^= r334 r6 += r2 r339 = r3>>>39 r2 += maj2 r3Sigma0 ^= r339 r6Sigma1 = r6>>>14 r618 = r6>>>18 r641 = r6>>>41 ch1 &= r6 r2 += r3Sigma0 r6Sigma1 ^= r618 r2Sigma0 = r2>>>28 r6Sigma1 ^= r641 ch1 ^= r0 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 r2Sigma0 ^= r234 r1 += ch1 r239 = r2>>>39 r2andr3 = r3 r2andr3 &= r2 r2Sigma0 ^= r239 r1 += r6Sigma1 maj1 = r4 maj1 &= maj0 r0 += wc4567[3] r5 += r1 r1 += r2Sigma0 ch0 = r7 maj1 ^= r2andr3 ch0 ^= r6 r5Sigma1 = r5>>>14 r1 += maj1 ch0 &= r5 r518 = r5>>>18 r5Sigma1 ^= r518 maj0 &= r1 ch0 ^= r7 r541 = r5>>>41 r5Sigma1 ^= r541 maj0 ^= r2andr3 r1Sigma0 = r1>>>28 r0 += ch0 r0 += r5Sigma1 r134 = r1>>>34 r1Sigma0 ^= r134 r4 += r0 r0 += maj0 r139 = r1>>>39 r1Sigma0 ^= r139 r0 += r1Sigma0 i = 4 innerloop: X1 = mem256[&w + 8] 4x X1right1 = X1 unsigned>> 1 r4Sigma1 = r4>>>14 r7 += wc891011[0] 4x X1left63 = X1 << 63 ch7 = r6 ch7 ^= r5 r418 = r4>>>18 ch7 &= r4 maj6 = r1 maj6 ^= r0 W14 = mem128[&w + 112],0 r441 = r4>>>41 r4Sigma1 ^= r418 ch7 ^= r6 X1sigma0 = X1right1 ^ X1left63 4x X1right8 = X1 unsigned>> 8 r4Sigma1 ^= r441 r7 += ch7 r0Sigma0 = r0>>>28 r034 = r0>>>34 X1sigma0 = X1sigma0 ^ X1right8 r7 += r4Sigma1 maj7 = r2 maj7 &= maj6 r0Sigma0 ^= r034 2x,0 W14right19 = W14 unsigned>> 19 r039 = r0>>>39 4x X1left56 = X1 << 56 r3 += r7 r0Sigma0 ^= r039 r6 += wc891011[1] r0andr1 = r1 r0andr1 &= r0 2x,0 W14left45 = W14 << 45 r7 += r0Sigma0 maj7 ^= r0andr1 ch6 = r5 ch6 ^= r4 2x,0 W14right61 = W14 unsigned>> 61 r3Sigma1 = r3>>>14 X1sigma0 = X1sigma0 ^ X1left56 r7 += maj7 r318 = r3>>>18 4x X1right7 = X1 unsigned>> 7 1x,0 W14sigma1 = W14right19 ^ W14left45 ch6 &= r3 r3Sigma1 ^= r318 r341 = r3>>>41 maj6 &= r7 X1sigma0 = X1sigma0 ^ X1right7 1x,0 W14sigma1 ^= W14right61 4x X0 = X0 + X1sigma0 r3Sigma1 ^= r341 maj6 ^= r0andr1 2x,0 W14left3 = W14 << 3 r7Sigma0 = r7>>>28 ch6 ^= r5 r6 += r3Sigma1 4x X0 = X0 + mem256[&w + 72] r734 = r7>>>34 r5 += wc891011[2] r6 += ch6 r7Sigma0 ^= r734 r739 = r7>>>39 r2 += r6 1x,0 W14sigma1 ^= W14left3 2x,0 W14right6 = W14 unsigned>> 6 r7Sigma0 ^= r739 r6 += maj6 ch5 = r4 ch5 ^= r3 r6 += r7Sigma0 r2Sigma1 = r2>>>14 1x,0 W14sigma1 ^= W14right6 ch5 &= r2 r218 = r2>>>18 r241 = r2>>>41 4x X0 = W14sigma1 + X0 ch5 ^= r4 r2Sigma1 ^= r218 2x,0 W0right19 = X0 unsigned>> 19 r6Sigma0 = r6>>>28 r5 += ch5 2x,0 W0left45 = X0 << 45 r634 = r6>>>34 r2Sigma1 ^= r241 maj4 = r7 X5 = mem256[&w + 40] maj4 ^= r6 2x,0 W0right61 = X0 unsigned>> 61 1x,0 W0sigma1 = W0right19 ^ W0left45 r6Sigma0 ^= r634 1x,0 W0sigma1 ^= W0right61 r639 = r6>>>39 2x,0 W0left3 = X0 << 3 r6Sigma0 ^= r639 r5 += r2Sigma1 2x,0 W0right6 = X0 unsigned>> 6 1x,0 W0sigma1 ^= W0left3 r1 += r5 r6andr7 = r7 r6andr7 &= r6 r1Sigma1 = r1>>>14 r5 += r6Sigma0 1x,0 W0sigma1 ^= W0right6 maj5 = r0 maj5 &= maj4 W0sigma1 = W0sigma1[2,3,0,1] maj5 ^= r6andr7 ch4 = r3 4x X5right1 = X5 unsigned>> 1 ch4 ^= r2 r5 += maj5 r118 = r1>>>18 ch4 &= r1 maj4 &= r5 ch4 ^= r3 r4 += wc891011[3] r1Sigma1 ^= r118 r141 = r1>>>41 4x X0 = X0 + W0sigma1 r4 += ch4 maj4 ^= r6andr7 r5Sigma0 = r5>>>28 4x D0 = X0 + mem256[constants + 128] r1Sigma1 ^= r141 r534 = r5>>>34 mem256[&w + 128] = X0 r4 += r1Sigma1 r5Sigma0 ^= r534 r539 = r5>>>39 r3 += wc12131415[0] mem256[&w + 0] = X0 r0 += r4 r4 += maj4 r5Sigma0 ^= r539 constants += 128 wc0123 = D0 W2 = mem128[&w + 16],0 r4 += r5Sigma0 r0Sigma1 = r0>>>14 ch3 = r2 ch3 ^= r1 4x X5left63 = X5 << 63 r018 = r0>>>18 maj2 = r5 ch3 &= r0 maj2 ^= r4 r041 = r0>>>41 X5sigma0 = X5right1 ^ X5left63 r0Sigma1 ^= r018 ch3 ^= r2 4x X5right8 = X5 unsigned>> 8 r4Sigma0 = r4>>>28 r0Sigma1 ^= r041 r3 += ch3 r434 = r4>>>34 X5sigma0 = X5sigma0 ^ X5right8 r3 += r0Sigma1 maj3 = r6 maj3 &= maj2 r4Sigma0 ^= r434 r439 = r4>>>39 2x,0 W2right19 = W2 unsigned>> 19 4x X5left56 = X5 << 56 r7 += r3 r4Sigma0 ^= r439 r2 += wc12131415[1] r4andr5 = r5 r4andr5 &= r4 2x,0 W2left45 = W2 << 45 r3 += r4Sigma0 maj3 ^= r4andr5 ch2 = r1 ch2 ^= r0 2x,0 W2right61 = W2 unsigned>> 61 r7Sigma1 = r7>>>14 X5sigma0 = X5sigma0 ^ X5left56 r3 += maj3 4x X5right7 = X5 unsigned>> 7 r718 = r7>>>18 1x,0 W2sigma1 = W2right19 ^ W2left45 ch2 &= r7 r7Sigma1 ^= r718 X5sigma0 = X5sigma0 ^ X5right7 r741 = r7>>>41 maj2 &= r3 1x,0 W2sigma1 ^= W2right61 4x X4 = X4 + X5sigma0 r7Sigma1 ^= r741 maj2 ^= r4andr5 2x,0 W2left3 = W2 << 3 r3Sigma0 = r3>>>28 ch2 ^= r1 r2 += r7Sigma1 r334 = r3>>>34 4x X4 = X4 + mem256[&w + 104] r1 += wc12131415[2] r2 += ch2 r3Sigma0 ^= r334 r339 = r3>>>39 r6 += r2 1x,0 W2sigma1 ^= W2left3 2x,0 W2right6 = W2 unsigned>> 6 r3Sigma0 ^= r339 r2 += maj2 ch1 = r0 ch1 ^= r7 r2 += r3Sigma0 r6Sigma1 = r6>>>14 1x,0 W2sigma1 ^= W2right6 ch1 &= r6 r618 = r6>>>18 r641 = r6>>>41 4x X4 = W2sigma1 + X4 ch1 ^= r0 r6Sigma1 ^= r618 2x,0 W4right19 = X4 unsigned>> 19 r1 += ch1 r2Sigma0 = r2>>>28 2x,0 W4left45 = X4 << 45 r6Sigma1 ^= r641 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 2x,0 W4right61 = X4 unsigned>> 61 X9 = mem256[&w + 72] r2Sigma0 ^= r234 1x,0 W4sigma1 = W4right19 ^ W4left45 r239 = r2>>>39 2x,0 W4left3 = X4 << 3 1x,0 W4sigma1 ^= W4right61 2x,0 W4right6 = X4 unsigned>> 6 r2Sigma0 ^= r239 r1 += r6Sigma1 1x,0 W4sigma1 ^= W4left3 r5 += r1 r2andr3 = r3 r5Sigma1 = r5>>>14 r2andr3 &= r2 1x,0 W4sigma1 ^= W4right6 r1 += r2Sigma0 maj1 = r4 maj1 &= maj0 W4sigma1 = W4sigma1[2,3,0,1] maj1 ^= r2andr3 ch0 = r7 4x X9right1 = X9 unsigned>> 1 ch0 ^= r6 r1 += maj1 ch0 &= r5 r518 = r5>>>18 maj0 &= r1 r0 += wc12131415[3] ch0 ^= r7 r5Sigma1 ^= r518 4x X4 = X4 + W4sigma1 r541 = r5>>>41 mem256[&w + 32] = X4 r0 += ch0 maj0 ^= r2andr3 r1Sigma0 = r1>>>28 4x D4 = X4 + mem256[constants + 32] wc4567 = D4 r5Sigma1 ^= r541 r134 = r1>>>34 r0 += r5Sigma1 r1Sigma0 ^= r134 r7 += wc0123[0] r139 = r1>>>39 r4 += r0 r0 += maj0 r1Sigma0 ^= r139 r4Sigma1 = r4>>>14 W6 = mem128[&w + 48],0 r0 += r1Sigma0 ch7 = r6 ch7 ^= r5 r418 = r4>>>18 4x X9left63 = X9 << 63 ch7 &= r4 maj6 = r1 maj6 ^= r0 r441 = r4>>>41 X9sigma0 = X9right1 ^ X9left63 r4Sigma1 ^= r418 4x X9right8 = X9 unsigned>> 8 ch7 ^= r6 r4Sigma1 ^= r441 r0Sigma0 = r0>>>28 r7 += ch7 X9sigma0 = X9sigma0 ^ X9right8 r7 += r4Sigma1 r034 = r0>>>34 maj7 = r2 maj7 &= maj6 r0Sigma0 ^= r034 2x,0 W6right19 = W6 unsigned>> 19 r039 = r0>>>39 r3 += r7 r0Sigma0 ^= r039 4x X9left56 = X9 << 56 r6 += wc0123[1] r0andr1 = r1 r0andr1 &= r0 r7 += r0Sigma0 ch6 = r5 2x,0 W6left45 = W6 << 45 maj7 ^= r0andr1 ch6 ^= r4 2x,0 W6right61 = W6 unsigned>> 61 r3Sigma1 = r3>>>14 r7 += maj7 X9sigma0 = X9sigma0 ^ X9left56 4x X9right7 = X9 unsigned>> 7 r318 = r3>>>18 1x,0 W6sigma1 = W6right19 ^ W6left45 ch6 &= r3 r3Sigma1 ^= r318 r341 = r3>>>41 X9sigma0 = X9sigma0 ^ X9right7 maj6 &= r7 1x,0 W6sigma1 ^= W6right61 4x X8 = X8 + X9sigma0 r3Sigma1 ^= r341 maj6 ^= r0andr1 2x,0 W6left3 = W6 << 3 r7Sigma0 = r7>>>28 ch6 ^= r5 r6 += r3Sigma1 4x X8 = X8 + mem256[&w + 8] r734 = r7>>>34 r5 += wc0123[2] r6 += ch6 r7Sigma0 ^= r734 1x,0 W6sigma1 ^= W6left3 r739 = r7>>>39 r2 += r6 r7Sigma0 ^= r739 ch5 = r4 2x,0 W6right6 = W6 unsigned>> 6 r6 += maj6 ch5 ^= r3 r6 += r7Sigma0 r2Sigma1 = r2>>>14 1x,0 W6sigma1 ^= W6right6 ch5 &= r2 r218 = r2>>>18 r241 = r2>>>41 4x X8 = W6sigma1 + X8 2x,0 W8right19 = X8 unsigned>> 19 ch5 ^= r4 r2Sigma1 ^= r218 r6Sigma0 = r6>>>28 r5 += ch5 2x,0 W8left45 = X8 << 45 r634 = r6>>>34 r2Sigma1 ^= r241 maj4 = r7 2x,0 W8right61 = X8 unsigned>> 61 maj4 ^= r6 r6Sigma0 ^= r634 1x,0 W8sigma1 = W8right19 ^ W8left45 r639 = r6>>>39 1x,0 W8sigma1 ^= W8right61 2x,0 W8left3 = X8 << 3 r6Sigma0 ^= r639 r5 += r2Sigma1 r1 += r5 2x,0 W8right6 = X8 unsigned>> 6 1x,0 W8sigma1 ^= W8left3 r6andr7 = r7 r6andr7 &= r6 r1Sigma1 = r1>>>14 1x,0 W8sigma1 ^= W8right6 r5 += r6Sigma0 maj5 = r0 maj5 &= maj4 W8sigma1 = W8sigma1[2,3,0,1] maj5 ^= r6andr7 ch4 = r3 ch4 ^= r2 X13 = mem256[&w + 104] 4x X13right1 = X13 unsigned>> 1 r5 += maj5 r118 = r1>>>18 ch4 &= r1 maj4 &= r5 ch4 ^= r3 r4 += wc0123[3] r1Sigma1 ^= r118 r141 = r1>>>41 4x X8 = X8 + W8sigma1 mem256[&w + 64] = X8 r4 += ch4 maj4 ^= r6andr7 r5Sigma0 = r5>>>28 4x D8 = X8 + mem256[constants + 64] wc891011 = D8 r534 = r5>>>34 r1Sigma1 ^= r141 r4 += r1Sigma1 r5Sigma0 ^= r534 r539 = r5>>>39 r3 += wc4567[0] r0 += r4 r4 += maj4 W10 = mem128[&w + 80],0 r5Sigma0 ^= r539 r0Sigma1 = r0>>>14 r4 += r5Sigma0 ch3 = r2 ch3 ^= r1 ch3 &= r0 4x X13left63 = X13 << 63 r018 = r0>>>18 maj2 = r5 maj2 ^= r4 X13sigma0 = X13right1 ^ X13left63 r041 = r0>>>41 r0Sigma1 ^= r018 ch3 ^= r2 4x X13right8 = X13 unsigned>> 8 r4Sigma0 = r4>>>28 r0Sigma1 ^= r041 r3 += ch3 r434 = r4>>>34 X13sigma0 = X13sigma0 ^ X13right8 r3 += r0Sigma1 maj3 = r6 maj3 &= maj2 2x,0 W10right19 = W10 unsigned>> 19 r4Sigma0 ^= r434 r7 += r3 r439 = r4>>>39 4x X13left56 = X13 << 56 r4Sigma0 ^= r439 r2 += wc4567[1] r4andr5 = r5 2x,0 W10left45 = W10 << 45 r4andr5 &= r4 r3 += r4Sigma0 maj3 ^= r4andr5 ch2 = r1 2x,0 W10right61 = W10 unsigned>> 61 ch2 ^= r0 X13sigma0 = X13sigma0 ^ X13left56 r7Sigma1 = r7>>>14 4x X13right7 = X13 unsigned>> 7 r3 += maj3 r718 = r7>>>18 1x,0 W10sigma1 = W10right19 ^ W10left45 ch2 &= r7 r7Sigma1 ^= r718 r741 = r7>>>41 X13sigma0 = X13sigma0 ^ X13right7 maj2 &= r3 1x,0 W10sigma1 ^= W10right61 4x X12 = X12 + X13sigma0 r7Sigma1 ^= r741 maj2 ^= r4andr5 2x,0 W10left3 = W10 << 3 r3Sigma0 = r3>>>28 ch2 ^= r1 r2 += r7Sigma1 r334 = r3>>>34 4x X12 = X12 + mem256[&w + 40] r1 += wc4567[2] r2 += ch2 1x,0 W10sigma1 ^= W10left3 r3Sigma0 ^= r334 r339 = r3>>>39 2x,0 W10right6 = W10 unsigned>> 6 r6 += r2 r3Sigma0 ^= r339 ch1 = r0 r2 += maj2 ch1 ^= r7 r2 += r3Sigma0 r6Sigma1 = r6>>>14 1x,0 W10sigma1 ^= W10right6 ch1 &= r6 r618 = r6>>>18 ch1 ^= r0 4x X12 = W10sigma1 + X12 r641 = r6>>>41 2x,0 W12right19 = X12 unsigned>> 19 r6Sigma1 ^= r618 r1 += ch1 r2Sigma0 = r2>>>28 2x,0 W12left45 = X12 << 45 r6Sigma1 ^= r641 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 r2Sigma0 ^= r234 2x,0 W12right61 = X12 unsigned>> 61 r239 = r2>>>39 1x,0 W12sigma1 = W12right19 ^ W12left45 2x,0 W12left3 = X12 << 3 1x,0 W12sigma1 ^= W12right61 r2Sigma0 ^= r239 r1 += r6Sigma1 2x,0 W12right6 = X12 unsigned>> 6 r5 += r1 1x,0 W12sigma1 ^= W12left3 r2andr3 = r3 r2andr3 &= r2 r5Sigma1 = r5>>>14 r1 += r2Sigma0 1x,0 W12sigma1 ^= W12right6 maj1 = r4 maj1 &= maj0 W12sigma1 = W12sigma1[2,3,0,1] maj1 ^= r2andr3 ch0 = r7 ch0 ^= r6 r1 += maj1 ch0 &= r5 r518 = r5>>>18 maj0 &= r1 r0 += wc4567[3] ch0 ^= r7 r5Sigma1 ^= r518 r541 = r5>>>41 4x X12 = X12 + W12sigma1 r0 += ch0 mem256[&w + 96] = X12 maj0 ^= r2andr3 r1Sigma0 = r1>>>28 4x D12 = X12 + mem256[constants + 96] wc12131415 = D12 r5Sigma1 ^= r541 r134 = r1>>>34 r0 += r5Sigma1 r1Sigma0 ^= r134 r139 = r1>>>39 r4 += r0 r0 += maj0 r1Sigma0 ^= r139 r0 += r1Sigma0 =? i -= 1 goto innerloop if != #include "round89.q" in = in_stack #include "round1011.q" inlen = inlen_stack in += 128 #include "round1213.q" inlen -= 128 #include "round1415.q" inlen_stack = inlen r7 += state4567[3] r3 += state0123[3] r6 += state4567[2] r2 += state0123[2] r5 += state4567[1] r1 += state0123[1] r4 += state4567[0] constants = constants_stack # or: constants -= 512 r0 += state0123[0] unsigned> 1' % (j1,j1)) print(' r%dSigma1 = r%d>>>14' % (i4,i4)) print(' r%d += %s[0]' % (i7,wcin)) print(' ch%d = r%d' % (i7,i6)) print(' ch%d ^= r%d' % (i7,i5)) print('') print(' 4x X%dleft63 = X%d << 63' % (j1,j1)) print(' r%d18 = r%d>>>18' % (i4,i4)) print(' ch%d &= r%d' % (i7,i4)) print(' maj%d = r%d' % (i6,i1)) print(' maj%d ^= r%d' % (i6,i0)) print('') print(' X%dsigma0 = X%dright1 ^ X%dleft63' % (j1,j1,j1)) print(' r%d41 = r%d>>>41' % (i4,i4)) print(' r%dSigma1 ^= r%d18' % (i4,i4)) print(' ch%d ^= r%d' % (i7,i6)) print('') print(' 4x X%dright8 = X%d unsigned>> 8' % (j1,j1)) print(' r%dSigma1 ^= r%d41' % (i4,i4)) print(' r%dSigma0 = r%d>>>28' % (i0,i0)) print(' r%d += ch%d' % (i7,i7)) print('') print(' X%dsigma0 = X%dsigma0 ^ X%dright8' % (j1,j1,j1)) print(' r%d34 = r%d>>>34' % (i0,i0)) print(' r%d += r%dSigma1' % (i7,i4)) print(' maj%d = r%d' % (i7,i2)) print(' maj%d &= maj%d' % (i7,i6)) print('') print(' W%d = mem128[&w + %d],0' % (j14,8*j14)) print(' 2x,0 W%dright19 = W%d unsigned>> 19' % (j14,j14)) print(' r%dSigma0 ^= r%d34' % (i0,i0)) print(' r%d39 = r%d>>>39' % (i0,i0)) print(' r%d += r%d' % (i3,i7)) print('') print(' 4x X%dleft56 = X%d << 56' % (j1,j1)) print(' r%dSigma0 ^= r%d39' % (i0,i0)) print(' r%d += %s[1]' % (i6,wcin)) print(' r%dandr%d = r%d' % (i0,i1,i1)) print(' r%dandr%d &= r%d' % (i0,i1,i0)) print('') print(' 2x,0 W%dleft45 = W%d << 45' % (j14,j14)) print(' r%d += r%dSigma0' % (i7,i0)) print(' maj%d ^= r%dandr%d' % (i7,i0,i1)) print(' ch%d = r%d' % (i6,i5)) print(' ch%d ^= r%d' % (i6,i4)) print('') print(' X%dsigma0 = X%dsigma0 ^ X%dleft56' % (j1,j1,j1)) print(' 2x,0 W%dright61 = W%d unsigned>> 61' % (j14,j14)) print(' r%dSigma1 = r%d>>>14' % (i3,i3)) print(' r%d += maj%d' % (i7,i7)) print('') print(' 4x X%dright7 = X%d unsigned>> 7' % (j1,j1)) print(' 1x,0 W%dsigma1 = W%dright19 ^ W%dleft45' % (j14,j14,j14)) print(' r%d18 = r%d>>>18' % (i3,i3)) print(' ch%d &= r%d' % (i6,i3)) print('') print(' X%dsigma0 = X%dsigma0 ^ X%dright7' % (j1,j1,j1)) print(' r%dSigma1 ^= r%d18' % (i3,i3)) print(' r%d41 = r%d>>>41' % (i3,i3)) print(' maj%d &= r%d' % (i6,i7)) print('') print(' 1x,0 W%dsigma1 ^= W%dright61' % (j14,j14)) print(' 4x X%d = X%d + mem256[&w + %d]' % (j0,j0,8*j9)) print(' r%dSigma1 ^= r%d41' % (i3,i3)) print(' maj%d ^= r%dandr%d' % (i6,i0,i1)) print('') print(' 2x,0 W%dleft3 = W%d << 3' % (j14,j14)) print(' r%dSigma0 = r%d>>>28' % (i7,i7)) print(' ch%d ^= r%d' % (i6,i5)) print(' r%d += r%dSigma1' % (i6,i3)) print('') print(' 4x X%d = X%d + X%dsigma0' % (j0,j0,j1)) print(' r%d34 = r%d>>>34' % (i7,i7)) print(' r%d += %s[2]' % (i5,wcin)) print(' r%d += ch%d' % (i6,i6)) print('') print(' 1x,0 W%dsigma1 ^= W%dleft3' % (j14,j14)) print(' r%dSigma0 ^= r%d34' % (i7,i7)) print(' r%d39 = r%d>>>39' % (i7,i7)) print(' r%d += r%d' % (i2,i6)) print('') print(' 2x,0 W%dright6 = W%d unsigned>> 6' % (j14,j14)) print(' r%dSigma0 ^= r%d39' % (i7,i7)) print(' r%d += maj%d' % (i6,i6)) print(' ch%d = r%d' % (i5,i4)) print(' ch%d ^= r%d' % (i5,i3)) print('') print(' 1x,0 W%dsigma1 ^= W%dright6' % (j14,j14)) print(' r%d += r%dSigma0' % (i6,i7)) print(' r%dSigma1 = r%d>>>14' % (i2,i2)) print(' ch%d &= r%d' % (i5,i2)) print('') print(' 4x X%d = W%dsigma1 + X%d' % (j0,j14,j0)) print(' r%d18 = r%d>>>18' % (i2,i2)) print(' r%d41 = r%d>>>41' % (i2,i2)) print(' ch%d ^= r%d' % (i5,i4)) print('') print(' 2x,0 W%dright19 = X%d unsigned>> 19' % (j0,j0)) print(' r%dSigma1 ^= r%d18' % (i2,i2)) print(' r%dSigma0 = r%d>>>28' % (i6,i6)) print(' r%d += ch%d' % (i5,i5)) print('') print(' 2x,0 W%dleft45 = X%d << 45' % (j0,j0)) print(' r%dSigma1 ^= r%d41' % (i2,i2)) print(' r%d34 = r%d>>>34' % (i6,i6)) print(' maj%d = r%d' % (i4,i7)) print(' maj%d ^= r%d' % (i4,i6)) print('') print(' 2x,0 W%dright61 = X%d unsigned>> 61' % (j0,j0)) print(' 1x,0 W%dsigma1 = W%dright19 ^ W%dleft45' % (j0,j0,j0)) print(' r%dSigma0 ^= r%d34' % (i6,i6)) print(' r%d39 = r%d>>>39' % (i6,i6)) print('') print(' 2x,0 W%dleft3 = X%d << 3' % (j0,j0)) print(' 1x,0 W%dsigma1 ^= W%dright61' % (j0,j0)) print(' r%dSigma0 ^= r%d39' % (i6,i6)) print(' r%d += r%dSigma1' % (i5,i2)) print('') print(' 2x,0 W%dright6 = X%d unsigned>> 6' % (j0,j0)) print(' 1x,0 W%dsigma1 ^= W%dleft3' % (j0,j0)) print(' r%d += r%d' % (i1,i5)) print(' r%dandr%d = r%d' % (i6,i7,i7)) print(' r%dandr%d &= r%d' % (i6,i7,i6)) print('') print(' 1x,0 W%dsigma1 ^= W%dright6' % (j0,j0)) print(' r%dSigma1 = r%d>>>14' % (i1,i1)) print(' r%d += r%dSigma0' % (i5,i6)) print(' maj%d = r%d' % (i5,i0)) print(' maj%d &= maj%d' % (i5,i4)) print('') print(' W%dsigma1 = W%dsigma1[1],W%dsigma1[0]' % (j0,j0,j0)) print(' maj%d ^= r%dandr%d' % (i5,i6,i7)) print(' ch%d = r%d' % (i4,i3)) print(' ch%d ^= r%d' % (i4,i2)) print('') print(' r%d += maj%d' % (i5,i5)) print(' ch%d &= r%d' % (i4,i1)) print(' r%d18 = r%d>>>18' % (i1,i1)) print('') print(' maj%d &= r%d' % (i4,i5)) print(' ch%d ^= r%d' % (i4,i3)) print(' r%d += %s[3]' % (i4,wcin)) print(' r%dSigma1 ^= r%d18' % (i1,i1)) print('') print(' r%d41 = r%d>>>41' % (i1,i1)) print(' 4x X%d = X%d + W%dsigma1' % (j0,j0,j0)) if j0 == 0: print(' mem256[&w + 128] = X%d' % (j0)) print(' mem256[&w + %d] = X%d' % (8*j0,j0)) print(' r%d += ch%d' % (i4,i4)) print(' maj%d ^= r%dandr%d' % (i4,i6,i7)) print('') print(' r%dSigma0 = r%d>>>28' % (i5,i5)) print(' 4x D%d = X%d + mem256[constants + %d]' % (j0,j0,8*j0)) print(' %s = D%d' % (wcout,j0)) print(' r%d34 = r%d>>>34' % (i5,i5)) print(' r%dSigma1 ^= r%d41' % (i1,i1)) print('') print(' r%d += r%dSigma1' % (i4,i1)) print(' r%dSigma0 ^= r%d34' % (i5,i5)) print(' r%d39 = r%d>>>39' % (i5,i5)) print('') print(' r%d += r%d' % (i0,i4)) print(' r%d += maj%d' % (i4,i4)) print(' r%dSigma0 ^= r%d39' % (i5,i5)) print('') print(' r%d += r%dSigma0' % (i4,i5)) libntruprime-20241021/crypto_hashblocks/sha512/avx2/rer0.q0000644000000000000000000000643114705505547021637 0ustar rootroot X1 = mem256[&w + 8] 4x X1right1 = X1 unsigned>> 1 r4Sigma1 = r4>>>14 r7 += wc891011[0] ch7 = r6 ch7 ^= r5 4x X1left63 = X1 << 63 r418 = r4>>>18 ch7 &= r4 maj6 = r1 maj6 ^= r0 X1sigma0 = X1right1 ^ X1left63 r441 = r4>>>41 r4Sigma1 ^= r418 ch7 ^= r6 4x X1right8 = X1 unsigned>> 8 r4Sigma1 ^= r441 r0Sigma0 = r0>>>28 r7 += ch7 X1sigma0 = X1sigma0 ^ X1right8 r034 = r0>>>34 r7 += r4Sigma1 maj7 = r2 maj7 &= maj6 W14 = mem128[&w + 112],0 2x,0 W14right19 = W14 unsigned>> 19 r0Sigma0 ^= r034 r039 = r0>>>39 r3 += r7 4x X1left56 = X1 << 56 r0Sigma0 ^= r039 r6 += wc891011[1] r0andr1 = r1 r0andr1 &= r0 2x,0 W14left45 = W14 << 45 r7 += r0Sigma0 maj7 ^= r0andr1 ch6 = r5 ch6 ^= r4 X1sigma0 = X1sigma0 ^ X1left56 2x,0 W14right61 = W14 unsigned>> 61 r3Sigma1 = r3>>>14 r7 += maj7 4x X1right7 = X1 unsigned>> 7 1x,0 W14sigma1 = W14right19 ^ W14left45 r318 = r3>>>18 ch6 &= r3 X1sigma0 = X1sigma0 ^ X1right7 r3Sigma1 ^= r318 r341 = r3>>>41 maj6 &= r7 1x,0 W14sigma1 ^= W14right61 4x X0 = X0 + mem256[&w + 72] r3Sigma1 ^= r341 maj6 ^= r0andr1 2x,0 W14left3 = W14 << 3 r7Sigma0 = r7>>>28 ch6 ^= r5 r6 += r3Sigma1 4x X0 = X0 + X1sigma0 r734 = r7>>>34 r5 += wc891011[2] r6 += ch6 1x,0 W14sigma1 ^= W14left3 r7Sigma0 ^= r734 r739 = r7>>>39 r2 += r6 2x,0 W14right6 = W14 unsigned>> 6 r7Sigma0 ^= r739 r6 += maj6 ch5 = r4 ch5 ^= r3 1x,0 W14sigma1 ^= W14right6 r6 += r7Sigma0 r2Sigma1 = r2>>>14 ch5 &= r2 4x X0 = W14sigma1 + X0 r218 = r2>>>18 r241 = r2>>>41 ch5 ^= r4 2x,0 W0right19 = X0 unsigned>> 19 r2Sigma1 ^= r218 r6Sigma0 = r6>>>28 r5 += ch5 2x,0 W0left45 = X0 << 45 r2Sigma1 ^= r241 r634 = r6>>>34 maj4 = r7 maj4 ^= r6 2x,0 W0right61 = X0 unsigned>> 61 1x,0 W0sigma1 = W0right19 ^ W0left45 r6Sigma0 ^= r634 r639 = r6>>>39 2x,0 W0left3 = X0 << 3 1x,0 W0sigma1 ^= W0right61 r6Sigma0 ^= r639 r5 += r2Sigma1 2x,0 W0right6 = X0 unsigned>> 6 1x,0 W0sigma1 ^= W0left3 r1 += r5 r6andr7 = r7 r6andr7 &= r6 1x,0 W0sigma1 ^= W0right6 r1Sigma1 = r1>>>14 r5 += r6Sigma0 maj5 = r0 maj5 &= maj4 W0sigma1 = W0sigma1[1],W0sigma1[0] maj5 ^= r6andr7 ch4 = r3 ch4 ^= r2 r5 += maj5 ch4 &= r1 r118 = r1>>>18 maj4 &= r5 ch4 ^= r3 r4 += wc891011[3] r1Sigma1 ^= r118 r141 = r1>>>41 4x X0 = X0 + W0sigma1 mem256[&w + 128] = X0 mem256[&w + 0] = X0 r4 += ch4 maj4 ^= r6andr7 r5Sigma0 = r5>>>28 4x D0 = X0 + mem256[constants + 0] wc0123 = D0 r534 = r5>>>34 r1Sigma1 ^= r141 r4 += r1Sigma1 r5Sigma0 ^= r534 r539 = r5>>>39 r0 += r4 r4 += maj4 r5Sigma0 ^= r539 r4 += r5Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/rer12.q0000644000000000000000000000646114705505547021725 0ustar rootroot X13 = mem256[&w + 104] 4x X13right1 = X13 unsigned>> 1 r0Sigma1 = r0>>>14 r3 += wc4567[0] ch3 = r2 ch3 ^= r1 4x X13left63 = X13 << 63 r018 = r0>>>18 ch3 &= r0 maj2 = r5 maj2 ^= r4 X13sigma0 = X13right1 ^ X13left63 r041 = r0>>>41 r0Sigma1 ^= r018 ch3 ^= r2 4x X13right8 = X13 unsigned>> 8 r0Sigma1 ^= r041 r4Sigma0 = r4>>>28 r3 += ch3 X13sigma0 = X13sigma0 ^ X13right8 r434 = r4>>>34 r3 += r0Sigma1 maj3 = r6 maj3 &= maj2 W10 = mem128[&w + 80],0 2x,0 W10right19 = W10 unsigned>> 19 r4Sigma0 ^= r434 r439 = r4>>>39 r7 += r3 4x X13left56 = X13 << 56 r4Sigma0 ^= r439 r2 += wc4567[1] r4andr5 = r5 r4andr5 &= r4 2x,0 W10left45 = W10 << 45 r3 += r4Sigma0 maj3 ^= r4andr5 ch2 = r1 ch2 ^= r0 X13sigma0 = X13sigma0 ^ X13left56 2x,0 W10right61 = W10 unsigned>> 61 r7Sigma1 = r7>>>14 r3 += maj3 4x X13right7 = X13 unsigned>> 7 1x,0 W10sigma1 = W10right19 ^ W10left45 r718 = r7>>>18 ch2 &= r7 X13sigma0 = X13sigma0 ^ X13right7 r7Sigma1 ^= r718 r741 = r7>>>41 maj2 &= r3 1x,0 W10sigma1 ^= W10right61 4x X12 = X12 + mem256[&w + 40] r7Sigma1 ^= r741 maj2 ^= r4andr5 2x,0 W10left3 = W10 << 3 r3Sigma0 = r3>>>28 ch2 ^= r1 r2 += r7Sigma1 4x X12 = X12 + X13sigma0 r334 = r3>>>34 r1 += wc4567[2] r2 += ch2 1x,0 W10sigma1 ^= W10left3 r3Sigma0 ^= r334 r339 = r3>>>39 r6 += r2 2x,0 W10right6 = W10 unsigned>> 6 r3Sigma0 ^= r339 r2 += maj2 ch1 = r0 ch1 ^= r7 1x,0 W10sigma1 ^= W10right6 r2 += r3Sigma0 r6Sigma1 = r6>>>14 ch1 &= r6 4x X12 = W10sigma1 + X12 r618 = r6>>>18 r641 = r6>>>41 ch1 ^= r0 2x,0 W12right19 = X12 unsigned>> 19 r6Sigma1 ^= r618 r2Sigma0 = r2>>>28 r1 += ch1 2x,0 W12left45 = X12 << 45 r6Sigma1 ^= r641 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 2x,0 W12right61 = X12 unsigned>> 61 1x,0 W12sigma1 = W12right19 ^ W12left45 r2Sigma0 ^= r234 r239 = r2>>>39 2x,0 W12left3 = X12 << 3 1x,0 W12sigma1 ^= W12right61 r2Sigma0 ^= r239 r1 += r6Sigma1 2x,0 W12right6 = X12 unsigned>> 6 1x,0 W12sigma1 ^= W12left3 r5 += r1 r2andr3 = r3 r2andr3 &= r2 1x,0 W12sigma1 ^= W12right6 r5Sigma1 = r5>>>14 r1 += r2Sigma0 maj1 = r4 maj1 &= maj0 W12sigma1 = W12sigma1[1],W12sigma1[0] maj1 ^= r2andr3 ch0 = r7 ch0 ^= r6 r1 += maj1 ch0 &= r5 r518 = r5>>>18 maj0 &= r1 ch0 ^= r7 r0 += wc4567[3] r5Sigma1 ^= r518 r541 = r5>>>41 4x X12 = X12 + W12sigma1 mem256[&w + 96] = X12 r0 += ch0 maj0 ^= r2andr3 r1Sigma0 = r1>>>28 4x D12 = X12 + mem256[constants + 96] wc12131415 = D12 r134 = r1>>>34 r5Sigma1 ^= r541 r0 += r5Sigma1 r1Sigma0 ^= r134 r139 = r1>>>39 r4 += r0 r0 += maj0 r1Sigma0 ^= r139 r0 += r1Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/rer4.q0000644000000000000000000000635514705505547021650 0ustar rootroot X5 = mem256[&w + 40] 4x X5right1 = X5 unsigned>> 1 r0Sigma1 = r0>>>14 r3 += wc12131415[0] ch3 = r2 ch3 ^= r1 4x X5left63 = X5 << 63 r018 = r0>>>18 ch3 &= r0 maj2 = r5 maj2 ^= r4 X5sigma0 = X5right1 ^ X5left63 r041 = r0>>>41 r0Sigma1 ^= r018 ch3 ^= r2 4x X5right8 = X5 unsigned>> 8 r0Sigma1 ^= r041 r4Sigma0 = r4>>>28 r3 += ch3 X5sigma0 = X5sigma0 ^ X5right8 r434 = r4>>>34 r3 += r0Sigma1 maj3 = r6 maj3 &= maj2 W2 = mem128[&w + 16],0 2x,0 W2right19 = W2 unsigned>> 19 r4Sigma0 ^= r434 r439 = r4>>>39 r7 += r3 4x X5left56 = X5 << 56 r4Sigma0 ^= r439 r2 += wc12131415[1] r4andr5 = r5 r4andr5 &= r4 2x,0 W2left45 = W2 << 45 r3 += r4Sigma0 maj3 ^= r4andr5 ch2 = r1 ch2 ^= r0 X5sigma0 = X5sigma0 ^ X5left56 2x,0 W2right61 = W2 unsigned>> 61 r7Sigma1 = r7>>>14 r3 += maj3 4x X5right7 = X5 unsigned>> 7 1x,0 W2sigma1 = W2right19 ^ W2left45 r718 = r7>>>18 ch2 &= r7 X5sigma0 = X5sigma0 ^ X5right7 r7Sigma1 ^= r718 r741 = r7>>>41 maj2 &= r3 1x,0 W2sigma1 ^= W2right61 4x X4 = X4 + mem256[&w + 104] r7Sigma1 ^= r741 maj2 ^= r4andr5 2x,0 W2left3 = W2 << 3 r3Sigma0 = r3>>>28 ch2 ^= r1 r2 += r7Sigma1 4x X4 = X4 + X5sigma0 r334 = r3>>>34 r1 += wc12131415[2] r2 += ch2 1x,0 W2sigma1 ^= W2left3 r3Sigma0 ^= r334 r339 = r3>>>39 r6 += r2 2x,0 W2right6 = W2 unsigned>> 6 r3Sigma0 ^= r339 r2 += maj2 ch1 = r0 ch1 ^= r7 1x,0 W2sigma1 ^= W2right6 r2 += r3Sigma0 r6Sigma1 = r6>>>14 ch1 &= r6 4x X4 = W2sigma1 + X4 r618 = r6>>>18 r641 = r6>>>41 ch1 ^= r0 2x,0 W4right19 = X4 unsigned>> 19 r6Sigma1 ^= r618 r2Sigma0 = r2>>>28 r1 += ch1 2x,0 W4left45 = X4 << 45 r6Sigma1 ^= r641 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 2x,0 W4right61 = X4 unsigned>> 61 1x,0 W4sigma1 = W4right19 ^ W4left45 r2Sigma0 ^= r234 r239 = r2>>>39 2x,0 W4left3 = X4 << 3 1x,0 W4sigma1 ^= W4right61 r2Sigma0 ^= r239 r1 += r6Sigma1 2x,0 W4right6 = X4 unsigned>> 6 1x,0 W4sigma1 ^= W4left3 r5 += r1 r2andr3 = r3 r2andr3 &= r2 1x,0 W4sigma1 ^= W4right6 r5Sigma1 = r5>>>14 r1 += r2Sigma0 maj1 = r4 maj1 &= maj0 W4sigma1 = W4sigma1[1],W4sigma1[0] maj1 ^= r2andr3 ch0 = r7 ch0 ^= r6 r1 += maj1 ch0 &= r5 r518 = r5>>>18 maj0 &= r1 ch0 ^= r7 r0 += wc12131415[3] r5Sigma1 ^= r518 r541 = r5>>>41 4x X4 = X4 + W4sigma1 mem256[&w + 32] = X4 r0 += ch0 maj0 ^= r2andr3 r1Sigma0 = r1>>>28 4x D4 = X4 + mem256[constants + 32] wc4567 = D4 r134 = r1>>>34 r5Sigma1 ^= r541 r0 += r5Sigma1 r1Sigma0 ^= r134 r139 = r1>>>39 r4 += r0 r0 += maj0 r1Sigma0 ^= r139 r0 += r1Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/rer8.q0000644000000000000000000000633514705505547021652 0ustar rootroot X9 = mem256[&w + 72] 4x X9right1 = X9 unsigned>> 1 r4Sigma1 = r4>>>14 r7 += wc0123[0] ch7 = r6 ch7 ^= r5 4x X9left63 = X9 << 63 r418 = r4>>>18 ch7 &= r4 maj6 = r1 maj6 ^= r0 X9sigma0 = X9right1 ^ X9left63 r441 = r4>>>41 r4Sigma1 ^= r418 ch7 ^= r6 4x X9right8 = X9 unsigned>> 8 r4Sigma1 ^= r441 r0Sigma0 = r0>>>28 r7 += ch7 X9sigma0 = X9sigma0 ^ X9right8 r034 = r0>>>34 r7 += r4Sigma1 maj7 = r2 maj7 &= maj6 W6 = mem128[&w + 48],0 2x,0 W6right19 = W6 unsigned>> 19 r0Sigma0 ^= r034 r039 = r0>>>39 r3 += r7 4x X9left56 = X9 << 56 r0Sigma0 ^= r039 r6 += wc0123[1] r0andr1 = r1 r0andr1 &= r0 2x,0 W6left45 = W6 << 45 r7 += r0Sigma0 maj7 ^= r0andr1 ch6 = r5 ch6 ^= r4 X9sigma0 = X9sigma0 ^ X9left56 2x,0 W6right61 = W6 unsigned>> 61 r3Sigma1 = r3>>>14 r7 += maj7 4x X9right7 = X9 unsigned>> 7 1x,0 W6sigma1 = W6right19 ^ W6left45 r318 = r3>>>18 ch6 &= r3 X9sigma0 = X9sigma0 ^ X9right7 r3Sigma1 ^= r318 r341 = r3>>>41 maj6 &= r7 1x,0 W6sigma1 ^= W6right61 4x X8 = X8 + mem256[&w + 8] r3Sigma1 ^= r341 maj6 ^= r0andr1 2x,0 W6left3 = W6 << 3 r7Sigma0 = r7>>>28 ch6 ^= r5 r6 += r3Sigma1 4x X8 = X8 + X9sigma0 r734 = r7>>>34 r5 += wc0123[2] r6 += ch6 1x,0 W6sigma1 ^= W6left3 r7Sigma0 ^= r734 r739 = r7>>>39 r2 += r6 2x,0 W6right6 = W6 unsigned>> 6 r7Sigma0 ^= r739 r6 += maj6 ch5 = r4 ch5 ^= r3 1x,0 W6sigma1 ^= W6right6 r6 += r7Sigma0 r2Sigma1 = r2>>>14 ch5 &= r2 4x X8 = W6sigma1 + X8 r218 = r2>>>18 r241 = r2>>>41 ch5 ^= r4 2x,0 W8right19 = X8 unsigned>> 19 r2Sigma1 ^= r218 r6Sigma0 = r6>>>28 r5 += ch5 2x,0 W8left45 = X8 << 45 r2Sigma1 ^= r241 r634 = r6>>>34 maj4 = r7 maj4 ^= r6 2x,0 W8right61 = X8 unsigned>> 61 1x,0 W8sigma1 = W8right19 ^ W8left45 r6Sigma0 ^= r634 r639 = r6>>>39 2x,0 W8left3 = X8 << 3 1x,0 W8sigma1 ^= W8right61 r6Sigma0 ^= r639 r5 += r2Sigma1 2x,0 W8right6 = X8 unsigned>> 6 1x,0 W8sigma1 ^= W8left3 r1 += r5 r6andr7 = r7 r6andr7 &= r6 1x,0 W8sigma1 ^= W8right6 r1Sigma1 = r1>>>14 r5 += r6Sigma0 maj5 = r0 maj5 &= maj4 W8sigma1 = W8sigma1[1],W8sigma1[0] maj5 ^= r6andr7 ch4 = r3 ch4 ^= r2 r5 += maj5 ch4 &= r1 r118 = r1>>>18 maj4 &= r5 ch4 ^= r3 r4 += wc0123[3] r1Sigma1 ^= r118 r141 = r1>>>41 4x X8 = X8 + W8sigma1 mem256[&w + 64] = X8 r4 += ch4 maj4 ^= r6andr7 r5Sigma0 = r5>>>28 4x D8 = X8 + mem256[constants + 64] wc891011 = D8 r534 = r5>>>34 r1Sigma1 ^= r141 r4 += r1Sigma1 r5Sigma0 ^= r534 r539 = r5>>>39 r0 += r4 r4 += maj4 r5Sigma0 ^= r539 r4 += r5Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round.py0000755000000000000000000000521314705505547022306 0ustar rootroot#!/usr/bin/env python3 import sys i = 0 for doubleround in range(8): i0 = (i+0)&7 i1 = (i+1)&7 i2 = (i+2)&7 i3 = (i+3)&7 i4 = (i+4)&7 i5 = (i+5)&7 i6 = (i+6)&7 i7 = (i+7)&7 round = 2*doubleround round4 = round&~3 loadarray = 'wc%d%d%d%d' % (round4,round4+1,round4+2,round4+3) i0load = '%s[%d]' % (loadarray,(round+0)&3) i1load = '%s[%d]' % (loadarray,(round+1)&3) i -= 2 if len(sys.argv) > 1: if sys.argv[1] != str(doubleround): continue print(' r%d += %s' % (i7,i0load)) print(' r%dSigma1 = r%d>>>14' % (i4,i4)) print(' ch%d = r%d' % (i7,i6)) print(' r%d18 = r%d>>>18' % (i4,i4)) print(' ch%d ^= r%d' % (i7,i5)) print(' r%d41 = r%d>>>41' % (i4,i4)) print(' r%dSigma1 ^= r%d18' % (i4,i4)) print(' ch%d &= r%d' % (i7,i4)) print(' r%dSigma0 = r%d>>>28' % (i0,i0)) print(' r%dSigma1 ^= r%d41' % (i4,i4)) print(' ch%d ^= r%d' % (i7,i6)) print(' r%d34 = r%d>>>34' % (i0,i0)) print(' maj%d = r%d' % (i6,i1)) print(' maj%d ^= r%d' % (i6,i0)) print(' r%dSigma0 ^= r%d34' % (i0,i0)) print(' r%d += ch%d' % (i7,i7)) print(' r%dandr%d = r%d' % (i0,i1,i1)) print(' r%d39 = r%d>>>39' % (i0,i0)) print(' r%dandr%d &= r%d' % (i0,i1,i0)) print(' r%dSigma0 ^= r%d39' % (i0,i0)) print(' r%d += r%dSigma1' % (i7,i4)) print(' maj%d = r%d' % (i7,i2)) print(' r%d += %s' % (i6,i1load)) print(' maj%d &= maj%d' % (i7,i6)) print(' r%d += r%d' % (i3,i7)) print(' r%d += r%dSigma0' % (i7,i0)) print(' ch%d = r%d' % (i6,i5)) print(' maj%d ^= r%dandr%d' % (i7,i0,i1)) print(' ch%d ^= r%d' % (i6,i4)) print(' r%dSigma1 = r%d>>>14' % (i3,i3)) print(' r%d += maj%d' % (i7,i7)) print(' ch%d &= r%d' % (i6,i3)) print(' r%d18 = r%d>>>18' % (i3,i3)) print(' r%dSigma1 ^= r%d18' % (i3,i3)) print(' maj%d &= r%d' % (i6,i7)) print(' ch%d ^= r%d' % (i6,i5)) print(' r%d41 = r%d>>>41' % (i3,i3)) print(' r%dSigma1 ^= r%d41' % (i3,i3)) print(' r%dSigma0 = r%d>>>28' % (i7,i7)) print(' maj%d ^= r%dandr%d' % (i6,i0,i1)) print(' r%d += ch%d' % (i6,i6)) print(' r%d += r%dSigma1' % (i6,i3)) print(' r%d34 = r%d>>>34' % (i7,i7)) print(' r%dSigma0 ^= r%d34' % (i7,i7)) print(' r%d += r%d' % (i2,i6)) print(' r%d += maj%d' % (i6,i6)) print(' r%d39 = r%d>>>39' % (i7,i7)) print(' r%dSigma0 ^= r%d39' % (i7,i7)) print(' r%d += r%dSigma0' % (i6,i7)) libntruprime-20241021/crypto_hashblocks/sha512/avx2/round01.q0000644000000000000000000000205214705505547022252 0ustar rootroot r7 += wc0123[0] r4Sigma1 = r4>>>14 ch7 = r6 r418 = r4>>>18 ch7 ^= r5 r441 = r4>>>41 r4Sigma1 ^= r418 ch7 &= r4 r0Sigma0 = r0>>>28 r4Sigma1 ^= r441 ch7 ^= r6 r034 = r0>>>34 maj6 = r1 maj6 ^= r0 r0Sigma0 ^= r034 r7 += ch7 r0andr1 = r1 r039 = r0>>>39 r0andr1 &= r0 r0Sigma0 ^= r039 r7 += r4Sigma1 maj7 = r2 r6 += wc0123[1] maj7 &= maj6 r3 += r7 r7 += r0Sigma0 ch6 = r5 maj7 ^= r0andr1 ch6 ^= r4 r3Sigma1 = r3>>>14 r7 += maj7 ch6 &= r3 r318 = r3>>>18 r3Sigma1 ^= r318 maj6 &= r7 ch6 ^= r5 r341 = r3>>>41 r3Sigma1 ^= r341 r7Sigma0 = r7>>>28 maj6 ^= r0andr1 r6 += ch6 r6 += r3Sigma1 r734 = r7>>>34 r7Sigma0 ^= r734 r2 += r6 r6 += maj6 r739 = r7>>>39 r7Sigma0 ^= r739 r6 += r7Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round1011.q0000644000000000000000000000205614705505547022420 0ustar rootroot r5 += wc891011[2] r2Sigma1 = r2>>>14 ch5 = r4 r218 = r2>>>18 ch5 ^= r3 r241 = r2>>>41 r2Sigma1 ^= r218 ch5 &= r2 r6Sigma0 = r6>>>28 r2Sigma1 ^= r241 ch5 ^= r4 r634 = r6>>>34 maj4 = r7 maj4 ^= r6 r6Sigma0 ^= r634 r5 += ch5 r6andr7 = r7 r639 = r6>>>39 r6andr7 &= r6 r6Sigma0 ^= r639 r5 += r2Sigma1 maj5 = r0 r4 += wc891011[3] maj5 &= maj4 r1 += r5 r5 += r6Sigma0 ch4 = r3 maj5 ^= r6andr7 ch4 ^= r2 r1Sigma1 = r1>>>14 r5 += maj5 ch4 &= r1 r118 = r1>>>18 r1Sigma1 ^= r118 maj4 &= r5 ch4 ^= r3 r141 = r1>>>41 r1Sigma1 ^= r141 r5Sigma0 = r5>>>28 maj4 ^= r6andr7 r4 += ch4 r4 += r1Sigma1 r534 = r5>>>34 r5Sigma0 ^= r534 r0 += r4 r4 += maj4 r539 = r5>>>39 r5Sigma0 ^= r539 r4 += r5Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round1213.q0000644000000000000000000000206214705505547022421 0ustar rootroot r3 += wc12131415[0] r0Sigma1 = r0>>>14 ch3 = r2 r018 = r0>>>18 ch3 ^= r1 r041 = r0>>>41 r0Sigma1 ^= r018 ch3 &= r0 r4Sigma0 = r4>>>28 r0Sigma1 ^= r041 ch3 ^= r2 r434 = r4>>>34 maj2 = r5 maj2 ^= r4 r4Sigma0 ^= r434 r3 += ch3 r4andr5 = r5 r439 = r4>>>39 r4andr5 &= r4 r4Sigma0 ^= r439 r3 += r0Sigma1 maj3 = r6 r2 += wc12131415[1] maj3 &= maj2 r7 += r3 r3 += r4Sigma0 ch2 = r1 maj3 ^= r4andr5 ch2 ^= r0 r7Sigma1 = r7>>>14 r3 += maj3 ch2 &= r7 r718 = r7>>>18 r7Sigma1 ^= r718 maj2 &= r3 ch2 ^= r1 r741 = r7>>>41 r7Sigma1 ^= r741 r3Sigma0 = r3>>>28 maj2 ^= r4andr5 r2 += ch2 r2 += r7Sigma1 r334 = r3>>>34 r3Sigma0 ^= r334 r6 += r2 r2 += maj2 r339 = r3>>>39 r3Sigma0 ^= r339 r2 += r3Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round1415.q0000644000000000000000000000206214705505547022425 0ustar rootroot r1 += wc12131415[2] r6Sigma1 = r6>>>14 ch1 = r0 r618 = r6>>>18 ch1 ^= r7 r641 = r6>>>41 r6Sigma1 ^= r618 ch1 &= r6 r2Sigma0 = r2>>>28 r6Sigma1 ^= r641 ch1 ^= r0 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 r2Sigma0 ^= r234 r1 += ch1 r2andr3 = r3 r239 = r2>>>39 r2andr3 &= r2 r2Sigma0 ^= r239 r1 += r6Sigma1 maj1 = r4 r0 += wc12131415[3] maj1 &= maj0 r5 += r1 r1 += r2Sigma0 ch0 = r7 maj1 ^= r2andr3 ch0 ^= r6 r5Sigma1 = r5>>>14 r1 += maj1 ch0 &= r5 r518 = r5>>>18 r5Sigma1 ^= r518 maj0 &= r1 ch0 ^= r7 r541 = r5>>>41 r5Sigma1 ^= r541 r1Sigma0 = r1>>>28 maj0 ^= r2andr3 r0 += ch0 r0 += r5Sigma1 r134 = r1>>>34 r1Sigma0 ^= r134 r4 += r0 r0 += maj0 r139 = r1>>>39 r1Sigma0 ^= r139 r0 += r1Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round23.q0000644000000000000000000000205214705505547022256 0ustar rootroot r5 += wc0123[2] r2Sigma1 = r2>>>14 ch5 = r4 r218 = r2>>>18 ch5 ^= r3 r241 = r2>>>41 r2Sigma1 ^= r218 ch5 &= r2 r6Sigma0 = r6>>>28 r2Sigma1 ^= r241 ch5 ^= r4 r634 = r6>>>34 maj4 = r7 maj4 ^= r6 r6Sigma0 ^= r634 r5 += ch5 r6andr7 = r7 r639 = r6>>>39 r6andr7 &= r6 r6Sigma0 ^= r639 r5 += r2Sigma1 maj5 = r0 r4 += wc0123[3] maj5 &= maj4 r1 += r5 r5 += r6Sigma0 ch4 = r3 maj5 ^= r6andr7 ch4 ^= r2 r1Sigma1 = r1>>>14 r5 += maj5 ch4 &= r1 r118 = r1>>>18 r1Sigma1 ^= r118 maj4 &= r5 ch4 ^= r3 r141 = r1>>>41 r1Sigma1 ^= r141 r5Sigma0 = r5>>>28 maj4 ^= r6andr7 r4 += ch4 r4 += r1Sigma1 r534 = r5>>>34 r5Sigma0 ^= r534 r0 += r4 r4 += maj4 r539 = r5>>>39 r5Sigma0 ^= r539 r4 += r5Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round45.q0000644000000000000000000000205214705505547022262 0ustar rootroot r3 += wc4567[0] r0Sigma1 = r0>>>14 ch3 = r2 r018 = r0>>>18 ch3 ^= r1 r041 = r0>>>41 r0Sigma1 ^= r018 ch3 &= r0 r4Sigma0 = r4>>>28 r0Sigma1 ^= r041 ch3 ^= r2 r434 = r4>>>34 maj2 = r5 maj2 ^= r4 r4Sigma0 ^= r434 r3 += ch3 r4andr5 = r5 r439 = r4>>>39 r4andr5 &= r4 r4Sigma0 ^= r439 r3 += r0Sigma1 maj3 = r6 r2 += wc4567[1] maj3 &= maj2 r7 += r3 r3 += r4Sigma0 ch2 = r1 maj3 ^= r4andr5 ch2 ^= r0 r7Sigma1 = r7>>>14 r3 += maj3 ch2 &= r7 r718 = r7>>>18 r7Sigma1 ^= r718 maj2 &= r3 ch2 ^= r1 r741 = r7>>>41 r7Sigma1 ^= r741 r3Sigma0 = r3>>>28 maj2 ^= r4andr5 r2 += ch2 r2 += r7Sigma1 r334 = r3>>>34 r3Sigma0 ^= r334 r6 += r2 r2 += maj2 r339 = r3>>>39 r3Sigma0 ^= r339 r2 += r3Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round67.q0000644000000000000000000000205214705505547022266 0ustar rootroot r1 += wc4567[2] r6Sigma1 = r6>>>14 ch1 = r0 r618 = r6>>>18 ch1 ^= r7 r641 = r6>>>41 r6Sigma1 ^= r618 ch1 &= r6 r2Sigma0 = r2>>>28 r6Sigma1 ^= r641 ch1 ^= r0 r234 = r2>>>34 maj0 = r3 maj0 ^= r2 r2Sigma0 ^= r234 r1 += ch1 r2andr3 = r3 r239 = r2>>>39 r2andr3 &= r2 r2Sigma0 ^= r239 r1 += r6Sigma1 maj1 = r4 r0 += wc4567[3] maj1 &= maj0 r5 += r1 r1 += r2Sigma0 ch0 = r7 maj1 ^= r2andr3 ch0 ^= r6 r5Sigma1 = r5>>>14 r1 += maj1 ch0 &= r5 r518 = r5>>>18 r5Sigma1 ^= r518 maj0 &= r1 ch0 ^= r7 r541 = r5>>>41 r5Sigma1 ^= r541 r1Sigma0 = r1>>>28 maj0 ^= r2andr3 r0 += ch0 r0 += r5Sigma1 r134 = r1>>>34 r1Sigma0 ^= r134 r4 += r0 r0 += maj0 r139 = r1>>>39 r1Sigma0 ^= r139 r0 += r1Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/avx2/round89.q0000644000000000000000000000205614705505547022276 0ustar rootroot r7 += wc891011[0] r4Sigma1 = r4>>>14 ch7 = r6 r418 = r4>>>18 ch7 ^= r5 r441 = r4>>>41 r4Sigma1 ^= r418 ch7 &= r4 r0Sigma0 = r0>>>28 r4Sigma1 ^= r441 ch7 ^= r6 r034 = r0>>>34 maj6 = r1 maj6 ^= r0 r0Sigma0 ^= r034 r7 += ch7 r0andr1 = r1 r039 = r0>>>39 r0andr1 &= r0 r0Sigma0 ^= r039 r7 += r4Sigma1 maj7 = r2 r6 += wc891011[1] maj7 &= maj6 r3 += r7 r7 += r0Sigma0 ch6 = r5 maj7 ^= r0andr1 ch6 ^= r4 r3Sigma1 = r3>>>14 r7 += maj7 ch6 &= r3 r318 = r3>>>18 r3Sigma1 ^= r318 maj6 &= r7 ch6 ^= r5 r341 = r3>>>41 r3Sigma1 ^= r341 r7Sigma0 = r7>>>28 maj6 ^= r0andr1 r6 += ch6 r6 += r3Sigma1 r734 = r7>>>34 r7Sigma0 ^= r734 r2 += r6 r6 += maj6 r739 = r7>>>39 r7Sigma0 ^= r739 r6 += r7Sigma0 libntruprime-20241021/crypto_hashblocks/sha512/compact/0000755000000000000000000000000014705505552021343 5ustar rootrootlibntruprime-20241021/crypto_hashblocks/sha512/compact/api.h0000777000000000000000000000000014705505552024277 2../avx2/api.hustar rootrootlibntruprime-20241021/crypto_hashblocks/sha512/compact/blocks.c0000644000000000000000000001240514705505547022772 0ustar rootroot#include "crypto_hashblocks.h" typedef unsigned long long uint64; static uint64 load_bigendian(const unsigned char *x) { return (uint64) (x[7]) \ | (((uint64) (x[6])) << 8) \ | (((uint64) (x[5])) << 16) \ | (((uint64) (x[4])) << 24) \ | (((uint64) (x[3])) << 32) \ | (((uint64) (x[2])) << 40) \ | (((uint64) (x[1])) << 48) \ | (((uint64) (x[0])) << 56) ; } static void store_bigendian(unsigned char *x,uint64 u) { x[7] = u; u >>= 8; x[6] = u; u >>= 8; x[5] = u; u >>= 8; x[4] = u; u >>= 8; x[3] = u; u >>= 8; x[2] = u; u >>= 8; x[1] = u; u >>= 8; x[0] = u; } #define SHR(x,c) ((x) >> (c)) #define ROTR(x,c) (((x) >> (c)) | ((x) << (64 - (c)))) #define sigma0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x,7)) #define sigma1(x) (ROTR(x,19) ^ ROTR(x,61) ^ SHR(x,6)) #define M(w0,w14,w9,w1) w0 = sigma1(w14) + w9 + sigma0(w1) + w0; static void expand(uint64 *w) { M(w[0] ,w[14],w[9] ,w[1] ) M(w[1] ,w[15],w[10],w[2] ) M(w[2] ,w[0] ,w[11],w[3] ) M(w[3] ,w[1] ,w[12],w[4] ) M(w[4] ,w[2] ,w[13],w[5] ) M(w[5] ,w[3] ,w[14],w[6] ) M(w[6] ,w[4] ,w[15],w[7] ) M(w[7] ,w[5] ,w[0] ,w[8] ) M(w[8] ,w[6] ,w[1] ,w[9] ) M(w[9] ,w[7] ,w[2] ,w[10]) M(w[10],w[8] ,w[3] ,w[11]) M(w[11],w[9] ,w[4] ,w[12]) M(w[12],w[10],w[5] ,w[13]) M(w[13],w[11],w[6] ,w[14]) M(w[14],w[12],w[7] ,w[15]) M(w[15],w[13],w[8] ,w[0] ) } #define Ch(x,y,z) (z ^ (x & (y ^ z))) #define Maj(x,y,z) ((x & (y ^ z)) ^ (y & z)) #define Sigma0(x) (ROTR(x,28) ^ ROTR(x,34) ^ ROTR(x,39)) #define Sigma1(x) (ROTR(x,14) ^ ROTR(x,18) ^ ROTR(x,41)) #define F(r0,r1,r2,r3,r4,r5,r6,r7,w,k) \ r7 += Sigma1(r4) + Ch(r4,r5,r6) + k + w; \ r3 += r7; \ r7 += Sigma0(r0) + Maj(r0,r1,r2); static void handle(uint64 *r,const uint64 *w,const uint64 *c) { F(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],w[0] ,c[0]) F(r[7],r[0],r[1],r[2],r[3],r[4],r[5],r[6],w[1] ,c[1]) F(r[6],r[7],r[0],r[1],r[2],r[3],r[4],r[5],w[2] ,c[2]) F(r[5],r[6],r[7],r[0],r[1],r[2],r[3],r[4],w[3] ,c[3]) F(r[4],r[5],r[6],r[7],r[0],r[1],r[2],r[3],w[4] ,c[4]) F(r[3],r[4],r[5],r[6],r[7],r[0],r[1],r[2],w[5] ,c[5]) F(r[2],r[3],r[4],r[5],r[6],r[7],r[0],r[1],w[6] ,c[6]) F(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[0],w[7] ,c[7]) F(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],w[8] ,c[8]) F(r[7],r[0],r[1],r[2],r[3],r[4],r[5],r[6],w[9] ,c[9]) F(r[6],r[7],r[0],r[1],r[2],r[3],r[4],r[5],w[10],c[10]) F(r[5],r[6],r[7],r[0],r[1],r[2],r[3],r[4],w[11],c[11]) F(r[4],r[5],r[6],r[7],r[0],r[1],r[2],r[3],w[12],c[12]) F(r[3],r[4],r[5],r[6],r[7],r[0],r[1],r[2],w[13],c[13]) F(r[2],r[3],r[4],r[5],r[6],r[7],r[0],r[1],w[14],c[14]) F(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[0],w[15],c[15]) } static const uint64 round[80] = { 0x428a2f98d728ae22ULL , 0x7137449123ef65cdULL , 0xb5c0fbcfec4d3b2fULL , 0xe9b5dba58189dbbcULL , 0x3956c25bf348b538ULL , 0x59f111f1b605d019ULL , 0x923f82a4af194f9bULL , 0xab1c5ed5da6d8118ULL , 0xd807aa98a3030242ULL , 0x12835b0145706fbeULL , 0x243185be4ee4b28cULL , 0x550c7dc3d5ffb4e2ULL , 0x72be5d74f27b896fULL , 0x80deb1fe3b1696b1ULL , 0x9bdc06a725c71235ULL , 0xc19bf174cf692694ULL , 0xe49b69c19ef14ad2ULL , 0xefbe4786384f25e3ULL , 0x0fc19dc68b8cd5b5ULL , 0x240ca1cc77ac9c65ULL , 0x2de92c6f592b0275ULL , 0x4a7484aa6ea6e483ULL , 0x5cb0a9dcbd41fbd4ULL , 0x76f988da831153b5ULL , 0x983e5152ee66dfabULL , 0xa831c66d2db43210ULL , 0xb00327c898fb213fULL , 0xbf597fc7beef0ee4ULL , 0xc6e00bf33da88fc2ULL , 0xd5a79147930aa725ULL , 0x06ca6351e003826fULL , 0x142929670a0e6e70ULL , 0x27b70a8546d22ffcULL , 0x2e1b21385c26c926ULL , 0x4d2c6dfc5ac42aedULL , 0x53380d139d95b3dfULL , 0x650a73548baf63deULL , 0x766a0abb3c77b2a8ULL , 0x81c2c92e47edaee6ULL , 0x92722c851482353bULL , 0xa2bfe8a14cf10364ULL , 0xa81a664bbc423001ULL , 0xc24b8b70d0f89791ULL , 0xc76c51a30654be30ULL , 0xd192e819d6ef5218ULL , 0xd69906245565a910ULL , 0xf40e35855771202aULL , 0x106aa07032bbd1b8ULL , 0x19a4c116b8d2d0c8ULL , 0x1e376c085141ab53ULL , 0x2748774cdf8eeb99ULL , 0x34b0bcb5e19b48a8ULL , 0x391c0cb3c5c95a63ULL , 0x4ed8aa4ae3418acbULL , 0x5b9cca4f7763e373ULL , 0x682e6ff3d6b2b8a3ULL , 0x748f82ee5defb2fcULL , 0x78a5636f43172f60ULL , 0x84c87814a1f0ab72ULL , 0x8cc702081a6439ecULL , 0x90befffa23631e28ULL , 0xa4506cebde82bde9ULL , 0xbef9a3f7b2c67915ULL , 0xc67178f2e372532bULL , 0xca273eceea26619cULL , 0xd186b8c721c0c207ULL , 0xeada7dd6cde0eb1eULL , 0xf57d4f7fee6ed178ULL , 0x06f067aa72176fbaULL , 0x0a637dc5a2c898a6ULL , 0x113f9804bef90daeULL , 0x1b710b35131c471bULL , 0x28db77f523047d84ULL , 0x32caab7b40c72493ULL , 0x3c9ebe0a15c9bebcULL , 0x431d67c49c100d4cULL , 0x4cc5d4becb3e42b6ULL , 0x597f299cfc657e2aULL , 0x5fcb6fab3ad6faecULL , 0x6c44198c4a475817ULL }; int crypto_hashblocks(unsigned char *statebytes,const unsigned char *in,long long inlen) { uint64 w[16]; uint64 state[8]; uint64 r[8]; int i; for (i = 0;i < 8;++i) state[i] = r[i] = load_bigendian(statebytes+8*i); while (inlen >= 128) { for (i = 0;i < 16;++i) w[i] = load_bigendian(in+8*i); handle(r,w,round+0); expand(w); handle(r,w,round+16); expand(w); handle(r,w,round+32); expand(w); handle(r,w,round+48); expand(w); handle(r,w,round+64); for (i = 0;i < 8;++i) { uint64 x = r[i]+state[i]; state[i] = x; r[i] = x; } in += 128; inlen -= 128; } for (i = 0;i < 8;++i) store_bigendian(statebytes+8*i,state[i]); return inlen; } libntruprime-20241021/crypto_hashblocks/sha512/compact/implementors0000777000000000000000000000000014705505552027535 2../avx2/implementorsustar rootrootlibntruprime-20241021/crypto_kem/0000755000000000000000000000000014705505547015351 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup1013/0000755000000000000000000000000014705505547017211 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup1013/factored/0000755000000000000000000000000014705505552020774 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup1013/factored/api.h0000644000000000000000000000020214705505547021714 0ustar rootroot#define CRYPTO_SECRETKEYBYTES 2417 #define CRYPTO_PUBLICKEYBYTES 1623 #define CRYPTO_CIPHERTEXTBYTES 1455 #define CRYPTO_BYTES 32 libntruprime-20241021/crypto_kem/sntrup1013/factored/implementors0000777000000000000000000000000014705505552033541 2../../../src/kem/sntrupP/factored/implementorsustar rootrootlibntruprime-20241021/crypto_kem/sntrup1013/factored/kem.c0000777000000000000000000000000014705505552030277 2../../../src/kem/sntrupP/factored/kem.custar rootrootlibntruprime-20241021/crypto_kem/sntrup1013/factored/params.h0000644000000000000000000000337614705505547022445 0ustar rootroot#ifndef params_H #define params_H #define p 1013 #define q 7177 #define w 448 #define ppadsort 1024 #include "crypto_verify_1455.h" #define crypto_verify_clen crypto_verify_1455 #include "crypto_encode_1013x7177.h" #include "crypto_decode_1013x7177.h" #define Rq_bytes crypto_encode_1013x7177_STRBYTES #define Rq_encode crypto_encode_1013x7177 #define Rq_decode crypto_decode_1013x7177 #include "crypto_decode_1013x2393.h" #define Rounded_bytes crypto_decode_1013x2393_STRBYTES #define Rounded_decode crypto_decode_1013x2393 #include "crypto_encode_1013x2393round.h" #define Round_and_encode crypto_encode_1013x2393round #include "crypto_encode_1013x3.h" #include "crypto_decode_1013x3.h" #define Small_bytes crypto_encode_1013x3_STRBYTES #define Small_encode crypto_encode_1013x3 #define Small_decode crypto_decode_1013x3 #include "crypto_encode_1013xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_1013xfreeze3 #include "crypto_decode_1013xint32.h" #define crypto_decode_pxint32 crypto_decode_1013xint32 #include "crypto_decode_1013xint16.h" #define crypto_decode_pxint16 crypto_decode_1013xint16 #include "crypto_encode_1013xint16.h" #define crypto_encode_pxint16 crypto_encode_1013xint16 #include "crypto_core_wforcesntrup1013.h" #define crypto_core_wforce crypto_core_wforcesntrup1013 #include "crypto_core_scale3sntrup1013.h" #define crypto_core_scale3 crypto_core_scale3sntrup1013 #include "crypto_core_invsntrup1013.h" #define crypto_core_inv crypto_core_invsntrup1013 #include "crypto_core_inv3sntrup1013.h" #define crypto_core_inv3 crypto_core_inv3sntrup1013 #include "crypto_core_mult3sntrup1013.h" #define crypto_core_mult3 crypto_core_mult3sntrup1013 #include "crypto_core_multsntrup1013.h" #define crypto_core_mult crypto_core_multsntrup1013 #endif libntruprime-20241021/crypto_kem/sntrup1277/0000755000000000000000000000000014705505547017225 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup1277/factored/0000755000000000000000000000000014705505552021010 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup1277/factored/api.h0000644000000000000000000000020214705505547021730 0ustar rootroot#define CRYPTO_SECRETKEYBYTES 3059 #define CRYPTO_PUBLICKEYBYTES 2067 #define CRYPTO_CIPHERTEXTBYTES 1847 #define CRYPTO_BYTES 32 libntruprime-20241021/crypto_kem/sntrup1277/factored/implementors0000777000000000000000000000000014705505552033555 2../../../src/kem/sntrupP/factored/implementorsustar rootrootlibntruprime-20241021/crypto_kem/sntrup1277/factored/kem.c0000777000000000000000000000000014705505552030313 2../../../src/kem/sntrupP/factored/kem.custar rootrootlibntruprime-20241021/crypto_kem/sntrup1277/factored/params.h0000644000000000000000000000337614705505547022461 0ustar rootroot#ifndef params_H #define params_H #define p 1277 #define q 7879 #define w 492 #define ppadsort 1280 #include "crypto_verify_1847.h" #define crypto_verify_clen crypto_verify_1847 #include "crypto_encode_1277x7879.h" #include "crypto_decode_1277x7879.h" #define Rq_bytes crypto_encode_1277x7879_STRBYTES #define Rq_encode crypto_encode_1277x7879 #define Rq_decode crypto_decode_1277x7879 #include "crypto_decode_1277x2627.h" #define Rounded_bytes crypto_decode_1277x2627_STRBYTES #define Rounded_decode crypto_decode_1277x2627 #include "crypto_encode_1277x2627round.h" #define Round_and_encode crypto_encode_1277x2627round #include "crypto_encode_1277x3.h" #include "crypto_decode_1277x3.h" #define Small_bytes crypto_encode_1277x3_STRBYTES #define Small_encode crypto_encode_1277x3 #define Small_decode crypto_decode_1277x3 #include "crypto_encode_1277xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_1277xfreeze3 #include "crypto_decode_1277xint32.h" #define crypto_decode_pxint32 crypto_decode_1277xint32 #include "crypto_decode_1277xint16.h" #define crypto_decode_pxint16 crypto_decode_1277xint16 #include "crypto_encode_1277xint16.h" #define crypto_encode_pxint16 crypto_encode_1277xint16 #include "crypto_core_wforcesntrup1277.h" #define crypto_core_wforce crypto_core_wforcesntrup1277 #include "crypto_core_scale3sntrup1277.h" #define crypto_core_scale3 crypto_core_scale3sntrup1277 #include "crypto_core_invsntrup1277.h" #define crypto_core_inv crypto_core_invsntrup1277 #include "crypto_core_inv3sntrup1277.h" #define crypto_core_inv3 crypto_core_inv3sntrup1277 #include "crypto_core_mult3sntrup1277.h" #define crypto_core_mult3 crypto_core_mult3sntrup1277 #include "crypto_core_multsntrup1277.h" #define crypto_core_mult crypto_core_multsntrup1277 #endif libntruprime-20241021/crypto_kem/sntrup653/0000755000000000000000000000000014705505547017142 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup653/factored/0000755000000000000000000000000014705505552020725 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup653/factored/api.h0000644000000000000000000000020014705505547021643 0ustar rootroot#define CRYPTO_SECRETKEYBYTES 1518 #define CRYPTO_PUBLICKEYBYTES 994 #define CRYPTO_CIPHERTEXTBYTES 897 #define CRYPTO_BYTES 32 libntruprime-20241021/crypto_kem/sntrup653/factored/implementors0000777000000000000000000000000014705505552033472 2../../../src/kem/sntrupP/factored/implementorsustar rootrootlibntruprime-20241021/crypto_kem/sntrup653/factored/kem.c0000777000000000000000000000000014705505552030230 2../../../src/kem/sntrupP/factored/kem.custar rootrootlibntruprime-20241021/crypto_kem/sntrup653/factored/params.h0000644000000000000000000000332714705505547022372 0ustar rootroot#ifndef params_H #define params_H #define p 653 #define q 4621 #define w 288 #define ppadsort 653 #include "crypto_verify_897.h" #define crypto_verify_clen crypto_verify_897 #include "crypto_encode_653x4621.h" #include "crypto_decode_653x4621.h" #define Rq_bytes crypto_encode_653x4621_STRBYTES #define Rq_encode crypto_encode_653x4621 #define Rq_decode crypto_decode_653x4621 #include "crypto_decode_653x1541.h" #define Rounded_bytes crypto_decode_653x1541_STRBYTES #define Rounded_decode crypto_decode_653x1541 #include "crypto_encode_653x1541round.h" #define Round_and_encode crypto_encode_653x1541round #include "crypto_encode_653x3.h" #include "crypto_decode_653x3.h" #define Small_bytes crypto_encode_653x3_STRBYTES #define Small_encode crypto_encode_653x3 #define Small_decode crypto_decode_653x3 #include "crypto_encode_653xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_653xfreeze3 #include "crypto_decode_653xint32.h" #define crypto_decode_pxint32 crypto_decode_653xint32 #include "crypto_decode_653xint16.h" #define crypto_decode_pxint16 crypto_decode_653xint16 #include "crypto_encode_653xint16.h" #define crypto_encode_pxint16 crypto_encode_653xint16 #include "crypto_core_wforcesntrup653.h" #define crypto_core_wforce crypto_core_wforcesntrup653 #include "crypto_core_scale3sntrup653.h" #define crypto_core_scale3 crypto_core_scale3sntrup653 #include "crypto_core_invsntrup653.h" #define crypto_core_inv crypto_core_invsntrup653 #include "crypto_core_inv3sntrup653.h" #define crypto_core_inv3 crypto_core_inv3sntrup653 #include "crypto_core_mult3sntrup653.h" #define crypto_core_mult3 crypto_core_mult3sntrup653 #include "crypto_core_multsntrup653.h" #define crypto_core_mult crypto_core_multsntrup653 #endif libntruprime-20241021/crypto_kem/sntrup761/0000755000000000000000000000000014705505547017142 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup761/factored/0000755000000000000000000000000014705505552020725 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup761/factored/CHANGES0000777000000000000000000000000014705505552030356 2../../../src/kem/sntrupP/factored/CHANGESustar rootrootlibntruprime-20241021/crypto_kem/sntrup761/factored/api.h0000644000000000000000000000020214705505547021645 0ustar rootroot#define CRYPTO_SECRETKEYBYTES 1763 #define CRYPTO_PUBLICKEYBYTES 1158 #define CRYPTO_CIPHERTEXTBYTES 1039 #define CRYPTO_BYTES 32 libntruprime-20241021/crypto_kem/sntrup761/factored/implementors0000777000000000000000000000000014705505552033472 2../../../src/kem/sntrupP/factored/implementorsustar rootrootlibntruprime-20241021/crypto_kem/sntrup761/factored/kem.c0000777000000000000000000000000014705505552030230 2../../../src/kem/sntrupP/factored/kem.custar rootrootlibntruprime-20241021/crypto_kem/sntrup761/factored/params.h0000644000000000000000000000333114705505547022365 0ustar rootroot#ifndef params_H #define params_H #define p 761 #define q 4591 #define w 286 #define ppadsort 768 #include "crypto_verify_1039.h" #define crypto_verify_clen crypto_verify_1039 #include "crypto_encode_761x4591.h" #include "crypto_decode_761x4591.h" #define Rq_bytes crypto_encode_761x4591_STRBYTES #define Rq_encode crypto_encode_761x4591 #define Rq_decode crypto_decode_761x4591 #include "crypto_decode_761x1531.h" #define Rounded_bytes crypto_decode_761x1531_STRBYTES #define Rounded_decode crypto_decode_761x1531 #include "crypto_encode_761x1531round.h" #define Round_and_encode crypto_encode_761x1531round #include "crypto_encode_761x3.h" #include "crypto_decode_761x3.h" #define Small_bytes crypto_encode_761x3_STRBYTES #define Small_encode crypto_encode_761x3 #define Small_decode crypto_decode_761x3 #include "crypto_encode_761xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_761xfreeze3 #include "crypto_decode_761xint32.h" #define crypto_decode_pxint32 crypto_decode_761xint32 #include "crypto_decode_761xint16.h" #define crypto_decode_pxint16 crypto_decode_761xint16 #include "crypto_encode_761xint16.h" #define crypto_encode_pxint16 crypto_encode_761xint16 #include "crypto_core_wforcesntrup761.h" #define crypto_core_wforce crypto_core_wforcesntrup761 #include "crypto_core_scale3sntrup761.h" #define crypto_core_scale3 crypto_core_scale3sntrup761 #include "crypto_core_invsntrup761.h" #define crypto_core_inv crypto_core_invsntrup761 #include "crypto_core_inv3sntrup761.h" #define crypto_core_inv3 crypto_core_inv3sntrup761 #include "crypto_core_mult3sntrup761.h" #define crypto_core_mult3 crypto_core_mult3sntrup761 #include "crypto_core_multsntrup761.h" #define crypto_core_mult crypto_core_multsntrup761 #endif libntruprime-20241021/crypto_kem/sntrup857/0000755000000000000000000000000014705505547017150 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup857/factored/0000755000000000000000000000000014705505552020733 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup857/factored/api.h0000644000000000000000000000020214705505547021653 0ustar rootroot#define CRYPTO_SECRETKEYBYTES 1999 #define CRYPTO_PUBLICKEYBYTES 1322 #define CRYPTO_CIPHERTEXTBYTES 1184 #define CRYPTO_BYTES 32 libntruprime-20241021/crypto_kem/sntrup857/factored/implementors0000777000000000000000000000000014705505552033500 2../../../src/kem/sntrupP/factored/implementorsustar rootrootlibntruprime-20241021/crypto_kem/sntrup857/factored/kem.c0000777000000000000000000000000014705505552030236 2../../../src/kem/sntrupP/factored/kem.custar rootrootlibntruprime-20241021/crypto_kem/sntrup857/factored/params.h0000644000000000000000000000333114705505547022373 0ustar rootroot#ifndef params_H #define params_H #define p 857 #define q 5167 #define w 322 #define ppadsort 857 #include "crypto_verify_1184.h" #define crypto_verify_clen crypto_verify_1184 #include "crypto_encode_857x5167.h" #include "crypto_decode_857x5167.h" #define Rq_bytes crypto_encode_857x5167_STRBYTES #define Rq_encode crypto_encode_857x5167 #define Rq_decode crypto_decode_857x5167 #include "crypto_decode_857x1723.h" #define Rounded_bytes crypto_decode_857x1723_STRBYTES #define Rounded_decode crypto_decode_857x1723 #include "crypto_encode_857x1723round.h" #define Round_and_encode crypto_encode_857x1723round #include "crypto_encode_857x3.h" #include "crypto_decode_857x3.h" #define Small_bytes crypto_encode_857x3_STRBYTES #define Small_encode crypto_encode_857x3 #define Small_decode crypto_decode_857x3 #include "crypto_encode_857xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_857xfreeze3 #include "crypto_decode_857xint32.h" #define crypto_decode_pxint32 crypto_decode_857xint32 #include "crypto_decode_857xint16.h" #define crypto_decode_pxint16 crypto_decode_857xint16 #include "crypto_encode_857xint16.h" #define crypto_encode_pxint16 crypto_encode_857xint16 #include "crypto_core_wforcesntrup857.h" #define crypto_core_wforce crypto_core_wforcesntrup857 #include "crypto_core_scale3sntrup857.h" #define crypto_core_scale3 crypto_core_scale3sntrup857 #include "crypto_core_invsntrup857.h" #define crypto_core_inv crypto_core_invsntrup857 #include "crypto_core_inv3sntrup857.h" #define crypto_core_inv3 crypto_core_inv3sntrup857 #include "crypto_core_mult3sntrup857.h" #define crypto_core_mult3 crypto_core_mult3sntrup857 #include "crypto_core_multsntrup857.h" #define crypto_core_mult crypto_core_multsntrup857 #endif libntruprime-20241021/crypto_kem/sntrup953/0000755000000000000000000000000014705505547017145 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup953/factored/0000755000000000000000000000000014705505552020730 5ustar rootrootlibntruprime-20241021/crypto_kem/sntrup953/factored/api.h0000644000000000000000000000020214705505547021650 0ustar rootroot#define CRYPTO_SECRETKEYBYTES 2254 #define CRYPTO_PUBLICKEYBYTES 1505 #define CRYPTO_CIPHERTEXTBYTES 1349 #define CRYPTO_BYTES 32 libntruprime-20241021/crypto_kem/sntrup953/factored/implementors0000777000000000000000000000000014705505552033475 2../../../src/kem/sntrupP/factored/implementorsustar rootrootlibntruprime-20241021/crypto_kem/sntrup953/factored/kem.c0000777000000000000000000000000014705505552030233 2../../../src/kem/sntrupP/factored/kem.custar rootrootlibntruprime-20241021/crypto_kem/sntrup953/factored/params.h0000644000000000000000000000333114705505547022370 0ustar rootroot#ifndef params_H #define params_H #define p 953 #define q 6343 #define w 396 #define ppadsort 960 #include "crypto_verify_1349.h" #define crypto_verify_clen crypto_verify_1349 #include "crypto_encode_953x6343.h" #include "crypto_decode_953x6343.h" #define Rq_bytes crypto_encode_953x6343_STRBYTES #define Rq_encode crypto_encode_953x6343 #define Rq_decode crypto_decode_953x6343 #include "crypto_decode_953x2115.h" #define Rounded_bytes crypto_decode_953x2115_STRBYTES #define Rounded_decode crypto_decode_953x2115 #include "crypto_encode_953x2115round.h" #define Round_and_encode crypto_encode_953x2115round #include "crypto_encode_953x3.h" #include "crypto_decode_953x3.h" #define Small_bytes crypto_encode_953x3_STRBYTES #define Small_encode crypto_encode_953x3 #define Small_decode crypto_decode_953x3 #include "crypto_encode_953xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_953xfreeze3 #include "crypto_decode_953xint32.h" #define crypto_decode_pxint32 crypto_decode_953xint32 #include "crypto_decode_953xint16.h" #define crypto_decode_pxint16 crypto_decode_953xint16 #include "crypto_encode_953xint16.h" #define crypto_encode_pxint16 crypto_encode_953xint16 #include "crypto_core_wforcesntrup953.h" #define crypto_core_wforce crypto_core_wforcesntrup953 #include "crypto_core_scale3sntrup953.h" #define crypto_core_scale3 crypto_core_scale3sntrup953 #include "crypto_core_invsntrup953.h" #define crypto_core_inv crypto_core_invsntrup953 #include "crypto_core_inv3sntrup953.h" #define crypto_core_inv3 crypto_core_inv3sntrup953 #include "crypto_core_mult3sntrup953.h" #define crypto_core_mult3 crypto_core_mult3sntrup953 #include "crypto_core_multsntrup953.h" #define crypto_core_mult crypto_core_multsntrup953 #endif libntruprime-20241021/crypto_sort/0000755000000000000000000000000014705505550015556 5ustar rootrootlibntruprime-20241021/crypto_sort/int32/0000755000000000000000000000000014705505550016515 5ustar rootrootlibntruprime-20241021/crypto_sort/int32/avx2/0000755000000000000000000000000014705505552017377 5ustar rootrootlibntruprime-20241021/crypto_sort/int32/avx2/api.h0000644000000000000000000000002714705505547020324 0ustar rootroot#define CRYPTO_BYTES 4 libntruprime-20241021/crypto_sort/int32/avx2/architectures0000777000000000000000000000000014705505552031077 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_sort/int32/avx2/goal-constbranch0000777000000000000000000000000014705505552025564 2goal-constindexustar rootrootlibntruprime-20241021/crypto_sort/int32/avx2/goal-constindex0000644000000000000000000000120714705505547022424 0ustar rootroot20200809 titan0 amd64 20200809 crypto_sort int32/constbranchindex timecop_pass crypto_sort/int32/avx2 gcc_-march=native_-mtune=native_-O3_-g_-fwrapv_-fPIC_-fPIE 1 0 20240425 titan0 amd64 20240530 crypto_sort int32/constbranchindex timecop_pass crypto_sort/int32/avx2 gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE 10 0 20240425 titan0 amd64 20240530 crypto_sort int32/constbranchindex timecop_output crypto_sort/int32/avx2 gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE 85d93a5675bf36318880897ac6dc6c6aa7810881a54b4349ec1cf67f5069026d 3045676 669246972 3500000000 crypto_sort/int32/avx2 libntruprime-20241021/crypto_sort/int32/avx2/int32_minmax_x86.inc0000644000000000000000000000034714705505547023117 0ustar rootroot#define int32_MINMAX(a,b) \ do { \ int32 temp1; \ asm( \ "cmpl %1,%0\n\t" \ "mov %0,%2\n\t" \ "cmovg %1,%0\n\t" \ "cmovg %2,%1\n\t" \ : "+r"(a), "+r"(b), "=r"(temp1) \ : \ : "cc" \ ); \ } while(0) libntruprime-20241021/crypto_sort/int32/avx2/sort.c0000644000000000000000000010752414705505547020547 0ustar rootroot#include "crypto_sort.h" #include "crypto_int32.h" #define int32 crypto_int32 #include #include "int32_minmax_x86.inc" typedef __m256i int32x8; #define int32x8_load(z) _mm256_loadu_si256((__m256i *) (z)) #define int32x8_store(z,i) _mm256_storeu_si256((__m256i *) (z),(i)) #define int32x8_min _mm256_min_epi32 #define int32x8_max _mm256_max_epi32 #define int32x8_MINMAX(a,b) \ do { \ int32x8 c = int32x8_min(a,b); \ b = int32x8_max(a,b); \ a = c; \ } while(0) __attribute__((noinline)) static void minmax_vector(int32 *x,int32 *y,long long n) { if (n < 8) { while (n > 0) { int32_MINMAX(*x,*y); ++x; ++y; --n; } return; } if (n & 7) { int32x8 x0 = int32x8_load(x + n - 8); int32x8 y0 = int32x8_load(y + n - 8); int32x8_MINMAX(x0,y0); int32x8_store(x + n - 8,x0); int32x8_store(y + n - 8,y0); n &= ~7; } do { int32x8 x0 = int32x8_load(x); int32x8 y0 = int32x8_load(y); int32x8_MINMAX(x0,y0); int32x8_store(x,x0); int32x8_store(y,y0); x += 8; y += 8; n -= 8; } while(n); } /* stages 8,4,2,1 of size-16 bitonic merging */ __attribute__((noinline)) static void merge16_finish(int32 *x,int32x8 x0,int32x8 x1,int flagdown) { int32x8 b0,b1,c0,c1,mask; int32x8_MINMAX(x0,x1); b0 = _mm256_permute2x128_si256(x0,x1,0x20); /* A0123B0123 */ b1 = _mm256_permute2x128_si256(x0,x1,0x31); /* A4567B4567 */ int32x8_MINMAX(b0,b1); c0 = _mm256_unpacklo_epi64(b0,b1); /* A0145B0145 */ c1 = _mm256_unpackhi_epi64(b0,b1); /* A2367B2367 */ int32x8_MINMAX(c0,c1); b0 = _mm256_unpacklo_epi32(c0,c1); /* A0213B0213 */ b1 = _mm256_unpackhi_epi32(c0,c1); /* A4657B4657 */ c0 = _mm256_unpacklo_epi64(b0,b1); /* A0246B0246 */ c1 = _mm256_unpackhi_epi64(b0,b1); /* A1357B1357 */ int32x8_MINMAX(c0,c1); b0 = _mm256_unpacklo_epi32(c0,c1); /* A0123B0123 */ b1 = _mm256_unpackhi_epi32(c0,c1); /* A4567B4567 */ x0 = _mm256_permute2x128_si256(b0,b1,0x20); /* A01234567 */ x1 = _mm256_permute2x128_si256(b0,b1,0x31); /* A01234567 */ if (flagdown) { mask = _mm256_set1_epi32(-1); x0 ^= mask; x1 ^= mask; } int32x8_store(&x[0],x0); int32x8_store(&x[8],x1); } /* stages 64,32 of bitonic merging; n is multiple of 128 */ __attribute__((noinline)) static void int32_twostages_32(int32 *x,long long n) { long long i; while (n > 0) { for (i = 0;i < 32;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+32]); int32x8 x2 = int32x8_load(&x[i+64]); int32x8 x3 = int32x8_load(&x[i+96]); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_store(&x[i],x0); int32x8_store(&x[i+32],x1); int32x8_store(&x[i+64],x2); int32x8_store(&x[i+96],x3); } x += 128; n -= 128; } } /* stages 4q,2q,q of bitonic merging */ __attribute__((noinline)) static long long int32_threestages(int32 *x,long long n,long long q) { long long k,i; for (k = 0;k + 8*q <= n;k += 8*q) for (i = k;i < k + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8 x4 = int32x8_load(&x[i+4*q]); int32x8 x5 = int32x8_load(&x[i+5*q]); int32x8 x6 = int32x8_load(&x[i+6*q]); int32x8 x7 = int32x8_load(&x[i+7*q]); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); int32x8_store(&x[i+4*q],x4); int32x8_store(&x[i+5*q],x5); int32x8_store(&x[i+6*q],x6); int32x8_store(&x[i+7*q],x7); } return k; } /* n is a power of 2; n >= 8; if n == 8 then flagdown */ __attribute__((noinline)) static void int32_sort_2power(int32 *x,long long n,int flagdown) { long long p,q,i,j,k; int32x8 mask; if (n == 8) { int32 x0 = x[0]; int32 x1 = x[1]; int32 x2 = x[2]; int32 x3 = x[3]; int32 x4 = x[4]; int32 x5 = x[5]; int32 x6 = x[6]; int32 x7 = x[7]; /* odd-even sort instead of bitonic sort */ int32_MINMAX(x1,x0); int32_MINMAX(x3,x2); int32_MINMAX(x2,x0); int32_MINMAX(x3,x1); int32_MINMAX(x2,x1); int32_MINMAX(x5,x4); int32_MINMAX(x7,x6); int32_MINMAX(x6,x4); int32_MINMAX(x7,x5); int32_MINMAX(x6,x5); int32_MINMAX(x4,x0); int32_MINMAX(x6,x2); int32_MINMAX(x4,x2); int32_MINMAX(x5,x1); int32_MINMAX(x7,x3); int32_MINMAX(x5,x3); int32_MINMAX(x2,x1); int32_MINMAX(x4,x3); int32_MINMAX(x6,x5); x[0] = x0; x[1] = x1; x[2] = x2; x[3] = x3; x[4] = x4; x[5] = x5; x[6] = x6; x[7] = x7; return; } if (n == 16) { int32x8 x0,x1,b0,b1,c0,c1; x0 = int32x8_load(&x[0]); x1 = int32x8_load(&x[8]); mask = _mm256_set_epi32(0,0,-1,-1,0,0,-1,-1); x0 ^= mask; /* A01234567 */ x1 ^= mask; /* B01234567 */ b0 = _mm256_unpacklo_epi32(x0,x1); /* AB0AB1AB4AB5 */ b1 = _mm256_unpackhi_epi32(x0,x1); /* AB2AB3AB6AB7 */ c0 = _mm256_unpacklo_epi64(b0,b1); /* AB0AB2AB4AB6 */ c1 = _mm256_unpackhi_epi64(b0,b1); /* AB1AB3AB5AB7 */ int32x8_MINMAX(c0,c1); mask = _mm256_set_epi32(0,0,-1,-1,-1,-1,0,0); c0 ^= mask; c1 ^= mask; b0 = _mm256_unpacklo_epi32(c0,c1); /* A01B01A45B45 */ b1 = _mm256_unpackhi_epi32(c0,c1); /* A23B23A67B67 */ int32x8_MINMAX(b0,b1); x0 = _mm256_unpacklo_epi64(b0,b1); /* A01234567 */ x1 = _mm256_unpackhi_epi64(b0,b1); /* B01234567 */ b0 = _mm256_unpacklo_epi32(x0,x1); /* AB0AB1AB4AB5 */ b1 = _mm256_unpackhi_epi32(x0,x1); /* AB2AB3AB6AB7 */ c0 = _mm256_unpacklo_epi64(b0,b1); /* AB0AB2AB4AB6 */ c1 = _mm256_unpackhi_epi64(b0,b1); /* AB1AB3AB5AB7 */ int32x8_MINMAX(c0,c1); b0 = _mm256_unpacklo_epi32(c0,c1); /* A01B01A45B45 */ b1 = _mm256_unpackhi_epi32(c0,c1); /* A23B23A67B67 */ b0 ^= mask; b1 ^= mask; c0 = _mm256_permute2x128_si256(b0,b1,0x20); /* A01B01A23B23 */ c1 = _mm256_permute2x128_si256(b0,b1,0x31); /* A45B45A67B67 */ int32x8_MINMAX(c0,c1); b0 = _mm256_permute2x128_si256(c0,c1,0x20); /* A01B01A45B45 */ b1 = _mm256_permute2x128_si256(c0,c1,0x31); /* A23B23A67B67 */ int32x8_MINMAX(b0,b1); x0 = _mm256_unpacklo_epi64(b0,b1); /* A01234567 */ x1 = _mm256_unpackhi_epi64(b0,b1); /* B01234567 */ b0 = _mm256_unpacklo_epi32(x0,x1); /* AB0AB1AB4AB5 */ b1 = _mm256_unpackhi_epi32(x0,x1); /* AB2AB3AB6AB7 */ c0 = _mm256_unpacklo_epi64(b0,b1); /* AB0AB2AB4AB6 */ c1 = _mm256_unpackhi_epi64(b0,b1); /* AB1AB3AB5AB7 */ int32x8_MINMAX(c0,c1); b0 = _mm256_unpacklo_epi32(c0,c1); /* A01B01A45B45 */ b1 = _mm256_unpackhi_epi32(c0,c1); /* A23B23A67B67 */ x0 = _mm256_unpacklo_epi64(b0,b1); /* A01234567 */ x1 = _mm256_unpackhi_epi64(b0,b1); /* B01234567 */ mask = _mm256_set1_epi32(-1); if (flagdown) x1 ^= mask; else x0 ^= mask; merge16_finish(x,x0,x1,flagdown); return; } if (n == 32) { int32x8 x0,x1,x2,x3; int32_sort_2power(x,16,1); int32_sort_2power(x + 16,16,0); x0 = int32x8_load(&x[0]); x1 = int32x8_load(&x[8]); x2 = int32x8_load(&x[16]); x3 = int32x8_load(&x[24]); if (flagdown) { mask = _mm256_set1_epi32(-1); x0 ^= mask; x1 ^= mask; x2 ^= mask; x3 ^= mask; } int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); merge16_finish(x,x0,x1,flagdown); merge16_finish(x + 16,x2,x3,flagdown); return; } p = n>>3; for (i = 0;i < p;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x2 = int32x8_load(&x[i+2*p]); int32x8 x4 = int32x8_load(&x[i+4*p]); int32x8 x6 = int32x8_load(&x[i+6*p]); /* odd-even stage instead of bitonic stage */ int32x8_MINMAX(x4,x0); int32x8_MINMAX(x6,x2); int32x8_MINMAX(x2,x0); int32x8_MINMAX(x6,x4); int32x8_MINMAX(x2,x4); int32x8_store(&x[i],x0); int32x8_store(&x[i+2*p],x2); int32x8_store(&x[i+4*p],x4); int32x8_store(&x[i+6*p],x6); int32x8 x1 = int32x8_load(&x[i+p]); int32x8 x3 = int32x8_load(&x[i+3*p]); int32x8 x5 = int32x8_load(&x[i+5*p]); int32x8 x7 = int32x8_load(&x[i+7*p]); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x3,x7); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x5,x3); int32x8_store(&x[i+p],x1); int32x8_store(&x[i+3*p],x3); int32x8_store(&x[i+5*p],x5); int32x8_store(&x[i+7*p],x7); } if (n >= 128) { int flip, flipflip; mask = _mm256_set1_epi32(-1); for (j = 0;j < n;j += 32) { int32x8 x0 = int32x8_load(&x[j]); int32x8 x1 = int32x8_load(&x[j+16]); x0 ^= mask; x1 ^= mask; int32x8_store(&x[j],x0); int32x8_store(&x[j+16],x1); } p = 8; for (;;) { /* for p in [8, 16, ..., n/16] */ q = p>>1; while (q >= 128) { int32_threestages(x,n,q >> 2); q >>= 3; } if (q == 64) { int32_twostages_32(x,n); q = 16; } if (q == 32) { q = 8; for (k = 0;k < n;k += 8*q) for (i = k;i < k + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8 x4 = int32x8_load(&x[i+4*q]); int32x8 x5 = int32x8_load(&x[i+5*q]); int32x8 x6 = int32x8_load(&x[i+6*q]); int32x8 x7 = int32x8_load(&x[i+7*q]); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); int32x8_store(&x[i+4*q],x4); int32x8_store(&x[i+5*q],x5); int32x8_store(&x[i+6*q],x6); int32x8_store(&x[i+7*q],x7); } q = 4; } if (q == 16) { q = 8; for (k = 0;k < n;k += 4*q) for (i = k;i < k + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); } q = 4; } if (q == 8) for (k = 0;k < n;k += q + q) { int32x8 x0 = int32x8_load(&x[k]); int32x8 x1 = int32x8_load(&x[k+q]); int32x8_MINMAX(x0,x1); int32x8_store(&x[k],x0); int32x8_store(&x[k+q],x1); } q = n>>3; flip = (p<<1 == q); flipflip = !flip; for (j = 0;j < q;j += p + p) { for (k = j;k < j + p + p;k += p) { for (i = k;i < k + p;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8 x4 = int32x8_load(&x[i+4*q]); int32x8 x5 = int32x8_load(&x[i+5*q]); int32x8 x6 = int32x8_load(&x[i+6*q]); int32x8 x7 = int32x8_load(&x[i+7*q]); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); if (flip) { x0 ^= mask; x1 ^= mask; x2 ^= mask; x3 ^= mask; x4 ^= mask; x5 ^= mask; x6 ^= mask; x7 ^= mask; } int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); int32x8_store(&x[i+4*q],x4); int32x8_store(&x[i+5*q],x5); int32x8_store(&x[i+6*q],x6); int32x8_store(&x[i+7*q],x7); } flip ^= 1; } flip ^= flipflip; } if (p<<4 == n) break; p <<= 1; } } for (p = 4;p >= 1;p >>= 1) { int32 *z = x; int32 *target = x + n; if (p == 4) { mask = _mm256_set_epi32(0,0,0,0,-1,-1,-1,-1); while (z != target) { int32x8 x0 = int32x8_load(&z[0]); int32x8 x1 = int32x8_load(&z[8]); x0 ^= mask; x1 ^= mask; int32x8_store(&z[0],x0); int32x8_store(&z[8],x1); z += 16; } } else if (p == 2) { mask = _mm256_set_epi32(0,0,-1,-1,-1,-1,0,0); while (z != target) { int32x8 x0 = int32x8_load(&z[0]); int32x8 x1 = int32x8_load(&z[8]); x0 ^= mask; x1 ^= mask; int32x8 b0 = _mm256_permute2x128_si256(x0,x1,0x20); int32x8 b1 = _mm256_permute2x128_si256(x0,x1,0x31); int32x8_MINMAX(b0,b1); int32x8 c0 = _mm256_permute2x128_si256(b0,b1,0x20); int32x8 c1 = _mm256_permute2x128_si256(b0,b1,0x31); int32x8_store(&z[0],c0); int32x8_store(&z[8],c1); z += 16; } } else { /* p == 1 */ mask = _mm256_set_epi32(0,-1,-1,0,0,-1,-1,0); while (z != target) { int32x8 x0 = int32x8_load(&z[0]); int32x8 x1 = int32x8_load(&z[8]); x0 ^= mask; x1 ^= mask; int32x8 b0 = _mm256_permute2x128_si256(x0,x1,0x20); /* A0123B0123 */ int32x8 b1 = _mm256_permute2x128_si256(x0,x1,0x31); /* A4567B4567 */ int32x8 c0 = _mm256_unpacklo_epi64(b0,b1); /* A0145B0145 */ int32x8 c1 = _mm256_unpackhi_epi64(b0,b1); /* A2367B2367 */ int32x8_MINMAX(c0,c1); int32x8 d0 = _mm256_unpacklo_epi64(c0,c1); /* A0123B0123 */ int32x8 d1 = _mm256_unpackhi_epi64(c0,c1); /* A4567B4567 */ int32x8_MINMAX(d0,d1); int32x8 e0 = _mm256_permute2x128_si256(d0,d1,0x20); int32x8 e1 = _mm256_permute2x128_si256(d0,d1,0x31); int32x8_store(&z[0],e0); int32x8_store(&z[8],e1); z += 16; } } q = n>>4; while (q >= 128 || q == 32) { int32_threestages(x,n,q>>2); q >>= 3; } while (q >= 16) { q >>= 1; for (j = 0;j < n;j += 4*q) for (k = j;k < j + q;k += 8) { int32x8 x0 = int32x8_load(&x[k]); int32x8 x1 = int32x8_load(&x[k+q]); int32x8 x2 = int32x8_load(&x[k+2*q]); int32x8 x3 = int32x8_load(&x[k+3*q]); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_store(&x[k],x0); int32x8_store(&x[k+q],x1); int32x8_store(&x[k+2*q],x2); int32x8_store(&x[k+3*q],x3); } q >>= 1; } if (q == 8) { for (j = 0;j < n;j += 2*q) { int32x8 x0 = int32x8_load(&x[j]); int32x8 x1 = int32x8_load(&x[j+q]); int32x8_MINMAX(x0,x1); int32x8_store(&x[j],x0); int32x8_store(&x[j+q],x1); } } q = n>>3; for (k = 0;k < q;k += 8) { int32x8 x0 = int32x8_load(&x[k]); int32x8 x1 = int32x8_load(&x[k+q]); int32x8 x2 = int32x8_load(&x[k+2*q]); int32x8 x3 = int32x8_load(&x[k+3*q]); int32x8 x4 = int32x8_load(&x[k+4*q]); int32x8 x5 = int32x8_load(&x[k+5*q]); int32x8 x6 = int32x8_load(&x[k+6*q]); int32x8 x7 = int32x8_load(&x[k+7*q]); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); int32x8_store(&x[k],x0); int32x8_store(&x[k+q],x1); int32x8_store(&x[k+2*q],x2); int32x8_store(&x[k+3*q],x3); int32x8_store(&x[k+4*q],x4); int32x8_store(&x[k+5*q],x5); int32x8_store(&x[k+6*q],x6); int32x8_store(&x[k+7*q],x7); } } /* everything is still masked with _mm256_set_epi32(0,-1,0,-1,0,-1,0,-1); */ mask = _mm256_set1_epi32(-1); for (i = 0;i < n;i += 64) { int32x8 a0 = int32x8_load(&x[i]); int32x8 a1 = int32x8_load(&x[i+8]); int32x8 a2 = int32x8_load(&x[i+16]); int32x8 a3 = int32x8_load(&x[i+24]); int32x8 a4 = int32x8_load(&x[i+32]); int32x8 a5 = int32x8_load(&x[i+40]); int32x8 a6 = int32x8_load(&x[i+48]); int32x8 a7 = int32x8_load(&x[i+56]); int32x8 b0 = _mm256_unpacklo_epi32(a0,a1); /* AB0AB1AB4AB5 */ int32x8 b1 = _mm256_unpackhi_epi32(a0,a1); /* AB2AB3AB6AB7 */ int32x8 b2 = _mm256_unpacklo_epi32(a2,a3); /* CD0CD1CD4CD5 */ int32x8 b3 = _mm256_unpackhi_epi32(a2,a3); /* CD2CD3CD6CD7 */ int32x8 b4 = _mm256_unpacklo_epi32(a4,a5); /* EF0EF1EF4EF5 */ int32x8 b5 = _mm256_unpackhi_epi32(a4,a5); /* EF2EF3EF6EF7 */ int32x8 b6 = _mm256_unpacklo_epi32(a6,a7); /* GH0GH1GH4GH5 */ int32x8 b7 = _mm256_unpackhi_epi32(a6,a7); /* GH2GH3GH6GH7 */ int32x8 c0 = _mm256_unpacklo_epi64(b0,b2); /* ABCD0ABCD4 */ int32x8 c1 = _mm256_unpacklo_epi64(b1,b3); /* ABCD2ABCD6 */ int32x8 c2 = _mm256_unpackhi_epi64(b0,b2); /* ABCD1ABCD5 */ int32x8 c3 = _mm256_unpackhi_epi64(b1,b3); /* ABCD3ABCD7 */ int32x8 c4 = _mm256_unpacklo_epi64(b4,b6); /* EFGH0EFGH4 */ int32x8 c5 = _mm256_unpacklo_epi64(b5,b7); /* EFGH2EFGH6 */ int32x8 c6 = _mm256_unpackhi_epi64(b4,b6); /* EFGH1EFGH5 */ int32x8 c7 = _mm256_unpackhi_epi64(b5,b7); /* EFGH3EFGH7 */ if (flagdown) { c2 ^= mask; c3 ^= mask; c6 ^= mask; c7 ^= mask; } else { c0 ^= mask; c1 ^= mask; c4 ^= mask; c5 ^= mask; } int32x8 d0 = _mm256_permute2x128_si256(c0,c4,0x20); /* ABCDEFGH0 */ int32x8 d1 = _mm256_permute2x128_si256(c2,c6,0x20); /* ABCDEFGH1 */ int32x8 d2 = _mm256_permute2x128_si256(c1,c5,0x20); /* ABCDEFGH2 */ int32x8 d3 = _mm256_permute2x128_si256(c3,c7,0x20); /* ABCDEFGH5 */ int32x8 d4 = _mm256_permute2x128_si256(c0,c4,0x31); /* ABCDEFGH4 */ int32x8 d5 = _mm256_permute2x128_si256(c2,c6,0x31); /* ABCDEFGH3 */ int32x8 d6 = _mm256_permute2x128_si256(c1,c5,0x31); /* ABCDEFGH6 */ int32x8 d7 = _mm256_permute2x128_si256(c3,c7,0x31); /* ABCDEFGH7 */ int32x8_MINMAX(d0,d1); int32x8_MINMAX(d2,d3); int32x8_MINMAX(d4,d5); int32x8_MINMAX(d6,d7); int32x8_MINMAX(d0,d2); int32x8_MINMAX(d1,d3); int32x8_MINMAX(d4,d6); int32x8_MINMAX(d5,d7); int32x8_MINMAX(d0,d4); int32x8_MINMAX(d1,d5); int32x8_MINMAX(d2,d6); int32x8_MINMAX(d3,d7); int32x8 e0 = _mm256_unpacklo_epi32(d0,d1); int32x8 e1 = _mm256_unpackhi_epi32(d0,d1); int32x8 e2 = _mm256_unpacklo_epi32(d2,d3); int32x8 e3 = _mm256_unpackhi_epi32(d2,d3); int32x8 e4 = _mm256_unpacklo_epi32(d4,d5); int32x8 e5 = _mm256_unpackhi_epi32(d4,d5); int32x8 e6 = _mm256_unpacklo_epi32(d6,d7); int32x8 e7 = _mm256_unpackhi_epi32(d6,d7); int32x8 f0 = _mm256_unpacklo_epi64(e0,e2); int32x8 f1 = _mm256_unpacklo_epi64(e1,e3); int32x8 f2 = _mm256_unpackhi_epi64(e0,e2); int32x8 f3 = _mm256_unpackhi_epi64(e1,e3); int32x8 f4 = _mm256_unpacklo_epi64(e4,e6); int32x8 f5 = _mm256_unpacklo_epi64(e5,e7); int32x8 f6 = _mm256_unpackhi_epi64(e4,e6); int32x8 f7 = _mm256_unpackhi_epi64(e5,e7); int32x8 g0 = _mm256_permute2x128_si256(f0,f4,0x20); int32x8 g1 = _mm256_permute2x128_si256(f2,f6,0x20); int32x8 g2 = _mm256_permute2x128_si256(f1,f5,0x20); int32x8 g3 = _mm256_permute2x128_si256(f3,f7,0x20); int32x8 g4 = _mm256_permute2x128_si256(f0,f4,0x31); int32x8 g5 = _mm256_permute2x128_si256(f2,f6,0x31); int32x8 g6 = _mm256_permute2x128_si256(f1,f5,0x31); int32x8 g7 = _mm256_permute2x128_si256(f3,f7,0x31); int32x8_store(&x[i],g0); int32x8_store(&x[i+8],g1); int32x8_store(&x[i+16],g2); int32x8_store(&x[i+24],g3); int32x8_store(&x[i+32],g4); int32x8_store(&x[i+40],g5); int32x8_store(&x[i+48],g6); int32x8_store(&x[i+56],g7); } q = n>>4; while (q >= 128 || q == 32) { q >>= 2; for (j = 0;j < n;j += 8*q) for (i = j;i < j + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8 x4 = int32x8_load(&x[i+4*q]); int32x8 x5 = int32x8_load(&x[i+5*q]); int32x8 x6 = int32x8_load(&x[i+6*q]); int32x8 x7 = int32x8_load(&x[i+7*q]); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); int32x8_store(&x[i+4*q],x4); int32x8_store(&x[i+5*q],x5); int32x8_store(&x[i+6*q],x6); int32x8_store(&x[i+7*q],x7); } q >>= 1; } while (q >= 16) { q >>= 1; for (j = 0;j < n;j += 4*q) for (i = j;i < j + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); } q >>= 1; } if (q == 8) for (j = 0;j < n;j += q + q) { int32x8 x0 = int32x8_load(&x[j]); int32x8 x1 = int32x8_load(&x[j+q]); int32x8_MINMAX(x0,x1); int32x8_store(&x[j],x0); int32x8_store(&x[j+q],x1); } q = n>>3; for (i = 0;i < q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8 x4 = int32x8_load(&x[i+4*q]); int32x8 x5 = int32x8_load(&x[i+5*q]); int32x8 x6 = int32x8_load(&x[i+6*q]); int32x8 x7 = int32x8_load(&x[i+7*q]); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); int32x8 b0 = _mm256_unpacklo_epi32(x0,x4); /* AE0AE1AE4AE5 */ int32x8 b1 = _mm256_unpackhi_epi32(x0,x4); /* AE2AE3AE6AE7 */ int32x8 b2 = _mm256_unpacklo_epi32(x1,x5); /* BF0BF1BF4BF5 */ int32x8 b3 = _mm256_unpackhi_epi32(x1,x5); /* BF2BF3BF6BF7 */ int32x8 b4 = _mm256_unpacklo_epi32(x2,x6); /* CG0CG1CG4CG5 */ int32x8 b5 = _mm256_unpackhi_epi32(x2,x6); /* CG2CG3CG6CG7 */ int32x8 b6 = _mm256_unpacklo_epi32(x3,x7); /* DH0DH1DH4DH5 */ int32x8 b7 = _mm256_unpackhi_epi32(x3,x7); /* DH2DH3DH6DH7 */ int32x8 c0 = _mm256_unpacklo_epi64(b0,b4); /* AECG0AECG4 */ int32x8 c1 = _mm256_unpacklo_epi64(b1,b5); /* AECG2AECG6 */ int32x8 c2 = _mm256_unpackhi_epi64(b0,b4); /* AECG1AECG5 */ int32x8 c3 = _mm256_unpackhi_epi64(b1,b5); /* AECG3AECG7 */ int32x8 c4 = _mm256_unpacklo_epi64(b2,b6); /* BFDH0BFDH4 */ int32x8 c5 = _mm256_unpacklo_epi64(b3,b7); /* BFDH2BFDH6 */ int32x8 c6 = _mm256_unpackhi_epi64(b2,b6); /* BFDH1BFDH5 */ int32x8 c7 = _mm256_unpackhi_epi64(b3,b7); /* BFDH3BFDH7 */ int32x8 d0 = _mm256_permute2x128_si256(c0,c4,0x20); /* AECGBFDH0 */ int32x8 d1 = _mm256_permute2x128_si256(c1,c5,0x20); /* AECGBFDH2 */ int32x8 d2 = _mm256_permute2x128_si256(c2,c6,0x20); /* AECGBFDH1 */ int32x8 d3 = _mm256_permute2x128_si256(c3,c7,0x20); /* AECGBFDH3 */ int32x8 d4 = _mm256_permute2x128_si256(c0,c4,0x31); /* AECGBFDH4 */ int32x8 d5 = _mm256_permute2x128_si256(c1,c5,0x31); /* AECGBFDH6 */ int32x8 d6 = _mm256_permute2x128_si256(c2,c6,0x31); /* AECGBFDH5 */ int32x8 d7 = _mm256_permute2x128_si256(c3,c7,0x31); /* AECGBFDH7 */ if (flagdown) { d0 ^= mask; d1 ^= mask; d2 ^= mask; d3 ^= mask; d4 ^= mask; d5 ^= mask; d6 ^= mask; d7 ^= mask; } int32x8_store(&x[i],d0); int32x8_store(&x[i+q],d4); int32x8_store(&x[i+2*q],d1); int32x8_store(&x[i+3*q],d5); int32x8_store(&x[i+4*q],d2); int32x8_store(&x[i+5*q],d6); int32x8_store(&x[i+6*q],d3); int32x8_store(&x[i+7*q],d7); } } static void int32_sort(int32 *x,long long n) { long long q,i,j; if (n <= 8) { if (n == 8) { int32_MINMAX(x[0],x[1]); int32_MINMAX(x[1],x[2]); int32_MINMAX(x[2],x[3]); int32_MINMAX(x[3],x[4]); int32_MINMAX(x[4],x[5]); int32_MINMAX(x[5],x[6]); int32_MINMAX(x[6],x[7]); } if (n >= 7) { int32_MINMAX(x[0],x[1]); int32_MINMAX(x[1],x[2]); int32_MINMAX(x[2],x[3]); int32_MINMAX(x[3],x[4]); int32_MINMAX(x[4],x[5]); int32_MINMAX(x[5],x[6]); } if (n >= 6) { int32_MINMAX(x[0],x[1]); int32_MINMAX(x[1],x[2]); int32_MINMAX(x[2],x[3]); int32_MINMAX(x[3],x[4]); int32_MINMAX(x[4],x[5]); } if (n >= 5) { int32_MINMAX(x[0],x[1]); int32_MINMAX(x[1],x[2]); int32_MINMAX(x[2],x[3]); int32_MINMAX(x[3],x[4]); } if (n >= 4) { int32_MINMAX(x[0],x[1]); int32_MINMAX(x[1],x[2]); int32_MINMAX(x[2],x[3]); } if (n >= 3) { int32_MINMAX(x[0],x[1]); int32_MINMAX(x[1],x[2]); } if (n >= 2) { int32_MINMAX(x[0],x[1]); } return; } if (!(n & (n - 1))) { int32_sort_2power(x,n,0); return; } q = 8; while (q < n - q) q += q; /* n > q >= 8 */ if (q <= 128) { /* n <= 256 */ int32x8 y[32]; for (i = q>>3;i < q>>2;++i) y[i] = _mm256_set1_epi32(0x7fffffff); for (i = 0;i < n;++i) i[(int32 *) y] = x[i]; int32_sort_2power((int32 *) y,2*q,0); for (i = 0;i < n;++i) x[i] = i[(int32 *) y]; return; } int32_sort_2power(x,q,1); int32_sort(x + q,n - q); while (q >= 64) { q >>= 2; j = int32_threestages(x,n,q); minmax_vector(x + j,x + j + 4*q,n - 4*q - j); if (j + 4*q <= n) { for (i = j;i < j + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8 x2 = int32x8_load(&x[i+2*q]); int32x8 x3 = int32x8_load(&x[i+3*q]); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); int32x8_store(&x[i+2*q],x2); int32x8_store(&x[i+3*q],x3); } j += 4*q; } minmax_vector(x + j,x + j + 2*q,n - 2*q - j); if (j + 2*q <= n) { for (i = j;i < j + q;i += 8) { int32x8 x0 = int32x8_load(&x[i]); int32x8 x1 = int32x8_load(&x[i+q]); int32x8_MINMAX(x0,x1); int32x8_store(&x[i],x0); int32x8_store(&x[i+q],x1); } j += 2*q; } minmax_vector(x + j,x + j + q,n - q - j); q >>= 1; } if (q == 32) { j = 0; for (;j + 64 <= n;j += 64) { int32x8 x0 = int32x8_load(&x[j]); int32x8 x1 = int32x8_load(&x[j+8]); int32x8 x2 = int32x8_load(&x[j+16]); int32x8 x3 = int32x8_load(&x[j+24]); int32x8 x4 = int32x8_load(&x[j+32]); int32x8 x5 = int32x8_load(&x[j+40]); int32x8 x6 = int32x8_load(&x[j+48]); int32x8 x7 = int32x8_load(&x[j+56]); int32x8_MINMAX(x0,x4); int32x8_MINMAX(x1,x5); int32x8_MINMAX(x2,x6); int32x8_MINMAX(x3,x7); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x4,x6); int32x8_MINMAX(x5,x7); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8_MINMAX(x4,x5); int32x8_MINMAX(x6,x7); int32x8 a0 = _mm256_permute2x128_si256(x0,x1,0x20); int32x8 a1 = _mm256_permute2x128_si256(x0,x1,0x31); int32x8 a2 = _mm256_permute2x128_si256(x2,x3,0x20); int32x8 a3 = _mm256_permute2x128_si256(x2,x3,0x31); int32x8 a4 = _mm256_permute2x128_si256(x4,x5,0x20); int32x8 a5 = _mm256_permute2x128_si256(x4,x5,0x31); int32x8 a6 = _mm256_permute2x128_si256(x6,x7,0x20); int32x8 a7 = _mm256_permute2x128_si256(x6,x7,0x31); int32x8_MINMAX(a0,a1); int32x8_MINMAX(a2,a3); int32x8_MINMAX(a4,a5); int32x8_MINMAX(a6,a7); int32x8 b0 = _mm256_permute2x128_si256(a0,a1,0x20); int32x8 b1 = _mm256_permute2x128_si256(a0,a1,0x31); int32x8 b2 = _mm256_permute2x128_si256(a2,a3,0x20); int32x8 b3 = _mm256_permute2x128_si256(a2,a3,0x31); int32x8 b4 = _mm256_permute2x128_si256(a4,a5,0x20); int32x8 b5 = _mm256_permute2x128_si256(a4,a5,0x31); int32x8 b6 = _mm256_permute2x128_si256(a6,a7,0x20); int32x8 b7 = _mm256_permute2x128_si256(a6,a7,0x31); int32x8 c0 = _mm256_unpacklo_epi64(b0,b1); int32x8 c1 = _mm256_unpackhi_epi64(b0,b1); int32x8 c2 = _mm256_unpacklo_epi64(b2,b3); int32x8 c3 = _mm256_unpackhi_epi64(b2,b3); int32x8 c4 = _mm256_unpacklo_epi64(b4,b5); int32x8 c5 = _mm256_unpackhi_epi64(b4,b5); int32x8 c6 = _mm256_unpacklo_epi64(b6,b7); int32x8 c7 = _mm256_unpackhi_epi64(b6,b7); int32x8_MINMAX(c0,c1); int32x8_MINMAX(c2,c3); int32x8_MINMAX(c4,c5); int32x8_MINMAX(c6,c7); int32x8 d0 = _mm256_unpacklo_epi32(c0,c1); int32x8 d1 = _mm256_unpackhi_epi32(c0,c1); int32x8 d2 = _mm256_unpacklo_epi32(c2,c3); int32x8 d3 = _mm256_unpackhi_epi32(c2,c3); int32x8 d4 = _mm256_unpacklo_epi32(c4,c5); int32x8 d5 = _mm256_unpackhi_epi32(c4,c5); int32x8 d6 = _mm256_unpacklo_epi32(c6,c7); int32x8 d7 = _mm256_unpackhi_epi32(c6,c7); int32x8 e0 = _mm256_unpacklo_epi64(d0,d1); int32x8 e1 = _mm256_unpackhi_epi64(d0,d1); int32x8 e2 = _mm256_unpacklo_epi64(d2,d3); int32x8 e3 = _mm256_unpackhi_epi64(d2,d3); int32x8 e4 = _mm256_unpacklo_epi64(d4,d5); int32x8 e5 = _mm256_unpackhi_epi64(d4,d5); int32x8 e6 = _mm256_unpacklo_epi64(d6,d7); int32x8 e7 = _mm256_unpackhi_epi64(d6,d7); int32x8_MINMAX(e0,e1); int32x8_MINMAX(e2,e3); int32x8_MINMAX(e4,e5); int32x8_MINMAX(e6,e7); int32x8 f0 = _mm256_unpacklo_epi32(e0,e1); int32x8 f1 = _mm256_unpackhi_epi32(e0,e1); int32x8 f2 = _mm256_unpacklo_epi32(e2,e3); int32x8 f3 = _mm256_unpackhi_epi32(e2,e3); int32x8 f4 = _mm256_unpacklo_epi32(e4,e5); int32x8 f5 = _mm256_unpackhi_epi32(e4,e5); int32x8 f6 = _mm256_unpacklo_epi32(e6,e7); int32x8 f7 = _mm256_unpackhi_epi32(e6,e7); int32x8_store(&x[j],f0); int32x8_store(&x[j+8],f1); int32x8_store(&x[j+16],f2); int32x8_store(&x[j+24],f3); int32x8_store(&x[j+32],f4); int32x8_store(&x[j+40],f5); int32x8_store(&x[j+48],f6); int32x8_store(&x[j+56],f7); } minmax_vector(x + j,x + j + 32,n - 32 - j); goto continue16; } if (q == 16) { j = 0; continue16: for (;j + 32 <= n;j += 32) { int32x8 x0 = int32x8_load(&x[j]); int32x8 x1 = int32x8_load(&x[j+8]); int32x8 x2 = int32x8_load(&x[j+16]); int32x8 x3 = int32x8_load(&x[j+24]); int32x8_MINMAX(x0,x2); int32x8_MINMAX(x1,x3); int32x8_MINMAX(x0,x1); int32x8_MINMAX(x2,x3); int32x8 a0 = _mm256_permute2x128_si256(x0,x1,0x20); int32x8 a1 = _mm256_permute2x128_si256(x0,x1,0x31); int32x8 a2 = _mm256_permute2x128_si256(x2,x3,0x20); int32x8 a3 = _mm256_permute2x128_si256(x2,x3,0x31); int32x8_MINMAX(a0,a1); int32x8_MINMAX(a2,a3); int32x8 b0 = _mm256_permute2x128_si256(a0,a1,0x20); int32x8 b1 = _mm256_permute2x128_si256(a0,a1,0x31); int32x8 b2 = _mm256_permute2x128_si256(a2,a3,0x20); int32x8 b3 = _mm256_permute2x128_si256(a2,a3,0x31); int32x8 c0 = _mm256_unpacklo_epi64(b0,b1); int32x8 c1 = _mm256_unpackhi_epi64(b0,b1); int32x8 c2 = _mm256_unpacklo_epi64(b2,b3); int32x8 c3 = _mm256_unpackhi_epi64(b2,b3); int32x8_MINMAX(c0,c1); int32x8_MINMAX(c2,c3); int32x8 d0 = _mm256_unpacklo_epi32(c0,c1); int32x8 d1 = _mm256_unpackhi_epi32(c0,c1); int32x8 d2 = _mm256_unpacklo_epi32(c2,c3); int32x8 d3 = _mm256_unpackhi_epi32(c2,c3); int32x8 e0 = _mm256_unpacklo_epi64(d0,d1); int32x8 e1 = _mm256_unpackhi_epi64(d0,d1); int32x8 e2 = _mm256_unpacklo_epi64(d2,d3); int32x8 e3 = _mm256_unpackhi_epi64(d2,d3); int32x8_MINMAX(e0,e1); int32x8_MINMAX(e2,e3); int32x8 f0 = _mm256_unpacklo_epi32(e0,e1); int32x8 f1 = _mm256_unpackhi_epi32(e0,e1); int32x8 f2 = _mm256_unpacklo_epi32(e2,e3); int32x8 f3 = _mm256_unpackhi_epi32(e2,e3); int32x8_store(&x[j],f0); int32x8_store(&x[j+8],f1); int32x8_store(&x[j+16],f2); int32x8_store(&x[j+24],f3); } minmax_vector(x + j,x + j + 16,n - 16 - j); goto continue8; } /* q == 8 */ j = 0; continue8: for (;j + 16 <= n;j += 16) { int32x8 x0 = int32x8_load(&x[j]); int32x8 x1 = int32x8_load(&x[j+8]); int32x8_MINMAX(x0,x1); int32x8_store(&x[j],x0); int32x8_store(&x[j+8],x1); int32x8 a0 = _mm256_permute2x128_si256(x0,x1,0x20); /* x0123y0123 */ int32x8 a1 = _mm256_permute2x128_si256(x0,x1,0x31); /* x4567y4567 */ int32x8_MINMAX(a0,a1); int32x8 b0 = _mm256_permute2x128_si256(a0,a1,0x20); /* x01234567 */ int32x8 b1 = _mm256_permute2x128_si256(a0,a1,0x31); /* y01234567 */ int32x8 c0 = _mm256_unpacklo_epi64(b0,b1); /* x01y01x45y45 */ int32x8 c1 = _mm256_unpackhi_epi64(b0,b1); /* x23y23x67y67 */ int32x8_MINMAX(c0,c1); int32x8 d0 = _mm256_unpacklo_epi32(c0,c1); /* x02x13x46x57 */ int32x8 d1 = _mm256_unpackhi_epi32(c0,c1); /* y02y13y46y57 */ int32x8 e0 = _mm256_unpacklo_epi64(d0,d1); /* x02y02x46y46 */ int32x8 e1 = _mm256_unpackhi_epi64(d0,d1); /* x13y13x57y57 */ int32x8_MINMAX(e0,e1); int32x8 f0 = _mm256_unpacklo_epi32(e0,e1); /* x01234567 */ int32x8 f1 = _mm256_unpackhi_epi32(e0,e1); /* y01234567 */ int32x8_store(&x[j],f0); int32x8_store(&x[j+8],f1); } minmax_vector(x + j,x + j + 8,n - 8 - j); if (j + 8 <= n) { int32_MINMAX(x[j],x[j+4]); int32_MINMAX(x[j+1],x[j+5]); int32_MINMAX(x[j+2],x[j+6]); int32_MINMAX(x[j+3],x[j+7]); int32_MINMAX(x[j],x[j+2]); int32_MINMAX(x[j+1],x[j+3]); int32_MINMAX(x[j],x[j+1]); int32_MINMAX(x[j+2],x[j+3]); int32_MINMAX(x[j+4],x[j+6]); int32_MINMAX(x[j+5],x[j+7]); int32_MINMAX(x[j+4],x[j+5]); int32_MINMAX(x[j+6],x[j+7]); j += 8; } minmax_vector(x + j,x + j + 4,n - 4 - j); if (j + 4 <= n) { int32_MINMAX(x[j],x[j+2]); int32_MINMAX(x[j+1],x[j+3]); int32_MINMAX(x[j],x[j+1]); int32_MINMAX(x[j+2],x[j+3]); j += 4; } if (j + 3 <= n) int32_MINMAX(x[j],x[j+2]); if (j + 2 <= n) int32_MINMAX(x[j],x[j+1]); } void crypto_sort(void *array,long long n) { int32_sort(array,n); } libntruprime-20241021/crypto_sort/int32/portable4/0000755000000000000000000000000014705505552020413 5ustar rootrootlibntruprime-20241021/crypto_sort/int32/portable4/api.h0000777000000000000000000000000014705505552023347 2../avx2/api.hustar rootrootlibntruprime-20241021/crypto_sort/int32/portable4/sort.c0000644000000000000000000000245314705505550021550 0ustar rootroot#include "crypto_sort.h" #include "crypto_int32.h" #define int32 crypto_int32 #define int32_MINMAX(a,b) crypto_int32_minmax(&a,&b) void crypto_sort(void *array,long long n) { long long top,p,q,r,i,j; int32 *x = array; if (n < 2) return; top = 1; while (top < n - top) top += top; for (p = top;p >= 1;p >>= 1) { i = 0; while (i + 2 * p <= n) { for (j = i;j < i + p;++j) int32_MINMAX(x[j],x[j+p]); i += 2 * p; } for (j = i;j < n - p;++j) int32_MINMAX(x[j],x[j+p]); i = 0; j = 0; for (q = top;q > p;q >>= 1) { if (j != i) for (;;) { if (j == n - q) goto done; int32 a = x[j + p]; for (r = q;r > p;r >>= 1) int32_MINMAX(a,x[j + r]); x[j + p] = a; ++j; if (j == i + p) { i += 2 * p; break; } } while (i + p <= n - q) { for (j = i;j < i + p;++j) { int32 a = x[j + p]; for (r = q;r > p;r >>= 1) int32_MINMAX(a,x[j+r]); x[j + p] = a; } i += 2 * p; } /* now i + p > n - q */ j = i; while (j < n - q) { int32 a = x[j + p]; for (r = q;r > p;r >>= 1) int32_MINMAX(a,x[j+r]); x[j + p] = a; ++j; } done: ; } } } libntruprime-20241021/crypto_sort/uint32/0000755000000000000000000000000014705505550016702 5ustar rootrootlibntruprime-20241021/crypto_sort/uint32/useint32/0000755000000000000000000000000014705505552020360 5ustar rootrootlibntruprime-20241021/crypto_sort/uint32/useint32/api.h0000777000000000000000000000000014705505552024466 2../../int32/avx2/api.hustar rootrootlibntruprime-20241021/crypto_sort/uint32/useint32/sort.c0000644000000000000000000000061614705505550021514 0ustar rootroot#include "crypto_sort_int32.h" #include "crypto_sort.h" #include "crypto_uint32.h" /* can save time by vectorizing xor loops */ /* can save time by integrating xor loops with int32_sort */ void crypto_sort(void *array,long long n) { crypto_uint32 *x = array; long long j; for (j = 0;j < n;++j) x[j] ^= 0x80000000; crypto_sort_int32(array,n); for (j = 0;j < n;++j) x[j] ^= 0x80000000; } libntruprime-20241021/crypto_verify/0000755000000000000000000000000014705505550016073 5ustar rootrootlibntruprime-20241021/crypto_verify/1039/0000755000000000000000000000000014705505550016467 5ustar rootrootlibntruprime-20241021/crypto_verify/1039/avx/0000755000000000000000000000000014705505552017267 5ustar rootrootlibntruprime-20241021/crypto_verify/1039/avx/api.h0000644000000000000000000000003214705505550020202 0ustar rootroot#define CRYPTO_BYTES 1039 libntruprime-20241021/crypto_verify/1039/avx/architectures0000777000000000000000000000000014705505552030767 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_verify/1039/avx/verify.c0000777000000000000000000000000014705505552027024 2../../../src/verify/BYTES/avx/verify.custar rootrootlibntruprime-20241021/crypto_verify/1039/ref/0000755000000000000000000000000014705505552017245 5ustar rootrootlibntruprime-20241021/crypto_verify/1039/ref/api.h0000777000000000000000000000000014705505552022117 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_verify/1039/ref/verify.c0000777000000000000000000000000014705505552026760 2../../../src/verify/BYTES/ref/verify.custar rootrootlibntruprime-20241021/crypto_verify/1184/0000755000000000000000000000000014705505550016470 5ustar rootrootlibntruprime-20241021/crypto_verify/1184/avx/0000755000000000000000000000000014705505552017270 5ustar rootrootlibntruprime-20241021/crypto_verify/1184/avx/api.h0000644000000000000000000000003214705505550020203 0ustar rootroot#define CRYPTO_BYTES 1184 libntruprime-20241021/crypto_verify/1184/avx/architectures0000777000000000000000000000000014705505552030770 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_verify/1184/avx/verify.c0000777000000000000000000000000014705505552027025 2../../../src/verify/BYTES/avx/verify.custar rootrootlibntruprime-20241021/crypto_verify/1184/ref/0000755000000000000000000000000014705505552017246 5ustar rootrootlibntruprime-20241021/crypto_verify/1184/ref/api.h0000777000000000000000000000000014705505552022120 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_verify/1184/ref/verify.c0000777000000000000000000000000014705505552026761 2../../../src/verify/BYTES/ref/verify.custar rootrootlibntruprime-20241021/crypto_verify/1349/0000755000000000000000000000000014705505550016473 5ustar rootrootlibntruprime-20241021/crypto_verify/1349/avx/0000755000000000000000000000000014705505552017273 5ustar rootrootlibntruprime-20241021/crypto_verify/1349/avx/api.h0000644000000000000000000000003214705505550020206 0ustar rootroot#define CRYPTO_BYTES 1349 libntruprime-20241021/crypto_verify/1349/avx/architectures0000777000000000000000000000000014705505552030773 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_verify/1349/avx/verify.c0000777000000000000000000000000014705505552027030 2../../../src/verify/BYTES/avx/verify.custar rootrootlibntruprime-20241021/crypto_verify/1349/ref/0000755000000000000000000000000014705505552017251 5ustar rootrootlibntruprime-20241021/crypto_verify/1349/ref/api.h0000777000000000000000000000000014705505552022123 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_verify/1349/ref/verify.c0000777000000000000000000000000014705505552026764 2../../../src/verify/BYTES/ref/verify.custar rootrootlibntruprime-20241021/crypto_verify/1455/0000755000000000000000000000000014705505550016471 5ustar rootrootlibntruprime-20241021/crypto_verify/1455/avx/0000755000000000000000000000000014705505552017271 5ustar rootrootlibntruprime-20241021/crypto_verify/1455/avx/api.h0000644000000000000000000000003214705505550020204 0ustar rootroot#define CRYPTO_BYTES 1455 libntruprime-20241021/crypto_verify/1455/avx/architectures0000777000000000000000000000000014705505552030771 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_verify/1455/avx/verify.c0000777000000000000000000000000014705505552027026 2../../../src/verify/BYTES/avx/verify.custar rootrootlibntruprime-20241021/crypto_verify/1455/ref/0000755000000000000000000000000014705505552017247 5ustar rootrootlibntruprime-20241021/crypto_verify/1455/ref/api.h0000777000000000000000000000000014705505552022121 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_verify/1455/ref/verify.c0000777000000000000000000000000014705505552026762 2../../../src/verify/BYTES/ref/verify.custar rootrootlibntruprime-20241021/crypto_verify/1847/0000755000000000000000000000000014705505550016476 5ustar rootrootlibntruprime-20241021/crypto_verify/1847/avx/0000755000000000000000000000000014705505552017276 5ustar rootrootlibntruprime-20241021/crypto_verify/1847/avx/api.h0000644000000000000000000000003214705505550020211 0ustar rootroot#define CRYPTO_BYTES 1847 libntruprime-20241021/crypto_verify/1847/avx/architectures0000777000000000000000000000000014705505552030776 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_verify/1847/avx/verify.c0000777000000000000000000000000014705505552027033 2../../../src/verify/BYTES/avx/verify.custar rootrootlibntruprime-20241021/crypto_verify/1847/ref/0000755000000000000000000000000014705505552017254 5ustar rootrootlibntruprime-20241021/crypto_verify/1847/ref/api.h0000777000000000000000000000000014705505552022126 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_verify/1847/ref/verify.c0000777000000000000000000000000014705505552026767 2../../../src/verify/BYTES/ref/verify.custar rootrootlibntruprime-20241021/crypto_verify/897/0000755000000000000000000000000014705505550016422 5ustar rootrootlibntruprime-20241021/crypto_verify/897/avx/0000755000000000000000000000000014705505552017222 5ustar rootrootlibntruprime-20241021/crypto_verify/897/avx/api.h0000644000000000000000000000003114705505550020134 0ustar rootroot#define CRYPTO_BYTES 897 libntruprime-20241021/crypto_verify/897/avx/architectures0000777000000000000000000000000014705505552030722 2../../../src/decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/crypto_verify/897/avx/verify.c0000777000000000000000000000000014705505552026757 2../../../src/verify/BYTES/avx/verify.custar rootrootlibntruprime-20241021/crypto_verify/897/ref/0000755000000000000000000000000014705505552017200 5ustar rootrootlibntruprime-20241021/crypto_verify/897/ref/api.h0000777000000000000000000000000014705505552022052 2../avx/api.hustar rootrootlibntruprime-20241021/crypto_verify/897/ref/verify.c0000777000000000000000000000000014705505552026713 2../../../src/verify/BYTES/ref/verify.custar rootrootlibntruprime-20241021/cryptoint/0000755000000000000000000000000014705505550015222 5ustar rootrootlibntruprime-20241021/cryptoint/autogen0000755000000000000000000000007214705505550016611 0ustar rootroot#!/bin/sh ./create.py ./specialize.py rm -rf __pycache__ libntruprime-20241021/cryptoint/create.py0000755000000000000000000000516714705505550017053 0ustar rootroot#!/usr/bin/env python3 vars = 'k','l','p','q','r','s','x','y','z' with open('version') as f: version = f.read().strip() # ===== top csh = f'''/* auto-generated: cd cryptoint; ./autogen */ /* {version} */ #ifndef crypto_intN_h #define crypto_intN_h #include #define crypto_intN intN_t #define crypto_intN_unsigned uintN_t #define crypto_intN_optblocker namespace_intN_optblocker extern volatile crypto_intN crypto_intN_optblocker; ''' cuh = f'''/* auto-generated: cd cryptoint; ./autogen */ /* {version} */ #ifndef crypto_uintN_h #define crypto_uintN_h #include #define crypto_uintN uintN_t #define crypto_uintN_signed intN_t #define crypto_uintN_signed_optblocker namespace_uintN_signed_optblocker extern volatile crypto_uintN_signed crypto_uintN_signed_optblocker; ''' # ===== functions functions = [] with open('functions') as f: which,fun = 'both',None for line in f: if fun is None: if line.startswith('#'): continue if line.strip() == '': continue if line.strip() == 'SIGNED:': which = 'signed' continue if line.strip() == 'UNSIGNED:': which = 'unsigned' continue fun = '' fun += line if line.strip() == '}': functions += [(which,fun)] which,fun = 'both',None for which,fun in functions: if which in ('both','signed'): data = fun data = data.replace('TYPE','crypto_intN') data = data.replace('UNSIGNED','crypto_intN_unsigned') data = data.replace('SIGNED','crypto_intN') for v in vars: data = data.replace(v.upper(),'crypto_intN_'+v) csh += '__attribute__((unused))\n' csh += 'static inline\n' csh += data csh += '\n' if which in ('both','unsigned'): data = fun data = data.replace('TYPE','crypto_uintN') data = data.replace('UNSIGNED','crypto_uintN') data = data.replace('SIGNED','crypto_uintN_signed') for v in vars: data = data.replace(v.upper(),'crypto_uintN_'+v) cuh += '__attribute__((unused))\n' cuh += 'static inline\n' cuh += data cuh += '\n' # ===== bottom csh += '''#endif ''' cuh += '''#endif ''' # ===== ship it with open('crypto_intN.h','w') as f: f.write(csh) with open('crypto_uintN.h','w') as f: f.write(cuh) with open('intN_optblocker.c','w') as f: f.write(f'''/* auto-generated: cd cryptoint; ./autogen */ /* {version} */ #include "crypto_intN.h" volatile crypto_intN crypto_intN_optblocker = 0; ''') with open('uintN_optblocker.c','w') as f: f.write(f'''/* auto-generated: cd cryptoint; ./autogen */ /* {version} */ #include "crypto_uintN.h" volatile crypto_uintN_signed crypto_uintN_signed_optblocker = 0; ''') libntruprime-20241021/cryptoint/crypto_int16.h0000644000000000000000000005266714705505550017754 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_int16_h #define crypto_int16_h #include #define crypto_int16 int16_t #define crypto_int16_unsigned uint16_t #define crypto_int16_optblocker ntruprime_int16_optblocker extern volatile crypto_int16 crypto_int16_optblocker; __attribute__((unused)) static inline crypto_int16 crypto_int16_load(const unsigned char *crypto_int16_s) { crypto_int16 crypto_int16_z = 0; crypto_int16_z |= ((crypto_int16) (*crypto_int16_s++)) << 0; crypto_int16_z |= ((crypto_int16) (*crypto_int16_s++)) << 8; return crypto_int16_z; } __attribute__((unused)) static inline crypto_int16 crypto_int16_load_bigendian(const unsigned char *crypto_int16_s) { crypto_int16 crypto_int16_z = 0; crypto_int16_z |= ((crypto_int16) (*crypto_int16_s++)) << 8; crypto_int16_z |= ((crypto_int16) (*crypto_int16_s++)) << 0; return crypto_int16_z; } __attribute__((unused)) static inline void crypto_int16_store(unsigned char *crypto_int16_s,crypto_int16 crypto_int16_x) { *crypto_int16_s++ = crypto_int16_x >> 0; *crypto_int16_s++ = crypto_int16_x >> 8; } __attribute__((unused)) static inline void crypto_int16_store_bigendian(unsigned char *crypto_int16_s,crypto_int16 crypto_int16_x) { *crypto_int16_s++ = crypto_int16_x >> 8; *crypto_int16_s++ = crypto_int16_x >> 0; } __attribute__((unused)) static inline crypto_int16 crypto_int16_negative_mask(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarw $15,%0" : "+r"(crypto_int16_x) : : "cc"); return crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_y; __asm__ ("sbfx %w0,%w1,15,1" : "=r"(crypto_int16_y) : "r"(crypto_int16_x) : ); return crypto_int16_y; #else crypto_int16_x >>= 16-6; crypto_int16_x += crypto_int16_optblocker; crypto_int16_x >>= 5; return crypto_int16_x; #endif } __attribute__((unused)) static inline crypto_int16_unsigned crypto_int16_unsigned_topbit_01(crypto_int16_unsigned crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrw $15,%0" : "+r"(crypto_int16_x) : : "cc"); return crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_y; __asm__ ("ubfx %w0,%w1,15,1" : "=r"(crypto_int16_y) : "r"(crypto_int16_x) : ); return crypto_int16_y; #else crypto_int16_x >>= 16-6; crypto_int16_x += crypto_int16_optblocker; crypto_int16_x >>= 5; return crypto_int16_x; #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_negative_01(crypto_int16 crypto_int16_x) { return crypto_int16_unsigned_topbit_01(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_topbit_mask(crypto_int16 crypto_int16_x) { return crypto_int16_negative_mask(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_topbit_01(crypto_int16 crypto_int16_x) { return crypto_int16_unsigned_topbit_01(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_bottombit_mask(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andw $1,%0" : "+r"(crypto_int16_x) : : "cc"); return -crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_y; __asm__ ("sbfx %w0,%w1,0,1" : "=r"(crypto_int16_y) : "r"(crypto_int16_x) : ); return crypto_int16_y; #else crypto_int16_x &= 1 + crypto_int16_optblocker; return -crypto_int16_x; #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_bottombit_01(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andw $1,%0" : "+r"(crypto_int16_x) : : "cc"); return crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_y; __asm__ ("ubfx %w0,%w1,0,1" : "=r"(crypto_int16_y) : "r"(crypto_int16_x) : ); return crypto_int16_y; #else crypto_int16_x &= 1 + crypto_int16_optblocker; return crypto_int16_x; #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_bitinrangepublicpos_mask(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarw %%cl,%0" : "+r"(crypto_int16_x) : "c"(crypto_int16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxth %w0,%w0\n asr %w0,%w0,%w1" : "+&r"(crypto_int16_x) : "r"(crypto_int16_s) : ); #else crypto_int16_x >>= crypto_int16_s ^ crypto_int16_optblocker; #endif return crypto_int16_bottombit_mask(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_bitinrangepublicpos_01(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarw %%cl,%0" : "+r"(crypto_int16_x) : "c"(crypto_int16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxth %w0,%w0\n asr %w0,%w0,%w1" : "+&r"(crypto_int16_x) : "r"(crypto_int16_s) : ); #else crypto_int16_x >>= crypto_int16_s ^ crypto_int16_optblocker; #endif return crypto_int16_bottombit_01(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_shlmod(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16_s &= 15; __asm__ ("shlw %%cl,%0" : "+r"(crypto_int16_x) : "c"(crypto_int16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,15\n and %w1,%w1,65535\n lsl %w1,%w1,%w0" : "+&r"(crypto_int16_s), "+r"(crypto_int16_x) : : ); #else int crypto_int16_k, crypto_int16_l; for (crypto_int16_l = 0,crypto_int16_k = 1;crypto_int16_k < 16;++crypto_int16_l,crypto_int16_k *= 2) crypto_int16_x ^= (crypto_int16_x ^ (crypto_int16_x << crypto_int16_k)) & crypto_int16_bitinrangepublicpos_mask(crypto_int16_s,crypto_int16_l); #endif return crypto_int16_x; } __attribute__((unused)) static inline crypto_int16 crypto_int16_shrmod(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16_s &= 15; __asm__ ("sarw %%cl,%0" : "+r"(crypto_int16_x) : "c"(crypto_int16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,15\n sxth %w1,%w1\n asr %w1,%w1,%w0" : "+&r"(crypto_int16_s), "+r"(crypto_int16_x) : : ); #else int crypto_int16_k, crypto_int16_l; for (crypto_int16_l = 0,crypto_int16_k = 1;crypto_int16_k < 16;++crypto_int16_l,crypto_int16_k *= 2) crypto_int16_x ^= (crypto_int16_x ^ (crypto_int16_x >> crypto_int16_k)) & crypto_int16_bitinrangepublicpos_mask(crypto_int16_s,crypto_int16_l); #endif return crypto_int16_x; } __attribute__((unused)) static inline crypto_int16 crypto_int16_bitmod_mask(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_s) { crypto_int16_x = crypto_int16_shrmod(crypto_int16_x,crypto_int16_s); return crypto_int16_bottombit_mask(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_bitmod_01(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_s) { crypto_int16_x = crypto_int16_shrmod(crypto_int16_x,crypto_int16_s); return crypto_int16_bottombit_01(crypto_int16_x); } __attribute__((unused)) static inline crypto_int16 crypto_int16_nonzero_mask(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n testw %2,%2\n cmovnew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("tst %w1,65535\n csetm %w0,ne" : "=r"(crypto_int16_z) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #else crypto_int16_x |= -crypto_int16_x; return crypto_int16_negative_mask(crypto_int16_x); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_nonzero_01(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n testw %2,%2\n cmovnew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("tst %w1,65535\n cset %w0,ne" : "=r"(crypto_int16_z) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #else crypto_int16_x |= -crypto_int16_x; return crypto_int16_unsigned_topbit_01(crypto_int16_x); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_positive_mask(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n testw %2,%2\n cmovgw %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("sxth %w0,%w1\n cmp %w0,0\n csetm %w0,gt" : "=r"(crypto_int16_z) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #else crypto_int16 crypto_int16_z = -crypto_int16_x; crypto_int16_z ^= crypto_int16_x & crypto_int16_z; return crypto_int16_negative_mask(crypto_int16_z); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_positive_01(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n testw %2,%2\n cmovgw %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("sxth %w0,%w1\n cmp %w0,0\n cset %w0,gt" : "=r"(crypto_int16_z) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #else crypto_int16 crypto_int16_z = -crypto_int16_x; crypto_int16_z ^= crypto_int16_x & crypto_int16_z; return crypto_int16_unsigned_topbit_01(crypto_int16_z); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_zero_mask(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n testw %2,%2\n cmovew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("tst %w1,65535\n csetm %w0,eq" : "=r"(crypto_int16_z) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #else return ~crypto_int16_nonzero_mask(crypto_int16_x); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_zero_01(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n testw %2,%2\n cmovew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("tst %w1,65535\n cset %w0,eq" : "=r"(crypto_int16_z) : "r"(crypto_int16_x) : "cc"); return crypto_int16_z; #else return 1-crypto_int16_nonzero_01(crypto_int16_x); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_unequal_mask(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovnew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n csetm %w0,ne" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else return crypto_int16_nonzero_mask(crypto_int16_x ^ crypto_int16_y); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_unequal_01(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovnew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n cset %w0,ne" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else return crypto_int16_nonzero_01(crypto_int16_x ^ crypto_int16_y); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_equal_mask(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n csetm %w0,eq" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else return ~crypto_int16_unequal_mask(crypto_int16_x,crypto_int16_y); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_equal_01(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n cset %w0,eq" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else return 1-crypto_int16_unequal_01(crypto_int16_x,crypto_int16_y); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_min(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpw %1,%0\n cmovgw %1,%0" : "+r"(crypto_int16_x) : "r"(crypto_int16_y) : "cc"); return crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxth %w0,%w0\n cmp %w0,%w1,sxth\n csel %w0,%w0,%w1,lt" : "+&r"(crypto_int16_x) : "r"(crypto_int16_y) : "cc"); return crypto_int16_x; #else crypto_int16 crypto_int16_r = crypto_int16_y ^ crypto_int16_x; crypto_int16 crypto_int16_z = crypto_int16_y - crypto_int16_x; crypto_int16_z ^= crypto_int16_r & (crypto_int16_z ^ crypto_int16_y); crypto_int16_z = crypto_int16_negative_mask(crypto_int16_z); crypto_int16_z &= crypto_int16_r; return crypto_int16_x ^ crypto_int16_z; #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_max(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpw %1,%0\n cmovlw %1,%0" : "+r"(crypto_int16_x) : "r"(crypto_int16_y) : "cc"); return crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxth %w0,%w0\n cmp %w0,%w1,sxth\n csel %w0,%w1,%w0,lt" : "+&r"(crypto_int16_x) : "r"(crypto_int16_y) : "cc"); return crypto_int16_x; #else crypto_int16 crypto_int16_r = crypto_int16_y ^ crypto_int16_x; crypto_int16 crypto_int16_z = crypto_int16_y - crypto_int16_x; crypto_int16_z ^= crypto_int16_r & (crypto_int16_z ^ crypto_int16_y); crypto_int16_z = crypto_int16_negative_mask(crypto_int16_z); crypto_int16_z &= crypto_int16_r; return crypto_int16_y ^ crypto_int16_z; #endif } __attribute__((unused)) static inline void crypto_int16_minmax(crypto_int16 *crypto_int16_p,crypto_int16 *crypto_int16_q) { crypto_int16 crypto_int16_x = *crypto_int16_p; crypto_int16 crypto_int16_y = *crypto_int16_q; #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_z; __asm__ ("cmpw %2,%1\n movw %1,%0\n cmovgw %2,%1\n cmovgw %0,%2" : "=&r"(crypto_int16_z), "+&r"(crypto_int16_x), "+r"(crypto_int16_y) : : "cc"); *crypto_int16_p = crypto_int16_x; *crypto_int16_q = crypto_int16_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_r, crypto_int16_s; __asm__ ("sxth %w0,%w0\n cmp %w0,%w3,sxth\n csel %w1,%w0,%w3,lt\n csel %w2,%w3,%w0,lt" : "+&r"(crypto_int16_x), "=&r"(crypto_int16_r), "=r"(crypto_int16_s) : "r"(crypto_int16_y) : "cc"); *crypto_int16_p = crypto_int16_r; *crypto_int16_q = crypto_int16_s; #else crypto_int16 crypto_int16_r = crypto_int16_y ^ crypto_int16_x; crypto_int16 crypto_int16_z = crypto_int16_y - crypto_int16_x; crypto_int16_z ^= crypto_int16_r & (crypto_int16_z ^ crypto_int16_y); crypto_int16_z = crypto_int16_negative_mask(crypto_int16_z); crypto_int16_z &= crypto_int16_r; crypto_int16_x ^= crypto_int16_z; crypto_int16_y ^= crypto_int16_z; *crypto_int16_p = crypto_int16_x; *crypto_int16_q = crypto_int16_y; #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_smaller_mask(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovlw %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("sxth %w0,%w1\n cmp %w0,%w2,sxth\n csetm %w0,lt" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else crypto_int16 crypto_int16_r = crypto_int16_x ^ crypto_int16_y; crypto_int16 crypto_int16_z = crypto_int16_x - crypto_int16_y; crypto_int16_z ^= crypto_int16_r & (crypto_int16_z ^ crypto_int16_x); return crypto_int16_negative_mask(crypto_int16_z); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_smaller_01(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovlw %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("sxth %w0,%w1\n cmp %w0,%w2,sxth\n cset %w0,lt" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else crypto_int16 crypto_int16_r = crypto_int16_x ^ crypto_int16_y; crypto_int16 crypto_int16_z = crypto_int16_x - crypto_int16_y; crypto_int16_z ^= crypto_int16_r & (crypto_int16_z ^ crypto_int16_x); return crypto_int16_unsigned_topbit_01(crypto_int16_z); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_leq_mask(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovlew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("sxth %w0,%w1\n cmp %w0,%w2,sxth\n csetm %w0,le" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else return ~crypto_int16_smaller_mask(crypto_int16_y,crypto_int16_x); #endif } __attribute__((unused)) static inline crypto_int16 crypto_int16_leq_01(crypto_int16 crypto_int16_x,crypto_int16 crypto_int16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 crypto_int16_q,crypto_int16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovlew %1,%0" : "=&r"(crypto_int16_z), "=&r"(crypto_int16_q) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int16 crypto_int16_z; __asm__ ("sxth %w0,%w1\n cmp %w0,%w2,sxth\n cset %w0,le" : "=&r"(crypto_int16_z) : "r"(crypto_int16_x), "r"(crypto_int16_y) : "cc"); return crypto_int16_z; #else return 1-crypto_int16_smaller_01(crypto_int16_y,crypto_int16_x); #endif } __attribute__((unused)) static inline int crypto_int16_ones_num(crypto_int16 crypto_int16_x) { crypto_int16_unsigned crypto_int16_y = crypto_int16_x; const crypto_int16 C0 = 0x5555; const crypto_int16 C1 = 0x3333; const crypto_int16 C2 = 0x0f0f; crypto_int16_y -= ((crypto_int16_y >> 1) & C0); crypto_int16_y = (crypto_int16_y & C1) + ((crypto_int16_y >> 2) & C1); crypto_int16_y = (crypto_int16_y + (crypto_int16_y >> 4)) & C2; crypto_int16_y = (crypto_int16_y + (crypto_int16_y >> 8)) & 0xff; return crypto_int16_y; } __attribute__((unused)) static inline int crypto_int16_bottomzeros_num(crypto_int16 crypto_int16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int16 fallback = 16; __asm__ ("bsfw %0,%0\n cmovew %1,%0" : "+&r"(crypto_int16_x) : "r"(fallback) : "cc"); return crypto_int16_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_int16_y; __asm__ ("orr %w0,%w1,-65536\n rbit %w0,%w0\n clz %w0,%w0" : "=r"(crypto_int16_y) : "r"(crypto_int16_x) : ); return crypto_int16_y; #else crypto_int16 crypto_int16_y = crypto_int16_x ^ (crypto_int16_x-1); crypto_int16_y = ((crypto_int16) crypto_int16_y) >> 1; crypto_int16_y &= ~(crypto_int16_x & (((crypto_int16) 1) << (16-1))); return crypto_int16_ones_num(crypto_int16_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_int32.h0000644000000000000000000005267514705505550017751 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_int32_h #define crypto_int32_h #include #define crypto_int32 int32_t #define crypto_int32_unsigned uint32_t #define crypto_int32_optblocker ntruprime_int32_optblocker extern volatile crypto_int32 crypto_int32_optblocker; __attribute__((unused)) static inline crypto_int32 crypto_int32_load(const unsigned char *crypto_int32_s) { crypto_int32 crypto_int32_z = 0; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 0; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 8; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 16; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 24; return crypto_int32_z; } __attribute__((unused)) static inline crypto_int32 crypto_int32_load_bigendian(const unsigned char *crypto_int32_s) { crypto_int32 crypto_int32_z = 0; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 24; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 16; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 8; crypto_int32_z |= ((crypto_int32) (*crypto_int32_s++)) << 0; return crypto_int32_z; } __attribute__((unused)) static inline void crypto_int32_store(unsigned char *crypto_int32_s,crypto_int32 crypto_int32_x) { *crypto_int32_s++ = crypto_int32_x >> 0; *crypto_int32_s++ = crypto_int32_x >> 8; *crypto_int32_s++ = crypto_int32_x >> 16; *crypto_int32_s++ = crypto_int32_x >> 24; } __attribute__((unused)) static inline void crypto_int32_store_bigendian(unsigned char *crypto_int32_s,crypto_int32 crypto_int32_x) { *crypto_int32_s++ = crypto_int32_x >> 24; *crypto_int32_s++ = crypto_int32_x >> 16; *crypto_int32_s++ = crypto_int32_x >> 8; *crypto_int32_s++ = crypto_int32_x >> 0; } __attribute__((unused)) static inline crypto_int32 crypto_int32_negative_mask(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarl $31,%0" : "+r"(crypto_int32_x) : : "cc"); return crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_y; __asm__ ("asr %w0,%w1,31" : "=r"(crypto_int32_y) : "r"(crypto_int32_x) : ); return crypto_int32_y; #else crypto_int32_x >>= 32-6; crypto_int32_x += crypto_int32_optblocker; crypto_int32_x >>= 5; return crypto_int32_x; #endif } __attribute__((unused)) static inline crypto_int32_unsigned crypto_int32_unsigned_topbit_01(crypto_int32_unsigned crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrl $31,%0" : "+r"(crypto_int32_x) : : "cc"); return crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_y; __asm__ ("lsr %w0,%w1,31" : "=r"(crypto_int32_y) : "r"(crypto_int32_x) : ); return crypto_int32_y; #else crypto_int32_x >>= 32-6; crypto_int32_x += crypto_int32_optblocker; crypto_int32_x >>= 5; return crypto_int32_x; #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_negative_01(crypto_int32 crypto_int32_x) { return crypto_int32_unsigned_topbit_01(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_topbit_mask(crypto_int32 crypto_int32_x) { return crypto_int32_negative_mask(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_topbit_01(crypto_int32 crypto_int32_x) { return crypto_int32_unsigned_topbit_01(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_bottombit_mask(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andl $1,%0" : "+r"(crypto_int32_x) : : "cc"); return -crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_y; __asm__ ("sbfx %w0,%w1,0,1" : "=r"(crypto_int32_y) : "r"(crypto_int32_x) : ); return crypto_int32_y; #else crypto_int32_x &= 1 + crypto_int32_optblocker; return -crypto_int32_x; #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_bottombit_01(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andl $1,%0" : "+r"(crypto_int32_x) : : "cc"); return crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_y; __asm__ ("ubfx %w0,%w1,0,1" : "=r"(crypto_int32_y) : "r"(crypto_int32_x) : ); return crypto_int32_y; #else crypto_int32_x &= 1 + crypto_int32_optblocker; return crypto_int32_x; #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_bitinrangepublicpos_mask(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarl %%cl,%0" : "+r"(crypto_int32_x) : "c"(crypto_int32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("asr %w0,%w0,%w1" : "+r"(crypto_int32_x) : "r"(crypto_int32_s) : ); #else crypto_int32_x >>= crypto_int32_s ^ crypto_int32_optblocker; #endif return crypto_int32_bottombit_mask(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_bitinrangepublicpos_01(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarl %%cl,%0" : "+r"(crypto_int32_x) : "c"(crypto_int32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("asr %w0,%w0,%w1" : "+r"(crypto_int32_x) : "r"(crypto_int32_s) : ); #else crypto_int32_x >>= crypto_int32_s ^ crypto_int32_optblocker; #endif return crypto_int32_bottombit_01(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_shlmod(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shll %%cl,%0" : "+r"(crypto_int32_x) : "c"(crypto_int32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsl %w0,%w0,%w1" : "+r"(crypto_int32_x) : "r"(crypto_int32_s) : ); #else int crypto_int32_k, crypto_int32_l; for (crypto_int32_l = 0,crypto_int32_k = 1;crypto_int32_k < 32;++crypto_int32_l,crypto_int32_k *= 2) crypto_int32_x ^= (crypto_int32_x ^ (crypto_int32_x << crypto_int32_k)) & crypto_int32_bitinrangepublicpos_mask(crypto_int32_s,crypto_int32_l); #endif return crypto_int32_x; } __attribute__((unused)) static inline crypto_int32 crypto_int32_shrmod(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarl %%cl,%0" : "+r"(crypto_int32_x) : "c"(crypto_int32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("asr %w0,%w0,%w1" : "+r"(crypto_int32_x) : "r"(crypto_int32_s) : ); #else int crypto_int32_k, crypto_int32_l; for (crypto_int32_l = 0,crypto_int32_k = 1;crypto_int32_k < 32;++crypto_int32_l,crypto_int32_k *= 2) crypto_int32_x ^= (crypto_int32_x ^ (crypto_int32_x >> crypto_int32_k)) & crypto_int32_bitinrangepublicpos_mask(crypto_int32_s,crypto_int32_l); #endif return crypto_int32_x; } __attribute__((unused)) static inline crypto_int32 crypto_int32_bitmod_mask(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_s) { crypto_int32_x = crypto_int32_shrmod(crypto_int32_x,crypto_int32_s); return crypto_int32_bottombit_mask(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_bitmod_01(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_s) { crypto_int32_x = crypto_int32_shrmod(crypto_int32_x,crypto_int32_s); return crypto_int32_bottombit_01(crypto_int32_x); } __attribute__((unused)) static inline crypto_int32 crypto_int32_nonzero_mask(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n testl %2,%2\n cmovnel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,0\n csetm %w0,ne" : "=r"(crypto_int32_z) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #else crypto_int32_x |= -crypto_int32_x; return crypto_int32_negative_mask(crypto_int32_x); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_nonzero_01(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n testl %2,%2\n cmovnel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,0\n cset %w0,ne" : "=r"(crypto_int32_z) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #else crypto_int32_x |= -crypto_int32_x; return crypto_int32_unsigned_topbit_01(crypto_int32_x); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_positive_mask(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n testl %2,%2\n cmovgl %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,0\n csetm %w0,gt" : "=r"(crypto_int32_z) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #else crypto_int32 crypto_int32_z = -crypto_int32_x; crypto_int32_z ^= crypto_int32_x & crypto_int32_z; return crypto_int32_negative_mask(crypto_int32_z); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_positive_01(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n testl %2,%2\n cmovgl %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,0\n cset %w0,gt" : "=r"(crypto_int32_z) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #else crypto_int32 crypto_int32_z = -crypto_int32_x; crypto_int32_z ^= crypto_int32_x & crypto_int32_z; return crypto_int32_unsigned_topbit_01(crypto_int32_z); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_zero_mask(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n testl %2,%2\n cmovel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,0\n csetm %w0,eq" : "=r"(crypto_int32_z) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #else return ~crypto_int32_nonzero_mask(crypto_int32_x); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_zero_01(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n testl %2,%2\n cmovel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,0\n cset %w0,eq" : "=r"(crypto_int32_z) : "r"(crypto_int32_x) : "cc"); return crypto_int32_z; #else return 1-crypto_int32_nonzero_01(crypto_int32_x); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_unequal_mask(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovnel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,ne" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else return crypto_int32_nonzero_mask(crypto_int32_x ^ crypto_int32_y); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_unequal_01(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovnel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n cset %w0,ne" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else return crypto_int32_nonzero_01(crypto_int32_x ^ crypto_int32_y); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_equal_mask(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,eq" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else return ~crypto_int32_unequal_mask(crypto_int32_x,crypto_int32_y); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_equal_01(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n cset %w0,eq" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else return 1-crypto_int32_unequal_01(crypto_int32_x,crypto_int32_y); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_min(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpl %1,%0\n cmovgl %1,%0" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc"); return crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %w0,%w1\n csel %w0,%w0,%w1,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc"); return crypto_int32_x; #else crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x; crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x; crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y); crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z); crypto_int32_z &= crypto_int32_r; return crypto_int32_x ^ crypto_int32_z; #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_max(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpl %1,%0\n cmovll %1,%0" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc"); return crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %w0,%w1\n csel %w0,%w1,%w0,lt" : "+r"(crypto_int32_x) : "r"(crypto_int32_y) : "cc"); return crypto_int32_x; #else crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x; crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x; crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y); crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z); crypto_int32_z &= crypto_int32_r; return crypto_int32_y ^ crypto_int32_z; #endif } __attribute__((unused)) static inline void crypto_int32_minmax(crypto_int32 *crypto_int32_p,crypto_int32 *crypto_int32_q) { crypto_int32 crypto_int32_x = *crypto_int32_p; crypto_int32 crypto_int32_y = *crypto_int32_q; #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_z; __asm__ ("cmpl %2,%1\n movl %1,%0\n cmovgl %2,%1\n cmovgl %0,%2" : "=&r"(crypto_int32_z), "+&r"(crypto_int32_x), "+r"(crypto_int32_y) : : "cc"); *crypto_int32_p = crypto_int32_x; *crypto_int32_q = crypto_int32_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_r, crypto_int32_s; __asm__ ("cmp %w2,%w3\n csel %w0,%w2,%w3,lt\n csel %w1,%w3,%w2,lt" : "=&r"(crypto_int32_r), "=r"(crypto_int32_s) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); *crypto_int32_p = crypto_int32_r; *crypto_int32_q = crypto_int32_s; #else crypto_int32 crypto_int32_r = crypto_int32_y ^ crypto_int32_x; crypto_int32 crypto_int32_z = crypto_int32_y - crypto_int32_x; crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_y); crypto_int32_z = crypto_int32_negative_mask(crypto_int32_z); crypto_int32_z &= crypto_int32_r; crypto_int32_x ^= crypto_int32_z; crypto_int32_y ^= crypto_int32_z; *crypto_int32_p = crypto_int32_x; *crypto_int32_q = crypto_int32_y; #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_smaller_mask(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovll %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,lt" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else crypto_int32 crypto_int32_r = crypto_int32_x ^ crypto_int32_y; crypto_int32 crypto_int32_z = crypto_int32_x - crypto_int32_y; crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_x); return crypto_int32_negative_mask(crypto_int32_z); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_smaller_01(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovll %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n cset %w0,lt" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else crypto_int32 crypto_int32_r = crypto_int32_x ^ crypto_int32_y; crypto_int32 crypto_int32_z = crypto_int32_x - crypto_int32_y; crypto_int32_z ^= crypto_int32_r & (crypto_int32_z ^ crypto_int32_x); return crypto_int32_unsigned_topbit_01(crypto_int32_z); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_leq_mask(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovlel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,le" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else return ~crypto_int32_smaller_mask(crypto_int32_y,crypto_int32_x); #endif } __attribute__((unused)) static inline crypto_int32 crypto_int32_leq_01(crypto_int32 crypto_int32_x,crypto_int32 crypto_int32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 crypto_int32_q,crypto_int32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovlel %1,%0" : "=&r"(crypto_int32_z), "=&r"(crypto_int32_q) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int32 crypto_int32_z; __asm__ ("cmp %w1,%w2\n cset %w0,le" : "=r"(crypto_int32_z) : "r"(crypto_int32_x), "r"(crypto_int32_y) : "cc"); return crypto_int32_z; #else return 1-crypto_int32_smaller_01(crypto_int32_y,crypto_int32_x); #endif } __attribute__((unused)) static inline int crypto_int32_ones_num(crypto_int32 crypto_int32_x) { crypto_int32_unsigned crypto_int32_y = crypto_int32_x; const crypto_int32 C0 = 0x55555555; const crypto_int32 C1 = 0x33333333; const crypto_int32 C2 = 0x0f0f0f0f; crypto_int32_y -= ((crypto_int32_y >> 1) & C0); crypto_int32_y = (crypto_int32_y & C1) + ((crypto_int32_y >> 2) & C1); crypto_int32_y = (crypto_int32_y + (crypto_int32_y >> 4)) & C2; crypto_int32_y += crypto_int32_y >> 8; crypto_int32_y = (crypto_int32_y + (crypto_int32_y >> 16)) & 0xff; return crypto_int32_y; } __attribute__((unused)) static inline int crypto_int32_bottomzeros_num(crypto_int32 crypto_int32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int32 fallback = 32; __asm__ ("bsfl %0,%0\n cmovel %1,%0" : "+&r"(crypto_int32_x) : "r"(fallback) : "cc"); return crypto_int32_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_int32_y; __asm__ ("rbit %w0,%w1\n clz %w0,%w0" : "=r"(crypto_int32_y) : "r"(crypto_int32_x) : ); return crypto_int32_y; #else crypto_int32 crypto_int32_y = crypto_int32_x ^ (crypto_int32_x-1); crypto_int32_y = ((crypto_int32) crypto_int32_y) >> 1; crypto_int32_y &= ~(crypto_int32_x & (((crypto_int32) 1) << (32-1))); return crypto_int32_ones_num(crypto_int32_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_int64.h0000644000000000000000000005442114705505550017745 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_int64_h #define crypto_int64_h #include #define crypto_int64 int64_t #define crypto_int64_unsigned uint64_t #define crypto_int64_optblocker ntruprime_int64_optblocker extern volatile crypto_int64 crypto_int64_optblocker; __attribute__((unused)) static inline crypto_int64 crypto_int64_load(const unsigned char *crypto_int64_s) { crypto_int64 crypto_int64_z = 0; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 0; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 8; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 16; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 24; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 32; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 40; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 48; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 56; return crypto_int64_z; } __attribute__((unused)) static inline crypto_int64 crypto_int64_load_bigendian(const unsigned char *crypto_int64_s) { crypto_int64 crypto_int64_z = 0; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 56; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 48; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 40; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 32; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 24; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 16; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 8; crypto_int64_z |= ((crypto_int64) (*crypto_int64_s++)) << 0; return crypto_int64_z; } __attribute__((unused)) static inline void crypto_int64_store(unsigned char *crypto_int64_s,crypto_int64 crypto_int64_x) { *crypto_int64_s++ = crypto_int64_x >> 0; *crypto_int64_s++ = crypto_int64_x >> 8; *crypto_int64_s++ = crypto_int64_x >> 16; *crypto_int64_s++ = crypto_int64_x >> 24; *crypto_int64_s++ = crypto_int64_x >> 32; *crypto_int64_s++ = crypto_int64_x >> 40; *crypto_int64_s++ = crypto_int64_x >> 48; *crypto_int64_s++ = crypto_int64_x >> 56; } __attribute__((unused)) static inline void crypto_int64_store_bigendian(unsigned char *crypto_int64_s,crypto_int64 crypto_int64_x) { *crypto_int64_s++ = crypto_int64_x >> 56; *crypto_int64_s++ = crypto_int64_x >> 48; *crypto_int64_s++ = crypto_int64_x >> 40; *crypto_int64_s++ = crypto_int64_x >> 32; *crypto_int64_s++ = crypto_int64_x >> 24; *crypto_int64_s++ = crypto_int64_x >> 16; *crypto_int64_s++ = crypto_int64_x >> 8; *crypto_int64_s++ = crypto_int64_x >> 0; } __attribute__((unused)) static inline crypto_int64 crypto_int64_negative_mask(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarq $63,%0" : "+r"(crypto_int64_x) : : "cc"); return crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_y; __asm__ ("asr %0,%1,63" : "=r"(crypto_int64_y) : "r"(crypto_int64_x) : ); return crypto_int64_y; #else crypto_int64_x >>= 64-6; crypto_int64_x += crypto_int64_optblocker; crypto_int64_x >>= 5; return crypto_int64_x; #endif } __attribute__((unused)) static inline crypto_int64_unsigned crypto_int64_unsigned_topbit_01(crypto_int64_unsigned crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrq $63,%0" : "+r"(crypto_int64_x) : : "cc"); return crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_y; __asm__ ("lsr %0,%1,63" : "=r"(crypto_int64_y) : "r"(crypto_int64_x) : ); return crypto_int64_y; #else crypto_int64_x >>= 64-6; crypto_int64_x += crypto_int64_optblocker; crypto_int64_x >>= 5; return crypto_int64_x; #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_negative_01(crypto_int64 crypto_int64_x) { return crypto_int64_unsigned_topbit_01(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_topbit_mask(crypto_int64 crypto_int64_x) { return crypto_int64_negative_mask(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_topbit_01(crypto_int64 crypto_int64_x) { return crypto_int64_unsigned_topbit_01(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_bottombit_mask(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andq $1,%0" : "+r"(crypto_int64_x) : : "cc"); return -crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_y; __asm__ ("sbfx %0,%1,0,1" : "=r"(crypto_int64_y) : "r"(crypto_int64_x) : ); return crypto_int64_y; #else crypto_int64_x &= 1 + crypto_int64_optblocker; return -crypto_int64_x; #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_bottombit_01(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andq $1,%0" : "+r"(crypto_int64_x) : : "cc"); return crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_y; __asm__ ("ubfx %0,%1,0,1" : "=r"(crypto_int64_y) : "r"(crypto_int64_x) : ); return crypto_int64_y; #else crypto_int64_x &= 1 + crypto_int64_optblocker; return crypto_int64_x; #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_bitinrangepublicpos_mask(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarq %%cl,%0" : "+r"(crypto_int64_x) : "c"(crypto_int64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("asr %0,%0,%1" : "+r"(crypto_int64_x) : "r"(crypto_int64_s) : ); #else crypto_int64_x >>= crypto_int64_s ^ crypto_int64_optblocker; #endif return crypto_int64_bottombit_mask(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_bitinrangepublicpos_01(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarq %%cl,%0" : "+r"(crypto_int64_x) : "c"(crypto_int64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("asr %0,%0,%1" : "+r"(crypto_int64_x) : "r"(crypto_int64_s) : ); #else crypto_int64_x >>= crypto_int64_s ^ crypto_int64_optblocker; #endif return crypto_int64_bottombit_01(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_shlmod(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shlq %%cl,%0" : "+r"(crypto_int64_x) : "c"(crypto_int64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsl %0,%0,%1" : "+r"(crypto_int64_x) : "r"(crypto_int64_s) : ); #else int crypto_int64_k, crypto_int64_l; for (crypto_int64_l = 0,crypto_int64_k = 1;crypto_int64_k < 64;++crypto_int64_l,crypto_int64_k *= 2) crypto_int64_x ^= (crypto_int64_x ^ (crypto_int64_x << crypto_int64_k)) & crypto_int64_bitinrangepublicpos_mask(crypto_int64_s,crypto_int64_l); #endif return crypto_int64_x; } __attribute__((unused)) static inline crypto_int64 crypto_int64_shrmod(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarq %%cl,%0" : "+r"(crypto_int64_x) : "c"(crypto_int64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("asr %0,%0,%1" : "+r"(crypto_int64_x) : "r"(crypto_int64_s) : ); #else int crypto_int64_k, crypto_int64_l; for (crypto_int64_l = 0,crypto_int64_k = 1;crypto_int64_k < 64;++crypto_int64_l,crypto_int64_k *= 2) crypto_int64_x ^= (crypto_int64_x ^ (crypto_int64_x >> crypto_int64_k)) & crypto_int64_bitinrangepublicpos_mask(crypto_int64_s,crypto_int64_l); #endif return crypto_int64_x; } __attribute__((unused)) static inline crypto_int64 crypto_int64_bitmod_mask(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_s) { crypto_int64_x = crypto_int64_shrmod(crypto_int64_x,crypto_int64_s); return crypto_int64_bottombit_mask(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_bitmod_01(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_s) { crypto_int64_x = crypto_int64_shrmod(crypto_int64_x,crypto_int64_s); return crypto_int64_bottombit_01(crypto_int64_x); } __attribute__((unused)) static inline crypto_int64 crypto_int64_nonzero_mask(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n testq %2,%2\n cmovneq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,0\n csetm %0,ne" : "=r"(crypto_int64_z) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #else crypto_int64_x |= -crypto_int64_x; return crypto_int64_negative_mask(crypto_int64_x); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_nonzero_01(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n testq %2,%2\n cmovneq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,0\n cset %0,ne" : "=r"(crypto_int64_z) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #else crypto_int64_x |= -crypto_int64_x; return crypto_int64_unsigned_topbit_01(crypto_int64_x); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_positive_mask(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n testq %2,%2\n cmovgq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,0\n csetm %0,gt" : "=r"(crypto_int64_z) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #else crypto_int64 crypto_int64_z = -crypto_int64_x; crypto_int64_z ^= crypto_int64_x & crypto_int64_z; return crypto_int64_negative_mask(crypto_int64_z); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_positive_01(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n testq %2,%2\n cmovgq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,0\n cset %0,gt" : "=r"(crypto_int64_z) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #else crypto_int64 crypto_int64_z = -crypto_int64_x; crypto_int64_z ^= crypto_int64_x & crypto_int64_z; return crypto_int64_unsigned_topbit_01(crypto_int64_z); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_zero_mask(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n testq %2,%2\n cmoveq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,0\n csetm %0,eq" : "=r"(crypto_int64_z) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #else return ~crypto_int64_nonzero_mask(crypto_int64_x); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_zero_01(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n testq %2,%2\n cmoveq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,0\n cset %0,eq" : "=r"(crypto_int64_z) : "r"(crypto_int64_x) : "cc"); return crypto_int64_z; #else return 1-crypto_int64_nonzero_01(crypto_int64_x); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_unequal_mask(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmovneq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n csetm %0,ne" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else return crypto_int64_nonzero_mask(crypto_int64_x ^ crypto_int64_y); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_unequal_01(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmovneq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n cset %0,ne" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else return crypto_int64_nonzero_01(crypto_int64_x ^ crypto_int64_y); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_equal_mask(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmoveq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n csetm %0,eq" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else return ~crypto_int64_unequal_mask(crypto_int64_x,crypto_int64_y); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_equal_01(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmoveq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n cset %0,eq" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else return 1-crypto_int64_unequal_01(crypto_int64_x,crypto_int64_y); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_min(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpq %1,%0\n cmovgq %1,%0" : "+r"(crypto_int64_x) : "r"(crypto_int64_y) : "cc"); return crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %0,%1\n csel %0,%0,%1,lt" : "+r"(crypto_int64_x) : "r"(crypto_int64_y) : "cc"); return crypto_int64_x; #else crypto_int64 crypto_int64_r = crypto_int64_y ^ crypto_int64_x; crypto_int64 crypto_int64_z = crypto_int64_y - crypto_int64_x; crypto_int64_z ^= crypto_int64_r & (crypto_int64_z ^ crypto_int64_y); crypto_int64_z = crypto_int64_negative_mask(crypto_int64_z); crypto_int64_z &= crypto_int64_r; return crypto_int64_x ^ crypto_int64_z; #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_max(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpq %1,%0\n cmovlq %1,%0" : "+r"(crypto_int64_x) : "r"(crypto_int64_y) : "cc"); return crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %0,%1\n csel %0,%1,%0,lt" : "+r"(crypto_int64_x) : "r"(crypto_int64_y) : "cc"); return crypto_int64_x; #else crypto_int64 crypto_int64_r = crypto_int64_y ^ crypto_int64_x; crypto_int64 crypto_int64_z = crypto_int64_y - crypto_int64_x; crypto_int64_z ^= crypto_int64_r & (crypto_int64_z ^ crypto_int64_y); crypto_int64_z = crypto_int64_negative_mask(crypto_int64_z); crypto_int64_z &= crypto_int64_r; return crypto_int64_y ^ crypto_int64_z; #endif } __attribute__((unused)) static inline void crypto_int64_minmax(crypto_int64 *crypto_int64_p,crypto_int64 *crypto_int64_q) { crypto_int64 crypto_int64_x = *crypto_int64_p; crypto_int64 crypto_int64_y = *crypto_int64_q; #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_z; __asm__ ("cmpq %2,%1\n movq %1,%0\n cmovgq %2,%1\n cmovgq %0,%2" : "=&r"(crypto_int64_z), "+&r"(crypto_int64_x), "+r"(crypto_int64_y) : : "cc"); *crypto_int64_p = crypto_int64_x; *crypto_int64_q = crypto_int64_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_r, crypto_int64_s; __asm__ ("cmp %2,%3\n csel %0,%2,%3,lt\n csel %1,%3,%2,lt" : "=&r"(crypto_int64_r), "=r"(crypto_int64_s) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); *crypto_int64_p = crypto_int64_r; *crypto_int64_q = crypto_int64_s; #else crypto_int64 crypto_int64_r = crypto_int64_y ^ crypto_int64_x; crypto_int64 crypto_int64_z = crypto_int64_y - crypto_int64_x; crypto_int64_z ^= crypto_int64_r & (crypto_int64_z ^ crypto_int64_y); crypto_int64_z = crypto_int64_negative_mask(crypto_int64_z); crypto_int64_z &= crypto_int64_r; crypto_int64_x ^= crypto_int64_z; crypto_int64_y ^= crypto_int64_z; *crypto_int64_p = crypto_int64_x; *crypto_int64_q = crypto_int64_y; #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_smaller_mask(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmovlq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n csetm %0,lt" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else crypto_int64 crypto_int64_r = crypto_int64_x ^ crypto_int64_y; crypto_int64 crypto_int64_z = crypto_int64_x - crypto_int64_y; crypto_int64_z ^= crypto_int64_r & (crypto_int64_z ^ crypto_int64_x); return crypto_int64_negative_mask(crypto_int64_z); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_smaller_01(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmovlq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n cset %0,lt" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else crypto_int64 crypto_int64_r = crypto_int64_x ^ crypto_int64_y; crypto_int64 crypto_int64_z = crypto_int64_x - crypto_int64_y; crypto_int64_z ^= crypto_int64_r & (crypto_int64_z ^ crypto_int64_x); return crypto_int64_unsigned_topbit_01(crypto_int64_z); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_leq_mask(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmovleq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n csetm %0,le" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else return ~crypto_int64_smaller_mask(crypto_int64_y,crypto_int64_x); #endif } __attribute__((unused)) static inline crypto_int64 crypto_int64_leq_01(crypto_int64 crypto_int64_x,crypto_int64 crypto_int64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 crypto_int64_q,crypto_int64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmovleq %1,%0" : "=&r"(crypto_int64_z), "=&r"(crypto_int64_q) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int64 crypto_int64_z; __asm__ ("cmp %1,%2\n cset %0,le" : "=r"(crypto_int64_z) : "r"(crypto_int64_x), "r"(crypto_int64_y) : "cc"); return crypto_int64_z; #else return 1-crypto_int64_smaller_01(crypto_int64_y,crypto_int64_x); #endif } __attribute__((unused)) static inline int crypto_int64_ones_num(crypto_int64 crypto_int64_x) { crypto_int64_unsigned crypto_int64_y = crypto_int64_x; const crypto_int64 C0 = 0x5555555555555555; const crypto_int64 C1 = 0x3333333333333333; const crypto_int64 C2 = 0x0f0f0f0f0f0f0f0f; crypto_int64_y -= ((crypto_int64_y >> 1) & C0); crypto_int64_y = (crypto_int64_y & C1) + ((crypto_int64_y >> 2) & C1); crypto_int64_y = (crypto_int64_y + (crypto_int64_y >> 4)) & C2; crypto_int64_y += crypto_int64_y >> 8; crypto_int64_y += crypto_int64_y >> 16; crypto_int64_y = (crypto_int64_y + (crypto_int64_y >> 32)) & 0xff; return crypto_int64_y; } __attribute__((unused)) static inline int crypto_int64_bottomzeros_num(crypto_int64 crypto_int64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int64 fallback = 64; __asm__ ("bsfq %0,%0\n cmoveq %1,%0" : "+&r"(crypto_int64_x) : "r"(fallback) : "cc"); return crypto_int64_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_int64_y; __asm__ ("rbit %0,%1\n clz %0,%0" : "=r"(crypto_int64_y) : "r"(crypto_int64_x) : ); return crypto_int64_y; #else crypto_int64 crypto_int64_y = crypto_int64_x ^ (crypto_int64_x-1); crypto_int64_y = ((crypto_int64) crypto_int64_y) >> 1; crypto_int64_y &= ~(crypto_int64_x & (((crypto_int64) 1) << (64-1))); return crypto_int64_ones_num(crypto_int64_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_int8.h0000644000000000000000000005505514705505550017667 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_int8_h #define crypto_int8_h #include #define crypto_int8 int8_t #define crypto_int8_unsigned uint8_t #define crypto_int8_optblocker ntruprime_int8_optblocker extern volatile crypto_int8 crypto_int8_optblocker; __attribute__((unused)) static inline crypto_int8 crypto_int8_load(const unsigned char *crypto_int8_s) { crypto_int8 crypto_int8_z = 0; crypto_int8_z |= ((crypto_int8) (*crypto_int8_s++)) << 0; return crypto_int8_z; } __attribute__((unused)) static inline crypto_int8 crypto_int8_load_bigendian(const unsigned char *crypto_int8_s) { crypto_int8 crypto_int8_z = 0; crypto_int8_z |= ((crypto_int8) (*crypto_int8_s++)) << 0; return crypto_int8_z; } __attribute__((unused)) static inline void crypto_int8_store(unsigned char *crypto_int8_s,crypto_int8 crypto_int8_x) { *crypto_int8_s++ = crypto_int8_x >> 0; } __attribute__((unused)) static inline void crypto_int8_store_bigendian(unsigned char *crypto_int8_s,crypto_int8 crypto_int8_x) { *crypto_int8_s++ = crypto_int8_x >> 0; } __attribute__((unused)) static inline crypto_int8 crypto_int8_negative_mask(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarb $7,%0" : "+r"(crypto_int8_x) : : "cc"); return crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_y; __asm__ ("sbfx %w0,%w1,7,1" : "=r"(crypto_int8_y) : "r"(crypto_int8_x) : ); return crypto_int8_y; #else crypto_int8_x >>= 8-6; crypto_int8_x += crypto_int8_optblocker; crypto_int8_x >>= 5; return crypto_int8_x; #endif } __attribute__((unused)) static inline crypto_int8_unsigned crypto_int8_unsigned_topbit_01(crypto_int8_unsigned crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrb $7,%0" : "+r"(crypto_int8_x) : : "cc"); return crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_y; __asm__ ("ubfx %w0,%w1,7,1" : "=r"(crypto_int8_y) : "r"(crypto_int8_x) : ); return crypto_int8_y; #else crypto_int8_x >>= 8-6; crypto_int8_x += crypto_int8_optblocker; crypto_int8_x >>= 5; return crypto_int8_x; #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_negative_01(crypto_int8 crypto_int8_x) { return crypto_int8_unsigned_topbit_01(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_topbit_mask(crypto_int8 crypto_int8_x) { return crypto_int8_negative_mask(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_topbit_01(crypto_int8 crypto_int8_x) { return crypto_int8_unsigned_topbit_01(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_bottombit_mask(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andb $1,%0" : "+r"(crypto_int8_x) : : "cc"); return -crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_y; __asm__ ("sbfx %w0,%w1,0,1" : "=r"(crypto_int8_y) : "r"(crypto_int8_x) : ); return crypto_int8_y; #else crypto_int8_x &= 1 + crypto_int8_optblocker; return -crypto_int8_x; #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_bottombit_01(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andb $1,%0" : "+r"(crypto_int8_x) : : "cc"); return crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_y; __asm__ ("ubfx %w0,%w1,0,1" : "=r"(crypto_int8_y) : "r"(crypto_int8_x) : ); return crypto_int8_y; #else crypto_int8_x &= 1 + crypto_int8_optblocker; return crypto_int8_x; #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_bitinrangepublicpos_mask(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarb %%cl,%0" : "+r"(crypto_int8_x) : "c"(crypto_int8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxtb %w0,%w0\n asr %w0,%w0,%w1" : "+&r"(crypto_int8_x) : "r"(crypto_int8_s) : ); #else crypto_int8_x >>= crypto_int8_s ^ crypto_int8_optblocker; #endif return crypto_int8_bottombit_mask(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_bitinrangepublicpos_01(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarb %%cl,%0" : "+r"(crypto_int8_x) : "c"(crypto_int8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxtb %w0,%w0\n asr %w0,%w0,%w1" : "+&r"(crypto_int8_x) : "r"(crypto_int8_s) : ); #else crypto_int8_x >>= crypto_int8_s ^ crypto_int8_optblocker; #endif return crypto_int8_bottombit_01(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_shlmod(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8_s &= 7; __asm__ ("shlb %%cl,%0" : "+r"(crypto_int8_x) : "c"(crypto_int8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,7\n and %w1,%w1,255\n lsl %w1,%w1,%w0" : "+&r"(crypto_int8_s), "+r"(crypto_int8_x) : : ); #else int crypto_int8_k, crypto_int8_l; for (crypto_int8_l = 0,crypto_int8_k = 1;crypto_int8_k < 8;++crypto_int8_l,crypto_int8_k *= 2) crypto_int8_x ^= (crypto_int8_x ^ (crypto_int8_x << crypto_int8_k)) & crypto_int8_bitinrangepublicpos_mask(crypto_int8_s,crypto_int8_l); #endif return crypto_int8_x; } __attribute__((unused)) static inline crypto_int8 crypto_int8_shrmod(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8_s &= 7; __asm__ ("sarb %%cl,%0" : "+r"(crypto_int8_x) : "c"(crypto_int8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,7\n sxtb %w1,%w1\n asr %w1,%w1,%w0" : "+&r"(crypto_int8_s), "+r"(crypto_int8_x) : : ); #else int crypto_int8_k, crypto_int8_l; for (crypto_int8_l = 0,crypto_int8_k = 1;crypto_int8_k < 8;++crypto_int8_l,crypto_int8_k *= 2) crypto_int8_x ^= (crypto_int8_x ^ (crypto_int8_x >> crypto_int8_k)) & crypto_int8_bitinrangepublicpos_mask(crypto_int8_s,crypto_int8_l); #endif return crypto_int8_x; } __attribute__((unused)) static inline crypto_int8 crypto_int8_bitmod_mask(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_s) { crypto_int8_x = crypto_int8_shrmod(crypto_int8_x,crypto_int8_s); return crypto_int8_bottombit_mask(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_bitmod_01(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_s) { crypto_int8_x = crypto_int8_shrmod(crypto_int8_x,crypto_int8_s); return crypto_int8_bottombit_01(crypto_int8_x); } __attribute__((unused)) static inline crypto_int8 crypto_int8_nonzero_mask(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n testb %b2,%b2\n cmovnel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("tst %w1,255\n csetm %w0,ne" : "=r"(crypto_int8_z) : "r"(crypto_int8_x) : "cc"); return crypto_int8_z; #else crypto_int8_x |= -crypto_int8_x; return crypto_int8_negative_mask(crypto_int8_x); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_nonzero_01(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n testb %b2,%b2\n cmovnel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("tst %w1,255\n cset %w0,ne" : "=r"(crypto_int8_z) : "r"(crypto_int8_x) : "cc"); return crypto_int8_z; #else crypto_int8_x |= -crypto_int8_x; return crypto_int8_unsigned_topbit_01(crypto_int8_x); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_positive_mask(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n testb %b2,%b2\n cmovgl %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("sxtb %w0,%w1\n cmp %w0,0\n csetm %w0,gt" : "=r"(crypto_int8_z) : "r"(crypto_int8_x) : "cc"); return crypto_int8_z; #else crypto_int8 crypto_int8_z = -crypto_int8_x; crypto_int8_z ^= crypto_int8_x & crypto_int8_z; return crypto_int8_negative_mask(crypto_int8_z); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_positive_01(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n testb %b2,%b2\n cmovgl %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("sxtb %w0,%w1\n cmp %w0,0\n cset %w0,gt" : "=r"(crypto_int8_z) : "r"(crypto_int8_x) : "cc"); return crypto_int8_z; #else crypto_int8 crypto_int8_z = -crypto_int8_x; crypto_int8_z ^= crypto_int8_x & crypto_int8_z; return crypto_int8_unsigned_topbit_01(crypto_int8_z); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_zero_mask(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n testb %b2,%b2\n cmovel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("tst %w1,255\n csetm %w0,eq" : "=r"(crypto_int8_z) : "r"(crypto_int8_x) : "cc"); return crypto_int8_z; #else return ~crypto_int8_nonzero_mask(crypto_int8_x); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_zero_01(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n testb %b2,%b2\n cmovel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("tst %w1,255\n cset %w0,eq" : "=r"(crypto_int8_z) : "r"(crypto_int8_x) : "cc"); return crypto_int8_z; #else return 1-crypto_int8_nonzero_01(crypto_int8_x); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_unequal_mask(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovnel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n csetm %w0,ne" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else return crypto_int8_nonzero_mask(crypto_int8_x ^ crypto_int8_y); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_unequal_01(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovnel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n cset %w0,ne" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else return crypto_int8_nonzero_01(crypto_int8_x ^ crypto_int8_y); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_equal_mask(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n csetm %w0,eq" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else return ~crypto_int8_unequal_mask(crypto_int8_x,crypto_int8_y); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_equal_01(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n cset %w0,eq" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else return 1-crypto_int8_unequal_01(crypto_int8_x,crypto_int8_y); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_min(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y; __asm__ ("cmpb %b1,%b0\n cmovgl %1,%0" : "+q"(crypto_int8_x32) : "q"(crypto_int8_y32) : "cc"); crypto_int8_x = crypto_int8_x32; return crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxtb %w0,%w0\n cmp %w0,%w1,sxtb\n csel %w0,%w0,%w1,lt" : "+&r"(crypto_int8_x) : "r"(crypto_int8_y) : "cc"); return crypto_int8_x; #else crypto_int8 crypto_int8_r = crypto_int8_y ^ crypto_int8_x; crypto_int8 crypto_int8_z = crypto_int8_y - crypto_int8_x; crypto_int8_z ^= crypto_int8_r & (crypto_int8_z ^ crypto_int8_y); crypto_int8_z = crypto_int8_negative_mask(crypto_int8_z); crypto_int8_z &= crypto_int8_r; return crypto_int8_x ^ crypto_int8_z; #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_max(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y; __asm__ ("cmpb %b1,%b0\n cmovll %1,%0" : "+q"(crypto_int8_x32) : "q"(crypto_int8_y32) : "cc"); crypto_int8_x = crypto_int8_x32; return crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("sxtb %w0,%w0\n cmp %w0,%w1,sxtb\n csel %w0,%w1,%w0,lt" : "+&r"(crypto_int8_x) : "r"(crypto_int8_y) : "cc"); return crypto_int8_x; #else crypto_int8 crypto_int8_r = crypto_int8_y ^ crypto_int8_x; crypto_int8 crypto_int8_z = crypto_int8_y - crypto_int8_x; crypto_int8_z ^= crypto_int8_r & (crypto_int8_z ^ crypto_int8_y); crypto_int8_z = crypto_int8_negative_mask(crypto_int8_z); crypto_int8_z &= crypto_int8_r; return crypto_int8_y ^ crypto_int8_z; #endif } __attribute__((unused)) static inline void crypto_int8_minmax(crypto_int8 *crypto_int8_p,crypto_int8 *crypto_int8_q) { crypto_int8 crypto_int8_x = *crypto_int8_p; crypto_int8 crypto_int8_y = *crypto_int8_q; #if defined(__GNUC__) && defined(__x86_64__) int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_z32; __asm__ ("cmpb %b2,%b1\n movl %1,%0\n cmovgl %2,%1\n cmovgl %0,%2" : "=&r"(crypto_int8_z32), "+&q"(crypto_int8_x32), "+q"(crypto_int8_y32) : : "cc"); crypto_int8_x = crypto_int8_x32; crypto_int8_y = crypto_int8_y32; *crypto_int8_p = crypto_int8_x; *crypto_int8_q = crypto_int8_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_r, crypto_int8_s; __asm__ ("sxtb %w0,%w0\n cmp %w0,%w3,sxtb\n csel %w1,%w0,%w3,lt\n csel %w2,%w3,%w0,lt" : "+&r"(crypto_int8_x), "=&r"(crypto_int8_r), "=r"(crypto_int8_s) : "r"(crypto_int8_y) : "cc"); *crypto_int8_p = crypto_int8_r; *crypto_int8_q = crypto_int8_s; #else crypto_int8 crypto_int8_r = crypto_int8_y ^ crypto_int8_x; crypto_int8 crypto_int8_z = crypto_int8_y - crypto_int8_x; crypto_int8_z ^= crypto_int8_r & (crypto_int8_z ^ crypto_int8_y); crypto_int8_z = crypto_int8_negative_mask(crypto_int8_z); crypto_int8_z &= crypto_int8_r; crypto_int8_x ^= crypto_int8_z; crypto_int8_y ^= crypto_int8_z; *crypto_int8_p = crypto_int8_x; *crypto_int8_q = crypto_int8_y; #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_smaller_mask(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovll %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("sxtb %w0,%w1\n cmp %w0,%w2,sxtb\n csetm %w0,lt" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else crypto_int8 crypto_int8_r = crypto_int8_x ^ crypto_int8_y; crypto_int8 crypto_int8_z = crypto_int8_x - crypto_int8_y; crypto_int8_z ^= crypto_int8_r & (crypto_int8_z ^ crypto_int8_x); return crypto_int8_negative_mask(crypto_int8_z); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_smaller_01(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovll %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("sxtb %w0,%w1\n cmp %w0,%w2,sxtb\n cset %w0,lt" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else crypto_int8 crypto_int8_r = crypto_int8_x ^ crypto_int8_y; crypto_int8 crypto_int8_z = crypto_int8_x - crypto_int8_y; crypto_int8_z ^= crypto_int8_r & (crypto_int8_z ^ crypto_int8_x); return crypto_int8_unsigned_topbit_01(crypto_int8_z); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_leq_mask(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovlel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("sxtb %w0,%w1\n cmp %w0,%w2,sxtb\n csetm %w0,le" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else return ~crypto_int8_smaller_mask(crypto_int8_y,crypto_int8_x); #endif } __attribute__((unused)) static inline crypto_int8 crypto_int8_leq_01(crypto_int8 crypto_int8_x,crypto_int8 crypto_int8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_int8 crypto_int8_z; int32_t crypto_int8_x32 = crypto_int8_x,crypto_int8_y32 = crypto_int8_y,crypto_int8_q32,crypto_int8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovlel %1,%0" : "=&r"(crypto_int8_z32), "=&r"(crypto_int8_q32) : "q"(crypto_int8_x32), "q"(crypto_int8_y32) : "cc"); crypto_int8_z = crypto_int8_z32; return crypto_int8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_int8 crypto_int8_z; __asm__ ("sxtb %w0,%w1\n cmp %w0,%w2,sxtb\n cset %w0,le" : "=&r"(crypto_int8_z) : "r"(crypto_int8_x), "r"(crypto_int8_y) : "cc"); return crypto_int8_z; #else return 1-crypto_int8_smaller_01(crypto_int8_y,crypto_int8_x); #endif } __attribute__((unused)) static inline int crypto_int8_ones_num(crypto_int8 crypto_int8_x) { crypto_int8_unsigned crypto_int8_y = crypto_int8_x; const crypto_int8 C0 = 0x55; const crypto_int8 C1 = 0x33; const crypto_int8 C2 = 0x0f; crypto_int8_y -= ((crypto_int8_y >> 1) & C0); crypto_int8_y = (crypto_int8_y & C1) + ((crypto_int8_y >> 2) & C1); crypto_int8_y = (crypto_int8_y + (crypto_int8_y >> 4)) & C2; return crypto_int8_y; } __attribute__((unused)) static inline int crypto_int8_bottomzeros_num(crypto_int8 crypto_int8_x) { #if defined(__GNUC__) && defined(__x86_64__) int32_t fallback = 8; int32_t crypto_int8_x32 = crypto_int8_x; __asm__ ("bsfl %0,%0\n cmovel %1,%0" : "+&r"(crypto_int8_x32) : "r"(fallback) : "cc"); crypto_int8_x = crypto_int8_x32; return crypto_int8_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_int8_y; __asm__ ("orr %w0,%w1,-256\n rbit %w0,%w0\n clz %w0,%w0" : "=r"(crypto_int8_y) : "r"(crypto_int8_x) : ); return crypto_int8_y; #else crypto_int8 crypto_int8_y = crypto_int8_x ^ (crypto_int8_x-1); crypto_int8_y = ((crypto_int8) crypto_int8_y) >> 1; crypto_int8_y &= ~(crypto_int8_x & (((crypto_int8) 1) << (8-1))); return crypto_int8_ones_num(crypto_int8_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_intN.h0000644000000000000000000014074014705505550017711 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_intN_h #define crypto_intN_h #include #define crypto_intN intN_t #define crypto_intN_unsigned uintN_t #define crypto_intN_optblocker namespace_intN_optblocker extern volatile crypto_intN crypto_intN_optblocker; __attribute__((unused)) static inline crypto_intN crypto_intN_load(const unsigned char *crypto_intN_s) { crypto_intN crypto_intN_z = 0; int crypto_intN_k; for (crypto_intN_k = 0;crypto_intN_k < N;crypto_intN_k += 8) crypto_intN_z |= ((crypto_intN) (*crypto_intN_s++)) << crypto_intN_k; return crypto_intN_z; } __attribute__((unused)) static inline crypto_intN crypto_intN_load_bigendian(const unsigned char *crypto_intN_s) { crypto_intN crypto_intN_z = 0; int crypto_intN_k; for (crypto_intN_k = N - 8;crypto_intN_k >= 0;crypto_intN_k -= 8) crypto_intN_z |= ((crypto_intN) (*crypto_intN_s++)) << crypto_intN_k; return crypto_intN_z; } __attribute__((unused)) static inline void crypto_intN_store(unsigned char *crypto_intN_s,crypto_intN crypto_intN_x) { int crypto_intN_k; for (crypto_intN_k = 0;crypto_intN_k < N;crypto_intN_k += 8) *crypto_intN_s++ = crypto_intN_x >> crypto_intN_k; } __attribute__((unused)) static inline void crypto_intN_store_bigendian(unsigned char *crypto_intN_s,crypto_intN crypto_intN_x) { int crypto_intN_k; for (crypto_intN_k = N - 8;crypto_intN_k >= 0;crypto_intN_k -= 8) *crypto_intN_s++ = crypto_intN_x >> crypto_intN_k; } __attribute__((unused)) static inline crypto_intN crypto_intN_negative_mask(crypto_intN crypto_intN_x) { #if amd64 8: readasm("amd64; int8 crypto_intN_x; crypto_intN_x signed>>= 7"); 16: readasm("amd64; int16 crypto_intN_x; crypto_intN_x signed>>= 15"); 32: readasm("amd64; int32 crypto_intN_x; crypto_intN_x signed>>= 31"); 64: readasm("amd64; int64 crypto_intN_x; crypto_intN_x signed>>= 63"); return crypto_intN_x; #elif arm64 crypto_intN crypto_intN_y; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_y = -(1 & (crypto_intN_x unsigned>> 7))"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_y = -(1 & (crypto_intN_x unsigned>> 15))"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_y = crypto_intN_x signed>> 31"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_y = crypto_intN_x signed>> 63"); return crypto_intN_y; #else crypto_intN_x >>= N-6; crypto_intN_x += crypto_intN_optblocker; crypto_intN_x >>= 5; return crypto_intN_x; #endif } __attribute__((unused)) static inline crypto_intN_unsigned crypto_intN_unsigned_topbit_01(crypto_intN_unsigned crypto_intN_x) { #if amd64 8: readasm("amd64; int8 crypto_intN_x; crypto_intN_x unsigned>>= 7"); 16: readasm("amd64; int16 crypto_intN_x; crypto_intN_x unsigned>>= 15"); 32: readasm("amd64; int32 crypto_intN_x; crypto_intN_x unsigned>>= 31"); 64: readasm("amd64; int64 crypto_intN_x; crypto_intN_x unsigned>>= 63"); return crypto_intN_x; #elif arm64 crypto_intN crypto_intN_y; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_y = 1 & (crypto_intN_x unsigned>> 7)"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_y = 1 & (crypto_intN_x unsigned>> 15)"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_y = crypto_intN_x unsigned>> 31"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_y = crypto_intN_x unsigned>> 63"); return crypto_intN_y; #else crypto_intN_x >>= N-6; crypto_intN_x += crypto_intN_optblocker; crypto_intN_x >>= 5; return crypto_intN_x; #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_negative_01(crypto_intN crypto_intN_x) { return crypto_intN_unsigned_topbit_01(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_topbit_mask(crypto_intN crypto_intN_x) { return crypto_intN_negative_mask(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_topbit_01(crypto_intN crypto_intN_x) { return crypto_intN_unsigned_topbit_01(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_bottombit_mask(crypto_intN crypto_intN_x) { #if amd64 8: readasm("amd64; int8 crypto_intN_x; crypto_intN_x &= 1"); 16: readasm("amd64; int16 crypto_intN_x; crypto_intN_x &= 1"); 32: readasm("amd64; int32 crypto_intN_x; crypto_intN_x &= 1"); 64: readasm("amd64; int64 crypto_intN_x; crypto_intN_x &= 1"); return -crypto_intN_x; #elif arm64 crypto_intN crypto_intN_y; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_y = -(1 & (crypto_intN_x unsigned>> 0))"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_y = -(1 & (crypto_intN_x unsigned>> 0))"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_y = -(1 & (crypto_intN_x unsigned>> 0))"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_y = -(1 & (crypto_intN_x unsigned>> 0))"); return crypto_intN_y; #else crypto_intN_x &= 1 + crypto_intN_optblocker; return -crypto_intN_x; #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_bottombit_01(crypto_intN crypto_intN_x) { #if amd64 8: readasm("amd64; int8 crypto_intN_x; crypto_intN_x &= 1"); 16: readasm("amd64; int16 crypto_intN_x; crypto_intN_x &= 1"); 32: readasm("amd64; int32 crypto_intN_x; crypto_intN_x &= 1"); 64: readasm("amd64; int64 crypto_intN_x; crypto_intN_x &= 1"); return crypto_intN_x; #elif arm64 crypto_intN crypto_intN_y; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_y = 1 & (crypto_intN_x unsigned>> 0)"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_y = 1 & (crypto_intN_x unsigned>> 0)"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_y = 1 & (crypto_intN_x unsigned>> 0)"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_y = 1 & (crypto_intN_x unsigned>> 0)"); return crypto_intN_y; #else crypto_intN_x &= 1 + crypto_intN_optblocker; return crypto_intN_x; #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_bitinrangepublicpos_mask(crypto_intN crypto_intN_x,crypto_intN crypto_intN_s) { #if amd64 8: readasm("amd64; int8 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 16: readasm("amd64; int16 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 32: readasm("amd64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 64: readasm("amd64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); #elif arm64 8: readasm("arm64; int8 crypto_intN_x crypto_intN_s; crypto_intN_x = (int8) crypto_intN_x; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_s; crypto_intN_x = (int16) crypto_intN_x; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); #else crypto_intN_x >>= crypto_intN_s ^ crypto_intN_optblocker; #endif return crypto_intN_bottombit_mask(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_bitinrangepublicpos_01(crypto_intN crypto_intN_x,crypto_intN crypto_intN_s) { #if amd64 8: readasm("amd64; int8 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 16: readasm("amd64; int16 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 32: readasm("amd64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 64: readasm("amd64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); #elif arm64 8: readasm("arm64; int8 crypto_intN_x crypto_intN_s; crypto_intN_x = (int8) crypto_intN_x; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_s; crypto_intN_x = (int16) crypto_intN_x; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); #else crypto_intN_x >>= crypto_intN_s ^ crypto_intN_optblocker; #endif return crypto_intN_bottombit_01(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_shlmod(crypto_intN crypto_intN_x,crypto_intN crypto_intN_s) { #if amd64 8: crypto_intN_s &= 7; 8: readasm("amd64; int8 crypto_intN_x crypto_intN_s; crypto_intN_x <<= crypto_intN_s"); 16: crypto_intN_s &= 15; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_s; crypto_intN_x <<= crypto_intN_s"); 32: readasm("amd64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x <<= crypto_intN_s"); 64: readasm("amd64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x <<= crypto_intN_s"); #elif arm64 8: readasm("arm64; int8 crypto_intN_x crypto_intN_s; crypto_intN_s = crypto_intN_s & 7; crypto_intN_x = (uint8) crypto_intN_x; crypto_intN_x = crypto_intN_x << crypto_intN_s"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_s; crypto_intN_s = crypto_intN_s & 15; crypto_intN_x = (uint16) crypto_intN_x; crypto_intN_x = crypto_intN_x << crypto_intN_s"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x << crypto_intN_s"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x << crypto_intN_s"); #else int crypto_intN_k, crypto_intN_l; for (crypto_intN_l = 0,crypto_intN_k = 1;crypto_intN_k < N;++crypto_intN_l,crypto_intN_k *= 2) crypto_intN_x ^= (crypto_intN_x ^ (crypto_intN_x << crypto_intN_k)) & crypto_intN_bitinrangepublicpos_mask(crypto_intN_s,crypto_intN_l); #endif return crypto_intN_x; } __attribute__((unused)) static inline crypto_intN crypto_intN_shrmod(crypto_intN crypto_intN_x,crypto_intN crypto_intN_s) { #if amd64 8: crypto_intN_s &= 7; 8: readasm("amd64; int8 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 16: crypto_intN_s &= 15; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 32: readasm("amd64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); 64: readasm("amd64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x signed>>= crypto_intN_s"); #elif arm64 8: readasm("arm64; int8 crypto_intN_x crypto_intN_s; crypto_intN_s = crypto_intN_s & 7; crypto_intN_x = (int8) crypto_intN_x; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_s; crypto_intN_s = crypto_intN_s & 15; crypto_intN_x = (int16) crypto_intN_x; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_s; crypto_intN_x = crypto_intN_x signed>> crypto_intN_s"); #else int crypto_intN_k, crypto_intN_l; for (crypto_intN_l = 0,crypto_intN_k = 1;crypto_intN_k < N;++crypto_intN_l,crypto_intN_k *= 2) crypto_intN_x ^= (crypto_intN_x ^ (crypto_intN_x >> crypto_intN_k)) & crypto_intN_bitinrangepublicpos_mask(crypto_intN_s,crypto_intN_l); #endif return crypto_intN_x; } __attribute__((unused)) static inline crypto_intN crypto_intN_bitmod_mask(crypto_intN crypto_intN_x,crypto_intN crypto_intN_s) { crypto_intN_x = crypto_intN_shrmod(crypto_intN_x,crypto_intN_s); return crypto_intN_bottombit_mask(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_bitmod_01(crypto_intN crypto_intN_x,crypto_intN crypto_intN_s) { crypto_intN_x = crypto_intN_shrmod(crypto_intN_x,crypto_intN_s); return crypto_intN_bottombit_01(crypto_intN_x); } __attribute__((unused)) static inline crypto_intN crypto_intN_nonzero_mask(crypto_intN crypto_intN_x) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 & (int8) crypto_intN_x32; crypto_intN_z32 = crypto_intN_q32 if !="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if !="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if !="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if !="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_z; crypto_intN_x & 255; crypto_intN_z = -1 if != else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_z; crypto_intN_x & 65535; crypto_intN_z = -1 if != else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = -1 if != else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = -1 if != else 0"); return crypto_intN_z; #else crypto_intN_x |= -crypto_intN_x; return crypto_intN_negative_mask(crypto_intN_x); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_nonzero_01(crypto_intN crypto_intN_x) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 & (int8) crypto_intN_x32; crypto_intN_z32 = crypto_intN_q32 if !="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if !="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if !="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if !="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_z; crypto_intN_x & 255; crypto_intN_z = 1 if != else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_z; crypto_intN_x & 65535; crypto_intN_z = 1 if != else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = 1 if != else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = 1 if != else 0"); return crypto_intN_z; #else crypto_intN_x |= -crypto_intN_x; return crypto_intN_unsigned_topbit_01(crypto_intN_x); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_positive_mask(crypto_intN crypto_intN_x) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 & (int8) crypto_intN_x32; crypto_intN_z32 = crypto_intN_q32 if signed>"); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if signed>"); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if signed>"); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if signed>"); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_z; crypto_intN_z = (int8) crypto_intN_x; crypto_intN_z - 0; crypto_intN_z = -1 if signed> else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_z; crypto_intN_z = (int16) crypto_intN_x; crypto_intN_z - 0; crypto_intN_z = -1 if signed> else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = -1 if signed> else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = -1 if signed> else 0"); return crypto_intN_z; #else crypto_intN crypto_intN_z = -crypto_intN_x; crypto_intN_z ^= crypto_intN_x & crypto_intN_z; return crypto_intN_negative_mask(crypto_intN_z); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_positive_01(crypto_intN crypto_intN_x) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 & (int8) crypto_intN_x32; crypto_intN_z32 = crypto_intN_q32 if signed>"); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if signed>"); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if signed>"); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if signed>"); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_z; crypto_intN_z = (int8) crypto_intN_x; crypto_intN_z - 0; crypto_intN_z = 1 if signed> else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_z; crypto_intN_z = (int16) crypto_intN_x; crypto_intN_z - 0; crypto_intN_z = 1 if signed> else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = 1 if signed> else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = 1 if signed> else 0"); return crypto_intN_z; #else crypto_intN crypto_intN_z = -crypto_intN_x; crypto_intN_z ^= crypto_intN_x & crypto_intN_z; return crypto_intN_unsigned_topbit_01(crypto_intN_z); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_zero_mask(crypto_intN crypto_intN_x) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 & (int8) crypto_intN_x32; crypto_intN_z32 = crypto_intN_q32 if ="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if ="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if ="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if ="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_z; crypto_intN_x & 255; crypto_intN_z = -1 if = else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_z; crypto_intN_x & 65535; crypto_intN_z = -1 if = else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = -1 if = else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = -1 if = else 0"); return crypto_intN_z; #else return ~crypto_intN_nonzero_mask(crypto_intN_x); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_zero_01(crypto_intN crypto_intN_x) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 & (int8) crypto_intN_x32; crypto_intN_z32 = crypto_intN_q32 if ="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if ="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if ="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x & crypto_intN_x; crypto_intN_z = crypto_intN_q if ="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_z; crypto_intN_x & 255; crypto_intN_z = 1 if = else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_z; crypto_intN_x & 65535; crypto_intN_z = 1 if = else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = 1 if = else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_z; crypto_intN_x - 0; crypto_intN_z = 1 if = else 0"); return crypto_intN_z; #else return 1-crypto_intN_nonzero_01(crypto_intN_x); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_unequal_mask(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if !="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if !="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if !="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if !="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint8) crypto_intN_x; crypto_intN_z - (uint8) crypto_intN_y; crypto_intN_z = -1 if != else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint16) crypto_intN_x; crypto_intN_z - (uint16) crypto_intN_y; crypto_intN_z = -1 if != else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if != else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if != else 0"); return crypto_intN_z; #else return crypto_intN_nonzero_mask(crypto_intN_x ^ crypto_intN_y); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_unequal_01(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if !="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if !="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if !="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if !="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint8) crypto_intN_x; crypto_intN_z - (uint8) crypto_intN_y; crypto_intN_z = 1 if != else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint16) crypto_intN_x; crypto_intN_z - (uint16) crypto_intN_y; crypto_intN_z = 1 if != else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if != else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if != else 0"); return crypto_intN_z; #else return crypto_intN_nonzero_01(crypto_intN_x ^ crypto_intN_y); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_equal_mask(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if ="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if ="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if ="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if ="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint8) crypto_intN_x; crypto_intN_z - (uint8) crypto_intN_y; crypto_intN_z = -1 if = else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint16) crypto_intN_x; crypto_intN_z - (uint16) crypto_intN_y; crypto_intN_z = -1 if = else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if = else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if = else 0"); return crypto_intN_z; #else return ~crypto_intN_unequal_mask(crypto_intN_x,crypto_intN_y); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_equal_01(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if ="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if ="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if ="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if ="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint8) crypto_intN_x; crypto_intN_z - (uint8) crypto_intN_y; crypto_intN_z = 1 if = else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (uint16) crypto_intN_x; crypto_intN_z - (uint16) crypto_intN_y; crypto_intN_z = 1 if = else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if = else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if = else 0"); return crypto_intN_z; #else return 1-crypto_intN_unequal_01(crypto_intN_x,crypto_intN_y); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_min(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_y32; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_x32 = crypto_intN_y32 if signed>"); 8: crypto_intN_x = crypto_intN_x32; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed>"); 32: readasm("amd64; int32 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed>"); 64: readasm("amd64; int64 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed>"); return crypto_intN_x; #elif arm64 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_x = (int8) crypto_intN_x; crypto_intN_x - (int8) crypto_intN_y; crypto_intN_x = crypto_intN_x if signed< else crypto_intN_y"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_x = (int16) crypto_intN_x; crypto_intN_x - (int16) crypto_intN_y; crypto_intN_x = crypto_intN_x if signed< else crypto_intN_y"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_x if signed< else crypto_intN_y"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_x if signed< else crypto_intN_y"); return crypto_intN_x; #else crypto_intN crypto_intN_r = crypto_intN_y ^ crypto_intN_x; crypto_intN crypto_intN_z = crypto_intN_y - crypto_intN_x; crypto_intN_z ^= crypto_intN_r & (crypto_intN_z ^ crypto_intN_y); crypto_intN_z = crypto_intN_negative_mask(crypto_intN_z); crypto_intN_z &= crypto_intN_r; return crypto_intN_x ^ crypto_intN_z; #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_max(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_y32; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_x32 = crypto_intN_y32 if signed<"); 8: crypto_intN_x = crypto_intN_x32; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed<"); 32: readasm("amd64; int32 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed<"); 64: readasm("amd64; int64 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed<"); return crypto_intN_x; #elif arm64 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_x = (int8) crypto_intN_x; crypto_intN_x - (int8) crypto_intN_y; crypto_intN_x = crypto_intN_y if signed< else crypto_intN_x"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_x = (int16) crypto_intN_x; crypto_intN_x - (int16) crypto_intN_y; crypto_intN_x = crypto_intN_y if signed< else crypto_intN_x"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed< else crypto_intN_x"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_x - crypto_intN_y; crypto_intN_x = crypto_intN_y if signed< else crypto_intN_x"); return crypto_intN_x; #else crypto_intN crypto_intN_r = crypto_intN_y ^ crypto_intN_x; crypto_intN crypto_intN_z = crypto_intN_y - crypto_intN_x; crypto_intN_z ^= crypto_intN_r & (crypto_intN_z ^ crypto_intN_y); crypto_intN_z = crypto_intN_negative_mask(crypto_intN_z); crypto_intN_z &= crypto_intN_r; return crypto_intN_y ^ crypto_intN_z; #endif } __attribute__((unused)) static inline void crypto_intN_minmax(crypto_intN *crypto_intN_p,crypto_intN *crypto_intN_q) { crypto_intN crypto_intN_x = *crypto_intN_p; crypto_intN crypto_intN_y = *crypto_intN_q; #if amd64 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_y32 crypto_intN_z32; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_x32; crypto_intN_x32 = crypto_intN_y32 if signed>; crypto_intN_y32 = crypto_intN_z32 if signed>"); 8: crypto_intN_x = crypto_intN_x32; crypto_intN_y = crypto_intN_y32; 16: crypto_intN crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_x; crypto_intN_x = crypto_intN_y if signed>; crypto_intN_y = crypto_intN_z if signed>"); 32: crypto_intN crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_x; crypto_intN_x = crypto_intN_y if signed>; crypto_intN_y = crypto_intN_z if signed>"); 64: crypto_intN crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_x; crypto_intN_x = crypto_intN_y if signed>; crypto_intN_y = crypto_intN_z if signed>"); *crypto_intN_p = crypto_intN_x; *crypto_intN_q = crypto_intN_y; #elif arm64 crypto_intN crypto_intN_r, crypto_intN_s; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_r crypto_intN_s; crypto_intN_x = (int8) crypto_intN_x; crypto_intN_x - (int8) crypto_intN_y; crypto_intN_r = crypto_intN_x if signed< else crypto_intN_y; crypto_intN_s = crypto_intN_y if signed< else crypto_intN_x"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_r crypto_intN_s; crypto_intN_x = (int16) crypto_intN_x; crypto_intN_x - (int16) crypto_intN_y; crypto_intN_r = crypto_intN_x if signed< else crypto_intN_y; crypto_intN_s = crypto_intN_y if signed< else crypto_intN_x"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_r crypto_intN_s; crypto_intN_x - crypto_intN_y; crypto_intN_r = crypto_intN_x if signed< else crypto_intN_y; crypto_intN_s = crypto_intN_y if signed< else crypto_intN_x"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_r crypto_intN_s; crypto_intN_x - crypto_intN_y; crypto_intN_r = crypto_intN_x if signed< else crypto_intN_y; crypto_intN_s = crypto_intN_y if signed< else crypto_intN_x"); *crypto_intN_p = crypto_intN_r; *crypto_intN_q = crypto_intN_s; #else crypto_intN crypto_intN_r = crypto_intN_y ^ crypto_intN_x; crypto_intN crypto_intN_z = crypto_intN_y - crypto_intN_x; crypto_intN_z ^= crypto_intN_r & (crypto_intN_z ^ crypto_intN_y); crypto_intN_z = crypto_intN_negative_mask(crypto_intN_z); crypto_intN_z &= crypto_intN_r; crypto_intN_x ^= crypto_intN_z; crypto_intN_y ^= crypto_intN_z; *crypto_intN_p = crypto_intN_x; *crypto_intN_q = crypto_intN_y; #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_smaller_mask(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if signed<"); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<"); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<"); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<"); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int8) crypto_intN_x; crypto_intN_z - (int8) crypto_intN_y; crypto_intN_z = -1 if signed< else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int16) crypto_intN_x; crypto_intN_z - (int16) crypto_intN_y; crypto_intN_z = -1 if signed< else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if signed< else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if signed< else 0"); return crypto_intN_z; #else crypto_intN crypto_intN_r = crypto_intN_x ^ crypto_intN_y; crypto_intN crypto_intN_z = crypto_intN_x - crypto_intN_y; crypto_intN_z ^= crypto_intN_r & (crypto_intN_z ^ crypto_intN_x); return crypto_intN_negative_mask(crypto_intN_z); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_smaller_01(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if signed<"); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<"); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<"); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<"); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int8) crypto_intN_x; crypto_intN_z - (int8) crypto_intN_y; crypto_intN_z = 1 if signed< else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int16) crypto_intN_x; crypto_intN_z - (int16) crypto_intN_y; crypto_intN_z = 1 if signed< else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if signed< else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if signed< else 0"); return crypto_intN_z; #else crypto_intN crypto_intN_r = crypto_intN_x ^ crypto_intN_y; crypto_intN crypto_intN_z = crypto_intN_x - crypto_intN_y; crypto_intN_z ^= crypto_intN_r & (crypto_intN_z ^ crypto_intN_x); return crypto_intN_unsigned_topbit_01(crypto_intN_z); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_leq_mask(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = -1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if signed<="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = -1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int8) crypto_intN_x; crypto_intN_z - (int8) crypto_intN_y; crypto_intN_z = -1 if signed<= else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int16) crypto_intN_x; crypto_intN_z - (int16) crypto_intN_y; crypto_intN_z = -1 if signed<= else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if signed<= else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = -1 if signed<= else 0"); return crypto_intN_z; #else return ~crypto_intN_smaller_mask(crypto_intN_y,crypto_intN_x); #endif } __attribute__((unused)) static inline crypto_intN crypto_intN_leq_01(crypto_intN crypto_intN_x,crypto_intN crypto_intN_y) { #if amd64 8: crypto_intN crypto_intN_z; 8: int32_t crypto_intN_x32 = crypto_intN_x,crypto_intN_y32 = crypto_intN_y,crypto_intN_q32,crypto_intN_z32; 8: readasm("amd64; int32 crypto_intN_x32 crypto_intN_q32 crypto_intN_y32 crypto_intN_z32; crypto_intN_z32 = 0; crypto_intN_q32 = 1; crypto_intN_x32 - (int8) crypto_intN_y32; crypto_intN_z32 = crypto_intN_q32 if signed<="); 8: crypto_intN_z = crypto_intN_z32; 16: crypto_intN crypto_intN_q,crypto_intN_z; 16: readasm("amd64; int16 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<="); 32: crypto_intN crypto_intN_q,crypto_intN_z; 32: readasm("amd64; int32 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<="); 64: crypto_intN crypto_intN_q,crypto_intN_z; 64: readasm("amd64; int64 crypto_intN_x crypto_intN_q crypto_intN_y crypto_intN_z; crypto_intN_z = 0; crypto_intN_q = 1; crypto_intN_x - crypto_intN_y; crypto_intN_z = crypto_intN_q if signed<="); return crypto_intN_z; #elif arm64 crypto_intN crypto_intN_z; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int8) crypto_intN_x; crypto_intN_z - (int8) crypto_intN_y; crypto_intN_z = 1 if signed<= else 0"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_z = (int16) crypto_intN_x; crypto_intN_z - (int16) crypto_intN_y; crypto_intN_z = 1 if signed<= else 0"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if signed<= else 0"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y crypto_intN_z; crypto_intN_x - crypto_intN_y; crypto_intN_z = 1 if signed<= else 0"); return crypto_intN_z; #else return 1-crypto_intN_smaller_01(crypto_intN_y,crypto_intN_x); #endif } __attribute__((unused)) static inline int crypto_intN_ones_num(crypto_intN crypto_intN_x) { crypto_intN_unsigned crypto_intN_y = crypto_intN_x; 8: const crypto_intN C0 = 0x55; 16: const crypto_intN C0 = 0x5555; 32: const crypto_intN C0 = 0x55555555; 64: const crypto_intN C0 = 0x5555555555555555; 8: const crypto_intN C1 = 0x33; 16: const crypto_intN C1 = 0x3333; 32: const crypto_intN C1 = 0x33333333; 64: const crypto_intN C1 = 0x3333333333333333; 8: const crypto_intN C2 = 0x0f; 16: const crypto_intN C2 = 0x0f0f; 32: const crypto_intN C2 = 0x0f0f0f0f; 64: const crypto_intN C2 = 0x0f0f0f0f0f0f0f0f; crypto_intN_y -= ((crypto_intN_y >> 1) & C0); crypto_intN_y = (crypto_intN_y & C1) + ((crypto_intN_y >> 2) & C1); crypto_intN_y = (crypto_intN_y + (crypto_intN_y >> 4)) & C2; 16: crypto_intN_y = (crypto_intN_y + (crypto_intN_y >> 8)) & 0xff; 32: crypto_intN_y += crypto_intN_y >> 8; 32: crypto_intN_y = (crypto_intN_y + (crypto_intN_y >> 16)) & 0xff; 64: crypto_intN_y += crypto_intN_y >> 8; 64: crypto_intN_y += crypto_intN_y >> 16; 64: crypto_intN_y = (crypto_intN_y + (crypto_intN_y >> 32)) & 0xff; return crypto_intN_y; } __attribute__((unused)) static inline int crypto_intN_bottomzeros_num(crypto_intN crypto_intN_x) { #if amd64 8: int32_t fallback = N; 8: int32_t crypto_intN_x32 = crypto_intN_x; 8: readasm("amd64; int32 crypto_intN_x32 fallback; crypto_intN_x32 = numbottomzeros_tricky crypto_intN_x32; crypto_intN_x32 = fallback if ="); 8: crypto_intN_x = crypto_intN_x32; 16: crypto_intN fallback = N; 16: readasm("amd64; int16 crypto_intN_x fallback; crypto_intN_x = numbottomzeros_tricky crypto_intN_x; crypto_intN_x = fallback if ="); 32: crypto_intN fallback = N; 32: readasm("amd64; int32 crypto_intN_x fallback; crypto_intN_x = numbottomzeros_tricky crypto_intN_x; crypto_intN_x = fallback if ="); 64: crypto_intN fallback = N; 64: readasm("amd64; int64 crypto_intN_x fallback; crypto_intN_x = numbottomzeros_tricky crypto_intN_x; crypto_intN_x = fallback if ="); return crypto_intN_x; #elif arm64 int64_t crypto_intN_y; 8: readasm("arm64; int8 crypto_intN_x crypto_intN_y; crypto_intN_y = crypto_intN_x | -256; crypto_intN_y = bitrev32 crypto_intN_y; crypto_intN_y = numbottomzeros crypto_intN_y"); 16: readasm("arm64; int16 crypto_intN_x crypto_intN_y; crypto_intN_y = crypto_intN_x | -65536; crypto_intN_y = bitrev32 crypto_intN_y; crypto_intN_y = numbottomzeros crypto_intN_y"); 32: readasm("arm64; int32 crypto_intN_x crypto_intN_y; crypto_intN_y = bitrev32 crypto_intN_x; crypto_intN_y = numbottomzeros crypto_intN_y"); 64: readasm("arm64; int64 crypto_intN_x crypto_intN_y; crypto_intN_y = bitrev64 crypto_intN_x; crypto_intN_y = numbottomzeros crypto_intN_y"); return crypto_intN_y; #else crypto_intN crypto_intN_y = crypto_intN_x ^ (crypto_intN_x-1); crypto_intN_y = ((crypto_intN) crypto_intN_y) >> 1; crypto_intN_y &= ~(crypto_intN_x & (((crypto_intN) 1) << (N-1))); return crypto_intN_ones_num(crypto_intN_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_uint16.h0000644000000000000000000005113514705505550020126 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_uint16_h #define crypto_uint16_h #include #define crypto_uint16 uint16_t #define crypto_uint16_signed int16_t #define crypto_uint16_signed_optblocker ntruprime_uint16_signed_optblocker extern volatile crypto_uint16_signed crypto_uint16_signed_optblocker; __attribute__((unused)) static inline crypto_uint16 crypto_uint16_load(const unsigned char *crypto_uint16_s) { crypto_uint16 crypto_uint16_z = 0; crypto_uint16_z |= ((crypto_uint16) (*crypto_uint16_s++)) << 0; crypto_uint16_z |= ((crypto_uint16) (*crypto_uint16_s++)) << 8; return crypto_uint16_z; } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_load_bigendian(const unsigned char *crypto_uint16_s) { crypto_uint16 crypto_uint16_z = 0; crypto_uint16_z |= ((crypto_uint16) (*crypto_uint16_s++)) << 8; crypto_uint16_z |= ((crypto_uint16) (*crypto_uint16_s++)) << 0; return crypto_uint16_z; } __attribute__((unused)) static inline void crypto_uint16_store(unsigned char *crypto_uint16_s,crypto_uint16 crypto_uint16_x) { *crypto_uint16_s++ = crypto_uint16_x >> 0; *crypto_uint16_s++ = crypto_uint16_x >> 8; } __attribute__((unused)) static inline void crypto_uint16_store_bigendian(unsigned char *crypto_uint16_s,crypto_uint16 crypto_uint16_x) { *crypto_uint16_s++ = crypto_uint16_x >> 8; *crypto_uint16_s++ = crypto_uint16_x >> 0; } __attribute__((unused)) static inline crypto_uint16_signed crypto_uint16_signed_negative_mask(crypto_uint16_signed crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarw $15,%0" : "+r"(crypto_uint16_x) : : "cc"); return crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16_signed crypto_uint16_y; __asm__ ("sbfx %w0,%w1,15,1" : "=r"(crypto_uint16_y) : "r"(crypto_uint16_x) : ); return crypto_uint16_y; #else crypto_uint16_x >>= 16-6; crypto_uint16_x += crypto_uint16_signed_optblocker; crypto_uint16_x >>= 5; return crypto_uint16_x; #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_topbit_01(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrw $15,%0" : "+r"(crypto_uint16_x) : : "cc"); return crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16_signed crypto_uint16_y; __asm__ ("ubfx %w0,%w1,15,1" : "=r"(crypto_uint16_y) : "r"(crypto_uint16_x) : ); return crypto_uint16_y; #else crypto_uint16_x >>= 16-6; crypto_uint16_x += crypto_uint16_signed_optblocker; crypto_uint16_x >>= 5; return crypto_uint16_x; #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_topbit_mask(crypto_uint16 crypto_uint16_x) { return crypto_uint16_signed_negative_mask(crypto_uint16_x); } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_bottombit_mask(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andw $1,%0" : "+r"(crypto_uint16_x) : : "cc"); return -crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_y; __asm__ ("sbfx %w0,%w1,0,1" : "=r"(crypto_uint16_y) : "r"(crypto_uint16_x) : ); return crypto_uint16_y; #else crypto_uint16_x &= 1 + crypto_uint16_signed_optblocker; return -crypto_uint16_x; #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_bottombit_01(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andw $1,%0" : "+r"(crypto_uint16_x) : : "cc"); return crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_y; __asm__ ("ubfx %w0,%w1,0,1" : "=r"(crypto_uint16_y) : "r"(crypto_uint16_x) : ); return crypto_uint16_y; #else crypto_uint16_x &= 1 + crypto_uint16_signed_optblocker; return crypto_uint16_x; #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_bitinrangepublicpos_mask(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrw %%cl,%0" : "+r"(crypto_uint16_x) : "c"(crypto_uint16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,65535\n lsr %w0,%w0,%w1" : "+&r"(crypto_uint16_x) : "r"(crypto_uint16_s) : ); #else crypto_uint16_x >>= crypto_uint16_s ^ crypto_uint16_signed_optblocker; #endif return crypto_uint16_bottombit_mask(crypto_uint16_x); } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_bitinrangepublicpos_01(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrw %%cl,%0" : "+r"(crypto_uint16_x) : "c"(crypto_uint16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,65535\n lsr %w0,%w0,%w1" : "+&r"(crypto_uint16_x) : "r"(crypto_uint16_s) : ); #else crypto_uint16_x >>= crypto_uint16_s ^ crypto_uint16_signed_optblocker; #endif return crypto_uint16_bottombit_01(crypto_uint16_x); } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_shlmod(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16_s &= 15; __asm__ ("shlw %%cl,%0" : "+r"(crypto_uint16_x) : "c"(crypto_uint16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,15\n and %w1,%w1,65535\n lsl %w1,%w1,%w0" : "+&r"(crypto_uint16_s), "+r"(crypto_uint16_x) : : ); #else int crypto_uint16_k, crypto_uint16_l; for (crypto_uint16_l = 0,crypto_uint16_k = 1;crypto_uint16_k < 16;++crypto_uint16_l,crypto_uint16_k *= 2) crypto_uint16_x ^= (crypto_uint16_x ^ (crypto_uint16_x << crypto_uint16_k)) & crypto_uint16_bitinrangepublicpos_mask(crypto_uint16_s,crypto_uint16_l); #endif return crypto_uint16_x; } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_shrmod(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16_s &= 15; __asm__ ("shrw %%cl,%0" : "+r"(crypto_uint16_x) : "c"(crypto_uint16_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,15\n and %w1,%w1,65535\n lsr %w1,%w1,%w0" : "+&r"(crypto_uint16_s), "+r"(crypto_uint16_x) : : ); #else int crypto_uint16_k, crypto_uint16_l; for (crypto_uint16_l = 0,crypto_uint16_k = 1;crypto_uint16_k < 16;++crypto_uint16_l,crypto_uint16_k *= 2) crypto_uint16_x ^= (crypto_uint16_x ^ (crypto_uint16_x >> crypto_uint16_k)) & crypto_uint16_bitinrangepublicpos_mask(crypto_uint16_s,crypto_uint16_l); #endif return crypto_uint16_x; } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_bitmod_mask(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_s) { crypto_uint16_x = crypto_uint16_shrmod(crypto_uint16_x,crypto_uint16_s); return crypto_uint16_bottombit_mask(crypto_uint16_x); } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_bitmod_01(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_s) { crypto_uint16_x = crypto_uint16_shrmod(crypto_uint16_x,crypto_uint16_s); return crypto_uint16_bottombit_01(crypto_uint16_x); } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_nonzero_mask(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n testw %2,%2\n cmovnew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("tst %w1,65535\n csetm %w0,ne" : "=r"(crypto_uint16_z) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #else crypto_uint16_x |= -crypto_uint16_x; return crypto_uint16_signed_negative_mask(crypto_uint16_x); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_nonzero_01(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n testw %2,%2\n cmovnew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("tst %w1,65535\n cset %w0,ne" : "=r"(crypto_uint16_z) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #else crypto_uint16_x |= -crypto_uint16_x; return crypto_uint16_topbit_01(crypto_uint16_x); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_zero_mask(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n testw %2,%2\n cmovew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("tst %w1,65535\n csetm %w0,eq" : "=r"(crypto_uint16_z) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #else return ~crypto_uint16_nonzero_mask(crypto_uint16_x); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_zero_01(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n testw %2,%2\n cmovew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("tst %w1,65535\n cset %w0,eq" : "=r"(crypto_uint16_z) : "r"(crypto_uint16_x) : "cc"); return crypto_uint16_z; #else return 1-crypto_uint16_nonzero_01(crypto_uint16_x); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_unequal_mask(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovnew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n csetm %w0,ne" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else return crypto_uint16_nonzero_mask(crypto_uint16_x ^ crypto_uint16_y); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_unequal_01(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovnew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n cset %w0,ne" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else return crypto_uint16_nonzero_01(crypto_uint16_x ^ crypto_uint16_y); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_equal_mask(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n csetm %w0,eq" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else return ~crypto_uint16_unequal_mask(crypto_uint16_x,crypto_uint16_y); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_equal_01(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n cset %w0,eq" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else return 1-crypto_uint16_unequal_01(crypto_uint16_x,crypto_uint16_y); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_min(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpw %1,%0\n cmovaw %1,%0" : "+r"(crypto_uint16_x) : "r"(crypto_uint16_y) : "cc"); return crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,65535\n cmp %w0,%w1,uxth\n csel %w0,%w0,%w1,lo" : "+&r"(crypto_uint16_x) : "r"(crypto_uint16_y) : "cc"); return crypto_uint16_x; #else crypto_uint16 crypto_uint16_r = crypto_uint16_y ^ crypto_uint16_x; crypto_uint16 crypto_uint16_z = crypto_uint16_y - crypto_uint16_x; crypto_uint16_z ^= crypto_uint16_r & (crypto_uint16_z ^ crypto_uint16_y ^ (((crypto_uint16) 1) << (16-1))); crypto_uint16_z = crypto_uint16_signed_negative_mask(crypto_uint16_z); crypto_uint16_z &= crypto_uint16_r; return crypto_uint16_x ^ crypto_uint16_z; #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_max(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpw %1,%0\n cmovbw %1,%0" : "+r"(crypto_uint16_x) : "r"(crypto_uint16_y) : "cc"); return crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,65535\n cmp %w0,%w1,uxth\n csel %w0,%w1,%w0,lo" : "+&r"(crypto_uint16_x) : "r"(crypto_uint16_y) : "cc"); return crypto_uint16_x; #else crypto_uint16 crypto_uint16_r = crypto_uint16_y ^ crypto_uint16_x; crypto_uint16 crypto_uint16_z = crypto_uint16_y - crypto_uint16_x; crypto_uint16_z ^= crypto_uint16_r & (crypto_uint16_z ^ crypto_uint16_y ^ (((crypto_uint16) 1) << (16-1))); crypto_uint16_z = crypto_uint16_signed_negative_mask(crypto_uint16_z); crypto_uint16_z &= crypto_uint16_r; return crypto_uint16_y ^ crypto_uint16_z; #endif } __attribute__((unused)) static inline void crypto_uint16_minmax(crypto_uint16 *crypto_uint16_p,crypto_uint16 *crypto_uint16_q) { crypto_uint16 crypto_uint16_x = *crypto_uint16_p; crypto_uint16 crypto_uint16_y = *crypto_uint16_q; #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_z; __asm__ ("cmpw %2,%1\n movw %1,%0\n cmovaw %2,%1\n cmovaw %0,%2" : "=&r"(crypto_uint16_z), "+&r"(crypto_uint16_x), "+r"(crypto_uint16_y) : : "cc"); *crypto_uint16_p = crypto_uint16_x; *crypto_uint16_q = crypto_uint16_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_r, crypto_uint16_s; __asm__ ("and %w0,%w0,65535\n cmp %w0,%w3,uxth\n csel %w1,%w0,%w3,lo\n csel %w2,%w3,%w0,lo" : "+&r"(crypto_uint16_x), "=&r"(crypto_uint16_r), "=r"(crypto_uint16_s) : "r"(crypto_uint16_y) : "cc"); *crypto_uint16_p = crypto_uint16_r; *crypto_uint16_q = crypto_uint16_s; #else crypto_uint16 crypto_uint16_r = crypto_uint16_y ^ crypto_uint16_x; crypto_uint16 crypto_uint16_z = crypto_uint16_y - crypto_uint16_x; crypto_uint16_z ^= crypto_uint16_r & (crypto_uint16_z ^ crypto_uint16_y ^ (((crypto_uint16) 1) << (16-1))); crypto_uint16_z = crypto_uint16_signed_negative_mask(crypto_uint16_z); crypto_uint16_z &= crypto_uint16_r; crypto_uint16_x ^= crypto_uint16_z; crypto_uint16_y ^= crypto_uint16_z; *crypto_uint16_p = crypto_uint16_x; *crypto_uint16_q = crypto_uint16_y; #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_smaller_mask(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovbw %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n csetm %w0,lo" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else crypto_uint16 crypto_uint16_r = crypto_uint16_x ^ crypto_uint16_y; crypto_uint16 crypto_uint16_z = crypto_uint16_x - crypto_uint16_y; crypto_uint16_z ^= crypto_uint16_r & (crypto_uint16_z ^ crypto_uint16_x ^ (((crypto_uint16) 1) << (16-1))); return crypto_uint16_signed_negative_mask(crypto_uint16_z); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_smaller_01(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovbw %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n cset %w0,lo" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else crypto_uint16 crypto_uint16_r = crypto_uint16_x ^ crypto_uint16_y; crypto_uint16 crypto_uint16_z = crypto_uint16_x - crypto_uint16_y; crypto_uint16_z ^= crypto_uint16_r & (crypto_uint16_z ^ crypto_uint16_x ^ (((crypto_uint16) 1) << (16-1))); return crypto_uint16_topbit_01(crypto_uint16_z); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_leq_mask(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $-1,%1\n cmpw %3,%2\n cmovbew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n csetm %w0,ls" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else return ~crypto_uint16_smaller_mask(crypto_uint16_y,crypto_uint16_x); #endif } __attribute__((unused)) static inline crypto_uint16 crypto_uint16_leq_01(crypto_uint16 crypto_uint16_x,crypto_uint16 crypto_uint16_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 crypto_uint16_q,crypto_uint16_z; __asm__ ("xorw %0,%0\n movw $1,%1\n cmpw %3,%2\n cmovbew %1,%0" : "=&r"(crypto_uint16_z), "=&r"(crypto_uint16_q) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint16 crypto_uint16_z; __asm__ ("and %w0,%w1,65535\n cmp %w0,%w2,uxth\n cset %w0,ls" : "=&r"(crypto_uint16_z) : "r"(crypto_uint16_x), "r"(crypto_uint16_y) : "cc"); return crypto_uint16_z; #else return 1-crypto_uint16_smaller_01(crypto_uint16_y,crypto_uint16_x); #endif } __attribute__((unused)) static inline int crypto_uint16_ones_num(crypto_uint16 crypto_uint16_x) { crypto_uint16 crypto_uint16_y = crypto_uint16_x; const crypto_uint16 C0 = 0x5555; const crypto_uint16 C1 = 0x3333; const crypto_uint16 C2 = 0x0f0f; crypto_uint16_y -= ((crypto_uint16_y >> 1) & C0); crypto_uint16_y = (crypto_uint16_y & C1) + ((crypto_uint16_y >> 2) & C1); crypto_uint16_y = (crypto_uint16_y + (crypto_uint16_y >> 4)) & C2; crypto_uint16_y = (crypto_uint16_y + (crypto_uint16_y >> 8)) & 0xff; return crypto_uint16_y; } __attribute__((unused)) static inline int crypto_uint16_bottomzeros_num(crypto_uint16 crypto_uint16_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint16 fallback = 16; __asm__ ("bsfw %0,%0\n cmovew %1,%0" : "+&r"(crypto_uint16_x) : "r"(fallback) : "cc"); return crypto_uint16_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_uint16_y; __asm__ ("orr %w0,%w1,-65536\n rbit %w0,%w0\n clz %w0,%w0" : "=r"(crypto_uint16_y) : "r"(crypto_uint16_x) : ); return crypto_uint16_y; #else crypto_uint16 crypto_uint16_y = crypto_uint16_x ^ (crypto_uint16_x-1); crypto_uint16_y = ((crypto_uint16_signed) crypto_uint16_y) >> 1; crypto_uint16_y &= ~(crypto_uint16_x & (((crypto_uint16) 1) << (16-1))); return crypto_uint16_ones_num(crypto_uint16_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_uint32.h0000644000000000000000000005114314705505550020123 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_uint32_h #define crypto_uint32_h #include #define crypto_uint32 uint32_t #define crypto_uint32_signed int32_t #define crypto_uint32_signed_optblocker ntruprime_uint32_signed_optblocker extern volatile crypto_uint32_signed crypto_uint32_signed_optblocker; __attribute__((unused)) static inline crypto_uint32 crypto_uint32_load(const unsigned char *crypto_uint32_s) { crypto_uint32 crypto_uint32_z = 0; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 0; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 8; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 16; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 24; return crypto_uint32_z; } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_load_bigendian(const unsigned char *crypto_uint32_s) { crypto_uint32 crypto_uint32_z = 0; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 24; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 16; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 8; crypto_uint32_z |= ((crypto_uint32) (*crypto_uint32_s++)) << 0; return crypto_uint32_z; } __attribute__((unused)) static inline void crypto_uint32_store(unsigned char *crypto_uint32_s,crypto_uint32 crypto_uint32_x) { *crypto_uint32_s++ = crypto_uint32_x >> 0; *crypto_uint32_s++ = crypto_uint32_x >> 8; *crypto_uint32_s++ = crypto_uint32_x >> 16; *crypto_uint32_s++ = crypto_uint32_x >> 24; } __attribute__((unused)) static inline void crypto_uint32_store_bigendian(unsigned char *crypto_uint32_s,crypto_uint32 crypto_uint32_x) { *crypto_uint32_s++ = crypto_uint32_x >> 24; *crypto_uint32_s++ = crypto_uint32_x >> 16; *crypto_uint32_s++ = crypto_uint32_x >> 8; *crypto_uint32_s++ = crypto_uint32_x >> 0; } __attribute__((unused)) static inline crypto_uint32_signed crypto_uint32_signed_negative_mask(crypto_uint32_signed crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarl $31,%0" : "+r"(crypto_uint32_x) : : "cc"); return crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32_signed crypto_uint32_y; __asm__ ("asr %w0,%w1,31" : "=r"(crypto_uint32_y) : "r"(crypto_uint32_x) : ); return crypto_uint32_y; #else crypto_uint32_x >>= 32-6; crypto_uint32_x += crypto_uint32_signed_optblocker; crypto_uint32_x >>= 5; return crypto_uint32_x; #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_topbit_01(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrl $31,%0" : "+r"(crypto_uint32_x) : : "cc"); return crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32_signed crypto_uint32_y; __asm__ ("lsr %w0,%w1,31" : "=r"(crypto_uint32_y) : "r"(crypto_uint32_x) : ); return crypto_uint32_y; #else crypto_uint32_x >>= 32-6; crypto_uint32_x += crypto_uint32_signed_optblocker; crypto_uint32_x >>= 5; return crypto_uint32_x; #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_topbit_mask(crypto_uint32 crypto_uint32_x) { return crypto_uint32_signed_negative_mask(crypto_uint32_x); } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_bottombit_mask(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andl $1,%0" : "+r"(crypto_uint32_x) : : "cc"); return -crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_y; __asm__ ("sbfx %w0,%w1,0,1" : "=r"(crypto_uint32_y) : "r"(crypto_uint32_x) : ); return crypto_uint32_y; #else crypto_uint32_x &= 1 + crypto_uint32_signed_optblocker; return -crypto_uint32_x; #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_bottombit_01(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andl $1,%0" : "+r"(crypto_uint32_x) : : "cc"); return crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_y; __asm__ ("ubfx %w0,%w1,0,1" : "=r"(crypto_uint32_y) : "r"(crypto_uint32_x) : ); return crypto_uint32_y; #else crypto_uint32_x &= 1 + crypto_uint32_signed_optblocker; return crypto_uint32_x; #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_bitinrangepublicpos_mask(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrl %%cl,%0" : "+r"(crypto_uint32_x) : "c"(crypto_uint32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsr %w0,%w0,%w1" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_s) : ); #else crypto_uint32_x >>= crypto_uint32_s ^ crypto_uint32_signed_optblocker; #endif return crypto_uint32_bottombit_mask(crypto_uint32_x); } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_bitinrangepublicpos_01(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrl %%cl,%0" : "+r"(crypto_uint32_x) : "c"(crypto_uint32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsr %w0,%w0,%w1" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_s) : ); #else crypto_uint32_x >>= crypto_uint32_s ^ crypto_uint32_signed_optblocker; #endif return crypto_uint32_bottombit_01(crypto_uint32_x); } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_shlmod(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shll %%cl,%0" : "+r"(crypto_uint32_x) : "c"(crypto_uint32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsl %w0,%w0,%w1" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_s) : ); #else int crypto_uint32_k, crypto_uint32_l; for (crypto_uint32_l = 0,crypto_uint32_k = 1;crypto_uint32_k < 32;++crypto_uint32_l,crypto_uint32_k *= 2) crypto_uint32_x ^= (crypto_uint32_x ^ (crypto_uint32_x << crypto_uint32_k)) & crypto_uint32_bitinrangepublicpos_mask(crypto_uint32_s,crypto_uint32_l); #endif return crypto_uint32_x; } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_shrmod(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrl %%cl,%0" : "+r"(crypto_uint32_x) : "c"(crypto_uint32_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsr %w0,%w0,%w1" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_s) : ); #else int crypto_uint32_k, crypto_uint32_l; for (crypto_uint32_l = 0,crypto_uint32_k = 1;crypto_uint32_k < 32;++crypto_uint32_l,crypto_uint32_k *= 2) crypto_uint32_x ^= (crypto_uint32_x ^ (crypto_uint32_x >> crypto_uint32_k)) & crypto_uint32_bitinrangepublicpos_mask(crypto_uint32_s,crypto_uint32_l); #endif return crypto_uint32_x; } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_bitmod_mask(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_s) { crypto_uint32_x = crypto_uint32_shrmod(crypto_uint32_x,crypto_uint32_s); return crypto_uint32_bottombit_mask(crypto_uint32_x); } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_bitmod_01(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_s) { crypto_uint32_x = crypto_uint32_shrmod(crypto_uint32_x,crypto_uint32_s); return crypto_uint32_bottombit_01(crypto_uint32_x); } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_nonzero_mask(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n testl %2,%2\n cmovnel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,0\n csetm %w0,ne" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #else crypto_uint32_x |= -crypto_uint32_x; return crypto_uint32_signed_negative_mask(crypto_uint32_x); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_nonzero_01(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n testl %2,%2\n cmovnel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,0\n cset %w0,ne" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #else crypto_uint32_x |= -crypto_uint32_x; return crypto_uint32_topbit_01(crypto_uint32_x); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_zero_mask(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n testl %2,%2\n cmovel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,0\n csetm %w0,eq" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #else return ~crypto_uint32_nonzero_mask(crypto_uint32_x); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_zero_01(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n testl %2,%2\n cmovel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,0\n cset %w0,eq" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x) : "cc"); return crypto_uint32_z; #else return 1-crypto_uint32_nonzero_01(crypto_uint32_x); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_unequal_mask(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovnel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,ne" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else return crypto_uint32_nonzero_mask(crypto_uint32_x ^ crypto_uint32_y); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_unequal_01(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovnel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n cset %w0,ne" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else return crypto_uint32_nonzero_01(crypto_uint32_x ^ crypto_uint32_y); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_equal_mask(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,eq" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else return ~crypto_uint32_unequal_mask(crypto_uint32_x,crypto_uint32_y); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_equal_01(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n cset %w0,eq" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else return 1-crypto_uint32_unequal_01(crypto_uint32_x,crypto_uint32_y); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_min(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpl %1,%0\n cmoval %1,%0" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_y) : "cc"); return crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %w0,%w1\n csel %w0,%w0,%w1,lo" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_y) : "cc"); return crypto_uint32_x; #else crypto_uint32 crypto_uint32_r = crypto_uint32_y ^ crypto_uint32_x; crypto_uint32 crypto_uint32_z = crypto_uint32_y - crypto_uint32_x; crypto_uint32_z ^= crypto_uint32_r & (crypto_uint32_z ^ crypto_uint32_y ^ (((crypto_uint32) 1) << (32-1))); crypto_uint32_z = crypto_uint32_signed_negative_mask(crypto_uint32_z); crypto_uint32_z &= crypto_uint32_r; return crypto_uint32_x ^ crypto_uint32_z; #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_max(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpl %1,%0\n cmovbl %1,%0" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_y) : "cc"); return crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %w0,%w1\n csel %w0,%w1,%w0,lo" : "+r"(crypto_uint32_x) : "r"(crypto_uint32_y) : "cc"); return crypto_uint32_x; #else crypto_uint32 crypto_uint32_r = crypto_uint32_y ^ crypto_uint32_x; crypto_uint32 crypto_uint32_z = crypto_uint32_y - crypto_uint32_x; crypto_uint32_z ^= crypto_uint32_r & (crypto_uint32_z ^ crypto_uint32_y ^ (((crypto_uint32) 1) << (32-1))); crypto_uint32_z = crypto_uint32_signed_negative_mask(crypto_uint32_z); crypto_uint32_z &= crypto_uint32_r; return crypto_uint32_y ^ crypto_uint32_z; #endif } __attribute__((unused)) static inline void crypto_uint32_minmax(crypto_uint32 *crypto_uint32_p,crypto_uint32 *crypto_uint32_q) { crypto_uint32 crypto_uint32_x = *crypto_uint32_p; crypto_uint32 crypto_uint32_y = *crypto_uint32_q; #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmpl %2,%1\n movl %1,%0\n cmoval %2,%1\n cmoval %0,%2" : "=&r"(crypto_uint32_z), "+&r"(crypto_uint32_x), "+r"(crypto_uint32_y) : : "cc"); *crypto_uint32_p = crypto_uint32_x; *crypto_uint32_q = crypto_uint32_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_r, crypto_uint32_s; __asm__ ("cmp %w2,%w3\n csel %w0,%w2,%w3,lo\n csel %w1,%w3,%w2,lo" : "=&r"(crypto_uint32_r), "=r"(crypto_uint32_s) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); *crypto_uint32_p = crypto_uint32_r; *crypto_uint32_q = crypto_uint32_s; #else crypto_uint32 crypto_uint32_r = crypto_uint32_y ^ crypto_uint32_x; crypto_uint32 crypto_uint32_z = crypto_uint32_y - crypto_uint32_x; crypto_uint32_z ^= crypto_uint32_r & (crypto_uint32_z ^ crypto_uint32_y ^ (((crypto_uint32) 1) << (32-1))); crypto_uint32_z = crypto_uint32_signed_negative_mask(crypto_uint32_z); crypto_uint32_z &= crypto_uint32_r; crypto_uint32_x ^= crypto_uint32_z; crypto_uint32_y ^= crypto_uint32_z; *crypto_uint32_p = crypto_uint32_x; *crypto_uint32_q = crypto_uint32_y; #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_smaller_mask(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovbl %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,lo" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else crypto_uint32 crypto_uint32_r = crypto_uint32_x ^ crypto_uint32_y; crypto_uint32 crypto_uint32_z = crypto_uint32_x - crypto_uint32_y; crypto_uint32_z ^= crypto_uint32_r & (crypto_uint32_z ^ crypto_uint32_x ^ (((crypto_uint32) 1) << (32-1))); return crypto_uint32_signed_negative_mask(crypto_uint32_z); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_smaller_01(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovbl %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n cset %w0,lo" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else crypto_uint32 crypto_uint32_r = crypto_uint32_x ^ crypto_uint32_y; crypto_uint32 crypto_uint32_z = crypto_uint32_x - crypto_uint32_y; crypto_uint32_z ^= crypto_uint32_r & (crypto_uint32_z ^ crypto_uint32_x ^ (((crypto_uint32) 1) << (32-1))); return crypto_uint32_topbit_01(crypto_uint32_z); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_leq_mask(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpl %3,%2\n cmovbel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n csetm %w0,ls" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else return ~crypto_uint32_smaller_mask(crypto_uint32_y,crypto_uint32_x); #endif } __attribute__((unused)) static inline crypto_uint32 crypto_uint32_leq_01(crypto_uint32 crypto_uint32_x,crypto_uint32 crypto_uint32_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 crypto_uint32_q,crypto_uint32_z; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpl %3,%2\n cmovbel %1,%0" : "=&r"(crypto_uint32_z), "=&r"(crypto_uint32_q) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint32 crypto_uint32_z; __asm__ ("cmp %w1,%w2\n cset %w0,ls" : "=r"(crypto_uint32_z) : "r"(crypto_uint32_x), "r"(crypto_uint32_y) : "cc"); return crypto_uint32_z; #else return 1-crypto_uint32_smaller_01(crypto_uint32_y,crypto_uint32_x); #endif } __attribute__((unused)) static inline int crypto_uint32_ones_num(crypto_uint32 crypto_uint32_x) { crypto_uint32 crypto_uint32_y = crypto_uint32_x; const crypto_uint32 C0 = 0x55555555; const crypto_uint32 C1 = 0x33333333; const crypto_uint32 C2 = 0x0f0f0f0f; crypto_uint32_y -= ((crypto_uint32_y >> 1) & C0); crypto_uint32_y = (crypto_uint32_y & C1) + ((crypto_uint32_y >> 2) & C1); crypto_uint32_y = (crypto_uint32_y + (crypto_uint32_y >> 4)) & C2; crypto_uint32_y += crypto_uint32_y >> 8; crypto_uint32_y = (crypto_uint32_y + (crypto_uint32_y >> 16)) & 0xff; return crypto_uint32_y; } __attribute__((unused)) static inline int crypto_uint32_bottomzeros_num(crypto_uint32 crypto_uint32_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint32 fallback = 32; __asm__ ("bsfl %0,%0\n cmovel %1,%0" : "+&r"(crypto_uint32_x) : "r"(fallback) : "cc"); return crypto_uint32_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_uint32_y; __asm__ ("rbit %w0,%w1\n clz %w0,%w0" : "=r"(crypto_uint32_y) : "r"(crypto_uint32_x) : ); return crypto_uint32_y; #else crypto_uint32 crypto_uint32_y = crypto_uint32_x ^ (crypto_uint32_x-1); crypto_uint32_y = ((crypto_uint32_signed) crypto_uint32_y) >> 1; crypto_uint32_y &= ~(crypto_uint32_x & (((crypto_uint32) 1) << (32-1))); return crypto_uint32_ones_num(crypto_uint32_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_uint64.h0000644000000000000000000005274514705505550020141 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_uint64_h #define crypto_uint64_h #include #define crypto_uint64 uint64_t #define crypto_uint64_signed int64_t #define crypto_uint64_signed_optblocker ntruprime_uint64_signed_optblocker extern volatile crypto_uint64_signed crypto_uint64_signed_optblocker; __attribute__((unused)) static inline crypto_uint64 crypto_uint64_load(const unsigned char *crypto_uint64_s) { crypto_uint64 crypto_uint64_z = 0; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 0; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 8; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 16; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 24; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 32; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 40; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 48; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 56; return crypto_uint64_z; } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_load_bigendian(const unsigned char *crypto_uint64_s) { crypto_uint64 crypto_uint64_z = 0; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 56; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 48; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 40; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 32; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 24; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 16; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 8; crypto_uint64_z |= ((crypto_uint64) (*crypto_uint64_s++)) << 0; return crypto_uint64_z; } __attribute__((unused)) static inline void crypto_uint64_store(unsigned char *crypto_uint64_s,crypto_uint64 crypto_uint64_x) { *crypto_uint64_s++ = crypto_uint64_x >> 0; *crypto_uint64_s++ = crypto_uint64_x >> 8; *crypto_uint64_s++ = crypto_uint64_x >> 16; *crypto_uint64_s++ = crypto_uint64_x >> 24; *crypto_uint64_s++ = crypto_uint64_x >> 32; *crypto_uint64_s++ = crypto_uint64_x >> 40; *crypto_uint64_s++ = crypto_uint64_x >> 48; *crypto_uint64_s++ = crypto_uint64_x >> 56; } __attribute__((unused)) static inline void crypto_uint64_store_bigendian(unsigned char *crypto_uint64_s,crypto_uint64 crypto_uint64_x) { *crypto_uint64_s++ = crypto_uint64_x >> 56; *crypto_uint64_s++ = crypto_uint64_x >> 48; *crypto_uint64_s++ = crypto_uint64_x >> 40; *crypto_uint64_s++ = crypto_uint64_x >> 32; *crypto_uint64_s++ = crypto_uint64_x >> 24; *crypto_uint64_s++ = crypto_uint64_x >> 16; *crypto_uint64_s++ = crypto_uint64_x >> 8; *crypto_uint64_s++ = crypto_uint64_x >> 0; } __attribute__((unused)) static inline crypto_uint64_signed crypto_uint64_signed_negative_mask(crypto_uint64_signed crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarq $63,%0" : "+r"(crypto_uint64_x) : : "cc"); return crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64_signed crypto_uint64_y; __asm__ ("asr %0,%1,63" : "=r"(crypto_uint64_y) : "r"(crypto_uint64_x) : ); return crypto_uint64_y; #else crypto_uint64_x >>= 64-6; crypto_uint64_x += crypto_uint64_signed_optblocker; crypto_uint64_x >>= 5; return crypto_uint64_x; #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_topbit_01(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrq $63,%0" : "+r"(crypto_uint64_x) : : "cc"); return crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64_signed crypto_uint64_y; __asm__ ("lsr %0,%1,63" : "=r"(crypto_uint64_y) : "r"(crypto_uint64_x) : ); return crypto_uint64_y; #else crypto_uint64_x >>= 64-6; crypto_uint64_x += crypto_uint64_signed_optblocker; crypto_uint64_x >>= 5; return crypto_uint64_x; #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_topbit_mask(crypto_uint64 crypto_uint64_x) { return crypto_uint64_signed_negative_mask(crypto_uint64_x); } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_bottombit_mask(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andq $1,%0" : "+r"(crypto_uint64_x) : : "cc"); return -crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_y; __asm__ ("sbfx %0,%1,0,1" : "=r"(crypto_uint64_y) : "r"(crypto_uint64_x) : ); return crypto_uint64_y; #else crypto_uint64_x &= 1 + crypto_uint64_signed_optblocker; return -crypto_uint64_x; #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_bottombit_01(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andq $1,%0" : "+r"(crypto_uint64_x) : : "cc"); return crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_y; __asm__ ("ubfx %0,%1,0,1" : "=r"(crypto_uint64_y) : "r"(crypto_uint64_x) : ); return crypto_uint64_y; #else crypto_uint64_x &= 1 + crypto_uint64_signed_optblocker; return crypto_uint64_x; #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_bitinrangepublicpos_mask(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrq %%cl,%0" : "+r"(crypto_uint64_x) : "c"(crypto_uint64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsr %0,%0,%1" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_s) : ); #else crypto_uint64_x >>= crypto_uint64_s ^ crypto_uint64_signed_optblocker; #endif return crypto_uint64_bottombit_mask(crypto_uint64_x); } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_bitinrangepublicpos_01(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrq %%cl,%0" : "+r"(crypto_uint64_x) : "c"(crypto_uint64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsr %0,%0,%1" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_s) : ); #else crypto_uint64_x >>= crypto_uint64_s ^ crypto_uint64_signed_optblocker; #endif return crypto_uint64_bottombit_01(crypto_uint64_x); } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_shlmod(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shlq %%cl,%0" : "+r"(crypto_uint64_x) : "c"(crypto_uint64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsl %0,%0,%1" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_s) : ); #else int crypto_uint64_k, crypto_uint64_l; for (crypto_uint64_l = 0,crypto_uint64_k = 1;crypto_uint64_k < 64;++crypto_uint64_l,crypto_uint64_k *= 2) crypto_uint64_x ^= (crypto_uint64_x ^ (crypto_uint64_x << crypto_uint64_k)) & crypto_uint64_bitinrangepublicpos_mask(crypto_uint64_s,crypto_uint64_l); #endif return crypto_uint64_x; } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_shrmod(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrq %%cl,%0" : "+r"(crypto_uint64_x) : "c"(crypto_uint64_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("lsr %0,%0,%1" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_s) : ); #else int crypto_uint64_k, crypto_uint64_l; for (crypto_uint64_l = 0,crypto_uint64_k = 1;crypto_uint64_k < 64;++crypto_uint64_l,crypto_uint64_k *= 2) crypto_uint64_x ^= (crypto_uint64_x ^ (crypto_uint64_x >> crypto_uint64_k)) & crypto_uint64_bitinrangepublicpos_mask(crypto_uint64_s,crypto_uint64_l); #endif return crypto_uint64_x; } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_bitmod_mask(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_s) { crypto_uint64_x = crypto_uint64_shrmod(crypto_uint64_x,crypto_uint64_s); return crypto_uint64_bottombit_mask(crypto_uint64_x); } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_bitmod_01(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_s) { crypto_uint64_x = crypto_uint64_shrmod(crypto_uint64_x,crypto_uint64_s); return crypto_uint64_bottombit_01(crypto_uint64_x); } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_nonzero_mask(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n testq %2,%2\n cmovneq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,0\n csetm %0,ne" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #else crypto_uint64_x |= -crypto_uint64_x; return crypto_uint64_signed_negative_mask(crypto_uint64_x); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_nonzero_01(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n testq %2,%2\n cmovneq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,0\n cset %0,ne" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #else crypto_uint64_x |= -crypto_uint64_x; return crypto_uint64_topbit_01(crypto_uint64_x); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_zero_mask(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n testq %2,%2\n cmoveq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,0\n csetm %0,eq" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #else return ~crypto_uint64_nonzero_mask(crypto_uint64_x); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_zero_01(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n testq %2,%2\n cmoveq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,0\n cset %0,eq" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x) : "cc"); return crypto_uint64_z; #else return 1-crypto_uint64_nonzero_01(crypto_uint64_x); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_unequal_mask(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmovneq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n csetm %0,ne" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else return crypto_uint64_nonzero_mask(crypto_uint64_x ^ crypto_uint64_y); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_unequal_01(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmovneq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n cset %0,ne" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else return crypto_uint64_nonzero_01(crypto_uint64_x ^ crypto_uint64_y); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_equal_mask(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmoveq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n csetm %0,eq" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else return ~crypto_uint64_unequal_mask(crypto_uint64_x,crypto_uint64_y); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_equal_01(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmoveq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n cset %0,eq" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else return 1-crypto_uint64_unequal_01(crypto_uint64_x,crypto_uint64_y); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_min(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpq %1,%0\n cmovaq %1,%0" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_y) : "cc"); return crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %0,%1\n csel %0,%0,%1,lo" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_y) : "cc"); return crypto_uint64_x; #else crypto_uint64 crypto_uint64_r = crypto_uint64_y ^ crypto_uint64_x; crypto_uint64 crypto_uint64_z = crypto_uint64_y - crypto_uint64_x; crypto_uint64_z ^= crypto_uint64_r & (crypto_uint64_z ^ crypto_uint64_y ^ (((crypto_uint64) 1) << (64-1))); crypto_uint64_z = crypto_uint64_signed_negative_mask(crypto_uint64_z); crypto_uint64_z &= crypto_uint64_r; return crypto_uint64_x ^ crypto_uint64_z; #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_max(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("cmpq %1,%0\n cmovbq %1,%0" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_y) : "cc"); return crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("cmp %0,%1\n csel %0,%1,%0,lo" : "+r"(crypto_uint64_x) : "r"(crypto_uint64_y) : "cc"); return crypto_uint64_x; #else crypto_uint64 crypto_uint64_r = crypto_uint64_y ^ crypto_uint64_x; crypto_uint64 crypto_uint64_z = crypto_uint64_y - crypto_uint64_x; crypto_uint64_z ^= crypto_uint64_r & (crypto_uint64_z ^ crypto_uint64_y ^ (((crypto_uint64) 1) << (64-1))); crypto_uint64_z = crypto_uint64_signed_negative_mask(crypto_uint64_z); crypto_uint64_z &= crypto_uint64_r; return crypto_uint64_y ^ crypto_uint64_z; #endif } __attribute__((unused)) static inline void crypto_uint64_minmax(crypto_uint64 *crypto_uint64_p,crypto_uint64 *crypto_uint64_q) { crypto_uint64 crypto_uint64_x = *crypto_uint64_p; crypto_uint64 crypto_uint64_y = *crypto_uint64_q; #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmpq %2,%1\n movq %1,%0\n cmovaq %2,%1\n cmovaq %0,%2" : "=&r"(crypto_uint64_z), "+&r"(crypto_uint64_x), "+r"(crypto_uint64_y) : : "cc"); *crypto_uint64_p = crypto_uint64_x; *crypto_uint64_q = crypto_uint64_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_r, crypto_uint64_s; __asm__ ("cmp %2,%3\n csel %0,%2,%3,lo\n csel %1,%3,%2,lo" : "=&r"(crypto_uint64_r), "=r"(crypto_uint64_s) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); *crypto_uint64_p = crypto_uint64_r; *crypto_uint64_q = crypto_uint64_s; #else crypto_uint64 crypto_uint64_r = crypto_uint64_y ^ crypto_uint64_x; crypto_uint64 crypto_uint64_z = crypto_uint64_y - crypto_uint64_x; crypto_uint64_z ^= crypto_uint64_r & (crypto_uint64_z ^ crypto_uint64_y ^ (((crypto_uint64) 1) << (64-1))); crypto_uint64_z = crypto_uint64_signed_negative_mask(crypto_uint64_z); crypto_uint64_z &= crypto_uint64_r; crypto_uint64_x ^= crypto_uint64_z; crypto_uint64_y ^= crypto_uint64_z; *crypto_uint64_p = crypto_uint64_x; *crypto_uint64_q = crypto_uint64_y; #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_smaller_mask(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmovbq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n csetm %0,lo" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else crypto_uint64 crypto_uint64_r = crypto_uint64_x ^ crypto_uint64_y; crypto_uint64 crypto_uint64_z = crypto_uint64_x - crypto_uint64_y; crypto_uint64_z ^= crypto_uint64_r & (crypto_uint64_z ^ crypto_uint64_x ^ (((crypto_uint64) 1) << (64-1))); return crypto_uint64_signed_negative_mask(crypto_uint64_z); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_smaller_01(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmovbq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n cset %0,lo" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else crypto_uint64 crypto_uint64_r = crypto_uint64_x ^ crypto_uint64_y; crypto_uint64 crypto_uint64_z = crypto_uint64_x - crypto_uint64_y; crypto_uint64_z ^= crypto_uint64_r & (crypto_uint64_z ^ crypto_uint64_x ^ (((crypto_uint64) 1) << (64-1))); return crypto_uint64_topbit_01(crypto_uint64_z); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_leq_mask(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $-1,%1\n cmpq %3,%2\n cmovbeq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n csetm %0,ls" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else return ~crypto_uint64_smaller_mask(crypto_uint64_y,crypto_uint64_x); #endif } __attribute__((unused)) static inline crypto_uint64 crypto_uint64_leq_01(crypto_uint64 crypto_uint64_x,crypto_uint64 crypto_uint64_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 crypto_uint64_q,crypto_uint64_z; __asm__ ("xorq %0,%0\n movq $1,%1\n cmpq %3,%2\n cmovbeq %1,%0" : "=&r"(crypto_uint64_z), "=&r"(crypto_uint64_q) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint64 crypto_uint64_z; __asm__ ("cmp %1,%2\n cset %0,ls" : "=r"(crypto_uint64_z) : "r"(crypto_uint64_x), "r"(crypto_uint64_y) : "cc"); return crypto_uint64_z; #else return 1-crypto_uint64_smaller_01(crypto_uint64_y,crypto_uint64_x); #endif } __attribute__((unused)) static inline int crypto_uint64_ones_num(crypto_uint64 crypto_uint64_x) { crypto_uint64 crypto_uint64_y = crypto_uint64_x; const crypto_uint64 C0 = 0x5555555555555555; const crypto_uint64 C1 = 0x3333333333333333; const crypto_uint64 C2 = 0x0f0f0f0f0f0f0f0f; crypto_uint64_y -= ((crypto_uint64_y >> 1) & C0); crypto_uint64_y = (crypto_uint64_y & C1) + ((crypto_uint64_y >> 2) & C1); crypto_uint64_y = (crypto_uint64_y + (crypto_uint64_y >> 4)) & C2; crypto_uint64_y += crypto_uint64_y >> 8; crypto_uint64_y += crypto_uint64_y >> 16; crypto_uint64_y = (crypto_uint64_y + (crypto_uint64_y >> 32)) & 0xff; return crypto_uint64_y; } __attribute__((unused)) static inline int crypto_uint64_bottomzeros_num(crypto_uint64 crypto_uint64_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint64 fallback = 64; __asm__ ("bsfq %0,%0\n cmoveq %1,%0" : "+&r"(crypto_uint64_x) : "r"(fallback) : "cc"); return crypto_uint64_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_uint64_y; __asm__ ("rbit %0,%1\n clz %0,%0" : "=r"(crypto_uint64_y) : "r"(crypto_uint64_x) : ); return crypto_uint64_y; #else crypto_uint64 crypto_uint64_y = crypto_uint64_x ^ (crypto_uint64_x-1); crypto_uint64_y = ((crypto_uint64_signed) crypto_uint64_y) >> 1; crypto_uint64_y &= ~(crypto_uint64_x & (((crypto_uint64) 1) << (64-1))); return crypto_uint64_ones_num(crypto_uint64_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_uint8.h0000644000000000000000000005317114705505550020051 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_uint8_h #define crypto_uint8_h #include #define crypto_uint8 uint8_t #define crypto_uint8_signed int8_t #define crypto_uint8_signed_optblocker ntruprime_uint8_signed_optblocker extern volatile crypto_uint8_signed crypto_uint8_signed_optblocker; __attribute__((unused)) static inline crypto_uint8 crypto_uint8_load(const unsigned char *crypto_uint8_s) { crypto_uint8 crypto_uint8_z = 0; crypto_uint8_z |= ((crypto_uint8) (*crypto_uint8_s++)) << 0; return crypto_uint8_z; } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_load_bigendian(const unsigned char *crypto_uint8_s) { crypto_uint8 crypto_uint8_z = 0; crypto_uint8_z |= ((crypto_uint8) (*crypto_uint8_s++)) << 0; return crypto_uint8_z; } __attribute__((unused)) static inline void crypto_uint8_store(unsigned char *crypto_uint8_s,crypto_uint8 crypto_uint8_x) { *crypto_uint8_s++ = crypto_uint8_x >> 0; } __attribute__((unused)) static inline void crypto_uint8_store_bigendian(unsigned char *crypto_uint8_s,crypto_uint8 crypto_uint8_x) { *crypto_uint8_s++ = crypto_uint8_x >> 0; } __attribute__((unused)) static inline crypto_uint8_signed crypto_uint8_signed_negative_mask(crypto_uint8_signed crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("sarb $7,%0" : "+r"(crypto_uint8_x) : : "cc"); return crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8_signed crypto_uint8_y; __asm__ ("sbfx %w0,%w1,7,1" : "=r"(crypto_uint8_y) : "r"(crypto_uint8_x) : ); return crypto_uint8_y; #else crypto_uint8_x >>= 8-6; crypto_uint8_x += crypto_uint8_signed_optblocker; crypto_uint8_x >>= 5; return crypto_uint8_x; #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_topbit_01(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrb $7,%0" : "+r"(crypto_uint8_x) : : "cc"); return crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8_signed crypto_uint8_y; __asm__ ("ubfx %w0,%w1,7,1" : "=r"(crypto_uint8_y) : "r"(crypto_uint8_x) : ); return crypto_uint8_y; #else crypto_uint8_x >>= 8-6; crypto_uint8_x += crypto_uint8_signed_optblocker; crypto_uint8_x >>= 5; return crypto_uint8_x; #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_topbit_mask(crypto_uint8 crypto_uint8_x) { return crypto_uint8_signed_negative_mask(crypto_uint8_x); } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_bottombit_mask(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andb $1,%0" : "+r"(crypto_uint8_x) : : "cc"); return -crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_y; __asm__ ("sbfx %w0,%w1,0,1" : "=r"(crypto_uint8_y) : "r"(crypto_uint8_x) : ); return crypto_uint8_y; #else crypto_uint8_x &= 1 + crypto_uint8_signed_optblocker; return -crypto_uint8_x; #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_bottombit_01(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("andb $1,%0" : "+r"(crypto_uint8_x) : : "cc"); return crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_y; __asm__ ("ubfx %w0,%w1,0,1" : "=r"(crypto_uint8_y) : "r"(crypto_uint8_x) : ); return crypto_uint8_y; #else crypto_uint8_x &= 1 + crypto_uint8_signed_optblocker; return crypto_uint8_x; #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_bitinrangepublicpos_mask(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrb %%cl,%0" : "+r"(crypto_uint8_x) : "c"(crypto_uint8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,255\n lsr %w0,%w0,%w1" : "+&r"(crypto_uint8_x) : "r"(crypto_uint8_s) : ); #else crypto_uint8_x >>= crypto_uint8_s ^ crypto_uint8_signed_optblocker; #endif return crypto_uint8_bottombit_mask(crypto_uint8_x); } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_bitinrangepublicpos_01(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_s) { #if defined(__GNUC__) && defined(__x86_64__) __asm__ ("shrb %%cl,%0" : "+r"(crypto_uint8_x) : "c"(crypto_uint8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,255\n lsr %w0,%w0,%w1" : "+&r"(crypto_uint8_x) : "r"(crypto_uint8_s) : ); #else crypto_uint8_x >>= crypto_uint8_s ^ crypto_uint8_signed_optblocker; #endif return crypto_uint8_bottombit_01(crypto_uint8_x); } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_shlmod(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8_s &= 7; __asm__ ("shlb %%cl,%0" : "+r"(crypto_uint8_x) : "c"(crypto_uint8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,7\n and %w1,%w1,255\n lsl %w1,%w1,%w0" : "+&r"(crypto_uint8_s), "+r"(crypto_uint8_x) : : ); #else int crypto_uint8_k, crypto_uint8_l; for (crypto_uint8_l = 0,crypto_uint8_k = 1;crypto_uint8_k < 8;++crypto_uint8_l,crypto_uint8_k *= 2) crypto_uint8_x ^= (crypto_uint8_x ^ (crypto_uint8_x << crypto_uint8_k)) & crypto_uint8_bitinrangepublicpos_mask(crypto_uint8_s,crypto_uint8_l); #endif return crypto_uint8_x; } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_shrmod(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_s) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8_s &= 7; __asm__ ("shrb %%cl,%0" : "+r"(crypto_uint8_x) : "c"(crypto_uint8_s) : "cc"); #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,7\n and %w1,%w1,255\n lsr %w1,%w1,%w0" : "+&r"(crypto_uint8_s), "+r"(crypto_uint8_x) : : ); #else int crypto_uint8_k, crypto_uint8_l; for (crypto_uint8_l = 0,crypto_uint8_k = 1;crypto_uint8_k < 8;++crypto_uint8_l,crypto_uint8_k *= 2) crypto_uint8_x ^= (crypto_uint8_x ^ (crypto_uint8_x >> crypto_uint8_k)) & crypto_uint8_bitinrangepublicpos_mask(crypto_uint8_s,crypto_uint8_l); #endif return crypto_uint8_x; } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_bitmod_mask(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_s) { crypto_uint8_x = crypto_uint8_shrmod(crypto_uint8_x,crypto_uint8_s); return crypto_uint8_bottombit_mask(crypto_uint8_x); } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_bitmod_01(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_s) { crypto_uint8_x = crypto_uint8_shrmod(crypto_uint8_x,crypto_uint8_s); return crypto_uint8_bottombit_01(crypto_uint8_x); } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_nonzero_mask(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n testb %b2,%b2\n cmovnel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("tst %w1,255\n csetm %w0,ne" : "=r"(crypto_uint8_z) : "r"(crypto_uint8_x) : "cc"); return crypto_uint8_z; #else crypto_uint8_x |= -crypto_uint8_x; return crypto_uint8_signed_negative_mask(crypto_uint8_x); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_nonzero_01(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n testb %b2,%b2\n cmovnel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("tst %w1,255\n cset %w0,ne" : "=r"(crypto_uint8_z) : "r"(crypto_uint8_x) : "cc"); return crypto_uint8_z; #else crypto_uint8_x |= -crypto_uint8_x; return crypto_uint8_topbit_01(crypto_uint8_x); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_zero_mask(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n testb %b2,%b2\n cmovel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("tst %w1,255\n csetm %w0,eq" : "=r"(crypto_uint8_z) : "r"(crypto_uint8_x) : "cc"); return crypto_uint8_z; #else return ~crypto_uint8_nonzero_mask(crypto_uint8_x); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_zero_01(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n testb %b2,%b2\n cmovel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("tst %w1,255\n cset %w0,eq" : "=r"(crypto_uint8_z) : "r"(crypto_uint8_x) : "cc"); return crypto_uint8_z; #else return 1-crypto_uint8_nonzero_01(crypto_uint8_x); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_unequal_mask(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovnel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n csetm %w0,ne" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else return crypto_uint8_nonzero_mask(crypto_uint8_x ^ crypto_uint8_y); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_unequal_01(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovnel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n cset %w0,ne" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else return crypto_uint8_nonzero_01(crypto_uint8_x ^ crypto_uint8_y); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_equal_mask(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n csetm %w0,eq" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else return ~crypto_uint8_unequal_mask(crypto_uint8_x,crypto_uint8_y); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_equal_01(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n cset %w0,eq" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else return 1-crypto_uint8_unequal_01(crypto_uint8_x,crypto_uint8_y); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_min(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) uint32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y; __asm__ ("cmpb %b1,%b0\n cmoval %1,%0" : "+q"(crypto_uint8_x32) : "q"(crypto_uint8_y32) : "cc"); crypto_uint8_x = crypto_uint8_x32; return crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,255\n cmp %w0,%w1,uxtb\n csel %w0,%w0,%w1,lo" : "+&r"(crypto_uint8_x) : "r"(crypto_uint8_y) : "cc"); return crypto_uint8_x; #else crypto_uint8 crypto_uint8_r = crypto_uint8_y ^ crypto_uint8_x; crypto_uint8 crypto_uint8_z = crypto_uint8_y - crypto_uint8_x; crypto_uint8_z ^= crypto_uint8_r & (crypto_uint8_z ^ crypto_uint8_y ^ (((crypto_uint8) 1) << (8-1))); crypto_uint8_z = crypto_uint8_signed_negative_mask(crypto_uint8_z); crypto_uint8_z &= crypto_uint8_r; return crypto_uint8_x ^ crypto_uint8_z; #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_max(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) uint32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y; __asm__ ("cmpb %b1,%b0\n cmovbl %1,%0" : "+q"(crypto_uint8_x32) : "q"(crypto_uint8_y32) : "cc"); crypto_uint8_x = crypto_uint8_x32; return crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) __asm__ ("and %w0,%w0,255\n cmp %w0,%w1,uxtb\n csel %w0,%w1,%w0,lo" : "+&r"(crypto_uint8_x) : "r"(crypto_uint8_y) : "cc"); return crypto_uint8_x; #else crypto_uint8 crypto_uint8_r = crypto_uint8_y ^ crypto_uint8_x; crypto_uint8 crypto_uint8_z = crypto_uint8_y - crypto_uint8_x; crypto_uint8_z ^= crypto_uint8_r & (crypto_uint8_z ^ crypto_uint8_y ^ (((crypto_uint8) 1) << (8-1))); crypto_uint8_z = crypto_uint8_signed_negative_mask(crypto_uint8_z); crypto_uint8_z &= crypto_uint8_r; return crypto_uint8_y ^ crypto_uint8_z; #endif } __attribute__((unused)) static inline void crypto_uint8_minmax(crypto_uint8 *crypto_uint8_p,crypto_uint8 *crypto_uint8_q) { crypto_uint8 crypto_uint8_x = *crypto_uint8_p; crypto_uint8 crypto_uint8_y = *crypto_uint8_q; #if defined(__GNUC__) && defined(__x86_64__) uint32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_z32; __asm__ ("cmpb %b2,%b1\n movl %1,%0\n cmoval %2,%1\n cmoval %0,%2" : "=&r"(crypto_uint8_z32), "+&q"(crypto_uint8_x32), "+q"(crypto_uint8_y32) : : "cc"); crypto_uint8_x = crypto_uint8_x32; crypto_uint8_y = crypto_uint8_y32; *crypto_uint8_p = crypto_uint8_x; *crypto_uint8_q = crypto_uint8_y; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_r, crypto_uint8_s; __asm__ ("and %w0,%w0,255\n cmp %w0,%w3,uxtb\n csel %w1,%w0,%w3,lo\n csel %w2,%w3,%w0,lo" : "+&r"(crypto_uint8_x), "=&r"(crypto_uint8_r), "=r"(crypto_uint8_s) : "r"(crypto_uint8_y) : "cc"); *crypto_uint8_p = crypto_uint8_r; *crypto_uint8_q = crypto_uint8_s; #else crypto_uint8 crypto_uint8_r = crypto_uint8_y ^ crypto_uint8_x; crypto_uint8 crypto_uint8_z = crypto_uint8_y - crypto_uint8_x; crypto_uint8_z ^= crypto_uint8_r & (crypto_uint8_z ^ crypto_uint8_y ^ (((crypto_uint8) 1) << (8-1))); crypto_uint8_z = crypto_uint8_signed_negative_mask(crypto_uint8_z); crypto_uint8_z &= crypto_uint8_r; crypto_uint8_x ^= crypto_uint8_z; crypto_uint8_y ^= crypto_uint8_z; *crypto_uint8_p = crypto_uint8_x; *crypto_uint8_q = crypto_uint8_y; #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_smaller_mask(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovbl %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n csetm %w0,lo" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else crypto_uint8 crypto_uint8_r = crypto_uint8_x ^ crypto_uint8_y; crypto_uint8 crypto_uint8_z = crypto_uint8_x - crypto_uint8_y; crypto_uint8_z ^= crypto_uint8_r & (crypto_uint8_z ^ crypto_uint8_x ^ (((crypto_uint8) 1) << (8-1))); return crypto_uint8_signed_negative_mask(crypto_uint8_z); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_smaller_01(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovbl %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n cset %w0,lo" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else crypto_uint8 crypto_uint8_r = crypto_uint8_x ^ crypto_uint8_y; crypto_uint8 crypto_uint8_z = crypto_uint8_x - crypto_uint8_y; crypto_uint8_z ^= crypto_uint8_r & (crypto_uint8_z ^ crypto_uint8_x ^ (((crypto_uint8) 1) << (8-1))); return crypto_uint8_topbit_01(crypto_uint8_z); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_leq_mask(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $-1,%1\n cmpb %b3,%b2\n cmovbel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n csetm %w0,ls" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else return ~crypto_uint8_smaller_mask(crypto_uint8_y,crypto_uint8_x); #endif } __attribute__((unused)) static inline crypto_uint8 crypto_uint8_leq_01(crypto_uint8 crypto_uint8_x,crypto_uint8 crypto_uint8_y) { #if defined(__GNUC__) && defined(__x86_64__) crypto_uint8 crypto_uint8_z; int32_t crypto_uint8_x32 = crypto_uint8_x,crypto_uint8_y32 = crypto_uint8_y,crypto_uint8_q32,crypto_uint8_z32; __asm__ ("xorl %0,%0\n movl $1,%1\n cmpb %b3,%b2\n cmovbel %1,%0" : "=&r"(crypto_uint8_z32), "=&r"(crypto_uint8_q32) : "q"(crypto_uint8_x32), "q"(crypto_uint8_y32) : "cc"); crypto_uint8_z = crypto_uint8_z32; return crypto_uint8_z; #elif defined(__GNUC__) && defined(__aarch64__) crypto_uint8 crypto_uint8_z; __asm__ ("and %w0,%w1,255\n cmp %w0,%w2,uxtb\n cset %w0,ls" : "=&r"(crypto_uint8_z) : "r"(crypto_uint8_x), "r"(crypto_uint8_y) : "cc"); return crypto_uint8_z; #else return 1-crypto_uint8_smaller_01(crypto_uint8_y,crypto_uint8_x); #endif } __attribute__((unused)) static inline int crypto_uint8_ones_num(crypto_uint8 crypto_uint8_x) { crypto_uint8 crypto_uint8_y = crypto_uint8_x; const crypto_uint8 C0 = 0x55; const crypto_uint8 C1 = 0x33; const crypto_uint8 C2 = 0x0f; crypto_uint8_y -= ((crypto_uint8_y >> 1) & C0); crypto_uint8_y = (crypto_uint8_y & C1) + ((crypto_uint8_y >> 2) & C1); crypto_uint8_y = (crypto_uint8_y + (crypto_uint8_y >> 4)) & C2; return crypto_uint8_y; } __attribute__((unused)) static inline int crypto_uint8_bottomzeros_num(crypto_uint8 crypto_uint8_x) { #if defined(__GNUC__) && defined(__x86_64__) int32_t fallback = 8; int32_t crypto_uint8_x32 = crypto_uint8_x; __asm__ ("bsfl %0,%0\n cmovel %1,%0" : "+&r"(crypto_uint8_x32) : "r"(fallback) : "cc"); crypto_uint8_x = crypto_uint8_x32; return crypto_uint8_x; #elif defined(__GNUC__) && defined(__aarch64__) int64_t crypto_uint8_y; __asm__ ("orr %w0,%w1,-256\n rbit %w0,%w0\n clz %w0,%w0" : "=r"(crypto_uint8_y) : "r"(crypto_uint8_x) : ); return crypto_uint8_y; #else crypto_uint8 crypto_uint8_y = crypto_uint8_x ^ (crypto_uint8_x-1); crypto_uint8_y = ((crypto_uint8_signed) crypto_uint8_y) >> 1; crypto_uint8_y &= ~(crypto_uint8_x & (((crypto_uint8) 1) << (8-1))); return crypto_uint8_ones_num(crypto_uint8_y); #endif } #endif libntruprime-20241021/cryptoint/crypto_uintN.h0000644000000000000000000013550714705505550020103 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #ifndef crypto_uintN_h #define crypto_uintN_h #include #define crypto_uintN uintN_t #define crypto_uintN_signed intN_t #define crypto_uintN_signed_optblocker namespace_uintN_signed_optblocker extern volatile crypto_uintN_signed crypto_uintN_signed_optblocker; __attribute__((unused)) static inline crypto_uintN crypto_uintN_load(const unsigned char *crypto_uintN_s) { crypto_uintN crypto_uintN_z = 0; int crypto_uintN_k; for (crypto_uintN_k = 0;crypto_uintN_k < N;crypto_uintN_k += 8) crypto_uintN_z |= ((crypto_uintN) (*crypto_uintN_s++)) << crypto_uintN_k; return crypto_uintN_z; } __attribute__((unused)) static inline crypto_uintN crypto_uintN_load_bigendian(const unsigned char *crypto_uintN_s) { crypto_uintN crypto_uintN_z = 0; int crypto_uintN_k; for (crypto_uintN_k = N - 8;crypto_uintN_k >= 0;crypto_uintN_k -= 8) crypto_uintN_z |= ((crypto_uintN) (*crypto_uintN_s++)) << crypto_uintN_k; return crypto_uintN_z; } __attribute__((unused)) static inline void crypto_uintN_store(unsigned char *crypto_uintN_s,crypto_uintN crypto_uintN_x) { int crypto_uintN_k; for (crypto_uintN_k = 0;crypto_uintN_k < N;crypto_uintN_k += 8) *crypto_uintN_s++ = crypto_uintN_x >> crypto_uintN_k; } __attribute__((unused)) static inline void crypto_uintN_store_bigendian(unsigned char *crypto_uintN_s,crypto_uintN crypto_uintN_x) { int crypto_uintN_k; for (crypto_uintN_k = N - 8;crypto_uintN_k >= 0;crypto_uintN_k -= 8) *crypto_uintN_s++ = crypto_uintN_x >> crypto_uintN_k; } __attribute__((unused)) static inline crypto_uintN_signed crypto_uintN_signed_negative_mask(crypto_uintN_signed crypto_uintN_x) { #if amd64 8: readasm("amd64; int8 crypto_uintN_x; crypto_uintN_x signed>>= 7"); 16: readasm("amd64; int16 crypto_uintN_x; crypto_uintN_x signed>>= 15"); 32: readasm("amd64; int32 crypto_uintN_x; crypto_uintN_x signed>>= 31"); 64: readasm("amd64; int64 crypto_uintN_x; crypto_uintN_x signed>>= 63"); return crypto_uintN_x; #elif arm64 crypto_uintN_signed crypto_uintN_y; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = -(1 & (crypto_uintN_x unsigned>> 7))"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = -(1 & (crypto_uintN_x unsigned>> 15))"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = crypto_uintN_x signed>> 31"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = crypto_uintN_x signed>> 63"); return crypto_uintN_y; #else crypto_uintN_x >>= N-6; crypto_uintN_x += crypto_uintN_signed_optblocker; crypto_uintN_x >>= 5; return crypto_uintN_x; #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_topbit_01(crypto_uintN crypto_uintN_x) { #if amd64 8: readasm("amd64; int8 crypto_uintN_x; crypto_uintN_x unsigned>>= 7"); 16: readasm("amd64; int16 crypto_uintN_x; crypto_uintN_x unsigned>>= 15"); 32: readasm("amd64; int32 crypto_uintN_x; crypto_uintN_x unsigned>>= 31"); 64: readasm("amd64; int64 crypto_uintN_x; crypto_uintN_x unsigned>>= 63"); return crypto_uintN_x; #elif arm64 crypto_uintN_signed crypto_uintN_y; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = 1 & (crypto_uintN_x unsigned>> 7)"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = 1 & (crypto_uintN_x unsigned>> 15)"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = crypto_uintN_x unsigned>> 31"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = crypto_uintN_x unsigned>> 63"); return crypto_uintN_y; #else crypto_uintN_x >>= N-6; crypto_uintN_x += crypto_uintN_signed_optblocker; crypto_uintN_x >>= 5; return crypto_uintN_x; #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_topbit_mask(crypto_uintN crypto_uintN_x) { return crypto_uintN_signed_negative_mask(crypto_uintN_x); } __attribute__((unused)) static inline crypto_uintN crypto_uintN_bottombit_mask(crypto_uintN crypto_uintN_x) { #if amd64 8: readasm("amd64; int8 crypto_uintN_x; crypto_uintN_x &= 1"); 16: readasm("amd64; int16 crypto_uintN_x; crypto_uintN_x &= 1"); 32: readasm("amd64; int32 crypto_uintN_x; crypto_uintN_x &= 1"); 64: readasm("amd64; int64 crypto_uintN_x; crypto_uintN_x &= 1"); return -crypto_uintN_x; #elif arm64 crypto_uintN crypto_uintN_y; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = -(1 & (crypto_uintN_x unsigned>> 0))"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = -(1 & (crypto_uintN_x unsigned>> 0))"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = -(1 & (crypto_uintN_x unsigned>> 0))"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = -(1 & (crypto_uintN_x unsigned>> 0))"); return crypto_uintN_y; #else crypto_uintN_x &= 1 + crypto_uintN_signed_optblocker; return -crypto_uintN_x; #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_bottombit_01(crypto_uintN crypto_uintN_x) { #if amd64 8: readasm("amd64; int8 crypto_uintN_x; crypto_uintN_x &= 1"); 16: readasm("amd64; int16 crypto_uintN_x; crypto_uintN_x &= 1"); 32: readasm("amd64; int32 crypto_uintN_x; crypto_uintN_x &= 1"); 64: readasm("amd64; int64 crypto_uintN_x; crypto_uintN_x &= 1"); return crypto_uintN_x; #elif arm64 crypto_uintN crypto_uintN_y; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = 1 & (crypto_uintN_x unsigned>> 0)"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = 1 & (crypto_uintN_x unsigned>> 0)"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = 1 & (crypto_uintN_x unsigned>> 0)"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = 1 & (crypto_uintN_x unsigned>> 0)"); return crypto_uintN_y; #else crypto_uintN_x &= 1 + crypto_uintN_signed_optblocker; return crypto_uintN_x; #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_bitinrangepublicpos_mask(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_s) { #if amd64 8: readasm("amd64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); #elif arm64 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); #else crypto_uintN_x >>= crypto_uintN_s ^ crypto_uintN_signed_optblocker; #endif return crypto_uintN_bottombit_mask(crypto_uintN_x); } __attribute__((unused)) static inline crypto_uintN crypto_uintN_bitinrangepublicpos_01(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_s) { #if amd64 8: readasm("amd64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); #elif arm64 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); #else crypto_uintN_x >>= crypto_uintN_s ^ crypto_uintN_signed_optblocker; #endif return crypto_uintN_bottombit_01(crypto_uintN_x); } __attribute__((unused)) static inline crypto_uintN crypto_uintN_shlmod(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_s) { #if amd64 8: crypto_uintN_s &= 7; 8: readasm("amd64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_x <<= crypto_uintN_s"); 16: crypto_uintN_s &= 15; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_x <<= crypto_uintN_s"); 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x <<= crypto_uintN_s"); 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x <<= crypto_uintN_s"); #elif arm64 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_s = crypto_uintN_s & 7; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x << crypto_uintN_s"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_s = crypto_uintN_s & 15; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x << crypto_uintN_s"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x << crypto_uintN_s"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x << crypto_uintN_s"); #else int crypto_uintN_k, crypto_uintN_l; for (crypto_uintN_l = 0,crypto_uintN_k = 1;crypto_uintN_k < N;++crypto_uintN_l,crypto_uintN_k *= 2) crypto_uintN_x ^= (crypto_uintN_x ^ (crypto_uintN_x << crypto_uintN_k)) & crypto_uintN_bitinrangepublicpos_mask(crypto_uintN_s,crypto_uintN_l); #endif return crypto_uintN_x; } __attribute__((unused)) static inline crypto_uintN crypto_uintN_shrmod(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_s) { #if amd64 8: crypto_uintN_s &= 7; 8: readasm("amd64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 16: crypto_uintN_s &= 15; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x unsigned>>= crypto_uintN_s"); #elif arm64 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_s; crypto_uintN_s = crypto_uintN_s & 7; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_s; crypto_uintN_s = crypto_uintN_s & 15; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_s; crypto_uintN_x = crypto_uintN_x unsigned>> crypto_uintN_s"); #else int crypto_uintN_k, crypto_uintN_l; for (crypto_uintN_l = 0,crypto_uintN_k = 1;crypto_uintN_k < N;++crypto_uintN_l,crypto_uintN_k *= 2) crypto_uintN_x ^= (crypto_uintN_x ^ (crypto_uintN_x >> crypto_uintN_k)) & crypto_uintN_bitinrangepublicpos_mask(crypto_uintN_s,crypto_uintN_l); #endif return crypto_uintN_x; } __attribute__((unused)) static inline crypto_uintN crypto_uintN_bitmod_mask(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_s) { crypto_uintN_x = crypto_uintN_shrmod(crypto_uintN_x,crypto_uintN_s); return crypto_uintN_bottombit_mask(crypto_uintN_x); } __attribute__((unused)) static inline crypto_uintN crypto_uintN_bitmod_01(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_s) { crypto_uintN_x = crypto_uintN_shrmod(crypto_uintN_x,crypto_uintN_s); return crypto_uintN_bottombit_01(crypto_uintN_x); } __attribute__((unused)) static inline crypto_uintN crypto_uintN_nonzero_mask(crypto_uintN crypto_uintN_x) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = -1; crypto_uintN_x32 & (int8) crypto_uintN_x32; crypto_uintN_z32 = crypto_uintN_q32 if !="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if !="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if !="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if !="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 255; crypto_uintN_z = -1 if != else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 65535; crypto_uintN_z = -1 if != else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = -1 if != else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = -1 if != else 0"); return crypto_uintN_z; #else crypto_uintN_x |= -crypto_uintN_x; return crypto_uintN_signed_negative_mask(crypto_uintN_x); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_nonzero_01(crypto_uintN crypto_uintN_x) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = 1; crypto_uintN_x32 & (int8) crypto_uintN_x32; crypto_uintN_z32 = crypto_uintN_q32 if !="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if !="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if !="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if !="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 255; crypto_uintN_z = 1 if != else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 65535; crypto_uintN_z = 1 if != else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = 1 if != else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = 1 if != else 0"); return crypto_uintN_z; #else crypto_uintN_x |= -crypto_uintN_x; return crypto_uintN_topbit_01(crypto_uintN_x); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_zero_mask(crypto_uintN crypto_uintN_x) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = -1; crypto_uintN_x32 & (int8) crypto_uintN_x32; crypto_uintN_z32 = crypto_uintN_q32 if ="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if ="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if ="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if ="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 255; crypto_uintN_z = -1 if = else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 65535; crypto_uintN_z = -1 if = else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = -1 if = else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = -1 if = else 0"); return crypto_uintN_z; #else return ~crypto_uintN_nonzero_mask(crypto_uintN_x); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_zero_01(crypto_uintN crypto_uintN_x) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = 1; crypto_uintN_x32 & (int8) crypto_uintN_x32; crypto_uintN_z32 = crypto_uintN_q32 if ="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if ="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if ="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x & crypto_uintN_x; crypto_uintN_z = crypto_uintN_q if ="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 255; crypto_uintN_z = 1 if = else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_z; crypto_uintN_x & 65535; crypto_uintN_z = 1 if = else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = 1 if = else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_z; crypto_uintN_x - 0; crypto_uintN_z = 1 if = else 0"); return crypto_uintN_z; #else return 1-crypto_uintN_nonzero_01(crypto_uintN_x); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_unequal_mask(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = -1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if !="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if !="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if !="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if !="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = -1 if != else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = -1 if != else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if != else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if != else 0"); return crypto_uintN_z; #else return crypto_uintN_nonzero_mask(crypto_uintN_x ^ crypto_uintN_y); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_unequal_01(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = 1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if !="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if !="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if !="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if !="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = 1 if != else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = 1 if != else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if != else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if != else 0"); return crypto_uintN_z; #else return crypto_uintN_nonzero_01(crypto_uintN_x ^ crypto_uintN_y); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_equal_mask(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = -1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if ="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if ="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if ="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if ="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = -1 if = else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = -1 if = else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if = else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if = else 0"); return crypto_uintN_z; #else return ~crypto_uintN_unequal_mask(crypto_uintN_x,crypto_uintN_y); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_equal_01(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = 1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if ="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if ="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if ="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if ="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = 1 if = else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = 1 if = else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if = else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if = else 0"); return crypto_uintN_z; #else return 1-crypto_uintN_unequal_01(crypto_uintN_x,crypto_uintN_y); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_min(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: uint32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_y32; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_x32 = crypto_uintN_y32 if unsigned>"); 8: crypto_uintN_x = crypto_uintN_x32; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned>"); 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned>"); 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned>"); return crypto_uintN_x; #elif arm64 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x - (uint8) crypto_uintN_y; crypto_uintN_x = crypto_uintN_x if unsigned< else crypto_uintN_y"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x - (uint16) crypto_uintN_y; crypto_uintN_x = crypto_uintN_x if unsigned< else crypto_uintN_y"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_x if unsigned< else crypto_uintN_y"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_x if unsigned< else crypto_uintN_y"); return crypto_uintN_x; #else crypto_uintN crypto_uintN_r = crypto_uintN_y ^ crypto_uintN_x; crypto_uintN crypto_uintN_z = crypto_uintN_y - crypto_uintN_x; crypto_uintN_z ^= crypto_uintN_r & (crypto_uintN_z ^ crypto_uintN_y ^ (((crypto_uintN) 1) << (N-1))); crypto_uintN_z = crypto_uintN_signed_negative_mask(crypto_uintN_z); crypto_uintN_z &= crypto_uintN_r; return crypto_uintN_x ^ crypto_uintN_z; #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_max(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: uint32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_y32; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_x32 = crypto_uintN_y32 if unsigned<"); 8: crypto_uintN_x = crypto_uintN_x32; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned<"); 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned<"); 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned<"); return crypto_uintN_x; #elif arm64 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x - (uint8) crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned< else crypto_uintN_x"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x - (uint16) crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned< else crypto_uintN_x"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned< else crypto_uintN_x"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_x - crypto_uintN_y; crypto_uintN_x = crypto_uintN_y if unsigned< else crypto_uintN_x"); return crypto_uintN_x; #else crypto_uintN crypto_uintN_r = crypto_uintN_y ^ crypto_uintN_x; crypto_uintN crypto_uintN_z = crypto_uintN_y - crypto_uintN_x; crypto_uintN_z ^= crypto_uintN_r & (crypto_uintN_z ^ crypto_uintN_y ^ (((crypto_uintN) 1) << (N-1))); crypto_uintN_z = crypto_uintN_signed_negative_mask(crypto_uintN_z); crypto_uintN_z &= crypto_uintN_r; return crypto_uintN_y ^ crypto_uintN_z; #endif } __attribute__((unused)) static inline void crypto_uintN_minmax(crypto_uintN *crypto_uintN_p,crypto_uintN *crypto_uintN_q) { crypto_uintN crypto_uintN_x = *crypto_uintN_p; crypto_uintN crypto_uintN_y = *crypto_uintN_q; #if amd64 8: uint32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_x32; crypto_uintN_x32 = crypto_uintN_y32 if unsigned>; crypto_uintN_y32 = crypto_uintN_z32 if unsigned>"); 8: crypto_uintN_x = crypto_uintN_x32; crypto_uintN_y = crypto_uintN_y32; 16: crypto_uintN crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_x; crypto_uintN_x = crypto_uintN_y if unsigned>; crypto_uintN_y = crypto_uintN_z if unsigned>"); 32: crypto_uintN crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_x; crypto_uintN_x = crypto_uintN_y if unsigned>; crypto_uintN_y = crypto_uintN_z if unsigned>"); 64: crypto_uintN crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_x; crypto_uintN_x = crypto_uintN_y if unsigned>; crypto_uintN_y = crypto_uintN_z if unsigned>"); *crypto_uintN_p = crypto_uintN_x; *crypto_uintN_q = crypto_uintN_y; #elif arm64 crypto_uintN crypto_uintN_r, crypto_uintN_s; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_r crypto_uintN_s; crypto_uintN_x = (uint8) crypto_uintN_x; crypto_uintN_x - (uint8) crypto_uintN_y; crypto_uintN_r = crypto_uintN_x if unsigned< else crypto_uintN_y; crypto_uintN_s = crypto_uintN_y if unsigned< else crypto_uintN_x"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_r crypto_uintN_s; crypto_uintN_x = (uint16) crypto_uintN_x; crypto_uintN_x - (uint16) crypto_uintN_y; crypto_uintN_r = crypto_uintN_x if unsigned< else crypto_uintN_y; crypto_uintN_s = crypto_uintN_y if unsigned< else crypto_uintN_x"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_r crypto_uintN_s; crypto_uintN_x - crypto_uintN_y; crypto_uintN_r = crypto_uintN_x if unsigned< else crypto_uintN_y; crypto_uintN_s = crypto_uintN_y if unsigned< else crypto_uintN_x"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_r crypto_uintN_s; crypto_uintN_x - crypto_uintN_y; crypto_uintN_r = crypto_uintN_x if unsigned< else crypto_uintN_y; crypto_uintN_s = crypto_uintN_y if unsigned< else crypto_uintN_x"); *crypto_uintN_p = crypto_uintN_r; *crypto_uintN_q = crypto_uintN_s; #else crypto_uintN crypto_uintN_r = crypto_uintN_y ^ crypto_uintN_x; crypto_uintN crypto_uintN_z = crypto_uintN_y - crypto_uintN_x; crypto_uintN_z ^= crypto_uintN_r & (crypto_uintN_z ^ crypto_uintN_y ^ (((crypto_uintN) 1) << (N-1))); crypto_uintN_z = crypto_uintN_signed_negative_mask(crypto_uintN_z); crypto_uintN_z &= crypto_uintN_r; crypto_uintN_x ^= crypto_uintN_z; crypto_uintN_y ^= crypto_uintN_z; *crypto_uintN_p = crypto_uintN_x; *crypto_uintN_q = crypto_uintN_y; #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_smaller_mask(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = -1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if unsigned<"); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<"); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<"); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<"); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = -1 if unsigned< else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = -1 if unsigned< else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if unsigned< else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if unsigned< else 0"); return crypto_uintN_z; #else crypto_uintN crypto_uintN_r = crypto_uintN_x ^ crypto_uintN_y; crypto_uintN crypto_uintN_z = crypto_uintN_x - crypto_uintN_y; crypto_uintN_z ^= crypto_uintN_r & (crypto_uintN_z ^ crypto_uintN_x ^ (((crypto_uintN) 1) << (N-1))); return crypto_uintN_signed_negative_mask(crypto_uintN_z); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_smaller_01(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = 1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if unsigned<"); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<"); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<"); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<"); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = 1 if unsigned< else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = 1 if unsigned< else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if unsigned< else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if unsigned< else 0"); return crypto_uintN_z; #else crypto_uintN crypto_uintN_r = crypto_uintN_x ^ crypto_uintN_y; crypto_uintN crypto_uintN_z = crypto_uintN_x - crypto_uintN_y; crypto_uintN_z ^= crypto_uintN_r & (crypto_uintN_z ^ crypto_uintN_x ^ (((crypto_uintN) 1) << (N-1))); return crypto_uintN_topbit_01(crypto_uintN_z); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_leq_mask(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = -1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if unsigned<="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = -1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = -1 if unsigned<= else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = -1 if unsigned<= else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if unsigned<= else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = -1 if unsigned<= else 0"); return crypto_uintN_z; #else return ~crypto_uintN_smaller_mask(crypto_uintN_y,crypto_uintN_x); #endif } __attribute__((unused)) static inline crypto_uintN crypto_uintN_leq_01(crypto_uintN crypto_uintN_x,crypto_uintN crypto_uintN_y) { #if amd64 8: crypto_uintN crypto_uintN_z; 8: int32_t crypto_uintN_x32 = crypto_uintN_x,crypto_uintN_y32 = crypto_uintN_y,crypto_uintN_q32,crypto_uintN_z32; 8: readasm("amd64; int32 crypto_uintN_x32 crypto_uintN_q32 crypto_uintN_y32 crypto_uintN_z32; crypto_uintN_z32 = 0; crypto_uintN_q32 = 1; crypto_uintN_x32 - (int8) crypto_uintN_y32; crypto_uintN_z32 = crypto_uintN_q32 if unsigned<="); 8: crypto_uintN_z = crypto_uintN_z32; 16: crypto_uintN crypto_uintN_q,crypto_uintN_z; 16: readasm("amd64; int16 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<="); 32: crypto_uintN crypto_uintN_q,crypto_uintN_z; 32: readasm("amd64; int32 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<="); 64: crypto_uintN crypto_uintN_q,crypto_uintN_z; 64: readasm("amd64; int64 crypto_uintN_x crypto_uintN_q crypto_uintN_y crypto_uintN_z; crypto_uintN_z = 0; crypto_uintN_q = 1; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = crypto_uintN_q if unsigned<="); return crypto_uintN_z; #elif arm64 crypto_uintN crypto_uintN_z; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint8) crypto_uintN_x; crypto_uintN_z - (uint8) crypto_uintN_y; crypto_uintN_z = 1 if unsigned<= else 0"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_z = (uint16) crypto_uintN_x; crypto_uintN_z - (uint16) crypto_uintN_y; crypto_uintN_z = 1 if unsigned<= else 0"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if unsigned<= else 0"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y crypto_uintN_z; crypto_uintN_x - crypto_uintN_y; crypto_uintN_z = 1 if unsigned<= else 0"); return crypto_uintN_z; #else return 1-crypto_uintN_smaller_01(crypto_uintN_y,crypto_uintN_x); #endif } __attribute__((unused)) static inline int crypto_uintN_ones_num(crypto_uintN crypto_uintN_x) { crypto_uintN crypto_uintN_y = crypto_uintN_x; 8: const crypto_uintN C0 = 0x55; 16: const crypto_uintN C0 = 0x5555; 32: const crypto_uintN C0 = 0x55555555; 64: const crypto_uintN C0 = 0x5555555555555555; 8: const crypto_uintN C1 = 0x33; 16: const crypto_uintN C1 = 0x3333; 32: const crypto_uintN C1 = 0x33333333; 64: const crypto_uintN C1 = 0x3333333333333333; 8: const crypto_uintN C2 = 0x0f; 16: const crypto_uintN C2 = 0x0f0f; 32: const crypto_uintN C2 = 0x0f0f0f0f; 64: const crypto_uintN C2 = 0x0f0f0f0f0f0f0f0f; crypto_uintN_y -= ((crypto_uintN_y >> 1) & C0); crypto_uintN_y = (crypto_uintN_y & C1) + ((crypto_uintN_y >> 2) & C1); crypto_uintN_y = (crypto_uintN_y + (crypto_uintN_y >> 4)) & C2; 16: crypto_uintN_y = (crypto_uintN_y + (crypto_uintN_y >> 8)) & 0xff; 32: crypto_uintN_y += crypto_uintN_y >> 8; 32: crypto_uintN_y = (crypto_uintN_y + (crypto_uintN_y >> 16)) & 0xff; 64: crypto_uintN_y += crypto_uintN_y >> 8; 64: crypto_uintN_y += crypto_uintN_y >> 16; 64: crypto_uintN_y = (crypto_uintN_y + (crypto_uintN_y >> 32)) & 0xff; return crypto_uintN_y; } __attribute__((unused)) static inline int crypto_uintN_bottomzeros_num(crypto_uintN crypto_uintN_x) { #if amd64 8: int32_t fallback = N; 8: int32_t crypto_uintN_x32 = crypto_uintN_x; 8: readasm("amd64; int32 crypto_uintN_x32 fallback; crypto_uintN_x32 = numbottomzeros_tricky crypto_uintN_x32; crypto_uintN_x32 = fallback if ="); 8: crypto_uintN_x = crypto_uintN_x32; 16: crypto_uintN fallback = N; 16: readasm("amd64; int16 crypto_uintN_x fallback; crypto_uintN_x = numbottomzeros_tricky crypto_uintN_x; crypto_uintN_x = fallback if ="); 32: crypto_uintN fallback = N; 32: readasm("amd64; int32 crypto_uintN_x fallback; crypto_uintN_x = numbottomzeros_tricky crypto_uintN_x; crypto_uintN_x = fallback if ="); 64: crypto_uintN fallback = N; 64: readasm("amd64; int64 crypto_uintN_x fallback; crypto_uintN_x = numbottomzeros_tricky crypto_uintN_x; crypto_uintN_x = fallback if ="); return crypto_uintN_x; #elif arm64 int64_t crypto_uintN_y; 8: readasm("arm64; int8 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = crypto_uintN_x | -256; crypto_uintN_y = bitrev32 crypto_uintN_y; crypto_uintN_y = numbottomzeros crypto_uintN_y"); 16: readasm("arm64; int16 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = crypto_uintN_x | -65536; crypto_uintN_y = bitrev32 crypto_uintN_y; crypto_uintN_y = numbottomzeros crypto_uintN_y"); 32: readasm("arm64; int32 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = bitrev32 crypto_uintN_x; crypto_uintN_y = numbottomzeros crypto_uintN_y"); 64: readasm("arm64; int64 crypto_uintN_x crypto_uintN_y; crypto_uintN_y = bitrev64 crypto_uintN_x; crypto_uintN_y = numbottomzeros crypto_uintN_y"); return crypto_uintN_y; #else crypto_uintN crypto_uintN_y = crypto_uintN_x ^ (crypto_uintN_x-1); crypto_uintN_y = ((crypto_uintN_signed) crypto_uintN_y) >> 1; crypto_uintN_y &= ~(crypto_uintN_x & (((crypto_uintN) 1) << (N-1))); return crypto_uintN_ones_num(crypto_uintN_y); #endif } #endif libntruprime-20241021/cryptoint/functions0000644000000000000000000007734214705505550017172 0ustar rootrootTYPE TYPE_load(const unsigned char *S) { TYPE Z = 0; int K; for (K = 0;K < N;K += 8) Z |= ((TYPE) (*S++)) << K; return Z; } TYPE TYPE_load_bigendian(const unsigned char *S) { TYPE Z = 0; int K; for (K = N - 8;K >= 0;K -= 8) Z |= ((TYPE) (*S++)) << K; return Z; } void TYPE_store(unsigned char *S,TYPE X) { int K; for (K = 0;K < N;K += 8) *S++ = X >> K; } void TYPE_store_bigendian(unsigned char *S,TYPE X) { int K; for (K = N - 8;K >= 0;K -= 8) *S++ = X >> K; } # could instead use X >>= (N-1) ^ SIGNED_optblocker SIGNED SIGNED_negative_mask(SIGNED X) { #if amd64 8: readasm("amd64; int8 X; X signed>>= 7"); 16: readasm("amd64; int16 X; X signed>>= 15"); 32: readasm("amd64; int32 X; X signed>>= 31"); 64: readasm("amd64; int64 X; X signed>>= 63"); return X; #elif arm64 SIGNED Y; 8: readasm("arm64; int8 X Y; Y = -(1 & (X unsigned>> 7))"); 16: readasm("arm64; int16 X Y; Y = -(1 & (X unsigned>> 15))"); 32: readasm("arm64; int32 X Y; Y = X signed>> 31"); 64: readasm("arm64; int64 X Y; Y = X signed>> 63"); return Y; #else X >>= N-6; X += SIGNED_optblocker; X >>= 5; return X; #endif } UNSIGNED UNSIGNED_topbit_01(UNSIGNED X) { #if amd64 8: readasm("amd64; int8 X; X unsigned>>= 7"); 16: readasm("amd64; int16 X; X unsigned>>= 15"); 32: readasm("amd64; int32 X; X unsigned>>= 31"); 64: readasm("amd64; int64 X; X unsigned>>= 63"); return X; #elif arm64 SIGNED Y; 8: readasm("arm64; int8 X Y; Y = 1 & (X unsigned>> 7)"); 16: readasm("arm64; int16 X Y; Y = 1 & (X unsigned>> 15)"); 32: readasm("arm64; int32 X Y; Y = X unsigned>> 31"); 64: readasm("arm64; int64 X Y; Y = X unsigned>> 63"); return Y; #else X >>= N-6; X += SIGNED_optblocker; X >>= 5; return X; #endif } SIGNED: TYPE TYPE_negative_01(TYPE X) { return UNSIGNED_topbit_01(X); } SIGNED: TYPE TYPE_topbit_mask(TYPE X) { return SIGNED_negative_mask(X); } SIGNED: TYPE TYPE_topbit_01(TYPE X) { return UNSIGNED_topbit_01(X); } UNSIGNED: TYPE TYPE_topbit_mask(TYPE X) { return SIGNED_negative_mask(X); } TYPE TYPE_bottombit_mask(TYPE X) { #if amd64 8: readasm("amd64; int8 X; X &= 1"); 16: readasm("amd64; int16 X; X &= 1"); 32: readasm("amd64; int32 X; X &= 1"); 64: readasm("amd64; int64 X; X &= 1"); return -X; #elif arm64 TYPE Y; 8: readasm("arm64; int8 X Y; Y = -(1 & (X unsigned>> 0))"); 16: readasm("arm64; int16 X Y; Y = -(1 & (X unsigned>> 0))"); 32: readasm("arm64; int32 X Y; Y = -(1 & (X unsigned>> 0))"); 64: readasm("arm64; int64 X Y; Y = -(1 & (X unsigned>> 0))"); return Y; #else X &= 1 + SIGNED_optblocker; return -X; #endif } TYPE TYPE_bottombit_01(TYPE X) { #if amd64 8: readasm("amd64; int8 X; X &= 1"); 16: readasm("amd64; int16 X; X &= 1"); 32: readasm("amd64; int32 X; X &= 1"); 64: readasm("amd64; int64 X; X &= 1"); return X; #elif arm64 TYPE Y; 8: readasm("arm64; int8 X Y; Y = 1 & (X unsigned>> 0)"); 16: readasm("arm64; int16 X Y; Y = 1 & (X unsigned>> 0)"); 32: readasm("arm64; int32 X Y; Y = 1 & (X unsigned>> 0)"); 64: readasm("arm64; int64 X Y; Y = 1 & (X unsigned>> 0)"); return Y; #else X &= 1 + SIGNED_optblocker; return X; #endif } # without optblocker here, seems possible that compiler will cause trouble, # especially if S is compile-time constant N-1 SIGNED: TYPE TYPE_bitinrangepublicpos_mask(TYPE X,TYPE S) { #if amd64 8: readasm("amd64; int8 X S; X signed>>= S"); 16: readasm("amd64; int16 X S; X signed>>= S"); 32: readasm("amd64; int32 X S; X signed>>= S"); 64: readasm("amd64; int64 X S; X signed>>= S"); #elif arm64 8: readasm("arm64; int8 X S; X = (int8) X; X = X signed>> S"); 16: readasm("arm64; int16 X S; X = (int16) X; X = X signed>> S"); 32: readasm("arm64; int32 X S; X = X signed>> S"); 64: readasm("arm64; int64 X S; X = X signed>> S"); #else X >>= S ^ SIGNED_optblocker; #endif return TYPE_bottombit_mask(X); } # without optblocker here, seems possible that compiler will cause trouble, # especially if S is compile-time constant N-1 SIGNED: TYPE TYPE_bitinrangepublicpos_01(TYPE X,TYPE S) { #if amd64 8: readasm("amd64; int8 X S; X signed>>= S"); 16: readasm("amd64; int16 X S; X signed>>= S"); 32: readasm("amd64; int32 X S; X signed>>= S"); 64: readasm("amd64; int64 X S; X signed>>= S"); #elif arm64 8: readasm("arm64; int8 X S; X = (int8) X; X = X signed>> S"); 16: readasm("arm64; int16 X S; X = (int16) X; X = X signed>> S"); 32: readasm("arm64; int32 X S; X = X signed>> S"); 64: readasm("arm64; int64 X S; X = X signed>> S"); #else X >>= S ^ SIGNED_optblocker; #endif return TYPE_bottombit_01(X); } # without optblocker here, seems possible that compiler will cause trouble, # especially if S is compile-time constant N-1 UNSIGNED: TYPE TYPE_bitinrangepublicpos_mask(TYPE X,TYPE S) { #if amd64 8: readasm("amd64; int8 X S; X unsigned>>= S"); 16: readasm("amd64; int16 X S; X unsigned>>= S"); 32: readasm("amd64; int32 X S; X unsigned>>= S"); 64: readasm("amd64; int64 X S; X unsigned>>= S"); #elif arm64 8: readasm("arm64; int8 X S; X = (uint8) X; X = X unsigned>> S"); 16: readasm("arm64; int16 X S; X = (uint16) X; X = X unsigned>> S"); 32: readasm("arm64; int32 X S; X = X unsigned>> S"); 64: readasm("arm64; int64 X S; X = X unsigned>> S"); #else X >>= S ^ SIGNED_optblocker; #endif return TYPE_bottombit_mask(X); } # without optblocker here, seems possible that compiler will cause trouble, # especially if S is compile-time constant N-1 UNSIGNED: TYPE TYPE_bitinrangepublicpos_01(TYPE X,TYPE S) { #if amd64 8: readasm("amd64; int8 X S; X unsigned>>= S"); 16: readasm("amd64; int16 X S; X unsigned>>= S"); 32: readasm("amd64; int32 X S; X unsigned>>= S"); 64: readasm("amd64; int64 X S; X unsigned>>= S"); #elif arm64 8: readasm("arm64; int8 X S; X = (uint8) X; X = X unsigned>> S"); 16: readasm("arm64; int16 X S; X = (uint16) X; X = X unsigned>> S"); 32: readasm("arm64; int32 X S; X = X unsigned>> S"); 64: readasm("arm64; int64 X S; X = X unsigned>> S"); #else X >>= S ^ SIGNED_optblocker; #endif return TYPE_bottombit_01(X); } # same as (X << (S % N)) but without assuming barrel shifter # for amd64, assumes constant-time barrel shifter TYPE TYPE_shlmod(TYPE X,TYPE S) { #if amd64 8: S &= 7; 8: readasm("amd64; int8 X S; X <<= S"); 16: S &= 15; 16: readasm("amd64; int16 X S; X <<= S"); 32: readasm("amd64; int32 X S; X <<= S"); 64: readasm("amd64; int64 X S; X <<= S"); #elif arm64 8: readasm("arm64; int8 X S; S = S & 7; X = (uint8) X; X = X << S"); 16: readasm("arm64; int16 X S; S = S & 15; X = (uint16) X; X = X << S"); 32: readasm("arm64; int32 X S; X = X << S"); 64: readasm("arm64; int64 X S; X = X << S"); #else int K, L; for (L = 0,K = 1;K < N;++L,K *= 2) X ^= (X ^ (X << K)) & TYPE_bitinrangepublicpos_mask(S,L); #endif return X; } # same as (X >> (S % N)) but without assuming barrel shifter SIGNED: TYPE TYPE_shrmod(TYPE X,TYPE S) { #if amd64 8: S &= 7; 8: readasm("amd64; int8 X S; X signed>>= S"); 16: S &= 15; 16: readasm("amd64; int16 X S; X signed>>= S"); 32: readasm("amd64; int32 X S; X signed>>= S"); 64: readasm("amd64; int64 X S; X signed>>= S"); #elif arm64 8: readasm("arm64; int8 X S; S = S & 7; X = (int8) X; X = X signed>> S"); 16: readasm("arm64; int16 X S; S = S & 15; X = (int16) X; X = X signed>> S"); 32: readasm("arm64; int32 X S; X = X signed>> S"); 64: readasm("arm64; int64 X S; X = X signed>> S"); #else int K, L; for (L = 0,K = 1;K < N;++L,K *= 2) X ^= (X ^ (X >> K)) & TYPE_bitinrangepublicpos_mask(S,L); #endif return X; } # same as (X >> (S % N)) but without assuming barrel shifter UNSIGNED: TYPE TYPE_shrmod(TYPE X,TYPE S) { #if amd64 8: S &= 7; 8: readasm("amd64; int8 X S; X unsigned>>= S"); 16: S &= 15; 16: readasm("amd64; int16 X S; X unsigned>>= S"); 32: readasm("amd64; int32 X S; X unsigned>>= S"); 64: readasm("amd64; int64 X S; X unsigned>>= S"); #elif arm64 8: readasm("arm64; int8 X S; S = S & 7; X = (uint8) X; X = X unsigned>> S"); 16: readasm("arm64; int16 X S; S = S & 15; X = (uint16) X; X = X unsigned>> S"); 32: readasm("arm64; int32 X S; X = X unsigned>> S"); 64: readasm("arm64; int64 X S; X = X unsigned>> S"); #else int K, L; for (L = 0,K = 1;K < N;++L,K *= 2) X ^= (X ^ (X >> K)) & TYPE_bitinrangepublicpos_mask(S,L); #endif return X; } TYPE TYPE_bitmod_mask(TYPE X,TYPE S) { X = TYPE_shrmod(X,S); return TYPE_bottombit_mask(X); } TYPE TYPE_bitmod_01(TYPE X,TYPE S) { X = TYPE_shrmod(X,S); return TYPE_bottombit_01(X); } TYPE TYPE_nonzero_mask(TYPE X) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Z32; Z32 = 0; Q32 = -1; X32 & (int8) X32; Z32 = Q32 if !="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Z; Z = 0; Q = -1; X & X; Z = Q if !="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Z; Z = 0; Q = -1; X & X; Z = Q if !="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Z; Z = 0; Q = -1; X & X; Z = Q if !="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Z; X & 255; Z = -1 if != else 0"); 16: readasm("arm64; int16 X Z; X & 65535; Z = -1 if != else 0"); 32: readasm("arm64; int32 X Z; X - 0; Z = -1 if != else 0"); 64: readasm("arm64; int64 X Z; X - 0; Z = -1 if != else 0"); return Z; #else X |= -X; return SIGNED_negative_mask(X); #endif } # XXX: for amd64, use set instead of cmov TYPE TYPE_nonzero_01(TYPE X) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Z32; Z32 = 0; Q32 = 1; X32 & (int8) X32; Z32 = Q32 if !="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Z; Z = 0; Q = 1; X & X; Z = Q if !="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Z; Z = 0; Q = 1; X & X; Z = Q if !="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Z; Z = 0; Q = 1; X & X; Z = Q if !="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Z; X & 255; Z = 1 if != else 0"); 16: readasm("arm64; int16 X Z; X & 65535; Z = 1 if != else 0"); 32: readasm("arm64; int32 X Z; X - 0; Z = 1 if != else 0"); 64: readasm("arm64; int64 X Z; X - 0; Z = 1 if != else 0"); return Z; #else X |= -X; return UNSIGNED_topbit_01(X); #endif } SIGNED: TYPE TYPE_positive_mask(TYPE X) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Z32; Z32 = 0; Q32 = -1; X32 & (int8) X32; Z32 = Q32 if signed>"); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Z; Z = 0; Q = -1; X & X; Z = Q if signed>"); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Z; Z = 0; Q = -1; X & X; Z = Q if signed>"); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Z; Z = 0; Q = -1; X & X; Z = Q if signed>"); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Z; Z = (int8) X; Z - 0; Z = -1 if signed> else 0"); 16: readasm("arm64; int16 X Z; Z = (int16) X; Z - 0; Z = -1 if signed> else 0"); 32: readasm("arm64; int32 X Z; X - 0; Z = -1 if signed> else 0"); 64: readasm("arm64; int64 X Z; X - 0; Z = -1 if signed> else 0"); return Z; #else TYPE Z = -X; Z ^= X & Z; return TYPE_negative_mask(Z); #endif } SIGNED: TYPE TYPE_positive_01(TYPE X) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Z32; Z32 = 0; Q32 = 1; X32 & (int8) X32; Z32 = Q32 if signed>"); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Z; Z = 0; Q = 1; X & X; Z = Q if signed>"); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Z; Z = 0; Q = 1; X & X; Z = Q if signed>"); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Z; Z = 0; Q = 1; X & X; Z = Q if signed>"); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Z; Z = (int8) X; Z - 0; Z = 1 if signed> else 0"); 16: readasm("arm64; int16 X Z; Z = (int16) X; Z - 0; Z = 1 if signed> else 0"); 32: readasm("arm64; int32 X Z; X - 0; Z = 1 if signed> else 0"); 64: readasm("arm64; int64 X Z; X - 0; Z = 1 if signed> else 0"); return Z; #else TYPE Z = -X; Z ^= X & Z; return UNSIGNED_topbit_01(Z); #endif } TYPE TYPE_zero_mask(TYPE X) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Z32; Z32 = 0; Q32 = -1; X32 & (int8) X32; Z32 = Q32 if ="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Z; Z = 0; Q = -1; X & X; Z = Q if ="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Z; Z = 0; Q = -1; X & X; Z = Q if ="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Z; Z = 0; Q = -1; X & X; Z = Q if ="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Z; X & 255; Z = -1 if = else 0"); 16: readasm("arm64; int16 X Z; X & 65535; Z = -1 if = else 0"); 32: readasm("arm64; int32 X Z; X - 0; Z = -1 if = else 0"); 64: readasm("arm64; int64 X Z; X - 0; Z = -1 if = else 0"); return Z; #else return ~TYPE_nonzero_mask(X); #endif } TYPE TYPE_zero_01(TYPE X) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Z32; Z32 = 0; Q32 = 1; X32 & (int8) X32; Z32 = Q32 if ="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Z; Z = 0; Q = 1; X & X; Z = Q if ="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Z; Z = 0; Q = 1; X & X; Z = Q if ="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Z; Z = 0; Q = 1; X & X; Z = Q if ="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Z; X & 255; Z = 1 if = else 0"); 16: readasm("arm64; int16 X Z; X & 65535; Z = 1 if = else 0"); 32: readasm("arm64; int32 X Z; X - 0; Z = 1 if = else 0"); 64: readasm("arm64; int64 X Z; X - 0; Z = 1 if = else 0"); return Z; #else return 1-TYPE_nonzero_01(X); #endif } TYPE TYPE_unequal_mask(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = -1; X32 - (int8) Y32; Z32 = Q32 if !="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if !="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if !="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if !="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = -1 if != else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = -1 if != else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = -1 if != else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = -1 if != else 0"); return Z; #else return TYPE_nonzero_mask(X ^ Y); #endif } TYPE TYPE_unequal_01(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = 1; X32 - (int8) Y32; Z32 = Q32 if !="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if !="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if !="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if !="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = 1 if != else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = 1 if != else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = 1 if != else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = 1 if != else 0"); return Z; #else return TYPE_nonzero_01(X ^ Y); #endif } TYPE TYPE_equal_mask(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = -1; X32 - (int8) Y32; Z32 = Q32 if ="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if ="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if ="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if ="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = -1 if = else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = -1 if = else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = -1 if = else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = -1 if = else 0"); return Z; #else return ~TYPE_unequal_mask(X,Y); #endif } TYPE TYPE_equal_01(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = 1; X32 - (int8) Y32; Z32 = Q32 if ="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if ="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if ="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if ="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = 1 if = else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = 1 if = else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = 1 if = else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = 1 if = else 0"); return Z; #else return 1-TYPE_unequal_01(X,Y); #endif } SIGNED: TYPE TYPE_min(TYPE X,TYPE Y) { #if amd64 8: int32_t X32 = X,Y32 = Y; 8: readasm("amd64; int32 X32 Y32; X32 - (int8) Y32; X32 = Y32 if signed>"); 8: X = X32; 16: readasm("amd64; int16 X Y; X - Y; X = Y if signed>"); 32: readasm("amd64; int32 X Y; X - Y; X = Y if signed>"); 64: readasm("amd64; int64 X Y; X - Y; X = Y if signed>"); return X; #elif arm64 8: readasm("arm64; int8 X Y; X = (int8) X; X - (int8) Y; X = X if signed< else Y"); 16: readasm("arm64; int16 X Y; X = (int16) X; X - (int16) Y; X = X if signed< else Y"); 32: readasm("arm64; int32 X Y; X - Y; X = X if signed< else Y"); 64: readasm("arm64; int64 X Y; X - Y; X = X if signed< else Y"); return X; #else TYPE R = Y ^ X; TYPE Z = Y - X; Z ^= R & (Z ^ Y); Z = TYPE_negative_mask(Z); Z &= R; return X ^ Z; #endif } UNSIGNED: TYPE TYPE_min(TYPE X,TYPE Y) { #if amd64 8: uint32_t X32 = X,Y32 = Y; 8: readasm("amd64; int32 X32 Y32; X32 - (int8) Y32; X32 = Y32 if unsigned>"); 8: X = X32; 16: readasm("amd64; int16 X Y; X - Y; X = Y if unsigned>"); 32: readasm("amd64; int32 X Y; X - Y; X = Y if unsigned>"); 64: readasm("amd64; int64 X Y; X - Y; X = Y if unsigned>"); return X; #elif arm64 8: readasm("arm64; int8 X Y; X = (uint8) X; X - (uint8) Y; X = X if unsigned< else Y"); 16: readasm("arm64; int16 X Y; X = (uint16) X; X - (uint16) Y; X = X if unsigned< else Y"); 32: readasm("arm64; int32 X Y; X - Y; X = X if unsigned< else Y"); 64: readasm("arm64; int64 X Y; X - Y; X = X if unsigned< else Y"); return X; #else TYPE R = Y ^ X; TYPE Z = Y - X; Z ^= R & (Z ^ Y ^ (((TYPE) 1) << (N-1))); Z = SIGNED_negative_mask(Z); Z &= R; return X ^ Z; #endif } SIGNED: TYPE TYPE_max(TYPE X,TYPE Y) { #if amd64 8: int32_t X32 = X,Y32 = Y; 8: readasm("amd64; int32 X32 Y32; X32 - (int8) Y32; X32 = Y32 if signed<"); 8: X = X32; 16: readasm("amd64; int16 X Y; X - Y; X = Y if signed<"); 32: readasm("amd64; int32 X Y; X - Y; X = Y if signed<"); 64: readasm("amd64; int64 X Y; X - Y; X = Y if signed<"); return X; #elif arm64 8: readasm("arm64; int8 X Y; X = (int8) X; X - (int8) Y; X = Y if signed< else X"); 16: readasm("arm64; int16 X Y; X = (int16) X; X - (int16) Y; X = Y if signed< else X"); 32: readasm("arm64; int32 X Y; X - Y; X = Y if signed< else X"); 64: readasm("arm64; int64 X Y; X - Y; X = Y if signed< else X"); return X; #else TYPE R = Y ^ X; TYPE Z = Y - X; Z ^= R & (Z ^ Y); Z = TYPE_negative_mask(Z); Z &= R; return Y ^ Z; #endif } UNSIGNED: TYPE TYPE_max(TYPE X,TYPE Y) { #if amd64 8: uint32_t X32 = X,Y32 = Y; 8: readasm("amd64; int32 X32 Y32; X32 - (int8) Y32; X32 = Y32 if unsigned<"); 8: X = X32; 16: readasm("amd64; int16 X Y; X - Y; X = Y if unsigned<"); 32: readasm("amd64; int32 X Y; X - Y; X = Y if unsigned<"); 64: readasm("amd64; int64 X Y; X - Y; X = Y if unsigned<"); return X; #elif arm64 8: readasm("arm64; int8 X Y; X = (uint8) X; X - (uint8) Y; X = Y if unsigned< else X"); 16: readasm("arm64; int16 X Y; X = (uint16) X; X - (uint16) Y; X = Y if unsigned< else X"); 32: readasm("arm64; int32 X Y; X - Y; X = Y if unsigned< else X"); 64: readasm("arm64; int64 X Y; X - Y; X = Y if unsigned< else X"); return X; #else TYPE R = Y ^ X; TYPE Z = Y - X; Z ^= R & (Z ^ Y ^ (((TYPE) 1) << (N-1))); Z = SIGNED_negative_mask(Z); Z &= R; return Y ^ Z; #endif } SIGNED: void TYPE_minmax(TYPE *P,TYPE *Q) { TYPE X = *P; TYPE Y = *Q; #if amd64 8: int32_t X32 = X,Y32 = Y,Z32; 8: readasm("amd64; int32 X32 Y32 Z32; X32 - (int8) Y32; Z32 = X32; X32 = Y32 if signed>; Y32 = Z32 if signed>"); 8: X = X32; Y = Y32; 16: TYPE Z; 16: readasm("amd64; int16 X Y Z; X - Y; Z = X; X = Y if signed>; Y = Z if signed>"); 32: TYPE Z; 32: readasm("amd64; int32 X Y Z; X - Y; Z = X; X = Y if signed>; Y = Z if signed>"); 64: TYPE Z; 64: readasm("amd64; int64 X Y Z; X - Y; Z = X; X = Y if signed>; Y = Z if signed>"); *P = X; *Q = Y; #elif arm64 TYPE R, S; 8: readasm("arm64; int8 X Y R S; X = (int8) X; X - (int8) Y; R = X if signed< else Y; S = Y if signed< else X"); 16: readasm("arm64; int16 X Y R S; X = (int16) X; X - (int16) Y; R = X if signed< else Y; S = Y if signed< else X"); 32: readasm("arm64; int32 X Y R S; X - Y; R = X if signed< else Y; S = Y if signed< else X"); 64: readasm("arm64; int64 X Y R S; X - Y; R = X if signed< else Y; S = Y if signed< else X"); *P = R; *Q = S; #else TYPE R = Y ^ X; TYPE Z = Y - X; Z ^= R & (Z ^ Y); Z = TYPE_negative_mask(Z); Z &= R; X ^= Z; Y ^= Z; *P = X; *Q = Y; #endif } UNSIGNED: void TYPE_minmax(TYPE *P,TYPE *Q) { TYPE X = *P; TYPE Y = *Q; #if amd64 8: uint32_t X32 = X,Y32 = Y,Z32; 8: readasm("amd64; int32 X32 Y32 Z32; X32 - (int8) Y32; Z32 = X32; X32 = Y32 if unsigned>; Y32 = Z32 if unsigned>"); 8: X = X32; Y = Y32; 16: TYPE Z; 16: readasm("amd64; int16 X Y Z; X - Y; Z = X; X = Y if unsigned>; Y = Z if unsigned>"); 32: TYPE Z; 32: readasm("amd64; int32 X Y Z; X - Y; Z = X; X = Y if unsigned>; Y = Z if unsigned>"); 64: TYPE Z; 64: readasm("amd64; int64 X Y Z; X - Y; Z = X; X = Y if unsigned>; Y = Z if unsigned>"); *P = X; *Q = Y; #elif arm64 TYPE R, S; 8: readasm("arm64; int8 X Y R S; X = (uint8) X; X - (uint8) Y; R = X if unsigned< else Y; S = Y if unsigned< else X"); 16: readasm("arm64; int16 X Y R S; X = (uint16) X; X - (uint16) Y; R = X if unsigned< else Y; S = Y if unsigned< else X"); 32: readasm("arm64; int32 X Y R S; X - Y; R = X if unsigned< else Y; S = Y if unsigned< else X"); 64: readasm("arm64; int64 X Y R S; X - Y; R = X if unsigned< else Y; S = Y if unsigned< else X"); *P = R; *Q = S; #else TYPE R = Y ^ X; TYPE Z = Y - X; Z ^= R & (Z ^ Y ^ (((TYPE) 1) << (N-1))); Z = SIGNED_negative_mask(Z); Z &= R; X ^= Z; Y ^= Z; *P = X; *Q = Y; #endif } SIGNED: TYPE TYPE_smaller_mask(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = -1; X32 - (int8) Y32; Z32 = Q32 if signed<"); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if signed<"); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if signed<"); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if signed<"); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (int8) X; Z - (int8) Y; Z = -1 if signed< else 0"); 16: readasm("arm64; int16 X Y Z; Z = (int16) X; Z - (int16) Y; Z = -1 if signed< else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = -1 if signed< else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = -1 if signed< else 0"); return Z; #else TYPE R = X ^ Y; TYPE Z = X - Y; Z ^= R & (Z ^ X); return TYPE_negative_mask(Z); #endif } SIGNED: TYPE TYPE_smaller_01(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = 1; X32 - (int8) Y32; Z32 = Q32 if signed<"); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if signed<"); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if signed<"); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if signed<"); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (int8) X; Z - (int8) Y; Z = 1 if signed< else 0"); 16: readasm("arm64; int16 X Y Z; Z = (int16) X; Z - (int16) Y; Z = 1 if signed< else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = 1 if signed< else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = 1 if signed< else 0"); return Z; #else TYPE R = X ^ Y; TYPE Z = X - Y; Z ^= R & (Z ^ X); return UNSIGNED_topbit_01(Z); #endif } UNSIGNED: TYPE TYPE_smaller_mask(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = -1; X32 - (int8) Y32; Z32 = Q32 if unsigned<"); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if unsigned<"); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if unsigned<"); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if unsigned<"); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = -1 if unsigned< else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = -1 if unsigned< else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = -1 if unsigned< else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = -1 if unsigned< else 0"); return Z; #else TYPE R = X ^ Y; TYPE Z = X - Y; Z ^= R & (Z ^ X ^ (((TYPE) 1) << (N-1))); return SIGNED_negative_mask(Z); #endif } UNSIGNED: TYPE TYPE_smaller_01(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = 1; X32 - (int8) Y32; Z32 = Q32 if unsigned<"); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if unsigned<"); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if unsigned<"); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if unsigned<"); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = 1 if unsigned< else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = 1 if unsigned< else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = 1 if unsigned< else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = 1 if unsigned< else 0"); return Z; #else TYPE R = X ^ Y; TYPE Z = X - Y; Z ^= R & (Z ^ X ^ (((TYPE) 1) << (N-1))); return UNSIGNED_topbit_01(Z); #endif } SIGNED: TYPE TYPE_leq_mask(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = -1; X32 - (int8) Y32; Z32 = Q32 if signed<="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if signed<="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if signed<="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if signed<="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (int8) X; Z - (int8) Y; Z = -1 if signed<= else 0"); 16: readasm("arm64; int16 X Y Z; Z = (int16) X; Z - (int16) Y; Z = -1 if signed<= else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = -1 if signed<= else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = -1 if signed<= else 0"); return Z; #else return ~TYPE_smaller_mask(Y,X); #endif } SIGNED: TYPE TYPE_leq_01(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = 1; X32 - (int8) Y32; Z32 = Q32 if signed<="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if signed<="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if signed<="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if signed<="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (int8) X; Z - (int8) Y; Z = 1 if signed<= else 0"); 16: readasm("arm64; int16 X Y Z; Z = (int16) X; Z - (int16) Y; Z = 1 if signed<= else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = 1 if signed<= else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = 1 if signed<= else 0"); return Z; #else return 1-TYPE_smaller_01(Y,X); #endif } UNSIGNED: TYPE TYPE_leq_mask(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = -1; X32 - (int8) Y32; Z32 = Q32 if unsigned<="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if unsigned<="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if unsigned<="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = -1; X - Y; Z = Q if unsigned<="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = -1 if unsigned<= else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = -1 if unsigned<= else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = -1 if unsigned<= else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = -1 if unsigned<= else 0"); return Z; #else return ~TYPE_smaller_mask(Y,X); #endif } UNSIGNED: TYPE TYPE_leq_01(TYPE X,TYPE Y) { #if amd64 8: TYPE Z; 8: int32_t X32 = X,Y32 = Y,Q32,Z32; 8: readasm("amd64; int32 X32 Q32 Y32 Z32; Z32 = 0; Q32 = 1; X32 - (int8) Y32; Z32 = Q32 if unsigned<="); 8: Z = Z32; 16: TYPE Q,Z; 16: readasm("amd64; int16 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if unsigned<="); 32: TYPE Q,Z; 32: readasm("amd64; int32 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if unsigned<="); 64: TYPE Q,Z; 64: readasm("amd64; int64 X Q Y Z; Z = 0; Q = 1; X - Y; Z = Q if unsigned<="); return Z; #elif arm64 TYPE Z; 8: readasm("arm64; int8 X Y Z; Z = (uint8) X; Z - (uint8) Y; Z = 1 if unsigned<= else 0"); 16: readasm("arm64; int16 X Y Z; Z = (uint16) X; Z - (uint16) Y; Z = 1 if unsigned<= else 0"); 32: readasm("arm64; int32 X Y Z; X - Y; Z = 1 if unsigned<= else 0"); 64: readasm("arm64; int64 X Y Z; X - Y; Z = 1 if unsigned<= else 0"); return Z; #else return 1-TYPE_smaller_01(Y,X); #endif } # XXX: consider *0x...10101 for the denouement _if_ mul is constant-time # XXX: use popcnt if __SSE4_2__ # XXX: use cnt if arm64 cssc # XXX: maybe use neon cnt if arm64 int TYPE_ones_num(TYPE X) { UNSIGNED Y = X; 8: const TYPE C0 = 0x55; 16: const TYPE C0 = 0x5555; 32: const TYPE C0 = 0x55555555; 64: const TYPE C0 = 0x5555555555555555; 8: const TYPE C1 = 0x33; 16: const TYPE C1 = 0x3333; 32: const TYPE C1 = 0x33333333; 64: const TYPE C1 = 0x3333333333333333; 8: const TYPE C2 = 0x0f; 16: const TYPE C2 = 0x0f0f; 32: const TYPE C2 = 0x0f0f0f0f; 64: const TYPE C2 = 0x0f0f0f0f0f0f0f0f; Y -= ((Y >> 1) & C0); Y = (Y & C1) + ((Y >> 2) & C1); Y = (Y + (Y >> 4)) & C2; 16: Y = (Y + (Y >> 8)) & 0xff; 32: Y += Y >> 8; 32: Y = (Y + (Y >> 16)) & 0xff; 64: Y += Y >> 8; 64: Y += Y >> 16; 64: Y = (Y + (Y >> 32)) & 0xff; return Y; } # XXX: use tzcnt if amd64 bmi1 # XXX: use ctz if arm64 cssc int TYPE_bottomzeros_num(TYPE X) { #if amd64 8: int32_t fallback = N; 8: int32_t X32 = X; 8: readasm("amd64; int32 X32 fallback; X32 = numbottomzeros_tricky X32; X32 = fallback if ="); 8: X = X32; 16: TYPE fallback = N; 16: readasm("amd64; int16 X fallback; X = numbottomzeros_tricky X; X = fallback if ="); 32: TYPE fallback = N; 32: readasm("amd64; int32 X fallback; X = numbottomzeros_tricky X; X = fallback if ="); 64: TYPE fallback = N; 64: readasm("amd64; int64 X fallback; X = numbottomzeros_tricky X; X = fallback if ="); return X; #elif arm64 int64_t Y; 8: readasm("arm64; int8 X Y; Y = X | -256; Y = bitrev32 Y; Y = numbottomzeros Y"); 16: readasm("arm64; int16 X Y; Y = X | -65536; Y = bitrev32 Y; Y = numbottomzeros Y"); 32: readasm("arm64; int32 X Y; Y = bitrev32 X; Y = numbottomzeros Y"); 64: readasm("arm64; int64 X Y; Y = bitrev64 X; Y = numbottomzeros Y"); return Y; #else TYPE Y = X ^ (X-1); Y = ((SIGNED) Y) >> 1; Y &= ~(X & (((TYPE) 1) << (N-1))); return TYPE_ones_num(Y); #endif } libntruprime-20241021/cryptoint/int16_optblocker.c0000644000000000000000000000022514705505550020552 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_int16.h" volatile crypto_int16 crypto_int16_optblocker = 0; libntruprime-20241021/cryptoint/int32_optblocker.c0000644000000000000000000000022514705505550020550 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_int32.h" volatile crypto_int32 crypto_int32_optblocker = 0; libntruprime-20241021/cryptoint/int64_optblocker.c0000644000000000000000000000022514705505550020555 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_int64.h" volatile crypto_int64 crypto_int64_optblocker = 0; libntruprime-20241021/cryptoint/int8_optblocker.c0000644000000000000000000000022214705505550020470 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_int8.h" volatile crypto_int8 crypto_int8_optblocker = 0; libntruprime-20241021/cryptoint/intN_optblocker.c0000644000000000000000000000022214705505550020516 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_intN.h" volatile crypto_intN crypto_intN_optblocker = 0; libntruprime-20241021/cryptoint/readasm.py0000755000000000000000000004466314705505550017230 0ustar rootroot#!/usr/bin/env python3 import re import sys machinedesc = {} # note for qhasm users: # the machine descriptions here have, e.g., # int8 meaning where the C ABI stores an int8, # such as a 64-bit integer register on amd64 # ===== amd64 machinedesc['amd64'] = r''' int8 r:var/r=int8: int16 r:var/r=int16: int32 r:var/r=int32: int64 r:var/r=int64: int8 r s:var/r=int8:var/s=int8: int16 r s:var/r=int16:var/s=int16: int32 r s:var/r=int32:var/s=int32: int64 r s:var/r=int64:var/s=int64: int8 r s t:var/r=int8:var/s=int8:var/t=int8: int16 r s t:var/r=int16:var/s=int16:var/t=int16: int32 r s t:var/r=int32:var/s=int32:var/t=int32: int64 r s t:var/r=int64:var/s=int64:var/t=int64: int8 r s t u:var/r=int8:var/s=int8:var/t=int8:var/u=int8: int16 r s t u:var/r=int16:var/s=int16:var/t=int16:var/u=int16: int32 r s t u:var/r=int32:var/s=int32:var/t=int32:var/u=int32: int64 r s t u:var/r=int64:var/s=int64:var/t=int64:var/u=int64: r = 0:>r=int8:asm/xorb >r,>r:>?cc: r = 0:>r=int16:asm/xorw >r,>r:>?cc: r = 0:>r=int32:asm/xorl >r,>r:>?cc: r = 0:>r=int64:asm/xorq >r,>r:>?cc: r = n:>r=int8:#n:asm/movb $#n,>r: r = n:>r=int16:#n:asm/movw $#n,>r: r = n:>r=int32:#n:asm/movl $#n,>r: r = n:>r=int64:#n:asm/movq $#n,>r: r = -n:>r=int8:#n:asm/movb $-#n,>r: r = -n:>r=int16:#n:asm/movw $-#n,>r: r = -n:>r=int32:#n:asm/movl $-#n,>r: r = -n:>r=int64:#n:asm/movq $-#n,>r: r signed>>= n:+r=int8:#n:asm/sarb $#n,+r:>?cc: r signed>>= n:+r=int16:#n:asm/sarw $#n,+r:>?cc: r signed>>= n:+r=int32:#n:asm/sarl $#n,+r:>?cc: r signed>>= n:+r=int64:#n:asm/sarq $#n,+r:>?cc: r signed>>= s:+r=int8:?cc: r signed>>= s:+r=int16:?cc: r signed>>= s:+r=int32:?cc: r signed>>= s:+r=int64:?cc: r unsigned>>= n:+r=int8:#n:asm/shrb $#n,+r:>?cc: r unsigned>>= n:+r=int16:#n:asm/shrw $#n,+r:>?cc: r unsigned>>= n:+r=int32:#n:asm/shrl $#n,+r:>?cc: r unsigned>>= n:+r=int64:#n:asm/shrq $#n,+r:>?cc: r unsigned>>= s:+r=int8:?cc: r unsigned>>= s:+r=int16:?cc: r unsigned>>= s:+r=int32:?cc: r unsigned>>= s:+r=int64:?cc: r <<= n:+r=int8:#n:asm/shlb $#n,+r:>?cc: r <<= n:+r=int16:#n:asm/shlw $#n,+r:>?cc: r <<= n:+r=int32:#n:asm/shll $#n,+r:>?cc: r <<= n:+r=int64:#n:asm/shlq $#n,+r:>?cc: r <<= s:+r=int8:?cc: r <<= s:+r=int16:?cc: r <<= s:+r=int32:?cc: r <<= s:+r=int64:?cc: r &= n:+r=int8:#n:asm/andb $#n,+r:>?cc: r &= n:+r=int16:#n:asm/andw $#n,+r:>?cc: r &= n:+r=int32:#n:asm/andl $#n,+r:>?cc: r &= n:+r=int64:#n:asm/andq $#n,+r:>?cc: r & (int8) s:?cc: r & s:?cc: r & s:?cc: r & s:?cc: r - (int8) s:?cc: r - s:?cc: r - s:?cc: r - s:?cc: r = s:>r=int16:r: r = s:>r=int32:r: r = s:>r=int64:r: r = s if signed<:+r=int16::+r=int16::+r=int32::+r=int64::+r=int16::+r=int32::+r=int64:r=int16:?cc:asm/bsfw r: r = numbottomzeros_tricky s:>r=int32:?cc:asm/bsfl r: r = numbottomzeros_tricky s:>r=int64:?cc:asm/bsfq r: ''' # ===== arm64 machinedesc['arm64'] = r''' int8 r:var/r=int8: int16 r:var/r=int16: int32 r:var/r=int32: int64 r:var/r=int64: int8 r s:var/r=int8:var/s=int8: int16 r s:var/r=int16:var/s=int16: int32 r s:var/r=int32:var/s=int32: int64 r s:var/r=int64:var/s=int64: int8 r s t:var/r=int8:var/s=int8:var/t=int8: int16 r s t:var/r=int16:var/s=int16:var/t=int16: int32 r s t:var/r=int32:var/s=int32:var/t=int32: int64 r s t:var/r=int64:var/s=int64:var/t=int64: int8 r s t u:var/r=int8:var/s=int8:var/t=int8:var/u=int8: int16 r s t u:var/r=int16:var/s=int16:var/t=int16:var/u=int16: int32 r s t u:var/r=int32:var/s=int32:var/t=int32:var/u=int32: int64 r s t u:var/r=int64:var/s=int64:var/t=int64:var/u=int64: r = s signed>> n:>r=int32:r,> n:>r=int64:r,> n:>r=int32:r,> n:>r=int64:r,> t:>r=int8:r,> t:>r=int16:r,> t:>r=int32:r,> t:>r=int64:r,> t:>r=int8:r,> t:>r=int16:r,> t:>r=int32:r,> t:>r=int64:r,r=int8:r,r=int16:r,r=int32:r,r=int64:r,r=int8:r,r=int16:r,r=int8:r,r=int16:r,r=int8:r,r=int8:r,r=int16:r,r=int16:r,r=int8:r,r=int16:r,?cc: r & n:?cc: r - n:?cc: r - n:?cc: r - n:?cc: r - n:?cc: r - s:?cc: r - s:?cc: r - s:?cc: r - s:?cc: r - (int8) s:?cc: r - (uint8) s:?cc: r - (int16) s:?cc: r - (uint16) s:?cc: r = -1 if != else 0:>r=int8:r,ne: r = -1 if != else 0:>r=int16:r,ne: r = -1 if != else 0:>r=int32:r,ne: r = -1 if != else 0:>r=int64:r,ne: r = -1 if = else 0:>r=int8:r,eq: r = -1 if = else 0:>r=int16:r,eq: r = -1 if = else 0:>r=int32:r,eq: r = -1 if = else 0:>r=int64:r,eq: r = -1 if signed< else 0:>r=int8:r,lt: r = -1 if signed< else 0:>r=int16:r,lt: r = -1 if signed< else 0:>r=int32:r,lt: r = -1 if signed< else 0:>r=int64:r,lt: r = -1 if signed> else 0:>r=int8:r,gt: r = -1 if signed> else 0:>r=int16:r,gt: r = -1 if signed> else 0:>r=int32:r,gt: r = -1 if signed> else 0:>r=int64:r,gt: r = -1 if signed<= else 0:>r=int8:r,le: r = -1 if signed<= else 0:>r=int16:r,le: r = -1 if signed<= else 0:>r=int32:r,le: r = -1 if signed<= else 0:>r=int64:r,le: r = -1 if unsigned< else 0:>r=int8:r,lo: r = -1 if unsigned< else 0:>r=int16:r,lo: r = -1 if unsigned< else 0:>r=int32:r,lo: r = -1 if unsigned< else 0:>r=int64:r,lo: r = -1 if unsigned<= else 0:>r=int8:r,ls: r = -1 if unsigned<= else 0:>r=int16:r,ls: r = -1 if unsigned<= else 0:>r=int32:r,ls: r = -1 if unsigned<= else 0:>r=int64:r,ls: r = 1 if != else 0:>r=int8:r,ne: r = 1 if != else 0:>r=int16:r,ne: r = 1 if != else 0:>r=int32:r,ne: r = 1 if != else 0:>r=int64:r,ne: r = 1 if = else 0:>r=int8:r,eq: r = 1 if = else 0:>r=int16:r,eq: r = 1 if = else 0:>r=int32:r,eq: r = 1 if = else 0:>r=int64:r,eq: r = 1 if signed< else 0:>r=int8:r,lt: r = 1 if signed< else 0:>r=int16:r,lt: r = 1 if signed< else 0:>r=int32:r,lt: r = 1 if signed< else 0:>r=int64:r,lt: r = 1 if signed> else 0:>r=int8:r,gt: r = 1 if signed> else 0:>r=int16:r,gt: r = 1 if signed> else 0:>r=int32:r,gt: r = 1 if signed> else 0:>r=int64:r,gt: r = 1 if signed<= else 0:>r=int8:r,le: r = 1 if signed<= else 0:>r=int16:r,le: r = 1 if signed<= else 0:>r=int32:r,le: r = 1 if signed<= else 0:>r=int64:r,le: r = 1 if unsigned< else 0:>r=int8:r,lo: r = 1 if unsigned< else 0:>r=int16:r,lo: r = 1 if unsigned< else 0:>r=int32:r,lo: r = 1 if unsigned< else 0:>r=int64:r,lo: r = 1 if unsigned<= else 0:>r=int8:r,ls: r = 1 if unsigned<= else 0:>r=int16:r,ls: r = 1 if unsigned<= else 0:>r=int32:r,ls: r = 1 if unsigned<= else 0:>r=int64:r,ls: r = s if signed< else t:>r=int8:r,r=int16:r,r=int32:r,r=int64:r,r=int8:r,r=int16:r,r=int32:r,r=int64:r,r=int8:r,r=int16:r,r=int32:r,r=int64:r,r=int8:r,r=int16:r,r=int32:r,r=int64:r,> n)):>r=int8:r,> n)):>r=int16:r,> n)):>r=int32:r,> n)):>r=int64:r,> n):>r=int8:r,> n):>r=int16:r,> n):>r=int32:r,> n):>r=int64:r,'): if x[1:] == '?cc': if x[0] != '<': insnwrite += ['?cc'] if x[0] != '>': insnread += ['?cc'] continue if x[0] != '<': insnwrite += [x[1]] if x[0] != '>': insnread += [x[1]] insnvars += [x[1]] assert x[2] == '=' insnvartype[x[1]] = x[3:].split('#')[0] if len(x[3:].split('#')) > 1: insnvarpos[x[1]] = int(x[3:].split('#')[1]) continue if x.startswith('var/'): insnvars += [x[4]] assert x[5] == '=' insnvartype[x[4]] = x[6:] insnmakevars += [x[4]] continue if x.startswith('asm/'): insnasm += [x[4:]] continue raise Exception(x) insn = tokens(insndesc[0]) insnpos = 0 linepos = 0 while True: if insnpos == len(insn) and linepos == len(line): foundinsn = True if insnpos == len(insn) or linepos == len(line): break x = insn[insnpos] y = line[linepos] if x in insnvars: if y in vartype: if vartype[y] != insnvartype[x]: break # line and insn both have variables, but different types if x in insnvar2line: if insnvar2line[x] != y: break # insn variable already assigned to something different in line else: insnvar2line[x] = y else: if not isvarname(y): break # not an acceptable variable name insnvar2line[x] = y else: if y in vartype: break # XXX: but maybe sometimes want to allow variable in line to match literal in insn if y != x: break # non-matching literals insnpos += 1 linepos += 1 if foundinsn: break if not foundinsn: print(line) assert foundinsn insnvar2line['?cc'] = '?cc' for v in insnmakevars: w = insnvar2line[v] vartype[w] = insnvartype[v] for v in insnvar2line: if v == '?cc': continue if insnvartype[v] == '#': continue w = insnvar2line[v] if w not in vartype: raise Exception(f'undefined variable {w}') for v in insnread: w = insnvar2line[v] if v in insnvarpos: assert insnvarpos[v] == 4 assert machine == 'amd64' rcxvars.add(w) if w not in outputvars: if w not in inputvars: inputvars += [w] for z in outputvars: earlyclobber.add(z) for v in insnwrite: w = insnvar2line[v] if w not in outputvars: outputvars += [w] for asm in insnasm: todo += [(asm,insnvar2line)] need8 = set() todo2 = [] for asm,insnvar2line in todo: todo2 += [('asm',)] while len(asm) > 0: if asm[0] in ('<','+','>'): if asm[2:].startswith('%8'): todo2 += [('var8',insnvar2line[asm[1]])] need8.add(insnvar2line[asm[1]]) asm = asm[4:] else: todo2 += [('var',insnvar2line[asm[1]])] asm = asm[2:] elif asm[0] == '#': todo2 += [('str',insnvar2line[asm[1]])] asm = asm[2:] else: todo2 += [('str',asm[0])] asm = asm[1:] varnextpos = 0 var2name = {} outputs = [] for w in outputvars: if w == '?cc': continue if machine == 'arm64' and vartype[w] != 'int64': # XXX: abstract this var2name[w] = f'%w{varnextpos}' else: var2name[w] = f'%{varnextpos}' varnextpos += 1 regtype = 'r' if w in need8: regtype = 'q' if w in rcxvars: regtype = 'c' if w in earlyclobber: regtype = '&'+regtype if w in inputvars: outputs += [f'"+{regtype}"({w})'] else: outputs += [f'"={regtype}"({w})'] inputs = [] for w in inputvars: if w in outputvars: continue assert w != '?cc' if machine == 'arm64' and vartype[w] != 'int64': # XXX: abstract this var2name[w] = f'%w{varnextpos}' else: var2name[w] = f'%{varnextpos}' varnextpos += 1 regtype = 'r' if w in need8: regtype = 'q' if w in rcxvars: regtype = 'c' inputs += [f'"{regtype}"({w})'] clobbers = [] for w in outputvars: if w != '?cc': continue clobbers += ['"cc"'] result = '' for T in todo2: if T[0] == 'asm': if result != '': result += '\\n ' elif T[0] == 'var8': result += var2name[T[1]].replace('%','%b') elif T[0] == 'var': result += var2name[T[1]] else: assert T[0] == 'str' result += T[1] outputs = ', '.join(outputs) if len(outputs) > 0: outputs += ' ' inputs = ', '.join(inputs) if len(inputs) > 0: inputs += ' ' clobbers = ', '.join(clobbers) result = f'__asm__ ("{result}" : {outputs}: {inputs}: {clobbers})' return result def substitute(program): result = '' for line in program.splitlines(): m = re.fullmatch(r'(.*)\breadasm\("([^"]*)"\)(.*)',line) if m: result += m.group(1)+process(m.group(2))+m.group(3)+'\n' else: result += line+'\n' return result def test(): print(process('amd64; int64 X; X signed>>= 63')) print(process('arm64; int8 X; int8 Y; X = (int8) X; Y = (int8) Y; X - Y; X = Y if signed< else X')) print(process('arm64; int8 X; int8 Y; int8 Z; Z = (uint8) X; Z - (uint8) Y; Z = -1 if unsigned<= else 0')) print(process('arm64; int64 X; int64 Y; int64 R; int64 S; X - Y; R = X if unsigned< else Y; S = Y if unsigned< else X')) if __name__ == '__main__': test() libntruprime-20241021/cryptoint/specialize.py0000755000000000000000000000507614705505550017737 0ustar rootroot#!/usr/bin/env python3 import os import readasm with open('../project/namespace') as f: projectnamespace = f.readline().strip() with open('crypto_intN.h') as f: intN = f.read() with open('crypto_uintN.h') as f: uintN = f.read() for bits in 8,16,32,64: for ui in 'int','uint': TYPE = f'crypto_{ui}{bits}' with open(f'{TYPE}.h','w') as f: contents = intN if ui == 'int' else uintN contents = contents.replace('N',str(bits)) contents = contents.replace('namespace',projectnamespace) contents = readasm.substitute(contents) contents = contents.replace('amd64','defined(__GNUC__) && defined(__x86_64__)') contents = contents.replace('arm64','defined(__GNUC__) && defined(__aarch64__)') newcontents = '' for line in contents.splitlines(): if ':' in line: condbits = line.split(':')[0].strip() if condbits.isnumeric(): if int(condbits) != bits: continue line = ':'.join(line.split(':')[1:]) newcontents += line+'\n' contents = newcontents tounroll = f' int {TYPE}_k;\n for ({TYPE}_k = 0;{TYPE}_k < {bits};{TYPE}_k += 8)\n {TYPE}_z |= (({TYPE}) (*{TYPE}_s++)) << {TYPE}_k;' unrolled = '\n'.join(f' {TYPE}_z |= (({TYPE}) (*{TYPE}_s++)) << {k};' for k in range(0,bits,8)) contents = contents.replace(tounroll,unrolled) tounroll = f' int {TYPE}_k;\n for ({TYPE}_k = {bits} - 8;{TYPE}_k >= 0;{TYPE}_k -= 8)\n {TYPE}_z |= (({TYPE}) (*{TYPE}_s++)) << {TYPE}_k;' unrolled = '\n'.join(f' {TYPE}_z |= (({TYPE}) (*{TYPE}_s++)) << {k};' for k in reversed(range(0,bits,8))) contents = contents.replace(tounroll,unrolled) tounroll = f' int {TYPE}_k;\n for ({TYPE}_k = 0;{TYPE}_k < {bits};{TYPE}_k += 8)\n *{TYPE}_s++ = {TYPE}_x >> {TYPE}_k;' unrolled = '\n'.join(f' *{TYPE}_s++ = {TYPE}_x >> {k};' for k in range(0,bits,8)) contents = contents.replace(tounroll,unrolled) tounroll = f' int {TYPE}_k;\n for ({TYPE}_k = {bits} - 8;{TYPE}_k >= 0;{TYPE}_k -= 8)\n *{TYPE}_s++ = {TYPE}_x >> {TYPE}_k;' unrolled = '\n'.join(f' *{TYPE}_s++ = {TYPE}_x >> {k};' for k in reversed(range(0,bits,8))) contents = contents.replace(tounroll,unrolled) f.write(contents) for intc in sorted(os.listdir('.')): if not intc.endswith('.c'): continue if not (intc.startswith('int') or intc.startswith('uint')): continue targetintc = intc.replace('N',str(bits)) with open(intc) as f: contents = f.read() with open(targetintc,'w') as f: f.write(contents.replace('N',str(bits))) libntruprime-20241021/cryptoint/uint16_optblocker.c0000644000000000000000000000024614705505550020742 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_uint16.h" volatile crypto_uint16_signed crypto_uint16_signed_optblocker = 0; libntruprime-20241021/cryptoint/uint32_optblocker.c0000644000000000000000000000024614705505550020740 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_uint32.h" volatile crypto_uint32_signed crypto_uint32_signed_optblocker = 0; libntruprime-20241021/cryptoint/uint64_optblocker.c0000644000000000000000000000024614705505550020745 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_uint64.h" volatile crypto_uint64_signed crypto_uint64_signed_optblocker = 0; libntruprime-20241021/cryptoint/uint8_optblocker.c0000644000000000000000000000024314705505550020660 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_uint8.h" volatile crypto_uint8_signed crypto_uint8_signed_optblocker = 0; libntruprime-20241021/cryptoint/uintN_optblocker.c0000644000000000000000000000024314705505550020706 0ustar rootroot/* auto-generated: cd cryptoint; ./autogen */ /* cryptoint 20241003 */ #include "crypto_uintN.h" volatile crypto_uintN_signed crypto_uintN_signed_optblocker = 0; libntruprime-20241021/cryptoint/version0000644000000000000000000000002314705505550016625 0ustar rootrootcryptoint 20241003 libntruprime-20241021/dispatch/0000755000000000000000000000000014705505550014766 5ustar rootrootlibntruprime-20241021/dispatch/ifunc-test.c0000644000000000000000000000037514705505550017220 0ustar rootroot#include int xyzzy_inner1(void) { return 1; } int xyzzy_inner2(void) { return 2; } void *xyzzy_select(void) { if (getenv("2")) return xyzzy_inner2; return xyzzy_inner1; } int xyzzy_wrapper(void) __attribute__((ifunc("xyzzy_select"))); libntruprime-20241021/dispatch/ifunc.do0000755000000000000000000000110214705505550016413 0ustar rootroot#!/bin/sh echo 0 > dispatch/ifunc grep 1 dispatch/tryifunc >/dev/null || exit 0 scripts/cdcompile dispatch -c ifunc-test.c || exit 0 scripts/cdcompile dispatch -print-prog-name=readelf > dispatch/readelf1 || exit 0 ( echo '#!/bin/sh' tr -d '\012' < dispatch/readelf1 echo ' "$@"' ) > dispatch/readelf chmod 755 dispatch/readelf scripts/cdcompile dispatch -c ifunc-test.c || exit 0 dispatch/readelf -s dispatch/ifunc-test.o > dispatch/ifunc-test.o.symbols || exit 0 grep 'IFUNC.*xyzzy_wrapper' dispatch/ifunc-test.o.symbols >/dev/null || exit 0 echo 1 > dispatch/ifunc libntruprime-20241021/doc/0000755000000000000000000000000014705505550013734 5ustar rootrootlibntruprime-20241021/doc/api.md0000644000000000000000000000453714705505550015040 0ustar rootroot### NAME sntrup - C API for the libntruprime implementation of the Streamlined NTRU Prime cryptosystem ### SYNOPSIS Using libntruprime: #include Link with `-lntruprime`. Key generation (for, e.g., `sntrup1277`): unsigned char pk[sntrup1277_PUBLICKEYBYTES]; unsigned char sk[sntrup1277_SECRETKEYBYTES]; sntrup1277_keypair(pk,sk); Encapsulation (for, e.g., `sntrup1277`): unsigned char ct[sntrup1277_CIPHERTEXTBYTES]; unsigned char k[sntrup1277_BYTES]; const unsigned char pk[sntrup1277_PUBLICKEYBYTES]; sntrup1277_enc(ct,k,pk); Decapsulation (for, e.g., `sntrup1277`): unsigned char k[sntrup1277_BYTES]; const unsigned char ct[sntrup1277_CIPHERTEXTBYTES]; const unsigned char sk[sntrup1277_SECRETKEYBYTES]; sntrup1277_dec(k,ct,sk); ### DESCRIPTION libntruprime is an implementation of the [Streamlined NTRU Prime](https://ntruprime.cr.yp.to) cryptosystem. The C API for libntruprime provides the following functions: sntrup{653,761,857,953,1013,1277}_keypair sntrup{653,761,857,953,1013,1277}_enc sntrup{653,761,857,953,1013,1277}_dec All of these functions follow the [SUPERCOP API for KEMs](https://bench.cr.yp.to/call-kem.html) except that * the function names are libntruprime-specific instead of `crypto_kem_*`, * message lengths are `long long` instead of `unsigned long long`, and * the functions return `void` instead of `int`. The details below use `sntrup1277` as an example. ### KEY GENERATION The `sntrup1277_keypair` function randomly generates Alice's secret key `sk[0]`, `sk[1]`, ..., `sk[sntrup1277_SECRETKEYBYTES-1]` and Alice's corresponding public key `pk[0]`, `pk[1]`, ..., `pk[sntrup1277_PUBLICKEYBYTES-1]`. ### ENCAPSULATION The `sntrup1277_enc` function randomly generates a ciphertext `ct[0]`, `ct[1]`, ..., `ct[sntrup1277_CIPHERTEXTBYTES-1]` and the corresponding session key `k[0]`, `k[1]`, ..., `k[sntrup1277_BYTES-1]` given Alice's public key `pk[0]`, `pk[1]`, ..., `pk[sntrup1277_PUBLICKEYBYTES-1]`. ### DECAPSULATION The `sntrup1277_dec` function, given Alice's secret key `sk[0]`, `sk[1]`, ..., `sk[sntrup1277_SECRETKEYBYTES-1]`, computes the session key `k[0]`, `k[1]`, ..., `k[sntrup1277_BYTES-1]` corresponding to a ciphertext `ct[0]`, `ct[1]`, ..., `ct[sntrup1277_CIPHERTEXTBYTES-1]` that was encapsulated to Alice. ### SEE ALSO **sntrup**(1), **randombytes**(3) libntruprime-20241021/doc/cli.md0000644000000000000000000000355014705505550015030 0ustar rootroot### NAME sntrup - command-line interface for the libntruprime implementation of the Streamlined NTRU Prime cryptosystem ### SYNOPSIS Key generation (for, e.g., `sntrup1277`): sntrup1277-keypair 5>publickey 9>secretkey Encapsulation (for, e.g., `sntrup1277`): sntrup1277-enc >ciphertext 7>sessionkey 4sessionkey libntruprime: API
libntruprime: API

NAME

sntrup - C API for the libntruprime implementation of the Streamlined NTRU Prime cryptosystem

SYNOPSIS

Using libntruprime:

#include <ntruprime.h>

Link with -lntruprime.

Key generation (for, e.g., sntrup1277):

unsigned char pk[sntrup1277_PUBLICKEYBYTES];
unsigned char sk[sntrup1277_SECRETKEYBYTES];

sntrup1277_keypair(pk,sk);

Encapsulation (for, e.g., sntrup1277):

unsigned char ct[sntrup1277_CIPHERTEXTBYTES];
unsigned char k[sntrup1277_BYTES];
const unsigned char pk[sntrup1277_PUBLICKEYBYTES];

sntrup1277_enc(ct,k,pk);

Decapsulation (for, e.g., sntrup1277):

unsigned char k[sntrup1277_BYTES];
const unsigned char ct[sntrup1277_CIPHERTEXTBYTES];
const unsigned char sk[sntrup1277_SECRETKEYBYTES];

sntrup1277_dec(k,ct,sk);

DESCRIPTION

libntruprime is an implementation of the Streamlined NTRU Prime cryptosystem. The C API for libntruprime provides the following functions:

sntrup{653,761,857,953,1013,1277}_keypair
sntrup{653,761,857,953,1013,1277}_enc
sntrup{653,761,857,953,1013,1277}_dec

All of these functions follow the SUPERCOP API for KEMs except that

  • the function names are libntruprime-specific instead of crypto_kem_*,
  • message lengths are long long instead of unsigned long long, and
  • the functions return void instead of int.

The details below use sntrup1277 as an example.

KEY GENERATION

The sntrup1277_keypair function randomly generates Alice's secret key sk[0], sk[1], ..., sk[sntrup1277_SECRETKEYBYTES-1] and Alice's corresponding public key pk[0], pk[1], ..., pk[sntrup1277_PUBLICKEYBYTES-1].

ENCAPSULATION

The sntrup1277_enc function randomly generates a ciphertext ct[0], ct[1], ..., ct[sntrup1277_CIPHERTEXTBYTES-1] and the corresponding session key k[0], k[1], ..., k[sntrup1277_BYTES-1] given Alice's public key pk[0], pk[1], ..., pk[sntrup1277_PUBLICKEYBYTES-1].

DECAPSULATION

The sntrup1277_dec function, given Alice's secret key sk[0], sk[1], ..., sk[sntrup1277_SECRETKEYBYTES-1], computes the session key k[0], k[1], ..., k[sntrup1277_BYTES-1] corresponding to a ciphertext ct[0], ct[1], ..., ct[sntrup1277_CIPHERTEXTBYTES-1] that was encapsulated to Alice.

SEE ALSO

sntrup(1), randombytes(3)


Version: This is version 2024.08.12 of the "API" web page.
libntruprime-20241021/doc/html/cli.html0000444000000000000000000001246314705505550016341 0ustar rootroot libntruprime: CLI
libntruprime: CLI

NAME

sntrup - command-line interface for the libntruprime implementation of the Streamlined NTRU Prime cryptosystem

SYNOPSIS

Key generation (for, e.g., sntrup1277):

sntrup1277-keypair 5>publickey 9>secretkey

Encapsulation (for, e.g., sntrup1277):

sntrup1277-enc >ciphertext 7>sessionkey 4<publickey

Decapsulation (for, e.g., sntrup1277):

sntrup1277-dec 7>sessionkey <ciphertext 8<secretkey

DESCRIPTION

libntruprime is an implementation of the Streamlined NTRU Prime cryptosystem. The command-line interface for libntruprime provides the following command-line tools:

sntrup{653,761,857,953,1013,1277}-keypair
sntrup{653,761,857,953,1013,1277}-enc
sntrup{653,761,857,953,1013,1277}-dec

Each tool exits 0 on success, nonzero on failure.

These tools allow libntruprime to be easily used from shell scripts. Other languages can also use libntruprime via these tools, but languages typically have good support for FFI and can use the C interface directly.

The details below use sntrup1277 as an example.

KEY GENERATION

Alice runs the sntrup1277-keypair command. This command randomly generates Alice's secret key and Alice's corresponding public key. It writes the public key to file descriptor 5, and then writes the secret key to file descriptor 9.

ENCAPSULATION

Bob runs the sntrup1277-enc command. This command reads Alice's public key from file descriptor 4. It randomly generates a ciphertext and the corresponding session key. It writes the ciphertext to stdout, and then writes the session key to file descriptor 7.

DECAPSULATION

Alice runs the sntrup1277-dec command. This command reads Alice's secret key from file descriptor 8, and then reads a ciphertext from stdin. It computes the corresponding session key, which it writes to file descriptor 7.

SEE ALSO

sntrup(3)


Version: This is version 2024.08.15 of the "CLI" web page.
libntruprime-20241021/doc/html/download.html0000444000000000000000000001223714705505550017400 0ustar rootroot libntruprime: Download
libntruprime: Download

To download and unpack the latest version of libntruprime:

wget -m https://libntruprime.cr.yp.to/libntruprime-latest-version.txt
version=$(cat libntruprime.cr.yp.to/libntruprime-latest-version.txt)
wget -m https://libntruprime.cr.yp.to/libntruprime-$version.tar.gz
tar -xzf libntruprime.cr.yp.to/libntruprime-$version.tar.gz
cd libntruprime-$version

Then install and test.

Archives and changelog (reverse chronological)

libntruprime-20241021.tar.gz browse

Port the encode test to big-endian platforms. Thanks to Jan Mojzis for pointing out s390x test failures.

Revamp checkinsns to use python3-capstone (or to skip instruction-set tests if that isn't installed).

For checknamespace, support __sparc.get_pc_thunk for Solaris, and support class D for PPC.

libntruprime-20241008.tar.gz browse

Upgrade to cryptoint 20241003.

Say full tests succeeded in ntruprime-fulltest documentation.

In autogen/test, clarify code, and allow saving from a blank slate.

libntruprime-20240910.tar.gz browse

Return void for keypair, enc, dec. Thanks to Jan Mojzis for pointing out the discrepancy between code and documentation.

Fix missing installation of command-line tools. Thanks to Simon Josefsson for pointing out the issue.

libntruprime-20240825.tar.gz browse

First release.


Version: This is version 2024.10.21 of the "Download" web page.
libntruprime-20241021/doc/html/index.html0000444000000000000000000001535114705505550016700 0ustar rootroot libntruprime: Intro
libntruprime: Intro

libntruprime is a microlibrary for the Streamlined NTRU Prime cryptosystem. Streamlined NTRU Prime (sntrup) is a lattice-based cryptosystem with the following features:

  • Stability: Almost all details of sntrup match a May 2016 publication. The only exceptions are small changes to encoding and hashing published in April 2019.
  • Patent-freeness: April 2019 predates almost all post-quantum patents. Analyses of various lattice patents filed before April 2019 indicate no problems for sntrup.
  • Deployment: The popular OpenSSH tool switched to sntrup761 by default in April 2022, following initial integration of sntrup into TinySSH.
  • Affordability: Keys and ciphertexts are about 1KB for sntrup761, and computations are fast.
  • Careful design: Subject to the requirement of being a small lattice-based cryptosystem, sntrup is systematically designed to eliminate unnecessary complications in security review. It eliminates decryption failures, for example, and eliminates cyclotomics. The cryptosystem has never needed a security patch.
  • Risk management: A much higher sntrup1277 security level is fully supported, and is recommended whenever 2KB keys and ciphertexts are affordable, to reduce risks from improvements in lattice attacks.
  • Flexibility: The sntrup design allows a full spectrum of tradeoffs between size and security level, so applications with intermediate size limits aren't forced into much lower security levels. Six different sizes have been selected for support.

libntruprime has a very simple stateless API based on the SUPERCOP API, with wire-format inputs and outputs, providing functions that directly match the KEM operations provided by the sntrup specification, such as functions

sntrup1277_keypair
sntrup1277_enc
sntrup1277_dec

for the sntrup1277 KEM.

Internally, libntruprime includes implementations designed to work portably across CPUs, and implementations designed for higher performance on Intel/AMD CPUs with AVX2 instructions. libntruprime includes automatic run-time selection of implementations.

libntruprime is intended to be called by larger multi-function libraries (such as traditional cryptographic libraries), including libraries in other languages via FFI. The idea is that libntruprime takes responsibility for the details of sntrup computation, including optimization, timing-attack protection, and (in ongoing work) verification, freeing up the calling libraries to concentrate on application-specific needs such as protocol integration. Applications can also call libntruprime directly.

Latest release: 20241021.


Version: This is version 2024.10.21 of the "Intro" web page.
libntruprime-20241021/doc/html/install.html0000444000000000000000000001360614705505550017240 0ustar rootroot libntruprime: Install
libntruprime: Install

Prerequisites:

  • python3 (for: build, test)
  • recommended python3-capstone (for: build)
  • gcc and/or clang (for: build)
  • valgrind (for: build, test)
  • libcpucycles (for: build, bench)
  • librandombytes (for: build, test, bench, run)

Make sure to test the compiled library. The tests check for subtle security problems that can be created by compilers. A compiled version of libntruprime is not supported unless it passes the full test suite.

For sysadmins

To install in /usr/local/{include,lib,bin,man}:

./configure && make -j8 install

For developers with an unprivileged account

Typically you'll already have

export LD_LIBRARY_PATH="$HOME/lib"
export LIBRARY_PATH="$HOME/lib"
export CPATH="$HOME/include"
export MANPATH="$HOME/man"
export PATH="$HOME/bin:$PATH"

in $HOME/.profile. To install in $HOME/{include,lib,bin,man}:

./configure --prefix=$HOME && make -j8 install

For distributors creating a package

Run

./configure --prefix=/usr && make -j8

and then follow your usual packaging procedures for the build/0/package files:

build/0/package/include/ntruprime.h
build/0/package/lib/libntruprime*
build/0/package/bin/*ntrup*
build/0/package/man/man3/*.3
build/0/package/man/man1/*.1

More options, part 1: architectures

You can run

./configure --host=amd64

to override ./configure's guess of the architecture that it should compile for.

Inside the build directory, 0 is symlinked to amd64 for --host=amd64. Running make clean removes build/amd64. Re-running ./configure automatically starts with make clean.

A subsequent ./configure --host=arm64 will create build/arm64 and symlink 0 -> arm64, without touching an existing build/amd64. However, cross-compilers aren't yet selected automatically.

More options, part 2

One further ./configure option is supported for developers: --no-trim.

All ./configure options not listed above are experimental and not supported. Use them at your own risk.


Version: This is version 2024.10.19 of the "Install" web page.
libntruprime-20241021/doc/html/internals.html0000444000000000000000000010324614705505550017571 0ustar rootroot libntruprime: Internals
libntruprime: Internals

This document explains the internal structure of libntruprime, and explains how to add new instruction sets and new implementations. The libntruprime infrastructure is adapted from the infrastructure used in lib25519 and libmceliece.

Code generation

Portions of the distributed libntruprime package were automatically generated by scripts in the autogen directory, using (among other things) source in the src directory.

For example, autogen/src converts the src/kem/sntrupP directory into crypto_kem/sntrup{653,761,857,953,1013,1277}, converts the the src/core/multsntrupP directory into crypto_core/multsntrup{653,761,857,953,1013,1277}, etc. (The crypto_hash* directories are not auto-generated.) This structure means that source code is shared across all of the sntrup sizes, while allowing per-size specialization of the compiled code, reducing the in-memory code size for the typical case of an application using just one size.

The installation process (./configure etc.) does not run the autogen scripts. Developers have a choice of two development cycles:

  • Cycle 1: Modify files in, e.g., src/core/multsntrupP; run autogen/src; install; test; repeat.

  • Cycle 2: Modify files in, e.g., crypto_core/multsntrup653; install; test; repeat. Once crypto_core/multsntrup653 is working, generalize to src/core/multsntrupP and switch to cycle 1.

Primitives

The crypto_kem/sntrup* directories inside libntruprime are intended to compute exactly the KEM primitives defined by the NTRU Prime Sage reference implementation.

Internally, the implementations rely on lower-level subroutines defined in further crypto_*/* directories. This structuring provides smaller targets for optimization, testing, and verification.

The subroutines are intended to compute the primitives defined in Python inside libntruprime's autogen/test Python script. For example, the crypto_core/multsntrup* functions are intended to match the Python function core_multsntrup. The autogen/test script creates a test program, ntruprime-test, which checks libntruprime's subroutines against some outputs of the Python functions and against some SUPERCOP "checksums" (hashes of outputs for various inputs).

As a concrete introduction to the subroutines, the list below describes specifically the primitives used for sntrup761. Various numbers appear in these descriptions. The sntrup761 parameters are p = 761, q = 4591, and w = 286. Related numbers appearing below are (p+3)/4 = 191; (q+2)/3 = 1531; (q−1)/2 = 2295; 1007, the number of bytes produced by the NTRU Prime Encode function for M = 761*[1531]; 1039 = 1007 + 32; and 1158, the number of bytes produced by Encode for M = 761*[4591]. The constant 32 is independent of the parameter set, as is the constant 10923 = 32769/3 appearing below. The 1039 and 1158 here are also the ciphertext size and public-key size for sntrup761. See autogen/test for the Encode function and a corresponding Decode function; these are copied from Figures 1 and 2 in the NTRU Prime specification.

Here are the primitives:

  • crypto_verify/1039: crypto_verify_1039(s,t) returns 0 when the 1039-byte arrays s and t are equal, otherwise -1.

  • crypto_decode/int16: crypto_decode_int16(x,s), where x is a uint16[1] array and s is a uint8[2] array, sets x[0] to the uint16 whose little-endian encoding is s[0],s[1].

  • crypto_decode/761xint16: crypto_decode_761xint16(x,s), where x is a uint16[761] array and s is a uint8[2*761] array, sets each x[i] to the uint16 whose little-endian encoding is s[2*i],s[2*i+1].

  • crypto_decode/761xint32: crypto_decode_761xint16(x,s), where x is a uint32[761] array and s is a uint8[4*761] array, sets each x[i] to the uint32 whose little-endian encoding is s[4*i],s[4*i+1],s[4*i+2],s[4*i+3].

  • crypto_decode/761x3: crypto_decode_761x3(x,s), where x is a uint8[761] array and s is a uint8[191] array, sets x[0] to (s[0]&3)-1, sets x[1] to ((s[0]>>2)&3)-1, sets x[2] to ((s[0]>>4)&3)-1, sets x[3] to ((s[0]>>6)&3)-1, sets x[4] to (s[1]&3)-1, etc.

  • crypto_decode/761x1531: crypto_decode_761x1531(x,s), where x is an int16[761] array and s is a uint8[1007] array, applies Decode to convert s into 761 integers between 0 and 1530 (i.e., the M input to the function is 761*[1531]), and then multiplies each integer by 3 and subtracts 2295 to obtain x.

  • crypto_decode/761x4591: crypto_decode_761x4591(x,s), where x is an int16[761] array and s is a uint8[1158] array, applies Decode to convert s into 761 integers between 0 and 4590 (i.e., the M input to the function is 761*[4591]), and then subtracts 2295 from each integer to obtain x.

  • crypto_encode/int16: crypto_encode_int16(s,x), where s is a uint8[2] array and x is a uint16[1] array, sets s[0],s[1] to the little-endian encoding of x[0].

  • crypto_encode/761x3: crypto_encode_761x3(s,x), where s is a uint8[191] array and x is a uint8[761] array, sets s[0] to (x[0]+1)+4*(x[1]+1)+16*(x[2]+1)+64*(x[3]+1), sets s[1] to (x[4]+1)+4*(x[5]+1)+16*(x[6]+1)+64*(x[7]+1), ..., sets s[189] to (x[756]+1)+4*(x[757]+1)+16*(x[758]+1)+64*(x[759]+1), and sets s[190] to x[760]+1.

  • crypto_encode/761xfreeze3: crypto_encode_761xfreeze3(s,x), where s is a uint8[761] array and x is an int16[761] array, sets each s[i] to x[i]-3*((10923*x[i]+16384)>>15).

  • crypto_encode/761x1531: crypto_encode_761x1531(s,x), where s is a uint8[1007] array and x is an int16[761] array, sets s to Encode(R,M), where M is 761*[1531] and R[i] is (((x[i]+2295)&16383)*10923)>>15. (The way this is used in sntrup761 has R[i] below M[i]; however, tests include larger R[i].)

  • crypto_encode/761x1531round: crypto_encode_761x1531round(s,x), where s is a uint8[1007] array and x is an int16[761] array, is the same as crypto_encode_761x1531(s,y), where y[i] = 3*((10923*x[i]+16384)>>15).

  • crypto_encode/761x4591: crypto_encode_761x4591(s,x), where s is a uint8[1158] array and x is an int16[761] array, sets s to Encode(R,M), where M is 761*[4591] and R[i] is (x[i]+2295)&16383. (The way this is used in sntrup761 has R[i] below M[i]; however, tests include larger R[i].)

  • crypto_sort/int32: crypto_sort_int32(x,n) sorts the int32 values x[0], x[1], ..., x[n-1].

  • crypto_sort/uint32: crypto_sort_uint32(x,n) sorts the uint32 values x[0], x[1], ..., x[n-1].

  • crypto_core/inv3sntrup761: crypto_core_inv3sntrup761(h,f,0,0) sets polynomial h to the reciprocal of polynomial f modulo x761−x−1 modulo 3. The polynomial f is expressed as a uint8[761] array where bytes that reduce to 0, 1, 2, 3 modulo 4 are interpreted as the small integers 0, 1, 0, −1 respectively; these integers in {−1,0,1} are then interpreted as the coefficients of x0, x1, etc. in that order. Coefficients −1, 0, 1 in 1/f modulo 3 are converted to bytes 255, 0, 1 in array h. There is then a final byte 0 indicating that the reciprocal exists, so h is a uint8[762] array. If f does not have a reciprocal then the h array is instead set to 761 bytes 0 followed by final byte 255.

  • crypto_core/invsntrup761: crypto_core_invsntrup761(h,f,0,0) sets polynomial h to the reciprocal of 3f modulo x761−x−1 modulo 4591. The input polynomial f is expressed as an int8[761] array; the array entries in {−128,...,127} are interpreted as the coefficients of x0, x1, etc. in that order. Each coefficient of the reciprocal of 3f is reduced modulo q to the range −(q−1)/2 through (q−1)/2 and then encoded as 2 bytes in little-endian form in h. There is then a final byte 0 indicating that the reciprocal exists, so h is a uint8[2*761+1] array. If 3f does not have a reciprocal then the h array is instead set to 2*761 bytes 0 followed by final byte 255.

  • crypto_core/mult3sntrup761: crypto_core_multsntrup761(h,f,g,0) sets h to the product of two small-coefficient polynomials f and g modulo x761−x−1 modulo 3. The polynomial f is expressed as a uint8[761] array where bytes that reduce to 0, 1, 2, 3 modulo 4 are interpreted as the small integers 0, 1, 0, −1 respectively; these integers in {−1,0,1} are then interpreted as the coefficients of x0, x1, etc. in that order. The polynomial g is expressed the same way. Each coefficient of the product modulo x761−x−1 is reduced modulo 3 to the range −1, 0, 1, and then stored in the uint8[761] array h as byte 255, 0, 1 respectively.

  • crypto_core/multsntrup761: crypto_core_multsntrup761(h,f,g,0) sets h to the product of a polynomial f and a small-coefficient polynomial g modulo x761−x−1 modulo q. The polynomial f is expressed as a uint8[2*761] array storing 761 int16 values in little-endian form. The polynomial g is expressed as a uint8[761] array, where bytes that reduce to 0, 1, 2, 3 modulo 4 are interpreted as the small integers 0, 1, 0, −1 respectively. Each coefficient of the product modulo x761−x−1 is reduced modulo q to the range −(q−1)/2 through (q−1)/2, and then encoded as 2 bytes in little-endian form in h, which is a uint8[2*761] array.

  • crypto_core/scale3sntrup761: crypto_core_scale3sntrup761(h,f,0,0) transforms a polynomial f to a polynomial h. Each polynomial is expressed as a uint8[2*761] array storing 761 int16 values in little-endian form. Each f coefficient is transformed to the corresponding h coefficient with the following sequence of int16 operations (all intermediate results reduced to int16): multiply by 3; subtract 2296; if negative, add 4591; if negative, add 4591; subtract 2295.

  • crypto_core/weightsntrup761: crypto_core_weightsntrup761(y,x,0,0), where y is a uint8[2] array and x is a uint8[761] array, sets y[0],y[1] to the little-endian encoding of the sum of the 761 bits x[0]&1,...,x[760]&1.

  • crypto_core/wforcesntrup761: crypto_core_wforcesntrup761(y,x,0,0), where y is a uint8[761] array and x is a uint8[761] array, sets y to a copy of x if the little-endian encoding of the sum of the 761 bits x[0]&1,...,x[760]&1 is 286. Otherwise it sets y to 286 bytes equal to 1 followed by 761−286 bytes equal to 0.

  • crypto_hashblocks/sha512: crypto_hashblocks_sha512(h,x,xlen) updates an intermediate SHA-512 hash h using all of the full 128-byte blocks at the beginning of the xlen-byte array x, and returns the number of bytes left over, namely xlen mod 128.

  • crypto_hash/sha512: crypto_hash_sha512(h,x,xlen) computes the SHA-512 hash h of the xlen-byte array x.

  • crypto_kem/sntrup761: crypto_kem_sntrup761_keypair(pk,sk) is key generation for sntrup761, and is provided by the stable API as sntrup761_keypair. Similar comments apply to enc and dec.

The functions crypto_sort_int32(x,n) and crypto_sort_uint32(x,n) take time that depends on n but not on the contents of the x array. Similarly, the crypto_hash* functions take time that depends on input length but not on input contents. All other subroutines take constant time. There is one use of "declassification" in crypto_kem/sntrup: a rejection-sampling loop at the beginning of key generation enforces invertibility mod 3.

As in SUPERCOP and NaCl, array lengths intentionally use long long, not size_t. In libntruprime, as in lib25519 and libmceliece, array lengths are signed.

Implementations

A single primitive can, and usually does, have multiple implementations. Each implementation is in its own subdirectory. The implementations are required to have exactly the same input-output behavior, and to some extent this is tested, although it is not yet formally verified (except for some components such as crypto_sort).

Different implementations typically offer different tradeoffs between portability, simplicity, and efficiency. For example, crypto_core/inv3sntrup761/bits64 is portable; crypto_core/inv3sntrup761/avx is faster and less portable.

Each unportable implementation has an architectures file. Each line in this file identifies a CPU instruction set (and ABI) where the implementation works. For example, crypto_core/inv3sntrup761/avx/architectures has two lines

amd64 avx2
x86 avx2

meaning that the implementation works on CPUs that have the Intel/AMD 64-bit or 32-bit instruction sets with the AVX2 instruction-set extension. The top-level compilers directory shows (among other things) the allowed instruction-set names such as avx2.

At run time, libntruprime checks the CPU where it is running, and selects an implementation where architectures is compatible with that CPU. Each primitive makes its own selection once per program startup, using the compiler's ifunc mechanism (or constructor on platforms that do not support ifunc). This type of run-time selection means, for example, that an amd64 CPU without AVX2 can share binaries with an amd64 CPU with AVX2. However, correctness requires instruction sets to be preserved by migration across cores via the OS kernel, VM migration, etc.

The compiler has a target mechanism that makes an ifunc selection based on CPU architectures. Instead of using the target mechanism, libntruprime uses a more sophisticated mechanism that also accounts for benchmarks collected in advance of compilation.

Compilers

libntruprime tries different C compilers for each implementation. For example, compilers/default lists the following compilers:

clang -Wall -fPIC -fwrapv -Qunused-arguments -O2
gcc -Wall -fPIC -fwrapv -O3

Sometimes gcc produces better code, and sometimes clang produces better code.

As another example, compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma lists the following compilers:

clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake
gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake

The -mavx2 option tells these compilers that they are free to use the AVX2 instruction-set extension.

Code compiled using the compilers in compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma will be considered at run time by the libntruprime selection mechanism if the supports() function in compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma.c returns nonzero. This function checks whether the run-time CPU supports AVX2 (and SSE3 and so on, and OSXSAVE with XMM/YMM being saved; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85100 says that all versions of gcc until 2018 handled this incorrectly in target). Similar comments apply to other compilers/* files.

If some compilers fail (for example, clang is not installed, or the compiler version is too old to support the compiler options used in libntruprime), the libntruprime compilation process will try its best to produce a working library using the remaining compilers, even if this means lower performance.

Trimming

By default, to reduce size of the compiled library, the libntruprime compilation process trims the library down to the implementations that are selected by libntruprime's selection mechanism.

For example, if the selection mechanism decides that CPUs with AVX2 should use invsntrup761/avx with clang and that other CPUs should use invsntrup761/portable with gcc, then trimming will remove invsntrup761/avx compiled with gcc and invsntrup761/portable compiled with clang.

This trimming is handled at link time rather than compile time to increase the chance that, even if some implementations are broken by compiler "upgrades", the library will continue to build successfully.

To avoid this trimming, pass the --no-trim option to ./configure. All implementations that compile are then included in the library, tested by ntruprime-test, and measured by ntruprime-speed. You'll want to avoid trimming if you're adding new instruction sets or new implementations (see below), so that you can run tests and benchmarks of code that isn't selected yet.

How to recompile after changes

If you make changes under crypto_*, the fully supported recompilation mechanism is to run ./configure again to clean and repopulate the build directory, and then run make again to recompile everything.

This can be on the scale of seconds if you have enough cores, but maybe you're developing on a slower machine. Three options are currently available to accelerate the edit-compile cycle:

  • There is an experimental --no-clean option to ./configure that, for some simple types of changes, can produce a successful build without cleaning.

  • Running make without ./configure can work for some particularly simple types of changes. However, not all dependencies are currently expressed in Makefile, and some types of dependencies that ./configure understands would be difficult to express in the Makefile language.

  • You can disable the implementations you're not using by setting sticky bits on the source directories for those implementations: e.g., chmod +t crypto_*/*/avx.

Make sure to reenable all implementations and do a full clean build if you're collecting data to add to the source benchmarks directory.

How to add new instruction sets

Adding another file compilers/amd64+foo, along with a supports() implementation in compilers/amd64+foo.c, will support a new instruction set. Do not assume that the new foo instruction set implies support for older instruction sets (the idea of "levels" of instruction sets); instead make sure to include the older instruction sets in + tags, as illustrated by compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma.

In the compiler options, always make sure to include -fPIC to support shared libraries, and -fwrapv to switch to a slightly less dangerous version of C.

The foo tags don't have to be instruction sets. For example, if a CPU has the same instruction set but wants different optimizations because of differences in instruction timings, you can make a tag for those optimizations, using, e.g., CPU IDs or benchmarks in the corresponding supports() function to decide whether to enable those optimizations. Benchmarks tend to be more future-proof than a list of CPU IDs, but the time taken for benchmarks at program startup has to be weighed against the subsequent speedup from the resulting optimizations.

To see how well libntruprime performs with the new compilers, run ntruprime-speed on the target machine and look for the foo lines in the output. If the new performance is better than the performance shown on the selected lines:

  • Copy the ntruprime-speed output into a file on the benchmarks directory, typically named after the hostname of the target machine.

  • Run ./prioritize in the top-level directory to create priority files. These files tell libntruprime which implementations to select for any given architecture.

  • Reconfigure (again with --no-trim), recompile, rerun ntruprime-test, and rerun ntruprime-speed to check that the selected lines now use the foo compiler.

If the foo implementation is outperformed by other implementations, then these steps don't help except for documenting this fact. The same implementation might turn out to be useful for subsequent foo CPUs.

How to add new implementations

Taking full advantage of the foo instruction set usually requires writing new implementations. Sometimes there are also ideas for taking better advantage of existing instruction sets.

Structurally, adding a new implementation of a primitive is a simple matter of adding a new subdirectory with the code for that implementation. Most of the work is optimizing the use of foo intrinsics in .c files or foo instructions in .S files. Make sure to include an architectures file saying, e.g., amd64 avx2 foo.

Names of implementation directories can use letters, digits, dashes, and underscores. Do not use two implementation names that are the same when dashes and underscores are removed.

All .c and .S files in the implementation directory are compiled and linked. There is no need to edit a separate list of these files. You can also use .h files via the C preprocessor.

If an implementation is actually more restrictive than indicated in architectures then the resulting compiled library will fail on some machines (although perhaps that implementation will not be used by default). Putting unnecessary restrictions into architectures will not create such failures, but can unnecessarily limit performance.

Some, but not all, mistakes in architectures will produce warnings from the checkinsns script that runs automatically when libntruprime is compiled. Running the ntruprime-test program tries all implementations, but only on the CPU where ntruprime-test is being run; also, ntruprime-test does not guarantee code coverage.

amd64 implies little-endian, and implies architectural support for unaligned loads and stores. Beware, however, that the Intel/AMD vectorized load/store intrinsics (and the underlying movdqa instruction) require alignment; if in doubt, use loadu/storeu (and movdqu). The ntruprime-test program checks unaligned inputs and outputs, but can miss issues with unaligned stack variables.

To test your implementation, compile everything, check for compiler warnings and errors, run ntruprime-test (or just ntruprime-test xof to test a crypto_xof implementation), and check for a line saying all tests succeeded. To use AddressSanitizer (for catching, at run time, buffer overflows in C code), add -fsanitize=address to the gcc and clang lines in compilers/*; you may also have to add return; at the beginning of the limits() function in command/limits.inc.

To see the performance of your implementation, run ntruprime-speed. If the new performance is better than the performance shown on the selected lines, follow the same steps as for a new instruction set: copy the ntruprime-speed output into a file on the benchmarks directory; run ./prioritize in the top-level directory to create priority files; reconfigure (again with --no-trim); recompile; rerun ntruprime-test; rerun ntruprime-speed; check that the selected lines now use the new implementation.

How to handle namespacing

As in SUPERCOP and NaCl, to call crypto_sort_int32(), you have to include crypto_sort_int32.h; but to write an implementation of crypto_sort_int32(), you have to instead include crypto_sort.h and define crypto_sort. Similar comments apply to other primitives.

The function name that's actually linked might end up as, e.g., libntruprime_sort_int32_avx2_C2 where avx2 indicates the implementation and C2 indicates the compiler. Don't try to build this name into your implementation.

If you have another global symbol x (for example, a non-static function in a .c file, or a non-static variable outside functions in a .c file), you have to replace it with CRYPTO_NAMESPACE(x), for example with #define x CRYPTO_NAMESPACE(x).

For global symbols in .S files and shared-*.c files, use CRYPTO_SHARED_NAMESPACE instead of CRYPTO_NAMESPACE. For .S files that define both x and _x to handle platforms where x in C is _x in assembly, use CRYPTO_SHARED_NAMESPACE(x) and _CRYPTO_SHARED_NAMESPACE(x); CRYPTO_SHARED_NAMESPACE(_x) is not sufficient.

libntruprime includes a mechanism to recognize files that are copied across implementations (possibly of different primitives) and to unify those into a file compiled only once, reducing the overall size of the compiled library and possibly improving cache utilization. To request this mechanism, include a line

// linker define x

for any global symbol x defined in the file, and a line

// linker use x

for any global symbol x used in the file from the same implementation (not crypto_* subroutines that you're calling, randombytes, etc.). This mechanism tries very hard, perhaps too hard, to avoid improperly unifying files: for example, even a slight difference in a .h file included by a file defining a used symbol will disable the mechanism.

Typical namespacing mistakes will produce either linker failures or warnings from the checknamespace script that runs automatically when libntruprime is compiled.


Version: This is version 2024.08.18 of the "Internals" web page.
libntruprime-20241021/doc/html/license.html0000444000000000000000000000712214705505550017210 0ustar rootroot libntruprime: License
libntruprime: License

libntruprime is hereby placed into the public domain.

SPDX-License-Identifier: LicenseRef-PD-hp OR CC0-1.0 OR 0BSD OR MIT-0 OR MIT


Version: This is version 2024.07.10 of the "License" web page.
libntruprime-20241021/doc/html/people.html0000444000000000000000000001202314705505550017046 0ustar rootroot libntruprime: People
libntruprime: People

libntruprime is maintained by Daniel J. Bernstein.

libntruprime is based on the official "factored" sntrup software, which in turn is based on the original sntrup software from Daniel J. Bernstein, Chitchanok Chuengsatiansup, Tanja Lange, and Christine van Vredendaal.

The following components of libntruprime are from Daniel J. Bernstein:

  • Infrastructure to build a library with automatic run-time selection of implementations based on the run-time CPU and a database of benchmarks. This infrastructure was introduced in lib25519 and extended in libmceliece.

  • Various software for tests and benchmarks. This is based on public-domain code in the SUPERCOP benchmarking framework.

  • Software for the underlying subroutines crypto_sort (based on djbsort), crypto_hashblocks, and crypto_hash.

Beyond libntruprime, authors of publications with further sntrup speedups include Erdem Alkim, Daniel J. Bernstein, Billy Bob Brumley, Han-Ting Chen, Ming-Shing Chen, Yi-Hua Chung, Vincent Hwang, Li-Jie Jian, Chi-Ting Liu, Gregor Seiler, Nicola Tuveri, Ting-Yuan Wang, and Bo-Yin Yang.

Citation

For papers, a suitable citation for libntruprime is as follows, with your access date in place of 25 August 2024: "Daniel J. Bernstein (editor). libntruprime. https://libntruprime.cr.yp.to, accessed 25 August 2024." Here "editor" reflects the fact that libntruprime is assembled from work by multiple authors.


Version: This is version 2024.08.25 of the "People" web page.
libntruprime-20241021/doc/html/security.html0000444000000000000000000002142314705505550017435 0ustar rootroot libntruprime: Security
libntruprime: Security

Lattice-based cryptography is dangerous. Fast attacks have been demonstrated breaking, e.g., Compact LWE, HILA5, and Round2, all of which were small lattice-based cryptosystems submitted to the NIST post-quantum competition. The supposedly well-studied problems at the heart of all lattice-based cryptosystems continue to lose security. The "constant-time" reference software for Kyber (ML-KEM) has had two rounds of security patches for two different timing attacks demonstrated to be exploitable.

Unlike most proposals of lattice-based cryptosystems, sntrup acknowledges lattice risks and is designed accordingly. Furthermore, the sntrup software in libntruprime includes state-of-the-art defenses against timing attacks. But small lattice-based cryptosystems, even when carefully designed, remain dangerous, both at the mathematical level and at the software level. When you're deploying post-quantum cryptography, make sure to deploy it as an extra layer of encryption on top of your existing use of ECC, not as a replacement for ECC.

One risk for libntruprime is the risk of bugs getting past the libntruprime tests. The main defense in progress is software verification. Until verification is complete, libntruprime is limiting code size: it includes general AVX2 optimizations but skips the software from nine publications with further sntrup speedups.

Regarding timing attacks: libntruprime is designed to avoid all data flow from secret data to memory addresses and branch conditions. libntruprime uses operations that naturally avoid such data flow, and includes valgrind tests (based on TIMECOP from SUPERCOP) designed to catch any such data flow introduced by compilers. Fully protecting the user against timing attacks requires addressing more issues, such as the following:

  • Other CPU instructions can take variable time. For example, there are some CPUs, especially embedded CPUs, where integer multiplication takes variable time. Most software for public-key cryptography relies on integer multiplication, although there are exceptions such as code-based cryptography.

  • Many CPUs include dynamic frequency-selection mechanisms such as Turbo Boost, exposing power information via timing information. Fortunately, these CPUs are normally shipped with simple options to disable Turbo Boost etc., closing this leak; unfortunately, Turbo Boost is enabled by default on CPUs that support it.

  • Cryptographic keys are normally handled by cryptographic software, but other user secrets are handled by many different pieces of software.

See https://timing.attacks.cr.yp.to for a timing-attack survey and many references.

Speculative-execution attacks: Some countermeasures against speculative-execution attacks are planned but are not included in the current version of libntruprime. Full protection again requires addressing issues at other system layers.

Further side-channel attacks: Even if all legitimate user sensors are successfully kept isolated from attackers, attackers can set up their own power sensors, electromagnetic sensors, acoustic sensors, etc. Keeping cryptographic operations physically separated from sensors tends to make such attacks much more expensive but is often infeasible. "Masking" cryptographic computations seems to help and can be affordable, although the security of masking is difficult to evaluate and there are many broken masked implementations. Currently libntruprime does not include any masked implementations, so presumably it is easily breakable by power attacks in environments where attackers can see power consumption.

Further attacks: Presumably libntruprime is easily breakable by fault attacks in environments where attackers can trigger faults. Beyond attacker-triggered faults, natural DRAM faults occur surprisingly often. Implicit rejection fails to provide IND-CCA2 security when DRAM faults corrupt the secret key used for implicit rejection, although attacks can be stopped by "plaintext confirmation", another layer of defense included in sntrup. Error correction is in any case recommended (and often not provided by hardware), and there is a general-purpose libsecded library that applies error correction to any array, although this does not catch errors that occur during computations.


Version: This is version 2024.08.15 of the "Security" web page.
libntruprime-20241021/doc/html/speed.html0000444000000000000000000003445014705505550016672 0ustar rootroot libntruprime: Speed
libntruprime: Speed

In the following speed table, smaller keygen/enc/dec numbers are better. The numbers are interquartile means of single-core cycle counts on various microarchitectures. Overclocking is disabled.

μarch KEM keypair enc dec
Golden Cove (2021) sntrup653 569998 31437 44933
sntrup761 743752 35130 47191
sntrup857 938327 42316 61681
sntrup953 1134045 45276 63881
sntrup1013 1260294 45882 65517
sntrup1277 1945365 58064 81528
Zen 3 (2020) sntrup653 630180 32541 45606
sntrup761 841462 35311 47977
sntrup857 1038697 42592 60883
sntrup953 1253426 47028 64965
sntrup1013 1435108 46973 66213
sntrup1277 2171656 60228 80954
Zen 2 (2019) sntrup653 938965 38397 60512
sntrup761 1254327 41018 63308
sntrup857 1602767 50833 82192
sntrup953 1956955 54960 86430
sntrup1013 2203462 55829 88492
sntrup1277 3464035 70184 108778
Cortex-A72 (2016) sntrup653 9582905 685284 1149001
sntrup761 12759145 882618 1530800
sntrup857 16122629 1077066 1924171
sntrup953 19832706 1290673 2364008
sntrup1013 22573875 1431952 2668071
sntrup1277 35773394 2153211 4220444
Skylake (2015) sntrup653 692941 39847 59024
sntrup761 831462 41784 61793
sntrup857 1128575 51224 78029
sntrup953 1305503 54602 82755
sntrup1013 1425447 57443 88127
sntrup1277 2202685 73622 108376
Haswell (2013) sntrup653 767219 44278 65223
sntrup761 939803 47008 69013
sntrup857 1271818 58349 89379
sntrup953 1488084 64012 94010
sntrup1013 1680440 65535 96216
sntrup1277 2720370 81871 122664

Microarchitectures are listed in reverse chronological order of when they were introduced.

In the libntruprime distribution, command/ntruprime-speed.c measures libntruprime; benchmarks/*-* is the output of ntruprime-speed on various machines; and autogen/md-speed extracts the table from those measurements.

The table reports only interquartile means of cycle counts, not the full distribution of cycle counts. See the full output files for differences between multiple measurements and the interquartile mean.

Faster sntrup software

There has been extensive further work on sntrup software speeds beyond the current libntruprime speeds. libntruprime has a policy of limiting code size, but if there are applications that need these speedups then they can still be considered for inclusion in libntruprime:


Version: This is version 2024.10.08 of the "Speed" web page.
libntruprime-20241021/doc/html/test.html0000444000000000000000000001451414705505550016550 0ustar rootroot libntruprime: Test
libntruprime: Test

To run the full test suite after compiling and installing libntruprime, run ntruprime-fulltest. This indicates success in two ways: it prints full tests succeeded as its last line of output; it exits 0.

Any change in the compiled library (compiling for a different architecture, compiling with a different compiler, etc.) must be subjected to a new round of tests. A compiled version of libntruprime that does not pass the full test suite is not supported.

One run of ntruprime-fulltest was observed to take 529 core-minutes on a 2.245GHz EPYC 7742 with overclocking disabled. This test finished in 35 minutes of real time; ntruprime-fulltest includes some automatic parallelization. To limit the number of threads used to 1, run env THREADS=1 ntruprime-fulltest.

libntruprime automatically selects AVX2 implementations when it is running on an Intel/AMD CPU that supports AVX2, while falling back to portable implementations otherwise. Running ntruprime-fulltest on an Intel/AMD CPU without AVX2 will say CPU does not support implementation for the AVX2 implementations and will fail. To test a compilation of libntruprime for Intel/AMD CPUs, you have to pick an Intel/AMD CPU with AVX2 to run ntruprime-fulltest.

The rest of this page says more about what is happening inside ntruprime-fulltest.

Conventional tests

The workhorse inside ntruprime-fulltest is a separate ntruprime-test program.

Simply calling ntruprime-test without arguments will run SUPERCOP-style tests that the subroutines in libntruprime produce the expected results for known inputs (including known randomness), and will indicate success in two ways: printing all tests succeeded as the last line of output, and exiting 0.

For parallelism, ntruprime-fulltest calls ntruprime-test many times, using optional ntruprime-test arguments to narrow which subroutines are being tested.

Data-flow tests

Another way that ntruprime-fulltest runs ntruprime-test is as follows, running TIMECOP-style tests that branch conditions and array indices are independent of secrets:

env valgrind_multiplier=1 \
valgrind -q \
--error-exitcode=99 \
ntruprime-test

This requires valgrind to be installed at test time. The output will include a line valgrind 1 declassify 1 if the library was compiled with --valgrind (which is the only supported option), or a line valgrind 1 declassify 0 (expect false positives) otherwise.

These data-flow tests do not supersede the conventional tests. The conventional tests run code directly on the CPU and might catch issues hidden by the emulation in valgrind. The conventional tests also include some memory tests that are disabled to improve the valgrind memory tests but that are not necessarily superseded by the valgrind memory tests.


Version: This is version 2024.08.15 of the "Test" web page.
libntruprime-20241021/doc/html/verification.html0000444000000000000000000001305314705505550020250 0ustar rootroot libntruprime: Verification
libntruprime: Verification

libntruprime is intended to become a central target for verification of full functional correctness of implementations of sntrup. Full functional correctness of an sntrup implementation means that the implementation computes the same output as the NTRU Prime Sage package for all possible inputs. This document tracks what has been verified so far and what has not.

Changes in C compilers and in assemblers often change the behavior of software and might introduce bugs where no bugs existed before. Some tools address this by verifying correctness at the machine-language level. It is important to re-run these tools whenever new binaries are produced.

Changes in CPUs can also introduce bugs where no bugs existed before. Verification is always relative to a model of CPU behavior, and physical CPUs often deviate from these models, sometimes in problematic ways.

There is also a risk that current or future versions of Sage do not correctly compute the documented Sage functions used by the Sage package. This can interfere with falsifiability: even if the CPU matches the model, a bug in an sntrup implementation could be hidden by a bug in Sage.

The supercop/crypto_kem/sntrup* checksums match the checksums produced by libntruprime and checksums produced by the Sage package. These checksums are hashes of outputs for various pseudorandomly generated inputs (with randomness treated as another input). However, there could be bugs for other inputs.

Various runs under valgrind and asan have not detected any abnormal use of RAM. However, valgrind will not notice overflows from a C variable into an adjacent C variable; asan will not notice overflows in assembly language; and neither tool addresses the risk of bugs for rare inputs.

The NTT software used inside libntruprime comes from nttcompiler and has been computer-verified to work correctly on all inputs. The sorting software used inside libntruprime comes from djbsort and has also been computer-verified to work correctly on all inputs. However, there could be bugs in the verification tools, and there are other computations happening inside libntruprime.


Version: This is version 2024.08.15 of the "Verification" web page.
libntruprime-20241021/doc/install.md0000644000000000000000000000414414705505550015727 0ustar rootrootPrerequisites: * `python3` (for: build, test) * recommended `python3-capstone` (for: build) * `gcc` and/or `clang` (for: build) * `valgrind` (for: build, test) * [`libcpucycles`](https://cpucycles.cr.yp.to) (for: build, bench) * [`librandombytes`](https://randombytes.cr.yp.to) (for: build, test, bench, run) Make sure to [test](test.html) the compiled library. The tests check for subtle security problems that can be created by compilers. A compiled version of libntruprime is **not supported** unless it passes the full test suite. ### For sysadmins To install in `/usr/local/{include,lib,bin,man}`: ./configure && make -j8 install ### For developers with an unprivileged account Typically you'll already have export LD_LIBRARY_PATH="$HOME/lib" export LIBRARY_PATH="$HOME/lib" export CPATH="$HOME/include" export MANPATH="$HOME/man" export PATH="$HOME/bin:$PATH" in `$HOME/.profile`. To install in `$HOME/{include,lib,bin,man}`: ./configure --prefix=$HOME && make -j8 install ### For distributors creating a package Run ./configure --prefix=/usr && make -j8 and then follow your usual packaging procedures for the `build/0/package` files: build/0/package/include/ntruprime.h build/0/package/lib/libntruprime* build/0/package/bin/*ntrup* build/0/package/man/man3/*.3 build/0/package/man/man1/*.1 ### More options, part 1: architectures You can run ./configure --host=amd64 to override `./configure`'s guess of the architecture that it should compile for. Inside the `build` directory, `0` is symlinked to `amd64` for `--host=amd64`. Running `make clean` removes `build/amd64`. Re-running `./configure` automatically starts with `make clean`. A subsequent `./configure --host=arm64` will create `build/arm64` and symlink `0 -> arm64`, without touching an existing `build/amd64`. However, cross-compilers aren't yet selected automatically. ### More options, part 2 One further `./configure` option is supported for [developers](internals.html): `--no-trim`. All `./configure` options not listed above are experimental and **not supported**. Use them at your own risk. libntruprime-20241021/doc/internals.md0000644000000000000000000006117214705505550016264 0ustar rootrootThis document explains the internal structure of libntruprime, and explains how to add new instruction sets and new implementations. The libntruprime infrastructure is adapted from the infrastructure used in lib25519 and libmceliece. ### Code generation Portions of the distributed libntruprime package were automatically generated by scripts in the `autogen` directory, using (among other things) source in the `src` directory. For example, `autogen/src` converts the `src/kem/sntrupP` directory into `crypto_kem/sntrup{653,761,857,953,1013,1277}`, converts the the `src/core/multsntrupP` directory into `crypto_core/multsntrup{653,761,857,953,1013,1277}`, etc. (The `crypto_hash*` directories are not auto-generated.) This structure means that source code is shared across all of the `sntrup` sizes, while allowing per-size specialization of the compiled code, reducing the in-memory code size for the typical case of an application using just one size. The installation process (`./configure` etc.) does not run the `autogen` scripts. Developers have a choice of two development cycles: * Cycle 1: Modify files in, e.g., `src/core/multsntrupP`; run `autogen/src`; install; test; repeat. * Cycle 2: Modify files in, e.g., `crypto_core/multsntrup653`; install; test; repeat. Once `crypto_core/multsntrup653` is working, generalize to `src/core/multsntrupP` and switch to cycle 1. ### Primitives The `crypto_kem/sntrup*` directories inside libntruprime are intended to compute exactly the KEM primitives defined by the [NTRU Prime Sage reference implementation](https://ntruprime.cr.yp.to/software.html). Internally, the implementations rely on lower-level subroutines defined in further `crypto_*/*` directories. This structuring provides smaller targets for optimization, testing, and verification. The subroutines are intended to compute the primitives defined in Python inside libntruprime's `autogen/test` Python script. For example, the `crypto_core/multsntrup*` functions are intended to match the Python function `core_multsntrup`. The `autogen/test` script creates a test program, `ntruprime-test`, which checks libntruprime's subroutines against some outputs of the Python functions and against some SUPERCOP "checksums" (hashes of outputs for various inputs). As a concrete introduction to the subroutines, the list below describes specifically the primitives used for `sntrup761`. Various numbers appear in these descriptions. The `sntrup761` parameters are p = 761, q = 4591, and w = 286. Related numbers appearing below are (p+3)/4 = 191; (q+2)/3 = 1531; (q−1)/2 = 2295; 1007, the number of bytes produced by the NTRU Prime `Encode` function for `M = 761*[1531]`; 1039 = 1007 + 32; and 1158, the number of bytes produced by `Encode` for `M = 761*[4591]`. The constant 32 is independent of the parameter set, as is the constant 10923 = 32769/3 appearing below. The 1039 and 1158 here are also the ciphertext size and public-key size for `sntrup761`. See `autogen/test` for the `Encode` function and a corresponding `Decode` function; these are copied from Figures 1 and 2 in the NTRU Prime specification. Here are the primitives: * `crypto_verify/1039`: `crypto_verify_1039(s,t)` returns 0 when the 1039-byte arrays `s` and `t` are equal, otherwise `-1`. * `crypto_decode/int16`: `crypto_decode_int16(x,s)`, where `x` is a `uint16[1]` array and `s` is a `uint8[2]` array, sets `x[0]` to the `uint16` whose little-endian encoding is `s[0],s[1]`. * `crypto_decode/761xint16`: `crypto_decode_761xint16(x,s)`, where `x` is a `uint16[761]` array and `s` is a `uint8[2*761]` array, sets each `x[i]` to the `uint16` whose little-endian encoding is `s[2*i],s[2*i+1]`. * `crypto_decode/761xint32`: `crypto_decode_761xint16(x,s)`, where `x` is a `uint32[761]` array and `s` is a `uint8[4*761]` array, sets each `x[i]` to the `uint32` whose little-endian encoding is `s[4*i],s[4*i+1],s[4*i+2],s[4*i+3]`. * `crypto_decode/761x3`: `crypto_decode_761x3(x,s)`, where `x` is a `uint8[761]` array and `s` is a `uint8[191]` array, sets `x[0]` to `(s[0]&3)-1`, sets `x[1]` to `((s[0]>>2)&3)-1`, sets `x[2]` to `((s[0]>>4)&3)-1`, sets `x[3]` to `((s[0]>>6)&3)-1`, sets `x[4]` to `(s[1]&3)-1`, etc. * `crypto_decode/761x1531`: `crypto_decode_761x1531(x,s)`, where `x` is an `int16[761]` array and `s` is a `uint8[1007]` array, applies `Decode` to convert `s` into 761 integers between 0 and 1530 (i.e., the `M` input to the function is `761*[1531]`), and then multiplies each integer by 3 and subtracts 2295 to obtain `x`. * `crypto_decode/761x4591`: `crypto_decode_761x4591(x,s)`, where `x` is an `int16[761]` array and `s` is a `uint8[1158]` array, applies `Decode` to convert `s` into 761 integers between 0 and 4590 (i.e., the `M` input to the function is `761*[4591]`), and then subtracts 2295 from each integer to obtain `x`. * `crypto_encode/int16`: `crypto_encode_int16(s,x)`, where `s` is a `uint8[2]` array and `x` is a `uint16[1]` array, sets `s[0],s[1]` to the little-endian encoding of `x[0]`. * `crypto_encode/761x3`: `crypto_encode_761x3(s,x)`, where `s` is a `uint8[191]` array and `x` is a `uint8[761]` array, sets `s[0]` to `(x[0]+1)+4*(x[1]+1)+16*(x[2]+1)+64*(x[3]+1)`, sets `s[1]` to `(x[4]+1)+4*(x[5]+1)+16*(x[6]+1)+64*(x[7]+1)`, ..., sets `s[189]` to `(x[756]+1)+4*(x[757]+1)+16*(x[758]+1)+64*(x[759]+1)`, and sets `s[190]` to `x[760]+1`. * `crypto_encode/761xfreeze3`: `crypto_encode_761xfreeze3(s,x)`, where `s` is a `uint8[761]` array and `x` is an `int16[761]` array, sets each `s[i]` to `x[i]-3*((10923*x[i]+16384)>>15)`. * `crypto_encode/761x1531`: `crypto_encode_761x1531(s,x)`, where `s` is a `uint8[1007]` array and `x` is an `int16[761]` array, sets `s` to `Encode(R,M)`, where `M` is `761*[1531]` and `R[i]` is `(((x[i]+2295)&16383)*10923)>>15`. (The way this is used in `sntrup761` has `R[i]` below `M[i]`; however, tests include larger `R[i]`.) * `crypto_encode/761x1531round`: `crypto_encode_761x1531round(s,x)`, where `s` is a `uint8[1007]` array and `x` is an `int16[761]` array, is the same as `crypto_encode_761x1531(s,y)`, where `y[i] = 3*((10923*x[i]+16384)>>15)`. * `crypto_encode/761x4591`: `crypto_encode_761x4591(s,x)`, where `s` is a `uint8[1158]` array and `x` is an `int16[761]` array, sets `s` to `Encode(R,M)`, where `M` is `761*[4591]` and `R[i]` is `(x[i]+2295)&16383`. (The way this is used in `sntrup761` has `R[i]` below `M[i]`; however, tests include larger `R[i]`.) * `crypto_sort/int32`: `crypto_sort_int32(x,n)` sorts the `int32` values `x[0]`, `x[1]`, ..., `x[n-1]`. * `crypto_sort/uint32`: `crypto_sort_uint32(x,n)` sorts the `uint32` values `x[0]`, `x[1]`, ..., `x[n-1]`. * `crypto_core/inv3sntrup761`: `crypto_core_inv3sntrup761(h,f,0,0)` sets polynomial `h` to the reciprocal of polynomial `f` modulo x^761^−x−1 modulo 3. The polynomial `f` is expressed as a `uint8[761]` array where bytes that reduce to 0, 1, 2, 3 modulo 4 are interpreted as the small integers 0, 1, 0, −1 respectively; these integers in {−1,0,1} are then interpreted as the coefficients of x^0^, x^1^, etc. in that order. Coefficients −1, 0, 1 in `1/f` modulo 3 are converted to bytes 255, 0, 1 in array `h`. There is then a final byte 0 indicating that the reciprocal exists, so `h` is a `uint8[762]` array. If `f` does not have a reciprocal then the `h` array is instead set to 761 bytes 0 followed by final byte 255. * `crypto_core/invsntrup761`: `crypto_core_invsntrup761(h,f,0,0)` sets polynomial `h` to the reciprocal of `3f` modulo x^761^−x−1 modulo 4591. The input polynomial `f` is expressed as an `int8[761]` array; the array entries in {−128,...,127} are interpreted as the coefficients of x^0^, x^1^, etc. in that order. Each coefficient of the reciprocal of `3f` is reduced modulo q to the range −(q−1)/2 through (q−1)/2 and then encoded as 2 bytes in little-endian form in `h`. There is then a final byte 0 indicating that the reciprocal exists, so `h` is a `uint8[2*761+1]` array. If `3f` does not have a reciprocal then the `h` array is instead set to `2*761` bytes 0 followed by final byte 255. * `crypto_core/mult3sntrup761`: `crypto_core_multsntrup761(h,f,g,0)` sets `h` to the product of two small-coefficient polynomials `f` and `g` modulo x^761^−x−1 modulo 3. The polynomial `f` is expressed as a `uint8[761]` array where bytes that reduce to 0, 1, 2, 3 modulo 4 are interpreted as the small integers 0, 1, 0, −1 respectively; these integers in {−1,0,1} are then interpreted as the coefficients of x^0^, x^1^, etc. in that order. The polynomial `g` is expressed the same way. Each coefficient of the product modulo x^761^−x−1 is reduced modulo 3 to the range −1, 0, 1, and then stored in the `uint8[761]` array `h` as byte 255, 0, 1 respectively. * `crypto_core/multsntrup761`: `crypto_core_multsntrup761(h,f,g,0)` sets `h` to the product of a polynomial `f` and a small-coefficient polynomial `g` modulo x^761^−x−1 modulo q. The polynomial `f` is expressed as a `uint8[2*761]` array storing 761 `int16` values in little-endian form. The polynomial `g` is expressed as a `uint8[761]` array, where bytes that reduce to 0, 1, 2, 3 modulo 4 are interpreted as the small integers 0, 1, 0, −1 respectively. Each coefficient of the product modulo x^761^−x−1 is reduced modulo q to the range −(q−1)/2 through (q−1)/2, and then encoded as 2 bytes in little-endian form in `h`, which is a `uint8[2*761]` array. * `crypto_core/scale3sntrup761`: `crypto_core_scale3sntrup761(h,f,0,0)` transforms a polynomial `f` to a polynomial `h`. Each polynomial is expressed as a `uint8[2*761]` array storing 761 `int16` values in little-endian form. Each `f` coefficient is transformed to the corresponding `h` coefficient with the following sequence of `int16` operations (all intermediate results reduced to `int16`): multiply by 3; subtract 2296; if negative, add 4591; if negative, add 4591; subtract 2295. * `crypto_core/weightsntrup761`: `crypto_core_weightsntrup761(y,x,0,0)`, where `y` is a `uint8[2]` array and `x` is a `uint8[761]` array, sets `y[0],y[1]` to the little-endian encoding of the sum of the 761 bits `x[0]&1,...,x[760]&1`. * `crypto_core/wforcesntrup761`: `crypto_core_wforcesntrup761(y,x,0,0)`, where `y` is a `uint8[761]` array and `x` is a `uint8[761]` array, sets `y` to a copy of `x` if the little-endian encoding of the sum of the 761 bits `x[0]&1,...,x[760]&1` is 286. Otherwise it sets `y` to 286 bytes equal to `1` followed by 761−286 bytes equal to `0`. * `crypto_hashblocks/sha512`: `crypto_hashblocks_sha512(h,x,xlen)` updates an intermediate SHA-512 hash `h` using all of the full 128-byte blocks at the beginning of the `xlen`-byte array `x`, and returns the number of bytes left over, namely `xlen` mod 128. * `crypto_hash/sha512`: `crypto_hash_sha512(h,x,xlen)` computes the SHA-512 hash `h` of the `xlen`-byte array `x`. * `crypto_kem/sntrup761`: `crypto_kem_sntrup761_keypair(pk,sk)` is key generation for `sntrup761`, and is provided by the [stable API](api.html) as `sntrup761_keypair`. Similar comments apply to `enc` and `dec`. The functions `crypto_sort_int32(x,n)` and `crypto_sort_uint32(x,n)` take time that depends on `n` but not on the contents of the `x` array. Similarly, the `crypto_hash*` functions take time that depends on input length but not on input contents. All other subroutines take constant time. There is one use of "declassification" in `crypto_kem/sntrup`: a rejection-sampling loop at the beginning of key generation enforces invertibility mod 3. As in SUPERCOP and NaCl, array lengths intentionally use `long long`, not `size_t`. In libntruprime, as in lib25519 and libmceliece, array lengths are signed. ### Implementations A single primitive can, and usually does, have multiple implementations. Each implementation is in its own subdirectory. The implementations are required to have exactly the same input-output behavior, and to some extent this is tested, although it is not yet formally verified (except for some components such as `crypto_sort`). Different implementations typically offer different tradeoffs between portability, simplicity, and efficiency. For example, `crypto_core/inv3sntrup761/bits64` is portable; `crypto_core/inv3sntrup761/avx` is faster and less portable. Each unportable implementation has an `architectures` file. Each line in this file identifies a CPU instruction set (and ABI) where the implementation works. For example, `crypto_core/inv3sntrup761/avx/architectures` has two lines amd64 avx2 x86 avx2 meaning that the implementation works on CPUs that have the Intel/AMD 64-bit or 32-bit instruction sets with the AVX2 instruction-set extension. The top-level `compilers` directory shows (among other things) the allowed instruction-set names such as `avx2`. At run time, libntruprime checks the CPU where it is running, and selects an implementation where `architectures` is compatible with that CPU. Each primitive makes its own selection once per program startup, using the compiler's `ifunc` mechanism (or `constructor` on platforms that do not support `ifunc`). This type of run-time selection means, for example, that an `amd64` CPU without AVX2 can share binaries with an `amd64` CPU with AVX2. However, correctness requires instruction sets to be preserved by migration across cores via the OS kernel, VM migration, etc. The compiler has a `target` mechanism that makes an `ifunc` selection based on CPU architectures. Instead of using the `target` mechanism, libntruprime uses a more sophisticated mechanism that also accounts for benchmarks collected in advance of compilation. ### Compilers libntruprime tries different C compilers for each implementation. For example, `compilers/default` lists the following compilers: clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 gcc -Wall -fPIC -fwrapv -O3 Sometimes `gcc` produces better code, and sometimes `clang` produces better code. As another example, `compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma` lists the following compilers: clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake The `-mavx2` option tells these compilers that they are free to use the AVX2 instruction-set extension. Code compiled using the compilers in `compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma` will be considered at run time by the libntruprime selection mechanism if the `supports()` function in `compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma.c` returns nonzero. This function checks whether the run-time CPU supports AVX2 (and SSE3 and so on, and OSXSAVE with XMM/YMM being saved; [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85100](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85100) says that all versions of gcc until 2018 handled this incorrectly in `target`). Similar comments apply to other `compilers/*` files. If some compilers fail (for example, clang is not installed, or the compiler version is too old to support the compiler options used in libntruprime), the libntruprime compilation process will try its best to produce a working library using the remaining compilers, even if this means lower performance. ### Trimming By default, to reduce size of the compiled library, the libntruprime compilation process trims the library down to the implementations that are selected by libntruprime's selection mechanism. For example, if the selection mechanism decides that CPUs with AVX2 should use `invsntrup761/avx` with `clang` and that other CPUs should use `invsntrup761/portable` with `gcc`, then trimming will remove `invsntrup761/avx` compiled with `gcc` and `invsntrup761/portable` compiled with `clang`. This trimming is handled at link time rather than compile time to increase the chance that, even if some implementations are broken by compiler "upgrades", the library will continue to build successfully. To avoid this trimming, pass the `--no-trim` option to `./configure`. All implementations that compile are then included in the library, tested by `ntruprime-test`, and measured by `ntruprime-speed`. You'll want to avoid trimming if you're adding new instruction sets or new implementations (see below), so that you can run tests and benchmarks of code that isn't selected yet. ### How to recompile after changes If you make changes under `crypto_*`, the fully supported recompilation mechanism is to run `./configure` again to clean and repopulate the build directory, and then run `make` again to recompile everything. This can be on the scale of seconds if you have enough cores, but maybe you're developing on a slower machine. Three options are currently available to accelerate the edit-compile cycle: * There is an experimental `--no-clean` option to `./configure` that, for some simple types of changes, can produce a successful build without cleaning. * Running `make` without `./configure` can work for some particularly simple types of changes. However, not all dependencies are currently expressed in `Makefile`, and some types of dependencies that `./configure` understands would be difficult to express in the `Makefile` language. * You can disable the implementations you're not using by setting sticky bits on the source directories for those implementations: e.g., `chmod +t crypto_*/*/avx`. Make sure to reenable all implementations and do a full clean build if you're collecting data to add to the source `benchmarks` directory. ### How to add new instruction sets Adding another file `compilers/amd64+foo`, along with a `supports()` implementation in `compilers/amd64+foo.c`, will support a new instruction set. Do not assume that the new `foo` instruction set implies support for older instruction sets (the idea of "levels" of instruction sets); instead make sure to include the older instruction sets in `+` tags, as illustrated by `compilers/amd64+sse3+ssse3+sse41+popcnt+avx+bmi1+bmi2+avx2+fma`. In the compiler options, always make sure to include `-fPIC` to support shared libraries, and `-fwrapv` to switch to a slightly less dangerous version of C. The `foo` tags don't have to be instruction sets. For example, if a CPU has the same instruction set but wants different optimizations because of differences in instruction timings, you can make a tag for those optimizations, using, e.g., CPU IDs or benchmarks in the corresponding `supports()` function to decide whether to enable those optimizations. Benchmarks tend to be more future-proof than a list of CPU IDs, but the time taken for benchmarks at program startup has to be weighed against the subsequent speedup from the resulting optimizations. To see how well libntruprime performs with the new compilers, run `ntruprime-speed` on the target machine and look for the `foo` lines in the output. If the new performance is better than the performance shown on the `selected` lines: * Copy the `ntruprime-speed` output into a file on the `benchmarks` directory, typically named after the hostname of the target machine. * Run `./prioritize` in the top-level directory to create `priority` files. These files tell libntruprime which implementations to select for any given architecture. * Reconfigure (again with `--no-trim`), recompile, rerun `ntruprime-test`, and rerun `ntruprime-speed` to check that the `selected` lines now use the `foo` compiler. If the `foo` implementation is outperformed by other implementations, then these steps don't help except for documenting this fact. The same implementation might turn out to be useful for subsequent `foo` CPUs. ### How to add new implementations Taking full advantage of the `foo` instruction set usually requires writing new implementations. Sometimes there are also ideas for taking better advantage of existing instruction sets. Structurally, adding a new implementation of a primitive is a simple matter of adding a new subdirectory with the code for that implementation. Most of the work is optimizing the use of `foo` intrinsics in `.c` files or `foo` instructions in `.S` files. Make sure to include an `architectures` file saying, e.g., `amd64 avx2 foo`. Names of implementation directories can use letters, digits, dashes, and underscores. Do not use two implementation names that are the same when dashes and underscores are removed. All `.c` and `.S` files in the implementation directory are compiled and linked. There is no need to edit a separate list of these files. You can also use `.h` files via the C preprocessor. If an implementation is actually more restrictive than indicated in `architectures` then the resulting compiled library will fail on some machines (although perhaps that implementation will not be used by default). Putting unnecessary restrictions into `architectures` will not create such failures, but can unnecessarily limit performance. Some, but not all, mistakes in `architectures` will produce warnings from the `checkinsns` script that runs automatically when libntruprime is compiled. Running the `ntruprime-test` program tries all implementations, but only on the CPU where `ntruprime-test` is being run; also, `ntruprime-test` does not guarantee code coverage. `amd64` implies little-endian, and implies architectural support for unaligned loads and stores. Beware, however, that the Intel/AMD vectorized `load`/`store` intrinsics (and the underlying `movdqa` instruction) require alignment; if in doubt, use `loadu`/`storeu` (and `movdqu`). The `ntruprime-test` program checks unaligned inputs and outputs, but can miss issues with unaligned stack variables. To test your implementation, compile everything, check for compiler warnings and errors, run `ntruprime-test` (or just `ntruprime-test xof` to test a `crypto_xof` implementation), and check for a line saying `all tests succeeded`. To use AddressSanitizer (for catching, at run time, buffer overflows in C code), add `-fsanitize=address` to the `gcc` and `clang` lines in `compilers/*`; you may also have to add `return;` at the beginning of the `limits()` function in `command/limits.inc`. To see the performance of your implementation, run `ntruprime-speed`. If the new performance is better than the performance shown on the `selected` lines, follow the same steps as for a new instruction set: copy the `ntruprime-speed` output into a file on the `benchmarks` directory; run `./prioritize` in the top-level directory to create `priority` files; reconfigure (again with `--no-trim`); recompile; rerun `ntruprime-test`; rerun `ntruprime-speed`; check that the `selected` lines now use the new implementation. ### How to handle namespacing As in SUPERCOP and NaCl, to call `crypto_sort_int32()`, you have to include `crypto_sort_int32.h`; but to write an implementation of `crypto_sort_int32()`, you have to instead include `crypto_sort.h` and define `crypto_sort`. Similar comments apply to other primitives. The function name that's actually linked might end up as, e.g., `libntruprime_sort_int32_avx2_C2` where `avx2` indicates the implementation and `C2` indicates the compiler. Don't try to build this name into your implementation. If you have another global symbol `x` (for example, a non-`static` function in a `.c` file, or a non-`static` variable outside functions in a `.c` file), you have to replace it with `CRYPTO_NAMESPACE(x)`, for example with `#define x CRYPTO_NAMESPACE(x)`. For global symbols in `.S` files and `shared-*.c` files, use `CRYPTO_SHARED_NAMESPACE` instead of `CRYPTO_NAMESPACE`. For `.S` files that define both `x` and `_x` to handle platforms where `x` in C is `_x` in assembly, use `CRYPTO_SHARED_NAMESPACE(x)` and `_CRYPTO_SHARED_NAMESPACE(x)`; `CRYPTO_SHARED_NAMESPACE(_x)` is not sufficient. libntruprime includes a mechanism to recognize files that are copied across implementations (possibly of different primitives) and to unify those into a file compiled only once, reducing the overall size of the compiled library and possibly improving cache utilization. To request this mechanism, include a line ``` // linker define x ``` for any global symbol `x` defined in the file, and a line ``` // linker use x ``` for any global symbol `x` used in the file from the same implementation (not `crypto_*` subroutines that you're calling, `randombytes`, etc.). This mechanism tries very hard, perhaps too hard, to avoid improperly unifying files: for example, even a slight difference in a `.h` file included by a file defining a used symbol will disable the mechanism. Typical namespacing mistakes will produce either linker failures or warnings from the `checknamespace` script that runs automatically when libntruprime is compiled. libntruprime-20241021/doc/license.md0000644000000000000000000000053214705505550015700 0ustar rootrootlibntruprime is hereby placed into the public domain. [SPDX-License-Identifier](https://spdx.dev/ids/): [LicenseRef-PD-hp](https://cr.yp.to/spdx.html) OR [CC0-1.0](https://spdx.org/licenses/CC0-1.0.html) OR [0BSD](https://spdx.org/licenses/0BSD.html) OR [MIT-0](https://spdx.org/licenses/MIT-0.html) OR [MIT](https://spdx.org/licenses/MIT.html) libntruprime-20241021/doc/man/0000755000000000000000000000000014705505552014511 5ustar rootrootlibntruprime-20241021/doc/man/ntruprime-fulltest.10000644000000000000000000000167314705505550020465 0ustar rootroot.\" Automatically generated by Pandoc 2.17.1.1 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "ntruprime-fulltest" "1" "" "" "" .hy .SS NAME .PP ntruprime-fulltest - run the full libntruprime test suite .SS SYNOPSIS .IP .nf \f[C] ntruprime-fulltest \f[R] .fi .SS DESCRIPTION .PP \f[V]ntruprime-fulltest\f[R] runs the full suite of tests of the libntruprime implementation of the Streamlined NTRU Prime cryptosystem. .PP The \f[V]ntruprime-fulltest\f[R] output format is subject to change. A successful test prints a final line saying .IP .nf \f[C] full tests succeeded \f[R] .fi .PP and exits 0. An unsuccessful test exits nonzero without printing that line. .SS SEE ALSO .PP \f[B]ntruprime-test\f[R](1), \f[B]ntruprime\f[R](1), \f[B]ntruprime\f[R](3) libntruprime-20241021/doc/man/ntruprime-speed.10000644000000000000000000000453214705505550017720 0ustar rootroot.\" Automatically generated by Pandoc 2.17.1.1 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "ntruprime-speed" "1" "" "" "" .hy .SS NAME .PP ntruprime-speed - run some libntruprime speed tests .SS SYNOPSIS .IP .nf \f[C] ntruprime-speed \f[R] .fi .SS DESCRIPTION .PP \f[V]ntruprime-speed\f[R] runs some tests of the speed of the libntruprime implementation of the Streamlined NTRU Prime cryptosystem. .PP The \f[V]ntruprime-speed\f[R] output format is subject to change. Examples of output lines with the current format, from a \f[V]ntruprime-speed\f[R] run on an Intel Skylake CPU core, include the following: .IP .nf \f[C] kem_sntrup761 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair selected 1158 779846 +112137+5141+1312+565-207-153+66-18+35+1650-109+4-144+414-119-69-243+66+82-110-1-16+174+864+741-52-1+57-180-538-312-116 kem_sntrup761_enc selected 1039 40275 +8153+1104+323-39+36-1-107-27-99-17-15-65+74-33-102-24-30+69+99-106+7+33+59-5+175-60-29+152+21-82+90-78 kem_sntrup761_dec selected 32 52834 +36240+2014+438+165+96+109+62-8-78+20+67-30-112-59+27-25-3+31+15-118+102-64-84+19-121+57-35+120-125-147-80-75 \f[R] .fi .PP These lines say that the automatically selected implementation for the \f[V]sntrup761\f[R] parameter set was the \f[V]factored\f[R] implementation compiled with the \f[V]clang\f[R] options shown, taking an interquartile mean (IQM) of 779846 CPU cycles to generate a key pair, 40275 CPU cycles to encapsulate a session key, and 52834 CPU cycles to decapsulate a session key. The numbers \f[V]52834 +36240+2014+...\f[R] show the timings for a series of consecutive operations: the IQM was 52834 cycles, the first run took 36240 cycles more than the IQM, the second run took 2014 cycles more than the IQM, etc. .PP The numbers immediately after \f[V]selected\f[R] on the \f[V]keypair\f[R], \f[V]enc\f[R], and \f[V]dec\f[R] lines say that a public key has 1158 bytes, a ciphertext has 1039 bytes, and a session key has 3 bytes. .SS SEE ALSO .PP \f[B]sntrup\f[R](1), \f[B]sntrup\f[R](3) libntruprime-20241021/doc/man/ntruprime-test.10000644000000000000000000000256114705505550017577 0ustar rootroot.\" Automatically generated by Pandoc 2.17.1.1 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "ntruprime-test" "1" "" "" "" .hy .SS NAME .PP ntruprime-test - run some libntruprime correctness tests .SS SYNOPSIS .IP .nf \f[C] ntruprime-test \f[R] .fi .SS DESCRIPTION .PP \f[V]ntruprime-test\f[R] runs some tests of the correctness of the libntruprime implementation of the Streamlined NTRU Prime cryptosystem. .PP The \f[V]ntruprime-test\f[R] output format is subject to change. As examples of the current format, the lines .IP .nf \f[C] kem_sntrup761 offset 1 kem_sntrup761 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin \f[R] .fi .PP mean that \f[V]ntruprime-test\f[R] is testing the automatically selected \f[V]factored\f[R] implementation of the \f[V]sntrup761\f[R] parameter set with various arrays offset by 1 byte from being aligned, and a final line saying .IP .nf \f[C] all tests succeeded \f[R] .fi .PP means that all tests passed. .SS SEE ALSO .PP \f[B]ntruprime-fulltest\f[R](1), \f[B]sntrup\f[R](1), \f[B]sntrup\f[R](3) libntruprime-20241021/doc/man/sntrup.10000644000000000000000000000453214705505550016130 0ustar rootroot.\" Automatically generated by Pandoc 2.17.1.1 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "sntrup" "1" "" "" "" .hy .SS NAME .PP sntrup - command-line interface for the libntruprime implementation of the Streamlined NTRU Prime cryptosystem .SS SYNOPSIS .PP Key generation (for, e.g., \f[V]sntrup1277\f[R]): .IP .nf \f[C] sntrup1277-keypair 5>publickey 9>secretkey \f[R] .fi .PP Encapsulation (for, e.g., \f[V]sntrup1277\f[R]): .IP .nf \f[C] sntrup1277-enc >ciphertext 7>sessionkey 4sessionkey \f[R] .fi .PP Link with \f[V]-lntruprime\f[R]. .PP Key generation (for, e.g., \f[V]sntrup1277\f[R]): .IP .nf \f[C] unsigned char pk[sntrup1277_PUBLICKEYBYTES]; unsigned char sk[sntrup1277_SECRETKEYBYTES]; sntrup1277_keypair(pk,sk); \f[R] .fi .PP Encapsulation (for, e.g., \f[V]sntrup1277\f[R]): .IP .nf \f[C] unsigned char ct[sntrup1277_CIPHERTEXTBYTES]; unsigned char k[sntrup1277_BYTES]; const unsigned char pk[sntrup1277_PUBLICKEYBYTES]; sntrup1277_enc(ct,k,pk); \f[R] .fi .PP Decapsulation (for, e.g., \f[V]sntrup1277\f[R]): .IP .nf \f[C] unsigned char k[sntrup1277_BYTES]; const unsigned char ct[sntrup1277_CIPHERTEXTBYTES]; const unsigned char sk[sntrup1277_SECRETKEYBYTES]; sntrup1277_dec(k,ct,sk); \f[R] .fi .SS DESCRIPTION .PP libntruprime is an implementation of the Streamlined NTRU Prime (https://ntruprime.cr.yp.to) cryptosystem. The C API for libntruprime provides the following functions: .IP .nf \f[C] sntrup{653,761,857,953,1013,1277}_keypair sntrup{653,761,857,953,1013,1277}_enc sntrup{653,761,857,953,1013,1277}_dec \f[R] .fi .PP All of these functions follow the SUPERCOP API for KEMs (https://bench.cr.yp.to/call-kem.html) except that .IP \[bu] 2 the function names are libntruprime-specific instead of \f[V]crypto_kem_*\f[R], .IP \[bu] 2 message lengths are \f[V]long long\f[R] instead of \f[V]unsigned long long\f[R], and .IP \[bu] 2 the functions return \f[V]void\f[R] instead of \f[V]int\f[R]. .PP The details below use \f[V]sntrup1277\f[R] as an example. .SS KEY GENERATION .PP The \f[V]sntrup1277_keypair\f[R] function randomly generates Alice\[cq]s secret key \f[V]sk[0]\f[R], \f[V]sk[1]\f[R], \&..., \f[V]sk[sntrup1277_SECRETKEYBYTES-1]\f[R] and Alice\[cq]s corresponding public key \f[V]pk[0]\f[R], \f[V]pk[1]\f[R], \&..., \f[V]pk[sntrup1277_PUBLICKEYBYTES-1]\f[R]. .SS ENCAPSULATION .PP The \f[V]sntrup1277_enc\f[R] function randomly generates a ciphertext \f[V]ct[0]\f[R], \f[V]ct[1]\f[R], \&..., \f[V]ct[sntrup1277_CIPHERTEXTBYTES-1]\f[R] and the corresponding session key \f[V]k[0]\f[R], \f[V]k[1]\f[R], \&..., \f[V]k[sntrup1277_BYTES-1]\f[R] given Alice\[cq]s public key \f[V]pk[0]\f[R], \f[V]pk[1]\f[R], \&..., \f[V]pk[sntrup1277_PUBLICKEYBYTES-1]\f[R]. .SS DECAPSULATION .PP The \f[V]sntrup1277_dec\f[R] function, given Alice\[cq]s secret key \f[V]sk[0]\f[R], \f[V]sk[1]\f[R], \&..., \f[V]sk[sntrup1277_SECRETKEYBYTES-1]\f[R], computes the session key \f[V]k[0]\f[R], \f[V]k[1]\f[R], \&..., \f[V]k[sntrup1277_BYTES-1]\f[R] corresponding to a ciphertext \f[V]ct[0]\f[R], \f[V]ct[1]\f[R], \&..., \f[V]ct[sntrup1277_CIPHERTEXTBYTES-1]\f[R] that was encapsulated to Alice. .SS SEE ALSO .PP \f[B]sntrup\f[R](1), \f[B]randombytes\f[R](3) libntruprime-20241021/doc/man/sntrup1013-dec.10000777000000000000000000000000014705505552020576 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1013-enc.10000777000000000000000000000000014705505552020610 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1013-keypair.10000777000000000000000000000000014705505552021507 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1013.10000777000000000000000000000000014705505552020045 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1013.30000777000000000000000000000000014705505552020051 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1013_dec.30000777000000000000000000000000014705505552020664 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1013_enc.30000777000000000000000000000000014705505552020676 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1013_keypair.30000777000000000000000000000000014705505552021575 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1277-dec.10000777000000000000000000000000014705505552020612 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1277-enc.10000777000000000000000000000000014705505552020624 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1277-keypair.10000777000000000000000000000000014705505552021523 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1277.10000777000000000000000000000000014705505552020061 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup1277.30000777000000000000000000000000014705505552020065 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1277_dec.30000777000000000000000000000000014705505552020700 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1277_enc.30000777000000000000000000000000014705505552020712 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup1277_keypair.30000777000000000000000000000000014705505552021611 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup653-dec.10000777000000000000000000000000014705505552020527 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup653-enc.10000777000000000000000000000000014705505552020541 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup653-keypair.10000777000000000000000000000000014705505552021440 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup653.10000777000000000000000000000000014705505552017776 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup653.30000777000000000000000000000000014705505552020002 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup653_dec.30000777000000000000000000000000014705505552020615 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup653_enc.30000777000000000000000000000000014705505552020627 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup653_keypair.30000777000000000000000000000000014705505552021526 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup761-dec.10000777000000000000000000000000014705505552020527 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup761-enc.10000777000000000000000000000000014705505552020541 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup761-keypair.10000777000000000000000000000000014705505552021440 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup761.10000777000000000000000000000000014705505552017776 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup761.30000777000000000000000000000000014705505552020002 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup761_dec.30000777000000000000000000000000014705505552020615 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup761_enc.30000777000000000000000000000000014705505552020627 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup761_keypair.30000777000000000000000000000000014705505552021526 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup857-dec.10000777000000000000000000000000014705505552020535 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup857-enc.10000777000000000000000000000000014705505552020547 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup857-keypair.10000777000000000000000000000000014705505552021446 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup857.10000777000000000000000000000000014705505552020004 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup857.30000777000000000000000000000000014705505552020010 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup857_dec.30000777000000000000000000000000014705505552020623 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup857_enc.30000777000000000000000000000000014705505552020635 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup857_keypair.30000777000000000000000000000000014705505552021534 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup953-dec.10000777000000000000000000000000014705505552020532 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup953-enc.10000777000000000000000000000000014705505552020544 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup953-keypair.10000777000000000000000000000000014705505552021443 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup953.10000777000000000000000000000000014705505552020001 2sntrup.1ustar rootrootlibntruprime-20241021/doc/man/sntrup953.30000777000000000000000000000000014705505552020005 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup953_dec.30000777000000000000000000000000014705505552020620 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup953_enc.30000777000000000000000000000000014705505552020632 2sntrup.3ustar rootrootlibntruprime-20241021/doc/man/sntrup953_keypair.30000777000000000000000000000000014705505552021531 2sntrup.3ustar rootrootlibntruprime-20241021/doc/ntruprime-fulltest.md0000644000000000000000000000103014705505550020135 0ustar rootroot### NAME ntruprime-fulltest - run the full libntruprime test suite ### SYNOPSIS ntruprime-fulltest ### DESCRIPTION `ntruprime-fulltest` runs the full suite of tests of the libntruprime implementation of the Streamlined NTRU Prime cryptosystem. The `ntruprime-fulltest` output format is subject to change. A successful test prints a final line saying full tests succeeded and exits 0. An unsuccessful test exits nonzero without printing that line. ### SEE ALSO **ntruprime-test**(1), **ntruprime**(1), **ntruprime**(3) libntruprime-20241021/doc/ntruprime-speed.md0000644000000000000000000000360114705505550017401 0ustar rootroot### NAME ntruprime-speed - run some libntruprime speed tests ### SYNOPSIS ntruprime-speed ### DESCRIPTION `ntruprime-speed` runs some tests of the speed of the libntruprime implementation of the Streamlined NTRU Prime cryptosystem. The `ntruprime-speed` output format is subject to change. Examples of output lines with the current format, from a `ntruprime-speed` run on an Intel Skylake CPU core, include the following: kem_sntrup761 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin kem_sntrup761_keypair selected 1158 779846 +112137+5141+1312+565-207-153+66-18+35+1650-109+4-144+414-119-69-243+66+82-110-1-16+174+864+741-52-1+57-180-538-312-116 kem_sntrup761_enc selected 1039 40275 +8153+1104+323-39+36-1-107-27-99-17-15-65+74-33-102-24-30+69+99-106+7+33+59-5+175-60-29+152+21-82+90-78 kem_sntrup761_dec selected 32 52834 +36240+2014+438+165+96+109+62-8-78+20+67-30-112-59+27-25-3+31+15-118+102-64-84+19-121+57-35+120-125-147-80-75 These lines say that the automatically selected implementation for the `sntrup761` parameter set was the `factored` implementation compiled with the `clang` options shown, taking an interquartile mean (IQM) of 779846 CPU cycles to generate a key pair, 40275 CPU cycles to encapsulate a session key, and 52834 CPU cycles to decapsulate a session key. The numbers `52834 +36240+2014+...` show the timings for a series of consecutive operations: the IQM was 52834 cycles, the first run took 36240 cycles more than the IQM, the second run took 2014 cycles more than the IQM, etc. The numbers immediately after `selected` on the `keypair`, `enc`, and `dec` lines say that a public key has 1158 bytes, a ciphertext has 1039 bytes, and a session key has 3 bytes. ### SEE ALSO **sntrup**(1), **sntrup**(3) libntruprime-20241021/doc/ntruprime-test.md0000644000000000000000000000165014705505550017262 0ustar rootroot### NAME ntruprime-test - run some libntruprime correctness tests ### SYNOPSIS ntruprime-test ### DESCRIPTION `ntruprime-test` runs some tests of the correctness of the libntruprime implementation of the Streamlined NTRU Prime cryptosystem. The `ntruprime-test` output format is subject to change. As examples of the current format, the lines kem_sntrup761 offset 1 kem_sntrup761 selected implementation factored compiler clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin mean that `ntruprime-test` is testing the automatically selected `factored` implementation of the `sntrup761` parameter set with various arrays offset by 1 byte from being aligned, and a final line saying all tests succeeded means that all tests passed. ### SEE ALSO **ntruprime-fulltest**(1), **sntrup**(1), **sntrup**(3) libntruprime-20241021/doc/people.md0000644000000000000000000000307714705505550015551 0ustar rootrootlibntruprime is maintained by Daniel J. Bernstein. libntruprime is based on the [official](https://ntruprime.cr.yp.to/software.html) "factored" `sntrup` software, which in turn is based on the original `sntrup` software from Daniel J. Bernstein, Chitchanok Chuengsatiansup, Tanja Lange, and Christine van Vredendaal. The following components of libntruprime are from Daniel J. Bernstein: * Infrastructure to build a library with automatic run-time selection of implementations based on the run-time CPU and a database of benchmarks. This infrastructure was introduced in [`lib25519`](https://lib25519.cr.yp.to) and extended in [`libmceliece`](https://lib.mceliece.org). * Various software for tests and benchmarks. This is based on public-domain code in the SUPERCOP benchmarking framework. * Software for the underlying subroutines `crypto_sort` (based on [djbsort](https://sorting.cr.yp.to)), `crypto_hashblocks`, and `crypto_hash`. Beyond libntruprime, authors of [publications with further `sntrup` speedups](speed.html#faster) include Erdem Alkim, Daniel J. Bernstein, Billy Bob Brumley, Han-Ting Chen, Ming-Shing Chen, Yi-Hua Chung, Vincent Hwang, Li-Jie Jian, Chi-Ting Liu, Gregor Seiler, Nicola Tuveri, Ting-Yuan Wang, and Bo-Yin Yang. ### Citation For papers, a suitable citation for libntruprime is as follows, with your access date in place of 25 August 2024: "Daniel J. Bernstein (editor). libntruprime. , accessed 25 August 2024." Here "editor" reflects the fact that libntruprime is assembled from work by multiple authors. libntruprime-20241021/doc/readme.md0000644000000000000000000000624414705505550015521 0ustar rootrootlibntruprime is a microlibrary for the [Streamlined NTRU Prime](https://ntruprime.cr.yp.to) cryptosystem. Streamlined NTRU Prime (`sntrup`) is a lattice-based cryptosystem with the following features: * Stability: Almost all details of `sntrup` match a [May 2016](https://ntruprime.cr.yp.to/ntruprime-20160511.pdf) publication. The only exceptions are small changes to encoding and hashing published in [April 2019](https://ntruprime.cr.yp.to/nist/ntruprime-20190330.pdf). * Patent-freeness: April 2019 predates almost all [post-quantum patents](https://patents.google.com/?q=(%22post-quantum%22)). Analyses of various [lattice patents](https://ntruprime.cr.yp.to/faq.html) filed before April 2019 indicate no problems for `sntrup`. * Deployment: The popular OpenSSH tool switched to `sntrup761` by default in [April 2022](https://www.openssh.com/txt/release-9.0), following initial integration of `sntrup` into [TinySSH](https://github.com/janmojzis/tinyssh). * Affordability: Keys and ciphertexts are [about 1KB](https://ntruprime.cr.yp.to/speed.html) for `sntrup761`, and computations are [fast](speed.html). * Careful design: Subject to the requirement of being a small lattice-based cryptosystem, `sntrup` is systematically designed to [eliminate unnecessary complications in security review](https://ntruprime.cr.yp.to/). It eliminates decryption failures, for example, and eliminates cyclotomics. The cryptosystem has never needed a security patch. * Risk management: A much higher `sntrup1277` security level is [fully supported](https://ntruprime.cr.yp.to/speed.html), and is recommended whenever 2KB keys and ciphertexts are affordable, to reduce risks from [improvements in lattice attacks](https://ntruprime.cr.yp.to/warnings.html). * Flexibility: The `sntrup` design allows a full spectrum of tradeoffs between size and security level, so applications with intermediate size limits aren't forced into much lower security levels. [Six different sizes](https://ntruprime.cr.yp.to/speed.html) have been selected for support. libntruprime has a very simple stateless [API](api.html) based on the SUPERCOP API, with wire-format inputs and outputs, providing functions that directly match the KEM operations provided by the `sntrup` specification, such as functions sntrup1277_keypair sntrup1277_enc sntrup1277_dec for the `sntrup1277` KEM. Internally, libntruprime includes implementations designed to work portably across CPUs, and implementations designed for [higher performance](speed.html) on Intel/AMD CPUs with AVX2 instructions. libntruprime includes automatic run-time selection of implementations. libntruprime is intended to be called by larger multi-function libraries (such as traditional cryptographic libraries), including libraries in other languages via FFI. The idea is that libntruprime takes responsibility for the details of `sntrup` computation, including optimization, timing-attack protection, and (in ongoing work) verification, freeing up the calling libraries to concentrate on application-specific needs such as protocol integration. Applications can also call libntruprime directly. Latest release: [20241021](download.html). libntruprime-20241021/doc/security.md0000644000000000000000000001230214705505550016123 0ustar rootrootLattice-based cryptography is dangerous. Fast attacks have been demonstrated breaking, e.g., [Compact LWE](https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/_fOnZNYHdE4/m/-WNWqwUFAwAJ), [HILA5](https://eprint.iacr.org/2017/1214), and [Round2](https://eprint.iacr.org/2020/241), all of which were small lattice-based cryptosystems submitted to the NIST post-quantum competition. The [supposedly](https://web.archive.org/web/20231125213807/https://finiterealities.net/kyber512/) [well-studied](https://web.archive.org/web/20231219201240/https://csrc.nist.gov/csrc/media/Projects/post-quantum-cryptography/documents/faq/Kyber-512-FAQ.pdf) problems at the heart of all lattice-based cryptosystems [continue](https://cr.yp.to/papers.html#hybrid) to [lose](https://eprint.iacr.org/2024/80) [security](https://eprint.iacr.org/2024/739). The "constant-time" reference software for Kyber (ML-KEM) has had two rounds of security patches for two different timing attacks [demonstrated](https://kyberslash.cr.yp.to) to be [exploitable](https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/hqbtIGFKIpU). Unlike most proposals of lattice-based cryptosystems, `sntrup` [acknowledges lattice risks](https://ntruprime.cr.yp.to/warnings.html) and is [designed accordingly](https://ntruprime.cr.yp.to). Furthermore, the `sntrup` software in libntruprime includes state-of-the-art defenses against timing attacks. But small lattice-based cryptosystems, even when carefully designed, remain dangerous, both at the [mathematical](https://s-unit.attacks.cr.yp.to) level and at the software level. **When you're deploying post-quantum cryptography, make sure to deploy it as an [_extra_ layer of encryption](https://blog.cr.yp.to/20240102-hybrid.html) on top of your existing use of ECC, not as a replacement for ECC.** One risk for libntruprime is the risk of bugs getting past the libntruprime tests. The main defense in progress is [software verification](verification.html). Until verification is complete, libntruprime is limiting code size: it includes [general AVX2 optimizations](speed.html) but skips the software from [nine publications with further `sntrup` speedups](speed.html#faster). Regarding timing attacks: libntruprime is designed to avoid all data flow from secret data to memory addresses and branch conditions. libntruprime uses operations that naturally avoid such data flow, and includes `valgrind` tests (based on TIMECOP from SUPERCOP) designed to catch any such data flow introduced by compilers. Fully protecting the user against timing attacks requires addressing more issues, such as the following: * Other CPU instructions can take variable time. For example, there are some CPUs, especially embedded CPUs, where integer multiplication takes variable time. Most software for public-key cryptography relies on integer multiplication, although there are exceptions such as [code-based cryptography](https://lib.mceliece.org). * Many CPUs include dynamic frequency-selection mechanisms such as [Turbo Boost](https://blog.cr.yp.to/20230609-turboboost.html), exposing power information via timing information. Fortunately, these CPUs are normally shipped with simple options to disable Turbo Boost etc., closing this leak; unfortunately, Turbo Boost is enabled by default on CPUs that support it. * Cryptographic keys are normally handled by cryptographic software, but other user secrets are handled by many different pieces of software. See [https://timing.attacks.cr.yp.to](https://timing.attacks.cr.yp.to) for a timing-attack survey and many references. Speculative-execution attacks: Some countermeasures against speculative-execution attacks are planned but are not included in the current version of libntruprime. Full protection again requires addressing issues at other system layers. Further side-channel attacks: Even if all legitimate user sensors are successfully kept isolated from attackers, attackers can set up their own power sensors, electromagnetic sensors, acoustic sensors, etc. Keeping cryptographic operations physically separated from sensors tends to make such attacks much more expensive but is often infeasible. "Masking" cryptographic computations seems to help and can be affordable, although the security of masking is difficult to evaluate and there are many broken masked implementations. Currently libntruprime does not include any masked implementations, so presumably it is easily breakable by power attacks in environments where attackers can see power consumption. Further attacks: Presumably libntruprime is easily breakable by fault attacks in environments where attackers can trigger faults. Beyond attacker-triggered faults, natural DRAM faults occur surprisingly often. Implicit rejection [fails](https://cr.yp.to/papers.html#ntrw) to provide IND-CCA2 security when DRAM faults corrupt the secret key used for implicit rejection, although attacks can be stopped by "plaintext confirmation", another layer of defense included in `sntrup`. Error correction is in any case recommended (and often not provided by hardware), and there is a general-purpose [libsecded](https://pqsrc.cr.yp.to/downloads.html) library that applies error correction to any array, although this does not catch errors that occur during computations. libntruprime-20241021/doc/speed.md0000644000000000000000000001047514705505550015365 0ustar rootrootIn the following speed table, smaller keygen/enc/dec numbers are better. The numbers are interquartile means of single-core cycle counts on various microarchitectures. Overclocking is disabled. | μarch | KEM | keypair | enc | dec | | :---- | :--- | ------: | ---: | ---: | | Golden Cove (2021) | sntrup653 | 569998 | 31437 | 44933 | | sntrup761 | 743752 | 35130 | 47191 | | sntrup857 | 938327 | 42316 | 61681 | | sntrup953 | 1134045 | 45276 | 63881 | | sntrup1013 | 1260294 | 45882 | 65517 | | sntrup1277 | 1945365 | 58064 | 81528 | Zen 3 (2020) | sntrup653 | 630180 | 32541 | 45606 | | sntrup761 | 841462 | 35311 | 47977 | | sntrup857 | 1038697 | 42592 | 60883 | | sntrup953 | 1253426 | 47028 | 64965 | | sntrup1013 | 1435108 | 46973 | 66213 | | sntrup1277 | 2171656 | 60228 | 80954 | Zen 2 (2019) | sntrup653 | 938965 | 38397 | 60512 | | sntrup761 | 1254327 | 41018 | 63308 | | sntrup857 | 1602767 | 50833 | 82192 | | sntrup953 | 1956955 | 54960 | 86430 | | sntrup1013 | 2203462 | 55829 | 88492 | | sntrup1277 | 3464035 | 70184 | 108778 | Cortex-A72 (2016) | sntrup653 | 9582905 | 685284 | 1149001 | | sntrup761 | 12759145 | 882618 | 1530800 | | sntrup857 | 16122629 | 1077066 | 1924171 | | sntrup953 | 19832706 | 1290673 | 2364008 | | sntrup1013 | 22573875 | 1431952 | 2668071 | | sntrup1277 | 35773394 | 2153211 | 4220444 | Skylake (2015) | sntrup653 | 692941 | 39847 | 59024 | | sntrup761 | 831462 | 41784 | 61793 | | sntrup857 | 1128575 | 51224 | 78029 | | sntrup953 | 1305503 | 54602 | 82755 | | sntrup1013 | 1425447 | 57443 | 88127 | | sntrup1277 | 2202685 | 73622 | 108376 | Haswell (2013) | sntrup653 | 767219 | 44278 | 65223 | | sntrup761 | 939803 | 47008 | 69013 | | sntrup857 | 1271818 | 58349 | 89379 | | sntrup953 | 1488084 | 64012 | 94010 | | sntrup1013 | 1680440 | 65535 | 96216 | | sntrup1277 | 2720370 | 81871 | 122664 Microarchitectures are listed in reverse chronological order of when they were introduced. In the libntruprime distribution, `command/ntruprime-speed.c` measures libntruprime; `benchmarks/*-*` is the output of `ntruprime-speed` on various machines; and `autogen/md-speed` extracts the table from those measurements. The table reports only interquartile means of cycle counts, not the full distribution of cycle counts. See the full output files for differences between multiple measurements and the interquartile mean. ### Faster `sntrup` software There has been extensive further work on `sntrup` software speeds beyond the current libntruprime speeds. libntruprime has a policy of [limiting code size](security.html), but if there are applications that need these speedups then they can still be considered for inclusion in libntruprime: * `mult3sntrup761/avx2unsigned` in SUPERCOP from Ming-Shing Chen: faster multiplications on Intel/AMD. * `invsntrup761/jumpdivsteps` in SUPERCOP from Daniel J. Bernstein, Ming-Shing Chen, Gregor Seiler, and Bo-Yin Yang: faster inversions on Intel/AMD. * ["OpenSSLNTRU: Faster post-quantum TLS key exchange"](https://eprint.iacr.org/2021/826) from Daniel J. Bernstein, Billy Bob Brumley, Ming-Shing Chen, and Nicola Tuveri: faster inversions for batch operations. * ["Multi-Parameter Support with NTTs for NTRU and NTRU Prime on Cortex-M4"](https://eprint.iacr.org/2022/930) from Erdem Alkim, Vincent Hwang, and Bo-Yin Yang: faster multiplications on 32-bit ARM. * ["Algorithmic Views of Vectorized Polynomial Multipliers for NTRU and NTRU Prime"](https://eprint.iacr.org/2023/541) from Han-Ting Chen, Yi-Hua Chung, Vincent Hwang, Chi-Ting Liu, and Bo-Yin Yang: faster multiplications on 64-bit ARM. * ["Pushing the Limit of Vectorized Polynomial Multiplication for NTRU Prime"](https://eprint.iacr.org/2023/604) from Vincent Hwang: faster multiplications on 64-bit ARM and Intel/AMD. * ["Algorithmic Views of Vectorized Polynomial Multipliers – NTRU Prime"](https://eprint.iacr.org/2023/1580) from Vincent Hwang, Chi-Ting Liu, and Bo-Yin Yang: faster multiplications on 64-bit ARM. * ["A Survey of Polynomial Multiplications for Lattice-Based Cryptosystems"](https://eprint.iacr.org/2023/1962) from Vincent Hwang: faster multiplications on Intel/AMD. * ["Jumping for Bernstein-Yang Inversion"](https://eprint.iacr.org/2024/644) from Li-Jie Jian, Ting-Yuan Wang, Bo-Yin Yang, and Ming-Shing Chen: faster inversions on 64-bit ARM. libntruprime-20241021/doc/test.md0000644000000000000000000000546614705505550015250 0ustar rootrootTo run the full test suite after compiling and installing libntruprime, run `ntruprime-fulltest`. This indicates success in two ways: it prints `full tests succeeded` as its last line of output; it exits 0. Any change in the compiled library (compiling for a different architecture, compiling with a different compiler, etc.) must be subjected to a new round of tests. A compiled version of libntruprime that does not pass the full test suite is **not supported**. One run of `ntruprime-fulltest` was observed to take 529 core-minutes on a 2.245GHz EPYC 7742 with overclocking disabled. This test finished in 35 minutes of real time; `ntruprime-fulltest` includes some automatic parallelization. To limit the number of threads used to 1, run `env THREADS=1 ntruprime-fulltest`. libntruprime automatically selects AVX2 implementations when it is running on an Intel/AMD CPU that supports AVX2, while falling back to portable implementations otherwise. Running `ntruprime-fulltest` on an Intel/AMD CPU without AVX2 will say `CPU does not support implementation` for the AVX2 implementations and will fail. To test a compilation of libntruprime for Intel/AMD CPUs, you have to pick an Intel/AMD CPU with AVX2 to run `ntruprime-fulltest`. The rest of this page says more about what is happening inside `ntruprime-fulltest`. ### Conventional tests The workhorse inside `ntruprime-fulltest` is a separate `ntruprime-test` program. Simply calling `ntruprime-test` without arguments will run SUPERCOP-style tests that the subroutines in libntruprime produce the expected results for known inputs (including known randomness), and will indicate success in two ways: printing `all tests succeeded` as the last line of output, and exiting 0. For parallelism, `ntruprime-fulltest` calls `ntruprime-test` many times, using optional `ntruprime-test` arguments to narrow which subroutines are being tested. ### Data-flow tests Another way that `ntruprime-fulltest` runs `ntruprime-test` is as follows, running TIMECOP-style tests that branch conditions and array indices are independent of secrets: env valgrind_multiplier=1 \ valgrind -q \ --error-exitcode=99 \ ntruprime-test This requires `valgrind` to be installed at test time. The output will include a line `valgrind 1 declassify 1` if the library was compiled with `--valgrind` (which is the only supported option), or a line `valgrind 1 declassify 0 (expect false positives)` otherwise. These data-flow tests do not supersede the conventional tests. The conventional tests run code directly on the CPU and might catch issues hidden by the emulation in `valgrind`. The conventional tests also include some memory tests that are disabled to improve the `valgrind` memory tests but that are not necessarily superseded by the `valgrind` memory tests. libntruprime-20241021/doc/verification.md0000644000000000000000000000432414705505550016743 0ustar rootrootlibntruprime is intended to become a central target for verification of full functional correctness of implementations of `sntrup`. Full functional correctness of an `sntrup` implementation means that the implementation computes the same output as the [NTRU Prime Sage package](https://ntruprime.cr.yp.to/software.html) for all possible inputs. This document tracks what has been verified so far and what has not. Changes in C compilers and in assemblers often change the behavior of software and might introduce bugs where no bugs existed before. Some tools address this by verifying correctness at the machine-language level. It is important to re-run these tools whenever new binaries are produced. Changes in CPUs can also introduce bugs where no bugs existed before. Verification is always relative to a model of CPU behavior, and physical CPUs often deviate from these models, sometimes in problematic ways. There is also a risk that current or future versions of Sage do not correctly compute the documented Sage functions used by the Sage package. This can interfere with falsifiability: even if the CPU matches the model, a bug in an `sntrup` implementation could be hidden by a bug in Sage. The `supercop/crypto_kem/sntrup*` checksums match the checksums produced by libntruprime and checksums produced by the Sage package. These checksums are hashes of outputs for various pseudorandomly generated inputs (with randomness treated as another input). However, there could be bugs for other inputs. Various runs under `valgrind` and `asan` have not detected any abnormal use of RAM. However, `valgrind` will not notice overflows from a C variable into an adjacent C variable; `asan` will not notice overflows in assembly language; and neither tool addresses the risk of bugs for rare inputs. The NTT software used inside libntruprime comes from [nttcompiler](https://pqsrc.cr.yp.to/nttcompiler.html) and has been computer-verified to work correctly on all inputs. The sorting software used inside libntruprime comes from [djbsort](https://sorting.cr.yp.to) and has also been computer-verified to work correctly on all inputs. However, there could be bugs in the verification tools, and there are other computations happening inside libntruprime. libntruprime-20241021/hdef0000644000000000000000000000506614705505550014027 0ustar rootroot#define sntrup653_keypair ntruprime_kem_sntrup653_keypair #define sntrup653_enc ntruprime_kem_sntrup653_enc #define sntrup653_dec ntruprime_kem_sntrup653_dec #define sntrup653_SECRETKEYBYTES ntruprime_kem_sntrup653_SECRETKEYBYTES #define sntrup653_PUBLICKEYBYTES ntruprime_kem_sntrup653_PUBLICKEYBYTES #define sntrup653_CIPHERTEXTBYTES ntruprime_kem_sntrup653_CIPHERTEXTBYTES #define sntrup653_BYTES ntruprime_kem_sntrup653_BYTES #define sntrup761_keypair ntruprime_kem_sntrup761_keypair #define sntrup761_enc ntruprime_kem_sntrup761_enc #define sntrup761_dec ntruprime_kem_sntrup761_dec #define sntrup761_SECRETKEYBYTES ntruprime_kem_sntrup761_SECRETKEYBYTES #define sntrup761_PUBLICKEYBYTES ntruprime_kem_sntrup761_PUBLICKEYBYTES #define sntrup761_CIPHERTEXTBYTES ntruprime_kem_sntrup761_CIPHERTEXTBYTES #define sntrup761_BYTES ntruprime_kem_sntrup761_BYTES #define sntrup857_keypair ntruprime_kem_sntrup857_keypair #define sntrup857_enc ntruprime_kem_sntrup857_enc #define sntrup857_dec ntruprime_kem_sntrup857_dec #define sntrup857_SECRETKEYBYTES ntruprime_kem_sntrup857_SECRETKEYBYTES #define sntrup857_PUBLICKEYBYTES ntruprime_kem_sntrup857_PUBLICKEYBYTES #define sntrup857_CIPHERTEXTBYTES ntruprime_kem_sntrup857_CIPHERTEXTBYTES #define sntrup857_BYTES ntruprime_kem_sntrup857_BYTES #define sntrup953_keypair ntruprime_kem_sntrup953_keypair #define sntrup953_enc ntruprime_kem_sntrup953_enc #define sntrup953_dec ntruprime_kem_sntrup953_dec #define sntrup953_SECRETKEYBYTES ntruprime_kem_sntrup953_SECRETKEYBYTES #define sntrup953_PUBLICKEYBYTES ntruprime_kem_sntrup953_PUBLICKEYBYTES #define sntrup953_CIPHERTEXTBYTES ntruprime_kem_sntrup953_CIPHERTEXTBYTES #define sntrup953_BYTES ntruprime_kem_sntrup953_BYTES #define sntrup1013_keypair ntruprime_kem_sntrup1013_keypair #define sntrup1013_enc ntruprime_kem_sntrup1013_enc #define sntrup1013_dec ntruprime_kem_sntrup1013_dec #define sntrup1013_SECRETKEYBYTES ntruprime_kem_sntrup1013_SECRETKEYBYTES #define sntrup1013_PUBLICKEYBYTES ntruprime_kem_sntrup1013_PUBLICKEYBYTES #define sntrup1013_CIPHERTEXTBYTES ntruprime_kem_sntrup1013_CIPHERTEXTBYTES #define sntrup1013_BYTES ntruprime_kem_sntrup1013_BYTES #define sntrup1277_keypair ntruprime_kem_sntrup1277_keypair #define sntrup1277_enc ntruprime_kem_sntrup1277_enc #define sntrup1277_dec ntruprime_kem_sntrup1277_dec #define sntrup1277_SECRETKEYBYTES ntruprime_kem_sntrup1277_SECRETKEYBYTES #define sntrup1277_PUBLICKEYBYTES ntruprime_kem_sntrup1277_PUBLICKEYBYTES #define sntrup1277_CIPHERTEXTBYTES ntruprime_kem_sntrup1277_CIPHERTEXTBYTES #define sntrup1277_BYTES ntruprime_kem_sntrup1277_BYTES libntruprime-20241021/include-build/0000755000000000000000000000000014705505550015707 5ustar rootrootlibntruprime-20241021/include-build/crypto_asm_hidden.h0000644000000000000000000000023514705505550021553 0ustar rootroot#ifndef crypto_asm_hidden_h #define crypto_asm_hidden_h #ifdef __APPLE__ #define ASM_HIDDEN .private_extern #else #define ASM_HIDDEN .hidden #endif #endif libntruprime-20241021/include-build/crypto_declassify.h0000644000000000000000000000031414705505550021604 0ustar rootroot#ifndef crypto_declassify_h #define crypto_declassify_h #define crypto_declassify_uses_valgrind 0 static void crypto_declassify(void *crypto_declassify_v,long long crypto_declassify_vlen) { ; } #endif libntruprime-20241021/include-build-valgrind/0000755000000000000000000000000014705505552017515 5ustar rootrootlibntruprime-20241021/include-build-valgrind/crypto_asm_hidden.h0000777000000000000000000000000014705505552032155 2../include-build/crypto_asm_hidden.hustar rootrootlibntruprime-20241021/include-build-valgrind/crypto_declassify.h0000644000000000000000000000046314705505550023415 0ustar rootroot#ifndef crypto_declassify_h #define crypto_declassify_h #include #define crypto_declassify_uses_valgrind 1 static void crypto_declassify(void *crypto_declassify_v,long long crypto_declassify_vlen) { VALGRIND_MAKE_MEM_DEFINED(crypto_declassify_v,crypto_declassify_vlen); } #endif libntruprime-20241021/prioritize0000755000000000000000000001431414705505550015320 0ustar rootroot#!/usr/bin/env python3 import os import sys # XXX tune = { 'verify_897':('*',1), 'verify_1039':('*',1), 'verify_1184':('*',1), 'verify_1349':('*',1), 'verify_1455':('*',1), 'verify_1847':('*',1), 'decode_653x3':('*',1), 'decode_653x1541':('*',1), 'decode_653x4621':('*',1), 'decode_653xint16':('*',1), 'decode_653xint32':('*',1), 'decode_761x3':('*',1), 'decode_761x1531':('*',1), 'decode_761x4591':('*',1), 'decode_761xint16':('*',1), 'decode_761xint32':('*',1), 'decode_857x3':('*',1), 'decode_857x1723':('*',1), 'decode_857x5167':('*',1), 'decode_857xint16':('*',1), 'decode_857xint32':('*',1), 'decode_953x3':('*',1), 'decode_953x2115':('*',1), 'decode_953x6343':('*',1), 'decode_953xint16':('*',1), 'decode_953xint32':('*',1), 'decode_1013x3':('*',1), 'decode_1013x2393':('*',1), 'decode_1013x7177':('*',1), 'decode_1013xint16':('*',1), 'decode_1013xint32':('*',1), 'decode_1277x3':('*',1), 'decode_1277x2627':('*',1), 'decode_1277x7879':('*',1), 'decode_1277xint16':('*',1), 'decode_1277xint32':('*',1), 'decode_int16':('*',1), 'encode_653x3':('*',1), 'encode_653x1541':('*',1), 'encode_653x1541round':('*',1), 'encode_653x4621':('*',1), 'encode_653xfreeze3':('*',1), 'encode_653xint16':('*',1), 'encode_761x3':('*',1), 'encode_761x1531':('*',1), 'encode_761x1531round':('*',1), 'encode_761x4591':('*',1), 'encode_761xfreeze3':('*',1), 'encode_761xint16':('*',1), 'encode_857x3':('*',1), 'encode_857x1723':('*',1), 'encode_857x1723round':('*',1), 'encode_857x5167':('*',1), 'encode_857xfreeze3':('*',1), 'encode_857xint16':('*',1), 'encode_953x3':('*',1), 'encode_953x2115':('*',1), 'encode_953x2115round':('*',1), 'encode_953x6343':('*',1), 'encode_953xfreeze3':('*',1), 'encode_953xint16':('*',1), 'encode_1013x3':('*',1), 'encode_1013x2393':('*',1), 'encode_1013x2393round':('*',1), 'encode_1013x7177':('*',1), 'encode_1013xfreeze3':('*',1), 'encode_1013xint16':('*',1), 'encode_1277x3':('*',1), 'encode_1277x2627':('*',1), 'encode_1277x2627round':('*',1), 'encode_1277x7879':('*',1), 'encode_1277xfreeze3':('*',1), 'encode_1277xint16':('*',1), 'encode_int16':('*',1), 'sort_int32':('1597',1), 'sort_uint32':('1597',1), 'core_inv3sntrup653':('*',1), 'core_inv3sntrup761':('*',1), 'core_inv3sntrup857':('*',1), 'core_inv3sntrup953':('*',1), 'core_inv3sntrup1013':('*',1), 'core_inv3sntrup1277':('*',1), 'core_invsntrup653':('*',1), 'core_invsntrup761':('*',1), 'core_invsntrup857':('*',1), 'core_invsntrup953':('*',1), 'core_invsntrup1013':('*',1), 'core_invsntrup1277':('*',1), 'core_mult3sntrup653':('*',1), 'core_mult3sntrup761':('*',1), 'core_mult3sntrup857':('*',1), 'core_mult3sntrup953':('*',1), 'core_mult3sntrup1013':('*',1), 'core_mult3sntrup1277':('*',1), 'core_multsntrup653':('*',1), 'core_multsntrup761':('*',1), 'core_multsntrup857':('*',1), 'core_multsntrup953':('*',1), 'core_multsntrup1013':('*',1), 'core_multsntrup1277':('*',1), 'core_scale3sntrup653':('*',1), 'core_scale3sntrup761':('*',1), 'core_scale3sntrup857':('*',1), 'core_scale3sntrup953':('*',1), 'core_scale3sntrup1013':('*',1), 'core_scale3sntrup1277':('*',1), 'core_weightsntrup653':('*',1), 'core_weightsntrup761':('*',1), 'core_weightsntrup857':('*',1), 'core_weightsntrup953':('*',1), 'core_weightsntrup1013':('*',1), 'core_weightsntrup1277':('*',1), 'core_wforcesntrup653':('*',1), 'core_wforcesntrup761':('*',1), 'core_wforcesntrup857':('*',1), 'core_wforcesntrup953':('*',1), 'core_wforcesntrup1013':('*',1), 'core_wforcesntrup1277':('*',1), 'hashblocks_sha512':('8090',1), 'hash_sha512':('8090',1), 'kem_sntrup653_dec':('*',1), 'kem_sntrup761_dec':('*',1), 'kem_sntrup857_dec':('*',1), 'kem_sntrup953_dec':('*',1), 'kem_sntrup1013_dec':('*',1), 'kem_sntrup1277_dec':('*',1), } impls = set() data = {} def handle(benchmark): with open('benchmarks/%s' % benchmark) as f: for line in f: line = line.split() if line[:2] == ['ntruprime','version']: version = line[2] continue if line[:2] == ['ntruprime','arch']: arch = line[2] continue if line[:1] == ['cpuid']: cpuid = ''.join(line[1:]) if line[:3] == ['cpucycles','selected','0']: cpucyclesoverhead = int(line[3]) if line[:3] == ['randombytes','selected','26']: randombytesoverhead = int(line[3]) if len(line) >= 5: shortfun = line[0] if line[1].isnumeric() and line[2] == 'implementation' and line[4] == 'compiler': implnum = line[1] implop = line[0] i = line[3] c = ' '.join(line[5:]) if line[1].isnumeric() and shortfun in tune and line[2] != 'implementation' and tune[shortfun][0] in (line[2],'*') and line[3].isnumeric(): o = shortfun.split('_')[0] p = shortfun.split('_')[1] assert implop == '%s_%s' % (o,p) assert implnum == line[1] cycles = int(line[3]) cycles -= cpucyclesoverhead if shortfun.endswith('_keypair'): cycles -= randombytesoverhead if cycles < 1: cycles = 1 key = benchmark,version,arch,cpuid,o,p,i,c if key not in data: data[key] = [] data[key] += [(shortfun,cycles)] for benchmark in sorted(os.listdir('benchmarks')): handle(benchmark) impldata = {} bestscore = {} for key in sorted(data): benchmark,version,arch,cpuid,o,p,i,c = key assert sorted(shortfun for shortfun,cycles in data[key]) == sorted(shortfun for shortfun in tune if shortfun.split('_')[:2] == [o,p]) score = sum(cycles*tune[shortfun][1] for shortfun,cycles in data[key]) if (o,p,i) not in impldata: impldata[o,p,i] = [] impldata[o,p,i] += [(benchmark,version,arch,cpuid,c,score)] if (benchmark,o,p) not in bestscore: bestscore[benchmark,o,p] = score bestscore[benchmark,o,p] = min(score,bestscore[benchmark,o,p]) os.makedirs('priority',exist_ok=True) for o,p,i in impldata: with open('priority/%s-%s-%s' % (o,p,i),'w') as f: for benchmark,version,arch,cpuid,c,score in impldata[o,p,i]: if bestscore[benchmark,o,p] <= 0: continue f.write('%.6f %s %s %s %s %s %s\n' % (score/bestscore[benchmark,o,p],score,arch,cpuid,version,benchmark,c)) libntruprime-20241021/priority/0000755000000000000000000000000014705505552015052 5ustar rootrootlibntruprime-20241021/priority/core-inv3sntrup1013-avx0000644000000000000000000001414614705505550021163 0ustar rootroot1.053057 166106 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 157737 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.103507 201529 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 182626 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.075891 191756 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 178230 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002158 199724 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 199294 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 150865 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.150777 173612 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup1013-bits640000644000000000000000000003024214705505550021473 0ustar rootroot1.000000 884978 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.281831 1134392 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.821621 445074 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.124872 492908 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.618016 570695 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.047059 638371 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.963045 541129 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.809118 878270 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.465394 815497 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.441936 993839 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.965758 528587 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.625198 824349 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.035230 719199 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.880924 869927 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.168174 631398 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.614148 720278 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.657160 728850 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.270149 851015 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.486614 526008 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.711517 559938 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.805488 574115 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.400159 663830 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup1277-avx0000644000000000000000000001414614705505550021177 0ustar rootroot1.000000 244433 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.045456 255544 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.101651 311928 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 283146 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.087884 298002 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 273928 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.036260 314281 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 303284 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 231279 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.161614 268657 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup1277-bits640000644000000000000000000003024714705505550021514 0ustar rootroot1.000000 1481761 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.340110 1985723 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.643342 646120 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.078778 752555 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.140893 523305 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.940659 718794 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.168256 897079 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.464414 1264081 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.814400 796886 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.789787 1073063 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.091122 846745 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.117399 1127871 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.483627 954263 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.250223 1438183 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.589965 785495 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.089405 936967 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.116488 641897 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.988836 906466 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.959067 684370 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.278836 758326 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.380424 550542 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.346032 773867 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup653-avx0000644000000000000000000001413514705505550021112 0ustar rootroot1.087993 87640 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 80552 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.070212 100113 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 93545 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.073181 94514 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 88069 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 92403 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.048602 96894 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 75360 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.094971 82517 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup653-bits640000644000000000000000000003024114705505550021423 0ustar rootroot1.122416 435128 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 387671 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.630115 211861 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.229578 260149 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.401430 273992 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.556225 286461 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.961815 277063 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.351756 407085 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.555540 426148 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.777209 446884 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.141503 276669 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.094551 448672 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.797057 422472 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.857192 427768 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.448600 318661 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.207006 388740 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.899549 360330 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.899592 360334 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.212447 242090 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.672678 276773 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.601008 271372 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.485058 262634 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup761-avx0000644000000000000000000001414314705505550021111 0ustar rootroot1.098378 103766 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 94472 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.062232 120063 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 113029 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.083325 113305 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 104590 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 110642 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.026283 113550 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 89538 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.084065 97065 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup761-bits640000644000000000000000000003024114705505550021423 0ustar rootroot1.167125 561911 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 481449 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.431504 229709 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.140475 296687 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.614701 341488 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.569671 337234 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.964151 335035 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.529784 511997 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.181670 585679 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.041034 569783 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.139277 328337 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.873621 509732 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.227785 546774 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.767693 498653 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.801314 309943 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.065138 449775 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.194628 464102 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.085203 451995 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.691237 240968 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.375639 302248 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.689495 330350 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.658581 327582 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup857-avx0000644000000000000000000001414614705505550021122 0ustar rootroot1.087099 136831 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 125868 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.109469 164369 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 148151 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.081386 156416 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 144644 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.034132 163123 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 157739 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 123543 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.114996 137750 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup857-bits640000644000000000000000000003024114705505550021431 0ustar rootroot1.000000 625546 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.062744 664795 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.296739 414954 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.012593 379189 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.226547 531987 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.009732 504697 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.621960 388446 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.238378 627920 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.423338 655322 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.201963 770676 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.692175 389407 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.925659 567823 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.112435 594839 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.063217 732364 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.065076 641221 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.331129 525449 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.998117 630659 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.835038 604935 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.893155 480972 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.810171 347177 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.639397 449622 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.663275 452572 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup953-avx0000644000000000000000000001414614705505550021117 0ustar rootroot1.062838 154593 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 145453 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.105677 187201 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 169309 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.065915 178108 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 167094 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.029980 185724 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 180318 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 140375 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.126084 158074 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-inv3sntrup953-bits640000644000000000000000000003024114705505550021426 0ustar rootroot1.249629 968867 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 775324 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.541254 515086 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.883055 419349 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.790723 551372 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.229600 615208 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.917081 493888 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.010448 679005 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.125805 867845 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.399967 914263 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.940925 491411 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.883898 648976 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.906370 819825 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.925521 823025 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.365937 787257 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.483219 628087 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.100140 739329 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.037467 728028 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.785211 671724 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.532730 495907 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.102511 575890 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.847850 540142 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup1013-avx0000644000000000000000000001416014705505550021074 0ustar rootroot1.000000 1059632 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.056490 1119491 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1443202 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.362175 1965893 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1275253 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.168624 1490291 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000200 1957208 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1956817 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1237294 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.080646 1337077 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup1013-portable0000644000000000000000000003032614705505550022110 0ustar rootroot1.494581 29986343 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 20063383 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.722052 12421061 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.199918 15046688 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.763994 5048081 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.391994 16309849 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.582366 15272492 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.359920 20724265 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.664150 8174512 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.878402 22915741 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.423573 14567946 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.087873 19240855 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.233811 6674433 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.934305 20320270 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.977631 19524397 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.050450 21623709 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.292542 6442902 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.707275 20952177 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.597945 23011126 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.842285 24550740 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.479294 5542204 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.704126 20667915 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup1277-avx0000644000000000000000000001416014705505550021110 0ustar rootroot1.002070 1657231 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1653807 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.023584 2261931 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2209814 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1928443 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.033300 1992661 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 3086315 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001433 3090739 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1950909 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.010008 1970433 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup1277-portable0000644000000000000000000003033214705505550022121 0ustar rootroot1.493201 47599682 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 31877615 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.890939 19665318 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.432108 23867921 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.851789 8023922 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.661778 25901558 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.952718 24203469 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.882736 32888078 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.766748 12743441 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.418827 36282554 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.894658 22938170 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.831634 30530404 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.438747 10488314 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.702954 32210694 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.033779 30967403 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.134404 34364277 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.354349 10352577 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.762327 33215931 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.214008 39435690 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.944164 42811067 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.526300 8830400 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.824210 32822503 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup653-avx0000644000000000000000000001414614705505550021031 0ustar rootroot1.006404 460913 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 457980 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.089203 650279 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 597023 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 523431 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.087756 569365 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 815117 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002219 816926 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 517514 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.010363 522877 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup653-portable0000644000000000000000000003031014705505550022032 0ustar rootroot1.492001 12507126 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 8382789 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.374844 5209451 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.707848 6277920 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.645661 2127620 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.882942 6816090 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.660088 6364318 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.426309 8612838 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.876765 3508564 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.031084 9570926 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.767285 6159362 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.352631 8036043 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.329346 2789545 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.210389 8485020 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.971465 8127911 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.060997 9016007 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.309465 2697601 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.715719 8734565 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.489730 10603722 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.141656 10941103 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.457362 2306747 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.659775 8621667 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup761-avx0000644000000000000000000001415014705505550021024 0ustar rootroot1.012971 621553 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 613594 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.017650 799068 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 785209 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 697033 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.035615 721858 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1107944 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002045 1110210 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 672621 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.042923 701492 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup761-portable0000644000000000000000000003032114705505550022034 0ustar rootroot1.498455 16875664 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 11262044 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.453231 7027634 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.873403 8512637 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.569202 2803635 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.998711 9203119 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.956277 8602967 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.860074 11668264 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.781889 4539991 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.450750 12917277 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.829801 8245762 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.698778 10942566 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.355878 3733224 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.411300 11439218 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.921557 10992529 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.024427 12214448 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.147163 3486880 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.669503 11821212 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.304669 13657347 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.772436 14644598 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.539762 3053539 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.336424 11660843 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup857-avx0000644000000000000000000001415114705505550021033 0ustar rootroot1.000000 769111 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.006470 774087 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.055507 1044027 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 989124 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 867221 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.048004 908851 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1401662 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001448 1403691 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 872174 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.039087 906265 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup857-portable0000644000000000000000000003032514705505550022046 0ustar rootroot1.500042 21374856 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 14249506 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.548245 8881882 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.046203 10803089 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.604305 3541222 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.177847 11673449 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.060119 10939829 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.006059 14842853 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.776567 5713741 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.517739 16338092 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.987197 10395549 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.926290 13811613 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.411333 4692822 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.761998 14536357 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.960109 13960706 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.033851 15465730 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.140296 4401633 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.669740 14955369 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.097147 17528209 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.555035 18799741 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.442116 3874298 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.937478 14772428 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup953-avx0000644000000000000000000001415614705505550021035 0ustar rootroot1.000000 939821 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002050 941748 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1210260 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.111733 1345486 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1054665 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.133955 1195943 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1731002 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001036 1732795 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1068449 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.049582 1121425 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-invsntrup953-portable0000644000000000000000000003032614705505550022044 0ustar rootroot1.500290 26395086 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 17593327 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.696628 10992737 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.182901 13329388 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.630068 4351435 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.359052 14434760 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.138117 13480017 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.128160 18309007 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.868413 7102305 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.624240 20119653 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.170042 12835317 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.126609 17008170 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.507759 5808841 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.925442 17850671 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.961708 17243736 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.066111 19155460 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.133266 5423689 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.690582 18505418 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.941928 22375382 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.293540 23819511 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.478236 4784767 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.076646 18245525 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup1013-avx0000644000000000000000000001413414705505550021345 0ustar rootroot1.000000 11189 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.241308 13889 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 17035 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.435339 24451 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16330 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.349541 22038 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16625 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.111940 18486 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11263 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.271508 14321 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup1013-compact0000644000000000000000000003026314705505550022176 0ustar rootroot1.465853 671783 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 458288 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.672982 130609 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.827241 199469 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.736080 120126 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.105997 202588 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.160669 173087 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.395304 330399 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.251776 174639 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.136601 360062 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.666810 141529 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.906552 276084 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.777648 127009 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.026944 294380 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.831338 180071 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.287759 270784 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.153143 202046 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.006376 249481 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.735150 132173 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 20.040043 225711 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.329663 217710 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.374145 218211 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup1277-avx0000644000000000000000000001413414705505550021361 0ustar rootroot1.000000 14496 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.211093 17556 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 21875 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.398857 30600 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 20338 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.353132 27520 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 20942 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.082609 22672 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 14366 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.264653 18168 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup1277-compact0000644000000000000000000003026614705505550022215 0ustar rootroot1.484396 1062952 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 716084 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.620240 197439 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.897144 317421 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.168805 176399 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.026904 319302 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.233097 267599 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 23.910263 523037 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.407223 293283 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24.988617 546626 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.535648 214274 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 32.278887 656488 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.481955 233520 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24.131626 490789 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.895378 290997 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 20.464139 428560 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.733645 329494 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.040970 398756 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.706529 225640 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 25.324168 363807 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 23.441320 336758 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 24.292844 348991 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup653-avx0000644000000000000000000001413014705505550021272 0ustar rootroot1.000000 7619 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.237695 9430 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11554 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.397438 16146 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 10752 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.358724 14609 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11163 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.091732 12187 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 7612 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.238833 9430 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup653-compact0000644000000000000000000003023514705505550022126 0ustar rootroot1.448338 288958 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 199510 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.989894 45637 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.833180 82538 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.506759 57194 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.422365 87027 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.534274 63943 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.714038 146898 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.488229 74965 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.484334 155798 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.224888 56178 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.529297 134715 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.718099 61481 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.754836 137140 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.183463 69026 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.029741 111962 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.129356 90748 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.792708 109316 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.666316 50744 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.441277 94703 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.426038 94587 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.638071 96201 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup761-avx0000644000000000000000000001413114705505550021273 0ustar rootroot1.000000 8056 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.231753 9923 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 12356 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.403529 17342 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 10571 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.481222 15658 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11806 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.087159 12835 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 8202 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.316020 10794 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup761-compact0000644000000000000000000003024614705505551022131 0ustar rootroot1.487543 388149 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 260933 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.977160 72320 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.542453 125210 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.844712 71253 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.373138 115790 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.792813 96288 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.851084 195856 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.642522 106787 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.826643 207910 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.549522 79806 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 18.302620 193477 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.075111 74791 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.853467 167587 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.694901 102652 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.094189 154590 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.991445 117959 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.258428 144723 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.685930 79444 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.879542 130244 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.471958 126901 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.856742 138259 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup857-avx0000644000000000000000000001413414705505551021305 0ustar rootroot1.000000 10665 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.237131 13194 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16067 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.419493 22807 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 15187 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.357674 20619 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 15679 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.114421 17473 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 10544 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.277693 13472 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup857-compact0000644000000000000000000003025014705505551022132 0ustar rootroot1.485897 487976 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 328405 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.218940 87655 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.642663 134834 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.102391 86412 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.591936 144958 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.822680 125687 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.470032 248557 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.475384 136174 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.451298 264323 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.560216 84443 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 18.970896 288111 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.091460 92511 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.947389 211819 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.372919 131279 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.341922 193509 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.459532 148316 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.608840 182015 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.686646 102136 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.399374 162371 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.114473 159367 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.299981 161323 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup953-avx0000644000000000000000000001413414705505551021302 0ustar rootroot1.000000 10940 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.248720 13661 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16593 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.434219 23798 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 15815 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.353841 21411 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16136 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.115580 18001 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 10978 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.233922 13546 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-mult3sntrup953-compact0000644000000000000000000003025714705505551022136 0ustar rootroot1.490795 600343 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 402700 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.810420 107326 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.254479 177824 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.719287 106329 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.297075 178290 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.418550 156282 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 18.236003 302590 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.849214 163428 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.589164 325043 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.755991 122661 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 18.928612 299356 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.180778 113564 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.617325 262803 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.097670 162936 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.933441 240966 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.248513 181506 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.857771 223609 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.225360 123232 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.551831 192684 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.560576 192780 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.792221 195323 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup1013-avx0000644000000000000000000001413414705505551021263 0ustar rootroot1.000000 17251 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.145209 19756 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 26785 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.180698 31625 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 23756 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.135082 26965 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 24965 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.087482 27149 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16424 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.177545 19340 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup1013-compact0000644000000000000000000003027114705505551022113 0ustar rootroot1.003810 1062354 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1058322 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.873225 222076 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.716074 633389 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.640485 235312 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 37.759086 651382 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.723726 394375 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 41.903155 1122376 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.811835 369950 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.938734 989404 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.314615 292546 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 46.105110 1095273 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.627084 299969 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 37.105152 881470 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.568596 288810 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.455798 710399 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.991909 274413 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 32.145524 802513 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.585302 223125 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.091147 592761 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.900451 195453 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 37.688870 619002 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup1277-avx0000644000000000000000000001413414705505551021277 0ustar rootroot1.000000 22327 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.104851 24668 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 35947 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.086878 39070 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 30128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.123241 33841 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 31200 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.047660 32687 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 20823 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.157854 24110 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup1277-compact0000644000000000000000000003030014705505551022120 0ustar rootroot1.002746 1677086 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1672493 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.620818 348766 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 45.510727 1016118 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.946836 356045 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 45.452188 1014811 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.058058 613186 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 49.501182 1779419 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.032631 576325 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 43.441400 1561588 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.316549 461457 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 58.273599 1755667 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.468634 466039 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 45.866038 1381852 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.827596 462621 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.970897 1153492 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.944135 435057 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 40.558526 1265426 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.211929 358404 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 46.625798 970889 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.569707 303385 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 48.382654 1007472 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup653-avx0000644000000000000000000001413414705505551021214 0ustar rootroot1.000000 12004 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.116878 13407 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 18159 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.152101 20921 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16030 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.119214 17941 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 17189 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.038688 17854 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11283 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.133387 12788 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup653-compact0000644000000000000000000003025014705505551022041 0ustar rootroot1.005922 449763 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 447115 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.559647 90746 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.120377 265533 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.410530 100960 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23.296318 279649 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.857481 160843 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 26.170879 475237 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.957652 162662 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23.250895 422213 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.992576 112091 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.479663 456529 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.233063 131976 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.626762 555067 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.048054 121149 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.416080 299365 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.562627 112805 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.800047 340343 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.725694 87169 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.508375 253962 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.133564 80488 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23.251086 262342 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup761-avx0000644000000000000000000001413414705505551021214 0ustar rootroot1.000000 12202 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.110392 13549 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 18588 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.155907 21486 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16496 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.120938 18491 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 17427 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.045619 18222 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11682 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.117531 13055 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup761-compact0000644000000000000000000003026214705505551022044 0ustar rootroot1.005892 606767 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 603213 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.307982 137980 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 29.480741 359724 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.542042 128634 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 29.388871 358603 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.953895 240787 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.316064 637867 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.805143 219434 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 30.719443 571013 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.826685 178597 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 37.748666 622702 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.609239 240994 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 30.339597 500482 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.653124 168225 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 23.245998 405108 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.882080 154788 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 26.334596 458933 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.676682 148089 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.931005 337972 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.150745 106899 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 30.071392 351294 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup857-avx0000644000000000000000000001413414705505551021222 0ustar rootroot1.000000 16919 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.144926 19371 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 26285 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.168043 30702 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 21803 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.188552 25914 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 24449 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.087366 26585 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16102 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.138430 18331 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup857-compact0000644000000000000000000003026214705505551022052 0ustar rootroot1.005238 765597 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 761608 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.393818 175853 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 26.886282 454889 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.250783 173433 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.262309 562765 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.279437 296480 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 30.702454 807014 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.326270 271426 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 27.332813 718443 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.028070 218642 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.171765 788653 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.133284 220936 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.938632 630949 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.644362 211346 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 20.935498 511852 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.044910 196690 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23.670252 578714 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.563657 186198 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 27.148429 437144 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.489753 136702 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 27.852689 448484 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup953-avx0000644000000000000000000001413414705505551021217 0ustar rootroot1.000000 17136 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.147876 19670 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 26588 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.176170 31272 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 22051 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.196726 26389 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 24708 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.089566 26921 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 16439 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.138147 18710 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-multsntrup953-compact0000644000000000000000000003026514705505551022052 0ustar rootroot1.004706 942821 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 938405 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.782913 219048 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 32.790850 561904 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.772701 218873 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.774451 578759 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.195314 324249 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 37.466113 996149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.477998 331765 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.126298 880762 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.765589 259443 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 44.181035 974236 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.015782 264960 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 35.197179 776133 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.508297 259639 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 25.585640 632170 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.134774 250410 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.831917 712379 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.844212 227585 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 32.917939 541138 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.228968 233910 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.536772 551311 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup1013-avx0000644000000000000000000001411014705505551021446 0ustar rootroot1.000000 201 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.069652 215 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.077160 349 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 324 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.035971 288 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 278 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 228 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.078947 246 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 193 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.113990 215 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup1013-ref0000644000000000000000000003021314705505551021426 0ustar rootroot1.000000 7480 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.389572 10394 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.656716 3147 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.626866 3141 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.378109 2488 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 51.701493 10392 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.197531 4924 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.197531 4924 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.067901 3910 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.824074 3831 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.776978 4664 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.748201 5490 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.924460 3593 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.942446 3598 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.043860 5026 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.758772 4961 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.916667 3857 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.995614 3875 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 26.062176 5030 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 25.051813 4835 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.347150 3734 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.207254 3707 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup1277-avx0000644000000000000000000001411014705505551021462 0ustar rootroot1.000000 256 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.046875 268 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.067669 426 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 399 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 371 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.137466 422 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 286 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.090909 312 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 215 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.144186 246 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup1277-ref0000644000000000000000000003021214705505551021441 0ustar rootroot1.000000 9415 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.390016 13087 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.328125 3924 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.328125 3924 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.933594 3055 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.058594 3087 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.591479 6221 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.586466 6219 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.130326 4840 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.358396 4931 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.552561 6883 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.026954 5946 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.105121 4491 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.102426 4490 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.751748 6221 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.751748 6221 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.080420 4885 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.080420 4885 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.246512 6073 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 27.948837 6009 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.869767 4702 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.088372 4749 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup653-avx0000644000000000000000000001411014705505551021377 0ustar rootroot1.000000 128 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.039062 133 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.064815 230 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 216 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 191 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.109948 212 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 143 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.083916 155 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 109 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.146789 125 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup653-ref0000644000000000000000000003021114705505551021355 0ustar rootroot1.000000 4868 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.384963 6742 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.664062 2005 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.710938 2011 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.273438 1571 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.218750 1564 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.953704 3230 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.907407 3220 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.611111 2508 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.930556 2577 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.198953 3476 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.764398 3011 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.251309 2340 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.272251 2344 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.517483 3220 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.517483 3220 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.629371 2521 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.629371 2521 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.733945 3132 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.266055 3081 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.559633 2350 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.559633 2350 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup761-avx0000644000000000000000000001411014705505551021377 0ustar rootroot1.000000 148 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.243243 184 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.064516 264 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 248 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.052885 219 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 208 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 171 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.058480 181 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 125 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.184000 148 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup761-ref0000644000000000000000000003021114705505551021355 0ustar rootroot1.000000 5648 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.386863 7833 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.770270 2334 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.101351 2383 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.263514 1815 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.209459 1807 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.008065 3722 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.036290 3729 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.770161 2919 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.383065 3071 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.177885 3989 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.740385 3482 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.836538 2670 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.831731 2669 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.964912 3756 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.257310 3806 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.976608 2903 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.152047 2933 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 30.192000 3774 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 30.128000 3766 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.096000 2762 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.264000 2783 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup857-avx0000644000000000000000000001411014705505551021405 0ustar rootroot1.000000 171 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.052632 180 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.061594 293 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 276 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.051724 244 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 232 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 192 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.083333 208 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 141 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.170213 165 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup857-ref0000644000000000000000000003021114705505551021363 0ustar rootroot1.000000 6351 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.387498 8812 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.818713 2705 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.801170 2702 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.649123 2163 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.298246 2787 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.177536 4189 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.206522 4197 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.025362 3319 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.782609 3252 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.711207 3877 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.349138 4489 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.931034 3000 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.965517 3008 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.828125 4191 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.828125 4191 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.281250 3318 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.432292 3347 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 29.205674 4118 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 29.198582 4117 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.602837 3187 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.602837 3187 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup953-avx0000644000000000000000000001411014705505551021402 0ustar rootroot1.101010 218 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 198 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.055375 324 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 307 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 269 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.126394 303 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 212 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.089623 231 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 161 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.155280 186 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-scale3sntrup953-ref0000644000000000000000000003021114705505551021360 0ustar rootroot1.000000 7045 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.388502 9782 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.080808 2986 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.121212 2994 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 49.515152 9804 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 49.535354 9808 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.130293 4645 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.100977 4636 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.804560 3624 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.990228 3681 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.531599 4985 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.914498 4281 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.386617 3332 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.394052 3334 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.250000 4717 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.250000 4717 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.452830 3700 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.448113 3699 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 27.950311 4500 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.248447 4548 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.068323 3553 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.937888 3532 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup1013-avx0000644000000000000000000001407614705505551021576 0ustar rootroot1.000000 27 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.444444 39 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 52 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.423077 74 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 54 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.425926 77 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 31 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.645161 51 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 24 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.791667 43 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup1013-ref0000644000000000000000000003021114705505551021541 0ustar rootroot1.003262 3076 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 3066 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 40.666667 1098 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 40.814815 1102 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 39.814815 1075 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 47.444444 1281 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 37.019231 1925 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.442308 1895 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 39.692308 2064 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 39.365385 2047 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 38.777778 2094 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 38.074074 2056 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 38.203704 2063 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 38.277778 2067 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 66.483871 2061 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 66.483871 2061 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 66.290323 2055 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 66.290323 2055 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 84.833333 2036 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 84.833333 2036 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 84.833333 2036 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 84.833333 2036 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup1277-avx0000644000000000000000000001407714705505551021613 0ustar rootroot1.000000 37 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.351351 50 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 65 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.646154 107 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 72 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.236111 89 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 50 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.180000 59 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 38 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.342105 51 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup1277-ref0000644000000000000000000003021114705505551021555 0ustar rootroot1.000000 2601 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.483276 3858 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.810811 1362 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.945946 1367 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 35.837838 1326 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 35.810811 1325 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.815385 2393 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.261538 2357 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 39.276923 2553 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 39.784615 2586 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 35.875000 2583 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.375000 2403 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 35.875000 2583 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 35.958333 2589 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 53.420000 2671 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 53.500000 2675 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 48.860000 2443 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 48.640000 2432 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.447368 1309 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.447368 1309 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 55.289474 2101 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 56.184211 2135 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup653-avx0000644000000000000000000001407614705505551021527 0ustar rootroot1.000000 19 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.421053 46 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 43 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.325581 57 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 46 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.173913 54 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 27 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.962963 53 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 20 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.050000 41 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup653-ref0000644000000000000000000003020314705505551021473 0ustar rootroot1.000000 1368 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.451754 1986 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 38.368421 729 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 38.105263 724 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 36.684211 697 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.789474 699 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.976744 1246 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.651163 1232 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 31.511628 1355 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 30.604651 1316 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 29.673913 1365 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 29.000000 1334 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 29.304348 1348 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 29.260870 1346 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 51.037037 1378 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 51.037037 1378 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 46.851852 1265 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 46.370370 1252 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.250000 685 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.250000 685 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 56.000000 1120 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 56.300000 1126 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup761-avx0000644000000000000000000001407614705505551021527 0ustar rootroot1.000000 19 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.789474 53 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 46 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.282609 59 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 46 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.304348 60 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 28 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.107143 59 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 21 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.190476 46 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup761-ref0000644000000000000000000003020314705505551021473 0ustar rootroot1.000000 1564 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.476343 2309 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 44.263158 841 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 44.315789 842 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 42.526316 808 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 42.473684 807 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 30.847826 1419 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 31.086957 1430 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.739130 1552 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.760870 1553 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.326087 1579 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.804348 1555 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.804348 1555 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.978261 1563 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 56.821429 1591 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 56.821429 1591 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 51.892857 1453 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 51.500000 1442 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 37.761905 793 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 37.761905 793 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 61.571429 1293 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 62.952381 1322 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup857-avx0000644000000000000000000001407614705505551021535 0ustar rootroot1.000000 23 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.217391 51 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 49 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.326531 65 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 52 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.288462 67 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 29 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.241379 65 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 22 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.500000 55 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup857-ref0000644000000000000000000003020314705505551021501 0ustar rootroot1.000000 1755 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.480342 2598 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 40.913043 941 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 40.956522 942 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 39.260870 903 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 39.217391 902 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 32.469388 1591 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 32.938776 1614 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 35.693878 1749 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.714286 1701 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.019231 1769 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.500000 1742 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.615385 1748 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.673077 1751 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 61.931034 1796 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 61.931034 1796 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 56.310345 1633 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 55.931034 1622 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 40.409091 889 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 40.409091 889 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 65.590909 1443 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 65.863636 1449 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup953-avx0000644000000000000000000001407614705505551021532 0ustar rootroot1.000000 24 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.666667 64 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 52 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.326923 69 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 54 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.351852 73 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 29 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.448276 71 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 23 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.695652 62 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-weightsntrup953-ref0000644000000000000000000003020714705505551021502 0ustar rootroot1.000000 1946 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.482528 2885 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 43.333333 1040 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 43.125000 1035 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 41.708333 1001 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 41.708333 1001 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.942308 1765 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.403846 1789 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 37.326923 1941 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.884615 1918 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.185185 1954 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.981481 1889 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 35.907407 1939 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.111111 1950 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 69.103448 2004 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 69.655172 2020 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 62.758621 1820 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 62.931034 1825 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 42.826087 985 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 43.000000 989 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 69.130435 1590 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 69.130435 1590 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup1013-avx0000644000000000000000000001410514705505551021565 0ustar rootroot1.000000 75 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.200000 90 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.117117 124 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.171171 130 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.200000 120 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.300000 130 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.507042 107 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.647887 117 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.531250 98 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.906250 122 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup1013-simpler0000644000000000000000000003013614705505551022444 0ustar rootroot1.000000 3246 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.007086 3269 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.506667 188 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.546667 116 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 75 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.986667 149 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.018018 113 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.225225 136 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 111 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.846847 205 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.010000 101 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.400000 140 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 100 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.980000 198 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.295775 234 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.042254 145 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 71 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.140845 152 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.390625 217 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.968750 126 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 64 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.281250 146 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup1277-avx0000644000000000000000000001411014705505551021575 0ustar rootroot1.107843 113 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.058824 108 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 163 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.042945 170 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.025316 162 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.037975 164 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 132 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.015152 134 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.008403 120 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.016807 121 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup1277-simpler0000644000000000000000000003014114705505551022454 0ustar rootroot1.000000 2881 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002083 2887 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.176471 222 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.264706 129 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 102 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.411765 144 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.018405 166 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.251534 204 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.030675 168 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.619632 264 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 158 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.221519 193 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.012658 160 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.335443 211 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.166667 286 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.431818 189 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.053030 139 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.409091 186 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.294118 273 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.352941 161 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 119 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.445378 172 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup653-avx0000644000000000000000000001410114705505551021512 0ustar rootroot1.314815 71 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 54 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.042105 99 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.084211 103 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.081633 106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.122449 110 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.298507 87 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.089552 73 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.015873 64 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 63 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup653-simpler0000644000000000000000000003013114705505551022370 0ustar rootroot1.003320 1511 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1506 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.666667 144 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.444444 78 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 54 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.888889 102 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.042105 99 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.115789 106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 95 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.389474 132 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.071429 105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.122449 110 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 98 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.418367 139 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.253731 218 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.611940 108 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 67 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.029851 136 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.190476 201 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.222222 77 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.095238 69 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.984127 125 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup761-avx0000644000000000000000000001410214705505551021513 0ustar rootroot1.000000 62 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.112903 69 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 109 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.009174 110 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 118 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 118 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 86 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.046512 90 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 67 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 67 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup761-simpler0000644000000000000000000003013614705505551022375 0ustar rootroot1.002322 1727 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1723 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.241935 139 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.822581 113 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.290323 80 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.370968 85 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.137615 124 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.293578 141 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.128440 123 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.321101 144 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.033898 122 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.135593 134 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.042373 123 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.245763 147 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.488372 214 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.988372 171 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.279070 110 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.348837 116 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.791045 187 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.417910 162 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.328358 89 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.656716 111 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup857-avx0000644000000000000000000001410414705505551021523 0ustar rootroot1.027778 74 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.027778 74 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.073394 117 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.110092 121 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.234043 116 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.244681 117 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.407895 107 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.368421 104 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.315068 96 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.027397 75 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup857-simpler0000644000000000000000000003013414705505551022401 0ustar rootroot1.004651 1944 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1935 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.097222 151 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.472222 106 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 72 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.291667 93 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.064220 116 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.302752 142 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 109 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.422018 155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.063830 100 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.457447 137 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 94 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.574468 148 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.684211 204 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.894737 144 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 76 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.710526 130 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.753425 201 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.671233 122 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 73 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.657534 121 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup953-avx0000644000000000000000000001410414705505551021520 0ustar rootroot1.000000 80 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 80 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 126 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.039683 131 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.051282 123 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.094017 128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 107 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.028037 110 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.087912 99 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.054945 96 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/core-wforcesntrup953-simpler0000644000000000000000000003013714705505551022401 0ustar rootroot1.001867 2146 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2142 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.375000 110 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.362500 109 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.200000 96 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.412500 113 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.095238 138 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.230159 155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.055556 133 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.365079 172 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.017094 119 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.273504 149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 117 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.410256 165 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.523364 163 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.392523 149 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.093458 117 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.355140 145 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.373626 125 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.406593 128 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 91 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.527473 139 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013x2393-avx0000644000000000000000000001412214705505551020106 0ustar rootroot1.000000 1042 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.356046 1413 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1712 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.062500 1819 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1524 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.114173 1698 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1370 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.192701 1634 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1169 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.272027 1487 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013x2393-int160000644000000000000000000003022714705505551020255 0ustar rootroot1.000000 18406 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.273769 23445 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.015355 9394 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.000960 9379 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.840691 13380 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.901152 13443 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.470794 14502 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.459112 14482 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.318341 17665 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.670561 18268 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.891076 13550 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.976378 13680 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.328084 17264 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.644357 17746 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.448905 14315 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.431387 14291 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.738686 17452 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.788321 17520 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.955518 12807 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.955518 12807 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.943541 17469 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.277160 16690 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013x3-avx0000644000000000000000000001410114705505551017645 0ustar rootroot1.035714 58 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 56 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.028302 109 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.096774 102 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 93 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.013699 74 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 73 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.060000 53 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 50 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013x3-ref0000644000000000000000000003016114705505551017627 0ustar rootroot1.149466 323 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 281 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.625000 875 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.392857 918 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.803571 157 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.392857 190 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.254717 239 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.971698 209 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.028302 1169 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.179245 1927 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.462366 229 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.118280 197 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.333333 1147 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.838710 1938 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.794521 1226 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.821918 1228 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.616438 264 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.547945 259 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.440000 1122 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 30.380000 1519 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.160000 208 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.840000 192 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013x7177-avx0000644000000000000000000001412114705505551020112 0ustar rootroot1.000000 993 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.165156 1157 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1551 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.187621 1842 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1402 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.259629 1766 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.024314 1306 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1275 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1081 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.067530 1154 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013x7177-int160000644000000000000000000003022714705505551020262 0ustar rootroot1.000000 17580 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.234585 21704 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.084592 9021 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.177241 9113 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.161128 13069 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.453172 19317 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.123146 14150 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.108962 14128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.662153 19639 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.088330 17198 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.195435 12892 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.187589 12881 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.099857 19768 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.031384 18270 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.374118 14502 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.341961 14461 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.563922 17294 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.402353 17088 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.320999 13319 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.135060 13118 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.414431 16663 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.828862 16030 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013xint16-ref0000644000000000000000000003014114705505551020424 0ustar rootroot2.072131 632 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 305 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.204082 118 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.459184 535 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 98 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.387755 136 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 99 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.363636 1026 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.030303 102 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.565657 155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 98 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.500000 1029 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.448980 142 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.571429 154 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 129 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.899225 1019 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 129 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.193798 154 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.127119 133 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.627119 782 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 118 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.305085 154 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1013xint32-ref0000644000000000000000000003015214705505551020424 0ustar rootroot3.813780 2048 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 537 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.813953 1008 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.069767 654 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 129 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.705426 220 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.902439 2280 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.487805 1064 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 164 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.762195 289 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.500000 2025 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.840741 1037 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 270 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.040741 281 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.850649 1517 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.948052 1532 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 154 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.824675 281 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.188312 1261 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.642857 1023 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 154 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.824675 281 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277x2627-avx0000644000000000000000000001412214705505551020122 0ustar rootroot1.000000 1204 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.048173 1262 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1914 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.029781 1971 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1698 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.083039 1839 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.027701 1484 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1444 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1308 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002294 1311 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277x2627-int160000644000000000000000000003023314705505551020266 0ustar rootroot1.000000 22979 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.280212 29418 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.789037 11786 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.856312 11867 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.133721 17017 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.963455 16812 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.482236 18149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.484326 18153 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.640543 22280 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.760188 22509 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.101296 17152 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.117786 17180 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.570671 21345 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.705536 21574 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.459834 17992 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.502770 18054 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.997230 21656 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.891274 21503 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.259939 16036 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.271407 16051 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.483945 21561 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.951835 20865 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277x3-avx0000644000000000000000000001410214705505551017662 0ustar rootroot1.056338 75 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 71 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.007576 133 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 132 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.122807 128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 114 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 98 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.010204 99 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.059701 71 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 67 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277x3-ref0000644000000000000000000003016314705505551017645 0ustar rootroot1.064000 399 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 375 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.436620 1096 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.422535 1095 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.746479 195 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.380282 240 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.083333 275 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.924242 254 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.007576 1453 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.409091 2430 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.280702 260 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.508772 286 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.482456 1423 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.280702 2426 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.836735 1552 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.795918 1548 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.387755 332 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.285714 322 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21.432836 1436 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 21.432836 1436 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.925373 263 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.611940 242 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277x7879-avx0000644000000000000000000001412214705505551020140 0ustar rootroot1.000000 1153 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.077190 1242 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1806 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.068106 1929 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1588 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.091940 1734 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.021106 1403 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1374 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1183 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.009298 1194 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277x7879-int160000644000000000000000000003023314705505551020304 0ustar rootroot1.000000 22301 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.230259 27436 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.906331 11422 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.864701 11374 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.404163 15455 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.294883 15329 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.830565 17754 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.825028 17744 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.899225 23296 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.961240 23408 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.153652 16124 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.158060 16131 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.677582 23308 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.352645 24380 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.232897 18182 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.243814 18197 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.211063 20900 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.922125 20503 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.978867 16537 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.978867 16537 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.997464 20108 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.188504 19151 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277xint16-ref0000644000000000000000000003014414705505551020443 0ustar rootroot2.236152 767 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 343 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.303571 146 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.955357 667 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 112 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.383929 155 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.169643 131 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.526786 1291 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 112 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.705357 191 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.117647 133 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.840336 1290 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 119 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.571429 187 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.453488 211 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.034884 1293 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 86 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.162791 186 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.673913 154 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.652174 980 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 92 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.021739 186 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-1277xint32-ref0000644000000000000000000003015414705505551020442 0ustar rootroot3.888386 2578 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 663 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.884146 1293 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.963415 814 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 164 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.621951 266 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.625592 2875 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.350711 1340 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 211 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.710900 361 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.640719 2552 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.895210 1301 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 334 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.961078 655 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.240642 1915 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.331551 1932 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 187 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.877005 351 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.486631 1587 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.882353 1287 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 187 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.855615 347 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653x1541-avx0000644000000000000000000001411314705505551020031 0ustar rootroot1.000000 702 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.149573 807 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1026 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.117934 1147 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 970 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.139175 1105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 854 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.058548 904 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 791 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.068268 845 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653x1541-int160000644000000000000000000003017314705505551020200 0ustar rootroot1.000000 10673 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.135669 12121 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.035613 4939 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.049858 4949 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.861823 6221 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.464387 6644 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.863548 8068 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.869396 8074 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.245614 9486 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.337232 9580 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.469072 7245 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.475258 7251 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.456701 9173 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.547423 9261 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.250585 7900 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.296253 7939 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.112412 8636 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.127635 8649 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.085967 7187 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.101138 7199 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.216182 8872 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.601770 8386 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653x3-avx0000644000000000000000000001410114705505551017576 0ustar rootroot1.000000 58 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 58 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.030303 102 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.050505 104 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.228916 102 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 83 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.104167 53 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 48 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 46 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 46 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653x3-ref0000644000000000000000000003014514705505551017562 0ustar rootroot1.118750 179 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 160 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.879310 573 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.241379 594 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.448276 84 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.844828 107 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 99 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.212121 120 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.141414 707 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.919192 1279 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.120482 93 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.493976 124 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.433735 700 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.373494 1276 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.500000 792 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.583333 796 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.583333 124 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.979167 143 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.608696 718 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.608696 718 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.239130 103 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.369565 109 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653x4621-avx0000644000000000000000000001411614705505551020036 0ustar rootroot1.000000 786 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.216285 956 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1150 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.132174 1302 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1075 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.167442 1255 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 935 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.150802 1076 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 862 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.176334 1014 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653x4621-int160000644000000000000000000003021214705505551020174 0ustar rootroot1.000000 12339 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.205365 14873 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.608142 5980 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.638677 6004 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.544529 9074 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.435115 8988 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.206957 9438 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.214783 9447 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.173043 10549 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.288696 10682 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.989767 8589 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.960930 8558 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.886512 12778 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.644651 10368 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.252406 9586 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.263102 9596 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.623529 11803 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.498396 11686 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.141531 8742 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.151972 8751 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.182135 11363 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.742459 10984 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653xint16-ref0000644000000000000000000003012714705505551020361 0ustar rootroot2.036697 444 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 218 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.086957 96 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.673913 353 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 46 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.260870 104 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 66 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.121212 668 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.303030 86 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.803030 119 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 67 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.925373 665 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.208955 81 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.656716 178 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.638298 124 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.000000 658 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 47 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.787234 84 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.955556 88 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.377778 512 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 45 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.866667 84 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-653xint32-ref0000644000000000000000000003014414705505551020356 0ustar rootroot3.752113 1332 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 355 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.209677 646 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.491935 433 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 124 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.338710 166 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.107143 1468 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.151786 689 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 112 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.821429 204 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.250000 1305 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.827586 676 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 116 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.965517 344 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.000000 955 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.507853 670 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.094241 209 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 191 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.183007 793 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.333333 663 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 153 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.248366 191 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761x1531-avx0000644000000000000000000001411414705505551020031 0ustar rootroot1.000000 770 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.180519 909 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1127 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.124224 1267 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1044 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.147510 1198 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 919 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.018498 936 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 816 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.037990 847 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761x1531-int160000644000000000000000000003021214705505551020171 0ustar rootroot1.000000 12547 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.130629 14186 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.514286 5786 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.507792 5781 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.264935 9444 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.171429 7832 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.358474 9420 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.381544 9446 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.844720 11095 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.935226 11197 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.120690 8478 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.111111 8468 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.152299 10599 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.327586 10782 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.985854 9177 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.051143 9237 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.866159 10905 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.282916 10369 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.317402 8419 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.155637 8287 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.446078 10972 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.404412 10122 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761x3-avx0000644000000000000000000001407614705505551017611 0ustar rootroot1.153846 45 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 39 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 80 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 80 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.136986 83 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 73 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.125000 54 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 48 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.081081 40 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 37 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761x3-ref0000644000000000000000000003015314705505551017561 0ustar rootroot1.209821 271 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 224 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.179487 631 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 16.179487 631 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.128205 122 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.846154 150 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.712500 217 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.225000 178 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.262500 901 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.950000 1436 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.931507 214 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.726027 199 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.479452 911 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.575342 1429 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 19.166667 920 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 19.166667 920 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.333333 208 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.270833 205 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23.270270 861 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.540541 834 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.432432 164 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.162162 154 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761x4591-avx0000644000000000000000000001412014705505551020037 0ustar rootroot1.000000 837 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.243728 1041 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1241 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.066076 1323 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.032202 1186 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1038 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.137765 1181 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 880 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.234091 1086 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761x4591-int160000644000000000000000000003022114705505551020202 0ustar rootroot1.000000 14329 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.197920 17165 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.344086 6984 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.289128 6938 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.384707 9529 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.121864 9309 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.755842 10866 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.749396 10858 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.298147 11539 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.108783 13786 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.614447 9898 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.620540 9905 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.756310 11210 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.582245 14457 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.674374 11080 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.670520 11076 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.177264 12640 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.100193 12560 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.713636 10308 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.709091 10304 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.911364 12242 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.445455 11832 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761xint16-ref0000644000000000000000000003013114705505551020354 0ustar rootroot2.183486 476 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 218 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.244898 110 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.367347 410 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 49 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.285714 112 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 75 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.320000 774 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 75 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.453333 184 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.283333 77 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.900000 774 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 60 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.466667 208 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.941176 99 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.019608 766 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 51 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.392157 122 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 74 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.027027 594 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.013514 75 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.418919 105 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-761xint32-ref0000644000000000000000000003014414705505551020356 0ustar rootroot3.814815 1545 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 405 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.661765 770 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.632353 494 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 136 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.338235 182 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.310078 1717 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.255814 807 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 129 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.736434 224 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.414634 1527 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.341463 780 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 123 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.780488 219 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.368852 1143 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.385246 779 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 122 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.778689 217 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.489796 930 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.877551 772 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 98 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.214286 217 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857x1723-avx0000644000000000000000000001411614705505551020044 0ustar rootroot1.000000 822 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.180049 970 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1235 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.210526 1495 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1170 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.241880 1453 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1040 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.058654 1101 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 904 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.081858 978 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857x1723-int160000644000000000000000000003022314705505551020204 0ustar rootroot1.000000 14731 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.118458 16476 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.053528 6620 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.062044 6627 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.897810 12246 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.997567 12328 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.716599 10765 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.731174 10783 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.154656 12541 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.240486 12647 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.257265 9661 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.258974 9663 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.479487 15771 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.145299 11870 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.210577 10619 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.183654 10591 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.643269 11069 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.390385 10806 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.711283 9683 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.711283 9683 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.659292 11444 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.495575 10392 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857x3-avx0000644000000000000000000001407614705505551017617 0ustar rootroot1.000000 50 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.320000 66 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.021505 95 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 93 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.090909 96 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 88 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.033333 62 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 60 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.256410 49 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 39 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857x3-ref0000644000000000000000000003015614705505551017572 0ustar rootroot1.118721 245 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 219 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.920000 746 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.900000 745 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.360000 118 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.960000 148 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.053763 191 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.666667 155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.784946 1003 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.731183 1649 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.090909 184 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.659091 146 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.193182 985 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.647727 1641 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.283333 1037 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.283333 1037 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.083333 185 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.300000 198 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23.743590 926 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 23.743590 926 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.871795 151 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.641026 142 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857x5167-avx0000644000000000000000000001412014705505551020045 0ustar rootroot1.000000 885 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.152542 1020 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1345 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.167286 1570 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1231 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.213647 1494 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1106 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.058770 1171 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 950 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.091579 1037 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857x5167-int160000644000000000000000000003022614705505551020215 0ustar rootroot1.000000 16719 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.178599 19705 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.127684 8078 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.161582 8108 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.006780 10626 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.814689 15766 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.434201 12689 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.434944 12690 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.927138 13352 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.254275 13792 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.449228 11632 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.446791 11629 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.986190 18448 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.007311 16012 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.518987 12740 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.487342 12705 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.896926 14264 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.713382 14061 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.701053 11116 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.923158 11327 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.523158 13797 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.940000 13243 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857xint16-ref0000644000000000000000000003013214705505551020363 0ustar rootroot2.190083 530 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 242 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.220339 72 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.745763 457 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 59 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.033898 120 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 80 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.875000 870 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.025000 82 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.787500 143 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.396552 81 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.017241 871 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 58 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.965517 230 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.947368 111 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.315789 873 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 57 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.350877 134 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.410714 79 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.875000 665 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 56 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.053571 115 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-857xint32-ref0000644000000000000000000003014714705505551020367 0ustar rootroot3.813187 1735 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 455 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.874016 873 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.433071 563 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 127 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.527559 194 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.060811 1933 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.081081 900 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 148 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.682432 249 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.835821 1720 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.582090 882 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 134 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.798507 241 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.589552 1285 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.686567 1298 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 134 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.805970 242 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.763636 1074 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.881818 867 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 110 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.200000 242 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953x2115-avx0000644000000000000000000001412114705505551020031 0ustar rootroot1.000000 946 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.202960 1138 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1493 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.212994 1811 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1343 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.255398 1686 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1227 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.031785 1266 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1080 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.089815 1177 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953x2115-int160000644000000000000000000003022114705505551020173 0ustar rootroot1.000000 17176 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.283652 22048 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.977801 8493 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.989429 8504 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.244186 9691 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.224101 9672 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.777629 13105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.774950 13101 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.039518 13496 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.239786 13795 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.057334 12164 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.045421 12148 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.556217 12834 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.752048 13097 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.561532 12959 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.593317 12998 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.125509 13651 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.114914 13638 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.772222 11634 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.720370 11578 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.379630 13370 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.866667 12816 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953x3-avx0000644000000000000000000001410114705505551017601 0ustar rootroot1.027027 76 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 74 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.009346 108 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 107 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.166667 105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 90 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.013699 74 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 73 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.134615 59 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 52 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953x3-ref0000644000000000000000000003015714705505551017570 0ustar rootroot1.135048 353 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 311 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.108108 822 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.135135 824 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.932432 143 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.459459 182 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.579439 169 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.915888 205 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.560748 1023 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 16.915888 1810 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.744444 157 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.577778 232 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.088889 998 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.022222 1802 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.794521 1153 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.808219 1154 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.575342 261 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.287671 240 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 20.288462 1055 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 20.288462 1055 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.980769 207 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.557692 185 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953x6343-avx0000644000000000000000000001412114705505551020040 0ustar rootroot1.000000 970 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.325773 1286 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1536 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.076823 1654 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1363 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.081438 1474 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1244 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.137460 1415 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1041 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.226705 1277 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953x6343-int160000644000000000000000000003022614705505551020207 0ustar rootroot1.000000 17456 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.206519 21061 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.893814 8627 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.874227 8608 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.396907 12025 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 18.009278 17469 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.764323 13462 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.750000 13440 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.869141 15159 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.097005 15509 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.006603 12276 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.986060 12248 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.919296 20335 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.856200 18886 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.108521 13819 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.125402 13840 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.864148 16003 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.684887 15780 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.984630 12476 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.492795 13005 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.738713 15343 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.415946 15007 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953xint16-ref0000644000000000000000000003013314705505551020361 0ustar rootroot2.175573 570 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 262 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.096774 102 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.419355 504 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 93 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.397849 130 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.034091 91 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.965909 965 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 88 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.761364 155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.400000 91 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.876923 967 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 65 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.953846 257 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.952381 123 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 15.365079 968 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 63 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.317460 146 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.294118 88 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.838235 737 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 68 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.779412 121 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-953xint32-ref0000644000000000000000000003015014705505551020356 0ustar rootroot3.697543 1956 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 529 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.323077 952 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.792308 623 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 130 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.630769 212 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.011173 2150 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.648045 1011 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 179 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.782123 319 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.905405 1910 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.601351 977 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 148 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.797297 266 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.787671 1429 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.876712 1442 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 146 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.821918 266 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.811475 1197 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.893443 963 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 122 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.180328 266 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/decode-int16-ref0000644000000000000000000003006314705505551017732 0ustar rootroot1.125000 9 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 8 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.000000 3 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.000000 8 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.500000 3 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.000000 4 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.000000 4 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.500000 3 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.500000 3 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.000000 4 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x2393-avx0000644000000000000000000001411614705505551020123 0ustar rootroot1.000000 745 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.151678 858 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1154 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.056326 1219 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1063 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.085607 1154 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 966 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.198758 1158 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 908 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.154185 1048 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x2393-portable0000644000000000000000000003016514705505551021137 0ustar rootroot1.223498 4155 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 3396 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.953020 1455 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.998658 2234 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.275168 2440 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.255034 2425 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.816291 2096 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.668111 3079 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.160312 2493 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.012998 4631 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.948260 2071 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.859831 3040 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.121355 2255 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.068674 4325 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.667702 2577 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.686335 4527 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.125259 4951 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.014493 4844 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.601322 2362 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.962555 4506 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.138767 5574 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.164097 5597 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x2393round-avx0000644000000000000000000001412014705505551021166 0ustar rootroot1.000000 841 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.146254 964 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1302 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.044547 1360 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.036892 1321 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1274 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1107 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.120145 1240 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1009 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.175421 1186 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x2393round-ref0000644000000000000000000003016514705505551021153 0ustar rootroot1.000000 4305 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.090825 4696 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.302021 1095 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.513674 1273 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.325803 1115 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.705113 1434 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.248080 1625 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.618280 2107 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.339478 1744 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.658986 2160 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.156986 1474 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.291994 1646 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.211146 1543 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.670330 2128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.248419 1382 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.433604 1587 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.363144 1509 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.590786 1761 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.243806 1255 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.354807 1367 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.299306 1311 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.608523 1623 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x3-avx0000644000000000000000000001410014705505551017656 0ustar rootroot1.073529 73 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 68 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.117021 105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 94 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.081633 106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 98 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.037037 84 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 81 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 82 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.195122 98 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x3-ref0000644000000000000000000003014614705505551017644 0ustar rootroot1.115512 338 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 303 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.852941 670 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.852941 670 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.191176 149 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.220588 219 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.670213 533 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.265957 871 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.425532 228 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.968085 279 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.948980 485 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.285714 1106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.000000 196 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.612245 256 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.753086 1033 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.975309 889 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.728395 221 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.061728 248 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.463415 940 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.695122 959 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.182927 179 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.658537 218 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x7177-avx0000644000000000000000000001411014705505551020122 0ustar rootroot1.034247 604 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 584 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.010515 961 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 951 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 816 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.011029 825 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 799 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.055069 843 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.048411 693 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 661 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013x7177-portable0000644000000000000000000003016514705505551021144 0ustar rootroot1.170586 3335 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2849 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.611301 1525 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.390411 1980 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.541096 1484 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.184932 1860 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.317560 2204 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.277603 3117 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.231335 2122 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.038906 2890 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.545343 2077 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.868873 3157 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.362745 1928 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.437500 2805 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.807259 3042 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.673342 4533 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.713392 2967 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.066333 3249 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.517398 2986 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.167927 4738 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.608169 3046 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.065053 3348 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013xfreeze3-avx0000644000000000000000000001411014705505551021060 0ustar rootroot1.000000 176 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.301136 229 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.007752 260 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 258 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 218 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.009174 220 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.126263 223 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 198 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.037736 165 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 159 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013xfreeze3-ref0000644000000000000000000003014514705505551021044 0ustar rootroot1.387443 1812 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1306 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.880682 683 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.147727 906 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.517045 443 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.426136 779 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.678295 691 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.546512 1947 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.813953 726 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.158915 1073 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.889908 630 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.151376 1995 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.628440 573 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.720183 1029 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.378788 669 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.606061 912 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.156566 625 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.040404 800 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.352201 533 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.748428 755 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.320755 528 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.402516 700 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1013xint16-ref0000644000000000000000000003014014705505551020435 0ustar rootroot1.000000 457 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.170678 535 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 102 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.245098 535 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.794118 183 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.362745 241 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.583893 385 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.463087 367 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.275168 339 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.774436 369 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 133 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.947368 259 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.864662 381 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 121 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.421488 1019 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.008264 243 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.396694 290 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 106 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.377358 782 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.679245 178 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.141509 227 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x2627-avx0000644000000000000000000001412014705505551020132 0ustar rootroot1.000000 877 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.110604 974 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1410 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.058156 1492 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1270 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.080315 1372 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1215 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.141564 1387 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1071 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.188609 1273 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x2627-portable0000644000000000000000000003016514705505551021153 0ustar rootroot1.200185 5180 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 4316 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.132269 1870 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.236032 2838 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.484607 3056 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.475485 3048 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.843262 2599 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.776596 3915 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.237589 3155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.186525 5903 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.057480 2613 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.184252 4044 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.210236 2807 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.270079 5423 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.707819 3290 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.417284 5367 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.163786 6274 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.081481 6174 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.760037 2956 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.308123 5685 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.602241 7071 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.601307 7070 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x2627round-avx0000644000000000000000000001412114705505551021203 0ustar rootroot1.000000 985 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.110660 1094 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1633 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.034905 1690 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1459 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.037012 1513 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1289 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.148953 1481 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1210 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.128099 1365 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x2627round-ref0000644000000000000000000003016514705505551021167 0ustar rootroot1.000000 5566 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.083004 6028 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.390863 1370 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.609137 1585 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.397970 1377 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.740102 1714 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.219841 1992 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.595224 2605 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.359461 2220 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.701164 2778 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.305689 1905 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.455792 2124 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.313914 1917 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.684030 2457 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.403413 1809 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.555469 2005 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.463926 1887 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.717611 2214 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.262810 1528 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.365289 1652 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.298347 1571 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.591736 1926 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x3-avx0000644000000000000000000001410614705505551017700 0ustar rootroot1.000000 93 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 93 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.044304 165 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 158 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.055556 133 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 126 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.008850 114 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 113 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 106 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.018868 108 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x3-ref0000644000000000000000000003015114705505551017654 0ustar rootroot1.071217 361 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 337 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 8.946237 832 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.182796 947 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.021505 188 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.978495 277 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.196203 663 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.936709 1096 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.784810 282 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.221519 351 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.785714 603 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.253968 1292 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.912698 241 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.619048 330 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.893805 1118 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.893805 1118 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.415929 273 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.734513 309 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.283019 1196 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.188679 1186 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.226415 236 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.566038 272 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x7879-avx0000644000000000000000000001411214705505551020151 0ustar rootroot1.058193 691 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 653 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1085 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.018433 1105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.029834 932 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 905 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 935 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.009626 944 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.169297 815 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 697 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277x7879-portable0000644000000000000000000003016514705505551021171 0ustar rootroot1.149919 4257 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 3702 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.087289 2016 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.966309 2590 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.932619 1915 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.707504 2421 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.529032 2744 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.625806 3934 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.497696 2710 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.393548 3682 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.960221 2679 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.211050 3811 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.898343 2623 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.072928 3686 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.294118 4015 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.298396 5889 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.163636 3893 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.535829 4241 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.744620 4004 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.819225 6147 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.750359 4008 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.456241 4500 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277xfreeze3-avx0000644000000000000000000001411014705505551021074 0ustar rootroot1.000000 172 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.313953 226 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.031348 329 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 319 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 286 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.034965 296 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 246 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 246 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.243902 204 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 164 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277xfreeze3-ref0000644000000000000000000003015014705505551021054 0ustar rootroot1.406822 2227 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1583 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.023256 864 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.627907 1140 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.313953 570 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.715116 983 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.711599 865 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.786834 2484 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.874608 917 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.278997 1365 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.769231 792 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.895105 2544 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.548951 729 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.573427 1308 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.386179 833 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.678862 1151 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.231707 795 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.150407 1021 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.262195 699 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.591463 917 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.091463 671 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.439024 892 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-1277xint16-ref0000644000000000000000000003014014705505551020451 0ustar rootroot1.000000 576 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.152778 664 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 114 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.842105 666 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.026316 231 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.228070 254 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.580645 480 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 186 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.456989 457 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.381720 443 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.546448 466 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 183 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.781421 326 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.213115 405 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 151 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.516556 1286 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.099338 317 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.543046 384 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 153 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.405229 980 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.516340 232 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.725490 264 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x1541-avx0000644000000000000000000001411014705505551020040 0ustar rootroot1.104019 467 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 423 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.185022 807 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 681 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.169463 697 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 596 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.030769 603 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 585 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.202198 547 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 455 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x1541-portable0000644000000000000000000003016414705505551021061 0ustar rootroot1.017522 2439 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2397 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.309693 977 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.323877 1406 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.966903 1678 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.914894 1656 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.036711 1387 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.002937 2045 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.449339 1668 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.440529 3024 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.137584 1274 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.310403 1973 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.505034 1493 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.640940 2766 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.143590 1839 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.818803 2234 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.724786 3349 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.847863 3421 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.134066 1881 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.980220 2266 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.993407 3182 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.975824 3174 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x1541round-avx0000644000000000000000000001411014705505551021110 0ustar rootroot1.107943 544 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 491 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.241915 960 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 773 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.188302 833 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 701 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.010324 685 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 678 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.066298 579 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 543 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x1541round-ref0000644000000000000000000003014614705505551021075 0ustar rootroot1.000000 3024 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.072421 3243 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.384929 680 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.584521 778 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.389002 682 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.788187 878 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.269082 981 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.681759 1300 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.377749 1065 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.686934 1304 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.245364 873 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.405136 985 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.292439 906 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.671897 1172 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.321534 896 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.467552 995 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.373156 931 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.598820 1084 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.294659 703 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.408840 765 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.353591 735 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.637201 889 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x3-avx0000644000000000000000000001407614705505551017623 0ustar rootroot1.000000 70 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 70 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.105263 84 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 76 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.105263 84 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 76 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.103448 64 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 58 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.036364 57 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 55 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x3-ref0000644000000000000000000003014214705505551017571 0ustar rootroot1.000000 170 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.182353 201 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.385714 447 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.685714 468 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.171429 82 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.900000 133 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.328947 329 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.513158 571 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.842105 140 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.250000 171 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.894737 296 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.407895 715 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.539474 117 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.171053 165 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.068966 584 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.068966 584 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.879310 109 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.586207 150 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.181818 615 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.454545 630 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.854545 102 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.272727 125 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x4621-avx0000644000000000000000000001411014705505551020042 0ustar rootroot1.000000 402 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.007463 405 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.115894 674 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 604 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.119318 591 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 528 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 548 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.076642 590 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.080435 497 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 460 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653x4621-portable0000644000000000000000000003016414705505551021063 0ustar rootroot1.167906 2198 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1882 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.534826 1019 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.460199 1391 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.353234 946 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.094527 1244 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.355960 1423 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.418874 2065 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.211921 1336 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.043046 1838 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.554924 1349 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.837121 2026 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.189394 1156 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.234848 1708 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.664234 2008 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.432482 2977 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.332117 1826 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.616788 1982 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.363043 2007 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.180435 3303 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.147826 1908 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.686957 2156 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653xfreeze3-avx0000644000000000000000000001410514705505551021015 0ustar rootroot1.000000 86 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.453488 125 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 188 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.069149 201 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.013605 149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 147 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.008475 119 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 118 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.068966 93 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 87 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653xfreeze3-ref0000644000000000000000000003014214705505551020772 0ustar rootroot1.365798 1206 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 883 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.255814 452 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.883721 592 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.406977 293 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.848837 503 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.430851 457 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.670213 1254 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.553191 480 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.787234 712 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.809524 413 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.816327 1296 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.625850 386 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.598639 676 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.491525 412 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.974576 587 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.406780 402 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.533898 535 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.908046 340 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.379310 468 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.218391 367 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.287356 460 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-653xint16-ref0000644000000000000000000003013314705505551020370 0ustar rootroot1.000000 320 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.103125 353 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 44 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.068182 355 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.477273 109 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.159091 139 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.274336 257 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 113 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.017699 228 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.026549 229 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.572917 247 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 96 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.760417 169 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.260417 217 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 78 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.474359 661 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.910256 149 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.448718 191 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 64 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.000000 512 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.828125 117 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.343750 150 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x1531-avx0000644000000000000000000001411014705505551020037 0ustar rootroot1.046939 513 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 490 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.011321 804 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 795 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.019608 728 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 714 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.006211 648 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 644 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.083499 545 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 503 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x1531-portable0000644000000000000000000003016514705505551021061 0ustar rootroot1.000000 2809 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.007120 2829 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.342857 1148 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.330612 1632 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.942857 1932 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.963265 1942 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.011321 1599 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.893082 2300 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.514465 1999 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.428931 3521 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.106443 1504 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.117647 2226 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.516807 1797 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.473389 3194 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.430124 2209 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.096273 2638 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.124224 3944 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.293478 4053 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.473161 2250 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.339960 2686 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.278330 3661 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.508946 3777 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x1531round-avx0000644000000000000000000001411114705505551021110 0ustar rootroot1.054965 595 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 564 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.189901 1084 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 911 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.161446 964 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 830 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.004071 740 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 737 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003401 590 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 588 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x1531round-ref0000644000000000000000000003015614705505551021075 0ustar rootroot1.000000 3588 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.064103 3818 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.370567 773 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.583333 893 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.363475 769 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.767730 997 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.252470 1141 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.648738 1502 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.360044 1239 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.705818 1554 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.256627 1043 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.479518 1228 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.392771 1156 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.767470 1467 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.360923 1003 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.546811 1140 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.423338 1049 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.736771 1280 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.318027 775 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.455782 856 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.369048 805 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.710884 1006 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x3-avx0000644000000000000000000001407614705505551017623 0ustar rootroot1.081633 53 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 49 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.125000 81 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 72 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.078947 82 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 76 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.015625 65 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 64 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.137255 58 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 51 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x3-ref0000644000000000000000000003014514705505551017574 0ustar rootroot1.204651 259 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 215 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.387755 509 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.408163 510 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.326531 114 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.408163 167 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.708333 411 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.791667 633 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.541667 183 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.000000 216 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.947368 376 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.842105 596 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.118421 161 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.750000 209 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.484375 671 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.484375 671 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.734375 175 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.031250 194 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 14.509804 740 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.372549 733 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.137255 160 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.372549 172 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x4591-avx0000644000000000000000000001411014705505551020050 0ustar rootroot1.075650 455 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 423 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 696 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.031609 718 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 632 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.018987 644 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 670 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.023881 686 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.187629 576 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 485 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761x4591-portable0000644000000000000000000003016514705505551021072 0ustar rootroot1.161217 2557 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2202 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.817967 1192 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.602837 1524 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.626478 1111 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.330969 1409 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.373563 1652 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.385057 2356 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.295977 1598 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.107759 2163 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.688291 1699 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.625000 2291 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.734177 1728 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.281646 2074 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.613433 2421 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.140299 3444 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.183582 2133 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.465672 2322 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.785567 2321 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.490722 3633 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.744330 2301 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.226804 2535 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761xfreeze3-avx0000644000000000000000000001411014705505551021011 0ustar rootroot1.000000 134 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.194030 160 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.034483 210 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 203 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 166 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.012048 168 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 150 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 150 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.227723 124 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 101 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761xfreeze3-ref0000644000000000000000000003014214705505551020772 0ustar rootroot1.372330 1349 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 983 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.895522 522 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.126866 687 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.552239 342 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.305970 577 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.600985 528 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.231527 1468 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.714286 551 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.029557 818 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.867470 476 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.114458 1513 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.662651 442 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.704819 781 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.373333 506 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.533333 680 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.120000 468 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.066667 610 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.227723 427 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.386139 544 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.920792 396 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.257426 531 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-761xint16-ref0000644000000000000000000003013514705505551020372 0ustar rootroot1.000000 357 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.137255 406 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 66 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.196970 409 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.939394 128 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.333333 154 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.341667 281 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 120 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.158333 259 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.366667 284 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.561905 269 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.885714 198 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.200000 231 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 102 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.509804 766 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.735294 177 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.156863 220 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 72 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.236111 593 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.888889 136 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.444444 176 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x1723-avx0000644000000000000000000001411014705505551020050 0ustar rootroot1.088968 612 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 562 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.055188 956 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 906 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 843 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.174377 990 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 786 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.049618 825 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.118729 669 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 598 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x1723-portable0000644000000000000000000003016514705505551021072 0ustar rootroot1.009100 3105 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 3077 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.174377 1222 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.133452 1761 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.880783 2181 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.854093 2166 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.986755 1800 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.848786 2581 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.459161 2228 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.566225 4137 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.994069 1681 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.941874 2480 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.653618 2237 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.684460 3949 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.986005 2347 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.561069 2799 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.613232 4412 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.689567 4472 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.779264 2260 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.566890 2731 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.663880 3985 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.705686 4608 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x1723round-avx0000644000000000000000000001411314705505551021123 0ustar rootroot1.018576 658 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 646 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.214012 1265 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1042 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.178914 1107 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 939 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 873 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.065292 930 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 711 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 711 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x1723round-ref0000644000000000000000000003016014705505551021101 0ustar rootroot1.000000 3919 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.071957 4201 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.396285 902 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.668731 1078 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.368421 884 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.806502 1167 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.279271 1333 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.679463 1750 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.383877 1442 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.760077 1834 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.286475 1208 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.447284 1359 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.353568 1271 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.777423 1669 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.348225 1177 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.557847 1360 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.466208 1280 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.719359 1501 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.281294 911 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.393812 991 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.343179 955 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.656821 1178 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x3-avx0000644000000000000000000001410614705505551017623 0ustar rootroot1.071429 90 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 84 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.041322 126 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 121 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.075630 128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 119 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.070796 121 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 113 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.040984 127 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 122 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x3-ref0000644000000000000000000003013714705505551017603 0ustar rootroot1.089147 281 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 258 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.761905 568 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.797619 571 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.416667 119 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.154762 181 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.743802 453 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.834711 706 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.520661 184 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.975207 239 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.428571 408 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.605042 667 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.344538 160 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.848739 220 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 7.752212 876 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.672566 754 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.451327 164 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.787611 202 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.819672 832 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.680328 815 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.163934 142 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.426230 174 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x5167-avx0000644000000000000000000001411014705505551020056 0ustar rootroot1.045175 509 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 487 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.035366 849 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 820 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.076369 747 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 694 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 713 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.022440 729 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.158790 613 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 529 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857x5167-portable0000644000000000000000000003016514705505551021100 0ustar rootroot1.163407 2855 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2454 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.770021 1349 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.558522 1733 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.562628 1248 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.221766 1569 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.298780 1885 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.248780 2664 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.147561 1761 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.930488 2403 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.561960 1778 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.714697 2578 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.293948 1592 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.302594 2292 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.705470 2642 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.496494 3919 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.426367 2443 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.729313 2659 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.939509 2613 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.669187 4057 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.007561 2649 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.245747 2775 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857xfreeze3-avx0000644000000000000000000001411014705505551021017 0ustar rootroot1.000000 116 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.008621 117 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 232 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.004310 233 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 185 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.010811 187 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 154 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 154 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.256637 142 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 113 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857xfreeze3-ref0000644000000000000000000003014314705505551021001 0ustar rootroot1.362910 1536 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1127 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.086207 590 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.646552 771 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.310345 384 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.741379 666 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.538793 589 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.107759 1649 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.633621 611 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.926724 911 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.891892 535 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.221622 1706 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.664865 493 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.735135 876 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.694805 569 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.980519 767 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.480519 536 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.467532 688 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.336283 490 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.442478 615 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.044248 457 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.424779 613 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-857xint16-ref0000644000000000000000000003013714705505551020402 0ustar rootroot1.000000 400 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.137500 455 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 115 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.982609 458 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.269565 146 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.486957 171 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.526718 331 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 131 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.290076 300 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.229008 292 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.724138 316 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 116 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.905172 221 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.241379 260 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 122 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.081967 864 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.655738 202 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.008197 245 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 133 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.007519 666 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.142857 152 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.345865 179 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x2115-avx0000644000000000000000000001411414705505551020045 0ustar rootroot1.000000 702 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.185185 832 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1107 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.004517 1112 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1020 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.035294 1056 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 934 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.068522 998 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 781 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.124200 878 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x2115-portable0000644000000000000000000003016514705505551021063 0ustar rootroot1.220408 3887 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 3185 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.962963 1378 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.049858 2141 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.277778 2301 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.454416 2425 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.807588 2001 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.637760 2920 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.121951 2349 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.862692 4276 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.924510 1963 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.700000 2754 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.073529 2115 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.807843 3884 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.605996 2434 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.380086 4091 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.935760 4610 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.843683 4524 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.847631 2224 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.638924 4404 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.734955 5260 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.797695 5309 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x2115round-avx0000644000000000000000000001411714705505551021120 0ustar rootroot1.000000 766 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.100522 843 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.012077 1257 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1242 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001723 1163 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1161 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1002 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.068862 1071 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 879 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.161547 1021 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x2115round-ref0000644000000000000000000003016514705505551021077 0ustar rootroot1.000000 4085 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.087638 4443 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.372063 1051 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.556136 1192 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.366841 1047 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.754569 1344 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.231884 1530 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.615942 2007 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.337359 1661 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.648953 2048 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.198105 1391 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.356589 1575 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.256675 1459 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.627046 1889 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.329341 1332 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.515968 1519 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.433134 1436 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.672655 1676 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.269625 1116 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.379977 1213 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.341297 1179 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.602958 1409 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x3-avx0000644000000000000000000001410014705505551017612 0ustar rootroot1.042857 73 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 70 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.118280 104 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 93 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.070707 106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 99 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.116883 86 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 77 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.076923 84 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 78 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x3-ref0000644000000000000000000003014314705505551017575 0ustar rootroot1.000000 237 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.084388 257 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9.057143 634 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.971429 628 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.942857 136 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.985714 209 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.258065 489 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.344086 776 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.365591 220 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.838710 264 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.444444 440 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.474747 740 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.878788 186 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.545455 252 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.883117 838 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.675325 976 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.857143 220 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.077922 237 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.115385 789 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.717949 914 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.461538 192 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.679487 209 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x6343-avx0000644000000000000000000001411014705505551020050 0ustar rootroot1.115619 550 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 493 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.066425 883 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 828 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.066667 784 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 735 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.112376 782 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 703 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.254083 691 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 551 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953x6343-portable0000644000000000000000000003016514705505551021072 0ustar rootroot1.160624 3201 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2758 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.054767 1506 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.912779 1929 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.922921 1441 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.634888 1792 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.504831 2074 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.562802 2950 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.378019 1969 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.263285 2702 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.678912 1969 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.919728 2881 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.551020 1875 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.527891 2593 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.226174 2971 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 6.277383 4413 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.965861 2788 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.335704 3048 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.341198 2943 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 8.961887 4938 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.319419 2931 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 6.012704 3313 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953xfreeze3-avx0000644000000000000000000001411014705505551021014 0ustar rootroot1.000000 165 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.084848 179 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.007905 255 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 253 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 205 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.019512 209 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 186 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 186 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.088710 135 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 124 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953xfreeze3-ref0000644000000000000000000003014414705505551020777 0ustar rootroot1.371499 1665 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1214 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.951515 652 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.054545 834 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.581818 426 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.460606 736 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.588933 655 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.324111 1853 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.695652 682 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.996047 1011 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.892683 593 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 9.253659 1897 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.663415 546 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.741463 972 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 3.419355 636 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.612903 858 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.161290 588 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.069892 757 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4.161290 516 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.500000 682 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.032258 500 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5.338710 662 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-953xint16-ref0000644000000000000000000003013714705505551020377 0ustar rootroot1.000000 437 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.148741 502 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 118 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.262712 503 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.449153 171 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.889831 223 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.496503 357 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 143 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.356643 337 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.370629 339 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.552239 342 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 134 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.828358 245 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.171642 291 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 126 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 7.603175 958 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.817460 229 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.158730 272 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 126 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.849206 737 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.365079 172 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.571429 198 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/encode-int16-ref0000644000000000000000000003006314705505551017744 0ustar rootroot1.000000 7 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 7 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 1 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.500000 5 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.500000 5 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 2 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/hash-sha512-ref0000644000000000000000000003021314705505551017471 0ustar rootroot1.000771 68763 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 68710 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000727 41283 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000315 41266 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 41253 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001261 41305 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 43752 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000823 43788 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.003406 43901 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000846 43789 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000185 43178 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001042 43215 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000139 43176 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 43170 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001185 38862 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002164 38900 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000696 38843 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 38816 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 42683 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001335 42740 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000328 42697 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000679 42712 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/hashblocks-sha512-avx20000644000000000000000000001413414705505551020777 0ustar rootroot1.000592 40541 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 40517 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 42696 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001429 42757 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000543 42365 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 42342 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 38039 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001709 38104 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 41859 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.003822 42019 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/hashblocks-sha512-compact0000644000000000000000000003021314705505551021541 0ustar rootroot1.008866 68048 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 67450 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.244367 50418 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.282054 51945 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.203643 48768 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.231409 49893 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.564268 66788 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.680696 71759 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.499719 64032 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.728757 73811 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.425818 60372 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.678334 71064 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.411554 59768 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.702045 72068 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.590105 60486 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.600489 60881 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.493178 56799 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.568259 59655 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.257651 52644 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.298884 54370 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.246423 52174 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.241358 51962 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/kem-sntrup1013-factored0000644000000000000000000003021714705505551021176 0ustar rootroot1.000473 2668226 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 2666964 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003140 65810 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.005305 65952 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 65604 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002927 65796 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002435 95911 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002749 95941 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 95678 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000167 95694 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 87656 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000456 87696 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000456 87696 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000399 87691 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003458 88204 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001524 88034 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 87900 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000626 87955 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003796 66105 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001078 65926 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000972 65919 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 65855 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/kem-sntrup1277-factored0000644000000000000000000003023314705505551021210 0ustar rootroot1.000000 4188343 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001713 4195518 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000614 81433 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 81383 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.003158 81640 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003662 81681 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000278 122475 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 122441 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001233 122592 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003234 122837 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001917 108198 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000991 108098 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 107991 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001195 108120 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002940 108481 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001082 108280 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 108163 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000619 108230 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.004098 81095 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 80764 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001275 80867 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000050 80768 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/kem-sntrup653-factored0000644000000000000000000003021714705505551021127 0ustar rootroot1.000093 1149917 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1149810 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000847 44896 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001293 44916 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 44858 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003901 45033 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000077 64892 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 64887 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.005086 65217 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.005440 65240 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001802 58914 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 58808 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002415 58950 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003554 59017 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001736 60605 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.003851 60733 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 60500 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000496 60530 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003177 45474 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002978 45465 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 45330 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000728 45363 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/kem-sntrup761-factored0000644000000000000000000003021714705505551021127 0ustar rootroot1.000133 1530773 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1530569 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 47053 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001636 47130 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.005228 47299 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.006206 47345 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001965 68841 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002911 68906 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 68706 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003187 68925 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000389 61715 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 61691 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000584 61727 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001702 61796 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.004611 63177 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.004023 63140 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 62887 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002210 63026 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002745 47851 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002221 47826 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 47720 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002619 47845 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/kem-sntrup857-factored0000644000000000000000000003021714705505551021135 0ustar rootroot1.000333 1924167 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 1923527 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000147 61195 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 61186 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 61186 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.007992 61675 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000022 89395 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000123 89404 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 89393 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003300 89688 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 78202 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000294 78225 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001151 78292 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001394 78311 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.004073 82082 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002826 81980 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 81749 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002581 81960 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.002579 60637 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000529 60513 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 60481 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003753 60708 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/kem-sntrup953-factored0000644000000000000000000003021714705505551021132 0ustar rootroot1.000000 2364425 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000004 2364435 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000188 63918 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001377 63994 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 63906 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001784 64020 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003304 94426 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002189 94321 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 94115 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001509 94257 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003510 82917 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002130 82803 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 82627 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000085 82634 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003026 85864 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.001343 85720 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 85605 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.001402 85725 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.003865 64666 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.004440 64703 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.006799 64855 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 64417 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/sort-int32-avx20000644000000000000000000001413014705505551017575 0ustar rootroot1.000000 9109 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.095620 9980 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 14596 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.022129 14919 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 12469 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.008341 12573 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11049 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.032763 11411 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 9090 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.053465 9576 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/sort-int32-portable40000644000000000000000000003026514705505551020620 0ustar rootroot1.111859 240295 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 216120 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.537820 105098 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.615326 105804 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.360742 103485 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.467560 104458 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.247054 164162 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.227117 163871 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 11.337147 165477 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.333927 165430 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 11.822921 147420 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.375571 129373 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 10.933275 136327 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10.926057 136237 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.428636 148373 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.399765 148054 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 13.898724 153567 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13.902163 153605 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 12.150495 110448 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 12.278438 111611 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 14.902530 135464 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15.656986 142322 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/sort-uint32-useint320000644000000000000000000003020714705505552020562 0ustar rootroot1.000486 218202 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 218096 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 9453 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.018618 9629 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.010261 9550 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.075214 10164 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 15137 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.033758 15648 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.023386 15491 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.054833 15967 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 12949 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.032049 13364 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.036065 13416 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.075450 13926 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 11611 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.039445 12069 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.004995 11669 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.075790 12491 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 9557 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.038401 9924 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.002930 9585 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.077326 10296 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1039-avx0000644000000000000000000001407714705505552017500 0ustar rootroot1.000000 48 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.250000 60 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.117021 105 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 94 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 90 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.011111 91 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.350877 77 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 57 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.441860 62 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 43 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1039-ref0000644000000000000000000003015214705505552017446 0ustar rootroot1.027397 450 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 438 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.729167 83 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.333333 160 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.395833 1075 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.395833 1075 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.265957 119 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.968085 279 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.617021 152 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.234043 210 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.288889 116 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.066667 276 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.277778 115 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.977778 178 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.140351 122 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.649123 208 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.578947 1971 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 36.140351 2060 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.372093 102 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.813953 207 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 43.976744 1891 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 47.162791 2028 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1184-avx0000644000000000000000000001410014705505552017464 0ustar rootroot1.177778 53 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 45 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 101 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.049505 106 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 88 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.034091 91 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 81 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.012346 82 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.158730 73 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 63 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1184-ref0000644000000000000000000003015314705505552017450 0ustar rootroot1.006186 488 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 485 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.266667 102 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 4.177778 188 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 27.066667 1218 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 27.133333 1221 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.287129 130 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.049505 308 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.346535 136 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.108911 213 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.363636 120 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.443182 303 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.431818 126 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.363636 208 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.913580 155 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.790123 226 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 27.765432 2249 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.024691 2270 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.111111 133 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.571429 225 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 33.238095 2094 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 35.968254 2266 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1349-avx0000644000000000000000000001410214705505552017471 0ustar rootroot1.642857 92 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 56 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 127 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.007874 128 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 110 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.045455 115 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.305556 94 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 72 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.647059 84 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 51 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1349-ref0000644000000000000000000003015214705505552017452 0ustar rootroot1.015332 596 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 587 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.642857 92 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.821429 214 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 24.732143 1385 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25.107143 1406 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.070866 136 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.787402 354 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.456693 185 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.062992 262 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.218182 134 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.145455 346 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.300000 143 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.009091 221 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.902778 137 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.638889 262 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 37.180556 2677 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 37.708333 2715 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.215686 113 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 5.000000 255 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 49.941176 2547 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 53.333333 2720 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1455-avx0000644000000000000000000001410514705505552017472 0ustar rootroot1.000000 67 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.641791 110 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 127 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.078740 137 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 112 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.026786 115 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 101 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.039604 105 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.047059 89 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 85 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1455-ref0000644000000000000000000003015314705505552017451 0ustar rootroot1.014975 610 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 601 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.985075 133 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.328358 223 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.597015 1514 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.432836 1503 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.307087 166 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.110236 395 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.566929 199 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.204724 280 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.339286 150 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.392857 380 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.383929 155 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.169643 243 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.990099 201 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.980198 301 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.980198 2927 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 28.980198 2927 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.035294 173 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.305882 281 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.294118 2915 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 34.317647 2917 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1847-avx0000644000000000000000000001410714705505552017501 0ustar rootroot1.000000 84 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.535714 129 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 151 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.046358 158 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 136 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.066176 145 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 127 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.055118 134 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.315315 146 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 111 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-1847-ref0000644000000000000000000003015314705505552017456 0ustar rootroot1.013423 755 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 745 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.011905 169 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.500000 294 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 22.404762 1882 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22.678571 1905 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.357616 205 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.178808 480 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.536424 232 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.245033 339 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.360294 185 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.463235 471 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.404412 191 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 2.308824 314 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.913386 243 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.653543 337 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 28.874016 3667 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 29.275591 3718 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.981982 220 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.360360 373 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 30.360360 3370 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 33.477477 3716 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-897-avx0000644000000000000000000001407614705505552017432 0ustar rootroot1.000000 54 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.111111 60 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.012048 84 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 83 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.000000 84 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.011905 85 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.014706 69 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 68 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.122449 55 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 49 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/priority/verify-897-ref0000644000000000000000000003014414705505552017402 0ustar rootroot1.002674 375 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: aarch64-unknown-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.000000 374 arm64 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20241008 a72-pi4b gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.351852 73 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.740741 148 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 17.277778 933 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17.259259 932 amd64 756e65476c65746e49656e69687432316e654720746e492052286c656f432029542865726920294d32312d330030303100000000000000000000000000090675071008007ffafbbfbfebfbff00000002239c27eb98c007bcfc1844100000000000000000000001212c1008000000020700000000000000000000000000000000 20241008 goldencove-alder gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.156627 96 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.783133 231 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.228916 102 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.987952 165 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452035373231203376202e332040484730350000007a00000000000306c3061008007ffafbffbfebfbff00000000000027ab000000009c0006000000000000000000000000212c1008000000000700000000000000000000000000000000 20241008 haswell-titan0 gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.119048 94 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.761905 232 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Ubuntu clang version 14.0.0-1ubuntu1.1; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 1.226190 103 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.773810 149 amd64 756e65476c65746e49656e6965746e492952286c6f6558202952286e555043202d33452030323231203576202e332040484730300000007a00000000000506e3001008007ffafbffbfebfbff00000000029c67af00000000bc002e000000000000000000000001212c1008000000001f00000000000000000000000000000000 20241008 skylake-samba gcc -Wall -fPIC -fwrapv -O3; gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0; Copyright (C) 2021 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.323529 90 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 2.529412 172 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 25.191176 1713 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 25.558824 1738 amd64 68747541444d416369746e6520444d41435950453437372034362032726f432d725020657365636f20726f732020202020202020202020200020202000830f103e8008007ef8320b178bfbff00000000219c91a9004000040000000000830f104000000075c237ff2fd3fbff0000000700000000000000000000000000000000 20241008 zen2-rome0 gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 1.551020 76 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 3.510204 172 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne clang -Wall -fPIC -fwrapv -Qunused-arguments -O2; Debian clang version 11.0.1-2; Target: x86_64-pc-linux-gnu; Thread model: posix; InstalledDir: /usr/bin 34.040816 1668 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3 -mmmx -msse -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mbmi -mbmi2 -mpopcnt -mavx2 -mfma -mtune=skylake; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 35.612245 1745 amd64 68747541444d416369746e6520444d41657a79522035206e204f52503035363569772047522068746f6564617247206e69687061202073630020202000a50f00020c08007ed8320b178bfbff00000000219c97a90040069c0000001000a50f002000000075c237ff2fd3fbff0000020700000000000000000000000000000000 20241008 zen3-cezanne gcc -Wall -fPIC -fwrapv -O3; gcc (Debian 10.2.1-6) 10.2.1 20210110; Copyright (C) 2020 Free Software Foundation, Inc.; This is free software; see the source for copying conditions. There is NO; warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libntruprime-20241021/project/0000755000000000000000000000000014705505552014637 5ustar rootrootlibntruprime-20241021/project/library0000644000000000000000000000001214705505552016217 0ustar rootrootntruprime libntruprime-20241021/project/namespace0000777000000000000000000000000014705505552020102 2libraryustar rootrootlibntruprime-20241021/scripts-build/0000755000000000000000000000000014705505552015755 5ustar rootrootlibntruprime-20241021/scripts-build/checkinsns0000755000000000000000000001771414705505552020045 0ustar rootroot#!/usr/bin/env python3 import os import sys import subprocess host = sys.argv[1] def warn(w): sys.stderr.write('warning: %s\n' % w) fresult.write('%s\n' % w) # ===== setting up capstone def capstone_disassembler(): try: import capstone except: warn('this script does not know how to check instruction-set extensions without python3-capstone') sys.exit(0) # XXX: for arm32 should trace from entry points to see thumb vs. arm capstoneopts = { 'amd64': ('CS_ARCH_X86','CS_MODE_64','CS_MODE_LITTLE_ENDIAN'), 'arm32': ('CS_ARCH_ARM','CS_MODE_THUMB','CS_MODE_LITTLE_ENDIAN'), 'arm64': ('CS_ARCH_ARM64','CS_MODE_LITTLE_ENDIAN'), 'm68k': ('CS_ARCH_M68K','CS_MODE_M68K_040','CS_MODE_BIG_ENDIAN'), 'mips32big': ('CS_ARCH_MIPS','CS_MODE_MIPS32','CS_MODE_BIG_ENDIAN'), 'mips32little': ('CS_ARCH_MIPS','CS_MODE_MIPS32','CS_MODE_LITTLE_ENDIAN'), 'mips64big': ('CS_ARCH_MIPS','CS_MODE_MIPS64','CS_MODE_BIG_ENDIAN'), 'mips64little': ('CS_ARCH_MIPS','CS_MODE_MIPS64','CS_MODE_LITTLE_ENDIAN'), 'mipsn32big': ('CS_ARCH_MIPS','CS_MODE_MIPS32','CS_MODE_BIG_ENDIAN'), 'mipsn32little':('CS_ARCH_MIPS','CS_MODE_MIPS32','CS_MODE_LITTLE_ENDIAN'), 'ppc32big': ('CS_ARCH_PPC','CS_MODE_32','CS_MODE_BIG_ENDIAN'), 'ppc32little': ('CS_ARCH_PPC','CS_MODE_32','CS_MODE_LITTLE_ENDIAN'), 'ppc64big': ('CS_ARCH_PPC','CS_MODE_64','CS_MODE_BIG_ENDIAN'), 'ppc64little': ('CS_ARCH_PPC','CS_MODE_64','CS_MODE_LITTLE_ENDIAN'), 'riscv32': ('CS_ARCH_RISCV','CS_MODE_RISCV64','CS_MODE_RISCVC'), 'riscv64': ('CS_ARCH_RISCV','CS_MODE_RISCV32','CS_MODE_RISCVC'), 's390': ('CS_ARCH_SYSZ','CS_MODE_BIG_ENDIAN'), 's390x': ('CS_ARCH_SYSZ','CS_MODE_BIG_ENDIAN'), 'sparc32': ('CS_ARCH_SPARC','CS_MODE_BIG_ENDIAN'), 'sparc64': ('CS_ARCH_SPARC','CS_MODE_V9','CS_MODE_BIG_ENDIAN'), 'x86': ('CS_ARCH_X86','CS_MODE_32','CS_MODE_LITTLE_ENDIAN'), } if host not in capstoneopts: warn(f'this script does not know how to check instruction-set extensions for {host}') sys.exit(0) try: bigendian = False capstonearch = capstone.__getattribute__(capstoneopts[host][0]) capstonemode = 0 for opt in capstoneopts[host][1:]: if opt == 'CS_MODE_BIG_ENDIAN': bigendian = True capstonemode |= capstone.__getattribute__(opt) disassembler = capstone.Cs(capstonearch,capstonemode) disassembler.detail = True except Exception as e: warn(f'failed to initialize python3-capstone: {e}') sys.exit(0) # script checks these overrides against objdump mnemonics # and against capstone mnemonics capstoneoverrides = { 'amd64':{ 'xgetbv':{'xsave'}, 'vpmadd52huq':{'avx512vl','avx512ifma'}, 'vpmadd52luq':{'avx512vl','avx512ifma'}, }, 'arm64':{ 'aese':{'aes'}, 'aesd':{'aes'}, 'aesmc':{'aes'}, 'aesimc':{'aes'}, 'sha1c':{'sha1'}, 'sha1p':{'sha1'}, 'sha1m':{'sha1'}, 'sha1h':{'sha1'}, 'sha1u0':{'sha1'}, 'sha1u1':{'sha1'}, 'sha256h':{'sha256'}, 'sha256h2':{'sha256'}, 'sha256u0':{'sha256'}, 'sha256u1':{'sha256'}, 'sha512h':{'sha512'}, 'sha512h2':{'sha512'}, 'sha512u0':{'sha512'}, 'sha512u1':{'sha512'}, }, } capstonealiases = { 'amd64':{ 'int':'interrupt', 'sse1':'sse', 'novlx':'avx', 'vlx':'avx512vl', 'dqi':'avx512dq', 'bmi':'bmi1', 'avx512':'avx512f', } } # base: instruction sets that can be assumed # (see also cross-arch list below) # script checks base after applying aliases capstonebase = { 'amd64':{'fpu','cmov','sse','sse2','mode64'}, 'arm32':{'int','v5t','v6','v6m','thumb','thumb1only','thumb2','T2EXTRACTPACK','THUMB2DSP','mulops'}, 'arm64':{'neon','fparmv8'}, 'mips64big':{'stdenc','mips3','mips32','mips4_32','mips32r2','mips64r2','notmips32r6','notmips64r6','notinmicromips'}, 'mips64little':{'stdenc','mips3','mips32','mips4_32','mips32r2','mips64r2','notmips32r6','notmips64r6','notinmicromips'}, 'ppc64big':{'mode32','vsx','altivec'}, 'ppc64little':{'mode32','vsx','altivec','p8altivec','p8vector'}, 's390':{'distinctops','highword'}, 's390x':{'distinctops','highword'}, 'x86':{'mode32','fpu','cmov','not64bitmode'}, } overrides = capstoneoverrides.get(host,{}) aliases = capstonealiases.get(host,{}) base = capstonebase.get(host,set()) for ext in 'call','ret','return','jump','branch_relative','privilege','interrupt': base.add(ext) extrules = aliases,base return disassembler,bigendian,overrides,extrules # ===== main work carch = {} for c in os.listdir('compilerarch'): with open('compilerarch/%s' % c) as f: carch[c] = f.read().strip() if carch[c] == 'default': carch[c] = host assert carch[c].split('+')[0] == host def checkext(obj,archlist,ext,extrules,insnstr): aliases,base = extrules if ext in aliases: ext = aliases[ext] extset.add(ext) if ext in base: return for arch in archlist: if ext not in arch.split('+')[1:]: warn(f'{obj}: {arch} instruction set does not allow {ext} for {insnstr}') def dir2objs(d): objs = [d+'/'+fn for fn in os.listdir(d) if fn.endswith('.o')] if os.path.exists(d+'/dependencies'): with open(d+'/dependencies') as f: for line in f: objs += dir2objs(line.strip()) return objs def doit(d): disassembler,bigendian,overrides,extrules = capstone_disassembler() objs = dir2objs(d) if len(objs) == 0: return if len(d.split('/')) < 4: archlist = [host] # no instruction-set extensions allowed else: compiler = d.split('/')[3] if compiler in carch: archlist = [carch[compiler]] else: archlist = [] with open(d+'/compilerdirs') as f: for arch in f: archlist += [carch[arch.strip()]] try: # XXX: think about how to safely exclude glink section on ppc64 p = subprocess.Popen(['objdump','-d']+objs,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,universal_newlines=True) out,err = p.communicate() except Exception as e: warn('objdump exception: %s' % e) return if err: warn('objdump error: %s' % err) return if p.returncode: warn('objdump failure: %s' % p.returncode) return obj = 'unknown-object-file' todo = b'' # on x86 and amd64, objdump can split insns across lines # and todo accumulates instruction bytes not yet processed for line in out.splitlines(): if len(objs) > 0 and line.startswith('%s:'%objs[0]): obj,objs = objs[0],objs[1:] if '\t' in line: line = line[line.index('\t')+1:] if '#' in line: line = line[:line.index('#')] if '<' in line: line = line[:line.index('<')] for x in line.split(): try: x = bytes.fromhex(x) except: if x in overrides: for ext in overrides[x]: checkext(obj,archlist,ext,extrules,f'{x} (from objdump)') break if not bigendian: x = bytes(reversed(bytearray(x))) todo += x for insn in disassembler.disasm(todo,0x1000): assert todo.startswith(insn.bytes) todo = todo[len(insn.bytes):] if insn.mnemonic in overrides: for ext in overrides[insn.mnemonic]: checkext(obj,archlist,ext,extrules,f'{insn.mnemonic} {insn.op_str} (from capstone)') else: for g in insn.groups: checkext(obj,archlist,insn.group_name(g),extrules,f'{insn.mnemonic} {insn.op_str} (from capstone)') if host not in ('x86','amd64'): if todo != b'': warn(f'capstone disassembly failed, could be capstone bug: {line}') todo = b'' if len(todo) > 32: warn(f'capstone disassembly has built up more than 32 bytes, resetting') todo = b'' for d in sys.argv[2:]: d = d.strip() extset = set() with open('%s/result-insns'%d,'w') as fresult: doit(d) with open('%s/info-insns'%d,'w') as finfo: for ext in sorted(extset): finfo.write(ext+'\n') libntruprime-20241021/scripts-build/checknamespace0000755000000000000000000000700414705505552020636 0ustar rootroot#!/usr/bin/env python3 import os import sys import subprocess topnamespace = sys.argv[1] def warn(w): sys.stderr.write('warning: %s\n' % w) fwarn.write('%s\n' % w) done = set() def doit(d): if d in done: return done.add(d) if os.path.exists(d+'/dependencies'): with open(d+'/dependencies') as f: for line in f: doit(line.strip()) objs = [d+'/'+fn for fn in os.listdir(d) if fn.endswith('.o')] if len(objs) == 0: return if len(objs) == 1: obj = objs[0] namespace = topnamespace dsplit = d.split('/') if len(dsplit) >= 4: for dpart in dsplit: namespace += '_'+dpart.replace('-','').replace('_','') obj2D = {} obj2U = {} try: p = subprocess.Popen(['nm','-ApP']+objs,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,universal_newlines=True) out,err = p.communicate() except Exception as e: warn('nm failure: %s' % e) return if err: warn('nm error: %s' % err) return if p.returncode: warn('nm failure: %s' % p.returncode) return for line in out.splitlines(): line = line.split() if len(line) < 3: continue if not line[0].endswith(':'): continue if line[2].startswith('b'): continue if line[2].startswith('d'): continue if line[2].startswith('r'): continue if line[2].startswith('s'): continue if line[2].startswith('t'): continue obj = line[0][:-1] if obj not in obj2U: obj2U[obj] = [] obj2D[obj] = [] symbol = line[1] if symbol.startswith('__odr_asan.'): symbol = symbol[11:] if symbol.startswith('__x86.get_pc_thunk.'): continue if symbol.startswith('__sparc.get_pc_thunk.'): continue if symbol.startswith(f'_{topnamespace}_'): symbol = symbol[1:] ssplit = symbol.split('_') if len(ssplit) >= 6 and ssplit[0] == topnamespace: ssplit = '_'.join(ssplit[5:]) if line[2].startswith('U'): obj2U[obj] += [ssplit] if line[2].startswith('D'): obj2D[obj] += [ssplit] if line[2].startswith('R'): obj2D[obj] += [ssplit] if line[2].startswith('S'): obj2D[obj] += [ssplit] if line[2].startswith('T'): obj2D[obj] += [ssplit] if line[2].startswith('U'): continue if symbol == namespace: continue if symbol.startswith(namespace+'_'): continue warn('%s: symbol %s outside namespace' % (obj,symbol)) for fn in os.listdir(d): if fn.endswith('.c') or fn.endswith('.S'): obj = d+'/'+fn[:-2]+'.o' if obj not in obj2U: continue fnD = [] fnU = [] with open(d+'/'+fn) as f: for line in f: line = line.split() if line[:3] == ['//','linker','define']: for x in line[3:]: fnD += [x] if line[:3] == ['//','linker','use']: for x in line[3:]: fnU += [x] if len(fnD) == 0 and len(fnU) == 0: continue fnD = set(fnD) fnU = set(fnU) objD = set(obj2D[obj]) objU = set(obj2U[obj]) for s in sorted(fnD): if s not in objD: warn('%s: linker define %s in %s but not in object file' % (d,s,fn)) for s in sorted(fnU): if s not in objU: warn('%s: linker use %s in %s but not in object file' % (d,s,fn)) for s in sorted(objD): if s not in fnD: warn('%s: linker define %s not in %s but in object file' % (d,s,fn)) for s in sorted(objU): if s not in fnU: warn('%s: linker use %s not in %s but in object file' % (d,s,fn)) for d in sys.argv[2:]: d = d.strip() with open('%s/result-namespace'%d,'w') as fwarn: doit(d) libntruprime-20241021/scripts-build/compile0000755000000000000000000000202714705505552017334 0ustar rootroot#!/bin/sh opic="$1"; shift base="$1"; shift ext="$1"; shift projectnamespace="$1"; shift cd "$opic" || exit 1 compiler=`cat compiler` opi=`dirname $opic` op=`dirname $opi` o=`dirname $op` p=`basename $op` iunder=`basename $opi | tr -d _-` c=`basename $opic` namespace=${projectnamespace}_${o}_${p}_${iunder}_${c} shared_namespace=${projectnamespace}_${o}_${p}_${iunder}_shared if $compiler \ -I ../../../../include-build \ -fvisibility=hidden \ -D"CRYPTO_NAMESPACE(name)=${namespace}_##name" \ -D"_CRYPTO_NAMESPACE(name)=_${namespace}_##name" \ -D"CRYPTO_SHARED_NAMESPACE(name)=${shared_namespace}_##name" \ -D"_CRYPTO_SHARED_NAMESPACE(name)=_${shared_namespace}_##name" \ -D"CRYPTO_ALIGN(n)=__attribute__((aligned(n)))" \ -c "$base.$ext" \ > "result-compile-$base" 2>&1 then cat "result-compile-$base" else cat "result-compile-$base" case "$?" in 111) # maybe someday compilers can be convinced # to use exit code 111 for temporary failures exit 111 ;; *) : > "$base.o" esac fi libntruprime-20241021/scripts-build/compiledefault0000755000000000000000000000021314705505552020674 0ustar rootroot#!/bin/sh dir="$1"; shift base="$1"; shift ext="$1"; shift scripts/cdcompile "$dir" \ -fvisibility=hidden \ "$@" \ -c "$base.$ext" libntruprime-20241021/scripts-build/compiledimplementations0000755000000000000000000000063214705505552022631 0ustar rootroot#!/usr/bin/env python3 import os import sys def ok(d): for fn in os.listdir(d): if fn.endswith('.o'): if os.stat(d+'/'+fn).st_size == 0: return False if os.path.exists(d+'/dependencies'): with open(d+'/dependencies') as f: for line in f: if not ok(line.strip()): return False return True for line in sys.stdin: d = line.strip() if ok(d): print(d) libntruprime-20241021/scripts-build/dispatch0000755000000000000000000002053314705505552017505 0ustar rootroot#!/usr/bin/env python3 import os import sys import re def cstring(x): return '"%s"' % x.replace('\\','\\\\').replace('"','\\"').replace('\n','\\n') def sanitize(x): x = x.replace('-','').replace('_','') return ''.join(c if c in '0123456789abcdefghijklmnopqrstuvwxyz' else '_' for c in x) exports = {} prototypes = {} ifunc = False with open('dispatch/ifunc') as f: for line in f: if line.strip() == '1': ifunc = True with open('api') as f: for line in f: line = line.strip() if line.startswith('crypto_'): continue if line.startswith('#define '): continue if line.endswith(');'): fun,args = line[:-2].split('(') rettype,fun = fun.split() fun = fun.split('_') o = fun[1] assert fun[0] == 'crypto' if o not in exports: exports[o] = [] exports[o] += ['_'.join(fun[1:])] if o not in prototypes: prototypes[o] = [] prototypes[o] += [(rettype,fun,args)] goal = sys.argv[1] assert goal in ('auto','manual') o = sys.argv[2] p = sys.argv[3] host = sys.argv[4] namespace = sys.argv[5] impls = [] selected = [] usedimpls = set() for line in sys.stdin: line = line.split() if line[0] == 'impl': impls += [line[1:]] if line[0] == 'selected': a,i,c = line[1:] selected += [(a,i,c)] usedimpls.add((i,c)) with open('allarches') as f: allarches = f.read().splitlines() icarch = {} iccompiler = {} for i,c in impls: with open('compilerarch/%s' % c) as f: icarch[i,c] = f.read().strip() with open('compilerversion/%s' % c) as f: iccompiler[i,c] = f.read().strip() if goal == 'manual': allarches = [a for a in allarches if any(a == icarch[i,c] for i,c in impls)] if goal == 'auto': print(f'extern const char *{namespace}_%s_%s_implementation(void) __attribute__((visibility("default")));' % (o,p)) print(f'extern const char *{namespace}_%s_%s_compiler(void) __attribute__((visibility("default")));' % (o,p)) else: print(f'extern const char *{namespace}_%s_%s_implementation(void);' % (o,p)) print(f'extern const char *{namespace}_%s_%s_compiler(void);' % (o,p)) print(f'extern const char *{namespace}_dispatch_%s_%s_implementation(long long) __attribute__((visibility("default")));' % (o,p)) print(f'extern const char *{namespace}_dispatch_%s_%s_compiler(long long) __attribute__((visibility("default")));' % (o,p)) print(f'extern long long {namespace}_numimpl_%s_%s(void) __attribute__((visibility("default")));' % (o,p)) for a in allarches: if a == 'default': continue a_csymbol = sanitize(a) print(f'extern int {namespace}_supports_%s(void);' % a_csymbol) if len(allarches) > 1: print('') def printfun_auto(which,fun=None): defaultpointer = '0' if which == 'resolver': shortfun = '_'.join(fun[1:]) pshortfun = '_'.join([o,p]+fun[2:]) print(f'void *{namespace}_auto_%s(void)' % (pshortfun)) elif which == 'implementation': print(f'const char *{namespace}_%s_%s_implementation(void)' % (o,p)) elif which == 'compiler': print(f'const char *{namespace}_%s_%s_compiler(void)' % (o,p)) else: raise ValueError('unknown printfun %s' % which) print('{') for a,i,c in selected: cond = '' if a != 'default': cond = f'if ({namespace}_supports_%s()) ' % sanitize(a) if which == 'resolver': thispointer = f'{namespace}_{o}_{p}_{sanitize(i)}_{c}_{shortfun}' if a == 'default': defaultpointer = thispointer print(f' {cond}return {thispointer};') if which == 'implementation': print(' %sreturn %s;' % (cond,cstring(i))) if which == 'compiler': print(' %sreturn %s;' % (cond,cstring(iccompiler[i,c]))) if a == 'default': break if len(selected) == 0: print(' return 0; /* no compiled implementations; defer crash to run time */') print('}') if which == 'resolver': if ifunc: print('') print(f'%s {namespace}_%s(%s) __attribute__((visibility("default"))) __attribute__((ifunc("{namespace}_auto_%s")));' % (rettype,pshortfun,args,pshortfun)) else: print('') print(f'static {rettype} (*{namespace}_{pshortfun}_pointer)({args}) = {defaultpointer};') print('') print('__attribute__((constructor(25520)))') print(f'static void {namespace}_{pshortfun}_pointer_constructor(void)') print('{') print(f' {namespace}_{pshortfun}_pointer = {namespace}_auto_{pshortfun}();') print('}') print('') namedparams = args.split(',') namedargs = [] for i in range(len(namedparams)): if namedparams[i][-1] != '*': namedparams[i] += ' ' namedparams[i] += 'arg%d'%i namedargs += ['arg%d'%i] namedparams = ','.join(namedparams) namedargs = ','.join(namedargs) print('__attribute__((visibility("default")))') print(f'{rettype} {namespace}_{pshortfun}({namedparams})') print('{') if rettype == 'void': print(f' {namespace}_{pshortfun}_pointer({namedargs});') else: print(f' return {namespace}_{pshortfun}_pointer({namedargs});') print('}') for rettype,fun,args in prototypes[o]: shortfun = '_'.join(fun[1:]) pshortfun = '_'.join([o,p]+fun[2:]) if goal == 'auto': print(f'extern %s {namespace}_%s(%s) __attribute__((visibility("default")));' % (rettype,pshortfun,args)) else: print(f'extern %s {namespace}_%s(%s);' % (rettype,pshortfun,args)) print(f'extern %s (*{namespace}_dispatch_%s(long long))(%s) __attribute__((visibility("default")));' % (rettype,pshortfun,args)) print('') for i,c in impls: if goal == 'auto': if (i,c) not in usedimpls: continue print(f'extern %s {namespace}_%s_%s_%s_%s_%s(%s) __attribute__((visibility("default")));' % (rettype,o,p,sanitize(i),c,shortfun,args)) print('') if goal == 'auto': printfun_auto('resolver',fun) if goal == 'manual': print(f'%s (*{namespace}_dispatch_%s(long long impl))(%s)' % (rettype,pshortfun,args)) print('{') for a in allarches: if a == 'default': continue a_csymbol = sanitize(a) print(f' int supports_%s = {namespace}_supports_%s();' % (a_csymbol,a_csymbol)) print(' if (impl >= 0) {') for i,c in impls: a = icarch[i,c] a_csymbol = sanitize(a) if a == 'default': print(f' if (!impl--) return {namespace}_%s_%s_%s_%s_%s;' % (o,p,sanitize(i),c,shortfun)) else: print(f' if (supports_%s) if (!impl--) return {namespace}_%s_%s_%s_%s_%s;' % (a_csymbol,o,p,sanitize(i),c,shortfun)) print(' }') print(f' return {namespace}_%s;' % (pshortfun)) print('}') print('') if goal == 'auto': printfun_auto('implementation') print('') printfun_auto('compiler') else: print(f'const char *{namespace}_dispatch_%s_%s_implementation(long long impl)' % (o,p)) print('{') for a in allarches: if a == 'default': continue a_csymbol = sanitize(a) print(f' int supports_%s = {namespace}_supports_%s();' % (a_csymbol,a_csymbol)) print(' if (impl >= 0) {') for i,c in impls: a = icarch[i,c] a_csymbol = sanitize(a) if a == 'default': print(' if (!impl--) return %s;' % (cstring(i))) else: print(' if (supports_%s) if (!impl--) return %s;' % (a_csymbol,cstring(i))) print(' }') print(f' return {namespace}_%s_%s_implementation();' % (o,p)) print('}') print('') print(f'const char *{namespace}_dispatch_%s_%s_compiler(long long impl)' % (o,p)) print('{') for a in allarches: if a == 'default': continue a_csymbol = sanitize(a) print(f' int supports_%s = {namespace}_supports_%s();' % (a_csymbol,a_csymbol)) print(' if (impl >= 0) {') for i,c in impls: a = icarch[i,c] a_csymbol = sanitize(a) if a == 'default': print(' if (!impl--) return %s;' % (cstring(iccompiler[i,c]))) else: print(' if (supports_%s) if (!impl--) return %s;' % (a_csymbol,cstring(iccompiler[i,c]))) print(' }') print(f' return {namespace}_%s_%s_compiler();' % (o,p)) print('}') print('') print(f'long long {namespace}_numimpl_%s_%s(void)' % (o,p)) print('{') numimpla = sum(1 for (i,c) in impls if icarch[i,c] == 'default') numimpl = ['%d' % numimpla] for a in allarches: if a == 'default': continue a_csymbol = sanitize(a) print(f' long long supports_%s = {namespace}_supports_%s();' % (a_csymbol,a_csymbol)) numimpla = sum(1 for (i,c) in impls if icarch[i,c] == a) numimpl += ['supports_%s*%d' % (a_csymbol,numimpla)] print(' return %s;' % '+'.join(numimpl)) print('}') libntruprime-20241021/scripts-build/fulltest-convert0000755000000000000000000000170414705505552021225 0ustar rootroot#!/usr/bin/env python3 import os import sys projectlibrary = sys.argv[1] with open('scripts/fulltest-top') as f: sys.stdout.write(f.read().replace('PROJECT',projectlibrary)) print('') print('todo = [') usedop = {} for line in sys.stdin: line = line.split('/') o,p = line[:2] if (o,p) not in usedop: assert "'" not in o assert "'" not in p assert "\\" not in o assert "\\" not in p usedop[o,p] = 0 print(f" ('{o}','{p}',-1),") print(f" ('{o}','{p}',{usedop[o,p]}),") usedop[o,p] += 1 print(']') print('') print('todo = [task+(offset,) for task in todo for offset in range(1 if task[0] in ("encode","decode","sort") else 2)]') print('todo = [(False,)+task for task in todo]+[(True,)+task for task in todo if task[-1] == 0]') print('') print('if not doit(todo):') print(" print('some tests failed')") print(' sys.exit(111)') print("print('full tests succeeded')") sys.stdout.flush() os.fchmod(sys.stdout.fileno(),0o755) libntruprime-20241021/scripts-build/fulltest-top0000644000000000000000000000515114705505552020344 0ustar rootroot#!/usr/bin/env python3 import os import sys import subprocess import multiprocessing def thread(task): valgrind,o,p,n,offset = task command = ['PROJECT-test',o,p,'.',str(n),str(offset)] if valgrind: command = ['env','valgrind_multiplier=1','valgrind','-q','--error-exitcode=99']+command result = subprocess.run(command,stdout=subprocess.PIPE,stderr=subprocess.PIPE,universal_newlines=True) if result.returncode: return task,(f'nonzero return code {result.returncode}',result.stdout,result.stderr) if len(result.stderr) > 0: # bug in test program return task,(f'nonempty errors',result.stdout,result.stderr) saidsuccess = False saidimplementation = False saiddeclassify = False for line in result.stdout.splitlines(): x = line.split() if x == ['all','tests','succeeded']: saidsuccess = True if len(x) >= 3 and x[2] == 'implementation': saidimplementation = True if x == ['valgrind','1','declassify','1']: saiddeclassify = True if not saidsuccess: # bug in test program return task,(f'did not say all tests succeeded',result.stdout,result.stderr) if not saidimplementation: return task,(f'CPU does not support implementation',result.stdout,result.stderr) if valgrind and not saiddeclassify: return task,(f'test does not support declassify',result.stdout,result.stderr) return task,(None,result.stdout,result.stderr) def checkresult(task,result): valgrind,o,p,n,offset = task failure,out,err = result printtask = f'{o}/{p} impl {n} offset {offset}' printtask += ' dataflow' if valgrind else ' conventional' for desc,what in ('output',out),('error',err): for line in what.splitlines(): print(f'{printtask} {desc}: {line}') if failure is None: print(f'{printtask} result: success') else: print(f'{printtask} result: {failure}') sys.stdout.flush() return failure is None def doit(todo): todo = list(todo) print(f'tests to run: {len(todo)}') try: threads = len(os.sched_getaffinity(0)) except: threads = multiprocessing.cpu_count() threads = os.getenv('THREADS',default=threads) threads = int(threads) threads = max(threads,1) threads = min(threads,len(todo)) print(f'maximum threads allowed: {threads}') results = {} printpos = 0 ok = True with multiprocessing.Pool(threads) as p: for task,result in p.imap_unordered(thread,todo,chunksize=1): results[task] = result while printpos < len(todo): task = todo[printpos] if task not in results: break if not checkresult(task,results[task]): ok = False printpos += 1 assert printpos == len(todo) return ok libntruprime-20241021/scripts-build/install0000755000000000000000000000135514705505552017355 0ustar rootroot#!/usr/bin/env python3 import os import sys import shutil import tempfile prefix = sys.argv[1] dirs = 'man/man1','man/man3','lib','include','bin' install = {} os.umask(0o22) for target in dirs: install[target] = '%s/%s'%(prefix,target) os.makedirs(install[target],exist_ok=True) os.umask(0o77) for target in dirs: with tempfile.TemporaryDirectory(dir=install[target]) as t: for fn in sorted(os.listdir('package/'+target)): try: shutil.copy2('package/%s/%s' % (target,fn),'%s/%s' % (t,fn),follow_symlinks=False) except TypeError: # XXX: old python3; should copy symlinks manually shutil.copy2('package/%s/%s' % (target,fn),'%s/%s' % (t,fn)) os.rename('%s/%s' % (t,fn),'%s/%s' % (install[target],fn)) libntruprime-20241021/scripts-build/ofiles0000755000000000000000000000107214705505552017164 0ustar rootroot#!/usr/bin/env python3 import os import sys import shutil shutil.rmtree('ofiles',ignore_errors=True) os.makedirs('ofiles',exist_ok=True) done = set() i = 0 def doit(d): global i if d in done: return done.add(d) for fn in sorted(os.listdir(d)): if fn.endswith('.o'): shutil.copy2('%s/%s' % (d,fn),'ofiles/%d-%s-%s' % (i,d.replace('/','_').replace('-','_'),fn)) i += 1 if os.path.exists(d+'/dependencies'): with open(d+'/dependencies') as f: for line in f: doit(line.strip()) for d in sys.stdin: d = d.strip() doit(d) libntruprime-20241021/scripts-build/result-impl0000755000000000000000000000067314705505552020166 0ustar rootroot#!/usr/bin/env python3 import os import sys boldfaced = False for line in sys.stdin: d = line.strip() if len(d) == 0: continue announced = False with open(d+'/result') as f: for fline in f: if not boldfaced: print('----- Compilation notes') boldfaced = True if not announced: print(d+':') announced = True sys.stdout.write(' '+fline) if boldfaced: print('-----') libntruprime-20241021/scripts-build/selected0000755000000000000000000001312414705505552017474 0ustar rootroot#!/usr/bin/env python3 import os import sys o,p,host,trim = sys.argv[1:5] impls = [] for line in sys.stdin: line = line.strip().split('/') if line[0] != o: continue if line[1] != p: continue impls += [line[2:]] print('operation %s' % o) print('primitive %s' % p) icarch = {} iccompiler = {} for i,c in impls: with open('compilerarch/%s' % c) as f: icarch[i,c] = f.read().strip() with open('compilerversion/%s' % c) as f: iccompiler[i,c] = f.read().strip() def archkey(a): if a == 'default': return 1,a # put default last return -a.count('+'),a allimpls = sorted(set(i for i,c in impls)) with open('allarches') as f: allarches = f.read().splitlines() allarches = sorted(set(allarches),key=archkey) prioritydata = [] for i in allimpls: priorityfn = 'priority/%s-%s-%s' % (o,p,i) if not os.path.exists(priorityfn): continue with open(priorityfn) as f: for line in f: line = line.split() if len(line) < 7: continue prio,score,priohost,cpuid,version,machine = line[:6] c = ' '.join(line[6:]) prio = float(prio) prioritydata += [(i,prio,score,priohost,cpuid,machine,c)] def asupportsic(a,i,c): a = a.split('+')[1:] ica = icarch[i,c] ica = ica.split('+')[1:] return all(icapart in a for icapart in ica) def cpuidsupports(cpuid,a): a = a.split('+') cpuid = [int('0x'+cpuid[8*j:8*j+8],16) for j in range(32)] mmx = cpuid[18] & (1<<23) sse = cpuid[18] & (1<<25) sse2 = cpuid[18] & (1<<26) sse3 = cpuid[17] & (1<<0) ssse3 = cpuid[17] & (1<<9) fma = cpuid[17] & (1<<12) sse41 = cpuid[17] & (1<<19) sse42 = cpuid[17] & (1<<20) popcnt = cpuid[17] & (1<<23) osxsave = cpuid[17] & (1<<27) avx = cpuid[17] & (1<<28) bmi1 = cpuid[20] & (1<<3) avx2 = cpuid[20] & (1<<5) bmi2 = cpuid[20] & (1<<8) avx512f = cpuid[20] & (1<<16) adx = cpuid[20] & (1<<19) avx512ifma = cpuid[20] & (1<<21) avx512vl = cpuid[20] & (1<<31) waitpkg = cpuid[21] & (1<<5) vaes = cpuid[21] & (1<<9) sse4a = cpuid[25] & (1<<6) xmmsaved = cpuid[27] & (1<<1) ymmsaved = cpuid[27] & (1<<2) for apart in a[1:]: if apart not in ('sse3','ssse3','fma','sse41','sse42','sse4a','popcnt','adx','avx','bmi1','bmi2','avx2','avx512f','avx512vl','avx512ifma','vaes','waitpkg'): raise ValueError('cpuidsupports does not understand %s' % apart) if not mmx: return False if not sse: return False if not sse2: return False if apart == 'sse3' and not sse3: return False if apart == 'ssse3' and not ssse3: return False if apart == 'fma' and not fma: return False if apart == 'sse41' and not sse41: return False if apart == 'sse42' and not sse42: return False if apart == 'sse4a' and not sse4a: return False if apart == 'popcnt' and not popcnt: return False if apart == 'adx' and not adx: return False if apart == 'avx' and not avx: return False if apart == 'bmi1' and not bmi1: return False if apart == 'bmi2' and not bmi2: return False if apart == 'avx2' and not avx2: return False if apart == 'avx512f' and not avx512f: return False if apart == 'avx512vl' and not avx512vl: return False if apart == 'avx512ifma' and not avx512ifma: return False if apart == 'vaes' and not vaes: return False if apart == 'waitpkg' and not waitpkg: return False if apart.startswith('avx'): if not osxsave: return False if not xmmsaved: return False if not ymmsaved: return False return True def selectic(a,aexclude): if len(aexclude) > 0: print('note: considering other machines supporting %s' % a) else: print('note: considering machines supporting %s' % a) # requirement: icarch[i,c] is a subset of a compatibleimpls = [(i,c) for i,c in impls if asupportsic(a,i,c)] assert len(compatibleimpls) > 0 # desideratum: good performance based on prioritydata directmatches = any( priohost == host and cpuidsupports(cpuid,a) and all(not cpuidsupports(cpuid,b) for b in aexclude) for i,prio,score,priohost,cpuid,machine,c in prioritydata ) if not directmatches: print('note: no direct matches, so extrapolating from all machines') totalprio = {(i,c):0 for i,c in compatibleimpls} totalweight = {(i,c):0 for i,c in compatibleimpls} for prioi,prio,score,priohost,cpuid,machine,prioc in prioritydata: if directmatches: if priohost != host: continue if any(cpuidsupports(cpuid,b) for b in aexclude): continue if not cpuidsupports(cpuid,a): continue for i,c in compatibleimpls: if i != prioi: continue # XXX: use more serious machine learning here weight = 1.0 if priohost == host: weight *= 10 if cpuidsupports(cpuid,a): weight *= 10 if all(not cpuidsupports(cpuid,b) for b in aexclude): weight *= 10 weight *= 1+len(os.path.commonprefix([iccompiler[i,c],prioc])) if iccompiler[i,c] == prioc: weight *= 10 # print('note: weight %s from %s %s %s %s for %s %s' % (weight,prio,machine,prioi,prioc,i,c)) totalprio[i,c] += prio*weight totalweight[i,c] += weight # note that implementations without priority data are excluded from ranking ranking = [(totalprio[i,c]/totalweight[i,c],i,c) for i,c in compatibleimpls if totalweight[i,c] > 0] ranking.sort() for prio,i,c in ranking: print('note: priority %s for %s %s' % (prio,i,c)) if len(ranking) == 0: return compatibleimpls[0] return ranking[0][1:] usedimpls = set() handledarches = set() for a in allarches: i,c = selectic(a,handledarches) usedimpls.add((i,c)) print('selected %s %s %s' % (a,i,c)) handledarches.add(a) for i,c in impls: if (i,c) in usedimpls or trim == 'False': print('impl %s %s' % (i,c)) libntruprime-20241021/scripts-build/sharedlib0000755000000000000000000000043014705505552017635 0ustar rootroot#!/bin/sh lib="$1" shift so1=`cat scripts/sharedlib-so1` soname=`cat scripts/sharedlib-soname` opts=`cat scripts/sharedlib-opts` scripts/cdcompile . $opts \ -Wl,-"$soname","$lib"."$so1" \ -o package/lib/"$lib"."$so1" \ ofiles/*.o "$@" chmod 644 package/lib/"$lib"."$so1" libntruprime-20241021/scripts-build/staticlib0000755000000000000000000000022614705505552017661 0ustar rootroot#!/bin/sh lib="$1" rm -f package/lib/"$lib".a ar cr package/lib/"$lib".a ofiles/*.o ranlib package/lib/"$lib".a || : chmod 644 package/lib/"$lib".a libntruprime-20241021/scripts-build/usedimplementations0000755000000000000000000000046514705505552022001 0ustar rootroot#!/usr/bin/env python3 import sys for fn in sys.argv[1:]: with open(fn) as f: for line in f: line = line.split() if line[0] == 'operation': o = line[1] if line[0] == 'primitive': p = line[1] if line[0] == 'impl': i,c = line[1:] print('%s/%s/%s/%s' % (o,p,i,c)) libntruprime-20241021/src/0000755000000000000000000000000014705505552013760 5ustar rootrootlibntruprime-20241021/src/CHECKSUMS0000644000000000000000000004577614705505552015253 0ustar rootrootcrypto_verify/897 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 crypto_verify/1039 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 crypto_verify/1184 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 crypto_verify/1349 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 crypto_verify/1455 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 crypto_verify/1847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 crypto_decode/653x3 b27ae3aea1c26f6a5fca8c98570889925a1fd8bf554105caf49b73b438463cd7 6bf0b30b8a6d4c2e788ae00f91d1ecc21ee766073911c6cf22c87d6be78065c0 crypto_decode/653x1541 2173daf6ce1c01f7ed73da595704d4f9bb8bf3daefeca1b87d877bfed38357c8 f70df1d328c5e9ed7779316472068293f57418ac0d14490ca9faf459cd8860d9 crypto_decode/653x4621 8c4b6e117d8f9958d52355a14318bfe558207ead06003ef2387d4efee125675c 3cf98a091d5f8a7de0f454731fbb8eee5d09052d746697e3be6fb56bdca4152c crypto_decode/653xint16 17a6405c12d612963247bbf6aa8ed3cfe97cb9d2c4cbc5fed58415acee973cc8 95a98a488011bfe4be2945e897c1e74d3ab4caae7a3985c5a91df7a40fa12bb0 crypto_decode/653xint32 34b2ca8a50458bcb0807cec51d8532fbe6757c16134cdffc358383de4e1a148c 57b3c59fc493ad09401c0b98870b52d4c0f37472e636dbff071e3ae4e29ca59d crypto_decode/761x3 4c0c26f31b56408c408d7cc98224222b70725c2aaa0ea3faa44579acf5c624de 31ec97bfbababd015c022fc21d5f56f772f99978811edb78222560b43668194f crypto_decode/761x1531 1d9d419824942784f9810ac0967c6076bf6e4e800aa310466fd37e6292214244 f6b6bd7f4f922914729cf66245a429da337b5b13f845154adecbd2406e12f045 crypto_decode/761x4591 e1f8b74a5bf8507d583864d986c9febfecbaf6a447fc0ef78949e0c2684004ce 278e3fba567cece740483ca6d1c367e929189741d75f068c38dee2b7467cf58b crypto_decode/761xint16 49e6aca48717c2e93b56d9706189b6c5b21781086c569bf421628343fec2bc06 fd2f7ecff81bea4ae8e08a3bf1b6d4e57d328c481f773c60d3f1a773c25dbfca crypto_decode/761xint32 c44672011469bac0b95caf7c0a019fdbbb6e3437688ab8332bfa9c3edeec0596 9e000f8f58d6ec16a4dd0b362923affd79dc56ed6e049b457d851a56f9206551 crypto_decode/857x3 98a770141d432110843494413c1710397aa6bad5b837bae4731ad814be38b81e f8ad21eb2d86da185a45a6ccb32899e039b561a40c5a5654ab396414d19cd494 crypto_decode/857x1723 3c44cbbf4970935594d86db45cb014095a1ca333e3ce7b2756b4fd46153c6014 98b68e4fbc41894cfb6f07f41b15619290fe6c4ae47126151bc8bc91ec7a15e7 crypto_decode/857x5167 c94e8ca6f25f8ffbec28769f741ba6613b6de2ed3bbda148d4e973175b80545c 43714f0e17a461bbd8215bb53713169845c361f105bcf4ca966b7b86b5de28c6 crypto_decode/857xint16 f1975f4d5aa9b69374c1b286295468accd26c0ea75cf76cceafcdd4142155810 5e1d78e028b3f6eaa1be2526e5f3165ebd75ab25ad76cd4df3bd2376e70ab631 crypto_decode/857xint32 f1cce1fb5860ff77e49eb8f6c96947a8a1f779fde85a87809410317bf9e39a20 bfff4d5b75d91994c2dc064236468c4fd59fd4df7d08d7b8b52dbf95c9891a91 crypto_decode/953x3 c78799b48c3e879236b2919c5c975fd085612c76da5b50de8283ad6fb11874dc eb934610aad64249d580d08ef6bc1a5205485544c98c25e4742b053026125d8c crypto_decode/953x2115 39b5338022fa2952cd9c3c6db7835107bc32c4575da8efdac2a776fd4c0f02ed 2d52fd93fb72fb5224486467d1bfda7fb00feceec559befba17736f00b93f304 crypto_decode/953x6343 462d131e93122cf927e38d3798781c6d147030231c5697eb39bca774d4635e28 7e950e4dd0d52156a6fe31883848e1937cdbe8905ef250b63749d08e599c115d crypto_decode/953xint16 b85dffbe410d5d88bd60d7ea927e051ce0795e26b2524a9e8abefda128a92e7e 7b1c952f6e7c01227dbbe8e0418cc4d5ea1860eba1f27166cdd9ba5af60586f9 crypto_decode/953xint32 dec92f9468ece28ae286a8fa5b70bd260b013e54adb1884e6cd1b8cd4126c0c5 d816216b0110cf74ad08705d85d438f5897a52e214ecac53b0c97fd668b37e62 crypto_decode/1013x3 bc9fe48234596542962f8de47a4ef3ac45a2dc7d7a6e5a7e74ec9de0ca296c38 e7e3dae8e40abaf6707c25588855e328d51070ee697ec212aa4f1a4883f8f5de crypto_decode/1013x2393 d14764f92d14444286cd940b7309cbc94dfbfa944288e2a1f126057a1e1b6d0d fe36c2ad2261b9693e2ad9ab3499e3dd2514bd6bf8ebf023f044d23f14345dd9 crypto_decode/1013x7177 4fd0bd0a87df97ccb7d348b0ab91826cf1dfea84d6853817d4e75dae12cb3b44 2a15b4ce79e1c074b085bd7abf71de7083fba0503d4ac06d10498fe965a26a10 crypto_decode/1013xint16 5938f68c9c3c3631517ca16dcadd1e96b2553bd6b494161c901c1db455e21173 fe23340654861a9e08289b59a9901d646fd8b2cd98b628e8f34889763b7c2a91 crypto_decode/1013xint32 1fbebd6317d03a06d94d96738bdeb71726b30ac841c8fb4dfbfaa5fcc73bbe9e ea9a0742c8a6d873850602d2d3cc30e7b645c79d06dd7a1948461c6a90c41029 crypto_decode/1277x3 cd7ac8c305a343e1ae8e70c486d539bae09546ea02182801780b53de3618c53f dfba5b6a88e496f1d34cb5f11e59ddb2c26255c22edb9c4a9246d96bb5b687c8 crypto_decode/1277x2627 74f598a5f9e175e6ac4b6bfe3c14389c99096b4e82684948c1ca634c24a8e72f 06734904e6447b510c757eb71f6124fc13a4edc76b6c3d88be4d858f2f945a8a crypto_decode/1277x7879 ef434ea80eacf64891b1b1669b5890e42744786121d3f9553adfd77f99964487 65e3512604821bd72c2c8ebf3dddde91ce916265e81b1d9e24d6b96c0f9ed4a1 crypto_decode/1277xint16 d5348da2ff27262d66e755b86943578667e0356e52efc69e5f8ff7135cd8c5b2 7076c2a55d93f7846a8a8a1fcadea82529d82a42e8bf6ef033d8b4974c8d8e7d crypto_decode/1277xint32 e151ed1b6c9d21ee74522212ddb88623dcbab6e220dced357339f547a99080d9 42e71d92e37a5470c27cc2bcc7814c0b447cff5451d1e361fd7f9f0ba8338d90 crypto_decode/int16 7f59625680d504bdd9bff199c54792455ddfd077779962836a92543c88bea2fa cdc27065db4d2f6e2356756b9a0bae31699e6255f0caf0011ba18ef3d2229ed8 crypto_encode/653x3 601a6ccdda0496001dd407588f0a0e86e7538fbb1916d7192d65165eb33f8607 29700e201920e207a92db544a0e850f0de968596d8d53fafddee93ce95ee0181 crypto_encode/653x1541 1b20d01f7809f5516f698fdfb9bcf69a9b077a03bc594f94f427983eed219924 e9661445e5dc394398e8c9fc031cde1c405c4e325fce3297c6e8bdb53310aa70 crypto_encode/653x1541round d2bf70e2ae1f712bcc35b342c7a4b9ca35dd41f3bc48badd81cb089c820a3e8b a81054ade0c8798b3b305e7ba21c764c63f4ce82a5f318828adc6a99c42fd820 crypto_encode/653x4621 0b8bea4448ae678f4152f1aed36bd50c1d538a1a0fef1134f480b956223c1aa7 045c8b06a6e1591bf38ff18e8b0f4cd7130ade473cbf7c1088c23257fca300ea crypto_encode/653xfreeze3 2af9cde3800c6d3ab447ef1153b456f24387915970704887562d60dba892d8ea a4142003bb2d13fc4e6fb515d06420bd4304cfae48831b80fe21ca6665e41701 crypto_encode/653xint16 17a6405c12d612963247bbf6aa8ed3cfe97cb9d2c4cbc5fed58415acee973cc8 95a98a488011bfe4be2945e897c1e74d3ab4caae7a3985c5a91df7a40fa12bb0 crypto_encode/761x3 174595681ec51d85de90246ab033f588d23586e48cee89ef360c213c47987ec4 e77793e4a45e5582c3f32e346f5cf7d1f91f9ed3c531e41918c09d70d4d3815f crypto_encode/761x1531 55bac32e896eeda274c06a45e55b1df05006e43780b35a6a3e1c0b3e52407838 9a3fb7d7bd06856c18640990282f267f81500881d97c9fcb94d3a358cb24b9a7 crypto_encode/761x1531round f674dd6b79402fc0c6546f3716d5bc6498485e3943167d4901f3150f01ceafbc 96687a4792184335a94adc906f4ec93dacf1286d3b83eff1196b48df80063634 crypto_encode/761x4591 a4335af893b0527c4fc259b93b8660d5f29b012ee4111218c11654b27fc6c61b 263487954e950086897d620987560480180d05b8564ad7744b53b24c5e0f7aaa crypto_encode/761xfreeze3 86a1be02df02f23f8ca5945147a0828fcf2fca756cb71c59f23c8e77ad236fbd eea69494ef8944ba675ce29a3b004c6e03e1356459dcd1e7bf0afd07d8a62b62 crypto_encode/761xint16 49e6aca48717c2e93b56d9706189b6c5b21781086c569bf421628343fec2bc06 fd2f7ecff81bea4ae8e08a3bf1b6d4e57d328c481f773c60d3f1a773c25dbfca crypto_encode/857x3 743e5116e742b3998cbce11a5e58019bdb9b81cf0d5df538d1ceb897c9804c6b 2d4dcd2e56605c0e00dde04746a1199c739d1e7dd3e928a117533f0937270469 crypto_encode/857x1723 a2c1b7ffa60681087da6204f1669281950ae2bce4bfd23b3f34ee7464c298aa9 e6c3186f85c9ee4f61bc3ec2f12f5cab699b269f414ceb8125753b5ff3526919 crypto_encode/857x1723round c594e45623de22d6a6353b86c6ded45616e77d4d47101d80700e9dc975163966 674a993b7f62eeefa79c7f0fe26c5b522e030c651c763e3dc097a280068a951f crypto_encode/857x5167 3bc06d9dfd4200ecfb99af82babaeb6f536f7bf947ccd4b9624e5adeeef68cd6 6761bf59312ec4ed003d0e17a39f234aefcd57e38dba5018eaafb2051b9c7ae0 crypto_encode/857xfreeze3 bc89dd0c9bcace09ff3a4df7c6b657a8eea2467796bba9fbe9d0de4d1ee28703 be3badaab03db87e3efd3597607b22d613e0e05242d021e616ed641ced8160fa crypto_encode/857xint16 f1975f4d5aa9b69374c1b286295468accd26c0ea75cf76cceafcdd4142155810 5e1d78e028b3f6eaa1be2526e5f3165ebd75ab25ad76cd4df3bd2376e70ab631 crypto_encode/953x3 10e5142e79d1a21b1a3b0284f3d31e258af25438003715cb3b2ae05175ed685c bb632a3b15fa172fb6b90dc7cdbca546cc677213571c71b52abf407208bff5d8 crypto_encode/953x2115 d71ba40baea7dc3af48fd849985de05aaee87f3037871db8dec7cc901b40c8a8 b47986841715d5eef14df6916c2ab184f33a698537113c3bf4d2ea8f99428c70 crypto_encode/953x2115round bbb31bbccfccf662777eabe951a585b359eaf9916a7eb4657d33356f7cfbb81b cb28590264fec821fd69bb3c0e81141743256f5cd8111fc3ac369b32bd43d73f crypto_encode/953x6343 48d66a44f8ff7a1467ce2d060028f1e50fdb82270a4e07c91afc8982c4d6229c f7cff68a1aeda002a4c4af92e4d33284bb29ab2344d097357b23522a14ebb07e crypto_encode/953xfreeze3 072c38c98e9744daf3b6761d57bf6ea58f590165eb3a418379211720cfcb7dc0 6105c1a5693f0c92e5afdadd2c1990b5ca456f6362ac010e8051d59e8c420bfe crypto_encode/953xint16 b85dffbe410d5d88bd60d7ea927e051ce0795e26b2524a9e8abefda128a92e7e 7b1c952f6e7c01227dbbe8e0418cc4d5ea1860eba1f27166cdd9ba5af60586f9 crypto_encode/1013x3 d7024fe86d0285887eec1af699b0498d32ab1eaee799c12f44ef5cab26cfdc96 3dca23aa721c2d4907b07cdbde42968e69e8689794aae6478e2b5e04da0d1579 crypto_encode/1013x2393 7bd429942f70bf35593f20e0a981927eea259a8517f2c7c8da975da324e6a762 3e1a3c979172f41df76417f9ca1a180968aae86857b6e9194f885622e33ac44c crypto_encode/1013x2393round f75c0afa30054add70fba4f12d5da9eea18fbd3a1331033a378bb4c618de81a5 daab9407d45841416f8d74109a9ac3e9979213074e580c1779fdb76239959dd2 crypto_encode/1013x7177 6d839a50ec5e68cf79f8d99d8d86eb1b56b8e88d7e1b088313731657297d490b 29b9c6f5b9891edd976092fe7d87049d3a788b2911274aba59241f0507a87fed crypto_encode/1013xfreeze3 5837a623cf7f3d3c0f749b1f17bd4e6bcdee5dc21260123f6addfeb8e2116a2a a876703bcdb2d60e3da575c761a4f020680168798a3d68303972da1450397dbd crypto_encode/1013xint16 5938f68c9c3c3631517ca16dcadd1e96b2553bd6b494161c901c1db455e21173 fe23340654861a9e08289b59a9901d646fd8b2cd98b628e8f34889763b7c2a91 crypto_encode/1277x3 5f8a22de6e4e3893b53577b6606bc3ccdb111ee025d609d21cb06592468e29af b11455450ab60cf8c24ae5a25003e85e650fffe8bc5b29cd76439f154905de75 crypto_encode/1277x2627 5b26afe7bb755c250ae9d208a9d8552b0ee95f0d2cfac20ed44a8f918524eb04 b482d6dc7d917bb111a4d164ac216f755fadf3e8571f3d00009473d3f346f43b crypto_encode/1277x2627round 7af347846154c277a241b9bf8749cd4eb0fc75ad481eca00cd86070ca14bc362 564dec95c8bf481d887456b5847166e2cbfbbbf24a19ba1c110e3c0b0ef58661 crypto_encode/1277x7879 874f6a1453352eca4a08618cc88c78c7d798edf2c91aa173c3b0be7f72427559 73815848894e97f8bf4fdb4d097a9021b4f978b13e7db123278e60901bfd0afb crypto_encode/1277xfreeze3 1b449bf6d1f970ca5d2339cd8f869e5b26d5116e35e464cfcc238d094b17f4d7 200feb6191e1e49aa674353ac35d15ff8a3aa6c70cbcac515210a394bbaebddb crypto_encode/1277xint16 d5348da2ff27262d66e755b86943578667e0356e52efc69e5f8ff7135cd8c5b2 7076c2a55d93f7846a8a8a1fcadea82529d82a42e8bf6ef033d8b4974c8d8e7d crypto_encode/int16 7f59625680d504bdd9bff199c54792455ddfd077779962836a92543c88bea2fa cdc27065db4d2f6e2356756b9a0bae31699e6255f0caf0011ba18ef3d2229ed8 crypto_sort/int32 3458da92fdba9924c019db57dd7079f7613df0e243f3b312d10d94781af8c29a 7265f7d8ed54b4a3bd12db9648e246615363373e7044c8d1b7c789ebfc177629 crypto_sort/uint32 83fc714d7acc0375aa6657bd36d3324a6cbc503f68019345651be8a88534c3e2 30921a0be2d73a185181f0ec842fa0fa73cd6e958fc03411d435f14a3fc64c89 crypto_core/inv3sntrup653 aa5ad48e98fd02d0029bae0563ff23e304b66d09714ad3a50b7eaa0c39d49de1 07515a32ef8e6bfbc348fd7b45480a3a87632fc4d277c9ec04d8984eae369a17 crypto_core/inv3sntrup761 9e86b6061fb03967c7366ba2febae6e9e8d1b017f6c232437b46c2f1c54eca0f 1a98d5561c7920363f4ed3c5c6b8f8100ff1a64dca2edcb93ee1b0db6442c929 crypto_core/inv3sntrup857 beebb8615a6dd9308e9366214edc0bfda955b1bcdbd191941c48d7febf3412cd b7973784222ad1aec8dc6b5cd12bdd500f7297561bbd70a7e899598d4bda2cd1 crypto_core/inv3sntrup953 9237c4567f8c2a46bdd2352fd36246298755505410c350016bc46a91a4b267a3 83d67d2813b5abbb50c0686c4a605c5e85b59adbc04b9b55d1585d6f114303d2 crypto_core/inv3sntrup1013 c0ca4000b778d934025bb5cdc7b051f6f82600f30ccee2f9bfc39162647480df a6adb01164dcef4fd539877c8964b38ba3bcea1cef00a9d9e410b9c40bdab2e5 crypto_core/inv3sntrup1277 b30c2b6d13108ae047f7fddc44d358fbfb15efd9cc5faf66fdd8105d67c851f5 195786f1a3efb32081f00cff505fe0dd2b572761c809b08f8a8c57f9704bc01d crypto_core/invsntrup653 783437aa0948fbed0301273c0cd5c08de5d3cd1cec0b5ee2e4794efee2bdbc6c f7eec5214a2b2c85244e55ffc91787ecbd8c7e8c501ac4f01e4375c7c401e222 crypto_core/invsntrup761 681d6c76cd117dbe30df650d7701ae3a75b82d0a916ed319e942e34d87726ab6 e0a98560abe832360f4b8a8101491ccc7e1adaeafcf056b382ff9a16c24004b6 crypto_core/invsntrup857 884d58c031b7f0ea5e9cbbc8274a3fa8b462f381f43d63d18fd1a2056d2c6742 a5ad90978659be45ef3d4ce0ab6a151d4dfeaca2da7de476eb9b61d31b058f67 crypto_core/invsntrup953 e3c85424efc73a2708c2fcfe0a3f330c164eec370ed8432105e1f670e2cc7760 176b39e76aaec3d9e0e1ed90902be3539020c31478076233b511e983c989d207 crypto_core/invsntrup1013 f6a51c797d29c780474c27d518d04993a0522cd81996c9b618b42059ba667ec3 53217389455102d1f4fcf9dac3db99bbd39bfbf23559699f6f1913e1aa9b8d82 crypto_core/invsntrup1277 a76fff56bde559a7eae01add3f5446ce57238eb5d56a1ce04aba66fe8ddac009 323564aa131a8f844bc99ffe99f5f151839729573c215eac12ddec35c3d4a721 crypto_core/mult3sntrup653 6c633f57506622093b66449977dda48d3736b0f20eb6f78104f010d8b94c5e51 2262cd945501dd3967456d24154cd50599be6620378821a6b96ffa95fd8b47ff crypto_core/mult3sntrup761 4a489a66b1977b381a33f6cdb93b9760302789add5208c6e09acc0ea47788efd 52c3e6619d37995edd3088b9fbb36cebfbbf0308e263d52bc17c4334ef661dd3 crypto_core/mult3sntrup857 1da51dad572b15486fcb9feee50a8ff22af3ab0cc7c02d0f4873f7fb250cad15 ae3c60101ad3de65884fd7019032d0e5be3b3f17c4e01bc9cfb0884ccaf9deb6 crypto_core/mult3sntrup953 b926ca905106675e88bc27e7ffbcad138b421e8d011c7284ca388b29d4a8a513 0e4f2bdc9d1086a6c4de22e1978dd6f6303d031dedbc80876746326fbe8f8f3a crypto_core/mult3sntrup1013 7977e0e9c64b2a69ebdd8ba689cb035d0e60211d0264a1158cac4db08c19d972 65bbb4ce5a9530513872bb37156d0e6054c0006049f81a79d8aa4692876b5b89 crypto_core/mult3sntrup1277 bac954209b725cd50724efb35ec8845e4bcdfcbfd7a8eb34d40c625a2772b9e3 d8c129631fc1d4f65d262ae836c485fa883a570fb650291e4f1c9317be948bc9 crypto_core/multsntrup653 426661f4ba18f29eae9e2b7d4d6c1569e9f91db693cafb76ede67fba9873b64b 5f42341ecdbb0e13b2d071ecc75f874ae3b0fa913f8b62fcf93fcb13d01b417c crypto_core/multsntrup761 eda43ab4b93ce66fd26d8c0989b0297c8fe1e6984ba9b751f6193d35ef8a7a85 67171a7876696cfda06721697664dad2f14395fdc559520f41f90fce0195ecba crypto_core/multsntrup857 d8bf44e9672dea2fc7a424fc0a0036c60cbb70bbde0754573455fffcf65e6e29 b043b7fb8f6de5ed482bcbec3b317ef523d5b1d67061dd51f4a5b335696f7ef6 crypto_core/multsntrup953 6204041e985eecd6f688132f753441c49a9cfa99a37b142a49425a4e5f8c69f7 1b3f1343cd066c133980283e6e6f76ee8a1f3b72b2399109ee03a77d1e3b460b crypto_core/multsntrup1013 bb44732592ee7d27c6e0890312f5d24a549c18dc5a96e228dd1ad2144634967d a9055126814af236349885adb167762de5c9b3e19f351de5e14abd91a5fc759f crypto_core/multsntrup1277 058a17a603ab239e229ecee9714be97af3029708f9c0cd163abec692e829d154 6a784e7b89a244f38d8683537c375958c9c75a4796a2de4d1daa3d00aad2668e crypto_core/scale3sntrup653 faf8c33dcacc9a98f6e4e751c1b406ebd2e9251ccac159d66847cfdcc45d0c53 6cb27323e7a868ff2eee421976f5b8fb9795c4b297f63fba3eee86bf559b98c2 crypto_core/scale3sntrup761 f6b9859408d1cc2e2701b8df30a0f1d79d7f5a2ecdd6540b2b0581dfda36cdb2 d6657470f469bfb6616dcac8f672f028e435e89289a47b1987ce736dc189aef5 crypto_core/scale3sntrup857 9a0c86ef536b17661fc00fb0a1d3bbaeb811467e20cdaf7f3b2e9d11c157e112 60cf4ed2b17e4f69461e1edebcc59e2a39c232d1d352b51f4ebb2b578f4833fe crypto_core/scale3sntrup953 8314ddeee37405ec4052b6a273321eadef8a41e2037942e57799265898c5d69a 0e9ac7e49118ea8c87983e80587ad9b42cb117dab2e807d78f8589c447c44fdb crypto_core/scale3sntrup1013 3abb01f247f92e49c17e453baf12cbe9d31d3e736f1727b128b1d26ce1b05d8e 62fa112e6584871480074801b4d477e6510956fab67d0e3ce6680fb208e1b1b9 crypto_core/scale3sntrup1277 49d516671d2ccb0512a7301439c928e5c3b0c931be7394eb883c9ca3748d3f1d 58b6d7e044d2860ed9aee951367fcf8040720e3c780ce65bea54ff2f7b9ffed6 crypto_core/weightsntrup653 fbbd83b55763dff9eb34f7e04f545b2217b39a45cf6b291c2a241df017978030 2509dd9d3711537b4946ebd79de22310103ffa1c7f48d049011a2384ac152f37 crypto_core/weightsntrup761 1ad9d803dc23de6737da392d9005d9816c2914149e7959ed476913c7a95ddb3f 39a1e0fceab2d7a7bebdbd9e8e3d2c275658e3fe3bc2a53d84a976500dec99ef crypto_core/weightsntrup857 92a23e9211ac4a5ad98bfab8db60dc8b5976d8e3a95e2e31123ad4672e8c2085 2e9d660f810c309dffeef79278af6f0f197fd37d507d8d8bc7aa2656cf18ab92 crypto_core/weightsntrup953 d20b5285cc8d7080674b79f3627faf649cece975b77eef738f289750b08759dc 9d82958147e40c73e91ac145ffb54aa8e62426d5e7dfd1c65d01bbbebcbb5249 crypto_core/weightsntrup1013 225c4959095c19803ffa71189c9e9eab360a246b1649f944e75505d31618f45b d88a96a3152511717b19c6e3e8d1192d37c2afc8cf7a3c324ee142363ba68989 crypto_core/weightsntrup1277 9664b645da2e7b2a53a69270303673141fead5b32cb937a2d1c45f73cbe3cf27 7139168303d50ca963c29781333800043dc0b4f7f69a14608d4550f8baefe498 crypto_core/wforcesntrup653 bf79e9b0d221c345938d5d5000d8dc2a01372e2dd582072aaea523187ecc1130 055650b83895d732c194cf68e2d0401841f233e7dd66aa3f22643b8db997d334 crypto_core/wforcesntrup761 0b92df5bfe9577b28e57102af63b96169a0b22bcff2c4ae8ecd5030228a2e7f7 87aa3f938b26783a0e83c5dab497ffdc4e77e2ae74c457996253a6ee0a7c2d61 crypto_core/wforcesntrup857 66150d04c4c22721674661ef22298ea0bce48f8c8e8c374b3506e58ac8ad8d77 787fb6635b1daf842448b74e478cca9b74fc6a985d93cad2b1095f0bcf904300 crypto_core/wforcesntrup953 ccfc516d2d46a821fcebf8b326f81f90c54b1c6bdd795357022e77590a30c0ef 22397d2cdd1652713cd69cc70fa941ccff3877d4ed5012fbce791261f740252b crypto_core/wforcesntrup1013 d4e33f5219277f77ca64411ebcc9ee0c3d5274f5b9ebb9301d5602b2f110d767 336f49eebed9c310480fd766968fdd1ad7bc3f0ba9779486e86244a77f3da07e crypto_core/wforcesntrup1277 85ee647fbe8423f5655b8b98cd0258f8aac032a58e7ba63881c6476ac31574c9 21ca0241b12b7bbd8478b9026d8b2b71e1e18b1d4d247103555f3bdab7958397 crypto_hashblocks/sha512 f0bc623a9033f9f648336540e11e85be21aeb60905c7d8808d10ea20b39d58d1 f1a2c46c9ce7fa4cd22f180907d77b6f7189badef4b9a1b5284d6fb9db859b76 crypto_hash/sha512 8220572f58bd4730be165c9739d8d4b0fd2e0229dbe01e25b4aed23f00f23b70 c1e322b7cbfc941260c5508967ba05bce22eeee94d425e708b7c3301ea1d5e2e crypto_kem/sntrup653 dda0bd7591a594a50d92d582175ec8465f5e17e464d115d3320de3b3baf82d1f 573607988fa717eb6a3f951e4263581130b77f80b3c4b3a05c416069ae8c4cf3 crypto_kem/sntrup761 4081ab3f61bac9aae91bff7f9b212855177591ec4427dff2a501be124c5bb97d 730a572b64fa05a42bce7b1573edc04b70ef75909db309c012aa27f53f1f2f41 crypto_kem/sntrup857 9b5d45689313eea407b627421e453bec7c563fd5430901d217cb4a868b5a2435 26f05b6f705531a3605d19304d98ca013f8c163ec2cf39b18767d9ba0a5c744d crypto_kem/sntrup953 6f497ec200d79d3a509f5b6ba13489ca97ce9bf9238e07c9079b62e77112828c f09bd596d313fce6981b8d8135205442866823f295e68195257fa035188727c5 crypto_kem/sntrup1013 1b5be888b85239e31dcd576507be93447dd8fa9791cd780f4146979406e763e5 78eab8aab4e7ac97bac21dfe4dbf2a09b5e0264a006679d1da13b43ecd643c04 crypto_kem/sntrup1277 d03baeaa474adaa64bb1cf309fe7c3cccd29c82265f1d44fa668bf921580c8f1 8dd39f1e097cd413ed1ed1ecb6431e131535c906fa561283394b182c4ff09a5e libntruprime-20241021/src/MACROS0000644000000000000000000000110414705505552014663 0ustar rootrootcrypto_verify crypto_verify_BYTES crypto_decode crypto_decode_STRBYTES crypto_decode_ITEMBYTES crypto_decode_ITEMS crypto_encode crypto_encode_STRBYTES crypto_encode_ITEMBYTES crypto_encode_ITEMS crypto_sort crypto_sort_BYTES crypto_core crypto_core_OUTPUTBYTES crypto_core_INPUTBYTES crypto_core_KEYBYTES crypto_core_CONSTBYTES crypto_hashblocks crypto_hashblocks_STATEBYTES crypto_hashblocks_BLOCKBYTES crypto_hash crypto_hash_BYTES crypto_kem_keypair crypto_kem_enc crypto_kem_dec crypto_kem_PUBLICKEYBYTES crypto_kem_SECRETKEYBYTES crypto_kem_BYTES crypto_kem_CIPHERTEXTBYTES libntruprime-20241021/src/PROTOTYPES.c0000644000000000000000000000132614705505552015656 0ustar rootrootextern int crypto_verify(const unsigned char *,const unsigned char *); extern void crypto_decode(void *,const unsigned char *); extern void crypto_encode(unsigned char *,const void *); extern void crypto_sort(void *,long long); extern void crypto_core(unsigned char *,const unsigned char *,const unsigned char *,const unsigned char *); extern int crypto_hashblocks(unsigned char *,const unsigned char *,long long); extern void crypto_hash(unsigned char *,const unsigned char *,long long); extern void crypto_kem_keypair(unsigned char *,unsigned char *); extern void crypto_kem_enc(unsigned char *,unsigned char *,const unsigned char *); extern void crypto_kem_dec(unsigned char *,const unsigned char *,const unsigned char *); libntruprime-20241021/src/core/0000755000000000000000000000000014705505552014710 5ustar rootrootlibntruprime-20241021/src/core/inv3sntrupP/0000755000000000000000000000000014705505552017163 5ustar rootrootlibntruprime-20241021/src/core/inv3sntrupP/avx/0000755000000000000000000000000014705505552017761 5ustar rootrootlibntruprime-20241021/src/core/inv3sntrupP/avx/Makefile0000644000000000000000000000014214705505552021416 0ustar rootrootr3_recip.c: r3_recipgen.py ./r3_recipgen.py {P} > r3_recip.c touch -r r3_recipgen.py r3_recip.c libntruprime-20241021/src/core/inv3sntrupP/avx/architectures0000777000000000000000000000000014705505552030672 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/inv3sntrupP/avx/r3_recipgen.py0000755000000000000000000002720714705505552022546 0ustar rootroot#!/usr/bin/env python3 import re import sys from math import ceil p = int(sys.argv[1]) numvec = ceil(p/256) ppad = 256*numvec # see comment below about order of coefficients f = [-1,-1] + [0]*(p-2) + [1] f = list(reversed(f)) while len(f)%256: f += [0] f0 = [] for j in range(len(f)//256): for i in range(4): for k in range(64): f0 += [f[j*256+i+k*4]] f1 = [1 if f0i<0 else 0 for f0i in f0] f0 = [f0i&1 for f0i in f0] # ---------- utility functions out = """\ // 20240812 djb: more cryptoint usage #include "crypto_core.h" #include #include "crypto_int8.h" #define int8 crypto_int8 typedef int8 small; #include "crypto_int32.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define p P #define ppad PPAD #define numvec NUMVEC typedef __m256i vec256; /* This code stores PPAD-coeff poly as vec256[NUMVEC]. Order of 256 coefficients in each vec256 is optimized in light of costs of vector instructions: 0,4,...,252 in 64-bit word; 1,5,...,253 in 64-bit word; 2,6,...,254 in 64-bit word; 3,7,...,255 in 64-bit word. */ static inline void vec256_frombits(vec256 *v,const small *b) { int i; for (i = 0;i < numvec;++i) { vec256 b0 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 0,1,...,31 */ vec256 b1 = _mm256_loadu_si256((vec256 *) b); b += 32; /* 32,33,... */ vec256 b2 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b3 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b4 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b5 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b6 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 b7 = _mm256_loadu_si256((vec256 *) b); b += 32; vec256 c0 = _mm256_unpacklo_epi32(b0,b1); /* 0 1 2 3 32 33 34 35 4 5 6 7 36 37 38 39 ... 55 */ vec256 c1 = _mm256_unpackhi_epi32(b0,b1); /* 8 9 10 11 40 41 42 43 ... 63 */ vec256 c2 = _mm256_unpacklo_epi32(b2,b3); vec256 c3 = _mm256_unpackhi_epi32(b2,b3); vec256 c4 = _mm256_unpacklo_epi32(b4,b5); vec256 c5 = _mm256_unpackhi_epi32(b4,b5); vec256 c6 = _mm256_unpacklo_epi32(b6,b7); vec256 c7 = _mm256_unpackhi_epi32(b6,b7); vec256 d0 = c0 | _mm256_slli_epi32(c1,2); /* 0 8, 1 9, 2 10, 3 11, 32 40, 33 41, ..., 55 63 */ vec256 d2 = c2 | _mm256_slli_epi32(c3,2); vec256 d4 = c4 | _mm256_slli_epi32(c5,2); vec256 d6 = c6 | _mm256_slli_epi32(c7,2); vec256 e0 = _mm256_unpacklo_epi64(d0,d2); vec256 e2 = _mm256_unpackhi_epi64(d0,d2); vec256 e4 = _mm256_unpacklo_epi64(d4,d6); vec256 e6 = _mm256_unpackhi_epi64(d4,d6); vec256 f0 = e0 | _mm256_slli_epi32(e2,1); vec256 f4 = e4 | _mm256_slli_epi32(e6,1); vec256 g0 = _mm256_permute2x128_si256(f0,f4,0x20); vec256 g4 = _mm256_permute2x128_si256(f0,f4,0x31); vec256 h = g0 | _mm256_slli_epi32(g4,4); #define TRANSPOSE _mm256_set_epi8( 31,27,23,19, 30,26,22,18, 29,25,21,17, 28,24,20,16, 15,11,7,3, 14,10,6,2, 13,9,5,1, 12,8,4,0 ) h = _mm256_shuffle_epi8(h,TRANSPOSE); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi32(h,0xd8); *v++ = h; } } static inline void vec256_tobits(const vec256 *v,small *b) { int i; for (i = 0;i < numvec;++i) { vec256 h = *v++; h = _mm256_shuffle_epi32(h,0xd8); h = _mm256_permute4x64_epi64(h,0xd8); h = _mm256_shuffle_epi8(h,TRANSPOSE); vec256 g0 = h & _mm256_set1_epi8(15); vec256 g4 = _mm256_srli_epi32(h,4) & _mm256_set1_epi8(15); vec256 f0 = _mm256_permute2x128_si256(g0,g4,0x20); vec256 f4 = _mm256_permute2x128_si256(g0,g4,0x31); vec256 e0 = f0 & _mm256_set1_epi8(5); vec256 e2 = _mm256_srli_epi32(f0,1) & _mm256_set1_epi8(5); vec256 e4 = f4 & _mm256_set1_epi8(5); vec256 e6 = _mm256_srli_epi32(f4,1) & _mm256_set1_epi8(5); vec256 d0 = _mm256_unpacklo_epi32(e0,e2); vec256 d2 = _mm256_unpackhi_epi32(e0,e2); vec256 d4 = _mm256_unpacklo_epi32(e4,e6); vec256 d6 = _mm256_unpackhi_epi32(e4,e6); vec256 c0 = d0 & _mm256_set1_epi8(1); vec256 c1 = _mm256_srli_epi32(d0,2) & _mm256_set1_epi8(1); vec256 c2 = d2 & _mm256_set1_epi8(1); vec256 c3 = _mm256_srli_epi32(d2,2) & _mm256_set1_epi8(1); vec256 c4 = d4 & _mm256_set1_epi8(1); vec256 c5 = _mm256_srli_epi32(d4,2) & _mm256_set1_epi8(1); vec256 c6 = d6 & _mm256_set1_epi8(1); vec256 c7 = _mm256_srli_epi32(d6,2) & _mm256_set1_epi8(1); vec256 b0 = _mm256_unpacklo_epi64(c0,c1); vec256 b1 = _mm256_unpackhi_epi64(c0,c1); vec256 b2 = _mm256_unpacklo_epi64(c2,c3); vec256 b3 = _mm256_unpackhi_epi64(c2,c3); vec256 b4 = _mm256_unpacklo_epi64(c4,c5); vec256 b5 = _mm256_unpackhi_epi64(c4,c5); vec256 b6 = _mm256_unpacklo_epi64(c6,c7); vec256 b7 = _mm256_unpackhi_epi64(c6,c7); _mm256_storeu_si256((vec256 *) b,b0); b += 32; _mm256_storeu_si256((vec256 *) b,b1); b += 32; _mm256_storeu_si256((vec256 *) b,b2); b += 32; _mm256_storeu_si256((vec256 *) b,b3); b += 32; _mm256_storeu_si256((vec256 *) b,b4); b += 32; _mm256_storeu_si256((vec256 *) b,b5); b += 32; _mm256_storeu_si256((vec256 *) b,b6); b += 32; _mm256_storeu_si256((vec256 *) b,b7); b += 32; } } static void vec256_init(vec256 *G0,vec256 *G1,const small *s) { int i; small srev[ppad+(ppad-p)]; small si; small g0[ppad]; small g1[ppad]; for (i = 0;i < p;++i) srev[ppad-1-i] = s[i]; for (i = 0;i < ppad-p;++i) srev[i] = 0; for (i = p;i < ppad;++i) srev[i+ppad-p] = 0; for (i = 0;i < ppad;++i) { si = srev[i+ppad-p]; g0[i] = crypto_int8_bottombit_01(si); g1[i] = (si >> 1) & g0[i]; } vec256_frombits(G0,g0); vec256_frombits(G1,g1); } static void vec256_final(small *out,const vec256 *V0,const vec256 *V1) { int i; small v0[ppad]; small v1[ppad]; small v[ppad]; small vrev[ppad+(ppad-p)]; vec256_tobits(V0,v0); vec256_tobits(V1,v1); for (i = 0;i < ppad;++i) v[i] = v0[i] + 2*v1[i] - 4*(v0[i]&v1[i]); for (i = 0;i < ppad;++i) vrev[i] = v[ppad-1-i]; for (i = ppad;i < ppad+(ppad-p);++i) vrev[i] = 0; for (i = 0;i < p;++i) out[i] = vrev[i+ppad-p]; } static inline void vec256_swap(vec256 *f,vec256 *g,int len,vec256 mask) { vec256 flip; int i; for (i = 0;i < len;++i) { flip = mask & (f[i] ^ g[i]); f[i] ^= flip; g[i] ^= flip; } } static inline void vec256_scale(vec256 *f0,vec256 *f1,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < numvec;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; f0i &= c0; f1i ^= c1; f1i &= f0i; f0[i] = f0i; f1[i] = f1i; } } static inline void vec256_eliminate(vec256 *f0,vec256 *f1,vec256 *g0,vec256 *g1,int len,const vec256 c0,const vec256 c1) { int i; for (i = 0;i < len;++i) { vec256 f0i = f0[i]; vec256 f1i = f1[i]; vec256 g0i = g0[i]; vec256 g1i = g1[i]; vec256 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } static inline int vec256_bit0mask(vec256 *f) { return crypto_int32_bottombit_mask(_mm_cvtsi128_si32(_mm256_castsi256_si128(f[0]))); } """ # ---------- divx for j in range(1,numvec+1): out += 'static inline void vec256_divx_%d(vec256 *f)\n' % j out += '{\n' for i in range(j): out += ' vec256 f%d = f[%d];\n' % (i,i) out += '\n' for i in range(j): out += ' unsigned long long low%d = _mm_cvtsi128_si64(_mm256_castsi256_si128(f%d));\n' % (i,i) out += '\n' for i in range(j): if i == j-1: out += ' low%d = low%d >> 1;\n' % (i,i) else: out += ' low%d = (low%d >> 1) | crypto_uint64_shlmod(low%d,63);\n' % (i,i,i+1) out += '\n' for i in range(j): out += ' f%d = _mm256_blend_epi32(f%d,_mm256_set_epi64x(0,0,0,low%d),0x3);\n' % (i,i,i) out += '\n' for i in range(j): out += ' f[%d] = _mm256_permute4x64_epi64(f%d,0x39);\n' % (i,i) out += '}\n' out += '\n' # ---------- for j in range(1,numvec+1): out += 'static inline void vec256_timesx_%d(vec256 *f)\n' % j out += '{\n' for i in range(j): out += ' vec256 f%d = _mm256_permute4x64_epi64(f[%d],0x93);\n' % (i,i) out += '\n' for i in range(j): if (j,i) in [(3,0),(3,1)]: # XXX: search through subsets for optimal timings out += ' unsigned long long low%d = *(unsigned long long *) &f%d;\n' % (i,i) else: out += ' unsigned long long low%d = _mm_cvtsi128_si64(_mm256_castsi256_si128(f%d));\n' % (i,i) out += '\n' for i in reversed(range(j)): if i == 0: out += ' low%d = low%d << 1;\n' % (i,i) else: out += ' low%d = (low%d << 1) | crypto_int64_negative_01(low%d);\n' % (i,i,i-1) out += '\n' for i in range(j): if (j,i) in [(3,0),(3,1)]: # XXX: search through subsets for optimal timings out += ' *(unsigned long long *) &f%d = low%d;\n' % (i,i) else: out += ' f%d = _mm256_blend_epi32(f%d,_mm256_set_epi64x(0,0,0,low%d),0x3);\n' % (i,i,i) out += '\n' for i in range(j): out += ' f[%d] = f%d;\n' % (i,i) out += '}\n' out += '\n' # ---------- reciprocal initialization out += """ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *out = (void *) outbytes; small *in = (void *) inbytes; vec256 F0[numvec]; vec256 F1[numvec]; vec256 G0[numvec]; vec256 G1[numvec]; vec256 V0[numvec]; vec256 V1[numvec]; vec256 R0[numvec]; vec256 R1[numvec]; vec256 c0vec,c1vec; int loop; int c0,c1; int minusdelta = -1; int swapmask; vec256 swapvec; vec256_init(G0,G1,in); """ for name,bits in [('F0',f0),('F1',f1)]: for j in range(len(bits)//256): u = [] for k in range(j*256,j*256+256,32): u = [sum(bits[k+i]< 0: vvec,gvec = vvecgvec[0] loops = 1 while loops < len(vvecgvec) and vvecgvec[loops] == (vvec,gvec): loops += 1 out += """ for (loop = %d;loop > 0;--loop) { vec256_timesx_%d(V0); vec256_timesx_%d(V1); swapmask = crypto_int32_negative_mask(minusdelta) & vec256_bit0mask(G0); c0 = vec256_bit0mask(F0) & vec256_bit0mask(G0); c1 = vec256_bit0mask(F1) ^ vec256_bit0mask(G1); c1 &= c0; minusdelta ^= swapmask & (minusdelta ^ -minusdelta); minusdelta -= 1; swapvec = _mm256_set1_epi32(swapmask); vec256_swap(F0,G0,%d,swapvec); vec256_swap(F1,G1,%d,swapvec); c0vec = _mm256_set1_epi32(c0); c1vec = _mm256_set1_epi32(c1); vec256_eliminate(F0,F1,G0,G1,%d,c0vec,c1vec); vec256_divx_%d(G0); vec256_divx_%d(G1); vec256_swap(V0,R0,%d,swapvec); vec256_swap(V1,R1,%d,swapvec); vec256_eliminate(V0,V1,R0,R1,%d,c0vec,c1vec); } """ % (loops,vvec,vvec,gvec,gvec,gvec,gvec,gvec,vvec,vvec,vvec) vvecgvec = vvecgvec[loops:] # ---------- reciprocal finalization out += """ c0vec = _mm256_set1_epi32(vec256_bit0mask(F0)); c1vec = _mm256_set1_epi32(vec256_bit0mask(F1)); vec256_scale(V0,V1,c0vec,c1vec); vec256_final(out,V0,V1); out[p] = crypto_int32_negative_mask(minusdelta); }\ """ out = re.sub(r'\bP\b',str(p),out) out = re.sub(r'\bPPAD\b',str(ppad),out) out = re.sub(r'\bNUMVEC\b',str(numvec),out) print(out) libntruprime-20241021/src/core/inv3sntrupP/bits64/0000755000000000000000000000000014705505552020276 5ustar rootrootlibntruprime-20241021/src/core/inv3sntrupP/bits64/params.h0000644000000000000000000000012114705505552021724 0ustar rootroot#ifndef params_H #define params_H #define p {P} #define ppad64 {PPAD64} #endif libntruprime-20241021/src/core/inv3sntrupP/bits64/recip.c0000644000000000000000000000661214705505552021551 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include "params.h" #include "crypto_int8.h" #include "crypto_int16.h" #include "crypto_int64.h" #include "crypto_uint64.h" #define int8 crypto_int8 #define int16 crypto_int16 #define int64 crypto_int64 #define uint64 crypto_uint64 #define bitvec_len (ppad64>>6) typedef uint64 bitvec[bitvec_len]; static inline int8 bitvec_bot(bitvec v) { return crypto_uint64_bottombit_01(v[0]); } static inline int8 bitvec_get(bitvec v,int pos) { return crypto_uint64_bitmod_01(v[pos>>6],pos); } static inline void bitvec_set(bitvec v,int pos,int8 bit) { bit ^= bitvec_get(v,pos); v[pos>>6] ^= crypto_uint64_shlmod(bit,pos); } static void bitvec_zero(bitvec v) { int i; for (i = 0;i < bitvec_len;++i) v[i] = 0; } static void bitvec_shiftup(bitvec v) { int i; for (i = bitvec_len-1;i > 0;--i) v[i] = (v[i]<<1)|crypto_int64_negative_01(v[i-1]); v[0] <<= 1; } static void bitvec_shiftdown(bitvec v) { int i; for (i = 0;i < bitvec_len-1;++i) v[i] = (v[i]>>1)|(crypto_int64_shlmod(v[i+1],63)); v[bitvec_len-1] >>= 1; } static void bitvec_condswap(bitvec v,bitvec w,int64 swap) { int i; for (i = 0;i < bitvec_len;++i) { uint64 t = swap&(v[i]^w[i]); v[i] ^= t; w[i] ^= t; } } static void bitvec_eliminate(bitvec f0,bitvec f1,bitvec g0,bitvec g1,uint64 c0,uint64 c1) { int i; c0 = -c0; c1 = -c1; for (i = 0;i < bitvec_len;++i) { uint64 f0i = f0[i]; uint64 f1i = f1[i]; uint64 g0i = g0[i]; uint64 g1i = g1[i]; uint64 t; f0i &= c0; f1i ^= c1; f1i &= f0i; t = g0i ^ f0i; g0[i] = t | (g1i ^ f1i); g1[i] = (g1i ^ f0i) & (f1i ^ t); } } /* byte p of output is 0 if recip succeeded; else -1 */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int8 *out = (void *) outbytes; int8 *in = (void *) inbytes; bitvec f0,f1,g0,g1,v0,v1,r0,r1; int i,loop,delta; int8 sign0,sign1; int swap; bitvec_zero(v0); bitvec_zero(v1); bitvec_zero(r0); bitvec_zero(r1); bitvec_set(r0,0,1); bitvec_zero(f0); bitvec_zero(f1); bitvec_set(f0,0,1); bitvec_set(f0,p-1,1); bitvec_set(f1,p-1,1); bitvec_set(f0,p,1); bitvec_set(f1,p,1); bitvec_zero(g0); bitvec_zero(g1); for (i = 0;i < p;++i) { int8 x0 = crypto_int8_bottombit_01(in[i]); int8 x1 = x0&(in[i]>>1); bitvec_set(g0,p-1-i,x0); bitvec_set(g1,p-1-i,x1); } bitvec_set(g0,p,0); bitvec_set(g1,p,0); delta = 1; for (loop = 0;loop < 2*p-1;++loop) { bitvec_shiftup(v0); bitvec_shiftup(v1); /* note: this sign is f0g0 _without_ negation */ sign0 = bitvec_bot(g0)&bitvec_bot(f0); sign1 = (bitvec_bot(g1)^bitvec_bot(f1))&sign0; swap = crypto_int16_positive_mask(delta) & crypto_int16_nonzero_mask(bitvec_bot(g0)); delta ^= swap&(delta^-delta); delta += 1; bitvec_condswap(f0,g0,swap); bitvec_condswap(f1,g1,swap); bitvec_condswap(v0,r0,swap); bitvec_condswap(v1,r1,swap); bitvec_eliminate(f0,f1,g0,g1,sign0,sign1); bitvec_eliminate(v0,v1,r0,r1,sign0,sign1); bitvec_shiftdown(g0); bitvec_shiftdown(g1); } sign0 = bitvec_bot(f0); sign1 = bitvec_bot(f1); for (i = 0;i < p;++i) { int8 m0 = bitvec_get(v0,p-1-i); int8 m1 = bitvec_get(v1,p-1-i); m0 &= sign0; m1 ^= sign1; m1 &= m0; out[i] = m0-2*m1; } out[p] = crypto_int16_nonzero_mask(delta); } libntruprime-20241021/src/core/invsntrupP/0000755000000000000000000000000014705505552017100 5ustar rootrootlibntruprime-20241021/src/core/invsntrupP/avx/0000755000000000000000000000000014705505552017676 5ustar rootrootlibntruprime-20241021/src/core/invsntrupP/avx/architectures0000777000000000000000000000000014705505552030607 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/invsntrupP/avx/params.h0000644000000000000000000000064714705505552021341 0ustar rootroot#ifndef params_H #define params_H #define p {P} #define ppad {PPAD} #define q {Q} #define qinv {QINV} /* reciprocal of q mod 2^16 */ #define q14 {Q14} /* closest integer to 2^14/q */ #define q18 {Q18} /* closest integer to 2^18/q */ #define q27 {Q27} /* closest integer to 2^27/q */ #define q31 {Q31} /* floor(2^31/q) */ #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #endif libntruprime-20241021/src/core/invsntrupP/avx/recip.c0000644000000000000000000001144214705505552021146 0ustar rootroot// 20240806 djb: some automated conversion to cryptoint #include #include "crypto_int8.h" #include "crypto_int16.h" #include "crypto_int32.h" #include "crypto_int64.h" #define int8 crypto_int8 #define int16 crypto_int16 #define int32 crypto_int32 #include "crypto_core.h" #include "params.h" /* ----- arithmetic mod q */ typedef int8 small; typedef int16 Fq; /* always represented as -(q-1)/2...(q-1)/2 */ /* works for -7000000 < x < 7000000 if q in 4591, 4621, 5167, 6343, 7177, 7879 */ static Fq Fq_freeze(int32 x) { x -= q*((q18*x)>>18); x -= q*((q27*x+67108864)>>27); return x; } static Fq Fq_bigfreeze(int32 x) { x -= q*((q14*x)>>14); x -= q*((q18*x)>>18); x -= q*((q27*x+67108864)>>27); x -= q*((q27*x+67108864)>>27); return x; } /* nonnegative e */ static Fq Fq_pow(Fq a,int e) { if (e == 0) return 1; if (e == 1) return a; if (crypto_int64_bottombit_01(e)) return Fq_bigfreeze(a*(int32)Fq_pow(a,e-1)); a = Fq_bigfreeze(a*(int32)a); return Fq_pow(a,e>>1); } static Fq Fq_recip(Fq a) { return Fq_pow(a,q-2); } /* ----- more */ #define qvec _mm256_set1_epi16(q) #define qinvvec _mm256_set1_epi16(qinv) static inline __m256i montproduct(__m256i x,__m256i y,__m256i yqinv) { __m256i hi,d,e; d = _mm256_mullo_epi16(x,yqinv); hi = _mm256_mulhi_epi16(x,y); e = _mm256_mulhi_epi16(d,qvec); return _mm256_sub_epi16(hi,e); } static inline void vectormodq_swapeliminate(Fq *f,Fq *g,int len,const Fq f0,const Fq g0,int mask) { __m256i f0vec = _mm256_set1_epi16(f0); __m256i g0vec = _mm256_set1_epi16(g0); __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec); __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec); __m256i maskvec = _mm256_set1_epi32(mask); while (len > 0) { __m256i fi = _mm256_loadu_si256((__m256i *) f); __m256i gi = _mm256_loadu_si256((__m256i *) g); __m256i finew = _mm256_blendv_epi8(fi,gi,maskvec); __m256i ginew = _mm256_blendv_epi8(gi,fi,maskvec); ginew = _mm256_sub_epi16(montproduct(ginew,f0vec,f0vecqinv),montproduct(finew,g0vec,g0vecqinv)); _mm256_storeu_si256((__m256i *) f,finew); _mm256_storeu_si256((__m256i *) (g-1),ginew); f += 16; g += 16; len -= 16; } } static inline void vectormodq_xswapeliminate(Fq *f,Fq *g,int len,const Fq f0,const Fq g0,int mask) { __m256i f0vec = _mm256_set1_epi16(f0); __m256i g0vec = _mm256_set1_epi16(g0); __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec); __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec); __m256i maskvec = _mm256_set1_epi32(mask); f += len + (-len & 15); g += len + (-len & 15); while (len > 0) { f -= 16; g -= 16; len -= 16; __m256i fi = _mm256_loadu_si256((__m256i *) f); __m256i gi = _mm256_loadu_si256((__m256i *) g); __m256i finew = _mm256_blendv_epi8(fi,gi,maskvec); __m256i ginew = _mm256_blendv_epi8(gi,fi,maskvec); ginew = _mm256_sub_epi16(montproduct(ginew,f0vec,f0vecqinv),montproduct(finew,g0vec,g0vecqinv)); _mm256_storeu_si256((__m256i *) (f+1),finew); _mm256_storeu_si256((__m256i *) g,ginew); } } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *in = (void *) inbytes; int loop; Fq out[p],f[ppad],g[ppad],v[ppad],r[ppad]; Fq f0,g0; Fq scale; int i; int delta = 1; int minusdelta; int fgflip; int swap; for (i = 0;i < ppad;++i) f[i] = 0; f[0] = 1; f[p-1] = -1; f[p] = -1; /* generalization: initialize f to reversal of any deg-p polynomial m */ for (i = 0;i < p;++i) g[i] = in[p-1-i]; for (i = p;i < ppad;++i) g[i] = 0; for (i = 0;i < ppad;++i) r[i] = 0; r[0] = Fq_recip(3); for (i = 0;i < ppad;++i) v[i] = 0; for (loop = 0;loop < p;++loop) { g0 = Fq_freeze(g[0]); f0 = f[0]; if (q > 5167) f0 = Fq_freeze(f0); minusdelta = -delta; swap = crypto_int16_negative_mask(minusdelta) & crypto_int16_nonzero_mask(g0); delta ^= swap & (delta ^ minusdelta); delta += 1; fgflip = swap & (f0 ^ g0); f0 ^= fgflip; g0 ^= fgflip; f[0] = f0; vectormodq_swapeliminate(f+1,g+1,p,f0,g0,swap); vectormodq_xswapeliminate(v,r,loop+1,f0,g0,swap); } for (loop = p-1;loop > 0;--loop) { g0 = Fq_freeze(g[0]); f0 = f[0]; if (q > 5167) f0 = Fq_freeze(f0); minusdelta = -delta; swap = crypto_int16_negative_mask(minusdelta) & crypto_int16_nonzero_mask(g0); delta ^= swap & (delta ^ minusdelta); delta += 1; fgflip = swap & (f0 ^ g0); f0 ^= fgflip; g0 ^= fgflip; f[0] = f0; vectormodq_swapeliminate(f+1,g+1,loop,f0,g0,swap); vectormodq_xswapeliminate(v,r,p,f0,g0,swap); } scale = Fq_recip(Fq_freeze(f[0])); for (i = 0;i < p;++i) out[i] = Fq_bigfreeze(scale*(int32)Fq_freeze(v[p-i])); crypto_encode_pxint16(outbytes,out); outbytes[2*p] = crypto_int16_nonzero_mask(delta); } libntruprime-20241021/src/core/invsntrupP/portable/0000755000000000000000000000000014705505552020710 5ustar rootrootlibntruprime-20241021/src/core/invsntrupP/portable/params.h0000777000000000000000000000000014705505552025006 2../avx/params.hustar rootrootlibntruprime-20241021/src/core/invsntrupP/portable/recip.c0000644000000000000000000000756714705505552022175 0ustar rootroot// 20240806 djb: some automated conversion to cryptoint #include "crypto_int8.h" #include "crypto_int16.h" #include "crypto_int32.h" #include "crypto_int64.h" #define int8 crypto_int8 #define int16 crypto_int16 #define int32 crypto_int32 #include "crypto_core.h" #include "params.h" /* ----- arithmetic mod q */ typedef int8 small; typedef int16 Fq; /* always represented as -(q-1)/2...(q-1)/2 */ /* works for -7000000 < x < 7000000 if q in 4591, 4621, 5167, 6343, 7177, 7879 */ static Fq Fq_freeze(int32 x) { x -= q*((q18*x)>>18); x -= q*((q27*x+67108864)>>27); return x; } static Fq Fq_bigfreeze(int32 x) { x -= q*((q14*x)>>14); x -= q*((q18*x)>>18); x -= q*((q27*x+67108864)>>27); x -= q*((q27*x+67108864)>>27); return x; } /* nonnegative e */ static Fq Fq_pow(Fq a,int e) { if (e == 0) return 1; if (e == 1) return a; if (crypto_int64_bottombit_01(e)) return Fq_bigfreeze(a*(int32)Fq_pow(a,e-1)); a = Fq_bigfreeze(a*(int32)a); return Fq_pow(a,e>>1); } static Fq Fq_recip(Fq a) { return Fq_pow(a,q-2); } /* ----- more */ static inline Fq montproduct(Fq x,Fq y,Fq yqinv) { Fq d = x*yqinv; Fq hi = (((crypto_int32) x)*((crypto_int32) y))>>16; Fq e = (((crypto_int32) d)*((crypto_int32) q))>>16; return hi-e; } static inline void vectormodq_swapeliminate(Fq *f,Fq *g,int len,const Fq f0,const Fq g0,int mask) { Fq f0qinv = f0*qinv; Fq g0qinv = g0*qinv; Fq fi,gi,finew,ginew; while (len > 0) { fi = f[0]; gi = g[0]; finew = (fi&~mask)|(gi&mask); ginew = (gi&~mask)|(fi&mask); ginew = montproduct(ginew,f0,f0qinv)-montproduct(finew,g0,g0qinv); f[0] = finew; g[-1] = ginew; ++f; ++g; --len; } } static inline void vectormodq_xswapeliminate(Fq *f,Fq *g,int len,const Fq f0,const Fq g0,int mask) { Fq f0qinv = f0*qinv; Fq g0qinv = g0*qinv; Fq fi,gi,finew,ginew; f += len; g += len; while (len > 0) { --f; --g; --len; fi = f[0]; gi = g[0]; finew = (fi&~mask)|(gi&mask); ginew = (gi&~mask)|(fi&mask); ginew = montproduct(ginew,f0,f0qinv)-montproduct(finew,g0,g0qinv); f[1] = finew; g[0] = ginew; } } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *in = (void *) inbytes; int loop; Fq out[p],f[ppad],g[ppad],v[ppad],r[ppad]; Fq f0,g0; Fq scale; int i; int delta = 1; int minusdelta; int fgflip; int swap; for (i = 0;i < ppad;++i) f[i] = 0; f[0] = 1; f[p-1] = -1; f[p] = -1; /* generalization: initialize f to reversal of any deg-p polynomial m */ for (i = 0;i < p;++i) g[i] = in[p-1-i]; for (i = p;i < ppad;++i) g[i] = 0; for (i = 0;i < ppad;++i) r[i] = 0; r[0] = Fq_recip(3); for (i = 0;i < ppad;++i) v[i] = 0; for (loop = 0;loop < p;++loop) { g0 = Fq_freeze(g[0]); f0 = f[0]; if (q > 5167) f0 = Fq_freeze(f0); minusdelta = -delta; swap = crypto_int16_negative_mask(minusdelta) & crypto_int16_nonzero_mask(g0); delta ^= swap & (delta ^ minusdelta); delta += 1; fgflip = swap & (f0 ^ g0); f0 ^= fgflip; g0 ^= fgflip; f[0] = f0; vectormodq_swapeliminate(f+1,g+1,p,f0,g0,swap); vectormodq_xswapeliminate(v,r,loop+1,f0,g0,swap); } for (loop = p-1;loop > 0;--loop) { g0 = Fq_freeze(g[0]); f0 = f[0]; if (q > 5167) f0 = Fq_freeze(f0); minusdelta = -delta; swap = crypto_int16_negative_mask(minusdelta) & crypto_int16_nonzero_mask(g0); delta ^= swap & (delta ^ minusdelta); delta += 1; fgflip = swap & (f0 ^ g0); f0 ^= fgflip; g0 ^= fgflip; f[0] = f0; vectormodq_swapeliminate(f+1,g+1,loop,f0,g0,swap); vectormodq_xswapeliminate(v,r,p,f0,g0,swap); } scale = Fq_recip(Fq_freeze(f[0])); for (i = 0;i < p;++i) out[i] = Fq_bigfreeze(scale*(int32)Fq_freeze(v[p-i])); crypto_encode_pxint16(outbytes,out); outbytes[2*p] = crypto_int16_nonzero_mask(delta); } libntruprime-20241021/src/core/mult3sntrupP/0000755000000000000000000000000014705505552017350 5ustar rootrootlibntruprime-20241021/src/core/mult3sntrupP/avx/0000755000000000000000000000000014705505552020146 5ustar rootrootlibntruprime-20241021/src/core/mult3sntrupP/avx/architectures0000777000000000000000000000000014705505552031057 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/mult3sntrupP/avx/mult1024.c0000644000000000000000000001603114705505552021603 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(32))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); /* XXX: try arbitrary-degree Karatsuba */ for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #define p {P} static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/src/core/mult3sntrupP/avx/mult1280.c0000644000000000000000000003030014705505552021602 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0) #define mask2 _mm256_set_epi16(0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0) #define mask3 _mm256_set_epi16(0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0) #define mask4 _mm256_set_epi16(0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0) static void good(int16 fpad[5][512],const int16 f[1280]) { int j; int16x16 f0,f1,f2; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); j += 16; } for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)); j += 16; if (j == 512) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)); j += 16; } } static void ungood(int16 f[2560],const int16 fpad[5][512]) { int j; int16x16 f0,f1,f2,f3,f4,g0,g1,g2,g3,g4; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g1 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g2 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g3 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; /* same as (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g1 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g2 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g3 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g1 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g2 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g3 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g2 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g3 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g1 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g2 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g3 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; } } #define ALIGNED __attribute((aligned(32))) static void mult1280(int16 h[2560],const int16 f[1280],const int16 g[1280]) { ALIGNED int16 fgpad[10][512]; #define fpad fgpad #define gpad (fgpad+5) #define hpad fpad ALIGNED int16 h_7681[2560]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],10); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 f4 = squeeze_7681_x16(load_x16(&fpad[4][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 g4 = squeeze_7681_x16(load_x16(&gpad[4][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d4 = mulmod_7681_x16(f4,g4); int16x16 dsum; int16x16 h0,h1,h2,h3,h4; dsum = add_x16(add_x16(d0,d1),d2); dsum = squeeze_7681_x16(dsum); dsum = add_x16(add_x16(d3,d4),dsum); dsum = squeeze_7681_x16(dsum); /* could save one mult here using sum hi = (sum fi)(sum gi) */ h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f1),sub_x16(g1,g4))); h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f0),sub_x16(g0,g2))); h3 = add_x16(dsum,mulmod_7681_x16(sub_x16(f3,f0),sub_x16(g0,g3))); h4 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f0),sub_x16(g0,g4))); h0 = add_x16(h0,mulmod_7681_x16(sub_x16(f3,f2),sub_x16(g2,g3))); h1 = add_x16(h1,mulmod_7681_x16(sub_x16(f4,f2),sub_x16(g2,g4))); h2 = add_x16(h2,mulmod_7681_x16(sub_x16(f4,f3),sub_x16(g3,g4))); h3 = add_x16(h3,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); h4 = add_x16(h4,mulmod_7681_x16(sub_x16(f3,f1),sub_x16(g1,g3))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); store_x16(&hpad[4][i],squeeze_7681_x16(h4)); } invntt512_7681(hpad[0],5); ungood(h_7681,hpad); for (i = 0;i < 2560;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #define p {P} static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1280]; ALIGNED int16 g[1280]; ALIGNED int16 fg[2560]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1280;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1280;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1280(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1280;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/src/core/mult3sntrupP/avx/mult768.c0000644000000000000000000001504114705505552021541 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static int16x16 squeeze_3_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3))); } static int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0) #define mask2 _mm256_set_epi16(0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0) static void good(int16 fpad[3][512],const int16 f[768]) { int j; int16x16 f0,f1; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask0)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); j += 16; } for (;;) { f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask2); store_x16(&fpad[1][j],f0&mask0); store_x16(&fpad[2][j],f0&mask1); j += 16; if (j == 512) break; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask1); store_x16(&fpad[1][j],f0&mask2); store_x16(&fpad[2][j],f0&mask0); j += 16; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask0); store_x16(&fpad[1][j],f0&mask1); store_x16(&fpad[2][j],f0&mask2); j += 16; } } static void ungood(int16 f[1536],const int16 fpad[3][512]) { int j; int16x16 f0,f1,f2,g0,g1,g2; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2); g1 = (f0&mask1)|(f1&mask2)|(f2&mask0); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask2)|(f1&mask0)|(f2&mask1) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask2)|(f1&mask0)|(f2&mask1); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask1)|(f1&mask2)|(f2&mask0) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask0); g1 = (f0&mask2)|(f1&mask0)|(f2&mask1); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask0)|(f1&mask1)|(f2&mask2) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; } } #define ALIGNED __attribute((aligned(32))) static void mult768(int16 h[1536],const int16 f[768],const int16 g[768]) { ALIGNED int16 fgpad[6][512]; #define fpad fgpad #define gpad (fgpad+3) #define hpad fpad ALIGNED int16 h_7681[1536]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); } invntt512_7681(hpad[0],3); ungood(h_7681,hpad); for (i = 0;i < 1536;i += 16) { int16x16 u = load_x16(&h_7681[i]); u = mulmod_7681_x16(u,const_x16(956)); store_x16(&h[i],u); } } #include "crypto_core.h" #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #define p {P} static inline int16x16 freeze_3_x16(int16x16 x) { int16x16 mask, x3; x = add_x16(x,const_x16(3)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16(2))); x3 = sub_x16(x,const_x16(3)); x = _mm256_blendv_epi8(x3,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[768]; ALIGNED int16 g[768]; ALIGNED int16 fg[1536]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 768;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 768;i += 16) store_x16(&g[i],x); for (i = 0;i < p;++i) { int8 fi = inbytes[i]; int8 fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult768(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 768;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_3_x16(squeeze_3_x16(x)); store_x16(&h[i],x); } for (i = 0;i < p;++i) outbytes[i] = h[i]; } libntruprime-20241021/src/core/mult3sntrupP/avx/ntt.c0000644000000000000000000031121214705505552021117 0ustar rootroot// linker define ntt512_7681 // linker define invntt512_7681 #include "ntt.h" // auto-generated; do not edit #include #define _mm256_permute2x128_si256_lo(f0,f1) _mm256_permute2x128_si256(f0,f1,0x20) #define _mm256_permute2x128_si256_hi(f0,f1) _mm256_permute2x128_si256(f0,f1,0x31) #define int16x16 __m256i typedef int16_t int16; typedef int32_t int32; static const int16 __attribute((aligned(32))) qdata_7681[] = { #define precomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+0) -3593,-3593,-3593,-3593,-3625,-3625,-3625,-3625,-3593,-3593,-3593,-3593,-3625,-3625,-3625,-3625, #define precomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+16) -3777,-3777,-3777,-3777,3182,3182,3182,3182,-3777,-3777,-3777,-3777,3182,3182,3182,3182, #define precomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+32) -3593,-3593,-3593,-3593,-3182,-3182,-3182,-3182,-3593,-3593,-3593,-3593,-3182,-3182,-3182,-3182, #define precomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+48) 3777,3777,3777,3777,3625,3625,3625,3625,3777,3777,3777,3777,3625,3625,3625,3625, #define precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+64) -3593,-3593,-3593,-3593,2194,2194,2194,2194,-3593,-3593,-3593,-3593,2194,2194,2194,2194, #define precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+80) -3625,-3625,-3625,-3625,-1100,-1100,-1100,-1100,-3625,-3625,-3625,-3625,-1100,-1100,-1100,-1100, #define precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+96) -3593,-3593,-3593,-3593,3696,3696,3696,3696,-3593,-3593,-3593,-3593,3696,3696,3696,3696, #define precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+112) -3182,-3182,-3182,-3182,-2456,-2456,-2456,-2456,-3182,-3182,-3182,-3182,-2456,-2456,-2456,-2456, #define precomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+128) -3593,1701,2194,834,-3625,2319,-1100,121,-3593,1701,2194,834,-3625,2319,-1100,121, #define precomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+144) -3777,1414,2456,2495,3182,2876,-3696,2250,-3777,1414,2456,2495,3182,2876,-3696,2250, #define precomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+160) -3593,-2250,3696,-2876,-3182,-2495,-2456,-1414,-3593,-2250,3696,-2876,-3182,-2495,-2456,-1414, #define precomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+176) 3777,-121,1100,-2319,3625,-834,-2194,-1701,3777,-121,1100,-2319,3625,-834,-2194,-1701, #define precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+192) -3593,3364,1701,-1599,2194,2557,834,-2816,-3593,3364,1701,-1599,2194,2557,834,-2816, #define precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+208) -3625,617,2319,2006,-1100,-1296,121,1986,-3625,617,2319,2006,-1100,-1296,121,1986, #define precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+224) -3593,2237,-2250,-1483,3696,3706,-2876,1921,-3593,2237,-2250,-1483,3696,3706,-2876,1921, #define precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+240) -3182,2088,-2495,-1525,-2456,1993,-1414,2830,-3182,2088,-2495,-1525,-2456,1993,-1414,2830, #define precomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+256) -3593,514,3364,438,1701,2555,-1599,-1738,2194,103,2557,1881,834,-549,-2816,638, #define precomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+272) -3625,-1399,617,-1760,2319,2535,2006,3266,-1100,-1431,-1296,3174,121,3153,1986,-810, #define precomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+288) -3777,2956,-2830,-679,1414,2440,-1993,-3689,2456,2804,1525,3555,2495,1535,-2088,-7, #define precomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+304) 3182,-1321,-1921,-1305,2876,-3772,-3706,3600,-3696,-2043,1483,-396,2250,-2310,-2237,1887, #define precomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+320) -3593,-1887,2237,2310,-2250,396,-1483,2043,3696,-3600,3706,3772,-2876,1305,1921,1321, #define precomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+336) -3182,7,2088,-1535,-2495,-3555,-1525,-2804,-2456,3689,1993,-2440,-1414,679,2830,-2956, #define precomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+352) 3777,810,-1986,-3153,-121,-3174,1296,1431,1100,-3266,-2006,-2535,-2319,1760,-617,1399, #define precomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+368) 3625,-638,2816,549,-834,-1881,-2557,-103,-2194,1738,1599,-2555,-1701,-438,-3364,-514, #define precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+384) -3593,-1532,514,-373,3364,-3816,438,-3456,1701,783,2555,2883,-1599,727,-1738,-2385, #define precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+400) 2194,-2160,103,-2391,2557,2762,1881,-2426,834,3310,-549,-1350,-2816,1386,638,-194, #define precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+416) -3625,404,-1399,-3692,617,-2764,-1760,-1054,2319,1799,2535,-3588,2006,1533,3266,2113, #define precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+432) -1100,-2579,-1431,-1756,-1296,1598,3174,-2,121,-3480,3153,-2572,1986,2743,-810,2919, #define precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+448) -3593,2789,-1887,-921,2237,-1497,2310,-2133,-2250,-915,396,1390,-1483,3135,2043,-859, #define precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+464) 3696,2732,-3600,-1464,3706,2224,3772,-2665,-2876,1698,1305,2835,1921,730,1321,486, #define precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+480) -3182,3417,7,-3428,2088,-3145,-1535,1168,-2495,-3831,-3555,-3750,-1525,660,-2804,2649, #define precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+496) -2456,3405,3689,-1521,1993,1681,-2440,1056,-1414,1166,679,-2233,2830,2175,-2956,-1919, #define precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+512) -3593,-1404,-1532,451,514,-402,-373,1278,3364,-509,-3816,-3770,438,-2345,-3456,-226, #define precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+528) 1701,-1689,783,-1509,2555,2963,2883,1242,-1599,1669,727,2719,-1738,642,-2385,-436, #define precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+544) 2194,3335,-2160,1779,103,3745,-2391,17,2557,2812,2762,-1144,1881,83,-2426,-1181, #define precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+560) 834,-1519,3310,3568,-549,-796,-1350,2072,-2816,-2460,1386,2891,638,-2083,-194,-715, #define precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+576) -3593,-402,-3816,-226,2555,1669,-2385,1779,2557,83,3310,2072,638,1012,-3692,1295, #define precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+592) 2319,-3208,1533,-2071,-1431,-2005,-2,1586,1986,-293,1919,-929,-679,777,-1681,-3461, #define precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+608) 2456,3366,3750,-1203,1535,-3657,-3417,-1712,-1921,2515,2665,-1070,3600,2532,-3135,-2589, #define precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+624) 2250,-2258,921,-658,-514,509,3456,1509,1599,-642,2160,-17,-1881,1519,1350,-2891, #define precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+640) -3593,-3434,-1497,893,396,-2422,-859,2965,3706,-2339,1698,-2937,1321,-670,-3428,-3163, #define precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+656) -2495,-1072,660,1084,3689,-179,1056,-1338,2830,2786,-2919,-3677,-3153,-151,-1598,3334, #define precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+672) 1100,-3314,3588,2262,1760,-2230,-404,2083,2816,-3568,2426,-2812,-103,436,-727,-2963, #define precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+688) -1701,3770,373,1404,1887,-1649,2133,-826,1483,434,-2732,3287,-3772,-2378,-2835,3723, #define precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+704) -3593,658,2789,370,-1887,-3434,-921,-3752,2237,1649,-1497,2258,2310,3581,-2133,893, #define precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+720) -2250,3794,-915,826,396,2589,1390,592,-1483,-2422,3135,3214,2043,-434,-859,-2532, #define precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+736) 3696,1121,2732,2965,-3600,2998,-1464,-3287,3706,1070,2224,-589,3772,-2339,-2665,2070, #define precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+752) -2876,2378,1698,-2515,1305,-2815,2835,-2937,1921,-1348,730,-3723,1321,1712,486,2130, #define q_x16 *(const int16x16 *)(qdata+768) 7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681, #define qinvprecomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+784) -9,-9,-9,-9,-16425,-16425,-16425,-16425,-9,-9,-9,-9,-16425,-16425,-16425,-16425, #define qinvprecomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+800) -28865,-28865,-28865,-28865,10350,10350,10350,10350,-28865,-28865,-28865,-28865,10350,10350,10350,10350, #define qinvprecomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+816) -9,-9,-9,-9,-10350,-10350,-10350,-10350,-9,-9,-9,-9,-10350,-10350,-10350,-10350, #define qinvprecomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+832) 28865,28865,28865,28865,16425,16425,16425,16425,28865,28865,28865,28865,16425,16425,16425,16425, #define qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+848) -9,-9,-9,-9,-4974,-4974,-4974,-4974,-9,-9,-9,-9,-4974,-4974,-4974,-4974, #define qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+864) -16425,-16425,-16425,-16425,-7244,-7244,-7244,-7244,-16425,-16425,-16425,-16425,-7244,-7244,-7244,-7244, #define qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+880) -9,-9,-9,-9,-4496,-4496,-4496,-4496,-9,-9,-9,-9,-4496,-4496,-4496,-4496, #define qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+896) -10350,-10350,-10350,-10350,-14744,-14744,-14744,-14744,-10350,-10350,-10350,-10350,-14744,-14744,-14744,-14744, #define qinvprecomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+912) -9,-20315,-4974,18242,-16425,18191,-7244,-11655,-9,-20315,-4974,18242,-16425,18191,-7244,-11655, #define qinvprecomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+928) -28865,20870,14744,-22593,10350,828,4496,23754,-28865,20870,14744,-22593,10350,828,4496,23754, #define qinvprecomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+944) -9,-23754,-4496,-828,-10350,22593,-14744,-20870,-9,-23754,-4496,-828,-10350,22593,-14744,-20870, #define qinvprecomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+960) 28865,11655,7244,-18191,16425,-18242,4974,20315,28865,11655,7244,-18191,16425,-18242,4974,20315, #define qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+976) -9,-10972,-20315,23489,-4974,25597,18242,-2816,-9,-10972,-20315,23489,-4974,25597,18242,-2816, #define qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+992) -16425,-19351,18191,-3114,-7244,-9488,-11655,19394,-16425,-19351,18191,-3114,-7244,-9488,-11655,19394, #define qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+1008) -9,-7491,-23754,-15307,-4496,-15750,-828,-5759,-9,-7491,-23754,-15307,-4496,-15750,-828,-5759, #define qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1024) -10350,22568,22593,-20469,-14744,31177,-20870,26382,-10350,22568,22593,-20469,-14744,31177,-20870,26382, #define qinvprecomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1040) -9,-14846,-10972,-21066,-20315,-24581,23489,-23242,-4974,-4505,25597,-26279,18242,21467,-2816,15998, #define qinvprecomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1056) -16425,-4983,-19351,14624,18191,-2073,-3114,20674,-7244,-21399,-9488,6246,-11655,-29103,19394,-5930, #define qinvprecomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1072) -28865,-23668,-26382,-28839,20870,6536,-31177,16279,14744,29428,20469,29667,-22593,9215,-22568,-11783, #define qinvprecomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1088) 10350,-14121,5759,-5913,828,-1724,15750,11792,4496,25093,15307,26228,23754,-21766,7491,-6817, #define qinvprecomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1104) -9,6817,-7491,21766,-23754,-26228,-15307,-25093,-4496,-11792,-15750,1724,-828,5913,-5759,14121, #define qinvprecomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1120) -10350,11783,22568,-9215,22593,-29667,-20469,-29428,-14744,-16279,31177,-6536,-20870,28839,26382,23668, #define qinvprecomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1136) 28865,5930,-19394,29103,11655,-6246,9488,21399,7244,-20674,3114,2073,-18191,-14624,19351,4983, #define qinvprecomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1152) 16425,-15998,2816,-21467,-18242,26279,-25597,4505,4974,23242,-23489,24581,20315,21066,10972,14846, #define qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1168) -9,-32252,-14846,-19317,-10972,8472,-21066,-3456,-20315,16655,-24581,12611,23489,-12073,-23242,29871, #define qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1184) -4974,6032,-4505,10409,25597,24266,-26279,17030,18242,10478,21467,11962,-2816,-26262,15998,-17602, #define qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1200) -16425,-22124,-4983,-26220,-19351,-8908,14624,32738,18191,13575,-2073,27132,-3114,24573,20674,27201, #define qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1216) -7244,12269,-21399,-16092,-9488,-15810,6246,15358,-11655,-15768,-29103,24052,19394,-26441,-5930,-1689, #define qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1232) -9,13541,6817,-5529,-7491,26663,21766,-4693,-23754,13933,-26228,8558,-15307,-21953,-25093,-22875, #define qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1248) -4496,-7508,-11792,-30136,-15750,26800,1724,17303,-828,2722,5913,-12013,-5759,30426,14121,3558, #define qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1264) -10350,-24743,11783,-21860,22568,-32329,-9215,9360,22593,-7415,-29667,25946,-20469,-21868,-29428,-25511, #define qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1280) -14744,1869,-16279,14351,31177,2193,-6536,17440,-20870,24718,28839,-23225,26382,9855,23668,-9599, #define qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1296) -9,-32124,-32252,10179,-14846,6766,-19317,16638,-10972,-23549,8472,-17082,-21066,-15145,-3456,31518, #define qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1312) -20315,-6297,16655,-12261,-24581,-11885,12611,30938,23489,28805,-12073,26783,-23242,-14718,29871,5708, #define qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1328) -4974,15111,6032,-29453,-4505,12449,10409,529,25597,-32004,24266,2952,-26279,18003,17030,24931, #define qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1344) 18242,-1007,10478,-4624,21467,17636,11962,14360,-2816,15972,-26262,16715,15998,4573,-17602,-14539, #define qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1360) -9,6766,8472,31518,-24581,28805,29871,-29453,25597,18003,10478,14360,15998,27636,-26220,17167, #define qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1376) 18191,-7304,24573,-22039,-21399,-4565,15358,10802,19394,21723,9599,-9633,-28839,-2807,-2193,-30597, #define qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1392) 14744,-26330,-25946,-2739,9215,32695,24743,-26288,5759,20435,-17303,24530,11792,20964,21953,23523, #define qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1408) 23754,-27858,5529,6510,14846,23549,3456,12261,-23489,14718,-6032,-529,26279,1007,-11962,-16715, #define qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1424) -9,24214,26663,23933,-26228,-13686,-22875,-27243,-15750,4317,2722,8839,14121,-32414,-21860,-25179, #define qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1440) 22593,-25648,-21868,-964,-16279,-1715,17440,-14650,26382,-28958,1689,-10333,29103,-20119,15810,22790, #define qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1456) 7244,20238,-27132,-2858,-14624,19274,22124,-4573,2816,4624,-17030,32004,4505,-5708,12073,11885, #define qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1472) 20315,17082,19317,32124,-6817,14223,4693,-14138,15307,9650,7508,-9513,-1724,-23882,12013,-15221, #define qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1488) -9,-6510,13541,-23182,6817,24214,-5529,-24232,-7491,-14223,26663,27858,21766,26621,-4693,23933, #define qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1504) -23754,29394,13933,14138,-26228,-23523,8558,-23984,-15307,-13686,-21953,26766,-25093,-9650,-22875,-20964, #define qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1520) -4496,-22943,-7508,-27243,-11792,-18506,-30136,9513,-15750,-24530,26800,947,1724,4317,17303,29718, #define qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1536) -828,23882,2722,-20435,5913,-10495,-12013,8839,-5759,-3396,30426,15221,14121,26288,3558,27730, #define qinvscaledzeta_x16_4_1 *(const int16x16 *)(qdata+1552) -28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865, #define qinvscaledzeta_x16_4_3 *(const int16x16 *)(qdata+1568) 28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865, #define qinvscaledzeta_x16_8_1 *(const int16x16 *)(qdata+1584) -16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425, #define qinvscaledzeta_x16_8_7 *(const int16x16 *)(qdata+1600) -10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350, #define qround32_x16 *(const int16x16 *)(qdata+1616) 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, #define scaledzeta_x16_4_1 *(const int16x16 *)(qdata+1632) -3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777, #define scaledzeta_x16_4_3 *(const int16x16 *)(qdata+1648) 3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777, #define scaledzeta_x16_8_1 *(const int16x16 *)(qdata+1664) -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625, #define scaledzeta_x16_8_7 *(const int16x16 *)(qdata+1680) -3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182, } ; static inline int16x16 add_x16(int16x16 a,int16x16 b) { return _mm256_add_epi16(a,b); } static inline int16x16 sub_x16(int16x16 a,int16x16 b) { return _mm256_sub_epi16(a,b); } static inline int16x16 mulmod_scaled_x16(int16x16 x,int16x16 y,int16x16 yqinv,const int16 *qdata) { int16x16 b = _mm256_mulhi_epi16(x,y); int16x16 d = _mm256_mullo_epi16(x,yqinv); int16x16 e = _mm256_mulhi_epi16(d,q_x16); return sub_x16(b,e); } static inline int16x16 reduce_x16(int16x16 x,const int16 *qdata) { int16x16 y = _mm256_mulhrs_epi16(x,qround32_x16); y = _mm256_mullo_epi16(y,q_x16); return sub_x16(x,y); } // ----- codegen pass 1 // // startntt 512 // startbatch 512 // // ----- PRECONDITIONS // physical_map (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // transform size 512 // // transform indexing [0, 1, 2, 3, 4, 5, 6, 7, 8] // // transforms per batch 1 // // batch indexing [] // // total batch size 512 // // // modulus x^512-1 pos 0:512 q 7681,10753 bound 512*(5629,5800) // assertranges ... // // // ----- LAYER 1 // // // butterfly(0,256,1,256,1,0) // butterfly 0 256 1 256 1 0 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // ----- POSTCONDITIONS AFTER LAYER 1 // // transform size 512 // // transform indexing [0, 1, 2, 3, 4, 5, 6, 7, 8] // // transforms per batch 1 // // batch indexing [] // // total batch size 512 // // // modulus x^256-1 pos 0:256 q 7681,10753 bound 256*(11258,11600) // assertranges ... // // // modulus x^256+1 pos 256:512 q 7681,10753 bound 256*(11258,11600) // assertranges ... // // // ----- LAYER 2 // // // reduce_ifreverse(0,64,1) // reduce_ifreverse 0 64 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // reduce_ifreverse(256,320,1) // reduce_ifreverse 256 320 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(0,128,1,128,1,0) // butterfly 0 128 1 128 1 0 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(256,384,1,128,4,1) // butterfly 256 384 1 128 4 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // ----- POSTCONDITIONS AFTER LAYER 2 // // transform size 512 // // transform indexing [0, 1, 2, 3, 4, 5, 6, 7, 8] // // transforms per batch 1 // // batch indexing [] // // total batch size 512 // // // modulus x^128-1 pos 0:128 q 7681,10753 bound 128*(22516,23200) // assertranges ... // // // modulus x^128+1 pos 128:256 q 7681,10753 bound 128*(22516,23200) // assertranges ... // // // modulus x^128-zeta4 pos 256:384 q 7681,10753 bound 128*(15747,17016) // assertranges ... // // // modulus x^128+zeta4 pos 384:512 q 7681,10753 bound 128*(15747,17016) // assertranges ... // // // ----- LAYER 3 // // // reduce_ifforward(64,128,1) // reduce_ifforward 64 128 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(0,64,1,64,1,0) // butterfly 0 64 1 64 1 0 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(128,192,1,64,4,1) // butterfly 128 192 1 64 4 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(256,320,1,64,8,1) // butterfly 256 320 1 64 8 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(384,448,1,64,8,-1) // butterfly 384 448 1 64 8 7 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // reduce(0,64,1) // reduce 0 64 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(64,128,1,128,1) // twist 64 128 1 128 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(128,192,1,256,1) // twist 128 192 1 256 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(192,256,1,256,-1) // twist 192 256 1 256 255 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(256,320,1,512,1) // twist 256 320 1 512 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(320,384,1,512,5) // twist 320 384 1 512 5 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(384,448,1,512,-1) // twist 384 448 1 512 511 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(448,512,1,512,-5) // twist 448 512 1 512 507 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // physical_permute(3,6) // physical_permute (3, 6) (0, 1, 2, 3, 4, 5, 6, 7, 8) () (0, 1, 2, 6, 4, 5, 3, 7, 8) () // // // fold(256) // physical_unmap (0, 1, 2, 6, 4, 5, 3, 7, 8) () // physical_map (0, 1, 2, 6, 4, 5, 3, 7) (8,) // // // fold(128) // physical_unmap (0, 1, 2, 6, 4, 5, 3, 7) (8,) // physical_map (0, 1, 2, 6, 4, 5, 3) (7, 8) // // // fold(64) // physical_unmap (0, 1, 2, 6, 4, 5, 3) (7, 8) // physical_map (0, 1, 2, 6, 4, 5) (3, 7, 8) // // // nextbatch() // stopbatch 512 // startbatch 512 // // // halfbatch() // physical_unmap (0, 1, 2, 6, 4, 5) (3, 7, 8) // stopbatch 512 // doublereps // startbatch 256 // physical_map (0, 1, 2, 6, 4, 5) (3, 7) // // // halfbatch() // physical_unmap (0, 1, 2, 6, 4, 5) (3, 7) // stopbatch 256 // doublereps // startbatch 128 // physical_map (0, 1, 2, 6, 4, 5) (3,) // // // ----- POSTCONDITIONS AFTER LAYER 3 // // transform size 64 // // transform indexing [0, 1, 2, 6, 4, 5] // // transforms per batch 2 // // batch indexing [3] // // total batch size 128 // // // modulus x^64-1 pos 0:64 q 7681,10753 bound 1*(5629,5827) 1*(5629,7613) 1*(5629,7666) 1*(5629,7264) 1*(5629,7639) 1*(5629,7591) 1*(5629,7291) 1*(5629,7204) ... // assertranges ... // // // ----- LAYER 4 // // // butterfly(0,32,1,32,1,0) // butterfly 0 32 1 32 1 0 (0, 1, 2, 6, 4, 5) (3,) // // // ----- POSTCONDITIONS AFTER LAYER 4 // // transform size 64 // // transform indexing [0, 1, 2, 6, 4, 5] // // transforms per batch 2 // // batch indexing [3] // // total batch size 128 // // // modulus x^32-1 pos 0:32 q 7681,10753 bound 1*(11258,13035) 1*(11258,14721) 1*(11258,14855) 1*(11258,14877) 1*(11258,14690) 1*(11258,15282) 1*(11258,14641) 1*(11258,14272) ... // assertranges ... // // // modulus x^32+1 pos 32:64 q 7681,10753 bound 1*(11258,13035) 1*(11258,14721) 1*(11258,14855) 1*(11258,14877) 1*(11258,14690) 1*(11258,15282) 1*(11258,14641) 1*(11258,14272) ... // assertranges ... // // // ----- LAYER 5 // // // butterfly(0,16,1,16,1,0) // butterfly 0 16 1 16 1 0 (0, 1, 2, 6, 4, 5) (3,) // // // butterfly(32,48,1,16,4,1) // butterfly 32 48 1 16 4 1 (0, 1, 2, 6, 4, 5) (3,) // // // reduce(0,16,1) // reduce 0 16 1 (0, 1, 2, 6, 4, 5) (3,) // // // twist(16,32,1,32,1) // twist 16 32 1 32 1 (0, 1, 2, 6, 4, 5) (3,) // // // twist(32,48,1,64,1) // twist 32 48 1 64 1 (0, 1, 2, 6, 4, 5) (3,) // // // twist(48,64,1,64,-1) // twist 48 64 1 64 63 (0, 1, 2, 6, 4, 5) (3,) // // // physical_permute(0,1,2,5) // physical_permute (0, 1, 2, 5) (0, 1, 2, 6, 4, 5) (3,) (1, 2, 5, 6, 4, 0) (3,) // // // fold(32) // physical_unmap (1, 2, 5, 6, 4, 0) (3,) // physical_map (1, 2, 5, 6, 4) (0, 3) // // // fold(16) // physical_unmap (1, 2, 5, 6, 4) (0, 3) // physical_map (1, 2, 5, 6) (0, 3, 4) // // // ----- POSTCONDITIONS AFTER LAYER 5 // // transform size 16 // // transform indexing [1, 2, 5, 6] // // transforms per batch 8 // // batch indexing [0, 3, 4] // // total batch size 128 // // // modulus x^16-1 pos 0:16 q 7681,10753 bound 1*(5629,5800) 1*(5629,6967) 1*(5629,6418) 1*(5629,7585) 1*(5629,7017) 1*(5629,6328) 1*(5629,7033) 1*(5629,6943) ... // assertranges ... // // // ----- LAYER 6 // // // butterfly(0,8,1,8,1,0) // butterfly 0 8 1 8 1 0 (1, 2, 5, 6) (0, 3, 4) // // // physical_permute(1,2,4) // physical_permute (1, 2, 4) (1, 2, 5, 6) (0, 3, 4) (2, 4, 5, 6) (0, 3, 1) // // // nextbatch() // stopbatch 128 // startbatch 128 // // // ----- POSTCONDITIONS AFTER LAYER 6 // // transform size 16 // // transform indexing [2, 4, 5, 6] // // transforms per batch 8 // // batch indexing [0, 3, 1] // // total batch size 128 // // // modulus x^8-1 pos 0:8 q 7681,10753 bound 1*(11258,12447) 1*(11258,14071) 1*(11258,12488) 1*(11258,14310) 1*(11258,14287) 1*(11258,13674) 1*(11258,13574) 1*(11258,13555) // assertranges ... // // // modulus x^8+1 pos 8:16 q 7681,10753 bound 1*(11258,12447) 1*(11258,14071) 1*(11258,12488) 1*(11258,14310) 1*(11258,14287) 1*(11258,13674) 1*(11258,13574) 1*(11258,13555) // assertranges ... // // // ----- LAYER 7 // // // butterfly(0,4,1,4,1,0) // butterfly 0 4 1 4 1 0 (2, 4, 5, 6) (0, 3, 1) // // // butterfly(8,12,1,4,4,1) // butterfly 8 12 1 4 4 1 (2, 4, 5, 6) (0, 3, 1) // // // reduce(0,4,1) // reduce 0 4 1 (2, 4, 5, 6) (0, 3, 1) // // // twist(4,8,1,8,1) // twist 4 8 1 8 1 (2, 4, 5, 6) (0, 3, 1) // // // twist(8,12,1,16,1) // twist 8 12 1 16 1 (2, 4, 5, 6) (0, 3, 1) // // // twist(12,16,1,16,-1) // twist 12 16 1 16 15 (2, 4, 5, 6) (0, 3, 1) // // // physical_permute(2,6) // physical_permute (2, 6) (2, 4, 5, 6) (0, 3, 1) (6, 4, 5, 2) (0, 3, 1) // // // fold(8) // physical_unmap (6, 4, 5, 2) (0, 3, 1) // physical_map (6, 4, 5) (0, 1, 2, 3) // // // fold(4) // physical_unmap (6, 4, 5) (0, 1, 2, 3) // physical_map (6, 4) (0, 1, 2, 3, 5) // // // ----- POSTCONDITIONS AFTER LAYER 7 // // transform size 4 // // transform indexing [6, 4] // // transforms per batch 32 // // batch indexing [0, 1, 2, 3, 5] // // total batch size 128 // // // modulus x^4-1 pos 0:4 q 7681,10753 bound 1*(5629,5800) 1*(5629,6938) 1*(5629,6521) 1*(5629,7157) // assertranges ... // // // ----- LAYER 8 // // // butterfly(0,2,1,2,1,0) // butterfly 0 2 1 2 1 0 (6, 4) (0, 1, 2, 3, 5) // // // ----- POSTCONDITIONS AFTER LAYER 8 // // transform size 4 // // transform indexing [6, 4] // // transforms per batch 32 // // batch indexing [0, 1, 2, 3, 5] // // total batch size 128 // // // modulus x^2-1 pos 0:2 q 7681,10753 bound 1*(11258,12321) 1*(11258,14095) // assertranges ... // // // modulus x^2+1 pos 2:4 q 7681,10753 bound 1*(11258,12321) 1*(11258,14095) // assertranges ... // // // ----- LAYER 9 // // // butterfly(0,1,1,1,1,0) // butterfly 0 1 1 1 1 0 (6, 4) (0, 1, 2, 3, 5) // // // butterfly(2,3,1,1,4,1) // butterfly 2 3 1 1 4 1 (6, 4) (0, 1, 2, 3, 5) // // // ----- POSTCONDITIONS AFTER LAYER 9 // // transform size 4 // // transform indexing [6, 4] // // transforms per batch 32 // // batch indexing [0, 1, 2, 3, 5] // // total batch size 128 // // // modulus x^1-1 pos 0:1 q 7681,10753 bound 1*(22516,26416) // assertranges ... // // // modulus x^1+1 pos 1:2 q 7681,10753 bound 1*(22516,26416) // assertranges ... // // // modulus x^1-zeta4 pos 2:3 q 7681,10753 bound 1*(15747,17745) // assertranges ... // // // modulus x^1+zeta4 pos 3:4 q 7681,10753 bound 1*(15747,17745) // assertranges ... // stopbatch 128 // physical_unmap (6, 4) (0, 1, 2, 3, 5) // stopntt 512 // ----- codegen pass 2 // // startntt 512 // startbatch 512 // vector_butterfly 0 256 1 0 // vector_butterfly 128 384 1 0 // vector_butterfly 64 320 1 0 // vector_butterfly 192 448 1 0 // vector_reduce_ifreverse 0 // vector_reduce_ifreverse 256 // vector_butterfly 0 128 1 0 // vector_butterfly 64 192 1 0 // vector_butterfly 256 384 4 1 // vector_butterfly 320 448 4 1 // vector_reduce_ifforward 64 // vector_butterfly 0 64 1 0 // vector_butterfly 128 192 4 1 // vector_butterfly 256 320 8 1 // vector_butterfly 384 448 8 7 // vector_reduce 0 // vector_twist 64 128 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 128 256 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 192 256 255 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 256 512 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 320 512 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 384 512 511 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 448 512 507 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_permute 0 64 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 128 192 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 256 320 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 384 448 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // startbatch 512 // vector_butterfly 16 272 1 0 // vector_butterfly 144 400 1 0 // vector_butterfly 80 336 1 0 // vector_butterfly 208 464 1 0 // vector_reduce_ifreverse 16 // vector_reduce_ifreverse 272 // vector_butterfly 16 144 1 0 // vector_butterfly 80 208 1 0 // vector_butterfly 272 400 4 1 // vector_butterfly 336 464 4 1 // vector_reduce_ifforward 80 // vector_butterfly 16 80 1 0 // vector_butterfly 144 208 4 1 // vector_butterfly 272 336 8 1 // vector_butterfly 400 464 8 7 // vector_reduce 16 // vector_twist 80 128 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 144 256 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 208 256 255 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 272 512 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 336 512 5 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 400 512 511 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 464 512 507 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_permute 16 80 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 144 208 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 272 336 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 400 464 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // startbatch 512 // vector_butterfly 32 288 1 0 // vector_butterfly 160 416 1 0 // vector_butterfly 96 352 1 0 // vector_butterfly 224 480 1 0 // vector_reduce_ifreverse 32 // vector_reduce_ifreverse 288 // vector_butterfly 32 160 1 0 // vector_butterfly 96 224 1 0 // vector_butterfly 288 416 4 1 // vector_butterfly 352 480 4 1 // vector_reduce_ifforward 96 // vector_butterfly 32 96 1 0 // vector_butterfly 160 224 4 1 // vector_butterfly 288 352 8 1 // vector_butterfly 416 480 8 7 // vector_reduce 32 // vector_twist 96 128 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 160 256 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 224 256 255 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 288 512 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 352 512 5 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 416 512 511 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 480 512 507 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_permute 32 96 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 160 224 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 288 352 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 416 480 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // startbatch 512 // vector_butterfly 48 304 1 0 // vector_butterfly 176 432 1 0 // vector_butterfly 112 368 1 0 // vector_butterfly 240 496 1 0 // vector_reduce_ifreverse 48 // vector_reduce_ifreverse 304 // vector_butterfly 48 176 1 0 // vector_butterfly 112 240 1 0 // vector_butterfly 304 432 4 1 // vector_butterfly 368 496 4 1 // vector_reduce_ifforward 112 // vector_butterfly 48 112 1 0 // vector_butterfly 176 240 4 1 // vector_butterfly 304 368 8 1 // vector_butterfly 432 496 8 7 // vector_reduce 48 // vector_twist 112 128 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 176 256 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 240 256 255 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 304 512 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 368 512 5 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 432 512 511 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 496 512 507 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_permute 48 112 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 176 240 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 304 368 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 432 496 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // doublereps // doublereps // startbatch 128 // vector_butterfly 0 32 1 0 // vector_butterfly 64 96 1 0 // vector_butterfly 16 48 1 0 // vector_butterfly 80 112 1 0 // vector_butterfly 0 16 1 0 // vector_butterfly 64 80 1 0 // vector_butterfly 32 48 4 1 // vector_butterfly 96 112 4 1 // vector_reduce 0 // vector_reduce 64 // vector_twist 16 32 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 // vector_twist 80 32 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 // vector_twist 32 64 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 // vector_twist 96 64 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 // vector_twist 48 64 63 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 // vector_twist 112 64 63 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 // vector_permute 0 32 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_permute 16 48 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_permute 64 96 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_permute 80 112 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_butterfly 0 64 1 0 // vector_butterfly 32 96 1 0 // vector_butterfly 16 80 1 0 // vector_butterfly 48 112 1 0 // vector_permute 0 16 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // vector_permute 32 48 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // vector_permute 64 80 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // vector_permute 96 112 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // stopbatch 128 // startbatch 128 // vector_butterfly 0 32 1 0 // vector_butterfly 16 48 1 0 // vector_butterfly 64 96 4 1 // vector_butterfly 80 112 4 1 // vector_reduce 0 // vector_reduce 16 // vector_twist 32 8 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 // vector_twist 48 8 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 // vector_twist 64 16 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 // vector_twist 80 16 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 // vector_twist 96 16 15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 // vector_twist 112 16 15 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 // vector_permute 0 64 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_permute 16 80 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_permute 32 96 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_permute 48 112 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_butterfly 0 16 1 0 // vector_butterfly 64 80 1 0 // vector_butterfly 32 48 1 0 // vector_butterfly 96 112 1 0 // vector_butterfly 0 64 1 0 // vector_butterfly 32 96 1 0 // vector_butterfly 16 80 4 1 // vector_butterfly 48 112 4 1 // stopbatch 128 // stopntt 512 // startntt 512 static void ntt512(int16 *f,int reps,const int16 *qdata) { // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 0 256 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a16 = _mm256_loadu_si256((int16x16 *) (f+256)); int16x16 b0 = add_x16(a0,a16); int16x16 b16 = sub_x16(a0,a16); // vector_butterfly 128 384 1 0 int16x16 a8 = _mm256_loadu_si256((int16x16 *) (f+128)); int16x16 a24 = _mm256_loadu_si256((int16x16 *) (f+384)); int16x16 b8 = add_x16(a8,a24); int16x16 b24 = sub_x16(a8,a24); // vector_butterfly 64 320 1 0 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a20 = _mm256_loadu_si256((int16x16 *) (f+320)); int16x16 b4 = add_x16(a4,a20); int16x16 b20 = sub_x16(a4,a20); // vector_butterfly 192 448 1 0 int16x16 a12 = _mm256_loadu_si256((int16x16 *) (f+192)); int16x16 a28 = _mm256_loadu_si256((int16x16 *) (f+448)); int16x16 b12 = add_x16(a12,a28); int16x16 b28 = sub_x16(a12,a28); // vector_reduce_ifreverse 0 // vector_reduce_ifreverse 256 // vector_butterfly 0 128 1 0 int16x16 c0 = add_x16(b0,b8); int16x16 c8 = sub_x16(b0,b8); // vector_butterfly 64 192 1 0 int16x16 c4 = add_x16(b4,b12); int16x16 c12 = sub_x16(b4,b12); // vector_butterfly 256 384 4 1 b24 = mulmod_scaled_x16(b24,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c16 = add_x16(b16,b24); int16x16 c24 = sub_x16(b16,b24); // vector_butterfly 320 448 4 1 b28 = mulmod_scaled_x16(b28,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c20 = add_x16(b20,b28); int16x16 c28 = sub_x16(b20,b28); // vector_reduce_ifforward 64 c4 = reduce_x16(c4,qdata); // vector_butterfly 0 64 1 0 int16x16 d0 = add_x16(c0,c4); int16x16 d4 = sub_x16(c0,c4); // vector_butterfly 128 192 4 1 c12 = mulmod_scaled_x16(c12,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d8 = add_x16(c8,c12); int16x16 d12 = sub_x16(c8,c12); // vector_butterfly 256 320 8 1 c20 = mulmod_scaled_x16(c20,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d16 = add_x16(c16,c20); int16x16 d20 = sub_x16(c16,c20); // vector_butterfly 384 448 8 7 c28 = mulmod_scaled_x16(c28,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d24 = add_x16(c24,c28); int16x16 d28 = sub_x16(c24,c28); // vector_reduce 0 d0 = reduce_x16(d0,qdata); // vector_twist 64 128 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d4 = mulmod_scaled_x16(d4,precomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 128 256 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d8 = mulmod_scaled_x16(d8,precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 192 256 255 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d12 = mulmod_scaled_x16(d12,precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 256 512 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d16 = mulmod_scaled_x16(d16,precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 320 512 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d20 = mulmod_scaled_x16(d20,precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 384 512 511 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d24 = mulmod_scaled_x16(d24,precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 448 512 507 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d28 = mulmod_scaled_x16(d28,precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_permute 0 64 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e0 = _mm256_permute2x128_si256_lo(d0,d4); int16x16 e4 = _mm256_permute2x128_si256_hi(d0,d4); // vector_permute 128 192 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e8 = _mm256_permute2x128_si256_lo(d8,d12); int16x16 e12 = _mm256_permute2x128_si256_hi(d8,d12); // vector_permute 256 320 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e16 = _mm256_permute2x128_si256_lo(d16,d20); int16x16 e20 = _mm256_permute2x128_si256_hi(d16,d20); // vector_permute 384 448 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e24 = _mm256_permute2x128_si256_lo(d24,d28); int16x16 e28 = _mm256_permute2x128_si256_hi(d24,d28); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+128),e8); _mm256_storeu_si256((int16x16 *) (f+192),e12); _mm256_storeu_si256((int16x16 *) (f+256),e16); _mm256_storeu_si256((int16x16 *) (f+320),e20); _mm256_storeu_si256((int16x16 *) (f+384),e24); _mm256_storeu_si256((int16x16 *) (f+448),e28); f += 512; } f -= 512*reps; // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 16 272 1 0 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a17 = _mm256_loadu_si256((int16x16 *) (f+272)); int16x16 b1 = add_x16(a1,a17); int16x16 b17 = sub_x16(a1,a17); // vector_butterfly 144 400 1 0 int16x16 a9 = _mm256_loadu_si256((int16x16 *) (f+144)); int16x16 a25 = _mm256_loadu_si256((int16x16 *) (f+400)); int16x16 b9 = add_x16(a9,a25); int16x16 b25 = sub_x16(a9,a25); // vector_butterfly 80 336 1 0 int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 a21 = _mm256_loadu_si256((int16x16 *) (f+336)); int16x16 b5 = add_x16(a5,a21); int16x16 b21 = sub_x16(a5,a21); // vector_butterfly 208 464 1 0 int16x16 a13 = _mm256_loadu_si256((int16x16 *) (f+208)); int16x16 a29 = _mm256_loadu_si256((int16x16 *) (f+464)); int16x16 b13 = add_x16(a13,a29); int16x16 b29 = sub_x16(a13,a29); // vector_reduce_ifreverse 16 // vector_reduce_ifreverse 272 // vector_butterfly 16 144 1 0 int16x16 c1 = add_x16(b1,b9); int16x16 c9 = sub_x16(b1,b9); // vector_butterfly 80 208 1 0 int16x16 c5 = add_x16(b5,b13); int16x16 c13 = sub_x16(b5,b13); // vector_butterfly 272 400 4 1 b25 = mulmod_scaled_x16(b25,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c17 = add_x16(b17,b25); int16x16 c25 = sub_x16(b17,b25); // vector_butterfly 336 464 4 1 b29 = mulmod_scaled_x16(b29,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c21 = add_x16(b21,b29); int16x16 c29 = sub_x16(b21,b29); // vector_reduce_ifforward 80 c5 = reduce_x16(c5,qdata); // vector_butterfly 16 80 1 0 int16x16 d1 = add_x16(c1,c5); int16x16 d5 = sub_x16(c1,c5); // vector_butterfly 144 208 4 1 c13 = mulmod_scaled_x16(c13,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d9 = add_x16(c9,c13); int16x16 d13 = sub_x16(c9,c13); // vector_butterfly 272 336 8 1 c21 = mulmod_scaled_x16(c21,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d17 = add_x16(c17,c21); int16x16 d21 = sub_x16(c17,c21); // vector_butterfly 400 464 8 7 c29 = mulmod_scaled_x16(c29,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d25 = add_x16(c25,c29); int16x16 d29 = sub_x16(c25,c29); // vector_reduce 16 d1 = reduce_x16(d1,qdata); // vector_twist 80 128 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d5 = mulmod_scaled_x16(d5,precomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 144 256 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d9 = mulmod_scaled_x16(d9,precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 208 256 255 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d13 = mulmod_scaled_x16(d13,precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 272 512 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d17 = mulmod_scaled_x16(d17,precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 336 512 5 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d21 = mulmod_scaled_x16(d21,precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 400 512 511 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d25 = mulmod_scaled_x16(d25,precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 464 512 507 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d29 = mulmod_scaled_x16(d29,precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_permute 16 80 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e1 = _mm256_permute2x128_si256_lo(d1,d5); int16x16 e5 = _mm256_permute2x128_si256_hi(d1,d5); // vector_permute 144 208 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e9 = _mm256_permute2x128_si256_lo(d9,d13); int16x16 e13 = _mm256_permute2x128_si256_hi(d9,d13); // vector_permute 272 336 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e17 = _mm256_permute2x128_si256_lo(d17,d21); int16x16 e21 = _mm256_permute2x128_si256_hi(d17,d21); // vector_permute 400 464 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e25 = _mm256_permute2x128_si256_lo(d25,d29); int16x16 e29 = _mm256_permute2x128_si256_hi(d25,d29); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+144),e9); _mm256_storeu_si256((int16x16 *) (f+208),e13); _mm256_storeu_si256((int16x16 *) (f+272),e17); _mm256_storeu_si256((int16x16 *) (f+336),e21); _mm256_storeu_si256((int16x16 *) (f+400),e25); _mm256_storeu_si256((int16x16 *) (f+464),e29); f += 512; } f -= 512*reps; // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 32 288 1 0 int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a18 = _mm256_loadu_si256((int16x16 *) (f+288)); int16x16 b2 = add_x16(a2,a18); int16x16 b18 = sub_x16(a2,a18); // vector_butterfly 160 416 1 0 int16x16 a10 = _mm256_loadu_si256((int16x16 *) (f+160)); int16x16 a26 = _mm256_loadu_si256((int16x16 *) (f+416)); int16x16 b10 = add_x16(a10,a26); int16x16 b26 = sub_x16(a10,a26); // vector_butterfly 96 352 1 0 int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 a22 = _mm256_loadu_si256((int16x16 *) (f+352)); int16x16 b6 = add_x16(a6,a22); int16x16 b22 = sub_x16(a6,a22); // vector_butterfly 224 480 1 0 int16x16 a14 = _mm256_loadu_si256((int16x16 *) (f+224)); int16x16 a30 = _mm256_loadu_si256((int16x16 *) (f+480)); int16x16 b14 = add_x16(a14,a30); int16x16 b30 = sub_x16(a14,a30); // vector_reduce_ifreverse 32 // vector_reduce_ifreverse 288 // vector_butterfly 32 160 1 0 int16x16 c2 = add_x16(b2,b10); int16x16 c10 = sub_x16(b2,b10); // vector_butterfly 96 224 1 0 int16x16 c6 = add_x16(b6,b14); int16x16 c14 = sub_x16(b6,b14); // vector_butterfly 288 416 4 1 b26 = mulmod_scaled_x16(b26,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c18 = add_x16(b18,b26); int16x16 c26 = sub_x16(b18,b26); // vector_butterfly 352 480 4 1 b30 = mulmod_scaled_x16(b30,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c22 = add_x16(b22,b30); int16x16 c30 = sub_x16(b22,b30); // vector_reduce_ifforward 96 c6 = reduce_x16(c6,qdata); // vector_butterfly 32 96 1 0 int16x16 d2 = add_x16(c2,c6); int16x16 d6 = sub_x16(c2,c6); // vector_butterfly 160 224 4 1 c14 = mulmod_scaled_x16(c14,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d10 = add_x16(c10,c14); int16x16 d14 = sub_x16(c10,c14); // vector_butterfly 288 352 8 1 c22 = mulmod_scaled_x16(c22,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d18 = add_x16(c18,c22); int16x16 d22 = sub_x16(c18,c22); // vector_butterfly 416 480 8 7 c30 = mulmod_scaled_x16(c30,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d26 = add_x16(c26,c30); int16x16 d30 = sub_x16(c26,c30); // vector_reduce 32 d2 = reduce_x16(d2,qdata); // vector_twist 96 128 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d6 = mulmod_scaled_x16(d6,precomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 160 256 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d10 = mulmod_scaled_x16(d10,precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 224 256 255 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d14 = mulmod_scaled_x16(d14,precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 288 512 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d18 = mulmod_scaled_x16(d18,precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 352 512 5 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d22 = mulmod_scaled_x16(d22,precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 416 512 511 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d26 = mulmod_scaled_x16(d26,precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 480 512 507 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d30 = mulmod_scaled_x16(d30,precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_permute 32 96 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e2 = _mm256_permute2x128_si256_lo(d2,d6); int16x16 e6 = _mm256_permute2x128_si256_hi(d2,d6); // vector_permute 160 224 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e10 = _mm256_permute2x128_si256_lo(d10,d14); int16x16 e14 = _mm256_permute2x128_si256_hi(d10,d14); // vector_permute 288 352 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e18 = _mm256_permute2x128_si256_lo(d18,d22); int16x16 e22 = _mm256_permute2x128_si256_hi(d18,d22); // vector_permute 416 480 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e26 = _mm256_permute2x128_si256_lo(d26,d30); int16x16 e30 = _mm256_permute2x128_si256_hi(d26,d30); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+160),e10); _mm256_storeu_si256((int16x16 *) (f+224),e14); _mm256_storeu_si256((int16x16 *) (f+288),e18); _mm256_storeu_si256((int16x16 *) (f+352),e22); _mm256_storeu_si256((int16x16 *) (f+416),e26); _mm256_storeu_si256((int16x16 *) (f+480),e30); f += 512; } f -= 512*reps; // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 48 304 1 0 int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 a19 = _mm256_loadu_si256((int16x16 *) (f+304)); int16x16 b3 = add_x16(a3,a19); int16x16 b19 = sub_x16(a3,a19); // vector_butterfly 176 432 1 0 int16x16 a11 = _mm256_loadu_si256((int16x16 *) (f+176)); int16x16 a27 = _mm256_loadu_si256((int16x16 *) (f+432)); int16x16 b11 = add_x16(a11,a27); int16x16 b27 = sub_x16(a11,a27); // vector_butterfly 112 368 1 0 int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 a23 = _mm256_loadu_si256((int16x16 *) (f+368)); int16x16 b7 = add_x16(a7,a23); int16x16 b23 = sub_x16(a7,a23); // vector_butterfly 240 496 1 0 int16x16 a15 = _mm256_loadu_si256((int16x16 *) (f+240)); int16x16 a31 = _mm256_loadu_si256((int16x16 *) (f+496)); int16x16 b15 = add_x16(a15,a31); int16x16 b31 = sub_x16(a15,a31); // vector_reduce_ifreverse 48 // vector_reduce_ifreverse 304 // vector_butterfly 48 176 1 0 int16x16 c3 = add_x16(b3,b11); int16x16 c11 = sub_x16(b3,b11); // vector_butterfly 112 240 1 0 int16x16 c7 = add_x16(b7,b15); int16x16 c15 = sub_x16(b7,b15); // vector_butterfly 304 432 4 1 b27 = mulmod_scaled_x16(b27,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c19 = add_x16(b19,b27); int16x16 c27 = sub_x16(b19,b27); // vector_butterfly 368 496 4 1 b31 = mulmod_scaled_x16(b31,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c23 = add_x16(b23,b31); int16x16 c31 = sub_x16(b23,b31); // vector_reduce_ifforward 112 c7 = reduce_x16(c7,qdata); // vector_butterfly 48 112 1 0 int16x16 d3 = add_x16(c3,c7); int16x16 d7 = sub_x16(c3,c7); // vector_butterfly 176 240 4 1 c15 = mulmod_scaled_x16(c15,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d11 = add_x16(c11,c15); int16x16 d15 = sub_x16(c11,c15); // vector_butterfly 304 368 8 1 c23 = mulmod_scaled_x16(c23,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d19 = add_x16(c19,c23); int16x16 d23 = sub_x16(c19,c23); // vector_butterfly 432 496 8 7 c31 = mulmod_scaled_x16(c31,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d27 = add_x16(c27,c31); int16x16 d31 = sub_x16(c27,c31); // vector_reduce 48 d3 = reduce_x16(d3,qdata); // vector_twist 112 128 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d7 = mulmod_scaled_x16(d7,precomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 176 256 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d11 = mulmod_scaled_x16(d11,precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 240 256 255 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d15 = mulmod_scaled_x16(d15,precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 304 512 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d19 = mulmod_scaled_x16(d19,precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 368 512 5 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d23 = mulmod_scaled_x16(d23,precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 432 512 511 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d27 = mulmod_scaled_x16(d27,precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 496 512 507 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d31 = mulmod_scaled_x16(d31,precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_permute 48 112 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e3 = _mm256_permute2x128_si256_lo(d3,d7); int16x16 e7 = _mm256_permute2x128_si256_hi(d3,d7); // vector_permute 176 240 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e11 = _mm256_permute2x128_si256_lo(d11,d15); int16x16 e15 = _mm256_permute2x128_si256_hi(d11,d15); // vector_permute 304 368 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e19 = _mm256_permute2x128_si256_lo(d19,d23); int16x16 e23 = _mm256_permute2x128_si256_hi(d19,d23); // vector_permute 432 496 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e27 = _mm256_permute2x128_si256_lo(d27,d31); int16x16 e31 = _mm256_permute2x128_si256_hi(d27,d31); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+112),e7); _mm256_storeu_si256((int16x16 *) (f+176),e11); _mm256_storeu_si256((int16x16 *) (f+240),e15); _mm256_storeu_si256((int16x16 *) (f+304),e19); _mm256_storeu_si256((int16x16 *) (f+368),e23); _mm256_storeu_si256((int16x16 *) (f+432),e27); _mm256_storeu_si256((int16x16 *) (f+496),e31); f += 512; } f -= 512*reps; // doublereps reps *= 2; // doublereps reps *= 2; // startbatch 128 for (long long r = 0;r < reps;++r) { // vector_butterfly 0 32 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 b0 = add_x16(a0,a2); int16x16 b2 = sub_x16(a0,a2); // vector_butterfly 64 96 1 0 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 b4 = add_x16(a4,a6); int16x16 b6 = sub_x16(a4,a6); // vector_butterfly 16 48 1 0 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 b1 = add_x16(a1,a3); int16x16 b3 = sub_x16(a1,a3); // vector_butterfly 80 112 1 0 int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b5 = add_x16(a5,a7); int16x16 b7 = sub_x16(a5,a7); // vector_butterfly 0 16 1 0 int16x16 c0 = add_x16(b0,b1); int16x16 c1 = sub_x16(b0,b1); // vector_butterfly 64 80 1 0 int16x16 c4 = add_x16(b4,b5); int16x16 c5 = sub_x16(b4,b5); // vector_butterfly 32 48 4 1 b3 = mulmod_scaled_x16(b3,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c2 = add_x16(b2,b3); int16x16 c3 = sub_x16(b2,b3); // vector_butterfly 96 112 4 1 b7 = mulmod_scaled_x16(b7,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c6 = add_x16(b6,b7); int16x16 c7 = sub_x16(b6,b7); // vector_reduce 0 c0 = reduce_x16(c0,qdata); // vector_reduce 64 c4 = reduce_x16(c4,qdata); // vector_twist 16 32 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 c1 = mulmod_scaled_x16(c1,precomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // vector_twist 80 32 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 c5 = mulmod_scaled_x16(c5,precomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // vector_twist 32 64 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 c2 = mulmod_scaled_x16(c2,precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // vector_twist 96 64 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 c6 = mulmod_scaled_x16(c6,precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // vector_twist 48 64 63 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 c3 = mulmod_scaled_x16(c3,precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // vector_twist 112 64 63 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 c7 = mulmod_scaled_x16(c7,precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // vector_permute 0 32 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d0 = _mm256_unpacklo_epi16(c0,c2); int16x16 d2 = _mm256_unpackhi_epi16(c0,c2); // vector_permute 16 48 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d1 = _mm256_unpacklo_epi16(c1,c3); int16x16 d3 = _mm256_unpackhi_epi16(c1,c3); // vector_permute 64 96 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d4 = _mm256_unpacklo_epi16(c4,c6); int16x16 d6 = _mm256_unpackhi_epi16(c4,c6); // vector_permute 80 112 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d5 = _mm256_unpacklo_epi16(c5,c7); int16x16 d7 = _mm256_unpackhi_epi16(c5,c7); // vector_butterfly 0 64 1 0 int16x16 e0 = add_x16(d0,d4); int16x16 e4 = sub_x16(d0,d4); // vector_butterfly 32 96 1 0 int16x16 e2 = add_x16(d2,d6); int16x16 e6 = sub_x16(d2,d6); // vector_butterfly 16 80 1 0 int16x16 e1 = add_x16(d1,d5); int16x16 e5 = sub_x16(d1,d5); // vector_butterfly 48 112 1 0 int16x16 e3 = add_x16(d3,d7); int16x16 e7 = sub_x16(d3,d7); // vector_permute 0 16 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f0 = _mm256_unpacklo_epi32(e0,e1); int16x16 f1 = _mm256_unpackhi_epi32(e0,e1); // vector_permute 32 48 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f2 = _mm256_unpacklo_epi32(e2,e3); int16x16 f3 = _mm256_unpackhi_epi32(e2,e3); // vector_permute 64 80 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f4 = _mm256_unpacklo_epi32(e4,e5); int16x16 f5 = _mm256_unpackhi_epi32(e4,e5); // vector_permute 96 112 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f6 = _mm256_unpacklo_epi32(e6,e7); int16x16 f7 = _mm256_unpackhi_epi32(e6,e7); // stopbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),f0); _mm256_storeu_si256((int16x16 *) (f+16),f1); _mm256_storeu_si256((int16x16 *) (f+32),f2); _mm256_storeu_si256((int16x16 *) (f+48),f3); _mm256_storeu_si256((int16x16 *) (f+64),f4); _mm256_storeu_si256((int16x16 *) (f+80),f5); _mm256_storeu_si256((int16x16 *) (f+96),f6); _mm256_storeu_si256((int16x16 *) (f+112),f7); f += 128; } f -= 128*reps; // startbatch 128 for (long long r = 0;r < reps;++r) { // vector_butterfly 0 32 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 b0 = add_x16(a0,a2); int16x16 b2 = sub_x16(a0,a2); // vector_butterfly 16 48 1 0 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 b1 = add_x16(a1,a3); int16x16 b3 = sub_x16(a1,a3); // vector_butterfly 64 96 4 1 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); a6 = mulmod_scaled_x16(a6,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 b4 = add_x16(a4,a6); int16x16 b6 = sub_x16(a4,a6); // vector_butterfly 80 112 4 1 int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); a7 = mulmod_scaled_x16(a7,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 b5 = add_x16(a5,a7); int16x16 b7 = sub_x16(a5,a7); // vector_reduce 0 b0 = reduce_x16(b0,qdata); // vector_reduce 16 b1 = reduce_x16(b1,qdata); // vector_twist 32 8 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b2 = mulmod_scaled_x16(b2,precomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // vector_twist 48 8 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 b3 = mulmod_scaled_x16(b3,precomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // vector_twist 64 16 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b4 = mulmod_scaled_x16(b4,precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // vector_twist 80 16 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 b5 = mulmod_scaled_x16(b5,precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // vector_twist 96 16 15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b6 = mulmod_scaled_x16(b6,precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // vector_twist 112 16 15 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 b7 = mulmod_scaled_x16(b7,precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // vector_permute 0 64 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c0 = _mm256_unpacklo_epi64(b0,b4); int16x16 c4 = _mm256_unpackhi_epi64(b0,b4); // vector_permute 16 80 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c1 = _mm256_unpacklo_epi64(b1,b5); int16x16 c5 = _mm256_unpackhi_epi64(b1,b5); // vector_permute 32 96 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c2 = _mm256_unpacklo_epi64(b2,b6); int16x16 c6 = _mm256_unpackhi_epi64(b2,b6); // vector_permute 48 112 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c3 = _mm256_unpacklo_epi64(b3,b7); int16x16 c7 = _mm256_unpackhi_epi64(b3,b7); // vector_butterfly 0 16 1 0 int16x16 d0 = add_x16(c0,c1); int16x16 d1 = sub_x16(c0,c1); // vector_butterfly 64 80 1 0 int16x16 d4 = add_x16(c4,c5); int16x16 d5 = sub_x16(c4,c5); // vector_butterfly 32 48 1 0 int16x16 d2 = add_x16(c2,c3); int16x16 d3 = sub_x16(c2,c3); // vector_butterfly 96 112 1 0 int16x16 d6 = add_x16(c6,c7); int16x16 d7 = sub_x16(c6,c7); // vector_butterfly 0 64 1 0 int16x16 e0 = add_x16(d0,d4); int16x16 e4 = sub_x16(d0,d4); // vector_butterfly 32 96 1 0 int16x16 e2 = add_x16(d2,d6); int16x16 e6 = sub_x16(d2,d6); // vector_butterfly 16 80 4 1 d5 = mulmod_scaled_x16(d5,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 e1 = add_x16(d1,d5); int16x16 e5 = sub_x16(d1,d5); // vector_butterfly 48 112 4 1 d7 = mulmod_scaled_x16(d7,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 e3 = add_x16(d3,d7); int16x16 e7 = sub_x16(d3,d7); // stopbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+112),e7); f += 128; } f -= 128*reps; // stopntt 512 } void ntt512_7681(int16 *f,int reps) { ntt512(f,reps,qdata_7681); } // inv stopntt 512 static void invntt512(int16 *f,int reps,const int16 *qdata) { reps *= 4; // inv stopbatch 128 for (long long r = 0;r < reps;++r) { // inv vector_butterfly 48 112 4 1 int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b3 = add_x16(a3,a7); int16x16 b7 = sub_x16(a3,a7); b7 = mulmod_scaled_x16(b7,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 16 80 4 1 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 b1 = add_x16(a1,a5); int16x16 b5 = sub_x16(a1,a5); b5 = mulmod_scaled_x16(b5,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 32 96 1 0 int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 b2 = add_x16(a2,a6); int16x16 b6 = sub_x16(a2,a6); // inv vector_butterfly 0 64 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 b0 = add_x16(a0,a4); int16x16 b4 = sub_x16(a0,a4); // inv vector_butterfly 96 112 1 0 int16x16 c6 = add_x16(b6,b7); int16x16 c7 = sub_x16(b6,b7); // inv vector_butterfly 32 48 1 0 int16x16 c2 = add_x16(b2,b3); int16x16 c3 = sub_x16(b2,b3); // inv vector_butterfly 64 80 1 0 int16x16 c4 = add_x16(b4,b5); int16x16 c5 = sub_x16(b4,b5); // inv vector_butterfly 0 16 1 0 int16x16 c0 = add_x16(b0,b1); int16x16 c1 = sub_x16(b0,b1); // inv vector_permute 48 112 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d3 = _mm256_unpacklo_epi64(c3,c7); int16x16 d7 = _mm256_unpackhi_epi64(c3,c7); // inv vector_permute 32 96 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d2 = _mm256_unpacklo_epi64(c2,c6); int16x16 d6 = _mm256_unpackhi_epi64(c2,c6); // inv vector_permute 16 80 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d1 = _mm256_unpacklo_epi64(c1,c5); int16x16 d5 = _mm256_unpackhi_epi64(c1,c5); // inv vector_permute 0 64 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d0 = _mm256_unpacklo_epi64(c0,c4); int16x16 d4 = _mm256_unpackhi_epi64(c0,c4); // inv vector_twist 112 16 15 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 d7 = mulmod_scaled_x16(d7,precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // inv vector_twist 96 16 15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d6 = mulmod_scaled_x16(d6,precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // inv vector_twist 80 16 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 d5 = mulmod_scaled_x16(d5,precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // inv vector_twist 64 16 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d4 = mulmod_scaled_x16(d4,precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // inv vector_twist 48 8 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 d3 = mulmod_scaled_x16(d3,precomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // inv vector_twist 32 8 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d2 = mulmod_scaled_x16(d2,precomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // inv vector_reduce 16 d1 = reduce_x16(d1,qdata); // inv vector_reduce 0 d0 = reduce_x16(d0,qdata); // inv vector_butterfly 80 112 4 1 int16x16 e5 = add_x16(d5,d7); int16x16 e7 = sub_x16(d5,d7); e7 = mulmod_scaled_x16(e7,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 64 96 4 1 int16x16 e4 = add_x16(d4,d6); int16x16 e6 = sub_x16(d4,d6); e6 = mulmod_scaled_x16(e6,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 16 48 1 0 int16x16 e1 = add_x16(d1,d3); int16x16 e3 = sub_x16(d1,d3); // inv vector_butterfly 0 32 1 0 int16x16 e0 = add_x16(d0,d2); int16x16 e2 = sub_x16(d0,d2); // inv startbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+112),e7); f += 128; } f -= 128*reps; // inv stopbatch 128 for (long long r = 0;r < reps;++r) { // inv vector_permute 96 112 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b6 = _mm256_unpacklo_epi32(a6,a7); int16x16 b7 = _mm256_unpackhi_epi32(a6,a7); int16x16 c6 = _mm256_unpacklo_epi32(b6,b7); int16x16 c7 = _mm256_unpackhi_epi32(b6,b7); // inv vector_permute 64 80 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 b4 = _mm256_unpacklo_epi32(a4,a5); int16x16 b5 = _mm256_unpackhi_epi32(a4,a5); int16x16 c4 = _mm256_unpacklo_epi32(b4,b5); int16x16 c5 = _mm256_unpackhi_epi32(b4,b5); // inv vector_permute 32 48 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 b2 = _mm256_unpacklo_epi32(a2,a3); int16x16 b3 = _mm256_unpackhi_epi32(a2,a3); int16x16 c2 = _mm256_unpacklo_epi32(b2,b3); int16x16 c3 = _mm256_unpackhi_epi32(b2,b3); // inv vector_permute 0 16 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 b0 = _mm256_unpacklo_epi32(a0,a1); int16x16 b1 = _mm256_unpackhi_epi32(a0,a1); int16x16 c0 = _mm256_unpacklo_epi32(b0,b1); int16x16 c1 = _mm256_unpackhi_epi32(b0,b1); // inv vector_butterfly 48 112 1 0 int16x16 d3 = add_x16(c3,c7); int16x16 d7 = sub_x16(c3,c7); // inv vector_butterfly 16 80 1 0 int16x16 d1 = add_x16(c1,c5); int16x16 d5 = sub_x16(c1,c5); // inv vector_butterfly 32 96 1 0 int16x16 d2 = add_x16(c2,c6); int16x16 d6 = sub_x16(c2,c6); // inv vector_butterfly 0 64 1 0 int16x16 d0 = add_x16(c0,c4); int16x16 d4 = sub_x16(c0,c4); // inv vector_permute 80 112 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e5 = _mm256_unpacklo_epi16(d5,d7); int16x16 e7 = _mm256_unpackhi_epi16(d5,d7); int16x16 f5 = _mm256_unpacklo_epi16(e5,e7); int16x16 f7 = _mm256_unpackhi_epi16(e5,e7); int16x16 g5 = _mm256_unpacklo_epi16(f5,f7); int16x16 g7 = _mm256_unpackhi_epi16(f5,f7); // inv vector_permute 64 96 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e4 = _mm256_unpacklo_epi16(d4,d6); int16x16 e6 = _mm256_unpackhi_epi16(d4,d6); int16x16 f4 = _mm256_unpacklo_epi16(e4,e6); int16x16 f6 = _mm256_unpackhi_epi16(e4,e6); int16x16 g4 = _mm256_unpacklo_epi16(f4,f6); int16x16 g6 = _mm256_unpackhi_epi16(f4,f6); // inv vector_permute 16 48 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e1 = _mm256_unpacklo_epi16(d1,d3); int16x16 e3 = _mm256_unpackhi_epi16(d1,d3); int16x16 f1 = _mm256_unpacklo_epi16(e1,e3); int16x16 f3 = _mm256_unpackhi_epi16(e1,e3); int16x16 g1 = _mm256_unpacklo_epi16(f1,f3); int16x16 g3 = _mm256_unpackhi_epi16(f1,f3); // inv vector_permute 0 32 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e0 = _mm256_unpacklo_epi16(d0,d2); int16x16 e2 = _mm256_unpackhi_epi16(d0,d2); int16x16 f0 = _mm256_unpacklo_epi16(e0,e2); int16x16 f2 = _mm256_unpackhi_epi16(e0,e2); int16x16 g0 = _mm256_unpacklo_epi16(f0,f2); int16x16 g2 = _mm256_unpackhi_epi16(f0,f2); // inv vector_twist 112 64 63 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 g7 = mulmod_scaled_x16(g7,precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 48 64 63 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 g3 = mulmod_scaled_x16(g3,precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // inv vector_twist 96 64 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 g6 = mulmod_scaled_x16(g6,precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 32 64 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 g2 = mulmod_scaled_x16(g2,precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // inv vector_twist 80 32 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 g5 = mulmod_scaled_x16(g5,precomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 16 32 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 g1 = mulmod_scaled_x16(g1,precomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // inv vector_reduce 64 g4 = reduce_x16(g4,qdata); // inv vector_reduce 0 g0 = reduce_x16(g0,qdata); // inv vector_butterfly 96 112 4 1 int16x16 h6 = add_x16(g6,g7); int16x16 h7 = sub_x16(g6,g7); h7 = mulmod_scaled_x16(h7,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 32 48 4 1 int16x16 h2 = add_x16(g2,g3); int16x16 h3 = sub_x16(g2,g3); h3 = mulmod_scaled_x16(h3,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 64 80 1 0 int16x16 h4 = add_x16(g4,g5); int16x16 h5 = sub_x16(g4,g5); // inv vector_butterfly 0 16 1 0 int16x16 h0 = add_x16(g0,g1); int16x16 h1 = sub_x16(g0,g1); // inv vector_butterfly 80 112 1 0 int16x16 i5 = add_x16(h5,h7); int16x16 i7 = sub_x16(h5,h7); // inv vector_butterfly 16 48 1 0 int16x16 i1 = add_x16(h1,h3); int16x16 i3 = sub_x16(h1,h3); // inv vector_butterfly 64 96 1 0 int16x16 i4 = add_x16(h4,h6); int16x16 i6 = sub_x16(h4,h6); // inv vector_butterfly 0 32 1 0 int16x16 i0 = add_x16(h0,h2); int16x16 i2 = sub_x16(h0,h2); // inv startbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),i0); _mm256_storeu_si256((int16x16 *) (f+16),i1); _mm256_storeu_si256((int16x16 *) (f+32),i2); _mm256_storeu_si256((int16x16 *) (f+48),i3); _mm256_storeu_si256((int16x16 *) (f+64),i4); _mm256_storeu_si256((int16x16 *) (f+80),i5); _mm256_storeu_si256((int16x16 *) (f+96),i6); _mm256_storeu_si256((int16x16 *) (f+112),i7); f += 128; } f -= 128*reps; // inv doublereps reps /= 2; // inv doublereps reps /= 2; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 432 496 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a27 = _mm256_loadu_si256((int16x16 *) (f+432)); int16x16 a31 = _mm256_loadu_si256((int16x16 *) (f+496)); int16x16 b27 = _mm256_permute2x128_si256_lo(a27,a31); int16x16 b31 = _mm256_permute2x128_si256_hi(a27,a31); // inv vector_permute 304 368 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a19 = _mm256_loadu_si256((int16x16 *) (f+304)); int16x16 a23 = _mm256_loadu_si256((int16x16 *) (f+368)); int16x16 b19 = _mm256_permute2x128_si256_lo(a19,a23); int16x16 b23 = _mm256_permute2x128_si256_hi(a19,a23); // inv vector_permute 176 240 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a11 = _mm256_loadu_si256((int16x16 *) (f+176)); int16x16 a15 = _mm256_loadu_si256((int16x16 *) (f+240)); int16x16 b11 = _mm256_permute2x128_si256_lo(a11,a15); int16x16 b15 = _mm256_permute2x128_si256_hi(a11,a15); // inv vector_permute 48 112 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b3 = _mm256_permute2x128_si256_lo(a3,a7); int16x16 b7 = _mm256_permute2x128_si256_hi(a3,a7); // inv vector_twist 496 512 507 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b31 = mulmod_scaled_x16(b31,precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 432 512 511 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b27 = mulmod_scaled_x16(b27,precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 368 512 5 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b23 = mulmod_scaled_x16(b23,precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 304 512 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b19 = mulmod_scaled_x16(b19,precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 240 256 255 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b15 = mulmod_scaled_x16(b15,precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 176 256 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b11 = mulmod_scaled_x16(b11,precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 112 128 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b7 = mulmod_scaled_x16(b7,precomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_reduce 48 b3 = reduce_x16(b3,qdata); // inv vector_butterfly 432 496 8 7 int16x16 c27 = add_x16(b27,b31); int16x16 c31 = sub_x16(b27,b31); c31 = mulmod_scaled_x16(c31,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 304 368 8 1 int16x16 c19 = add_x16(b19,b23); int16x16 c23 = sub_x16(b19,b23); c23 = mulmod_scaled_x16(c23,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 176 240 4 1 int16x16 c11 = add_x16(b11,b15); int16x16 c15 = sub_x16(b11,b15); c15 = mulmod_scaled_x16(c15,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 48 112 1 0 int16x16 c3 = add_x16(b3,b7); int16x16 c7 = sub_x16(b3,b7); // inv vector_reduce_ifforward 112 // inv vector_butterfly 368 496 4 1 int16x16 d23 = add_x16(c23,c31); int16x16 d31 = sub_x16(c23,c31); d31 = mulmod_scaled_x16(d31,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 304 432 4 1 int16x16 d19 = add_x16(c19,c27); int16x16 d27 = sub_x16(c19,c27); d27 = mulmod_scaled_x16(d27,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 112 240 1 0 int16x16 d7 = add_x16(c7,c15); int16x16 d15 = sub_x16(c7,c15); // inv vector_butterfly 48 176 1 0 int16x16 d3 = add_x16(c3,c11); int16x16 d11 = sub_x16(c3,c11); // inv vector_reduce_ifreverse 304 d19 = reduce_x16(d19,qdata); // inv vector_reduce_ifreverse 48 d3 = reduce_x16(d3,qdata); // inv vector_butterfly 240 496 1 0 int16x16 e15 = add_x16(d15,d31); int16x16 e31 = sub_x16(d15,d31); // inv vector_butterfly 112 368 1 0 int16x16 e7 = add_x16(d7,d23); int16x16 e23 = sub_x16(d7,d23); // inv vector_butterfly 176 432 1 0 int16x16 e11 = add_x16(d11,d27); int16x16 e27 = sub_x16(d11,d27); // inv vector_butterfly 48 304 1 0 int16x16 e3 = add_x16(d3,d19); int16x16 e19 = sub_x16(d3,d19); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+112),e7); _mm256_storeu_si256((int16x16 *) (f+176),e11); _mm256_storeu_si256((int16x16 *) (f+240),e15); _mm256_storeu_si256((int16x16 *) (f+304),e19); _mm256_storeu_si256((int16x16 *) (f+368),e23); _mm256_storeu_si256((int16x16 *) (f+432),e27); _mm256_storeu_si256((int16x16 *) (f+496),e31); f += 512; } f -= 512*reps; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 416 480 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a26 = _mm256_loadu_si256((int16x16 *) (f+416)); int16x16 a30 = _mm256_loadu_si256((int16x16 *) (f+480)); int16x16 b26 = _mm256_permute2x128_si256_lo(a26,a30); int16x16 b30 = _mm256_permute2x128_si256_hi(a26,a30); // inv vector_permute 288 352 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a18 = _mm256_loadu_si256((int16x16 *) (f+288)); int16x16 a22 = _mm256_loadu_si256((int16x16 *) (f+352)); int16x16 b18 = _mm256_permute2x128_si256_lo(a18,a22); int16x16 b22 = _mm256_permute2x128_si256_hi(a18,a22); // inv vector_permute 160 224 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a10 = _mm256_loadu_si256((int16x16 *) (f+160)); int16x16 a14 = _mm256_loadu_si256((int16x16 *) (f+224)); int16x16 b10 = _mm256_permute2x128_si256_lo(a10,a14); int16x16 b14 = _mm256_permute2x128_si256_hi(a10,a14); // inv vector_permute 32 96 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 b2 = _mm256_permute2x128_si256_lo(a2,a6); int16x16 b6 = _mm256_permute2x128_si256_hi(a2,a6); // inv vector_twist 480 512 507 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b30 = mulmod_scaled_x16(b30,precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 416 512 511 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b26 = mulmod_scaled_x16(b26,precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 352 512 5 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b22 = mulmod_scaled_x16(b22,precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 288 512 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b18 = mulmod_scaled_x16(b18,precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 224 256 255 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b14 = mulmod_scaled_x16(b14,precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 160 256 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b10 = mulmod_scaled_x16(b10,precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 96 128 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b6 = mulmod_scaled_x16(b6,precomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_reduce 32 b2 = reduce_x16(b2,qdata); // inv vector_butterfly 416 480 8 7 int16x16 c26 = add_x16(b26,b30); int16x16 c30 = sub_x16(b26,b30); c30 = mulmod_scaled_x16(c30,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 288 352 8 1 int16x16 c18 = add_x16(b18,b22); int16x16 c22 = sub_x16(b18,b22); c22 = mulmod_scaled_x16(c22,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 160 224 4 1 int16x16 c10 = add_x16(b10,b14); int16x16 c14 = sub_x16(b10,b14); c14 = mulmod_scaled_x16(c14,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 32 96 1 0 int16x16 c2 = add_x16(b2,b6); int16x16 c6 = sub_x16(b2,b6); // inv vector_reduce_ifforward 96 // inv vector_butterfly 352 480 4 1 int16x16 d22 = add_x16(c22,c30); int16x16 d30 = sub_x16(c22,c30); d30 = mulmod_scaled_x16(d30,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 288 416 4 1 int16x16 d18 = add_x16(c18,c26); int16x16 d26 = sub_x16(c18,c26); d26 = mulmod_scaled_x16(d26,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 96 224 1 0 int16x16 d6 = add_x16(c6,c14); int16x16 d14 = sub_x16(c6,c14); // inv vector_butterfly 32 160 1 0 int16x16 d2 = add_x16(c2,c10); int16x16 d10 = sub_x16(c2,c10); // inv vector_reduce_ifreverse 288 d18 = reduce_x16(d18,qdata); // inv vector_reduce_ifreverse 32 d2 = reduce_x16(d2,qdata); // inv vector_butterfly 224 480 1 0 int16x16 e14 = add_x16(d14,d30); int16x16 e30 = sub_x16(d14,d30); // inv vector_butterfly 96 352 1 0 int16x16 e6 = add_x16(d6,d22); int16x16 e22 = sub_x16(d6,d22); // inv vector_butterfly 160 416 1 0 int16x16 e10 = add_x16(d10,d26); int16x16 e26 = sub_x16(d10,d26); // inv vector_butterfly 32 288 1 0 int16x16 e2 = add_x16(d2,d18); int16x16 e18 = sub_x16(d2,d18); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+160),e10); _mm256_storeu_si256((int16x16 *) (f+224),e14); _mm256_storeu_si256((int16x16 *) (f+288),e18); _mm256_storeu_si256((int16x16 *) (f+352),e22); _mm256_storeu_si256((int16x16 *) (f+416),e26); _mm256_storeu_si256((int16x16 *) (f+480),e30); f += 512; } f -= 512*reps; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 400 464 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a25 = _mm256_loadu_si256((int16x16 *) (f+400)); int16x16 a29 = _mm256_loadu_si256((int16x16 *) (f+464)); int16x16 b25 = _mm256_permute2x128_si256_lo(a25,a29); int16x16 b29 = _mm256_permute2x128_si256_hi(a25,a29); // inv vector_permute 272 336 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a17 = _mm256_loadu_si256((int16x16 *) (f+272)); int16x16 a21 = _mm256_loadu_si256((int16x16 *) (f+336)); int16x16 b17 = _mm256_permute2x128_si256_lo(a17,a21); int16x16 b21 = _mm256_permute2x128_si256_hi(a17,a21); // inv vector_permute 144 208 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a9 = _mm256_loadu_si256((int16x16 *) (f+144)); int16x16 a13 = _mm256_loadu_si256((int16x16 *) (f+208)); int16x16 b9 = _mm256_permute2x128_si256_lo(a9,a13); int16x16 b13 = _mm256_permute2x128_si256_hi(a9,a13); // inv vector_permute 16 80 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 b1 = _mm256_permute2x128_si256_lo(a1,a5); int16x16 b5 = _mm256_permute2x128_si256_hi(a1,a5); // inv vector_twist 464 512 507 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b29 = mulmod_scaled_x16(b29,precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 400 512 511 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b25 = mulmod_scaled_x16(b25,precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 336 512 5 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b21 = mulmod_scaled_x16(b21,precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 272 512 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b17 = mulmod_scaled_x16(b17,precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 208 256 255 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b13 = mulmod_scaled_x16(b13,precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 144 256 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b9 = mulmod_scaled_x16(b9,precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 80 128 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b5 = mulmod_scaled_x16(b5,precomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_reduce 16 b1 = reduce_x16(b1,qdata); // inv vector_butterfly 400 464 8 7 int16x16 c25 = add_x16(b25,b29); int16x16 c29 = sub_x16(b25,b29); c29 = mulmod_scaled_x16(c29,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 272 336 8 1 int16x16 c17 = add_x16(b17,b21); int16x16 c21 = sub_x16(b17,b21); c21 = mulmod_scaled_x16(c21,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 144 208 4 1 int16x16 c9 = add_x16(b9,b13); int16x16 c13 = sub_x16(b9,b13); c13 = mulmod_scaled_x16(c13,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 16 80 1 0 int16x16 c1 = add_x16(b1,b5); int16x16 c5 = sub_x16(b1,b5); // inv vector_reduce_ifforward 80 // inv vector_butterfly 336 464 4 1 int16x16 d21 = add_x16(c21,c29); int16x16 d29 = sub_x16(c21,c29); d29 = mulmod_scaled_x16(d29,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 272 400 4 1 int16x16 d17 = add_x16(c17,c25); int16x16 d25 = sub_x16(c17,c25); d25 = mulmod_scaled_x16(d25,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 80 208 1 0 int16x16 d5 = add_x16(c5,c13); int16x16 d13 = sub_x16(c5,c13); // inv vector_butterfly 16 144 1 0 int16x16 d1 = add_x16(c1,c9); int16x16 d9 = sub_x16(c1,c9); // inv vector_reduce_ifreverse 272 d17 = reduce_x16(d17,qdata); // inv vector_reduce_ifreverse 16 d1 = reduce_x16(d1,qdata); // inv vector_butterfly 208 464 1 0 int16x16 e13 = add_x16(d13,d29); int16x16 e29 = sub_x16(d13,d29); // inv vector_butterfly 80 336 1 0 int16x16 e5 = add_x16(d5,d21); int16x16 e21 = sub_x16(d5,d21); // inv vector_butterfly 144 400 1 0 int16x16 e9 = add_x16(d9,d25); int16x16 e25 = sub_x16(d9,d25); // inv vector_butterfly 16 272 1 0 int16x16 e1 = add_x16(d1,d17); int16x16 e17 = sub_x16(d1,d17); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+144),e9); _mm256_storeu_si256((int16x16 *) (f+208),e13); _mm256_storeu_si256((int16x16 *) (f+272),e17); _mm256_storeu_si256((int16x16 *) (f+336),e21); _mm256_storeu_si256((int16x16 *) (f+400),e25); _mm256_storeu_si256((int16x16 *) (f+464),e29); f += 512; } f -= 512*reps; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 384 448 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a24 = _mm256_loadu_si256((int16x16 *) (f+384)); int16x16 a28 = _mm256_loadu_si256((int16x16 *) (f+448)); int16x16 b24 = _mm256_permute2x128_si256_lo(a24,a28); int16x16 b28 = _mm256_permute2x128_si256_hi(a24,a28); // inv vector_permute 256 320 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a16 = _mm256_loadu_si256((int16x16 *) (f+256)); int16x16 a20 = _mm256_loadu_si256((int16x16 *) (f+320)); int16x16 b16 = _mm256_permute2x128_si256_lo(a16,a20); int16x16 b20 = _mm256_permute2x128_si256_hi(a16,a20); // inv vector_permute 128 192 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a8 = _mm256_loadu_si256((int16x16 *) (f+128)); int16x16 a12 = _mm256_loadu_si256((int16x16 *) (f+192)); int16x16 b8 = _mm256_permute2x128_si256_lo(a8,a12); int16x16 b12 = _mm256_permute2x128_si256_hi(a8,a12); // inv vector_permute 0 64 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 b0 = _mm256_permute2x128_si256_lo(a0,a4); int16x16 b4 = _mm256_permute2x128_si256_hi(a0,a4); // inv vector_twist 448 512 507 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b28 = mulmod_scaled_x16(b28,precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 384 512 511 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b24 = mulmod_scaled_x16(b24,precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 320 512 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b20 = mulmod_scaled_x16(b20,precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 256 512 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b16 = mulmod_scaled_x16(b16,precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 192 256 255 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b12 = mulmod_scaled_x16(b12,precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 128 256 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b8 = mulmod_scaled_x16(b8,precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 64 128 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b4 = mulmod_scaled_x16(b4,precomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_reduce 0 b0 = reduce_x16(b0,qdata); // inv vector_butterfly 384 448 8 7 int16x16 c24 = add_x16(b24,b28); int16x16 c28 = sub_x16(b24,b28); c28 = mulmod_scaled_x16(c28,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 256 320 8 1 int16x16 c16 = add_x16(b16,b20); int16x16 c20 = sub_x16(b16,b20); c20 = mulmod_scaled_x16(c20,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 128 192 4 1 int16x16 c8 = add_x16(b8,b12); int16x16 c12 = sub_x16(b8,b12); c12 = mulmod_scaled_x16(c12,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 0 64 1 0 int16x16 c0 = add_x16(b0,b4); int16x16 c4 = sub_x16(b0,b4); // inv vector_reduce_ifforward 64 // inv vector_butterfly 320 448 4 1 int16x16 d20 = add_x16(c20,c28); int16x16 d28 = sub_x16(c20,c28); d28 = mulmod_scaled_x16(d28,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 256 384 4 1 int16x16 d16 = add_x16(c16,c24); int16x16 d24 = sub_x16(c16,c24); d24 = mulmod_scaled_x16(d24,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 64 192 1 0 int16x16 d4 = add_x16(c4,c12); int16x16 d12 = sub_x16(c4,c12); // inv vector_butterfly 0 128 1 0 int16x16 d0 = add_x16(c0,c8); int16x16 d8 = sub_x16(c0,c8); // inv vector_reduce_ifreverse 256 d16 = reduce_x16(d16,qdata); // inv vector_reduce_ifreverse 0 d0 = reduce_x16(d0,qdata); // inv vector_butterfly 192 448 1 0 int16x16 e12 = add_x16(d12,d28); int16x16 e28 = sub_x16(d12,d28); // inv vector_butterfly 64 320 1 0 int16x16 e4 = add_x16(d4,d20); int16x16 e20 = sub_x16(d4,d20); // inv vector_butterfly 128 384 1 0 int16x16 e8 = add_x16(d8,d24); int16x16 e24 = sub_x16(d8,d24); // inv vector_butterfly 0 256 1 0 int16x16 e0 = add_x16(d0,d16); int16x16 e16 = sub_x16(d0,d16); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+128),e8); _mm256_storeu_si256((int16x16 *) (f+192),e12); _mm256_storeu_si256((int16x16 *) (f+256),e16); _mm256_storeu_si256((int16x16 *) (f+320),e20); _mm256_storeu_si256((int16x16 *) (f+384),e24); _mm256_storeu_si256((int16x16 *) (f+448),e28); f += 512; } f -= 512*reps; // inv startntt 512 } void invntt512_7681(int16 *f,int reps) { invntt512(f,reps,qdata_7681); } libntruprime-20241021/src/core/mult3sntrupP/avx/ntt.h0000644000000000000000000000037014705505552021124 0ustar rootroot#ifndef ntt_H #define ntt_H #include #define ntt512_7681 CRYPTO_NAMESPACE(ntt512_7681) #define invntt512_7681 CRYPTO_NAMESPACE(invntt512_7681) extern void ntt512_7681(int16_t *,int); extern void invntt512_7681(int16_t *,int); #endif libntruprime-20241021/src/core/mult3sntrupP/avx/precomp7681.inc0000777000000000000000000000000014705505552031120 2../../multsntrupP/avx/precomp7681.incustar rootrootlibntruprime-20241021/src/core/mult3sntrupP/compact/0000755000000000000000000000000014705505552020776 5ustar rootrootlibntruprime-20241021/src/core/mult3sntrupP/compact/mult.c0000644000000000000000000000211614705505552022123 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include "params.h" #include "crypto_int8.h" #include "crypto_int16.h" #define int8 crypto_int8 #define int16 crypto_int16 typedef int8 small; /* works for -16384 <= x < 16384 */ static small F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { small *h = (void *) outbytes; small f[p]; small g[p]; int16 fg[p+p-1]; int i,j; for (i = 0;i < p;++i) { small fi = inbytes[i]; small fi0 = crypto_int8_bottombit_01(fi); f[i] = fi0-(fi&(fi0<<1)); } for (i = 0;i < p;++i) { small gi = kbytes[i]; small gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } for (i = 0; i < p + p - 1; ++i) fg[i] = 0; for (i = 0; i < p; ++i) for (j = 0; j < p; ++j) fg[i + j] += f[i] * (int16_t)g[j]; for (i = p; i < p + p - 1; ++i) fg[i - p] += fg[i]; for (i = p; i < p + p - 1; ++i) fg[i - p + 1] += fg[i]; for (i = 0; i < p; ++i) h[i] = F3_freeze(fg[i]); } libntruprime-20241021/src/core/mult3sntrupP/compact/params.h0000644000000000000000000000007114705505552022430 0ustar rootroot#ifndef params_H #define params_H #define p {P} #endif libntruprime-20241021/src/core/multsntrupP/0000755000000000000000000000000014705505552017265 5ustar rootrootlibntruprime-20241021/src/core/multsntrupP/avx/0000755000000000000000000000000014705505552020063 5ustar rootrootlibntruprime-20241021/src/core/multsntrupP/avx/architectures0000777000000000000000000000000014705505552030774 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/multsntrupP/avx/mult1024.c0000644000000000000000000002464414705505552021531 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_{Q}_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16({15Q})),const_x16({Q}))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_{Q}_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16({QINV})); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16({Q})); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } static void stride(int16 fpad[4][512],const int16 f[1024]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3; int i,j; for (j = 0;j < 256;j += 16) { f0 = load_x16(&f[0]); f1 = load_x16(&f[16]); f2 = load_x16(&f[32]); f3 = load_x16(&f[48]); f += 64; g0 = _mm256_permute2x128_si256(f0,f2,0x20); g1 = _mm256_permute2x128_si256(f0,f2,0x31); g2 = _mm256_permute2x128_si256(f1,f3,0x20); g3 = _mm256_permute2x128_si256(f1,f3,0x31); f0 = _mm256_unpacklo_epi16(g0,g1); f1 = _mm256_unpackhi_epi16(g0,g1); f2 = _mm256_unpacklo_epi16(g2,g3); f3 = _mm256_unpackhi_epi16(g2,g3); g0 = _mm256_unpacklo_epi16(f0,f1); g1 = _mm256_unpackhi_epi16(f0,f1); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); f0 = _mm256_unpacklo_epi64(g0,g2); f1 = _mm256_unpackhi_epi64(g0,g2); f2 = _mm256_unpacklo_epi64(g1,g3); f3 = _mm256_unpackhi_epi64(g1,g3); store_x16(&fpad[0][j],f0); store_x16(&fpad[1][j],f1); store_x16(&fpad[2][j],f2); store_x16(&fpad[3][j],f3); } for (i = 0;i < 4;++i) for (j = 256;j < 512;++j) fpad[i][j] = 0; } static void unstride(int16 f[2048],const int16 fpad[4][512]) { int16x16 f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3; int j; for (j = 0;j < 512;j += 16) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); g2 = _mm256_unpacklo_epi16(f2,f3); g3 = _mm256_unpackhi_epi16(f2,f3); g0 = _mm256_unpacklo_epi16(f0,f1); h0 = _mm256_unpacklo_epi32(g0,g2); h1 = _mm256_unpackhi_epi32(g0,g2); g1 = _mm256_unpackhi_epi16(f0,f1); h2 = _mm256_unpacklo_epi32(g1,g3); h3 = _mm256_unpackhi_epi32(g1,g3); f1 = _mm256_permute2x128_si256(h2,h3,0x20); f3 = _mm256_permute2x128_si256(h2,h3,0x31); f0 = _mm256_permute2x128_si256(h0,h1,0x20); f2 = _mm256_permute2x128_si256(h0,h1,0x31); store_x16(&f[0],f0); store_x16(&f[16],f1); store_x16(&f[32],f2); store_x16(&f[48],f3); f += 64; } } #define ALIGNED __attribute((aligned(512))) static const ALIGNED int16 y_7681[512] = { #include "precomp7681.inc" } ; static const ALIGNED int16 y_10753[512] = { #include "precomp10753.inc" } ; /* can also compute these on the fly, and share storage, at expense of 2 NTTs on top of the 24 NTTs below: ... for (i = 0;i < 512;++i) y_7681[i] = 0; y_7681[1] = -3593; ntt512_7681(y_7681,1); ... for (i = 0;i < 512;++i) y_10753[i] = 0; y_10753[1] = 1018; ntt512_10753(y_10753,1); */ static void mult1024(int16 h[2048],const int16 f[1024],const int16 g[1024]) { ALIGNED int16 fgpad[8][512]; #define fpad fgpad #define gpad (fgpad+4) #define hpad fpad ALIGNED int16 h_7681[2048]; ALIGNED int16 h_10753[2048]; int i; stride(fpad,f); stride(gpad,g); ntt512_7681(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_7681_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_7681_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_7681_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_7681_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_7681_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_7681_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_7681[i]); h4 = mulmod_7681_x16(h4,twist); h5 = mulmod_7681_x16(h5,twist); h6 = mulmod_7681_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); } invntt512_7681(hpad[0],4); unstride(h_7681,hpad); stride(fpad,f); stride(gpad,g); ntt512_10753(fgpad[0],8); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_10753_x16(load_x16(&fpad[3][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_10753_x16(load_x16(&gpad[3][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 d3 = mulmod_10753_x16(f3,g3); int16x16 d0d1 = add_x16(d0,d1); int16x16 d0d1d2 = add_x16(d0d1,d2); int16x16 d0d1d2d3 = squeeze_10753_x16(add_x16(d0d1d2,d3)); int16x16 d2d3 = add_x16(d2,d3); int16x16 d1d2d3 = add_x16(d1,d2d3); int16x16 e01 = mulmod_10753_x16(sub_x16(f0,f1),sub_x16(g0,g1)); int16x16 e02 = mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g0,g2)); int16x16 e03 = mulmod_10753_x16(sub_x16(f0,f3),sub_x16(g0,g3)); int16x16 e12 = mulmod_10753_x16(sub_x16(f1,f2),sub_x16(g1,g2)); int16x16 e13 = mulmod_10753_x16(sub_x16(f1,f3),sub_x16(g1,g3)); int16x16 e23 = mulmod_10753_x16(sub_x16(f2,f3),sub_x16(g2,g3)); int16x16 h0 = d0; int16x16 h1 = sub_x16(d0d1,e01); int16x16 h2 = sub_x16(d0d1d2,e02); int16x16 h3 = sub_x16(d0d1d2d3,add_x16(e12,e03)); int16x16 h4 = sub_x16(d1d2d3,e13); int16x16 h5 = sub_x16(d2d3,e23); int16x16 h6 = d3; int16x16 twist = load_x16(&y_10753[i]); h4 = mulmod_10753_x16(h4,twist); h5 = mulmod_10753_x16(h5,twist); h6 = mulmod_10753_x16(h6,twist); h0 = add_x16(h0,h4); h1 = add_x16(h1,h5); h2 = add_x16(h2,h6); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); store_x16(&hpad[3][i],squeeze_10753_x16(h3)); } invntt512_10753(hpad[0],4); unstride(h_10753,hpad); for (i = 0;i < 2048;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_{Q}_x16(t,const_x16({Q10753}))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #define p {P} #define q {Q} static inline int16x16 freeze_{Q}_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1024]; ALIGNED int16 g[1024]; ALIGNED int16 fg[2048]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1024;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1024;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 1024;i += 16) { x = load_x16(&f[i]); x = freeze_{Q}_x16(squeeze_{Q}_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1024(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1024;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_{Q}_x16(squeeze_{Q}_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/src/core/multsntrupP/avx/mult1280.c0000644000000000000000000003652414705505552021535 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_{Q}_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16({15Q})),const_x16({Q}))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_{Q}_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16({QINV})); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16({Q})); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0) #define mask2 _mm256_set_epi16(0,0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0) #define mask3 _mm256_set_epi16(0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0,0,0) #define mask4 _mm256_set_epi16(0,0,0,-1,0,0,0,0,-1,0,0,0,0,-1,0,0) static void good(int16 fpad[5][512],const int16 f[1280]) { int j; int16x16 f0,f1,f2; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); f2 = load_x16(f+1024+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)|(f2&mask4)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)|(f2&mask0)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)|(f2&mask1)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)|(f2&mask2)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)|(f2&mask3)); j += 16; } for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[1][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[3][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[4][j],(f0&mask2)|(f1&mask3)); j += 16; if (j == 512) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[2][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[3][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[4][j],(f0&mask0)|(f1&mask1)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[3][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[4][j],(f0&mask3)|(f1&mask4)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[1][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[2][j],(f0&mask4)|(f1&mask0)); store_x16(&fpad[3][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[4][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask3)); store_x16(&fpad[3][j],(f0&mask3)|(f1&mask4)); store_x16(&fpad[4][j],(f0&mask4)|(f1&mask0)); j += 16; } } static void ungood(int16 f[2560],const int16 fpad[5][512]) { int j; int16x16 f0,f1,f2,f3,f4,g0,g1,g2,g3,g4; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g1 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g2 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g3 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; /* same as (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g1 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g2 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g3 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g1 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g2 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g3 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g2 = (f0&mask1)|(f1&mask2)|(f2&mask3)|(f3&mask4)|(f4&mask0); g3 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); f3 = load_x16(&fpad[3][j]); f4 = load_x16(&fpad[4][j]); g0 = (f0&mask2)|(f1&mask3)|(f2&mask4)|(f3&mask0)|(f4&mask1); g1 = (f0&mask3)|(f1&mask4)|(f2&mask0)|(f3&mask1)|(f4&mask2); g2 = (f0&mask4)|(f1&mask0)|(f2&mask1)|(f3&mask2)|(f4&mask3); g3 = (f0&mask0)|(f1&mask1)|(f2&mask2)|(f3&mask3)|(f4&mask4); g4 = f0^f1^f2^f3^f4^g0^g1^g2^g3; store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); store_x16(f+1536+j,g3); store_x16(f+2048+j,g4); j += 16; } } #define ALIGNED __attribute((aligned(512))) static void mult1280(int16 h[2560],const int16 f[1280],const int16 g[1280]) { ALIGNED int16 fgpad[10][512]; #define fpad fgpad #define gpad (fgpad+5) #define hpad fpad ALIGNED int16 h_7681[2560]; ALIGNED int16 h_10753[2560]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],10); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_7681_x16(load_x16(&fpad[3][i])); int16x16 f4 = squeeze_7681_x16(load_x16(&fpad[4][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_7681_x16(load_x16(&gpad[3][i])); int16x16 g4 = squeeze_7681_x16(load_x16(&gpad[4][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 d3 = mulmod_7681_x16(f3,g3); int16x16 d4 = mulmod_7681_x16(f4,g4); int16x16 dsum; int16x16 h0,h1,h2,h3,h4; dsum = add_x16(add_x16(d0,d1),d2); dsum = squeeze_7681_x16(dsum); dsum = add_x16(add_x16(d3,d4),dsum); dsum = squeeze_7681_x16(dsum); /* could save one mult here using sum hi = (sum fi)(sum gi) */ h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f1),sub_x16(g1,g4))); h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f0),sub_x16(g0,g2))); h3 = add_x16(dsum,mulmod_7681_x16(sub_x16(f3,f0),sub_x16(g0,g3))); h4 = add_x16(dsum,mulmod_7681_x16(sub_x16(f4,f0),sub_x16(g0,g4))); h0 = add_x16(h0,mulmod_7681_x16(sub_x16(f3,f2),sub_x16(g2,g3))); h1 = add_x16(h1,mulmod_7681_x16(sub_x16(f4,f2),sub_x16(g2,g4))); h2 = add_x16(h2,mulmod_7681_x16(sub_x16(f4,f3),sub_x16(g3,g4))); h3 = add_x16(h3,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); h4 = add_x16(h4,mulmod_7681_x16(sub_x16(f3,f1),sub_x16(g1,g3))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); store_x16(&hpad[3][i],squeeze_7681_x16(h3)); store_x16(&hpad[4][i],squeeze_7681_x16(h4)); } invntt512_7681(hpad[0],5); ungood(h_7681,hpad); good(fpad,f); good(gpad,g); ntt512_10753(fgpad[0],10); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 f3 = squeeze_10753_x16(load_x16(&fpad[3][i])); int16x16 f4 = squeeze_10753_x16(load_x16(&fpad[4][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 g3 = squeeze_10753_x16(load_x16(&gpad[3][i])); int16x16 g4 = squeeze_10753_x16(load_x16(&gpad[4][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 d3 = mulmod_10753_x16(f3,g3); int16x16 d4 = mulmod_10753_x16(f4,g4); int16x16 dsum; int16x16 h0,h1,h2,h3,h4; dsum = add_x16(add_x16(d0,d1),d2); dsum = squeeze_10753_x16(dsum); dsum = add_x16(add_x16(d3,d4),dsum); dsum = squeeze_10753_x16(dsum); /* could save one mult here using sum hi = (sum fi)(sum gi) */ h0 = add_x16(dsum,mulmod_10753_x16(sub_x16(f4,f1),sub_x16(g1,g4))); h1 = add_x16(dsum,mulmod_10753_x16(sub_x16(f1,f0),sub_x16(g0,g1))); h2 = add_x16(dsum,mulmod_10753_x16(sub_x16(f2,f0),sub_x16(g0,g2))); h3 = add_x16(dsum,mulmod_10753_x16(sub_x16(f3,f0),sub_x16(g0,g3))); h4 = add_x16(dsum,mulmod_10753_x16(sub_x16(f4,f0),sub_x16(g0,g4))); h0 = add_x16(h0,mulmod_10753_x16(sub_x16(f3,f2),sub_x16(g2,g3))); h1 = add_x16(h1,mulmod_10753_x16(sub_x16(f4,f2),sub_x16(g2,g4))); h2 = add_x16(h2,mulmod_10753_x16(sub_x16(f4,f3),sub_x16(g3,g4))); h3 = add_x16(h3,mulmod_10753_x16(sub_x16(f2,f1),sub_x16(g1,g2))); h4 = add_x16(h4,mulmod_10753_x16(sub_x16(f3,f1),sub_x16(g1,g3))); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); store_x16(&hpad[3][i],squeeze_10753_x16(h3)); store_x16(&hpad[4][i],squeeze_10753_x16(h4)); } invntt512_10753(hpad[0],5); ungood(h_10753,hpad); for (i = 0;i < 2560;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_{Q}_x16(t,const_x16({Q10753}))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #define p {P} #define q {Q} static inline int16x16 freeze_{Q}_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[1280]; ALIGNED int16 g[1280]; ALIGNED int16 fg[2560]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 1280;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 1280;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 1280;i += 16) { x = load_x16(&f[i]); x = freeze_{Q}_x16(squeeze_{Q}_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult1280(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 1280;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_{Q}_x16(squeeze_{Q}_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/src/core/multsntrupP/avx/mult768.c0000644000000000000000000002113014705505552021452 0ustar rootroot// 20240812 djb: more cryptoint usage #include "ntt.h" #include #include "crypto_int8.h" typedef int8_t int8; typedef int16_t int16; #define int16x16 __m256i #define load_x16(p) _mm256_loadu_si256((int16x16 *) (p)) #define store_x16(p,v) _mm256_storeu_si256((int16x16 *) (p),(v)) #define const_x16 _mm256_set1_epi16 #define add_x16 _mm256_add_epi16 #define sub_x16 _mm256_sub_epi16 #define mullo_x16 _mm256_mullo_epi16 #define mulhi_x16 _mm256_mulhi_epi16 #define mulhrs_x16 _mm256_mulhrs_epi16 #define signmask_x16(x) _mm256_srai_epi16((x),15) static inline int16x16 squeeze_{Q}_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16({15Q})),const_x16({Q}))); } static inline int16x16 squeeze_7681_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(4)),const_x16(7681))); } static inline int16x16 squeeze_10753_x16(int16x16 x) { return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(3)),const_x16(10753))); } static inline int16x16 mulmod_{Q}_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16({QINV})); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16({Q})); return sub_x16(b,e); } static inline int16x16 mulmod_7681_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-7679)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(7681)); return sub_x16(b,e); } static inline int16x16 mulmod_10753_x16(int16x16 x,int16x16 y) { int16x16 yqinv = mullo_x16(y,const_x16(-10751)); /* XXX: precompute */ int16x16 b = mulhi_x16(x,y); int16x16 d = mullo_x16(x,yqinv); int16x16 e = mulhi_x16(d,const_x16(10753)); return sub_x16(b,e); } #define mask0 _mm256_set_epi16(-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1) #define mask1 _mm256_set_epi16(0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0) #define mask2 _mm256_set_epi16(0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0) static void good(int16 fpad[3][512],const int16 f[768]) { int j; int16x16 f0,f1; j = 0; for (;;) { f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[1][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[2][j],(f0&mask2)|(f1&mask0)); j += 16; if (j == 256) break; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[1][j],(f0&mask0)|(f1&mask1)); store_x16(&fpad[2][j],(f0&mask1)|(f1&mask2)); j += 16; f0 = load_x16(f+j); f1 = load_x16(f+512+j); store_x16(&fpad[0][j],(f0&mask1)|(f1&mask2)); store_x16(&fpad[1][j],(f0&mask2)|(f1&mask0)); store_x16(&fpad[2][j],(f0&mask0)|(f1&mask1)); j += 16; } for (;;) { f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask2); store_x16(&fpad[1][j],f0&mask0); store_x16(&fpad[2][j],f0&mask1); j += 16; if (j == 512) break; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask1); store_x16(&fpad[1][j],f0&mask2); store_x16(&fpad[2][j],f0&mask0); j += 16; f0 = load_x16(f+j); store_x16(&fpad[0][j],f0&mask0); store_x16(&fpad[1][j],f0&mask1); store_x16(&fpad[2][j],f0&mask2); j += 16; } } static void ungood(int16 f[1536],const int16 fpad[3][512]) { int j; int16x16 f0,f1,f2,g0,g1,g2; j = 0; for (;;) { f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask0)|(f1&mask1)|(f2&mask2); g1 = (f0&mask1)|(f1&mask2)|(f2&mask0); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask2)|(f1&mask0)|(f2&mask1) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask2)|(f1&mask0)|(f2&mask1); g1 = (f0&mask0)|(f1&mask1)|(f2&mask2); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask1)|(f1&mask2)|(f2&mask0) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; if (j == 512) break; f0 = load_x16(&fpad[0][j]); f1 = load_x16(&fpad[1][j]); f2 = load_x16(&fpad[2][j]); g0 = (f0&mask1)|(f1&mask2)|(f2&mask0); g1 = (f0&mask2)|(f1&mask0)|(f2&mask1); g2 = f0^f1^f2^g0^g1; /* same as (f0&mask0)|(f1&mask1)|(f2&mask2) */ store_x16(f+0+j,g0); store_x16(f+512+j,g1); store_x16(f+1024+j,g2); j += 16; } } #define ALIGNED __attribute((aligned(512))) static void mult768(int16 h[1536],const int16 f[768],const int16 g[768]) { ALIGNED int16 fgpad[6][512]; #define fpad fgpad #define gpad (fgpad+3) #define hpad fpad ALIGNED int16 h_7681[1536]; ALIGNED int16 h_10753[1536]; int i; good(fpad,f); good(gpad,g); ntt512_7681(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_7681_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_7681_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_7681_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_7681_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_7681_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_7681_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_7681_x16(f0,g0); int16x16 d1 = mulmod_7681_x16(f1,g1); int16x16 d2 = mulmod_7681_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_7681_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_7681_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_7681_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_7681_x16(h0)); store_x16(&hpad[1][i],squeeze_7681_x16(h1)); store_x16(&hpad[2][i],squeeze_7681_x16(h2)); } invntt512_7681(hpad[0],3); ungood(h_7681,hpad); good(fpad,f); good(gpad,g); ntt512_10753(fgpad[0],6); for (i = 0;i < 512;i += 16) { int16x16 f0 = squeeze_10753_x16(load_x16(&fpad[0][i])); int16x16 f1 = squeeze_10753_x16(load_x16(&fpad[1][i])); int16x16 f2 = squeeze_10753_x16(load_x16(&fpad[2][i])); int16x16 g0 = squeeze_10753_x16(load_x16(&gpad[0][i])); int16x16 g1 = squeeze_10753_x16(load_x16(&gpad[1][i])); int16x16 g2 = squeeze_10753_x16(load_x16(&gpad[2][i])); int16x16 d0 = mulmod_10753_x16(f0,g0); int16x16 d1 = mulmod_10753_x16(f1,g1); int16x16 d2 = mulmod_10753_x16(f2,g2); int16x16 dsum = add_x16(add_x16(d0,d1),d2); int16x16 h0 = add_x16(dsum,mulmod_10753_x16(sub_x16(f2,f1),sub_x16(g1,g2))); int16x16 h1 = add_x16(dsum,mulmod_10753_x16(sub_x16(f1,f0),sub_x16(g0,g1))); int16x16 h2 = add_x16(dsum,mulmod_10753_x16(sub_x16(f0,f2),sub_x16(g2,g0))); store_x16(&hpad[0][i],squeeze_10753_x16(h0)); store_x16(&hpad[1][i],squeeze_10753_x16(h1)); store_x16(&hpad[2][i],squeeze_10753_x16(h2)); } invntt512_10753(hpad[0],3); ungood(h_10753,hpad); for (i = 0;i < 1536;i += 16) { int16x16 u1 = load_x16(&h_10753[i]); int16x16 u2 = load_x16(&h_7681[i]); int16x16 t; u1 = mulmod_10753_x16(u1,const_x16(1268)); u2 = mulmod_7681_x16(u2,const_x16(956)); t = mulmod_7681_x16(sub_x16(u2,u1),const_x16(-2539)); t = add_x16(u1,mulmod_{Q}_x16(t,const_x16({Q10753}))); store_x16(&h[i],t); } } #include "crypto_core.h" #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #define p {P} #define q {Q} static inline int16x16 freeze_{Q}_x16(int16x16 x) { int16x16 mask, xq; x = add_x16(x,const_x16(q)&signmask_x16(x)); mask = signmask_x16(sub_x16(x,const_x16((q+1)/2))); xq = sub_x16(x,const_x16(q)); x = _mm256_blendv_epi8(xq,x,mask); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { ALIGNED int16 f[768]; ALIGNED int16 g[768]; ALIGNED int16 fg[1536]; #define h f int i; int16x16 x; x = const_x16(0); for (i = p&~15;i < 768;i += 16) store_x16(&f[i],x); for (i = p&~15;i < 768;i += 16) store_x16(&g[i],x); crypto_decode_pxint16(f,inbytes); for (i = 0;i < 768;i += 16) { x = load_x16(&f[i]); x = freeze_{Q}_x16(squeeze_{Q}_x16(x)); store_x16(&f[i],x); } for (i = 0;i < p;++i) { int8 gi = kbytes[i]; int8 gi0 = crypto_int8_bottombit_01(gi); g[i] = gi0-(gi&(gi0<<1)); } mult768(fg,f,g); fg[0] -= fg[p-1]; for (i = 0;i < 768;i += 16) { int16x16 fgi = load_x16(&fg[i]); int16x16 fgip = load_x16(&fg[i + p]); int16x16 fgip1 = load_x16(&fg[i + p - 1]); x = add_x16(fgi,add_x16(fgip,fgip1)); x = freeze_{Q}_x16(squeeze_{Q}_x16(x)); store_x16(&h[i],x); } crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/src/core/multsntrupP/avx/ntt.c0000644000000000000000000035134014705505552021042 0ustar rootroot// linker define ntt512_7681 // linker define ntt512_10753 // linker define invntt512_7681 // linker define invntt512_10753 #include "ntt.h" // auto-generated; do not edit #include #define _mm256_permute2x128_si256_lo(f0,f1) _mm256_permute2x128_si256(f0,f1,0x20) #define _mm256_permute2x128_si256_hi(f0,f1) _mm256_permute2x128_si256(f0,f1,0x31) #define int16x16 __m256i typedef int16_t int16; typedef int32_t int32; static const int16 __attribute((aligned(32))) qdata_7681[] = { #define precomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+0) -3593,-3593,-3593,-3593,-3625,-3625,-3625,-3625,-3593,-3593,-3593,-3593,-3625,-3625,-3625,-3625, #define precomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+16) -3777,-3777,-3777,-3777,3182,3182,3182,3182,-3777,-3777,-3777,-3777,3182,3182,3182,3182, #define precomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+32) -3593,-3593,-3593,-3593,-3182,-3182,-3182,-3182,-3593,-3593,-3593,-3593,-3182,-3182,-3182,-3182, #define precomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+48) 3777,3777,3777,3777,3625,3625,3625,3625,3777,3777,3777,3777,3625,3625,3625,3625, #define precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+64) -3593,-3593,-3593,-3593,2194,2194,2194,2194,-3593,-3593,-3593,-3593,2194,2194,2194,2194, #define precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+80) -3625,-3625,-3625,-3625,-1100,-1100,-1100,-1100,-3625,-3625,-3625,-3625,-1100,-1100,-1100,-1100, #define precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+96) -3593,-3593,-3593,-3593,3696,3696,3696,3696,-3593,-3593,-3593,-3593,3696,3696,3696,3696, #define precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+112) -3182,-3182,-3182,-3182,-2456,-2456,-2456,-2456,-3182,-3182,-3182,-3182,-2456,-2456,-2456,-2456, #define precomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+128) -3593,1701,2194,834,-3625,2319,-1100,121,-3593,1701,2194,834,-3625,2319,-1100,121, #define precomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+144) -3777,1414,2456,2495,3182,2876,-3696,2250,-3777,1414,2456,2495,3182,2876,-3696,2250, #define precomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+160) -3593,-2250,3696,-2876,-3182,-2495,-2456,-1414,-3593,-2250,3696,-2876,-3182,-2495,-2456,-1414, #define precomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+176) 3777,-121,1100,-2319,3625,-834,-2194,-1701,3777,-121,1100,-2319,3625,-834,-2194,-1701, #define precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+192) -3593,3364,1701,-1599,2194,2557,834,-2816,-3593,3364,1701,-1599,2194,2557,834,-2816, #define precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+208) -3625,617,2319,2006,-1100,-1296,121,1986,-3625,617,2319,2006,-1100,-1296,121,1986, #define precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+224) -3593,2237,-2250,-1483,3696,3706,-2876,1921,-3593,2237,-2250,-1483,3696,3706,-2876,1921, #define precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+240) -3182,2088,-2495,-1525,-2456,1993,-1414,2830,-3182,2088,-2495,-1525,-2456,1993,-1414,2830, #define precomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+256) -3593,514,3364,438,1701,2555,-1599,-1738,2194,103,2557,1881,834,-549,-2816,638, #define precomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+272) -3625,-1399,617,-1760,2319,2535,2006,3266,-1100,-1431,-1296,3174,121,3153,1986,-810, #define precomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+288) -3777,2956,-2830,-679,1414,2440,-1993,-3689,2456,2804,1525,3555,2495,1535,-2088,-7, #define precomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+304) 3182,-1321,-1921,-1305,2876,-3772,-3706,3600,-3696,-2043,1483,-396,2250,-2310,-2237,1887, #define precomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+320) -3593,-1887,2237,2310,-2250,396,-1483,2043,3696,-3600,3706,3772,-2876,1305,1921,1321, #define precomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+336) -3182,7,2088,-1535,-2495,-3555,-1525,-2804,-2456,3689,1993,-2440,-1414,679,2830,-2956, #define precomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+352) 3777,810,-1986,-3153,-121,-3174,1296,1431,1100,-3266,-2006,-2535,-2319,1760,-617,1399, #define precomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+368) 3625,-638,2816,549,-834,-1881,-2557,-103,-2194,1738,1599,-2555,-1701,-438,-3364,-514, #define precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+384) -3593,-1532,514,-373,3364,-3816,438,-3456,1701,783,2555,2883,-1599,727,-1738,-2385, #define precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+400) 2194,-2160,103,-2391,2557,2762,1881,-2426,834,3310,-549,-1350,-2816,1386,638,-194, #define precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+416) -3625,404,-1399,-3692,617,-2764,-1760,-1054,2319,1799,2535,-3588,2006,1533,3266,2113, #define precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+432) -1100,-2579,-1431,-1756,-1296,1598,3174,-2,121,-3480,3153,-2572,1986,2743,-810,2919, #define precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+448) -3593,2789,-1887,-921,2237,-1497,2310,-2133,-2250,-915,396,1390,-1483,3135,2043,-859, #define precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+464) 3696,2732,-3600,-1464,3706,2224,3772,-2665,-2876,1698,1305,2835,1921,730,1321,486, #define precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+480) -3182,3417,7,-3428,2088,-3145,-1535,1168,-2495,-3831,-3555,-3750,-1525,660,-2804,2649, #define precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+496) -2456,3405,3689,-1521,1993,1681,-2440,1056,-1414,1166,679,-2233,2830,2175,-2956,-1919, #define precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+512) -3593,-1404,-1532,451,514,-402,-373,1278,3364,-509,-3816,-3770,438,-2345,-3456,-226, #define precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+528) 1701,-1689,783,-1509,2555,2963,2883,1242,-1599,1669,727,2719,-1738,642,-2385,-436, #define precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+544) 2194,3335,-2160,1779,103,3745,-2391,17,2557,2812,2762,-1144,1881,83,-2426,-1181, #define precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+560) 834,-1519,3310,3568,-549,-796,-1350,2072,-2816,-2460,1386,2891,638,-2083,-194,-715, #define precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+576) -3593,-402,-3816,-226,2555,1669,-2385,1779,2557,83,3310,2072,638,1012,-3692,1295, #define precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+592) 2319,-3208,1533,-2071,-1431,-2005,-2,1586,1986,-293,1919,-929,-679,777,-1681,-3461, #define precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+608) 2456,3366,3750,-1203,1535,-3657,-3417,-1712,-1921,2515,2665,-1070,3600,2532,-3135,-2589, #define precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+624) 2250,-2258,921,-658,-514,509,3456,1509,1599,-642,2160,-17,-1881,1519,1350,-2891, #define precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+640) -3593,-3434,-1497,893,396,-2422,-859,2965,3706,-2339,1698,-2937,1321,-670,-3428,-3163, #define precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+656) -2495,-1072,660,1084,3689,-179,1056,-1338,2830,2786,-2919,-3677,-3153,-151,-1598,3334, #define precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+672) 1100,-3314,3588,2262,1760,-2230,-404,2083,2816,-3568,2426,-2812,-103,436,-727,-2963, #define precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+688) -1701,3770,373,1404,1887,-1649,2133,-826,1483,434,-2732,3287,-3772,-2378,-2835,3723, #define precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+704) -3593,658,2789,370,-1887,-3434,-921,-3752,2237,1649,-1497,2258,2310,3581,-2133,893, #define precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+720) -2250,3794,-915,826,396,2589,1390,592,-1483,-2422,3135,3214,2043,-434,-859,-2532, #define precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+736) 3696,1121,2732,2965,-3600,2998,-1464,-3287,3706,1070,2224,-589,3772,-2339,-2665,2070, #define precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+752) -2876,2378,1698,-2515,1305,-2815,2835,-2937,1921,-1348,730,-3723,1321,1712,486,2130, #define q_x16 *(const int16x16 *)(qdata+768) 7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681,7681, #define qinvprecomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+784) -9,-9,-9,-9,-16425,-16425,-16425,-16425,-9,-9,-9,-9,-16425,-16425,-16425,-16425, #define qinvprecomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+800) -28865,-28865,-28865,-28865,10350,10350,10350,10350,-28865,-28865,-28865,-28865,10350,10350,10350,10350, #define qinvprecomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+816) -9,-9,-9,-9,-10350,-10350,-10350,-10350,-9,-9,-9,-9,-10350,-10350,-10350,-10350, #define qinvprecomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+832) 28865,28865,28865,28865,16425,16425,16425,16425,28865,28865,28865,28865,16425,16425,16425,16425, #define qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+848) -9,-9,-9,-9,-4974,-4974,-4974,-4974,-9,-9,-9,-9,-4974,-4974,-4974,-4974, #define qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+864) -16425,-16425,-16425,-16425,-7244,-7244,-7244,-7244,-16425,-16425,-16425,-16425,-7244,-7244,-7244,-7244, #define qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 *(const int16x16 *)(qdata+880) -9,-9,-9,-9,-4496,-4496,-4496,-4496,-9,-9,-9,-9,-4496,-4496,-4496,-4496, #define qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 *(const int16x16 *)(qdata+896) -10350,-10350,-10350,-10350,-14744,-14744,-14744,-14744,-10350,-10350,-10350,-10350,-14744,-14744,-14744,-14744, #define qinvprecomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+912) -9,-20315,-4974,18242,-16425,18191,-7244,-11655,-9,-20315,-4974,18242,-16425,18191,-7244,-11655, #define qinvprecomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+928) -28865,20870,14744,-22593,10350,828,4496,23754,-28865,20870,14744,-22593,10350,828,4496,23754, #define qinvprecomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+944) -9,-23754,-4496,-828,-10350,22593,-14744,-20870,-9,-23754,-4496,-828,-10350,22593,-14744,-20870, #define qinvprecomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+960) 28865,11655,7244,-18191,16425,-18242,4974,20315,28865,11655,7244,-18191,16425,-18242,4974,20315, #define qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+976) -9,-10972,-20315,23489,-4974,25597,18242,-2816,-9,-10972,-20315,23489,-4974,25597,18242,-2816, #define qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+992) -16425,-19351,18191,-3114,-7244,-9488,-11655,19394,-16425,-19351,18191,-3114,-7244,-9488,-11655,19394, #define qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 *(const int16x16 *)(qdata+1008) -9,-7491,-23754,-15307,-4496,-15750,-828,-5759,-9,-7491,-23754,-15307,-4496,-15750,-828,-5759, #define qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1024) -10350,22568,22593,-20469,-14744,31177,-20870,26382,-10350,22568,22593,-20469,-14744,31177,-20870,26382, #define qinvprecomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1040) -9,-14846,-10972,-21066,-20315,-24581,23489,-23242,-4974,-4505,25597,-26279,18242,21467,-2816,15998, #define qinvprecomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1056) -16425,-4983,-19351,14624,18191,-2073,-3114,20674,-7244,-21399,-9488,6246,-11655,-29103,19394,-5930, #define qinvprecomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1072) -28865,-23668,-26382,-28839,20870,6536,-31177,16279,14744,29428,20469,29667,-22593,9215,-22568,-11783, #define qinvprecomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1088) 10350,-14121,5759,-5913,828,-1724,15750,11792,4496,25093,15307,26228,23754,-21766,7491,-6817, #define qinvprecomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1104) -9,6817,-7491,21766,-23754,-26228,-15307,-25093,-4496,-11792,-15750,1724,-828,5913,-5759,14121, #define qinvprecomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1120) -10350,11783,22568,-9215,22593,-29667,-20469,-29428,-14744,-16279,31177,-6536,-20870,28839,26382,23668, #define qinvprecomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1136) 28865,5930,-19394,29103,11655,-6246,9488,21399,7244,-20674,3114,2073,-18191,-14624,19351,4983, #define qinvprecomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1152) 16425,-15998,2816,-21467,-18242,26279,-25597,4505,4974,23242,-23489,24581,20315,21066,10972,14846, #define qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1168) -9,-32252,-14846,-19317,-10972,8472,-21066,-3456,-20315,16655,-24581,12611,23489,-12073,-23242,29871, #define qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1184) -4974,6032,-4505,10409,25597,24266,-26279,17030,18242,10478,21467,11962,-2816,-26262,15998,-17602, #define qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1200) -16425,-22124,-4983,-26220,-19351,-8908,14624,32738,18191,13575,-2073,27132,-3114,24573,20674,27201, #define qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1216) -7244,12269,-21399,-16092,-9488,-15810,6246,15358,-11655,-15768,-29103,24052,19394,-26441,-5930,-1689, #define qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1232) -9,13541,6817,-5529,-7491,26663,21766,-4693,-23754,13933,-26228,8558,-15307,-21953,-25093,-22875, #define qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1248) -4496,-7508,-11792,-30136,-15750,26800,1724,17303,-828,2722,5913,-12013,-5759,30426,14121,3558, #define qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1264) -10350,-24743,11783,-21860,22568,-32329,-9215,9360,22593,-7415,-29667,25946,-20469,-21868,-29428,-25511, #define qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1280) -14744,1869,-16279,14351,31177,2193,-6536,17440,-20870,24718,28839,-23225,26382,9855,23668,-9599, #define qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1296) -9,-32124,-32252,10179,-14846,6766,-19317,16638,-10972,-23549,8472,-17082,-21066,-15145,-3456,31518, #define qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1312) -20315,-6297,16655,-12261,-24581,-11885,12611,30938,23489,28805,-12073,26783,-23242,-14718,29871,5708, #define qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1328) -4974,15111,6032,-29453,-4505,12449,10409,529,25597,-32004,24266,2952,-26279,18003,17030,24931, #define qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1344) 18242,-1007,10478,-4624,21467,17636,11962,14360,-2816,15972,-26262,16715,15998,4573,-17602,-14539, #define qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1360) -9,6766,8472,31518,-24581,28805,29871,-29453,25597,18003,10478,14360,15998,27636,-26220,17167, #define qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1376) 18191,-7304,24573,-22039,-21399,-4565,15358,10802,19394,21723,9599,-9633,-28839,-2807,-2193,-30597, #define qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1392) 14744,-26330,-25946,-2739,9215,32695,24743,-26288,5759,20435,-17303,24530,11792,20964,21953,23523, #define qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1408) 23754,-27858,5529,6510,14846,23549,3456,12261,-23489,14718,-6032,-529,26279,1007,-11962,-16715, #define qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1424) -9,24214,26663,23933,-26228,-13686,-22875,-27243,-15750,4317,2722,8839,14121,-32414,-21860,-25179, #define qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1440) 22593,-25648,-21868,-964,-16279,-1715,17440,-14650,26382,-28958,1689,-10333,29103,-20119,15810,22790, #define qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1456) 7244,20238,-27132,-2858,-14624,19274,22124,-4573,2816,4624,-17030,32004,4505,-5708,12073,11885, #define qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1472) 20315,17082,19317,32124,-6817,14223,4693,-14138,15307,9650,7508,-9513,-1724,-23882,12013,-15221, #define qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 *(const int16x16 *)(qdata+1488) -9,-6510,13541,-23182,6817,24214,-5529,-24232,-7491,-14223,26663,27858,21766,26621,-4693,23933, #define qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 *(const int16x16 *)(qdata+1504) -23754,29394,13933,14138,-26228,-23523,8558,-23984,-15307,-13686,-21953,26766,-25093,-9650,-22875,-20964, #define qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 *(const int16x16 *)(qdata+1520) -4496,-22943,-7508,-27243,-11792,-18506,-30136,9513,-15750,-24530,26800,947,1724,4317,17303,29718, #define qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 *(const int16x16 *)(qdata+1536) -828,23882,2722,-20435,5913,-10495,-12013,8839,-5759,-3396,30426,15221,14121,26288,3558,27730, #define qinvscaledzeta_x16_4_1 *(const int16x16 *)(qdata+1552) -28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865,-28865, #define qinvscaledzeta_x16_4_3 *(const int16x16 *)(qdata+1568) 28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865,28865, #define qinvscaledzeta_x16_8_1 *(const int16x16 *)(qdata+1584) -16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425,-16425, #define qinvscaledzeta_x16_8_7 *(const int16x16 *)(qdata+1600) -10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350,-10350, #define qround32_x16 *(const int16x16 *)(qdata+1616) 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, #define scaledzeta_x16_4_1 *(const int16x16 *)(qdata+1632) -3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777,-3777, #define scaledzeta_x16_4_3 *(const int16x16 *)(qdata+1648) 3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777,3777, #define scaledzeta_x16_8_1 *(const int16x16 *)(qdata+1664) -3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625,-3625, #define scaledzeta_x16_8_7 *(const int16x16 *)(qdata+1680) -3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182,-3182, } ; static const int16 __attribute((aligned(32))) qdata_10753[] = { // precomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 1018,1018,1018,1018,3688,3688,3688,3688,1018,1018,1018,1018,3688,3688,3688,3688, // precomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 -223,-223,-223,-223,-4188,-4188,-4188,-4188,-223,-223,-223,-223,-4188,-4188,-4188,-4188, // precomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 1018,1018,1018,1018,4188,4188,4188,4188,1018,1018,1018,1018,4188,4188,4188,4188, // precomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 223,223,223,223,-3688,-3688,-3688,-3688,223,223,223,223,-3688,-3688,-3688,-3688, // precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 1018,1018,1018,1018,-376,-376,-376,-376,1018,1018,1018,1018,-376,-376,-376,-376, // precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 3688,3688,3688,3688,-3686,-3686,-3686,-3686,3688,3688,3688,3688,-3686,-3686,-3686,-3686, // precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 1018,1018,1018,1018,-2413,-2413,-2413,-2413,1018,1018,1018,1018,-2413,-2413,-2413,-2413, // precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 4188,4188,4188,4188,-357,-357,-357,-357,4188,4188,4188,4188,-357,-357,-357,-357, // precomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 1018,-3364,-376,4855,3688,425,-3686,2695,1018,-3364,-376,4855,3688,425,-3686,2695, // precomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 -223,-3784,357,-2236,-4188,4544,2413,730,-223,-3784,357,-2236,-4188,4544,2413,730, // precomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 1018,-730,-2413,-4544,4188,2236,-357,3784,1018,-730,-2413,-4544,4188,2236,-357,3784, // precomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 223,-2695,3686,-425,-3688,-4855,376,3364,223,-2695,3686,-425,-3688,-4855,376,3364, // precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 1018,-5175,-3364,2503,-376,1341,4855,-4875,1018,-5175,-3364,2503,-376,1341,4855,-4875, // precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 3688,-2629,425,-4347,-3686,3823,2695,-4035,3688,-2629,425,-4347,-3686,3823,2695,-4035, // precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 1018,5063,-730,341,-2413,-3012,-4544,-5213,1018,5063,-730,341,-2413,-3012,-4544,-5213, // precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 4188,1520,2236,1931,-357,918,3784,4095,4188,1520,2236,1931,-357,918,3784,4095, // precomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,3085,-5175,2982,-3364,-4744,2503,-4129,-376,-2576,1341,-193,4855,3062,-4875,4, // precomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 3688,2388,-2629,-4513,425,4742,-4347,2935,-3686,-544,3823,-2178,2695,847,-4035,268, // precomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -223,-1299,-4095,-1287,-3784,-4876,-918,3091,357,-4189,-1931,4616,-2236,2984,-1520,-3550, // precomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -4188,-1009,5213,-205,4544,-4102,3012,2790,2413,-1085,-341,-2565,730,-4379,-5063,-1284, // precomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,1284,5063,4379,-730,2565,341,1085,-2413,-2790,-3012,4102,-4544,205,-5213,1009, // precomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 4188,3550,1520,-2984,2236,-4616,1931,4189,-357,-3091,918,4876,3784,1287,4095,1299, // precomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 223,-268,4035,-847,-2695,2178,-3823,544,3686,-2935,4347,-4742,-425,4513,2629,-2388, // precomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -3688,-4,4875,-3062,-4855,193,-1341,2576,376,4129,-2503,4744,3364,-2982,5175,-3085, // precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,5116,3085,-3615,-5175,400,2982,3198,-3364,2234,-4744,-4828,2503,326,-4129,-512, // precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -376,1068,-2576,-4580,1341,3169,-193,-2998,4855,-635,3062,-4808,-4875,-2740,4,675, // precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 3688,-1324,2388,5114,-2629,5294,-4513,-794,425,-864,4742,-886,-4347,336,2935,-2045, // precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -3686,-3715,-544,4977,3823,-2737,-2178,3441,2695,467,847,454,-4035,-779,268,2213, // precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,1615,1284,2206,5063,5064,4379,472,-730,-5341,2565,-4286,341,2981,1085,-1268, // precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -2413,-3057,-2790,-2884,-3012,-1356,4102,-3337,-4544,5023,205,-636,-5213,909,1009,-2973, // precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 4188,2271,3550,-1572,1520,1841,-2984,970,2236,-4734,-4616,578,1931,-116,4189,1586, // precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -357,-2774,-3091,-1006,918,-5156,4876,4123,3784,-567,1287,151,4095,1458,1299,2684, // precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,-3260,5116,-1722,3085,5120,-3615,3760,-5175,73,400,4254,2982,2788,3198,-2657, // precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -3364,569,2234,1930,-4744,-2279,-4828,5215,2503,-4403,326,1639,-4129,5068,-512,-5015, // precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -376,-4859,1068,-40,-2576,4003,-4580,-4621,1341,2487,3169,-2374,-193,2625,-2998,4784, // precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 4855,825,-635,2118,3062,-2813,-4808,-4250,-4875,-2113,-2740,-4408,4,-1893,675,458, // precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,5120,400,-2657,-4744,-4403,-512,-40,1341,2625,-635,-4250,4,-3360,5114,-5313, // precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 425,-2151,336,-2662,-544,5334,3441,2117,-4035,2205,-2684,-3570,-1287,-4973,5156,2419, // precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 357,1204,-578,1635,2984,-1111,-2271,4359,5213,-2449,3337,3453,2790,554,-2981,-1409, // precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 730,-279,-2206,3524,-3085,-73,-3198,-1930,-2503,-5068,-1068,4621,193,-825,4808,4408, // precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,4428,5064,-4000,2565,573,-1268,3125,-3012,-4144,5023,1927,1009,-2139,-1572,3535, // precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 2236,663,-116,4967,-3091,-854,4123,1160,4095,-1349,-2213,1782,-847,2062,2737,624, // precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 3686,-2283,886,4889,4513,-4601,1324,1893,4875,-2118,2998,-2487,2576,5015,-326,2279, // precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 3364,-4254,3615,3260,-1284,-1381,-472,-3891,-341,2087,3057,4720,-4102,3410,636,1689, // precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 1018,-3524,1615,5268,1284,4428,2206,-834,5063,1381,5064,279,4379,2439,472,-4000, // precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -730,-2015,-5341,3891,2565,1409,-4286,2605,341,573,2981,5356,1085,-2087,-1268,-554, // precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -2413,3135,-3057,3125,-2790,-778,-2884,-4720,-3012,-3453,-1356,-355,4102,-4144,-3337,-152, // precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -4544,-3410,5023,2449,205,-97,-636,1927,-5213,2624,909,-1689,1009,-4359,-2973,-3419, // q_x16 10753,10753,10753,10753,10753,10753,10753,10753,10753,10753,10753,10753,10753,10753,10753,10753, // qinvprecomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 -6,-6,-6,-6,-408,-408,-408,-408,-6,-6,-6,-6,-408,-408,-408,-408, // qinvprecomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 -27359,-27359,-27359,-27359,1956,1956,1956,1956,-27359,-27359,-27359,-27359,1956,1956,1956,1956, // qinvprecomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 -6,-6,-6,-6,-1956,-1956,-1956,-1956,-6,-6,-6,-6,-1956,-1956,-1956,-1956, // qinvprecomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 27359,27359,27359,27359,408,408,408,408,27359,27359,27359,27359,408,408,408,408, // qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 -6,-6,-6,-6,-20856,-20856,-20856,-20856,-6,-6,-6,-6,-20856,-20856,-20856,-20856, // qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 -408,-408,-408,-408,-21094,-21094,-21094,-21094,-408,-408,-408,-408,-21094,-21094,-21094,-21094, // qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1 -6,-6,-6,-6,-10093,-10093,-10093,-10093,-6,-6,-6,-6,-10093,-10093,-10093,-10093, // qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3 -1956,-1956,-1956,-1956,-28517,-28517,-28517,-28517,-1956,-1956,-1956,-1956,-28517,-28517,-28517,-28517, // qinvprecomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 -6,-9508,-20856,-29449,-408,18345,-21094,-7033,-6,-9508,-20856,-29449,-408,18345,-21094,-7033, // qinvprecomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 -27359,-16072,28517,-12476,1956,-28224,10093,16090,-27359,-16072,28517,-12476,1956,-28224,10093,16090, // qinvprecomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 -6,-16090,-10093,28224,-1956,12476,-28517,16072,-6,-16090,-10093,28224,-1956,12476,-28517,16072, // qinvprecomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 27359,7033,21094,-18345,408,29449,20856,9508,27359,7033,21094,-18345,408,29449,20856,9508, // qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 -6,-3639,-9508,25543,-20856,829,-29449,-17675,-6,-3639,-9508,25543,-20856,829,-29449,-17675, // qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 -408,18363,18345,7429,-21094,-10001,-7033,-4547,-408,18363,18345,7429,-21094,-10001,-7033,-4547, // qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7 -6,28103,-16090,3925,-10093,7228,28224,11683,-6,28103,-16090,3925,-10093,7228,28224,11683, // qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15 -1956,-23056,12476,14731,-28517,26518,16072,14847,-1956,-23056,12476,14731,-28517,26518,16072,14847, // qinvprecomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,-5619,-3639,-12378,-9508,15736,25543,23007,-20856,-27152,829,-22209,-29449,-20490,-17675,22532, // qinvprecomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -408,16724,18363,22623,18345,5766,7429,-31369,-21094,15840,-10001,19326,-7033,3407,-4547,2316, // qinvprecomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -27359,6381,-14847,8441,-16072,-6924,-26518,-4589,28517,12707,-14731,-15864,-12476,31656,23056,24098, // qinvprecomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 1956,-31217,-11683,-24269,-28224,-5126,-7228,20198,10093,-573,-3925,-14341,16090,23781,-28103,-23812, // qinvprecomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,23812,28103,-23781,-16090,14341,3925,573,-10093,-20198,7228,5126,28224,24269,11683,31217, // qinvprecomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -1956,-24098,-23056,-31656,12476,15864,14731,-12707,-28517,4589,26518,6924,16072,-8441,14847,-6381, // qinvprecomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 27359,-2316,4547,-3407,7033,-19326,10001,-15840,21094,31369,-7429,-5766,-18345,-22623,-18363,-16724, // qinvprecomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 408,-22532,17675,20490,29449,22209,-829,27152,20856,-23007,-25543,-15736,9508,12378,3639,5619, // qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,-17412,-5619,2017,-3639,24976,-12378,24702,-9508,-31558,15736,1316,25543,-31418,23007,-512, // qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -20856,-13268,-27152,22044,829,8801,-22209,-12214,-29449,11141,-20490,-17096,-17675,32076,22532,17571, // qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -408,13012,16724,4090,18363,-30546,22623,16614,18345,-17248,5766,22666,7429,-7856,-31369,31235, // qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -21094,28541,15840,-30351,-10001,-177,19326,-31887,-7033,25555,3407,-31290,-4547,-13579,2316,-2395, // qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,4175,23812,7326,28103,17352,-23781,-28200,-16090,11555,14341,6978,3925,-1627,573,780, // qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -10093,32271,-20198,7356,7228,29364,5126,27895,28224,-609,24269,21892,11683,-7795,31217,-18845, // qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -1956,29407,-24098,-7716,-23056,-719,-31656,-8246,12476,-26238,15864,11842,14731,1932,-12707,-11726, // qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -28517,4394,4589,2066,26518,-11300,6924,-24037,16072,969,-8441,14999,14847,-11854,-6381,-19844, // qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,-13500,-17412,32070,-5619,5120,2017,11952,-3639,1609,24976,9374,-12378,-23836,24702,-8289, // qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -9508,-22471,-31558,25482,15736,-8935,1316,32351,25543,19661,-31418,8295,23007,-25652,-512,-19863, // qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -20856,6917,-13268,-28712,-27152,20899,22044,4083,829,951,8801,29370,-22209,24641,-12214,12976, // qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 -29449,-22215,11141,-29626,-20490,30467,-17096,13158,-17675,-24129,32076,7880,22532,-30053,17571,-8758, // qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,5120,24976,-8289,15736,19661,-512,-28712,829,24641,11141,13158,22532,13024,4090,-27329, // qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 18345,-8807,-7856,-20070,15840,-1834,-31887,-18875,-4547,18077,19844,-23026,8441,-12653,11300,11123, // qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 28517,31924,-11842,-14237,31656,16809,-29407,-5369,-11683,-16273,-27895,-29827,20198,7722,1627,9343, // qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 16090,-15127,-7326,-6716,5619,-1609,-24702,-25482,-25543,25652,13268,-4083,22209,22215,17096,-7880, // qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,-26292,17352,12384,14341,61,780,23093,7228,-12336,-609,-7801,31217,-6747,-7716,6095, // qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 12476,15511,1932,11623,4589,6314,-24037,-19320,14847,19643,2395,-21770,-3407,-17394,177,-23952, // qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 21094,-31467,-22666,-1767,-22623,-14329,-13012,30053,17675,29626,12214,-951,27152,19863,31418,8935, // qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 9508,-9374,-2017,13500,-23812,-29541,28200,20173,-3925,-24025,-32271,-19856,-5126,-26286,-21892,-4967, // qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15 -6,6716,4175,-13164,23812,-26292,7326,-12098,28103,29541,17352,15127,-23781,-7289,-28200,12384, // qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31 -16090,-29151,11555,-20173,14341,-9343,6978,-22483,3925,61,-1627,23788,573,24025,780,-7722, // qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47 -10093,-18881,32271,23093,-20198,-24330,7356,19856,7228,29827,29364,15517,5126,-12336,27895,-4248, // qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63 28224,26286,-609,16273,24269,-5729,21892,-7801,11683,-30144,-7795,4967,31217,5369,-18845,-8027, // qinvscaledzeta_x16_4_1 -27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359,-27359, // qinvscaledzeta_x16_4_3 27359,27359,27359,27359,27359,27359,27359,27359,27359,27359,27359,27359,27359,27359,27359,27359, // qinvscaledzeta_x16_8_1 -408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408, // qinvscaledzeta_x16_8_7 -1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956,-1956, // qround32_x16 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, // scaledzeta_x16_4_1 -223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223, // scaledzeta_x16_4_3 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223, // scaledzeta_x16_8_1 3688,3688,3688,3688,3688,3688,3688,3688,3688,3688,3688,3688,3688,3688,3688,3688, // scaledzeta_x16_8_7 4188,4188,4188,4188,4188,4188,4188,4188,4188,4188,4188,4188,4188,4188,4188,4188, } ; static inline int16x16 add_x16(int16x16 a,int16x16 b) { return _mm256_add_epi16(a,b); } static inline int16x16 sub_x16(int16x16 a,int16x16 b) { return _mm256_sub_epi16(a,b); } static inline int16x16 mulmod_scaled_x16(int16x16 x,int16x16 y,int16x16 yqinv,const int16 *qdata) { int16x16 b = _mm256_mulhi_epi16(x,y); int16x16 d = _mm256_mullo_epi16(x,yqinv); int16x16 e = _mm256_mulhi_epi16(d,q_x16); return sub_x16(b,e); } static inline int16x16 reduce_x16(int16x16 x,const int16 *qdata) { int16x16 y = _mm256_mulhrs_epi16(x,qround32_x16); y = _mm256_mullo_epi16(y,q_x16); return sub_x16(x,y); } // ----- codegen pass 1 // // startntt 512 // startbatch 512 // // ----- PRECONDITIONS // physical_map (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // transform size 512 // // transform indexing [0, 1, 2, 3, 4, 5, 6, 7, 8] // // transforms per batch 1 // // batch indexing [] // // total batch size 512 // // // modulus x^512-1 pos 0:512 q 7681,10753 bound 512*(5629,5800) // assertranges ... // // // ----- LAYER 1 // // // butterfly(0,256,1,256,1,0) // butterfly 0 256 1 256 1 0 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // ----- POSTCONDITIONS AFTER LAYER 1 // // transform size 512 // // transform indexing [0, 1, 2, 3, 4, 5, 6, 7, 8] // // transforms per batch 1 // // batch indexing [] // // total batch size 512 // // // modulus x^256-1 pos 0:256 q 7681,10753 bound 256*(11258,11600) // assertranges ... // // // modulus x^256+1 pos 256:512 q 7681,10753 bound 256*(11258,11600) // assertranges ... // // // ----- LAYER 2 // // // reduce_ifreverse(0,64,1) // reduce_ifreverse 0 64 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // reduce_ifreverse(256,320,1) // reduce_ifreverse 256 320 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(0,128,1,128,1,0) // butterfly 0 128 1 128 1 0 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(256,384,1,128,4,1) // butterfly 256 384 1 128 4 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // ----- POSTCONDITIONS AFTER LAYER 2 // // transform size 512 // // transform indexing [0, 1, 2, 3, 4, 5, 6, 7, 8] // // transforms per batch 1 // // batch indexing [] // // total batch size 512 // // // modulus x^128-1 pos 0:128 q 7681,10753 bound 128*(22516,23200) // assertranges ... // // // modulus x^128+1 pos 128:256 q 7681,10753 bound 128*(22516,23200) // assertranges ... // // // modulus x^128-zeta4 pos 256:384 q 7681,10753 bound 128*(15747,17016) // assertranges ... // // // modulus x^128+zeta4 pos 384:512 q 7681,10753 bound 128*(15747,17016) // assertranges ... // // // ----- LAYER 3 // // // reduce_ifforward(64,128,1) // reduce_ifforward 64 128 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(0,64,1,64,1,0) // butterfly 0 64 1 64 1 0 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(128,192,1,64,4,1) // butterfly 128 192 1 64 4 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(256,320,1,64,8,1) // butterfly 256 320 1 64 8 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // butterfly(384,448,1,64,8,-1) // butterfly 384 448 1 64 8 7 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // reduce(0,64,1) // reduce 0 64 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(64,128,1,128,1) // twist 64 128 1 128 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(128,192,1,256,1) // twist 128 192 1 256 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(192,256,1,256,-1) // twist 192 256 1 256 255 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(256,320,1,512,1) // twist 256 320 1 512 1 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(320,384,1,512,5) // twist 320 384 1 512 5 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(384,448,1,512,-1) // twist 384 448 1 512 511 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // twist(448,512,1,512,-5) // twist 448 512 1 512 507 (0, 1, 2, 3, 4, 5, 6, 7, 8) () // // // physical_permute(3,6) // physical_permute (3, 6) (0, 1, 2, 3, 4, 5, 6, 7, 8) () (0, 1, 2, 6, 4, 5, 3, 7, 8) () // // // fold(256) // physical_unmap (0, 1, 2, 6, 4, 5, 3, 7, 8) () // physical_map (0, 1, 2, 6, 4, 5, 3, 7) (8,) // // // fold(128) // physical_unmap (0, 1, 2, 6, 4, 5, 3, 7) (8,) // physical_map (0, 1, 2, 6, 4, 5, 3) (7, 8) // // // fold(64) // physical_unmap (0, 1, 2, 6, 4, 5, 3) (7, 8) // physical_map (0, 1, 2, 6, 4, 5) (3, 7, 8) // // // nextbatch() // stopbatch 512 // startbatch 512 // // // halfbatch() // physical_unmap (0, 1, 2, 6, 4, 5) (3, 7, 8) // stopbatch 512 // doublereps // startbatch 256 // physical_map (0, 1, 2, 6, 4, 5) (3, 7) // // // halfbatch() // physical_unmap (0, 1, 2, 6, 4, 5) (3, 7) // stopbatch 256 // doublereps // startbatch 128 // physical_map (0, 1, 2, 6, 4, 5) (3,) // // // ----- POSTCONDITIONS AFTER LAYER 3 // // transform size 64 // // transform indexing [0, 1, 2, 6, 4, 5] // // transforms per batch 2 // // batch indexing [3] // // total batch size 128 // // // modulus x^64-1 pos 0:64 q 7681,10753 bound 1*(5629,5827) 1*(5629,7613) 1*(5629,7666) 1*(5629,7264) 1*(5629,7639) 1*(5629,7591) 1*(5629,7291) 1*(5629,7204) ... // assertranges ... // // // ----- LAYER 4 // // // butterfly(0,32,1,32,1,0) // butterfly 0 32 1 32 1 0 (0, 1, 2, 6, 4, 5) (3,) // // // ----- POSTCONDITIONS AFTER LAYER 4 // // transform size 64 // // transform indexing [0, 1, 2, 6, 4, 5] // // transforms per batch 2 // // batch indexing [3] // // total batch size 128 // // // modulus x^32-1 pos 0:32 q 7681,10753 bound 1*(11258,13035) 1*(11258,14721) 1*(11258,14855) 1*(11258,14877) 1*(11258,14690) 1*(11258,15282) 1*(11258,14641) 1*(11258,14272) ... // assertranges ... // // // modulus x^32+1 pos 32:64 q 7681,10753 bound 1*(11258,13035) 1*(11258,14721) 1*(11258,14855) 1*(11258,14877) 1*(11258,14690) 1*(11258,15282) 1*(11258,14641) 1*(11258,14272) ... // assertranges ... // // // ----- LAYER 5 // // // butterfly(0,16,1,16,1,0) // butterfly 0 16 1 16 1 0 (0, 1, 2, 6, 4, 5) (3,) // // // butterfly(32,48,1,16,4,1) // butterfly 32 48 1 16 4 1 (0, 1, 2, 6, 4, 5) (3,) // // // reduce(0,16,1) // reduce 0 16 1 (0, 1, 2, 6, 4, 5) (3,) // // // twist(16,32,1,32,1) // twist 16 32 1 32 1 (0, 1, 2, 6, 4, 5) (3,) // // // twist(32,48,1,64,1) // twist 32 48 1 64 1 (0, 1, 2, 6, 4, 5) (3,) // // // twist(48,64,1,64,-1) // twist 48 64 1 64 63 (0, 1, 2, 6, 4, 5) (3,) // // // physical_permute(0,1,2,5) // physical_permute (0, 1, 2, 5) (0, 1, 2, 6, 4, 5) (3,) (1, 2, 5, 6, 4, 0) (3,) // // // fold(32) // physical_unmap (1, 2, 5, 6, 4, 0) (3,) // physical_map (1, 2, 5, 6, 4) (0, 3) // // // fold(16) // physical_unmap (1, 2, 5, 6, 4) (0, 3) // physical_map (1, 2, 5, 6) (0, 3, 4) // // // ----- POSTCONDITIONS AFTER LAYER 5 // // transform size 16 // // transform indexing [1, 2, 5, 6] // // transforms per batch 8 // // batch indexing [0, 3, 4] // // total batch size 128 // // // modulus x^16-1 pos 0:16 q 7681,10753 bound 1*(5629,5800) 1*(5629,6967) 1*(5629,6418) 1*(5629,7585) 1*(5629,7017) 1*(5629,6328) 1*(5629,7033) 1*(5629,6943) ... // assertranges ... // // // ----- LAYER 6 // // // butterfly(0,8,1,8,1,0) // butterfly 0 8 1 8 1 0 (1, 2, 5, 6) (0, 3, 4) // // // physical_permute(1,2,4) // physical_permute (1, 2, 4) (1, 2, 5, 6) (0, 3, 4) (2, 4, 5, 6) (0, 3, 1) // // // nextbatch() // stopbatch 128 // startbatch 128 // // // ----- POSTCONDITIONS AFTER LAYER 6 // // transform size 16 // // transform indexing [2, 4, 5, 6] // // transforms per batch 8 // // batch indexing [0, 3, 1] // // total batch size 128 // // // modulus x^8-1 pos 0:8 q 7681,10753 bound 1*(11258,12447) 1*(11258,14071) 1*(11258,12488) 1*(11258,14310) 1*(11258,14287) 1*(11258,13674) 1*(11258,13574) 1*(11258,13555) // assertranges ... // // // modulus x^8+1 pos 8:16 q 7681,10753 bound 1*(11258,12447) 1*(11258,14071) 1*(11258,12488) 1*(11258,14310) 1*(11258,14287) 1*(11258,13674) 1*(11258,13574) 1*(11258,13555) // assertranges ... // // // ----- LAYER 7 // // // butterfly(0,4,1,4,1,0) // butterfly 0 4 1 4 1 0 (2, 4, 5, 6) (0, 3, 1) // // // butterfly(8,12,1,4,4,1) // butterfly 8 12 1 4 4 1 (2, 4, 5, 6) (0, 3, 1) // // // reduce(0,4,1) // reduce 0 4 1 (2, 4, 5, 6) (0, 3, 1) // // // twist(4,8,1,8,1) // twist 4 8 1 8 1 (2, 4, 5, 6) (0, 3, 1) // // // twist(8,12,1,16,1) // twist 8 12 1 16 1 (2, 4, 5, 6) (0, 3, 1) // // // twist(12,16,1,16,-1) // twist 12 16 1 16 15 (2, 4, 5, 6) (0, 3, 1) // // // physical_permute(2,6) // physical_permute (2, 6) (2, 4, 5, 6) (0, 3, 1) (6, 4, 5, 2) (0, 3, 1) // // // fold(8) // physical_unmap (6, 4, 5, 2) (0, 3, 1) // physical_map (6, 4, 5) (0, 1, 2, 3) // // // fold(4) // physical_unmap (6, 4, 5) (0, 1, 2, 3) // physical_map (6, 4) (0, 1, 2, 3, 5) // // // ----- POSTCONDITIONS AFTER LAYER 7 // // transform size 4 // // transform indexing [6, 4] // // transforms per batch 32 // // batch indexing [0, 1, 2, 3, 5] // // total batch size 128 // // // modulus x^4-1 pos 0:4 q 7681,10753 bound 1*(5629,5800) 1*(5629,6938) 1*(5629,6521) 1*(5629,7157) // assertranges ... // // // ----- LAYER 8 // // // butterfly(0,2,1,2,1,0) // butterfly 0 2 1 2 1 0 (6, 4) (0, 1, 2, 3, 5) // // // ----- POSTCONDITIONS AFTER LAYER 8 // // transform size 4 // // transform indexing [6, 4] // // transforms per batch 32 // // batch indexing [0, 1, 2, 3, 5] // // total batch size 128 // // // modulus x^2-1 pos 0:2 q 7681,10753 bound 1*(11258,12321) 1*(11258,14095) // assertranges ... // // // modulus x^2+1 pos 2:4 q 7681,10753 bound 1*(11258,12321) 1*(11258,14095) // assertranges ... // // // ----- LAYER 9 // // // butterfly(0,1,1,1,1,0) // butterfly 0 1 1 1 1 0 (6, 4) (0, 1, 2, 3, 5) // // // butterfly(2,3,1,1,4,1) // butterfly 2 3 1 1 4 1 (6, 4) (0, 1, 2, 3, 5) // // // ----- POSTCONDITIONS AFTER LAYER 9 // // transform size 4 // // transform indexing [6, 4] // // transforms per batch 32 // // batch indexing [0, 1, 2, 3, 5] // // total batch size 128 // // // modulus x^1-1 pos 0:1 q 7681,10753 bound 1*(22516,26416) // assertranges ... // // // modulus x^1+1 pos 1:2 q 7681,10753 bound 1*(22516,26416) // assertranges ... // // // modulus x^1-zeta4 pos 2:3 q 7681,10753 bound 1*(15747,17745) // assertranges ... // // // modulus x^1+zeta4 pos 3:4 q 7681,10753 bound 1*(15747,17745) // assertranges ... // stopbatch 128 // physical_unmap (6, 4) (0, 1, 2, 3, 5) // stopntt 512 // ----- codegen pass 2 // // startntt 512 // startbatch 512 // vector_butterfly 0 256 1 0 // vector_butterfly 128 384 1 0 // vector_butterfly 64 320 1 0 // vector_butterfly 192 448 1 0 // vector_reduce_ifreverse 0 // vector_reduce_ifreverse 256 // vector_butterfly 0 128 1 0 // vector_butterfly 64 192 1 0 // vector_butterfly 256 384 4 1 // vector_butterfly 320 448 4 1 // vector_reduce_ifforward 64 // vector_butterfly 0 64 1 0 // vector_butterfly 128 192 4 1 // vector_butterfly 256 320 8 1 // vector_butterfly 384 448 8 7 // vector_reduce 0 // vector_twist 64 128 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 128 256 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 192 256 255 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 256 512 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 320 512 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 384 512 511 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_twist 448 512 507 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // vector_permute 0 64 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 128 192 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 256 320 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 384 448 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // startbatch 512 // vector_butterfly 16 272 1 0 // vector_butterfly 144 400 1 0 // vector_butterfly 80 336 1 0 // vector_butterfly 208 464 1 0 // vector_reduce_ifreverse 16 // vector_reduce_ifreverse 272 // vector_butterfly 16 144 1 0 // vector_butterfly 80 208 1 0 // vector_butterfly 272 400 4 1 // vector_butterfly 336 464 4 1 // vector_reduce_ifforward 80 // vector_butterfly 16 80 1 0 // vector_butterfly 144 208 4 1 // vector_butterfly 272 336 8 1 // vector_butterfly 400 464 8 7 // vector_reduce 16 // vector_twist 80 128 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 144 256 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 208 256 255 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 272 512 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 336 512 5 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 400 512 511 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_twist 464 512 507 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 // vector_permute 16 80 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 144 208 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 272 336 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 400 464 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // startbatch 512 // vector_butterfly 32 288 1 0 // vector_butterfly 160 416 1 0 // vector_butterfly 96 352 1 0 // vector_butterfly 224 480 1 0 // vector_reduce_ifreverse 32 // vector_reduce_ifreverse 288 // vector_butterfly 32 160 1 0 // vector_butterfly 96 224 1 0 // vector_butterfly 288 416 4 1 // vector_butterfly 352 480 4 1 // vector_reduce_ifforward 96 // vector_butterfly 32 96 1 0 // vector_butterfly 160 224 4 1 // vector_butterfly 288 352 8 1 // vector_butterfly 416 480 8 7 // vector_reduce 32 // vector_twist 96 128 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 160 256 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 224 256 255 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 288 512 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 352 512 5 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 416 512 511 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_twist 480 512 507 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 // vector_permute 32 96 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 160 224 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 288 352 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 416 480 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // startbatch 512 // vector_butterfly 48 304 1 0 // vector_butterfly 176 432 1 0 // vector_butterfly 112 368 1 0 // vector_butterfly 240 496 1 0 // vector_reduce_ifreverse 48 // vector_reduce_ifreverse 304 // vector_butterfly 48 176 1 0 // vector_butterfly 112 240 1 0 // vector_butterfly 304 432 4 1 // vector_butterfly 368 496 4 1 // vector_reduce_ifforward 112 // vector_butterfly 48 112 1 0 // vector_butterfly 176 240 4 1 // vector_butterfly 304 368 8 1 // vector_butterfly 432 496 8 7 // vector_reduce 48 // vector_twist 112 128 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 176 256 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 240 256 255 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 304 512 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 368 512 5 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 432 512 511 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_twist 496 512 507 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 // vector_permute 48 112 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 176 240 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 304 368 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // vector_permute 432 496 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi // stopbatch 512 // doublereps // doublereps // startbatch 128 // vector_butterfly 0 32 1 0 // vector_butterfly 64 96 1 0 // vector_butterfly 16 48 1 0 // vector_butterfly 80 112 1 0 // vector_butterfly 0 16 1 0 // vector_butterfly 64 80 1 0 // vector_butterfly 32 48 4 1 // vector_butterfly 96 112 4 1 // vector_reduce 0 // vector_reduce 64 // vector_twist 16 32 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 // vector_twist 80 32 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 // vector_twist 32 64 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 // vector_twist 96 64 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 // vector_twist 48 64 63 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 // vector_twist 112 64 63 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 // vector_permute 0 32 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_permute 16 48 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_permute 64 96 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_permute 80 112 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 // vector_butterfly 0 64 1 0 // vector_butterfly 32 96 1 0 // vector_butterfly 16 80 1 0 // vector_butterfly 48 112 1 0 // vector_permute 0 16 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // vector_permute 32 48 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // vector_permute 64 80 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // vector_permute 96 112 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 // stopbatch 128 // startbatch 128 // vector_butterfly 0 32 1 0 // vector_butterfly 16 48 1 0 // vector_butterfly 64 96 4 1 // vector_butterfly 80 112 4 1 // vector_reduce 0 // vector_reduce 16 // vector_twist 32 8 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 // vector_twist 48 8 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 // vector_twist 64 16 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 // vector_twist 80 16 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 // vector_twist 96 16 15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 // vector_twist 112 16 15 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 // vector_permute 0 64 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_permute 16 80 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_permute 32 96 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_permute 48 112 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 // vector_butterfly 0 16 1 0 // vector_butterfly 64 80 1 0 // vector_butterfly 32 48 1 0 // vector_butterfly 96 112 1 0 // vector_butterfly 0 64 1 0 // vector_butterfly 32 96 1 0 // vector_butterfly 16 80 4 1 // vector_butterfly 48 112 4 1 // stopbatch 128 // stopntt 512 // startntt 512 static void ntt512(int16 *f,int reps,const int16 *qdata) { // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 0 256 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a16 = _mm256_loadu_si256((int16x16 *) (f+256)); int16x16 b0 = add_x16(a0,a16); int16x16 b16 = sub_x16(a0,a16); // vector_butterfly 128 384 1 0 int16x16 a8 = _mm256_loadu_si256((int16x16 *) (f+128)); int16x16 a24 = _mm256_loadu_si256((int16x16 *) (f+384)); int16x16 b8 = add_x16(a8,a24); int16x16 b24 = sub_x16(a8,a24); // vector_butterfly 64 320 1 0 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a20 = _mm256_loadu_si256((int16x16 *) (f+320)); int16x16 b4 = add_x16(a4,a20); int16x16 b20 = sub_x16(a4,a20); // vector_butterfly 192 448 1 0 int16x16 a12 = _mm256_loadu_si256((int16x16 *) (f+192)); int16x16 a28 = _mm256_loadu_si256((int16x16 *) (f+448)); int16x16 b12 = add_x16(a12,a28); int16x16 b28 = sub_x16(a12,a28); // vector_reduce_ifreverse 0 // vector_reduce_ifreverse 256 // vector_butterfly 0 128 1 0 int16x16 c0 = add_x16(b0,b8); int16x16 c8 = sub_x16(b0,b8); // vector_butterfly 64 192 1 0 int16x16 c4 = add_x16(b4,b12); int16x16 c12 = sub_x16(b4,b12); // vector_butterfly 256 384 4 1 b24 = mulmod_scaled_x16(b24,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c16 = add_x16(b16,b24); int16x16 c24 = sub_x16(b16,b24); // vector_butterfly 320 448 4 1 b28 = mulmod_scaled_x16(b28,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c20 = add_x16(b20,b28); int16x16 c28 = sub_x16(b20,b28); // vector_reduce_ifforward 64 c4 = reduce_x16(c4,qdata); // vector_butterfly 0 64 1 0 int16x16 d0 = add_x16(c0,c4); int16x16 d4 = sub_x16(c0,c4); // vector_butterfly 128 192 4 1 c12 = mulmod_scaled_x16(c12,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d8 = add_x16(c8,c12); int16x16 d12 = sub_x16(c8,c12); // vector_butterfly 256 320 8 1 c20 = mulmod_scaled_x16(c20,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d16 = add_x16(c16,c20); int16x16 d20 = sub_x16(c16,c20); // vector_butterfly 384 448 8 7 c28 = mulmod_scaled_x16(c28,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d24 = add_x16(c24,c28); int16x16 d28 = sub_x16(c24,c28); // vector_reduce 0 d0 = reduce_x16(d0,qdata); // vector_twist 64 128 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d4 = mulmod_scaled_x16(d4,precomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_128_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 128 256 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d8 = mulmod_scaled_x16(d8,precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 192 256 255 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d12 = mulmod_scaled_x16(d12,precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 256 512 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d16 = mulmod_scaled_x16(d16,precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 320 512 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d20 = mulmod_scaled_x16(d20,precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 384 512 511 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d24 = mulmod_scaled_x16(d24,precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_twist 448 512 507 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 d28 = mulmod_scaled_x16(d28,precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // vector_permute 0 64 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e0 = _mm256_permute2x128_si256_lo(d0,d4); int16x16 e4 = _mm256_permute2x128_si256_hi(d0,d4); // vector_permute 128 192 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e8 = _mm256_permute2x128_si256_lo(d8,d12); int16x16 e12 = _mm256_permute2x128_si256_hi(d8,d12); // vector_permute 256 320 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e16 = _mm256_permute2x128_si256_lo(d16,d20); int16x16 e20 = _mm256_permute2x128_si256_hi(d16,d20); // vector_permute 384 448 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e24 = _mm256_permute2x128_si256_lo(d24,d28); int16x16 e28 = _mm256_permute2x128_si256_hi(d24,d28); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+128),e8); _mm256_storeu_si256((int16x16 *) (f+192),e12); _mm256_storeu_si256((int16x16 *) (f+256),e16); _mm256_storeu_si256((int16x16 *) (f+320),e20); _mm256_storeu_si256((int16x16 *) (f+384),e24); _mm256_storeu_si256((int16x16 *) (f+448),e28); f += 512; } f -= 512*reps; // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 16 272 1 0 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a17 = _mm256_loadu_si256((int16x16 *) (f+272)); int16x16 b1 = add_x16(a1,a17); int16x16 b17 = sub_x16(a1,a17); // vector_butterfly 144 400 1 0 int16x16 a9 = _mm256_loadu_si256((int16x16 *) (f+144)); int16x16 a25 = _mm256_loadu_si256((int16x16 *) (f+400)); int16x16 b9 = add_x16(a9,a25); int16x16 b25 = sub_x16(a9,a25); // vector_butterfly 80 336 1 0 int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 a21 = _mm256_loadu_si256((int16x16 *) (f+336)); int16x16 b5 = add_x16(a5,a21); int16x16 b21 = sub_x16(a5,a21); // vector_butterfly 208 464 1 0 int16x16 a13 = _mm256_loadu_si256((int16x16 *) (f+208)); int16x16 a29 = _mm256_loadu_si256((int16x16 *) (f+464)); int16x16 b13 = add_x16(a13,a29); int16x16 b29 = sub_x16(a13,a29); // vector_reduce_ifreverse 16 // vector_reduce_ifreverse 272 // vector_butterfly 16 144 1 0 int16x16 c1 = add_x16(b1,b9); int16x16 c9 = sub_x16(b1,b9); // vector_butterfly 80 208 1 0 int16x16 c5 = add_x16(b5,b13); int16x16 c13 = sub_x16(b5,b13); // vector_butterfly 272 400 4 1 b25 = mulmod_scaled_x16(b25,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c17 = add_x16(b17,b25); int16x16 c25 = sub_x16(b17,b25); // vector_butterfly 336 464 4 1 b29 = mulmod_scaled_x16(b29,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c21 = add_x16(b21,b29); int16x16 c29 = sub_x16(b21,b29); // vector_reduce_ifforward 80 c5 = reduce_x16(c5,qdata); // vector_butterfly 16 80 1 0 int16x16 d1 = add_x16(c1,c5); int16x16 d5 = sub_x16(c1,c5); // vector_butterfly 144 208 4 1 c13 = mulmod_scaled_x16(c13,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d9 = add_x16(c9,c13); int16x16 d13 = sub_x16(c9,c13); // vector_butterfly 272 336 8 1 c21 = mulmod_scaled_x16(c21,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d17 = add_x16(c17,c21); int16x16 d21 = sub_x16(c17,c21); // vector_butterfly 400 464 8 7 c29 = mulmod_scaled_x16(c29,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d25 = add_x16(c25,c29); int16x16 d29 = sub_x16(c25,c29); // vector_reduce 16 d1 = reduce_x16(d1,qdata); // vector_twist 80 128 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d5 = mulmod_scaled_x16(d5,precomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_128_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 144 256 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d9 = mulmod_scaled_x16(d9,precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 208 256 255 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d13 = mulmod_scaled_x16(d13,precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 272 512 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d17 = mulmod_scaled_x16(d17,precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 336 512 5 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d21 = mulmod_scaled_x16(d21,precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 400 512 511 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d25 = mulmod_scaled_x16(d25,precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_twist 464 512 507 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 d29 = mulmod_scaled_x16(d29,precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // vector_permute 16 80 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e1 = _mm256_permute2x128_si256_lo(d1,d5); int16x16 e5 = _mm256_permute2x128_si256_hi(d1,d5); // vector_permute 144 208 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e9 = _mm256_permute2x128_si256_lo(d9,d13); int16x16 e13 = _mm256_permute2x128_si256_hi(d9,d13); // vector_permute 272 336 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e17 = _mm256_permute2x128_si256_lo(d17,d21); int16x16 e21 = _mm256_permute2x128_si256_hi(d17,d21); // vector_permute 400 464 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e25 = _mm256_permute2x128_si256_lo(d25,d29); int16x16 e29 = _mm256_permute2x128_si256_hi(d25,d29); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+144),e9); _mm256_storeu_si256((int16x16 *) (f+208),e13); _mm256_storeu_si256((int16x16 *) (f+272),e17); _mm256_storeu_si256((int16x16 *) (f+336),e21); _mm256_storeu_si256((int16x16 *) (f+400),e25); _mm256_storeu_si256((int16x16 *) (f+464),e29); f += 512; } f -= 512*reps; // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 32 288 1 0 int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a18 = _mm256_loadu_si256((int16x16 *) (f+288)); int16x16 b2 = add_x16(a2,a18); int16x16 b18 = sub_x16(a2,a18); // vector_butterfly 160 416 1 0 int16x16 a10 = _mm256_loadu_si256((int16x16 *) (f+160)); int16x16 a26 = _mm256_loadu_si256((int16x16 *) (f+416)); int16x16 b10 = add_x16(a10,a26); int16x16 b26 = sub_x16(a10,a26); // vector_butterfly 96 352 1 0 int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 a22 = _mm256_loadu_si256((int16x16 *) (f+352)); int16x16 b6 = add_x16(a6,a22); int16x16 b22 = sub_x16(a6,a22); // vector_butterfly 224 480 1 0 int16x16 a14 = _mm256_loadu_si256((int16x16 *) (f+224)); int16x16 a30 = _mm256_loadu_si256((int16x16 *) (f+480)); int16x16 b14 = add_x16(a14,a30); int16x16 b30 = sub_x16(a14,a30); // vector_reduce_ifreverse 32 // vector_reduce_ifreverse 288 // vector_butterfly 32 160 1 0 int16x16 c2 = add_x16(b2,b10); int16x16 c10 = sub_x16(b2,b10); // vector_butterfly 96 224 1 0 int16x16 c6 = add_x16(b6,b14); int16x16 c14 = sub_x16(b6,b14); // vector_butterfly 288 416 4 1 b26 = mulmod_scaled_x16(b26,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c18 = add_x16(b18,b26); int16x16 c26 = sub_x16(b18,b26); // vector_butterfly 352 480 4 1 b30 = mulmod_scaled_x16(b30,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c22 = add_x16(b22,b30); int16x16 c30 = sub_x16(b22,b30); // vector_reduce_ifforward 96 c6 = reduce_x16(c6,qdata); // vector_butterfly 32 96 1 0 int16x16 d2 = add_x16(c2,c6); int16x16 d6 = sub_x16(c2,c6); // vector_butterfly 160 224 4 1 c14 = mulmod_scaled_x16(c14,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d10 = add_x16(c10,c14); int16x16 d14 = sub_x16(c10,c14); // vector_butterfly 288 352 8 1 c22 = mulmod_scaled_x16(c22,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d18 = add_x16(c18,c22); int16x16 d22 = sub_x16(c18,c22); // vector_butterfly 416 480 8 7 c30 = mulmod_scaled_x16(c30,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d26 = add_x16(c26,c30); int16x16 d30 = sub_x16(c26,c30); // vector_reduce 32 d2 = reduce_x16(d2,qdata); // vector_twist 96 128 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d6 = mulmod_scaled_x16(d6,precomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_128_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 160 256 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d10 = mulmod_scaled_x16(d10,precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 224 256 255 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d14 = mulmod_scaled_x16(d14,precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 288 512 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d18 = mulmod_scaled_x16(d18,precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 352 512 5 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d22 = mulmod_scaled_x16(d22,precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 416 512 511 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d26 = mulmod_scaled_x16(d26,precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_twist 480 512 507 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 d30 = mulmod_scaled_x16(d30,precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // vector_permute 32 96 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e2 = _mm256_permute2x128_si256_lo(d2,d6); int16x16 e6 = _mm256_permute2x128_si256_hi(d2,d6); // vector_permute 160 224 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e10 = _mm256_permute2x128_si256_lo(d10,d14); int16x16 e14 = _mm256_permute2x128_si256_hi(d10,d14); // vector_permute 288 352 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e18 = _mm256_permute2x128_si256_lo(d18,d22); int16x16 e22 = _mm256_permute2x128_si256_hi(d18,d22); // vector_permute 416 480 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e26 = _mm256_permute2x128_si256_lo(d26,d30); int16x16 e30 = _mm256_permute2x128_si256_hi(d26,d30); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+160),e10); _mm256_storeu_si256((int16x16 *) (f+224),e14); _mm256_storeu_si256((int16x16 *) (f+288),e18); _mm256_storeu_si256((int16x16 *) (f+352),e22); _mm256_storeu_si256((int16x16 *) (f+416),e26); _mm256_storeu_si256((int16x16 *) (f+480),e30); f += 512; } f -= 512*reps; // startbatch 512 for (long long r = 0;r < reps;++r) { // vector_butterfly 48 304 1 0 int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 a19 = _mm256_loadu_si256((int16x16 *) (f+304)); int16x16 b3 = add_x16(a3,a19); int16x16 b19 = sub_x16(a3,a19); // vector_butterfly 176 432 1 0 int16x16 a11 = _mm256_loadu_si256((int16x16 *) (f+176)); int16x16 a27 = _mm256_loadu_si256((int16x16 *) (f+432)); int16x16 b11 = add_x16(a11,a27); int16x16 b27 = sub_x16(a11,a27); // vector_butterfly 112 368 1 0 int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 a23 = _mm256_loadu_si256((int16x16 *) (f+368)); int16x16 b7 = add_x16(a7,a23); int16x16 b23 = sub_x16(a7,a23); // vector_butterfly 240 496 1 0 int16x16 a15 = _mm256_loadu_si256((int16x16 *) (f+240)); int16x16 a31 = _mm256_loadu_si256((int16x16 *) (f+496)); int16x16 b15 = add_x16(a15,a31); int16x16 b31 = sub_x16(a15,a31); // vector_reduce_ifreverse 48 // vector_reduce_ifreverse 304 // vector_butterfly 48 176 1 0 int16x16 c3 = add_x16(b3,b11); int16x16 c11 = sub_x16(b3,b11); // vector_butterfly 112 240 1 0 int16x16 c7 = add_x16(b7,b15); int16x16 c15 = sub_x16(b7,b15); // vector_butterfly 304 432 4 1 b27 = mulmod_scaled_x16(b27,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c19 = add_x16(b19,b27); int16x16 c27 = sub_x16(b19,b27); // vector_butterfly 368 496 4 1 b31 = mulmod_scaled_x16(b31,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c23 = add_x16(b23,b31); int16x16 c31 = sub_x16(b23,b31); // vector_reduce_ifforward 112 c7 = reduce_x16(c7,qdata); // vector_butterfly 48 112 1 0 int16x16 d3 = add_x16(c3,c7); int16x16 d7 = sub_x16(c3,c7); // vector_butterfly 176 240 4 1 c15 = mulmod_scaled_x16(c15,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 d11 = add_x16(c11,c15); int16x16 d15 = sub_x16(c11,c15); // vector_butterfly 304 368 8 1 c23 = mulmod_scaled_x16(c23,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); int16x16 d19 = add_x16(c19,c23); int16x16 d23 = sub_x16(c19,c23); // vector_butterfly 432 496 8 7 c31 = mulmod_scaled_x16(c31,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); int16x16 d27 = add_x16(c27,c31); int16x16 d31 = sub_x16(c27,c31); // vector_reduce 48 d3 = reduce_x16(d3,qdata); // vector_twist 112 128 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d7 = mulmod_scaled_x16(d7,precomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_128_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 176 256 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d11 = mulmod_scaled_x16(d11,precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 240 256 255 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d15 = mulmod_scaled_x16(d15,precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 304 512 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d19 = mulmod_scaled_x16(d19,precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 368 512 5 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d23 = mulmod_scaled_x16(d23,precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 432 512 511 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d27 = mulmod_scaled_x16(d27,precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_twist 496 512 507 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 d31 = mulmod_scaled_x16(d31,precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // vector_permute 48 112 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e3 = _mm256_permute2x128_si256_lo(d3,d7); int16x16 e7 = _mm256_permute2x128_si256_hi(d3,d7); // vector_permute 176 240 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e11 = _mm256_permute2x128_si256_lo(d11,d15); int16x16 e15 = _mm256_permute2x128_si256_hi(d11,d15); // vector_permute 304 368 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e19 = _mm256_permute2x128_si256_lo(d19,d23); int16x16 e23 = _mm256_permute2x128_si256_hi(d19,d23); // vector_permute 432 496 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 e27 = _mm256_permute2x128_si256_lo(d27,d31); int16x16 e31 = _mm256_permute2x128_si256_hi(d27,d31); // stopbatch 512 _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+112),e7); _mm256_storeu_si256((int16x16 *) (f+176),e11); _mm256_storeu_si256((int16x16 *) (f+240),e15); _mm256_storeu_si256((int16x16 *) (f+304),e19); _mm256_storeu_si256((int16x16 *) (f+368),e23); _mm256_storeu_si256((int16x16 *) (f+432),e27); _mm256_storeu_si256((int16x16 *) (f+496),e31); f += 512; } f -= 512*reps; // doublereps reps *= 2; // doublereps reps *= 2; // startbatch 128 for (long long r = 0;r < reps;++r) { // vector_butterfly 0 32 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 b0 = add_x16(a0,a2); int16x16 b2 = sub_x16(a0,a2); // vector_butterfly 64 96 1 0 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 b4 = add_x16(a4,a6); int16x16 b6 = sub_x16(a4,a6); // vector_butterfly 16 48 1 0 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 b1 = add_x16(a1,a3); int16x16 b3 = sub_x16(a1,a3); // vector_butterfly 80 112 1 0 int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b5 = add_x16(a5,a7); int16x16 b7 = sub_x16(a5,a7); // vector_butterfly 0 16 1 0 int16x16 c0 = add_x16(b0,b1); int16x16 c1 = sub_x16(b0,b1); // vector_butterfly 64 80 1 0 int16x16 c4 = add_x16(b4,b5); int16x16 c5 = sub_x16(b4,b5); // vector_butterfly 32 48 4 1 b3 = mulmod_scaled_x16(b3,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c2 = add_x16(b2,b3); int16x16 c3 = sub_x16(b2,b3); // vector_butterfly 96 112 4 1 b7 = mulmod_scaled_x16(b7,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 c6 = add_x16(b6,b7); int16x16 c7 = sub_x16(b6,b7); // vector_reduce 0 c0 = reduce_x16(c0,qdata); // vector_reduce 64 c4 = reduce_x16(c4,qdata); // vector_twist 16 32 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 c1 = mulmod_scaled_x16(c1,precomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_32_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // vector_twist 80 32 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 c5 = mulmod_scaled_x16(c5,precomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_32_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // vector_twist 32 64 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 c2 = mulmod_scaled_x16(c2,precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // vector_twist 96 64 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 c6 = mulmod_scaled_x16(c6,precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // vector_twist 48 64 63 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 c3 = mulmod_scaled_x16(c3,precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // vector_twist 112 64 63 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 c7 = mulmod_scaled_x16(c7,precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // vector_permute 0 32 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d0 = _mm256_unpacklo_epi16(c0,c2); int16x16 d2 = _mm256_unpackhi_epi16(c0,c2); // vector_permute 16 48 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d1 = _mm256_unpacklo_epi16(c1,c3); int16x16 d3 = _mm256_unpackhi_epi16(c1,c3); // vector_permute 64 96 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d4 = _mm256_unpacklo_epi16(c4,c6); int16x16 d6 = _mm256_unpackhi_epi16(c4,c6); // vector_permute 80 112 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 d5 = _mm256_unpacklo_epi16(c5,c7); int16x16 d7 = _mm256_unpackhi_epi16(c5,c7); // vector_butterfly 0 64 1 0 int16x16 e0 = add_x16(d0,d4); int16x16 e4 = sub_x16(d0,d4); // vector_butterfly 32 96 1 0 int16x16 e2 = add_x16(d2,d6); int16x16 e6 = sub_x16(d2,d6); // vector_butterfly 16 80 1 0 int16x16 e1 = add_x16(d1,d5); int16x16 e5 = sub_x16(d1,d5); // vector_butterfly 48 112 1 0 int16x16 e3 = add_x16(d3,d7); int16x16 e7 = sub_x16(d3,d7); // vector_permute 0 16 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f0 = _mm256_unpacklo_epi32(e0,e1); int16x16 f1 = _mm256_unpackhi_epi32(e0,e1); // vector_permute 32 48 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f2 = _mm256_unpacklo_epi32(e2,e3); int16x16 f3 = _mm256_unpackhi_epi32(e2,e3); // vector_permute 64 80 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f4 = _mm256_unpacklo_epi32(e4,e5); int16x16 f5 = _mm256_unpackhi_epi32(e4,e5); // vector_permute 96 112 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 f6 = _mm256_unpacklo_epi32(e6,e7); int16x16 f7 = _mm256_unpackhi_epi32(e6,e7); // stopbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),f0); _mm256_storeu_si256((int16x16 *) (f+16),f1); _mm256_storeu_si256((int16x16 *) (f+32),f2); _mm256_storeu_si256((int16x16 *) (f+48),f3); _mm256_storeu_si256((int16x16 *) (f+64),f4); _mm256_storeu_si256((int16x16 *) (f+80),f5); _mm256_storeu_si256((int16x16 *) (f+96),f6); _mm256_storeu_si256((int16x16 *) (f+112),f7); f += 128; } f -= 128*reps; // startbatch 128 for (long long r = 0;r < reps;++r) { // vector_butterfly 0 32 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 b0 = add_x16(a0,a2); int16x16 b2 = sub_x16(a0,a2); // vector_butterfly 16 48 1 0 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 b1 = add_x16(a1,a3); int16x16 b3 = sub_x16(a1,a3); // vector_butterfly 64 96 4 1 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); a6 = mulmod_scaled_x16(a6,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 b4 = add_x16(a4,a6); int16x16 b6 = sub_x16(a4,a6); // vector_butterfly 80 112 4 1 int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); a7 = mulmod_scaled_x16(a7,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 b5 = add_x16(a5,a7); int16x16 b7 = sub_x16(a5,a7); // vector_reduce 0 b0 = reduce_x16(b0,qdata); // vector_reduce 16 b1 = reduce_x16(b1,qdata); // vector_twist 32 8 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b2 = mulmod_scaled_x16(b2,precomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_8_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // vector_twist 48 8 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 b3 = mulmod_scaled_x16(b3,precomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_8_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // vector_twist 64 16 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b4 = mulmod_scaled_x16(b4,precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // vector_twist 80 16 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 b5 = mulmod_scaled_x16(b5,precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // vector_twist 96 16 15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 b6 = mulmod_scaled_x16(b6,precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // vector_twist 112 16 15 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 b7 = mulmod_scaled_x16(b7,precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // vector_permute 0 64 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c0 = _mm256_unpacklo_epi64(b0,b4); int16x16 c4 = _mm256_unpackhi_epi64(b0,b4); // vector_permute 16 80 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c1 = _mm256_unpacklo_epi64(b1,b5); int16x16 c5 = _mm256_unpackhi_epi64(b1,b5); // vector_permute 32 96 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c2 = _mm256_unpacklo_epi64(b2,b6); int16x16 c6 = _mm256_unpackhi_epi64(b2,b6); // vector_permute 48 112 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 c3 = _mm256_unpacklo_epi64(b3,b7); int16x16 c7 = _mm256_unpackhi_epi64(b3,b7); // vector_butterfly 0 16 1 0 int16x16 d0 = add_x16(c0,c1); int16x16 d1 = sub_x16(c0,c1); // vector_butterfly 64 80 1 0 int16x16 d4 = add_x16(c4,c5); int16x16 d5 = sub_x16(c4,c5); // vector_butterfly 32 48 1 0 int16x16 d2 = add_x16(c2,c3); int16x16 d3 = sub_x16(c2,c3); // vector_butterfly 96 112 1 0 int16x16 d6 = add_x16(c6,c7); int16x16 d7 = sub_x16(c6,c7); // vector_butterfly 0 64 1 0 int16x16 e0 = add_x16(d0,d4); int16x16 e4 = sub_x16(d0,d4); // vector_butterfly 32 96 1 0 int16x16 e2 = add_x16(d2,d6); int16x16 e6 = sub_x16(d2,d6); // vector_butterfly 16 80 4 1 d5 = mulmod_scaled_x16(d5,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 e1 = add_x16(d1,d5); int16x16 e5 = sub_x16(d1,d5); // vector_butterfly 48 112 4 1 d7 = mulmod_scaled_x16(d7,scaledzeta_x16_4_1,qinvscaledzeta_x16_4_1,qdata); int16x16 e3 = add_x16(d3,d7); int16x16 e7 = sub_x16(d3,d7); // stopbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+112),e7); f += 128; } f -= 128*reps; // stopntt 512 } void ntt512_7681(int16 *f,int reps) { ntt512(f,reps,qdata_7681); } void ntt512_10753(int16 *f,int reps) { ntt512(f,reps,qdata_10753); } // inv stopntt 512 static void invntt512(int16 *f,int reps,const int16 *qdata) { reps *= 4; // inv stopbatch 128 for (long long r = 0;r < reps;++r) { // inv vector_butterfly 48 112 4 1 int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b3 = add_x16(a3,a7); int16x16 b7 = sub_x16(a3,a7); b7 = mulmod_scaled_x16(b7,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 16 80 4 1 int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 b1 = add_x16(a1,a5); int16x16 b5 = sub_x16(a1,a5); b5 = mulmod_scaled_x16(b5,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 32 96 1 0 int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 b2 = add_x16(a2,a6); int16x16 b6 = sub_x16(a2,a6); // inv vector_butterfly 0 64 1 0 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 b0 = add_x16(a0,a4); int16x16 b4 = sub_x16(a0,a4); // inv vector_butterfly 96 112 1 0 int16x16 c6 = add_x16(b6,b7); int16x16 c7 = sub_x16(b6,b7); // inv vector_butterfly 32 48 1 0 int16x16 c2 = add_x16(b2,b3); int16x16 c3 = sub_x16(b2,b3); // inv vector_butterfly 64 80 1 0 int16x16 c4 = add_x16(b4,b5); int16x16 c5 = sub_x16(b4,b5); // inv vector_butterfly 0 16 1 0 int16x16 c0 = add_x16(b0,b1); int16x16 c1 = sub_x16(b0,b1); // inv vector_permute 48 112 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d3 = _mm256_unpacklo_epi64(c3,c7); int16x16 d7 = _mm256_unpackhi_epi64(c3,c7); // inv vector_permute 32 96 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d2 = _mm256_unpacklo_epi64(c2,c6); int16x16 d6 = _mm256_unpackhi_epi64(c2,c6); // inv vector_permute 16 80 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d1 = _mm256_unpacklo_epi64(c1,c5); int16x16 d5 = _mm256_unpackhi_epi64(c1,c5); // inv vector_permute 0 64 _mm256_unpacklo_epi64 _mm256_unpackhi_epi64 int16x16 d0 = _mm256_unpacklo_epi64(c0,c4); int16x16 d4 = _mm256_unpackhi_epi64(c0,c4); // inv vector_twist 112 16 15 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 d7 = mulmod_scaled_x16(d7,precomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_1_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // inv vector_twist 96 16 15 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d6 = mulmod_scaled_x16(d6,precomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_1_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // inv vector_twist 80 16 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 d5 = mulmod_scaled_x16(d5,precomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_16_15_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // inv vector_twist 64 16 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d4 = mulmod_scaled_x16(d4,precomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_16_15_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // inv vector_twist 48 8 1 2 2 2 2 3 3 3 3 2 2 2 2 3 3 3 3 d3 = mulmod_scaled_x16(d3,precomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qinvprecomp_8_7_2_2_2_2_3_3_3_3_2_2_2_2_3_3_3_3,qdata); // inv vector_twist 32 8 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d2 = mulmod_scaled_x16(d2,precomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qinvprecomp_8_7_0_0_0_0_1_1_1_1_0_0_0_0_1_1_1_1,qdata); // inv vector_reduce 16 d1 = reduce_x16(d1,qdata); // inv vector_reduce 0 d0 = reduce_x16(d0,qdata); // inv vector_butterfly 80 112 4 1 int16x16 e5 = add_x16(d5,d7); int16x16 e7 = sub_x16(d5,d7); e7 = mulmod_scaled_x16(e7,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 64 96 4 1 int16x16 e4 = add_x16(d4,d6); int16x16 e6 = sub_x16(d4,d6); e6 = mulmod_scaled_x16(e6,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 16 48 1 0 int16x16 e1 = add_x16(d1,d3); int16x16 e3 = sub_x16(d1,d3); // inv vector_butterfly 0 32 1 0 int16x16 e0 = add_x16(d0,d2); int16x16 e2 = sub_x16(d0,d2); // inv startbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+112),e7); f += 128; } f -= 128*reps; // inv stopbatch 128 for (long long r = 0;r < reps;++r) { // inv vector_permute 96 112 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b6 = _mm256_unpacklo_epi32(a6,a7); int16x16 b7 = _mm256_unpackhi_epi32(a6,a7); int16x16 c6 = _mm256_unpacklo_epi32(b6,b7); int16x16 c7 = _mm256_unpackhi_epi32(b6,b7); // inv vector_permute 64 80 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 b4 = _mm256_unpacklo_epi32(a4,a5); int16x16 b5 = _mm256_unpackhi_epi32(a4,a5); int16x16 c4 = _mm256_unpacklo_epi32(b4,b5); int16x16 c5 = _mm256_unpackhi_epi32(b4,b5); // inv vector_permute 32 48 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 b2 = _mm256_unpacklo_epi32(a2,a3); int16x16 b3 = _mm256_unpackhi_epi32(a2,a3); int16x16 c2 = _mm256_unpacklo_epi32(b2,b3); int16x16 c3 = _mm256_unpackhi_epi32(b2,b3); // inv vector_permute 0 16 _mm256_unpacklo_epi32 _mm256_unpackhi_epi32 int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 b0 = _mm256_unpacklo_epi32(a0,a1); int16x16 b1 = _mm256_unpackhi_epi32(a0,a1); int16x16 c0 = _mm256_unpacklo_epi32(b0,b1); int16x16 c1 = _mm256_unpackhi_epi32(b0,b1); // inv vector_butterfly 48 112 1 0 int16x16 d3 = add_x16(c3,c7); int16x16 d7 = sub_x16(c3,c7); // inv vector_butterfly 16 80 1 0 int16x16 d1 = add_x16(c1,c5); int16x16 d5 = sub_x16(c1,c5); // inv vector_butterfly 32 96 1 0 int16x16 d2 = add_x16(c2,c6); int16x16 d6 = sub_x16(c2,c6); // inv vector_butterfly 0 64 1 0 int16x16 d0 = add_x16(c0,c4); int16x16 d4 = sub_x16(c0,c4); // inv vector_permute 80 112 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e5 = _mm256_unpacklo_epi16(d5,d7); int16x16 e7 = _mm256_unpackhi_epi16(d5,d7); int16x16 f5 = _mm256_unpacklo_epi16(e5,e7); int16x16 f7 = _mm256_unpackhi_epi16(e5,e7); int16x16 g5 = _mm256_unpacklo_epi16(f5,f7); int16x16 g7 = _mm256_unpackhi_epi16(f5,f7); // inv vector_permute 64 96 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e4 = _mm256_unpacklo_epi16(d4,d6); int16x16 e6 = _mm256_unpackhi_epi16(d4,d6); int16x16 f4 = _mm256_unpacklo_epi16(e4,e6); int16x16 f6 = _mm256_unpackhi_epi16(e4,e6); int16x16 g4 = _mm256_unpacklo_epi16(f4,f6); int16x16 g6 = _mm256_unpackhi_epi16(f4,f6); // inv vector_permute 16 48 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e1 = _mm256_unpacklo_epi16(d1,d3); int16x16 e3 = _mm256_unpackhi_epi16(d1,d3); int16x16 f1 = _mm256_unpacklo_epi16(e1,e3); int16x16 f3 = _mm256_unpackhi_epi16(e1,e3); int16x16 g1 = _mm256_unpacklo_epi16(f1,f3); int16x16 g3 = _mm256_unpackhi_epi16(f1,f3); // inv vector_permute 0 32 _mm256_unpacklo_epi16 _mm256_unpackhi_epi16 int16x16 e0 = _mm256_unpacklo_epi16(d0,d2); int16x16 e2 = _mm256_unpackhi_epi16(d0,d2); int16x16 f0 = _mm256_unpacklo_epi16(e0,e2); int16x16 f2 = _mm256_unpackhi_epi16(e0,e2); int16x16 g0 = _mm256_unpacklo_epi16(f0,f2); int16x16 g2 = _mm256_unpackhi_epi16(f0,f2); // inv vector_twist 112 64 63 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 g7 = mulmod_scaled_x16(g7,precomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_1_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 48 64 63 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 g3 = mulmod_scaled_x16(g3,precomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_1_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // inv vector_twist 96 64 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 g6 = mulmod_scaled_x16(g6,precomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_64_63_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 32 64 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 g2 = mulmod_scaled_x16(g2,precomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_64_63_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // inv vector_twist 80 32 1 8 9 10 11 12 13 14 15 8 9 10 11 12 13 14 15 g5 = mulmod_scaled_x16(g5,precomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qinvprecomp_32_31_8_9_10_11_12_13_14_15_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 16 32 1 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 g1 = mulmod_scaled_x16(g1,precomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qinvprecomp_32_31_0_1_2_3_4_5_6_7_0_1_2_3_4_5_6_7,qdata); // inv vector_reduce 64 g4 = reduce_x16(g4,qdata); // inv vector_reduce 0 g0 = reduce_x16(g0,qdata); // inv vector_butterfly 96 112 4 1 int16x16 h6 = add_x16(g6,g7); int16x16 h7 = sub_x16(g6,g7); h7 = mulmod_scaled_x16(h7,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 32 48 4 1 int16x16 h2 = add_x16(g2,g3); int16x16 h3 = sub_x16(g2,g3); h3 = mulmod_scaled_x16(h3,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 64 80 1 0 int16x16 h4 = add_x16(g4,g5); int16x16 h5 = sub_x16(g4,g5); // inv vector_butterfly 0 16 1 0 int16x16 h0 = add_x16(g0,g1); int16x16 h1 = sub_x16(g0,g1); // inv vector_butterfly 80 112 1 0 int16x16 i5 = add_x16(h5,h7); int16x16 i7 = sub_x16(h5,h7); // inv vector_butterfly 16 48 1 0 int16x16 i1 = add_x16(h1,h3); int16x16 i3 = sub_x16(h1,h3); // inv vector_butterfly 64 96 1 0 int16x16 i4 = add_x16(h4,h6); int16x16 i6 = sub_x16(h4,h6); // inv vector_butterfly 0 32 1 0 int16x16 i0 = add_x16(h0,h2); int16x16 i2 = sub_x16(h0,h2); // inv startbatch 128 _mm256_storeu_si256((int16x16 *) (f+0),i0); _mm256_storeu_si256((int16x16 *) (f+16),i1); _mm256_storeu_si256((int16x16 *) (f+32),i2); _mm256_storeu_si256((int16x16 *) (f+48),i3); _mm256_storeu_si256((int16x16 *) (f+64),i4); _mm256_storeu_si256((int16x16 *) (f+80),i5); _mm256_storeu_si256((int16x16 *) (f+96),i6); _mm256_storeu_si256((int16x16 *) (f+112),i7); f += 128; } f -= 128*reps; // inv doublereps reps /= 2; // inv doublereps reps /= 2; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 432 496 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a27 = _mm256_loadu_si256((int16x16 *) (f+432)); int16x16 a31 = _mm256_loadu_si256((int16x16 *) (f+496)); int16x16 b27 = _mm256_permute2x128_si256_lo(a27,a31); int16x16 b31 = _mm256_permute2x128_si256_hi(a27,a31); // inv vector_permute 304 368 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a19 = _mm256_loadu_si256((int16x16 *) (f+304)); int16x16 a23 = _mm256_loadu_si256((int16x16 *) (f+368)); int16x16 b19 = _mm256_permute2x128_si256_lo(a19,a23); int16x16 b23 = _mm256_permute2x128_si256_hi(a19,a23); // inv vector_permute 176 240 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a11 = _mm256_loadu_si256((int16x16 *) (f+176)); int16x16 a15 = _mm256_loadu_si256((int16x16 *) (f+240)); int16x16 b11 = _mm256_permute2x128_si256_lo(a11,a15); int16x16 b15 = _mm256_permute2x128_si256_hi(a11,a15); // inv vector_permute 48 112 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a3 = _mm256_loadu_si256((int16x16 *) (f+48)); int16x16 a7 = _mm256_loadu_si256((int16x16 *) (f+112)); int16x16 b3 = _mm256_permute2x128_si256_lo(a3,a7); int16x16 b7 = _mm256_permute2x128_si256_hi(a3,a7); // inv vector_twist 496 512 507 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b31 = mulmod_scaled_x16(b31,precomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_5_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 432 512 511 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b27 = mulmod_scaled_x16(b27,precomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 368 512 5 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b23 = mulmod_scaled_x16(b23,precomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_507_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 304 512 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b19 = mulmod_scaled_x16(b19,precomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_512_511_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 240 256 255 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b15 = mulmod_scaled_x16(b15,precomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_1_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 176 256 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b11 = mulmod_scaled_x16(b11,precomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_256_255_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_twist 112 128 1 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 b7 = mulmod_scaled_x16(b7,precomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qinvprecomp_128_127_48_49_50_51_52_53_54_55_56_57_58_59_60_61_62_63,qdata); // inv vector_reduce 48 b3 = reduce_x16(b3,qdata); // inv vector_butterfly 432 496 8 7 int16x16 c27 = add_x16(b27,b31); int16x16 c31 = sub_x16(b27,b31); c31 = mulmod_scaled_x16(c31,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 304 368 8 1 int16x16 c19 = add_x16(b19,b23); int16x16 c23 = sub_x16(b19,b23); c23 = mulmod_scaled_x16(c23,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 176 240 4 1 int16x16 c11 = add_x16(b11,b15); int16x16 c15 = sub_x16(b11,b15); c15 = mulmod_scaled_x16(c15,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 48 112 1 0 int16x16 c3 = add_x16(b3,b7); int16x16 c7 = sub_x16(b3,b7); // inv vector_reduce_ifforward 112 // inv vector_butterfly 368 496 4 1 int16x16 d23 = add_x16(c23,c31); int16x16 d31 = sub_x16(c23,c31); d31 = mulmod_scaled_x16(d31,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 304 432 4 1 int16x16 d19 = add_x16(c19,c27); int16x16 d27 = sub_x16(c19,c27); d27 = mulmod_scaled_x16(d27,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 112 240 1 0 int16x16 d7 = add_x16(c7,c15); int16x16 d15 = sub_x16(c7,c15); // inv vector_butterfly 48 176 1 0 int16x16 d3 = add_x16(c3,c11); int16x16 d11 = sub_x16(c3,c11); // inv vector_reduce_ifreverse 304 d19 = reduce_x16(d19,qdata); // inv vector_reduce_ifreverse 48 d3 = reduce_x16(d3,qdata); // inv vector_butterfly 240 496 1 0 int16x16 e15 = add_x16(d15,d31); int16x16 e31 = sub_x16(d15,d31); // inv vector_butterfly 112 368 1 0 int16x16 e7 = add_x16(d7,d23); int16x16 e23 = sub_x16(d7,d23); // inv vector_butterfly 176 432 1 0 int16x16 e11 = add_x16(d11,d27); int16x16 e27 = sub_x16(d11,d27); // inv vector_butterfly 48 304 1 0 int16x16 e3 = add_x16(d3,d19); int16x16 e19 = sub_x16(d3,d19); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+48),e3); _mm256_storeu_si256((int16x16 *) (f+112),e7); _mm256_storeu_si256((int16x16 *) (f+176),e11); _mm256_storeu_si256((int16x16 *) (f+240),e15); _mm256_storeu_si256((int16x16 *) (f+304),e19); _mm256_storeu_si256((int16x16 *) (f+368),e23); _mm256_storeu_si256((int16x16 *) (f+432),e27); _mm256_storeu_si256((int16x16 *) (f+496),e31); f += 512; } f -= 512*reps; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 416 480 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a26 = _mm256_loadu_si256((int16x16 *) (f+416)); int16x16 a30 = _mm256_loadu_si256((int16x16 *) (f+480)); int16x16 b26 = _mm256_permute2x128_si256_lo(a26,a30); int16x16 b30 = _mm256_permute2x128_si256_hi(a26,a30); // inv vector_permute 288 352 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a18 = _mm256_loadu_si256((int16x16 *) (f+288)); int16x16 a22 = _mm256_loadu_si256((int16x16 *) (f+352)); int16x16 b18 = _mm256_permute2x128_si256_lo(a18,a22); int16x16 b22 = _mm256_permute2x128_si256_hi(a18,a22); // inv vector_permute 160 224 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a10 = _mm256_loadu_si256((int16x16 *) (f+160)); int16x16 a14 = _mm256_loadu_si256((int16x16 *) (f+224)); int16x16 b10 = _mm256_permute2x128_si256_lo(a10,a14); int16x16 b14 = _mm256_permute2x128_si256_hi(a10,a14); // inv vector_permute 32 96 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a2 = _mm256_loadu_si256((int16x16 *) (f+32)); int16x16 a6 = _mm256_loadu_si256((int16x16 *) (f+96)); int16x16 b2 = _mm256_permute2x128_si256_lo(a2,a6); int16x16 b6 = _mm256_permute2x128_si256_hi(a2,a6); // inv vector_twist 480 512 507 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b30 = mulmod_scaled_x16(b30,precomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_5_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 416 512 511 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b26 = mulmod_scaled_x16(b26,precomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 352 512 5 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b22 = mulmod_scaled_x16(b22,precomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_507_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 288 512 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b18 = mulmod_scaled_x16(b18,precomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_512_511_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 224 256 255 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b14 = mulmod_scaled_x16(b14,precomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_1_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 160 256 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b10 = mulmod_scaled_x16(b10,precomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_256_255_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_twist 96 128 1 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 b6 = mulmod_scaled_x16(b6,precomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qinvprecomp_128_127_32_33_34_35_36_37_38_39_40_41_42_43_44_45_46_47,qdata); // inv vector_reduce 32 b2 = reduce_x16(b2,qdata); // inv vector_butterfly 416 480 8 7 int16x16 c26 = add_x16(b26,b30); int16x16 c30 = sub_x16(b26,b30); c30 = mulmod_scaled_x16(c30,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 288 352 8 1 int16x16 c18 = add_x16(b18,b22); int16x16 c22 = sub_x16(b18,b22); c22 = mulmod_scaled_x16(c22,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 160 224 4 1 int16x16 c10 = add_x16(b10,b14); int16x16 c14 = sub_x16(b10,b14); c14 = mulmod_scaled_x16(c14,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 32 96 1 0 int16x16 c2 = add_x16(b2,b6); int16x16 c6 = sub_x16(b2,b6); // inv vector_reduce_ifforward 96 // inv vector_butterfly 352 480 4 1 int16x16 d22 = add_x16(c22,c30); int16x16 d30 = sub_x16(c22,c30); d30 = mulmod_scaled_x16(d30,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 288 416 4 1 int16x16 d18 = add_x16(c18,c26); int16x16 d26 = sub_x16(c18,c26); d26 = mulmod_scaled_x16(d26,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 96 224 1 0 int16x16 d6 = add_x16(c6,c14); int16x16 d14 = sub_x16(c6,c14); // inv vector_butterfly 32 160 1 0 int16x16 d2 = add_x16(c2,c10); int16x16 d10 = sub_x16(c2,c10); // inv vector_reduce_ifreverse 288 d18 = reduce_x16(d18,qdata); // inv vector_reduce_ifreverse 32 d2 = reduce_x16(d2,qdata); // inv vector_butterfly 224 480 1 0 int16x16 e14 = add_x16(d14,d30); int16x16 e30 = sub_x16(d14,d30); // inv vector_butterfly 96 352 1 0 int16x16 e6 = add_x16(d6,d22); int16x16 e22 = sub_x16(d6,d22); // inv vector_butterfly 160 416 1 0 int16x16 e10 = add_x16(d10,d26); int16x16 e26 = sub_x16(d10,d26); // inv vector_butterfly 32 288 1 0 int16x16 e2 = add_x16(d2,d18); int16x16 e18 = sub_x16(d2,d18); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+32),e2); _mm256_storeu_si256((int16x16 *) (f+96),e6); _mm256_storeu_si256((int16x16 *) (f+160),e10); _mm256_storeu_si256((int16x16 *) (f+224),e14); _mm256_storeu_si256((int16x16 *) (f+288),e18); _mm256_storeu_si256((int16x16 *) (f+352),e22); _mm256_storeu_si256((int16x16 *) (f+416),e26); _mm256_storeu_si256((int16x16 *) (f+480),e30); f += 512; } f -= 512*reps; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 400 464 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a25 = _mm256_loadu_si256((int16x16 *) (f+400)); int16x16 a29 = _mm256_loadu_si256((int16x16 *) (f+464)); int16x16 b25 = _mm256_permute2x128_si256_lo(a25,a29); int16x16 b29 = _mm256_permute2x128_si256_hi(a25,a29); // inv vector_permute 272 336 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a17 = _mm256_loadu_si256((int16x16 *) (f+272)); int16x16 a21 = _mm256_loadu_si256((int16x16 *) (f+336)); int16x16 b17 = _mm256_permute2x128_si256_lo(a17,a21); int16x16 b21 = _mm256_permute2x128_si256_hi(a17,a21); // inv vector_permute 144 208 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a9 = _mm256_loadu_si256((int16x16 *) (f+144)); int16x16 a13 = _mm256_loadu_si256((int16x16 *) (f+208)); int16x16 b9 = _mm256_permute2x128_si256_lo(a9,a13); int16x16 b13 = _mm256_permute2x128_si256_hi(a9,a13); // inv vector_permute 16 80 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a1 = _mm256_loadu_si256((int16x16 *) (f+16)); int16x16 a5 = _mm256_loadu_si256((int16x16 *) (f+80)); int16x16 b1 = _mm256_permute2x128_si256_lo(a1,a5); int16x16 b5 = _mm256_permute2x128_si256_hi(a1,a5); // inv vector_twist 464 512 507 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b29 = mulmod_scaled_x16(b29,precomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_5_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 400 512 511 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b25 = mulmod_scaled_x16(b25,precomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 336 512 5 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b21 = mulmod_scaled_x16(b21,precomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_507_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 272 512 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b17 = mulmod_scaled_x16(b17,precomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_512_511_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 208 256 255 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b13 = mulmod_scaled_x16(b13,precomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_1_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 144 256 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b9 = mulmod_scaled_x16(b9,precomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_256_255_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_twist 80 128 1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 b5 = mulmod_scaled_x16(b5,precomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qinvprecomp_128_127_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31,qdata); // inv vector_reduce 16 b1 = reduce_x16(b1,qdata); // inv vector_butterfly 400 464 8 7 int16x16 c25 = add_x16(b25,b29); int16x16 c29 = sub_x16(b25,b29); c29 = mulmod_scaled_x16(c29,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 272 336 8 1 int16x16 c17 = add_x16(b17,b21); int16x16 c21 = sub_x16(b17,b21); c21 = mulmod_scaled_x16(c21,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 144 208 4 1 int16x16 c9 = add_x16(b9,b13); int16x16 c13 = sub_x16(b9,b13); c13 = mulmod_scaled_x16(c13,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 16 80 1 0 int16x16 c1 = add_x16(b1,b5); int16x16 c5 = sub_x16(b1,b5); // inv vector_reduce_ifforward 80 // inv vector_butterfly 336 464 4 1 int16x16 d21 = add_x16(c21,c29); int16x16 d29 = sub_x16(c21,c29); d29 = mulmod_scaled_x16(d29,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 272 400 4 1 int16x16 d17 = add_x16(c17,c25); int16x16 d25 = sub_x16(c17,c25); d25 = mulmod_scaled_x16(d25,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 80 208 1 0 int16x16 d5 = add_x16(c5,c13); int16x16 d13 = sub_x16(c5,c13); // inv vector_butterfly 16 144 1 0 int16x16 d1 = add_x16(c1,c9); int16x16 d9 = sub_x16(c1,c9); // inv vector_reduce_ifreverse 272 d17 = reduce_x16(d17,qdata); // inv vector_reduce_ifreverse 16 d1 = reduce_x16(d1,qdata); // inv vector_butterfly 208 464 1 0 int16x16 e13 = add_x16(d13,d29); int16x16 e29 = sub_x16(d13,d29); // inv vector_butterfly 80 336 1 0 int16x16 e5 = add_x16(d5,d21); int16x16 e21 = sub_x16(d5,d21); // inv vector_butterfly 144 400 1 0 int16x16 e9 = add_x16(d9,d25); int16x16 e25 = sub_x16(d9,d25); // inv vector_butterfly 16 272 1 0 int16x16 e1 = add_x16(d1,d17); int16x16 e17 = sub_x16(d1,d17); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+16),e1); _mm256_storeu_si256((int16x16 *) (f+80),e5); _mm256_storeu_si256((int16x16 *) (f+144),e9); _mm256_storeu_si256((int16x16 *) (f+208),e13); _mm256_storeu_si256((int16x16 *) (f+272),e17); _mm256_storeu_si256((int16x16 *) (f+336),e21); _mm256_storeu_si256((int16x16 *) (f+400),e25); _mm256_storeu_si256((int16x16 *) (f+464),e29); f += 512; } f -= 512*reps; // inv stopbatch 512 for (long long r = 0;r < reps;++r) { // inv vector_permute 384 448 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a24 = _mm256_loadu_si256((int16x16 *) (f+384)); int16x16 a28 = _mm256_loadu_si256((int16x16 *) (f+448)); int16x16 b24 = _mm256_permute2x128_si256_lo(a24,a28); int16x16 b28 = _mm256_permute2x128_si256_hi(a24,a28); // inv vector_permute 256 320 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a16 = _mm256_loadu_si256((int16x16 *) (f+256)); int16x16 a20 = _mm256_loadu_si256((int16x16 *) (f+320)); int16x16 b16 = _mm256_permute2x128_si256_lo(a16,a20); int16x16 b20 = _mm256_permute2x128_si256_hi(a16,a20); // inv vector_permute 128 192 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a8 = _mm256_loadu_si256((int16x16 *) (f+128)); int16x16 a12 = _mm256_loadu_si256((int16x16 *) (f+192)); int16x16 b8 = _mm256_permute2x128_si256_lo(a8,a12); int16x16 b12 = _mm256_permute2x128_si256_hi(a8,a12); // inv vector_permute 0 64 _mm256_permute2x128_si256_lo _mm256_permute2x128_si256_hi int16x16 a0 = _mm256_loadu_si256((int16x16 *) (f+0)); int16x16 a4 = _mm256_loadu_si256((int16x16 *) (f+64)); int16x16 b0 = _mm256_permute2x128_si256_lo(a0,a4); int16x16 b4 = _mm256_permute2x128_si256_hi(a0,a4); // inv vector_twist 448 512 507 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b28 = mulmod_scaled_x16(b28,precomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_5_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 384 512 511 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b24 = mulmod_scaled_x16(b24,precomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 320 512 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b20 = mulmod_scaled_x16(b20,precomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_507_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 256 512 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b16 = mulmod_scaled_x16(b16,precomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_512_511_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 192 256 255 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b12 = mulmod_scaled_x16(b12,precomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_1_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 128 256 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b8 = mulmod_scaled_x16(b8,precomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_256_255_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_twist 64 128 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 b4 = mulmod_scaled_x16(b4,precomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qinvprecomp_128_127_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15,qdata); // inv vector_reduce 0 b0 = reduce_x16(b0,qdata); // inv vector_butterfly 384 448 8 7 int16x16 c24 = add_x16(b24,b28); int16x16 c28 = sub_x16(b24,b28); c28 = mulmod_scaled_x16(c28,scaledzeta_x16_8_1,qinvscaledzeta_x16_8_1,qdata); // inv vector_butterfly 256 320 8 1 int16x16 c16 = add_x16(b16,b20); int16x16 c20 = sub_x16(b16,b20); c20 = mulmod_scaled_x16(c20,scaledzeta_x16_8_7,qinvscaledzeta_x16_8_7,qdata); // inv vector_butterfly 128 192 4 1 int16x16 c8 = add_x16(b8,b12); int16x16 c12 = sub_x16(b8,b12); c12 = mulmod_scaled_x16(c12,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 0 64 1 0 int16x16 c0 = add_x16(b0,b4); int16x16 c4 = sub_x16(b0,b4); // inv vector_reduce_ifforward 64 // inv vector_butterfly 320 448 4 1 int16x16 d20 = add_x16(c20,c28); int16x16 d28 = sub_x16(c20,c28); d28 = mulmod_scaled_x16(d28,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 256 384 4 1 int16x16 d16 = add_x16(c16,c24); int16x16 d24 = sub_x16(c16,c24); d24 = mulmod_scaled_x16(d24,scaledzeta_x16_4_3,qinvscaledzeta_x16_4_3,qdata); // inv vector_butterfly 64 192 1 0 int16x16 d4 = add_x16(c4,c12); int16x16 d12 = sub_x16(c4,c12); // inv vector_butterfly 0 128 1 0 int16x16 d0 = add_x16(c0,c8); int16x16 d8 = sub_x16(c0,c8); // inv vector_reduce_ifreverse 256 d16 = reduce_x16(d16,qdata); // inv vector_reduce_ifreverse 0 d0 = reduce_x16(d0,qdata); // inv vector_butterfly 192 448 1 0 int16x16 e12 = add_x16(d12,d28); int16x16 e28 = sub_x16(d12,d28); // inv vector_butterfly 64 320 1 0 int16x16 e4 = add_x16(d4,d20); int16x16 e20 = sub_x16(d4,d20); // inv vector_butterfly 128 384 1 0 int16x16 e8 = add_x16(d8,d24); int16x16 e24 = sub_x16(d8,d24); // inv vector_butterfly 0 256 1 0 int16x16 e0 = add_x16(d0,d16); int16x16 e16 = sub_x16(d0,d16); // inv startbatch 512 _mm256_storeu_si256((int16x16 *) (f+0),e0); _mm256_storeu_si256((int16x16 *) (f+64),e4); _mm256_storeu_si256((int16x16 *) (f+128),e8); _mm256_storeu_si256((int16x16 *) (f+192),e12); _mm256_storeu_si256((int16x16 *) (f+256),e16); _mm256_storeu_si256((int16x16 *) (f+320),e20); _mm256_storeu_si256((int16x16 *) (f+384),e24); _mm256_storeu_si256((int16x16 *) (f+448),e28); f += 512; } f -= 512*reps; // inv startntt 512 } void invntt512_7681(int16 *f,int reps) { invntt512(f,reps,qdata_7681); } void invntt512_10753(int16 *f,int reps) { invntt512(f,reps,qdata_10753); } libntruprime-20241021/src/core/multsntrupP/avx/ntt.h0000644000000000000000000000067314705505552021047 0ustar rootroot#ifndef ntt_H #define ntt_H #include #define ntt512_7681 CRYPTO_NAMESPACE(ntt512_7681) #define ntt512_10753 CRYPTO_NAMESPACE(ntt512_10753) #define invntt512_7681 CRYPTO_NAMESPACE(invntt512_7681) #define invntt512_10753 CRYPTO_NAMESPACE(invntt512_10753) extern void ntt512_7681(int16_t *,int); extern void ntt512_10753(int16_t *,int); extern void invntt512_7681(int16_t *,int); extern void invntt512_10753(int16_t *,int); #endif libntruprime-20241021/src/core/multsntrupP/avx/precomp10753.inc0000644000000000000000000000622014705505552022623 0ustar rootroot1018, -5175, -3364, 5063, -376, 1341, 4855, 2503, 3085, 2982, -4744, 1284, -2576, -193, 3062, -4129, -223, -4095, -3784, -4035, 357, -1931, -2236, -918, -1299, -1287, -4876, 268, -4189, 4616, 2984, 3091, 3688, -2629, 425, -4875, -2413, 341, -730, -3012, 2388, -4513, 4742, 4, 1085, 2565, 4379, -2790, -4188, 5213, 4544, -1520, -3686, 3823, 2695, -4347, -1009, -205, -4102, -3550, -544, -2178, 847, 2935, -1018, 5175, 3364, -5063, 376, -1341, -4855, -2503, -3085, -2982, 4744, -1284, 2576, 193, -3062, 4129, 223, 4095, 3784, 4035, -357, 1931, 2236, 918, 1299, 1287, 4876, -268, 4189, -4616, -2984, -3091, -3688, 2629, -425, 4875, 2413, -341, 730, 3012, -2388, 4513, -4742, -4, -1085, -2565, -4379, 2790, 4188, -5213, -4544, 1520, 3686, -3823, -2695, 4347, 1009, 205, 4102, 3550, 544, 2178, -847, -2935, 5116, 400, 2234, 2206, 1068, 3169, -635, 326, 1615, -3615, 3198, 5064, -512, -4580, -2998, -4828, -2684, -151, -4123, -779, -1586, -578, -970, 1006, 2213, -1458, 567, 454, 2774, 116, 4734, 5156, -1324, 5294, -864, -2740, -1268, -4286, 472, -2884, 675, 5114, -794, -4808, -3057, 2981, -5341, -1356, 2973, 636, 3337, 1572, -3715, -2737, 467, 336, -2271, -909, -5023, -1841, -2045, 4977, 3441, -886, -5116, -400, -2234, -2206, -1068, -3169, 635, -326, -1615, 3615, -3198, -5064, 512, 4580, 2998, 4828, 2684, 151, 4123, 779, 1586, 578, 970, -1006, -2213, 1458, -567, -454, -2774, -116, -4734, -5156, 1324, -5294, 864, 2740, 1268, 4286, -472, 2884, -675, -5114, 794, 4808, 3057, -2981, 5341, 1356, -2973, -636, -3337, -1572, 3715, 2737, -467, -336, 2271, 909, 5023, 1841, 2045, -4977, -3441, 886, -3260, 73, 569, -834, -4859, 2487, 825, -4403, 5120, 2788, -2279, 5268, 4003, 2625, -2813, 5068, 693, 5107, -4973, -1782, -4967, 2529, 4393, -1053, 4519, -1160, -4328, 2205, 1204, -1663, -3535, -3096, -3360, 4891, -4889, -2113, -554, 2605, -4000, -4720, -1056, 3995, -2151, -1893, 5356, 3891, 279, 3125, 3419, -1927, 152, -1111, -2963, 5334, 1510, -4670, 1689, -2449, 355, -2807, -624, 3827, 5083, -4540, 3260, -73, -569, 834, 4859, -2487, -825, 4403, -5120, -2788, 2279, -5268, -4003, -2625, 2813, -5068, -693, -5107, 4973, 1782, 4967, -2529, -4393, 1053, -4519, 1160, 4328, -2205, -1204, 1663, 3535, 3096, 3360, -4891, 4889, 2113, 554, -2605, 4000, 4720, 1056, -3995, 2151, 1893, -5356, -3891, -279, -3125, -3419, 1927, -152, 1111, 2963, -5334, -1510, 4670, -1689, 2449, -355, 2807, 624, -3827, -5083, 4540, -3524, 3760, -2657, 1381, -5015, -4621, 4784, 5215, 4428, -1722, 4254, 2439, 1639, -40, -2374, 1930, -1573, -3570, -2196, -5172, 4447, -1132, 1635, 854, -5005, 1349, -1122, 2117, 2419, 3241, -663, -3148, 458, 4601, 4782, -4250, 3135, 573, -2015, -3453, -4408, 2909, -5313, 2118, -778, -2087, 1409, -4144, 2139, -2624, 3410, -2428, -2662, 2230, -2062, 5309, -1992, 4359, 97, 2050, 2283, -2680, 2237, 274, 3524, -3760, 2657, -1381, 5015, 4621, -4784, -5215, -4428, 1722, -4254, -2439, -1639, 40, 2374, -1930, 1573, 3570, 2196, 5172, -4447, 1132, -1635, -854, 5005, -1349, 1122, -2117, -2419, -3241, 663, 3148, -458, -4601, -4782, 4250, -3135, -573, 2015, 3453, 4408, -2909, 5313, -2118, 778, 2087, -1409, 4144, -2139, 2624, -3410, 2428, 2662, -2230, 2062, -5309, 1992, -4359, -97, -2050, -2283, 2680, -2237, -274, libntruprime-20241021/src/core/multsntrupP/avx/precomp7681.inc0000644000000000000000000000621014705505552022550 0ustar rootroot-3593, 3364, 1701, 2237, 2194, 2557, 834, -1599, 514, 438, 2555, -1887, 103, 1881, -549, -1738, -3777, -2830, 1414, 1986, 2456, 1525, 2495, -1993, 2956, -679, 2440, -810, 2804, 3555, 1535, -3689, -3625, 617, 2319, -2816, 3696, -1483, -2250, 3706, -1399, -1760, 2535, 638, 2043, 396, 2310, -3600, 3182, -1921, 2876, -2088, -1100, -1296, 121, 2006, -1321, -1305, -3772, -7, -1431, 3174, 3153, 3266, 3593, -3364, -1701, -2237, -2194, -2557, -834, 1599, -514, -438, -2555, 1887, -103, -1881, 549, 1738, 3777, 2830, -1414, -1986, -2456, -1525, -2495, 1993, -2956, 679, -2440, 810, -2804, -3555, -1535, 3689, 3625, -617, -2319, 2816, -3696, 1483, 2250, -3706, 1399, 1760, -2535, -638, -2043, -396, -2310, 3600, -3182, 1921, -2876, 2088, 1100, 1296, -121, -2006, 1321, 1305, 3772, 7, 1431, -3174, -3153, -3266, -1532, -3816, 783, -921, -2160, 2762, 3310, 727, 2789, -373, -3456, -1497, -2385, -2391, -2426, 2883, 1919, 2233, -1056, 2743, -2649, 3750, -1168, 1521, 2919, -2175, -1166, -2572, -3405, -660, 3831, -1681, 404, -2764, 1799, 1386, -859, 1390, -2133, -1464, -194, -3692, -1054, -1350, 2732, 3135, -915, 2224, -486, -2835, 2665, 3428, -2579, 1598, -3480, 1533, -3417, -730, -1698, 3145, 2113, -1756, -2, -3588, 1532, 3816, -783, 921, 2160, -2762, -3310, -727, -2789, 373, 3456, 1497, 2385, 2391, 2426, -2883, -1919, -2233, 1056, -2743, 2649, -3750, 1168, -1521, -2919, 2175, 1166, 2572, 3405, 660, -3831, 1681, -404, 2764, -1799, -1386, 859, -1390, 2133, 1464, 194, 3692, 1054, 1350, -2732, -3135, 915, -2224, 486, 2835, -2665, -3428, 2579, -1598, 3480, -1533, 3417, 730, 1698, -3145, -2113, 1756, 2, 3588, -1404, -509, -1689, -3752, 3335, 2812, -1519, 1669, -402, -2345, 2963, 370, 3745, 83, -796, 642, -2874, -1403, 777, 3677, -1084, -3763, -188, 692, -429, 1338, 124, -293, 3366, -3408, 3163, -1837, 1012, 3343, -2262, -2460, -2532, 592, 893, -3287, 1931, 2303, -3208, -2083, 3214, 826, 2258, 2965, -2130, 2937, -2070, -3657, -1441, -2005, 2386, 2167, 3723, 2515, 589, -3312, -3334, -1526, -3781, -791, 1404, 509, 1689, 3752, -3335, -2812, 1519, -1669, 402, 2345, -2963, -370, -3745, -83, 796, -642, 2874, 1403, -777, -3677, 1084, 3763, 188, -692, 429, -1338, -124, 293, -3366, 3408, -3163, 1837, -1012, -3343, 2262, 2460, 2532, -592, -893, 3287, -1931, -2303, 3208, 2083, -3214, -826, -2258, -2965, 2130, -2937, 2070, 3657, 1441, 2005, -2386, -2167, -3723, -2515, -589, 3312, 3334, 1526, 3781, 791, 658, 1278, -226, 1649, -436, 17, -1181, 1242, -3434, 451, -3770, 3581, 2719, 1779, -1144, -1509, -1476, -929, 3542, 2161, -236, 3744, -1203, 179, -3550, -2786, -3450, 1586, -3461, -3547, 1072, 2918, -715, 2230, 2767, 2072, 1121, -2422, 3794, 1070, 2891, 222, 1295, 3568, 2998, -434, 2589, -2339, 670, 1348, -2378, -3177, -2071, 2001, 151, 2059, 2340, -1712, 2815, 3693, 3314, -1151, 2247, -1407, -658, -1278, 226, -1649, 436, -17, 1181, -1242, 3434, -451, 3770, -3581, -2719, -1779, 1144, 1509, 1476, 929, -3542, -2161, 236, -3744, 1203, -179, 3550, 2786, 3450, -1586, 3461, 3547, -1072, -2918, 715, -2230, -2767, -2072, -1121, 2422, -3794, -1070, -2891, -222, -1295, -3568, -2998, 434, -2589, 2339, -670, -1348, 2378, 3177, 2071, -2001, -151, -2059, -2340, 1712, -2815, -3693, -3314, 1151, -2247, 1407, libntruprime-20241021/src/core/multsntrupP/compact/0000755000000000000000000000000014705505552020713 5ustar rootrootlibntruprime-20241021/src/core/multsntrupP/compact/mult.c0000644000000000000000000000233414705505552022042 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include "params.h" #include "crypto_int8.h" #include "crypto_int16.h" #include "crypto_int32.h" #define int8 crypto_int8 #define int16 crypto_int16 #define int32 crypto_int32 typedef int8 small; typedef int16 Fq; /* always represented as -(q-1)/2...(q-1)/2 */ /* works for -7000000 < x < 7000000 if q in 4591, 4621, 5167, 6343, 7177, 7879 */ static Fq Fq_freeze(int32 x) { x -= q*((q18*x)>>18); x -= q*((q27*x+67108864)>>27); return x; } void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int32 f32[p]; int32 fg[p+p-1]; Fq h[p]; int i,j; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) f32[i] = Fq_freeze(f[i]); for (i = 0; i < p + p - 1; ++i) fg[i] = 0; for (j = 0; j < p; ++j) { small gjx = kbytes[j]; small gj0 = crypto_int8_bottombit_01(gjx); int32 gj = gj0-(gjx&(gj0<<1)); for (i = 0; i < p; ++i) fg[i + j] += f32[i] * gj; } for (i = p; i < p + p - 1; ++i) fg[i - p] += fg[i]; for (i = p; i < p + p - 1; ++i) fg[i - p + 1] += fg[i]; for (i = 0; i < p; ++i) h[i] = Fq_freeze(fg[i]); crypto_encode_pxint16(outbytes,h); } libntruprime-20241021/src/core/multsntrupP/compact/params.h0000644000000000000000000000054414705505552022352 0ustar rootroot#ifndef params_H #define params_H #define p {P} #define q {Q} #define q18 {Q18} /* closest integer to 2^18/q */ #define q27 {Q27} /* closest integer to 2^27/q */ #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #endif libntruprime-20241021/src/core/scale3sntrupP/0000755000000000000000000000000014705505552017456 5ustar rootrootlibntruprime-20241021/src/core/scale3sntrupP/avx/0000755000000000000000000000000014705505552020254 5ustar rootrootlibntruprime-20241021/src/core/scale3sntrupP/avx/architectures0000777000000000000000000000000014705505552031165 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/scale3sntrupP/avx/core.c0000644000000000000000000000242514705505552021353 0ustar rootroot#include #include "crypto_core.h" #define p {P} #define q {Q} #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int i = p-16; __m256i save = _mm256_loadu_si256((__m256i *) (inbytes+2*i)); /* in case outbytes = inbytes */ for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) inbytes); __m256i xneg; x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3)); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q+1)/2)); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); xneg = _mm256_srai_epi16(x,15); x = _mm256_add_epi16(x,_mm256_set1_epi16(q)&xneg); x = _mm256_sub_epi16(x,_mm256_set1_epi16((q-1)/2)); _mm256_storeu_si256((__m256i *) outbytes,x); inbytes += 32; outbytes += 32; i -= 16; } while (i >= 0); if (i <= -16) break; inbytes += 2*i; outbytes += 2*i; _mm256_storeu_si256((__m256i *) outbytes,save); } } libntruprime-20241021/src/core/scale3sntrupP/ref/0000755000000000000000000000000014705505552020232 5ustar rootrootlibntruprime-20241021/src/core/scale3sntrupP/ref/core.c0000644000000000000000000000151214705505552021325 0ustar rootroot#include "crypto_core.h" #define p {P} #define q {Q} #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #include "crypto_int16.h" typedef crypto_int16 Fq; /* out = 3*in in Rq */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { Fq f[p]; int i; crypto_decode_pxint16(f,inbytes); for (i = 0;i < p;++i) { Fq x = f[i]; x *= 3; /* (-3q+3)/2 ... (3q-3)/2 */ x -= (q+1)/2; /* -2q+1 ... q-2 */ x += q&crypto_int16_negative_mask(x); /* -q+1 ... q-1 */ x += q&crypto_int16_negative_mask(x); /* 0 ... q-1 */ x -= (q-1)/2; /* -(q-1)/2 ... (q-1)/2 */ f[i] = x; } crypto_encode_pxint16(outbytes,f); } libntruprime-20241021/src/core/weightsntrupP/0000755000000000000000000000000014705505552017573 5ustar rootrootlibntruprime-20241021/src/core/weightsntrupP/avx/0000755000000000000000000000000014705505552020371 5ustar rootrootlibntruprime-20241021/src/core/weightsntrupP/avx/architectures0000777000000000000000000000000014705505552031302 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/weightsntrupP/avx/params.h0000644000000000000000000000010214705505552022016 0ustar rootroot#define p {P} #define endingmask _mm256_set_epi8({AVXENDINGMASK}) libntruprime-20241021/src/core/weightsntrupP/avx/weight.c0000644000000000000000000000242014705505552022022 0ustar rootroot#include #include "crypto_core.h" #include "crypto_int8.h" #include "crypto_int16.h" #define int8 crypto_int8 #define int16 crypto_int16 #include "crypto_encode_int16.h" #include "params.h" /* out = little-endian weight of bottom bits of in */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int8 *in = (void *) inbytes; int i; __m256i sum,sumhi; int16 weight; sum = _mm256_loadu_si256((__m256i *) (in+p-32)); sum &= endingmask; for (i = p-32;i >= 0;i -= 32) { __m256i bits = _mm256_loadu_si256((__m256i *) in); bits &= _mm256_set1_epi8(1); sum = _mm256_add_epi8(sum,bits); in += 32; } /* sum is 32xint8; want to add these int8 */ sumhi = _mm256_srli_epi16(sum,8); sum &= _mm256_set1_epi16(0xff); sum = _mm256_add_epi16(sum,sumhi); /* sum is 16xint16; want to add these int16 */ sum = _mm256_hadd_epi16(sum,sum); /* want sum[0]+sum[1]+sum[2]+sum[3]+sum[8]+sum[9]+sum[10]+sum[11] */ sum = _mm256_hadd_epi16(sum,sum); /* want sum[0]+sum[1]+sum[8]+sum[9] */ sum = _mm256_hadd_epi16(sum,sum); /* want sum[0]+sum[8] */ weight = _mm256_extract_epi16(sum,0); weight += _mm256_extract_epi16(sum,8); crypto_encode_int16(outbytes,&weight); } libntruprime-20241021/src/core/weightsntrupP/ref/0000755000000000000000000000000014705505552020347 5ustar rootrootlibntruprime-20241021/src/core/weightsntrupP/ref/params.h0000644000000000000000000000001614705505552022000 0ustar rootroot#define p {P} libntruprime-20241021/src/core/weightsntrupP/ref/weight.c0000644000000000000000000000110014705505552021772 0ustar rootroot// 20240812 djb: more cryptoint usage #include "crypto_core.h" #include "crypto_int8.h" #include "crypto_int16.h" #define int8 crypto_int8 #define int16 crypto_int16 #include "crypto_encode_int16.h" #include "params.h" /* out = little-endian weight of bottom bits of in */ void crypto_core(unsigned char *outbytes,const unsigned char *inbytes,const unsigned char *kbytes,const unsigned char *cbytes) { int8 *in = (void *) inbytes; int16 weight = 0; int i; for (i = 0;i < p;++i) weight += crypto_int8_bottombit_01(in[i]); crypto_encode_int16(outbytes,&weight); } libntruprime-20241021/src/core/wforcesntrupP/0000755000000000000000000000000014705505552017571 5ustar rootrootlibntruprime-20241021/src/core/wforcesntrupP/avx/0000755000000000000000000000000014705505552020367 5ustar rootrootlibntruprime-20241021/src/core/wforcesntrupP/avx/architectures0000777000000000000000000000000014705505552031300 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/core/wforcesntrupP/avx/params.h0000644000000000000000000000017514705505552022026 0ustar rootroot#define p {P} #define w {W} #include "crypto_core_weightsntrup{P}.h" #define crypto_core_weight crypto_core_weightsntrup{P} libntruprime-20241021/src/core/wforcesntrupP/avx/wforce.c0000644000000000000000000000234714705505552022026 0ustar rootroot#include #include "crypto_core.h" #include "crypto_int16.h" #define int16 crypto_int16 #include "crypto_decode_int16.h" #include "params.h" /* out = in if bottom bits of in have weight w */ /* otherwise out = (1,1,...,1,0,0,...,0) */ void crypto_core(unsigned char *out,const unsigned char *in,const unsigned char *kbytes,const unsigned char *cbytes) { int16 weight; int16 mask; __m256i maskvec; int i; crypto_core_weight((unsigned char *) &weight,in,0,0); crypto_decode_int16(&weight,(unsigned char *) &weight); mask = crypto_int16_equal_mask(weight,w); maskvec = _mm256_set1_epi16(mask); i = w-32; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) in); x ^= _mm256_set1_epi8(1); x &= maskvec; x ^= _mm256_set1_epi8(1); _mm256_storeu_si256((__m256i *) out,x); in += 32; out += 32; i -= 32; } while (i >= 0); if (i <= -32) break; in += i; out += i; } i = p-w-32; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) in); x &= maskvec; _mm256_storeu_si256((__m256i *) out,x); in += 32; out += 32; i -= 32; } while (i >= 0); if (i <= -32) break; in += i; out += i; } } libntruprime-20241021/src/core/wforcesntrupP/simpler/0000755000000000000000000000000014705505552021244 5ustar rootrootlibntruprime-20241021/src/core/wforcesntrupP/simpler/params.h0000777000000000000000000000000014705505552025342 2../avx/params.hustar rootrootlibntruprime-20241021/src/core/wforcesntrupP/simpler/wforce.c0000644000000000000000000000120714705505552022675 0ustar rootroot#include "crypto_core.h" #include "crypto_int16.h" #define int16 crypto_int16 #include "crypto_decode_int16.h" #include "params.h" /* out = in if bottom bits of in have weight w */ /* otherwise out = (1,1,...,1,0,0,...,0) */ void crypto_core(unsigned char *out,const unsigned char *in,const unsigned char *kbytes,const unsigned char *cbytes) { int16 weight; int16 mask; int i; crypto_core_weight((unsigned char *) &weight,in,0,0); crypto_decode_int16(&weight,(unsigned char *) &weight); mask = crypto_int16_equal_mask(weight,w); for (i = 0;i < w;++i) out[i] = ((in[i]^1)&mask)^1; for (i = w;i < p;++i) out[i] = in[i]&mask; } libntruprime-20241021/src/decode/0000755000000000000000000000000014705505552015203 5ustar rootrootlibntruprime-20241021/src/decode/Px3/0000755000000000000000000000000014705505552015655 5ustar rootrootlibntruprime-20241021/src/decode/Px3/avx/0000755000000000000000000000000014705505552016453 5ustar rootrootlibntruprime-20241021/src/decode/Px3/avx/architectures0000644000000000000000000000002414705505552021237 0ustar rootrootamd64 avx2 x86 avx2 libntruprime-20241021/src/decode/Px3/avx/decode.c0000644000000000000000000000404014705505552020040 0ustar rootroot#include #include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p {P} #define loops {AVXLOOPS} #define overshoot {AVXOVERSHOOT} void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; int loop; uint8 *nextf = f+128-4*overshoot; const unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i s0 = _mm256_loadu_si256((const __m256i *) s); s = nexts; nexts += 32; __m256i s1 = _mm256_srli_epi16(s0&_mm256_set1_epi8(-16),4); s0 &= _mm256_set1_epi8(15); __m256i a0 = _mm256_unpacklo_epi8(s0,s1); /* 0 0>>4 1 1>>4 2 2>>4 3 3>>4 4 4>>4 5 5>>4 6 6>>4 7 7>>4 */ /* 16 16>>4 ... */ __m256i a1 = _mm256_unpackhi_epi8(s0,s1); /* 8 8>>4 9 9>>4 10 10>>4 ... */ /* 24 24>>4 ... */ __m256i a2 = _mm256_srli_epi16(a0&_mm256_set1_epi8(12),2); __m256i a3 = _mm256_srli_epi16(a1&_mm256_set1_epi8(12),2); a0 &= _mm256_set1_epi8(3); a1 &= _mm256_set1_epi8(3); __m256i b0 = _mm256_unpacklo_epi8(a0,a2); /* 0 0>>2 0>>4 0>>6 1 1>>2 1>>4 1>>6 */ /* 2 2>>2 2>>4 2>>6 3 3>>2 3>>4 3>.6 */ /* 16 16>>2 16>>4 16>>6 ... */ __m256i b2 = _mm256_unpackhi_epi8(a0,a2); /* 4 4>>2 ... */ __m256i b1 = _mm256_unpacklo_epi8(a1,a3); /* 8 8>>2 ... */ __m256i b3 = _mm256_unpackhi_epi8(a1,a3); /* 12 12>>2 ... */ __m256i f0 = _mm256_permute2x128_si256(b0,b2,0x20); __m256i f2 = _mm256_permute2x128_si256(b0,b2,0x31); __m256i f1 = _mm256_permute2x128_si256(b1,b3,0x20); __m256i f3 = _mm256_permute2x128_si256(b1,b3,0x31); f0 = _mm256_add_epi8(f0,_mm256_set1_epi8(-1)); f1 = _mm256_add_epi8(f1,_mm256_set1_epi8(-1)); f2 = _mm256_add_epi8(f2,_mm256_set1_epi8(-1)); f3 = _mm256_add_epi8(f3,_mm256_set1_epi8(-1)); _mm256_storeu_si256((__m256i *) (f+0),f0); _mm256_storeu_si256((__m256i *) (f+32),f1); _mm256_storeu_si256((__m256i *) (f+64),f2); _mm256_storeu_si256((__m256i *) (f+96),f3); f = nextf; nextf += 128; } *f = ((uint8)(*s&3))-1; } libntruprime-20241021/src/decode/Px3/ref/0000755000000000000000000000000014705505552016431 5ustar rootrootlibntruprime-20241021/src/decode/Px3/ref/decode.c0000644000000000000000000000064014705505552020020 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p {P} void crypto_decode(void *v,const unsigned char *s) { uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *s++; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; x >>= 2; *f++ = ((uint8)(x&3))-1; } x = *s++; *f++ = ((uint8)(x&3))-1; } libntruprime-20241021/src/decode/PxQ/0000755000000000000000000000000014705505552015713 5ustar rootrootlibntruprime-20241021/src/decode/PxQ/avx/0000755000000000000000000000000014705505552016511 5ustar rootrootlibntruprime-20241021/src/decode/PxQ/avx/Makefile0000644000000000000000000000013214705505552020145 0ustar rootrootdecode.c: decodegen.py ./decodegen.py {P} {Q} > decode.c touch -r decodegen.py decode.c libntruprime-20241021/src/decode/PxQ/avx/architectures0000777000000000000000000000000014705505552025764 2../../Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/decode/PxQ/avx/decodegen.py0000755000000000000000000003106114705505552021004 0ustar rootroot#!/usr/bin/env python3 import sys from math import floor Mlen = 761 if len(sys.argv) > 1: Mlen = int(sys.argv[1]) m0 = 4591 if len(sys.argv) > 2: m0 = int(sys.argv[2]) m1 = m0 if len(sys.argv) > 3: m1 = int(sys.argv[3]) # M is Mlen-1 copies of m0, plus 1 copy of m1 offset = m0//2 if len(sys.argv) > 4: offset = int(sys.argv[4]) div3 = False if len(sys.argv) > 5: div3 = sys.argv[5]=='True' todo = 'R0' top = 16384 print('/* auto-generated; do not edit */') print('/* 20240812 djb: more cryptoint usage */') print('') print('#include ') print('#include "crypto_decode.h"') print('#include "crypto_int16.h"') print('#include "crypto_int32.h"') print('#define int16 crypto_int16') print('#define int32 crypto_int32') print(""" static inline int16 mullo(int16 x,int16 y) { return x*y; } static inline int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } static inline __m256i add(__m256i x,__m256i y) { return _mm256_add_epi16(x,y); } static inline __m256i sub(__m256i x,__m256i y) { return _mm256_sub_epi16(x,y); } static inline __m256i shiftleftconst(__m256i x,int16 y) { return _mm256_slli_epi16(x,y); } static inline __m256i signedshiftrightconst(__m256i x,int16 y) { return _mm256_srai_epi16(x,y); } static inline __m256i subconst(__m256i x,int16 y) { return sub(x,_mm256_set1_epi16(y)); } static inline __m256i mulloconst(__m256i x,int16 y) { return _mm256_mullo_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i mulhiconst(__m256i x,int16 y) { return _mm256_mulhi_epi16(x,_mm256_set1_epi16(y)); } static inline __m256i ifgesubconst(__m256i x,int16 y) { __m256i y16 = _mm256_set1_epi16(y); __m256i top16 = _mm256_set1_epi16(y-1); return sub(x,_mm256_cmpgt_epi16(x,top16) & y16); } static inline __m256i ifnegaddconst(__m256i x,int16 y) { return add(x,signedshiftrightconst(x,15) & _mm256_set1_epi16(y)); } """) print('void crypto_decode(void *v,const unsigned char *s)') print('{') print(' int16 *%s = v;' % todo) tmparrays = None layer = 1 x = Mlen while x > 1: x = (x+1)//2 if tmparrays == None: tmparrays = 'int16 ' else: tmparrays += ',' tmparrays += 'R%d[%d]' % (layer,x) layer += 1 if tmparrays: print(' %s;' % tmparrays) print(' long long i;') print(' int16 a0,a1,a2;') print(' __m256i A0,A1,A2,S0,S1,B0,B1,C0,C1;') def poke(todo,pos,contents): if todo == 'R0' and div3: return '%s[%s] = 3*%s%+d;' % (todo,pos,contents,-offset) if todo == 'R0' and offset != 0: return '%s[%s] = %s%+d;' % (todo,pos,contents,-offset) return '%s[%s] = %s;' % (todo,pos,contents) def mulmoddata(c,q): y = (c<<16)%q if y*2 >= q: y -= q t = 0 u = q while not u&1: t += 1 u >>= 1 uinv = pow(u,16383,65536) if uinv>=32768: uinv -= 65536 assert (u*uinv)%65536 == 1 z = (y-(c<<16))>>t z = (z*uinv)%65536 if z >= 32768: z -= 65536 assert (z*u-((y-(c<<16))>>t))%(2**16) == 0 return y,t,u,uinv,z def inner(indent,reading,inpos,m0,m1,bytes,outpos0,outpos1): stanza = '' y,t,u,uinv,z = mulmoddata(256,m0) stanza += indent + 'a2 = a0 = %s[%s];\n' % (reading,inpos) a0lower,a0upper = 0,1<<14 for loop in range(bytes): if y > 0: a0lower,a0upper = a0lower*y,a0upper*y else: a0lower,a0upper = a0upper*y,a0lower*y a0lower,a0upper = a0lower-(m0<<15),a0upper+(m0<<15) a0lower,a0upper = a0lower>>16,a0upper>>16 stanza += indent + 'a0 = mulhi(a0,%d)-mulhi(mullo(a0,%d),%d); /* %d...%d */\n' % (y,z,m0,a0lower,a0upper) a0upper += 255 stanza += indent + 'a0 += s[%d*i+%d]; /* %d...%d */\n' % (bytes,bytes-1-loop,a0lower,a0upper) if a0upper >= 2*m0: y1,t1,u1,uinv1,z1 = mulmoddata(1,m0) if y1 > 0: a0lower,a0upper = a0lower*y1,a0upper*y1 else: a0lower,a0upper = a0upper*y1,a0lower*y1 a0lower,a0upper = a0lower-(m0<<15),a0upper+(m0<<15) a0lower,a0upper = a0lower>>16,a0upper>>16 stanza += indent + 'a0 = mulhi(a0,%d)-mulhi(mullo(a0,%d),%d); /* %d...%d */\n' % (y1,z1,m0,a0lower,a0upper) while a0upper >= m0: a0lower,a0upper = a0lower-m0,a0upper-m0 stanza += indent + 'a0 -= %d; /* %d..>%d */\n' % (m0,a0lower,a0upper) while a0lower < 0: a0lower,a0upper = min(0,a0lower+m0),max(m0-1,a0upper) stanza += indent + 'a0 += %d&crypto_int16_negative_mask(a0); /* %d...%d */\n' % (m0,a0lower,a0upper) if bytes == 0: stanza += indent + 'a1 = (a2-a0)>>%d;\n' % t elif bytes == 1: if t == 0: stanza += indent + 'a1 = (a2<<8)+s[i]-a0;\n' elif t == 8: stanza += indent + 'a1 = a2+((s[i]-a0)>>8);\n' elif t < 8: stanza += indent + 'a1 = (a2<<%d)+((s[i]-a0)>>%d);\n' % (8-t,t) else: stanza += indent + 'a1 = (a2+((s[i]-a0)>>8))>>%d;\n' % t-8 else: assert bytes == 2 if t == 0: stanza += indent + 'a1 = (s[2*i+1]<<8)+s[2*i]-a0;\n' elif t == 8: stanza += indent + 'a1 = (a2<<8)+s[2*i+1]+((s[2*i]-a0)>>8);\n' elif t < 8: stanza += indent + 'a1 = (a2<<%d)+(s[2*i+1]<<%d)+((s[2*i]-a0)>>%d);\n' % (16-t,8-t,t) else: stanza += indent + 'a1 = ((((int32)a2)<<16)+(s[2*i+1]<<8)+s[2*i]-a0)>>%d;\n' % t stanza += indent + 'a1 = mullo(a1,%d);\n' % uinv stanza += '\n' stanza += indent + '/* invalid inputs might need reduction mod %d */\n' % m1 stanza += indent + 'a1 -= %d;\n' % m1 stanza += indent + 'a1 += %d&crypto_int16_negative_mask(a1);\n' % m1 stanza += '\n' stanza += indent + '%s\n' % poke(todo,outpos0,'a0') stanza += indent + '%s\n' % poke(todo,outpos1,'a1') return stanza # XXX: caller must ensure that outpos1 is outpos0+1 def inner16(indent,reading,inpos,m0,m1,bytes,outpos0,outpos1): stanza = '' y,t,u,uinv,z = mulmoddata(256,m0) stanza += indent + 'A2 = A0 = _mm256_loadu_si256((__m256i *) &%s[%s]);\n' % (reading,inpos) a0lower,a0upper = 0,1<<14 if bytes == 1: stanza += indent + 'S0 = _mm256_cvtepu8_epi16(_mm_loadu_si128((__m128i *) (s+i)));\n' if bytes == 2: stanza += indent + 'S0 = _mm256_loadu_si256((__m256i *) (s+2*i));\n' stanza += indent + 'S1 = _mm256_srli_epi16(S0,8);\n' stanza += indent + 'S0 &= _mm256_set1_epi16(255);\n' for loop in reversed(range(bytes)): if y > 0: a0lower,a0upper = a0lower*y,a0upper*y else: a0lower,a0upper = a0upper*y,a0lower*y a0lower,a0upper = a0lower-(m0<<15),a0upper+(m0<<15) a0lower,a0upper = a0lower>>16,a0upper>>16 stanza += indent + 'A0 = sub(mulhiconst(A0,%d),mulhiconst(mulloconst(A0,%d),%d)); /* %d...%d */\n' % (y,z,m0,a0lower,a0upper) a0upper += 255 stanza += indent + 'A0 = add(A0,S%d); /* %d...%d */\n' % (loop,a0lower,a0upper) if a0upper >= 2*m0: y1,t1,u1,uinv1,z1 = mulmoddata(1,m0) if y1 > 0: a0lower,a0upper = a0lower*y1,a0upper*y1 else: a0lower,a0upper = a0upper*y1,a0lower*y1 a0lower,a0upper = a0lower-(m0<<15),a0upper+(m0<<15) a0lower,a0upper = a0lower>>16,a0upper>>16 stanza += indent + 'A0 = sub(mulhiconst(A0,%d),mulhiconst(mulloconst(A0,%d),%d)); /* %d...%d */\n' % (y1,z1,m0,a0lower,a0upper) while a0upper >= m0: a0lower,a0upper = a0lower-m0,a0upper-m0 stanza += indent + 'A0 = subconst(A0,%d); /* %d...%d */\n' % (m0,a0lower,a0upper) while a0lower < 0: a0lower,a0upper = min(0,a0lower+m0),max(m0-1,a0upper) stanza += indent + 'A0 = ifnegaddconst(A0,%d); /* %d...%d */\n' % (m0,a0lower,a0upper) if bytes == 0: stanza += indent + 'A1 = signedshiftrightconst(sub(A2,A0),%d);\n' % t elif bytes == 1: if t == 0: stanza += indent + 'A1 = add(shiftleftconst(A2,8),sub(S0,A0));\n' elif t == 8: stanza += indent + 'A1 = add(A2,signedshiftrightconst(sub(S0,A0),8));\n' elif t < 8: stanza += indent + 'A1 = add(shiftleftconst(A2,%d),signedshiftrightconst(sub(S0,A0),%d));\n' % (8-t,t) else: raise Exception('shift distances above 8 unimplemented') else: assert bytes == 2 if t == 0: stanza += indent + 'A1 = add(shiftleftconst(S1,8),sub(S0,A0));\n' elif t == 8: stanza += indent + 'A1 = add(add(shiftleftconst(A2,8),S1),signedshiftrightconst(sub(S0,A0),8));\n' elif t < 8: stanza += indent + 'A1 = add(add(shiftleftconst(A2,%d),shiftleftconst(S1,%d)),signedshiftrightconst(sub(S0,A0),%d));\n' % (16-t,8-t,t) else: raise Exception('shift distances above 8 unimplemented') stanza += indent + 'A1 = mulloconst(A1,%d);\n' % uinv stanza += '\n' stanza += indent + '/* invalid inputs might need reduction mod %d */\n' % m1 # stanza += indent + 'A1 = subconst(A1,%d);\n' % m1 # stanza += indent + 'A1 = ifnegaddconst(A1,%d);\n' % m1 stanza += indent + 'A1 = ifgesubconst(A1,%d);\n' % m1 stanza += '\n' if todo == 'R0' and div3: stanza += indent + 'A0 = mulloconst(A0,3);\n' stanza += indent + 'A1 = mulloconst(A1,3);\n' if todo == 'R0' and offset != 0: stanza += indent + 'A0 = subconst(A0,%d);\n' % offset stanza += indent + 'A1 = subconst(A1,%d);\n' % offset stanza += indent + '/* A0: r0r2r4r6r8r10r12r14 r16r18r20r22r24r26r28r30 */\n' stanza += indent + '/* A1: r1r3r5r7r9r11r13r15 r17r19r21r23r25r27r29r31 */\n' stanza += indent + 'B0 = _mm256_unpacklo_epi16(A0,A1);\n' stanza += indent + 'B1 = _mm256_unpackhi_epi16(A0,A1);\n' stanza += indent + '/* B0: r0r1r2r3r4r5r6r7 r16r17r18r19r20r21r22r23 */\n' stanza += indent + '/* B1: r8r9r10r11r12r13r14r15 r24r25r26r27r28r29r30r31 */\n' stanza += indent + 'C0 = _mm256_permute2x128_si256(B0,B1,0x20);\n' stanza += indent + 'C1 = _mm256_permute2x128_si256(B0,B1,0x31);\n' stanza += indent + '/* C0: r0r1r2r3r4r5r6r7 r8r9r10r11r12r13r14r15 */\n' stanza += indent + '/* C1: r16r17r18r19r20r21r22r23 r24r25r26r27r28r29r30r31 */\n' stanza += indent + '_mm256_storeu_si256((__m256i *) (&%s[%s]),C0);\n' % (todo,outpos0) stanza += indent + '_mm256_storeu_si256((__m256i *) (16+&%s[%s]),C1);\n' % (todo,outpos0) return stanza def stanzaloop(looplen,reading,todo,m0,bytes): stanza = '' stanza += ' s -= %d;\n' % (bytes*looplen) if looplen < 1: return stanza if looplen % 16 == 0: stanza += ' for (i = %d;i >= 0;i -= 16) {\n' % (looplen-16) stanza += inner16(' ',reading,'i',m0,m0,bytes,'2*i','2*i+1') stanza += ' }\n' return stanza if looplen >= 16: stanza += ' i = %d;\n' % (looplen-16) stanza += ' for (;;) {\n' stanza += inner16(' ',reading,'i',m0,m0,bytes,'2*i','2*i+1') stanza += ' if (!i) break;\n' stanza += ' i = -16-((~15)&-i);\n' stanza += ' }\n' return stanza stanza += ' for (i = %d;i >= 0;--i) {\n' % (looplen-1) stanza += inner(' ',reading,'i',m0,m0,bytes,'2*i','2*i+1') stanza += ' }\n' return stanza stanzas = [] layer = 1 reading = 'R%d' % layer while Mlen > 1: n0 = m0*m0 bytes0 = 0 while n0 >= top: bytes0 += 1 n0 = (n0+255)>>8 if Mlen&1: looplen = Mlen//2 r0 = '%s[%s]' % (reading,looplen) stanza = ' %s\n' % poke(todo,2*looplen,r0) stanza += stanzaloop(looplen,reading,todo,m0,bytes0) n1 = m1 stanzas += [stanza] else: n1 = m0*m1 bytes1 = 0 while n1 >= top: bytes1 += 1 n1 = (n1+255)>>8 if m1 == m0: looplen = (Mlen+1)//2 stanza = stanzaloop(looplen,reading,todo,m0,bytes0) else: looplen = (Mlen-1)//2 stanza = ' i = 0;\n' stanza += ' s -= %d;\n' % bytes1 stanza += inner(' ',reading,looplen,m0,m1,bytes1,2*looplen,2*looplen+1) stanza += stanzaloop(looplen,reading,todo,m0,bytes0) stanzas += [stanza] if m0 == m1: stanzas += [' /* %s ------> %s: reconstruct mod %d*[%d] */\n' % (reading,todo,Mlen,m0)] else: stanzas += [' /* %s ------> %s: reconstruct mod %d*[%d]+[%d] */\n' % (reading,todo,Mlen-1,m0,m1)] m0,m1,Mlen = n0,n1,(Mlen+1)//2 layer += 1 todo = reading reading = 'R%d' % layer stanza = '' stanza += ' s += crypto_decode_STRBYTES;\n' stanza += ' a1 = 0;\n' q = m1 y,t,u,uinv,z = mulmoddata(256,m1) a1lower = 0 a1upper = 0 while m1 > 1: if m1 != q: stanza += ' a1 = mulhi(a1,%d)-mulhi(mullo(a1,%d),%d);\n' % (y,z,q) if y > 0: a1lower,a1upper = a1lower*y,a1upper*y a1lower,a1upper = a1lower-(q<<15),a1upper+(q<<15)-1 else: a1lower,a1upper = a1upper*y,a1lower*y a1lower,a1upper = a1upper-(q<<15),a1lower+(q<<15)-1 a1lower >>= 16 a1upper >>= 16 a1upper += 255 stanza += ' a1 += *--s; /* %d...%d */\n' % (a1lower,a1upper) m1 = (m1+255)>>8 while a1upper >= q: a1lower,a1upper = a1lower-q,a1upper-q stanza += ' a1 -= %d; /* %d...%d */\n' % (q,a1lower,a1upper) while a1lower < 0: a1lower,a1upper = min(0,a1lower+q),max(a1upper,q-1) stanza += ' a1 += %d&crypto_int16_negative_mask(a1); /* %d...%d */\n' % (q,a1lower,a1upper) stanza += ' %s\n' % poke(todo,0,'a1') stanzas += [stanza] for stanza in reversed(stanzas): print(' ') sys.stdout.write(stanza) print('}') libntruprime-20241021/src/decode/PxQ/int16/0000755000000000000000000000000014705505552016654 5ustar rootrootlibntruprime-20241021/src/decode/PxQ/int16/Makefile0000777000000000000000000000000014705505552022762 2../avx/Makefileustar rootrootlibntruprime-20241021/src/decode/PxQ/int16/decodegen.py0000755000000000000000000001513614705505552021154 0ustar rootroot#!/usr/bin/env python3 import sys from math import floor Mlen = 761 if len(sys.argv) > 1: Mlen = int(sys.argv[1]) m0 = 4591 if len(sys.argv) > 2: m0 = int(sys.argv[2]) m1 = m0 if len(sys.argv) > 3: m1 = int(sys.argv[3]) # M is Mlen-1 copies of m0, plus 1 copy of m1 offset = m0//2 if len(sys.argv) > 4: offset = int(sys.argv[4]) div3 = False if len(sys.argv) > 5: div3 = sys.argv[5]=='True' top = 16384 print('/* auto-generated; do not edit */') print('') print('#include "crypto_decode.h"') print('#include "crypto_int16.h"') print('#include "crypto_int32.h"') print('#define int16 crypto_int16') print('#define int32 crypto_int32') print(""" static int16 mullo(int16 x,int16 y) { return x*y; } static int16 mulhi(int16 x,int16 y) { return (x*(int32)y)>>16; } """) print('void crypto_decode(void *v,const unsigned char *s)') print('{') print(' int16 *R = v;') print(' long long i;') print(' int16 a0,a1,ri,lo,s0,s1;') def poke(layer,pos,contents): if layer == 1 and div3: return 'R[%s] = 3*%s%+d;' % (pos,contents,-offset) if layer == 1 and offset != 0: return 'R[%s] = %s%+d;' % (pos,contents,-offset) return 'R[%s] = %s;' % (pos,contents) def mulmoddata(c,q): y = (c<<16)%q if y*2 >= q: y -= q t = 0 u = q while not u&1: t += 1 u >>= 1 uinv = pow(u,16383,65536) if uinv>=32768: uinv -= 65536 assert (u*uinv)%65536 == 1 z = (y-(c<<16))>>t z = (z*uinv)%65536 if z >= 32768: z -= 65536 assert (z*u-((y-(c<<16))>>t))%(2**16) == 0 return y,t,u,uinv,z def inner(indent,inpos,m0,m1,bytes,outpos0,outpos1): stanza = '' y,t,u,uinv,z = mulmoddata(256,m0) stanza += indent + 'ri = R[%s];\n' % (inpos) a0lower,a0upper = 0,1<<14 for loop in reversed(range(bytes)): stanza += indent + 's%d = *--s;\n' % loop for loop in reversed(range(bytes)): if y > 0: a0lower,a0upper = a0lower*y,a0upper*y else: a0lower,a0upper = a0upper*y,a0lower*y a0lower,a0upper = a0lower-(m0<<15),a0upper+(m0<<15) a0lower,a0upper = a0lower>>16,a0upper>>16 if loop == bytes-1: stanza += indent + 'lo = mullo(ri,%d);\n' % z stanza += indent + 'a0 = mulhi(ri,%d)-mulhi(lo,%d); /* %d...%d */\n' % (y,m0,a0lower,a0upper) else: stanza += indent + 'lo = mullo(a0,%d);\n' % z stanza += indent + 'a0 = mulhi(a0,%d)-mulhi(lo,%d); /* %d...%d */\n' % (y,m0,a0lower,a0upper) a0upper += 255 stanza += indent + 'a0 += s%d; /* %d...%d */\n' % (loop,a0lower,a0upper) if bytes == 0: stanza += indent + 'a0 = ri;\n' if a0upper >= 2*m0: y1,t1,u1,uinv1,z1 = mulmoddata(1,m0) if y1 > 0: a0lower,a0upper = a0lower*y1,a0upper*y1 else: a0lower,a0upper = a0upper*y1,a0lower*y1 a0lower,a0upper = a0lower-(m0<<15),a0upper+(m0<<15) a0lower,a0upper = a0lower>>16,a0upper>>16 if bytes == 0: stanza += indent + 'lo = mullo(a0,%d);\n' % z1 else: stanza += indent + 'lo = mullo(a0,%d);\n' % z1 stanza += indent + 'a0 = mulhi(a0,%d)-mulhi(lo,%d); /* %d...%d */\n' % (y1,m0,a0lower,a0upper) while a0upper >= m0: a0lower,a0upper = a0lower-m0,a0upper-m0 stanza += indent + 'a0 -= %d; /* %d..>%d */\n' % (m0,a0lower,a0upper) while a0lower < 0: a0lower,a0upper = min(0,a0lower+m0),max(m0-1,a0upper) stanza += indent + 'a0 += crypto_int16_negative_mask(a0)&%d; /* %d...%d */\n' % (m0,a0lower,a0upper) if bytes == 0: stanza += indent + 'a1 = (ri-a0)>>%d;\n' % t elif bytes == 1: if t == 0: stanza += indent + 'a1 = (ri<<8)+s0-a0;\n' elif t == 8: stanza += indent + 'a1 = ri+((s0-a0)>>8);\n' elif t < 8: stanza += indent + 'a1 = (ri<<%d)+((s0-a0)>>%d);\n' % (8-t,t) else: stanza += indent + 'a1 = (ri+((s0-a0)>>8))>>%d;\n' % t-8 else: assert bytes == 2 if t == 0: stanza += indent + 'a1 = (s1<<8)+s0-a0;\n' elif t == 8: stanza += indent + 'a1 = (ri<<8)+s1+((s0-a0)>>8);\n' elif t < 8: stanza += indent + 'a1 = (ri<<%d)+(s1<<%d)+((s0-a0)>>%d);\n' % (16-t,8-t,t) else: stanza += indent + 'a1 = ((((int32)ri)<<16)+(s1<<8)+s0-a0)>>%d;\n' % t stanza += indent + 'a1 = mullo(a1,%d);\n' % uinv stanza += '\n' stanza += indent + '/* invalid inputs might need reduction mod %d */\n' % m1 stanza += indent + 'a1 -= %d;\n' % m1 stanza += indent + 'a1 += crypto_int16_negative_mask(a1)&%d;\n' % m1 stanza += '\n' stanza += indent + '%s\n' % poke(layer,outpos0,'a0') stanza += indent + '%s\n' % poke(layer,outpos1,'a1') return stanza def stanzaloop(looplen,layer,m0,bytes): stanza = '' if looplen >= 1: stanza += ' for (i = %d;i >= 0;--i) {\n' % (looplen-1) stanza += inner(' ','i',m0,m0,bytes,'2*i','2*i+1') stanza += ' }\n' return stanza stanzas = [] layer = 1 while Mlen > 1: n0 = m0*m0 bytes0 = 0 while n0 >= top: bytes0 += 1 n0 = (n0+255)>>8 if Mlen&1: looplen = Mlen//2 r0 = 'R[%s]' % (looplen) stanza = ' %s\n' % poke(layer,2*looplen,r0) stanza += stanzaloop(looplen,layer,m0,bytes0) n1 = m1 stanzas += [stanza] else: n1 = m0*m1 bytes1 = 0 while n1 >= top: bytes1 += 1 n1 = (n1+255)>>8 if m1 == m0: looplen = (Mlen+1)//2 stanza = stanzaloop(looplen,layer,m0,bytes0) else: looplen = (Mlen-1)//2 stanza = inner(' ',looplen,m0,m1,bytes1,2*looplen,2*looplen+1) stanza += stanzaloop(looplen,layer,m0,bytes0) stanzas += [stanza] if m0 == m1: stanzas += [' /* reconstruct mod %d*[%d] */\n' % (Mlen,m0)] else: stanzas += [' /* reconstruct mod %d*[%d]+[%d] */\n' % (Mlen-1,m0,m1)] m0,m1,Mlen = n0,n1,(Mlen+1)//2 layer += 1 stanza = '' stanza += ' s += crypto_decode_STRBYTES;\n' stanza += ' a1 = 0;\n' q = m1 y,t,u,uinv,z = mulmoddata(256,m1) a1lower = 0 a1upper = 0 while m1 > 1: if m1 != q: stanza += ' lo = mullo(a1,%d);\n' % z stanza += ' a1 = mulhi(a1,%d)-mulhi(lo,%d);\n' % (y,q) if y > 0: a1lower,a1upper = a1lower*y,a1upper*y a1lower,a1upper = a1lower-(q<<15),a1upper+(q<<15)-1 else: a1lower,a1upper = a1upper*y,a1lower*y a1lower,a1upper = a1upper-(q<<15),a1lower+(q<<15)-1 a1lower >>= 16 a1upper >>= 16 a1upper += 255 stanza += ' a1 += *--s; /* %d...%d */\n' % (a1lower,a1upper) m1 = (m1+255)>>8 while a1upper >= q: a1lower,a1upper = a1lower-q,a1upper-q stanza += ' a1 -= %d; /* %d...%d */\n' % (q,a1lower,a1upper) while a1lower < 0: a1lower,a1upper = min(0,a1lower+q),max(a1upper,q-1) stanza += ' a1 += crypto_int16_negative_mask(a1)&%d; /* %d...%d */\n' % (q,a1lower,a1upper) stanza += ' %s\n' % poke(layer,0,'a1') stanzas += [stanza] for stanza in reversed(stanzas): print(' ') sys.stdout.write(stanza) print('}') libntruprime-20241021/src/decode/PxR/0000755000000000000000000000000014705505552015714 5ustar rootrootlibntruprime-20241021/src/decode/PxR/avx/0000755000000000000000000000000014705505552016512 5ustar rootrootlibntruprime-20241021/src/decode/PxR/avx/Makefile0000644000000000000000000000015114705505552020147 0ustar rootrootdecode.c: decodegen.py ./decodegen.py {P} {R} {R} {Q12} True > decode.c touch -r decodegen.py decode.c libntruprime-20241021/src/decode/PxR/avx/architectures0000777000000000000000000000000014705505552025765 2../../Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/decode/PxR/avx/decodegen.py0000777000000000000000000000000014705505552025221 2../../PxQ/avx/decodegen.pyustar rootrootlibntruprime-20241021/src/decode/PxR/int16/0000755000000000000000000000000014705505552016655 5ustar rootrootlibntruprime-20241021/src/decode/PxR/int16/Makefile0000777000000000000000000000000014705505552022763 2../avx/Makefileustar rootrootlibntruprime-20241021/src/decode/PxR/int16/decodegen.py0000777000000000000000000000000014705505552025527 2../../PxQ/int16/decodegen.pyustar rootrootlibntruprime-20241021/src/decode/Pxint16/0000755000000000000000000000000014705505552016454 5ustar rootrootlibntruprime-20241021/src/decode/Pxint16/ref/0000755000000000000000000000000014705505552017230 5ustar rootrootlibntruprime-20241021/src/decode/Pxint16/ref/decode.c0000644000000000000000000000044214705505552020617 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint16 *x = v; int i; for (i = 0;i < {P};++i) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *x = u0 | u1; x += 1; s += 2; } } libntruprime-20241021/src/decode/Pxint32/0000755000000000000000000000000014705505552016452 5ustar rootrootlibntruprime-20241021/src/decode/Pxint32/ref/0000755000000000000000000000000014705505552017226 5ustar rootrootlibntruprime-20241021/src/decode/Pxint32/ref/decode.c0000644000000000000000000000060414705505552020615 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint32.h" void crypto_decode(void *v,const unsigned char *s) { crypto_uint32 *x = v; int i; for (i = 0;i < {P};++i) { crypto_uint32 u0 = s[0]; crypto_uint32 u1 = s[1]; crypto_uint32 u2 = s[2]; crypto_uint32 u3 = s[3]; u1 <<= 8; u2 <<= 16; u3 <<= 24; *x = u0 | u1 | u2 | u3; x += 1; s += 4; } } libntruprime-20241021/src/decode/int16/0000755000000000000000000000000014705505552016144 5ustar rootrootlibntruprime-20241021/src/decode/int16/ref/0000755000000000000000000000000014705505552016720 5ustar rootrootlibntruprime-20241021/src/decode/int16/ref/decode.c0000644000000000000000000000032214705505552020304 0ustar rootroot#include "crypto_decode.h" #include "crypto_uint16.h" void crypto_decode(void *x,const unsigned char *s) { crypto_uint16 u0 = s[0]; crypto_uint16 u1 = s[1]; u1 <<= 8; *(crypto_uint16 *) x = u0 | u1; } libntruprime-20241021/src/encode/0000755000000000000000000000000014705505552015215 5ustar rootrootlibntruprime-20241021/src/encode/Px3/0000755000000000000000000000000014705505552015667 5ustar rootrootlibntruprime-20241021/src/encode/Px3/avx/0000755000000000000000000000000014705505552016465 5ustar rootrootlibntruprime-20241021/src/encode/Px3/avx/architectures0000777000000000000000000000000014705505552027376 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/encode/Px3/avx/encode.c0000644000000000000000000000403314705505552020066 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p {P} #define loops {AVXLOOPS} #define overshoot {AVXOVERSHOOT} static const __attribute((aligned(32))) uint8 lobytes_buf[32] = { 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, 255,0,255,0,255,0,255,0, }; #define lobytes (*(__m256i *) lobytes_buf) void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; int loop; const uint8 *nextf = f+128-4*overshoot; unsigned char *nexts = s+32-overshoot; for (loop = loops;loop > 0;--loop) { __m256i f0 = _mm256_loadu_si256((const __m256i *) (f+0)); __m256i f1 = _mm256_loadu_si256((const __m256i *) (f+32)); __m256i f2 = _mm256_loadu_si256((const __m256i *) (f+64)); __m256i f3 = _mm256_loadu_si256((const __m256i *) (f+96)); f = nextf; nextf += 128; __m256i a0 = _mm256_packus_epi16(f0&lobytes,f1&lobytes); /* 0 2 4 6 8 10 12 14 32 34 36 38 40 42 44 46 */ /* 16 18 20 22 24 26 28 30 48 50 52 54 56 58 60 62 */ __m256i a1 = _mm256_packus_epi16(_mm256_srli_epi16(f0,8),_mm256_srli_epi16(f1,8)); /* 1 3 ... */ __m256i a2 = _mm256_packus_epi16(f2&lobytes,f3&lobytes); __m256i a3 = _mm256_packus_epi16(_mm256_srli_epi16(f2,8),_mm256_srli_epi16(f3,8)); a0 = _mm256_add_epi8(a0,_mm256_slli_epi16(a1&_mm256_set1_epi8(63),2)); a2 = _mm256_add_epi8(a2,_mm256_slli_epi16(a3&_mm256_set1_epi8(63),2)); __m256i b0 = _mm256_packus_epi16(a0&lobytes,a2&lobytes); /* 0 4 8 12 32 36 40 44 64 68 72 76 96 100 104 108 */ /* 16 20 24 28 48 52 56 60 80 84 88 92 112 116 120 124 */ __m256i b2 = _mm256_packus_epi16(_mm256_srli_epi16(a0,8),_mm256_srli_epi16(a2,8)); /* 2 6 ... */ b0 = _mm256_add_epi8(b0,_mm256_slli_epi16(b2&_mm256_set1_epi8(15),4)); b0 = _mm256_permutevar8x32_epi32(b0,_mm256_set_epi32(7,3,6,2,5,1,4,0)); b0 = _mm256_add_epi8(b0,_mm256_set1_epi8(85)); _mm256_storeu_si256((__m256i *) s,b0); s = nexts; nexts += 32; } *s++ = *f++ + 1; } libntruprime-20241021/src/encode/Px3/ref/0000755000000000000000000000000014705505552016443 5ustar rootrootlibntruprime-20241021/src/encode/Px3/ref/encode.c0000644000000000000000000000054614705505552020051 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint8.h" #define uint8 crypto_uint8 #define p {P} void crypto_encode(unsigned char *s,const void *v) { const uint8 *f = v; uint8 x; int i; for (i = 0;i < p/4;++i) { x = *f++ + 1; x += (*f++ + 1)<<2; x += (*f++ + 1)<<4; x += (*f++ + 1)<<6; *s++ = x; } x = *f++ + 1; *s++ = x; } libntruprime-20241021/src/encode/PxQ/0000755000000000000000000000000014705505552015725 5ustar rootrootlibntruprime-20241021/src/encode/PxQ/avx/0000755000000000000000000000000014705505552016523 5ustar rootrootlibntruprime-20241021/src/encode/PxQ/avx/Makefile0000644000000000000000000000013214705505552020157 0ustar rootrootencode.c: encodegen.py ./encodegen.py {P} {Q} > encode.c touch -r encodegen.py encode.c libntruprime-20241021/src/encode/PxQ/avx/architectures0000777000000000000000000000000014705505552027434 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/encode/PxQ/avx/encodegen.py0000755000000000000000000001742414705505552021037 0ustar rootroot#!/usr/bin/env python3 import sys Mlen = 761 if len(sys.argv) > 1: Mlen = int(sys.argv[1]) m0 = 4591 if len(sys.argv) > 2: m0 = int(sys.argv[2]) m1 = m0 if len(sys.argv) > 3: m1 = int(sys.argv[3]) # M is Mlen-1 copies of m0, plus 1 copy of m1 offset = m0//2 if len(sys.argv) > 4: offset = int(sys.argv[4]) div3 = False if len(sys.argv) > 5: div3 = sys.argv[5]=='True' round = False if len(sys.argv) > 6: round = sys.argv[6]=='True' reading = 'R0' top = 16384 print('/* auto-generated; do not edit */') print('') print('#include ') print('#include "crypto_encode.h"') print('#include "crypto_int16.h"') print('#include "crypto_uint16.h"') print('#include "crypto_uint32.h"') print('#define int16 crypto_int16') print('#define uint16 crypto_uint16') print('#define uint32 crypto_uint32') print('') print('void crypto_encode(unsigned char *out,const void *v)') print('{') print(' const int16 *%s = v;' % reading) if Mlen > 1: print(' /* XXX: caller could overlap R with input */') Rlen = (Mlen+1)//2 print(' uint16 R[%d];' % Rlen) if Mlen > 2**29: print(' long long i;') else: print(' long i;') print(' const uint16 *reading;') print(' uint16 *writing;') print(' uint16 r0,r1;') print(' uint32 r2;') def access(reading,pos): result = '%s[%s]' % (reading,pos) if reading == 'R0': if round: result = '3*((10923*%s+16384)>>15)'%result result = '((%s+%d)&16383)'%(result,offset) if div3: result = '(%s*10923)>>15'%result return result def printloop(looplen,reading,todo,m0,bytes): if looplen <= 0: return if looplen == 1: print(' r0 = %s;' % access(reading,0)) print(' r1 = %s;' % access(reading,1)) print(' r2 = r0+r1*(uint32)%d;' % m0) for j in range(bytes): print(' *out++ = r2; r2 >>= 8;') print(' %s[0] = r2;' % todo) return if looplen >= 12 and bytes == 1: print(' reading = (uint16 *) %s;' % reading) print(' writing = %s;' % todo) print(' i = %d;' % ((looplen+7)//8)) print(' while (i > 0) {') print(' __m256i x,y;') print(' --i;') if looplen%8: print(' if (!i) {') print(' reading -= %d;' % (2*(8-(looplen%8)))) print(' writing -= %d;' % (8-(looplen%8))) print(' out -= %d;' % (8-(looplen%8))) print(' }') print(' x = _mm256_loadu_si256((__m256i *) reading);') if reading == 'R0' and round: print(' x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923));') if 0: print(' x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3));') else: print(' x = _mm256_add_epi16(x,_mm256_add_epi16(x,x));') if reading == 'R0' and offset != 0: print(' x = _mm256_add_epi16(x,_mm256_set1_epi16(%d));' % offset) if reading == 'R0': print(' x &= _mm256_set1_epi16(16383);') if reading == 'R0' and div3: print(' x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846));') print(' y = x & _mm256_set1_epi32(65535);') print(' x = _mm256_srli_epi32(x,16);') print(' x = _mm256_mullo_epi32(x,_mm256_set1_epi32(%d));' % m0) print(' x = _mm256_add_epi32(y,x);') print(' x = _mm256_shuffle_epi8(x,_mm256_set_epi8(') print(' 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1,') print(' 12,8,4,0,12,8,4,0,14,13,10,9,6,5,2,1') print(' ));') print(' x = _mm256_permute4x64_epi64(x,0xd8);') print(' _mm_storeu_si128((__m128i *) writing,_mm256_extractf128_si256(x,0));') print(' *((uint32 *) (out+0)) = _mm256_extract_epi32(x,4);') print(' *((uint32 *) (out+4)) = _mm256_extract_epi32(x,6);') print(' reading += 16;') print(' writing += 8;') print(' out += 8;') print(' }') return if looplen >= 24 and bytes == 2: print(' reading = (uint16 *) %s;' % reading) print(' writing = %s;' % todo) print(' i = %d;' % ((looplen+15)//16)) print(' while (i > 0) {') print(' __m256i x,x2,y,y2;') print(' --i;') if looplen%16: print(' if (!i) {') print(' reading -= %d;' % (2*(16-(looplen%16)))) print(' writing -= %d;' % (16-(looplen%16))) print(' out -= %d;' % (2*(16-(looplen%16)))) print(' }') print(' x = _mm256_loadu_si256((__m256i *) (reading+0));') print(' x2 = _mm256_loadu_si256((__m256i *) (reading+16));') if reading == 'R0' and round: print(' x = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923));') print(' x2 = _mm256_mulhrs_epi16(x2,_mm256_set1_epi16(10923));') if 0: print(' x = _mm256_mullo_epi16(x,_mm256_set1_epi16(3));') print(' x2 = _mm256_mullo_epi16(x2,_mm256_set1_epi16(3));') else: print(' x = _mm256_add_epi16(x,_mm256_add_epi16(x,x));') print(' x2 = _mm256_add_epi16(x2,_mm256_add_epi16(x2,x2));') if reading == 'R0' and offset != 0: print(' x = _mm256_add_epi16(x,_mm256_set1_epi16(%d));' % offset) print(' x2 = _mm256_add_epi16(x2,_mm256_set1_epi16(%d));' % offset) if reading == 'R0': print(' x &= _mm256_set1_epi16(16383);') print(' x2 &= _mm256_set1_epi16(16383);') if reading == 'R0' and div3: print(' x = _mm256_mulhi_epi16(x,_mm256_set1_epi16(21846));') print(' x2 = _mm256_mulhi_epi16(x2,_mm256_set1_epi16(21846));') print(' y = x & _mm256_set1_epi32(65535);') print(' y2 = x2 & _mm256_set1_epi32(65535);') print(' x = _mm256_srli_epi32(x,16);') print(' x2 = _mm256_srli_epi32(x2,16);') print(' x = _mm256_mullo_epi32(x,_mm256_set1_epi32(%d));' % m0) print(' x2 = _mm256_mullo_epi32(x2,_mm256_set1_epi32(%d));' % m0) print(' x = _mm256_add_epi32(y,x);') print(' x2 = _mm256_add_epi32(y2,x2);') print(' x = _mm256_shuffle_epi8(x,_mm256_set_epi8(') print(' 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0,') print(' 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0') print(' ));') print(' x2 = _mm256_shuffle_epi8(x2,_mm256_set_epi8(') print(' 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0,') print(' 15,14,11,10,7,6,3,2,13,12,9,8,5,4,1,0') print(' ));') print(' x = _mm256_permute4x64_epi64(x,0xd8);') print(' x2 = _mm256_permute4x64_epi64(x2,0xd8);') print(' _mm256_storeu_si256((__m256i *) writing,_mm256_permute2f128_si256(x,x2,0x31));') print(' _mm256_storeu_si256((__m256i *) out,_mm256_permute2f128_si256(x,x2,0x20));') print(' reading += 32;') print(' writing += 16;') print(' out += 32;') print(' }') return print(' for (i = 0;i < %d;++i) {' % looplen) print(' r0 = %s;' % access(reading,'2*i')) print(' r1 = %s;' % access(reading,'2*i+1')) print(' r2 = r0+r1*(uint32)%d;' % m0) for j in range(bytes): print(' *out++ = r2; r2 >>= 8;') print(' %s[i] = r2;' % todo) print(' }') todo = 'R' while Mlen > 1: print(' ') n0 = m0*m0 bytes0 = 0 while n0 >= top: bytes0 += 1 n0 = (n0+255)>>8 if Mlen&1: looplen = Mlen//2 printloop(looplen,reading,todo,m0,bytes0) r0 = access(reading,2*looplen) print(' %s[%d] = %s;' % (todo,looplen,r0)) n1 = m1 else: n1 = m0*m1 bytes1 = 0 while n1 >= top: bytes1 += 1 n1 = (n1+255)>>8 if bytes1 == bytes0: looplen = (Mlen+1)//2 printloop(looplen,reading,todo,m0,bytes0) else: looplen = (Mlen-1)//2 printloop(looplen,reading,todo,m0,bytes0) print(' r0 = %s;' % access(reading,2*looplen)) print(' r1 = %s;' % access(reading,2*looplen+1)) print(' r2 = r0+r1*(uint32)%d;' % m0) for j in range(bytes1): print(' *out++ = r2; r2 >>= 8;') print(' %s[%d] = r2;' % (todo,looplen)) m0,m1,Mlen = n0,n1,(Mlen+1)//2 reading = todo print(' ') print(' r0 = %s;' % access(reading,0)) while m1 > 1: print(' *out++ = r0; r0 >>= 8;') m1 = (m1+255)>>8 print('}') libntruprime-20241021/src/encode/PxQ/portable/0000755000000000000000000000000014705505552017535 5ustar rootrootlibntruprime-20241021/src/encode/PxQ/portable/Makefile0000777000000000000000000000000014705505552023643 2../avx/Makefileustar rootrootlibntruprime-20241021/src/encode/PxQ/portable/encodegen.py0000755000000000000000000000566214705505552022052 0ustar rootroot#!/usr/bin/env python3 import sys Mlen = 761 if len(sys.argv) > 1: Mlen = int(sys.argv[1]) m0 = 4591 if len(sys.argv) > 2: m0 = int(sys.argv[2]) m1 = m0 if len(sys.argv) > 3: m1 = int(sys.argv[3]) # M is Mlen-1 copies of m0, plus 1 copy of m1 offset = m0//2 if len(sys.argv) > 4: offset = int(sys.argv[4]) div3 = False if len(sys.argv) > 5: div3 = sys.argv[5]=='True' reading = 'R0' top = 16384 print('/* auto-generated; do not edit */') print('') print('#include "crypto_encode.h"') print('#include "crypto_int16.h"') print('#include "crypto_uint16.h"') print('#include "crypto_uint32.h"') print('#define int16 crypto_int16') print('#define uint16 crypto_uint16') print('#define uint32 crypto_uint32') print('') print('void crypto_encode(unsigned char *out,const void *v)') print('{') print(' const int16 *%s = v;' % reading) if Mlen > 1: print(' /* XXX: caller could overlap R with input */') print(' uint16 R[%d];' % ((Mlen+1)//2)) if Mlen > 2**29: print(' long long i;') else: print(' long i;') print(' uint16 r0,r1;') print(' uint32 r2;') def access(reading,pos): if reading == 'R0' and div3: return '(((%s[%s]%+d)&16383)*10923)>>15' % (reading,pos,offset) if reading == 'R0': return '(%s[%s]%+d)&16383' % (reading,pos,offset) return '%s[%s]' % (reading,pos) def printloop(looplen,reading,todo,m0,bytes): if looplen <= 0: return if looplen == 1: print(' r0 = %s;' % access(reading,0)) print(' r1 = %s;' % access(reading,1)) print(' r2 = r0+r1*(uint32)%d;' % m0) for j in range(bytes): print(' *out++ = r2; r2 >>= 8;') print(' %s[0] = r2;' % todo) return print(' for (i = 0;i < %d;++i) {' % looplen) print(' r0 = %s;' % access(reading,'2*i')) print(' r1 = %s;' % access(reading,'2*i+1')) print(' r2 = r0+r1*(uint32)%d;' % m0) for j in range(bytes): print(' *out++ = r2; r2 >>= 8;') print(' %s[i] = r2;' % todo) print(' }') todo = 'R' while Mlen > 1: print(' ') n0 = m0*m0 bytes0 = 0 while n0 >= top: bytes0 += 1 n0 = (n0+255)>>8 if Mlen&1: looplen = Mlen//2 printloop(looplen,reading,todo,m0,bytes0) r0 = access(reading,2*looplen) print(' %s[%d] = %s;' % (todo,looplen,r0)) n1 = m1 else: n1 = m0*m1 bytes1 = 0 while n1 >= top: bytes1 += 1 n1 = (n1+255)>>8 if bytes1 == bytes0: looplen = (Mlen+1)//2 printloop(looplen,reading,todo,m0,bytes0) else: looplen = (Mlen-1)//2 printloop(looplen,reading,todo,m0,bytes0) print(' r0 = %s;' % access(reading,2*looplen)) print(' r1 = %s;' % access(reading,2*looplen+1)) print(' r2 = r0+r1*(uint32)%d;' % m0) for j in range(bytes1): print(' *out++ = r2; r2 >>= 8;') print(' %s[%d] = r2;' % (todo,looplen)) m0,m1,Mlen = n0,n1,(Mlen+1)//2 reading = todo print(' ') print(' r0 = %s;' % access(reading,0)) while m1 > 1: print(' *out++ = r0; r0 >>= 8;') m1 = (m1+255)>>8 print('}') libntruprime-20241021/src/encode/PxR/0000755000000000000000000000000014705505552015726 5ustar rootrootlibntruprime-20241021/src/encode/PxR/avx/0000755000000000000000000000000014705505552016524 5ustar rootrootlibntruprime-20241021/src/encode/PxR/avx/Makefile0000644000000000000000000000015114705505552020161 0ustar rootrootencode.c: encodegen.py ./encodegen.py {P} {R} {R} {Q12} True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/src/encode/PxR/avx/architectures0000777000000000000000000000000014705505552027435 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/encode/PxR/avx/encodegen.py0000777000000000000000000000000014705505552025257 2../../PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/src/encode/PxR/portable/0000755000000000000000000000000014705505552017536 5ustar rootrootlibntruprime-20241021/src/encode/PxR/portable/Makefile0000777000000000000000000000000014705505552023644 2../avx/Makefileustar rootrootlibntruprime-20241021/src/encode/PxR/portable/encodegen.py0000777000000000000000000000000014705505552027303 2../../PxQ/portable/encodegen.pyustar rootrootlibntruprime-20241021/src/encode/PxRround/0000755000000000000000000000000014705505552016776 5ustar rootrootlibntruprime-20241021/src/encode/PxRround/avx/0000755000000000000000000000000014705505552017574 5ustar rootrootlibntruprime-20241021/src/encode/PxRround/avx/Makefile0000644000000000000000000000015614705505552021236 0ustar rootrootencode.c: encodegen.py ./encodegen.py {P} {R} {R} {Q12} True True > encode.c touch -r encodegen.py encode.c libntruprime-20241021/src/encode/PxRround/avx/architectures0000777000000000000000000000000014705505552030505 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/encode/PxRround/avx/encodegen.py0000777000000000000000000000000014705505552026327 2../../PxQ/avx/encodegen.pyustar rootrootlibntruprime-20241021/src/encode/PxRround/ref/0000755000000000000000000000000014705505552017552 5ustar rootrootlibntruprime-20241021/src/encode/PxRround/ref/encode.c0000644000000000000000000000053614705505552021157 0ustar rootroot#include "crypto_encode_{P}x{R}.h" #include "crypto_encode.h" #include "crypto_int16.h" #include "crypto_int8.h" #define int16 crypto_int16 #define p {P} void crypto_encode(unsigned char *out,const void *v) { const int16 *a = v; int16 x[p]; int i; for (i = 0;i < p;++i) x[i] = 3*((10923*a[i]+16384)>>15); crypto_encode_{P}x{R}(out,x); } libntruprime-20241021/src/encode/Pxfreeze3/0000755000000000000000000000000014705505552017070 5ustar rootrootlibntruprime-20241021/src/encode/Pxfreeze3/avx/0000755000000000000000000000000014705505552017666 5ustar rootrootlibntruprime-20241021/src/encode/Pxfreeze3/avx/architectures0000777000000000000000000000000014705505552030577 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/encode/Pxfreeze3/avx/encode.c0000644000000000000000000000134014705505552021265 0ustar rootroot#include #include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p {P} void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i = p-16; for (;;) { do { __m256i x = _mm256_loadu_si256((__m256i *) r); __m256i y = _mm256_mulhrs_epi16(x,_mm256_set1_epi16(10923)); x = _mm256_sub_epi16(x,y); y = _mm256_add_epi16(y,y); x = _mm256_sub_epi16(x,y); __m128i x0 = _mm256_extractf128_si256(x,0); __m128i x1 = _mm256_extractf128_si256(x,1); _mm_storeu_si128((__m128i *) s,_mm_packs_epi16(x0,x1)); i -= 16; r += 16; s += 16; } while (i >= 0); if (i <= -16) break; r += i; s += i; } } libntruprime-20241021/src/encode/Pxfreeze3/ref/0000755000000000000000000000000014705505552017644 5ustar rootrootlibntruprime-20241021/src/encode/Pxfreeze3/ref/encode.c0000644000000000000000000000100414705505552021240 0ustar rootroot#include "crypto_encode.h" #include "crypto_int16.h" #define int16 crypto_int16 #define p {P} /* valid inputs: -16384 <= x < 16384 */ /* then 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-1,0,1} */ /* all inputs: 3 divides x-F3_freeze(x) */ /* and F3_freeze(x) is in {-2,-1,0,1,2} */ static inline char F3_freeze(int16 x) { return x-3*((10923*x+16384)>>15); } void crypto_encode(unsigned char *s,const void *v) { const int16 *r = v; int i; for (i = 0;i < p;++i) s[i] = F3_freeze(r[i]); } libntruprime-20241021/src/encode/Pxint16/0000755000000000000000000000000014705505552016466 5ustar rootrootlibntruprime-20241021/src/encode/Pxint16/ref/0000755000000000000000000000000014705505552017242 5ustar rootrootlibntruprime-20241021/src/encode/Pxint16/ref/encode.c0000644000000000000000000000036314705505552020645 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *v) { const crypto_uint16 *x = v; int i; for (i = 0;i < {P};++i) { crypto_uint16 u = *x++; *s++ = u; *s++ = u >> 8; } } libntruprime-20241021/src/encode/int16/0000755000000000000000000000000014705505552016156 5ustar rootrootlibntruprime-20241021/src/encode/int16/ref/0000755000000000000000000000000014705505552016732 5ustar rootrootlibntruprime-20241021/src/encode/int16/ref/encode.c0000644000000000000000000000027314705505552020335 0ustar rootroot#include "crypto_encode.h" #include "crypto_uint16.h" void crypto_encode(unsigned char *s,const void *x) { crypto_uint16 u = *(const crypto_uint16 *) x; s[0] = u; s[1] = u >> 8; } libntruprime-20241021/src/kem/0000755000000000000000000000000014705505552014534 5ustar rootrootlibntruprime-20241021/src/kem/sntrupP/0000755000000000000000000000000014705505552016207 5ustar rootrootlibntruprime-20241021/src/kem/sntrupP/factored/0000755000000000000000000000000014705505552017776 5ustar rootrootlibntruprime-20241021/src/kem/sntrupP/factored/CHANGES0000644000000000000000000000320114705505552020765 0ustar rootrootReverse-chronological changelog for sntrup*/factored: Added crypto_declassify() for the rejection sampling in key generation to work with TIMECOP. Used CRYPTO_NAMESPACE. Used crypto_verify_clen. Rearranged variables for better stack usage. Factored out crypto_core_wforcesntrup761. (Same for other sizes.) Factored out crypto_core_scale3sntrup761. (Same for other sizes.) Switched to 16-bit arithmetic for Rq_mult3. Factored out crypto_encode_761xfreeze3. (Same for other sizes.) Introduced ppadsort. Factored out crypto_core_mult3sntrup761. (Same for other sizes.) Factored out crypto_core_multsntrup761. (Same for other sizes.) Factored out crypto_core_inv3sntrup761. (Same for other sizes.) Factored out crypto_core_invsntrup761. (Same for other sizes.) Returned reciprocal success/failure as extra byte in array. Special-cased reduction mod 3 for F3_freeze(). Special-cased reduction mod q for Fq_freeze(). Delayed reduction inside multiplication. Factored out crypto_encode_761x1531round. (Same for other sizes.) Factored out crypto_{encode,decode}_761x4591. (Same for other sizes.) Factored out crypto_{encode,decode}_761x1531. (Same for other sizes.) Factored out crypto_{encode,decode}_761x3. (Same for other sizes.) Allocated an extra byte at the beginning of r_enc. Inlined HashConfirm. Inlined HashSession (at two spots). Inlined prefix part of Hash_prefix(), leaving Hash(). Inlined KEM_KeyGen, ZKeyGen, KeyGen. Inlined Encap, ZEncrypt, Encrypt. Inlined Decap, ZDecrypt, Decrypt. Inlined Inputs_random, Inputs_bytes, Inputs_encode. Inlined Short_fromlist. Integrated paramsmenu.h into params.h. Removed NTRU LPRime code. Started from ref. libntruprime-20241021/src/kem/sntrupP/factored/implementors0000644000000000000000000000015014705505552022433 0ustar rootrootAlphabetical order: Daniel J. Bernstein Chitchanok Chuengsatiansup Tanja Lange Christine van Vredendaal libntruprime-20241021/src/kem/sntrupP/factored/kem.c0000644000000000000000000001444514705505552020726 0ustar rootroot#include "params.h" #include "randombytes.h" #include "crypto_hash_sha512.h" #include "crypto_sort_uint32.h" #include "crypto_declassify.h" #include "crypto_int8.h" #include "crypto_int16.h" #include "crypto_int32.h" #include "crypto_uint16.h" #include "crypto_uint32.h" #define int8 crypto_int8 #define int16 crypto_int16 #define int32 crypto_int32 #define uint16 crypto_uint16 #define uint32 crypto_uint32 /* ----- arithmetic mod 3 */ typedef int8 small; /* F3 is always represented as -1,0,1 */ /* ----- arithmetic mod q */ typedef int16 Fq; /* always represented as -(q-1)/2...(q-1)/2 */ /* ----- small polynomials */ /* R3_fromR(R_fromRq(r)) */ static void R3_fromRq(small *out,const Fq *r) { crypto_encode_pxfreeze3((unsigned char *) out,(unsigned char *) r); } /* h = f*g in the ring R3 */ static void R3_mult(small *h,const small *f,const small *g) { crypto_core_mult3((unsigned char *) h,(const unsigned char *) f,(const unsigned char *) g,0); } /* ----- polynomials mod q */ /* h = h*g in the ring Rq */ static void Rq_mult_small(Fq *h,const small *g) { crypto_encode_pxint16((unsigned char *) h,h); crypto_core_mult((unsigned char *) h,(const unsigned char *) h,(const unsigned char *) g,0); crypto_decode_pxint16(h,(const unsigned char *) h); } /* h = 3f in Rq */ static void Rq_mult3(Fq *h,const Fq *f) { crypto_encode_pxint16((unsigned char *) h,f); crypto_core_scale3((unsigned char *) h,(const unsigned char *) h,0,0); crypto_decode_pxint16(h,(const unsigned char *) h); } /* out = 1/(3*in) in Rq */ /* caller must have 2p+1 bytes free in out, not just 2p */ static void Rq_recip3(Fq *out,const small *in) { crypto_core_inv((unsigned char *) out,(const unsigned char *) in,0,0); /* could check byte 2*p for failure; but, in context, inv always works */ crypto_decode_pxint16(out,(unsigned char *) out); } /* ----- underlying hash function */ #define Hash_bytes 32 static void Hash(unsigned char *out,const unsigned char *in,int inlen) { unsigned char h[64]; int i; crypto_hash_sha512(h,in,inlen); for (i = 0;i < 32;++i) out[i] = h[i]; } /* ----- higher-level randomness */ static void Short_random(small *out) { uint32 L[ppadsort]; int i; randombytes((unsigned char *) L,4*p); crypto_decode_pxint32(L,(unsigned char *) L); for (i = 0;i < w;++i) L[i] = L[i]&(uint32)-2; for (i = w;i < p;++i) L[i] = (L[i]&(uint32)-3)|1; for (i = p;i < ppadsort;++i) L[i] = 0xffffffff; crypto_sort_uint32(L,ppadsort); for (i = 0;i < p;++i) out[i] = (L[i]&3)-1; } static void Small_random(small *out) { uint32 L[p]; int i; randombytes((unsigned char *) L,sizeof L); crypto_decode_pxint32(L,(unsigned char *) L); for (i = 0;i < p;++i) out[i] = (((L[i]&0x3fffffff)*3)>>30)-1; } /* ----- Streamlined NTRU Prime */ typedef small Inputs[p]; /* passed by reference */ #define Ciphertexts_bytes Rounded_bytes #define SecretKeys_bytes (2*Small_bytes) #define PublicKeys_bytes Rq_bytes #define Confirm_bytes 32 /* c,r_enc[1:] = Hide(r,pk,cache); cache is Hash4(pk) */ /* also set r_enc[0]=3 */ /* also set x[0]=2, and x[1:1+Hash_bytes] = Hash3(r_enc) */ /* also overwrite x[1+Hash_bytes:1+2*Hash_bytes] */ static void Hide(unsigned char *x,unsigned char *c,unsigned char *r_enc,const Inputs r,const unsigned char *pk,const unsigned char *cache) { Fq h[p]; int i; Small_encode(r_enc+1,r); Rq_decode(h,pk); Rq_mult_small(h,r); Round_and_encode(c,h); r_enc[0] = 3; Hash(x+1,r_enc,1+Small_bytes); for (i = 0;i < Hash_bytes;++i) x[1+Hash_bytes+i] = cache[i]; x[0] = 2; Hash(c+Ciphertexts_bytes,x,1+Hash_bytes*2); } #include "crypto_kem.h" void crypto_kem_keypair(unsigned char *pk,unsigned char *sk) { small g[p]; for (;;) { Small_random(g); { small v[p+1]; small vp; crypto_core_inv3((unsigned char *) v,(const unsigned char *) g,0,0); vp = v[p]; crypto_declassify(&vp,sizeof vp); if (vp == 0) { Small_encode(sk+Small_bytes,v); break; } } } { small f[p]; Short_random(f); Small_encode(sk,f); { Fq h[p+1]; Rq_recip3(h,f); /* always works */ Rq_mult_small(h,g); Rq_encode(pk,h); } } { int i; unsigned char sksave = sk[SecretKeys_bytes-1]; for (i = 0;i < PublicKeys_bytes;++i) sk[SecretKeys_bytes+i] = pk[i]; sk[SecretKeys_bytes-1] = 4; Hash(sk+SecretKeys_bytes+PublicKeys_bytes+Small_bytes,sk+SecretKeys_bytes-1,1+PublicKeys_bytes); sk[SecretKeys_bytes-1] = sksave; randombytes(sk+SecretKeys_bytes+PublicKeys_bytes,Small_bytes); } } void crypto_kem_enc(unsigned char *c,unsigned char *k,const unsigned char *pk) { unsigned char cache[Hash_bytes]; int i; { unsigned char y[1+PublicKeys_bytes]; /* XXX: can eliminate with incremental hashing */ for (i = 0;i < PublicKeys_bytes;++i) y[1+i] = pk[i]; y[0] = 4; Hash(cache,y,sizeof y); } { Inputs r; Short_random(r); { unsigned char r_enc[Small_bytes+1]; unsigned char x[1+Hash_bytes+Ciphertexts_bytes+Confirm_bytes]; Hide(x,c,r_enc,r,pk,cache); for (i = 0;i < Ciphertexts_bytes+Confirm_bytes;++i) x[1+Hash_bytes+i] = c[i]; x[0] = 1; Hash(k,x,sizeof x); } } } void crypto_kem_dec(unsigned char *k,const unsigned char *c,const unsigned char *sk) { const unsigned char *pk = sk+SecretKeys_bytes; const unsigned char *rho = pk+PublicKeys_bytes; const unsigned char *cache = rho+Small_bytes; int mask,i; Inputs r; { Fq d[p]; Rounded_decode(d,c); { small f[p]; Small_decode(f,sk); Rq_mult_small(d,f); Rq_mult3(d,d); } { small e[p]; small v[p]; R3_fromRq(e,d); Small_decode(v,sk+Small_bytes); R3_mult(r,e,v); } crypto_core_wforce((unsigned char *) r,(unsigned char *) r,0,0); } { unsigned char r_enc[1+Small_bytes]; unsigned char cnew[Ciphertexts_bytes+Confirm_bytes]; unsigned char x[1+Hash_bytes+Ciphertexts_bytes+Confirm_bytes]; /* XXX: can use incremental hashing to reduce x size */ Hide(x,cnew,r_enc,r,pk,cache); mask = crypto_verify_clen(c,cnew); for (i = 0;i < Small_bytes;++i) r_enc[i+1] ^= mask&(r_enc[i+1]^rho[i]); Hash(x+1,r_enc,1+Small_bytes); /* XXX: can instead do cmov on cached hash of rho */ for (i = 0;i < Ciphertexts_bytes+Confirm_bytes;++i) x[1+Hash_bytes+i] = c[i]; x[0] = 1+mask; Hash(k,x,sizeof x); } } libntruprime-20241021/src/kem/sntrupP/factored/params.h0000644000000000000000000000335714705505552021442 0ustar rootroot#ifndef params_H #define params_H #define p {P} #define q {Q} #define w {W} #define ppadsort {PPADSORT} #include "crypto_verify_{CIPHERTEXTBYTES}.h" #define crypto_verify_clen crypto_verify_{CIPHERTEXTBYTES} #include "crypto_encode_{P}x{Q}.h" #include "crypto_decode_{P}x{Q}.h" #define Rq_bytes crypto_encode_{P}x{Q}_STRBYTES #define Rq_encode crypto_encode_{P}x{Q} #define Rq_decode crypto_decode_{P}x{Q} #include "crypto_decode_{P}x{R}.h" #define Rounded_bytes crypto_decode_{P}x{R}_STRBYTES #define Rounded_decode crypto_decode_{P}x{R} #include "crypto_encode_{P}x{R}round.h" #define Round_and_encode crypto_encode_{P}x{R}round #include "crypto_encode_{P}x3.h" #include "crypto_decode_{P}x3.h" #define Small_bytes crypto_encode_{P}x3_STRBYTES #define Small_encode crypto_encode_{P}x3 #define Small_decode crypto_decode_{P}x3 #include "crypto_encode_{P}xfreeze3.h" #define crypto_encode_pxfreeze3 crypto_encode_{P}xfreeze3 #include "crypto_decode_{P}xint32.h" #define crypto_decode_pxint32 crypto_decode_{P}xint32 #include "crypto_decode_{P}xint16.h" #define crypto_decode_pxint16 crypto_decode_{P}xint16 #include "crypto_encode_{P}xint16.h" #define crypto_encode_pxint16 crypto_encode_{P}xint16 #include "crypto_core_wforcesntrup{P}.h" #define crypto_core_wforce crypto_core_wforcesntrup{P} #include "crypto_core_scale3sntrup{P}.h" #define crypto_core_scale3 crypto_core_scale3sntrup{P} #include "crypto_core_invsntrup{P}.h" #define crypto_core_inv crypto_core_invsntrup{P} #include "crypto_core_inv3sntrup{P}.h" #define crypto_core_inv3 crypto_core_inv3sntrup{P} #include "crypto_core_mult3sntrup{P}.h" #define crypto_core_mult3 crypto_core_mult3sntrup{P} #include "crypto_core_multsntrup{P}.h" #define crypto_core_mult crypto_core_multsntrup{P} #endif libntruprime-20241021/src/verify/0000755000000000000000000000000014705505552015264 5ustar rootrootlibntruprime-20241021/src/verify/BYTES/0000755000000000000000000000000014705505552016152 5ustar rootrootlibntruprime-20241021/src/verify/BYTES/avx/0000755000000000000000000000000014705505552016750 5ustar rootrootlibntruprime-20241021/src/verify/BYTES/avx/architectures0000777000000000000000000000000014705505552027661 2../../../decode/Px3/avx/architecturesustar rootrootlibntruprime-20241021/src/verify/BYTES/avx/verify.c0000644000000000000000000000157414705505552020427 0ustar rootroot#include #include "crypto_verify.h" #include "crypto_int16.h" int crypto_verify(const unsigned char *x,const unsigned char *y) { __m256i diff = _mm256_set1_epi8(0); crypto_int16 differentbits = 0; int i = crypto_verify_BYTES; i -= 32; for (;;) { do { __m256i x0 = _mm256_loadu_si256((__m256i *) x); __m256i y0 = _mm256_loadu_si256((__m256i *) y); diff |= x0^y0; i -= 32; x += 32; y += 32; } while (i >= 0); if (i <= -32) break; x += i; y += i; } diff |= _mm256_srli_epi16(diff,8); diff |= _mm256_srli_epi32(diff,16); diff |= _mm256_srli_epi64(diff,32); differentbits = _mm256_extract_epi8(diff,0); differentbits |= _mm256_extract_epi8(diff,8); differentbits |= _mm256_extract_epi8(diff,16); differentbits |= _mm256_extract_epi8(diff,24); return crypto_int16_nonzero_mask(differentbits); } libntruprime-20241021/src/verify/BYTES/ref/0000755000000000000000000000000014705505552016726 5ustar rootrootlibntruprime-20241021/src/verify/BYTES/ref/verify.c0000644000000000000000000000044714705505552020403 0ustar rootroot#include "crypto_verify.h" #include "crypto_int16.h" int crypto_verify(const unsigned char *x,const unsigned char *y) { crypto_int16 differentbits = 0; int i; for (i = 0;i < crypto_verify_BYTES;++i) differentbits |= x[i] ^ y[i]; return crypto_int16_nonzero_mask(differentbits); } libntruprime-20241021/version0000644000000000000000000000001114705505552014571 0ustar rootroot20241021